@webiny/app-file-manager 5.37.0-beta.0 → 5.37.0-beta.2

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 (329) hide show
  1. package/BatchFileUploader.d.ts +2 -2
  2. package/BatchFileUploader.js +3 -7
  3. package/BatchFileUploader.js.map +1 -1
  4. package/FileManagerFileTypePlugin.d.ts +1 -0
  5. package/FileManagerFileTypePlugin.js +0 -2
  6. package/FileManagerFileTypePlugin.js.map +1 -1
  7. package/app.js.map +1 -1
  8. package/components/BottomInfoBar/BottomInfoBar.js.map +1 -1
  9. package/components/BottomInfoBar/ListStatus.js.map +1 -1
  10. package/components/BottomInfoBar/SupportedFileTypes.js.map +1 -1
  11. package/components/BottomInfoBar/index.js.map +1 -1
  12. package/components/BottomInfoBar/styled.js.map +1 -1
  13. package/components/DropFilesHere/DropFilesHere.js.map +1 -1
  14. package/components/DropFilesHere/index.js.map +1 -1
  15. package/components/DropFilesHere/styled.js.map +1 -1
  16. package/components/Empty/Empty.js.map +1 -1
  17. package/components/Empty/index.js.map +1 -1
  18. package/components/FileDetails/FileDetails.d.ts +0 -15
  19. package/components/FileDetails/FileDetails.js +115 -227
  20. package/components/FileDetails/FileDetails.js.map +1 -1
  21. package/components/FileDetails/FileDetailsProvider.d.ts +13 -0
  22. package/components/FileDetails/FileDetailsProvider.js +25 -0
  23. package/components/FileDetails/FileDetailsProvider.js.map +1 -0
  24. package/components/FileDetails/components/Actions.d.ts +2 -0
  25. package/components/FileDetails/components/Actions.js +35 -0
  26. package/components/FileDetails/components/Actions.js.map +1 -0
  27. package/components/FileDetails/{Aliases.d.ts → components/Aliases.d.ts} +0 -1
  28. package/components/FileDetails/components/Aliases.js +107 -0
  29. package/components/FileDetails/components/Aliases.js.map +1 -0
  30. package/components/FileDetails/components/BaseFields.d.ts +7 -0
  31. package/components/FileDetails/components/BaseFields.js +31 -0
  32. package/components/FileDetails/components/BaseFields.js.map +1 -0
  33. package/components/FileDetails/components/Content.d.ts +12 -0
  34. package/components/FileDetails/components/Content.js +29 -0
  35. package/components/FileDetails/components/Content.js.map +1 -0
  36. package/components/FileDetails/components/CreatedOn.d.ts +2 -0
  37. package/components/FileDetails/components/CreatedOn.js +33 -0
  38. package/components/FileDetails/components/CreatedOn.js.map +1 -0
  39. package/components/FileDetails/components/Extensions.d.ts +7 -0
  40. package/components/FileDetails/components/Extensions.js +59 -0
  41. package/components/FileDetails/components/Extensions.js.map +1 -0
  42. package/components/FileDetails/components/Flex.d.ts +7 -0
  43. package/components/FileDetails/components/Flex.js +27 -0
  44. package/components/FileDetails/components/Flex.js.map +1 -0
  45. package/components/FileDetails/components/Footer.d.ts +2 -0
  46. package/components/FileDetails/components/Footer.js +28 -0
  47. package/components/FileDetails/components/Footer.js.map +1 -0
  48. package/components/FileDetails/components/Header.d.ts +2 -0
  49. package/components/FileDetails/components/Header.js +28 -0
  50. package/components/FileDetails/components/Header.js.map +1 -0
  51. package/components/FileDetails/components/Name.d.ts +2 -0
  52. package/components/FileDetails/components/Name.js +30 -0
  53. package/components/FileDetails/components/Name.js.map +1 -0
  54. package/components/FileDetails/components/Preview.d.ts +2 -0
  55. package/components/FileDetails/components/Preview.js +18 -0
  56. package/components/FileDetails/components/Preview.js.map +1 -0
  57. package/components/FileDetails/components/PreviewMeta.d.ts +2 -0
  58. package/components/FileDetails/components/PreviewMeta.js +19 -0
  59. package/components/FileDetails/components/PreviewMeta.js.map +1 -0
  60. package/components/FileDetails/components/Tags.d.ts +2 -0
  61. package/components/FileDetails/components/Tags.js +37 -0
  62. package/components/FileDetails/components/Tags.js.map +1 -0
  63. package/components/FileDetails/components/Thumbnail.d.ts +5 -0
  64. package/components/FileDetails/components/Thumbnail.js +26 -0
  65. package/components/FileDetails/components/Thumbnail.js.map +1 -0
  66. package/components/FileDetails/components/TypeAndSize.d.ts +2 -0
  67. package/components/FileDetails/components/TypeAndSize.js +45 -0
  68. package/components/FileDetails/components/TypeAndSize.js.map +1 -0
  69. package/components/FileDetails/components/actions/CopyUrl.d.ts +2 -0
  70. package/components/FileDetails/components/actions/CopyUrl.js +33 -0
  71. package/components/FileDetails/components/actions/CopyUrl.js.map +1 -0
  72. package/components/FileDetails/components/actions/DeleteImage.d.ts +6 -0
  73. package/components/FileDetails/{DeleteImageAction.js → components/actions/DeleteImage.js} +8 -7
  74. package/components/FileDetails/components/actions/DeleteImage.js.map +1 -0
  75. package/components/FileDetails/components/actions/Download.d.ts +2 -0
  76. package/components/FileDetails/components/actions/Download.js +31 -0
  77. package/components/FileDetails/components/actions/Download.js.map +1 -0
  78. package/components/FileDetails/components/actions/MoveTo.d.ts +2 -0
  79. package/components/FileDetails/components/actions/MoveTo.js +29 -0
  80. package/components/FileDetails/components/actions/MoveTo.js.map +1 -0
  81. package/components/FileDetails/index.js.map +1 -1
  82. package/components/Grid/File.d.ts +3 -3
  83. package/components/Grid/File.js +52 -30
  84. package/components/Grid/File.js.map +1 -1
  85. package/components/Grid/Grid.d.ts +1 -1
  86. package/components/Grid/Grid.js +27 -54
  87. package/components/Grid/Grid.js.map +1 -1
  88. package/components/Grid/index.js.map +1 -1
  89. package/components/Grid/styled.d.ts +9 -6
  90. package/components/Grid/styled.js +20 -18
  91. package/components/Grid/styled.js.map +1 -1
  92. package/components/NoPermission/NoPermission.js.map +1 -1
  93. package/components/NoPermission/index.js.map +1 -1
  94. package/components/NoPermission/styled.js.map +1 -1
  95. package/components/NoResults/NoResults.js.map +1 -1
  96. package/components/NoResults/index.js.map +1 -1
  97. package/components/NoResults/styled.js.map +1 -1
  98. package/components/Table/FolderActionDelete.js.map +1 -1
  99. package/components/Table/FolderActionEdit.js.map +1 -1
  100. package/components/Table/Name.js.map +1 -1
  101. package/components/Table/RecordActionCopy.d.ts +1 -1
  102. package/components/Table/RecordActionCopy.js.map +1 -1
  103. package/components/Table/RecordActionDelete.d.ts +1 -1
  104. package/components/Table/RecordActionDelete.js +2 -6
  105. package/components/Table/RecordActionDelete.js.map +1 -1
  106. package/components/Table/RecordActionEdit.js.map +1 -1
  107. package/components/Table/RecordActionMove.d.ts +2 -6
  108. package/components/Table/RecordActionMove.js +6 -3
  109. package/components/Table/RecordActionMove.js.map +1 -1
  110. package/components/Table/Table.d.ts +25 -12
  111. package/components/Table/Table.js +111 -145
  112. package/components/Table/Table.js.map +1 -1
  113. package/components/Table/index.js.map +1 -1
  114. package/components/Table/styled.js.map +1 -1
  115. package/components/Title/Title.js.map +1 -1
  116. package/components/Title/index.js.map +1 -1
  117. package/components/Title/styled.js.map +1 -1
  118. package/components/UploadStatus/UploadStatus.js.map +1 -1
  119. package/components/UploadStatus/index.js.map +1 -1
  120. package/components/UploadStatus/styled.js.map +1 -1
  121. package/constants.d.ts +3 -2
  122. package/constants.js +13 -6
  123. package/constants.js.map +1 -1
  124. package/contexts/FileProvider.js.map +1 -0
  125. package/getFileTypePlugin.d.ts +1 -2
  126. package/getFileTypePlugin.js.map +1 -1
  127. package/hooks/useCopyFile.js +3 -3
  128. package/hooks/useCopyFile.js.map +1 -1
  129. package/hooks/useDeleteFile.js +7 -3
  130. package/hooks/useDeleteFile.js.map +1 -1
  131. package/hooks/useFile.d.ts +2 -0
  132. package/hooks/useFile.js +17 -0
  133. package/hooks/useFile.js.map +1 -0
  134. package/hooks/useFileDetails.d.ts +2 -0
  135. package/hooks/useFileDetails.js +17 -0
  136. package/hooks/useFileDetails.js.map +1 -0
  137. package/hooks/useFileModel.d.ts +1 -0
  138. package/hooks/useFileModel.js +16 -0
  139. package/hooks/useFileModel.js.map +1 -0
  140. package/hooks/useMoveFileToFolder.d.ts +2 -0
  141. package/hooks/useMoveFileToFolder.js +48 -0
  142. package/hooks/useMoveFileToFolder.js.map +1 -0
  143. package/index.d.ts +5 -2
  144. package/index.js +60 -13
  145. package/index.js.map +1 -1
  146. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.d.ts +3 -1
  147. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js +128 -76
  148. package/modules/FileManagerApiProvider/FileManagerApiContext/FileManagerApiContext.js.map +1 -1
  149. package/modules/FileManagerApiProvider/FileManagerApiContext/FileModelContext.d.ts +6 -0
  150. package/modules/FileManagerApiProvider/FileManagerApiContext/FileModelContext.js +36 -0
  151. package/modules/FileManagerApiProvider/FileManagerApiContext/FileModelContext.js.map +1 -0
  152. package/modules/FileManagerApiProvider/FileManagerApiContext/getFileUploader.js.map +1 -1
  153. package/modules/FileManagerApiProvider/FileManagerApiContext/index.js.map +1 -1
  154. package/modules/FileManagerApiProvider/FileManagerApiContext/useFileManagerApi.js.map +1 -1
  155. package/modules/FileManagerApiProvider/graphql.d.ts +46 -28
  156. package/modules/FileManagerApiProvider/graphql.js +18 -9
  157. package/modules/FileManagerApiProvider/graphql.js.map +1 -1
  158. package/modules/FileManagerApiProvider/index.js +2 -1
  159. package/modules/FileManagerApiProvider/index.js.map +1 -1
  160. package/modules/FileManagerRenderer/FileManagerView/FileManagerView.d.ts +5 -0
  161. package/modules/FileManagerRenderer/FileManagerView/FileManagerView.js +389 -0
  162. package/modules/FileManagerRenderer/FileManagerView/FileManagerView.js.map +1 -0
  163. package/modules/FileManagerRenderer/FileManagerView/FileManagerViewConfig.d.ts +32 -0
  164. package/modules/FileManagerRenderer/FileManagerView/FileManagerViewConfig.js +37 -0
  165. package/modules/FileManagerRenderer/FileManagerView/FileManagerViewConfig.js.map +1 -0
  166. package/modules/FileManagerRenderer/FileManagerView/LeftSidebar.d.ts +8 -0
  167. package/modules/FileManagerRenderer/FileManagerView/LeftSidebar.js +32 -0
  168. package/modules/FileManagerRenderer/FileManagerView/LeftSidebar.js.map +1 -0
  169. package/modules/FileManagerRenderer/FileManagerView/NavigateFolderProvider.d.ts +4 -0
  170. package/modules/FileManagerRenderer/FileManagerView/NavigateFolderProvider.js +36 -0
  171. package/modules/FileManagerRenderer/FileManagerView/NavigateFolderProvider.js.map +1 -0
  172. package/modules/FileManagerRenderer/FileManagerView/components/Filters.d.ts +2 -0
  173. package/modules/FileManagerRenderer/FileManagerView/components/Filters.js +33 -0
  174. package/modules/FileManagerRenderer/FileManagerView/components/Filters.js.map +1 -0
  175. package/modules/FileManagerRenderer/FileManagerView/components/SearchWidget.d.ts +2 -0
  176. package/modules/FileManagerRenderer/FileManagerView/components/SearchWidget.js +65 -0
  177. package/modules/FileManagerRenderer/FileManagerView/components/SearchWidget.js.map +1 -0
  178. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/Empty.d.ts +6 -0
  179. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/Empty.js +18 -0
  180. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/Empty.js.map +1 -0
  181. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/Tag.d.ts +9 -0
  182. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/Tag.js +28 -0
  183. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/Tag.js.map +1 -0
  184. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/TagsList.d.ts +11 -0
  185. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/TagsList.js +73 -0
  186. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/TagsList.js.map +1 -0
  187. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/index.d.ts +1 -0
  188. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/index.js +16 -0
  189. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/index.js.map +1 -0
  190. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/styled.d.ts +23 -0
  191. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/styled.js +38 -0
  192. package/modules/FileManagerRenderer/FileManagerView/components/TagsList/styled.js.map +1 -0
  193. package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Filter.d.ts +17 -0
  194. package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Filter.js +52 -0
  195. package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/Filter.js.map +1 -0
  196. package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/FiltersToWhere.d.ts +7 -0
  197. package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/FiltersToWhere.js +21 -0
  198. package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/FiltersToWhere.js.map +1 -0
  199. package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/index.d.ts +17 -0
  200. package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/index.js +13 -0
  201. package/modules/FileManagerRenderer/FileManagerView/configComponents/Browser/index.js.map +1 -0
  202. package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/FieldDecorator.d.ts +8 -0
  203. package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/FieldDecorator.js +32 -0
  204. package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/FieldDecorator.js.map +1 -0
  205. package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/Width.d.ts +5 -0
  206. package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/Width.js +21 -0
  207. package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/Width.js.map +1 -0
  208. package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/index.d.ts +12 -0
  209. package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/index.js +15 -0
  210. package/modules/FileManagerRenderer/FileManagerView/configComponents/FileDetails/index.js.map +1 -0
  211. package/modules/FileManagerRenderer/FileManagerView/index.d.ts +2 -0
  212. package/modules/FileManagerRenderer/{DefaultRenderer → FileManagerView}/index.js +11 -9
  213. package/modules/FileManagerRenderer/FileManagerView/index.js.map +1 -0
  214. package/modules/FileManagerRenderer/FileManagerView/outputFileSelectionError.js.map +1 -0
  215. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.d.ts +59 -33
  216. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js +405 -237
  217. package/modules/FileManagerRenderer/FileManagerViewProvider/FileManagerViewContext.js.map +1 -1
  218. package/modules/FileManagerRenderer/FileManagerViewProvider/index.js.map +1 -1
  219. package/modules/FileManagerRenderer/FileManagerViewProvider/state.d.ts +29 -0
  220. package/modules/FileManagerRenderer/FileManagerViewProvider/state.js +39 -0
  221. package/modules/FileManagerRenderer/FileManagerViewProvider/state.js.map +1 -0
  222. package/modules/FileManagerRenderer/FileManagerViewProvider/useFileManagerView.d.ts +2 -2
  223. package/modules/FileManagerRenderer/FileManagerViewProvider/useFileManagerView.js.map +1 -1
  224. package/modules/FileManagerRenderer/FileManagerViewProvider/useListFiles.d.ts +25 -0
  225. package/modules/FileManagerRenderer/FileManagerViewProvider/useListFiles.js +174 -0
  226. package/modules/FileManagerRenderer/FileManagerViewProvider/useListFiles.js.map +1 -0
  227. package/modules/FileManagerRenderer/FileManagerViewProvider/useTags.d.ts +11 -0
  228. package/modules/FileManagerRenderer/FileManagerViewProvider/useTags.js +100 -0
  229. package/modules/FileManagerRenderer/FileManagerViewProvider/useTags.js.map +1 -0
  230. package/modules/FileManagerRenderer/filters/FilterByType.d.ts +2 -0
  231. package/modules/FileManagerRenderer/filters/FilterByType.js +38 -0
  232. package/modules/FileManagerRenderer/filters/FilterByType.js.map +1 -0
  233. package/modules/FileManagerRenderer/index.js +8 -2
  234. package/modules/FileManagerRenderer/index.js.map +1 -1
  235. package/modules/FileTypes/fileDefault.js.map +1 -1
  236. package/modules/FileTypes/fileImage/EditAction.js +2 -2
  237. package/modules/FileTypes/fileImage/EditAction.js.map +1 -1
  238. package/modules/FileTypes/fileImage/index.js +10 -9
  239. package/modules/FileTypes/fileImage/index.js.map +1 -1
  240. package/modules/FileTypes/index.js.map +1 -1
  241. package/modules/Settings/graphql.js.map +1 -1
  242. package/modules/Settings/index.js.map +1 -1
  243. package/modules/Settings/plugins/installation.js +1 -1
  244. package/modules/Settings/plugins/installation.js.map +1 -1
  245. package/modules/Settings/plugins/permissionRenderer/FileManagerPermissions.js +16 -2
  246. package/modules/Settings/plugins/permissionRenderer/FileManagerPermissions.js.map +1 -1
  247. package/modules/Settings/plugins/permissionRenderer/index.js.map +1 -1
  248. package/modules/Settings/views/FileManagerSettings.js.map +1 -1
  249. package/package.json +24 -22
  250. package/tagsHelpers.js.map +1 -1
  251. package/types.d.ts +4 -0
  252. package/types.js.map +1 -1
  253. package/components/FileDetails/Aliases.js +0 -232
  254. package/components/FileDetails/Aliases.js.map +0 -1
  255. package/components/FileDetails/DeleteImageAction.d.ts +0 -6
  256. package/components/FileDetails/DeleteImageAction.js.map +0 -1
  257. package/components/FileDetails/FileProvider.js.map +0 -1
  258. package/components/FileDetails/Name.d.ts +0 -3
  259. package/components/FileDetails/Name.js +0 -81
  260. package/components/FileDetails/Name.js.map +0 -1
  261. package/components/FileDetails/Tags.d.ts +0 -7
  262. package/components/FileDetails/Tags.js +0 -191
  263. package/components/FileDetails/Tags.js.map +0 -1
  264. package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.d.ts +0 -18
  265. package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js +0 -623
  266. package/modules/FileManagerRenderer/AcoRenderer/FileManagerAcoView.js.map +0 -1
  267. package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.d.ts +0 -12
  268. package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js +0 -75
  269. package/modules/FileManagerRenderer/AcoRenderer/LeftSidebar.js.map +0 -1
  270. package/modules/FileManagerRenderer/AcoRenderer/index.d.ts +0 -2
  271. package/modules/FileManagerRenderer/AcoRenderer/index.js +0 -70
  272. package/modules/FileManagerRenderer/AcoRenderer/index.js.map +0 -1
  273. package/modules/FileManagerRenderer/AcoRenderer/outputFileSelectionError.js.map +0 -1
  274. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.d.ts +0 -6
  275. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js +0 -46
  276. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/SupportedFileTypes.js.map +0 -1
  277. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.d.ts +0 -7
  278. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js +0 -63
  279. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/UploadStatus.js.map +0 -1
  280. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/check.svg +0 -3
  281. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar/assets/loading.svg +0 -17
  282. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.d.ts +0 -6
  283. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js +0 -29
  284. package/modules/FileManagerRenderer/DefaultRenderer/BottomInfoBar.js.map +0 -1
  285. package/modules/FileManagerRenderer/DefaultRenderer/DropFilesHere.d.ts +0 -11
  286. package/modules/FileManagerRenderer/DefaultRenderer/DropFilesHere.js +0 -68
  287. package/modules/FileManagerRenderer/DefaultRenderer/DropFilesHere.js.map +0 -1
  288. package/modules/FileManagerRenderer/DefaultRenderer/EmptyView.d.ts +0 -7
  289. package/modules/FileManagerRenderer/DefaultRenderer/EmptyView.js +0 -32
  290. package/modules/FileManagerRenderer/DefaultRenderer/EmptyView.js.map +0 -1
  291. package/modules/FileManagerRenderer/DefaultRenderer/File.d.ts +0 -16
  292. package/modules/FileManagerRenderer/DefaultRenderer/File.js +0 -131
  293. package/modules/FileManagerRenderer/DefaultRenderer/File.js.map +0 -1
  294. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.d.ts +0 -18
  295. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js +0 -414
  296. package/modules/FileManagerRenderer/DefaultRenderer/FileManagerView.js.map +0 -1
  297. package/modules/FileManagerRenderer/DefaultRenderer/LeftSidebar.d.ts +0 -6
  298. package/modules/FileManagerRenderer/DefaultRenderer/LeftSidebar.js +0 -96
  299. package/modules/FileManagerRenderer/DefaultRenderer/LeftSidebar.js.map +0 -1
  300. package/modules/FileManagerRenderer/DefaultRenderer/NoPermissionView.d.ts +0 -3
  301. package/modules/FileManagerRenderer/DefaultRenderer/NoPermissionView.js +0 -74
  302. package/modules/FileManagerRenderer/DefaultRenderer/NoPermissionView.js.map +0 -1
  303. package/modules/FileManagerRenderer/DefaultRenderer/NoResults.d.ts +0 -3
  304. package/modules/FileManagerRenderer/DefaultRenderer/NoResults.js +0 -22
  305. package/modules/FileManagerRenderer/DefaultRenderer/NoResults.js.map +0 -1
  306. package/modules/FileManagerRenderer/DefaultRenderer/index.d.ts +0 -2
  307. package/modules/FileManagerRenderer/DefaultRenderer/index.js.map +0 -1
  308. package/modules/FileManagerRenderer/DefaultRenderer/outputFileSelectionError.d.ts +0 -2
  309. package/modules/FileManagerRenderer/DefaultRenderer/outputFileSelectionError.js +0 -40
  310. package/modules/FileManagerRenderer/DefaultRenderer/outputFileSelectionError.js.map +0 -1
  311. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.d.ts +0 -54
  312. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js +0 -430
  313. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/FileManagerAcoViewContext.js.map +0 -1
  314. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.d.ts +0 -2
  315. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js +0 -27
  316. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/index.js.map +0 -1
  317. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.d.ts +0 -74
  318. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js +0 -118
  319. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/stateReducer.js.map +0 -1
  320. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.d.ts +0 -3
  321. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js +0 -15
  322. package/modules/FileManagerRenderer/FileManagerAcoViewProvider/useFileManagerAcoView.js.map +0 -1
  323. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.d.ts +0 -60
  324. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js +0 -95
  325. package/modules/FileManagerRenderer/FileManagerViewProvider/stateReducer.js.map +0 -1
  326. package/{components/FileDetails → contexts}/FileProvider.d.ts +1 -1
  327. /package/{components/FileDetails → contexts}/FileProvider.js +0 -0
  328. /package/modules/FileManagerRenderer/{AcoRenderer → FileManagerView}/outputFileSelectionError.d.ts +0 -0
  329. /package/modules/FileManagerRenderer/{AcoRenderer → FileManagerView}/outputFileSelectionError.js +0 -0
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FilterByType = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _form = require("@webiny/form");
10
+ var _Select = require("@webiny/ui/Select");
11
+ var FilterByType = function FilterByType() {
12
+ var bind = (0, _form.useBind)({
13
+ name: "type_startsWith",
14
+ defaultValue: "",
15
+ beforeChange: function beforeChange(value, cb) {
16
+ cb(value === "all" ? undefined : value);
17
+ }
18
+ });
19
+ var options = [{
20
+ label: "All",
21
+ value: "all"
22
+ }, {
23
+ label: "Images",
24
+ value: "image/"
25
+ }, {
26
+ label: "Videos",
27
+ value: "video/"
28
+ }, {
29
+ label: "Documents",
30
+ value: "application/"
31
+ }];
32
+ return /*#__PURE__*/_react.default.createElement(_Select.Select, Object.assign({}, bind, {
33
+ placeholder: "Filter by type",
34
+ options: options,
35
+ size: "medium"
36
+ }));
37
+ };
38
+ exports.FilterByType = FilterByType;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_form","_Select","FilterByType","bind","useBind","name","defaultValue","beforeChange","value","cb","undefined","options","label","default","createElement","Select","Object","assign","placeholder","size","exports"],"sources":["FilterByType.tsx"],"sourcesContent":["import React from \"react\";\nimport { useBind } from \"@webiny/form\";\nimport { Select } from \"@webiny/ui/Select\";\n\nexport const FilterByType = () => {\n const bind = useBind({\n name: \"type_startsWith\",\n defaultValue: \"\",\n beforeChange(value, cb) {\n cb(value === \"all\" ? undefined : value);\n }\n });\n\n const options = [\n { label: \"All\", value: \"all\" },\n { label: \"Images\", value: \"image/\" },\n { label: \"Videos\", value: \"video/\" },\n { label: \"Documents\", value: \"application/\" }\n ];\n\n return <Select {...bind} placeholder={\"Filter by type\"} options={options} size=\"medium\" />;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEO,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;EAC9B,IAAMC,IAAI,GAAG,IAAAC,aAAO,EAAC;IACjBC,IAAI,EAAE,iBAAiB;IACvBC,YAAY,EAAE,EAAE;IAChBC,YAAY,WAAAA,aAACC,KAAK,EAAEC,EAAE,EAAE;MACpBA,EAAE,CAACD,KAAK,KAAK,KAAK,GAAGE,SAAS,GAAGF,KAAK,CAAC;IAC3C;EACJ,CAAC,CAAC;EAEF,IAAMG,OAAO,GAAG,CACZ;IAAEC,KAAK,EAAE,KAAK;IAAEJ,KAAK,EAAE;EAAM,CAAC,EAC9B;IAAEI,KAAK,EAAE,QAAQ;IAAEJ,KAAK,EAAE;EAAS,CAAC,EACpC;IAAEI,KAAK,EAAE,QAAQ;IAAEJ,KAAK,EAAE;EAAS,CAAC,EACpC;IAAEI,KAAK,EAAE,WAAW;IAAEJ,KAAK,EAAE;EAAe,CAAC,CAChD;EAED,oBAAOX,MAAA,CAAAgB,OAAA,CAAAC,aAAA,CAACb,OAAA,CAAAc,MAAM,EAAAC,MAAA,CAAAC,MAAA,KAAKd,IAAI;IAAEe,WAAW,EAAE,gBAAiB;IAACP,OAAO,EAAEA,OAAQ;IAACQ,IAAI,EAAC;EAAQ,EAAE,CAAC;AAC9F,CAAC;AAACC,OAAA,CAAAlB,YAAA,GAAAA,YAAA"}
@@ -6,8 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.FileManagerRendererModule = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
- var _AcoRenderer = require("./AcoRenderer");
9
+ var _ = require("../..");
10
+ var _FileManagerView = require("./FileManagerView");
11
+ var _FilterByType = require("./filters/FilterByType");
12
+ var Browser = _.FileManagerViewConfig.Browser;
10
13
  var FileManagerRendererModule = function FileManagerRendererModule() {
11
- return /*#__PURE__*/_react.default.createElement(_AcoRenderer.AcoRenderer, null);
14
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FileManagerView.FileManagerRenderer, null), /*#__PURE__*/_react.default.createElement(_.FileManagerViewConfig, null, /*#__PURE__*/_react.default.createElement(Browser.Filter, {
15
+ name: "type",
16
+ element: /*#__PURE__*/_react.default.createElement(_FilterByType.FilterByType, null)
17
+ })));
12
18
  };
13
19
  exports.FileManagerRendererModule = FileManagerRendererModule;
@@ -1 +1 @@
1
- {"version":3,"names":["FileManagerRendererModule"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AcoRenderer } from \"./AcoRenderer\";\n\nexport const FileManagerRendererModule = () => {\n return <AcoRenderer />;\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyB,GAAS;EAC3C,oBAAO,6BAAC,wBAAW,OAAG;AAC1B,CAAC;AAAC"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_","_FileManagerView","_FilterByType","Browser","FileManagerConfig","FileManagerRendererModule","default","createElement","Fragment","FileManagerRenderer","FileManagerViewConfig","Filter","name","element","FilterByType","exports"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { FileManagerViewConfig as FileManagerConfig } from \"~/index\";\nimport { FileManagerRenderer } from \"./FileManagerView\";\nimport { FilterByType } from \"./filters/FilterByType\";\n\nconst { Browser } = FileManagerConfig;\n\nexport const FileManagerRendererModule = () => {\n return (\n <>\n <FileManagerRenderer />\n <FileManagerConfig>\n <Browser.Filter name={\"type\"} element={<FilterByType />} />\n </FileManagerConfig>\n </>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,CAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAQI,OAAO,GAAKC,uBAAiB,CAA7BD,OAAO;AAER,IAAME,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAA,EAAS;EAC3C,oBACIR,MAAA,CAAAS,OAAA,CAAAC,aAAA,CAAAV,MAAA,CAAAS,OAAA,CAAAE,QAAA,qBACIX,MAAA,CAAAS,OAAA,CAAAC,aAAA,CAACN,gBAAA,CAAAQ,mBAAmB,MAAE,CAAC,eACvBZ,MAAA,CAAAS,OAAA,CAAAC,aAAA,CAACP,CAAA,CAAAU,qBAAiB,qBACdb,MAAA,CAAAS,OAAA,CAAAC,aAAA,CAACJ,OAAO,CAACQ,MAAM;IAACC,IAAI,EAAE,MAAO;IAACC,OAAO,eAAEhB,MAAA,CAAAS,OAAA,CAAAC,aAAA,CAACL,aAAA,CAAAY,YAAY,MAAE;EAAE,CAAE,CAC3C,CACrB,CAAC;AAEX,CAAC;AAACC,OAAA,CAAAV,yBAAA,GAAAA,yBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["style","centering","css","display","justifyContent","alignItems","height","defaultFileTypePlugin","FileManagerFileTypePlugin","types","render"],"sources":["fileDefault.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ReactComponent as FileIcon } from \"@material-design-icons/svg/outlined/description.svg\";\nimport { css } from \"emotion\";\nimport { FileManagerFileTypePlugin } from \"~/FileManagerFileTypePlugin\";\n\nconst style = {\n centering: css({\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: 200\n })\n};\n\nexport const defaultFileTypePlugin = new FileManagerFileTypePlugin({\n types: [\"*/*\"],\n render(): React.ReactNode {\n return (\n <div className={style.centering}>\n <FileIcon />\n </div>\n );\n }\n});\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAEA,IAAMA,KAAK,GAAG;EACVC,SAAS,eAAE,IAAAC,YAAG,EAAC;IACXC,OAAO,EAAE,MAAM;IACfC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE;EACZ,CAAC;AACL,CAAC;AAEM,IAAMC,qBAAqB,GAAG,IAAIC,oDAAyB,CAAC;EAC/DC,KAAK,EAAE,CAAC,KAAK,CAAC;EACdC,MAAM,oBAAoB;IACtB,oBACI;MAAK,SAAS,EAAEV,KAAK,CAACC;IAAU,gBAC5B,oBAAC,2BAAQ,OAAG,CACV;EAEd;AACJ,CAAC,CAAC;AAAC"}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_description","_emotion","_FileManagerFileTypePlugin","style","centering","css","display","justifyContent","alignItems","height","defaultFileTypePlugin","FileManagerFileTypePlugin","types","render","createElement","className","ReactComponent","exports"],"sources":["fileDefault.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ReactComponent as FileIcon } from \"@material-design-icons/svg/outlined/description.svg\";\nimport { css } from \"emotion\";\nimport { FileManagerFileTypePlugin } from \"~/FileManagerFileTypePlugin\";\n\nconst style = {\n centering: css({\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: 200\n })\n};\n\nexport const defaultFileTypePlugin = new FileManagerFileTypePlugin({\n types: [\"*/*\"],\n render(): React.ReactNode {\n return (\n <div className={style.centering}>\n <FileIcon />\n </div>\n );\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AAEA,IAAMI,KAAK,GAAG;EACVC,SAAS,eAAE,IAAAC,YAAG,EAAC;IACXC,OAAO,EAAE,MAAM;IACfC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE;EACZ,CAAC;AACL,CAAC;AAEM,IAAMC,qBAAqB,GAAG,IAAIC,oDAAyB,CAAC;EAC/DC,KAAK,EAAE,CAAC,KAAK,CAAC;EACdC,MAAM,WAAAA,OAAA,EAAoB;IACtB,oBACIhB,KAAA,CAAAiB,aAAA;MAAKC,SAAS,EAAEZ,KAAK,CAACC;IAAU,gBAC5BP,KAAA,CAAAiB,aAAA,CAACd,YAAA,CAAAgB,cAAQ,MAAE,CACV,CAAC;EAEd;AACJ,CAAC,CAAC;AAACC,OAAA,CAAAP,qBAAA,GAAAA,qBAAA"}
@@ -58,8 +58,8 @@ var EditAction = function EditAction(props) {
58
58
  var file = props.file;
59
59
  var _useFileManagerApi = (0, _.useFileManagerApi)(),
60
60
  canEdit = _useFileManagerApi.canEdit;
61
- var _useFileManagerAcoVie = (0, _.useFileManagerAcoView)(),
62
- uploadFile = _useFileManagerAcoVie.uploadFile;
61
+ var _useFileManagerView = (0, _.useFileManagerView)(),
62
+ uploadFile = _useFileManagerView.uploadFile;
63
63
  var _React$useReducer = _react.default.useReducer(reducer, initialState),
64
64
  _React$useReducer2 = (0, _slicedToArray2.default)(_React$useReducer, 2),
65
65
  state = _React$useReducer2[0],
@@ -1 +1 @@
1
- {"version":3,"names":["toDataUrl","url","Promise","resolve","xhr","window","XMLHttpRequest","onload","reader","FileReader","onloadend","result","readAsDataURL","response","open","responseType","send","initialState","showImageEditor","dataUrl","reducer","state","action","next","type","EditAction","props","file","useFileManagerApi","canEdit","useFileManagerAcoView","uploadFile","React","useReducer","dispatch","margin","src","blob","dataURLtoBlob","name"],"sources":["EditAction.tsx"],"sourcesContent":["import React from \"react\";\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n// @ts-ignore\nimport dataURLtoBlob from \"dataurl-to-blob\";\nimport { ImageEditorDialog } from \"@webiny/ui/ImageUpload\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { useFileManagerApi, useFileManagerAcoView } from \"~/index\";\n\nfunction toDataUrl(url: string): Promise<string> {\n return new Promise((resolve: (value: string) => void) => {\n const xhr = new window.XMLHttpRequest();\n xhr.onload = function () {\n const reader = new window.FileReader();\n reader.onloadend = function () {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(xhr.response);\n };\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.send();\n });\n}\n\ninterface State {\n showImageEditor: boolean;\n dataUrl: string | null;\n}\n\ninterface Action {\n type: \"setDataUrl\" | \"hideImageEditor\";\n dataUrl?: string | null;\n}\n\nconst initialState: State = {\n showImageEditor: false,\n dataUrl: null\n};\n\nconst reducer = (state: State, action: Action): State => {\n const next: State = { ...state };\n\n switch (action.type) {\n case \"setDataUrl\":\n next.dataUrl = action.dataUrl as string;\n next.showImageEditor = true;\n break;\n case \"hideImageEditor\":\n next.dataUrl = null;\n next.showImageEditor = false;\n break;\n }\n\n return next;\n};\n\ninterface EditActionProps {\n file: FileItem;\n}\n\nexport const EditAction: React.FC<EditActionProps> = props => {\n const { file } = props;\n const { canEdit } = useFileManagerApi();\n const { uploadFile } = useFileManagerAcoView();\n const [state, dispatch] = React.useReducer(reducer, initialState);\n // Render nothing if the user don't have required permission for \"edit\".\n if (!canEdit(file)) {\n return null;\n }\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n data-testid={\"fm-edit-image-button\"}\n icon={<EditIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n const dataUrl = await toDataUrl(file.src);\n dispatch({ type: \"setDataUrl\", dataUrl });\n }}\n />\n </Tooltip>\n <Hotkeys zIndex={60} disabled={!state.dataUrl}>\n <ImageEditorDialog\n data-testid={\"fm-image-editor-dialog\"}\n dialogZIndex={100}\n open={state.showImageEditor}\n src={state.dataUrl as string}\n onClose={() => dispatch({ type: \"hideImageEditor\" })}\n onAccept={src => {\n const blob = dataURLtoBlob(src);\n blob.name = file.name;\n uploadFile(blob);\n dispatch({ type: \"hideImageEditor\" });\n }}\n />\n </Hotkeys>\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactHotkeyz","_dataurlToBlob","_ImageUpload","_Tooltip","_Button","_edit","_","toDataUrl","url","Promise","resolve","xhr","window","XMLHttpRequest","onload","reader","FileReader","onloadend","result","readAsDataURL","response","open","responseType","send","initialState","showImageEditor","dataUrl","reducer","state","action","next","_objectSpread2","default","type","EditAction","props","file","_useFileManagerApi","useFileManagerApi","canEdit","_useFileManagerView","useFileManagerView","uploadFile","_React$useReducer","React","useReducer","_React$useReducer2","_slicedToArray2","dispatch","createElement","Fragment","Tooltip","content","placement","IconButton","icon","ReactComponent","style","margin","onClick","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","wrap","_callee$","_context","prev","src","sent","stop","Hotkeys","zIndex","disabled","ImageEditorDialog","dialogZIndex","onClose","onAccept","blob","dataURLtoBlob","name","exports"],"sources":["EditAction.tsx"],"sourcesContent":["import React from \"react\";\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n// @ts-ignore\nimport dataURLtoBlob from \"dataurl-to-blob\";\nimport { ImageEditorDialog } from \"@webiny/ui/ImageUpload\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { FileItem } from \"@webiny/app-admin/types\";\nimport { useFileManagerApi, useFileManagerView } from \"~/index\";\n\nfunction toDataUrl(url: string): Promise<string> {\n return new Promise((resolve: (value: string) => void) => {\n const xhr = new window.XMLHttpRequest();\n xhr.onload = function () {\n const reader = new window.FileReader();\n reader.onloadend = function () {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(xhr.response);\n };\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.send();\n });\n}\n\ninterface State {\n showImageEditor: boolean;\n dataUrl: string | null;\n}\n\ninterface Action {\n type: \"setDataUrl\" | \"hideImageEditor\";\n dataUrl?: string | null;\n}\n\nconst initialState: State = {\n showImageEditor: false,\n dataUrl: null\n};\n\nconst reducer = (state: State, action: Action): State => {\n const next: State = { ...state };\n\n switch (action.type) {\n case \"setDataUrl\":\n next.dataUrl = action.dataUrl as string;\n next.showImageEditor = true;\n break;\n case \"hideImageEditor\":\n next.dataUrl = null;\n next.showImageEditor = false;\n break;\n }\n\n return next;\n};\n\ninterface EditActionProps {\n file: FileItem;\n}\n\nexport const EditAction: React.FC<EditActionProps> = props => {\n const { file } = props;\n const { canEdit } = useFileManagerApi();\n const { uploadFile } = useFileManagerView();\n const [state, dispatch] = React.useReducer(reducer, initialState);\n // Render nothing if the user don't have required permission for \"edit\".\n if (!canEdit(file)) {\n return null;\n }\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n data-testid={\"fm-edit-image-button\"}\n icon={<EditIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n const dataUrl = await toDataUrl(file.src);\n dispatch({ type: \"setDataUrl\", dataUrl });\n }}\n />\n </Tooltip>\n <Hotkeys zIndex={60} disabled={!state.dataUrl}>\n <ImageEditorDialog\n data-testid={\"fm-image-editor-dialog\"}\n dialogZIndex={100}\n open={state.showImageEditor}\n src={state.dataUrl as string}\n onClose={() => dispatch({ type: \"hideImageEditor\" })}\n onAccept={src => {\n const blob = dataURLtoBlob(src);\n blob.name = file.name;\n uploadFile(blob);\n dispatch({ type: \"hideImageEditor\" });\n }}\n />\n </Hotkeys>\n </>\n );\n};\n"],"mappings":"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"}
@@ -11,25 +11,26 @@ var _components = require("@webiny/app/components");
11
11
  var _EditAction = require("./EditAction");
12
12
  var _FileManagerFileTypePlugin = require("../../../FileManagerFileTypePlugin");
13
13
  var styles = /*#__PURE__*/(0, _emotion.css)({
14
- maxHeight: 200,
15
- maxWidth: 200,
16
- width: "auto",
17
- position: "absolute",
18
- top: "50%",
19
- left: "50%",
20
- transform: "translateX(-50%) translateY(-50%)"
14
+ width: "auto"
15
+ // maxHeight: 200,
16
+ // maxWidth: 200,
17
+ // position: "absolute",
18
+ // top: "50%",
19
+ // left: "50%",
20
+ // transform: "translateX(-50%) translateY(-50%)"
21
21
  }, "label:styles;");
22
22
  var imageFileTypePlugin = new _FileManagerFileTypePlugin.FileManagerFileTypePlugin({
23
23
  types: ["image/*"],
24
24
  actions: [_EditAction.EditAction],
25
25
  render: function render(_ref) {
26
- var file = _ref.file;
26
+ var file = _ref.file,
27
+ width = _ref.width;
27
28
  return /*#__PURE__*/React.createElement(_components.Image, {
28
29
  className: styles,
29
30
  src: file.src,
30
31
  alt: file.name,
31
32
  transform: {
32
- width: 300
33
+ width: width !== null && width !== void 0 ? width : 300
33
34
  }
34
35
  });
35
36
  }
@@ -1 +1 @@
1
- {"version":3,"names":["styles","css","maxHeight","maxWidth","width","position","top","left","transform","imageFileTypePlugin","FileManagerFileTypePlugin","types","actions","EditAction","render","file","src","name"],"sources":["index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { css } from \"emotion\";\nimport { Image } from \"@webiny/app/components\";\nimport { EditAction } from \"./EditAction\";\nimport { FileManagerFileTypePlugin } from \"~/FileManagerFileTypePlugin\";\n\nconst styles = css({\n maxHeight: 200,\n maxWidth: 200,\n width: \"auto\",\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translateX(-50%) translateY(-50%)\"\n});\n\nexport const imageFileTypePlugin = new FileManagerFileTypePlugin({\n types: [\"image/*\"],\n actions: [EditAction],\n render({ file }) {\n return (\n <Image className={styles} src={file.src} alt={file.name} transform={{ width: 300 }} />\n );\n }\n});\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAEA,IAAMA,MAAM,gBAAG,IAAAC,YAAG,EAAC;EACfC,SAAS,EAAE,GAAG;EACdC,QAAQ,EAAE,GAAG;EACbC,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,KAAK;EACVC,IAAI,EAAE,KAAK;EACXC,SAAS,EAAE;AACf,CAAC,kBAAC;AAEK,IAAMC,mBAAmB,GAAG,IAAIC,oDAAyB,CAAC;EAC7DC,KAAK,EAAE,CAAC,SAAS,CAAC;EAClBC,OAAO,EAAE,CAACC,sBAAU,CAAC;EACrBC,MAAM,wBAAW;IAAA,IAARC,IAAI,QAAJA,IAAI;IACT,oBACI,oBAAC,iBAAK;MAAC,SAAS,EAAEf,MAAO;MAAC,GAAG,EAAEe,IAAI,CAACC,GAAI;MAAC,GAAG,EAAED,IAAI,CAACE,IAAK;MAAC,SAAS,EAAE;QAAEb,KAAK,EAAE;MAAI;IAAE,EAAG;EAE9F;AACJ,CAAC,CAAC;AAAC"}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_emotion","_components","_EditAction","_FileManagerFileTypePlugin","styles","css","width","imageFileTypePlugin","FileManagerFileTypePlugin","types","actions","EditAction","render","_ref","file","createElement","Image","className","src","alt","name","transform","exports"],"sources":["index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { css } from \"emotion\";\nimport { Image } from \"@webiny/app/components\";\nimport { EditAction } from \"./EditAction\";\nimport { FileManagerFileTypePlugin } from \"~/FileManagerFileTypePlugin\";\n\nconst styles = css({\n width: \"auto\"\n // maxHeight: 200,\n // maxWidth: 200,\n // position: \"absolute\",\n // top: \"50%\",\n // left: \"50%\",\n // transform: \"translateX(-50%) translateY(-50%)\"\n});\n\nexport const imageFileTypePlugin = new FileManagerFileTypePlugin({\n types: [\"image/*\"],\n actions: [EditAction],\n render({ file, width }) {\n return (\n <Image\n className={styles}\n src={file.src}\n alt={file.name}\n transform={{ width: width ?? 300 }}\n />\n );\n }\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,0BAAA,GAAAJ,OAAA;AAEA,IAAMK,MAAM,gBAAG,IAAAC,YAAG,EAAC;EACfC,KAAK,EAAE;EACP;EACA;EACA;EACA;EACA;EACA;AACJ,CAAC,kBAAC;AAEK,IAAMC,mBAAmB,GAAG,IAAIC,oDAAyB,CAAC;EAC7DC,KAAK,EAAE,CAAC,SAAS,CAAC;EAClBC,OAAO,EAAE,CAACC,sBAAU,CAAC;EACrBC,MAAM,WAAAA,OAAAC,IAAA,EAAkB;IAAA,IAAfC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAER,KAAK,GAAAO,IAAA,CAALP,KAAK;IAChB,oBACIT,KAAA,CAAAkB,aAAA,CAACd,WAAA,CAAAe,KAAK;MACFC,SAAS,EAAEb,MAAO;MAClBc,GAAG,EAAEJ,IAAI,CAACI,GAAI;MACdC,GAAG,EAAEL,IAAI,CAACM,IAAK;MACfC,SAAS,EAAE;QAAEf,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI;MAAI;IAAE,CACtC,CAAC;EAEV;AACJ,CAAC,CAAC;AAACgB,OAAA,CAAAf,mBAAA,GAAAA,mBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["registerFileTypePlugins","fileTypePlugins","plugins","byType","FileManagerFileTypePlugin","type","forEach","pl","unregister","name","register","defaultFileTypePlugin","imageFileTypePlugin","map","undefined","FileTypesModule"],"sources":["index.ts"],"sourcesContent":["import { plugins } from \"@webiny/plugins\";\nimport { FileManagerFileTypePlugin } from \"~/FileManagerFileTypePlugin\";\nimport { defaultFileTypePlugin } from \"./fileDefault\";\nimport { imageFileTypePlugin } from \"./fileImage\";\n\nfunction registerFileTypePlugins() {\n // This is an ugly hack, which we will replace when we implement file thumbnail rendering via the Composition API.\n const fileTypePlugins = plugins.byType(FileManagerFileTypePlugin.type);\n\n // First we need to unregister already registered plugins.\n fileTypePlugins.forEach(pl => plugins.unregister(pl.name as string));\n\n // Then, we need to register the default plugins first, then register user's plugins again, to generate new names.\n plugins.register([\n defaultFileTypePlugin,\n imageFileTypePlugin,\n ...fileTypePlugins.map(pl => {\n pl.name = undefined;\n return pl;\n })\n ]);\n}\n\nexport const FileTypesModule = () => {\n registerFileTypePlugins();\n\n return null;\n};\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AAEA,SAASA,uBAAuB,GAAG;EAC/B;EACA,IAAMC,eAAe,GAAGC,gBAAO,CAACC,MAAM,CAACC,oDAAyB,CAACC,IAAI,CAAC;;EAEtE;EACAJ,eAAe,CAACK,OAAO,CAAC,UAAAC,EAAE;IAAA,OAAIL,gBAAO,CAACM,UAAU,CAACD,EAAE,CAACE,IAAI,CAAW;EAAA,EAAC;;EAEpE;EACAP,gBAAO,CAACQ,QAAQ,EACZC,kCAAqB,EACrBC,8BAAmB,0CAChBX,eAAe,CAACY,GAAG,CAAC,UAAAN,EAAE,EAAI;IACzBA,EAAE,CAACE,IAAI,GAAGK,SAAS;IACnB,OAAOP,EAAE;EACb,CAAC,CAAC,GACJ;AACN;AAEO,IAAMQ,eAAe,GAAG,SAAlBA,eAAe,GAAS;EACjCf,uBAAuB,EAAE;EAEzB,OAAO,IAAI;AACf,CAAC;AAAC"}
1
+ {"version":3,"names":["_plugins","require","_FileManagerFileTypePlugin","_fileDefault","_fileImage","registerFileTypePlugins","fileTypePlugins","plugins","byType","FileManagerFileTypePlugin","type","forEach","pl","unregister","name","register","defaultFileTypePlugin","imageFileTypePlugin","concat","_toConsumableArray2","default","map","undefined","FileTypesModule","exports"],"sources":["index.ts"],"sourcesContent":["import { plugins } from \"@webiny/plugins\";\nimport { FileManagerFileTypePlugin } from \"~/FileManagerFileTypePlugin\";\nimport { defaultFileTypePlugin } from \"./fileDefault\";\nimport { imageFileTypePlugin } from \"./fileImage\";\n\nfunction registerFileTypePlugins() {\n // This is an ugly hack, which we will replace when we implement file thumbnail rendering via the Composition API.\n const fileTypePlugins = plugins.byType(FileManagerFileTypePlugin.type);\n\n // First we need to unregister already registered plugins.\n fileTypePlugins.forEach(pl => plugins.unregister(pl.name as string));\n\n // Then, we need to register the default plugins first, then register user's plugins again, to generate new names.\n plugins.register([\n defaultFileTypePlugin,\n imageFileTypePlugin,\n ...fileTypePlugins.map(pl => {\n pl.name = undefined;\n return pl;\n })\n ]);\n}\n\nexport const FileTypesModule = () => {\n registerFileTypePlugins();\n\n return null;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEA,SAASI,uBAAuBA,CAAA,EAAG;EAC/B;EACA,IAAMC,eAAe,GAAGC,gBAAO,CAACC,MAAM,CAACC,oDAAyB,CAACC,IAAI,CAAC;;EAEtE;EACAJ,eAAe,CAACK,OAAO,CAAC,UAAAC,EAAE;IAAA,OAAIL,gBAAO,CAACM,UAAU,CAACD,EAAE,CAACE,IAAc,CAAC;EAAA,EAAC;;EAEpE;EACAP,gBAAO,CAACQ,QAAQ,EACZC,kCAAqB,EACrBC,8BAAmB,EAAAC,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAChBd,eAAe,CAACe,GAAG,CAAC,UAAAT,EAAE,EAAI;IACzBA,EAAE,CAACE,IAAI,GAAGQ,SAAS;IACnB,OAAOV,EAAE;EACb,CAAC,CAAC,EACL,CAAC;AACN;AAEO,IAAMW,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;EACjClB,uBAAuB,CAAC,CAAC;EAEzB,OAAO,IAAI;AACf,CAAC;AAACmB,OAAA,CAAAD,eAAA,GAAAA,eAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["fields","graphql","GET_SETTINGS","gql","UPDATE_SETTINGS"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst fields = /* GraphQL */ `\n {\n data {\n uploadMinFileSize\n uploadMaxFileSize\n srcPrefix\n }\n }\n`;\n\nconst graphql = {\n GET_SETTINGS: gql`\n query GetFileManagerSettings {\n fileManager {\n getSettings${fields}\n }\n }\n `,\n UPDATE_SETTINGS: gql`\n mutation UpdateFileManagerSettings($data: FileManagerSettingsInput) {\n fileManager {\n updateSettings(data: $data) ${fields}\n }\n }\n `\n};\n\nexport default graphql;\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAE9B,IAAMA,MAAM,GAAG,+IAQd;AAED,IAAMC,OAAO,GAAG;EACZC,YAAY,MAAEC,mBAAG,iPAGYH,MAAM,CAG9B;EACLI,eAAe,MAAED,mBAAG,mRAGsBH,MAAM;AAIpD,CAAC;AAAC,eAEaC,OAAO;AAAA"}
1
+ {"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_templateObject","_templateObject2","fields","graphql","GET_SETTINGS","gql","_taggedTemplateLiteral2","default","UPDATE_SETTINGS","_default","exports"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst fields = /* GraphQL */ `\n {\n data {\n uploadMinFileSize\n uploadMaxFileSize\n srcPrefix\n }\n }\n`;\n\nconst graphql = {\n GET_SETTINGS: gql`\n query GetFileManagerSettings {\n fileManager {\n getSettings${fields}\n }\n }\n `,\n UPDATE_SETTINGS: gql`\n mutation UpdateFileManagerSettings($data: FileManagerSettingsInput) {\n fileManager {\n updateSettings(data: $data) ${fields}\n }\n }\n `\n};\n\nexport default graphql;\n"],"mappings":";;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8B,IAAAC,eAAA,EAAAC,gBAAA;AAE9B,IAAMC,MAAM,GAAG,+IAQd;AAED,IAAMC,OAAO,GAAG;EACZC,YAAY,MAAEC,mBAAG,EAAAL,eAAA,KAAAA,eAAA,OAAAM,uBAAA,CAAAC,OAAA,sKAGYL,MAAM,CAG9B;EACLM,eAAe,MAAEH,mBAAG,EAAAJ,gBAAA,KAAAA,gBAAA,OAAAK,uBAAA,CAAAC,OAAA,sMAGsBL,MAAM;AAIpD,CAAC;AAAC,IAAAO,QAAA,GAEaN,OAAO;AAAAO,OAAA,CAAAH,OAAA,GAAAE,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["SettingsModule","plugins","register","installation","permissionRenderer"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AddRoute, Plugin } from \"@webiny/app\";\nimport { HasPermission } from \"@webiny/app-security\";\nimport { AddMenu, Layout } from \"@webiny/app-admin\";\nimport installation from \"./plugins/installation\";\nimport permissionRenderer from \"./plugins/permissionRenderer\";\nimport { FileManagerSettings } from \"./views/FileManagerSettings\";\n\nexport const SettingsModule: React.FC = () => {\n plugins.register(installation, permissionRenderer);\n\n return (\n <Plugin>\n <HasPermission name={\"fm.settings\"}>\n <AddRoute path=\"/settings/file-manager/general\">\n <Layout title={\"File Manager - General Settings\"}>\n <FileManagerSettings />\n </Layout>\n </AddRoute>\n <AddMenu name={\"settings\"}>\n <AddMenu name={\"settings.fileManager\"} label={\"File Manager\"}>\n <AddMenu\n name={\"settings.fileManager.general\"}\n label={\"General\"}\n path={\"/settings/file-manager/general\"}\n />\n </AddMenu>\n </AddMenu>\n </HasPermission>\n </Plugin>\n );\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,IAAMA,cAAwB,GAAG,SAA3BA,cAAwB,GAAS;EAC1CC,gBAAO,CAACC,QAAQ,CAACC,qBAAY,EAAEC,2BAAkB,CAAC;EAElD,oBACI,6BAAC,WAAM,qBACH,6BAAC,0BAAa;IAAC,IAAI,EAAE;EAAc,gBAC/B,6BAAC,aAAQ;IAAC,IAAI,EAAC;EAAgC,gBAC3C,6BAAC,gBAAM;IAAC,KAAK,EAAE;EAAkC,gBAC7C,6BAAC,wCAAmB,OAAG,CAClB,CACF,eACX,6BAAC,iBAAO;IAAC,IAAI,EAAE;EAAW,gBACtB,6BAAC,iBAAO;IAAC,IAAI,EAAE,sBAAuB;IAAC,KAAK,EAAE;EAAe,gBACzD,6BAAC,iBAAO;IACJ,IAAI,EAAE,8BAA+B;IACrC,KAAK,EAAE,SAAU;IACjB,IAAI,EAAE;EAAiC,EACzC,CACI,CACJ,CACE,CACX;AAEjB,CAAC;AAAC"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_plugins","_app","_appSecurity","_appAdmin","_installation","_permissionRenderer","_FileManagerSettings","SettingsModule","plugins","register","installation","permissionRenderer","default","createElement","Plugin","HasPermission","name","AddRoute","path","Layout","title","FileManagerSettings","AddMenu","label","exports"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AddRoute, Plugin } from \"@webiny/app\";\nimport { HasPermission } from \"@webiny/app-security\";\nimport { AddMenu, Layout } from \"@webiny/app-admin\";\nimport installation from \"./plugins/installation\";\nimport permissionRenderer from \"./plugins/permissionRenderer\";\nimport { FileManagerSettings } from \"./views/FileManagerSettings\";\n\nexport const SettingsModule: React.FC = () => {\n plugins.register(installation, permissionRenderer);\n\n return (\n <Plugin>\n <HasPermission name={\"fm.settings\"}>\n <AddRoute path=\"/settings/file-manager/general\">\n <Layout title={\"File Manager - General Settings\"}>\n <FileManagerSettings />\n </Layout>\n </AddRoute>\n <AddMenu name={\"settings\"}>\n <AddMenu name={\"settings.fileManager\"} label={\"File Manager\"}>\n <AddMenu\n name={\"settings.fileManager.general\"}\n label={\"General\"}\n path={\"/settings/file-manager/general\"}\n />\n </AddMenu>\n </AddMenu>\n </HasPermission>\n </Plugin>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,mBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;AAEO,IAAMQ,cAAwB,GAAG,SAA3BA,cAAwBA,CAAA,EAAS;EAC1CC,gBAAO,CAACC,QAAQ,CAACC,qBAAY,EAAEC,2BAAkB,CAAC;EAElD,oBACId,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,IAAA,CAAAa,MAAM,qBACHjB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACX,YAAA,CAAAa,aAAa;IAACC,IAAI,EAAE;EAAc,gBAC/BnB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,IAAA,CAAAgB,QAAQ;IAACC,IAAI,EAAC;EAAgC,gBAC3CrB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACV,SAAA,CAAAgB,MAAM;IAACC,KAAK,EAAE;EAAkC,gBAC7CvB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACP,oBAAA,CAAAe,mBAAmB,MAAE,CAClB,CACF,CAAC,eACXxB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACV,SAAA,CAAAmB,OAAO;IAACN,IAAI,EAAE;EAAW,gBACtBnB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACV,SAAA,CAAAmB,OAAO;IAACN,IAAI,EAAE,sBAAuB;IAACO,KAAK,EAAE;EAAe,gBACzD1B,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACV,SAAA,CAAAmB,OAAO;IACJN,IAAI,EAAE,8BAA+B;IACrCO,KAAK,EAAE,SAAU;IACjBL,IAAI,EAAE;EAAiC,CAC1C,CACI,CACJ,CACE,CACX,CAAC;AAEjB,CAAC;AAACM,OAAA,CAAAjB,cAAA,GAAAA,cAAA"}
@@ -68,7 +68,7 @@ var plugin = {
68
68
  name: "admin-installation-fm",
69
69
  type: "admin-installation",
70
70
  title: t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["File Manager"]))),
71
- dependencies: ["admin-installation-security", "admin-installation-i18n"],
71
+ dependencies: ["admin-installation-security", "admin-installation-i18n", "admin-installation-cms"],
72
72
  secure: true,
73
73
  getInstalledVersion: function getInstalledVersion(_ref3) {
74
74
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
@@ -1 +1 @@
1
- {"version":3,"names":["SimpleFormPlaceholder","styled","minHeight","minWidth","t","i18n","ns","IS_INSTALLED","gql","INSTALL","FMInstaller","onInstalled","client","useApolloClient","useState","error","setError","apiUrl","appConfig","getKey","process","env","REACT_APP_API_URL","useEffect","mutate","mutation","variables","srcPrefix","then","data","fileManager","install","message","setTimeout","label","plugin","name","type","title","dependencies","secure","getInstalledVersion","query","version","render"],"sources":["installation.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport gql from \"graphql-tag\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { AdminInstallationPlugin } from \"@webiny/app-admin/types\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { SimpleForm, SimpleFormContent } from \"@webiny/app-admin/components/SimpleForm\";\nimport styled from \"@emotion/styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst SimpleFormPlaceholder = styled.div({\n minHeight: 300,\n minWidth: 400\n});\n\nconst t = i18n.ns(\"app-file-manager/admin/installation\");\n\nconst IS_INSTALLED = gql`\n query IsFileManagerInstalled {\n fileManager {\n version\n }\n }\n`;\n\nconst INSTALL = gql`\n mutation InstallFileManager($srcPrefix: String) {\n fileManager {\n install(srcPrefix: $srcPrefix) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\ninterface FileManagerInstallerProps {\n onInstalled: () => Promise<void>;\n}\nconst FMInstaller: React.FC<FileManagerInstallerProps> = ({ onInstalled }) => {\n const client = useApolloClient();\n const [error, setError] = useState(null);\n\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n\n useEffect(() => {\n client\n .mutate({\n mutation: INSTALL,\n variables: { srcPrefix: apiUrl + \"/files\" }\n })\n .then(({ data }) => {\n const { error } = data.fileManager.install;\n if (error) {\n setError(error.message);\n return;\n }\n\n // Just so the user sees the actual message.\n setTimeout(onInstalled, 3000);\n });\n }, []);\n\n const label = error ? (\n <Alert title={t`Something went wrong`} type={\"danger\"}>\n {error}\n </Alert>\n ) : (\n t`Installing File Manager...`\n );\n\n return (\n <SimpleForm>\n <CircularProgress label={label} />\n <SimpleFormContent>\n <SimpleFormPlaceholder />\n </SimpleFormContent>\n </SimpleForm>\n );\n};\n\nconst plugin: AdminInstallationPlugin = {\n name: \"admin-installation-fm\",\n type: \"admin-installation\",\n title: t`File Manager`,\n dependencies: [\"admin-installation-security\", \"admin-installation-i18n\"],\n secure: true,\n async getInstalledVersion({ client }) {\n const { data } = await client.query({ query: IS_INSTALLED });\n return data.fileManager.version;\n },\n render({ onInstalled }) {\n return <FMInstaller onInstalled={onInstalled} />;\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAyD;AAEzD,IAAMA,qBAAqB,oBAAGC,eAAM;EAAA;EAAA;AAAA,GAAK;EACrCC,SAAS,EAAE,GAAG;EACdC,QAAQ,EAAE;AACd,CAAC,CAAC;AAEF,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,qCAAqC,CAAC;AAExD,IAAMC,YAAY,OAAGC,mBAAG,wLAMvB;AAED,IAAMC,OAAO,OAAGD,mBAAG,wYAalB;AAID,IAAME,WAAgD,GAAG,SAAnDA,WAAgD,OAAwB;EAAA,IAAlBC,WAAW,QAAXA,WAAW;EACnE,IAAMC,MAAM,GAAG,IAAAC,2BAAe,GAAE;EAChC,gBAA0B,IAAAC,eAAQ,EAAC,IAAI,CAAC;IAAA;IAAjCC,KAAK;IAAEC,QAAQ;EAEtB,IAAMC,MAAM,GAAGC,cAAS,CAACC,MAAM,CAAC,SAAS,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB,CAAC;EAEzE,IAAAC,gBAAS,EAAC,YAAM;IACZX,MAAM,CACDY,MAAM,CAAC;MACJC,QAAQ,EAAEhB,OAAO;MACjBiB,SAAS,EAAE;QAAEC,SAAS,EAAEV,MAAM,GAAG;MAAS;IAC9C,CAAC,CAAC,CACDW,IAAI,CAAC,iBAAc;MAAA,IAAXC,IAAI,SAAJA,IAAI;MACT,IAAQd,KAAK,GAAKc,IAAI,CAACC,WAAW,CAACC,OAAO,CAAlChB,KAAK;MACb,IAAIA,KAAK,EAAE;QACPC,QAAQ,CAACD,KAAK,CAACiB,OAAO,CAAC;QACvB;MACJ;;MAEA;MACAC,UAAU,CAACtB,WAAW,EAAE,IAAI,CAAC;IACjC,CAAC,CAAC;EACV,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMuB,KAAK,GAAGnB,KAAK,gBACf,6BAAC,YAAK;IAAC,KAAK,EAAEX,CAAC,yGAAuB;IAAC,IAAI,EAAE;EAAS,GACjDW,KAAK,CACF,GAERX,CAAC,+GACJ;EAED,oBACI,6BAAC,sBAAU,qBACP,6BAAC,0BAAgB;IAAC,KAAK,EAAE8B;EAAM,EAAG,eAClC,6BAAC,6BAAiB,qBACd,6BAAC,qBAAqB,OAAG,CACT,CACX;AAErB,CAAC;AAED,IAAMC,MAA+B,GAAG;EACpCC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAE,oBAAoB;EAC1BC,KAAK,EAAElC,CAAC,iGAAc;EACtBmC,YAAY,EAAE,CAAC,6BAA6B,EAAE,yBAAyB,CAAC;EACxEC,MAAM,EAAE,IAAI;EACNC,mBAAmB,sCAAa;IAAA;MAAA;MAAA;QAAA;UAAA;YAAV7B,MAAM,SAANA,MAAM;YAAA;YAAA,OACPA,MAAM,CAAC8B,KAAK,CAAC;cAAEA,KAAK,EAAEnC;YAAa,CAAC,CAAC;UAAA;YAAA;YAApDsB,IAAI,uBAAJA,IAAI;YAAA,iCACLA,IAAI,CAACC,WAAW,CAACa,OAAO;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EACnC,CAAC;EACDC,MAAM,yBAAkB;IAAA,IAAfjC,WAAW,SAAXA,WAAW;IAChB,oBAAO,6BAAC,WAAW;MAAC,WAAW,EAAEA;IAAY,EAAG;EACpD;AACJ,CAAC;AAAC,eAEawB,MAAM;AAAA"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_graphqlTag","_interopRequireDefault","_reactHooks","_i18n","_Alert","_Progress","_SimpleForm","_styled","_config","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","SimpleFormPlaceholder","styled","target","label","minHeight","minWidth","t","i18n","ns","IS_INSTALLED","gql","_taggedTemplateLiteral2","default","INSTALL","FMInstaller","_ref","onInstalled","client","useApolloClient","_useState","useState","_useState2","_slicedToArray2","error","setError","apiUrl","appConfig","getKey","process","env","REACT_APP_API_URL","useEffect","mutate","mutation","variables","srcPrefix","then","_ref2","data","fileManager","install","message","setTimeout","createElement","Alert","title","type","SimpleForm","CircularProgress","SimpleFormContent","plugin","name","dependencies","secure","getInstalledVersion","_ref3","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","_yield$client$query","wrap","_callee$","_context","prev","next","query","sent","abrupt","version","stop","render","_ref4","_default","exports"],"sources":["installation.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport gql from \"graphql-tag\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { AdminInstallationPlugin } from \"@webiny/app-admin/types\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { SimpleForm, SimpleFormContent } from \"@webiny/app-admin/components/SimpleForm\";\nimport styled from \"@emotion/styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst SimpleFormPlaceholder = styled.div({\n minHeight: 300,\n minWidth: 400\n});\n\nconst t = i18n.ns(\"app-file-manager/admin/installation\");\n\nconst IS_INSTALLED = gql`\n query IsFileManagerInstalled {\n fileManager {\n version\n }\n }\n`;\n\nconst INSTALL = gql`\n mutation InstallFileManager($srcPrefix: String) {\n fileManager {\n install(srcPrefix: $srcPrefix) {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\ninterface FileManagerInstallerProps {\n onInstalled: () => Promise<void>;\n}\nconst FMInstaller: React.FC<FileManagerInstallerProps> = ({ onInstalled }) => {\n const client = useApolloClient();\n const [error, setError] = useState(null);\n\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n\n useEffect(() => {\n client\n .mutate({\n mutation: INSTALL,\n variables: { srcPrefix: apiUrl + \"/files\" }\n })\n .then(({ data }) => {\n const { error } = data.fileManager.install;\n if (error) {\n setError(error.message);\n return;\n }\n\n // Just so the user sees the actual message.\n setTimeout(onInstalled, 3000);\n });\n }, []);\n\n const label = error ? (\n <Alert title={t`Something went wrong`} type={\"danger\"}>\n {error}\n </Alert>\n ) : (\n t`Installing File Manager...`\n );\n\n return (\n <SimpleForm>\n <CircularProgress label={label} />\n <SimpleFormContent>\n <SimpleFormPlaceholder />\n </SimpleFormContent>\n </SimpleForm>\n );\n};\n\nconst plugin: AdminInstallationPlugin = {\n name: \"admin-installation-fm\",\n type: \"admin-installation\",\n title: t`File Manager`,\n dependencies: [\n \"admin-installation-security\",\n \"admin-installation-i18n\",\n \"admin-installation-cms\"\n ],\n secure: true,\n async getInstalledVersion({ client }) {\n const { data } = await client.query({ query: IS_INSTALLED });\n return data.fileManager.version;\n },\n render({ onInstalled }) {\n return <FMInstaller onInstalled={onInstalled} />;\n }\n};\n\nexport default plugin;\n"],"mappings":"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"}
@@ -15,6 +15,7 @@ var _Permissions = require("@webiny/app-admin/components/Permissions");
15
15
  var _form = require("@webiny/form");
16
16
  var _Elevation = require("@webiny/ui/Elevation");
17
17
  var _Typography = require("@webiny/ui/Typography");
18
+ var _appSecurity = require("@webiny/app-security");
18
19
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18;
19
20
  var t = _i18n.i18n.ns("app-file-manager/admin/plugins/permissionRenderer");
20
21
  var FILE_MANAGER = "fm";
@@ -27,6 +28,13 @@ var CUSTOM_ACCESS = "custom";
27
28
  var FileManagerPermissions = function FileManagerPermissions(_ref) {
28
29
  var value = _ref.value,
29
30
  onChange = _ref.onChange;
31
+ var _useSecurity = (0, _appSecurity.useSecurity)(),
32
+ getPermission = _useSecurity.getPermission;
33
+
34
+ // We disable form elements for custom permissions if AACL cannot be used.
35
+ var cannotUseAAcl = (0, _react.useMemo)(function () {
36
+ return !getPermission("aacl", true);
37
+ }, []);
30
38
  var onFormChange = (0, _react.useCallback)(function (data) {
31
39
  var newValue = [];
32
40
  if (Array.isArray(value)) {
@@ -129,6 +137,10 @@ var FileManagerPermissions = function FileManagerPermissions(_ref) {
129
137
  setValue = _ref2.setValue;
130
138
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
131
139
  className: _Permissions.gridNoPaddingClass
140
+ }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
141
+ span: 12
142
+ }, data.accessLevel === "custom" && cannotUseAAcl && /*#__PURE__*/_react.default.createElement(_Permissions.CannotUseAaclAlert, null))), /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
143
+ className: _Permissions.gridNoPaddingClass
132
144
  }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
133
145
  span: 6
134
146
  }, /*#__PURE__*/_react.default.createElement(_Permissions.PermissionInfo, {
@@ -172,7 +184,8 @@ var FileManagerPermissions = function FileManagerPermissions(_ref) {
172
184
  cb(value);
173
185
  }
174
186
  }, /*#__PURE__*/_react.default.createElement(_Select.Select, {
175
- label: t(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["Access Scope"])))
187
+ label: t(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["Access Scope"]))),
188
+ disabled: cannotUseAAcl
176
189
  }, /*#__PURE__*/_react.default.createElement("option", {
177
190
  value: NO_ACCESS
178
191
  }, t(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["No access"])))), /*#__PURE__*/_react.default.createElement("option", {
@@ -185,7 +198,7 @@ var FileManagerPermissions = function FileManagerPermissions(_ref) {
185
198
  name: "filesRWD"
186
199
  }, /*#__PURE__*/_react.default.createElement(_Select.Select, {
187
200
  label: t(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["Primary Actions"]))),
188
- disabled: data.filesAccessScope !== "full"
201
+ disabled: cannotUseAAcl || data.filesAccessScope !== "full"
189
202
  }, /*#__PURE__*/_react.default.createElement("option", {
190
203
  value: "r"
191
204
  }, t(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["Read"])))), /*#__PURE__*/_react.default.createElement("option", {
@@ -206,6 +219,7 @@ var FileManagerPermissions = function FileManagerPermissions(_ref) {
206
219
  }, /*#__PURE__*/_react.default.createElement(Bind, {
207
220
  name: "settingsAccessScope"
208
221
  }, /*#__PURE__*/_react.default.createElement(_Select.Select, {
222
+ disabled: cannotUseAAcl,
209
223
  label: t(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2.default)(["Access Scope"])))
210
224
  }, /*#__PURE__*/_react.default.createElement("option", {
211
225
  value: NO_ACCESS
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","FILE_MANAGER","FILE_MANAGER_FULL_ACCESS","FILE_MANAGER_ACCESS_FILE","FILE_MANAGER_ACCESS_SETTINGS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","FileManagerPermissions","value","onChange","onFormChange","useCallback","data","newValue","Array","isArray","filter","item","name","startsWith","accessLevel","push","filesAccessScope","permission","own","rwd","undefined","filesRWD","settingsAccessScope","formData","useMemo","hasFullAccess","find","permissions","length","filesPermission","hasSettingsAccess","Bind","setValue","gridNoPaddingClass","marginTop","padding","paddingBottom","cb"],"sources":["FileManagerPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { PermissionInfo, gridNoPaddingClass } from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst t = i18n.ns(\"app-file-manager/admin/plugins/permissionRenderer\");\n\nconst FILE_MANAGER = \"fm\";\nconst FILE_MANAGER_FULL_ACCESS = `${FILE_MANAGER}.*`;\nconst FILE_MANAGER_ACCESS_FILE = `${FILE_MANAGER}.file`;\nconst FILE_MANAGER_ACCESS_SETTINGS = `${FILE_MANAGER}.settings`;\n\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\n\ninterface FileManagerPermission {\n name: string;\n own?: boolean;\n rwd?: string;\n}\ninterface FileManagerPermissionItem {\n settingsAccessScope?: string;\n filesAccessScope?: string;\n accessLevel?: string;\n name?: string;\n filesRWD?: string;\n}\ninterface FileManagerPermissionsProps {\n value: FileManagerPermissionItem;\n onChange: (value: FileManagerPermissionItem[]) => void;\n}\n\nexport const FileManagerPermissions: React.FC<FileManagerPermissionsProps> = ({\n value,\n onChange\n}) => {\n const onFormChange = useCallback(\n (data: FileManagerPermissionItem) => {\n let newValue: FileManagerPermissionItem[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `file-manager*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(FILE_MANAGER));\n }\n\n if (data.accessLevel === NO_ACCESS) {\n onChange(newValue);\n return;\n }\n\n if (data.accessLevel === FULL_ACCESS) {\n newValue.push({ name: FILE_MANAGER_FULL_ACCESS });\n onChange(newValue);\n return;\n }\n\n // Handling custom access level.\n\n // Files first.\n if (data.filesAccessScope && data.filesAccessScope !== NO_ACCESS) {\n const permission: FileManagerPermission = {\n name: FILE_MANAGER_ACCESS_FILE,\n own: false,\n rwd: undefined\n };\n\n if (data.filesAccessScope === \"own\") {\n permission.own = true;\n permission.rwd = \"rwd\";\n } else {\n permission.rwd = data.filesRWD || \"r\";\n }\n newValue.push(permission);\n }\n\n // Settings second.\n if (data.settingsAccessScope === FULL_ACCESS) {\n newValue.push({ name: FILE_MANAGER_ACCESS_SETTINGS });\n }\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo((): FileManagerPermissionItem => {\n if (!Array.isArray(value)) {\n return { accessLevel: NO_ACCESS };\n }\n\n const hasFullAccess = value.find(\n item => item.name === FILE_MANAGER_FULL_ACCESS || item.name === \"*\"\n );\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n const permissions = value.filter(item => item.name.startsWith(FILE_MANAGER));\n if (!permissions.length) {\n return { accessLevel: NO_ACCESS };\n }\n\n const data: FileManagerPermissionItem = {\n accessLevel: CUSTOM_ACCESS,\n filesAccessScope: NO_ACCESS,\n settingsAccessScope: NO_ACCESS,\n filesRWD: \"r\"\n };\n\n const filesPermission = permissions.find(item => item.name === FILE_MANAGER_ACCESS_FILE);\n if (filesPermission) {\n data.filesAccessScope = filesPermission.own ? \"own\" : FULL_ACCESS;\n if (data.filesAccessScope === FULL_ACCESS) {\n data.filesRWD = filesPermission.rwd;\n } else {\n data.filesRWD = \"rwd\";\n }\n }\n\n const hasSettingsAccess = permissions.find(\n item => item.name === FILE_MANAGER_ACCESS_SETTINGS\n );\n if (hasSettingsAccess) {\n data.settingsAccessScope = FULL_ACCESS;\n }\n\n return data;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ data, Bind, setValue }) => (\n <Fragment>\n <Grid className={gridNoPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select label={t`Access Level`}>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === \"custom\" && (\n <Fragment>\n <Elevation z={1} style={{ marginTop: 10 }}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"overline\"}>{t`Files`}</Typography>\n </Cell>\n <Cell span={12}>\n <Grid style={{ padding: 0, paddingBottom: 24 }}>\n <Cell span={12}>\n <Bind\n name={\"filesAccessScope\"}\n beforeChange={(value, cb) => {\n if (value === \"own\") {\n setValue(`filesRWD`, \"rwd\");\n }\n cb(value);\n }}\n >\n <Select label={t`Access Scope`}>\n <option\n value={NO_ACCESS}\n >{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`All files`}</option>\n <option\n value={\"own\"}\n >{t`Only files created by the user`}</option>\n </Select>\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name={\"filesRWD\"}>\n <Select\n label={t`Primary Actions`}\n disabled={data.filesAccessScope !== \"full\"}\n >\n <option value={\"r\"}>{t`Read`}</option>\n <option\n value={\"rw\"}\n >{t`Read, write`}</option>\n <option\n value={\"rwd\"}\n >{t`Read, write, delete`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n </Grid>\n </Elevation>\n <Elevation z={1} style={{ marginTop: 10 }}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"overline\"}>{t`Settings`}</Typography>\n </Cell>\n <Cell span={12}>\n <Bind name={\"settingsAccessScope\"}>\n <Select label={t`Access Scope`}>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`Full access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </Elevation>\n </Fragment>\n )}\n </Fragment>\n )}\n </Form>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_Grid","_Select","_i18n","_Permissions","_form","_Elevation","_Typography","_appSecurity","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","t","i18n","ns","FILE_MANAGER","FILE_MANAGER_FULL_ACCESS","concat","FILE_MANAGER_ACCESS_FILE","FILE_MANAGER_ACCESS_SETTINGS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","FileManagerPermissions","_ref","value","onChange","_useSecurity","useSecurity","getPermission","cannotUseAAcl","useMemo","onFormChange","useCallback","data","newValue","Array","isArray","filter","item","name","startsWith","accessLevel","push","filesAccessScope","permission","own","rwd","undefined","filesRWD","settingsAccessScope","formData","hasFullAccess","find","permissions","length","filesPermission","hasSettingsAccess","default","createElement","Form","_ref2","Bind","setValue","Fragment","Grid","className","gridNoPaddingClass","Cell","span","CannotUseAaclAlert","PermissionInfo","title","_taggedTemplateLiteral2","Select","label","Elevation","z","style","marginTop","Typography","use","padding","paddingBottom","beforeChange","cb","disabled","exports"],"sources":["FileManagerPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n CannotUseAaclAlert,\n PermissionInfo,\n gridNoPaddingClass\n} from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { AaclPermission } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-file-manager/admin/plugins/permissionRenderer\");\n\nconst FILE_MANAGER = \"fm\";\nconst FILE_MANAGER_FULL_ACCESS = `${FILE_MANAGER}.*`;\nconst FILE_MANAGER_ACCESS_FILE = `${FILE_MANAGER}.file`;\nconst FILE_MANAGER_ACCESS_SETTINGS = `${FILE_MANAGER}.settings`;\n\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\n\ninterface FileManagerPermission {\n name: string;\n own?: boolean;\n rwd?: string;\n}\ninterface FileManagerPermissionItem {\n settingsAccessScope?: string;\n filesAccessScope?: string;\n accessLevel?: string;\n name?: string;\n filesRWD?: string;\n}\ninterface FileManagerPermissionsProps {\n value: FileManagerPermissionItem;\n onChange: (value: FileManagerPermissionItem[]) => void;\n}\n\nexport const FileManagerPermissions: React.FC<FileManagerPermissionsProps> = ({\n value,\n onChange\n}) => {\n const { getPermission } = useSecurity();\n\n // We disable form elements for custom permissions if AACL cannot be used.\n const cannotUseAAcl = useMemo(() => {\n return !getPermission<AaclPermission>(\"aacl\", true);\n }, []);\n\n const onFormChange = useCallback(\n (data: FileManagerPermissionItem) => {\n let newValue: FileManagerPermissionItem[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `file-manager*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(FILE_MANAGER));\n }\n\n if (data.accessLevel === NO_ACCESS) {\n onChange(newValue);\n return;\n }\n\n if (data.accessLevel === FULL_ACCESS) {\n newValue.push({ name: FILE_MANAGER_FULL_ACCESS });\n onChange(newValue);\n return;\n }\n\n // Handling custom access level.\n\n // Files first.\n if (data.filesAccessScope && data.filesAccessScope !== NO_ACCESS) {\n const permission: FileManagerPermission = {\n name: FILE_MANAGER_ACCESS_FILE,\n own: false,\n rwd: undefined\n };\n\n if (data.filesAccessScope === \"own\") {\n permission.own = true;\n permission.rwd = \"rwd\";\n } else {\n permission.rwd = data.filesRWD || \"r\";\n }\n newValue.push(permission);\n }\n\n // Settings second.\n if (data.settingsAccessScope === FULL_ACCESS) {\n newValue.push({ name: FILE_MANAGER_ACCESS_SETTINGS });\n }\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo((): FileManagerPermissionItem => {\n if (!Array.isArray(value)) {\n return { accessLevel: NO_ACCESS };\n }\n\n const hasFullAccess = value.find(\n item => item.name === FILE_MANAGER_FULL_ACCESS || item.name === \"*\"\n );\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n const permissions = value.filter(item => item.name.startsWith(FILE_MANAGER));\n if (!permissions.length) {\n return { accessLevel: NO_ACCESS };\n }\n\n const data: FileManagerPermissionItem = {\n accessLevel: CUSTOM_ACCESS,\n filesAccessScope: NO_ACCESS,\n settingsAccessScope: NO_ACCESS,\n filesRWD: \"r\"\n };\n\n const filesPermission = permissions.find(item => item.name === FILE_MANAGER_ACCESS_FILE);\n if (filesPermission) {\n data.filesAccessScope = filesPermission.own ? \"own\" : FULL_ACCESS;\n if (data.filesAccessScope === FULL_ACCESS) {\n data.filesRWD = filesPermission.rwd;\n } else {\n data.filesRWD = \"rwd\";\n }\n }\n\n const hasSettingsAccess = permissions.find(\n item => item.name === FILE_MANAGER_ACCESS_SETTINGS\n );\n if (hasSettingsAccess) {\n data.settingsAccessScope = FULL_ACCESS;\n }\n\n return data;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ data, Bind, setValue }) => (\n <Fragment>\n <Grid className={gridNoPaddingClass}>\n <Cell span={12}>\n {data.accessLevel === \"custom\" && cannotUseAAcl && (\n <CannotUseAaclAlert />\n )}\n </Cell>\n </Grid>\n <Grid className={gridNoPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select label={t`Access Level`}>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === \"custom\" && (\n <Fragment>\n <Elevation z={1} style={{ marginTop: 10 }}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"overline\"}>{t`Files`}</Typography>\n </Cell>\n <Cell span={12}>\n <Grid style={{ padding: 0, paddingBottom: 24 }}>\n <Cell span={12}>\n <Bind\n name={\"filesAccessScope\"}\n beforeChange={(value, cb) => {\n if (value === \"own\") {\n setValue(`filesRWD`, \"rwd\");\n }\n cb(value);\n }}\n >\n <Select\n label={t`Access Scope`}\n disabled={cannotUseAAcl}\n >\n <option\n value={NO_ACCESS}\n >{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`All files`}</option>\n <option\n value={\"own\"}\n >{t`Only files created by the user`}</option>\n </Select>\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name={\"filesRWD\"}>\n <Select\n label={t`Primary Actions`}\n disabled={\n cannotUseAAcl ||\n data.filesAccessScope !== \"full\"\n }\n >\n <option value={\"r\"}>{t`Read`}</option>\n <option\n value={\"rw\"}\n >{t`Read, write`}</option>\n <option\n value={\"rwd\"}\n >{t`Read, write, delete`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n </Grid>\n </Elevation>\n <Elevation z={1} style={{ marginTop: 10 }}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"overline\"}>{t`Settings`}</Typography>\n </Cell>\n <Cell span={12}>\n <Bind name={\"settingsAccessScope\"}>\n <Select\n disabled={cannotUseAAcl}\n label={t`Access Scope`}\n >\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option\n value={FULL_ACCESS}\n >{t`Full access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </Elevation>\n </Fragment>\n )}\n </Fragment>\n )}\n </Form>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","type","name","render","props"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AccordionItem } from \"@webiny/ui/Accordion\";\nimport { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types\";\nimport { ReactComponent as FileManagerIcon } from \"../../assets/icons/folder-open.svg\";\nimport { FileManagerPermissions } from \"./FileManagerPermissions\";\nimport { i18n } from \"@webiny/app/i18n\";\n\nconst t = i18n.ns(\"app-file-manager/admin/plugins/permissionRenderer\");\n\nexport default {\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-file-manager\",\n render(props) {\n return (\n <AccordionItem\n icon={<FileManagerIcon />}\n title={t`File Manager`}\n description={t`Manage File manager app access permissions.`}\n data-testid={\"permission.fm\"}\n >\n <FileManagerPermissions {...props} />\n </AccordionItem>\n );\n }\n} as AdminAppPermissionRendererPlugin;\n"],"mappings":";;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AAAwC;AAExC,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,mDAAmD,CAAC;AAAC,eAExD;EACXC,IAAI,EAAE,gCAAgC;EACtCC,IAAI,EAAE,6CAA6C;EACnDC,MAAM,kBAACC,KAAK,EAAE;IACV,oBACI,6BAAC,wBAAa;MACV,IAAI,eAAE,6BAAC,0BAAe,OAAI;MAC1B,KAAK,EAAEN,CAAC,+FAAe;MACvB,WAAW,EAAEA,CAAC,gIAA8C;MAC5D,eAAa;IAAgB,gBAE7B,6BAAC,8CAAsB,EAAKM,KAAK,CAAI,CACzB;EAExB;AACJ,CAAC;AAAA"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_Accordion","_folderOpen","_FileManagerPermissions","_i18n","_templateObject","_templateObject2","t","i18n","ns","_default","type","name","render","props","default","createElement","AccordionItem","icon","ReactComponent","title","_taggedTemplateLiteral2","description","FileManagerPermissions","exports"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AccordionItem } from \"@webiny/ui/Accordion\";\nimport { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types\";\nimport { ReactComponent as FileManagerIcon } from \"../../assets/icons/folder-open.svg\";\nimport { FileManagerPermissions } from \"./FileManagerPermissions\";\nimport { i18n } from \"@webiny/app/i18n\";\n\nconst t = i18n.ns(\"app-file-manager/admin/plugins/permissionRenderer\");\n\nexport default {\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-file-manager\",\n render(props) {\n return (\n <AccordionItem\n icon={<FileManagerIcon />}\n title={t`File Manager`}\n description={t`Manage File manager app access permissions.`}\n data-testid={\"permission.fm\"}\n >\n <FileManagerPermissions {...props} />\n </AccordionItem>\n );\n }\n} as AdminAppPermissionRendererPlugin;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAAwC,IAAAK,eAAA,EAAAC,gBAAA;AAExC,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,mDAAmD,CAAC;AAAC,IAAAC,QAAA,GAExD;EACXC,IAAI,EAAE,gCAAgC;EACtCC,IAAI,EAAE,6CAA6C;EACnDC,MAAM,WAAAA,OAACC,KAAK,EAAE;IACV,oBACIhB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACf,UAAA,CAAAgB,aAAa;MACVC,IAAI,eAAEpB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACd,WAAA,CAAAiB,cAAe,MAAE,CAAE;MAC1BC,KAAK,EAAEb,CAAC,CAAAF,eAAA,KAAAA,eAAA,OAAAgB,uBAAA,CAAAN,OAAA,qBAAe;MACvBO,WAAW,EAAEf,CAAC,CAAAD,gBAAA,KAAAA,gBAAA,OAAAe,uBAAA,CAAAN,OAAA,oDAA8C;MAC5D,eAAa;IAAgB,gBAE7BjB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACb,uBAAA,CAAAoB,sBAAsB,EAAKT,KAAQ,CACzB,CAAC;EAExB;AACJ,CAAC;AAAAU,OAAA,CAAAT,OAAA,GAAAL,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["prefixValidator","value","endsWith","Error","FileManagerSettings","useSnackbar","showSnackbar","graphql","GET_SETTINGS","data","queryInProgress","loading","UPDATE_SETTINGS","update","result","settings","get","mutationInProgress","onSubmit","variables","uploadMinFileSize","parseFloat","uploadMaxFileSize","srcPrefix","cache","structuredClone","readQuery","query","fileManager","getSettings","updateSettings","writeQuery","Bind","form","validation","create","ev","submit"],"sources":["FileManagerSettings.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Form } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { Query, Mutation } from \"@apollo/react-components\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { Input } from \"@webiny/ui/Input\";\nimport graphql from \"../graphql\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport get from \"lodash/get\";\nimport { validation } from \"@webiny/validation\";\n\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { CenteredView } from \"@webiny/app-admin\";\nimport { QueryGetSettingsResult, Settings } from \"~/types\";\nimport { MutationFunction, MutationResult } from \"@apollo/react-common\";\n\nfunction prefixValidator(value: string) {\n if (!value.endsWith(\"/files/\")) {\n throw Error(`File URL prefix must end with \"/files/\"`);\n }\n}\n\nexport const FileManagerSettings: React.FC = () => {\n const { showSnackbar } = useSnackbar();\n\n return (\n <Query query={graphql.GET_SETTINGS}>\n {({ data, loading: queryInProgress }: MutationResult<QueryGetSettingsResult>) => (\n <Mutation mutation={graphql.UPDATE_SETTINGS}>\n {(update: MutationFunction, result: MutationResult) => {\n const settings = (get(data, \"fileManager.getSettings.data\") ||\n {}) as Settings;\n const { loading: mutationInProgress } = result;\n\n const onSubmit = async (data: Settings): Promise<void> => {\n await update({\n variables: {\n data: {\n uploadMinFileSize: parseFloat(data.uploadMinFileSize),\n uploadMaxFileSize: parseFloat(data.uploadMaxFileSize),\n srcPrefix: data.srcPrefix\n }\n },\n update: (cache, result) => {\n const data = structuredClone(\n cache.readQuery({ query: graphql.GET_SETTINGS })\n );\n\n data.fileManager.getSettings.data = {\n ...data.fileManager.getSettings.data,\n ...result.data.fileManager.updateSettings.data\n };\n\n cache.writeQuery({\n query: graphql.GET_SETTINGS,\n data\n });\n }\n });\n showSnackbar(\"Settings updated successfully.\");\n };\n return (\n <CenteredView>\n <Form\n data={settings}\n onSubmit={data => {\n /**\n * We are positive that data is Settings.\n */\n onSubmit(data as unknown as Settings);\n }}\n >\n {({ Bind, form }) => (\n <SimpleForm>\n {(queryInProgress || mutationInProgress) && (\n <CircularProgress />\n )}\n <SimpleFormHeader title=\"General Settings\" />\n <SimpleFormContent>\n <Grid>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMinFileSize\"}>\n <Input\n type=\"number\"\n label=\"Minimum file upload size\"\n description=\"The smallest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMaxFileSize\"}>\n <Input\n type=\"number\"\n label=\"Maximum file upload size\"\n description=\"The largest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"srcPrefix\"}\n validators={[\n validation.create(\"url\"),\n prefixValidator\n ]}\n >\n <Input\n label=\"File URL prefix\"\n description=\"This prefix will be prepended to the file key to form the full file URL.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n >\n Save Settings\n </ButtonPrimary>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n </CenteredView>\n );\n }}\n </Mutation>\n )}\n </Query>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_form","_Grid","_Button","_reactComponents","_useSnackbar2","_Input","_graphql","_interopRequireDefault","_Progress","_get","_validation","_SimpleForm","_appAdmin","prefixValidator","value","endsWith","Error","FileManagerSettings","_useSnackbar","useSnackbar","showSnackbar","createElement","Query","query","graphql","GET_SETTINGS","_ref","data","queryInProgress","loading","Mutation","mutation","UPDATE_SETTINGS","update","result","settings","get","mutationInProgress","onSubmit","_ref2","_asyncToGenerator2","default","_regeneratorRuntime2","mark","_callee","wrap","_callee$","_context","prev","next","variables","uploadMinFileSize","parseFloat","uploadMaxFileSize","srcPrefix","cache","structuredClone","readQuery","fileManager","getSettings","_objectSpread2","updateSettings","writeQuery","stop","_x","apply","arguments","CenteredView","Form","_ref3","Bind","form","SimpleForm","CircularProgress","SimpleFormHeader","title","SimpleFormContent","Grid","Cell","span","name","Input","type","label","description","validators","validation","create","SimpleFormFooter","ButtonPrimary","onClick","ev","submit","exports"],"sources":["FileManagerSettings.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Form } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { Query, Mutation } from \"@apollo/react-components\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { Input } from \"@webiny/ui/Input\";\nimport graphql from \"../graphql\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport get from \"lodash/get\";\nimport { validation } from \"@webiny/validation\";\n\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { CenteredView } from \"@webiny/app-admin\";\nimport { QueryGetSettingsResult, Settings } from \"~/types\";\nimport { MutationFunction, MutationResult } from \"@apollo/react-common\";\n\nfunction prefixValidator(value: string) {\n if (!value.endsWith(\"/files/\")) {\n throw Error(`File URL prefix must end with \"/files/\"`);\n }\n}\n\nexport const FileManagerSettings: React.FC = () => {\n const { showSnackbar } = useSnackbar();\n\n return (\n <Query query={graphql.GET_SETTINGS}>\n {({ data, loading: queryInProgress }: MutationResult<QueryGetSettingsResult>) => (\n <Mutation mutation={graphql.UPDATE_SETTINGS}>\n {(update: MutationFunction, result: MutationResult) => {\n const settings = (get(data, \"fileManager.getSettings.data\") ||\n {}) as Settings;\n const { loading: mutationInProgress } = result;\n\n const onSubmit = async (data: Settings): Promise<void> => {\n await update({\n variables: {\n data: {\n uploadMinFileSize: parseFloat(data.uploadMinFileSize),\n uploadMaxFileSize: parseFloat(data.uploadMaxFileSize),\n srcPrefix: data.srcPrefix\n }\n },\n update: (cache, result) => {\n const data = structuredClone(\n cache.readQuery({ query: graphql.GET_SETTINGS })\n );\n\n data.fileManager.getSettings.data = {\n ...data.fileManager.getSettings.data,\n ...result.data.fileManager.updateSettings.data\n };\n\n cache.writeQuery({\n query: graphql.GET_SETTINGS,\n data\n });\n }\n });\n showSnackbar(\"Settings updated successfully.\");\n };\n return (\n <CenteredView>\n <Form\n data={settings}\n onSubmit={data => {\n /**\n * We are positive that data is Settings.\n */\n onSubmit(data as unknown as Settings);\n }}\n >\n {({ Bind, form }) => (\n <SimpleForm>\n {(queryInProgress || mutationInProgress) && (\n <CircularProgress />\n )}\n <SimpleFormHeader title=\"General Settings\" />\n <SimpleFormContent>\n <Grid>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMinFileSize\"}>\n <Input\n type=\"number\"\n label=\"Minimum file upload size\"\n description=\"The smallest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind name={\"uploadMaxFileSize\"}>\n <Input\n type=\"number\"\n label=\"Maximum file upload size\"\n description=\"The largest file size in bytes.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n <Cell span={12}>\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"srcPrefix\"}\n validators={[\n validation.create(\"url\"),\n prefixValidator\n ]}\n >\n <Input\n label=\"File URL prefix\"\n description=\"This prefix will be prepended to the file key to form the full file URL.\"\n />\n </Bind>\n </Cell>\n </Grid>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n >\n Save Settings\n </ButtonPrimary>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n </CenteredView>\n );\n }}\n </Mutation>\n )}\n </Query>\n );\n};\n"],"mappings":"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"}