@webiny/app-admin 5.23.1 → 5.25.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 (306) hide show
  1. package/base/Admin.d.ts +3 -10
  2. package/base/Admin.js +4 -0
  3. package/base/Admin.js.map +1 -0
  4. package/base/Base.d.ts +1 -1
  5. package/base/Base.js.map +1 -0
  6. package/base/plugins/AddGraphQLQuerySelection.d.ts +2 -2
  7. package/base/plugins/AddGraphQLQuerySelection.js +3 -2
  8. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -0
  9. package/base/providers/ApolloProvider.d.ts +9 -3
  10. package/base/providers/ApolloProvider.js +2 -1
  11. package/base/providers/ApolloProvider.js.map +1 -0
  12. package/base/providers/TelemetryProvider.d.ts +2 -4
  13. package/base/providers/TelemetryProvider.js +5 -0
  14. package/base/providers/TelemetryProvider.js.map +1 -0
  15. package/base/providers/UiStateProvider.d.ts +1 -3
  16. package/base/providers/UiStateProvider.js.map +1 -0
  17. package/base/providers/ViewCompositionProvider.d.ts +4 -5
  18. package/base/providers/ViewCompositionProvider.js +8 -1
  19. package/base/providers/ViewCompositionProvider.js.map +1 -0
  20. package/base/ui/Brand.d.ts +2 -9
  21. package/base/ui/Brand.js.map +1 -0
  22. package/base/ui/CenteredView.d.ts +1 -5
  23. package/base/ui/CenteredView.js.map +1 -0
  24. package/base/ui/Dashboard.d.ts +2 -9
  25. package/base/ui/Dashboard.js.map +1 -0
  26. package/base/ui/Layout.d.ts +2 -8
  27. package/base/ui/Layout.js.map +1 -0
  28. package/base/ui/LocaleSelector.d.ts +2 -9
  29. package/base/ui/LocaleSelector.js.map +1 -0
  30. package/base/ui/LoginScreen.d.ts +2 -5
  31. package/base/ui/LoginScreen.js.map +1 -0
  32. package/base/ui/Logo.d.ts +3 -9
  33. package/base/ui/Logo.js.map +1 -0
  34. package/base/ui/Menu.d.ts +8 -12
  35. package/base/ui/Menu.js +96 -30
  36. package/base/ui/Menu.js.map +1 -0
  37. package/base/ui/Navigation.d.ts +9 -20
  38. package/base/ui/Navigation.js +29 -29
  39. package/base/ui/Navigation.js.map +1 -0
  40. package/base/ui/NotFound.d.ts +2 -9
  41. package/base/ui/NotFound.js.map +1 -0
  42. package/base/ui/Search.d.ts +4 -13
  43. package/base/ui/Search.js +6 -1
  44. package/base/ui/Search.js.map +1 -0
  45. package/base/ui/Tags.d.ts +4 -2
  46. package/base/ui/Tags.js.map +1 -0
  47. package/base/ui/UserMenu.d.ts +9 -33
  48. package/base/ui/UserMenu.js +15 -2
  49. package/base/ui/UserMenu.js.map +1 -0
  50. package/components/AdminLayout.d.ts +1 -2
  51. package/components/AdminLayout.js.map +1 -0
  52. package/components/AppInstaller/AppInstaller.d.ts +2 -4
  53. package/components/AppInstaller/AppInstaller.js.map +1 -0
  54. package/components/AppInstaller/Sidebar.d.ts +8 -6
  55. package/components/AppInstaller/Sidebar.js +11 -10
  56. package/components/AppInstaller/Sidebar.js.map +1 -0
  57. package/components/AppInstaller/index.js.map +1 -0
  58. package/components/AppInstaller/styled.d.ts +4 -4
  59. package/components/AppInstaller/styled.js.map +1 -0
  60. package/components/AppInstaller/useInstaller.d.ts +28 -9
  61. package/components/AppInstaller/useInstaller.js +44 -36
  62. package/components/AppInstaller/useInstaller.js.map +1 -0
  63. package/components/EmptyView.d.ts +5 -5
  64. package/components/EmptyView.js.map +1 -0
  65. package/components/FileManager/BottomInfoBar/SupportedFileTypes.d.ts +5 -4
  66. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +7 -1
  67. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -0
  68. package/components/FileManager/BottomInfoBar/UploadStatus.d.ts +5 -4
  69. package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -0
  70. package/components/FileManager/BottomInfoBar.d.ts +4 -2
  71. package/components/FileManager/BottomInfoBar.js.map +1 -0
  72. package/components/FileManager/DropFilesHere.d.ts +4 -3
  73. package/components/FileManager/DropFilesHere.js +5 -2
  74. package/components/FileManager/DropFilesHere.js.map +1 -0
  75. package/components/FileManager/File.d.ts +7 -8
  76. package/components/FileManager/File.js +11 -5
  77. package/components/FileManager/File.js.map +1 -0
  78. package/components/FileManager/FileDetails/Name.d.ts +7 -5
  79. package/components/FileManager/FileDetails/Name.js +10 -7
  80. package/components/FileManager/FileDetails/Name.js.map +1 -0
  81. package/components/FileManager/FileDetails/Tags.d.ts +7 -5
  82. package/components/FileManager/FileDetails/Tags.js +22 -9
  83. package/components/FileManager/FileDetails/Tags.js.map +1 -0
  84. package/components/FileManager/FileDetails.d.ts +9 -8
  85. package/components/FileManager/FileDetails.js +80 -41
  86. package/components/FileManager/FileDetails.js.map +1 -0
  87. package/components/FileManager/FileManagerContext.d.ts +12 -9
  88. package/components/FileManager/FileManagerContext.js +14 -7
  89. package/components/FileManager/FileManagerContext.js.map +1 -0
  90. package/components/FileManager/FileManagerView.d.ts +3 -11
  91. package/components/FileManager/FileManagerView.js +79 -51
  92. package/components/FileManager/FileManagerView.js.map +1 -0
  93. package/components/FileManager/LeftSidebar.d.ts +6 -5
  94. package/components/FileManager/LeftSidebar.js +6 -5
  95. package/components/FileManager/LeftSidebar.js.map +1 -0
  96. package/components/FileManager/NoPermissionView.d.ts +2 -2
  97. package/components/FileManager/NoPermissionView.js.map +1 -0
  98. package/components/FileManager/NoResults.d.ts +3 -2
  99. package/components/FileManager/NoResults.js +5 -2
  100. package/components/FileManager/NoResults.js.map +1 -0
  101. package/components/FileManager/getFileTypePlugin.d.ts +4 -1
  102. package/components/FileManager/getFileTypePlugin.js +9 -0
  103. package/components/FileManager/getFileTypePlugin.js.map +1 -0
  104. package/components/FileManager/getFileUploader.d.ts +2 -1
  105. package/components/FileManager/getFileUploader.js.map +1 -0
  106. package/components/FileManager/graphql.d.ts +90 -0
  107. package/components/FileManager/graphql.js +25 -0
  108. package/components/FileManager/graphql.js.map +1 -0
  109. package/components/FileManager/outputFileSelectionError.d.ts +6 -1
  110. package/components/FileManager/outputFileSelectionError.js +3 -2
  111. package/components/FileManager/outputFileSelectionError.js.map +1 -0
  112. package/components/FileManager/types.d.ts +19 -0
  113. package/components/FileManager/types.js +1 -0
  114. package/components/FileManager/types.js.map +1 -0
  115. package/components/FileManager.d.ts +15 -10
  116. package/components/FileManager.js +27 -16
  117. package/components/FileManager.js.map +1 -0
  118. package/components/FloatingActionButton.d.ts +2 -2
  119. package/components/FloatingActionButton.js.map +1 -0
  120. package/components/MultiImageUpload.d.ts +13 -4
  121. package/components/MultiImageUpload.js +15 -4
  122. package/components/MultiImageUpload.js.map +1 -0
  123. package/components/OverlayLayout/OverlayLayout.d.ts +10 -13
  124. package/components/OverlayLayout/OverlayLayout.js.map +1 -0
  125. package/components/OverlayLayout/index.js.map +1 -0
  126. package/components/Permissions/Permissions.d.ts +4 -4
  127. package/components/Permissions/Permissions.js.map +1 -0
  128. package/components/Permissions/StyledComponents.d.ts +6 -4
  129. package/components/Permissions/StyledComponents.js.map +1 -0
  130. package/components/Permissions/index.js.map +1 -0
  131. package/components/RichTextEditor/RichTextEditor.d.ts +2 -2
  132. package/components/RichTextEditor/RichTextEditor.js.map +1 -0
  133. package/components/RichTextEditor/index.js.map +1 -0
  134. package/components/RichTextEditor/tools/header/index.d.ts +33 -34
  135. package/components/RichTextEditor/tools/header/index.js +5 -6
  136. package/components/RichTextEditor/tools/header/index.js.map +1 -0
  137. package/components/RichTextEditor/tools/image/index.d.ts +38 -13
  138. package/components/RichTextEditor/tools/image/index.js +4 -2
  139. package/components/RichTextEditor/tools/image/index.js.map +1 -0
  140. package/components/RichTextEditor/tools/image/svgs.js.map +1 -0
  141. package/components/RichTextEditor/tools/image/tunes.d.ts +12 -15
  142. package/components/RichTextEditor/tools/image/tunes.js +9 -4
  143. package/components/RichTextEditor/tools/image/tunes.js.map +1 -0
  144. package/components/RichTextEditor/tools/image/types.d.ts +29 -0
  145. package/components/RichTextEditor/tools/image/types.js +1 -0
  146. package/components/RichTextEditor/tools/image/types.js.map +1 -0
  147. package/components/RichTextEditor/tools/image/ui.d.ts +36 -27
  148. package/components/RichTextEditor/tools/image/ui.js +25 -12
  149. package/components/RichTextEditor/tools/image/ui.js.map +1 -0
  150. package/components/RichTextEditor/tools/paragraph/index.d.ts +32 -36
  151. package/components/RichTextEditor/tools/paragraph/index.js +17 -25
  152. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -0
  153. package/components/RichTextEditor/tools/textColor/index.d.ts +30 -22
  154. package/components/RichTextEditor/tools/textColor/index.js +46 -10
  155. package/components/RichTextEditor/tools/textColor/index.js.map +1 -0
  156. package/components/RichTextEditor/tools/utils.js.map +1 -0
  157. package/components/Routes.d.ts +2 -2
  158. package/components/Routes.js.map +1 -0
  159. package/components/SearchUI.d.ts +4 -4
  160. package/components/SearchUI.js.map +1 -0
  161. package/components/SimpleForm/SimpleForm.d.ts +10 -11
  162. package/components/SimpleForm/SimpleForm.js.map +1 -0
  163. package/components/SimpleForm/index.js.map +1 -0
  164. package/components/SimpleUI/InputField.d.ts +4 -3
  165. package/components/SimpleUI/InputField.js +22 -20
  166. package/components/SimpleUI/InputField.js.map +1 -0
  167. package/components/SingleImageUpload.d.ts +3 -9
  168. package/components/SingleImageUpload.js +9 -11
  169. package/components/SingleImageUpload.js.map +1 -0
  170. package/components/SplitView/SplitView.d.ts +5 -5
  171. package/components/SplitView/SplitView.js.map +1 -0
  172. package/components/SplitView/index.js.map +1 -0
  173. package/components/index.js.map +1 -0
  174. package/hooks/useConfirmationDialog.d.ts +6 -5
  175. package/hooks/useConfirmationDialog.js +1 -2
  176. package/hooks/useConfirmationDialog.js.map +1 -0
  177. package/hooks/useDialog.d.ts +8 -3
  178. package/hooks/useDialog.js +1 -1
  179. package/hooks/useDialog.js.map +1 -0
  180. package/hooks/useSnackbar.d.ts +6 -3
  181. package/hooks/useSnackbar.js.map +1 -0
  182. package/index.js.map +1 -0
  183. package/package.json +24 -20
  184. package/plugins/FileManagerFileTypePlugin.d.ts +3 -3
  185. package/plugins/FileManagerFileTypePlugin.js +4 -0
  186. package/plugins/FileManagerFileTypePlugin.js.map +1 -0
  187. package/plugins/MenuPlugin.d.ts +6 -6
  188. package/plugins/MenuPlugin.js +4 -0
  189. package/plugins/MenuPlugin.js.map +1 -0
  190. package/plugins/PermissionRendererPlugin.d.ts +4 -4
  191. package/plugins/PermissionRendererPlugin.js +4 -0
  192. package/plugins/PermissionRendererPlugin.js.map +1 -0
  193. package/plugins/fileManager/fileDefault.js.map +1 -0
  194. package/plugins/fileManager/fileImage/DeleteAction.d.ts +6 -2
  195. package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -0
  196. package/plugins/fileManager/fileImage/EditAction.d.ts +7 -6
  197. package/plugins/fileManager/fileImage/EditAction.js +24 -11
  198. package/plugins/fileManager/fileImage/EditAction.js.map +1 -0
  199. package/plugins/fileManager/fileImage/index.js.map +1 -0
  200. package/plugins/fileManager/index.js.map +1 -0
  201. package/plugins/globalSearch/SearchBar.d.ts +14 -5
  202. package/plugins/globalSearch/SearchBar.js +9 -0
  203. package/plugins/globalSearch/SearchBar.js.map +1 -0
  204. package/plugins/globalSearch/SearchBarDropdown.d.ts +19 -1
  205. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -0
  206. package/plugins/globalSearch/index.d.ts +2 -1
  207. package/plugins/globalSearch/index.js.map +1 -0
  208. package/plugins/globalSearch/styled.d.ts +3 -3
  209. package/plugins/globalSearch/styled.js.map +1 -0
  210. package/plugins/index.d.ts +2 -1
  211. package/plugins/index.js.map +1 -0
  212. package/plugins/uiLayoutRenderer/index.js.map +1 -0
  213. package/types.d.ts +10 -8
  214. package/types.js.map +1 -0
  215. package/ui/UIElement.d.ts +1 -1
  216. package/ui/UIElement.js.map +1 -0
  217. package/ui/UILayout.js.map +1 -0
  218. package/ui/UIRenderer.js.map +1 -0
  219. package/ui/UIView.d.ts +1 -1
  220. package/ui/UIView.js.map +1 -0
  221. package/ui/elements/AccordionElement.d.ts +5 -5
  222. package/ui/elements/AccordionElement.js +4 -0
  223. package/ui/elements/AccordionElement.js.map +1 -0
  224. package/ui/elements/ButtonElement.d.ts +3 -3
  225. package/ui/elements/ButtonElement.js +7 -0
  226. package/ui/elements/ButtonElement.js.map +1 -0
  227. package/ui/elements/ButtonGroupElement.d.ts +2 -2
  228. package/ui/elements/ButtonGroupElement.js.map +1 -0
  229. package/ui/elements/GenericElement.js.map +1 -0
  230. package/ui/elements/LabelElement.js.map +1 -0
  231. package/ui/elements/NavigationMenuElement.d.ts +2 -1
  232. package/ui/elements/NavigationMenuElement.js +3 -2
  233. package/ui/elements/NavigationMenuElement.js.map +1 -0
  234. package/ui/elements/PanelElement.js.map +1 -0
  235. package/ui/elements/PlaceholderElement.d.ts +2 -1
  236. package/ui/elements/PlaceholderElement.js.map +1 -0
  237. package/ui/elements/SmallButtonElement.d.ts +1 -1
  238. package/ui/elements/SmallButtonElement.js.map +1 -0
  239. package/ui/elements/TypographyElement.d.ts +1 -1
  240. package/ui/elements/TypographyElement.js.map +1 -0
  241. package/ui/elements/ViewElement.js.map +1 -0
  242. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +2 -2
  243. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +10 -10
  244. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -0
  245. package/ui/elements/form/DynamicFieldsetElement.d.ts +19 -18
  246. package/ui/elements/form/DynamicFieldsetElement.js +13 -0
  247. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -0
  248. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -0
  249. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -0
  250. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -0
  251. package/ui/elements/form/FileManagerElement/styled.d.ts +17 -13
  252. package/ui/elements/form/FileManagerElement/styled.js.map +1 -0
  253. package/ui/elements/form/FileManagerElement.d.ts +6 -6
  254. package/ui/elements/form/FileManagerElement.js.map +1 -0
  255. package/ui/elements/form/FormElement.d.ts +5 -5
  256. package/ui/elements/form/FormElement.js.map +1 -0
  257. package/ui/elements/form/FormFieldElement.d.ts +9 -8
  258. package/ui/elements/form/FormFieldElement.js +15 -7
  259. package/ui/elements/form/FormFieldElement.js.map +1 -0
  260. package/ui/elements/form/HiddenElement.js.map +1 -0
  261. package/ui/elements/form/InputElement.d.ts +1 -0
  262. package/ui/elements/form/InputElement.js.map +1 -0
  263. package/ui/elements/form/PasswordElement.js.map +1 -0
  264. package/ui/elements/form/SelectElement.d.ts +1 -1
  265. package/ui/elements/form/SelectElement.js +1 -1
  266. package/ui/elements/form/SelectElement.js.map +1 -0
  267. package/ui/elements/form/TextareaElement.js.map +1 -0
  268. package/ui/views/AdminView/ContentElement.js.map +1 -0
  269. package/ui/views/AdminView/HeaderElement.js +14 -2
  270. package/ui/views/AdminView/HeaderElement.js.map +1 -0
  271. package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +2 -2
  272. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -0
  273. package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +2 -2
  274. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -0
  275. package/ui/views/AdminView/HeaderSectionRightElement.d.ts +2 -2
  276. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -0
  277. package/ui/views/AdminView/components/Dialog.js.map +1 -0
  278. package/ui/views/AdminView/components/Hamburger.d.ts +2 -2
  279. package/ui/views/AdminView/components/Hamburger.js.map +1 -0
  280. package/ui/views/AdminView/components/Snackbar.d.ts +2 -2
  281. package/ui/views/AdminView/components/Snackbar.js.map +1 -0
  282. package/ui/views/FormView/FormContainerElement.d.ts +2 -2
  283. package/ui/views/FormView/FormContainerElement.js.map +1 -0
  284. package/ui/views/FormView/FormContentElement.js.map +1 -0
  285. package/ui/views/FormView/FormFooterElement.d.ts +3 -3
  286. package/ui/views/FormView/FormFooterElement.js.map +1 -0
  287. package/ui/views/FormView/FormHeaderElement.d.ts +2 -2
  288. package/ui/views/FormView/FormHeaderElement.js.map +1 -0
  289. package/ui/views/FormView.d.ts +1 -1
  290. package/ui/views/FormView.js +25 -3
  291. package/ui/views/FormView.js.map +1 -0
  292. package/ui/views/OverlayView/ContentElement.d.ts +2 -2
  293. package/ui/views/OverlayView/ContentElement.js.map +1 -0
  294. package/ui/views/OverlayView/HeaderElement.d.ts +5 -5
  295. package/ui/views/OverlayView/HeaderElement.js.map +1 -0
  296. package/ui/views/OverlayView/HeaderTitleElement.d.ts +1 -1
  297. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -0
  298. package/ui/views/OverlayView/useOverlayView.d.ts +4 -5
  299. package/ui/views/OverlayView/useOverlayView.js +2 -2
  300. package/ui/views/OverlayView/useOverlayView.js.map +1 -0
  301. package/ui/views/OverlayView.d.ts +4 -6
  302. package/ui/views/OverlayView.js.map +1 -0
  303. package/ui/views/SplitView/SplitViewPanelElement.d.ts +3 -3
  304. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -0
  305. package/ui/views/SplitView.d.ts +3 -3
  306. package/ui/views/SplitView.js.map +1 -0
@@ -32,6 +32,11 @@ import { Scrollbar } from "@webiny/ui/Scrollbar";
32
32
  import { CircularProgress } from "@webiny/ui/Progress";
33
33
  import { i18n } from "@webiny/app/i18n";
34
34
  import { useSecurity } from "@webiny/app-security";
35
+ /**
36
+ * Package react-hotkeyz is missing types.
37
+ */
38
+ // @ts-ignore
39
+
35
40
  import { useHotkeys } from "react-hotkeyz";
36
41
  import { useFileManager } from "./FileManagerContext";
37
42
  import { ReactComponent as SearchIcon } from "./icons/round-search-24px.svg";
@@ -111,15 +116,24 @@ var FileList = /*#__PURE__*/styled("div", {
111
116
  marginBottom: 95
112
117
  });
113
118
 
114
- function renderFile(props) {
119
+ var renderFile = function renderFile(props) {
115
120
  var file = props.file;
116
121
  var plugin = getFileTypePlugin(file);
122
+
123
+ if (!plugin) {
124
+ return null;
125
+ }
126
+
117
127
  return /*#__PURE__*/React.createElement(File, Object.assign({}, props, {
118
128
  key: file.id
119
129
  }), plugin.render({
130
+ /**
131
+ * TODO @ts-refactor
132
+ */
133
+ // @ts-ignore
120
134
  file: file
121
135
  }));
122
- }
136
+ };
123
137
 
124
138
  var renderEmpty = function renderEmpty(_ref) {
125
139
  var hasPreviouslyUploadedFiles = _ref.hasPreviouslyUploadedFiles,
@@ -136,11 +150,13 @@ var renderEmpty = function renderEmpty(_ref) {
136
150
 
137
151
  return /*#__PURE__*/React.createElement(DropFilesHere, {
138
152
  empty: true,
139
- onClick: browseFiles
153
+ onClick: function onClick() {
154
+ return browseFiles();
155
+ }
140
156
  });
141
157
  };
142
158
 
143
- function FileManagerView(props) {
159
+ var FileManagerView = function FileManagerView(props) {
144
160
  var onClose = props.onClose,
145
161
  onChange = props.onChange,
146
162
  accept = props.accept,
@@ -168,11 +184,12 @@ function FileManagerView(props) {
168
184
  showSnackbar = _useSnackbar.showSnackbar;
169
185
 
170
186
  var _useSecurity = useSecurity(),
171
- identity = _useSecurity.identity;
187
+ identity = _useSecurity.identity,
188
+ getPermission = _useSecurity.getPermission;
172
189
 
173
190
  var fmFilePermission = useMemo(function () {
174
- return identity.getPermission("fm.file");
175
- }, []);
191
+ return getPermission("fm.file");
192
+ }, [identity]);
176
193
  var canCreate = useMemo(function () {
177
194
  // Bail out early if no access
178
195
  if (!fmFilePermission) {
@@ -198,7 +215,7 @@ function FileManagerView(props) {
198
215
  var creatorId = get(item, "createdBy.id");
199
216
 
200
217
  if (fmFilePermission.own && creatorId) {
201
- var identityId = identity.id || identity.login;
218
+ var identityId = identity ? identity.id || identity.login : null;
202
219
  return creatorId === identityId;
203
220
  }
204
221
 
@@ -266,6 +283,8 @@ function FileManagerView(props) {
266
283
  }, []);
267
284
 
268
285
  var updateCacheAfterCreateFile = function updateCacheAfterCreateFile(cache, newFile) {
286
+ var _data$fileManager;
287
+
269
288
  var newFileData = get(newFile, "data.fileManager.createFile.data");
270
289
  var data = cache.readQuery({
271
290
  query: LIST_FILES,
@@ -275,16 +294,16 @@ function FileManagerView(props) {
275
294
  query: LIST_FILES,
276
295
  variables: queryParams,
277
296
  data: {
278
- fileManager: _objectSpread(_objectSpread({}, data.fileManager), {}, {
279
- listFiles: _objectSpread(_objectSpread({}, data.fileManager.listFiles), {}, {
280
- data: [newFileData].concat(_toConsumableArray(data.fileManager.listFiles.data || []))
297
+ fileManager: _objectSpread(_objectSpread({}, (data === null || data === void 0 ? void 0 : data.fileManager) || {}), {}, {
298
+ listFiles: _objectSpread(_objectSpread({}, ((data === null || data === void 0 ? void 0 : data.fileManager) || {}).listFiles), {}, {
299
+ data: [newFileData].concat(_toConsumableArray(((data === null || data === void 0 ? void 0 : (_data$fileManager = data.fileManager) === null || _data$fileManager === void 0 ? void 0 : _data$fileManager.listFiles) || {}).data || []))
281
300
  })
282
301
  })
283
302
  }
284
303
  });
285
304
  };
286
305
 
287
- var getFileDetailsFile = useCallback(function getFileDetailsFile(_ref4) {
306
+ var getFileDetailsFile = useCallback(function (_ref4) {
288
307
  var src = _ref4.src,
289
308
  list = _ref4.list;
290
309
  return list.find(function (item) {
@@ -297,7 +316,7 @@ function FileManagerView(props) {
297
316
  esc: onClose
298
317
  }
299
318
  });
300
- var searchInput = useRef();
319
+ var searchInput = useRef(null);
301
320
  var apolloClient = useApolloClient();
302
321
  var gqlQuery = useQuery(LIST_FILES, {
303
322
  variables: queryParams,
@@ -321,8 +340,8 @@ function FileManagerView(props) {
321
340
  variables: {
322
341
  after: cursor
323
342
  },
324
- updateQuery: function updateQuery(prev, _ref6) {
325
- var fetchMoreResult = _ref6.fetchMoreResult;
343
+ updateQuery: function updateQuery(prev, result) {
344
+ var fetchMoreResult = result.fetchMoreResult;
326
345
 
327
346
  if (!fetchMoreResult) {
328
347
  return prev;
@@ -349,7 +368,7 @@ function FileManagerView(props) {
349
368
  createFile = _useMutation2[0];
350
369
 
351
370
  var uploadFile = /*#__PURE__*/function () {
352
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(files) {
371
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(files) {
353
372
  var list, errors, uploadedFiles;
354
373
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
355
374
  while (1) {
@@ -361,7 +380,7 @@ function FileManagerView(props) {
361
380
  uploadedFiles = [];
362
381
  _context3.next = 6;
363
382
  return Promise.all(list.map( /*#__PURE__*/function () {
364
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(file) {
383
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(file) {
365
384
  var response, createFileResponse;
366
385
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
367
386
  while (1) {
@@ -406,7 +425,7 @@ function FileManagerView(props) {
406
425
  }));
407
426
 
408
427
  return function (_x3) {
409
- return _ref8.apply(this, arguments);
428
+ return _ref7.apply(this, arguments);
410
429
  };
411
430
  }()));
412
431
 
@@ -423,13 +442,13 @@ function FileManagerView(props) {
423
442
  }
424
443
 
425
444
  return _context3.abrupt("return", setTimeout(function () {
426
- showSnackbar( /*#__PURE__*/React.createElement(React.Fragment, null, t(_templateObject || (_templateObject = _taggedTemplateLiteral(["One or more files were not uploaded successfully:"]))), /*#__PURE__*/React.createElement("ol", null, errors.map(function (_ref9) {
427
- var file = _ref9.file,
428
- e = _ref9.e;
445
+ showSnackbar( /*#__PURE__*/React.createElement(React.Fragment, null, t(_templateObject || (_templateObject = _taggedTemplateLiteral(["One or more files were not uploaded successfully:"]))), /*#__PURE__*/React.createElement("ol", null, errors.map(function (_ref8) {
446
+ var file = _ref8.file,
447
+ e = _ref8.e;
429
448
  return /*#__PURE__*/React.createElement("li", {
430
449
  key: file.name
431
450
  }, /*#__PURE__*/React.createElement("strong", null, file.name), ": ", getFileUploadErrorMessage(e));
432
- }))));
451
+ })))); // TODO @ts-refactor
433
452
  }, 750));
434
453
 
435
454
  case 10:
@@ -445,7 +464,7 @@ function FileManagerView(props) {
445
464
 
446
465
  return _context3.abrupt("return", setTimeout(function () {
447
466
  onUploadCompletion(uploadedFiles);
448
- onClose();
467
+ onClose(); // TODO @ts-refactor
449
468
  }, 750));
450
469
 
451
470
  case 13:
@@ -460,12 +479,12 @@ function FileManagerView(props) {
460
479
  }));
461
480
 
462
481
  return function uploadFile(_x2) {
463
- return _ref7.apply(this, arguments);
482
+ return _ref6.apply(this, arguments);
464
483
  };
465
484
  }();
466
485
 
467
- var renderUploadFileAction = useCallback(function (_ref10) {
468
- var browseFiles = _ref10.browseFiles;
486
+ var renderUploadFileAction = useCallback(function (_ref9) {
487
+ var browseFiles = _ref9.browseFiles;
469
488
 
470
489
  if (!canCreate) {
471
490
  return null;
@@ -487,18 +506,23 @@ function FileManagerView(props) {
487
506
  multipleMaxCount: multipleMaxCount,
488
507
  accept: accept,
489
508
  onSuccess: function onSuccess(files) {
490
- return uploadFile(files.map(function (file) {
509
+ uploadFile(files.map(function (file) {
491
510
  return file.src.file;
492
- }));
511
+ }).filter(Boolean));
493
512
  },
494
513
  onError: function onError(errors) {
514
+ /**
515
+ * TODO @ts-refactor
516
+ * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError
517
+ */
518
+ // @ts-ignore
495
519
  var message = outputFileSelectionError(errors);
496
520
  showSnackbar(message);
497
521
  }
498
- }, function (_ref11) {
499
- var getDropZoneProps = _ref11.getDropZoneProps,
500
- browseFiles = _ref11.browseFiles,
501
- validateFiles = _ref11.validateFiles;
522
+ }, function (_ref10) {
523
+ var getDropZoneProps = _ref10.getDropZoneProps,
524
+ browseFiles = _ref10.browseFiles,
525
+ validateFiles = _ref10.validateFiles;
502
526
  return /*#__PURE__*/React.createElement(OverlayLayout, Object.assign({}, getDropZoneProps({
503
527
  onDragEnter: function onDragEnter() {
504
528
  return hasPreviouslyUploadedFiles && setDragging(true);
@@ -519,24 +543,26 @@ function FileManagerView(props) {
519
543
  })),
520
544
  barRight: selected.length > 0 ? /*#__PURE__*/React.createElement(ButtonPrimary, {
521
545
  disabled: uploading,
522
- onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
523
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
524
- while (1) {
525
- switch (_context4.prev = _context4.next) {
526
- case 0:
527
- _context4.next = 2;
528
- return onChange(multiple ? selected : selected[0]);
529
-
530
- case 2:
531
- onClose();
532
-
533
- case 3:
534
- case "end":
535
- return _context4.stop();
546
+ onClick: function onClick() {
547
+ _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
548
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
549
+ while (1) {
550
+ switch (_context4.prev = _context4.next) {
551
+ case 0:
552
+ _context4.next = 2;
553
+ return onChange(multiple ? selected : selected[0]);
554
+
555
+ case 2:
556
+ onClose();
557
+
558
+ case 3:
559
+ case "end":
560
+ return _context4.stop();
561
+ }
536
562
  }
537
- }
538
- }, _callee4);
539
- }))
563
+ }, _callee4);
564
+ }))();
565
+ }
540
566
  }, t(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Select"]))), " ", multiple && "(".concat(selected.length, ")")) : renderUploadFileAction({
541
567
  browseFiles: browseFiles
542
568
  })
@@ -589,7 +615,9 @@ function FileManagerView(props) {
589
615
  selected: selected.find(function (current) {
590
616
  return current.src === file.src;
591
617
  }),
592
- onSelect: typeof onChange === "undefined" ? undefined : /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
618
+ onSelect: typeof onChange === "undefined" ? function () {
619
+ return void 0;
620
+ } : /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
593
621
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
594
622
  while (1) {
595
623
  switch (_context5.prev = _context5.next) {
@@ -626,7 +654,7 @@ function FileManagerView(props) {
626
654
  uploading: uploading
627
655
  }))));
628
656
  });
629
- }
657
+ };
630
658
 
631
659
  FileManagerView.defaultProps = {
632
660
  multiple: false,
@@ -0,0 +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","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}\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 const createFileResponse = await createFile({ variables: { data: response } });\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();\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 await onChange(multiple ? selected : selected[0]);\n\n onClose();\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:\n typeof onChange === \"undefined\"\n ? () => {\n return void 0;\n }\n : async () => {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose();\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,8 +1,9 @@
1
- /// <reference types="react" />
2
- declare function LeftSidebar({ toggleTag, queryParams: { tags } }: {
3
- toggleTag: any;
1
+ import React from "react";
2
+ interface LeftSidebarProps {
3
+ toggleTag: (item: string) => void;
4
4
  queryParams: {
5
- tags: any;
5
+ tags: string[];
6
6
  };
7
- }): JSX.Element;
7
+ }
8
+ declare const LeftSidebar: React.FC<LeftSidebarProps>;
8
9
  export default LeftSidebar;
@@ -54,9 +54,9 @@ var Tag = /*#__PURE__*/styled("div", {
54
54
  }
55
55
  });
56
56
 
57
- function LeftSidebar(_ref) {
58
- var toggleTag = _ref.toggleTag,
59
- tags = _ref.queryParams.tags;
57
+ var LeftSidebar = function LeftSidebar(props) {
58
+ var toggleTag = props.toggleTag,
59
+ tags = props.queryParams.tags;
60
60
  var activeTags = Array.isArray(tags) ? tags : [];
61
61
 
62
62
  var _useQuery = useQuery(LIST_TAGS),
@@ -80,8 +80,9 @@ function LeftSidebar(_ref) {
80
80
  }, /*#__PURE__*/React.createElement(TagList, {
81
81
  "data-testid": "fm.left-drawer.tag-list"
82
82
  }, tagList.map(function (item, index) {
83
+ var className = activeTags.includes(item) ? "active" : "";
83
84
  return /*#__PURE__*/React.createElement(Tag, {
84
- className: activeTags.includes(item) && "active",
85
+ className: className,
85
86
  key: item + index,
86
87
  onClick: function onClick() {
87
88
  return toggleTag(item);
@@ -90,6 +91,6 @@ function LeftSidebar(_ref) {
90
91
  icon: /*#__PURE__*/React.createElement(TagIcon, null)
91
92
  }), " ", item);
92
93
  })));
93
- }
94
+ };
94
95
 
95
96
  export default LeftSidebar;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["LeftSidebar.tsx"],"names":["React","useQuery","get","sortBy","css","styled","Icon","ReactComponent","TagIcon","LIST_TAGS","style","leftDrawer","float","display","width","height","backgroundColor","padding","noTagged","paddingTop","textAlign","color","TagList","flexDirection","Tag","alignItems","cursor","paddingLeft","svg","marginRight","LeftSidebar","props","toggleTag","tags","queryParams","activeTags","Array","isArray","data","list","length","tagList","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\";\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 };\n}\nconst LeftSidebar: React.FC<LeftSidebarProps> = props => {\n const {\n toggleTag,\n queryParams: { tags }\n } = props;\n const activeTags = Array.isArray(tags) ? tags : [];\n\n const { data } = useQuery(LIST_TAGS);\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.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 />} /> {item}\n </Tag>\n );\n })}\n </TagList>\n </div>\n );\n};\n\nexport default LeftSidebar;\n"]}
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
2
- declare const NoPermissionView: () => JSX.Element;
1
+ import React from "react";
2
+ declare const NoPermissionView: React.FC;
3
3
  export default NoPermissionView;
@@ -0,0 +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,2 +1,3 @@
1
- /// <reference types="react" />
2
- export default function DropFilesHere(): JSX.Element;
1
+ import React from "react";
2
+ declare const DropFilesHere: React.FC;
3
+ export default DropFilesHere;
@@ -6,8 +6,11 @@ var styles = /*#__PURE__*/css({
6
6
  position: "absolute",
7
7
  width: "100%"
8
8
  }, "label:styles;");
9
- export default function DropFilesHere() {
9
+
10
+ var DropFilesHere = function DropFilesHere() {
10
11
  return /*#__PURE__*/React.createElement("div", {
11
12
  className: styles
12
13
  }, /*#__PURE__*/React.createElement("div", null, "No results found."));
13
- }
14
+ };
15
+
16
+ export default DropFilesHere;
@@ -0,0 +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 +1,4 @@
1
- export default function getFileTypePlugin(file: any): any;
1
+ import { AdminFileManagerFileTypePlugin } from "../../types";
2
+ import { FileManagerFileTypePlugin } from "../../plugins/FileManagerFileTypePlugin";
3
+ import { FileItem } from "./types";
4
+ export default function getFileTypePlugin(file: FileItem): AdminFileManagerFileTypePlugin | FileManagerFileTypePlugin | null;
@@ -9,12 +9,21 @@ export default function getFileTypePlugin(file) {
9
9
  }
10
10
 
11
11
  var fileTypePlugins = [].concat(_toConsumableArray(plugins.byType("admin-file-manager-file-type")), _toConsumableArray(plugins.byType(FileManagerFileTypePlugin.type)));
12
+ /**
13
+ * TODO: if we are searching last available plugin, we can refactor this.
14
+ * TODO: check out @pavel
15
+ */
16
+
12
17
  var plugin = null;
13
18
 
14
19
  for (var i = 0; i < fileTypePlugins.length; i++) {
15
20
  // We don't want to include the global wildcard in this check.
16
21
  var types = fileTypePlugins[i].types;
17
22
 
23
+ if (!types) {
24
+ continue;
25
+ }
26
+
18
27
  if (types.find(function (t) {
19
28
  return minimatch(file.type, t);
20
29
  })) {
@@ -0,0 +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,2 +1,3 @@
1
- declare const _default: () => (file: File, options: import("@webiny/app/types").UploadOptions) => Promise<any>;
1
+ import { AppFileManagerStoragePlugin } from "@webiny/app/types";
2
+ declare const _default: () => AppFileManagerStoragePlugin["upload"];
2
3
  export default _default;
@@ -0,0 +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,6 +1,96 @@
1
+ import { FileItem } from "./types";
2
+ /**
3
+ * ##################
4
+ * List Files Query Response
5
+ */
6
+ export interface ListFilesListFilesResponse {
7
+ data: FileItem[];
8
+ error?: Error | null;
9
+ meta: {
10
+ hasMoreItems: boolean;
11
+ totalItem: number;
12
+ cursor: string | null;
13
+ };
14
+ }
15
+ export interface ListFilesQueryResponse {
16
+ fileManager: {
17
+ listFiles: ListFilesListFilesResponse;
18
+ };
19
+ }
20
+ export interface ListFilesQueryVariables {
21
+ types?: string[];
22
+ tags?: string[];
23
+ limit?: number;
24
+ search?: string;
25
+ after?: string;
26
+ }
1
27
  export declare const LIST_FILES: import("graphql").DocumentNode;
28
+ /**
29
+ * ##################
30
+ * List File Tags Query Response
31
+ */
32
+ export interface ListFileTagsQueryResponse {
33
+ fileManager: {
34
+ listTags: string[];
35
+ error: Error | null;
36
+ };
37
+ }
2
38
  export declare const LIST_TAGS: import("graphql").DocumentNode;
39
+ /**
40
+ * ##################
41
+ * Create File Mutation Response
42
+ */
43
+ export interface CreateFileMutationResponse {
44
+ fileManager: {
45
+ createFile: {
46
+ data: FileItem;
47
+ error?: Error | null;
48
+ };
49
+ };
50
+ }
51
+ export interface FileInput {
52
+ key: string;
53
+ name: string;
54
+ size: number;
55
+ type: string;
56
+ tags: string;
57
+ meta: Record<string, any>;
58
+ }
59
+ export interface CreateFileMutationVariables {
60
+ data: FileInput;
61
+ }
3
62
  export declare const CREATE_FILE: import("graphql").DocumentNode;
63
+ /**
64
+ * ##################
65
+ * Update File Mutation Response
66
+ */
67
+ export interface UpdateFileMutationResponse {
68
+ fileManager: {
69
+ updateFile: {
70
+ data: FileItem;
71
+ error?: Error | null;
72
+ };
73
+ };
74
+ }
75
+ export interface UpdateFileMutationVariables {
76
+ id: string;
77
+ data: Partial<FileInput>;
78
+ }
4
79
  export declare const UPDATE_FILE: import("graphql").DocumentNode;
80
+ /**
81
+ * ##################
82
+ * Delete File Mutation Response
83
+ */
84
+ export interface DeleteFileMutationResponse {
85
+ fileManager: {
86
+ updateFile: {
87
+ data: boolean;
88
+ error?: Error | null;
89
+ };
90
+ };
91
+ }
92
+ export interface DeleteFileMutationVariables {
93
+ id: string;
94
+ }
5
95
  export declare const DELETE_FILE: import("graphql").DocumentNode;
6
96
  export declare const GET_FILE_SETTINGS: import("graphql").DocumentNode;