@webiny/app-file-manager 5.35.2 → 5.36.0-beta.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/BatchFileUploader.d.ts +35 -0
- package/BatchFileUploader.js +180 -0
- package/BatchFileUploader.js.map +1 -0
- package/components/BottomInfoBar/BottomInfoBar.d.ts +4 -0
- package/components/BottomInfoBar/BottomInfoBar.js +25 -0
- package/components/BottomInfoBar/BottomInfoBar.js.map +1 -0
- package/components/BottomInfoBar/ListStatus.d.ts +6 -0
- package/components/BottomInfoBar/ListStatus.js +26 -0
- package/components/BottomInfoBar/ListStatus.js.map +1 -0
- package/components/BottomInfoBar/SupportedFileTypes.d.ts +6 -0
- package/components/BottomInfoBar/SupportedFileTypes.js +47 -0
- package/components/BottomInfoBar/SupportedFileTypes.js.map +1 -0
- package/components/BottomInfoBar/index.d.ts +1 -0
- package/components/BottomInfoBar/index.js +16 -0
- package/components/BottomInfoBar/index.js.map +1 -0
- package/components/BottomInfoBar/styled.d.ts +23 -0
- package/components/BottomInfoBar/styled.js +33 -0
- package/components/BottomInfoBar/styled.js.map +1 -0
- package/components/DropFilesHere/DropFilesHere.d.ts +9 -0
- package/components/DropFilesHere/DropFilesHere.js +31 -0
- package/components/DropFilesHere/DropFilesHere.js.map +1 -0
- package/components/DropFilesHere/index.d.ts +1 -0
- package/components/DropFilesHere/index.js +16 -0
- package/components/DropFilesHere/index.js.map +1 -0
- package/components/DropFilesHere/styled.d.ts +26 -0
- package/components/DropFilesHere/styled.js +35 -0
- package/components/DropFilesHere/styled.js.map +1 -0
- package/components/Empty/Empty.d.ts +8 -0
- package/components/Empty/Empty.js +31 -0
- package/components/Empty/Empty.js.map +1 -0
- package/components/Empty/index.d.ts +1 -0
- package/components/Empty/index.js +16 -0
- package/components/Empty/index.js.map +1 -0
- package/components/FileDetails/Aliases.js +8 -4
- package/components/FileDetails/Aliases.js.map +1 -1
- package/components/FileDetails/DeleteImageAction.d.ts +6 -2
- package/components/FileDetails/DeleteImageAction.js +19 -52
- package/components/FileDetails/DeleteImageAction.js.map +1 -1
- package/components/FileDetails/FileDetails.d.ts +24 -0
- package/components/FileDetails/FileDetails.js +267 -0
- package/components/FileDetails/FileDetails.js.map +1 -0
- package/components/FileDetails/Name.js +2 -2
- package/components/FileDetails/Name.js.map +1 -1
- package/components/FileDetails/Tags.d.ts +6 -2
- package/components/FileDetails/Tags.js +31 -16
- package/components/FileDetails/Tags.js.map +1 -1
- package/components/FileDetails/index.d.ts +1 -0
- package/components/FileDetails/index.js +16 -0
- package/components/FileDetails/index.js.map +1 -0
- package/components/Grid/File.d.ts +16 -0
- package/components/Grid/File.js +57 -0
- package/components/Grid/File.js.map +1 -0
- package/components/Grid/Grid.d.ts +17 -0
- package/components/Grid/Grid.js +99 -0
- package/components/Grid/Grid.js.map +1 -0
- package/components/Grid/index.d.ts +1 -0
- package/components/Grid/index.js +16 -0
- package/components/Grid/index.js.map +1 -0
- package/components/Grid/styled.d.ts +40 -0
- package/components/Grid/styled.js +58 -0
- package/components/Grid/styled.js.map +1 -0
- package/components/NoPermission/NoPermission.d.ts +2 -0
- package/components/NoPermission/NoPermission.js +24 -0
- package/components/NoPermission/NoPermission.js.map +1 -0
- package/components/NoPermission/index.d.ts +1 -0
- package/components/NoPermission/index.js +16 -0
- package/components/NoPermission/index.js.map +1 -0
- package/components/NoPermission/styled.d.ts +32 -0
- package/components/NoPermission/styled.js +40 -0
- package/components/NoPermission/styled.js.map +1 -0
- package/components/NoResults/NoResults.d.ts +2 -0
- package/components/NoResults/NoResults.js +17 -0
- package/components/NoResults/NoResults.js.map +1 -0
- package/components/NoResults/index.d.ts +1 -0
- package/components/NoResults/index.js +16 -0
- package/components/NoResults/index.js.map +1 -0
- package/components/NoResults/styled.d.ts +7 -0
- package/components/NoResults/styled.js +13 -0
- package/components/NoResults/styled.js.map +1 -0
- package/components/Table/FolderActionDelete.d.ts +6 -0
- package/components/Table/FolderActionDelete.js +25 -0
- package/components/Table/FolderActionDelete.js.map +1 -0
- package/components/Table/FolderActionEdit.d.ts +6 -0
- package/components/Table/FolderActionEdit.js +25 -0
- package/components/Table/FolderActionEdit.js.map +1 -0
- package/components/Table/Name.d.ts +12 -0
- package/components/Table/Name.js +39 -0
- package/components/Table/Name.js.map +1 -0
- package/components/Table/RecordActionCopy.d.ts +8 -0
- package/components/Table/RecordActionCopy.js +30 -0
- package/components/Table/RecordActionCopy.js.map +1 -0
- package/components/Table/RecordActionDelete.d.ts +8 -0
- package/components/Table/RecordActionDelete.js +36 -0
- package/components/Table/RecordActionDelete.js.map +1 -0
- package/components/Table/RecordActionEdit.d.ts +7 -0
- package/components/Table/RecordActionEdit.js +28 -0
- package/components/Table/RecordActionEdit.js.map +1 -0
- package/components/Table/RecordActionMove.d.ts +6 -0
- package/components/Table/RecordActionMove.js +25 -0
- package/components/Table/RecordActionMove.js.map +1 -0
- package/components/Table/Table.d.ts +31 -0
- package/components/Table/Table.js +256 -0
- package/components/Table/Table.js.map +1 -0
- package/components/Table/index.d.ts +1 -0
- package/components/Table/index.js +16 -0
- package/components/Table/index.js.map +1 -0
- package/components/Table/styled.d.ts +21 -0
- package/components/Table/styled.js +35 -0
- package/components/Table/styled.js.map +1 -0
- package/components/Title/Title.d.ts +5 -0
- package/components/Title/Title.js +20 -0
- package/components/Title/Title.js.map +1 -0
- package/components/Title/index.d.ts +1 -0
- package/components/Title/index.js +16 -0
- package/components/Title/index.js.map +1 -0
- package/components/Title/styled.d.ts +7 -0
- package/components/Title/styled.js +14 -0
- package/components/Title/styled.js.map +1 -0
- package/components/UploadStatus/UploadStatus.d.ts +6 -0
- package/components/UploadStatus/UploadStatus.js +36 -0
- package/components/UploadStatus/UploadStatus.js.map +1 -0
- package/components/UploadStatus/assets/check.svg +3 -0
- package/components/UploadStatus/assets/loading.svg +17 -0
- package/components/UploadStatus/index.d.ts +1 -0
- package/components/UploadStatus/index.js +16 -0
- package/components/UploadStatus/index.js.map +1 -0
- package/components/UploadStatus/styled.d.ts +41 -0
- package/components/UploadStatus/styled.js +57 -0
- package/components/UploadStatus/styled.js.map +1 -0
- package/constants.d.ts +3 -0
- package/constants.js +12 -0
- package/constants.js.map +1 -0
- package/hooks/useCopyFile.d.ts +11 -0
- package/hooks/useCopyFile.js +30 -0
- package/hooks/useCopyFile.js.map +1 -0
- package/hooks/useDeleteFile.d.ts +9 -0
- package/hooks/useDeleteFile.js +64 -0
- package/hooks/useDeleteFile.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +9 -1
- package/index.js.map +1 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.d.ts +9 -3
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js +82 -52
- package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js.map +1 -1
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.d.ts +2 -2
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js +3 -3
- package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js.map +1 -1
- package/modules/FileManagerApiProvider/graphql.d.ts +4 -0
- package/modules/FileManagerApiProvider/graphql.js +9 -7
- package/modules/FileManagerApiProvider/graphql.js.map +1 -1
- package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.d.ts +18 -0
- package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js +622 -0
- package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js.map +1 -0
- package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.d.ts +12 -0
- package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js +75 -0
- package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js.map +1 -0
- package/modules/FileManagerRenderer/AcoRenderer/index.d.ts +2 -0
- package/modules/FileManagerRenderer/AcoRenderer/index.js +70 -0
- package/modules/FileManagerRenderer/AcoRenderer/index.js.map +1 -0
- package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.d.ts +2 -0
- package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js +40 -0
- package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js.map +1 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js +7 -2
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js.map +1 -1
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.d.ts +2 -1
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js +48 -36
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js.map +1 -1
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/check.svg +3 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/loading.svg +17 -0
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.d.ts +4 -3
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js +6 -25
- package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js.map +1 -1
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.d.ts +2 -2
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js +80 -109
- package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.d.ts +54 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js +430 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.d.ts +2 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js +27 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.d.ts +74 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js +119 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.d.ts +3 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js +15 -0
- package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js.map +1 -0
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.d.ts +4 -3
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js +23 -19
- package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js.map +1 -1
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.d.ts +0 -3
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js +0 -5
- package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js.map +1 -1
- package/modules/FileManagerRenderer/index.js +2 -2
- package/modules/FileManagerRenderer/index.js.map +1 -1
- package/modules/FileTypes/fileImage/EditAction.js +2 -2
- package/modules/FileTypes/fileImage/EditAction.js.map +1 -1
- package/package.json +18 -12
- package/tagsHelpers.d.ts +16 -0
- package/tagsHelpers.js +41 -0
- package/tagsHelpers.js.map +1 -0
- package/types.d.ts +1 -0
- package/types.js +8 -1
- package/types.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","InputSearch","styled","backgroundColor","position","height","padding","width","borderRadius","border","fontSize","marginLeft","outline","color","searchIcon","css","left","top","FileListWrapper","float","display","maxWidth","whiteSpace","overflow","textOverflow","defaultFolderName","FileManagerAcoView","props","onClose","onChange","accept","multiple","onUploadCompletion","scope","own","useFileManagerAcoView","dragging","setDragging","folderId","setFolderId","getFile","hasPreviouslyUploadedFiles","setHasPreviouslyUploadedFiles","hideFileDetails","listSort","loadingFileDetails","setListSort","listTable","setListTable","listWhere","setListWhere","selected","setSelected","settings","showFileDetails","showingFileDetails","toggleSelected","uploadFile","useAcoList","type","ACO_TYPE","folders","isListLoading","isListLoadingMore","listItems","listTitle","meta","records","uploader","useMemo","BatchFileUploader","fileManager","useFileManagerApi","useSnackbar","showSnackbar","useState","files","setFiles","tableSorting","setTableSorting","showFoldersDialog","setFoldersDialog","openFoldersDialog","useCallback","closeFoldersDialog","didMount","useRef","useEffect","sort","reduce","current","next","id","desc","searchOnChange","debounce","search","length","undefined","listSearchRecords","JSON","stringify","loadMoreRecords","hasMoreItems","cursor","after","loadMoreOnScroll","scrollFrame","toggleTag","tag","tagName","finalTags","AND","tags_in","Array","isArray","includes","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","useHotkeys","zIndex","keys","esc","searchInput","useDeepCompareEffect","recordsFile","map","file","src","srcPrefix","data","key","Boolean","uploadFiles","addFiles","onUploadFinished","uploaded","errors","reset","setTimeout","name","renderUploadFileAction","browseFiles","canCreate","currentFile","setCurrentFile","fetchFileDetails","filesBeingUploaded","getJobs","progress","renderList","rows","filter","row","original","uploadMaxFileSize","filesToUpload","console","log","outputFileSelectionError","getDropZoneProps","target","value","canRead","margin","mode","onDragEnter","defaultProps","observer"],"sources":["FileManagerAcoView.tsx"],"sourcesContent":["import React, { useRef, useCallback, useState, useEffect, useMemo } from \"react\";\nimport Files, { FilesRenderChildren, FilesRules } from \"react-butterfiles\";\nimport { css } from \"emotion\";\nimport debounce from \"lodash/debounce\";\nimport styled from \"@emotion/styled\";\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\nimport { observer } from \"mobx-react-lite\";\nimport { ReactComponent as SearchIcon } from \"@material-design-icons/svg/outlined/search.svg\";\nimport { ReactComponent as UploadIcon } from \"@material-design-icons/svg/filled/cloud_upload.svg\";\nimport { ReactComponent as AddIcon } from \"@material-design-icons/svg/filled/add.svg\";\nimport { ReactComponent as GridIcon } from \"@material-design-icons/svg/outlined/view_module.svg\";\nimport { ReactComponent as TableIcon } from \"@material-design-icons/svg/outlined/view_list.svg\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { FolderDialogCreate, useAcoList } from \"@webiny/app-aco\";\nimport { OverlayLayout, useSnackbar } from \"@webiny/app-admin\";\nimport { ButtonPrimary, ButtonIcon, IconButton, ButtonSecondary } from \"@webiny/ui/Button\";\nimport { Sorting } from \"@webiny/ui/DataTable\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\n\nimport { useFileManagerAcoView } from \"~/modules/FileManagerRenderer/FileManagerAcoViewProvider\";\nimport { outputFileSelectionError } from \"./outputFileSelectionError\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport { useFileManagerApi } from \"~/index\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { ListMeta, SearchRecordItem } from \"@webiny/app-aco/types\";\n\nimport { ACO_TYPE } from \"~/constants\";\n\nimport { BottomInfoBar } from \"~/components/BottomInfoBar\";\nimport { DropFilesHere } from \"~/components/DropFilesHere\";\nimport { Empty } from \"~/components/Empty\";\nimport { FileDetails } from \"~/components/FileDetails\";\nimport { Grid } from \"~/components/Grid\";\nimport { Table } from \"~/components/Table\";\nimport { Title } from \"~/components/Title\";\nimport { UploadStatus } from \"~/components/UploadStatus\";\n\nimport { BatchFileUploader } from \"~/BatchFileUploader\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst InputSearch = styled(\"div\")({\n backgroundColor: \"var(--mdc-theme-on-background)\",\n position: \"relative\",\n height: 32,\n padding: 3,\n width: \"100%\",\n borderRadius: 2,\n \"> input\": {\n border: \"none\",\n fontSize: 14,\n width: \"calc(100% - 10px)\",\n height: \"100%\",\n marginLeft: 32,\n backgroundColor: \"transparent\",\n outline: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst searchIcon = css({\n \"&.mdc-button__icon\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n position: \"absolute\",\n width: 24,\n height: 24,\n left: 8,\n top: 8\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"calc(100vh - 94px)\",\n position: \"relative\",\n \".mdc-data-table\": {\n display: \"inline-table\"\n },\n \".mdc-data-table__cell\": {\n width: \"250px\",\n maxWidth: \"250px\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\"\n }\n});\n\nexport interface FileManagerAcoViewProps {\n onChange?: Function;\n onClose?: () => void;\n files?: FilesRules;\n multiple?: boolean; // Does not affect <Files> component, it always allows multiple selection.\n accept: Array<string>;\n maxSize?: number | string;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n}\n\nconst defaultFolderName = t`All files`;\n\nconst FileManagerAcoView: React.FC<FileManagerAcoViewProps> = props => {\n const { onClose, onChange, accept, multiple = false, onUploadCompletion, scope, own } = props;\n\n const {\n dragging,\n setDragging,\n folderId,\n setFolderId,\n getFile,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles,\n hideFileDetails,\n listSort,\n loadingFileDetails,\n setListSort,\n listTable,\n setListTable,\n listWhere,\n setListWhere,\n selected,\n setSelected,\n settings,\n showFileDetails,\n showingFileDetails,\n toggleSelected,\n uploadFile\n } = useFileManagerAcoView();\n\n const {\n folders,\n isListLoading,\n isListLoadingMore,\n listItems,\n listTitle = defaultFolderName,\n meta,\n records\n } = useAcoList({ type: ACO_TYPE, folderId, ...listWhere });\n\n const uploader = useMemo<BatchFileUploader>(\n () => new BatchFileUploader(uploadFile),\n [folderId]\n );\n\n const fileManager = useFileManagerApi();\n const { showSnackbar } = useSnackbar();\n\n const [files, setFiles] = useState<SearchRecordItem<FileItem>[]>([]);\n const [tableSorting, setTableSorting] = useState<Sorting>([]);\n\n const [showFoldersDialog, setFoldersDialog] = useState(false);\n const openFoldersDialog = useCallback(() => setFoldersDialog(true), []);\n const closeFoldersDialog = useCallback(() => setFoldersDialog(false), []);\n\n const didMount = useRef(false);\n\n useEffect(() => {\n const sort = tableSorting.reduce((current, next) => {\n return { ...current, [next.id]: next.desc ? \"DESC\" : \"ASC\" };\n }, {});\n\n setListSort(sort);\n }, [tableSorting]);\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => {\n if (search.length) {\n setListWhere({ search, folderId: undefined });\n } else {\n setFolderId(folderId);\n setListWhere({ search: undefined });\n }\n }, 500),\n [folderId]\n );\n\n useEffect(() => {\n const listSearchRecords = async () => {\n await listItems({ ...listWhere, sort: listSort });\n };\n\n if (didMount.current) {\n listSearchRecords();\n } else {\n didMount.current = true;\n }\n }, [JSON.stringify(listWhere), listSort]);\n\n const loadMoreRecords = async ({ hasMoreItems, cursor }: ListMeta) => {\n if (hasMoreItems && cursor) {\n await listItems({ ...listWhere, sort: listSort, after: cursor });\n }\n };\n\n const loadMoreOnScroll = useCallback(\n debounce(async ({ scrollFrame }) => {\n if (scrollFrame.top > 0.8) {\n await loadMoreRecords(meta);\n }\n }, 200),\n [meta]\n );\n\n const toggleTag = useCallback(async ({ tag, listWhere }) => {\n const { tag: tagName } = tag;\n\n const finalTags =\n listWhere.AND && listWhere.AND[0]?.tags_in && Array.isArray(listWhere.AND[0]?.tags_in)\n ? listWhere.AND[0].tags_in\n : [];\n\n if (finalTags.includes(tagName)) {\n finalTags.splice(finalTags.indexOf(tagName), 1);\n } else {\n finalTags.push(tagName);\n }\n\n setListWhere({\n ...listWhere,\n AND: finalTags.length ? [{ tags_in: finalTags }] : undefined\n });\n }, []);\n\n const getFileUploadErrorMessage = useCallback(e => {\n if (typeof e === \"string\") {\n const match = e.match(/Message>(.*?)<\\/Message/);\n if (match) {\n const [, message] = match;\n return message;\n }\n\n return e;\n }\n return e.message;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n useDeepCompareEffect(() => {\n if (!settings) {\n return;\n }\n\n const recordsFile = records.map(file => {\n const src = settings?.srcPrefix + file.data.key;\n return {\n ...file,\n data: {\n ...file.data,\n src\n }\n };\n });\n\n setFiles(recordsFile as SearchRecordItem<FileItem>[]);\n }, [{ ...records }, settings]);\n\n useDeepCompareEffect(() => {\n setHasPreviouslyUploadedFiles(Boolean(records.length > 0 || folders.length > 0));\n }, [{ ...records }, { ...folders }]);\n\n const uploadFiles = async (files: File[]) => {\n uploader.addFiles(files);\n\n uploader.onUploadFinished(({ uploaded, errors }) => {\n uploader.reset();\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => {\n showSnackbar(\n <>\n {t`One or more files were not uploaded successfully:`}\n <ol>\n {errors.map(({ file, e }) => (\n <li key={file.name}>\n <strong>{file.name}</strong>: {getFileUploadErrorMessage(e)}\n </li>\n ))}\n </ol>\n </>\n );\n }, 750);\n\n return;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => {\n onUploadCompletion(uploaded);\n onClose && onClose();\n }, 750);\n }\n });\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!fileManager.canCreate) {\n return null;\n }\n return (\n <ButtonPrimary flat={true} small={true} onClick={browseFiles}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [fileManager.canCreate]\n );\n\n const [currentFile, setCurrentFile] = useState<FileItem>();\n useEffect(() => {\n const fetchFileDetails = async () => {\n if (showingFileDetails) {\n const file = await getFile(showingFileDetails);\n setCurrentFile(file);\n } else {\n setCurrentFile(undefined);\n }\n };\n\n // call the function\n fetchFileDetails();\n }, [showingFileDetails]);\n\n const filesBeingUploaded = uploader.getJobs().length;\n const progress = uploader.progress;\n\n const renderList = (browseFiles: FilesRenderChildren[\"browseFiles\"]) => {\n if (!isListLoading && listWhere.search && records.length === 0) {\n return <Empty isSearchResult={true} browseFiles={browseFiles} />;\n }\n\n if (!isListLoading && records.length === 0 && folders.length === 0) {\n return <Empty isSearchResult={false} browseFiles={browseFiles} />;\n }\n\n if (listTable) {\n return (\n <Table\n folders={folders}\n records={files}\n loading={isListLoading}\n onRecordClick={showFileDetails}\n onFolderClick={setFolderId}\n onSelectRow={rows => {\n const files = rows\n .filter(row => row.type === \"RECORD\")\n .map(row => row.original as FileItem);\n setSelected(files);\n }}\n sorting={tableSorting}\n onSortingChange={setTableSorting}\n settings={settings}\n selectableItems={Boolean(typeof onChange === \"function\")}\n />\n );\n }\n\n return (\n <Grid\n folders={folders}\n records={files.map(file => file.data)}\n loading={isListLoading}\n onRecordClick={showFileDetails}\n onFolderClick={setFolderId}\n selected={selected}\n multiple={multiple}\n toggleSelected={toggleSelected}\n onChange={onChange}\n onClose={onClose}\n />\n );\n };\n\n return (\n <>\n <Files\n multiple\n maxSize={settings ? settings.uploadMaxFileSize + \"b\" : \"1TB\"}\n multipleMaxSize={\"1TB\"}\n accept={accept}\n onSuccess={files => {\n const filesToUpload = files\n .map(file => file.src.file)\n .filter(Boolean) as File[];\n uploadFiles(filesToUpload);\n }}\n onError={errors => {\n console.log(\"onError\", errors);\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles }) => (\n <OverlayLayout\n onExited={onClose}\n barLeft={<Title title={listTitle} />}\n barMiddle={\n <InputSearch>\n <Icon className={searchIcon} icon={<SearchIcon />} />\n <input\n ref={searchInput}\n onChange={e => searchOnChange(e.target.value)}\n placeholder={t`Search by filename or tags`}\n disabled={!fileManager.canRead}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n <>\n {selected.length > 0 ? (\n <ButtonPrimary\n flat={true}\n small={true}\n onClick={() => {\n (async () => {\n if (typeof onChange === \"function\") {\n await onChange(\n multiple ? selected : selected[0]\n );\n\n onClose && onClose();\n }\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )}\n <ButtonSecondary\n data-testid={\"file-manager.create-folder-button\"}\n onClick={openFoldersDialog}\n small={true}\n style={{ margin: \"0 8px\" }}\n >\n <ButtonIcon icon={<AddIcon />} />\n {t`New Folder`}\n </ButtonSecondary>\n <Tooltip\n content={t`{mode} layout`({\n mode: listTable ? \"Grid\" : \"Table\"\n })}\n placement={\"bottom\"}\n >\n <IconButton\n icon={listTable ? <GridIcon /> : <TableIcon />}\n onClick={() => setListTable(!listTable)}\n >\n {t`Switch`}\n </IconButton>\n </Tooltip>\n </>\n }\n >\n <>\n <FileDetails\n loading={loadingFileDetails}\n file={currentFile}\n open={Boolean(showingFileDetails)}\n onClose={hideFileDetails}\n scope={scope}\n own={own}\n />\n <LeftSidebar\n title={defaultFolderName}\n currentFolder={folderId}\n onFolderClick={setFolderId}\n scope={scope}\n own={own}\n toggleTag={tag => toggleTag({ tag, listWhere })}\n />\n <FileListWrapper\n {...getDropZoneProps({\n onDragEnter: () =>\n hasPreviouslyUploadedFiles && setDragging(true)\n })}\n data-testid={\"fm-list-wrapper\"}\n >\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame => loadMoreOnScroll({ scrollFrame })}\n >\n {renderList(browseFiles)}\n </Scrollbar>\n <BottomInfoBar accept={accept} listing={isListLoadingMore} />\n <UploadStatus\n numberOfFiles={filesBeingUploaded}\n progress={progress}\n />\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n <FolderDialogCreate\n type={ACO_TYPE}\n open={showFoldersDialog}\n onClose={closeFoldersDialog}\n currentParentId={folderId || null}\n />\n </>\n );\n};\n\nFileManagerAcoView.defaultProps = {\n multiple: false\n};\n\nexport default observer(FileManagerAcoView);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { TagItem } from "@webiny/app-aco/types";
|
|
3
|
+
interface LeftSidebarProps {
|
|
4
|
+
title: string;
|
|
5
|
+
toggleTag: (tag: TagItem) => void;
|
|
6
|
+
currentFolder?: string;
|
|
7
|
+
scope?: string;
|
|
8
|
+
own?: boolean;
|
|
9
|
+
onFolderClick: (folderId: string | undefined) => void;
|
|
10
|
+
}
|
|
11
|
+
declare const LeftSidebar: React.FC<LeftSidebarProps>;
|
|
12
|
+
export default LeftSidebar;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _i18n = require("@webiny/app/i18n");
|
|
11
|
+
var _appAco = require("@webiny/app-aco");
|
|
12
|
+
var _emotion = require("emotion");
|
|
13
|
+
var _tagsHelpers = require("../../../tagsHelpers");
|
|
14
|
+
var _constants = require("../../../constants");
|
|
15
|
+
var _templateObject;
|
|
16
|
+
var t = _i18n.i18n.ns("app-file-manager/modules/renderer/left-sidebar");
|
|
17
|
+
var style = {
|
|
18
|
+
leftDrawer: /*#__PURE__*/(0, _emotion.css)({
|
|
19
|
+
float: "left",
|
|
20
|
+
display: "block",
|
|
21
|
+
width: 269,
|
|
22
|
+
height: "calc(100vh - 64px)",
|
|
23
|
+
backgroundColor: "var(--mdc-theme-surface)",
|
|
24
|
+
borderRight: "1px solid var(--mdc-theme-on-background)",
|
|
25
|
+
overflowY: "scroll"
|
|
26
|
+
}, "label:leftDrawer;"),
|
|
27
|
+
wrapper: /*#__PURE__*/(0, _emotion.css)({
|
|
28
|
+
padding: " 16px 8px"
|
|
29
|
+
}, "label:wrapper;"),
|
|
30
|
+
divider: /*#__PURE__*/(0, _emotion.css)({
|
|
31
|
+
height: "1px",
|
|
32
|
+
backgroundColor: "var(--mdc-theme-on-background)",
|
|
33
|
+
margin: "12px 8px 16px"
|
|
34
|
+
}, "label:divider;")
|
|
35
|
+
};
|
|
36
|
+
var LeftSidebar = function LeftSidebar(_ref) {
|
|
37
|
+
var title = _ref.title,
|
|
38
|
+
toggleTag = _ref.toggleTag,
|
|
39
|
+
currentFolder = _ref.currentFolder,
|
|
40
|
+
scope = _ref.scope,
|
|
41
|
+
own = _ref.own,
|
|
42
|
+
_onFolderClick = _ref.onFolderClick;
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
44
|
+
className: style.leftDrawer
|
|
45
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
46
|
+
className: style.wrapper
|
|
47
|
+
}, /*#__PURE__*/_react.default.createElement(_appAco.FolderTree, {
|
|
48
|
+
type: _constants.ACO_TYPE,
|
|
49
|
+
title: title,
|
|
50
|
+
focusedFolderId: currentFolder,
|
|
51
|
+
onTitleClick: function onTitleClick() {
|
|
52
|
+
return _onFolderClick(_constants.FOLDER_ID_DEFAULT);
|
|
53
|
+
},
|
|
54
|
+
onFolderClick: function onFolderClick(data) {
|
|
55
|
+
return (data === null || data === void 0 ? void 0 : data.id) && _onFolderClick(data === null || data === void 0 ? void 0 : data.id);
|
|
56
|
+
},
|
|
57
|
+
enableActions: true,
|
|
58
|
+
enableCreate: true
|
|
59
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
60
|
+
className: style.divider
|
|
61
|
+
}), /*#__PURE__*/_react.default.createElement(_appAco.TagList, {
|
|
62
|
+
type: _constants.ACO_TYPE,
|
|
63
|
+
initialWhere: (0, _tagsHelpers.getTagsInitialParams)({
|
|
64
|
+
scope: scope,
|
|
65
|
+
own: own
|
|
66
|
+
}),
|
|
67
|
+
tagsModifier: (0, _tagsHelpers.tagsModifier)(scope),
|
|
68
|
+
emptyDisclaimer: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["No tag found: once you tag a file, it will be displayed here."]))),
|
|
69
|
+
onTagClick: function onTagClick(tag) {
|
|
70
|
+
return toggleTag(tag);
|
|
71
|
+
}
|
|
72
|
+
})));
|
|
73
|
+
};
|
|
74
|
+
var _default = LeftSidebar;
|
|
75
|
+
exports.default = _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","style","leftDrawer","css","float","display","width","height","backgroundColor","borderRight","overflowY","wrapper","padding","divider","margin","LeftSidebar","title","toggleTag","currentFolder","scope","own","onFolderClick","ACO_TYPE","FOLDER_ID_DEFAULT","data","id","getTagsInitialParams","tagsModifier","tag"],"sources":["LeftSidebar.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport { FolderTree, TagList } from \"@webiny/app-aco\";\nimport { css } from \"emotion\";\n\nimport { getTagsInitialParams, tagsModifier } from \"~/tagsHelpers\";\nimport { ACO_TYPE, FOLDER_ID_DEFAULT } from \"~/constants\";\n\nimport { TagItem } from \"@webiny/app-aco/types\";\n\nconst t = i18n.ns(\"app-file-manager/modules/renderer/left-sidebar\");\n\nconst style = {\n leftDrawer: css({\n float: \"left\",\n display: \"block\",\n width: 269,\n height: \"calc(100vh - 64px)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n borderRight: \"1px solid var(--mdc-theme-on-background)\",\n overflowY: \"scroll\"\n }),\n wrapper: css({\n padding: \" 16px 8px\"\n }),\n divider: css({\n height: \"1px\",\n backgroundColor: \"var(--mdc-theme-on-background)\",\n margin: \"12px 8px 16px\"\n })\n};\n\ninterface LeftSidebarProps {\n title: string;\n toggleTag: (tag: TagItem) => void;\n currentFolder?: string;\n scope?: string;\n own?: boolean;\n onFolderClick: (folderId: string | undefined) => void;\n}\n\nconst LeftSidebar: React.FC<LeftSidebarProps> = ({\n title,\n toggleTag,\n currentFolder,\n scope,\n own,\n onFolderClick\n}) => {\n return (\n <div className={style.leftDrawer}>\n <div className={style.wrapper}>\n <FolderTree\n type={ACO_TYPE}\n title={title}\n focusedFolderId={currentFolder}\n onTitleClick={() => onFolderClick(FOLDER_ID_DEFAULT)}\n onFolderClick={data => data?.id && onFolderClick(data?.id)}\n enableActions={true}\n enableCreate={true}\n />\n <div className={style.divider} />\n <TagList\n type={ACO_TYPE}\n initialWhere={getTagsInitialParams({ scope, own })}\n tagsModifier={tagsModifier(scope)}\n emptyDisclaimer={t`No tag found: once you tag a file, it will be displayed here.`}\n onTagClick={tag => toggleTag(tag)}\n />\n </div>\n </div>\n );\n};\n\nexport default LeftSidebar;\n"],"mappings":";;;;;;;;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAA0D;AAI1D,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,gDAAgD,CAAC;AAEnE,IAAMC,KAAK,GAAG;EACVC,UAAU,eAAE,IAAAC,YAAG,EAAC;IACZC,KAAK,EAAE,MAAM;IACbC,OAAO,EAAE,OAAO;IAChBC,KAAK,EAAE,GAAG;IACVC,MAAM,EAAE,oBAAoB;IAC5BC,eAAe,EAAE,0BAA0B;IAC3CC,WAAW,EAAE,0CAA0C;IACvDC,SAAS,EAAE;EACf,CAAC,sBAAC;EACFC,OAAO,eAAE,IAAAR,YAAG,EAAC;IACTS,OAAO,EAAE;EACb,CAAC,mBAAC;EACFC,OAAO,eAAE,IAAAV,YAAG,EAAC;IACTI,MAAM,EAAE,KAAK;IACbC,eAAe,EAAE,gCAAgC;IACjDM,MAAM,EAAE;EACZ,CAAC;AACL,CAAC;AAWD,IAAMC,WAAuC,GAAG,SAA1CA,WAAuC,OAOvC;EAAA,IANFC,KAAK,QAALA,KAAK;IACLC,SAAS,QAATA,SAAS;IACTC,aAAa,QAAbA,aAAa;IACbC,KAAK,QAALA,KAAK;IACLC,GAAG,QAAHA,GAAG;IACHC,cAAa,QAAbA,aAAa;EAEb,oBACI;IAAK,SAAS,EAAEpB,KAAK,CAACC;EAAW,gBAC7B;IAAK,SAAS,EAAED,KAAK,CAACU;EAAQ,gBAC1B,6BAAC,kBAAU;IACP,IAAI,EAAEW,mBAAS;IACf,KAAK,EAAEN,KAAM;IACb,eAAe,EAAEE,aAAc;IAC/B,YAAY,EAAE;MAAA,OAAMG,cAAa,CAACE,4BAAiB,CAAC;IAAA,CAAC;IACrD,aAAa,EAAE,uBAAAC,IAAI;MAAA,OAAI,CAAAA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,EAAE,KAAIJ,cAAa,CAACG,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,EAAE,CAAC;IAAA,CAAC;IAC3D,aAAa,EAAE,IAAK;IACpB,YAAY,EAAE;EAAK,EACrB,eACF;IAAK,SAAS,EAAExB,KAAK,CAACY;EAAQ,EAAG,eACjC,6BAAC,eAAO;IACJ,IAAI,EAAES,mBAAS;IACf,YAAY,EAAE,IAAAI,iCAAoB,EAAC;MAAEP,KAAK,EAALA,KAAK;MAAEC,GAAG,EAAHA;IAAI,CAAC,CAAE;IACnD,YAAY,EAAE,IAAAO,yBAAY,EAACR,KAAK,CAAE;IAClC,eAAe,EAAErB,CAAC,gJAAgE;IAClF,UAAU,EAAE,oBAAA8B,GAAG;MAAA,OAAIX,SAAS,CAACW,GAAG,CAAC;IAAA;EAAC,EACpC,CACA,CACJ;AAEd,CAAC;AAAC,eAEab,WAAW;AAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.AcoRenderer = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
12
|
+
var _FileManagerAcoView = _interopRequireDefault(require("./FileManagerAcoView"));
|
|
13
|
+
var _FileManagerAcoViewProvider = require("../FileManagerAcoViewProvider");
|
|
14
|
+
var _excluded = ["id", "src"],
|
|
15
|
+
_excluded2 = ["onChange", "images", "accept"];
|
|
16
|
+
/**
|
|
17
|
+
* Convert a FileItem object to a FileManagerFileItem, which is then passed to `onChange` callback.
|
|
18
|
+
*/
|
|
19
|
+
var formatFileItem = function formatFileItem(_ref) {
|
|
20
|
+
var id = _ref.id,
|
|
21
|
+
src = _ref.src,
|
|
22
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
23
|
+
var props = rest;
|
|
24
|
+
return {
|
|
25
|
+
id: id,
|
|
26
|
+
src: src,
|
|
27
|
+
meta: Object.keys(rest).map(function (key) {
|
|
28
|
+
return {
|
|
29
|
+
key: key,
|
|
30
|
+
value: props[key]
|
|
31
|
+
};
|
|
32
|
+
})
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* If `accept` prop is not passed, and `images` prop is set, use these default mime types.
|
|
38
|
+
* Defaults can be overridden using the `createComponentPlugin` and `FileManagerRenderer` component.
|
|
39
|
+
*/
|
|
40
|
+
var imagesAccept = ["image/jpg", "image/jpeg", "image/tiff", "image/gif", "image/png", "image/webp", "image/bmp", "image/svg+xml"];
|
|
41
|
+
var AcoRenderer = (0, _appAdmin.createComponentPlugin)(_appAdmin.FileManagerRenderer, function () {
|
|
42
|
+
return function FileManagerRenderer(props) {
|
|
43
|
+
var onChange = props.onChange,
|
|
44
|
+
images = props.images,
|
|
45
|
+
accept = props.accept,
|
|
46
|
+
forwardProps = (0, _objectWithoutProperties2.default)(props, _excluded2);
|
|
47
|
+
var handleFileOnChange = function handleFileOnChange(value) {
|
|
48
|
+
if (!onChange || !value || Array.isArray(value) && !value.length) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (Array.isArray(value)) {
|
|
52
|
+
var finalValue = value.map(formatFileItem);
|
|
53
|
+
onChange(finalValue);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
onChange(formatFileItem(value));
|
|
57
|
+
};
|
|
58
|
+
var viewProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, forwardProps), {}, {
|
|
59
|
+
onChange: typeof onChange === "function" ? handleFileOnChange : undefined,
|
|
60
|
+
accept: images ? accept || imagesAccept : accept || []
|
|
61
|
+
});
|
|
62
|
+
return /*#__PURE__*/_react.default.createElement(_FileManagerAcoViewProvider.FileManagerAcoViewProvider, {
|
|
63
|
+
accept: viewProps.accept || [],
|
|
64
|
+
tags: viewProps.tags || [],
|
|
65
|
+
scope: viewProps.scope,
|
|
66
|
+
own: viewProps.own
|
|
67
|
+
}, /*#__PURE__*/_react.default.createElement(_FileManagerAcoView.default, viewProps));
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
exports.AcoRenderer = AcoRenderer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["formatFileItem","id","src","rest","props","meta","Object","keys","map","key","value","imagesAccept","AcoRenderer","createComponentPlugin","BaseFileManagerRenderer","FileManagerRenderer","onChange","images","accept","forwardProps","handleFileOnChange","Array","isArray","length","finalValue","viewProps","undefined","tags","scope","own"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n createComponentPlugin,\n FileManagerFileItem,\n FileManagerOnChange,\n FileManagerRenderer as BaseFileManagerRenderer\n} from \"@webiny/app-admin\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport FileManagerAcoView, { FileManagerAcoViewProps } from \"./FileManagerAcoView\";\nimport { FileManagerAcoViewProvider } from \"~/modules/FileManagerRenderer/FileManagerAcoViewProvider\";\n\n/**\n * Convert a FileItem object to a FileManagerFileItem, which is then passed to `onChange` callback.\n */\nconst formatFileItem = ({ id, src, ...rest }: FileItem): FileManagerFileItem => {\n const props: { [key: string]: any } = rest;\n\n return {\n id,\n src,\n meta: Object.keys(rest).map(key => ({ key, value: props[key] }))\n };\n};\n\n/**\n * If `accept` prop is not passed, and `images` prop is set, use these default mime types.\n * Defaults can be overridden using the `createComponentPlugin` and `FileManagerRenderer` component.\n */\nconst imagesAccept = [\n \"image/jpg\",\n \"image/jpeg\",\n \"image/tiff\",\n \"image/gif\",\n \"image/png\",\n \"image/webp\",\n \"image/bmp\",\n \"image/svg+xml\"\n];\n\nexport const AcoRenderer = createComponentPlugin(BaseFileManagerRenderer, () => {\n return function FileManagerRenderer(props) {\n const { onChange, images, accept, ...forwardProps } = props;\n\n const handleFileOnChange = (value?: FileItem[] | FileItem) => {\n if (!onChange || !value || (Array.isArray(value) && !value.length)) {\n return;\n }\n\n if (Array.isArray(value)) {\n const finalValue: FileManagerFileItem[] = value.map(formatFileItem);\n (onChange as FileManagerOnChange<FileManagerFileItem[]>)(finalValue);\n return;\n }\n\n (onChange as FileManagerOnChange<FileManagerFileItem>)(formatFileItem(value));\n };\n\n const viewProps: FileManagerAcoViewProps = {\n ...forwardProps,\n onChange: typeof onChange === \"function\" ? handleFileOnChange : undefined,\n accept: images ? accept || imagesAccept : accept || []\n };\n\n return (\n <FileManagerAcoViewProvider\n accept={viewProps.accept || []}\n tags={viewProps.tags || []}\n scope={viewProps.scope}\n own={viewProps.own}\n >\n <FileManagerAcoView {...viewProps} />\n </FileManagerAcoViewProvider>\n );\n };\n});\n"],"mappings":";;;;;;;;;AAAA;AACA;AAOA;AACA;AAAsG;EAAA;AAEtG;AACA;AACA;AACA,IAAMA,cAAc,GAAG,SAAjBA,cAAc,OAA4D;EAAA,IAAtDC,EAAE,QAAFA,EAAE;IAAEC,GAAG,QAAHA,GAAG;IAAKC,IAAI;EACtC,IAAMC,KAA6B,GAAGD,IAAI;EAE1C,OAAO;IACHF,EAAE,EAAFA,EAAE;IACFC,GAAG,EAAHA,GAAG;IACHG,IAAI,EAAEC,MAAM,CAACC,IAAI,CAACJ,IAAI,CAAC,CAACK,GAAG,CAAC,UAAAC,GAAG;MAAA,OAAK;QAAEA,GAAG,EAAHA,GAAG;QAAEC,KAAK,EAAEN,KAAK,CAACK,GAAG;MAAE,CAAC;IAAA,CAAC;EACnE,CAAC;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA,IAAME,YAAY,GAAG,CACjB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,CAClB;AAEM,IAAMC,WAAW,GAAG,IAAAC,+BAAqB,EAACC,6BAAuB,EAAE,YAAM;EAC5E,OAAO,SAASC,mBAAmB,CAACX,KAAK,EAAE;IACvC,IAAQY,QAAQ,GAAsCZ,KAAK,CAAnDY,QAAQ;MAAEC,MAAM,GAA8Bb,KAAK,CAAzCa,MAAM;MAAEC,MAAM,GAAsBd,KAAK,CAAjCc,MAAM;MAAKC,YAAY,0CAAKf,KAAK;IAE3D,IAAMgB,kBAAkB,GAAG,SAArBA,kBAAkB,CAAIV,KAA6B,EAAK;MAC1D,IAAI,CAACM,QAAQ,IAAI,CAACN,KAAK,IAAKW,KAAK,CAACC,OAAO,CAACZ,KAAK,CAAC,IAAI,CAACA,KAAK,CAACa,MAAO,EAAE;QAChE;MACJ;MAEA,IAAIF,KAAK,CAACC,OAAO,CAACZ,KAAK,CAAC,EAAE;QACtB,IAAMc,UAAiC,GAAGd,KAAK,CAACF,GAAG,CAACR,cAAc,CAAC;QAClEgB,QAAQ,CAAgDQ,UAAU,CAAC;QACpE;MACJ;MAECR,QAAQ,CAA8ChB,cAAc,CAACU,KAAK,CAAC,CAAC;IACjF,CAAC;IAED,IAAMe,SAAkC,+DACjCN,YAAY;MACfH,QAAQ,EAAE,OAAOA,QAAQ,KAAK,UAAU,GAAGI,kBAAkB,GAAGM,SAAS;MACzER,MAAM,EAAED,MAAM,GAAGC,MAAM,IAAIP,YAAY,GAAGO,MAAM,IAAI;IAAE,EACzD;IAED,oBACI,6BAAC,sDAA0B;MACvB,MAAM,EAAEO,SAAS,CAACP,MAAM,IAAI,EAAG;MAC/B,IAAI,EAAEO,SAAS,CAACE,IAAI,IAAI,EAAG;MAC3B,KAAK,EAAEF,SAAS,CAACG,KAAM;MACvB,GAAG,EAAEH,SAAS,CAACI;IAAI,gBAEnB,6BAAC,2BAAkB,EAAKJ,SAAS,CAAI,CACZ;EAErC,CAAC;AACL,CAAC,CAAC;AAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.outputFileSelectionError = void 0;
|
|
8
|
+
var _bytes = _interopRequireDefault(require("bytes"));
|
|
9
|
+
var outputFileSelectionError = function outputFileSelectionError(errors) {
|
|
10
|
+
if (errors.length > 1) {
|
|
11
|
+
var error = errors.find(function (error) {
|
|
12
|
+
return error.type === "multipleMaxCountExceeded";
|
|
13
|
+
});
|
|
14
|
+
if (error) {
|
|
15
|
+
return "Cannot upload more than ".concat(error.multipleMaxCount, " files at once.");
|
|
16
|
+
}
|
|
17
|
+
error = errors.find(function (error) {
|
|
18
|
+
return error.type === "multipleMaxSizeExceeded";
|
|
19
|
+
});
|
|
20
|
+
if (error) {
|
|
21
|
+
return "Cannot upload more than ".concat(_bytes.default.format(error.multipleMaxSize), " at once.");
|
|
22
|
+
}
|
|
23
|
+
return "Multiple invalid files selected.";
|
|
24
|
+
}
|
|
25
|
+
switch (errors[0].type) {
|
|
26
|
+
case "unsupportedFileType":
|
|
27
|
+
return "Unsupported file type.";
|
|
28
|
+
case "maxSizeExceeded":
|
|
29
|
+
return "Max size exceeded.";
|
|
30
|
+
case "multipleMaxCountExceeded":
|
|
31
|
+
return "Multiple max files exceeded.";
|
|
32
|
+
case "multipleMaxSizeExceeded":
|
|
33
|
+
return "Multiple max size exceeded.";
|
|
34
|
+
case "multipleNotAllowed":
|
|
35
|
+
return "Only one file allowed.";
|
|
36
|
+
default:
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.outputFileSelectionError = outputFileSelectionError;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["outputFileSelectionError","errors","length","error","find","type","multipleMaxCount","bytes","format","multipleMaxSize"],"sources":["outputFileSelectionError.ts"],"sourcesContent":["import bytes from \"bytes\";\nimport { FileError } from \"react-butterfiles\";\n\nexport const outputFileSelectionError = (errors: FileError[]): string | null => {\n if (errors.length > 1) {\n let error = errors.find(error => error.type === \"multipleMaxCountExceeded\");\n if (error) {\n return `Cannot upload more than ${error.multipleMaxCount} files at once.`;\n }\n\n error = errors.find(error => error.type === \"multipleMaxSizeExceeded\");\n if (error) {\n return `Cannot upload more than ${bytes.format(error.multipleMaxSize)} at once.`;\n }\n\n return \"Multiple invalid files selected.\";\n }\n\n switch (errors[0].type) {\n case \"unsupportedFileType\":\n return \"Unsupported file type.\";\n case \"maxSizeExceeded\":\n return \"Max size exceeded.\";\n case \"multipleMaxCountExceeded\":\n return \"Multiple max files exceeded.\";\n case \"multipleMaxSizeExceeded\":\n return \"Multiple max size exceeded.\";\n case \"multipleNotAllowed\":\n return \"Only one file allowed.\";\n default:\n return null;\n }\n};\n"],"mappings":";;;;;;;AAAA;AAGO,IAAMA,wBAAwB,GAAG,SAA3BA,wBAAwB,CAAIC,MAAmB,EAAoB;EAC5E,IAAIA,MAAM,CAACC,MAAM,GAAG,CAAC,EAAE;IACnB,IAAIC,KAAK,GAAGF,MAAM,CAACG,IAAI,CAAC,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACE,IAAI,KAAK,0BAA0B;IAAA,EAAC;IAC3E,IAAIF,KAAK,EAAE;MACP,yCAAkCA,KAAK,CAACG,gBAAgB;IAC5D;IAEAH,KAAK,GAAGF,MAAM,CAACG,IAAI,CAAC,UAAAD,KAAK;MAAA,OAAIA,KAAK,CAACE,IAAI,KAAK,yBAAyB;IAAA,EAAC;IACtE,IAAIF,KAAK,EAAE;MACP,yCAAkCI,cAAK,CAACC,MAAM,CAACL,KAAK,CAACM,eAAe,CAAC;IACzE;IAEA,OAAO,kCAAkC;EAC7C;EAEA,QAAQR,MAAM,CAAC,CAAC,CAAC,CAACI,IAAI;IAClB,KAAK,qBAAqB;MACtB,OAAO,wBAAwB;IACnC,KAAK,iBAAiB;MAClB,OAAO,oBAAoB;IAC/B,KAAK,0BAA0B;MAC3B,OAAO,8BAA8B;IACzC,KAAK,yBAAyB;MAC1B,OAAO,6BAA6B;IACxC,KAAK,oBAAoB;MACrB,OAAO,wBAAwB;IACnC;MACI,OAAO,IAAI;EAAC;AAExB,CAAC;AAAC"}
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _lite = _interopRequireDefault(require("mime/lite"));
|
|
10
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
10
11
|
_lite.default.define({
|
|
11
12
|
"image/x-icon": ["ico"]
|
|
12
13
|
}, true);
|
|
@@ -27,15 +28,19 @@ var getUniqueFilePlugins = function getUniqueFilePlugins(accept) {
|
|
|
27
28
|
});
|
|
28
29
|
return Object.keys(exts);
|
|
29
30
|
};
|
|
31
|
+
var FileTypesLabel = /*#__PURE__*/(0, _styled.default)("div", {
|
|
32
|
+
label: "FileTypesLabel",
|
|
33
|
+
target: "e1n1t6qe0"
|
|
34
|
+
})("padding:10px;");
|
|
30
35
|
var SupportedFileTypes = function SupportedFileTypes(_ref) {
|
|
31
36
|
var accept = _ref.accept;
|
|
32
37
|
if (!accept) {
|
|
33
38
|
return null;
|
|
34
39
|
}
|
|
35
40
|
if (accept.length === 0) {
|
|
36
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
41
|
+
return /*#__PURE__*/_react.default.createElement(FileTypesLabel, null, "Showing all file extensions.");
|
|
37
42
|
}
|
|
38
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement(FileTypesLabel, null, "Showing the following file extensions: ", getUniqueFilePlugins(accept).join(", "), ".");
|
|
39
44
|
};
|
|
40
45
|
var _default = SupportedFileTypes;
|
|
41
46
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mime","define","getUniqueFilePlugins","accept","exts","forEach","item","ext","getExtension","Object","keys","SupportedFileTypes","length","join"],"sources":["SupportedFileTypes.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst getUniqueFilePlugins = (accept: string[]): string[] => {\n const exts: Record<string, boolean> = {};\n accept.forEach(item => {\n const ext = mime.getExtension(item);\n if (!ext) {\n return;\n }\n exts[ext] = true;\n });\n\n return Object.keys(exts);\n};\n\nexport interface SupportedFileTypesProps {\n accept: string[];\n}\n\nconst SupportedFileTypes: React.FC<SupportedFileTypesProps> = ({ accept }) => {\n if (!accept) {\n return null;\n }\n\n if (accept.length === 0) {\n return <
|
|
1
|
+
{"version":3,"names":["mime","define","getUniqueFilePlugins","accept","exts","forEach","item","ext","getExtension","Object","keys","FileTypesLabel","styled","SupportedFileTypes","length","join"],"sources":["SupportedFileTypes.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\nimport styled from \"@emotion/styled\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst getUniqueFilePlugins = (accept: string[]): string[] => {\n const exts: Record<string, boolean> = {};\n accept.forEach(item => {\n const ext = mime.getExtension(item);\n if (!ext) {\n return;\n }\n exts[ext] = true;\n });\n\n return Object.keys(exts);\n};\n\nconst FileTypesLabel = styled.div`\n padding: 10px;\n`;\n\nexport interface SupportedFileTypesProps {\n accept: string[];\n}\n\nconst SupportedFileTypes: React.FC<SupportedFileTypesProps> = ({ accept }) => {\n if (!accept) {\n return null;\n }\n\n if (accept.length === 0) {\n return <FileTypesLabel>Showing all file extensions.</FileTypesLabel>;\n }\n\n return (\n <FileTypesLabel>\n Showing the following file extensions: {getUniqueFilePlugins(accept).join(\", \")}.\n </FileTypesLabel>\n );\n};\n\nexport default SupportedFileTypes;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEAA,aAAI,CAACC,MAAM,CAAC;EAAE,cAAc,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC9CD,aAAI,CAACC,MAAM,CAAC;EAAE,WAAW,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC3CD,aAAI,CAACC,MAAM,CAAC;EAAE,0BAA0B,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAE1D,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoB,CAAIC,MAAgB,EAAe;EACzD,IAAMC,IAA6B,GAAG,CAAC,CAAC;EACxCD,MAAM,CAACE,OAAO,CAAC,UAAAC,IAAI,EAAI;IACnB,IAAMC,GAAG,GAAGP,aAAI,CAACQ,YAAY,CAACF,IAAI,CAAC;IACnC,IAAI,CAACC,GAAG,EAAE;MACN;IACJ;IACAH,IAAI,CAACG,GAAG,CAAC,GAAG,IAAI;EACpB,CAAC,CAAC;EAEF,OAAOE,MAAM,CAACC,IAAI,CAACN,IAAI,CAAC;AAC5B,CAAC;AAED,IAAMO,cAAc,oBAAGC,eAAM;EAAA;EAAA;AAAA,mBAE5B;AAMD,IAAMC,kBAAqD,GAAG,SAAxDA,kBAAqD,OAAmB;EAAA,IAAbV,MAAM,QAANA,MAAM;EACnE,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,IAAIA,MAAM,CAACW,MAAM,KAAK,CAAC,EAAE;IACrB,oBAAO,6BAAC,cAAc,QAAC,8BAA4B,CAAiB;EACxE;EAEA,oBACI,6BAAC,cAAc,QAAC,yCAC2B,EAACZ,oBAAoB,CAACC,MAAM,CAAC,CAACY,IAAI,CAAC,IAAI,CAAC,EAAC,GACpF,CAAiB;AAEzB,CAAC;AAAC,eAEaF,kBAAkB;AAAA"}
|
|
@@ -7,45 +7,57 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
10
|
-
var
|
|
10
|
+
var _react2 = require("@emotion/react");
|
|
11
|
+
var _loading = _interopRequireDefault(require("./assets/loading.svg"));
|
|
12
|
+
var _check = _interopRequireDefault(require("./assets/check.svg"));
|
|
13
|
+
var animateShow = /*#__PURE__*/(0, _react2.keyframes)("0%{opacity:0;top:0;}60%{opacity:1;top:-55px;}100%{opacity:1;top:-50px;}label:animateShow;");
|
|
11
14
|
var StatusWrapper = /*#__PURE__*/(0, _styled.default)("div", {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
})(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
})({
|
|
30
|
-
position: "relative",
|
|
31
|
-
height: 12,
|
|
32
|
-
width: 12
|
|
33
|
-
});
|
|
15
|
+
label: "StatusWrapper",
|
|
16
|
+
target: "exct32u0"
|
|
17
|
+
})("border-radius:28px;width:320px;transform:translate(-50%,-50%);position:absolute;box-shadow:0 2px 6px rgba(170,185,200,0.4);color:var(--mdc-theme-on-surface);background-color:#fff;left:calc(50vw - 160px);top:-50px;display:flex;align-items:center;animation-name:", animateShow, ";animation-duration:1.5s;animation-timing-function:ease-out;");
|
|
18
|
+
var ProgressWrapper = /*#__PURE__*/(0, _styled.default)("div", {
|
|
19
|
+
label: "ProgressWrapper",
|
|
20
|
+
target: "exct32u1"
|
|
21
|
+
})("display:flex;flex-direction:column;width:225px;align-items:center;justify-content:center;margin-left:15px;margin-top:-5px;");
|
|
22
|
+
var ProgressBar = /*#__PURE__*/(0, _styled.default)("div", {
|
|
23
|
+
label: "ProgressBar",
|
|
24
|
+
target: "exct32u2"
|
|
25
|
+
})("top:0;z-index:1;height:5px;border-radius:5px;background-color:var(--mdc-theme-on-background);width:100%;overflow:hidden;");
|
|
26
|
+
var ProgressBarPercentage = /*#__PURE__*/(0, _styled.default)("span", {
|
|
27
|
+
label: "ProgressBarPercentage",
|
|
28
|
+
target: "exct32u3"
|
|
29
|
+
})("display:block;height:100%;background-color:var(--mdc-theme-secondary);width:", function (props) {
|
|
30
|
+
return props.width || 0;
|
|
31
|
+
}, "%;");
|
|
34
32
|
var UploadingLabel = /*#__PURE__*/(0, _styled.default)("div", {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
})({
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
label: "UploadingLabel",
|
|
34
|
+
target: "exct32u4"
|
|
35
|
+
})("z-index:2;padding:5px 0 6px 0px;text-transform:uppercase;color:var(--mdc-theme-text-secondary-on-background);span{font-weight:600;}");
|
|
36
|
+
var StatusIndicator = /*#__PURE__*/(0, _styled.default)("div", {
|
|
37
|
+
label: "StatusIndicator",
|
|
38
|
+
target: "exct32u5"
|
|
39
|
+
})("width:56px !important;position:relative;display:block;z-index:2;background:var(--mdc-theme-secondary);line-height:56px;height:56px;border-radius:28px;width:100%;text-align:center;color:#fff;box-shadow:0 2px 6px rgba(170,185,200,0.4);");
|
|
40
|
+
var Percentage = /*#__PURE__*/(0, _styled.default)("span", {
|
|
41
|
+
label: "Percentage",
|
|
42
|
+
target: "exct32u6"
|
|
43
|
+
})("font-weight:600;");
|
|
44
|
+
var Icon = /*#__PURE__*/(0, _styled.default)("img", {
|
|
45
|
+
label: "Icon",
|
|
46
|
+
target: "exct32u7"
|
|
47
|
+
})("position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;fill:#fff;&.loading{width:75px;left:5px;top:5px;}");
|
|
40
48
|
var UploadStatus = function UploadStatus(_ref) {
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
var numberOfFiles = _ref.numberOfFiles,
|
|
50
|
+
progress = _ref.progress;
|
|
51
|
+
return /*#__PURE__*/_react.default.createElement(StatusWrapper, null, /*#__PURE__*/_react.default.createElement(StatusIndicator, null, Number(progress.toFixed()) <= 98 ? /*#__PURE__*/_react.default.createElement(Icon, {
|
|
52
|
+
className: "loading",
|
|
53
|
+
src: _loading.default,
|
|
54
|
+
alt: "Loading"
|
|
55
|
+
}) : /*#__PURE__*/_react.default.createElement(Icon, {
|
|
56
|
+
src: _check.default,
|
|
57
|
+
alt: "Done"
|
|
58
|
+
}), Number(progress.toFixed()) <= 98 && /*#__PURE__*/_react.default.createElement(Percentage, null, progress.toFixed(), "%")), /*#__PURE__*/_react.default.createElement(ProgressWrapper, null, /*#__PURE__*/_react.default.createElement(UploadingLabel, null, "Uploading ", /*#__PURE__*/_react.default.createElement("span", null, numberOfFiles), " file(s)"), /*#__PURE__*/_react.default.createElement(ProgressBar, null, /*#__PURE__*/_react.default.createElement(ProgressBarPercentage, {
|
|
59
|
+
width: progress.toFixed()
|
|
60
|
+
}))));
|
|
49
61
|
};
|
|
50
62
|
var _default = UploadStatus;
|
|
51
63
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StatusWrapper","styled","
|
|
1
|
+
{"version":3,"names":["animateShow","keyframes","StatusWrapper","styled","ProgressWrapper","ProgressBar","ProgressBarPercentage","props","width","UploadingLabel","StatusIndicator","Percentage","Icon","UploadStatus","numberOfFiles","progress","Number","toFixed","loadingIcon","checkIcon"],"sources":["UploadStatus.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { keyframes } from \"@emotion/react\";\n\nconst animateShow = keyframes`\n 0% { \n opacity: 0;\n top: 0;\n }\n 60% { \n opacity: 1; \n top: -55px;\n }\n 100% { \n opacity: 1; \n top: -50px;\n }\n`;\n\nimport loadingIcon from \"./assets/loading.svg\";\nimport checkIcon from \"./assets/check.svg\";\n\nconst StatusWrapper = styled.div`\n border-radius: 28px;\n width: 320px;\n transform: translate(-50%, -50%);\n position: absolute;\n box-shadow: 0 2px 6px rgba(170, 185, 200, 0.4);\n color: var(--mdc-theme-on-surface);\n background-color: #fff;\n left: calc(50vw - 160px);\n top: -50px;\n display: flex;\n align-items: center;\n animation-name: ${animateShow};\n animation-duration: 1.5s;\n animation-timing-function: ease-out;\n`;\n\nconst ProgressWrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 225px;\n align-items: center;\n justify-content: center;\n margin-left: 15px;\n margin-top: -5px;\n`;\n\nconst ProgressBar = styled.div`\n top: 0;\n z-index: 1;\n height: 5px;\n border-radius: 5px;\n background-color: var(--mdc-theme-on-background);\n width: 100%;\n overflow: hidden;\n`;\n\nconst ProgressBarPercentage = styled.span<{ width: string }>`\n display: block;\n height: 100%;\n background-color: var(--mdc-theme-secondary);\n width: ${props => props.width || 0}%;\n`;\n\nconst UploadingLabel = styled.div`\n z-index: 2;\n padding: 5px 0 6px 0px;\n text-transform: uppercase;\n color: var(--mdc-theme-text-secondary-on-background);\n span {\n font-weight: 600;\n }\n`;\n\nconst StatusIndicator = styled.div`\n width: 56px !important;\n position: relative;\n display: block;\n z-index: 2;\n background: var(--mdc-theme-secondary);\n line-height: 56px;\n height: 56px;\n border-radius: 28px;\n width: 100%;\n text-align: center;\n color: #fff;\n box-shadow: 0 2px 6px rgba(170, 185, 200, 0.4);\n`;\n\nconst Percentage = styled.span`\n font-weight: 600;\n`;\n\nconst Icon = styled.img`\n position: absolute;\n left: 50%;\n top: 50%;\n margin: -15px 0 0 -15px;\n fill: #fff;\n &.loading {\n width: 75px;\n left: 5px;\n top: 5px;\n }\n`;\n\nexport interface UploadStatusProps {\n progress: number;\n numberOfFiles: number;\n}\nconst UploadStatus: React.FC<UploadStatusProps> = ({ numberOfFiles, progress }) => {\n return (\n <StatusWrapper>\n <StatusIndicator>\n {Number(progress.toFixed()) <= 98 ? (\n <Icon className=\"loading\" src={loadingIcon} alt=\"Loading\" />\n ) : (\n <Icon src={checkIcon} alt=\"Done\" />\n )}\n {Number(progress.toFixed()) <= 98 && <Percentage>{progress.toFixed()}%</Percentage>}\n </StatusIndicator>\n <ProgressWrapper>\n <UploadingLabel>\n Uploading <span>{numberOfFiles}</span> file(s)\n </UploadingLabel>\n <ProgressBar>\n <ProgressBarPercentage width={progress.toFixed()} />\n </ProgressBar>\n </ProgressWrapper>\n </StatusWrapper>\n );\n};\n\nexport default UploadStatus;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAiBA;AACA;AAhBA,IAAMA,WAAW,oBAAGC,iBAAS,8FAa5B;AAKD,IAAMC,aAAa,oBAAGC,eAAM;EAAA;EAAA;AAAA,2QAYNH,WAAW,iEAGhC;AAED,IAAMI,eAAe,oBAAGD,eAAM;EAAA;EAAA;AAAA,gIAQ7B;AAED,IAAME,WAAW,oBAAGF,eAAM;EAAA;EAAA;AAAA,8HAQzB;AAED,IAAMG,qBAAqB,oBAAGH,eAAM;EAAA;EAAA;AAAA,mFAIvB,UAAAI,KAAK;EAAA,OAAIA,KAAK,CAACC,KAAK,IAAI,CAAC;AAAA,QACrC;AAED,IAAMC,cAAc,oBAAGN,eAAM;EAAA;EAAA;AAAA,yIAQ5B;AAED,IAAMO,eAAe,oBAAGP,eAAM;EAAA;EAAA;AAAA,+OAa7B;AAED,IAAMQ,UAAU,oBAAGR,eAAM;EAAA;EAAA;AAAA,sBAExB;AAED,IAAMS,IAAI,oBAAGT,eAAM;EAAA;EAAA;AAAA,iHAWlB;AAMD,IAAMU,YAAyC,GAAG,SAA5CA,YAAyC,OAAoC;EAAA,IAA9BC,aAAa,QAAbA,aAAa;IAAEC,QAAQ,QAARA,QAAQ;EACxE,oBACI,6BAAC,aAAa,qBACV,6BAAC,eAAe,QACXC,MAAM,CAACD,QAAQ,CAACE,OAAO,EAAE,CAAC,IAAI,EAAE,gBAC7B,6BAAC,IAAI;IAAC,SAAS,EAAC,SAAS;IAAC,GAAG,EAAEC,gBAAY;IAAC,GAAG,EAAC;EAAS,EAAG,gBAE5D,6BAAC,IAAI;IAAC,GAAG,EAAEC,cAAU;IAAC,GAAG,EAAC;EAAM,EACnC,EACAH,MAAM,CAACD,QAAQ,CAACE,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAI,6BAAC,UAAU,QAAEF,QAAQ,CAACE,OAAO,EAAE,EAAC,GAAC,CAAa,CACrE,eAClB,6BAAC,eAAe,qBACZ,6BAAC,cAAc,QAAC,YACF,0DAAOH,aAAa,CAAQ,YAC1C,CAAiB,eACjB,6BAAC,WAAW,qBACR,6BAAC,qBAAqB;IAAC,KAAK,EAAEC,QAAQ,CAACE,OAAO;EAAG,EAAG,CAC1C,CACA,CACN;AAExB,CAAC;AAAC,eAEaJ,YAAY;AAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg x="0px" y="0px" width="30px" height="30px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
|
|
3
|
+
<path opacity="0.3" fill="#fff" d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946
|
|
4
|
+
s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634
|
|
5
|
+
c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z" />
|
|
6
|
+
|
|
7
|
+
<path fill="#fff" d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0
|
|
8
|
+
C22.32,8.481,24.301,9.057,26.013,10.047z">
|
|
9
|
+
<animateTransform attributeType="xml"
|
|
10
|
+
attributeName="transform"
|
|
11
|
+
type="rotate"
|
|
12
|
+
from="0 20 20"
|
|
13
|
+
to="360 20 20"
|
|
14
|
+
dur="1s"
|
|
15
|
+
repeatCount="indefinite" />
|
|
16
|
+
</path>
|
|
17
|
+
</svg>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
export interface BottomInfoBarProps {
|
|
3
|
+
children?: React.ReactNode;
|
|
4
|
+
}
|
|
5
|
+
declare const BottomInfoBar: ({ children }: BottomInfoBarProps) => JSX.Element;
|
|
5
6
|
export default BottomInfoBar;
|
|
@@ -8,8 +8,6 @@ exports.default = void 0;
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _lite = _interopRequireDefault(require("mime/lite"));
|
|
10
10
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
11
|
-
var _SupportedFileTypes = _interopRequireDefault(require("./BottomInfoBar/SupportedFileTypes"));
|
|
12
|
-
var _UploadStatus = _interopRequireDefault(require("./BottomInfoBar/UploadStatus"));
|
|
13
11
|
_lite.default.define({
|
|
14
12
|
"image/x-icon": ["ico"]
|
|
15
13
|
}, true);
|
|
@@ -20,29 +18,12 @@ _lite.default.define({
|
|
|
20
18
|
"image/vnd.microsoft.icon": ["ico"]
|
|
21
19
|
}, true);
|
|
22
20
|
var BottomInfoBarWrapper = /*#__PURE__*/(0, _styled.default)("div", {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
})({
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
height: 30,
|
|
30
|
-
color: "var(--mdc-theme-text-secondary-on-background)",
|
|
31
|
-
borderTop: "1px solid var(--mdc-theme-on-background)",
|
|
32
|
-
backgroundColor: "var(--mdc-theme-surface)",
|
|
33
|
-
width: "100%",
|
|
34
|
-
transform: "translateZ(0)",
|
|
35
|
-
overflow: "hidden",
|
|
36
|
-
display: "flex",
|
|
37
|
-
alignItems: "center",
|
|
38
|
-
zIndex: 1,
|
|
39
|
-
"> div": {
|
|
40
|
-
padding: "0 10px",
|
|
41
|
-
width: "100%"
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
var BottomInfoBar = function BottomInfoBar(props) {
|
|
45
|
-
return /*#__PURE__*/_react.default.createElement(BottomInfoBarWrapper, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_SupportedFileTypes.default, props), /*#__PURE__*/_react.default.createElement(_UploadStatus.default, props)));
|
|
21
|
+
label: "BottomInfoBarWrapper",
|
|
22
|
+
target: "e16yhave0"
|
|
23
|
+
})("font-size:0.8rem;position:sticky;bottom:0px;height:30px;color:var(--mdc-theme-text-secondary-on-background);border-top:1px solid var(--mdc-theme-on-background);background-color:var(--mdc-theme-surface);width:100%;transform:translateZ(0);overflow:visible;display:flex;align-items:center;z-index:1;> div{position:relative;width:100%;height:100%;}");
|
|
24
|
+
var BottomInfoBar = function BottomInfoBar(_ref) {
|
|
25
|
+
var children = _ref.children;
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement(BottomInfoBarWrapper, null, /*#__PURE__*/_react.default.createElement("div", null, children));
|
|
46
27
|
};
|
|
47
28
|
var _default = BottomInfoBar;
|
|
48
29
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mime","define","BottomInfoBarWrapper","styled","
|
|
1
|
+
{"version":3,"names":["mime","define","BottomInfoBarWrapper","styled","BottomInfoBar","children"],"sources":["BottomInfoBar.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\nimport styled from \"@emotion/styled\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst BottomInfoBarWrapper = styled.div`\n font-size: 0.8rem;\n position: sticky;\n bottom: 0px;\n height: 30px;\n color: var(--mdc-theme-text-secondary-on-background);\n border-top: 1px solid var(--mdc-theme-on-background);\n background-color: var(--mdc-theme-surface);\n width: 100%;\n transform: translateZ(0);\n overflow: visible;\n display: flex;\n align-items: center;\n z-index: 1;\n > div {\n position: relative;\n width: 100%;\n height: 100%;\n }\n`;\n\nexport interface BottomInfoBarProps {\n children?: React.ReactNode;\n}\n\nconst BottomInfoBar = ({ children }: BottomInfoBarProps) => {\n return (\n <BottomInfoBarWrapper>\n <div>{children}</div>\n </BottomInfoBarWrapper>\n );\n};\n\nexport default BottomInfoBar;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEAA,aAAI,CAACC,MAAM,CAAC;EAAE,cAAc,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC9CD,aAAI,CAACC,MAAM,CAAC;EAAE,WAAW,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAC3CD,aAAI,CAACC,MAAM,CAAC;EAAE,0BAA0B,EAAE,CAAC,KAAK;AAAE,CAAC,EAAE,IAAI,CAAC;AAE1D,IAAMC,oBAAoB,oBAAGC,eAAM;EAAA;EAAA;AAAA,8VAmBlC;AAMD,IAAMC,aAAa,GAAG,SAAhBA,aAAa,OAAyC;EAAA,IAAnCC,QAAQ,QAARA,QAAQ;EAC7B,oBACI,6BAAC,oBAAoB,qBACjB,0CAAMA,QAAQ,CAAO,CACF;AAE/B,CAAC;AAAC,eAEaD,aAAa;AAAA"}
|