@webiny/app-admin 5.27.0 → 5.28.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 (284) hide show
  1. package/base/Admin.js +44 -24
  2. package/base/Admin.js.map +1 -1
  3. package/base/Base.js +52 -29
  4. package/base/Base.js.map +1 -1
  5. package/base/plugins/AddGraphQLQuerySelection.js +26 -11
  6. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
  7. package/base/providers/ApolloProvider.js +19 -6
  8. package/base/providers/ApolloProvider.js.map +1 -1
  9. package/base/providers/TelemetryProvider.js +21 -8
  10. package/base/providers/TelemetryProvider.js.map +1 -1
  11. package/base/providers/UiStateProvider.js +18 -5
  12. package/base/providers/UiStateProvider.js.map +1 -1
  13. package/base/providers/ViewCompositionProvider.js +34 -15
  14. package/base/providers/ViewCompositionProvider.js.map +1 -1
  15. package/base/ui/Brand.js +18 -5
  16. package/base/ui/Brand.js.map +1 -1
  17. package/base/ui/CenteredView.js +21 -8
  18. package/base/ui/CenteredView.js.map +1 -1
  19. package/base/ui/Dashboard.js +18 -5
  20. package/base/ui/Dashboard.js.map +1 -1
  21. package/base/ui/Layout.js +21 -8
  22. package/base/ui/Layout.js.map +1 -1
  23. package/base/ui/LocaleSelector.js +18 -5
  24. package/base/ui/LocaleSelector.js.map +1 -1
  25. package/base/ui/LoginScreen.js +22 -7
  26. package/base/ui/LoginScreen.js.map +1 -1
  27. package/base/ui/Logo.js +25 -9
  28. package/base/ui/Logo.js.map +1 -1
  29. package/base/ui/Menu.js +46 -26
  30. package/base/ui/Menu.js.map +1 -1
  31. package/base/ui/Navigation.js +79 -42
  32. package/base/ui/Navigation.js.map +1 -1
  33. package/base/ui/NotFound.js +18 -5
  34. package/base/ui/NotFound.js.map +1 -1
  35. package/base/ui/Search.js +50 -22
  36. package/base/ui/Search.js.map +1 -1
  37. package/base/ui/Tags.js +23 -7
  38. package/base/ui/Tags.js.map +1 -1
  39. package/base/ui/UserMenu.js +74 -36
  40. package/base/ui/UserMenu.js.map +1 -1
  41. package/components/AdminLayout.js +18 -5
  42. package/components/AdminLayout.js.map +1 -1
  43. package/components/AppInstaller/AppInstaller.js +79 -49
  44. package/components/AppInstaller/AppInstaller.js.map +1 -1
  45. package/components/AppInstaller/Sidebar.js +50 -28
  46. package/components/AppInstaller/Sidebar.js.map +1 -1
  47. package/components/AppInstaller/index.js +20 -7
  48. package/components/AppInstaller/index.js.map +1 -1
  49. package/components/AppInstaller/styled.js +26 -9
  50. package/components/AppInstaller/styled.js.map +1 -1
  51. package/components/AppInstaller/useInstaller.js +67 -40
  52. package/components/AppInstaller/useInstaller.js.map +1 -1
  53. package/components/EmptyView.js +25 -11
  54. package/components/EmptyView.js.map +1 -1
  55. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +23 -9
  56. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -1
  57. package/components/FileManager/BottomInfoBar/UploadStatus.js +21 -8
  58. package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -1
  59. package/components/FileManager/BottomInfoBar.js +29 -11
  60. package/components/FileManager/BottomInfoBar.js.map +1 -1
  61. package/components/FileManager/DropFilesHere.js +27 -12
  62. package/components/FileManager/DropFilesHere.js.map +1 -1
  63. package/components/FileManager/File.js +42 -24
  64. package/components/FileManager/File.js.map +1 -1
  65. package/components/FileManager/FileDetails/Name.js +52 -30
  66. package/components/FileManager/FileDetails/Name.js.map +1 -1
  67. package/components/FileManager/FileDetails/Tags.js +112 -73
  68. package/components/FileManager/FileDetails/Tags.js.map +1 -1
  69. package/components/FileManager/FileDetails.js +157 -120
  70. package/components/FileManager/FileDetails.js.map +1 -1
  71. package/components/FileManager/FileManagerContext.js +39 -20
  72. package/components/FileManager/FileManagerContext.js.map +1 -1
  73. package/components/FileManager/FileManagerView.js +172 -130
  74. package/components/FileManager/FileManagerView.js.map +1 -1
  75. package/components/FileManager/LeftSidebar.js +49 -28
  76. package/components/FileManager/LeftSidebar.js.map +1 -1
  77. package/components/FileManager/NoPermissionView.js +35 -18
  78. package/components/FileManager/NoPermissionView.js.map +1 -1
  79. package/components/FileManager/NoResults.js +18 -6
  80. package/components/FileManager/NoResults.js.map +1 -1
  81. package/components/FileManager/getFileTypePlugin.js +23 -9
  82. package/components/FileManager/getFileTypePlugin.js.map +1 -1
  83. package/components/FileManager/getFileUploader.js +14 -4
  84. package/components/FileManager/getFileUploader.js.map +1 -1
  85. package/components/FileManager/graphql.js +24 -8
  86. package/components/FileManager/graphql.js.map +1 -1
  87. package/components/FileManager/outputFileSelectionError.js +16 -4
  88. package/components/FileManager/outputFileSelectionError.js.map +1 -1
  89. package/components/FileManager/types.js +5 -1
  90. package/components/FileManager/types.js.map +1 -1
  91. package/components/FileManager.js +60 -36
  92. package/components/FileManager.js.map +1 -1
  93. package/components/FloatingActionButton.js +18 -6
  94. package/components/FloatingActionButton.js.map +1 -1
  95. package/components/MultiImageUpload.js +24 -12
  96. package/components/MultiImageUpload.js.map +1 -1
  97. package/components/OverlayLayout/OverlayLayout.js +68 -43
  98. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  99. package/components/OverlayLayout/index.js +13 -1
  100. package/components/OverlayLayout/index.js.map +1 -1
  101. package/components/Permissions/Permissions.js +28 -11
  102. package/components/Permissions/Permissions.js.map +1 -1
  103. package/components/Permissions/StyledComponents.js +26 -9
  104. package/components/Permissions/StyledComponents.js.map +1 -1
  105. package/components/Permissions/index.js +30 -2
  106. package/components/Permissions/index.js.map +1 -1
  107. package/components/RichTextEditor/RichTextEditor.js +24 -9
  108. package/components/RichTextEditor/RichTextEditor.js.map +1 -1
  109. package/components/RichTextEditor/index.js +21 -2
  110. package/components/RichTextEditor/index.js.map +1 -1
  111. package/components/RichTextEditor/tools/header/index.js +34 -33
  112. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  113. package/components/RichTextEditor/tools/image/index.js +34 -28
  114. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  115. package/components/RichTextEditor/tools/image/svgs.js +9 -2
  116. package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
  117. package/components/RichTextEditor/tools/image/tunes.js +28 -22
  118. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  119. package/components/RichTextEditor/tools/image/types.js +5 -1
  120. package/components/RichTextEditor/tools/image/types.js.map +1 -1
  121. package/components/RichTextEditor/tools/image/ui.js +30 -23
  122. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  123. package/components/RichTextEditor/tools/paragraph/index.js +43 -41
  124. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  125. package/components/RichTextEditor/tools/textColor/index.js +27 -26
  126. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  127. package/components/RichTextEditor/tools/utils.js +14 -5
  128. package/components/RichTextEditor/tools/utils.js.map +1 -1
  129. package/components/Routes.js +24 -9
  130. package/components/Routes.js.map +1 -1
  131. package/components/SearchUI.js +23 -9
  132. package/components/SearchUI.js.map +1 -1
  133. package/components/SimpleForm/SimpleForm.js +60 -29
  134. package/components/SimpleForm/SimpleForm.js.map +1 -1
  135. package/components/SimpleForm/index.js +31 -1
  136. package/components/SimpleForm/index.js.map +1 -1
  137. package/components/SimpleUI/InputField.js +35 -18
  138. package/components/SimpleUI/InputField.js.map +1 -1
  139. package/components/SingleImageUpload.js +41 -22
  140. package/components/SingleImageUpload.js.map +1 -1
  141. package/components/SplitView/SplitView.js +42 -19
  142. package/components/SplitView/SplitView.js.map +1 -1
  143. package/components/SplitView/index.js +25 -1
  144. package/components/SplitView/index.js.map +1 -1
  145. package/components/index.js +13 -1
  146. package/components/index.js.map +1 -1
  147. package/hooks/useConfirmationDialog.js +29 -16
  148. package/hooks/useConfirmationDialog.js.map +1 -1
  149. package/hooks/useDialog.js +16 -6
  150. package/hooks/useDialog.js.map +1 -1
  151. package/hooks/useSnackbar.js +20 -7
  152. package/hooks/useSnackbar.js.map +1 -1
  153. package/index.js +286 -26
  154. package/index.js.map +1 -1
  155. package/package.json +20 -20
  156. package/plugins/FileManagerFileTypePlugin.js +33 -20
  157. package/plugins/FileManagerFileTypePlugin.js.map +1 -1
  158. package/plugins/MenuPlugin.js +33 -20
  159. package/plugins/MenuPlugin.js.map +1 -1
  160. package/plugins/PermissionRendererPlugin.js +33 -20
  161. package/plugins/PermissionRendererPlugin.js.map +1 -1
  162. package/plugins/fileManager/fileDefault.js +24 -8
  163. package/plugins/fileManager/fileDefault.js.map +1 -1
  164. package/plugins/fileManager/fileImage/DeleteAction.js +45 -24
  165. package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -1
  166. package/plugins/fileManager/fileImage/EditAction.js +51 -28
  167. package/plugins/fileManager/fileImage/EditAction.js.map +1 -1
  168. package/plugins/fileManager/fileImage/index.js +29 -10
  169. package/plugins/fileManager/fileImage/index.js.map +1 -1
  170. package/plugins/fileManager/index.js +15 -3
  171. package/plugins/fileManager/index.js.map +1 -1
  172. package/plugins/globalSearch/SearchBar.js +82 -60
  173. package/plugins/globalSearch/SearchBar.js.map +1 -1
  174. package/plugins/globalSearch/SearchBarDropdown.js +46 -27
  175. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  176. package/plugins/globalSearch/index.js +9 -2
  177. package/plugins/globalSearch/index.js.map +1 -1
  178. package/plugins/globalSearch/styled.js +33 -13
  179. package/plugins/globalSearch/styled.js.map +1 -1
  180. package/plugins/index.js +20 -6
  181. package/plugins/index.js.map +1 -1
  182. package/plugins/uiLayoutRenderer/index.js +26 -13
  183. package/plugins/uiLayoutRenderer/index.js.map +1 -1
  184. package/types.js +5 -1
  185. package/types.js.map +1 -1
  186. package/ui/UIElement.js +19 -1
  187. package/ui/UIElement.js.map +1 -1
  188. package/ui/UILayout.js +19 -1
  189. package/ui/UILayout.js.map +1 -1
  190. package/ui/UIRenderer.js +13 -1
  191. package/ui/UIRenderer.js.map +1 -1
  192. package/ui/UIView.js +25 -1
  193. package/ui/UIView.js.map +1 -1
  194. package/ui/elements/AccordionElement.js +52 -32
  195. package/ui/elements/AccordionElement.js.map +1 -1
  196. package/ui/elements/ButtonElement.js +36 -19
  197. package/ui/elements/ButtonElement.js.map +1 -1
  198. package/ui/elements/ButtonGroupElement.js +38 -19
  199. package/ui/elements/ButtonGroupElement.js.map +1 -1
  200. package/ui/elements/GenericElement.js +18 -1
  201. package/ui/elements/GenericElement.js.map +1 -1
  202. package/ui/elements/LabelElement.js +26 -13
  203. package/ui/elements/LabelElement.js.map +1 -1
  204. package/ui/elements/NavigationMenuElement.js +48 -30
  205. package/ui/elements/NavigationMenuElement.js.map +1 -1
  206. package/ui/elements/PanelElement.js +27 -12
  207. package/ui/elements/PanelElement.js.map +1 -1
  208. package/ui/elements/PlaceholderElement.js +27 -13
  209. package/ui/elements/PlaceholderElement.js.map +1 -1
  210. package/ui/elements/SmallButtonElement.js +36 -19
  211. package/ui/elements/SmallButtonElement.js.map +1 -1
  212. package/ui/elements/TypographyElement.js +38 -20
  213. package/ui/elements/TypographyElement.js.map +1 -1
  214. package/ui/elements/ViewElement.js +18 -1
  215. package/ui/elements/ViewElement.js.map +1 -1
  216. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +33 -17
  217. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  218. package/ui/elements/form/DynamicFieldsetElement.js +41 -23
  219. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  220. package/ui/elements/form/FileManagerElement/EmptyStateElement.js +30 -14
  221. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
  222. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +51 -28
  223. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  224. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +45 -25
  225. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  226. package/ui/elements/form/FileManagerElement/styled.d.ts +3 -3
  227. package/ui/elements/form/FileManagerElement/styled.js +26 -12
  228. package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
  229. package/ui/elements/form/FileManagerElement.js +39 -22
  230. package/ui/elements/form/FileManagerElement.js.map +1 -1
  231. package/ui/elements/form/FormElement.js +42 -21
  232. package/ui/elements/form/FormElement.js.map +1 -1
  233. package/ui/elements/form/FormFieldElement.js +38 -23
  234. package/ui/elements/form/FormFieldElement.js.map +1 -1
  235. package/ui/elements/form/HiddenElement.js +30 -15
  236. package/ui/elements/form/HiddenElement.js.map +1 -1
  237. package/ui/elements/form/InputElement.js +34 -18
  238. package/ui/elements/form/InputElement.js.map +1 -1
  239. package/ui/elements/form/PasswordElement.js +34 -18
  240. package/ui/elements/form/PasswordElement.js.map +1 -1
  241. package/ui/elements/form/SelectElement.js +35 -19
  242. package/ui/elements/form/SelectElement.js.map +1 -1
  243. package/ui/elements/form/TextareaElement.js +34 -18
  244. package/ui/elements/form/TextareaElement.js.map +1 -1
  245. package/ui/views/AdminView/ContentElement.js +40 -24
  246. package/ui/views/AdminView/ContentElement.js.map +1 -1
  247. package/ui/views/AdminView/HeaderElement.js +60 -39
  248. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  249. package/ui/views/AdminView/HeaderSectionCenterElement.js +41 -21
  250. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  251. package/ui/views/AdminView/HeaderSectionLeftElement.js +41 -21
  252. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  253. package/ui/views/AdminView/HeaderSectionRightElement.js +41 -21
  254. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  255. package/ui/views/AdminView/components/Dialog.js +32 -15
  256. package/ui/views/AdminView/components/Dialog.js.map +1 -1
  257. package/ui/views/AdminView/components/Hamburger.js +25 -11
  258. package/ui/views/AdminView/components/Hamburger.js.map +1 -1
  259. package/ui/views/AdminView/components/Snackbar.js +26 -13
  260. package/ui/views/AdminView/components/Snackbar.js.map +1 -1
  261. package/ui/views/FormView/FormContainerElement.js +45 -25
  262. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  263. package/ui/views/FormView/FormContentElement.js +27 -12
  264. package/ui/views/FormView/FormContentElement.js.map +1 -1
  265. package/ui/views/FormView/FormFooterElement.js +38 -19
  266. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  267. package/ui/views/FormView/FormHeaderElement.js +52 -30
  268. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  269. package/ui/views/FormView.js +60 -34
  270. package/ui/views/FormView.js.map +1 -1
  271. package/ui/views/OverlayView/ContentElement.js +38 -19
  272. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  273. package/ui/views/OverlayView/HeaderElement.js +56 -37
  274. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  275. package/ui/views/OverlayView/HeaderTitleElement.js +44 -25
  276. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  277. package/ui/views/OverlayView/useOverlayView.js +32 -16
  278. package/ui/views/OverlayView/useOverlayView.js.map +1 -1
  279. package/ui/views/OverlayView.js +65 -42
  280. package/ui/views/OverlayView.js.map +1 -1
  281. package/ui/views/SplitView/SplitViewPanelElement.js +47 -28
  282. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  283. package/ui/views/SplitView.js +57 -37
  284. package/ui/views/SplitView.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["FileManagerView.tsx"],"names":["React","useRef","useCallback","useMemo","css","styled","Files","ButtonPrimary","ButtonIcon","Icon","File","useQuery","useMutation","useApolloClient","LIST_FILES","CREATE_FILE","GET_FILE_SETTINGS","getFileTypePlugin","get","debounce","getFileUploader","outputFileSelectionError","DropFilesHere","NoResults","FileDetails","LeftSidebar","BottomInfoBar","OverlayLayout","useSnackbar","Scrollbar","CircularProgress","i18n","useSecurity","useHotkeys","useFileManager","ReactComponent","SearchIcon","UploadIcon","NoPermissionView","t","ns","style","draggingFeedback","position","top","left","width","height","opacity","background","zIndex","leftDrawer","header","textAlign","fontSize","padding","fontWeight","color","InputSearch","backgroundColor","borderRadius","border","marginLeft","outline","searchIcon","FileListWrapper","float","display","FileList","gridTemplateColumns","marginBottom","renderFile","props","file","plugin","id","render","renderEmpty","hasPreviouslyUploadedFiles","browseFiles","fmFilePermission","FileManagerView","onClose","onChange","accept","multiple","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","selected","toggleSelected","dragging","setDragging","uploading","setUploading","showFileDetails","showingFileDetails","queryParams","setQueryParams","setHasPreviouslyUploadedFiles","showSnackbar","identity","getPermission","canCreate","own","rwd","includes","canEdit","item","creatorId","identityId","login","searchOnChange","search","toggleTag","tag","finalTags","Array","isArray","tags","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","updateCacheAfterCreateFile","cache","newFile","newFileData","data","readQuery","query","variables","writeQuery","fileManager","listFiles","getFileDetailsFile","src","list","find","keys","esc","searchInput","apolloClient","gqlQuery","onCompleted","response","length","refreshOnScroll","scrollFrame","fetchMore","cursor","after","updateQuery","prev","result","fetchMoreResult","next","loading","update","createFile","uploadFile","files","errors","uploadedFiles","Promise","all","map","scope","createFileResponse","setTimeout","name","renderUploadFileAction","settingsQuery","settings","uploadMaxFileSize","filter","Boolean","getDropZoneProps","validateFiles","onDragEnter","onExited","target","value","current","onSelect","defaultProps"],"mappings":"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","sourcesContent":["import React, { useRef, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport Files, { FilesRenderChildren } from \"react-butterfiles\";\nimport { ButtonPrimary, ButtonIcon } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport File, { FileProps } from \"./File\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/react-hooks\";\nimport { FilesRules } from \"react-butterfiles\";\nimport {\n LIST_FILES,\n CREATE_FILE,\n GET_FILE_SETTINGS,\n CreateFileMutationVariables,\n CreateFileMutationResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables\n} from \"./graphql\";\nimport getFileTypePlugin from \"./getFileTypePlugin\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport getFileUploader from \"./getFileUploader\";\nimport outputFileSelectionError from \"./outputFileSelectionError\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport NoResults from \"./NoResults\";\nimport FileDetails from \"./FileDetails\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport BottomInfoBar from \"./BottomInfoBar\";\nimport { OverlayLayout } from \"../OverlayLayout\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSecurity } from \"@webiny/app-security\";\n/**\n * Package react-hotkeyz is missing types.\n */\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { useFileManager } from \"./FileManagerContext\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\nimport NoPermissionView from \"./NoPermissionView\";\nimport { FileItem, FileManagerSecurityPermission } from \"~/components/FileManager/types\";\nimport { MutationUpdaterFn } from \"apollo-client/core/watchQueryOptions\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { ObservableQueryFields } from \"@apollo/react-common/lib/types/types\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst style = {\n draggingFeedback: css({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n opacity: 0.5,\n background: \"white\",\n zIndex: 100\n }),\n leftDrawer: {\n header: css({\n textAlign: \"center\",\n fontSize: 18,\n padding: 10,\n fontWeight: 600,\n color: \"var(--mdc-theme-on-surface)\"\n })\n }\n};\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: 50,\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: 15,\n top: 7\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"100%\"\n});\n\nconst FileList = styled(\"div\")({\n width: \"100%\",\n display: \"grid\",\n /* define the number of grid columns */\n gridTemplateColumns: \"repeat( auto-fill, minmax(220px, 1fr) )\",\n marginBottom: 95\n});\n\nexport interface FileManagerViewProps {\n onChange?: Function;\n onClose?: Function;\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\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n return (\n <File {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </File>\n );\n};\ninterface RenderEmptyProps {\n hasPreviouslyUploadedFiles: boolean;\n browseFiles: FilesRenderChildren[\"browseFiles\"];\n fmFilePermission: SecurityPermission | null;\n}\nconst renderEmpty: React.FC<RenderEmptyProps> = ({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n}) => {\n if (!fmFilePermission) {\n return <NoPermissionView />;\n }\n if (hasPreviouslyUploadedFiles) {\n return <NoResults />;\n }\n return <DropFilesHere empty onClick={() => browseFiles()} />;\n};\n\ninterface RefreshOnScrollParams {\n fetchMore: ObservableQueryFields<ListFilesQueryResponse, ListFilesQueryVariables>[\"fetchMore\"];\n scrollFrame: {\n top: number;\n };\n}\n\ninterface FileError {\n file: FileItem;\n e: Error;\n}\n\ninterface GetFileDetailsFileParams {\n src: string;\n list: FileItem[];\n}\n\nconst FileManagerView: React.FC<FileManagerViewProps> = props => {\n const {\n onClose,\n onChange,\n accept,\n multiple,\n maxSize,\n multipleMaxCount,\n multipleMaxSize,\n onUploadCompletion\n } = props;\n\n const {\n selected,\n toggleSelected,\n dragging,\n setDragging,\n uploading,\n setUploading,\n showFileDetails,\n showingFileDetails,\n queryParams,\n setQueryParams,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles\n } = useFileManager();\n const { showSnackbar } = useSnackbar();\n\n const { identity, getPermission } = useSecurity();\n const fmFilePermission = useMemo((): FileManagerSecurityPermission | null => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n const canCreate = useMemo(() => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n return true;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n }, [fmFilePermission]);\n const canEdit = useCallback(\n item => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = get(item, \"createdBy.id\");\n\n if (fmFilePermission.own && creatorId) {\n const identityId = identity ? identity.id || identity.login : null;\n return creatorId === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n },\n [fmFilePermission]\n );\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => setQueryParams({ search }), 500),\n []\n );\n\n const toggleTag = useCallback(async ({ tag, queryParams }) => {\n const finalTags = Array.isArray(queryParams.tags) ? [...queryParams.tags] : [];\n\n if (finalTags.includes(tag)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n setQueryParams({ ...queryParams, tags: finalTags });\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 const updateCacheAfterCreateFile: MutationUpdaterFn<CreateFileMutationResponse> = (\n cache,\n newFile\n ) => {\n const newFileData = get(newFile, \"data.fileManager.createFile.data\");\n\n const data = cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n });\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: {\n fileManager: {\n ...(data?.fileManager || {}),\n listFiles: {\n ...(data?.fileManager || {}).listFiles,\n data: [newFileData, ...((data?.fileManager?.listFiles || {}).data || [])]\n }\n }\n }\n });\n };\n\n const getFileDetailsFile = useCallback(({ src, list }: GetFileDetailsFileParams): FileItem => {\n return list.find(item => item.src === src) as FileItem;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n const apolloClient = useApolloClient();\n\n const gqlQuery = useQuery<ListFilesQueryResponse, ListFilesQueryVariables>(LIST_FILES, {\n variables: queryParams,\n onCompleted: response => {\n const list = get(response, \"fileManager.listFiles.data\") || [];\n if (hasPreviouslyUploadedFiles === null) {\n setHasPreviouslyUploadedFiles(list.length > 0);\n }\n }\n });\n\n const refreshOnScroll = useCallback(\n debounce(({ scrollFrame, fetchMore }: RefreshOnScrollParams) => {\n if (scrollFrame.top > 0.9) {\n const cursor = get(gqlQuery.data, \"fileManager.listFiles.meta.cursor\");\n if (cursor) {\n fetchMore({\n variables: { after: cursor },\n updateQuery: (\n prev: ListFilesQueryResponse,\n result: { fetchMoreResult?: ListFilesQueryResponse }\n ) => {\n const { fetchMoreResult } = result;\n if (!fetchMoreResult) {\n return prev;\n }\n\n const next = { ...fetchMoreResult };\n\n next.fileManager.listFiles.data = [\n ...prev.fileManager.listFiles.data,\n ...fetchMoreResult.fileManager.listFiles.data\n ];\n\n return next;\n }\n });\n }\n }\n }, 500),\n [gqlQuery]\n );\n\n const { data, fetchMore, loading } = gqlQuery;\n\n const list: FileItem[] = get(data, \"fileManager.listFiles.data\") || [];\n const [createFile] = useMutation<CreateFileMutationResponse, CreateFileMutationVariables>(\n CREATE_FILE,\n {\n update: updateCacheAfterCreateFile\n }\n );\n const uploadFile = async (files: FileItem[] | FileItem): Promise<number | null> => {\n setUploading(true);\n const list: FileItem[] = Array.isArray(files) ? files : [files];\n\n const errors: FileError[] = [];\n const uploadedFiles: FileItem[] = [];\n await Promise.all(\n list.map(async file => {\n try {\n const response = await getFileUploader()(file, { apolloClient });\n /**\n * Add \"tags\" while creating the new file.\n */\n const createFileResponse = await createFile({\n variables: {\n data: {\n ...response,\n tags: queryParams.scope ? [queryParams.scope] : []\n }\n }\n });\n // Save create file data for later\n uploadedFiles.push(get(createFileResponse, \"data.fileManager.createFile.data\"));\n } catch (e) {\n errors.push({ file, e });\n }\n })\n );\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n setUploading(false);\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n return 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 // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n onUploadCompletion(uploadedFiles);\n onClose && onClose();\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n return null;\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!canCreate) {\n return null;\n }\n return (\n <ButtonPrimary onClick={browseFiles} disabled={uploading}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [uploading, canCreate]\n );\n\n const settingsQuery = useQuery(GET_FILE_SETTINGS);\n const settings = get(settingsQuery.data, \"fileManager.getSettings.data\") || {};\n return (\n <Files\n multiple\n maxSize={settings.uploadMaxFileSize ? settings.uploadMaxFileSize + \"b\" : maxSize}\n multipleMaxSize={multipleMaxSize}\n multipleMaxCount={multipleMaxCount}\n accept={accept}\n onSuccess={files => {\n uploadFile(files.map(file => file.src.file as FileItem).filter(Boolean));\n }}\n onError={errors => {\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles, validateFiles }) => (\n <OverlayLayout\n {...getDropZoneProps({\n onDragEnter: () => hasPreviouslyUploadedFiles && setDragging(true),\n onExited: onClose\n })}\n barLeft={\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={!fmFilePermission}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n selected.length > 0 ? (\n <ButtonPrimary\n disabled={uploading}\n onClick={() => {\n (async () => {\n if (typeof onChange === \"function\") {\n await onChange(multiple ? selected : selected[0]);\n\n onClose && onClose();\n }\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )\n }\n >\n <>\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n // @ts-ignore TODO: @adrian - className is never rendered?!\n className={style.draggingFeedback}\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n\n <FileDetails\n validateFiles={validateFiles}\n uploadFile={uploadFile}\n file={getFileDetailsFile({\n list,\n src: showingFileDetails\n })}\n canEdit={canEdit}\n />\n\n <LeftSidebar\n queryParams={queryParams}\n toggleTag={tag => toggleTag({ tag, queryParams })}\n />\n\n <FileListWrapper data-testid={\"fm-list-wrapper\"}>\n {loading && (\n <CircularProgress\n label={t`Loading Files...`}\n style={{ opacity: 1 }}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame =>\n refreshOnScroll({\n scrollFrame,\n fetchMore\n })\n }\n >\n <FileList>\n {list.length\n ? list.map(file =>\n renderFile({\n uploadFile,\n file,\n showFileDetails: () => showFileDetails(file.src),\n selected: selected.find(\n (current: FileItem) =>\n current.src === file.src\n ),\n onSelect: async () => {\n if (typeof onChange === \"function\") {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose && onClose();\n }\n }\n })\n )\n : renderEmpty({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n })}\n </FileList>\n </Scrollbar>\n <BottomInfoBar accept={accept} uploading={uploading} />\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n );\n};\n\nFileManagerView.defaultProps = {\n multiple: false,\n maxSize: \"1000mb\",\n multipleMaxSize: \"1000mb\",\n multipleMaxCount: 100\n};\n\nexport default FileManagerView;\n"]}
1
+ {"version":3,"names":["t","i18n","ns","style","draggingFeedback","css","position","top","left","width","height","opacity","background","zIndex","leftDrawer","header","textAlign","fontSize","padding","fontWeight","color","InputSearch","styled","backgroundColor","borderRadius","border","marginLeft","outline","searchIcon","FileListWrapper","float","display","FileList","gridTemplateColumns","marginBottom","renderFile","props","file","plugin","getFileTypePlugin","id","render","renderEmpty","hasPreviouslyUploadedFiles","browseFiles","fmFilePermission","FileManagerView","onClose","onChange","accept","multiple","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","useFileManager","selected","toggleSelected","dragging","setDragging","uploading","setUploading","showFileDetails","showingFileDetails","queryParams","setQueryParams","setHasPreviouslyUploadedFiles","useSnackbar","showSnackbar","useSecurity","identity","getPermission","useMemo","canCreate","own","rwd","includes","canEdit","useCallback","item","creatorId","get","identityId","login","searchOnChange","debounce","search","toggleTag","tag","finalTags","Array","isArray","tags","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","updateCacheAfterCreateFile","cache","newFile","newFileData","data","readQuery","query","LIST_FILES","variables","writeQuery","fileManager","listFiles","getFileDetailsFile","src","list","find","useHotkeys","keys","esc","searchInput","useRef","apolloClient","useApolloClient","gqlQuery","useQuery","onCompleted","response","length","refreshOnScroll","scrollFrame","fetchMore","cursor","after","updateQuery","prev","result","fetchMoreResult","next","loading","useMutation","CREATE_FILE","update","createFile","uploadFile","files","errors","uploadedFiles","Promise","all","map","getFileUploader","scope","createFileResponse","setTimeout","name","renderUploadFileAction","settingsQuery","GET_FILE_SETTINGS","settings","uploadMaxFileSize","filter","Boolean","outputFileSelectionError","getDropZoneProps","validateFiles","onDragEnter","onExited","target","value","current","onSelect","defaultProps"],"sources":["FileManagerView.tsx"],"sourcesContent":["import React, { useRef, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport Files, { FilesRenderChildren } from \"react-butterfiles\";\nimport { ButtonPrimary, ButtonIcon } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport File, { FileProps } from \"./File\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/react-hooks\";\nimport { FilesRules } from \"react-butterfiles\";\nimport {\n LIST_FILES,\n CREATE_FILE,\n GET_FILE_SETTINGS,\n CreateFileMutationVariables,\n CreateFileMutationResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables\n} from \"./graphql\";\nimport getFileTypePlugin from \"./getFileTypePlugin\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport getFileUploader from \"./getFileUploader\";\nimport outputFileSelectionError from \"./outputFileSelectionError\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport NoResults from \"./NoResults\";\nimport FileDetails from \"./FileDetails\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport BottomInfoBar from \"./BottomInfoBar\";\nimport { OverlayLayout } from \"../OverlayLayout\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSecurity } from \"@webiny/app-security\";\n/**\n * Package react-hotkeyz is missing types.\n */\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { useFileManager } from \"./FileManagerContext\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\nimport NoPermissionView from \"./NoPermissionView\";\nimport { FileItem, FileManagerSecurityPermission } from \"~/components/FileManager/types\";\nimport { MutationUpdaterFn } from \"apollo-client/core/watchQueryOptions\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { ObservableQueryFields } from \"@apollo/react-common/lib/types/types\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst style = {\n draggingFeedback: css({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n opacity: 0.5,\n background: \"white\",\n zIndex: 100\n }),\n leftDrawer: {\n header: css({\n textAlign: \"center\",\n fontSize: 18,\n padding: 10,\n fontWeight: 600,\n color: \"var(--mdc-theme-on-surface)\"\n })\n }\n};\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: 50,\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: 15,\n top: 7\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"100%\"\n});\n\nconst FileList = styled(\"div\")({\n width: \"100%\",\n display: \"grid\",\n /* define the number of grid columns */\n gridTemplateColumns: \"repeat( auto-fill, minmax(220px, 1fr) )\",\n marginBottom: 95\n});\n\nexport interface FileManagerViewProps {\n onChange?: Function;\n onClose?: Function;\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\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n return (\n <File {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </File>\n );\n};\ninterface RenderEmptyProps {\n hasPreviouslyUploadedFiles: boolean;\n browseFiles: FilesRenderChildren[\"browseFiles\"];\n fmFilePermission: SecurityPermission | null;\n}\nconst renderEmpty: React.FC<RenderEmptyProps> = ({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n}) => {\n if (!fmFilePermission) {\n return <NoPermissionView />;\n }\n if (hasPreviouslyUploadedFiles) {\n return <NoResults />;\n }\n return <DropFilesHere empty onClick={() => browseFiles()} />;\n};\n\ninterface RefreshOnScrollParams {\n fetchMore: ObservableQueryFields<ListFilesQueryResponse, ListFilesQueryVariables>[\"fetchMore\"];\n scrollFrame: {\n top: number;\n };\n}\n\ninterface FileError {\n file: FileItem;\n e: Error;\n}\n\ninterface GetFileDetailsFileParams {\n src: string;\n list: FileItem[];\n}\n\nconst FileManagerView: React.FC<FileManagerViewProps> = props => {\n const {\n onClose,\n onChange,\n accept,\n multiple,\n maxSize,\n multipleMaxCount,\n multipleMaxSize,\n onUploadCompletion\n } = props;\n\n const {\n selected,\n toggleSelected,\n dragging,\n setDragging,\n uploading,\n setUploading,\n showFileDetails,\n showingFileDetails,\n queryParams,\n setQueryParams,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles\n } = useFileManager();\n const { showSnackbar } = useSnackbar();\n\n const { identity, getPermission } = useSecurity();\n const fmFilePermission = useMemo((): FileManagerSecurityPermission | null => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n const canCreate = useMemo(() => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n return true;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n }, [fmFilePermission]);\n const canEdit = useCallback(\n item => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = get(item, \"createdBy.id\");\n\n if (fmFilePermission.own && creatorId) {\n const identityId = identity ? identity.id || identity.login : null;\n return creatorId === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n },\n [fmFilePermission]\n );\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => setQueryParams({ search }), 500),\n []\n );\n\n const toggleTag = useCallback(async ({ tag, queryParams }) => {\n const finalTags = Array.isArray(queryParams.tags) ? [...queryParams.tags] : [];\n\n if (finalTags.includes(tag)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n setQueryParams({ ...queryParams, tags: finalTags });\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 const updateCacheAfterCreateFile: MutationUpdaterFn<CreateFileMutationResponse> = (\n cache,\n newFile\n ) => {\n const newFileData = get(newFile, \"data.fileManager.createFile.data\");\n\n const data = cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n });\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: {\n fileManager: {\n ...(data?.fileManager || {}),\n listFiles: {\n ...(data?.fileManager || {}).listFiles,\n data: [newFileData, ...((data?.fileManager?.listFiles || {}).data || [])]\n }\n }\n }\n });\n };\n\n const getFileDetailsFile = useCallback(({ src, list }: GetFileDetailsFileParams): FileItem => {\n return list.find(item => item.src === src) as FileItem;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n const apolloClient = useApolloClient();\n\n const gqlQuery = useQuery<ListFilesQueryResponse, ListFilesQueryVariables>(LIST_FILES, {\n variables: queryParams,\n onCompleted: response => {\n const list = get(response, \"fileManager.listFiles.data\") || [];\n if (hasPreviouslyUploadedFiles === null) {\n setHasPreviouslyUploadedFiles(list.length > 0);\n }\n }\n });\n\n const refreshOnScroll = useCallback(\n debounce(({ scrollFrame, fetchMore }: RefreshOnScrollParams) => {\n if (scrollFrame.top > 0.9) {\n const cursor = get(gqlQuery.data, \"fileManager.listFiles.meta.cursor\");\n if (cursor) {\n fetchMore({\n variables: { after: cursor },\n updateQuery: (\n prev: ListFilesQueryResponse,\n result: { fetchMoreResult?: ListFilesQueryResponse }\n ) => {\n const { fetchMoreResult } = result;\n if (!fetchMoreResult) {\n return prev;\n }\n\n const next = { ...fetchMoreResult };\n\n next.fileManager.listFiles.data = [\n ...prev.fileManager.listFiles.data,\n ...fetchMoreResult.fileManager.listFiles.data\n ];\n\n return next;\n }\n });\n }\n }\n }, 500),\n [gqlQuery]\n );\n\n const { data, fetchMore, loading } = gqlQuery;\n\n const list: FileItem[] = get(data, \"fileManager.listFiles.data\") || [];\n const [createFile] = useMutation<CreateFileMutationResponse, CreateFileMutationVariables>(\n CREATE_FILE,\n {\n update: updateCacheAfterCreateFile\n }\n );\n const uploadFile = async (files: FileItem[] | FileItem): Promise<number | null> => {\n setUploading(true);\n const list: FileItem[] = Array.isArray(files) ? files : [files];\n\n const errors: FileError[] = [];\n const uploadedFiles: FileItem[] = [];\n await Promise.all(\n list.map(async file => {\n try {\n const response = await getFileUploader()(file, { apolloClient });\n /**\n * Add \"tags\" while creating the new file.\n */\n const createFileResponse = await createFile({\n variables: {\n data: {\n ...response,\n tags: queryParams.scope ? [queryParams.scope] : []\n }\n }\n });\n // Save create file data for later\n uploadedFiles.push(get(createFileResponse, \"data.fileManager.createFile.data\"));\n } catch (e) {\n errors.push({ file, e });\n }\n })\n );\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n setUploading(false);\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n return 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 // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n onUploadCompletion(uploadedFiles);\n onClose && onClose();\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n return null;\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!canCreate) {\n return null;\n }\n return (\n <ButtonPrimary onClick={browseFiles} disabled={uploading}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [uploading, canCreate]\n );\n\n const settingsQuery = useQuery(GET_FILE_SETTINGS);\n const settings = get(settingsQuery.data, \"fileManager.getSettings.data\") || {};\n return (\n <Files\n multiple\n maxSize={settings.uploadMaxFileSize ? settings.uploadMaxFileSize + \"b\" : maxSize}\n multipleMaxSize={multipleMaxSize}\n multipleMaxCount={multipleMaxCount}\n accept={accept}\n onSuccess={files => {\n uploadFile(files.map(file => file.src.file as FileItem).filter(Boolean));\n }}\n onError={errors => {\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles, validateFiles }) => (\n <OverlayLayout\n {...getDropZoneProps({\n onDragEnter: () => hasPreviouslyUploadedFiles && setDragging(true),\n onExited: onClose\n })}\n barLeft={\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={!fmFilePermission}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n selected.length > 0 ? (\n <ButtonPrimary\n disabled={uploading}\n onClick={() => {\n (async () => {\n if (typeof onChange === \"function\") {\n await onChange(multiple ? selected : selected[0]);\n\n onClose && onClose();\n }\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )\n }\n >\n <>\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n // @ts-ignore TODO: @adrian - className is never rendered?!\n className={style.draggingFeedback}\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n\n <FileDetails\n validateFiles={validateFiles}\n uploadFile={uploadFile}\n file={getFileDetailsFile({\n list,\n src: showingFileDetails\n })}\n canEdit={canEdit}\n />\n\n <LeftSidebar\n queryParams={queryParams}\n toggleTag={tag => toggleTag({ tag, queryParams })}\n />\n\n <FileListWrapper data-testid={\"fm-list-wrapper\"}>\n {loading && (\n <CircularProgress\n label={t`Loading Files...`}\n style={{ opacity: 1 }}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame =>\n refreshOnScroll({\n scrollFrame,\n fetchMore\n })\n }\n >\n <FileList>\n {list.length\n ? list.map(file =>\n renderFile({\n uploadFile,\n file,\n showFileDetails: () => showFileDetails(file.src),\n selected: selected.find(\n (current: FileItem) =>\n current.src === file.src\n ),\n onSelect: async () => {\n if (typeof onChange === \"function\") {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose && onClose();\n }\n }\n })\n )\n : renderEmpty({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n })}\n </FileList>\n </Scrollbar>\n <BottomInfoBar accept={accept} uploading={uploading} />\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n );\n};\n\nFileManagerView.defaultProps = {\n multiple: false,\n maxSize: \"1000mb\",\n multipleMaxSize: \"1000mb\",\n multipleMaxCount: 100\n};\n\nexport default FileManagerView;\n"],"mappings":"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"}
@@ -1,16 +1,36 @@
1
- import React from "react";
2
- import { useQuery } from "@apollo/react-hooks";
3
- import get from "lodash/get";
4
- import sortBy from "lodash/sortBy";
5
- import { css } from "emotion";
6
- import styled from "@emotion/styled";
7
- import { Icon } from "@webiny/ui/Icon";
8
- import { ReactComponent as TagIcon } from "./icons/round-label-24px.svg";
9
- import { LIST_TAGS } from "./graphql";
10
- import { getWhere } from "./FileManagerContext";
11
- import { formatTagAsLabel } from "./FileDetails/Tags";
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _reactHooks = require("@apollo/react-hooks");
13
+
14
+ var _get = _interopRequireDefault(require("lodash/get"));
15
+
16
+ var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
17
+
18
+ var _emotion = require("emotion");
19
+
20
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
21
+
22
+ var _Icon = require("@webiny/ui/Icon");
23
+
24
+ var _roundLabel24px = require("./icons/round-label-24px.svg");
25
+
26
+ var _graphql = require("./graphql");
27
+
28
+ var _FileManagerContext = require("./FileManagerContext");
29
+
30
+ var _Tags = require("./FileDetails/Tags");
31
+
12
32
  var style = {
13
- leftDrawer: /*#__PURE__*/css({
33
+ leftDrawer: /*#__PURE__*/(0, _emotion.css)({
14
34
  float: "left",
15
35
  display: "inline-block",
16
36
  width: 250,
@@ -18,20 +38,20 @@ var style = {
18
38
  backgroundColor: "var(--mdc-theme-surface)",
19
39
  padding: 10
20
40
  }, "label:leftDrawer;"),
21
- noTagged: /*#__PURE__*/css({
41
+ noTagged: /*#__PURE__*/(0, _emotion.css)({
22
42
  paddingTop: 100,
23
43
  textAlign: "center",
24
44
  color: "var(--mdc-theme-on-surface)"
25
45
  }, "label:noTagged;")
26
46
  };
27
- var TagList = /*#__PURE__*/styled("div", {
47
+ var TagList = /*#__PURE__*/(0, _styled.default)("div", {
28
48
  target: "e1tgxgqn0",
29
49
  label: "TagList"
30
50
  })({
31
51
  display: "flex",
32
52
  flexDirection: "column"
33
53
  });
34
- var Tag = /*#__PURE__*/styled("div", {
54
+ var Tag = /*#__PURE__*/(0, _styled.default)("div", {
35
55
  target: "e1tgxgqn1",
36
56
  label: "Tag"
37
57
  })({
@@ -63,44 +83,45 @@ var LeftSidebar = function LeftSidebar(props) {
63
83
  scope = _props$queryParams.scope;
64
84
  var activeTags = Array.isArray(tags) ? tags : [];
65
85
 
66
- var _useQuery = useQuery(LIST_TAGS, {
86
+ var _useQuery = (0, _reactHooks.useQuery)(_graphql.LIST_TAGS, {
67
87
  variables: {
68
- where: getWhere(scope)
88
+ where: (0, _FileManagerContext.getWhere)(scope)
69
89
  }
70
90
  }),
71
91
  data = _useQuery.data;
72
92
 
73
- var list = get(data, "fileManager.listTags", []);
93
+ var list = (0, _get.default)(data, "fileManager.listTags", []);
74
94
 
75
95
  if (list.length === 0) {
76
- return /*#__PURE__*/React.createElement("div", {
96
+ return /*#__PURE__*/_react.default.createElement("div", {
77
97
  className: style.leftDrawer,
78
98
  "data-testid": "fm.left-drawer.empty-tag"
79
- }, /*#__PURE__*/React.createElement("div", {
99
+ }, /*#__PURE__*/_react.default.createElement("div", {
80
100
  className: style.noTagged
81
101
  }, "Once you tag an image, the tag will be displayed here."));
82
102
  } // Sort "tags" list in "ASC" order.
83
103
 
84
104
 
85
- var tagList = sortBy(list);
86
- return /*#__PURE__*/React.createElement("div", {
105
+ var tagList = (0, _sortBy.default)(list);
106
+ return /*#__PURE__*/_react.default.createElement("div", {
87
107
  className: style.leftDrawer
88
- }, /*#__PURE__*/React.createElement(TagList, {
108
+ }, /*#__PURE__*/_react.default.createElement(TagList, {
89
109
  "data-testid": "fm.left-drawer.tag-list"
90
110
  }, tagList.filter(function (tag) {
91
111
  return tag !== scope;
92
112
  }).map(function (item, index) {
93
113
  var className = activeTags.includes(item) ? "active" : "";
94
- return /*#__PURE__*/React.createElement(Tag, {
114
+ return /*#__PURE__*/_react.default.createElement(Tag, {
95
115
  className: className,
96
116
  key: item + index,
97
117
  onClick: function onClick() {
98
118
  return toggleTag(item);
99
119
  }
100
- }, /*#__PURE__*/React.createElement(Icon, {
101
- icon: /*#__PURE__*/React.createElement(TagIcon, null)
102
- }), " ", formatTagAsLabel(item, scope));
120
+ }, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
121
+ icon: /*#__PURE__*/_react.default.createElement(_roundLabel24px.ReactComponent, null)
122
+ }), " ", (0, _Tags.formatTagAsLabel)(item, scope));
103
123
  })));
104
124
  };
105
125
 
106
- export default LeftSidebar;
126
+ var _default = LeftSidebar;
127
+ exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["LeftSidebar.tsx"],"names":["React","useQuery","get","sortBy","css","styled","Icon","ReactComponent","TagIcon","LIST_TAGS","getWhere","formatTagAsLabel","style","leftDrawer","float","display","width","height","backgroundColor","padding","noTagged","paddingTop","textAlign","color","TagList","flexDirection","Tag","alignItems","cursor","paddingLeft","svg","marginRight","LeftSidebar","props","toggleTag","queryParams","tags","scope","activeTags","Array","isArray","variables","where","data","list","length","tagList","filter","tag","map","item","index","className","includes"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { useQuery } from \"@apollo/react-hooks\";\nimport get from \"lodash/get\";\nimport sortBy from \"lodash/sortBy\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { ReactComponent as TagIcon } from \"./icons/round-label-24px.svg\";\nimport { LIST_TAGS } from \"./graphql\";\nimport { getWhere } from \"./FileManagerContext\";\nimport { formatTagAsLabel } from \"./FileDetails/Tags\";\n\nconst style = {\n leftDrawer: css({\n float: \"left\",\n display: \"inline-block\",\n width: 250,\n height: \"100%\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n padding: 10\n }),\n noTagged: css({\n paddingTop: 100,\n textAlign: \"center\",\n color: \"var(--mdc-theme-on-surface)\"\n })\n};\n\nconst TagList = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\"\n});\n\nconst Tag = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n height: 40,\n alignItems: \"center\",\n cursor: \"pointer\",\n paddingLeft: 15,\n color: \"var(--mdc-theme-on-surface)\",\n svg: {\n color: \"var(--mdc-theme-on-surface)\",\n marginRight: 10\n },\n \"&:hover\": {\n backgroundColor: \"var(--mdc-theme-background)\"\n },\n \"&.active\": {\n svg: {\n color: \"var(--mdc-theme-secondary)\"\n }\n }\n});\n\ninterface LeftSidebarProps {\n toggleTag: (item: string) => void;\n queryParams: {\n tags: string[];\n scope: string;\n };\n}\nconst LeftSidebar: React.FC<LeftSidebarProps> = props => {\n const {\n toggleTag,\n queryParams: { tags, scope }\n } = props;\n const activeTags = Array.isArray(tags) ? tags : [];\n\n const { data } = useQuery(LIST_TAGS, { variables: { where: getWhere(scope) } });\n\n const list = get(data, \"fileManager.listTags\", []);\n\n if (list.length === 0) {\n return (\n <div className={style.leftDrawer} data-testid={\"fm.left-drawer.empty-tag\"}>\n <div className={style.noTagged}>\n Once you tag an image, the tag will be displayed here.\n </div>\n </div>\n );\n }\n // Sort \"tags\" list in \"ASC\" order.\n const tagList = sortBy(list);\n\n return (\n <div className={style.leftDrawer}>\n <TagList data-testid={\"fm.left-drawer.tag-list\"}>\n {tagList\n .filter(tag => tag !== scope)\n .map((item, index) => {\n const className = activeTags.includes(item) ? \"active\" : \"\";\n return (\n <Tag\n className={className}\n key={item + index}\n onClick={() => toggleTag(item)}\n >\n <Icon icon={<TagIcon />} /> {formatTagAsLabel(item, scope)}\n </Tag>\n );\n })}\n </TagList>\n </div>\n );\n};\n\nexport default LeftSidebar;\n"]}
1
+ {"version":3,"names":["style","leftDrawer","css","float","display","width","height","backgroundColor","padding","noTagged","paddingTop","textAlign","color","TagList","styled","flexDirection","Tag","alignItems","cursor","paddingLeft","svg","marginRight","LeftSidebar","props","toggleTag","queryParams","tags","scope","activeTags","Array","isArray","useQuery","LIST_TAGS","variables","where","getWhere","data","list","get","length","tagList","sortBy","filter","tag","map","item","index","className","includes","formatTagAsLabel"],"sources":["LeftSidebar.tsx"],"sourcesContent":["import React from \"react\";\nimport { useQuery } from \"@apollo/react-hooks\";\nimport get from \"lodash/get\";\nimport sortBy from \"lodash/sortBy\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { ReactComponent as TagIcon } from \"./icons/round-label-24px.svg\";\nimport { LIST_TAGS } from \"./graphql\";\nimport { getWhere } from \"./FileManagerContext\";\nimport { formatTagAsLabel } from \"./FileDetails/Tags\";\n\nconst style = {\n leftDrawer: css({\n float: \"left\",\n display: \"inline-block\",\n width: 250,\n height: \"100%\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n padding: 10\n }),\n noTagged: css({\n paddingTop: 100,\n textAlign: \"center\",\n color: \"var(--mdc-theme-on-surface)\"\n })\n};\n\nconst TagList = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\"\n});\n\nconst Tag = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n height: 40,\n alignItems: \"center\",\n cursor: \"pointer\",\n paddingLeft: 15,\n color: \"var(--mdc-theme-on-surface)\",\n svg: {\n color: \"var(--mdc-theme-on-surface)\",\n marginRight: 10\n },\n \"&:hover\": {\n backgroundColor: \"var(--mdc-theme-background)\"\n },\n \"&.active\": {\n svg: {\n color: \"var(--mdc-theme-secondary)\"\n }\n }\n});\n\ninterface LeftSidebarProps {\n toggleTag: (item: string) => void;\n queryParams: {\n tags: string[];\n scope: string;\n };\n}\nconst LeftSidebar: React.FC<LeftSidebarProps> = props => {\n const {\n toggleTag,\n queryParams: { tags, scope }\n } = props;\n const activeTags = Array.isArray(tags) ? tags : [];\n\n const { data } = useQuery(LIST_TAGS, { variables: { where: getWhere(scope) } });\n\n const list = get(data, \"fileManager.listTags\", []);\n\n if (list.length === 0) {\n return (\n <div className={style.leftDrawer} data-testid={\"fm.left-drawer.empty-tag\"}>\n <div className={style.noTagged}>\n Once you tag an image, the tag will be displayed here.\n </div>\n </div>\n );\n }\n // Sort \"tags\" list in \"ASC\" order.\n const tagList = sortBy(list);\n\n return (\n <div className={style.leftDrawer}>\n <TagList data-testid={\"fm.left-drawer.tag-list\"}>\n {tagList\n .filter(tag => tag !== scope)\n .map((item, index) => {\n const className = activeTags.includes(item) ? \"active\" : \"\";\n return (\n <Tag\n className={className}\n key={item + index}\n onClick={() => toggleTag(item)}\n >\n <Icon icon={<TagIcon />} /> {formatTagAsLabel(item, scope)}\n </Tag>\n );\n })}\n </TagList>\n </div>\n );\n};\n\nexport default LeftSidebar;\n"],"mappings":"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"}
@@ -1,15 +1,31 @@
1
- import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _emotion = require("emotion");
15
+
16
+ var _Icon = require("@webiny/ui/Icon");
17
+
18
+ var _i18n = require("@webiny/app/i18n");
19
+
20
+ var _privacy_tip24px = require("./icons/privacy_tip-24px.svg");
21
+
22
+ var _Typography = require("@webiny/ui/Typography");
2
23
 
3
24
  var _templateObject, _templateObject2;
4
25
 
5
- import React from "react";
6
- import { css } from "emotion";
7
- import { Icon } from "@webiny/ui/Icon";
8
- import { i18n } from "@webiny/app/i18n";
9
- import { ReactComponent as PermissionIcon } from "./icons/privacy_tip-24px.svg";
10
- import { Typography } from "@webiny/ui/Typography";
11
- var t = i18n.ns("app-admin/file-manager/file-manager-view/no-permission");
12
- var styles = /*#__PURE__*/css({
26
+ var t = _i18n.i18n.ns("app-admin/file-manager/file-manager-view/no-permission");
27
+
28
+ var styles = /*#__PURE__*/(0, _emotion.css)({
13
29
  margin: "0 auto",
14
30
  paddingTop: 0,
15
31
  height: "100%",
@@ -50,21 +66,22 @@ var styles = /*#__PURE__*/css({
50
66
  }, "label:styles;");
51
67
 
52
68
  var NoPermissionView = function NoPermissionView() {
53
- return /*#__PURE__*/React.createElement("div", {
69
+ return /*#__PURE__*/_react.default.createElement("div", {
54
70
  className: styles
55
- }, /*#__PURE__*/React.createElement("div", {
71
+ }, /*#__PURE__*/_react.default.createElement("div", {
56
72
  className: "outer-container"
57
- }, /*#__PURE__*/React.createElement("div", {
73
+ }, /*#__PURE__*/_react.default.createElement("div", {
58
74
  className: "inner-container"
59
- }, /*#__PURE__*/React.createElement(Icon, {
60
- icon: /*#__PURE__*/React.createElement(PermissionIcon, null)
61
- }), /*#__PURE__*/React.createElement(Typography, {
75
+ }, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
76
+ icon: /*#__PURE__*/_react.default.createElement(_privacy_tip24px.ReactComponent, null)
77
+ }), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
62
78
  className: "title",
63
79
  use: "subtitle1"
64
- }, t(_templateObject || (_templateObject = _taggedTemplateLiteral(["Permission needed"])))), /*#__PURE__*/React.createElement(Typography, {
80
+ }, t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Permission needed"])))), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
65
81
  className: "body",
66
82
  use: "body2"
67
- }, t(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["You're missing required permission to access files. Please contact the administrator."])))))));
83
+ }, t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["You're missing required permission to access files. Please contact the administrator."])))))));
68
84
  };
69
85
 
70
- export default NoPermissionView;
86
+ var _default = NoPermissionView;
87
+ exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["NoPermissionView.tsx"],"names":["React","css","Icon","i18n","ReactComponent","PermissionIcon","Typography","t","ns","styles","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","display","flexDirection","alignItems","color","marginTop","NoPermissionView"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,IAAT,QAAqB,iBAArB;AACA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,cAAc,IAAIC,cAA3B;AACA,SAASC,UAAT,QAA2B,uBAA3B;AAEA,IAAMC,CAAC,GAAGJ,IAAI,CAACK,EAAL,CAAQ,wDAAR,CAAV;AAEA,IAAMC,MAAM,gBAAGR,GAAG,CAAC;AACfS,EAAAA,MAAM,EAAE,QADO;AAEfC,EAAAA,UAAU,EAAE,CAFG;AAGfC,EAAAA,MAAM,EAAE,MAHO;AAIfC,EAAAA,MAAM,EAAE,CAJO;AAKfC,EAAAA,KAAK,EAAE,MALQ;AAMfC,EAAAA,QAAQ,EAAE,UANK;AAOfC,EAAAA,eAAe,EAAE,aAPF;AAQf,wBAAsB;AAClBC,IAAAA,SAAS,EAAE,QADO;AAElBH,IAAAA,KAAK,EAAE,GAFW;AAGlBF,IAAAA,MAAM,EAAE,GAHU;AAIlBI,IAAAA,eAAe,EAAE,0BAJC;AAKlBE,IAAAA,YAAY,EAAE,KALI;AAMlBH,IAAAA,QAAQ,EAAE,UANQ;AAOlBI,IAAAA,IAAI,EAAE,KAPY;AAQlBC,IAAAA,GAAG,EAAE,KARa;AASlBC,IAAAA,SAAS,EAAE,oCATO;AAUlB,0BAAsB;AAClBC,MAAAA,OAAO,EAAE,MADS;AAElBC,MAAAA,aAAa,EAAE,QAFG;AAGlBC,MAAAA,UAAU,EAAE,QAHM;AAIlBb,MAAAA,UAAU,EAAE,EAJM;AAKlBG,MAAAA,KAAK,EAAE,GALW;AAMlBW,MAAAA,KAAK,EAAE,6BANW;AAOlB,8BAAwB;AACpBX,QAAAA,KAAK,EAAE,GADa;AAEpBQ,QAAAA,OAAO,EAAE,cAFW;AAGpBG,QAAAA,KAAK,EAAE;AAHa,OAPN;AAYlB,kBAAY;AACRC,QAAAA,SAAS,EAAE;AADH,OAZM;AAelB,iBAAW;AACPD,QAAAA,KAAK,EAAE;AADA;AAfO;AAVJ;AARP,CAAD,kBAAlB;;AAwCA,IAAME,gBAA0B,GAAG,SAA7BA,gBAA6B,GAAM;AACrC,sBACI;AAAK,IAAA,SAAS,EAAElB;AAAhB,kBACI;AAAK,IAAA,SAAS,EAAE;AAAhB,kBACI;AAAK,IAAA,SAAS,EAAE;AAAhB,kBACI,oBAAC,IAAD;AAAM,IAAA,IAAI,eAAE,oBAAC,cAAD;AAAZ,IADJ,eAEI,oBAAC,UAAD;AACI,IAAA,SAAS,EAAE,OADf;AAEI,IAAA,GAAG,EAAE;AAFT,KAGEF,CAHF,uFAFJ,eAMI,oBAAC,UAAD;AAAY,IAAA,SAAS,EAAE,MAAvB;AAA+B,IAAA,GAAG,EAAE;AAApC,KACKA,CADL,6JANJ,CADJ,CADJ,CADJ;AAgBH,CAjBD;;AAmBA,eAAeoB,gBAAf","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as PermissionIcon } from \"./icons/privacy_tip-24px.svg\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view/no-permission\");\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"transparent\",\n \"& .outer-container\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-surface)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"& .inner-container\": {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n paddingTop: 35,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: 100,\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n },\n \"& .title\": {\n marginTop: 8\n },\n \"& .body\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n }\n }\n});\n\nconst NoPermissionView: React.FC = () => {\n return (\n <div className={styles}>\n <div className={\"outer-container\"}>\n <div className={\"inner-container\"}>\n <Icon icon={<PermissionIcon />} />\n <Typography\n className={\"title\"}\n use={\"subtitle1\"}\n >{t`Permission needed`}</Typography>\n <Typography className={\"body\"} use={\"body2\"}>\n {t`You're missing required permission to access files. Please contact the administrator.`}\n </Typography>\n </div>\n </div>\n </div>\n );\n};\n\nexport default NoPermissionView;\n"]}
1
+ {"version":3,"names":["t","i18n","ns","styles","css","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","display","flexDirection","alignItems","color","marginTop","NoPermissionView"],"sources":["NoPermissionView.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as PermissionIcon } from \"./icons/privacy_tip-24px.svg\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view/no-permission\");\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"transparent\",\n \"& .outer-container\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-surface)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"& .inner-container\": {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n paddingTop: 35,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: 100,\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n },\n \"& .title\": {\n marginTop: 8\n },\n \"& .body\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n }\n }\n});\n\nconst NoPermissionView: React.FC = () => {\n return (\n <div className={styles}>\n <div className={\"outer-container\"}>\n <div className={\"inner-container\"}>\n <Icon icon={<PermissionIcon />} />\n <Typography\n className={\"title\"}\n use={\"subtitle1\"}\n >{t`Permission needed`}</Typography>\n <Typography className={\"body\"} use={\"body2\"}>\n {t`You're missing required permission to access files. Please contact the administrator.`}\n </Typography>\n </div>\n </div>\n </div>\n );\n};\n\nexport default NoPermissionView;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,wDAAR,CAAV;;AAEA,IAAMC,MAAM,gBAAG,IAAAC,YAAA,EAAI;EACfC,MAAM,EAAE,QADO;EAEfC,UAAU,EAAE,CAFG;EAGfC,MAAM,EAAE,MAHO;EAIfC,MAAM,EAAE,CAJO;EAKfC,KAAK,EAAE,MALQ;EAMfC,QAAQ,EAAE,UANK;EAOfC,eAAe,EAAE,aAPF;EAQf,sBAAsB;IAClBC,SAAS,EAAE,QADO;IAElBH,KAAK,EAAE,GAFW;IAGlBF,MAAM,EAAE,GAHU;IAIlBI,eAAe,EAAE,0BAJC;IAKlBE,YAAY,EAAE,KALI;IAMlBH,QAAQ,EAAE,UANQ;IAOlBI,IAAI,EAAE,KAPY;IAQlBC,GAAG,EAAE,KARa;IASlBC,SAAS,EAAE,oCATO;IAUlB,sBAAsB;MAClBC,OAAO,EAAE,MADS;MAElBC,aAAa,EAAE,QAFG;MAGlBC,UAAU,EAAE,QAHM;MAIlBb,UAAU,EAAE,EAJM;MAKlBG,KAAK,EAAE,GALW;MAMlBW,KAAK,EAAE,6BANW;MAOlB,wBAAwB;QACpBX,KAAK,EAAE,GADa;QAEpBQ,OAAO,EAAE,cAFW;QAGpBG,KAAK,EAAE;MAHa,CAPN;MAYlB,YAAY;QACRC,SAAS,EAAE;MADH,CAZM;MAelB,WAAW;QACPD,KAAK,EAAE;MADA;IAfO;EAVJ;AARP,CAAJ,kBAAf;;AAwCA,IAAME,gBAA0B,GAAG,SAA7BA,gBAA6B,GAAM;EACrC,oBACI;IAAK,SAAS,EAAEnB;EAAhB,gBACI;IAAK,SAAS,EAAE;EAAhB,gBACI;IAAK,SAAS,EAAE;EAAhB,gBACI,6BAAC,UAAD;IAAM,IAAI,eAAE,6BAAC,+BAAD;EAAZ,EADJ,eAEI,6BAAC,sBAAD;IACI,SAAS,EAAE,OADf;IAEI,GAAG,EAAE;EAFT,GAGEH,CAHF,qGAFJ,eAMI,6BAAC,sBAAD;IAAY,SAAS,EAAE,MAAvB;IAA+B,GAAG,EAAE;EAApC,GACKA,CADL,2KANJ,CADJ,CADJ,CADJ;AAgBH,CAjBD;;eAmBesB,gB"}
@@ -1,6 +1,17 @@
1
- import React from "react";
2
- import { css } from "emotion";
3
- var styles = /*#__PURE__*/css({
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _emotion = require("emotion");
13
+
14
+ var styles = /*#__PURE__*/(0, _emotion.css)({
4
15
  padding: "100px 0px",
5
16
  textAlign: "center",
6
17
  position: "absolute",
@@ -8,9 +19,10 @@ var styles = /*#__PURE__*/css({
8
19
  }, "label:styles;");
9
20
 
10
21
  var DropFilesHere = function DropFilesHere() {
11
- return /*#__PURE__*/React.createElement("div", {
22
+ return /*#__PURE__*/_react.default.createElement("div", {
12
23
  className: styles
13
- }, /*#__PURE__*/React.createElement("div", null, "No results found."));
24
+ }, /*#__PURE__*/_react.default.createElement("div", null, "No results found."));
14
25
  };
15
26
 
16
- export default DropFilesHere;
27
+ var _default = DropFilesHere;
28
+ exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["NoResults.tsx"],"names":["React","css","styles","padding","textAlign","position","width","DropFilesHere"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,SAApB;AAEA,IAAMC,MAAM,gBAAGD,GAAG,CAAC;AACfE,EAAAA,OAAO,EAAE,WADM;AAEfC,EAAAA,SAAS,EAAE,QAFI;AAGfC,EAAAA,QAAQ,EAAE,UAHK;AAIfC,EAAAA,KAAK,EAAE;AAJQ,CAAD,kBAAlB;;AAOA,IAAMC,aAAuB,GAAG,SAA1BA,aAA0B,GAAM;AAClC,sBACI;AAAK,IAAA,SAAS,EAAEL;AAAhB,kBACI,qDADJ,CADJ;AAKH,CAND;;AAOA,eAAeK,aAAf","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\n\nconst styles = css({\n padding: \"100px 0px\",\n textAlign: \"center\",\n position: \"absolute\",\n width: \"100%\"\n});\n\nconst DropFilesHere: React.FC = () => {\n return (\n <div className={styles}>\n <div>No results found.</div>\n </div>\n );\n};\nexport default DropFilesHere;\n"]}
1
+ {"version":3,"names":["styles","css","padding","textAlign","position","width","DropFilesHere"],"sources":["NoResults.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\n\nconst styles = css({\n padding: \"100px 0px\",\n textAlign: \"center\",\n position: \"absolute\",\n width: \"100%\"\n});\n\nconst DropFilesHere: React.FC = () => {\n return (\n <div className={styles}>\n <div>No results found.</div>\n </div>\n );\n};\nexport default DropFilesHere;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,MAAM,gBAAG,IAAAC,YAAA,EAAI;EACfC,OAAO,EAAE,WADM;EAEfC,SAAS,EAAE,QAFI;EAGfC,QAAQ,EAAE,UAHK;EAIfC,KAAK,EAAE;AAJQ,CAAJ,kBAAf;;AAOA,IAAMC,aAAuB,GAAG,SAA1BA,aAA0B,GAAM;EAClC,oBACI;IAAK,SAAS,EAAEN;EAAhB,gBACI,8DADJ,CADJ;AAKH,CAND;;eAOeM,a"}
@@ -1,14 +1,28 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import invariant from "invariant";
3
- import minimatch from "minimatch";
4
- import { plugins } from "@webiny/plugins";
5
- import { FileManagerFileTypePlugin } from "../../plugins/FileManagerFileTypePlugin";
6
- export default function getFileTypePlugin(file) {
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = getFileTypePlugin;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _invariant = _interopRequireDefault(require("invariant"));
13
+
14
+ var _minimatch = _interopRequireDefault(require("minimatch"));
15
+
16
+ var _plugins = require("@webiny/plugins");
17
+
18
+ var _FileManagerFileTypePlugin = require("../../plugins/FileManagerFileTypePlugin");
19
+
20
+ function getFileTypePlugin(file) {
7
21
  if (!file) {
8
22
  return null;
9
23
  }
10
24
 
11
- var fileTypePlugins = [].concat(_toConsumableArray(plugins.byType("admin-file-manager-file-type")), _toConsumableArray(plugins.byType(FileManagerFileTypePlugin.type)));
25
+ var fileTypePlugins = [].concat((0, _toConsumableArray2.default)(_plugins.plugins.byType("admin-file-manager-file-type")), (0, _toConsumableArray2.default)(_plugins.plugins.byType(_FileManagerFileTypePlugin.FileManagerFileTypePlugin.type)));
12
26
  /**
13
27
  * TODO: if we are searching last available plugin, we can refactor this.
14
28
  * TODO: check out @pavel
@@ -25,12 +39,12 @@ export default function getFileTypePlugin(file) {
25
39
  }
26
40
 
27
41
  if (types.find(function (t) {
28
- return minimatch(file.type, t);
42
+ return (0, _minimatch.default)(file.type, t);
29
43
  })) {
30
44
  plugin = fileTypePlugins[i];
31
45
  }
32
46
  }
33
47
 
34
- invariant(plugin, "Missing plugin to handle \"".concat(file.type, "\"!"));
48
+ (0, _invariant.default)(plugin, "Missing plugin to handle \"".concat(file.type, "\"!"));
35
49
  return plugin;
36
50
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["getFileTypePlugin.ts"],"names":["invariant","minimatch","plugins","FileManagerFileTypePlugin","getFileTypePlugin","file","fileTypePlugins","byType","type","plugin","i","length","types","find","t"],"mappings":";AAAA,OAAOA,SAAP,MAAsB,WAAtB;AACA,OAAOC,SAAP,MAAsB,WAAtB;AACA,SAASC,OAAT,QAAwB,iBAAxB;AAEA,SAASC,yBAAT;AAGA,eAAe,SAASC,iBAAT,CACXC,IADW,EAEsD;AACjE,MAAI,CAACA,IAAL,EAAW;AACP,WAAO,IAAP;AACH;;AAED,MAAMC,eAAe,gCACdJ,OAAO,CAACK,MAAR,CAA+C,8BAA/C,CADc,sBAEdL,OAAO,CAACK,MAAR,CAA0CJ,yBAAyB,CAACK,IAApE,CAFc,EAArB;AAKA;AACJ;AACA;AACA;;AACI,MAAIC,MAAM,GAAG,IAAb;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,eAAe,CAACK,MAApC,EAA4CD,CAAC,EAA7C,EAAiD;AAC7C;AACA,QAAME,KAAK,GAAGN,eAAe,CAACI,CAAD,CAAf,CAAmBE,KAAjC;;AACA,QAAI,CAACA,KAAL,EAAY;AACR;AACH;;AACD,QAAIA,KAAK,CAACC,IAAN,CAAW,UAAAC,CAAC;AAAA,aAAIb,SAAS,CAACI,IAAI,CAACG,IAAN,EAAYM,CAAZ,CAAb;AAAA,KAAZ,CAAJ,EAA8C;AAC1CL,MAAAA,MAAM,GAAGH,eAAe,CAACI,CAAD,CAAxB;AACH;AACJ;;AAEDV,EAAAA,SAAS,CAACS,MAAD,uCAAsCJ,IAAI,CAACG,IAA3C,SAAT;AAEA,SAAOC,MAAP;AACH","sourcesContent":["import invariant from \"invariant\";\nimport minimatch from \"minimatch\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminFileManagerFileTypePlugin } from \"~/types\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\nimport { FileItem } from \"./types\";\n\nexport default function getFileTypePlugin(\n file: FileItem\n): AdminFileManagerFileTypePlugin | FileManagerFileTypePlugin | null {\n if (!file) {\n return null;\n }\n\n const fileTypePlugins = [\n ...plugins.byType<AdminFileManagerFileTypePlugin>(\"admin-file-manager-file-type\"),\n ...plugins.byType<FileManagerFileTypePlugin>(FileManagerFileTypePlugin.type)\n ];\n\n /**\n * TODO: if we are searching last available plugin, we can refactor this.\n * TODO: check out @pavel\n */\n let plugin = null;\n for (let i = 0; i < fileTypePlugins.length; i++) {\n // We don't want to include the global wildcard in this check.\n const types = fileTypePlugins[i].types;\n if (!types) {\n continue;\n }\n if (types.find(t => minimatch(file.type, t))) {\n plugin = fileTypePlugins[i];\n }\n }\n\n invariant(plugin, `Missing plugin to handle \"${file.type}\"!`);\n\n return plugin;\n}\n"]}
1
+ {"version":3,"names":["getFileTypePlugin","file","fileTypePlugins","plugins","byType","FileManagerFileTypePlugin","type","plugin","i","length","types","find","t","minimatch","invariant"],"sources":["getFileTypePlugin.ts"],"sourcesContent":["import invariant from \"invariant\";\nimport minimatch from \"minimatch\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminFileManagerFileTypePlugin } from \"~/types\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\nimport { FileItem } from \"./types\";\n\nexport default function getFileTypePlugin(\n file: FileItem\n): AdminFileManagerFileTypePlugin | FileManagerFileTypePlugin | null {\n if (!file) {\n return null;\n }\n\n const fileTypePlugins = [\n ...plugins.byType<AdminFileManagerFileTypePlugin>(\"admin-file-manager-file-type\"),\n ...plugins.byType<FileManagerFileTypePlugin>(FileManagerFileTypePlugin.type)\n ];\n\n /**\n * TODO: if we are searching last available plugin, we can refactor this.\n * TODO: check out @pavel\n */\n let plugin = null;\n for (let i = 0; i < fileTypePlugins.length; i++) {\n // We don't want to include the global wildcard in this check.\n const types = fileTypePlugins[i].types;\n if (!types) {\n continue;\n }\n if (types.find(t => minimatch(file.type, t))) {\n plugin = fileTypePlugins[i];\n }\n }\n\n invariant(plugin, `Missing plugin to handle \"${file.type}\"!`);\n\n return plugin;\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAGe,SAASA,iBAAT,CACXC,IADW,EAEsD;EACjE,IAAI,CAACA,IAAL,EAAW;IACP,OAAO,IAAP;EACH;;EAED,IAAMC,eAAe,8CACdC,gBAAA,CAAQC,MAAR,CAA+C,8BAA/C,CADc,oCAEdD,gBAAA,CAAQC,MAAR,CAA0CC,oDAAA,CAA0BC,IAApE,CAFc,EAArB;EAKA;AACJ;AACA;AACA;;EACI,IAAIC,MAAM,GAAG,IAAb;;EACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,eAAe,CAACO,MAApC,EAA4CD,CAAC,EAA7C,EAAiD;IAC7C;IACA,IAAME,KAAK,GAAGR,eAAe,CAACM,CAAD,CAAf,CAAmBE,KAAjC;;IACA,IAAI,CAACA,KAAL,EAAY;MACR;IACH;;IACD,IAAIA,KAAK,CAACC,IAAN,CAAW,UAAAC,CAAC;MAAA,OAAI,IAAAC,kBAAA,EAAUZ,IAAI,CAACK,IAAf,EAAqBM,CAArB,CAAJ;IAAA,CAAZ,CAAJ,EAA8C;MAC1CL,MAAM,GAAGL,eAAe,CAACM,CAAD,CAAxB;IACH;EACJ;;EAED,IAAAM,kBAAA,EAAUP,MAAV,uCAA+CN,IAAI,CAACK,IAApD;EAEA,OAAOC,MAAP;AACH"}
@@ -1,10 +1,20 @@
1
- import { plugins } from "@webiny/plugins";
2
- export default (function () {
3
- var fileStoragePlugin = plugins.byName("app-file-manager-storage");
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _plugins = require("@webiny/plugins");
9
+
10
+ var _default = function _default() {
11
+ var fileStoragePlugin = _plugins.plugins.byName("app-file-manager-storage");
4
12
 
5
13
  if (!fileStoragePlugin) {
6
14
  throw Error('Missing plugin: "app-file-manager-storage".');
7
15
  }
8
16
 
9
17
  return fileStoragePlugin.upload;
10
- });
18
+ };
19
+
20
+ exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["getFileUploader.ts"],"names":["plugins","fileStoragePlugin","byName","Error","upload"],"mappings":"AAAA,SAASA,OAAT,QAAwB,iBAAxB;AAGA,gBAAe,YAA6C;AACxD,MAAMC,iBAAiB,GAAGD,OAAO,CAACE,MAAR,CACtB,0BADsB,CAA1B;;AAIA,MAAI,CAACD,iBAAL,EAAwB;AACpB,UAAME,KAAK,CAAC,6CAAD,CAAX;AACH;;AAED,SAAOF,iBAAiB,CAACG,MAAzB;AACH,CAVD","sourcesContent":["import { plugins } from \"@webiny/plugins\";\nimport { AppFileManagerStoragePlugin } from \"@webiny/app/types\";\n\nexport default (): AppFileManagerStoragePlugin[\"upload\"] => {\n const fileStoragePlugin = plugins.byName<AppFileManagerStoragePlugin>(\n \"app-file-manager-storage\"\n );\n\n if (!fileStoragePlugin) {\n throw Error('Missing plugin: \"app-file-manager-storage\".');\n }\n\n return fileStoragePlugin.upload;\n};\n"]}
1
+ {"version":3,"names":["fileStoragePlugin","plugins","byName","Error","upload"],"sources":["getFileUploader.ts"],"sourcesContent":["import { plugins } from \"@webiny/plugins\";\nimport { AppFileManagerStoragePlugin } from \"@webiny/app/types\";\n\nexport default (): AppFileManagerStoragePlugin[\"upload\"] => {\n const fileStoragePlugin = plugins.byName<AppFileManagerStoragePlugin>(\n \"app-file-manager-storage\"\n );\n\n if (!fileStoragePlugin) {\n throw Error('Missing plugin: \"app-file-manager-storage\".');\n }\n\n return fileStoragePlugin.upload;\n};\n"],"mappings":";;;;;;;AAAA;;eAGe,oBAA6C;EACxD,IAAMA,iBAAiB,GAAGC,gBAAA,CAAQC,MAAR,CACtB,0BADsB,CAA1B;;EAIA,IAAI,CAACF,iBAAL,EAAwB;IACpB,MAAMG,KAAK,CAAC,6CAAD,CAAX;EACH;;EAED,OAAOH,iBAAiB,CAACI,MAAzB;AACH,C"}