@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.
Files changed (204) hide show
  1. package/BatchFileUploader.d.ts +35 -0
  2. package/BatchFileUploader.js +180 -0
  3. package/BatchFileUploader.js.map +1 -0
  4. package/components/BottomInfoBar/BottomInfoBar.d.ts +4 -0
  5. package/components/BottomInfoBar/BottomInfoBar.js +25 -0
  6. package/components/BottomInfoBar/BottomInfoBar.js.map +1 -0
  7. package/components/BottomInfoBar/ListStatus.d.ts +6 -0
  8. package/components/BottomInfoBar/ListStatus.js +26 -0
  9. package/components/BottomInfoBar/ListStatus.js.map +1 -0
  10. package/components/BottomInfoBar/SupportedFileTypes.d.ts +6 -0
  11. package/components/BottomInfoBar/SupportedFileTypes.js +47 -0
  12. package/components/BottomInfoBar/SupportedFileTypes.js.map +1 -0
  13. package/components/BottomInfoBar/index.d.ts +1 -0
  14. package/components/BottomInfoBar/index.js +16 -0
  15. package/components/BottomInfoBar/index.js.map +1 -0
  16. package/components/BottomInfoBar/styled.d.ts +23 -0
  17. package/components/BottomInfoBar/styled.js +33 -0
  18. package/components/BottomInfoBar/styled.js.map +1 -0
  19. package/components/DropFilesHere/DropFilesHere.d.ts +9 -0
  20. package/components/DropFilesHere/DropFilesHere.js +31 -0
  21. package/components/DropFilesHere/DropFilesHere.js.map +1 -0
  22. package/components/DropFilesHere/index.d.ts +1 -0
  23. package/components/DropFilesHere/index.js +16 -0
  24. package/components/DropFilesHere/index.js.map +1 -0
  25. package/components/DropFilesHere/styled.d.ts +26 -0
  26. package/components/DropFilesHere/styled.js +35 -0
  27. package/components/DropFilesHere/styled.js.map +1 -0
  28. package/components/Empty/Empty.d.ts +8 -0
  29. package/components/Empty/Empty.js +31 -0
  30. package/components/Empty/Empty.js.map +1 -0
  31. package/components/Empty/index.d.ts +1 -0
  32. package/components/Empty/index.js +16 -0
  33. package/components/Empty/index.js.map +1 -0
  34. package/components/FileDetails/Aliases.js +8 -4
  35. package/components/FileDetails/Aliases.js.map +1 -1
  36. package/components/FileDetails/DeleteImageAction.d.ts +6 -2
  37. package/components/FileDetails/DeleteImageAction.js +19 -52
  38. package/components/FileDetails/DeleteImageAction.js.map +1 -1
  39. package/components/FileDetails/FileDetails.d.ts +24 -0
  40. package/components/FileDetails/FileDetails.js +267 -0
  41. package/components/FileDetails/FileDetails.js.map +1 -0
  42. package/components/FileDetails/Name.js +2 -2
  43. package/components/FileDetails/Name.js.map +1 -1
  44. package/components/FileDetails/Tags.d.ts +6 -2
  45. package/components/FileDetails/Tags.js +31 -16
  46. package/components/FileDetails/Tags.js.map +1 -1
  47. package/components/FileDetails/index.d.ts +1 -0
  48. package/components/FileDetails/index.js +16 -0
  49. package/components/FileDetails/index.js.map +1 -0
  50. package/components/Grid/File.d.ts +16 -0
  51. package/components/Grid/File.js +57 -0
  52. package/components/Grid/File.js.map +1 -0
  53. package/components/Grid/Grid.d.ts +17 -0
  54. package/components/Grid/Grid.js +99 -0
  55. package/components/Grid/Grid.js.map +1 -0
  56. package/components/Grid/index.d.ts +1 -0
  57. package/components/Grid/index.js +16 -0
  58. package/components/Grid/index.js.map +1 -0
  59. package/components/Grid/styled.d.ts +40 -0
  60. package/components/Grid/styled.js +58 -0
  61. package/components/Grid/styled.js.map +1 -0
  62. package/components/NoPermission/NoPermission.d.ts +2 -0
  63. package/components/NoPermission/NoPermission.js +24 -0
  64. package/components/NoPermission/NoPermission.js.map +1 -0
  65. package/components/NoPermission/index.d.ts +1 -0
  66. package/components/NoPermission/index.js +16 -0
  67. package/components/NoPermission/index.js.map +1 -0
  68. package/components/NoPermission/styled.d.ts +32 -0
  69. package/components/NoPermission/styled.js +40 -0
  70. package/components/NoPermission/styled.js.map +1 -0
  71. package/components/NoResults/NoResults.d.ts +2 -0
  72. package/components/NoResults/NoResults.js +17 -0
  73. package/components/NoResults/NoResults.js.map +1 -0
  74. package/components/NoResults/index.d.ts +1 -0
  75. package/components/NoResults/index.js +16 -0
  76. package/components/NoResults/index.js.map +1 -0
  77. package/components/NoResults/styled.d.ts +7 -0
  78. package/components/NoResults/styled.js +13 -0
  79. package/components/NoResults/styled.js.map +1 -0
  80. package/components/Table/FolderActionDelete.d.ts +6 -0
  81. package/components/Table/FolderActionDelete.js +25 -0
  82. package/components/Table/FolderActionDelete.js.map +1 -0
  83. package/components/Table/FolderActionEdit.d.ts +6 -0
  84. package/components/Table/FolderActionEdit.js +25 -0
  85. package/components/Table/FolderActionEdit.js.map +1 -0
  86. package/components/Table/Name.d.ts +12 -0
  87. package/components/Table/Name.js +39 -0
  88. package/components/Table/Name.js.map +1 -0
  89. package/components/Table/RecordActionCopy.d.ts +8 -0
  90. package/components/Table/RecordActionCopy.js +30 -0
  91. package/components/Table/RecordActionCopy.js.map +1 -0
  92. package/components/Table/RecordActionDelete.d.ts +8 -0
  93. package/components/Table/RecordActionDelete.js +36 -0
  94. package/components/Table/RecordActionDelete.js.map +1 -0
  95. package/components/Table/RecordActionEdit.d.ts +7 -0
  96. package/components/Table/RecordActionEdit.js +28 -0
  97. package/components/Table/RecordActionEdit.js.map +1 -0
  98. package/components/Table/RecordActionMove.d.ts +6 -0
  99. package/components/Table/RecordActionMove.js +25 -0
  100. package/components/Table/RecordActionMove.js.map +1 -0
  101. package/components/Table/Table.d.ts +31 -0
  102. package/components/Table/Table.js +256 -0
  103. package/components/Table/Table.js.map +1 -0
  104. package/components/Table/index.d.ts +1 -0
  105. package/components/Table/index.js +16 -0
  106. package/components/Table/index.js.map +1 -0
  107. package/components/Table/styled.d.ts +21 -0
  108. package/components/Table/styled.js +35 -0
  109. package/components/Table/styled.js.map +1 -0
  110. package/components/Title/Title.d.ts +5 -0
  111. package/components/Title/Title.js +20 -0
  112. package/components/Title/Title.js.map +1 -0
  113. package/components/Title/index.d.ts +1 -0
  114. package/components/Title/index.js +16 -0
  115. package/components/Title/index.js.map +1 -0
  116. package/components/Title/styled.d.ts +7 -0
  117. package/components/Title/styled.js +14 -0
  118. package/components/Title/styled.js.map +1 -0
  119. package/components/UploadStatus/UploadStatus.d.ts +6 -0
  120. package/components/UploadStatus/UploadStatus.js +36 -0
  121. package/components/UploadStatus/UploadStatus.js.map +1 -0
  122. package/components/UploadStatus/assets/check.svg +3 -0
  123. package/components/UploadStatus/assets/loading.svg +17 -0
  124. package/components/UploadStatus/index.d.ts +1 -0
  125. package/components/UploadStatus/index.js +16 -0
  126. package/components/UploadStatus/index.js.map +1 -0
  127. package/components/UploadStatus/styled.d.ts +41 -0
  128. package/components/UploadStatus/styled.js +57 -0
  129. package/components/UploadStatus/styled.js.map +1 -0
  130. package/constants.d.ts +3 -0
  131. package/constants.js +12 -0
  132. package/constants.js.map +1 -0
  133. package/hooks/useCopyFile.d.ts +11 -0
  134. package/hooks/useCopyFile.js +30 -0
  135. package/hooks/useCopyFile.js.map +1 -0
  136. package/hooks/useDeleteFile.d.ts +9 -0
  137. package/hooks/useDeleteFile.js +64 -0
  138. package/hooks/useDeleteFile.js.map +1 -0
  139. package/index.d.ts +1 -0
  140. package/index.js +9 -1
  141. package/index.js.map +1 -1
  142. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.d.ts +9 -3
  143. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js +82 -52
  144. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js.map +1 -1
  145. package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.d.ts +2 -2
  146. package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js +3 -3
  147. package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js.map +1 -1
  148. package/modules/FileManagerApiProvider/graphql.d.ts +4 -0
  149. package/modules/FileManagerApiProvider/graphql.js +9 -7
  150. package/modules/FileManagerApiProvider/graphql.js.map +1 -1
  151. package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.d.ts +18 -0
  152. package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js +622 -0
  153. package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js.map +1 -0
  154. package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.d.ts +12 -0
  155. package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js +75 -0
  156. package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js.map +1 -0
  157. package/modules/FileManagerRenderer/AcoRenderer/index.d.ts +2 -0
  158. package/modules/FileManagerRenderer/AcoRenderer/index.js +70 -0
  159. package/modules/FileManagerRenderer/AcoRenderer/index.js.map +1 -0
  160. package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.d.ts +2 -0
  161. package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js +40 -0
  162. package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js.map +1 -0
  163. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js +7 -2
  164. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js.map +1 -1
  165. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.d.ts +2 -1
  166. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js +48 -36
  167. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js.map +1 -1
  168. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/check.svg +3 -0
  169. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/loading.svg +17 -0
  170. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.d.ts +4 -3
  171. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js +6 -25
  172. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js.map +1 -1
  173. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.d.ts +2 -2
  174. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js +80 -109
  175. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js.map +1 -1
  176. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.d.ts +54 -0
  177. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js +430 -0
  178. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js.map +1 -0
  179. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.d.ts +2 -0
  180. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js +27 -0
  181. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js.map +1 -0
  182. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.d.ts +74 -0
  183. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js +119 -0
  184. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js.map +1 -0
  185. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.d.ts +3 -0
  186. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js +15 -0
  187. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js.map +1 -0
  188. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.d.ts +4 -3
  189. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js +23 -19
  190. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js.map +1 -1
  191. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.d.ts +0 -3
  192. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js +0 -5
  193. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js.map +1 -1
  194. package/modules/FileManagerRenderer/index.js +2 -2
  195. package/modules/FileManagerRenderer/index.js.map +1 -1
  196. package/modules/FileTypes/fileImage/EditAction.js +2 -2
  197. package/modules/FileTypes/fileImage/EditAction.js.map +1 -1
  198. package/package.json +18 -12
  199. package/tagsHelpers.d.ts +16 -0
  200. package/tagsHelpers.js +41 -0
  201. package/tagsHelpers.js.map +1 -0
  202. package/types.d.ts +1 -0
  203. package/types.js +8 -1
  204. 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,2 @@
1
+ import React from "react";
2
+ export declare const AcoRenderer: React.FC<{}>;
@@ -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,2 @@
1
+ import { FileError } from "react-butterfiles";
2
+ export declare const outputFileSelectionError: (errors: FileError[]) => string | null;
@@ -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("span", null, "Showing all file extensions.");
41
+ return /*#__PURE__*/_react.default.createElement(FileTypesLabel, null, "Showing all file extensions.");
37
42
  }
38
- return /*#__PURE__*/_react.default.createElement("span", null, "Showing the following file extensions: ", getUniqueFilePlugins(accept).join(", "), ".");
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 <span>Showing all file extensions.</span>;\n }\n\n return (\n <span>\n Showing the following file extensions: {getUniqueFilePlugins(accept).join(\", \")}.\n </span>\n );\n};\n\nexport default SupportedFileTypes;\n"],"mappings":";;;;;;;AAAA;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;AAMD,IAAMO,kBAAqD,GAAG,SAAxDA,kBAAqD,OAAmB;EAAA,IAAbR,MAAM,QAANA,MAAM;EACnE,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,IAAIA,MAAM,CAACS,MAAM,KAAK,CAAC,EAAE;IACrB,oBAAO,2CAAM,8BAA4B,CAAO;EACpD;EAEA,oBACI,2CAAM,yCACqC,EAACV,oBAAoB,CAACC,MAAM,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC,EAAC,GACpF,CAAO;AAEf,CAAC;AAAC,eAEaF,kBAAkB;AAAA"}
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"}
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  export interface UploadStatusProps {
3
- uploading: boolean;
3
+ progress: number;
4
+ numberOfFiles: number;
4
5
  }
5
6
  declare const UploadStatus: React.FC<UploadStatusProps>;
6
7
  export default UploadStatus;
@@ -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 _Progress = require("@webiny/ui/Progress");
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
- target: "exct32u0",
13
- label: "StatusWrapper"
14
- })({
15
- color: "var(--mdc-theme-primary)",
16
- position: "absolute",
17
- right: 0,
18
- bottom: 10,
19
- marginRight: 10,
20
- display: "flex",
21
- alignItems: "center",
22
- "> div": {
23
- display: "inline-block"
24
- }
25
- });
26
- var CircularProgressHolder = /*#__PURE__*/(0, _styled.default)("div", {
27
- target: "exct32u1",
28
- label: "CircularProgressHolder"
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
- target: "exct32u2",
36
- label: "UploadingLabel"
37
- })({
38
- marginRight: 5
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 uploading = _ref.uploading;
42
- if (!uploading) {
43
- return null;
44
- }
45
- return /*#__PURE__*/_react.default.createElement(StatusWrapper, null, /*#__PURE__*/_react.default.createElement(UploadingLabel, null, "Uploading..."), /*#__PURE__*/_react.default.createElement(CircularProgressHolder, null, /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
46
- size: 10,
47
- spinnerWidth: 1
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","color","position","right","bottom","marginRight","display","alignItems","CircularProgressHolder","height","width","UploadingLabel","UploadStatus","uploading"],"sources":["UploadStatus.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\n\nconst StatusWrapper = styled(\"div\")({\n color: \"var(--mdc-theme-primary)\",\n position: \"absolute\",\n right: 0,\n bottom: 10,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"> div\": {\n display: \"inline-block\"\n }\n});\n\nconst CircularProgressHolder = styled(\"div\")({\n position: \"relative\",\n height: 12,\n width: 12\n});\n\nconst UploadingLabel = styled(\"div\")({\n marginRight: 5\n});\n\nexport interface UploadStatusProps {\n uploading: boolean;\n}\nconst UploadStatus: React.FC<UploadStatusProps> = ({ uploading }) => {\n if (!uploading) {\n return null;\n }\n\n return (\n <StatusWrapper>\n <UploadingLabel>Uploading...</UploadingLabel>\n <CircularProgressHolder>\n <CircularProgress size={10} spinnerWidth={1} />\n </CircularProgressHolder>\n </StatusWrapper>\n );\n};\n\nexport default UploadStatus;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA,IAAMA,aAAa,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EAChCC,KAAK,EAAE,0BAA0B;EACjCC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,CAAC;EACRC,MAAM,EAAE,EAAE;EACVC,WAAW,EAAE,EAAE;EACfC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,QAAQ;EACpB,OAAO,EAAE;IACLD,OAAO,EAAE;EACb;AACJ,CAAC,CAAC;AAEF,IAAME,sBAAsB,oBAAGR,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACzCE,QAAQ,EAAE,UAAU;EACpBO,MAAM,EAAE,EAAE;EACVC,KAAK,EAAE;AACX,CAAC,CAAC;AAEF,IAAMC,cAAc,oBAAGX,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACjCK,WAAW,EAAE;AACjB,CAAC,CAAC;AAKF,IAAMO,YAAyC,GAAG,SAA5CA,YAAyC,OAAsB;EAAA,IAAhBC,SAAS,QAATA,SAAS;EAC1D,IAAI,CAACA,SAAS,EAAE;IACZ,OAAO,IAAI;EACf;EAEA,oBACI,6BAAC,aAAa,qBACV,6BAAC,cAAc,QAAC,cAAY,CAAiB,eAC7C,6BAAC,sBAAsB,qBACnB,6BAAC,0BAAgB;IAAC,IAAI,EAAE,EAAG;IAAC,YAAY,EAAE;EAAE,EAAG,CAC1B,CACb;AAExB,CAAC;AAAC,eAEaD,YAAY;AAAA"}
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,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24">
2
+ <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" fill="#fff" />
3
+ </svg>
@@ -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
- import { SupportedFileTypesProps } from "./BottomInfoBar/SupportedFileTypes";
3
- import { UploadStatusProps } from "./BottomInfoBar/UploadStatus";
4
- declare const BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps>;
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
- target: "e16yhave0",
24
- label: "BottomInfoBarWrapper"
25
- })({
26
- fontSize: "0.8rem",
27
- position: "sticky",
28
- bottom: 0,
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","fontSize","position","bottom","height","color","borderTop","backgroundColor","width","transform","overflow","display","alignItems","zIndex","padding","BottomInfoBar","props"],"sources":["BottomInfoBar.tsx"],"sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\nimport styled from \"@emotion/styled\";\nimport SupportedFileTypes, { SupportedFileTypesProps } from \"./BottomInfoBar/SupportedFileTypes\";\nimport UploadStatus, { UploadStatusProps } from \"./BottomInfoBar/UploadStatus\";\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 fontSize: \"0.8rem\",\n position: \"sticky\",\n bottom: 0,\n height: 30,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n width: \"100%\",\n transform: \"translateZ(0)\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n zIndex: 1,\n \"> div\": {\n padding: \"0 10px\",\n width: \"100%\"\n }\n});\n\nconst BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps> = props => {\n return (\n <BottomInfoBarWrapper>\n <div>\n <SupportedFileTypes {...props} />\n <UploadStatus {...props} />\n </div>\n </BottomInfoBarWrapper>\n );\n};\n\nexport default BottomInfoBar;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;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,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACvCC,QAAQ,EAAE,QAAQ;EAClBC,QAAQ,EAAE,QAAQ;EAClBC,MAAM,EAAE,CAAC;EACTC,MAAM,EAAE,EAAE;EACVC,KAAK,EAAE,+CAA+C;EACtDC,SAAS,EAAE,0CAA0C;EACrDC,eAAe,EAAE,0BAA0B;EAC3CC,KAAK,EAAE,MAAM;EACbC,SAAS,EAAE,eAAe;EAC1BC,QAAQ,EAAE,QAAQ;EAClBC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,QAAQ;EACpBC,MAAM,EAAE,CAAC;EACT,OAAO,EAAE;IACLC,OAAO,EAAE,QAAQ;IACjBN,KAAK,EAAE;EACX;AACJ,CAAC,CAAC;AAEF,IAAMO,aAAoE,GAAG,SAAvEA,aAAoE,CAAGC,KAAK,EAAI;EAClF,oBACI,6BAAC,oBAAoB,qBACjB,uDACI,6BAAC,2BAAkB,EAAKA,KAAK,CAAI,eACjC,6BAAC,qBAAY,EAAKA,KAAK,CAAI,CACzB,CACa;AAE/B,CAAC;AAAC,eAEaD,aAAa;AAAA"}
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"}