@webiny/app-file-manager 0.0.0-unstable.78f581c1d2 → 0.0.0-unstable.7be00a75a9

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 (738) hide show
  1. package/README.md +7 -28
  2. package/app.d.ts +2 -0
  3. package/app.js +57 -0
  4. package/app.js.map +1 -0
  5. package/domain/constants.d.ts +4 -0
  6. package/domain/constants.js +7 -0
  7. package/domain/constants.js.map +1 -0
  8. package/domain/permissionsSchema.d.ts +18 -0
  9. package/domain/permissionsSchema.js +32 -0
  10. package/domain/permissionsSchema.js.map +1 -0
  11. package/domain/tagsHelpers.d.ts +16 -0
  12. package/domain/tagsHelpers.js +25 -0
  13. package/domain/tagsHelpers.js.map +1 -0
  14. package/domain/types.d.ts +34 -0
  15. package/domain/types.js +0 -0
  16. package/exports/admin/ui/file-manager.d.ts +2 -0
  17. package/exports/admin/ui/file-manager.js +1 -0
  18. package/features/deleteFile/DeleteFile.test.d.ts +1 -0
  19. package/features/deleteFile/DeleteFile.test.js +150 -0
  20. package/features/deleteFile/DeleteFile.test.js.map +1 -0
  21. package/features/deleteFile/DeleteFileGateway.d.ts +11 -0
  22. package/features/deleteFile/DeleteFileGateway.js +23 -0
  23. package/features/deleteFile/DeleteFileGateway.js.map +1 -0
  24. package/features/deleteFile/DeleteFileRepository.d.ts +12 -0
  25. package/features/deleteFile/DeleteFileRepository.js +26 -0
  26. package/features/deleteFile/DeleteFileRepository.js.map +1 -0
  27. package/features/deleteFile/DeleteFileUseCase.d.ts +10 -0
  28. package/features/deleteFile/DeleteFileUseCase.js +34 -0
  29. package/features/deleteFile/DeleteFileUseCase.js.map +1 -0
  30. package/features/deleteFile/abstractions.d.ts +36 -0
  31. package/features/deleteFile/abstractions.js +7 -0
  32. package/features/deleteFile/abstractions.js.map +1 -0
  33. package/features/deleteFile/feature.d.ts +3 -0
  34. package/features/deleteFile/feature.js +21 -0
  35. package/features/deleteFile/feature.js.map +1 -0
  36. package/features/deleteFile/index.d.ts +3 -0
  37. package/features/deleteFile/index.js +2 -0
  38. package/features/fileModel/FileModelProvider.d.ts +12 -0
  39. package/features/fileModel/FileModelProvider.js +21 -0
  40. package/features/fileModel/FileModelProvider.js.map +1 -0
  41. package/features/fileModel/GetFileModelGqlGateway.d.ts +12 -0
  42. package/features/fileModel/GetFileModelGqlGateway.js +38 -0
  43. package/features/fileModel/GetFileModelGqlGateway.js.map +1 -0
  44. package/features/fileModel/GetFileModelRepository.d.ts +14 -0
  45. package/features/fileModel/GetFileModelRepository.js +32 -0
  46. package/features/fileModel/GetFileModelRepository.js.map +1 -0
  47. package/features/fileModel/abstractions.d.ts +24 -0
  48. package/features/fileModel/abstractions.js +7 -0
  49. package/features/fileModel/abstractions.js.map +1 -0
  50. package/features/fileModel/feature.d.ts +1 -0
  51. package/features/fileModel/feature.js +15 -0
  52. package/features/fileModel/feature.js.map +1 -0
  53. package/features/fileModel/index.d.ts +2 -0
  54. package/features/fileModel/index.js +2 -0
  55. package/features/fileUploader/FileUploader.d.ts +23 -0
  56. package/features/fileUploader/FileUploader.js +243 -0
  57. package/features/fileUploader/FileUploader.js.map +1 -0
  58. package/features/fileUploader/FileUploader.test.d.ts +1 -0
  59. package/features/fileUploader/FileUploader.test.js +427 -0
  60. package/features/fileUploader/FileUploader.test.js.map +1 -0
  61. package/features/fileUploader/abstractions.d.ts +51 -0
  62. package/features/fileUploader/abstractions.js +5 -0
  63. package/features/fileUploader/abstractions.js.map +1 -0
  64. package/features/fileUploader/feature.d.ts +3 -0
  65. package/features/fileUploader/feature.js +17 -0
  66. package/features/fileUploader/feature.js.map +1 -0
  67. package/features/fileUploader/index.d.ts +3 -0
  68. package/features/fileUploader/index.js +2 -0
  69. package/features/fileUrlFormatter/FileUrlFormatter.d.ts +8 -0
  70. package/features/fileUrlFormatter/FileUrlFormatter.js +13 -0
  71. package/features/fileUrlFormatter/FileUrlFormatter.js.map +1 -0
  72. package/features/fileUrlFormatter/abstractions.d.ts +1 -0
  73. package/features/fileUrlFormatter/abstractions.js +1 -0
  74. package/features/fileUrlFormatter/feature.d.ts +1 -0
  75. package/features/fileUrlFormatter/feature.js +11 -0
  76. package/features/fileUrlFormatter/feature.js.map +1 -0
  77. package/features/getFile/GetFileGateway.d.ts +14 -0
  78. package/features/getFile/GetFileGateway.js +28 -0
  79. package/features/getFile/GetFileGateway.js.map +1 -0
  80. package/features/getFile/GetFileRepository.d.ts +11 -0
  81. package/features/getFile/GetFileRepository.js +18 -0
  82. package/features/getFile/GetFileRepository.js.map +1 -0
  83. package/features/getFile/GetFileUseCase.d.ts +10 -0
  84. package/features/getFile/GetFileUseCase.js +35 -0
  85. package/features/getFile/GetFileUseCase.js.map +1 -0
  86. package/features/getFile/abstractions.d.ts +38 -0
  87. package/features/getFile/abstractions.js +7 -0
  88. package/features/getFile/abstractions.js.map +1 -0
  89. package/features/getFile/feature.d.ts +3 -0
  90. package/features/getFile/feature.js +21 -0
  91. package/features/getFile/feature.js.map +1 -0
  92. package/features/getFile/index.d.ts +3 -0
  93. package/features/getFile/index.js +2 -0
  94. package/features/listFiles/ListFiles.test.d.ts +1 -0
  95. package/features/listFiles/ListFiles.test.js +192 -0
  96. package/features/listFiles/ListFiles.test.js.map +1 -0
  97. package/features/listFiles/ListFilesGateway.d.ts +13 -0
  98. package/features/listFiles/ListFilesGateway.js +35 -0
  99. package/features/listFiles/ListFilesGateway.js.map +1 -0
  100. package/features/listFiles/ListFilesRepository.d.ts +12 -0
  101. package/features/listFiles/ListFilesRepository.js +26 -0
  102. package/features/listFiles/ListFilesRepository.js.map +1 -0
  103. package/features/listFiles/ListFilesUseCase.d.ts +10 -0
  104. package/features/listFiles/ListFilesUseCase.js +28 -0
  105. package/features/listFiles/ListFilesUseCase.js.map +1 -0
  106. package/features/listFiles/abstractions.d.ts +45 -0
  107. package/features/listFiles/abstractions.js +7 -0
  108. package/features/listFiles/abstractions.js.map +1 -0
  109. package/features/listFiles/feature.d.ts +3 -0
  110. package/features/listFiles/feature.js +21 -0
  111. package/features/listFiles/feature.js.map +1 -0
  112. package/features/listFiles/index.d.ts +3 -0
  113. package/features/listFiles/index.js +2 -0
  114. package/features/permissions/abstractions.d.ts +17 -0
  115. package/features/permissions/abstractions.js +6 -0
  116. package/features/permissions/abstractions.js.map +1 -0
  117. package/features/permissions/feature.d.ts +14 -0
  118. package/features/permissions/feature.js +7 -0
  119. package/features/permissions/feature.js.map +1 -0
  120. package/features/resolveImageTool/ResolveImageTool.d.ts +40 -0
  121. package/features/resolveImageTool/ResolveImageTool.js +49 -0
  122. package/features/resolveImageTool/ResolveImageTool.js.map +1 -0
  123. package/features/resolveImageTool/feature.d.ts +1 -0
  124. package/features/resolveImageTool/feature.js +11 -0
  125. package/features/resolveImageTool/feature.js.map +1 -0
  126. package/features/settings/GetSettings.test.d.ts +1 -0
  127. package/features/settings/GetSettings.test.js +92 -0
  128. package/features/settings/GetSettings.test.js.map +1 -0
  129. package/features/settings/GetSettingsGateway.d.ts +12 -0
  130. package/features/settings/GetSettingsGateway.js +43 -0
  131. package/features/settings/GetSettingsGateway.js.map +1 -0
  132. package/features/settings/GetSettingsRepository.d.ts +14 -0
  133. package/features/settings/GetSettingsRepository.js +34 -0
  134. package/features/settings/GetSettingsRepository.js.map +1 -0
  135. package/features/settings/GetSettingsUseCase.d.ts +11 -0
  136. package/features/settings/GetSettingsUseCase.js +18 -0
  137. package/features/settings/GetSettingsUseCase.js.map +1 -0
  138. package/features/settings/SaveSettingsGateway.d.ts +12 -0
  139. package/features/settings/SaveSettingsGateway.js +50 -0
  140. package/features/settings/SaveSettingsGateway.js.map +1 -0
  141. package/features/settings/abstractions.d.ts +31 -0
  142. package/features/settings/abstractions.js +8 -0
  143. package/features/settings/abstractions.js.map +1 -0
  144. package/features/settings/feature.d.ts +3 -0
  145. package/features/settings/feature.js +23 -0
  146. package/features/settings/feature.js.map +1 -0
  147. package/features/settings/index.d.ts +3 -0
  148. package/features/settings/index.js +2 -0
  149. package/features/shared/FILE_FIELDS.d.ts +1 -0
  150. package/features/shared/FILE_FIELDS.js +32 -0
  151. package/features/shared/FILE_FIELDS.js.map +1 -0
  152. package/features/shared/FileFieldsProvider.d.ts +8 -0
  153. package/features/shared/FileFieldsProvider.js +14 -0
  154. package/features/shared/FileFieldsProvider.js.map +1 -0
  155. package/features/shared/FileFieldsProviderWithWcp.d.ts +12 -0
  156. package/features/shared/FileFieldsProviderWithWcp.js +25 -0
  157. package/features/shared/FileFieldsProviderWithWcp.js.map +1 -0
  158. package/features/shared/FilesListCache.d.ts +1 -0
  159. package/features/shared/FilesListCache.js +1 -0
  160. package/features/shared/abstractions.d.ts +13 -0
  161. package/features/shared/abstractions.js +6 -0
  162. package/features/shared/abstractions.js.map +1 -0
  163. package/features/shared/feature.d.ts +5 -0
  164. package/features/shared/feature.js +22 -0
  165. package/features/shared/feature.js.map +1 -0
  166. package/features/shared/index.d.ts +4 -0
  167. package/features/shared/index.js +3 -0
  168. package/features/shared/types.d.ts +16 -0
  169. package/features/shared/types.js +0 -0
  170. package/features/tags/ListTags.test.d.ts +1 -0
  171. package/features/tags/ListTags.test.js +126 -0
  172. package/features/tags/ListTags.test.js.map +1 -0
  173. package/features/tags/ListTagsGateway.d.ts +11 -0
  174. package/features/tags/ListTagsGateway.js +23 -0
  175. package/features/tags/ListTagsGateway.js.map +1 -0
  176. package/features/tags/ListTagsRepository.d.ts +12 -0
  177. package/features/tags/ListTagsRepository.js +25 -0
  178. package/features/tags/ListTagsRepository.js.map +1 -0
  179. package/features/tags/ListTagsUseCase.d.ts +10 -0
  180. package/features/tags/ListTagsUseCase.js +20 -0
  181. package/features/tags/ListTagsUseCase.js.map +1 -0
  182. package/features/tags/abstractions.d.ts +32 -0
  183. package/features/tags/abstractions.js +7 -0
  184. package/features/tags/abstractions.js.map +1 -0
  185. package/features/tags/feature.d.ts +3 -0
  186. package/features/tags/feature.js +21 -0
  187. package/features/tags/feature.js.map +1 -0
  188. package/features/tags/index.d.ts +3 -0
  189. package/features/tags/index.js +2 -0
  190. package/features/updateFile/UpdateFile.test.d.ts +1 -0
  191. package/features/updateFile/UpdateFile.test.js +260 -0
  192. package/features/updateFile/UpdateFile.test.js.map +1 -0
  193. package/features/updateFile/UpdateFileGateway.d.ts +12 -0
  194. package/features/updateFile/UpdateFileGateway.js +25 -0
  195. package/features/updateFile/UpdateFileGateway.js.map +1 -0
  196. package/features/updateFile/UpdateFileRepository.d.ts +14 -0
  197. package/features/updateFile/UpdateFileRepository.js +32 -0
  198. package/features/updateFile/UpdateFileRepository.js.map +1 -0
  199. package/features/updateFile/UpdateFileUseCase.d.ts +12 -0
  200. package/features/updateFile/UpdateFileUseCase.js +41 -0
  201. package/features/updateFile/UpdateFileUseCase.js.map +1 -0
  202. package/features/updateFile/abstractions.d.ts +53 -0
  203. package/features/updateFile/abstractions.js +7 -0
  204. package/features/updateFile/abstractions.js.map +1 -0
  205. package/features/updateFile/feature.d.ts +3 -0
  206. package/features/updateFile/feature.js +21 -0
  207. package/features/updateFile/feature.js.map +1 -0
  208. package/features/updateFile/index.d.ts +3 -0
  209. package/features/updateFile/index.js +2 -0
  210. package/index.d.ts +3 -2
  211. package/index.js +3 -37
  212. package/modules/Enterprise/HandleWebsocketMessages.d.ts +1 -0
  213. package/modules/Enterprise/HandleWebsocketMessages.js +53 -0
  214. package/modules/Enterprise/HandleWebsocketMessages.js.map +1 -0
  215. package/modules/Enterprise/components/ThreatScanInProgressFileBody.d.ts +2 -0
  216. package/modules/Enterprise/components/ThreatScanInProgressFileBody.js +22 -0
  217. package/modules/Enterprise/components/ThreatScanInProgressFileBody.js.map +1 -0
  218. package/modules/Enterprise/components/ThreatScanInProgressTableCell.d.ts +6 -0
  219. package/modules/Enterprise/components/ThreatScanInProgressTableCell.js +20 -0
  220. package/modules/Enterprise/components/ThreatScanInProgressTableCell.js.map +1 -0
  221. package/modules/Enterprise/constants.d.ts +3 -0
  222. package/modules/Enterprise/constants.js +6 -0
  223. package/modules/Enterprise/constants.js.map +1 -0
  224. package/modules/Enterprise/index.d.ts +2 -0
  225. package/modules/Enterprise/index.js +30 -0
  226. package/modules/Enterprise/index.js.map +1 -0
  227. package/modules/FileManagerRoutes.d.ts +2 -0
  228. package/modules/FileManagerRoutes.js +31 -0
  229. package/modules/FileManagerRoutes.js.map +1 -0
  230. package/modules/FileModelModule.d.ts +2 -0
  231. package/modules/FileModelModule.js +18 -0
  232. package/modules/FileModelModule.js.map +1 -0
  233. package/modules/FileUrlFormatter.d.ts +2 -0
  234. package/modules/FileUrlFormatter.js +9 -0
  235. package/modules/FileUrlFormatter.js.map +1 -0
  236. package/modules/HeadlessCms/fileField.d.ts +2 -0
  237. package/modules/HeadlessCms/fileField.js +44 -0
  238. package/modules/HeadlessCms/fileField.js.map +1 -0
  239. package/modules/HeadlessCms/fileRenderer/fileField.d.ts +2 -0
  240. package/modules/HeadlessCms/fileRenderer/fileField.js +53 -0
  241. package/modules/HeadlessCms/fileRenderer/fileField.js.map +1 -0
  242. package/modules/HeadlessCms/fileRenderer/fileFields.d.ts +2 -0
  243. package/modules/HeadlessCms/fileRenderer/fileFields.js +73 -0
  244. package/modules/HeadlessCms/fileRenderer/fileFields.js.map +1 -0
  245. package/modules/HeadlessCms/fileRenderer/utils.d.ts +2 -0
  246. package/modules/HeadlessCms/fileRenderer/utils.js +15 -0
  247. package/modules/HeadlessCms/fileRenderer/utils.js.map +1 -0
  248. package/modules/HeadlessCms/index.d.ts +1 -0
  249. package/modules/HeadlessCms/index.js +14 -0
  250. package/modules/HeadlessCms/index.js.map +1 -0
  251. package/modules/SecurityPermissions.d.ts +2 -0
  252. package/modules/SecurityPermissions.js +15 -0
  253. package/modules/SecurityPermissions.js.map +1 -0
  254. package/modules/Settings/assets/icons/folder-open.js +19 -0
  255. package/modules/Settings/assets/icons/folder-open.js.map +1 -0
  256. package/{admin → modules/Settings}/graphql.d.ts +7 -0
  257. package/modules/Settings/graphql.js +36 -0
  258. package/modules/Settings/graphql.js.map +1 -0
  259. package/modules/Settings/index.d.ts +2 -0
  260. package/modules/Settings/index.js +27 -0
  261. package/modules/Settings/index.js.map +1 -0
  262. package/modules/Settings/views/FileManagerSettings.d.ts +2 -0
  263. package/modules/Settings/views/FileManagerSettings.js +134 -0
  264. package/modules/Settings/views/FileManagerSettings.js.map +1 -0
  265. package/package.json +46 -37
  266. package/presentation/FileActions/FileDetails/CopyUrl.d.ts +2 -0
  267. package/presentation/FileActions/FileDetails/CopyUrl.js +19 -0
  268. package/presentation/FileActions/FileDetails/CopyUrl.js.map +1 -0
  269. package/presentation/FileActions/FileDetails/DeleteImage.d.ts +2 -0
  270. package/presentation/FileActions/FileDetails/DeleteImage.js +24 -0
  271. package/presentation/FileActions/FileDetails/DeleteImage.js.map +1 -0
  272. package/presentation/FileActions/FileDetails/Download.d.ts +2 -0
  273. package/presentation/FileActions/FileDetails/Download.js +19 -0
  274. package/presentation/FileActions/FileDetails/Download.js.map +1 -0
  275. package/presentation/FileActions/FileDetails/MoveToFolder.d.ts +2 -0
  276. package/presentation/FileActions/FileDetails/MoveToFolder.js +16 -0
  277. package/presentation/FileActions/FileDetails/MoveToFolder.js.map +1 -0
  278. package/presentation/FileActions/Grid/Delete.d.ts +2 -0
  279. package/presentation/FileActions/Grid/Delete.js +23 -0
  280. package/presentation/FileActions/Grid/Delete.js.map +1 -0
  281. package/presentation/FileActions/Grid/Download.d.ts +2 -0
  282. package/presentation/FileActions/Grid/Download.js +19 -0
  283. package/presentation/FileActions/Grid/Download.js.map +1 -0
  284. package/presentation/FileActions/Grid/MoveToFolder.d.ts +2 -0
  285. package/presentation/FileActions/Grid/MoveToFolder.js +16 -0
  286. package/presentation/FileActions/Grid/MoveToFolder.js.map +1 -0
  287. package/presentation/FileActions/Grid/Settings.d.ts +2 -0
  288. package/presentation/FileActions/Grid/Settings.js +23 -0
  289. package/presentation/FileActions/Grid/Settings.js.map +1 -0
  290. package/presentation/FileActions/index.d.ts +2 -0
  291. package/presentation/FileActions/index.js +39 -0
  292. package/presentation/FileActions/index.js.map +1 -0
  293. package/presentation/FileDetails/FileDetailsPresenter.d.ts +28 -0
  294. package/presentation/FileDetails/FileDetailsPresenter.js +138 -0
  295. package/presentation/FileDetails/FileDetailsPresenter.js.map +1 -0
  296. package/presentation/FileDetails/FileDetailsPresenter.test.d.ts +1 -0
  297. package/presentation/FileDetails/FileDetailsPresenter.test.js +280 -0
  298. package/presentation/FileDetails/FileDetailsPresenter.test.js.map +1 -0
  299. package/presentation/FileDetails/abstractions.d.ts +22 -0
  300. package/presentation/FileDetails/abstractions.js +5 -0
  301. package/presentation/FileDetails/abstractions.js.map +1 -0
  302. package/presentation/FileDetails/components/ActionButton.d.ts +10 -0
  303. package/presentation/FileDetails/components/ActionButton.js +15 -0
  304. package/presentation/FileDetails/components/ActionButton.js.map +1 -0
  305. package/presentation/FileDetails/components/Actions.d.ts +2 -0
  306. package/presentation/FileDetails/components/Actions.js +13 -0
  307. package/presentation/FileDetails/components/Actions.js.map +1 -0
  308. package/presentation/FileDetails/components/Content.d.ts +14 -0
  309. package/presentation/FileDetails/components/Content.js +20 -0
  310. package/presentation/FileDetails/components/Content.js.map +1 -0
  311. package/presentation/FileDetails/components/CreatedOn.d.ts +2 -0
  312. package/presentation/FileDetails/components/CreatedOn.js +21 -0
  313. package/presentation/FileDetails/components/CreatedOn.js.map +1 -0
  314. package/presentation/FileDetails/components/Description.d.ts +2 -0
  315. package/presentation/FileDetails/components/Description.js +16 -0
  316. package/presentation/FileDetails/components/Description.js.map +1 -0
  317. package/presentation/FileDetails/components/FileDetailsDrawer.d.ts +4 -0
  318. package/presentation/FileDetails/components/FileDetailsDrawer.js +73 -0
  319. package/presentation/FileDetails/components/FileDetailsDrawer.js.map +1 -0
  320. package/presentation/FileDetails/components/Preview.d.ts +2 -0
  321. package/presentation/FileDetails/components/Preview.js +15 -0
  322. package/presentation/FileDetails/components/Preview.js.map +1 -0
  323. package/presentation/FileDetails/components/Thumbnail.d.ts +2 -0
  324. package/presentation/FileDetails/components/Thumbnail.js +12 -0
  325. package/presentation/FileDetails/components/Thumbnail.js.map +1 -0
  326. package/presentation/FileDetails/feature.d.ts +3 -0
  327. package/presentation/FileDetails/feature.js +17 -0
  328. package/presentation/FileDetails/feature.js.map +1 -0
  329. package/presentation/FileDetails/index.d.ts +3 -0
  330. package/presentation/FileDetails/index.js +2 -0
  331. package/presentation/FileList/FileListDataSource.d.ts +20 -0
  332. package/presentation/FileList/FileListDataSource.js +122 -0
  333. package/presentation/FileList/FileListDataSource.js.map +1 -0
  334. package/presentation/FileList/FileListPresenter.test.d.ts +1 -0
  335. package/presentation/FileList/FileListPresenter.test.js +424 -0
  336. package/presentation/FileList/FileListPresenter.test.js.map +1 -0
  337. package/presentation/FileList/FileManagerPresenter.d.ts +43 -0
  338. package/presentation/FileList/FileManagerPresenter.js +213 -0
  339. package/presentation/FileList/FileManagerPresenter.js.map +1 -0
  340. package/presentation/FileList/FileManagerPresenterProvider.d.ts +9 -0
  341. package/presentation/FileList/FileManagerPresenterProvider.js +13 -0
  342. package/presentation/FileList/FileManagerPresenterProvider.js.map +1 -0
  343. package/presentation/FileList/abstractions.d.ts +76 -0
  344. package/presentation/FileList/abstractions.js +5 -0
  345. package/presentation/FileList/abstractions.js.map +1 -0
  346. package/presentation/FileList/components/BottomInfoBar/BottomInfoBar.d.ts +6 -0
  347. package/presentation/FileList/components/BottomInfoBar/BottomInfoBar.js +12 -0
  348. package/presentation/FileList/components/BottomInfoBar/BottomInfoBar.js.map +1 -0
  349. package/presentation/FileList/components/BottomInfoBar/ListStatus.d.ts +6 -0
  350. package/presentation/FileList/components/BottomInfoBar/ListStatus.js +20 -0
  351. package/presentation/FileList/components/BottomInfoBar/ListStatus.js.map +1 -0
  352. package/presentation/FileList/components/BottomInfoBar/SupportedFileTypes.d.ts +8 -0
  353. package/presentation/FileList/components/BottomInfoBar/SupportedFileTypes.js +56 -0
  354. package/presentation/FileList/components/BottomInfoBar/SupportedFileTypes.js.map +1 -0
  355. package/presentation/FileList/components/BottomInfoBar/index.d.ts +1 -0
  356. package/presentation/FileList/components/BottomInfoBar/index.js +1 -0
  357. package/presentation/FileList/components/BulkActions/ActionEdit.types.d.ts +2 -0
  358. package/presentation/FileList/components/BulkActions/ActionEdit.types.js +0 -0
  359. package/presentation/FileList/components/BulkActions/ActionEditPresenter.d.ts +35 -0
  360. package/presentation/FileList/components/BulkActions/ActionEditPresenter.js +55 -0
  361. package/presentation/FileList/components/BulkActions/ActionEditPresenter.js.map +1 -0
  362. package/presentation/FileList/components/BulkActions/ActionEditPresenter.test.d.ts +1 -0
  363. package/presentation/FileList/components/BulkActions/ActionEditPresenter.test.js +170 -0
  364. package/presentation/FileList/components/BulkActions/ActionEditPresenter.test.js.map +1 -0
  365. package/presentation/FileList/components/BulkActions/BatchEditorDialog/AddOperation.d.ts +7 -0
  366. package/presentation/FileList/components/BulkActions/BatchEditorDialog/AddOperation.js +15 -0
  367. package/presentation/FileList/components/BulkActions/BatchEditorDialog/AddOperation.js.map +1 -0
  368. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditor.d.ts +15 -0
  369. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditor.js +44 -0
  370. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditor.js.map +1 -0
  371. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialog.d.ts +15 -0
  372. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialog.js +52 -0
  373. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialog.js.map +1 -0
  374. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.d.ts +61 -0
  375. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.js +111 -0
  376. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.js.map +1 -0
  377. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.test.d.ts +1 -0
  378. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.test.js +372 -0
  379. package/presentation/FileList/components/BulkActions/BatchEditorDialog/BatchEditorDialogPresenter.test.js.map +1 -0
  380. package/presentation/FileList/components/BulkActions/BatchEditorDialog/FieldRenderer.d.ts +8 -0
  381. package/presentation/FileList/components/BulkActions/BatchEditorDialog/FieldRenderer.js +31 -0
  382. package/presentation/FileList/components/BulkActions/BatchEditorDialog/FieldRenderer.js.map +1 -0
  383. package/presentation/FileList/components/BulkActions/BatchEditorDialog/Operation.d.ts +11 -0
  384. package/presentation/FileList/components/BulkActions/BatchEditorDialog/Operation.js +33 -0
  385. package/presentation/FileList/components/BulkActions/BatchEditorDialog/Operation.js.map +1 -0
  386. package/presentation/FileList/components/BulkActions/BatchEditorDialog/index.d.ts +1 -0
  387. package/presentation/FileList/components/BulkActions/BatchEditorDialog/index.js +1 -0
  388. package/presentation/FileList/components/BulkActions/BulkActionBar.d.ts +5 -0
  389. package/presentation/FileList/components/BulkActions/BulkActionBar.js +42 -0
  390. package/presentation/FileList/components/BulkActions/BulkActionBar.js.map +1 -0
  391. package/presentation/FileList/components/BulkActions/BulkActionDelete.d.ts +4 -0
  392. package/presentation/FileList/components/BulkActions/BulkActionDelete.js +65 -0
  393. package/presentation/FileList/components/BulkActions/BulkActionDelete.js.map +1 -0
  394. package/presentation/FileList/components/BulkActions/BulkActionEdit.d.ts +4 -0
  395. package/presentation/FileList/components/BulkActions/BulkActionEdit.js +105 -0
  396. package/presentation/FileList/components/BulkActions/BulkActionEdit.js.map +1 -0
  397. package/presentation/FileList/components/BulkActions/BulkActionMove.d.ts +4 -0
  398. package/presentation/FileList/components/BulkActions/BulkActionMove.js +87 -0
  399. package/presentation/FileList/components/BulkActions/BulkActionMove.js.map +1 -0
  400. package/presentation/FileList/components/BulkActions/GraphQLInputMapper.d.ts +23 -0
  401. package/presentation/FileList/components/BulkActions/GraphQLInputMapper.js +40 -0
  402. package/presentation/FileList/components/BulkActions/GraphQLInputMapper.js.map +1 -0
  403. package/presentation/FileList/components/BulkActions/GraphQLInputMapper.test.d.ts +1 -0
  404. package/presentation/FileList/components/BulkActions/GraphQLInputMapper.test.js +319 -0
  405. package/presentation/FileList/components/BulkActions/GraphQLInputMapper.test.js.map +1 -0
  406. package/presentation/FileList/components/BulkActions/domain/Batch.d.ts +32 -0
  407. package/presentation/FileList/components/BulkActions/domain/Batch.js +32 -0
  408. package/presentation/FileList/components/BulkActions/domain/Batch.js.map +1 -0
  409. package/presentation/FileList/components/BulkActions/domain/BatchMapper.d.ts +4 -0
  410. package/presentation/FileList/components/BulkActions/domain/BatchMapper.js +14 -0
  411. package/presentation/FileList/components/BulkActions/domain/BatchMapper.js.map +1 -0
  412. package/presentation/FileList/components/BulkActions/domain/Field.d.ts +32 -0
  413. package/presentation/FileList/components/BulkActions/domain/Field.js +49 -0
  414. package/presentation/FileList/components/BulkActions/domain/Field.js.map +1 -0
  415. package/presentation/FileList/components/BulkActions/domain/FieldMapper.d.ts +7 -0
  416. package/presentation/FileList/components/BulkActions/domain/FieldMapper.js +21 -0
  417. package/presentation/FileList/components/BulkActions/domain/FieldMapper.js.map +1 -0
  418. package/presentation/FileList/components/BulkActions/domain/index.d.ts +4 -0
  419. package/presentation/FileList/components/BulkActions/domain/index.js +4 -0
  420. package/presentation/FileList/components/BulkActions/index.d.ts +5 -0
  421. package/presentation/FileList/components/BulkActions/index.js +5 -0
  422. package/presentation/FileList/components/BulkActions/useBulkActionWorker.d.ts +16 -0
  423. package/presentation/FileList/components/BulkActions/useBulkActionWorker.js +43 -0
  424. package/presentation/FileList/components/BulkActions/useBulkActionWorker.js.map +1 -0
  425. package/presentation/FileList/components/Empty/Empty.d.ts +8 -0
  426. package/presentation/FileList/components/Empty/Empty.js +20 -0
  427. package/presentation/FileList/components/Empty/Empty.js.map +1 -0
  428. package/presentation/FileList/components/Empty/index.d.ts +1 -0
  429. package/presentation/FileList/components/Empty/index.js +1 -0
  430. package/presentation/FileList/components/FileDropArea/FileDropArea.d.ts +9 -0
  431. package/presentation/FileList/components/FileDropArea/FileDropArea.js +62 -0
  432. package/presentation/FileList/components/FileDropArea/FileDropArea.js.map +1 -0
  433. package/presentation/FileList/components/FileDropArea/index.d.ts +1 -0
  434. package/presentation/FileList/components/FileDropArea/index.js +1 -0
  435. package/presentation/FileList/components/FileDropPlaceholder/FileDropPlaceholder.d.ts +2 -0
  436. package/presentation/FileList/components/FileDropPlaceholder/FileDropPlaceholder.js +11 -0
  437. package/presentation/FileList/components/FileDropPlaceholder/FileDropPlaceholder.js.map +1 -0
  438. package/presentation/FileList/components/FileDropPlaceholder/index.d.ts +1 -0
  439. package/presentation/FileList/components/FileDropPlaceholder/index.js +1 -0
  440. package/presentation/FileList/components/FilePicker/FilePicker.d.ts +11 -0
  441. package/presentation/FileList/components/FilePicker/FilePicker.js +28 -0
  442. package/presentation/FileList/components/FilePicker/FilePicker.js.map +1 -0
  443. package/presentation/FileList/components/Filters/FilterByType.d.ts +2 -0
  444. package/presentation/FileList/components/Filters/FilterByType.js +39 -0
  445. package/presentation/FileList/components/Filters/FilterByType.js.map +1 -0
  446. package/presentation/FileList/components/Filters/SubFoldersToggle.d.ts +9 -0
  447. package/presentation/FileList/components/Filters/SubFoldersToggle.js +25 -0
  448. package/presentation/FileList/components/Filters/SubFoldersToggle.js.map +1 -0
  449. package/presentation/FileList/components/Filters/TagsFilter.d.ts +9 -0
  450. package/presentation/FileList/components/Filters/TagsFilter.js +86 -0
  451. package/presentation/FileList/components/Filters/TagsFilter.js.map +1 -0
  452. package/presentation/FileList/components/Filters/TypeFilter.d.ts +8 -0
  453. package/presentation/FileList/components/Filters/TypeFilter.js +46 -0
  454. package/presentation/FileList/components/Filters/TypeFilter.js.map +1 -0
  455. package/presentation/FileList/components/Filters/index.d.ts +3 -0
  456. package/presentation/FileList/components/Filters/index.js +3 -0
  457. package/presentation/FileList/components/Grid/ActionButton.d.ts +9 -0
  458. package/presentation/FileList/components/Grid/ActionButton.js +24 -0
  459. package/presentation/FileList/components/Grid/ActionButton.js.map +1 -0
  460. package/presentation/FileList/components/Grid/File.d.ts +32 -0
  461. package/presentation/FileList/components/Grid/File.js +84 -0
  462. package/presentation/FileList/components/Grid/File.js.map +1 -0
  463. package/presentation/FileList/components/Grid/FileGrid.d.ts +9 -0
  464. package/presentation/FileList/components/Grid/FileGrid.js +162 -0
  465. package/presentation/FileList/components/Grid/FileGrid.js.map +1 -0
  466. package/presentation/FileList/components/Grid/FileGrid.test.d.ts +1 -0
  467. package/presentation/FileList/components/Grid/FileGrid.test.js +387 -0
  468. package/presentation/FileList/components/Grid/FileGrid.test.js.map +1 -0
  469. package/presentation/FileList/components/Grid/index.d.ts +1 -0
  470. package/presentation/FileList/components/Grid/index.js +1 -0
  471. package/presentation/FileList/components/Header/FileManagerHeader.d.ts +7 -0
  472. package/presentation/FileList/components/Header/FileManagerHeader.js +114 -0
  473. package/presentation/FileList/components/Header/FileManagerHeader.js.map +1 -0
  474. package/presentation/FileList/components/LayoutSwitch/LayoutSwitch.d.ts +2 -0
  475. package/presentation/FileList/components/LayoutSwitch/LayoutSwitch.js +24 -0
  476. package/presentation/FileList/components/LayoutSwitch/LayoutSwitch.js.map +1 -0
  477. package/presentation/FileList/components/LayoutSwitch/index.d.ts +1 -0
  478. package/presentation/FileList/components/LayoutSwitch/index.js +1 -0
  479. package/presentation/FileList/components/NoPermissions/NoPermissions.d.ts +2 -0
  480. package/presentation/FileList/components/NoPermissions/NoPermissions.js +27 -0
  481. package/presentation/FileList/components/NoPermissions/NoPermissions.js.map +1 -0
  482. package/presentation/FileList/components/NoPermissions/index.d.ts +1 -0
  483. package/presentation/FileList/components/NoPermissions/index.js +1 -0
  484. package/presentation/FileList/components/NoResults/NoResults.d.ts +2 -0
  485. package/presentation/FileList/components/NoResults/NoResults.js +21 -0
  486. package/presentation/FileList/components/NoResults/NoResults.js.map +1 -0
  487. package/presentation/FileList/components/NoResults/index.d.ts +1 -0
  488. package/presentation/FileList/components/NoResults/index.js +1 -0
  489. package/presentation/FileList/components/Search/SearchBar.d.ts +9 -0
  490. package/presentation/FileList/components/Search/SearchBar.js +33 -0
  491. package/presentation/FileList/components/Search/SearchBar.js.map +1 -0
  492. package/presentation/FileList/components/Search/index.d.ts +1 -0
  493. package/presentation/FileList/components/Search/index.js +1 -0
  494. package/presentation/FileList/components/Table/Actions/CopyFile.d.ts +2 -0
  495. package/presentation/FileList/components/Table/Actions/CopyFile.js +21 -0
  496. package/presentation/FileList/components/Table/Actions/CopyFile.js.map +1 -0
  497. package/presentation/FileList/components/Table/Actions/DeleteFile.d.ts +2 -0
  498. package/presentation/FileList/components/Table/Actions/DeleteFile.js +24 -0
  499. package/presentation/FileList/components/Table/Actions/DeleteFile.js.map +1 -0
  500. package/presentation/FileList/components/Table/Actions/EditFile.d.ts +2 -0
  501. package/presentation/FileList/components/Table/Actions/EditFile.js +19 -0
  502. package/presentation/FileList/components/Table/Actions/EditFile.js.map +1 -0
  503. package/presentation/FileList/components/Table/Actions/MoveFile.d.ts +2 -0
  504. package/presentation/FileList/components/Table/Actions/MoveFile.js +19 -0
  505. package/presentation/FileList/components/Table/Actions/MoveFile.js.map +1 -0
  506. package/presentation/FileList/components/Table/Actions/index.d.ts +4 -0
  507. package/presentation/FileList/components/Table/Actions/index.js +4 -0
  508. package/presentation/FileList/components/Table/Cells/CellActions.d.ts +2 -0
  509. package/presentation/FileList/components/Table/Cells/CellActions.js +28 -0
  510. package/presentation/FileList/components/Table/Cells/CellActions.js.map +1 -0
  511. package/presentation/FileList/components/Table/Cells/CellAuthor.d.ts +2 -0
  512. package/presentation/FileList/components/Table/Cells/CellAuthor.js +10 -0
  513. package/presentation/FileList/components/Table/Cells/CellAuthor.js.map +1 -0
  514. package/presentation/FileList/components/Table/Cells/CellCreated.d.ts +2 -0
  515. package/presentation/FileList/components/Table/Cells/CellCreated.js +13 -0
  516. package/presentation/FileList/components/Table/Cells/CellCreated.js.map +1 -0
  517. package/presentation/FileList/components/Table/Cells/CellModified.d.ts +2 -0
  518. package/presentation/FileList/components/Table/Cells/CellModified.js +13 -0
  519. package/presentation/FileList/components/Table/Cells/CellModified.js.map +1 -0
  520. package/presentation/FileList/components/Table/Cells/CellName.d.ts +16 -0
  521. package/presentation/FileList/components/Table/Cells/CellName.js +59 -0
  522. package/presentation/FileList/components/Table/Cells/CellName.js.map +1 -0
  523. package/presentation/FileList/components/Table/Cells/CellSize.d.ts +2 -0
  524. package/presentation/FileList/components/Table/Cells/CellSize.js +14 -0
  525. package/presentation/FileList/components/Table/Cells/CellSize.js.map +1 -0
  526. package/presentation/FileList/components/Table/Cells/CellThumbnail.d.ts +2 -0
  527. package/presentation/FileList/components/Table/Cells/CellThumbnail.js +12 -0
  528. package/presentation/FileList/components/Table/Cells/CellThumbnail.js.map +1 -0
  529. package/presentation/FileList/components/Table/Cells/CellType.d.ts +2 -0
  530. package/presentation/FileList/components/Table/Cells/CellType.js +11 -0
  531. package/presentation/FileList/components/Table/Cells/CellType.js.map +1 -0
  532. package/presentation/FileList/components/Table/Cells/index.d.ts +7 -0
  533. package/presentation/FileList/components/Table/Cells/index.js +7 -0
  534. package/presentation/FileList/components/Table/FileTable.d.ts +12 -0
  535. package/presentation/FileList/components/Table/FileTable.js +79 -0
  536. package/presentation/FileList/components/Table/FileTable.js.map +1 -0
  537. package/presentation/FileList/components/Table/FileTable.test.d.ts +1 -0
  538. package/presentation/FileList/components/Table/FileTable.test.js +365 -0
  539. package/presentation/FileList/components/Table/FileTable.test.js.map +1 -0
  540. package/presentation/FileList/components/Table/index.d.ts +4 -0
  541. package/presentation/FileList/components/Table/index.js +3 -0
  542. package/presentation/FileList/components/TagsList/Empty.d.ts +6 -0
  543. package/presentation/FileList/components/TagsList/Empty.js +8 -0
  544. package/presentation/FileList/components/TagsList/Empty.js.map +1 -0
  545. package/presentation/FileList/components/TagsList/FilterSelect.d.ts +2 -0
  546. package/presentation/FileList/components/TagsList/FilterSelect.js +38 -0
  547. package/presentation/FileList/components/TagsList/FilterSelect.js.map +1 -0
  548. package/presentation/FileList/components/TagsList/FilterStatus.d.ts +7 -0
  549. package/presentation/FileList/components/TagsList/FilterStatus.js +25 -0
  550. package/presentation/FileList/components/TagsList/FilterStatus.js.map +1 -0
  551. package/presentation/FileList/components/TagsList/Tag.d.ts +9 -0
  552. package/presentation/FileList/components/TagsList/Tag.js +11 -0
  553. package/presentation/FileList/components/TagsList/Tag.js.map +1 -0
  554. package/presentation/FileList/components/TagsList/Tags.d.ts +8 -0
  555. package/presentation/FileList/components/TagsList/Tags.js +30 -0
  556. package/presentation/FileList/components/TagsList/Tags.js.map +1 -0
  557. package/presentation/FileList/components/TagsList/TagsList.d.ts +11 -0
  558. package/presentation/FileList/components/TagsList/TagsList.js +24 -0
  559. package/presentation/FileList/components/TagsList/TagsList.js.map +1 -0
  560. package/presentation/FileList/components/TagsList/index.d.ts +1 -0
  561. package/presentation/FileList/components/TagsList/index.js +1 -0
  562. package/presentation/FileList/components/Thumbnail/Thumbnail.d.ts +2 -0
  563. package/presentation/FileList/components/Thumbnail/Thumbnail.js +12 -0
  564. package/presentation/FileList/components/Thumbnail/Thumbnail.js.map +1 -0
  565. package/presentation/FileList/components/Thumbnail/index.d.ts +1 -0
  566. package/presentation/FileList/components/Thumbnail/index.js +1 -0
  567. package/presentation/FileList/components/Upload/UploadProgress.d.ts +9 -0
  568. package/presentation/FileList/components/Upload/UploadProgress.js +45 -0
  569. package/presentation/FileList/components/Upload/UploadProgress.js.map +1 -0
  570. package/presentation/FileList/components/Upload/index.d.ts +1 -0
  571. package/presentation/FileList/components/Upload/index.js +1 -0
  572. package/presentation/FileList/feature.d.ts +3 -0
  573. package/presentation/FileList/feature.js +17 -0
  574. package/presentation/FileList/feature.js.map +1 -0
  575. package/presentation/FileList/index.d.ts +5 -0
  576. package/presentation/FileList/index.js +3 -0
  577. package/presentation/FileManager/FileManagerRenderer.d.ts +2 -0
  578. package/presentation/FileManager/FileManagerRenderer.js +33 -0
  579. package/presentation/FileManager/FileManagerRenderer.js.map +1 -0
  580. package/presentation/FileManager/FileManagerView.d.ts +12 -0
  581. package/presentation/FileManager/FileManagerView.js +246 -0
  582. package/presentation/FileManager/FileManagerView.js.map +1 -0
  583. package/presentation/FileManager/OverlayContext.d.ts +14 -0
  584. package/presentation/FileManager/OverlayContext.js +11 -0
  585. package/presentation/FileManager/OverlayContext.js.map +1 -0
  586. package/presentation/FileManager/outputFileSelectionError.d.ts +2 -0
  587. package/presentation/FileManager/outputFileSelectionError.js +27 -0
  588. package/presentation/FileManager/outputFileSelectionError.js.map +1 -0
  589. package/presentation/Settings/SettingsPresenter.d.ts +14 -0
  590. package/presentation/Settings/SettingsPresenter.js +78 -0
  591. package/presentation/Settings/SettingsPresenter.js.map +1 -0
  592. package/presentation/Settings/components/SettingsView.d.ts +4 -0
  593. package/presentation/Settings/components/SettingsView.js +45 -0
  594. package/presentation/Settings/components/SettingsView.js.map +1 -0
  595. package/presentation/config/DefaultFileManagerConfig.d.ts +2 -0
  596. package/presentation/config/DefaultFileManagerConfig.js +118 -0
  597. package/presentation/config/DefaultFileManagerConfig.js.map +1 -0
  598. package/presentation/config/FileManagerViewConfig.d.ts +248 -0
  599. package/presentation/config/FileManagerViewConfig.js +74 -0
  600. package/presentation/config/FileManagerViewConfig.js.map +1 -0
  601. package/presentation/config/configComponents/Browser/BulkAction.d.ts +26 -0
  602. package/presentation/config/configComponents/Browser/BulkAction.js +57 -0
  603. package/presentation/config/configComponents/Browser/BulkAction.js.map +1 -0
  604. package/presentation/config/configComponents/Browser/BulkEditField.d.ts +10 -0
  605. package/presentation/config/configComponents/Browser/BulkEditField.js +24 -0
  606. package/presentation/config/configComponents/Browser/BulkEditField.js.map +1 -0
  607. package/presentation/config/configComponents/Browser/FileAction.d.ts +8 -0
  608. package/presentation/config/configComponents/Browser/FileAction.js +11 -0
  609. package/presentation/config/configComponents/Browser/FileAction.js.map +1 -0
  610. package/presentation/config/configComponents/Browser/Filter.d.ts +39 -0
  611. package/presentation/config/configComponents/Browser/Filter.js +37 -0
  612. package/presentation/config/configComponents/Browser/Filter.js.map +1 -0
  613. package/presentation/config/configComponents/Browser/FilterByTags.d.ts +5 -0
  614. package/presentation/config/configComponents/Browser/FilterByTags.js +14 -0
  615. package/presentation/config/configComponents/Browser/FilterByTags.js.map +1 -0
  616. package/presentation/config/configComponents/Browser/FiltersToWhere.d.ts +7 -0
  617. package/presentation/config/configComponents/Browser/FiltersToWhere.js +13 -0
  618. package/presentation/config/configComponents/Browser/FiltersToWhere.js.map +1 -0
  619. package/presentation/config/configComponents/Browser/FolderAction.d.ts +7 -0
  620. package/presentation/config/configComponents/Browser/FolderAction.js +10 -0
  621. package/presentation/config/configComponents/Browser/FolderAction.js.map +1 -0
  622. package/presentation/config/configComponents/Browser/FolderDropConfirmation.d.ts +5 -0
  623. package/presentation/config/configComponents/Browser/FolderDropConfirmation.js +7 -0
  624. package/presentation/config/configComponents/Browser/FolderDropConfirmation.js.map +1 -0
  625. package/presentation/config/configComponents/Browser/FolderFieldDecorator.d.ts +7 -0
  626. package/presentation/config/configComponents/Browser/FolderFieldDecorator.js +11 -0
  627. package/presentation/config/configComponents/Browser/FolderFieldDecorator.js.map +1 -0
  628. package/presentation/config/configComponents/Browser/Grid/Action.d.ts +31 -0
  629. package/presentation/config/configComponents/Browser/Grid/Action.js +33 -0
  630. package/presentation/config/configComponents/Browser/Grid/Action.js.map +1 -0
  631. package/presentation/config/configComponents/Browser/Grid/Thumbnail.d.ts +28 -0
  632. package/presentation/config/configComponents/Browser/Grid/Thumbnail.js +28 -0
  633. package/presentation/config/configComponents/Browser/Grid/Thumbnail.js.map +1 -0
  634. package/presentation/config/configComponents/Browser/Grid/index.d.ts +6 -0
  635. package/presentation/config/configComponents/Browser/Grid/index.js +0 -0
  636. package/presentation/config/configComponents/Browser/Table/Column.d.ts +32 -0
  637. package/presentation/config/configComponents/Browser/Table/Column.js +13 -0
  638. package/presentation/config/configComponents/Browser/Table/Column.js.map +1 -0
  639. package/presentation/config/configComponents/Browser/Table/Thumbnail.d.ts +28 -0
  640. package/presentation/config/configComponents/Browser/Table/Thumbnail.js +28 -0
  641. package/presentation/config/configComponents/Browser/Table/Thumbnail.js.map +1 -0
  642. package/presentation/config/configComponents/Browser/Table/index.d.ts +56 -0
  643. package/presentation/config/configComponents/Browser/Table/index.js +11 -0
  644. package/presentation/config/configComponents/Browser/Table/index.js.map +1 -0
  645. package/presentation/config/configComponents/Browser/index.d.ts +189 -0
  646. package/presentation/config/configComponents/Browser/index.js +47 -0
  647. package/presentation/config/configComponents/Browser/index.js.map +1 -0
  648. package/presentation/config/configComponents/FileDetails/Action.d.ts +31 -0
  649. package/presentation/config/configComponents/FileDetails/Action.js +30 -0
  650. package/presentation/config/configComponents/FileDetails/Action.js.map +1 -0
  651. package/presentation/config/configComponents/FileDetails/Thumbnail.d.ts +28 -0
  652. package/presentation/config/configComponents/FileDetails/Thumbnail.js +25 -0
  653. package/presentation/config/configComponents/FileDetails/Thumbnail.js.map +1 -0
  654. package/presentation/config/configComponents/FileDetails/Width.d.ts +5 -0
  655. package/presentation/config/configComponents/FileDetails/Width.js +13 -0
  656. package/presentation/config/configComponents/FileDetails/Width.js.map +1 -0
  657. package/presentation/config/configComponents/FileDetails/index.d.ts +52 -0
  658. package/presentation/config/configComponents/FileDetails/index.js +16 -0
  659. package/presentation/config/configComponents/FileDetails/index.js.map +1 -0
  660. package/presentation/config/fields/AccessControl.d.ts +7 -0
  661. package/presentation/config/fields/AccessControl.js +38 -0
  662. package/presentation/config/fields/AccessControl.js.map +1 -0
  663. package/presentation/config/fields/Tags.d.ts +2 -0
  664. package/presentation/config/fields/Tags.js +32 -0
  665. package/presentation/config/fields/Tags.js.map +1 -0
  666. package/presentation/config/fields/index.d.ts +2 -0
  667. package/presentation/config/fields/index.js +2 -0
  668. package/presentation/config/fields/useAccessControlField.d.ts +6 -0
  669. package/presentation/config/fields/useAccessControlField.js +21 -0
  670. package/presentation/config/fields/useAccessControlField.js.map +1 -0
  671. package/presentation/config/fields/useFileOrUndefined.d.ts +3 -0
  672. package/presentation/config/fields/useFileOrUndefined.js +13 -0
  673. package/presentation/config/fields/useFileOrUndefined.js.map +1 -0
  674. package/presentation/config/getThumbnailRenderer.d.ts +4 -0
  675. package/presentation/config/getThumbnailRenderer.js +16 -0
  676. package/presentation/config/getThumbnailRenderer.js.map +1 -0
  677. package/presentation/config/thumbnailRenderers/FilePreviewDefaultRenderer.d.ts +2 -0
  678. package/presentation/config/thumbnailRenderers/FilePreviewDefaultRenderer.js +11 -0
  679. package/presentation/config/thumbnailRenderers/FilePreviewDefaultRenderer.js.map +1 -0
  680. package/presentation/config/thumbnailRenderers/FilePreviewImageRenderer.d.ts +2 -0
  681. package/presentation/config/thumbnailRenderers/FilePreviewImageRenderer.js +18 -0
  682. package/presentation/config/thumbnailRenderers/FilePreviewImageRenderer.js.map +1 -0
  683. package/presentation/config/thumbnailRenderers/GridItemDefaultRenderer.d.ts +2 -0
  684. package/presentation/config/thumbnailRenderers/GridItemDefaultRenderer.js +11 -0
  685. package/presentation/config/thumbnailRenderers/GridItemDefaultRenderer.js.map +1 -0
  686. package/presentation/config/thumbnailRenderers/GridItemImageRenderer.d.ts +2 -0
  687. package/presentation/config/thumbnailRenderers/GridItemImageRenderer.js +18 -0
  688. package/presentation/config/thumbnailRenderers/GridItemImageRenderer.js.map +1 -0
  689. package/presentation/config/thumbnailRenderers/TableItemDefaultRenderer.d.ts +2 -0
  690. package/presentation/config/thumbnailRenderers/TableItemDefaultRenderer.js +18 -0
  691. package/presentation/config/thumbnailRenderers/TableItemDefaultRenderer.js.map +1 -0
  692. package/presentation/config/thumbnailRenderers/TableItemImageRenderer.d.ts +2 -0
  693. package/presentation/config/thumbnailRenderers/TableItemImageRenderer.js +18 -0
  694. package/presentation/config/thumbnailRenderers/TableItemImageRenderer.js.map +1 -0
  695. package/presentation/contexts/FileProvider.d.ts +12 -0
  696. package/presentation/contexts/FileProvider.js +13 -0
  697. package/presentation/contexts/FileProvider.js.map +1 -0
  698. package/presentation/hooks/useCopyFile.d.ts +11 -0
  699. package/presentation/hooks/useCopyFile.js +24 -0
  700. package/presentation/hooks/useCopyFile.js.map +1 -0
  701. package/presentation/hooks/useDeleteFile.d.ts +9 -0
  702. package/presentation/hooks/useDeleteFile.js +35 -0
  703. package/presentation/hooks/useDeleteFile.js.map +1 -0
  704. package/presentation/hooks/useFile.d.ts +2 -0
  705. package/presentation/hooks/useFile.js +10 -0
  706. package/presentation/hooks/useFile.js.map +1 -0
  707. package/presentation/hooks/useMoveFileToFolder.d.ts +2 -0
  708. package/presentation/hooks/useMoveFileToFolder.js +36 -0
  709. package/presentation/hooks/useMoveFileToFolder.js.map +1 -0
  710. package/routes.d.ts +7 -0
  711. package/routes.js +17 -0
  712. package/routes.js.map +1 -0
  713. package/static/svg/folder-open.ae8d0fac.svg +1 -0
  714. package/admin/graphql.js +0 -24
  715. package/admin/graphql.js.map +0 -1
  716. package/admin/index.d.ts +0 -2
  717. package/admin/index.js +0 -16
  718. package/admin/index.js.map +0 -1
  719. package/admin/plugins/index.d.ts +0 -2
  720. package/admin/plugins/index.js +0 -18
  721. package/admin/plugins/index.js.map +0 -1
  722. package/admin/plugins/installation.d.ts +0 -3
  723. package/admin/plugins/installation.js +0 -134
  724. package/admin/plugins/installation.js.map +0 -1
  725. package/admin/plugins/permissionRenderer/FileManagerPermissions.d.ts +0 -14
  726. package/admin/plugins/permissionRenderer/FileManagerPermissions.js +0 -249
  727. package/admin/plugins/permissionRenderer/FileManagerPermissions.js.map +0 -1
  728. package/admin/plugins/permissionRenderer/index.d.ts +0 -3
  729. package/admin/plugins/permissionRenderer/index.js +0 -38
  730. package/admin/plugins/permissionRenderer/index.js.map +0 -1
  731. package/admin/views/FileManagerSettings.d.ts +0 -3
  732. package/admin/views/FileManagerSettings.js +0 -162
  733. package/admin/views/FileManagerSettings.js.map +0 -1
  734. package/index.js.map +0 -1
  735. package/types.d.ts +0 -26
  736. package/types.js +0 -5
  737. package/types.js.map +0 -1
  738. /package/{admin → modules/Settings}/assets/icons/folder-open.svg +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/FileList/components/TagsList/Tag.js","sources":["../../../../../src/presentation/FileList/components/TagsList/Tag.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tag as AdminTag } from \"@webiny/admin-ui\";\nimport type { TagItem } from \"@webiny/app-aco/types.js\";\n\ntype TagProps = {\n tagItem: TagItem;\n active: boolean;\n onTagClick: (tagItem: TagItem) => void;\n};\n\nexport const Tag = ({ tagItem, active, onTagClick }: TagProps) => {\n return (\n <div>\n <AdminTag\n variant={active ? \"accent\" : \"neutral-muted\"}\n content={tagItem.tag}\n onClick={() => onTagClick(tagItem)}\n onDismiss={active ? () => onTagClick(tagItem) : undefined}\n />\n </div>\n );\n};\n"],"names":["Tag","tagItem","active","onTagClick","AdminTag","undefined"],"mappings":";;AAUO,MAAMA,UAAM,CAAC,EAAEC,OAAO,EAAEC,MAAM,EAAEC,UAAU,EAAY,GAClD,WAAP,GACI,oBAAC,2BACG,oBAACC,KAAQA;QACL,SAASF,SAAS,WAAW;QAC7B,SAASD,QAAQ,GAAG;QACpB,SAAS,IAAME,WAAWF;QAC1B,WAAWC,SAAS,IAAMC,WAAWF,WAAWI"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import type { TagItem } from "@webiny/app-aco/types.js";
3
+ export interface TagsProps {
4
+ tags: TagItem[];
5
+ activeTags: string[];
6
+ onActivatedTagsChange: (tags: string[]) => void;
7
+ }
8
+ export declare const Tags: ({ tags, activeTags, onActivatedTagsChange }: TagsProps) => React.JSX.Element;
@@ -0,0 +1,30 @@
1
+ import react, { useCallback } from "react";
2
+ import { Tag } from "@webiny/admin-ui";
3
+ const Tags = ({ tags, activeTags, onActivatedTagsChange })=>{
4
+ const toggleTag = useCallback((tag)=>{
5
+ const finalTags = Array.isArray(activeTags) ? [
6
+ ...activeTags
7
+ ] : [];
8
+ if (finalTags.find((item)=>tag === item)) finalTags.splice(finalTags.indexOf(tag), 1);
9
+ else finalTags.push(tag);
10
+ onActivatedTagsChange(finalTags);
11
+ }, [
12
+ activeTags
13
+ ]);
14
+ const getIsActive = useCallback((tagItem)=>activeTags.includes(tagItem.tag), [
15
+ activeTags
16
+ ]);
17
+ return /*#__PURE__*/ react.createElement("div", {
18
+ className: "flex flex-col gap-sm"
19
+ }, tags.map((tagItem, index)=>/*#__PURE__*/ react.createElement("div", {
20
+ key: `tag-${index}`
21
+ }, /*#__PURE__*/ react.createElement(Tag, {
22
+ variant: getIsActive(tagItem) ? "accent" : "neutral-muted",
23
+ content: tagItem.tag,
24
+ onClick: ()=>toggleTag(tagItem.tag),
25
+ onDismiss: getIsActive(tagItem) ? ()=>toggleTag(tagItem.tag) : void 0
26
+ }))));
27
+ };
28
+ export { Tags };
29
+
30
+ //# sourceMappingURL=Tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/FileList/components/TagsList/Tags.js","sources":["../../../../../src/presentation/FileList/components/TagsList/Tags.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { Tag as AdminTag } from \"@webiny/admin-ui\";\nimport type { TagItem } from \"@webiny/app-aco/types.js\";\n\nexport interface TagsProps {\n tags: TagItem[];\n activeTags: string[];\n onActivatedTagsChange: (tags: string[]) => void;\n}\n\nexport const Tags = ({ tags, activeTags, onActivatedTagsChange }: TagsProps) => {\n const toggleTag = useCallback(\n (tag: TagItem[\"tag\"]) => {\n const finalTags = Array.isArray(activeTags) ? [...activeTags] : [];\n\n if (finalTags.find(item => tag === item)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n onActivatedTagsChange(finalTags);\n },\n [activeTags]\n );\n\n const getIsActive = useCallback(\n (tagItem: TagItem) => {\n return activeTags.includes(tagItem.tag);\n },\n [activeTags]\n );\n\n return (\n <div className={\"flex flex-col gap-sm\"}>\n {tags.map((tagItem, index) => (\n <div key={`tag-${index}`}>\n <AdminTag\n variant={getIsActive(tagItem) ? \"accent\" : \"neutral-muted\"}\n content={tagItem.tag}\n onClick={() => toggleTag(tagItem.tag)}\n onDismiss={getIsActive(tagItem) ? () => toggleTag(tagItem.tag) : undefined}\n />\n </div>\n ))}\n </div>\n );\n};\n"],"names":["Tags","tags","activeTags","onActivatedTagsChange","toggleTag","useCallback","tag","finalTags","Array","item","getIsActive","tagItem","index","AdminTag","undefined"],"mappings":";;AAUO,MAAMA,OAAO,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAEC,qBAAqB,EAAa;IACvE,MAAMC,YAAYC,YACd,CAACC;QACG,MAAMC,YAAYC,MAAM,OAAO,CAACN,cAAc;eAAIA;SAAW,GAAG,EAAE;QAElE,IAAIK,UAAU,IAAI,CAACE,CAAAA,OAAQH,QAAQG,OAC/BF,UAAU,MAAM,CAACA,UAAU,OAAO,CAACD,MAAM;aAEzCC,UAAU,IAAI,CAACD;QAGnBH,sBAAsBI;IAC1B,GACA;QAACL;KAAW;IAGhB,MAAMQ,cAAcL,YAChB,CAACM,UACUT,WAAW,QAAQ,CAACS,QAAQ,GAAG,GAE1C;QAACT;KAAW;IAGhB,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;OACXD,KAAK,GAAG,CAAC,CAACU,SAASC,QAAAA,WAAAA,GAChB,oBAAC;YAAI,KAAK,CAAC,IAAI,EAAEA,OAAO;yBACpB,oBAACC,KAAQA;YACL,SAASH,YAAYC,WAAW,WAAW;YAC3C,SAASA,QAAQ,GAAG;YACpB,SAAS,IAAMP,UAAUO,QAAQ,GAAG;YACpC,WAAWD,YAAYC,WAAW,IAAMP,UAAUO,QAAQ,GAAG,IAAIG;;AAMzF"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import type { TagItem } from "@webiny/app-aco/types.js";
3
+ interface TagListProps {
4
+ loading: boolean;
5
+ onActivatedTagsChange: (tags: string[]) => void;
6
+ tags: TagItem[];
7
+ activeTags: string[];
8
+ emptyDisclaimer?: string;
9
+ }
10
+ export declare const TagsList: ({ loading, tags, emptyDisclaimer, onActivatedTagsChange, activeTags }: TagListProps) => React.JSX.Element;
11
+ export {};
@@ -0,0 +1,24 @@
1
+ import react from "react";
2
+ import { Loader } from "@webiny/app-aco";
3
+ import { Empty } from "./Empty.js";
4
+ import { FilterSelect } from "./FilterSelect.js";
5
+ import { FilterStatus } from "./FilterStatus.js";
6
+ import { Tags } from "./Tags.js";
7
+ const TagsList = ({ loading, tags, emptyDisclaimer, onActivatedTagsChange, activeTags })=>{
8
+ if (loading) return /*#__PURE__*/ react.createElement(Loader, null);
9
+ return /*#__PURE__*/ react.createElement("div", {
10
+ className: "my-lg px-md"
11
+ }, 0 === tags.length ? /*#__PURE__*/ react.createElement(Empty, {
12
+ disclaimer: emptyDisclaimer
13
+ }) : /*#__PURE__*/ react.createElement(react.Fragment, null, tags.length > 1 && /*#__PURE__*/ react.createElement(FilterSelect, null), /*#__PURE__*/ react.createElement(FilterStatus, {
14
+ activeTags: activeTags,
15
+ onActivatedTagsChange: onActivatedTagsChange
16
+ }), /*#__PURE__*/ react.createElement(Tags, {
17
+ tags: tags,
18
+ activeTags: activeTags,
19
+ onActivatedTagsChange: onActivatedTagsChange
20
+ })));
21
+ };
22
+ export { TagsList };
23
+
24
+ //# sourceMappingURL=TagsList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/FileList/components/TagsList/TagsList.js","sources":["../../../../../src/presentation/FileList/components/TagsList/TagsList.tsx"],"sourcesContent":["import React from \"react\";\nimport { Loader } from \"@webiny/app-aco\";\nimport { Empty } from \"./Empty.js\";\nimport { FilterSelect } from \"./FilterSelect.js\";\nimport { FilterStatus } from \"./FilterStatus.js\";\nimport { Tags } from \"./Tags.js\";\n\nimport type { TagItem } from \"@webiny/app-aco/types.js\";\n\ninterface TagListProps {\n loading: boolean;\n onActivatedTagsChange: (tags: string[]) => void;\n tags: TagItem[];\n activeTags: string[];\n emptyDisclaimer?: string;\n}\n\nexport const TagsList = ({\n loading,\n tags,\n emptyDisclaimer,\n onActivatedTagsChange,\n activeTags\n}: TagListProps) => {\n if (loading) {\n return <Loader />;\n }\n\n return (\n <div className={\"my-lg px-md\"}>\n {tags.length === 0 ? (\n <Empty disclaimer={emptyDisclaimer} />\n ) : (\n <>\n {tags.length > 1 && <FilterSelect />}\n <FilterStatus\n activeTags={activeTags}\n onActivatedTagsChange={onActivatedTagsChange}\n />\n <Tags\n tags={tags}\n activeTags={activeTags}\n onActivatedTagsChange={onActivatedTagsChange}\n />\n </>\n )}\n </div>\n );\n};\n"],"names":["TagsList","loading","tags","emptyDisclaimer","onActivatedTagsChange","activeTags","Loader","Empty","FilterSelect","FilterStatus","Tags"],"mappings":";;;;;;AAiBO,MAAMA,WAAW,CAAC,EACrBC,OAAO,EACPC,IAAI,EACJC,eAAe,EACfC,qBAAqB,EACrBC,UAAU,EACC;IACX,IAAIJ,SACA,OAAO,WAAP,GAAO,oBAACK,QAAMA;IAGlB,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;OACXJ,AAAgB,MAAhBA,KAAK,MAAM,GAAS,WAAJ,GACb,oBAACK,OAAKA;QAAC,YAAYJ;uBAEnB,0CACKD,KAAK,MAAM,GAAG,KAAK,WAAL,GAAK,oBAACM,cAAYA,OAAAA,WAAAA,GACjC,oBAACC,cAAYA;QACT,YAAYJ;QACZ,uBAAuBD;sBAE3B,oBAACM,MAAIA;QACD,MAAMR;QACN,YAAYG;QACZ,uBAAuBD;;AAM/C"}
@@ -0,0 +1 @@
1
+ export * from "./TagsList.js";
@@ -0,0 +1 @@
1
+ export * from "./TagsList.js";
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const Thumbnail: () => React.JSX.Element;
@@ -0,0 +1,12 @@
1
+ import react from "react";
2
+ import { useFile } from "../../../hooks/useFile.js";
3
+ import { useFileManagerConfig } from "../../../../index.js";
4
+ const Thumbnail = ()=>{
5
+ const { file } = useFile();
6
+ const { browser, getThumbnailRenderer } = useFileManagerConfig();
7
+ const renderer = getThumbnailRenderer(browser.grid.itemThumbnails, file);
8
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, renderer?.element || null);
9
+ };
10
+ export { Thumbnail };
11
+
12
+ //# sourceMappingURL=Thumbnail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/FileList/components/Thumbnail/Thumbnail.js","sources":["../../../../../src/presentation/FileList/components/Thumbnail/Thumbnail.tsx"],"sourcesContent":["import React from \"react\";\nimport { useFile } from \"~/presentation/hooks/useFile.js\";\nimport { useFileManagerConfig } from \"~/index.js\";\n\nexport const Thumbnail = () => {\n const { file } = useFile();\n const { browser, getThumbnailRenderer } = useFileManagerConfig();\n\n const renderer = getThumbnailRenderer(browser.grid.itemThumbnails, file);\n\n return <>{renderer?.element || null}</>;\n};\n"],"names":["Thumbnail","file","useFile","browser","getThumbnailRenderer","useFileManagerConfig","renderer"],"mappings":";;;AAIO,MAAMA,YAAY;IACrB,MAAM,EAAEC,IAAI,EAAE,GAAGC;IACjB,MAAM,EAAEC,OAAO,EAAEC,oBAAoB,EAAE,GAAGC;IAE1C,MAAMC,WAAWF,qBAAqBD,QAAQ,IAAI,CAAC,cAAc,EAAEF;IAEnE,OAAO,WAAP,GAAO,0CAAGK,UAAU,WAAW;AACnC"}
@@ -0,0 +1 @@
1
+ export * from "./Thumbnail.js";
@@ -0,0 +1 @@
1
+ export * from "./Thumbnail.js";
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ /**
3
+ * Upload progress indicator that reads `vm.upload` from the FileListPresenter.
4
+ * Reuses the original UploadStatus markup — a bottom-center bar with progress
5
+ * and a close button.
6
+ */
7
+ export declare const UploadProgress: (() => React.JSX.Element | null) & {
8
+ displayName: string;
9
+ };
@@ -0,0 +1,45 @@
1
+ import react, { useState } from "react";
2
+ import { observer } from "mobx-react-lite";
3
+ import { IconButton, ProgressBar, Text, cn } from "@webiny/admin-ui";
4
+ import { ReactComponent } from "@webiny/icons/close.svg";
5
+ import { i18n } from "@webiny/app/i18n/index.js";
6
+ import { useFileManagerPresenter } from "../../FileManagerPresenterProvider.js";
7
+ const t = i18n.ns("app-file-manager/presentation/upload-progress");
8
+ const UploadProgress_UploadProgress = observer(function() {
9
+ const { vm } = useFileManagerPresenter();
10
+ const { upload } = vm;
11
+ const [isVisible, setIsVisible] = useState(true);
12
+ if (0 === upload.jobs.length || !isVisible) return null;
13
+ const numberOfFiles = upload.jobs.length;
14
+ return /*#__PURE__*/ react.createElement("div", {
15
+ className: cn([
16
+ "p-md rounded-lg",
17
+ "bg-neutral-dark shadow-lg",
18
+ "absolute bottom-xxl left-2/4 -translate-x-1/2 z-10",
19
+ "flex items-center gap-sm-extra",
20
+ "animate-in slide-in-from-top-4 slide-in-from-left-1/2 duration-500"
21
+ ]),
22
+ "data-testid": "fm-upload-progress"
23
+ }, /*#__PURE__*/ react.createElement(Text, {
24
+ as: "div",
25
+ size: "sm",
26
+ className: "text-neutral-disabled shrink-0"
27
+ }, t`Uploading {numberOfFiles} {label}`({
28
+ numberOfFiles: `${numberOfFiles}`,
29
+ label: 1 === numberOfFiles ? t`file` : t`files`
30
+ })), /*#__PURE__*/ react.createElement("div", {
31
+ className: "w-64"
32
+ }, /*#__PURE__*/ react.createElement(ProgressBar, {
33
+ value: upload.overallProgress.percentage,
34
+ valuePosition: "end",
35
+ className: "text-neutral-light"
36
+ })), /*#__PURE__*/ react.createElement(IconButton, {
37
+ onClick: ()=>setIsVisible(false),
38
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
39
+ variant: "ghost-negative",
40
+ size: "sm"
41
+ }));
42
+ });
43
+ export { UploadProgress_UploadProgress as UploadProgress };
44
+
45
+ //# sourceMappingURL=UploadProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/FileList/components/Upload/UploadProgress.js","sources":["../../../../../src/presentation/FileList/components/Upload/UploadProgress.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { cn, IconButton, ProgressBar, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as CloseIcon } from \"@webiny/icons/close.svg\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { useFileManagerPresenter } from \"../../FileManagerPresenterProvider.js\";\n\nconst t = i18n.ns(\"app-file-manager/presentation/upload-progress\");\n\n/**\n * Upload progress indicator that reads `vm.upload` from the FileListPresenter.\n * Reuses the original UploadStatus markup — a bottom-center bar with progress\n * and a close button.\n */\nexport const UploadProgress = observer(function UploadProgress() {\n const { vm } = useFileManagerPresenter();\n const { upload } = vm;\n const [isVisible, setIsVisible] = useState(true);\n\n // Don't render when there are no jobs or the user dismissed it.\n if (upload.jobs.length === 0 || !isVisible) {\n return null;\n }\n\n const numberOfFiles = upload.jobs.length;\n\n return (\n <div\n className={cn([\n \"p-md rounded-lg\",\n \"bg-neutral-dark shadow-lg\",\n \"absolute bottom-xxl left-2/4 -translate-x-1/2 z-10\",\n \"flex items-center gap-sm-extra\",\n \"animate-in slide-in-from-top-4 slide-in-from-left-1/2 duration-500\"\n ])}\n data-testid={\"fm-upload-progress\"}\n >\n <Text as={\"div\"} size={\"sm\"} className={\"text-neutral-disabled shrink-0\"}>\n {t`Uploading {numberOfFiles} {label}`({\n numberOfFiles: `${numberOfFiles}`,\n label: numberOfFiles === 1 ? t`file` : t`files`\n })}\n </Text>\n <div className={\"w-64\"}>\n <ProgressBar\n value={upload.overallProgress.percentage}\n valuePosition={\"end\"}\n className={\"text-neutral-light\"}\n />\n </div>\n <IconButton\n onClick={() => setIsVisible(false)}\n icon={<CloseIcon />}\n variant={\"ghost-negative\"}\n size={\"sm\"}\n />\n </div>\n );\n});\n"],"names":["t","i18n","UploadProgress","observer","vm","useFileManagerPresenter","upload","isVisible","setIsVisible","useState","numberOfFiles","cn","Text","ProgressBar","IconButton","CloseIcon"],"mappings":";;;;;;AAOA,MAAMA,IAAIC,KAAK,EAAE,CAAC;AAOX,MAAMC,gCAAiBC,SAAS;IACnC,MAAM,EAAEC,EAAE,EAAE,GAAGC;IACf,MAAM,EAAEC,MAAM,EAAE,GAAGF;IACnB,MAAM,CAACG,WAAWC,aAAa,GAAGC,SAAS;IAG3C,IAAIH,AAAuB,MAAvBA,OAAO,IAAI,CAAC,MAAM,IAAU,CAACC,WAC7B,OAAO;IAGX,MAAMG,gBAAgBJ,OAAO,IAAI,CAAC,MAAM;IAExC,OAAO,WAAP,GACI,oBAAC;QACG,WAAWK,GAAG;YACV;YACA;YACA;YACA;YACA;SACH;QACD,eAAa;qBAEb,oBAACC,MAAIA;QAAC,IAAI;QAAO,MAAM;QAAM,WAAW;OACnCZ,CAAC,CAAC,iCAAiC,CAAC,CAAC;QAClC,eAAe,GAAGU,eAAe;QACjC,OAAOA,AAAkB,MAAlBA,gBAAsBV,CAAC,CAAC,IAAI,CAAC,GAAGA,CAAC,CAAC,KAAK,CAAC;IACnD,mBAEJ,oBAAC;QAAI,WAAW;qBACZ,oBAACa,aAAWA;QACR,OAAOP,OAAO,eAAe,CAAC,UAAU;QACxC,eAAe;QACf,WAAW;uBAGnB,oBAACQ,YAAUA;QACP,SAAS,IAAMN,aAAa;QAC5B,oBAAM,oBAACO,gBAASA;QAChB,SAAS;QACT,MAAM;;AAItB"}
@@ -0,0 +1 @@
1
+ export { UploadProgress } from "./UploadProgress.js";
@@ -0,0 +1 @@
1
+ export { UploadProgress } from "./UploadProgress.js";
@@ -0,0 +1,3 @@
1
+ export declare const FileManagerPresenterFeature: import("@webiny/feature/admin").FeatureDefinition<{
2
+ presenter: import("./abstractions.js").IFileManagerPresenter;
3
+ }, []>;
@@ -0,0 +1,17 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { FileManagerPresenter } from "./abstractions.js";
3
+ import { FileManagerPresenter as external_FileManagerPresenter_js_FileManagerPresenter } from "./FileManagerPresenter.js";
4
+ const FileManagerPresenterFeature = createFeature({
5
+ name: "FileManager/FileManagerPresenter",
6
+ register (container) {
7
+ container.register(external_FileManagerPresenter_js_FileManagerPresenter).inSingletonScope();
8
+ },
9
+ resolve (container) {
10
+ return {
11
+ presenter: container.resolve(FileManagerPresenter)
12
+ };
13
+ }
14
+ });
15
+ export { FileManagerPresenterFeature };
16
+
17
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/FileList/feature.js","sources":["../../../src/presentation/FileList/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { FileManagerPresenter as Abstraction } from \"./abstractions.js\";\nimport { FileManagerPresenter } from \"./FileManagerPresenter.js\";\n\nexport const FileManagerPresenterFeature = createFeature({\n name: \"FileManager/FileManagerPresenter\",\n register(container) {\n container.register(FileManagerPresenter).inSingletonScope();\n },\n resolve(container) {\n return {\n presenter: container.resolve(Abstraction)\n };\n }\n});\n"],"names":["FileManagerPresenterFeature","createFeature","container","FileManagerPresenter","Abstraction"],"mappings":";;;AAIO,MAAMA,8BAA8BC,cAAc;IACrD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,uDAAsB,gBAAgB;IAC7D;IACA,SAAQD,SAAS;QACb,OAAO;YACH,WAAWA,UAAU,OAAO,CAACE;QACjC;IACJ;AACJ"}
@@ -0,0 +1,5 @@
1
+ export { FileManagerPresenterFeature } from "./feature.js";
2
+ export { FileManagerPresenter } from "./abstractions.js";
3
+ export type { IFileManagerPresenter, IFileManagerViewModel, IFileManagerActions, IFolderActions, IFileManagerInitConfig } from "./abstractions.js";
4
+ export { FileManagerPresenterProvider } from "./FileManagerPresenterProvider.js";
5
+ export { useFileManagerPresenter } from "./FileManagerPresenterProvider.js";
@@ -0,0 +1,3 @@
1
+ export { FileManagerPresenterFeature } from "./feature.js";
2
+ export { FileManagerPresenter } from "./abstractions.js";
3
+ export { FileManagerPresenterProvider, useFileManagerPresenter } from "./FileManagerPresenterProvider.js";
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const FileManagerRendererDecorator: (props: unknown) => React.JSX.Element;
@@ -0,0 +1,33 @@
1
+ import react from "react";
2
+ import { FileManager } from "@webiny/app-admin";
3
+ import { FileManagerView } from "./FileManagerView.js";
4
+ const formatFileItem = (file)=>({
5
+ id: file.id,
6
+ src: file.src,
7
+ name: file.name,
8
+ type: file.type,
9
+ size: file.size,
10
+ width: file.metadata?.image?.width,
11
+ height: file.metadata?.image?.height,
12
+ extensions: file.extensions,
13
+ metadata: file.metadata
14
+ });
15
+ const FileManagerRendererDecorator = FileManager.Renderer.createDecorator(()=>function(props) {
16
+ const { onChange, onClose, multiple, accept, scope, overlay = true } = props;
17
+ const handleChange = (files)=>{
18
+ if (!onChange || !files.length) return;
19
+ multiple ? onChange(files.map(formatFileItem)) : onChange(formatFileItem(files[0]));
20
+ if (onClose) onClose();
21
+ };
22
+ return /*#__PURE__*/ react.createElement(FileManagerView, {
23
+ overlay: overlay,
24
+ onChange: handleChange,
25
+ onClose: onClose,
26
+ multiple: multiple,
27
+ accept: accept,
28
+ scope: scope
29
+ });
30
+ });
31
+ export { FileManagerRendererDecorator };
32
+
33
+ //# sourceMappingURL=FileManagerRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/FileManager/FileManagerRenderer.js","sources":["../../../src/presentation/FileManager/FileManagerRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport type { FileManagerFileItem, FileManagerOnChange } from \"@webiny/app-admin\";\nimport { FileManager } from \"@webiny/app-admin\";\nimport type { FmFile } from \"~/features/shared/types.js\";\nimport { FileManagerView } from \"./FileManagerView.js\";\n\nconst formatFileItem = (file: FmFile): FileManagerFileItem => {\n return {\n id: file.id,\n src: file.src,\n name: file.name,\n type: file.type,\n size: file.size,\n width: file.metadata?.image?.width,\n height: file.metadata?.image?.height,\n extensions: file.extensions,\n metadata: file.metadata\n };\n};\n\nexport const FileManagerRendererDecorator = FileManager.Renderer.createDecorator(() => {\n return function FileManagerRendererImpl(props) {\n const { onChange, onClose, multiple, accept, scope, overlay = true } = props;\n\n const handleChange = (files: FmFile[]) => {\n if (!onChange || !files.length) {\n return;\n }\n\n if (multiple) {\n (onChange as FileManagerOnChange<FileManagerFileItem[]>)(files.map(formatFileItem));\n } else {\n (onChange as FileManagerOnChange<FileManagerFileItem>)(formatFileItem(files[0]));\n }\n\n if (onClose) {\n onClose();\n }\n };\n\n return (\n <FileManagerView\n overlay={overlay}\n onChange={handleChange}\n onClose={onClose}\n multiple={multiple}\n accept={accept}\n scope={scope}\n />\n );\n };\n});\n"],"names":["formatFileItem","file","FileManagerRendererDecorator","FileManager","props","onChange","onClose","multiple","accept","scope","overlay","handleChange","files","FileManagerView"],"mappings":";;;AAMA,MAAMA,iBAAiB,CAACC,OACb;QACH,IAAIA,KAAK,EAAE;QACX,KAAKA,KAAK,GAAG;QACb,MAAMA,KAAK,IAAI;QACf,MAAMA,KAAK,IAAI;QACf,MAAMA,KAAK,IAAI;QACf,OAAOA,KAAK,QAAQ,EAAE,OAAO;QAC7B,QAAQA,KAAK,QAAQ,EAAE,OAAO;QAC9B,YAAYA,KAAK,UAAU;QAC3B,UAAUA,KAAK,QAAQ;IAC3B;AAGG,MAAMC,+BAA+BC,YAAY,QAAQ,CAAC,eAAe,CAAC,IACtE,SAAiCC,KAAK;QACzC,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAEC,UAAU,IAAI,EAAE,GAAGN;QAEvE,MAAMO,eAAe,CAACC;YAClB,IAAI,CAACP,YAAY,CAACO,MAAM,MAAM,EAC1B;YAGAL,WACCF,SAAwDO,MAAM,GAAG,CAACZ,mBAElEK,SAAsDL,eAAeY,KAAK,CAAC,EAAE;YAGlF,IAAIN,SACAA;QAER;QAEA,OAAO,WAAP,GACI,oBAACO,iBAAeA;YACZ,SAASH;YACT,UAAUC;YACV,SAASL;YACT,UAAUC;YACV,QAAQC;YACR,OAAOC;;IAGnB"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import type { FmFile } from "../../features/shared/types.js";
3
+ export interface FileManagerViewProps {
4
+ overlay?: boolean;
5
+ onChange?: (files: FmFile[]) => void;
6
+ onClose?: () => void;
7
+ multiple?: boolean;
8
+ accept?: string[];
9
+ scope?: string;
10
+ children?: React.ReactNode;
11
+ }
12
+ export declare const FileManagerView: (props: FileManagerViewProps) => React.JSX.Element;
@@ -0,0 +1,246 @@
1
+ import react, { useCallback, useEffect, useMemo } from "react";
2
+ import { DiContainerProvider, useContainer, useFeature } from "@webiny/app";
3
+ import { observer } from "mobx-react-lite";
4
+ import { BrowserFilePicker } from "@webiny/app-admin/presentation/browserFilePicker/index.js";
5
+ import debounce from "lodash/debounce.js";
6
+ import { Heading, OverlayLoader, ScrollArea, Separator, useToast } from "@webiny/admin-ui";
7
+ import { i18n } from "@webiny/app/i18n/index.js";
8
+ import { DialogsProvider, LeftPanel, OverlayLayout, RightPanel, SplitView, useHotkeys } from "@webiny/app-admin";
9
+ import { FoldersFeature } from "@webiny/app-aco/features/folders/feature.js";
10
+ import { FolderTreePresenterFeature } from "@webiny/app-aco/presentation/folderTree/feature.js";
11
+ import { FileManagerPresenterFeature } from "../FileList/feature.js";
12
+ import { FileManagerPresenterProvider, useFileManagerPresenter } from "../FileList/FileManagerPresenterProvider.js";
13
+ import { FileDetailsPresenterFeature } from "../FileDetails/feature.js";
14
+ import { SharedCacheFeature } from "../../features/shared/feature.js";
15
+ import { ListFilesFeature } from "../../features/listFiles/feature.js";
16
+ import { GetFileFeature } from "../../features/getFile/feature.js";
17
+ import { DeleteFileFeature } from "../../features/deleteFile/feature.js";
18
+ import { UpdateFileFeature } from "../../features/updateFile/feature.js";
19
+ import { FileUploaderFeature } from "../../features/fileUploader/feature.js";
20
+ import { ListTagsFeature } from "../../features/tags/feature.js";
21
+ import { GetSettingsFeature } from "../../features/settings/feature.js";
22
+ import { FileManagerViewWithConfig, useFileManagerConfig } from "../config/FileManagerViewConfig.js";
23
+ import { FolderTree } from "@webiny/app-aco/presentation/folderTree/FolderTree.js";
24
+ import { BottomInfoBar } from "../FileList/components/BottomInfoBar/index.js";
25
+ import { BulkActionBar } from "../FileList/components/BulkActions/index.js";
26
+ import { FileDropPlaceholder } from "../FileList/components/FileDropPlaceholder/index.js";
27
+ import { Empty } from "../FileList/components/Empty/index.js";
28
+ import { FileDetailsDrawer } from "../FileDetails/components/FileDetailsDrawer.js";
29
+ import { FileGrid } from "../FileList/components/Grid/index.js";
30
+ import { FileManagerHeader } from "../FileList/components/Header/FileManagerHeader.js";
31
+ import { FileTable } from "../FileList/components/Table/index.js";
32
+ import { TagsList } from "../FileList/components/TagsList/index.js";
33
+ import { UploadProgress } from "../FileList/components/Upload/index.js";
34
+ import { GetSettingsRepository } from "../../features/settings/abstractions.js";
35
+ import { OverlayProvider, useOverlay } from "./OverlayContext.js";
36
+ import { outputFileSelectionError } from "./outputFileSelectionError.js";
37
+ const t = i18n.ns("app-admin/file-manager/file-manager-view");
38
+ const FileManagerView_FileManagerViewLayout = observer(function() {
39
+ const { vm, actions } = useFileManagerPresenter();
40
+ const { browser } = useFileManagerConfig();
41
+ const overlay = useOverlay();
42
+ const toast = useToast();
43
+ useHotkeys({
44
+ zIndex: 20,
45
+ keys: {
46
+ esc: ()=>overlay && overlay.onClose()
47
+ }
48
+ });
49
+ const container = useContainer();
50
+ const settingsRepository = useMemo(()=>container.resolve(GetSettingsRepository), [
51
+ container
52
+ ]);
53
+ const settings = settingsRepository.settings;
54
+ const uploadFiles = async (files)=>{
55
+ await actions.upload(files);
56
+ toast.showSuccessToast({
57
+ title: "File upload complete."
58
+ });
59
+ };
60
+ const onError = useCallback((errors)=>{
61
+ const message = outputFileSelectionError(errors);
62
+ if (message) toast.showWarningToast({
63
+ title: message
64
+ });
65
+ else {
66
+ toast.showWarningToast({
67
+ title: "Couldn't process selected files."
68
+ });
69
+ console.error(errors);
70
+ }
71
+ }, []);
72
+ const loadMoreOnScroll = useCallback(debounce(async (scrollFrame)=>{
73
+ if (scrollFrame.top > 0.8) actions.loadMore();
74
+ }, 200), [
75
+ vm.list.pagination,
76
+ actions
77
+ ]);
78
+ if (!vm.fileModel) return /*#__PURE__*/ react.createElement(OverlayLoader, {
79
+ text: t`Preparing File Manager...`
80
+ });
81
+ const isLoading = vm.list.pagination.loading && 0 === vm.list.rows.length;
82
+ const isEmpty = !vm.list.pagination.loading && 0 === vm.list.rows.length;
83
+ const renderList = (browseFiles)=>{
84
+ if (isLoading) return /*#__PURE__*/ react.createElement(OverlayLoader, {
85
+ text: t`Loading files...`,
86
+ size: "lg"
87
+ });
88
+ if (isEmpty) return /*#__PURE__*/ react.createElement(Empty, {
89
+ isSearchResult: !vm.showFolders,
90
+ browseFiles: browseFiles
91
+ });
92
+ if ("table" === vm.viewMode) return /*#__PURE__*/ react.createElement(ScrollArea, {
93
+ onScroll: loadMoreOnScroll
94
+ }, /*#__PURE__*/ react.createElement(FileTable, null));
95
+ return /*#__PURE__*/ react.createElement(ScrollArea, {
96
+ onScroll: loadMoreOnScroll
97
+ }, /*#__PURE__*/ react.createElement(FileGrid, null));
98
+ };
99
+ const content = /*#__PURE__*/ react.createElement(BrowserFilePicker, {
100
+ multiple: true,
101
+ maxSize: settings ? settings.uploadMaxFileSize + "b" : "1TB",
102
+ multipleMaxSize: "1TB",
103
+ accept: overlay?.accept ?? [],
104
+ onSuccess: uploadFiles,
105
+ onError: onError
106
+ }, ({ getDropZoneProps, browseFiles })=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(FileDetailsDrawer, null), /*#__PURE__*/ react.createElement(SplitView, {
107
+ namespace: "fm/file/list"
108
+ }, /*#__PURE__*/ react.createElement(LeftPanel, {
109
+ span: 2
110
+ }, /*#__PURE__*/ react.createElement("div", {
111
+ className: "flex flex-col h-main-content"
112
+ }, /*#__PURE__*/ react.createElement("div", {
113
+ className: "py-sm px-md"
114
+ }, /*#__PURE__*/ react.createElement(Heading, {
115
+ level: 5
116
+ }, t`File Manager`)), /*#__PURE__*/ react.createElement(Separator, null), /*#__PURE__*/ react.createElement("div", {
117
+ className: "shrink-0 overflow-y-auto max-h-[66vh]"
118
+ }, /*#__PURE__*/ react.createElement(FolderTree, {
119
+ vm: vm.folders,
120
+ actions: actions.folders,
121
+ folderActions: browser.folder.actions,
122
+ dropConfirmation: browser.folder.dropConfirmation,
123
+ enableActions: true,
124
+ enableCreate: true
125
+ })), browser.filterByTags ? /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Separator, null), /*#__PURE__*/ react.createElement("div", {
126
+ className: "flex-1 overflow-y-auto min-h-0"
127
+ }, /*#__PURE__*/ react.createElement(TagsList, {
128
+ loading: false,
129
+ activeTags: vm.list.filters["tags"] ?? [],
130
+ tags: vm.tags.map((tag)=>({
131
+ tag: tag.tag,
132
+ count: tag.count
133
+ })),
134
+ onActivatedTagsChange: (tags)=>{
135
+ if (tags.length > 0) actions.filter.set("tags", tags);
136
+ else {
137
+ actions.filter.clear("tags");
138
+ actions.filter.clear("tags_rule");
139
+ }
140
+ }
141
+ }))) : null)), /*#__PURE__*/ react.createElement(RightPanel, {
142
+ span: 10
143
+ }, /*#__PURE__*/ react.createElement("div", {
144
+ className: "flex flex-col relative",
145
+ style: {
146
+ height: "calc(100vh - 45px"
147
+ }
148
+ }, /*#__PURE__*/ react.createElement(FileManagerHeader, {
149
+ browseFiles: browseFiles
150
+ }), /*#__PURE__*/ react.createElement("div", {
151
+ className: "flex-1",
152
+ ...getDropZoneProps({
153
+ onDragEnter: ()=>actions.setDragging(true),
154
+ onDrop: ()=>actions.setDragging(false),
155
+ onDragLeave: (e)=>{
156
+ if (!e.relatedTarget || !e.currentTarget.contains(e.relatedTarget)) actions.setDragging(false);
157
+ }
158
+ }),
159
+ "data-testid": "fm-list-wrapper"
160
+ }, !overlay && /*#__PURE__*/ react.createElement(BulkActionBar, null), renderList(browseFiles), vm.dragging && /*#__PURE__*/ react.createElement(FileDropPlaceholder, null), /*#__PURE__*/ react.createElement(UploadProgress, null)), /*#__PURE__*/ react.createElement(BottomInfoBar, {
161
+ accept: overlay?.accept ?? [],
162
+ listing: vm.list.pagination.loadingMore,
163
+ loading: vm.list.pagination.loading,
164
+ totalCount: vm.list.pagination.totalCount,
165
+ currentCount: vm.list.pagination.currentCount
166
+ }))))));
167
+ if (overlay) return /*#__PURE__*/ react.createElement(OverlayLayout, {
168
+ variant: "strong",
169
+ onExited: ()=>overlay.onClose()
170
+ }, content);
171
+ return content;
172
+ });
173
+ const FileManagerViewInner = observer(({ overlay = false, onChange, onClose, multiple, accept, scope, children })=>{
174
+ const { presenter } = useFeature(FileManagerPresenterFeature);
175
+ const overlayConfig = useMemo(()=>{
176
+ if (!overlay || !onChange || !onClose) return null;
177
+ const handleFileClick = (file)=>{
178
+ if (multiple) presenter.actions.selection.toggle(file.id);
179
+ else onChange([
180
+ file
181
+ ]);
182
+ };
183
+ const confirmSelection = ()=>{
184
+ const selectedIds = presenter.vm.list.selection.selectedIds;
185
+ const selectedFiles = presenter.vm.list.rows.filter((f)=>selectedIds.has(f.id));
186
+ if (selectedFiles.length > 0) onChange(selectedFiles);
187
+ };
188
+ return {
189
+ onFileClick: handleFileClick,
190
+ confirmSelection,
191
+ onClose,
192
+ accept: accept ?? [],
193
+ multiple: multiple ?? false
194
+ };
195
+ }, [
196
+ overlay,
197
+ onChange,
198
+ onClose,
199
+ multiple,
200
+ accept
201
+ ]);
202
+ useEffect(()=>{
203
+ presenter.init({
204
+ scope
205
+ });
206
+ return ()=>presenter.dispose();
207
+ }, [
208
+ presenter,
209
+ overlay,
210
+ scope
211
+ ]);
212
+ const inner = /*#__PURE__*/ react.createElement(DialogsProvider, null, /*#__PURE__*/ react.createElement(FileManagerViewWithConfig, null, /*#__PURE__*/ react.createElement(FileManagerPresenterProvider, {
213
+ presenter: presenter
214
+ }, /*#__PURE__*/ react.createElement(FileManagerView_FileManagerViewLayout, null), children)));
215
+ if (overlayConfig) return /*#__PURE__*/ react.createElement(OverlayProvider, {
216
+ config: overlayConfig
217
+ }, inner);
218
+ return inner;
219
+ });
220
+ const FileManagerView = (props)=>{
221
+ const container = useContainer();
222
+ const scopedContainer = useMemo(()=>{
223
+ const child = container.createChildContainer();
224
+ SharedCacheFeature.register(child);
225
+ FoldersFeature.register(child, {
226
+ type: "FmFile"
227
+ });
228
+ FolderTreePresenterFeature.register(child);
229
+ ListFilesFeature.register(child);
230
+ GetFileFeature.register(child);
231
+ DeleteFileFeature.register(child);
232
+ UpdateFileFeature.register(child);
233
+ FileUploaderFeature.register(child);
234
+ ListTagsFeature.register(child);
235
+ GetSettingsFeature.register(child);
236
+ FileDetailsPresenterFeature.register(child);
237
+ FileManagerPresenterFeature.register(child);
238
+ return child;
239
+ }, []);
240
+ return /*#__PURE__*/ react.createElement(DiContainerProvider, {
241
+ container: scopedContainer
242
+ }, /*#__PURE__*/ react.createElement(FileManagerViewInner, props));
243
+ };
244
+ export { FileManagerView };
245
+
246
+ //# sourceMappingURL=FileManagerView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/FileManager/FileManagerView.js","sources":["../../../src/presentation/FileManager/FileManagerView.tsx"],"sourcesContent":["import React, { useMemo, useEffect, useCallback } from \"react\";\nimport { DiContainerProvider, useContainer, useFeature } from \"@webiny/app\";\nimport { observer } from \"mobx-react-lite\";\nimport {\n BrowserFilePicker,\n type BrowserFilePickerRenderProps\n} from \"@webiny/app-admin/presentation/browserFilePicker/index.js\";\nimport debounce from \"lodash/debounce.js\";\nimport { Heading, OverlayLoader, ScrollArea, Separator, useToast } from \"@webiny/admin-ui\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport {\n LeftPanel,\n OverlayLayout,\n RightPanel,\n SplitView,\n DialogsProvider,\n useHotkeys\n} from \"@webiny/app-admin\";\nimport { FoldersFeature } from \"@webiny/app-aco/features/folders/feature.js\";\nimport { FolderTreePresenterFeature } from \"@webiny/app-aco/presentation/folderTree/feature.js\";\nimport { FileManagerPresenterFeature } from \"~/presentation/FileList/feature.js\";\nimport {\n FileManagerPresenterProvider,\n useFileManagerPresenter\n} from \"~/presentation/FileList/FileManagerPresenterProvider.js\";\nimport { FileDetailsPresenterFeature } from \"~/presentation/FileDetails/feature.js\";\nimport { SharedCacheFeature } from \"~/features/shared/feature.js\";\nimport { ListFilesFeature } from \"~/features/listFiles/feature.js\";\nimport { GetFileFeature } from \"~/features/getFile/feature.js\";\nimport { DeleteFileFeature } from \"~/features/deleteFile/feature.js\";\nimport { UpdateFileFeature } from \"~/features/updateFile/feature.js\";\nimport { FileUploaderFeature } from \"~/features/fileUploader/feature.js\";\nimport { ListTagsFeature } from \"~/features/tags/feature.js\";\nimport { GetSettingsFeature } from \"~/features/settings/feature.js\";\nimport {\n FileManagerViewWithConfig,\n useFileManagerConfig\n} from \"~/presentation/config/FileManagerViewConfig.js\";\nimport { FolderTree } from \"@webiny/app-aco/presentation/folderTree/FolderTree.js\";\nimport { BottomInfoBar } from \"~/presentation/FileList/components/BottomInfoBar/index.js\";\nimport { BulkActionBar } from \"~/presentation/FileList/components/BulkActions/index.js\";\nimport { FileDropPlaceholder } from \"~/presentation/FileList/components/FileDropPlaceholder/index.js\";\nimport { Empty } from \"~/presentation/FileList/components/Empty/index.js\";\nimport { FileDetailsDrawer } from \"~/presentation/FileDetails/components/FileDetailsDrawer.js\";\nimport { FileGrid } from \"~/presentation/FileList/components/Grid/index.js\";\nimport { FileManagerHeader } from \"~/presentation/FileList/components/Header/FileManagerHeader.js\";\nimport { FileTable } from \"~/presentation/FileList/components/Table/index.js\";\nimport { TagsList } from \"~/presentation/FileList/components/TagsList/index.js\";\nimport { UploadProgress } from \"~/presentation/FileList/components/Upload/index.js\";\nimport { GetSettingsRepository } from \"~/features/settings/abstractions.js\";\nimport { OverlayProvider, useOverlay } from \"./OverlayContext.js\";\n\nimport type { FmFile } from \"~/features/shared/types.js\";\nimport type {\n FileError,\n SelectedFile\n} from \"@webiny/app-admin/presentation/browserFilePicker/index.js\";\nimport { outputFileSelectionError } from \"~/presentation/FileManager/outputFileSelectionError.js\";\nimport type { ScrollPosition } from \"@webiny/admin-ui\";\n\nexport interface FileManagerViewProps {\n overlay?: boolean;\n onChange?: (files: FmFile[]) => void;\n onClose?: () => void;\n multiple?: boolean;\n accept?: string[];\n scope?: string;\n children?: React.ReactNode;\n}\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\n// ---------------------------------------------------------------------------\n// Layout — uses original UI components, wired to the presenter.\n// ---------------------------------------------------------------------------\n\nconst FileManagerViewLayout = observer(function FileManagerViewLayout() {\n const { vm, actions } = useFileManagerPresenter();\n const { browser } = useFileManagerConfig();\n const overlay = useOverlay();\n const toast = useToast();\n\n useHotkeys({\n zIndex: 20,\n keys: {\n esc: () => overlay && overlay.onClose()\n }\n });\n\n const container = useContainer();\n const settingsRepository = useMemo(() => container.resolve(GetSettingsRepository), [container]);\n const settings = settingsRepository.settings;\n\n const uploadFiles = async (files: SelectedFile[]) => {\n await actions.upload(files);\n toast.showSuccessToast({ title: \"File upload complete.\" });\n };\n\n const onError = useCallback((errors: FileError[]) => {\n const message = outputFileSelectionError(errors);\n if (message) {\n toast.showWarningToast({ title: message });\n } else {\n toast.showWarningToast({ title: \"Couldn't process selected files.\" });\n console.error(errors);\n }\n }, []);\n\n const loadMoreOnScroll = useCallback(\n debounce(async (scrollFrame: ScrollPosition) => {\n if (scrollFrame.top > 0.8) {\n void actions.loadMore();\n }\n }, 200),\n [vm.list.pagination, actions]\n );\n\n if (!vm.fileModel) {\n return <OverlayLoader text={t`Preparing File Manager...`} />;\n }\n\n const isLoading = vm.list.pagination.loading && vm.list.rows.length === 0;\n const isEmpty = !vm.list.pagination.loading && vm.list.rows.length === 0;\n\n const renderList = (browseFiles: BrowserFilePickerRenderProps[\"browseFiles\"]) => {\n if (isLoading) {\n return <OverlayLoader text={t`Loading files...`} size={\"lg\"} />;\n }\n\n if (isEmpty) {\n return <Empty isSearchResult={!vm.showFolders} browseFiles={browseFiles} />;\n }\n\n if (vm.viewMode === \"table\") {\n return (\n <ScrollArea onScroll={loadMoreOnScroll}>\n <FileTable />\n </ScrollArea>\n );\n }\n\n return (\n <ScrollArea onScroll={loadMoreOnScroll}>\n <FileGrid />\n </ScrollArea>\n );\n };\n\n const content = (\n <BrowserFilePicker\n multiple\n maxSize={settings ? settings.uploadMaxFileSize + \"b\" : \"1TB\"}\n multipleMaxSize={\"1TB\"}\n accept={overlay?.accept ?? []}\n onSuccess={uploadFiles}\n onError={onError}\n >\n {({ getDropZoneProps, browseFiles }) => (\n <>\n <FileDetailsDrawer />\n <SplitView namespace={\"fm/file/list\"}>\n <LeftPanel span={2}>\n <div className={\"flex flex-col h-main-content\"}>\n <div className={\"py-sm px-md\"}>\n <Heading level={5}>{t`File Manager`}</Heading>\n </div>\n <Separator />\n <div className={\"shrink-0 overflow-y-auto max-h-[66vh]\"}>\n <FolderTree\n vm={vm.folders}\n actions={actions.folders}\n folderActions={browser.folder.actions}\n dropConfirmation={browser.folder.dropConfirmation}\n enableActions={true}\n enableCreate={true}\n />\n </div>\n {browser.filterByTags ? (\n <>\n <Separator />\n <div className={\"flex-1 overflow-y-auto min-h-0\"}>\n <TagsList\n loading={false}\n activeTags={\n (vm.list.filters[\"tags\"] as string[]) ?? []\n }\n tags={vm.tags.map(tag => ({\n tag: tag.tag,\n count: tag.count\n }))}\n onActivatedTagsChange={tags => {\n if (tags.length > 0) {\n actions.filter.set(\"tags\", tags);\n } else {\n actions.filter.clear(\"tags\");\n actions.filter.clear(\"tags_rule\");\n }\n }}\n />\n </div>\n </>\n ) : null}\n </div>\n </LeftPanel>\n <RightPanel span={10}>\n <div\n className={\"flex flex-col relative\"}\n style={{ height: \"calc(100vh - 45px\" }}\n >\n <FileManagerHeader browseFiles={browseFiles} />\n <div\n className={\"flex-1\"}\n {...getDropZoneProps({\n onDragEnter: () => actions.setDragging(true),\n onDrop: () => actions.setDragging(false),\n onDragLeave: (e: React.DragEvent) => {\n if (\n !e.relatedTarget ||\n !e.currentTarget.contains(e.relatedTarget as Node)\n ) {\n actions.setDragging(false);\n }\n }\n })}\n data-testid={\"fm-list-wrapper\"}\n >\n {!overlay && <BulkActionBar />}\n {renderList(browseFiles)}\n {vm.dragging && <FileDropPlaceholder />}\n <UploadProgress />\n </div>\n <BottomInfoBar\n accept={overlay?.accept ?? []}\n listing={vm.list.pagination.loadingMore}\n loading={vm.list.pagination.loading}\n totalCount={vm.list.pagination.totalCount}\n currentCount={vm.list.pagination.currentCount}\n />\n </div>\n </RightPanel>\n </SplitView>\n </>\n )}\n </BrowserFilePicker>\n );\n\n if (overlay) {\n return (\n <OverlayLayout variant={\"strong\"} onExited={() => overlay.onClose()}>\n {content}\n </OverlayLayout>\n );\n }\n\n return content;\n});\n\n// ---------------------------------------------------------------------------\n// Inner component that resolves the presenter from the scoped container.\n// ---------------------------------------------------------------------------\n\nconst FileManagerViewInner = observer(\n ({\n overlay = false,\n onChange,\n onClose,\n multiple,\n accept,\n scope,\n children\n }: FileManagerViewProps) => {\n const { presenter } = useFeature(FileManagerPresenterFeature);\n\n const overlayConfig = useMemo(() => {\n if (!overlay || !onChange || !onClose) {\n return null;\n }\n\n const handleFileClick = (file: FmFile) => {\n if (multiple) {\n presenter.actions.selection.toggle(file.id);\n } else {\n onChange([file]);\n }\n };\n\n const confirmSelection = () => {\n const selectedIds = presenter.vm.list.selection.selectedIds;\n const selectedFiles = presenter.vm.list.rows.filter(f => selectedIds.has(f.id));\n if (selectedFiles.length > 0) {\n onChange(selectedFiles);\n }\n };\n\n return {\n onFileClick: handleFileClick,\n confirmSelection,\n onClose,\n accept: accept ?? [],\n multiple: multiple ?? false\n };\n }, [overlay, onChange, onClose, multiple, accept]);\n\n useEffect(() => {\n presenter.init({ scope });\n return () => presenter.dispose();\n }, [presenter, overlay, scope]);\n\n const inner = (\n <DialogsProvider>\n <FileManagerViewWithConfig>\n <FileManagerPresenterProvider presenter={presenter}>\n <FileManagerViewLayout />\n {children}\n </FileManagerPresenterProvider>\n </FileManagerViewWithConfig>\n </DialogsProvider>\n );\n\n if (overlayConfig) {\n return <OverlayProvider config={overlayConfig}>{inner}</OverlayProvider>;\n }\n\n return inner;\n }\n);\n\n// ---------------------------------------------------------------------------\n// FileManagerView — sets up DI container and renders the inner component.\n// ---------------------------------------------------------------------------\n\nexport const FileManagerView = (props: FileManagerViewProps) => {\n const container = useContainer();\n\n const scopedContainer = useMemo(() => {\n const child = container.createChildContainer();\n\n SharedCacheFeature.register(child);\n FoldersFeature.register(child, { type: \"FmFile\" });\n FolderTreePresenterFeature.register(child);\n ListFilesFeature.register(child);\n GetFileFeature.register(child);\n DeleteFileFeature.register(child);\n UpdateFileFeature.register(child);\n FileUploaderFeature.register(child);\n ListTagsFeature.register(child);\n GetSettingsFeature.register(child);\n FileDetailsPresenterFeature.register(child);\n FileManagerPresenterFeature.register(child);\n\n return child;\n }, []);\n\n return (\n <DiContainerProvider container={scopedContainer}>\n <FileManagerViewInner {...props} />\n </DiContainerProvider>\n );\n};\n"],"names":["t","i18n","FileManagerViewLayout","observer","vm","actions","useFileManagerPresenter","browser","useFileManagerConfig","overlay","useOverlay","toast","useToast","useHotkeys","container","useContainer","settingsRepository","useMemo","GetSettingsRepository","settings","uploadFiles","files","onError","useCallback","errors","message","outputFileSelectionError","console","loadMoreOnScroll","debounce","scrollFrame","OverlayLoader","isLoading","isEmpty","renderList","browseFiles","Empty","ScrollArea","FileTable","FileGrid","content","BrowserFilePicker","getDropZoneProps","FileDetailsDrawer","SplitView","LeftPanel","Heading","Separator","FolderTree","TagsList","tag","tags","RightPanel","FileManagerHeader","e","BulkActionBar","FileDropPlaceholder","UploadProgress","BottomInfoBar","OverlayLayout","FileManagerViewInner","onChange","onClose","multiple","accept","scope","children","presenter","useFeature","FileManagerPresenterFeature","overlayConfig","handleFileClick","file","confirmSelection","selectedIds","selectedFiles","f","useEffect","inner","DialogsProvider","FileManagerViewWithConfig","FileManagerPresenterProvider","OverlayProvider","FileManagerView","props","scopedContainer","child","SharedCacheFeature","FoldersFeature","FolderTreePresenterFeature","ListFilesFeature","GetFileFeature","DeleteFileFeature","UpdateFileFeature","FileUploaderFeature","ListTagsFeature","GetSettingsFeature","FileDetailsPresenterFeature","DiContainerProvider"],"mappings":"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"}