@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":"EditFolderDialog.mjs","sources":["../../../../admin/src/components/EditFolderDialog/EditFolderDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Field, Flex, Grid, Loader, Modal, Typography } from '@strapi/design-system';\nimport { Form, Formik, FormikErrors } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useBulkRemove } from '../../hooks/useBulkRemove';\nimport { useEditFolder } from '../../hooks/useEditFolder';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { useTracking } from '../../hooks/useTracking';\nimport { findRecursiveFolderByValue, getTrad, getAPIInnerErrors } from '../../utils';\nimport { ContextInfo } from '../ContextInfo/ContextInfo';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport { EditFolderModalHeader } from './ModalHeader/ModalHeader';\nimport { RemoveFolderDialog } from './RemoveFolderDialog';\n\nimport type { FolderDefinition } from '../../../../shared/contracts/folders';\nimport type { FetchError } from '@strapi/admin/strapi-admin';\n\nconst folderSchema = yup.object({\n name: yup.string().required(),\n parent: yup\n .object({\n label: yup.string(),\n value: yup.number().nullable(true),\n })\n .nullable(true),\n});\n\ninterface ValuesSubmit {\n name: string;\n parent: null | { label?: string; value?: number };\n}\n\nexport interface EditFolderDialogProps {\n parentFolderId?: string | number | null;\n location?: string;\n folder?: FolderDefinition;\n open?: boolean;\n onClose: (payload?: { created?: boolean | undefined } | boolean) => void;\n}\n\nexport const EditFolderContent = ({\n onClose,\n folder,\n location,\n parentFolderId,\n}: EditFolderDialogProps) => {\n const { data: folderStructure, isLoading: folderStructureIsLoading } = useFolderStructure({\n enabled: true,\n });\n const { canCreate, isLoading: isLoadingPermissions, canUpdate } = useMediaLibraryPermissions();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n const { formatMessage, formatDate } = useIntl();\n const { trackUsage } = useTracking();\n const { editFolder, isLoading: isEditFolderLoading } = useEditFolder();\n const { remove } = useBulkRemove();\n const { toggleNotification } = useNotification();\n const isLoading = isLoadingPermissions || folderStructureIsLoading;\n const isEditing = !!folder;\n const formDisabled = (folder && !canUpdate) || (!folder && !canCreate);\n const initialFormData: ValuesSubmit = !folderStructureIsLoading\n ? {\n name: folder?.name ?? '',\n parent: {\n /* ideally we would use folderStructure[0].value, but since it is null\n react complains about rendering null as field value */\n value: parentFolderId ? parseInt(parentFolderId.toString(), 10) : undefined,\n label: parentFolderId\n ? folderStructure &&\n findRecursiveFolderByValue(folderStructure, parseInt(parentFolderId.toString(), 10))\n ?.label\n : folderStructure?.[0].label,\n },\n }\n : {\n name: '',\n parent: null,\n };\n\n const formRef = React.useRef<HTMLFormElement>(null);\n\n const handleKeyDown =\n (handleSubmit: (event: React.FormEvent<HTMLFormElement>) => void) =>\n (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (event.key === 'Enter') {\n if (event.target instanceof HTMLInputElement) {\n handleSubmit(event);\n event.preventDefault();\n }\n }\n };\n\n const handleSubmit = async (\n values: ValuesSubmit,\n { setErrors }: { setErrors: (errors: FormikErrors<ValuesSubmit>) => void }\n ) => {\n try {\n await editFolder(\n {\n ...values,\n parent: values.parent?.value ?? null,\n },\n folder?.id\n );\n\n toggleNotification({\n type: 'success',\n message: isEditing\n ? formatMessage({\n id: getTrad('modal.folder-notification-edited-success'),\n defaultMessage: 'Folder successfully edited',\n })\n : formatMessage({\n id: getTrad('modal.folder-notification-created-success'),\n defaultMessage: 'Folder successfully created',\n }),\n });\n\n if (isEditing) {\n const didChangeLocation = parentFolderId\n ? parseInt(parentFolderId.toString(), 10) !== values.parent?.value\n : parentFolderId === null && !!values.parent?.value;\n trackUsage('didEditMediaLibraryElements', {\n location,\n type: 'folder',\n changeLocation: didChangeLocation,\n });\n } else {\n trackUsage('didAddMediaLibraryFolders', { location: location! });\n }\n\n onClose({ created: true });\n } catch (err) {\n const errors = getAPIInnerErrors(err as FetchError, { getTrad });\n const formikErrors = Object.entries(errors!).reduce(\n (acc: Record<string, string>, [key, error]) => {\n acc[key] = error.defaultMessage;\n\n return acc;\n },\n {}\n );\n\n if (!isEmpty(formikErrors)) {\n setErrors(formikErrors);\n }\n }\n };\n\n const handleDelete = async () => {\n if (folder) {\n await remove([folder]);\n }\n\n setShowConfirmDialog(false);\n onClose();\n };\n\n if (isLoading) {\n return (\n <>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Flex justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </Flex>\n </Modal.Body>\n </>\n );\n }\n\n return (\n <>\n <Formik\n validationSchema={folderSchema}\n validateOnChange={false}\n onSubmit={handleSubmit}\n initialValues={initialFormData}\n >\n {({ values, errors, handleChange, setFieldValue, handleSubmit }) => (\n <Form noValidate ref={formRef} onKeyDown={handleKeyDown(handleSubmit)}>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Grid.Root gap={4}>\n {isEditing && (\n <Grid.Item xs={12} col={12} direction=\"column\" alignItems=\"stretch\">\n <ContextInfo\n blocks={[\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.elements'),\n defaultMessage: 'Elements',\n }),\n value: formatMessage(\n {\n id: getTrad('modal.folder.elements.count'),\n defaultMessage: '{folderCount} folders, {assetCount} assets',\n },\n {\n assetCount: folder?.files?.count ?? 0,\n folderCount: folder?.children?.count ?? 0,\n }\n ),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.creation-date'),\n defaultMessage: 'Creation Date',\n }),\n value: formatDate(new Date(folder.createdAt!)),\n },\n ]}\n />\n </Grid.Item>\n )}\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={typeof errors.name === 'string' ? errors.name : undefined}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-name'),\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <Field.Input\n value={values.name}\n onChange={handleChange}\n disabled={formDisabled}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root id=\"folder-parent\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n options={folderStructure!}\n onChange={(value) => {\n setFieldValue('parent', value);\n }}\n isDisabled={formDisabled}\n defaultValue={values.parent!}\n name=\"parent\"\n menuPortalTarget={document.querySelector('body')}\n inputId=\"folder-parent\"\n disabled={formDisabled}\n error={typeof errors.parent === 'string' ? errors.parent : undefined}\n ariaErrorMessage=\"folder-parent-error\"\n />\n\n {errors.parent && (\n <Typography\n variant=\"pi\"\n tag=\"p\"\n id=\"folder-parent-error\"\n textColor=\"danger600\"\n >\n {typeof errors.parent === 'string' ? errors.parent : undefined}\n </Typography>\n )}\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => onClose()} variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Flex gap={2}>\n {isEditing && canUpdate && (\n <Button\n type=\"button\"\n variant=\"danger-light\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"delete\"\n disabled={!canUpdate || isEditFolderLoading}\n >\n {formatMessage({\n id: getTrad('modal.folder.create.delete'),\n defaultMessage: 'Delete folder',\n })}\n </Button>\n )}\n\n <Button\n name=\"submit\"\n loading={isEditFolderLoading}\n disabled={formDisabled}\n type=\"submit\"\n >\n {formatMessage(\n isEditing\n ? { id: getTrad('modal.folder.edit.submit'), defaultMessage: 'Save' }\n : { id: getTrad('modal.folder.create.submit'), defaultMessage: 'Create' }\n )}\n </Button>\n </Flex>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n <RemoveFolderDialog\n open={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n onConfirm={handleDelete}\n />\n </>\n );\n};\n\nexport const EditFolderDialog = ({ open, onClose, ...restProps }: EditFolderDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <EditFolderContent {...restProps} onClose={onClose} open={open} />\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["folderSchema","yup","object","name","string","required","parent","label","value","number","nullable","EditFolderContent","onClose","folder","location","parentFolderId","data","folderStructure","isLoading","folderStructureIsLoading","useFolderStructure","enabled","canCreate","isLoadingPermissions","canUpdate","useMediaLibraryPermissions","showConfirmDialog","setShowConfirmDialog","React","useState","formatMessage","formatDate","useIntl","trackUsage","useTracking","editFolder","isEditFolderLoading","useEditFolder","remove","useBulkRemove","toggleNotification","useNotification","isEditing","formDisabled","initialFormData","parseInt","toString","undefined","findRecursiveFolderByValue","formRef","useRef","handleKeyDown","handleSubmit","event","key","target","HTMLInputElement","preventDefault","values","setErrors","id","type","message","getTrad","defaultMessage","didChangeLocation","changeLocation","created","err","errors","getAPIInnerErrors","formikErrors","Object","entries","reduce","acc","error","isEmpty","handleDelete","_jsxs","_Fragment","_jsx","EditFolderModalHeader","Modal","Body","Flex","justifyContent","paddingTop","paddingBottom","Loader","Formik","validationSchema","validateOnChange","onSubmit","initialValues","handleChange","setFieldValue","Form","noValidate","ref","onKeyDown","Grid","Root","gap","Item","xs","col","direction","alignItems","ContextInfo","blocks","assetCount","files","count","folderCount","children","Date","createdAt","Field","Label","Input","onChange","disabled","Error","SelectTree","options","isDisabled","defaultValue","menuPortalTarget","document","querySelector","inputId","ariaErrorMessage","Typography","variant","tag","textColor","Footer","Button","onClick","loading","RemoveFolderDialog","open","onConfirm","EditFolderDialog","restProps","onOpenChange","Content"],"mappings":"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"}
1
+ {"version":3,"file":"EditFolderDialog.mjs","sources":["../../../../admin/src/components/EditFolderDialog/EditFolderDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Field, Flex, Grid, Loader, Modal, Typography } from '@strapi/design-system';\nimport { Form, Formik, FormikErrors } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { useBulkRemove } from '../../hooks/useBulkRemove';\nimport { useEditFolder } from '../../hooks/useEditFolder';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { useTracking } from '../../hooks/useTracking';\nimport { findRecursiveFolderByValue, getTrad, getAPIInnerErrors } from '../../utils';\nimport { ContextInfo } from '../ContextInfo/ContextInfo';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport { EditFolderModalHeader } from './ModalHeader/ModalHeader';\nimport { RemoveFolderDialog } from './RemoveFolderDialog';\n\nimport type { FolderDefinition } from '../../../../shared/contracts/folders';\nimport type { FetchError } from '@strapi/admin/strapi-admin';\n\nconst folderSchema = yup.object({\n name: yup.string().required(),\n parent: yup\n .object({\n label: yup.string(),\n value: yup.number().nullable(true),\n })\n .nullable(true),\n});\n\ninterface ValuesSubmit {\n name: string;\n parent: null | { label?: string; value?: number };\n}\n\nexport interface EditFolderDialogProps {\n parentFolderId?: string | number | null;\n location?: string;\n folder?: FolderDefinition;\n open?: boolean;\n onClose: (payload?: { created?: boolean | undefined } | boolean) => void;\n}\n\nexport const EditFolderContent = ({\n onClose,\n folder,\n location,\n parentFolderId,\n}: EditFolderDialogProps) => {\n const { data: folderStructure, isLoading: folderStructureIsLoading } = useFolderStructure({\n enabled: true,\n });\n const { canCreate, isLoading: isLoadingPermissions, canUpdate } = useMediaLibraryPermissions();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n const { formatMessage, formatDate } = useIntl();\n const { trackUsage } = useTracking();\n const { editFolder, isLoading: isEditFolderLoading } = useEditFolder();\n const { remove } = useBulkRemove();\n const { toggleNotification } = useNotification();\n const isLoading = isLoadingPermissions || folderStructureIsLoading;\n const isEditing = !!folder;\n const formDisabled = (folder && !canUpdate) || (!folder && !canCreate);\n const initialFormData: ValuesSubmit = !folderStructureIsLoading\n ? {\n name: folder?.name ?? '',\n parent: {\n /* ideally we would use folderStructure[0].value, but since it is null\n react complains about rendering null as field value */\n value: parentFolderId ? parseInt(parentFolderId.toString(), 10) : undefined,\n label: parentFolderId\n ? folderStructure &&\n findRecursiveFolderByValue(folderStructure, parseInt(parentFolderId.toString(), 10))\n ?.label\n : folderStructure?.[0].label,\n },\n }\n : {\n name: '',\n parent: null,\n };\n\n const formRef = React.useRef<HTMLFormElement>(null);\n\n const handleKeyDown =\n (handleSubmit: (event: React.FormEvent<HTMLFormElement>) => void) =>\n (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (event.key === 'Enter') {\n if (event.target instanceof HTMLInputElement) {\n handleSubmit(event);\n event.preventDefault();\n }\n }\n };\n\n const handleSubmit = async (\n values: ValuesSubmit,\n { setErrors }: { setErrors: (errors: FormikErrors<ValuesSubmit>) => void }\n ) => {\n try {\n await editFolder(\n {\n ...values,\n parent: values.parent?.value ?? null,\n },\n folder?.id\n );\n\n toggleNotification({\n type: 'success',\n message: isEditing\n ? formatMessage({\n id: getTrad('modal.folder-notification-edited-success'),\n defaultMessage: 'Folder successfully edited',\n })\n : formatMessage({\n id: getTrad('modal.folder-notification-created-success'),\n defaultMessage: 'Folder successfully created',\n }),\n });\n\n if (isEditing) {\n const didChangeLocation = parentFolderId\n ? parseInt(parentFolderId.toString(), 10) !== values.parent?.value\n : parentFolderId === null && !!values.parent?.value;\n trackUsage('didEditMediaLibraryElements', {\n location,\n type: 'folder',\n changeLocation: didChangeLocation,\n });\n } else {\n trackUsage('didAddMediaLibraryFolders', { location: location! });\n }\n\n onClose({ created: true });\n } catch (err) {\n const errors = getAPIInnerErrors(err as FetchError, { getTrad });\n const formikErrors = Object.entries(errors!).reduce(\n (acc: Record<string, string>, [key, error]) => {\n acc[key] = error.defaultMessage;\n\n return acc;\n },\n {}\n );\n\n if (!isEmpty(formikErrors)) {\n setErrors(formikErrors);\n }\n }\n };\n\n const handleDelete = async () => {\n if (folder) {\n await remove([folder]);\n }\n\n setShowConfirmDialog(false);\n onClose();\n };\n\n if (isLoading) {\n return (\n <>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Flex justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </Flex>\n </Modal.Body>\n </>\n );\n }\n\n return (\n <>\n <Formik\n validationSchema={folderSchema}\n validateOnChange={false}\n onSubmit={handleSubmit}\n initialValues={initialFormData}\n >\n {({ values, errors, handleChange, setFieldValue, handleSubmit }) => (\n <Form noValidate ref={formRef} onKeyDown={handleKeyDown(handleSubmit)}>\n <EditFolderModalHeader isEditing={isEditing} />\n <Modal.Body>\n <Grid.Root gap={4}>\n {isEditing && (\n <Grid.Item xs={12} col={12} direction=\"column\" alignItems=\"stretch\">\n <ContextInfo\n blocks={[\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.elements'),\n defaultMessage: 'Elements',\n }),\n value: formatMessage(\n {\n id: getTrad('modal.folder.elements.count'),\n defaultMessage: '{folderCount} folders, {assetCount} assets',\n },\n {\n assetCount: folder?.files?.count ?? 0,\n folderCount: folder?.children?.count ?? 0,\n }\n ),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.folder.create.creation-date'),\n defaultMessage: 'Creation Date',\n }),\n value: formatDate(new Date(folder.createdAt!)),\n },\n ]}\n />\n </Grid.Item>\n )}\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={typeof errors.name === 'string' ? errors.name : undefined}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-name'),\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <Field.Input\n value={values.name}\n onChange={handleChange}\n disabled={formDisabled}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root id=\"folder-parent\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n options={folderStructure!}\n onChange={(value) => {\n setFieldValue('parent', value);\n }}\n isDisabled={formDisabled}\n defaultValue={values.parent!}\n name=\"parent\"\n menuPortalTarget={document.querySelector('body')}\n inputId=\"folder-parent\"\n disabled={formDisabled}\n error={typeof errors.parent === 'string' ? errors.parent : undefined}\n ariaErrorMessage=\"folder-parent-error\"\n />\n\n {errors.parent && (\n <Typography\n variant=\"pi\"\n tag=\"p\"\n id=\"folder-parent-error\"\n textColor=\"danger600\"\n >\n {typeof errors.parent === 'string' ? errors.parent : undefined}\n </Typography>\n )}\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => onClose()} variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Flex gap={2}>\n {isEditing && canUpdate && (\n <Button\n type=\"button\"\n variant=\"danger-light\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"delete\"\n disabled={!canUpdate || isEditFolderLoading}\n >\n {formatMessage({\n id: getTrad('modal.folder.create.delete'),\n defaultMessage: 'Delete folder',\n })}\n </Button>\n )}\n\n <Button\n name=\"submit\"\n loading={isEditFolderLoading}\n disabled={formDisabled}\n type=\"submit\"\n >\n {formatMessage(\n isEditing\n ? { id: getTrad('modal.folder.edit.submit'), defaultMessage: 'Save' }\n : { id: getTrad('modal.folder.create.submit'), defaultMessage: 'Create' }\n )}\n </Button>\n </Flex>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n <RemoveFolderDialog\n open={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n onConfirm={handleDelete}\n />\n </>\n );\n};\n\nexport const EditFolderDialog = ({ open, onClose, ...restProps }: EditFolderDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <EditFolderContent {...restProps} onClose={onClose} open={open} />\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["folderSchema","yup","object","name","string","required","parent","label","value","number","nullable","EditFolderContent","onClose","folder","location","parentFolderId","data","folderStructure","isLoading","folderStructureIsLoading","useFolderStructure","enabled","canCreate","isLoadingPermissions","canUpdate","useMediaLibraryPermissions","showConfirmDialog","setShowConfirmDialog","React","useState","formatMessage","formatDate","useIntl","trackUsage","useTracking","editFolder","isEditFolderLoading","useEditFolder","remove","useBulkRemove","toggleNotification","useNotification","isEditing","formDisabled","initialFormData","parseInt","toString","undefined","findRecursiveFolderByValue","formRef","useRef","handleKeyDown","handleSubmit","event","key","target","HTMLInputElement","preventDefault","values","setErrors","id","type","message","getTrad","defaultMessage","didChangeLocation","changeLocation","created","err","errors","getAPIInnerErrors","formikErrors","Object","entries","reduce","acc","error","isEmpty","handleDelete","_jsxs","_Fragment","_jsx","EditFolderModalHeader","Modal","Body","Flex","justifyContent","paddingTop","paddingBottom","Loader","Formik","validationSchema","validateOnChange","onSubmit","initialValues","handleChange","setFieldValue","Form","noValidate","ref","onKeyDown","Grid","Root","gap","Item","xs","col","direction","alignItems","ContextInfo","blocks","assetCount","files","count","folderCount","children","Date","createdAt","Field","Label","Input","onChange","disabled","Error","SelectTree","options","isDisabled","defaultValue","menuPortalTarget","document","querySelector","inputId","ariaErrorMessage","Typography","variant","tag","textColor","Footer","Button","onClick","loading","RemoveFolderDialog","open","onConfirm","EditFolderDialog","restProps","onOpenChange","Content"],"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
 
13
12
  const EditFolderModalHeader = ({ isEditing = false })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"ModalHeader.js","sources":["../../../../../admin/src/components/EditFolderDialog/ModalHeader/ModalHeader.tsx"],"sourcesContent":["import { Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\ninterface EditFolderModalHeaderProps {\n isEditing?: boolean;\n}\n\nexport const EditFolderModalHeader = ({ isEditing = false }: EditFolderModalHeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n isEditing\n ? {\n id: getTrad('modal.folder.edit.title'),\n defaultMessage: 'Edit folder',\n }\n : {\n id: getTrad('modal.folder.create.title'),\n defaultMessage: 'Add new folder',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n );\n};\n"],"names":["EditFolderModalHeader","isEditing","formatMessage","useIntl","_jsx","Modal","Header","Title","id","getTrad","defaultMessage"],"mappings":";;;;;;;;;;;;MASaA,qBAAAA,GAAwB,CAAC,EAAEC,SAAAA,GAAY,KAAK,EAA8B,GAAA;IACrF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,qBACEC,cAAA,CAACC,mBAAMC,MAAM,EAAA;gCACXF,cAAA,CAACC,mBAAME,KAAK,EAAA;AACTL,YAAAA,QAAAA,EAAAA,aAAAA,CACCD,SAAAA,GACI;AACEO,gBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,yBAAA,CAAA;gBACZC,cAAAA,EAAgB;aAClB,GACA;AACEF,gBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,2BAAA,CAAA;gBACZC,cAAAA,EAAgB;AAClB,aAAA;;;AAKd;;;;"}
1
+ {"version":3,"file":"ModalHeader.js","sources":["../../../../../admin/src/components/EditFolderDialog/ModalHeader/ModalHeader.tsx"],"sourcesContent":["import { Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\ninterface EditFolderModalHeaderProps {\n isEditing?: boolean;\n}\n\nexport const EditFolderModalHeader = ({ isEditing = false }: EditFolderModalHeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n isEditing\n ? {\n id: getTrad('modal.folder.edit.title'),\n defaultMessage: 'Edit folder',\n }\n : {\n id: getTrad('modal.folder.create.title'),\n defaultMessage: 'Add new folder',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n );\n};\n"],"names":["EditFolderModalHeader","isEditing","formatMessage","useIntl","_jsx","Modal","Header","Title","id","getTrad","defaultMessage"],"mappings":";;;;;;;;;;;MASaA,qBAAAA,GAAwB,CAAC,EAAEC,SAAAA,GAAY,KAAK,EAA8B,GAAA;IACrF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,qBACEC,cAAA,CAACC,mBAAMC,MAAM,EAAA;gCACXF,cAAA,CAACC,mBAAME,KAAK,EAAA;AACTL,YAAAA,QAAAA,EAAAA,aAAAA,CACCD,SAAAA,GACI;AACEO,gBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,yBAAA,CAAA;gBACZC,cAAAA,EAAgB;aAClB,GACA;AACEF,gBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,2BAAA,CAAA;gBACZC,cAAAA,EAAgB;AAClB,aAAA;;;AAKd;;;;"}
@@ -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
 
11
10
  const EditFolderModalHeader = ({ isEditing = false })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"ModalHeader.mjs","sources":["../../../../../admin/src/components/EditFolderDialog/ModalHeader/ModalHeader.tsx"],"sourcesContent":["import { Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\ninterface EditFolderModalHeaderProps {\n isEditing?: boolean;\n}\n\nexport const EditFolderModalHeader = ({ isEditing = false }: EditFolderModalHeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n isEditing\n ? {\n id: getTrad('modal.folder.edit.title'),\n defaultMessage: 'Edit folder',\n }\n : {\n id: getTrad('modal.folder.create.title'),\n defaultMessage: 'Add new folder',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n );\n};\n"],"names":["EditFolderModalHeader","isEditing","formatMessage","useIntl","_jsx","Modal","Header","Title","id","getTrad","defaultMessage"],"mappings":";;;;;;;;;;MASaA,qBAAAA,GAAwB,CAAC,EAAEC,SAAAA,GAAY,KAAK,EAA8B,GAAA;IACrF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,qBACEC,GAAA,CAACC,MAAMC,MAAM,EAAA;gCACXF,GAAA,CAACC,MAAME,KAAK,EAAA;AACTL,YAAAA,QAAAA,EAAAA,aAAAA,CACCD,SAAAA,GACI;AACEO,gBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,yBAAA,CAAA;gBACZC,cAAAA,EAAgB;aAClB,GACA;AACEF,gBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,2BAAA,CAAA;gBACZC,cAAAA,EAAgB;AAClB,aAAA;;;AAKd;;;;"}
1
+ {"version":3,"file":"ModalHeader.mjs","sources":["../../../../../admin/src/components/EditFolderDialog/ModalHeader/ModalHeader.tsx"],"sourcesContent":["import { Modal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\ninterface EditFolderModalHeaderProps {\n isEditing?: boolean;\n}\n\nexport const EditFolderModalHeader = ({ isEditing = false }: EditFolderModalHeaderProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n isEditing\n ? {\n id: getTrad('modal.folder.edit.title'),\n defaultMessage: 'Edit folder',\n }\n : {\n id: getTrad('modal.folder.create.title'),\n defaultMessage: 'Add new folder',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n );\n};\n"],"names":["EditFolderModalHeader","isEditing","formatMessage","useIntl","_jsx","Modal","Header","Title","id","getTrad","defaultMessage"],"mappings":";;;;;;;;;MASaA,qBAAAA,GAAwB,CAAC,EAAEC,SAAAA,GAAY,KAAK,EAA8B,GAAA;IACrF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,qBACEC,GAAA,CAACC,MAAMC,MAAM,EAAA;gCACXF,GAAA,CAACC,MAAME,KAAK,EAAA;AACTL,YAAAA,QAAAA,EAAAA,aAAAA,CACCD,SAAAA,GACI;AACEO,gBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,yBAAA,CAAA;gBACZC,cAAAA,EAAgB;aAClB,GACA;AACEF,gBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,2BAAA,CAAA;gBACZC,cAAAA,EAAgB;AAClB,aAAA;;;AAKd;;;;"}
@@ -8,7 +8,8 @@ var reactIntl = require('react-intl');
8
8
  var FilterValueInput = require('./FilterValueInput.js');
9
9
  var getFilterList = require('./utils/getFilterList.js');
10
10
 
11
- function _interopNamespaceDefault(e) {
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
12
13
  var n = Object.create(null);
13
14
  if (e) {
14
15
  Object.keys(e).forEach(function (k) {
@@ -25,7 +26,7 @@ function _interopNamespaceDefault(e) {
25
26
  return Object.freeze(n);
26
27
  }
27
28
 
28
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
29
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
30
 
30
31
  // TODO: find a better naming convention for the file that was an index file before
31
32
  const FilterPopover = ({ displayedFilters, filters, onSubmit, onToggle })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"FilterPopover.js","sources":["../../../../admin/src/components/FilterPopover/FilterPopover.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\n/**\n *\n * FilterPopover\n *\n */\nimport * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n SingleSelectOption,\n Popover,\n SingleSelect,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { FilterValueInput } from './FilterValueInput';\nimport { getFilterList } from './utils/getFilterList';\n\ntype Filter = {\n [key in 'mime' | 'createdAt' | 'updatedAt']?:\n | {\n [key in '$contains' | '$notContains' | '$eq' | '$not']?:\n | string[]\n | string\n | { $contains: string[] };\n }\n | undefined;\n};\n\nexport interface FilterPopoverProps {\n displayedFilters: {\n name: string;\n metadatas?: {\n label?: string;\n };\n fieldSchema: {\n type: string;\n options?: {\n value: string;\n }[];\n mainField?: {\n schema: {\n type: string;\n };\n };\n };\n }[];\n filters: Filter[];\n onSubmit: (filters: Filter[]) => void;\n onToggle: () => void;\n}\n\nexport const FilterPopover = ({\n displayedFilters,\n filters,\n onSubmit,\n onToggle,\n}: FilterPopoverProps) => {\n const { formatMessage } = useIntl();\n\n const [modifiedData, setModifiedData] = React.useState({\n name: 'createdAt',\n filter: '$eq',\n value: '',\n });\n\n const handleChangeFilterField = (value: string | number) => {\n const nextField = displayedFilters.find((f) => f.name === value);\n if (!nextField) {\n return;\n }\n const {\n fieldSchema: { type, options },\n } = nextField;\n let filterValue = '';\n\n if (type === 'enumeration') {\n filterValue = options?.[0].value || '';\n }\n\n const filter = getFilterList(nextField)[0].value;\n\n setModifiedData({ name: value.toString(), filter, value: filterValue });\n };\n\n const handleChangeOperator = (operator: string | number) => {\n if (modifiedData.name === 'mime') {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: 'image' }));\n } else {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: '' }));\n }\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n const encodedValue = encodeURIComponent(modifiedData.value);\n\n if (encodedValue) {\n if (modifiedData.name === 'mime') {\n const alreadyAppliedFilters = filters.filter((filter) => {\n return Object.keys(filter)[0] === 'mime';\n });\n\n if (modifiedData.value === 'file') {\n const filtersWithoutMimeType = filters.filter((filter) => {\n return Object.keys(filter)[0] !== 'mime';\n });\n\n let hasCurrentFilter = false;\n\n let filterToAdd: Filter;\n\n if (modifiedData.filter === '$contains') {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n if (typeof filter.mime?.$not !== 'string' && !Array.isArray(filter.mime?.$not)) {\n return filter.mime?.$not?.$contains !== undefined;\n }\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $not: {\n $contains: ['image', 'video'],\n },\n },\n };\n } else {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n return Array.isArray(filter.mime?.$contains);\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $contains: ['image', 'video'],\n },\n };\n }\n\n if (hasCurrentFilter) {\n onToggle();\n\n return;\n }\n\n const nextFilters = [...filtersWithoutMimeType, filterToAdd];\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n const hasFilter =\n alreadyAppliedFilters.find((filter) => {\n const modifiedDataFilter = modifiedData.filter;\n return (\n filter.mime &&\n filter.mime[modifiedDataFilter as keyof typeof filter.mime] === modifiedData.value\n );\n }) !== undefined;\n\n // Don't apply the same filter twice\n if (hasFilter) {\n onToggle();\n\n return;\n }\n\n const filtersWithoutFile = filters.filter((filter) => {\n const filterType = Object.keys(filter)[0];\n\n if (filterType !== 'mime') {\n return true;\n }\n\n if (\n typeof filter.mime?.$not !== 'string' &&\n !Array.isArray(filter.mime?.$not) &&\n filter.mime?.$not?.$contains !== undefined\n ) {\n return false;\n }\n\n if (Array.isArray(filter?.mime?.$contains)) {\n return false;\n }\n\n return true;\n });\n\n const oppositeFilter = modifiedData.filter === '$contains' ? '$notContains' : '$contains';\n\n const oppositeFilterIndex = filtersWithoutFile.findIndex((filter) => {\n return filter.mime?.[oppositeFilter] === modifiedData.value;\n });\n const hasOppositeFilter = oppositeFilterIndex !== -1;\n\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: modifiedData.value } };\n\n if (!hasOppositeFilter) {\n const nextFilters = [...filtersWithoutFile, filterToAdd];\n\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n if (hasOppositeFilter) {\n const nextFilters = filtersWithoutFile.slice();\n nextFilters.splice(oppositeFilterIndex, 1, filterToAdd);\n onSubmit(nextFilters);\n\n onToggle();\n }\n\n return;\n }\n\n const hasFilter =\n filters.find((filter) => {\n const modifiedDataName = modifiedData.name as\n | 'mime'\n | 'createdAt'\n | 'updatedAt'\n | '$contains'\n | '$notContains'\n | '$eq'\n | '$not';\n return (\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt'] &&\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt']?.[\n modifiedDataName as '$contains' | '$notContains' | '$eq' | '$not'\n ] === encodedValue\n );\n }) !== undefined;\n\n if (!hasFilter) {\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: encodedValue } };\n\n const nextFilters = [...filters, filterToAdd];\n\n onSubmit(nextFilters);\n }\n }\n\n onToggle();\n };\n\n const appliedFilter = displayedFilters.find((filter) => filter.name === modifiedData.name);\n\n return (\n <Popover.Content sideOffset={4} style={{ zIndex: 499 }}>\n <form onSubmit={handleSubmit}>\n <Flex padding={3} direction=\"column\" alignItems=\"stretch\" gap={1} style={{ minWidth: 184 }}>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-field',\n defaultMessage: 'Select field',\n })}\n name=\"name\"\n size=\"M\"\n onChange={handleChangeFilterField}\n value={modifiedData.name}\n >\n {displayedFilters.map((filter) => {\n return (\n <SingleSelectOption key={filter.name} value={filter.name}>\n {filter.metadatas?.label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-filter',\n defaultMessage: 'Select filter',\n })}\n name=\"filter\"\n size=\"M\"\n value={modifiedData.filter}\n onChange={handleChangeOperator}\n >\n {getFilterList(appliedFilter!).map((option) => {\n return (\n <SingleSelectOption key={option.value} value={option.value}>\n {formatMessage(option.intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <FilterValueInput\n {...appliedFilter?.metadatas}\n {...appliedFilter?.fieldSchema}\n value={modifiedData.value}\n onChange={(value) => setModifiedData((prev) => ({ ...prev, value }))}\n />\n </Box>\n <Box>\n <Button size=\"L\" variant=\"secondary\" startIcon={<Plus />} type=\"submit\" fullWidth>\n {formatMessage({ id: 'app.utils.add-filter', defaultMessage: 'Add filter' })}\n </Button>\n </Box>\n </Flex>\n </form>\n </Popover.Content>\n );\n};\n"],"names":["FilterPopover","displayedFilters","filters","onSubmit","onToggle","formatMessage","useIntl","modifiedData","setModifiedData","React","useState","name","filter","value","handleChangeFilterField","nextField","find","f","fieldSchema","type","options","filterValue","getFilterList","toString","handleChangeOperator","operator","prev","handleSubmit","e","preventDefault","stopPropagation","encodedValue","encodeURIComponent","alreadyAppliedFilters","Object","keys","filtersWithoutMimeType","hasCurrentFilter","filterToAdd","mime","$not","Array","isArray","$contains","undefined","nextFilters","hasFilter","modifiedDataFilter","filtersWithoutFile","filterType","oppositeFilter","oppositeFilterIndex","findIndex","hasOppositeFilter","slice","splice","modifiedDataName","appliedFilter","_jsx","Popover","Content","sideOffset","style","zIndex","form","_jsxs","Flex","padding","direction","alignItems","gap","minWidth","Box","SingleSelect","aria-label","id","defaultMessage","size","onChange","map","SingleSelectOption","metadatas","label","option","intlLabel","FilterValueInput","Button","variant","startIcon","Plus","fullWidth"],"mappings":"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"}
1
+ {"version":3,"file":"FilterPopover.js","sources":["../../../../admin/src/components/FilterPopover/FilterPopover.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\n/**\n *\n * FilterPopover\n *\n */\nimport * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n SingleSelectOption,\n Popover,\n SingleSelect,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { FilterValueInput } from './FilterValueInput';\nimport { getFilterList } from './utils/getFilterList';\n\ntype Filter = {\n [key in 'mime' | 'createdAt' | 'updatedAt']?:\n | {\n [key in '$contains' | '$notContains' | '$eq' | '$not']?:\n | string[]\n | string\n | { $contains: string[] };\n }\n | undefined;\n};\n\nexport interface FilterPopoverProps {\n displayedFilters: {\n name: string;\n metadatas?: {\n label?: string;\n };\n fieldSchema: {\n type: string;\n options?: {\n value: string;\n }[];\n mainField?: {\n schema: {\n type: string;\n };\n };\n };\n }[];\n filters: Filter[];\n onSubmit: (filters: Filter[]) => void;\n onToggle: () => void;\n}\n\nexport const FilterPopover = ({\n displayedFilters,\n filters,\n onSubmit,\n onToggle,\n}: FilterPopoverProps) => {\n const { formatMessage } = useIntl();\n\n const [modifiedData, setModifiedData] = React.useState({\n name: 'createdAt',\n filter: '$eq',\n value: '',\n });\n\n const handleChangeFilterField = (value: string | number) => {\n const nextField = displayedFilters.find((f) => f.name === value);\n if (!nextField) {\n return;\n }\n const {\n fieldSchema: { type, options },\n } = nextField;\n let filterValue = '';\n\n if (type === 'enumeration') {\n filterValue = options?.[0].value || '';\n }\n\n const filter = getFilterList(nextField)[0].value;\n\n setModifiedData({ name: value.toString(), filter, value: filterValue });\n };\n\n const handleChangeOperator = (operator: string | number) => {\n if (modifiedData.name === 'mime') {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: 'image' }));\n } else {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: '' }));\n }\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n const encodedValue = encodeURIComponent(modifiedData.value);\n\n if (encodedValue) {\n if (modifiedData.name === 'mime') {\n const alreadyAppliedFilters = filters.filter((filter) => {\n return Object.keys(filter)[0] === 'mime';\n });\n\n if (modifiedData.value === 'file') {\n const filtersWithoutMimeType = filters.filter((filter) => {\n return Object.keys(filter)[0] !== 'mime';\n });\n\n let hasCurrentFilter = false;\n\n let filterToAdd: Filter;\n\n if (modifiedData.filter === '$contains') {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n if (typeof filter.mime?.$not !== 'string' && !Array.isArray(filter.mime?.$not)) {\n return filter.mime?.$not?.$contains !== undefined;\n }\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $not: {\n $contains: ['image', 'video'],\n },\n },\n };\n } else {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n return Array.isArray(filter.mime?.$contains);\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $contains: ['image', 'video'],\n },\n };\n }\n\n if (hasCurrentFilter) {\n onToggle();\n\n return;\n }\n\n const nextFilters = [...filtersWithoutMimeType, filterToAdd];\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n const hasFilter =\n alreadyAppliedFilters.find((filter) => {\n const modifiedDataFilter = modifiedData.filter;\n return (\n filter.mime &&\n filter.mime[modifiedDataFilter as keyof typeof filter.mime] === modifiedData.value\n );\n }) !== undefined;\n\n // Don't apply the same filter twice\n if (hasFilter) {\n onToggle();\n\n return;\n }\n\n const filtersWithoutFile = filters.filter((filter) => {\n const filterType = Object.keys(filter)[0];\n\n if (filterType !== 'mime') {\n return true;\n }\n\n if (\n typeof filter.mime?.$not !== 'string' &&\n !Array.isArray(filter.mime?.$not) &&\n filter.mime?.$not?.$contains !== undefined\n ) {\n return false;\n }\n\n if (Array.isArray(filter?.mime?.$contains)) {\n return false;\n }\n\n return true;\n });\n\n const oppositeFilter = modifiedData.filter === '$contains' ? '$notContains' : '$contains';\n\n const oppositeFilterIndex = filtersWithoutFile.findIndex((filter) => {\n return filter.mime?.[oppositeFilter] === modifiedData.value;\n });\n const hasOppositeFilter = oppositeFilterIndex !== -1;\n\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: modifiedData.value } };\n\n if (!hasOppositeFilter) {\n const nextFilters = [...filtersWithoutFile, filterToAdd];\n\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n if (hasOppositeFilter) {\n const nextFilters = filtersWithoutFile.slice();\n nextFilters.splice(oppositeFilterIndex, 1, filterToAdd);\n onSubmit(nextFilters);\n\n onToggle();\n }\n\n return;\n }\n\n const hasFilter =\n filters.find((filter) => {\n const modifiedDataName = modifiedData.name as\n | 'mime'\n | 'createdAt'\n | 'updatedAt'\n | '$contains'\n | '$notContains'\n | '$eq'\n | '$not';\n return (\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt'] &&\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt']?.[\n modifiedDataName as '$contains' | '$notContains' | '$eq' | '$not'\n ] === encodedValue\n );\n }) !== undefined;\n\n if (!hasFilter) {\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: encodedValue } };\n\n const nextFilters = [...filters, filterToAdd];\n\n onSubmit(nextFilters);\n }\n }\n\n onToggle();\n };\n\n const appliedFilter = displayedFilters.find((filter) => filter.name === modifiedData.name);\n\n return (\n <Popover.Content sideOffset={4} style={{ zIndex: 499 }}>\n <form onSubmit={handleSubmit}>\n <Flex padding={3} direction=\"column\" alignItems=\"stretch\" gap={1} style={{ minWidth: 184 }}>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-field',\n defaultMessage: 'Select field',\n })}\n name=\"name\"\n size=\"M\"\n onChange={handleChangeFilterField}\n value={modifiedData.name}\n >\n {displayedFilters.map((filter) => {\n return (\n <SingleSelectOption key={filter.name} value={filter.name}>\n {filter.metadatas?.label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-filter',\n defaultMessage: 'Select filter',\n })}\n name=\"filter\"\n size=\"M\"\n value={modifiedData.filter}\n onChange={handleChangeOperator}\n >\n {getFilterList(appliedFilter!).map((option) => {\n return (\n <SingleSelectOption key={option.value} value={option.value}>\n {formatMessage(option.intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <FilterValueInput\n {...appliedFilter?.metadatas}\n {...appliedFilter?.fieldSchema}\n value={modifiedData.value}\n onChange={(value) => setModifiedData((prev) => ({ ...prev, value }))}\n />\n </Box>\n <Box>\n <Button size=\"L\" variant=\"secondary\" startIcon={<Plus />} type=\"submit\" fullWidth>\n {formatMessage({ id: 'app.utils.add-filter', defaultMessage: 'Add filter' })}\n </Button>\n </Box>\n </Flex>\n </form>\n </Popover.Content>\n );\n};\n"],"names":["FilterPopover","displayedFilters","filters","onSubmit","onToggle","formatMessage","useIntl","modifiedData","setModifiedData","React","useState","name","filter","value","handleChangeFilterField","nextField","find","f","fieldSchema","type","options","filterValue","getFilterList","toString","handleChangeOperator","operator","prev","handleSubmit","e","preventDefault","stopPropagation","encodedValue","encodeURIComponent","alreadyAppliedFilters","Object","keys","filtersWithoutMimeType","hasCurrentFilter","filterToAdd","mime","$not","Array","isArray","$contains","undefined","nextFilters","hasFilter","modifiedDataFilter","filtersWithoutFile","filterType","oppositeFilter","oppositeFilterIndex","findIndex","hasOppositeFilter","slice","splice","modifiedDataName","appliedFilter","_jsx","Popover","Content","sideOffset","style","zIndex","form","_jsxs","Flex","padding","direction","alignItems","gap","minWidth","Box","SingleSelect","aria-label","id","defaultMessage","size","onChange","map","SingleSelectOption","metadatas","label","option","intlLabel","FilterValueInput","Button","variant","startIcon","Plus","fullWidth"],"mappings":"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"}
@@ -8,7 +8,8 @@ var reactRouterDom = require('react-router-dom');
8
8
  var styledComponents = require('styled-components');
9
9
  var FolderCard$1 = require('../contexts/FolderCard.js');
10
10
 
11
- function _interopNamespaceDefault(e) {
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
12
13
  var n = Object.create(null);
13
14
  if (e) {
14
15
  Object.keys(e).forEach(function (k) {
@@ -25,7 +26,7 @@ function _interopNamespaceDefault(e) {
25
26
  return Object.freeze(n);
26
27
  }
27
28
 
28
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
29
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
30
 
30
31
  const FauxClickWrapper = styledComponents.styled.button`
31
32
  height: 100%;
@@ -1 +1 @@
1
- {"version":3,"file":"FolderCard.js","sources":["../../../../../admin/src/components/FolderCard/FolderCard/FolderCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, CardAction, Flex, BoxProps } from '@strapi/design-system';\nimport { Folder } from '@strapi/icons';\nimport { NavLink, LinkProps } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { FolderCardContext } from '../contexts/FolderCard';\n\nconst FauxClickWrapper = styled.button`\n height: 100%;\n left: 0;\n position: absolute;\n opacity: 0;\n top: 0;\n width: 100%;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n`;\n\nconst StyledFolder = styled(Folder)`\n path {\n fill: currentColor;\n }\n`;\n\nconst CardActionDisplay = styled(Box)`\n display: none;\n`;\n\nconst Card = styled(Box)`\n &:hover,\n &:focus-within {\n ${CardActionDisplay} {\n display: ${({ $isCardActions }) => ($isCardActions ? 'block' : '')};\n }\n }\n`;\n\nexport interface FolderCardProps extends Omit<BoxProps, 'id'> {\n ariaLabel: string;\n children: React.ReactNode;\n id?: string;\n startAction?: React.ReactNode;\n cardActions?: React.ReactNode;\n onClick?: () => void;\n to?: LinkProps['to'];\n}\n\nexport const FolderCard = React.forwardRef(\n (\n {\n children,\n startAction = null,\n cardActions = null,\n ariaLabel,\n onClick,\n to,\n ...props\n }: FolderCardProps,\n ref\n ) => {\n const generatedId = React.useId();\n const fodlerCtxValue = React.useMemo(() => ({ id: generatedId }), [generatedId]);\n\n return (\n <FolderCardContext.Provider value={fodlerCtxValue}>\n <Card position=\"relative\" tabIndex={0} $isCardActions={!!cardActions} ref={ref} {...props}>\n <FauxClickWrapper\n to={to || undefined}\n as={to ? NavLink : 'button'}\n type={to ? undefined : 'button'}\n onClick={onClick}\n tabIndex={-1}\n aria-label={ariaLabel}\n aria-hidden\n />\n\n <Flex\n hasRadius\n borderStyle=\"solid\"\n borderWidth=\"1px\"\n borderColor=\"neutral150\"\n background=\"neutral0\"\n shadow=\"tableShadow\"\n padding={3}\n gap={2}\n cursor=\"pointer\"\n >\n {startAction}\n\n <Box\n hasRadius\n background=\"secondary100\"\n color=\"secondary500\"\n paddingBottom={2}\n paddingLeft={3}\n paddingRight={3}\n paddingTop={2}\n >\n <StyledFolder width=\"2.4rem\" height=\"2.4rem\" />\n </Box>\n\n {children}\n\n <CardActionDisplay>\n <CardAction right={4} position=\"end\">\n {cardActions}\n </CardAction>\n </CardActionDisplay>\n </Flex>\n </Card>\n </FolderCardContext.Provider>\n );\n }\n);\n"],"names":["FauxClickWrapper","styled","button","StyledFolder","Folder","CardActionDisplay","Box","Card","$isCardActions","FolderCard","React","forwardRef","children","startAction","cardActions","ariaLabel","onClick","to","props","ref","generatedId","useId","fodlerCtxValue","useMemo","id","_jsx","FolderCardContext","Provider","value","_jsxs","position","tabIndex","undefined","as","NavLink","type","aria-label","aria-hidden","Flex","hasRadius","borderStyle","borderWidth","borderColor","background","shadow","padding","gap","cursor","color","paddingBottom","paddingLeft","paddingRight","paddingTop","width","height","CardAction","right"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAMA,gBAAAA,GAAmBC,uBAAAA,CAAOC,MAAM;;;;;;;;;;;;AAYtC,CAAC;AAED,MAAMC,YAAAA,GAAeF,uBAAAA,CAAOG,YAAAA,CAAO;;;;AAInC,CAAC;AAED,MAAMC,iBAAAA,GAAoBJ,uBAAAA,CAAOK,gBAAAA,CAAI;;AAErC,CAAC;AAED,MAAMC,IAAAA,GAAON,uBAAAA,CAAOK,gBAAAA,CAAI;;;AAGpB,IAAA,EAAED,iBAAAA,CAAkB;AACT,eAAA,EAAE,CAAC,EAAEG,cAAc,EAAE,GAAMA,cAAAA,GAAiB,UAAU,EAAA,CAAI;;;AAGzE,CAAC;AAYM,MAAMC,2BAAaC,gBAAAA,CAAMC,UAAU,CACxC,CACE,EACEC,QAAQ,EACRC,WAAAA,GAAc,IAAI,EAClBC,WAAAA,GAAc,IAAI,EAClBC,SAAS,EACTC,OAAO,EACPC,EAAE,EACF,GAAGC,KAAAA,EACa,EAClBC,GAAAA,GAAAA;IAEA,MAAMC,WAAAA,GAAcV,iBAAMW,KAAK,EAAA;AAC/B,IAAA,MAAMC,cAAAA,GAAiBZ,gBAAAA,CAAMa,OAAO,CAAC,KAAO;YAAEC,EAAAA,EAAIJ;AAAY,SAAA,CAAA,EAAI;AAACA,QAAAA;AAAY,KAAA,CAAA;IAE/E,qBACEK,cAAA,CAACC,+BAAkBC,QAAQ,EAAA;QAACC,KAAAA,EAAON,cAAAA;AACjC,QAAA,QAAA,gBAAAO,eAAA,CAACtB,IAAAA,EAAAA;YAAKuB,QAAAA,EAAS,UAAA;YAAWC,QAAAA,EAAU,CAAA;AAAGvB,YAAAA,cAAAA,EAAgB,CAAC,CAACM,WAAAA;YAAaK,GAAAA,EAAKA,GAAAA;AAAM,YAAA,GAAGD,KAAK;;8BACvFO,cAAA,CAACzB,gBAAAA,EAAAA;AACCiB,oBAAAA,EAAAA,EAAIA,EAAAA,IAAMe,SAAAA;AACVC,oBAAAA,EAAAA,EAAIhB,KAAKiB,sBAAAA,GAAU,QAAA;AACnBC,oBAAAA,IAAAA,EAAMlB,KAAKe,SAAAA,GAAY,QAAA;oBACvBhB,OAAAA,EAASA,OAAAA;AACTe,oBAAAA,QAAAA,EAAU,EAAC;oBACXK,YAAAA,EAAYrB,SAAAA;oBACZsB,aAAW,EAAA;;8BAGbR,eAAA,CAACS,iBAAAA,EAAAA;oBACCC,SAAS,EAAA,IAAA;oBACTC,WAAAA,EAAY,OAAA;oBACZC,WAAAA,EAAY,KAAA;oBACZC,WAAAA,EAAY,YAAA;oBACZC,UAAAA,EAAW,UAAA;oBACXC,MAAAA,EAAO,aAAA;oBACPC,OAAAA,EAAS,CAAA;oBACTC,GAAAA,EAAK,CAAA;oBACLC,MAAAA,EAAO,SAAA;;AAENlC,wBAAAA,WAAAA;sCAEDY,cAAA,CAACnB,gBAAAA,EAAAA;4BACCiC,SAAS,EAAA,IAAA;4BACTI,UAAAA,EAAW,cAAA;4BACXK,KAAAA,EAAM,cAAA;4BACNC,aAAAA,EAAe,CAAA;4BACfC,WAAAA,EAAa,CAAA;4BACbC,YAAAA,EAAc,CAAA;4BACdC,UAAAA,EAAY,CAAA;AAEZ,4BAAA,QAAA,gBAAA3B,cAAA,CAACtB,YAAAA,EAAAA;gCAAakD,KAAAA,EAAM,QAAA;gCAASC,MAAAA,EAAO;;;AAGrC1C,wBAAAA,QAAAA;sCAEDa,cAAA,CAACpB,iBAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAoB,cAAA,CAAC8B,uBAAAA,EAAAA;gCAAWC,KAAAA,EAAO,CAAA;gCAAG1B,QAAAA,EAAS,KAAA;AAC5BhB,gCAAAA,QAAAA,EAAAA;;;;;;;;AAOf,CAAA;;;;"}
1
+ {"version":3,"file":"FolderCard.js","sources":["../../../../../admin/src/components/FolderCard/FolderCard/FolderCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, CardAction, Flex, BoxProps } from '@strapi/design-system';\nimport { Folder } from '@strapi/icons';\nimport { NavLink, LinkProps } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { FolderCardContext } from '../contexts/FolderCard';\n\nconst FauxClickWrapper = styled.button`\n height: 100%;\n left: 0;\n position: absolute;\n opacity: 0;\n top: 0;\n width: 100%;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n`;\n\nconst StyledFolder = styled(Folder)`\n path {\n fill: currentColor;\n }\n`;\n\nconst CardActionDisplay = styled(Box)`\n display: none;\n`;\n\nconst Card = styled(Box)`\n &:hover,\n &:focus-within {\n ${CardActionDisplay} {\n display: ${({ $isCardActions }) => ($isCardActions ? 'block' : '')};\n }\n }\n`;\n\nexport interface FolderCardProps extends Omit<BoxProps, 'id'> {\n ariaLabel: string;\n children: React.ReactNode;\n id?: string;\n startAction?: React.ReactNode;\n cardActions?: React.ReactNode;\n onClick?: () => void;\n to?: LinkProps['to'];\n}\n\nexport const FolderCard = React.forwardRef(\n (\n {\n children,\n startAction = null,\n cardActions = null,\n ariaLabel,\n onClick,\n to,\n ...props\n }: FolderCardProps,\n ref\n ) => {\n const generatedId = React.useId();\n const fodlerCtxValue = React.useMemo(() => ({ id: generatedId }), [generatedId]);\n\n return (\n <FolderCardContext.Provider value={fodlerCtxValue}>\n <Card position=\"relative\" tabIndex={0} $isCardActions={!!cardActions} ref={ref} {...props}>\n <FauxClickWrapper\n to={to || undefined}\n as={to ? NavLink : 'button'}\n type={to ? undefined : 'button'}\n onClick={onClick}\n tabIndex={-1}\n aria-label={ariaLabel}\n aria-hidden\n />\n\n <Flex\n hasRadius\n borderStyle=\"solid\"\n borderWidth=\"1px\"\n borderColor=\"neutral150\"\n background=\"neutral0\"\n shadow=\"tableShadow\"\n padding={3}\n gap={2}\n cursor=\"pointer\"\n >\n {startAction}\n\n <Box\n hasRadius\n background=\"secondary100\"\n color=\"secondary500\"\n paddingBottom={2}\n paddingLeft={3}\n paddingRight={3}\n paddingTop={2}\n >\n <StyledFolder width=\"2.4rem\" height=\"2.4rem\" />\n </Box>\n\n {children}\n\n <CardActionDisplay>\n <CardAction right={4} position=\"end\">\n {cardActions}\n </CardAction>\n </CardActionDisplay>\n </Flex>\n </Card>\n </FolderCardContext.Provider>\n );\n }\n);\n"],"names":["FauxClickWrapper","styled","button","StyledFolder","Folder","CardActionDisplay","Box","Card","$isCardActions","FolderCard","React","forwardRef","children","startAction","cardActions","ariaLabel","onClick","to","props","ref","generatedId","useId","fodlerCtxValue","useMemo","id","_jsx","FolderCardContext","Provider","value","_jsxs","position","tabIndex","undefined","as","NavLink","type","aria-label","aria-hidden","Flex","hasRadius","borderStyle","borderWidth","borderColor","background","shadow","padding","gap","cursor","color","paddingBottom","paddingLeft","paddingRight","paddingTop","width","height","CardAction","right"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAMA,gBAAAA,GAAmBC,uBAAAA,CAAOC,MAAM;;;;;;;;;;;;AAYtC,CAAC;AAED,MAAMC,YAAAA,GAAeF,uBAAAA,CAAOG,YAAAA,CAAO;;;;AAInC,CAAC;AAED,MAAMC,iBAAAA,GAAoBJ,uBAAAA,CAAOK,gBAAAA,CAAI;;AAErC,CAAC;AAED,MAAMC,IAAAA,GAAON,uBAAAA,CAAOK,gBAAAA,CAAI;;;AAGpB,IAAA,EAAED,iBAAAA,CAAkB;AACT,eAAA,EAAE,CAAC,EAAEG,cAAc,EAAE,GAAMA,cAAAA,GAAiB,UAAU,EAAA,CAAI;;;AAGzE,CAAC;AAYM,MAAMC,2BAAaC,gBAAAA,CAAMC,UAAU,CACxC,CACE,EACEC,QAAQ,EACRC,WAAAA,GAAc,IAAI,EAClBC,WAAAA,GAAc,IAAI,EAClBC,SAAS,EACTC,OAAO,EACPC,EAAE,EACF,GAAGC,KAAAA,EACa,EAClBC,GAAAA,GAAAA;IAEA,MAAMC,WAAAA,GAAcV,iBAAMW,KAAK,EAAA;AAC/B,IAAA,MAAMC,cAAAA,GAAiBZ,gBAAAA,CAAMa,OAAO,CAAC,KAAO;YAAEC,EAAAA,EAAIJ;AAAY,SAAA,CAAA,EAAI;AAACA,QAAAA;AAAY,KAAA,CAAA;IAE/E,qBACEK,cAAA,CAACC,+BAAkBC,QAAQ,EAAA;QAACC,KAAAA,EAAON,cAAAA;AACjC,QAAA,QAAA,gBAAAO,eAAA,CAACtB,IAAAA,EAAAA;YAAKuB,QAAAA,EAAS,UAAA;YAAWC,QAAAA,EAAU,CAAA;AAAGvB,YAAAA,cAAAA,EAAgB,CAAC,CAACM,WAAAA;YAAaK,GAAAA,EAAKA,GAAAA;AAAM,YAAA,GAAGD,KAAK;;8BACvFO,cAAA,CAACzB,gBAAAA,EAAAA;AACCiB,oBAAAA,EAAAA,EAAIA,EAAAA,IAAMe,SAAAA;AACVC,oBAAAA,EAAAA,EAAIhB,KAAKiB,sBAAAA,GAAU,QAAA;AACnBC,oBAAAA,IAAAA,EAAMlB,KAAKe,SAAAA,GAAY,QAAA;oBACvBhB,OAAAA,EAASA,OAAAA;AACTe,oBAAAA,QAAAA,EAAU,EAAC;oBACXK,YAAAA,EAAYrB,SAAAA;oBACZsB,aAAW,EAAA;;8BAGbR,eAAA,CAACS,iBAAAA,EAAAA;oBACCC,SAAS,EAAA,IAAA;oBACTC,WAAAA,EAAY,OAAA;oBACZC,WAAAA,EAAY,KAAA;oBACZC,WAAAA,EAAY,YAAA;oBACZC,UAAAA,EAAW,UAAA;oBACXC,MAAAA,EAAO,aAAA;oBACPC,OAAAA,EAAS,CAAA;oBACTC,GAAAA,EAAK,CAAA;oBACLC,MAAAA,EAAO,SAAA;;AAENlC,wBAAAA,WAAAA;sCAEDY,cAAA,CAACnB,gBAAAA,EAAAA;4BACCiC,SAAS,EAAA,IAAA;4BACTI,UAAAA,EAAW,cAAA;4BACXK,KAAAA,EAAM,cAAA;4BACNC,aAAAA,EAAe,CAAA;4BACfC,WAAAA,EAAa,CAAA;4BACbC,YAAAA,EAAc,CAAA;4BACdC,UAAAA,EAAY,CAAA;AAEZ,4BAAA,QAAA,gBAAA3B,cAAA,CAACtB,YAAAA,EAAAA;gCAAakD,KAAAA,EAAM,QAAA;gCAASC,MAAAA,EAAO;;;AAGrC1C,wBAAAA,QAAAA;sCAEDa,cAAA,CAACpB,iBAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAAoB,cAAA,CAAC8B,uBAAAA,EAAAA;gCAAWC,KAAAA,EAAO,CAAA;gCAAG1B,QAAAA,EAAS,KAAA;AAC5BhB,gCAAAA,QAAAA,EAAAA;;;;;;;;AAOf,CAAA;;;;"}
@@ -6,7 +6,8 @@ var AssetDialog = require('../AssetDialog/AssetDialog.js');
6
6
  var EditFolderDialog = require('../EditFolderDialog/EditFolderDialog.js');
7
7
  var UploadAssetDialog = require('../UploadAssetDialog/UploadAssetDialog.js');
8
8
 
9
- function _interopNamespaceDefault(e) {
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
10
11
  var n = Object.create(null);
11
12
  if (e) {
12
13
  Object.keys(e).forEach(function (k) {
@@ -23,7 +24,7 @@ function _interopNamespaceDefault(e) {
23
24
  return Object.freeze(n);
24
25
  }
25
26
 
26
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
27
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
27
28
 
28
29
  // TODO: find a better naming convention for the file that was an index file before
29
30
  const STEPS = {
@@ -36,7 +37,7 @@ const MediaLibraryDialog = ({ onClose, onSelectAssets, allowedTypes = [
36
37
  'images',
37
38
  'videos',
38
39
  'audios'
39
- ], multiple = true })=>{
40
+ ], multiple = true, initiallySelectedAssets = [] })=>{
40
41
  const [step, setStep] = React__namespace.useState(STEPS.AssetSelect);
41
42
  const [folderId, setFolderId] = React__namespace.useState(null);
42
43
  switch(step){
@@ -47,6 +48,7 @@ const MediaLibraryDialog = ({ onClose, onSelectAssets, allowedTypes = [
47
48
  open: true,
48
49
  onClose: onClose,
49
50
  onValidate: onSelectAssets,
51
+ initiallySelectedAssets: initiallySelectedAssets,
50
52
  onAddAsset: ()=>setStep(STEPS.AssetUpload),
51
53
  onAddFolder: ()=>setStep(STEPS.FolderCreate),
52
54
  onChangeFolder: (folderId)=>setFolderId(folderId),
@@ -1 +1 @@
1
- {"version":3,"file":"MediaLibraryDialog.js","sources":["../../../../admin/src/components/MediaLibraryDialog/MediaLibraryDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\nexport interface MediaLibraryDialogProps {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n onClose: () => void;\n onSelectAssets: (selectedAssets: File[]) => void;\n}\n\nexport const MediaLibraryDialog = ({\n onClose,\n onSelectAssets,\n allowedTypes = ['files', 'images', 'videos', 'audios'],\n multiple = true,\n}: MediaLibraryDialogProps) => {\n const [step, setStep] = React.useState(STEPS.AssetSelect);\n const [folderId, setFolderId] = React.useState<number | null>(null);\n\n switch (step) {\n case STEPS.AssetSelect:\n return (\n <AssetDialog\n allowedTypes={allowedTypes}\n folderId={folderId}\n open\n onClose={onClose}\n onValidate={onSelectAssets}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folderId) => setFolderId(folderId)}\n multiple={multiple}\n />\n );\n\n case STEPS.FolderCreate:\n return (\n <EditFolderDialog\n open\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n );\n\n default:\n return (\n <UploadAssetDialog open onClose={() => setStep(STEPS.AssetSelect)} folderId={folderId} />\n );\n }\n};\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryDialog","onClose","onSelectAssets","allowedTypes","multiple","step","setStep","React","useState","folderId","setFolderId","_jsx","AssetDialog","open","onValidate","onAddAsset","onAddFolder","onChangeFolder","EditFolderDialog","parentFolderId","UploadAssetDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAOA,MAAMA,KAAAA,GAAQ;IACZC,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,aAAA;IACbC,YAAAA,EAAc;AAChB,CAAA;AAWO,MAAMC,qBAAqB,CAAC,EACjCC,OAAO,EACPC,cAAc,EACdC,YAAAA,GAAe;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,QAAA;AAAU,IAAA;CAAS,EACtDC,QAAAA,GAAW,IAAI,EACS,GAAA;IACxB,MAAM,CAACC,MAAMC,OAAAA,CAAQ,GAAGC,iBAAMC,QAAQ,CAACZ,MAAMC,WAAW,CAAA;AACxD,IAAA,MAAM,CAACY,QAAAA,EAAUC,WAAAA,CAAY,GAAGH,gBAAAA,CAAMC,QAAQ,CAAgB,IAAA,CAAA;IAE9D,OAAQH,IAAAA;AACN,QAAA,KAAKT,MAAMC,WAAW;AACpB,YAAA,qBACEc,cAAA,CAACC,uBAAAA,EAAAA;gBACCT,YAAAA,EAAcA,YAAAA;gBACdM,QAAAA,EAAUA,QAAAA;gBACVI,IAAI,EAAA,IAAA;gBACJZ,OAAAA,EAASA,OAAAA;gBACTa,UAAAA,EAAYZ,cAAAA;gBACZa,UAAAA,EAAY,IAAMT,OAAAA,CAAQV,KAAAA,CAAME,WAAW,CAAA;gBAC3CkB,WAAAA,EAAa,IAAMV,OAAAA,CAAQV,KAAAA,CAAMG,YAAY,CAAA;gBAC7CkB,cAAAA,EAAgB,CAACR,WAAaC,WAAAA,CAAYD,QAAAA,CAAAA;gBAC1CL,QAAAA,EAAUA;;AAIhB,QAAA,KAAKR,MAAMG,YAAY;AACrB,YAAA,qBACEY,cAAA,CAACO,iCAAAA,EAAAA;gBACCL,IAAI,EAAA,IAAA;gBACJZ,OAAAA,EAAS,IAAMK,OAAAA,CAAQV,KAAAA,CAAMC,WAAW,CAAA;gBACxCsB,cAAAA,EAAgBV;;AAItB,QAAA;AACE,YAAA,qBACEE,cAAA,CAACS,mCAAAA,EAAAA;gBAAkBP,IAAI,EAAA,IAAA;gBAACZ,OAAAA,EAAS,IAAMK,OAAAA,CAAQV,KAAAA,CAAMC,WAAW,CAAA;gBAAGY,QAAAA,EAAUA;;AAEnF;AACF;;;;"}
1
+ {"version":3,"file":"MediaLibraryDialog.js","sources":["../../../../admin/src/components/MediaLibraryDialog/MediaLibraryDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\nexport interface MediaLibraryDialogProps {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n initiallySelectedAssets?: File[];\n onClose: () => void;\n onSelectAssets: (selectedAssets: File[]) => void;\n}\n\nexport const MediaLibraryDialog = ({\n onClose,\n onSelectAssets,\n allowedTypes = ['files', 'images', 'videos', 'audios'],\n multiple = true,\n initiallySelectedAssets = [],\n}: MediaLibraryDialogProps) => {\n const [step, setStep] = React.useState(STEPS.AssetSelect);\n const [folderId, setFolderId] = React.useState<number | null>(null);\n\n switch (step) {\n case STEPS.AssetSelect:\n return (\n <AssetDialog\n allowedTypes={allowedTypes}\n folderId={folderId}\n open\n onClose={onClose}\n onValidate={onSelectAssets}\n initiallySelectedAssets={initiallySelectedAssets}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folderId) => setFolderId(folderId)}\n multiple={multiple}\n />\n );\n\n case STEPS.FolderCreate:\n return (\n <EditFolderDialog\n open\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n );\n\n default:\n return (\n <UploadAssetDialog open onClose={() => setStep(STEPS.AssetSelect)} folderId={folderId} />\n );\n }\n};\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryDialog","onClose","onSelectAssets","allowedTypes","multiple","initiallySelectedAssets","step","setStep","React","useState","folderId","setFolderId","_jsx","AssetDialog","open","onValidate","onAddAsset","onAddFolder","onChangeFolder","EditFolderDialog","parentFolderId","UploadAssetDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAOA,MAAMA,KAAAA,GAAQ;IACZC,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,aAAA;IACbC,YAAAA,EAAc;AAChB,CAAA;AAYO,MAAMC,qBAAqB,CAAC,EACjCC,OAAO,EACPC,cAAc,EACdC,YAAAA,GAAe;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,QAAA;AAAU,IAAA;AAAS,CAAA,EACtDC,QAAAA,GAAW,IAAI,EACfC,uBAAAA,GAA0B,EAAE,EACJ,GAAA;IACxB,MAAM,CAACC,MAAMC,OAAAA,CAAQ,GAAGC,iBAAMC,QAAQ,CAACb,MAAMC,WAAW,CAAA;AACxD,IAAA,MAAM,CAACa,QAAAA,EAAUC,WAAAA,CAAY,GAAGH,gBAAAA,CAAMC,QAAQ,CAAgB,IAAA,CAAA;IAE9D,OAAQH,IAAAA;AACN,QAAA,KAAKV,MAAMC,WAAW;AACpB,YAAA,qBACEe,cAAA,CAACC,uBAAAA,EAAAA;gBACCV,YAAAA,EAAcA,YAAAA;gBACdO,QAAAA,EAAUA,QAAAA;gBACVI,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAASA,OAAAA;gBACTc,UAAAA,EAAYb,cAAAA;gBACZG,uBAAAA,EAAyBA,uBAAAA;gBACzBW,UAAAA,EAAY,IAAMT,OAAAA,CAAQX,KAAAA,CAAME,WAAW,CAAA;gBAC3CmB,WAAAA,EAAa,IAAMV,OAAAA,CAAQX,KAAAA,CAAMG,YAAY,CAAA;gBAC7CmB,cAAAA,EAAgB,CAACR,WAAaC,WAAAA,CAAYD,QAAAA,CAAAA;gBAC1CN,QAAAA,EAAUA;;AAIhB,QAAA,KAAKR,MAAMG,YAAY;AACrB,YAAA,qBACEa,cAAA,CAACO,iCAAAA,EAAAA;gBACCL,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAAS,IAAMM,OAAAA,CAAQX,KAAAA,CAAMC,WAAW,CAAA;gBACxCuB,cAAAA,EAAgBV;;AAItB,QAAA;AACE,YAAA,qBACEE,cAAA,CAACS,mCAAAA,EAAAA;gBAAkBP,IAAI,EAAA,IAAA;gBAACb,OAAAA,EAAS,IAAMM,OAAAA,CAAQX,KAAAA,CAAMC,WAAW,CAAA;gBAAGa,QAAAA,EAAUA;;AAEnF;AACF;;;;"}
@@ -15,7 +15,7 @@ const MediaLibraryDialog = ({ onClose, onSelectAssets, allowedTypes = [
15
15
  'images',
16
16
  'videos',
17
17
  'audios'
18
- ], multiple = true })=>{
18
+ ], multiple = true, initiallySelectedAssets = [] })=>{
19
19
  const [step, setStep] = React.useState(STEPS.AssetSelect);
20
20
  const [folderId, setFolderId] = React.useState(null);
21
21
  switch(step){
@@ -26,6 +26,7 @@ const MediaLibraryDialog = ({ onClose, onSelectAssets, allowedTypes = [
26
26
  open: true,
27
27
  onClose: onClose,
28
28
  onValidate: onSelectAssets,
29
+ initiallySelectedAssets: initiallySelectedAssets,
29
30
  onAddAsset: ()=>setStep(STEPS.AssetUpload),
30
31
  onAddFolder: ()=>setStep(STEPS.FolderCreate),
31
32
  onChangeFolder: (folderId)=>setFolderId(folderId),
@@ -1 +1 @@
1
- {"version":3,"file":"MediaLibraryDialog.mjs","sources":["../../../../admin/src/components/MediaLibraryDialog/MediaLibraryDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\nexport interface MediaLibraryDialogProps {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n onClose: () => void;\n onSelectAssets: (selectedAssets: File[]) => void;\n}\n\nexport const MediaLibraryDialog = ({\n onClose,\n onSelectAssets,\n allowedTypes = ['files', 'images', 'videos', 'audios'],\n multiple = true,\n}: MediaLibraryDialogProps) => {\n const [step, setStep] = React.useState(STEPS.AssetSelect);\n const [folderId, setFolderId] = React.useState<number | null>(null);\n\n switch (step) {\n case STEPS.AssetSelect:\n return (\n <AssetDialog\n allowedTypes={allowedTypes}\n folderId={folderId}\n open\n onClose={onClose}\n onValidate={onSelectAssets}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folderId) => setFolderId(folderId)}\n multiple={multiple}\n />\n );\n\n case STEPS.FolderCreate:\n return (\n <EditFolderDialog\n open\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n );\n\n default:\n return (\n <UploadAssetDialog open onClose={() => setStep(STEPS.AssetSelect)} folderId={folderId} />\n );\n }\n};\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryDialog","onClose","onSelectAssets","allowedTypes","multiple","step","setStep","React","useState","folderId","setFolderId","_jsx","AssetDialog","open","onValidate","onAddAsset","onAddFolder","onChangeFolder","EditFolderDialog","parentFolderId","UploadAssetDialog"],"mappings":";;;;;;AAAA;AAOA,MAAMA,KAAAA,GAAQ;IACZC,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,aAAA;IACbC,YAAAA,EAAc;AAChB,CAAA;AAWO,MAAMC,qBAAqB,CAAC,EACjCC,OAAO,EACPC,cAAc,EACdC,YAAAA,GAAe;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,QAAA;AAAU,IAAA;CAAS,EACtDC,QAAAA,GAAW,IAAI,EACS,GAAA;IACxB,MAAM,CAACC,MAAMC,OAAAA,CAAQ,GAAGC,MAAMC,QAAQ,CAACZ,MAAMC,WAAW,CAAA;AACxD,IAAA,MAAM,CAACY,QAAAA,EAAUC,WAAAA,CAAY,GAAGH,KAAAA,CAAMC,QAAQ,CAAgB,IAAA,CAAA;IAE9D,OAAQH,IAAAA;AACN,QAAA,KAAKT,MAAMC,WAAW;AACpB,YAAA,qBACEc,GAAA,CAACC,WAAAA,EAAAA;gBACCT,YAAAA,EAAcA,YAAAA;gBACdM,QAAAA,EAAUA,QAAAA;gBACVI,IAAI,EAAA,IAAA;gBACJZ,OAAAA,EAASA,OAAAA;gBACTa,UAAAA,EAAYZ,cAAAA;gBACZa,UAAAA,EAAY,IAAMT,OAAAA,CAAQV,KAAAA,CAAME,WAAW,CAAA;gBAC3CkB,WAAAA,EAAa,IAAMV,OAAAA,CAAQV,KAAAA,CAAMG,YAAY,CAAA;gBAC7CkB,cAAAA,EAAgB,CAACR,WAAaC,WAAAA,CAAYD,QAAAA,CAAAA;gBAC1CL,QAAAA,EAAUA;;AAIhB,QAAA,KAAKR,MAAMG,YAAY;AACrB,YAAA,qBACEY,GAAA,CAACO,gBAAAA,EAAAA;gBACCL,IAAI,EAAA,IAAA;gBACJZ,OAAAA,EAAS,IAAMK,OAAAA,CAAQV,KAAAA,CAAMC,WAAW,CAAA;gBACxCsB,cAAAA,EAAgBV;;AAItB,QAAA;AACE,YAAA,qBACEE,GAAA,CAACS,iBAAAA,EAAAA;gBAAkBP,IAAI,EAAA,IAAA;gBAACZ,OAAAA,EAAS,IAAMK,OAAAA,CAAQV,KAAAA,CAAMC,WAAW,CAAA;gBAAGY,QAAAA,EAAUA;;AAEnF;AACF;;;;"}
1
+ {"version":3,"file":"MediaLibraryDialog.mjs","sources":["../../../../admin/src/components/MediaLibraryDialog/MediaLibraryDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nimport type { File } from '../../../../shared/contracts/files';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\nexport interface MediaLibraryDialogProps {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n initiallySelectedAssets?: File[];\n onClose: () => void;\n onSelectAssets: (selectedAssets: File[]) => void;\n}\n\nexport const MediaLibraryDialog = ({\n onClose,\n onSelectAssets,\n allowedTypes = ['files', 'images', 'videos', 'audios'],\n multiple = true,\n initiallySelectedAssets = [],\n}: MediaLibraryDialogProps) => {\n const [step, setStep] = React.useState(STEPS.AssetSelect);\n const [folderId, setFolderId] = React.useState<number | null>(null);\n\n switch (step) {\n case STEPS.AssetSelect:\n return (\n <AssetDialog\n allowedTypes={allowedTypes}\n folderId={folderId}\n open\n onClose={onClose}\n onValidate={onSelectAssets}\n initiallySelectedAssets={initiallySelectedAssets}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folderId) => setFolderId(folderId)}\n multiple={multiple}\n />\n );\n\n case STEPS.FolderCreate:\n return (\n <EditFolderDialog\n open\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n );\n\n default:\n return (\n <UploadAssetDialog open onClose={() => setStep(STEPS.AssetSelect)} folderId={folderId} />\n );\n }\n};\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryDialog","onClose","onSelectAssets","allowedTypes","multiple","initiallySelectedAssets","step","setStep","React","useState","folderId","setFolderId","_jsx","AssetDialog","open","onValidate","onAddAsset","onAddFolder","onChangeFolder","EditFolderDialog","parentFolderId","UploadAssetDialog"],"mappings":";;;;;;AAAA;AAOA,MAAMA,KAAAA,GAAQ;IACZC,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,aAAA;IACbC,YAAAA,EAAc;AAChB,CAAA;AAYO,MAAMC,qBAAqB,CAAC,EACjCC,OAAO,EACPC,cAAc,EACdC,YAAAA,GAAe;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,QAAA;AAAU,IAAA;AAAS,CAAA,EACtDC,QAAAA,GAAW,IAAI,EACfC,uBAAAA,GAA0B,EAAE,EACJ,GAAA;IACxB,MAAM,CAACC,MAAMC,OAAAA,CAAQ,GAAGC,MAAMC,QAAQ,CAACb,MAAMC,WAAW,CAAA;AACxD,IAAA,MAAM,CAACa,QAAAA,EAAUC,WAAAA,CAAY,GAAGH,KAAAA,CAAMC,QAAQ,CAAgB,IAAA,CAAA;IAE9D,OAAQH,IAAAA;AACN,QAAA,KAAKV,MAAMC,WAAW;AACpB,YAAA,qBACEe,GAAA,CAACC,WAAAA,EAAAA;gBACCV,YAAAA,EAAcA,YAAAA;gBACdO,QAAAA,EAAUA,QAAAA;gBACVI,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAASA,OAAAA;gBACTc,UAAAA,EAAYb,cAAAA;gBACZG,uBAAAA,EAAyBA,uBAAAA;gBACzBW,UAAAA,EAAY,IAAMT,OAAAA,CAAQX,KAAAA,CAAME,WAAW,CAAA;gBAC3CmB,WAAAA,EAAa,IAAMV,OAAAA,CAAQX,KAAAA,CAAMG,YAAY,CAAA;gBAC7CmB,cAAAA,EAAgB,CAACR,WAAaC,WAAAA,CAAYD,QAAAA,CAAAA;gBAC1CN,QAAAA,EAAUA;;AAIhB,QAAA,KAAKR,MAAMG,YAAY;AACrB,YAAA,qBACEa,GAAA,CAACO,gBAAAA,EAAAA;gBACCL,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAAS,IAAMM,OAAAA,CAAQX,KAAAA,CAAMC,WAAW,CAAA;gBACxCuB,cAAAA,EAAgBV;;AAItB,QAAA;AACE,YAAA,qBACEE,GAAA,CAACS,iBAAAA,EAAAA;gBAAkBP,IAAI,EAAA,IAAA;gBAACb,OAAAA,EAAS,IAAMM,OAAAA,CAAQX,KAAAA,CAAMC,WAAW,CAAA;gBAAGa,QAAAA,EAAUA;;AAEnF;AACF;;;;"}
@@ -8,7 +8,6 @@ var createAssetUrl = require('../../../utils/createAssetUrl.js');
8
8
  require('byte-size');
9
9
  require('date-fns');
10
10
  require('qs');
11
- require('../../../utils/typeFromMime.js');
12
11
  require('../../../utils/urlYupSchema.js');
13
12
  var icons = require('../../../utils/icons.js');
14
13
  var AudioPreview = require('../../AssetCard/AudioPreview.js');
@@ -31,7 +30,7 @@ const AudioPreviewWrapper = styledComponents.styled(designSystem.Box)`
31
30
  }
32
31
  `;
33
32
  const CarouselAsset = ({ asset })=>{
34
- if (asset.mime?.includes(enums.AssetType.Video)) {
33
+ if (asset.mime?.includes(enums.ASSET_TYPES.Video)) {
35
34
  return /*#__PURE__*/ jsxRuntime.jsx(VideoPreviewWrapper, {
36
35
  height: "100%",
37
36
  children: /*#__PURE__*/ jsxRuntime.jsx(VideoPreview.VideoPreview, {
@@ -41,7 +40,7 @@ const CarouselAsset = ({ asset })=>{
41
40
  })
42
41
  });
43
42
  }
44
- if (asset.mime?.includes(enums.AssetType.Audio)) {
43
+ if (asset.mime?.includes(enums.ASSET_TYPES.Audio)) {
45
44
  return /*#__PURE__*/ jsxRuntime.jsx(AudioPreviewWrapper, {
46
45
  children: /*#__PURE__*/ jsxRuntime.jsx(AudioPreview.AudioPreview, {
47
46
  url: createAssetUrl.createAssetUrl(asset, true),
@@ -49,7 +48,7 @@ const CarouselAsset = ({ asset })=>{
49
48
  })
50
49
  });
51
50
  }
52
- if (asset.mime?.includes(enums.AssetType.Image)) {
51
+ if (asset.mime?.includes(enums.ASSET_TYPES.Image)) {
53
52
  const assetUrl = createAssetUrl.createAssetUrl(asset, true);
54
53
  if (!assetUrl) return null;
55
54
  // Adding a param to the url to bust the cache and force the refresh of the image when replaced
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselAsset.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.tsx"],"sourcesContent":["import { Box, Flex } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { AssetType } from '../../../enums';\nimport { createAssetUrl } from '../../../utils';\nimport { getFileIconComponent } from '../../../utils/icons';\nimport { AudioPreview } from '../../AssetCard/AudioPreview';\nimport { VideoPreview } from '../../AssetCard/VideoPreview';\n\nimport type { File as FileAsset } from '../../../../../shared/contracts/files';\n\nconst DocAsset = styled(Flex)`\n background: linear-gradient(180deg, #ffffff 0%, #f6f6f9 121.48%);\n`;\n\nconst VideoPreviewWrapper = styled(Box)`\n canvas,\n video {\n max-width: 100%;\n height: 124px;\n }\n`;\n\nconst AudioPreviewWrapper = styled(Box)`\n canvas,\n audio {\n max-width: 100%;\n }\n`;\n\nexport const CarouselAsset = ({ asset }: { asset: FileAsset }) => {\n if (asset.mime?.includes(AssetType.Video)) {\n return (\n <VideoPreviewWrapper height=\"100%\">\n <VideoPreview\n url={createAssetUrl(asset, true)!}\n mime={asset.mime}\n alt={asset.alternativeText || asset.name}\n />\n </VideoPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(AssetType.Audio)) {\n return (\n <AudioPreviewWrapper>\n <AudioPreview\n url={createAssetUrl(asset, true)!}\n alt={asset.alternativeText || asset.name}\n />\n </AudioPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(AssetType.Image)) {\n const assetUrl = createAssetUrl(asset, true);\n if (!assetUrl) return null;\n\n // Adding a param to the url to bust the cache and force the refresh of the image when replaced\n // Only add updatedAt parameter if the URL is not signed to prevent signature invalidation\n const cacheBustedUrl = asset.isUrlSigned\n ? assetUrl\n : `${assetUrl}${assetUrl.includes('?') ? '&' : '?'}updatedAt=${asset.updatedAt}`;\n\n return (\n <Box\n tag=\"img\"\n maxHeight=\"100%\"\n maxWidth=\"100%\"\n src={cacheBustedUrl}\n alt={asset.alternativeText || asset.name}\n />\n );\n }\n\n const IconComponent = getFileIconComponent(asset.ext);\n\n return (\n <DocAsset width=\"100%\" height=\"100%\" justifyContent=\"center\" hasRadius>\n <IconComponent aria-label={asset.alternativeText || asset.name} width=\"24px\" height=\"32px\" />\n </DocAsset>\n );\n};\n"],"names":["DocAsset","styled","Flex","VideoPreviewWrapper","Box","AudioPreviewWrapper","CarouselAsset","asset","mime","includes","AssetType","Video","_jsx","height","VideoPreview","url","createAssetUrl","alt","alternativeText","name","Audio","AudioPreview","Image","assetUrl","cacheBustedUrl","isUrlSigned","updatedAt","tag","maxHeight","maxWidth","src","IconComponent","getFileIconComponent","ext","width","justifyContent","hasRadius","aria-label"],"mappings":";;;;;;;;;;;;;;;;AAWA,MAAMA,QAAAA,GAAWC,uBAAAA,CAAOC,iBAAAA,CAAK;;AAE7B,CAAC;AAED,MAAMC,mBAAAA,GAAsBF,uBAAAA,CAAOG,gBAAAA,CAAI;;;;;;AAMvC,CAAC;AAED,MAAMC,mBAAAA,GAAsBJ,uBAAAA,CAAOG,gBAAAA,CAAI;;;;;AAKvC,CAAC;AAEM,MAAME,aAAAA,GAAgB,CAAC,EAAEC,KAAK,EAAwB,GAAA;AAC3D,IAAA,IAAIA,MAAMC,IAAI,EAAEC,QAAAA,CAASC,eAAAA,CAAUC,KAAK,CAAA,EAAG;AACzC,QAAA,qBACEC,cAAA,CAACT,mBAAAA,EAAAA;YAAoBU,MAAAA,EAAO,MAAA;AAC1B,YAAA,QAAA,gBAAAD,cAAA,CAACE,yBAAAA,EAAAA;AACCC,gBAAAA,GAAAA,EAAKC,8BAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BC,gBAAAA,IAAAA,EAAMD,MAAMC,IAAI;AAChBS,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,eAAAA,CAAUU,KAAK,CAAA,EAAG;AACzC,QAAA,qBACER,cAAA,CAACP,mBAAAA,EAAAA;AACC,YAAA,QAAA,gBAAAO,cAAA,CAACS,yBAAAA,EAAAA;AACCN,gBAAAA,GAAAA,EAAKC,8BAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BU,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,eAAAA,CAAUY,KAAK,CAAA,EAAG;QACzC,MAAMC,QAAAA,GAAWP,8BAAeT,KAAAA,EAAO,IAAA,CAAA;QACvC,IAAI,CAACgB,UAAU,OAAO,IAAA;;;AAItB,QAAA,MAAMC,iBAAiBjB,KAAAA,CAAMkB,WAAW,GACpCF,QAAAA,GACA,GAAGA,QAAAA,CAAAA,EAAWA,QAAAA,CAASd,QAAQ,CAAC,OAAO,GAAA,GAAM,GAAA,CAAI,UAAU,EAAEF,KAAAA,CAAMmB,SAAS,CAAA,CAAE;AAElF,QAAA,qBACEd,cAAA,CAACR,gBAAAA,EAAAA;YACCuB,GAAAA,EAAI,KAAA;YACJC,SAAAA,EAAU,MAAA;YACVC,QAAAA,EAAS,MAAA;YACTC,GAAAA,EAAKN,cAAAA;AACLP,YAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;AAG1C,IAAA;IAEA,MAAMY,aAAAA,GAAgBC,0BAAAA,CAAqBzB,KAAAA,CAAM0B,GAAG,CAAA;AAEpD,IAAA,qBACErB,cAAA,CAACZ,QAAAA,EAAAA;QAASkC,KAAAA,EAAM,MAAA;QAAOrB,MAAAA,EAAO,MAAA;QAAOsB,cAAAA,EAAe,QAAA;QAASC,SAAS,EAAA,IAAA;AACpE,QAAA,QAAA,gBAAAxB,cAAA,CAACmB,aAAAA,EAAAA;AAAcM,YAAAA,YAAAA,EAAY9B,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY,IAAI;YAAEe,KAAAA,EAAM,MAAA;YAAOrB,MAAAA,EAAO;;;AAG1F;;;;"}
1
+ {"version":3,"file":"CarouselAsset.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.tsx"],"sourcesContent":["import { Box, Flex } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { ASSET_TYPES } from '../../../enums';\nimport { createAssetUrl } from '../../../utils';\nimport { getFileIconComponent } from '../../../utils/icons';\nimport { AudioPreview } from '../../AssetCard/AudioPreview';\nimport { VideoPreview } from '../../AssetCard/VideoPreview';\n\nimport type { File as FileAsset } from '../../../../../shared/contracts/files';\n\nconst DocAsset = styled(Flex)`\n background: linear-gradient(180deg, #ffffff 0%, #f6f6f9 121.48%);\n`;\n\nconst VideoPreviewWrapper = styled(Box)`\n canvas,\n video {\n max-width: 100%;\n height: 124px;\n }\n`;\n\nconst AudioPreviewWrapper = styled(Box)`\n canvas,\n audio {\n max-width: 100%;\n }\n`;\n\nexport const CarouselAsset = ({ asset }: { asset: FileAsset }) => {\n if (asset.mime?.includes(ASSET_TYPES.Video)) {\n return (\n <VideoPreviewWrapper height=\"100%\">\n <VideoPreview\n url={createAssetUrl(asset, true)!}\n mime={asset.mime}\n alt={asset.alternativeText || asset.name}\n />\n </VideoPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Audio)) {\n return (\n <AudioPreviewWrapper>\n <AudioPreview\n url={createAssetUrl(asset, true)!}\n alt={asset.alternativeText || asset.name}\n />\n </AudioPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Image)) {\n const assetUrl = createAssetUrl(asset, true);\n if (!assetUrl) return null;\n\n // Adding a param to the url to bust the cache and force the refresh of the image when replaced\n // Only add updatedAt parameter if the URL is not signed to prevent signature invalidation\n const cacheBustedUrl = asset.isUrlSigned\n ? assetUrl\n : `${assetUrl}${assetUrl.includes('?') ? '&' : '?'}updatedAt=${asset.updatedAt}`;\n\n return (\n <Box\n tag=\"img\"\n maxHeight=\"100%\"\n maxWidth=\"100%\"\n src={cacheBustedUrl}\n alt={asset.alternativeText || asset.name}\n />\n );\n }\n\n const IconComponent = getFileIconComponent(asset.ext);\n\n return (\n <DocAsset width=\"100%\" height=\"100%\" justifyContent=\"center\" hasRadius>\n <IconComponent aria-label={asset.alternativeText || asset.name} width=\"24px\" height=\"32px\" />\n </DocAsset>\n );\n};\n"],"names":["DocAsset","styled","Flex","VideoPreviewWrapper","Box","AudioPreviewWrapper","CarouselAsset","asset","mime","includes","ASSET_TYPES","Video","_jsx","height","VideoPreview","url","createAssetUrl","alt","alternativeText","name","Audio","AudioPreview","Image","assetUrl","cacheBustedUrl","isUrlSigned","updatedAt","tag","maxHeight","maxWidth","src","IconComponent","getFileIconComponent","ext","width","justifyContent","hasRadius","aria-label"],"mappings":";;;;;;;;;;;;;;;AAWA,MAAMA,QAAAA,GAAWC,uBAAAA,CAAOC,iBAAAA,CAAK;;AAE7B,CAAC;AAED,MAAMC,mBAAAA,GAAsBF,uBAAAA,CAAOG,gBAAAA,CAAI;;;;;;AAMvC,CAAC;AAED,MAAMC,mBAAAA,GAAsBJ,uBAAAA,CAAOG,gBAAAA,CAAI;;;;;AAKvC,CAAC;AAEM,MAAME,aAAAA,GAAgB,CAAC,EAAEC,KAAK,EAAwB,GAAA;AAC3D,IAAA,IAAIA,MAAMC,IAAI,EAAEC,QAAAA,CAASC,iBAAAA,CAAYC,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACEC,cAAA,CAACT,mBAAAA,EAAAA;YAAoBU,MAAAA,EAAO,MAAA;AAC1B,YAAA,QAAA,gBAAAD,cAAA,CAACE,yBAAAA,EAAAA;AACCC,gBAAAA,GAAAA,EAAKC,8BAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BC,gBAAAA,IAAAA,EAAMD,MAAMC,IAAI;AAChBS,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,iBAAAA,CAAYU,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACER,cAAA,CAACP,mBAAAA,EAAAA;AACC,YAAA,QAAA,gBAAAO,cAAA,CAACS,yBAAAA,EAAAA;AACCN,gBAAAA,GAAAA,EAAKC,8BAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BU,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,iBAAAA,CAAYY,KAAK,CAAA,EAAG;QAC3C,MAAMC,QAAAA,GAAWP,8BAAeT,KAAAA,EAAO,IAAA,CAAA;QACvC,IAAI,CAACgB,UAAU,OAAO,IAAA;;;AAItB,QAAA,MAAMC,iBAAiBjB,KAAAA,CAAMkB,WAAW,GACpCF,QAAAA,GACA,GAAGA,QAAAA,CAAAA,EAAWA,QAAAA,CAASd,QAAQ,CAAC,OAAO,GAAA,GAAM,GAAA,CAAI,UAAU,EAAEF,KAAAA,CAAMmB,SAAS,CAAA,CAAE;AAElF,QAAA,qBACEd,cAAA,CAACR,gBAAAA,EAAAA;YACCuB,GAAAA,EAAI,KAAA;YACJC,SAAAA,EAAU,MAAA;YACVC,QAAAA,EAAS,MAAA;YACTC,GAAAA,EAAKN,cAAAA;AACLP,YAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;AAG1C,IAAA;IAEA,MAAMY,aAAAA,GAAgBC,0BAAAA,CAAqBzB,KAAAA,CAAM0B,GAAG,CAAA;AAEpD,IAAA,qBACErB,cAAA,CAACZ,QAAAA,EAAAA;QAASkC,KAAAA,EAAM,MAAA;QAAOrB,MAAAA,EAAO,MAAA;QAAOsB,cAAAA,EAAe,QAAA;QAASC,SAAS,EAAA,IAAA;AACpE,QAAA,QAAA,gBAAAxB,cAAA,CAACmB,aAAAA,EAAAA;AAAcM,YAAAA,YAAAA,EAAY9B,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY,IAAI;YAAEe,KAAAA,EAAM,MAAA;YAAOrB,MAAAA,EAAO;;;AAG1F;;;;"}
@@ -1,12 +1,11 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { Flex, Box } from '@strapi/design-system';
3
3
  import { styled } from 'styled-components';
4
- import { AssetType } from '../../../enums.mjs';
4
+ import { ASSET_TYPES } from '../../../enums.mjs';
5
5
  import { createAssetUrl } from '../../../utils/createAssetUrl.mjs';
6
6
  import 'byte-size';
7
7
  import 'date-fns';
8
8
  import 'qs';
9
- import '../../../utils/typeFromMime.mjs';
10
9
  import '../../../utils/urlYupSchema.mjs';
11
10
  import { getFileIconComponent } from '../../../utils/icons.mjs';
12
11
  import { AudioPreview } from '../../AssetCard/AudioPreview.mjs';
@@ -29,7 +28,7 @@ const AudioPreviewWrapper = styled(Box)`
29
28
  }
30
29
  `;
31
30
  const CarouselAsset = ({ asset })=>{
32
- if (asset.mime?.includes(AssetType.Video)) {
31
+ if (asset.mime?.includes(ASSET_TYPES.Video)) {
33
32
  return /*#__PURE__*/ jsx(VideoPreviewWrapper, {
34
33
  height: "100%",
35
34
  children: /*#__PURE__*/ jsx(VideoPreview, {
@@ -39,7 +38,7 @@ const CarouselAsset = ({ asset })=>{
39
38
  })
40
39
  });
41
40
  }
42
- if (asset.mime?.includes(AssetType.Audio)) {
41
+ if (asset.mime?.includes(ASSET_TYPES.Audio)) {
43
42
  return /*#__PURE__*/ jsx(AudioPreviewWrapper, {
44
43
  children: /*#__PURE__*/ jsx(AudioPreview, {
45
44
  url: createAssetUrl(asset, true),
@@ -47,7 +46,7 @@ const CarouselAsset = ({ asset })=>{
47
46
  })
48
47
  });
49
48
  }
50
- if (asset.mime?.includes(AssetType.Image)) {
49
+ if (asset.mime?.includes(ASSET_TYPES.Image)) {
51
50
  const assetUrl = createAssetUrl(asset, true);
52
51
  if (!assetUrl) return null;
53
52
  // Adding a param to the url to bust the cache and force the refresh of the image when replaced
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselAsset.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.tsx"],"sourcesContent":["import { Box, Flex } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { AssetType } from '../../../enums';\nimport { createAssetUrl } from '../../../utils';\nimport { getFileIconComponent } from '../../../utils/icons';\nimport { AudioPreview } from '../../AssetCard/AudioPreview';\nimport { VideoPreview } from '../../AssetCard/VideoPreview';\n\nimport type { File as FileAsset } from '../../../../../shared/contracts/files';\n\nconst DocAsset = styled(Flex)`\n background: linear-gradient(180deg, #ffffff 0%, #f6f6f9 121.48%);\n`;\n\nconst VideoPreviewWrapper = styled(Box)`\n canvas,\n video {\n max-width: 100%;\n height: 124px;\n }\n`;\n\nconst AudioPreviewWrapper = styled(Box)`\n canvas,\n audio {\n max-width: 100%;\n }\n`;\n\nexport const CarouselAsset = ({ asset }: { asset: FileAsset }) => {\n if (asset.mime?.includes(AssetType.Video)) {\n return (\n <VideoPreviewWrapper height=\"100%\">\n <VideoPreview\n url={createAssetUrl(asset, true)!}\n mime={asset.mime}\n alt={asset.alternativeText || asset.name}\n />\n </VideoPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(AssetType.Audio)) {\n return (\n <AudioPreviewWrapper>\n <AudioPreview\n url={createAssetUrl(asset, true)!}\n alt={asset.alternativeText || asset.name}\n />\n </AudioPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(AssetType.Image)) {\n const assetUrl = createAssetUrl(asset, true);\n if (!assetUrl) return null;\n\n // Adding a param to the url to bust the cache and force the refresh of the image when replaced\n // Only add updatedAt parameter if the URL is not signed to prevent signature invalidation\n const cacheBustedUrl = asset.isUrlSigned\n ? assetUrl\n : `${assetUrl}${assetUrl.includes('?') ? '&' : '?'}updatedAt=${asset.updatedAt}`;\n\n return (\n <Box\n tag=\"img\"\n maxHeight=\"100%\"\n maxWidth=\"100%\"\n src={cacheBustedUrl}\n alt={asset.alternativeText || asset.name}\n />\n );\n }\n\n const IconComponent = getFileIconComponent(asset.ext);\n\n return (\n <DocAsset width=\"100%\" height=\"100%\" justifyContent=\"center\" hasRadius>\n <IconComponent aria-label={asset.alternativeText || asset.name} width=\"24px\" height=\"32px\" />\n </DocAsset>\n );\n};\n"],"names":["DocAsset","styled","Flex","VideoPreviewWrapper","Box","AudioPreviewWrapper","CarouselAsset","asset","mime","includes","AssetType","Video","_jsx","height","VideoPreview","url","createAssetUrl","alt","alternativeText","name","Audio","AudioPreview","Image","assetUrl","cacheBustedUrl","isUrlSigned","updatedAt","tag","maxHeight","maxWidth","src","IconComponent","getFileIconComponent","ext","width","justifyContent","hasRadius","aria-label"],"mappings":";;;;;;;;;;;;;;AAWA,MAAMA,QAAAA,GAAWC,MAAAA,CAAOC,IAAAA,CAAK;;AAE7B,CAAC;AAED,MAAMC,mBAAAA,GAAsBF,MAAAA,CAAOG,GAAAA,CAAI;;;;;;AAMvC,CAAC;AAED,MAAMC,mBAAAA,GAAsBJ,MAAAA,CAAOG,GAAAA,CAAI;;;;;AAKvC,CAAC;AAEM,MAAME,aAAAA,GAAgB,CAAC,EAAEC,KAAK,EAAwB,GAAA;AAC3D,IAAA,IAAIA,MAAMC,IAAI,EAAEC,QAAAA,CAASC,SAAAA,CAAUC,KAAK,CAAA,EAAG;AACzC,QAAA,qBACEC,GAAA,CAACT,mBAAAA,EAAAA;YAAoBU,MAAAA,EAAO,MAAA;AAC1B,YAAA,QAAA,gBAAAD,GAAA,CAACE,YAAAA,EAAAA;AACCC,gBAAAA,GAAAA,EAAKC,eAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BC,gBAAAA,IAAAA,EAAMD,MAAMC,IAAI;AAChBS,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,SAAAA,CAAUU,KAAK,CAAA,EAAG;AACzC,QAAA,qBACER,GAAA,CAACP,mBAAAA,EAAAA;AACC,YAAA,QAAA,gBAAAO,GAAA,CAACS,YAAAA,EAAAA;AACCN,gBAAAA,GAAAA,EAAKC,eAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BU,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,SAAAA,CAAUY,KAAK,CAAA,EAAG;QACzC,MAAMC,QAAAA,GAAWP,eAAeT,KAAAA,EAAO,IAAA,CAAA;QACvC,IAAI,CAACgB,UAAU,OAAO,IAAA;;;AAItB,QAAA,MAAMC,iBAAiBjB,KAAAA,CAAMkB,WAAW,GACpCF,QAAAA,GACA,GAAGA,QAAAA,CAAAA,EAAWA,QAAAA,CAASd,QAAQ,CAAC,OAAO,GAAA,GAAM,GAAA,CAAI,UAAU,EAAEF,KAAAA,CAAMmB,SAAS,CAAA,CAAE;AAElF,QAAA,qBACEd,GAAA,CAACR,GAAAA,EAAAA;YACCuB,GAAAA,EAAI,KAAA;YACJC,SAAAA,EAAU,MAAA;YACVC,QAAAA,EAAS,MAAA;YACTC,GAAAA,EAAKN,cAAAA;AACLP,YAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;AAG1C,IAAA;IAEA,MAAMY,aAAAA,GAAgBC,oBAAAA,CAAqBzB,KAAAA,CAAM0B,GAAG,CAAA;AAEpD,IAAA,qBACErB,GAAA,CAACZ,QAAAA,EAAAA;QAASkC,KAAAA,EAAM,MAAA;QAAOrB,MAAAA,EAAO,MAAA;QAAOsB,cAAAA,EAAe,QAAA;QAASC,SAAS,EAAA,IAAA;AACpE,QAAA,QAAA,gBAAAxB,GAAA,CAACmB,aAAAA,EAAAA;AAAcM,YAAAA,YAAAA,EAAY9B,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY,IAAI;YAAEe,KAAAA,EAAM,MAAA;YAAOrB,MAAAA,EAAO;;;AAG1F;;;;"}
1
+ {"version":3,"file":"CarouselAsset.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.tsx"],"sourcesContent":["import { Box, Flex } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { ASSET_TYPES } from '../../../enums';\nimport { createAssetUrl } from '../../../utils';\nimport { getFileIconComponent } from '../../../utils/icons';\nimport { AudioPreview } from '../../AssetCard/AudioPreview';\nimport { VideoPreview } from '../../AssetCard/VideoPreview';\n\nimport type { File as FileAsset } from '../../../../../shared/contracts/files';\n\nconst DocAsset = styled(Flex)`\n background: linear-gradient(180deg, #ffffff 0%, #f6f6f9 121.48%);\n`;\n\nconst VideoPreviewWrapper = styled(Box)`\n canvas,\n video {\n max-width: 100%;\n height: 124px;\n }\n`;\n\nconst AudioPreviewWrapper = styled(Box)`\n canvas,\n audio {\n max-width: 100%;\n }\n`;\n\nexport const CarouselAsset = ({ asset }: { asset: FileAsset }) => {\n if (asset.mime?.includes(ASSET_TYPES.Video)) {\n return (\n <VideoPreviewWrapper height=\"100%\">\n <VideoPreview\n url={createAssetUrl(asset, true)!}\n mime={asset.mime}\n alt={asset.alternativeText || asset.name}\n />\n </VideoPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Audio)) {\n return (\n <AudioPreviewWrapper>\n <AudioPreview\n url={createAssetUrl(asset, true)!}\n alt={asset.alternativeText || asset.name}\n />\n </AudioPreviewWrapper>\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Image)) {\n const assetUrl = createAssetUrl(asset, true);\n if (!assetUrl) return null;\n\n // Adding a param to the url to bust the cache and force the refresh of the image when replaced\n // Only add updatedAt parameter if the URL is not signed to prevent signature invalidation\n const cacheBustedUrl = asset.isUrlSigned\n ? assetUrl\n : `${assetUrl}${assetUrl.includes('?') ? '&' : '?'}updatedAt=${asset.updatedAt}`;\n\n return (\n <Box\n tag=\"img\"\n maxHeight=\"100%\"\n maxWidth=\"100%\"\n src={cacheBustedUrl}\n alt={asset.alternativeText || asset.name}\n />\n );\n }\n\n const IconComponent = getFileIconComponent(asset.ext);\n\n return (\n <DocAsset width=\"100%\" height=\"100%\" justifyContent=\"center\" hasRadius>\n <IconComponent aria-label={asset.alternativeText || asset.name} width=\"24px\" height=\"32px\" />\n </DocAsset>\n );\n};\n"],"names":["DocAsset","styled","Flex","VideoPreviewWrapper","Box","AudioPreviewWrapper","CarouselAsset","asset","mime","includes","ASSET_TYPES","Video","_jsx","height","VideoPreview","url","createAssetUrl","alt","alternativeText","name","Audio","AudioPreview","Image","assetUrl","cacheBustedUrl","isUrlSigned","updatedAt","tag","maxHeight","maxWidth","src","IconComponent","getFileIconComponent","ext","width","justifyContent","hasRadius","aria-label"],"mappings":";;;;;;;;;;;;;AAWA,MAAMA,QAAAA,GAAWC,MAAAA,CAAOC,IAAAA,CAAK;;AAE7B,CAAC;AAED,MAAMC,mBAAAA,GAAsBF,MAAAA,CAAOG,GAAAA,CAAI;;;;;;AAMvC,CAAC;AAED,MAAMC,mBAAAA,GAAsBJ,MAAAA,CAAOG,GAAAA,CAAI;;;;;AAKvC,CAAC;AAEM,MAAME,aAAAA,GAAgB,CAAC,EAAEC,KAAK,EAAwB,GAAA;AAC3D,IAAA,IAAIA,MAAMC,IAAI,EAAEC,QAAAA,CAASC,WAAAA,CAAYC,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACEC,GAAA,CAACT,mBAAAA,EAAAA;YAAoBU,MAAAA,EAAO,MAAA;AAC1B,YAAA,QAAA,gBAAAD,GAAA,CAACE,YAAAA,EAAAA;AACCC,gBAAAA,GAAAA,EAAKC,eAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BC,gBAAAA,IAAAA,EAAMD,MAAMC,IAAI;AAChBS,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,WAAAA,CAAYU,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACER,GAAA,CAACP,mBAAAA,EAAAA;AACC,YAAA,QAAA,gBAAAO,GAAA,CAACS,YAAAA,EAAAA;AACCN,gBAAAA,GAAAA,EAAKC,eAAeT,KAAAA,EAAO,IAAA,CAAA;AAC3BU,gBAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;;AAI5C,IAAA;AAEA,IAAA,IAAIZ,MAAMC,IAAI,EAAEC,QAAAA,CAASC,WAAAA,CAAYY,KAAK,CAAA,EAAG;QAC3C,MAAMC,QAAAA,GAAWP,eAAeT,KAAAA,EAAO,IAAA,CAAA;QACvC,IAAI,CAACgB,UAAU,OAAO,IAAA;;;AAItB,QAAA,MAAMC,iBAAiBjB,KAAAA,CAAMkB,WAAW,GACpCF,QAAAA,GACA,GAAGA,QAAAA,CAAAA,EAAWA,QAAAA,CAASd,QAAQ,CAAC,OAAO,GAAA,GAAM,GAAA,CAAI,UAAU,EAAEF,KAAAA,CAAMmB,SAAS,CAAA,CAAE;AAElF,QAAA,qBACEd,GAAA,CAACR,GAAAA,EAAAA;YACCuB,GAAAA,EAAI,KAAA;YACJC,SAAAA,EAAU,MAAA;YACVC,QAAAA,EAAS,MAAA;YACTC,GAAAA,EAAKN,cAAAA;AACLP,YAAAA,GAAAA,EAAKV,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY;;AAG1C,IAAA;IAEA,MAAMY,aAAAA,GAAgBC,oBAAAA,CAAqBzB,KAAAA,CAAM0B,GAAG,CAAA;AAEpD,IAAA,qBACErB,GAAA,CAACZ,QAAAA,EAAAA;QAASkC,KAAAA,EAAM,MAAA;QAAOrB,MAAAA,EAAO,MAAA;QAAOsB,cAAAA,EAAe,QAAA;QAASC,SAAS,EAAA,IAAA;AACpE,QAAA,QAAA,gBAAAxB,GAAA,CAACmB,aAAAA,EAAAA;AAAcM,YAAAA,YAAAA,EAAY9B,KAAAA,CAAMW,eAAe,IAAIX,KAAAA,CAAMY,IAAI;YAAEe,KAAAA,EAAM,MAAA;YAAOrB,MAAAA,EAAO;;;AAG1F;;;;"}
@@ -9,7 +9,6 @@ require('byte-size');
9
9
  require('date-fns');
10
10
  var getTrad = require('../../../utils/getTrad.js');
11
11
  require('qs');
12
- require('../../../utils/typeFromMime.js');
13
12
  require('../../../utils/urlYupSchema.js');
14
13
  var CopyLinkButton = require('../../CopyLinkButton/CopyLinkButton.js');
15
14