@strapi/upload 5.48.1 → 5.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/dist/admin/ai/components/AIAssetCard.js +13 -12
  2. package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
  3. package/dist/admin/ai/components/AIAssetCard.mjs +11 -11
  4. package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
  5. package/dist/admin/ai/components/AIUploadModal.js +3 -3
  6. package/dist/admin/ai/components/AIUploadModal.mjs +0 -1
  7. package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
  8. package/dist/admin/components/AssetCard/AssetCard.js +3 -4
  9. package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
  10. package/dist/admin/components/AssetCard/AssetCard.mjs +4 -5
  11. package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
  12. package/dist/admin/components/AssetCard/AssetCardBase.js +0 -1
  13. package/dist/admin/components/AssetCard/AssetCardBase.js.map +1 -1
  14. package/dist/admin/components/AssetCard/AssetCardBase.mjs +0 -1
  15. package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +1 -1
  16. package/dist/admin/components/AssetCard/ImageAssetCard.js +0 -1
  17. package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
  18. package/dist/admin/components/AssetCard/ImageAssetCard.mjs +0 -1
  19. package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
  20. package/dist/admin/components/AssetCard/UploadingAssetCard.js +6 -6
  21. package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
  22. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +4 -5
  23. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
  24. package/dist/admin/components/AssetCard/VideoAssetCard.js +3 -3
  25. package/dist/admin/components/AssetCard/VideoAssetCard.mjs +0 -1
  26. package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +1 -1
  27. package/dist/admin/components/AssetDialog/AssetDialog.js +3 -3
  28. package/dist/admin/components/AssetDialog/AssetDialog.mjs +0 -1
  29. package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +1 -1
  30. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +0 -1
  31. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
  32. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +0 -1
  33. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
  34. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js +3 -3
  35. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs +0 -1
  36. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -1
  37. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js +3 -2
  38. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +1 -1
  39. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +3 -3
  40. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +0 -1
  41. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -1
  42. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js +0 -1
  43. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -1
  44. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs +0 -1
  45. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -1
  46. package/dist/admin/components/AssetGridList/Draggable.js +3 -2
  47. package/dist/admin/components/AssetGridList/Draggable.js.map +1 -1
  48. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js +3 -3
  49. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs +0 -1
  50. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -1
  51. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js +5 -2
  52. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -1
  53. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs +0 -1
  54. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -1
  55. package/dist/admin/components/CopyLinkButton/CopyLinkButton.js +0 -1
  56. package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +1 -1
  57. package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs +0 -1
  58. package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -1
  59. package/dist/admin/components/EditAssetDialog/EditAssetContent.js +8 -5
  60. package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
  61. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +0 -1
  62. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
  63. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +10 -6
  64. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
  65. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +4 -4
  66. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
  67. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js +0 -1
  68. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -1
  69. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs +0 -1
  70. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -1
  71. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js +0 -1
  72. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -1
  73. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs +0 -1
  74. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -1
  75. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +9 -6
  76. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
  77. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +3 -4
  78. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
  79. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +3 -3
  80. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +0 -1
  81. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -1
  82. package/dist/admin/components/EditFolderDialog/EditFolderDialog.js +8 -5
  83. package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +1 -1
  84. package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs +0 -1
  85. package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -1
  86. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js +0 -1
  87. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -1
  88. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs +0 -1
  89. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -1
  90. package/dist/admin/components/FilterPopover/FilterPopover.js +3 -2
  91. package/dist/admin/components/FilterPopover/FilterPopover.js.map +1 -1
  92. package/dist/admin/components/FolderCard/FolderCard/FolderCard.js +3 -2
  93. package/dist/admin/components/FolderCard/FolderCard/FolderCard.js.map +1 -1
  94. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.js +5 -3
  95. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.js.map +1 -1
  96. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.mjs +2 -1
  97. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +1 -1
  98. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +3 -4
  99. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
  100. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +4 -5
  101. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
  102. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js +0 -1
  103. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -1
  104. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +0 -1
  105. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -1
  106. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js +5 -3
  107. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -1
  108. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs +2 -1
  109. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -1
  110. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +4 -4
  111. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
  112. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +2 -3
  113. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
  114. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +4 -3
  115. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
  116. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +1 -1
  117. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
  118. package/dist/admin/components/SelectTree/SelectTree.js +7 -3
  119. package/dist/admin/components/SelectTree/SelectTree.js.map +1 -1
  120. package/dist/admin/components/SortPicker/SortPicker.js +0 -1
  121. package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
  122. package/dist/admin/components/SortPicker/SortPicker.mjs +0 -1
  123. package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
  124. package/dist/admin/components/TableList/CellContent.js +5 -2
  125. package/dist/admin/components/TableList/CellContent.js.map +1 -1
  126. package/dist/admin/components/TableList/CellContent.mjs +0 -1
  127. package/dist/admin/components/TableList/CellContent.mjs.map +1 -1
  128. package/dist/admin/components/TableList/PreviewCell.js +3 -4
  129. package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
  130. package/dist/admin/components/TableList/PreviewCell.mjs +4 -5
  131. package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
  132. package/dist/admin/components/TableList/TableList.js +0 -1
  133. package/dist/admin/components/TableList/TableList.js.map +1 -1
  134. package/dist/admin/components/TableList/TableList.mjs +0 -1
  135. package/dist/admin/components/TableList/TableList.mjs.map +1 -1
  136. package/dist/admin/components/TableList/TableRows.js +0 -1
  137. package/dist/admin/components/TableList/TableRows.js.map +1 -1
  138. package/dist/admin/components/TableList/TableRows.mjs +0 -1
  139. package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
  140. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js +0 -1
  141. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -1
  142. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +0 -1
  143. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -1
  144. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +5 -5
  145. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
  146. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +3 -4
  147. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
  148. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +3 -3
  149. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +0 -1
  150. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -1
  151. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +3 -3
  152. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +0 -1
  153. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
  154. package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.js +3 -2
  155. package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.js.map +1 -1
  156. package/dist/admin/constants.js +4 -7
  157. package/dist/admin/constants.js.map +1 -1
  158. package/dist/admin/constants.mjs +4 -7
  159. package/dist/admin/constants.mjs.map +1 -1
  160. package/dist/admin/enums.js +14 -16
  161. package/dist/admin/enums.js.map +1 -1
  162. package/dist/admin/enums.mjs +13 -15
  163. package/dist/admin/enums.mjs.map +1 -1
  164. package/dist/admin/future/components/Drawer.js +4 -3
  165. package/dist/admin/future/components/Drawer.js.map +1 -1
  166. package/dist/admin/future/pages/Assets/AssetsPage.js +29 -4
  167. package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -1
  168. package/dist/admin/future/pages/Assets/AssetsPage.mjs +28 -4
  169. package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -1
  170. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +5 -4
  171. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -1
  172. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +2 -2
  173. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -1
  174. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js +7 -6
  175. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js.map +1 -1
  176. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs +4 -4
  177. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +1 -1
  178. package/dist/admin/future/pages/Assets/components/AssetsGrid.js +2 -2
  179. package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -1
  180. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +2 -2
  181. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -1
  182. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js +3 -2
  183. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -1
  184. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.js +389 -0
  185. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.js.map +1 -0
  186. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.mjs +387 -0
  187. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.mjs.map +1 -0
  188. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js +3 -2
  189. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js.map +1 -1
  190. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.js +4 -4
  191. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.js.map +1 -1
  192. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.mjs +4 -4
  193. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.mjs.map +1 -1
  194. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js +48 -2
  195. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js.map +1 -1
  196. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs +48 -2
  197. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -1
  198. package/dist/admin/future/services/folders.js +28 -1
  199. package/dist/admin/future/services/folders.js.map +1 -1
  200. package/dist/admin/future/services/folders.mjs +28 -2
  201. package/dist/admin/future/services/folders.mjs.map +1 -1
  202. package/dist/admin/future/utils/files.js +5 -1
  203. package/dist/admin/future/utils/files.js.map +1 -1
  204. package/dist/admin/future/utils/getAssetIcon.js +4 -4
  205. package/dist/admin/future/utils/getAssetIcon.js.map +1 -1
  206. package/dist/admin/future/utils/getAssetIcon.mjs +4 -4
  207. package/dist/admin/future/utils/getAssetIcon.mjs.map +1 -1
  208. package/dist/admin/hooks/useAIMetadataJob.js +3 -3
  209. package/dist/admin/hooks/useAIMetadataJob.mjs +0 -1
  210. package/dist/admin/hooks/useAIMetadataJob.mjs.map +1 -1
  211. package/dist/admin/hooks/useAssets.js +3 -2
  212. package/dist/admin/hooks/useAssets.js.map +1 -1
  213. package/dist/admin/hooks/useBulkEdit.js +0 -1
  214. package/dist/admin/hooks/useBulkEdit.js.map +1 -1
  215. package/dist/admin/hooks/useBulkEdit.mjs +0 -1
  216. package/dist/admin/hooks/useBulkEdit.mjs.map +1 -1
  217. package/dist/admin/hooks/useBulkMove.js +0 -1
  218. package/dist/admin/hooks/useBulkMove.js.map +1 -1
  219. package/dist/admin/hooks/useBulkMove.mjs +0 -1
  220. package/dist/admin/hooks/useBulkMove.mjs.map +1 -1
  221. package/dist/admin/hooks/useBulkRemove.js +0 -1
  222. package/dist/admin/hooks/useBulkRemove.js.map +1 -1
  223. package/dist/admin/hooks/useBulkRemove.mjs +0 -1
  224. package/dist/admin/hooks/useBulkRemove.mjs.map +1 -1
  225. package/dist/admin/hooks/useCropImg.js +7 -3
  226. package/dist/admin/hooks/useCropImg.js.map +1 -1
  227. package/dist/admin/hooks/useEditAsset.js +3 -3
  228. package/dist/admin/hooks/useEditAsset.mjs +0 -1
  229. package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
  230. package/dist/admin/hooks/useFolder.js +0 -1
  231. package/dist/admin/hooks/useFolder.js.map +1 -1
  232. package/dist/admin/hooks/useFolder.mjs +0 -1
  233. package/dist/admin/hooks/useFolder.mjs.map +1 -1
  234. package/dist/admin/hooks/useFolderStructure.js +0 -1
  235. package/dist/admin/hooks/useFolderStructure.js.map +1 -1
  236. package/dist/admin/hooks/useFolderStructure.mjs +0 -1
  237. package/dist/admin/hooks/useFolderStructure.mjs.map +1 -1
  238. package/dist/admin/hooks/useFolders.js +3 -2
  239. package/dist/admin/hooks/useFolders.js.map +1 -1
  240. package/dist/admin/hooks/useModalQueryParams.js +3 -2
  241. package/dist/admin/hooks/useModalQueryParams.js.map +1 -1
  242. package/dist/admin/hooks/useSelectionState.js +3 -2
  243. package/dist/admin/hooks/useSelectionState.js.map +1 -1
  244. package/dist/admin/hooks/useUpload.js +3 -2
  245. package/dist/admin/hooks/useUpload.js.map +1 -1
  246. package/dist/admin/index.js +0 -1
  247. package/dist/admin/index.js.map +1 -1
  248. package/dist/admin/index.mjs +0 -1
  249. package/dist/admin/index.mjs.map +1 -1
  250. package/dist/admin/pages/App/App.js +3 -3
  251. package/dist/admin/pages/App/App.mjs +0 -1
  252. package/dist/admin/pages/App/App.mjs.map +1 -1
  253. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +7 -4
  254. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
  255. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +0 -1
  256. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
  257. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +0 -1
  258. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
  259. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +0 -1
  260. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
  261. package/dist/admin/pages/App/ConfigureTheView/state/reducer.js +7 -2
  262. package/dist/admin/pages/App/ConfigureTheView/state/reducer.js.map +1 -1
  263. package/dist/admin/pages/App/MediaLibrary.js +3 -3
  264. package/dist/admin/pages/App/MediaLibrary.mjs +0 -1
  265. package/dist/admin/pages/App/MediaLibrary.mjs.map +1 -1
  266. package/dist/admin/pages/App/components/BulkActions.js +0 -1
  267. package/dist/admin/pages/App/components/BulkActions.js.map +1 -1
  268. package/dist/admin/pages/App/components/BulkActions.mjs +0 -1
  269. package/dist/admin/pages/App/components/BulkActions.mjs.map +1 -1
  270. package/dist/admin/pages/App/components/BulkMoveButton.js +3 -2
  271. package/dist/admin/pages/App/components/BulkMoveButton.js.map +1 -1
  272. package/dist/admin/pages/App/components/EmptyOrNoPermissions.js +0 -1
  273. package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +1 -1
  274. package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs +0 -1
  275. package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -1
  276. package/dist/admin/pages/App/components/Filters.js +3 -3
  277. package/dist/admin/pages/App/components/Filters.mjs +0 -1
  278. package/dist/admin/pages/App/components/Filters.mjs.map +1 -1
  279. package/dist/admin/pages/App/components/Header.js +0 -1
  280. package/dist/admin/pages/App/components/Header.js.map +1 -1
  281. package/dist/admin/pages/App/components/Header.mjs +0 -1
  282. package/dist/admin/pages/App/components/Header.mjs.map +1 -1
  283. package/dist/admin/pages/SettingsPage/SettingsPage.js +7 -4
  284. package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
  285. package/dist/admin/pages/SettingsPage/SettingsPage.mjs +0 -1
  286. package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
  287. package/dist/admin/pages/SettingsPage/reducer.js +5 -1
  288. package/dist/admin/pages/SettingsPage/reducer.js.map +1 -1
  289. package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewComponents.d.ts +11 -12
  290. package/dist/admin/src/components/EmptyAssets/EmptyAssets.d.ts +0 -1
  291. package/dist/admin/src/components/FolderCard/contexts/FolderCard.d.ts +2 -3
  292. package/dist/admin/src/components/MediaLibraryDialog/MediaLibraryDialog.d.ts +2 -1
  293. package/dist/admin/src/constants.d.ts +5 -4
  294. package/dist/admin/src/enums.d.ts +14 -12
  295. package/dist/admin/src/future/pages/Assets/components/FolderTree/FolderTree.d.ts +19 -0
  296. package/dist/admin/src/future/pages/Assets/hooks/useFolderNavigation.d.ts +2 -0
  297. package/dist/admin/src/future/services/folders.d.ts +2 -2
  298. package/dist/admin/src/future/store/uploadProgress.d.ts +1 -1
  299. package/dist/admin/src/hooks/useCropImg.d.ts +2 -2
  300. package/dist/admin/src/hooks/useEditFolder.d.ts +4 -4
  301. package/dist/admin/src/hooks/useModalQueryParams.d.ts +5 -5
  302. package/dist/admin/src/hooks/usePersistentState.d.ts +0 -1
  303. package/dist/admin/src/hooks/useSettings.d.ts +5 -5
  304. package/dist/admin/src/hooks/useTracking.d.ts +1 -1
  305. package/dist/admin/src/pages/App/ConfigureTheView/state/actions.d.ts +1 -1
  306. package/dist/admin/src/pages/App/ConfigureTheView/state/init.d.ts +1 -1
  307. package/dist/admin/src/utils/getBreadcrumbDataML.d.ts +1 -1
  308. package/dist/admin/src/utils/getFolderParents.d.ts +3 -3
  309. package/dist/admin/src/utils/icons.d.ts +2 -1
  310. package/dist/admin/src/utils/rawFileToAsset.d.ts +1 -1
  311. package/dist/admin/src/utils/urlsToAssets.d.ts +2 -10
  312. package/dist/admin/translations/en.json.js +10 -1
  313. package/dist/admin/translations/en.json.js.map +1 -1
  314. package/dist/admin/translations/en.json.mjs +10 -1
  315. package/dist/admin/translations/en.json.mjs.map +1 -1
  316. package/dist/admin/translations/ja.json.js +175 -0
  317. package/dist/admin/translations/ja.json.js.map +1 -1
  318. package/dist/admin/translations/ja.json.mjs +175 -0
  319. package/dist/admin/translations/ja.json.mjs.map +1 -1
  320. package/dist/admin/utils/formatBytes.js +5 -1
  321. package/dist/admin/utils/formatBytes.js.map +1 -1
  322. package/dist/admin/utils/icons.js +5 -5
  323. package/dist/admin/utils/icons.js.map +1 -1
  324. package/dist/admin/utils/icons.mjs +6 -6
  325. package/dist/admin/utils/icons.mjs.map +1 -1
  326. package/dist/admin/utils/typeFromMime.js +9 -9
  327. package/dist/admin/utils/typeFromMime.js.map +1 -1
  328. package/dist/admin/utils/typeFromMime.mjs +10 -10
  329. package/dist/admin/utils/typeFromMime.mjs.map +1 -1
  330. package/dist/admin/utils/urlYupSchema.js +3 -2
  331. package/dist/admin/utils/urlYupSchema.js.map +1 -1
  332. package/dist/admin/utils/urlsToAssets.js +1 -2
  333. package/dist/admin/utils/urlsToAssets.js.map +1 -1
  334. package/dist/admin/utils/urlsToAssets.mjs +1 -2
  335. package/dist/admin/utils/urlsToAssets.mjs.map +1 -1
  336. package/dist/server/controllers/admin-upload.js +11 -4
  337. package/dist/server/controllers/admin-upload.js.map +1 -1
  338. package/dist/server/controllers/content-api.js +7 -2
  339. package/dist/server/controllers/content-api.js.map +1 -1
  340. package/dist/server/controllers/utils/find-entity-and-check-permissions.js +7 -3
  341. package/dist/server/controllers/utils/find-entity-and-check-permissions.js.map +1 -1
  342. package/dist/server/middlewares/upload.js +7 -2
  343. package/dist/server/middlewares/upload.js.map +1 -1
  344. package/dist/server/register.js +9 -4
  345. package/dist/server/register.js.map +1 -1
  346. package/dist/server/routes/content-api.js +3 -2
  347. package/dist/server/routes/content-api.js.map +1 -1
  348. package/dist/server/routes/validation/upload.js +3 -2
  349. package/dist/server/routes/validation/upload.js.map +1 -1
  350. package/dist/server/services/file.js +13 -6
  351. package/dist/server/services/file.js.map +1 -1
  352. package/dist/server/services/image-manipulation.js +18 -12
  353. package/dist/server/services/image-manipulation.js.map +1 -1
  354. package/dist/server/services/provider.js +24 -0
  355. package/dist/server/services/provider.js.map +1 -1
  356. package/dist/server/services/provider.mjs +24 -0
  357. package/dist/server/services/provider.mjs.map +1 -1
  358. package/dist/server/services/upload.js +99 -32
  359. package/dist/server/services/upload.js.map +1 -1
  360. package/dist/server/services/upload.mjs +69 -10
  361. package/dist/server/services/upload.mjs.map +1 -1
  362. package/dist/server/src/controllers/admin-file.d.ts +4 -12
  363. package/dist/server/src/controllers/admin-file.d.ts.map +1 -1
  364. package/dist/server/src/controllers/admin-folder.d.ts +2 -2
  365. package/dist/server/src/controllers/admin-settings.d.ts +2 -2
  366. package/dist/server/src/controllers/admin-upload.d.ts +3 -3
  367. package/dist/server/src/controllers/content-api.d.ts +2 -2
  368. package/dist/server/src/controllers/content-api.d.ts.map +1 -1
  369. package/dist/server/src/controllers/index.d.ts +14 -23
  370. package/dist/server/src/controllers/index.d.ts.map +1 -1
  371. package/dist/server/src/controllers/utils/find-entity-and-check-permissions.d.ts.map +1 -1
  372. package/dist/server/src/controllers/utils/folders.d.ts.map +1 -1
  373. package/dist/server/src/controllers/validation/admin/configureView.d.ts +1 -1
  374. package/dist/server/src/controllers/validation/admin/folder-file.d.ts +1 -1
  375. package/dist/server/src/controllers/validation/admin/folder-file.d.ts.map +1 -1
  376. package/dist/server/src/controllers/validation/admin/folder.d.ts +2 -2
  377. package/dist/server/src/controllers/validation/admin/folder.d.ts.map +1 -1
  378. package/dist/server/src/controllers/validation/admin/settings.d.ts +1 -1
  379. package/dist/server/src/controllers/validation/admin/upload.d.ts +1 -1
  380. package/dist/server/src/controllers/validation/admin/upload.d.ts.map +1 -1
  381. package/dist/server/src/controllers/validation/admin/utils.d.ts.map +1 -1
  382. package/dist/server/src/controllers/validation/content-api/upload.d.ts.map +1 -1
  383. package/dist/server/src/controllers/view-configuration.d.ts +1 -1
  384. package/dist/server/src/graphql.d.ts.map +1 -1
  385. package/dist/server/src/index.d.ts +37 -53
  386. package/dist/server/src/index.d.ts.map +1 -1
  387. package/dist/server/src/middlewares/upload.d.ts.map +1 -1
  388. package/dist/server/src/services/ai-metadata-jobs.d.ts +1 -1
  389. package/dist/server/src/services/ai-metadata-jobs.d.ts.map +1 -1
  390. package/dist/server/src/services/ai-metadata.d.ts.map +1 -1
  391. package/dist/server/src/services/extensions/utils.d.ts.map +1 -1
  392. package/dist/server/src/services/file.d.ts +2 -2
  393. package/dist/server/src/services/file.d.ts.map +1 -1
  394. package/dist/server/src/services/folder.d.ts +1 -1
  395. package/dist/server/src/services/folder.d.ts.map +1 -1
  396. package/dist/server/src/services/image-manipulation.d.ts.map +1 -1
  397. package/dist/server/src/services/index.d.ts +23 -30
  398. package/dist/server/src/services/index.d.ts.map +1 -1
  399. package/dist/server/src/services/metrics.d.ts.map +1 -1
  400. package/dist/server/src/services/provider.d.ts +2 -1
  401. package/dist/server/src/services/provider.d.ts.map +1 -1
  402. package/dist/server/src/services/upload.d.ts +1 -1
  403. package/dist/server/src/services/upload.d.ts.map +1 -1
  404. package/dist/server/src/services/weekly-metrics.d.ts.map +1 -1
  405. package/dist/server/src/types.d.ts +4 -3
  406. package/dist/server/src/types.d.ts.map +1 -1
  407. package/dist/server/src/utils/cron.d.ts.map +1 -1
  408. package/dist/server/src/utils/index.d.ts.map +1 -1
  409. package/dist/server/src/utils/mime-validation.d.ts.map +1 -1
  410. package/dist/server/utils/mime-validation.js +11 -3
  411. package/dist/server/utils/mime-validation.js.map +1 -1
  412. package/dist/server/utils/mime-validation.mjs +12 -4
  413. package/dist/server/utils/mime-validation.mjs.map +1 -1
  414. package/package.json +9 -9
  415. package/dist/admin/future/enums.js +0 -12
  416. package/dist/admin/future/enums.js.map +0 -1
  417. package/dist/admin/future/enums.mjs +0 -10
  418. package/dist/admin/future/enums.mjs.map +0 -1
  419. package/dist/admin/src/future/enums.d.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"MediaLibrary.mjs","sources":["../../../../admin/src/pages/App/MediaLibrary.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport {\n Page,\n SearchInput,\n Pagination,\n useTracking,\n useQueryParams,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport {\n Checkbox,\n Box,\n Divider,\n Flex,\n IconButton,\n Typography,\n VisuallyHidden,\n Grid,\n} from '@strapi/design-system';\nimport { Cog, GridFour as GridIcon, List, Pencil } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link as ReactRouterLink, useNavigate, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { AIUploadModal } from '../../ai/components/AIUploadModal';\nimport { AssetGridList } from '../../components/AssetGridList/AssetGridList';\nimport { EditAssetDialog } from '../../components/EditAssetDialog/EditAssetContent';\nimport { EditFolderDialog } from '../../components/EditFolderDialog/EditFolderDialog';\nimport { FolderCard } from '../../components/FolderCard/FolderCard/FolderCard';\nimport { FolderCardBody } from '../../components/FolderCard/FolderCardBody/FolderCardBody';\nimport { FolderCardBodyAction } from '../../components/FolderCard/FolderCardBodyAction/FolderCardBodyAction';\nimport { FolderCardCheckbox } from '../../components/FolderCard/FolderCardCheckbox/FolderCardCheckbox';\nimport { FolderGridList } from '../../components/FolderGridList/FolderGridList';\nimport { SortPicker } from '../../components/SortPicker/SortPicker';\nimport { TableList } from '../../components/TableList/TableList';\nimport { UploadAssetDialog } from '../../components/UploadAssetDialog/UploadAssetDialog';\nimport { localStorageKeys, viewOptions } from '../../constants';\nimport { useAIAvailability } from '../../hooks/useAiAvailability';\nimport { useAssets } from '../../hooks/useAssets';\nimport { useFolder } from '../../hooks/useFolder';\nimport { useFolders } from '../../hooks/useFolders';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { usePersistentState } from '../../hooks/usePersistentState';\nimport { useSelectionState } from '../../hooks/useSelectionState';\nimport { containsAssetFilter, getBreadcrumbDataML, getFolderURL, getTrad } from '../../utils';\n\nimport { BulkActions } from './components/BulkActions';\nimport { EmptyOrNoPermissions } from './components/EmptyOrNoPermissions';\nimport { Filters } from './components/Filters';\nimport { Header } from './components/Header';\n\nimport type { BulkActionsProps } from './components/BulkActions';\nimport type { HeaderProps } from './components/Header';\nimport type { Query } from '../../../../shared/contracts/files';\nimport type { FolderDefinition } from '../../../../shared/contracts/folders';\nimport type { AssetGridListProps } from '../../components/AssetGridList/AssetGridList';\nimport type { Asset } from '../../components/EditAssetDialog/EditAssetContent';\nimport type { FolderRow, FileRow, TableListProps } from '../../components/TableList/TableList';\n\nconst BoxWithHeight = styled(Box)`\n height: 3.2rem;\n display: flex;\n align-items: center;\n`;\n\nconst TypographyMaxWidth = styled(Typography)`\n max-width: 100%;\n`;\n\nconst ActionContainer = styled(Box)`\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n`;\n\nexport const MediaLibrary = () => {\n const navigate = useNavigate();\n const {\n canRead,\n canCreate,\n canUpdate,\n canCopyLink,\n canDownload,\n canConfigureView,\n isLoading: permissionsLoading,\n } = useMediaLibraryPermissions();\n const { isEnabled: isAiEnabled, status: aiAvailabilityStatus } = useAIAvailability();\n const currentFolderToEditRef = React.useRef<HTMLDivElement>();\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const { trackUsage } = useTracking();\n const [{ query }, setQuery] = useQueryParams<Query>();\n const isFiltering = Boolean(query._q || query.filters);\n const [view, setView] = usePersistentState(localStorageKeys.view, viewOptions.GRID);\n const isGridView = view === viewOptions.GRID;\n\n const {\n data: assetsData,\n isLoading: assetsLoading,\n error: assetsError,\n } = useAssets({\n skipWhen: !canRead,\n query,\n });\n\n const {\n data: foldersData,\n isLoading: foldersLoading,\n error: foldersError,\n } = useFolders({\n enabled: canRead && assetsData?.pagination?.page === 1 && !containsAssetFilter(query),\n query,\n });\n\n const {\n data: currentFolder,\n isLoading: isCurrentFolderLoading,\n error: currentFolderError,\n } = useFolder(query?.folder as number | null | undefined, {\n enabled: canRead && !!query?.folder,\n });\n\n // Folder was not found: redirect to the media library root\n if (currentFolderError?.name === 'NotFoundError') {\n navigate(pathname);\n }\n\n const folders =\n foldersData?.map((folder) => ({\n ...folder,\n type: 'folder',\n folderURL: getFolderURL(pathname, query, {\n folder: folder.id.toString(),\n folderPath: folder.path,\n }),\n isSelectable: canUpdate,\n })) ?? [];\n const folderCount = folders?.length || 0;\n const assets =\n assetsData?.results?.map((asset) => ({ ...asset, type: 'asset', isSelectable: canUpdate })) ||\n [];\n const assetCount = assets?.length ?? 0;\n const totalAssetCount = assetsData?.pagination?.total;\n\n const isLoading =\n isCurrentFolderLoading ||\n foldersLoading ||\n permissionsLoading ||\n assetsLoading ||\n aiAvailabilityStatus === 'loading';\n const [showUploadAssetDialog, setShowUploadAssetDialog] = React.useState(false);\n const [showEditFolderDialog, setShowEditFolderDialog] = React.useState(false);\n const [assetToEdit, setAssetToEdit] = React.useState<Asset | undefined>(undefined);\n const [folderToEdit, setFolderToEdit] = React.useState<FolderRow | undefined | null>(undefined);\n const [selected, { selectOne, selectAll, setSelections }] = useSelectionState<\n FolderRow | FileRow\n >(['type', 'id'], []);\n // reset selection when folder changes to hide bulk actions\n React.useEffect(() => {\n setSelections([]);\n }, [query.folder, setSelections]);\n\n const indeterminateBulkSelect =\n selected?.length > 0 && selected?.length !== assetCount + folderCount;\n const toggleUploadAssetDialog = () => setShowUploadAssetDialog((prev) => !prev);\n const toggleEditFolderDialog = ({ created = false } = {}) => {\n // folders are only displayed on the first page, therefore\n // we have to navigate the user to that page, in case a folder\n // was created successfully in order for them to see it\n if (created && query?.page !== '1') {\n setQuery({\n ...query,\n page: 1,\n });\n }\n\n setShowEditFolderDialog((prev) => !prev);\n };\n\n const handleBulkSelect = (\n checked: boolean | 'indeterminate',\n elements?: FolderRow[] | FileRow[]\n ) => {\n if (checked) {\n trackUsage('didSelectAllMediaLibraryElements');\n }\n\n selectAll(elements as (FolderRow | FileRow)[]);\n };\n\n const handleChangeSort = (value: Query['sort'] | string) => {\n trackUsage('didSortMediaLibraryElements', {\n location: 'upload',\n sort: value,\n });\n setQuery({ sort: value as Query['sort'] });\n };\n\n const handleEditFolder = (folder: FolderRow) => {\n setFolderToEdit(folder);\n setShowEditFolderDialog(true);\n };\n\n const handleEditFolderClose = (payload?: { created?: boolean | undefined }) => {\n setFolderToEdit(null);\n toggleEditFolderDialog(payload);\n\n if (currentFolderToEditRef.current) {\n currentFolderToEditRef.current.focus();\n }\n };\n\n const handleAssetDeleted = (numberOfAssets: number) => {\n if (\n numberOfAssets === assetCount &&\n assetsData?.pagination?.page === assetsData?.pagination?.pageCount &&\n assetsData?.pagination?.page &&\n assetsData.pagination.page > 1\n ) {\n setQuery({\n ...query,\n page: assetsData.pagination.page - 1,\n });\n }\n };\n\n const handleBulkActionSuccess = () => {\n selectAll();\n\n handleAssetDeleted(selected.length);\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (assetsError || foldersError || aiAvailabilityStatus === 'error') {\n return <Page.Error />;\n }\n\n return (\n <Layouts.Root>\n <Page.Main>\n <Header\n breadcrumbs={\n !isCurrentFolderLoading\n ? (getBreadcrumbDataML(currentFolder!, {\n pathname,\n query,\n }) as HeaderProps['breadcrumbs'])\n : null\n }\n canCreate={canCreate}\n onToggleEditFolderDialog={toggleEditFolderDialog}\n onToggleUploadAssetDialog={toggleUploadAssetDialog}\n folder={currentFolder as HeaderProps['folder']}\n />\n <Layouts.Action\n startActions={\n <>\n {canUpdate && isGridView && (assetCount > 0 || folderCount > 0) && (\n <BoxWithHeight\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n >\n <Checkbox\n aria-label={formatMessage({\n id: getTrad('bulk.select.label'),\n defaultMessage: 'Select all folders & assets',\n })}\n checked={\n indeterminateBulkSelect\n ? 'indeterminate'\n : (assetCount > 0 || folderCount > 0) &&\n selected.length === assetCount + folderCount\n }\n onCheckedChange={(e) =>\n handleBulkSelect(e, [...assets, ...folders] as FolderRow[] | FileRow[])\n }\n />\n </BoxWithHeight>\n )}\n {canRead && isGridView && (\n <SortPicker value={query?.sort} onChangeSort={handleChangeSort} />\n )}\n {canRead && <Filters />}\n </>\n }\n endActions={\n <>\n {canConfigureView ? (\n <ActionContainer paddingTop={1} paddingBottom={1}>\n <IconButton\n tag={ReactRouterLink}\n to={{\n pathname: `${pathname}/configuration`,\n search: stringify(query, { encode: false }),\n }}\n label={formatMessage({\n id: 'app.links.configure-view',\n defaultMessage: 'Configure the view',\n })}\n >\n <Cog />\n </IconButton>\n </ActionContainer>\n ) : null}\n <ActionContainer paddingTop={1} paddingBottom={1}>\n <IconButton\n label={\n isGridView\n ? formatMessage({\n id: getTrad('view-switch.list'),\n defaultMessage: 'List View',\n })\n : formatMessage({\n id: getTrad('view-switch.grid'),\n defaultMessage: 'Grid View',\n })\n }\n onClick={() => setView(isGridView ? viewOptions.LIST : viewOptions.GRID)}\n >\n {isGridView ? <List /> : <GridIcon />}\n </IconButton>\n </ActionContainer>\n <SearchInput\n label={formatMessage({\n id: getTrad('search.label'),\n defaultMessage: 'Search for an asset',\n })}\n trackedEvent=\"didSearchMediaLibraryElements\"\n trackedEventDetails={{ location: 'upload' }}\n />\n </>\n }\n />\n\n <Layouts.Content>\n {selected.length > 0 && (\n <BulkActions\n currentFolder={currentFolder as BulkActionsProps['currentFolder']}\n selected={selected as BulkActionsProps['selected']}\n onSuccess={handleBulkActionSuccess}\n />\n )}\n\n {folderCount === 0 && assetCount === 0 && (\n <EmptyOrNoPermissions\n canCreate={canCreate}\n canRead={canRead}\n isFiltering={isFiltering}\n onActionClick={toggleUploadAssetDialog}\n />\n )}\n\n {/* TODO: fix AssetListTable should handle no assets views (loading) */}\n {canRead && !isGridView && (assetCount > 0 || folderCount > 0) && (\n <TableList\n assetCount={assetCount}\n folderCount={folderCount}\n indeterminate={indeterminateBulkSelect}\n onChangeSort={handleChangeSort}\n onChangeFolder={(folderID, folderPath) =>\n navigate(getFolderURL(pathname, query, { folder: folderID.toString(), folderPath }))\n }\n onEditAsset={setAssetToEdit as TableListProps['onEditAsset']}\n onEditFolder={handleEditFolder}\n onSelectOne={selectOne}\n onSelectAll={handleBulkSelect as TableListProps['onSelectAll']}\n rows={[...folders, ...assets] as TableListProps['rows']}\n selected={selected as TableListProps['selected']}\n shouldDisableBulkSelect={!canUpdate}\n sortQuery={query?.sort ?? ''}\n />\n )}\n\n {canRead && isGridView && (\n <>\n {folderCount > 0 && (\n <FolderGridList\n title={\n // Folders title should only appear if:\n // user is filtering and there are assets to display, to divide both type of elements\n // user is not filtering\n (((isFiltering && assetCount > 0) || !isFiltering) &&\n formatMessage(\n {\n id: getTrad('list.folders.title'),\n defaultMessage: 'Folders ({count})',\n },\n { count: folderCount }\n )) ||\n ''\n }\n >\n {folders.map((folder) => {\n const selectedFolders = selected.filter(({ type }) => type === 'folder');\n const isSelected = !!selectedFolders.find(\n (currentFolder) => currentFolder.id === folder.id\n );\n\n const url = getFolderURL(pathname, query, {\n folder: folder?.id.toString(),\n folderPath: folder?.path,\n });\n\n return (\n <Grid.Item\n col={3}\n m={4}\n s={6}\n xs={12}\n key={`folder-${folder.id}`}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FolderCard\n ref={\n folderToEdit && folder.id === folderToEdit.id\n ? currentFolderToEditRef\n : undefined\n }\n ariaLabel={folder.name}\n id={`folder-${folder.id}`}\n to={url}\n startAction={\n folder.isSelectable ? (\n <FolderCardCheckbox\n data-testid={`folder-checkbox-${folder.id}`}\n checked={isSelected}\n onCheckedChange={() => selectOne(folder)}\n />\n ) : null\n }\n cardActions={\n <IconButton\n label={formatMessage({\n id: getTrad('list.folder.edit'),\n defaultMessage: 'Edit folder',\n })}\n onClick={() => handleEditFolder(folder)}\n >\n <Pencil />\n </IconButton>\n }\n >\n <FolderCardBody>\n <FolderCardBodyAction to={url}>\n <Flex tag=\"h2\" direction=\"column\" alignItems=\"start\" maxWidth=\"100%\">\n <TypographyMaxWidth\n fontWeight=\"semiBold\"\n textColor=\"neutral800\"\n ellipsis\n >\n {folder.name}\n <VisuallyHidden>:</VisuallyHidden>\n </TypographyMaxWidth>\n\n <TypographyMaxWidth\n tag=\"span\"\n textColor=\"neutral600\"\n variant=\"pi\"\n ellipsis\n >\n {formatMessage(\n {\n id: getTrad('list.folder.subtitle'),\n defaultMessage:\n '{folderCount, plural, one {# folder} other {# folders}}, {filesCount, plural, one {# asset} other {# assets}}',\n },\n {\n folderCount: (folder as FolderDefinition).children?.count,\n filesCount: (folder as FolderDefinition).files?.count,\n }\n )}\n </TypographyMaxWidth>\n </Flex>\n </FolderCardBodyAction>\n </FolderCardBody>\n </FolderCard>\n </Grid.Item>\n );\n })}\n </FolderGridList>\n )}\n\n {assetCount > 0 && folderCount > 0 && (\n <Box paddingTop={6} paddingBottom={4}>\n <Divider />\n </Box>\n )}\n\n {assetCount > 0 && (\n <AssetGridList\n assets={assets}\n onEditAsset={setAssetToEdit as AssetGridListProps['onEditAsset']}\n onSelectAsset={selectOne}\n selectedAssets={\n selected.filter(\n ({ type }) => type === 'asset'\n ) as AssetGridListProps['selectedAssets']\n }\n title={\n // Assets title should only appear if:\n // - user is not filtering\n // - user is filtering and there are folders to display, to separate them\n // - user is on page 1 since folders won't appear on any other page than the first one (no need to visually separate them)\n ((!isFiltering || (isFiltering && folderCount > 0)) &&\n assetsData?.pagination?.page === 1 &&\n formatMessage(\n {\n id: getTrad('list.assets.title'),\n defaultMessage: 'Assets ({count})',\n },\n { count: totalAssetCount }\n )) ||\n ''\n }\n />\n )}\n </>\n )}\n <Pagination.Root {...assetsData?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n </Page.Main>\n {showUploadAssetDialog &&\n (isAiEnabled ? (\n <AIUploadModal\n open={showUploadAssetDialog}\n onClose={toggleUploadAssetDialog}\n folderId={query?.folder ? Number(query.folder) : null}\n />\n ) : (\n <UploadAssetDialog\n open={showUploadAssetDialog}\n onClose={toggleUploadAssetDialog}\n trackedLocation=\"upload\"\n folderId={query?.folder as string | number | null | undefined}\n />\n ))}\n {showEditFolderDialog && (\n <EditFolderDialog\n open={showEditFolderDialog}\n onClose={() => handleEditFolderClose()}\n folder={folderToEdit as FolderDefinition}\n parentFolderId={query?.folder as string | number | null | undefined}\n location=\"upload\"\n />\n )}\n {assetToEdit && (\n <EditAssetDialog\n onClose={(editedAsset) => {\n // The asset has been deleted\n if (editedAsset === null) {\n handleAssetDeleted(1);\n }\n\n setAssetToEdit(undefined);\n }}\n open={!!assetToEdit}\n asset={assetToEdit}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n trackedLocation=\"upload\"\n />\n )}\n </Layouts.Root>\n );\n};\n"],"names":["BoxWithHeight","styled","Box","TypographyMaxWidth","Typography","ActionContainer","theme","colors","neutral500","MediaLibrary","navigate","useNavigate","canRead","canCreate","canUpdate","canCopyLink","canDownload","canConfigureView","isLoading","permissionsLoading","useMediaLibraryPermissions","isEnabled","isAiEnabled","status","aiAvailabilityStatus","useAIAvailability","currentFolderToEditRef","React","useRef","formatMessage","useIntl","pathname","useLocation","trackUsage","useTracking","query","setQuery","useQueryParams","isFiltering","Boolean","_q","filters","view","setView","usePersistentState","localStorageKeys","viewOptions","GRID","isGridView","data","assetsData","assetsLoading","error","assetsError","useAssets","skipWhen","foldersData","foldersLoading","foldersError","useFolders","enabled","pagination","page","containsAssetFilter","currentFolder","isCurrentFolderLoading","currentFolderError","useFolder","folder","name","folders","map","type","folderURL","getFolderURL","id","toString","folderPath","path","isSelectable","folderCount","length","assets","results","asset","assetCount","totalAssetCount","total","showUploadAssetDialog","setShowUploadAssetDialog","useState","showEditFolderDialog","setShowEditFolderDialog","assetToEdit","setAssetToEdit","undefined","folderToEdit","setFolderToEdit","selected","selectOne","selectAll","setSelections","useSelectionState","useEffect","indeterminateBulkSelect","toggleUploadAssetDialog","prev","toggleEditFolderDialog","created","handleBulkSelect","checked","elements","handleChangeSort","value","location","sort","handleEditFolder","handleEditFolderClose","payload","current","focus","handleAssetDeleted","numberOfAssets","pageCount","handleBulkActionSuccess","_jsx","Page","Loading","Error","_jsxs","Layouts","Root","Main","Header","breadcrumbs","getBreadcrumbDataML","onToggleEditFolderDialog","onToggleUploadAssetDialog","Action","startActions","_Fragment","paddingLeft","paddingRight","background","hasRadius","borderColor","Checkbox","aria-label","getTrad","defaultMessage","onCheckedChange","e","SortPicker","onChangeSort","Filters","endActions","paddingTop","paddingBottom","IconButton","tag","ReactRouterLink","to","search","stringify","encode","label","Cog","onClick","LIST","List","GridIcon","SearchInput","trackedEvent","trackedEventDetails","Content","BulkActions","onSuccess","EmptyOrNoPermissions","onActionClick","TableList","indeterminate","onChangeFolder","folderID","onEditAsset","onEditFolder","onSelectOne","onSelectAll","rows","shouldDisableBulkSelect","sortQuery","FolderGridList","title","count","selectedFolders","filter","isSelected","find","url","Grid","Item","col","m","s","xs","direction","alignItems","FolderCard","ref","ariaLabel","startAction","FolderCardCheckbox","data-testid","cardActions","Pencil","FolderCardBody","FolderCardBodyAction","Flex","maxWidth","fontWeight","textColor","ellipsis","VisuallyHidden","variant","children","filesCount","files","Divider","AssetGridList","onSelectAsset","selectedAssets","Pagination","PageSize","Links","AIUploadModal","open","onClose","folderId","Number","UploadAssetDialog","trackedLocation","EditFolderDialog","parentFolderId","EditAssetDialog","editedAsset"],"mappings":"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"}
1
+ {"version":3,"file":"MediaLibrary.mjs","sources":["../../../../admin/src/pages/App/MediaLibrary.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport {\n Page,\n SearchInput,\n Pagination,\n useTracking,\n useQueryParams,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport {\n Checkbox,\n Box,\n Divider,\n Flex,\n IconButton,\n Typography,\n VisuallyHidden,\n Grid,\n} from '@strapi/design-system';\nimport { Cog, GridFour as GridIcon, List, Pencil } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link as ReactRouterLink, useNavigate, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { AIUploadModal } from '../../ai/components/AIUploadModal';\nimport { AssetGridList } from '../../components/AssetGridList/AssetGridList';\nimport { EditAssetDialog } from '../../components/EditAssetDialog/EditAssetContent';\nimport { EditFolderDialog } from '../../components/EditFolderDialog/EditFolderDialog';\nimport { FolderCard } from '../../components/FolderCard/FolderCard/FolderCard';\nimport { FolderCardBody } from '../../components/FolderCard/FolderCardBody/FolderCardBody';\nimport { FolderCardBodyAction } from '../../components/FolderCard/FolderCardBodyAction/FolderCardBodyAction';\nimport { FolderCardCheckbox } from '../../components/FolderCard/FolderCardCheckbox/FolderCardCheckbox';\nimport { FolderGridList } from '../../components/FolderGridList/FolderGridList';\nimport { SortPicker } from '../../components/SortPicker/SortPicker';\nimport { TableList } from '../../components/TableList/TableList';\nimport { UploadAssetDialog } from '../../components/UploadAssetDialog/UploadAssetDialog';\nimport { localStorageKeys, viewOptions } from '../../constants';\nimport { useAIAvailability } from '../../hooks/useAiAvailability';\nimport { useAssets } from '../../hooks/useAssets';\nimport { useFolder } from '../../hooks/useFolder';\nimport { useFolders } from '../../hooks/useFolders';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { usePersistentState } from '../../hooks/usePersistentState';\nimport { useSelectionState } from '../../hooks/useSelectionState';\nimport { containsAssetFilter, getBreadcrumbDataML, getFolderURL, getTrad } from '../../utils';\n\nimport { BulkActions } from './components/BulkActions';\nimport { EmptyOrNoPermissions } from './components/EmptyOrNoPermissions';\nimport { Filters } from './components/Filters';\nimport { Header } from './components/Header';\n\nimport type { BulkActionsProps } from './components/BulkActions';\nimport type { HeaderProps } from './components/Header';\nimport type { Query } from '../../../../shared/contracts/files';\nimport type { FolderDefinition } from '../../../../shared/contracts/folders';\nimport type { AssetGridListProps } from '../../components/AssetGridList/AssetGridList';\nimport type { Asset } from '../../components/EditAssetDialog/EditAssetContent';\nimport type { FolderRow, FileRow, TableListProps } from '../../components/TableList/TableList';\n\nconst BoxWithHeight = styled(Box)`\n height: 3.2rem;\n display: flex;\n align-items: center;\n`;\n\nconst TypographyMaxWidth = styled(Typography)`\n max-width: 100%;\n`;\n\nconst ActionContainer = styled(Box)`\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n`;\n\nexport const MediaLibrary = () => {\n const navigate = useNavigate();\n const {\n canRead,\n canCreate,\n canUpdate,\n canCopyLink,\n canDownload,\n canConfigureView,\n isLoading: permissionsLoading,\n } = useMediaLibraryPermissions();\n const { isEnabled: isAiEnabled, status: aiAvailabilityStatus } = useAIAvailability();\n const currentFolderToEditRef = React.useRef<HTMLDivElement>();\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const { trackUsage } = useTracking();\n const [{ query }, setQuery] = useQueryParams<Query>();\n const isFiltering = Boolean(query._q || query.filters);\n const [view, setView] = usePersistentState(localStorageKeys.view, viewOptions.GRID);\n const isGridView = view === viewOptions.GRID;\n\n const {\n data: assetsData,\n isLoading: assetsLoading,\n error: assetsError,\n } = useAssets({\n skipWhen: !canRead,\n query,\n });\n\n const {\n data: foldersData,\n isLoading: foldersLoading,\n error: foldersError,\n } = useFolders({\n enabled: canRead && assetsData?.pagination?.page === 1 && !containsAssetFilter(query),\n query,\n });\n\n const {\n data: currentFolder,\n isLoading: isCurrentFolderLoading,\n error: currentFolderError,\n } = useFolder(query?.folder as number | null | undefined, {\n enabled: canRead && !!query?.folder,\n });\n\n // Folder was not found: redirect to the media library root\n if (currentFolderError?.name === 'NotFoundError') {\n navigate(pathname);\n }\n\n const folders =\n foldersData?.map((folder) => ({\n ...folder,\n type: 'folder',\n folderURL: getFolderURL(pathname, query, {\n folder: folder.id.toString(),\n folderPath: folder.path,\n }),\n isSelectable: canUpdate,\n })) ?? [];\n const folderCount = folders?.length || 0;\n const assets =\n assetsData?.results?.map((asset) => ({ ...asset, type: 'asset', isSelectable: canUpdate })) ||\n [];\n const assetCount = assets?.length ?? 0;\n const totalAssetCount = assetsData?.pagination?.total;\n\n const isLoading =\n isCurrentFolderLoading ||\n foldersLoading ||\n permissionsLoading ||\n assetsLoading ||\n aiAvailabilityStatus === 'loading';\n const [showUploadAssetDialog, setShowUploadAssetDialog] = React.useState(false);\n const [showEditFolderDialog, setShowEditFolderDialog] = React.useState(false);\n const [assetToEdit, setAssetToEdit] = React.useState<Asset | undefined>(undefined);\n const [folderToEdit, setFolderToEdit] = React.useState<FolderRow | undefined | null>(undefined);\n const [selected, { selectOne, selectAll, setSelections }] = useSelectionState<\n FolderRow | FileRow\n >(['type', 'id'], []);\n // reset selection when folder changes to hide bulk actions\n React.useEffect(() => {\n setSelections([]);\n }, [query.folder, setSelections]);\n\n const indeterminateBulkSelect =\n selected?.length > 0 && selected?.length !== assetCount + folderCount;\n const toggleUploadAssetDialog = () => setShowUploadAssetDialog((prev) => !prev);\n const toggleEditFolderDialog = ({ created = false } = {}) => {\n // folders are only displayed on the first page, therefore\n // we have to navigate the user to that page, in case a folder\n // was created successfully in order for them to see it\n if (created && query?.page !== '1') {\n setQuery({\n ...query,\n page: 1,\n });\n }\n\n setShowEditFolderDialog((prev) => !prev);\n };\n\n const handleBulkSelect = (\n checked: boolean | 'indeterminate',\n elements?: FolderRow[] | FileRow[]\n ) => {\n if (checked) {\n trackUsage('didSelectAllMediaLibraryElements');\n }\n\n selectAll(elements as (FolderRow | FileRow)[]);\n };\n\n const handleChangeSort = (value: Query['sort'] | string) => {\n trackUsage('didSortMediaLibraryElements', {\n location: 'upload',\n sort: value,\n });\n setQuery({ sort: value as Query['sort'] });\n };\n\n const handleEditFolder = (folder: FolderRow) => {\n setFolderToEdit(folder);\n setShowEditFolderDialog(true);\n };\n\n const handleEditFolderClose = (payload?: { created?: boolean | undefined }) => {\n setFolderToEdit(null);\n toggleEditFolderDialog(payload);\n\n if (currentFolderToEditRef.current) {\n currentFolderToEditRef.current.focus();\n }\n };\n\n const handleAssetDeleted = (numberOfAssets: number) => {\n if (\n numberOfAssets === assetCount &&\n assetsData?.pagination?.page === assetsData?.pagination?.pageCount &&\n assetsData?.pagination?.page &&\n assetsData.pagination.page > 1\n ) {\n setQuery({\n ...query,\n page: assetsData.pagination.page - 1,\n });\n }\n };\n\n const handleBulkActionSuccess = () => {\n selectAll();\n\n handleAssetDeleted(selected.length);\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (assetsError || foldersError || aiAvailabilityStatus === 'error') {\n return <Page.Error />;\n }\n\n return (\n <Layouts.Root>\n <Page.Main>\n <Header\n breadcrumbs={\n !isCurrentFolderLoading\n ? (getBreadcrumbDataML(currentFolder!, {\n pathname,\n query,\n }) as HeaderProps['breadcrumbs'])\n : null\n }\n canCreate={canCreate}\n onToggleEditFolderDialog={toggleEditFolderDialog}\n onToggleUploadAssetDialog={toggleUploadAssetDialog}\n folder={currentFolder as HeaderProps['folder']}\n />\n <Layouts.Action\n startActions={\n <>\n {canUpdate && isGridView && (assetCount > 0 || folderCount > 0) && (\n <BoxWithHeight\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n >\n <Checkbox\n aria-label={formatMessage({\n id: getTrad('bulk.select.label'),\n defaultMessage: 'Select all folders & assets',\n })}\n checked={\n indeterminateBulkSelect\n ? 'indeterminate'\n : (assetCount > 0 || folderCount > 0) &&\n selected.length === assetCount + folderCount\n }\n onCheckedChange={(e) =>\n handleBulkSelect(e, [...assets, ...folders] as FolderRow[] | FileRow[])\n }\n />\n </BoxWithHeight>\n )}\n {canRead && isGridView && (\n <SortPicker value={query?.sort} onChangeSort={handleChangeSort} />\n )}\n {canRead && <Filters />}\n </>\n }\n endActions={\n <>\n {canConfigureView ? (\n <ActionContainer paddingTop={1} paddingBottom={1}>\n <IconButton\n tag={ReactRouterLink}\n to={{\n pathname: `${pathname}/configuration`,\n search: stringify(query, { encode: false }),\n }}\n label={formatMessage({\n id: 'app.links.configure-view',\n defaultMessage: 'Configure the view',\n })}\n >\n <Cog />\n </IconButton>\n </ActionContainer>\n ) : null}\n <ActionContainer paddingTop={1} paddingBottom={1}>\n <IconButton\n label={\n isGridView\n ? formatMessage({\n id: getTrad('view-switch.list'),\n defaultMessage: 'List View',\n })\n : formatMessage({\n id: getTrad('view-switch.grid'),\n defaultMessage: 'Grid View',\n })\n }\n onClick={() => setView(isGridView ? viewOptions.LIST : viewOptions.GRID)}\n >\n {isGridView ? <List /> : <GridIcon />}\n </IconButton>\n </ActionContainer>\n <SearchInput\n label={formatMessage({\n id: getTrad('search.label'),\n defaultMessage: 'Search for an asset',\n })}\n trackedEvent=\"didSearchMediaLibraryElements\"\n trackedEventDetails={{ location: 'upload' }}\n />\n </>\n }\n />\n\n <Layouts.Content>\n {selected.length > 0 && (\n <BulkActions\n currentFolder={currentFolder as BulkActionsProps['currentFolder']}\n selected={selected as BulkActionsProps['selected']}\n onSuccess={handleBulkActionSuccess}\n />\n )}\n\n {folderCount === 0 && assetCount === 0 && (\n <EmptyOrNoPermissions\n canCreate={canCreate}\n canRead={canRead}\n isFiltering={isFiltering}\n onActionClick={toggleUploadAssetDialog}\n />\n )}\n\n {/* TODO: fix AssetListTable should handle no assets views (loading) */}\n {canRead && !isGridView && (assetCount > 0 || folderCount > 0) && (\n <TableList\n assetCount={assetCount}\n folderCount={folderCount}\n indeterminate={indeterminateBulkSelect}\n onChangeSort={handleChangeSort}\n onChangeFolder={(folderID, folderPath) =>\n navigate(getFolderURL(pathname, query, { folder: folderID.toString(), folderPath }))\n }\n onEditAsset={setAssetToEdit as TableListProps['onEditAsset']}\n onEditFolder={handleEditFolder}\n onSelectOne={selectOne}\n onSelectAll={handleBulkSelect as TableListProps['onSelectAll']}\n rows={[...folders, ...assets] as TableListProps['rows']}\n selected={selected as TableListProps['selected']}\n shouldDisableBulkSelect={!canUpdate}\n sortQuery={query?.sort ?? ''}\n />\n )}\n\n {canRead && isGridView && (\n <>\n {folderCount > 0 && (\n <FolderGridList\n title={\n // Folders title should only appear if:\n // user is filtering and there are assets to display, to divide both type of elements\n // user is not filtering\n (((isFiltering && assetCount > 0) || !isFiltering) &&\n formatMessage(\n {\n id: getTrad('list.folders.title'),\n defaultMessage: 'Folders ({count})',\n },\n { count: folderCount }\n )) ||\n ''\n }\n >\n {folders.map((folder) => {\n const selectedFolders = selected.filter(({ type }) => type === 'folder');\n const isSelected = !!selectedFolders.find(\n (currentFolder) => currentFolder.id === folder.id\n );\n\n const url = getFolderURL(pathname, query, {\n folder: folder?.id.toString(),\n folderPath: folder?.path,\n });\n\n return (\n <Grid.Item\n col={3}\n m={4}\n s={6}\n xs={12}\n key={`folder-${folder.id}`}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FolderCard\n ref={\n folderToEdit && folder.id === folderToEdit.id\n ? currentFolderToEditRef\n : undefined\n }\n ariaLabel={folder.name}\n id={`folder-${folder.id}`}\n to={url}\n startAction={\n folder.isSelectable ? (\n <FolderCardCheckbox\n data-testid={`folder-checkbox-${folder.id}`}\n checked={isSelected}\n onCheckedChange={() => selectOne(folder)}\n />\n ) : null\n }\n cardActions={\n <IconButton\n label={formatMessage({\n id: getTrad('list.folder.edit'),\n defaultMessage: 'Edit folder',\n })}\n onClick={() => handleEditFolder(folder)}\n >\n <Pencil />\n </IconButton>\n }\n >\n <FolderCardBody>\n <FolderCardBodyAction to={url}>\n <Flex tag=\"h2\" direction=\"column\" alignItems=\"start\" maxWidth=\"100%\">\n <TypographyMaxWidth\n fontWeight=\"semiBold\"\n textColor=\"neutral800\"\n ellipsis\n >\n {folder.name}\n <VisuallyHidden>:</VisuallyHidden>\n </TypographyMaxWidth>\n\n <TypographyMaxWidth\n tag=\"span\"\n textColor=\"neutral600\"\n variant=\"pi\"\n ellipsis\n >\n {formatMessage(\n {\n id: getTrad('list.folder.subtitle'),\n defaultMessage:\n '{folderCount, plural, one {# folder} other {# folders}}, {filesCount, plural, one {# asset} other {# assets}}',\n },\n {\n folderCount: (folder as FolderDefinition).children?.count,\n filesCount: (folder as FolderDefinition).files?.count,\n }\n )}\n </TypographyMaxWidth>\n </Flex>\n </FolderCardBodyAction>\n </FolderCardBody>\n </FolderCard>\n </Grid.Item>\n );\n })}\n </FolderGridList>\n )}\n\n {assetCount > 0 && folderCount > 0 && (\n <Box paddingTop={6} paddingBottom={4}>\n <Divider />\n </Box>\n )}\n\n {assetCount > 0 && (\n <AssetGridList\n assets={assets}\n onEditAsset={setAssetToEdit as AssetGridListProps['onEditAsset']}\n onSelectAsset={selectOne}\n selectedAssets={\n selected.filter(\n ({ type }) => type === 'asset'\n ) as AssetGridListProps['selectedAssets']\n }\n title={\n // Assets title should only appear if:\n // - user is not filtering\n // - user is filtering and there are folders to display, to separate them\n // - user is on page 1 since folders won't appear on any other page than the first one (no need to visually separate them)\n ((!isFiltering || (isFiltering && folderCount > 0)) &&\n assetsData?.pagination?.page === 1 &&\n formatMessage(\n {\n id: getTrad('list.assets.title'),\n defaultMessage: 'Assets ({count})',\n },\n { count: totalAssetCount }\n )) ||\n ''\n }\n />\n )}\n </>\n )}\n <Pagination.Root {...assetsData?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n </Page.Main>\n {showUploadAssetDialog &&\n (isAiEnabled ? (\n <AIUploadModal\n open={showUploadAssetDialog}\n onClose={toggleUploadAssetDialog}\n folderId={query?.folder ? Number(query.folder) : null}\n />\n ) : (\n <UploadAssetDialog\n open={showUploadAssetDialog}\n onClose={toggleUploadAssetDialog}\n trackedLocation=\"upload\"\n folderId={query?.folder as string | number | null | undefined}\n />\n ))}\n {showEditFolderDialog && (\n <EditFolderDialog\n open={showEditFolderDialog}\n onClose={() => handleEditFolderClose()}\n folder={folderToEdit as FolderDefinition}\n parentFolderId={query?.folder as string | number | null | undefined}\n location=\"upload\"\n />\n )}\n {assetToEdit && (\n <EditAssetDialog\n onClose={(editedAsset) => {\n // The asset has been deleted\n if (editedAsset === null) {\n handleAssetDeleted(1);\n }\n\n setAssetToEdit(undefined);\n }}\n open={!!assetToEdit}\n asset={assetToEdit}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n trackedLocation=\"upload\"\n />\n )}\n </Layouts.Root>\n );\n};\n"],"names":["BoxWithHeight","styled","Box","TypographyMaxWidth","Typography","ActionContainer","theme","colors","neutral500","MediaLibrary","navigate","useNavigate","canRead","canCreate","canUpdate","canCopyLink","canDownload","canConfigureView","isLoading","permissionsLoading","useMediaLibraryPermissions","isEnabled","isAiEnabled","status","aiAvailabilityStatus","useAIAvailability","currentFolderToEditRef","React","useRef","formatMessage","useIntl","pathname","useLocation","trackUsage","useTracking","query","setQuery","useQueryParams","isFiltering","Boolean","_q","filters","view","setView","usePersistentState","localStorageKeys","viewOptions","GRID","isGridView","data","assetsData","assetsLoading","error","assetsError","useAssets","skipWhen","foldersData","foldersLoading","foldersError","useFolders","enabled","pagination","page","containsAssetFilter","currentFolder","isCurrentFolderLoading","currentFolderError","useFolder","folder","name","folders","map","type","folderURL","getFolderURL","id","toString","folderPath","path","isSelectable","folderCount","length","assets","results","asset","assetCount","totalAssetCount","total","showUploadAssetDialog","setShowUploadAssetDialog","useState","showEditFolderDialog","setShowEditFolderDialog","assetToEdit","setAssetToEdit","undefined","folderToEdit","setFolderToEdit","selected","selectOne","selectAll","setSelections","useSelectionState","useEffect","indeterminateBulkSelect","toggleUploadAssetDialog","prev","toggleEditFolderDialog","created","handleBulkSelect","checked","elements","handleChangeSort","value","location","sort","handleEditFolder","handleEditFolderClose","payload","current","focus","handleAssetDeleted","numberOfAssets","pageCount","handleBulkActionSuccess","_jsx","Page","Loading","Error","_jsxs","Layouts","Root","Main","Header","breadcrumbs","getBreadcrumbDataML","onToggleEditFolderDialog","onToggleUploadAssetDialog","Action","startActions","_Fragment","paddingLeft","paddingRight","background","hasRadius","borderColor","Checkbox","aria-label","getTrad","defaultMessage","onCheckedChange","e","SortPicker","onChangeSort","Filters","endActions","paddingTop","paddingBottom","IconButton","tag","ReactRouterLink","to","search","stringify","encode","label","Cog","onClick","LIST","List","GridIcon","SearchInput","trackedEvent","trackedEventDetails","Content","BulkActions","onSuccess","EmptyOrNoPermissions","onActionClick","TableList","indeterminate","onChangeFolder","folderID","onEditAsset","onEditFolder","onSelectOne","onSelectAll","rows","shouldDisableBulkSelect","sortQuery","FolderGridList","title","count","selectedFolders","filter","isSelected","find","url","Grid","Item","col","m","s","xs","direction","alignItems","FolderCard","ref","ariaLabel","startAction","FolderCardCheckbox","data-testid","cardActions","Pencil","FolderCardBody","FolderCardBodyAction","Flex","maxWidth","fontWeight","textColor","ellipsis","VisuallyHidden","variant","children","filesCount","files","Divider","AssetGridList","onSelectAsset","selectedAssets","Pagination","PageSize","Links","AIUploadModal","open","onClose","folderId","Number","UploadAssetDialog","trackedLocation","EditFolderDialog","parentFolderId","EditAssetDialog","editedAsset"],"mappings":"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"}
@@ -7,7 +7,6 @@ require('byte-size');
7
7
  require('date-fns');
8
8
  var getTrad = require('../../../utils/getTrad.js');
9
9
  require('qs');
10
- require('../../../utils/typeFromMime.js');
11
10
  require('../../../utils/urlYupSchema.js');
12
11
  var BulkDeleteButton = require('./BulkDeleteButton.js');
13
12
  var BulkMoveButton = require('./BulkMoveButton.js');
@@ -1 +1 @@
1
- {"version":3,"file":"BulkActions.js","sources":["../../../../../admin/src/pages/App/components/BulkActions.tsx"],"sourcesContent":["import { Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\nimport { BulkDeleteButton } from './BulkDeleteButton';\nimport { BulkMoveButton } from './BulkMoveButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\nimport type {\n FolderDefinition,\n Folder as FolderInitial,\n} from '../../../../../shared/contracts/folders';\n\ninterface FolderWithType extends FolderInitial {\n type: string;\n}\n\nexport interface FileWithType extends File {\n type: string;\n}\n\nexport interface BulkActionsProps {\n selected: Array<FileWithType | FolderDefinition> | Array<FolderWithType | FileWithType>;\n onSuccess: () => void;\n currentFolder?: FolderWithType;\n}\n\nexport const BulkActions = ({ selected = [], onSuccess, currentFolder }: BulkActionsProps) => {\n const { formatMessage } = useIntl();\n const numberAssets = selected?.reduce(function (_this, val) {\n return val?.type === 'folder' && 'files' in val && val?.files && 'count' in val.files\n ? _this + val?.files?.count\n : _this + 1;\n }, 0);\n\n return (\n <Flex gap={2} paddingBottom={5}>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: getTrad('list.assets.selected'),\n defaultMessage:\n '{numberFolders, plural, one {1 folder} other {# folders}} - {numberAssets, plural, one {1 asset} other {# assets}} selected',\n },\n {\n numberFolders: selected?.filter(({ type }) => type === 'folder').length,\n numberAssets,\n }\n )}\n </Typography>\n\n <BulkDeleteButton\n selected={selected as Array<FileWithType | FolderDefinition>}\n onSuccess={onSuccess}\n />\n <BulkMoveButton\n currentFolder={currentFolder}\n selected={selected as Array<FolderWithType | FileWithType>}\n onSuccess={onSuccess}\n />\n </Flex>\n );\n};\n"],"names":["BulkActions","selected","onSuccess","currentFolder","formatMessage","useIntl","numberAssets","reduce","_this","val","type","files","count","_jsxs","Flex","gap","paddingBottom","_jsx","Typography","variant","textColor","id","getTrad","defaultMessage","numberFolders","filter","length","BulkDeleteButton","BulkMoveButton"],"mappings":";;;;;;;;;;;;;;AA4BO,MAAMA,WAAAA,GAAc,CAAC,EAAEC,QAAAA,GAAW,EAAE,EAAEC,SAAS,EAAEC,aAAa,EAAoB,GAAA;IACvF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,eAAeL,QAAAA,EAAUM,MAAAA,CAAO,SAAUC,KAAK,EAAEC,GAAG,EAAA;AACxD,QAAA,OAAOA,GAAAA,EAAKC,IAAAA,KAAS,QAAA,IAAY,OAAA,IAAWD,OAAOA,GAAAA,EAAKE,KAAAA,IAAS,OAAA,IAAWF,GAAAA,CAAIE,KAAK,GACjFH,KAAAA,GAAQC,GAAAA,EAAKE,KAAAA,EAAOC,QACpBJ,KAAAA,GAAQ,CAAA;IACd,CAAA,EAAG,CAAA,CAAA;AAEH,IAAA,qBACEK,eAAA,CAACC,iBAAAA,EAAAA;QAAKC,GAAAA,EAAK,CAAA;QAAGC,aAAAA,EAAe,CAAA;;0BAC3BC,cAAA,CAACC,uBAAAA,EAAAA;gBAAWC,OAAAA,EAAQ,SAAA;gBAAUC,SAAAA,EAAU,YAAA;0BACrChB,aAAAA,CACC;AACEiB,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,sBAAA,CAAA;oBACZC,cAAAA,EACE;iBACJ,EACA;oBACEC,aAAAA,EAAevB,QAAAA,EAAUwB,OAAO,CAAC,EAAEf,IAAI,EAAE,GAAKA,SAAS,QAAA,CAAA,CAAUgB,MAAAA;AACjEpB,oBAAAA;AACF,iBAAA;;0BAIJW,cAAA,CAACU,iCAAAA,EAAAA;gBACC1B,QAAAA,EAAUA,QAAAA;gBACVC,SAAAA,EAAWA;;0BAEbe,cAAA,CAACW,6BAAAA,EAAAA;gBACCzB,aAAAA,EAAeA,aAAAA;gBACfF,QAAAA,EAAUA,QAAAA;gBACVC,SAAAA,EAAWA;;;;AAInB;;;;"}
1
+ {"version":3,"file":"BulkActions.js","sources":["../../../../../admin/src/pages/App/components/BulkActions.tsx"],"sourcesContent":["import { Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\nimport { BulkDeleteButton } from './BulkDeleteButton';\nimport { BulkMoveButton } from './BulkMoveButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\nimport type {\n FolderDefinition,\n Folder as FolderInitial,\n} from '../../../../../shared/contracts/folders';\n\ninterface FolderWithType extends FolderInitial {\n type: string;\n}\n\nexport interface FileWithType extends File {\n type: string;\n}\n\nexport interface BulkActionsProps {\n selected: Array<FileWithType | FolderDefinition> | Array<FolderWithType | FileWithType>;\n onSuccess: () => void;\n currentFolder?: FolderWithType;\n}\n\nexport const BulkActions = ({ selected = [], onSuccess, currentFolder }: BulkActionsProps) => {\n const { formatMessage } = useIntl();\n const numberAssets = selected?.reduce(function (_this, val) {\n return val?.type === 'folder' && 'files' in val && val?.files && 'count' in val.files\n ? _this + val?.files?.count\n : _this + 1;\n }, 0);\n\n return (\n <Flex gap={2} paddingBottom={5}>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: getTrad('list.assets.selected'),\n defaultMessage:\n '{numberFolders, plural, one {1 folder} other {# folders}} - {numberAssets, plural, one {1 asset} other {# assets}} selected',\n },\n {\n numberFolders: selected?.filter(({ type }) => type === 'folder').length,\n numberAssets,\n }\n )}\n </Typography>\n\n <BulkDeleteButton\n selected={selected as Array<FileWithType | FolderDefinition>}\n onSuccess={onSuccess}\n />\n <BulkMoveButton\n currentFolder={currentFolder}\n selected={selected as Array<FolderWithType | FileWithType>}\n onSuccess={onSuccess}\n />\n </Flex>\n );\n};\n"],"names":["BulkActions","selected","onSuccess","currentFolder","formatMessage","useIntl","numberAssets","reduce","_this","val","type","files","count","_jsxs","Flex","gap","paddingBottom","_jsx","Typography","variant","textColor","id","getTrad","defaultMessage","numberFolders","filter","length","BulkDeleteButton","BulkMoveButton"],"mappings":";;;;;;;;;;;;;AA4BO,MAAMA,WAAAA,GAAc,CAAC,EAAEC,QAAAA,GAAW,EAAE,EAAEC,SAAS,EAAEC,aAAa,EAAoB,GAAA;IACvF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,eAAeL,QAAAA,EAAUM,MAAAA,CAAO,SAAUC,KAAK,EAAEC,GAAG,EAAA;AACxD,QAAA,OAAOA,GAAAA,EAAKC,IAAAA,KAAS,QAAA,IAAY,OAAA,IAAWD,OAAOA,GAAAA,EAAKE,KAAAA,IAAS,OAAA,IAAWF,GAAAA,CAAIE,KAAK,GACjFH,KAAAA,GAAQC,GAAAA,EAAKE,KAAAA,EAAOC,QACpBJ,KAAAA,GAAQ,CAAA;IACd,CAAA,EAAG,CAAA,CAAA;AAEH,IAAA,qBACEK,eAAA,CAACC,iBAAAA,EAAAA;QAAKC,GAAAA,EAAK,CAAA;QAAGC,aAAAA,EAAe,CAAA;;0BAC3BC,cAAA,CAACC,uBAAAA,EAAAA;gBAAWC,OAAAA,EAAQ,SAAA;gBAAUC,SAAAA,EAAU,YAAA;0BACrChB,aAAAA,CACC;AACEiB,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,sBAAA,CAAA;oBACZC,cAAAA,EACE;iBACJ,EACA;oBACEC,aAAAA,EAAevB,QAAAA,EAAUwB,OAAO,CAAC,EAAEf,IAAI,EAAE,GAAKA,SAAS,QAAA,CAAA,CAAUgB,MAAAA;AACjEpB,oBAAAA;AACF,iBAAA;;0BAIJW,cAAA,CAACU,iCAAAA,EAAAA;gBACC1B,QAAAA,EAAUA,QAAAA;gBACVC,SAAAA,EAAWA;;0BAEbe,cAAA,CAACW,6BAAAA,EAAAA;gBACCzB,aAAAA,EAAeA,aAAAA;gBACfF,QAAAA,EAAUA,QAAAA;gBACVC,SAAAA,EAAWA;;;;AAInB;;;;"}
@@ -5,7 +5,6 @@ import 'byte-size';
5
5
  import 'date-fns';
6
6
  import { getTrad } from '../../../utils/getTrad.mjs';
7
7
  import 'qs';
8
- import '../../../utils/typeFromMime.mjs';
9
8
  import '../../../utils/urlYupSchema.mjs';
10
9
  import { BulkDeleteButton } from './BulkDeleteButton.mjs';
11
10
  import { BulkMoveButton } from './BulkMoveButton.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"BulkActions.mjs","sources":["../../../../../admin/src/pages/App/components/BulkActions.tsx"],"sourcesContent":["import { Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\nimport { BulkDeleteButton } from './BulkDeleteButton';\nimport { BulkMoveButton } from './BulkMoveButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\nimport type {\n FolderDefinition,\n Folder as FolderInitial,\n} from '../../../../../shared/contracts/folders';\n\ninterface FolderWithType extends FolderInitial {\n type: string;\n}\n\nexport interface FileWithType extends File {\n type: string;\n}\n\nexport interface BulkActionsProps {\n selected: Array<FileWithType | FolderDefinition> | Array<FolderWithType | FileWithType>;\n onSuccess: () => void;\n currentFolder?: FolderWithType;\n}\n\nexport const BulkActions = ({ selected = [], onSuccess, currentFolder }: BulkActionsProps) => {\n const { formatMessage } = useIntl();\n const numberAssets = selected?.reduce(function (_this, val) {\n return val?.type === 'folder' && 'files' in val && val?.files && 'count' in val.files\n ? _this + val?.files?.count\n : _this + 1;\n }, 0);\n\n return (\n <Flex gap={2} paddingBottom={5}>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: getTrad('list.assets.selected'),\n defaultMessage:\n '{numberFolders, plural, one {1 folder} other {# folders}} - {numberAssets, plural, one {1 asset} other {# assets}} selected',\n },\n {\n numberFolders: selected?.filter(({ type }) => type === 'folder').length,\n numberAssets,\n }\n )}\n </Typography>\n\n <BulkDeleteButton\n selected={selected as Array<FileWithType | FolderDefinition>}\n onSuccess={onSuccess}\n />\n <BulkMoveButton\n currentFolder={currentFolder}\n selected={selected as Array<FolderWithType | FileWithType>}\n onSuccess={onSuccess}\n />\n </Flex>\n );\n};\n"],"names":["BulkActions","selected","onSuccess","currentFolder","formatMessage","useIntl","numberAssets","reduce","_this","val","type","files","count","_jsxs","Flex","gap","paddingBottom","_jsx","Typography","variant","textColor","id","getTrad","defaultMessage","numberFolders","filter","length","BulkDeleteButton","BulkMoveButton"],"mappings":";;;;;;;;;;;;AA4BO,MAAMA,WAAAA,GAAc,CAAC,EAAEC,QAAAA,GAAW,EAAE,EAAEC,SAAS,EAAEC,aAAa,EAAoB,GAAA;IACvF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,eAAeL,QAAAA,EAAUM,MAAAA,CAAO,SAAUC,KAAK,EAAEC,GAAG,EAAA;AACxD,QAAA,OAAOA,GAAAA,EAAKC,IAAAA,KAAS,QAAA,IAAY,OAAA,IAAWD,OAAOA,GAAAA,EAAKE,KAAAA,IAAS,OAAA,IAAWF,GAAAA,CAAIE,KAAK,GACjFH,KAAAA,GAAQC,GAAAA,EAAKE,KAAAA,EAAOC,QACpBJ,KAAAA,GAAQ,CAAA;IACd,CAAA,EAAG,CAAA,CAAA;AAEH,IAAA,qBACEK,IAAA,CAACC,IAAAA,EAAAA;QAAKC,GAAAA,EAAK,CAAA;QAAGC,aAAAA,EAAe,CAAA;;0BAC3BC,GAAA,CAACC,UAAAA,EAAAA;gBAAWC,OAAAA,EAAQ,SAAA;gBAAUC,SAAAA,EAAU,YAAA;0BACrChB,aAAAA,CACC;AACEiB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,sBAAA,CAAA;oBACZC,cAAAA,EACE;iBACJ,EACA;oBACEC,aAAAA,EAAevB,QAAAA,EAAUwB,OAAO,CAAC,EAAEf,IAAI,EAAE,GAAKA,SAAS,QAAA,CAAA,CAAUgB,MAAAA;AACjEpB,oBAAAA;AACF,iBAAA;;0BAIJW,GAAA,CAACU,gBAAAA,EAAAA;gBACC1B,QAAAA,EAAUA,QAAAA;gBACVC,SAAAA,EAAWA;;0BAEbe,GAAA,CAACW,cAAAA,EAAAA;gBACCzB,aAAAA,EAAeA,aAAAA;gBACfF,QAAAA,EAAUA,QAAAA;gBACVC,SAAAA,EAAWA;;;;AAInB;;;;"}
1
+ {"version":3,"file":"BulkActions.mjs","sources":["../../../../../admin/src/pages/App/components/BulkActions.tsx"],"sourcesContent":["import { Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\nimport { BulkDeleteButton } from './BulkDeleteButton';\nimport { BulkMoveButton } from './BulkMoveButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\nimport type {\n FolderDefinition,\n Folder as FolderInitial,\n} from '../../../../../shared/contracts/folders';\n\ninterface FolderWithType extends FolderInitial {\n type: string;\n}\n\nexport interface FileWithType extends File {\n type: string;\n}\n\nexport interface BulkActionsProps {\n selected: Array<FileWithType | FolderDefinition> | Array<FolderWithType | FileWithType>;\n onSuccess: () => void;\n currentFolder?: FolderWithType;\n}\n\nexport const BulkActions = ({ selected = [], onSuccess, currentFolder }: BulkActionsProps) => {\n const { formatMessage } = useIntl();\n const numberAssets = selected?.reduce(function (_this, val) {\n return val?.type === 'folder' && 'files' in val && val?.files && 'count' in val.files\n ? _this + val?.files?.count\n : _this + 1;\n }, 0);\n\n return (\n <Flex gap={2} paddingBottom={5}>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: getTrad('list.assets.selected'),\n defaultMessage:\n '{numberFolders, plural, one {1 folder} other {# folders}} - {numberAssets, plural, one {1 asset} other {# assets}} selected',\n },\n {\n numberFolders: selected?.filter(({ type }) => type === 'folder').length,\n numberAssets,\n }\n )}\n </Typography>\n\n <BulkDeleteButton\n selected={selected as Array<FileWithType | FolderDefinition>}\n onSuccess={onSuccess}\n />\n <BulkMoveButton\n currentFolder={currentFolder}\n selected={selected as Array<FolderWithType | FileWithType>}\n onSuccess={onSuccess}\n />\n </Flex>\n );\n};\n"],"names":["BulkActions","selected","onSuccess","currentFolder","formatMessage","useIntl","numberAssets","reduce","_this","val","type","files","count","_jsxs","Flex","gap","paddingBottom","_jsx","Typography","variant","textColor","id","getTrad","defaultMessage","numberFolders","filter","length","BulkDeleteButton","BulkMoveButton"],"mappings":";;;;;;;;;;;AA4BO,MAAMA,WAAAA,GAAc,CAAC,EAAEC,QAAAA,GAAW,EAAE,EAAEC,SAAS,EAAEC,aAAa,EAAoB,GAAA;IACvF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,eAAeL,QAAAA,EAAUM,MAAAA,CAAO,SAAUC,KAAK,EAAEC,GAAG,EAAA;AACxD,QAAA,OAAOA,GAAAA,EAAKC,IAAAA,KAAS,QAAA,IAAY,OAAA,IAAWD,OAAOA,GAAAA,EAAKE,KAAAA,IAAS,OAAA,IAAWF,GAAAA,CAAIE,KAAK,GACjFH,KAAAA,GAAQC,GAAAA,EAAKE,KAAAA,EAAOC,QACpBJ,KAAAA,GAAQ,CAAA;IACd,CAAA,EAAG,CAAA,CAAA;AAEH,IAAA,qBACEK,IAAA,CAACC,IAAAA,EAAAA;QAAKC,GAAAA,EAAK,CAAA;QAAGC,aAAAA,EAAe,CAAA;;0BAC3BC,GAAA,CAACC,UAAAA,EAAAA;gBAAWC,OAAAA,EAAQ,SAAA;gBAAUC,SAAAA,EAAU,YAAA;0BACrChB,aAAAA,CACC;AACEiB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,sBAAA,CAAA;oBACZC,cAAAA,EACE;iBACJ,EACA;oBACEC,aAAAA,EAAevB,QAAAA,EAAUwB,OAAO,CAAC,EAAEf,IAAI,EAAE,GAAKA,SAAS,QAAA,CAAA,CAAUgB,MAAAA;AACjEpB,oBAAAA;AACF,iBAAA;;0BAIJW,GAAA,CAACU,gBAAAA,EAAAA;gBACC1B,QAAAA,EAAUA,QAAAA;gBACVC,SAAAA,EAAWA;;0BAEbe,GAAA,CAACW,cAAAA,EAAAA;gBACCzB,aAAAA,EAAeA,aAAAA;gBACfF,QAAAA,EAAUA,QAAAA;gBACVC,SAAAA,EAAWA;;;;AAInB;;;;"}
@@ -7,7 +7,8 @@ var icons = require('@strapi/icons');
7
7
  var reactIntl = require('react-intl');
8
8
  var BulkMoveDialog = require('../../../components/BulkMoveDialog/BulkMoveDialog.js');
9
9
 
10
- function _interopNamespaceDefault(e) {
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
11
12
  var n = Object.create(null);
12
13
  if (e) {
13
14
  Object.keys(e).forEach(function (k) {
@@ -24,7 +25,7 @@ function _interopNamespaceDefault(e) {
24
25
  return Object.freeze(n);
25
26
  }
26
27
 
27
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
28
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
29
 
29
30
  const BulkMoveButton = ({ selected = [], onSuccess, currentFolder })=>{
30
31
  const { formatMessage } = reactIntl.useIntl();
@@ -1 +1 @@
1
- {"version":3,"file":"BulkMoveButton.js","sources":["../../../../../admin/src/pages/App/components/BulkMoveButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Modal } from '@strapi/design-system';\nimport { Folder } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { BulkMoveDialog } from '../../../components/BulkMoveDialog/BulkMoveDialog';\n\nimport type { File } from '../../../../../shared/contracts/files';\nimport type { Folder as FolderDefinition } from '../../../../../shared/contracts/folders';\n\ninterface FolderWithType extends FolderDefinition {\n type: string;\n}\n\ninterface FileWithType extends File {\n type: string;\n}\n\nexport interface BulkMoveButtonProps {\n onSuccess: () => void;\n currentFolder?: FolderWithType;\n selected?: Array<FolderWithType | FileWithType>;\n}\n\nexport const BulkMoveButton = ({\n selected = [],\n onSuccess,\n currentFolder,\n}: BulkMoveButtonProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const handleConfirmMove = () => {\n setShowConfirmDialog(false);\n onSuccess();\n };\n\n return (\n <Modal.Root open={showConfirmDialog} onOpenChange={setShowConfirmDialog}>\n <Modal.Trigger>\n <Button variant=\"secondary\" size=\"S\" startIcon={<Folder />}>\n {formatMessage({ id: 'global.move', defaultMessage: 'Move' })}\n </Button>\n </Modal.Trigger>\n <BulkMoveDialog\n currentFolder={currentFolder}\n onClose={handleConfirmMove}\n selected={selected}\n />\n </Modal.Root>\n );\n};\n"],"names":["BulkMoveButton","selected","onSuccess","currentFolder","formatMessage","useIntl","showConfirmDialog","setShowConfirmDialog","React","useState","handleConfirmMove","_jsxs","Modal","Root","open","onOpenChange","_jsx","Trigger","Button","variant","size","startIcon","Folder","id","defaultMessage","BulkMoveDialog","onClose"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAMA,cAAAA,GAAiB,CAAC,EAC7BC,QAAAA,GAAW,EAAE,EACbC,SAAS,EACTC,aAAa,EACO,GAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,iBAAAA,EAAmBC,oBAAAA,CAAqB,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAEjE,IAAA,MAAMC,iBAAAA,GAAoB,IAAA;QACxBH,oBAAAA,CAAqB,KAAA,CAAA;AACrBL,QAAAA,SAAAA,EAAAA;AACF,IAAA,CAAA;IAEA,qBACES,eAAA,CAACC,mBAAMC,IAAI,EAAA;QAACC,IAAAA,EAAMR,iBAAAA;QAAmBS,YAAAA,EAAcR,oBAAAA;;AACjD,0BAAAS,cAAA,CAACJ,mBAAMK,OAAO,EAAA;AACZ,gBAAA,QAAA,gBAAAD,cAAA,CAACE,mBAAAA,EAAAA;oBAAOC,OAAAA,EAAQ,WAAA;oBAAYC,IAAAA,EAAK,GAAA;AAAIC,oBAAAA,SAAAA,gBAAWL,cAAA,CAACM,YAAAA,EAAAA,EAAAA,CAAAA;8BAC9ClB,aAAAA,CAAc;wBAAEmB,EAAAA,EAAI,aAAA;wBAAeC,cAAAA,EAAgB;AAAO,qBAAA;;;0BAG/DR,cAAA,CAACS,6BAAAA,EAAAA;gBACCtB,aAAAA,EAAeA,aAAAA;gBACfuB,OAAAA,EAAShB,iBAAAA;gBACTT,QAAAA,EAAUA;;;;AAIlB;;;;"}
1
+ {"version":3,"file":"BulkMoveButton.js","sources":["../../../../../admin/src/pages/App/components/BulkMoveButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Modal } from '@strapi/design-system';\nimport { Folder } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { BulkMoveDialog } from '../../../components/BulkMoveDialog/BulkMoveDialog';\n\nimport type { File } from '../../../../../shared/contracts/files';\nimport type { Folder as FolderDefinition } from '../../../../../shared/contracts/folders';\n\ninterface FolderWithType extends FolderDefinition {\n type: string;\n}\n\ninterface FileWithType extends File {\n type: string;\n}\n\nexport interface BulkMoveButtonProps {\n onSuccess: () => void;\n currentFolder?: FolderWithType;\n selected?: Array<FolderWithType | FileWithType>;\n}\n\nexport const BulkMoveButton = ({\n selected = [],\n onSuccess,\n currentFolder,\n}: BulkMoveButtonProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const handleConfirmMove = () => {\n setShowConfirmDialog(false);\n onSuccess();\n };\n\n return (\n <Modal.Root open={showConfirmDialog} onOpenChange={setShowConfirmDialog}>\n <Modal.Trigger>\n <Button variant=\"secondary\" size=\"S\" startIcon={<Folder />}>\n {formatMessage({ id: 'global.move', defaultMessage: 'Move' })}\n </Button>\n </Modal.Trigger>\n <BulkMoveDialog\n currentFolder={currentFolder}\n onClose={handleConfirmMove}\n selected={selected}\n />\n </Modal.Root>\n );\n};\n"],"names":["BulkMoveButton","selected","onSuccess","currentFolder","formatMessage","useIntl","showConfirmDialog","setShowConfirmDialog","React","useState","handleConfirmMove","_jsxs","Modal","Root","open","onOpenChange","_jsx","Trigger","Button","variant","size","startIcon","Folder","id","defaultMessage","BulkMoveDialog","onClose"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,MAAMA,cAAAA,GAAiB,CAAC,EAC7BC,QAAAA,GAAW,EAAE,EACbC,SAAS,EACTC,aAAa,EACO,GAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,iBAAAA,EAAmBC,oBAAAA,CAAqB,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAEjE,IAAA,MAAMC,iBAAAA,GAAoB,IAAA;QACxBH,oBAAAA,CAAqB,KAAA,CAAA;AACrBL,QAAAA,SAAAA,EAAAA;AACF,IAAA,CAAA;IAEA,qBACES,eAAA,CAACC,mBAAMC,IAAI,EAAA;QAACC,IAAAA,EAAMR,iBAAAA;QAAmBS,YAAAA,EAAcR,oBAAAA;;AACjD,0BAAAS,cAAA,CAACJ,mBAAMK,OAAO,EAAA;AACZ,gBAAA,QAAA,gBAAAD,cAAA,CAACE,mBAAAA,EAAAA;oBAAOC,OAAAA,EAAQ,WAAA;oBAAYC,IAAAA,EAAK,GAAA;AAAIC,oBAAAA,SAAAA,gBAAWL,cAAA,CAACM,YAAAA,EAAAA,EAAAA,CAAAA;8BAC9ClB,aAAAA,CAAc;wBAAEmB,EAAAA,EAAI,aAAA;wBAAeC,cAAAA,EAAgB;AAAO,qBAAA;;;0BAG/DR,cAAA,CAACS,6BAAAA,EAAAA;gBACCtB,aAAAA,EAAeA,aAAAA;gBACfuB,OAAAA,EAAShB,iBAAAA;gBACTT,QAAAA,EAAUA;;;;AAIlB;;;;"}
@@ -10,7 +10,6 @@ require('byte-size');
10
10
  require('date-fns');
11
11
  var getTrad = require('../../../utils/getTrad.js');
12
12
  require('qs');
13
- require('../../../utils/typeFromMime.js');
14
13
  require('../../../utils/urlYupSchema.js');
15
14
 
16
15
  const getContentIntlMessage = ({ isFiltering, canCreate, canRead })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyOrNoPermissions.js","sources":["../../../../../admin/src/pages/App/components/EmptyOrNoPermissions.tsx"],"sourcesContent":["import { Button } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyPermissions } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { EmptyAssets } from '../../../components/EmptyAssets/EmptyAssets';\nimport { getTrad } from '../../../utils';\n\nexport interface EmptyOrNoPermissionsProps {\n canCreate: boolean;\n canRead: boolean;\n isFiltering: boolean;\n onActionClick: () => void;\n}\n\nconst getContentIntlMessage = ({\n isFiltering,\n canCreate,\n canRead,\n}: Omit<EmptyOrNoPermissionsProps, 'onActionClick'>) => {\n if (isFiltering) {\n return {\n id: 'list.assets-empty.title-withSearch',\n defaultMessage: 'There are no elements with the applied filters',\n };\n }\n\n if (canRead) {\n if (canCreate) {\n return {\n id: 'list.assets.empty-upload',\n defaultMessage: 'Upload your first assets...',\n };\n }\n\n return {\n id: 'list.assets.empty',\n defaultMessage: 'Media Library is empty',\n };\n }\n\n return {\n id: 'header.actions.no-permissions',\n defaultMessage: 'No permissions to view',\n };\n};\n\nexport const EmptyOrNoPermissions = ({\n canCreate,\n isFiltering,\n canRead,\n onActionClick,\n}: EmptyOrNoPermissionsProps) => {\n const { formatMessage } = useIntl();\n const content = getContentIntlMessage({ isFiltering, canCreate, canRead });\n\n return (\n <EmptyAssets\n icon={!canRead ? EmptyPermissions : undefined}\n action={\n canCreate &&\n !isFiltering && (\n <Button variant=\"secondary\" startIcon={<Plus />} onClick={onActionClick}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n )\n }\n content={formatMessage({\n ...content,\n id: getTrad(content.id),\n })}\n />\n );\n};\n"],"names":["getContentIntlMessage","isFiltering","canCreate","canRead","id","defaultMessage","EmptyOrNoPermissions","onActionClick","formatMessage","useIntl","content","_jsx","EmptyAssets","icon","EmptyPermissions","undefined","action","Button","variant","startIcon","Plus","onClick","getTrad"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAMA,qBAAAA,GAAwB,CAAC,EAC7BC,WAAW,EACXC,SAAS,EACTC,OAAO,EAC0C,GAAA;AACjD,IAAA,IAAIF,WAAAA,EAAa;QACf,OAAO;YACLG,EAAAA,EAAI,oCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;AACF,IAAA;AAEA,IAAA,IAAIF,OAAAA,EAAS;AACX,QAAA,IAAID,SAAAA,EAAW;YACb,OAAO;gBACLE,EAAAA,EAAI,0BAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA;AACF,QAAA;QAEA,OAAO;YACLD,EAAAA,EAAI,mBAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;AACF,IAAA;IAEA,OAAO;QACLD,EAAAA,EAAI,+BAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;AACF,CAAA;AAEO,MAAMC,oBAAAA,GAAuB,CAAC,EACnCJ,SAAS,EACTD,WAAW,EACXE,OAAO,EACPI,aAAa,EACa,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,UAAUV,qBAAAA,CAAsB;AAAEC,QAAAA,WAAAA;AAAaC,QAAAA,SAAAA;AAAWC,QAAAA;AAAQ,KAAA,CAAA;AAExE,IAAA,qBACEQ,cAAA,CAACC,uBAAAA,EAAAA;QACCC,IAAAA,EAAM,CAACV,UAAUW,wBAAAA,GAAmBC,SAAAA;QACpCC,MAAAA,EACEd,SAAAA,IACA,CAACD,WAAAA,kBACCU,cAAA,CAACM,mBAAAA,EAAAA;YAAOC,OAAAA,EAAQ,WAAA;AAAYC,YAAAA,SAAAA,gBAAWR,cAAA,CAACS,UAAAA,EAAAA,EAAAA,CAAAA;YAASC,OAAAA,EAASd,aAAAA;sBACvDC,aAAAA,CAAc;AACbJ,gBAAAA,EAAAA,EAAIkB,eAAAA,CAAQ,2BAAA,CAAA;gBACZjB,cAAAA,EAAgB;AAClB,aAAA;;AAINK,QAAAA,OAAAA,EAASF,aAAAA,CAAc;AACrB,YAAA,GAAGE,OAAO;YACVN,EAAAA,EAAIkB,eAAAA,CAAQZ,QAAQN,EAAE;AACxB,SAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"EmptyOrNoPermissions.js","sources":["../../../../../admin/src/pages/App/components/EmptyOrNoPermissions.tsx"],"sourcesContent":["import { Button } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyPermissions } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { EmptyAssets } from '../../../components/EmptyAssets/EmptyAssets';\nimport { getTrad } from '../../../utils';\n\nexport interface EmptyOrNoPermissionsProps {\n canCreate: boolean;\n canRead: boolean;\n isFiltering: boolean;\n onActionClick: () => void;\n}\n\nconst getContentIntlMessage = ({\n isFiltering,\n canCreate,\n canRead,\n}: Omit<EmptyOrNoPermissionsProps, 'onActionClick'>) => {\n if (isFiltering) {\n return {\n id: 'list.assets-empty.title-withSearch',\n defaultMessage: 'There are no elements with the applied filters',\n };\n }\n\n if (canRead) {\n if (canCreate) {\n return {\n id: 'list.assets.empty-upload',\n defaultMessage: 'Upload your first assets...',\n };\n }\n\n return {\n id: 'list.assets.empty',\n defaultMessage: 'Media Library is empty',\n };\n }\n\n return {\n id: 'header.actions.no-permissions',\n defaultMessage: 'No permissions to view',\n };\n};\n\nexport const EmptyOrNoPermissions = ({\n canCreate,\n isFiltering,\n canRead,\n onActionClick,\n}: EmptyOrNoPermissionsProps) => {\n const { formatMessage } = useIntl();\n const content = getContentIntlMessage({ isFiltering, canCreate, canRead });\n\n return (\n <EmptyAssets\n icon={!canRead ? EmptyPermissions : undefined}\n action={\n canCreate &&\n !isFiltering && (\n <Button variant=\"secondary\" startIcon={<Plus />} onClick={onActionClick}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n )\n }\n content={formatMessage({\n ...content,\n id: getTrad(content.id),\n })}\n />\n );\n};\n"],"names":["getContentIntlMessage","isFiltering","canCreate","canRead","id","defaultMessage","EmptyOrNoPermissions","onActionClick","formatMessage","useIntl","content","_jsx","EmptyAssets","icon","EmptyPermissions","undefined","action","Button","variant","startIcon","Plus","onClick","getTrad"],"mappings":";;;;;;;;;;;;;;AAeA,MAAMA,qBAAAA,GAAwB,CAAC,EAC7BC,WAAW,EACXC,SAAS,EACTC,OAAO,EAC0C,GAAA;AACjD,IAAA,IAAIF,WAAAA,EAAa;QACf,OAAO;YACLG,EAAAA,EAAI,oCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;AACF,IAAA;AAEA,IAAA,IAAIF,OAAAA,EAAS;AACX,QAAA,IAAID,SAAAA,EAAW;YACb,OAAO;gBACLE,EAAAA,EAAI,0BAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA;AACF,QAAA;QAEA,OAAO;YACLD,EAAAA,EAAI,mBAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;AACF,IAAA;IAEA,OAAO;QACLD,EAAAA,EAAI,+BAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;AACF,CAAA;AAEO,MAAMC,oBAAAA,GAAuB,CAAC,EACnCJ,SAAS,EACTD,WAAW,EACXE,OAAO,EACPI,aAAa,EACa,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,UAAUV,qBAAAA,CAAsB;AAAEC,QAAAA,WAAAA;AAAaC,QAAAA,SAAAA;AAAWC,QAAAA;AAAQ,KAAA,CAAA;AAExE,IAAA,qBACEQ,cAAA,CAACC,uBAAAA,EAAAA;QACCC,IAAAA,EAAM,CAACV,UAAUW,wBAAAA,GAAmBC,SAAAA;QACpCC,MAAAA,EACEd,SAAAA,IACA,CAACD,WAAAA,kBACCU,cAAA,CAACM,mBAAAA,EAAAA;YAAOC,OAAAA,EAAQ,WAAA;AAAYC,YAAAA,SAAAA,gBAAWR,cAAA,CAACS,UAAAA,EAAAA,EAAAA,CAAAA;YAASC,OAAAA,EAASd,aAAAA;sBACvDC,aAAAA,CAAc;AACbJ,gBAAAA,EAAAA,EAAIkB,eAAAA,CAAQ,2BAAA,CAAA;gBACZjB,cAAAA,EAAgB;AAClB,aAAA;;AAINK,QAAAA,OAAAA,EAASF,aAAAA,CAAc;AACrB,YAAA,GAAGE,OAAO;YACVN,EAAAA,EAAIkB,eAAAA,CAAQZ,QAAQN,EAAE;AACxB,SAAA;;AAGN;;;;"}
@@ -8,7 +8,6 @@ import 'byte-size';
8
8
  import 'date-fns';
9
9
  import { getTrad } from '../../../utils/getTrad.mjs';
10
10
  import 'qs';
11
- import '../../../utils/typeFromMime.mjs';
12
11
  import '../../../utils/urlYupSchema.mjs';
13
12
 
14
13
  const getContentIntlMessage = ({ isFiltering, canCreate, canRead })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyOrNoPermissions.mjs","sources":["../../../../../admin/src/pages/App/components/EmptyOrNoPermissions.tsx"],"sourcesContent":["import { Button } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyPermissions } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { EmptyAssets } from '../../../components/EmptyAssets/EmptyAssets';\nimport { getTrad } from '../../../utils';\n\nexport interface EmptyOrNoPermissionsProps {\n canCreate: boolean;\n canRead: boolean;\n isFiltering: boolean;\n onActionClick: () => void;\n}\n\nconst getContentIntlMessage = ({\n isFiltering,\n canCreate,\n canRead,\n}: Omit<EmptyOrNoPermissionsProps, 'onActionClick'>) => {\n if (isFiltering) {\n return {\n id: 'list.assets-empty.title-withSearch',\n defaultMessage: 'There are no elements with the applied filters',\n };\n }\n\n if (canRead) {\n if (canCreate) {\n return {\n id: 'list.assets.empty-upload',\n defaultMessage: 'Upload your first assets...',\n };\n }\n\n return {\n id: 'list.assets.empty',\n defaultMessage: 'Media Library is empty',\n };\n }\n\n return {\n id: 'header.actions.no-permissions',\n defaultMessage: 'No permissions to view',\n };\n};\n\nexport const EmptyOrNoPermissions = ({\n canCreate,\n isFiltering,\n canRead,\n onActionClick,\n}: EmptyOrNoPermissionsProps) => {\n const { formatMessage } = useIntl();\n const content = getContentIntlMessage({ isFiltering, canCreate, canRead });\n\n return (\n <EmptyAssets\n icon={!canRead ? EmptyPermissions : undefined}\n action={\n canCreate &&\n !isFiltering && (\n <Button variant=\"secondary\" startIcon={<Plus />} onClick={onActionClick}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n )\n }\n content={formatMessage({\n ...content,\n id: getTrad(content.id),\n })}\n />\n );\n};\n"],"names":["getContentIntlMessage","isFiltering","canCreate","canRead","id","defaultMessage","EmptyOrNoPermissions","onActionClick","formatMessage","useIntl","content","_jsx","EmptyAssets","icon","EmptyPermissions","undefined","action","Button","variant","startIcon","Plus","onClick","getTrad"],"mappings":";;;;;;;;;;;;;AAeA,MAAMA,qBAAAA,GAAwB,CAAC,EAC7BC,WAAW,EACXC,SAAS,EACTC,OAAO,EAC0C,GAAA;AACjD,IAAA,IAAIF,WAAAA,EAAa;QACf,OAAO;YACLG,EAAAA,EAAI,oCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;AACF,IAAA;AAEA,IAAA,IAAIF,OAAAA,EAAS;AACX,QAAA,IAAID,SAAAA,EAAW;YACb,OAAO;gBACLE,EAAAA,EAAI,0BAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA;AACF,QAAA;QAEA,OAAO;YACLD,EAAAA,EAAI,mBAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;AACF,IAAA;IAEA,OAAO;QACLD,EAAAA,EAAI,+BAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;AACF,CAAA;AAEO,MAAMC,oBAAAA,GAAuB,CAAC,EACnCJ,SAAS,EACTD,WAAW,EACXE,OAAO,EACPI,aAAa,EACa,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,UAAUV,qBAAAA,CAAsB;AAAEC,QAAAA,WAAAA;AAAaC,QAAAA,SAAAA;AAAWC,QAAAA;AAAQ,KAAA,CAAA;AAExE,IAAA,qBACEQ,GAAA,CAACC,WAAAA,EAAAA;QACCC,IAAAA,EAAM,CAACV,UAAUW,gBAAAA,GAAmBC,SAAAA;QACpCC,MAAAA,EACEd,SAAAA,IACA,CAACD,WAAAA,kBACCU,GAAA,CAACM,MAAAA,EAAAA;YAAOC,OAAAA,EAAQ,WAAA;AAAYC,YAAAA,SAAAA,gBAAWR,GAAA,CAACS,IAAAA,EAAAA,EAAAA,CAAAA;YAASC,OAAAA,EAASd,aAAAA;sBACvDC,aAAAA,CAAc;AACbJ,gBAAAA,EAAAA,EAAIkB,OAAAA,CAAQ,2BAAA,CAAA;gBACZjB,cAAAA,EAAgB;AAClB,aAAA;;AAINK,QAAAA,OAAAA,EAASF,aAAAA,CAAc;AACrB,YAAA,GAAGE,OAAO;YACVN,EAAAA,EAAIkB,OAAAA,CAAQZ,QAAQN,EAAE;AACxB,SAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"EmptyOrNoPermissions.mjs","sources":["../../../../../admin/src/pages/App/components/EmptyOrNoPermissions.tsx"],"sourcesContent":["import { Button } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyPermissions } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { EmptyAssets } from '../../../components/EmptyAssets/EmptyAssets';\nimport { getTrad } from '../../../utils';\n\nexport interface EmptyOrNoPermissionsProps {\n canCreate: boolean;\n canRead: boolean;\n isFiltering: boolean;\n onActionClick: () => void;\n}\n\nconst getContentIntlMessage = ({\n isFiltering,\n canCreate,\n canRead,\n}: Omit<EmptyOrNoPermissionsProps, 'onActionClick'>) => {\n if (isFiltering) {\n return {\n id: 'list.assets-empty.title-withSearch',\n defaultMessage: 'There are no elements with the applied filters',\n };\n }\n\n if (canRead) {\n if (canCreate) {\n return {\n id: 'list.assets.empty-upload',\n defaultMessage: 'Upload your first assets...',\n };\n }\n\n return {\n id: 'list.assets.empty',\n defaultMessage: 'Media Library is empty',\n };\n }\n\n return {\n id: 'header.actions.no-permissions',\n defaultMessage: 'No permissions to view',\n };\n};\n\nexport const EmptyOrNoPermissions = ({\n canCreate,\n isFiltering,\n canRead,\n onActionClick,\n}: EmptyOrNoPermissionsProps) => {\n const { formatMessage } = useIntl();\n const content = getContentIntlMessage({ isFiltering, canCreate, canRead });\n\n return (\n <EmptyAssets\n icon={!canRead ? EmptyPermissions : undefined}\n action={\n canCreate &&\n !isFiltering && (\n <Button variant=\"secondary\" startIcon={<Plus />} onClick={onActionClick}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n )\n }\n content={formatMessage({\n ...content,\n id: getTrad(content.id),\n })}\n />\n );\n};\n"],"names":["getContentIntlMessage","isFiltering","canCreate","canRead","id","defaultMessage","EmptyOrNoPermissions","onActionClick","formatMessage","useIntl","content","_jsx","EmptyAssets","icon","EmptyPermissions","undefined","action","Button","variant","startIcon","Plus","onClick","getTrad"],"mappings":";;;;;;;;;;;;AAeA,MAAMA,qBAAAA,GAAwB,CAAC,EAC7BC,WAAW,EACXC,SAAS,EACTC,OAAO,EAC0C,GAAA;AACjD,IAAA,IAAIF,WAAAA,EAAa;QACf,OAAO;YACLG,EAAAA,EAAI,oCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;AACF,IAAA;AAEA,IAAA,IAAIF,OAAAA,EAAS;AACX,QAAA,IAAID,SAAAA,EAAW;YACb,OAAO;gBACLE,EAAAA,EAAI,0BAAA;gBACJC,cAAAA,EAAgB;AAClB,aAAA;AACF,QAAA;QAEA,OAAO;YACLD,EAAAA,EAAI,mBAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;AACF,IAAA;IAEA,OAAO;QACLD,EAAAA,EAAI,+BAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA;AACF,CAAA;AAEO,MAAMC,oBAAAA,GAAuB,CAAC,EACnCJ,SAAS,EACTD,WAAW,EACXE,OAAO,EACPI,aAAa,EACa,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,UAAUV,qBAAAA,CAAsB;AAAEC,QAAAA,WAAAA;AAAaC,QAAAA,SAAAA;AAAWC,QAAAA;AAAQ,KAAA,CAAA;AAExE,IAAA,qBACEQ,GAAA,CAACC,WAAAA,EAAAA;QACCC,IAAAA,EAAM,CAACV,UAAUW,gBAAAA,GAAmBC,SAAAA;QACpCC,MAAAA,EACEd,SAAAA,IACA,CAACD,WAAAA,kBACCU,GAAA,CAACM,MAAAA,EAAAA;YAAOC,OAAAA,EAAQ,WAAA;AAAYC,YAAAA,SAAAA,gBAAWR,GAAA,CAACS,IAAAA,EAAAA,EAAAA,CAAAA;YAASC,OAAAA,EAASd,aAAAA;sBACvDC,aAAAA,CAAc;AACbJ,gBAAAA,EAAAA,EAAIkB,OAAAA,CAAQ,2BAAA,CAAA;gBACZjB,cAAAA,EAAgB;AAClB,aAAA;;AAINK,QAAAA,OAAAA,EAASF,aAAAA,CAAc;AACrB,YAAA,GAAGE,OAAO;YACVN,EAAAA,EAAIkB,OAAAA,CAAQZ,QAAQN,EAAE;AACxB,SAAA;;AAGN;;;;"}
@@ -13,10 +13,10 @@ var displayedFilters = require('../../../utils/displayedFilters.js');
13
13
  require('byte-size');
14
14
  require('date-fns');
15
15
  require('qs');
16
- require('../../../utils/typeFromMime.js');
17
16
  require('../../../utils/urlYupSchema.js');
18
17
 
19
- function _interopNamespaceDefault(e) {
18
+ function _interopNamespace(e) {
19
+ if (e && e.__esModule) return e;
20
20
  var n = Object.create(null);
21
21
  if (e) {
22
22
  Object.keys(e).forEach(function (k) {
@@ -33,7 +33,7 @@ function _interopNamespaceDefault(e) {
33
33
  return Object.freeze(n);
34
34
  }
35
35
 
36
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
36
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
37
37
 
38
38
  const Filters = ()=>{
39
39
  const [open, setOpen] = React__namespace.useState(false);
@@ -11,7 +11,6 @@ import { displayedFilters } from '../../../utils/displayedFilters.mjs';
11
11
  import 'byte-size';
12
12
  import 'date-fns';
13
13
  import 'qs';
14
- import '../../../utils/typeFromMime.mjs';
15
14
  import '../../../utils/urlYupSchema.mjs';
16
15
 
17
16
  const Filters = ()=>{
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.mjs","sources":["../../../../../admin/src/pages/App/components/Filters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\nimport { Button, Popover } from '@strapi/design-system';\nimport { Filter } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { FilterList } from '../../../components/FilterList/FilterList';\nimport { FilterPopover } from '../../../components/FilterPopover/FilterPopover';\nimport { useTracking } from '../../../hooks/useTracking';\nimport { displayedFilters } from '../../../utils';\n\nimport type { Query } from '../../../../../shared/contracts/files';\nimport type { FilterListProps } from '../../../components/FilterList/FilterList';\nimport type { FilterPopoverProps } from '../../../components/FilterPopover/FilterPopover';\n\nexport const Filters = () => {\n const [open, setOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }, setQuery] = useQueryParams<Query>();\n const filters = query?.filters?.$and || [];\n\n const handleRemoveFilter: FilterListProps['onRemoveFilter'] = (nextFilters) => {\n setQuery({ filters: { $and: nextFilters }, page: 1 } as Query);\n };\n\n const handleSubmit: FilterPopoverProps['onSubmit'] = (filters) => {\n trackUsage('didFilterMediaLibraryElements', {\n location: 'content-manager',\n filter: Object.keys(filters[filters.length - 1])[0],\n });\n setQuery({ filters: { $and: filters }, page: 1 } as Query);\n };\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger>\n <Button variant=\"tertiary\" startIcon={<Filter />} size=\"S\">\n {formatMessage({ id: 'app.utils.filters', defaultMessage: 'Filters' })}\n </Button>\n </Popover.Trigger>\n <FilterPopover\n displayedFilters={displayedFilters}\n filters={filters}\n onSubmit={handleSubmit}\n onToggle={setOpen as FilterPopoverProps['onToggle']}\n />\n <FilterList\n appliedFilters={filters as FilterListProps['appliedFilters']}\n filtersSchema={displayedFilters}\n onRemoveFilter={handleRemoveFilter}\n />\n </Popover.Root>\n );\n};\n"],"names":["Filters","open","setOpen","React","useState","formatMessage","useIntl","trackUsage","useTracking","query","setQuery","useQueryParams","filters","$and","handleRemoveFilter","nextFilters","page","handleSubmit","location","filter","Object","keys","length","_jsxs","Popover","Root","onOpenChange","_jsx","Trigger","Button","variant","startIcon","Filter","size","id","defaultMessage","FilterPopover","displayedFilters","onSubmit","onToggle","FilterList","appliedFilters","filtersSchema","onRemoveFilter"],"mappings":";;;;;;;;;;;;;;;;MAgBaA,OAAAA,GAAU,IAAA;AACrB,IAAA,MAAM,CAACC,IAAAA,EAAMC,OAAAA,CAAQ,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IACvC,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AACvB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,cAAAA,EAAAA;AAC9B,IAAA,MAAMC,OAAAA,GAAUH,KAAAA,EAAOG,OAAAA,EAASC,IAAAA,IAAQ,EAAE;AAE1C,IAAA,MAAMC,qBAAwD,CAACC,WAAAA,GAAAA;QAC7DL,QAAAA,CAAS;YAAEE,OAAAA,EAAS;gBAAEC,IAAAA,EAAME;AAAY,aAAA;YAAGC,IAAAA,EAAM;AAAE,SAAA,CAAA;AACrD,IAAA,CAAA;AAEA,IAAA,MAAMC,eAA+C,CAACL,OAAAA,GAAAA;AACpDL,QAAAA,UAAAA,CAAW,+BAAA,EAAiC;YAC1CW,QAAAA,EAAU,iBAAA;YACVC,MAAAA,EAAQC,MAAAA,CAAOC,IAAI,CAACT,OAAO,CAACA,OAAAA,CAAQU,MAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA;AACnD,SAAA,CAAA;QACAZ,QAAAA,CAAS;YAAEE,OAAAA,EAAS;gBAAEC,IAAAA,EAAMD;AAAQ,aAAA;YAAGI,IAAAA,EAAM;AAAE,SAAA,CAAA;AACjD,IAAA,CAAA;IAEA,qBACEO,IAAA,CAACC,QAAQC,IAAI,EAAA;QAACxB,IAAAA,EAAMA,IAAAA;QAAMyB,YAAAA,EAAcxB,OAAAA;;AACtC,0BAAAyB,GAAA,CAACH,QAAQI,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAD,GAAA,CAACE,MAAAA,EAAAA;oBAAOC,OAAAA,EAAQ,UAAA;AAAWC,oBAAAA,SAAAA,gBAAWJ,GAAA,CAACK,MAAAA,EAAAA,EAAAA,CAAAA;oBAAWC,IAAAA,EAAK,GAAA;8BACpD5B,aAAAA,CAAc;wBAAE6B,EAAAA,EAAI,mBAAA;wBAAqBC,cAAAA,EAAgB;AAAU,qBAAA;;;0BAGxER,GAAA,CAACS,aAAAA,EAAAA;gBACCC,gBAAAA,EAAkBA,gBAAAA;gBAClBzB,OAAAA,EAASA,OAAAA;gBACT0B,QAAAA,EAAUrB,YAAAA;gBACVsB,QAAAA,EAAUrC;;0BAEZyB,GAAA,CAACa,UAAAA,EAAAA;gBACCC,cAAAA,EAAgB7B,OAAAA;gBAChB8B,aAAAA,EAAeL,gBAAAA;gBACfM,cAAAA,EAAgB7B;;;;AAIxB;;;;"}
1
+ {"version":3,"file":"Filters.mjs","sources":["../../../../../admin/src/pages/App/components/Filters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\nimport { Button, Popover } from '@strapi/design-system';\nimport { Filter } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { FilterList } from '../../../components/FilterList/FilterList';\nimport { FilterPopover } from '../../../components/FilterPopover/FilterPopover';\nimport { useTracking } from '../../../hooks/useTracking';\nimport { displayedFilters } from '../../../utils';\n\nimport type { Query } from '../../../../../shared/contracts/files';\nimport type { FilterListProps } from '../../../components/FilterList/FilterList';\nimport type { FilterPopoverProps } from '../../../components/FilterPopover/FilterPopover';\n\nexport const Filters = () => {\n const [open, setOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }, setQuery] = useQueryParams<Query>();\n const filters = query?.filters?.$and || [];\n\n const handleRemoveFilter: FilterListProps['onRemoveFilter'] = (nextFilters) => {\n setQuery({ filters: { $and: nextFilters }, page: 1 } as Query);\n };\n\n const handleSubmit: FilterPopoverProps['onSubmit'] = (filters) => {\n trackUsage('didFilterMediaLibraryElements', {\n location: 'content-manager',\n filter: Object.keys(filters[filters.length - 1])[0],\n });\n setQuery({ filters: { $and: filters }, page: 1 } as Query);\n };\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger>\n <Button variant=\"tertiary\" startIcon={<Filter />} size=\"S\">\n {formatMessage({ id: 'app.utils.filters', defaultMessage: 'Filters' })}\n </Button>\n </Popover.Trigger>\n <FilterPopover\n displayedFilters={displayedFilters}\n filters={filters}\n onSubmit={handleSubmit}\n onToggle={setOpen as FilterPopoverProps['onToggle']}\n />\n <FilterList\n appliedFilters={filters as FilterListProps['appliedFilters']}\n filtersSchema={displayedFilters}\n onRemoveFilter={handleRemoveFilter}\n />\n </Popover.Root>\n );\n};\n"],"names":["Filters","open","setOpen","React","useState","formatMessage","useIntl","trackUsage","useTracking","query","setQuery","useQueryParams","filters","$and","handleRemoveFilter","nextFilters","page","handleSubmit","location","filter","Object","keys","length","_jsxs","Popover","Root","onOpenChange","_jsx","Trigger","Button","variant","startIcon","Filter","size","id","defaultMessage","FilterPopover","displayedFilters","onSubmit","onToggle","FilterList","appliedFilters","filtersSchema","onRemoveFilter"],"mappings":";;;;;;;;;;;;;;;MAgBaA,OAAAA,GAAU,IAAA;AACrB,IAAA,MAAM,CAACC,IAAAA,EAAMC,OAAAA,CAAQ,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IACvC,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AACvB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,cAAAA,EAAAA;AAC9B,IAAA,MAAMC,OAAAA,GAAUH,KAAAA,EAAOG,OAAAA,EAASC,IAAAA,IAAQ,EAAE;AAE1C,IAAA,MAAMC,qBAAwD,CAACC,WAAAA,GAAAA;QAC7DL,QAAAA,CAAS;YAAEE,OAAAA,EAAS;gBAAEC,IAAAA,EAAME;AAAY,aAAA;YAAGC,IAAAA,EAAM;AAAE,SAAA,CAAA;AACrD,IAAA,CAAA;AAEA,IAAA,MAAMC,eAA+C,CAACL,OAAAA,GAAAA;AACpDL,QAAAA,UAAAA,CAAW,+BAAA,EAAiC;YAC1CW,QAAAA,EAAU,iBAAA;YACVC,MAAAA,EAAQC,MAAAA,CAAOC,IAAI,CAACT,OAAO,CAACA,OAAAA,CAAQU,MAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA;AACnD,SAAA,CAAA;QACAZ,QAAAA,CAAS;YAAEE,OAAAA,EAAS;gBAAEC,IAAAA,EAAMD;AAAQ,aAAA;YAAGI,IAAAA,EAAM;AAAE,SAAA,CAAA;AACjD,IAAA,CAAA;IAEA,qBACEO,IAAA,CAACC,QAAQC,IAAI,EAAA;QAACxB,IAAAA,EAAMA,IAAAA;QAAMyB,YAAAA,EAAcxB,OAAAA;;AACtC,0BAAAyB,GAAA,CAACH,QAAQI,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAD,GAAA,CAACE,MAAAA,EAAAA;oBAAOC,OAAAA,EAAQ,UAAA;AAAWC,oBAAAA,SAAAA,gBAAWJ,GAAA,CAACK,MAAAA,EAAAA,EAAAA,CAAAA;oBAAWC,IAAAA,EAAK,GAAA;8BACpD5B,aAAAA,CAAc;wBAAE6B,EAAAA,EAAI,mBAAA;wBAAqBC,cAAAA,EAAgB;AAAU,qBAAA;;;0BAGxER,GAAA,CAACS,aAAAA,EAAAA;gBACCC,gBAAAA,EAAkBA,gBAAAA;gBAClBzB,OAAAA,EAASA,OAAAA;gBACT0B,QAAAA,EAAUrB,YAAAA;gBACVsB,QAAAA,EAAUrC;;0BAEZyB,GAAA,CAACa,UAAAA,EAAAA;gBACCC,cAAAA,EAAgB7B,OAAAA;gBAChB8B,aAAAA,EAAeL,gBAAAA;gBACfM,cAAAA,EAAgB7B;;;;AAIxB;;;;"}
@@ -11,7 +11,6 @@ var Breadcrumbs = require('../../../components/Breadcrumbs/Breadcrumbs.js');
11
11
  require('byte-size');
12
12
  require('date-fns');
13
13
  var getTrad = require('../../../utils/getTrad.js');
14
- require('../../../utils/typeFromMime.js');
15
14
  require('../../../utils/urlYupSchema.js');
16
15
 
17
16
  const Header = ({ breadcrumbs = null, canCreate, folder = null, onToggleEditFolderDialog, onToggleUploadAssetDialog })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../../admin/src/pages/App/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../utils';\n\nimport type { Folder } from '../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: (args?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2} width=\"100%\">\n <Button\n startIcon={<Plus />}\n variant=\"secondary\"\n onClick={onToggleEditFolderDialog}\n fullWidth\n >\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog} fullWidth>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","width","Button","Plus","variant","onClick","fullWidth"],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sources":["../../../../../admin/src/pages/App/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../utils';\n\nimport type { Folder } from '../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: (args?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2} width=\"100%\">\n <Button\n startIcon={<Plus />}\n variant=\"secondary\"\n onClick={onToggleEditFolderDialog}\n fullWidth\n >\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog} fullWidth>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","width","Button","Plus","variant","onClick","fullWidth"],"mappings":"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"}
@@ -9,7 +9,6 @@ import { Breadcrumbs } from '../../../components/Breadcrumbs/Breadcrumbs.mjs';
9
9
  import 'byte-size';
10
10
  import 'date-fns';
11
11
  import { getTrad } from '../../../utils/getTrad.mjs';
12
- import '../../../utils/typeFromMime.mjs';
13
12
  import '../../../utils/urlYupSchema.mjs';
14
13
 
15
14
  const Header = ({ breadcrumbs = null, canCreate, folder = null, onToggleEditFolderDialog, onToggleUploadAssetDialog })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"Header.mjs","sources":["../../../../../admin/src/pages/App/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../utils';\n\nimport type { Folder } from '../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: (args?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2} width=\"100%\">\n <Button\n startIcon={<Plus />}\n variant=\"secondary\"\n onClick={onToggleEditFolderDialog}\n fullWidth\n >\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog} fullWidth>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","width","Button","Plus","variant","onClick","fullWidth"],"mappings":"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"}
1
+ {"version":3,"file":"Header.mjs","sources":["../../../../../admin/src/pages/App/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../utils';\n\nimport type { Folder } from '../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: (args?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2} width=\"100%\">\n <Button\n startIcon={<Plus />}\n variant=\"secondary\"\n onClick={onToggleEditFolderDialog}\n fullWidth\n >\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog} fullWidth>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","width","Button","Plus","variant","onClick","fullWidth"],"mappings":"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"}
@@ -17,12 +17,14 @@ require('byte-size');
17
17
  require('date-fns');
18
18
  var getTrad = require('../../utils/getTrad.js');
19
19
  require('qs');
20
- require('../../utils/typeFromMime.js');
21
20
  require('../../utils/urlYupSchema.js');
22
21
  var init = require('./init.js');
23
22
  var reducer = require('./reducer.js');
24
23
 
25
- function _interopNamespaceDefault(e) {
24
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
25
+
26
+ function _interopNamespace(e) {
27
+ if (e && e.__esModule) return e;
26
28
  var n = Object.create(null);
27
29
  if (e) {
28
30
  Object.keys(e).forEach(function (k) {
@@ -39,7 +41,8 @@ function _interopNamespaceDefault(e) {
39
41
  return Object.freeze(n);
40
42
  }
41
43
 
42
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
44
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
45
+ var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
43
46
 
44
47
  // TODO: find a better naming convention for the file that was an index file before
45
48
  /* -------------------------------------------------------------------------------------------------
@@ -170,7 +173,7 @@ const MetadataAction = ({ job, imagesWithoutMetadataCount, isConfirmDialogOpen,
170
173
  }, [
171
174
  data
172
175
  ]);
173
- const isSaveButtonDisabled = isEqual(initialData, modifiedData);
176
+ const isSaveButtonDisabled = isEqual__default.default(initialData, modifiedData);
174
177
  const { mutateAsync, isLoading: isSubmitting } = reactQuery.useMutation(async (body)=>{
175
178
  const { data } = await put('/upload/settings', body);
176
179
  return data;