@strapi/upload 5.49.0 → 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 (332) hide show
  1. package/dist/admin/ai/components/AIAssetCard.js +10 -10
  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 +0 -1
  6. package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
  7. package/dist/admin/ai/components/AIUploadModal.mjs +0 -1
  8. package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
  9. package/dist/admin/components/AssetCard/AssetCard.js +3 -4
  10. package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
  11. package/dist/admin/components/AssetCard/AssetCard.mjs +4 -5
  12. package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
  13. package/dist/admin/components/AssetCard/AssetCardBase.js +0 -1
  14. package/dist/admin/components/AssetCard/AssetCardBase.js.map +1 -1
  15. package/dist/admin/components/AssetCard/AssetCardBase.mjs +0 -1
  16. package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +1 -1
  17. package/dist/admin/components/AssetCard/ImageAssetCard.js +0 -1
  18. package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
  19. package/dist/admin/components/AssetCard/ImageAssetCard.mjs +0 -1
  20. package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
  21. package/dist/admin/components/AssetCard/UploadingAssetCard.js +3 -4
  22. package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
  23. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +4 -5
  24. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
  25. package/dist/admin/components/AssetCard/VideoAssetCard.js +0 -1
  26. package/dist/admin/components/AssetCard/VideoAssetCard.js.map +1 -1
  27. package/dist/admin/components/AssetCard/VideoAssetCard.mjs +0 -1
  28. package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +1 -1
  29. package/dist/admin/components/AssetDialog/AssetDialog.js +0 -1
  30. package/dist/admin/components/AssetDialog/AssetDialog.js.map +1 -1
  31. package/dist/admin/components/AssetDialog/AssetDialog.mjs +0 -1
  32. package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +1 -1
  33. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +0 -1
  34. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
  35. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +0 -1
  36. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
  37. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js +0 -1
  38. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +1 -1
  39. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs +0 -1
  40. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -1
  41. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +0 -1
  42. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -1
  43. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +0 -1
  44. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -1
  45. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js +0 -1
  46. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -1
  47. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs +0 -1
  48. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -1
  49. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js +0 -1
  50. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -1
  51. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs +0 -1
  52. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -1
  53. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js +0 -1
  54. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -1
  55. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs +0 -1
  56. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -1
  57. package/dist/admin/components/CopyLinkButton/CopyLinkButton.js +0 -1
  58. package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +1 -1
  59. package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs +0 -1
  60. package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -1
  61. package/dist/admin/components/EditAssetDialog/EditAssetContent.js +0 -1
  62. package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
  63. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +0 -1
  64. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
  65. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +3 -3
  66. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
  67. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +4 -4
  68. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
  69. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js +0 -1
  70. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -1
  71. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs +0 -1
  72. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -1
  73. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js +0 -1
  74. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -1
  75. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs +0 -1
  76. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -1
  77. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +2 -3
  78. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
  79. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +3 -4
  80. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
  81. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +0 -1
  82. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -1
  83. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +0 -1
  84. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -1
  85. package/dist/admin/components/EditFolderDialog/EditFolderDialog.js +0 -1
  86. package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +1 -1
  87. package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs +0 -1
  88. package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -1
  89. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js +0 -1
  90. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -1
  91. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs +0 -1
  92. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -1
  93. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +3 -4
  94. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
  95. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +4 -5
  96. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
  97. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js +0 -1
  98. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -1
  99. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +0 -1
  100. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -1
  101. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js +2 -1
  102. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -1
  103. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs +2 -1
  104. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -1
  105. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +1 -2
  106. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
  107. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +2 -3
  108. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
  109. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +1 -1
  110. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
  111. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +1 -1
  112. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
  113. package/dist/admin/components/SortPicker/SortPicker.js +0 -1
  114. package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
  115. package/dist/admin/components/SortPicker/SortPicker.mjs +0 -1
  116. package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
  117. package/dist/admin/components/TableList/CellContent.js +0 -1
  118. package/dist/admin/components/TableList/CellContent.js.map +1 -1
  119. package/dist/admin/components/TableList/CellContent.mjs +0 -1
  120. package/dist/admin/components/TableList/CellContent.mjs.map +1 -1
  121. package/dist/admin/components/TableList/PreviewCell.js +3 -4
  122. package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
  123. package/dist/admin/components/TableList/PreviewCell.mjs +4 -5
  124. package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
  125. package/dist/admin/components/TableList/TableList.js +0 -1
  126. package/dist/admin/components/TableList/TableList.js.map +1 -1
  127. package/dist/admin/components/TableList/TableList.mjs +0 -1
  128. package/dist/admin/components/TableList/TableList.mjs.map +1 -1
  129. package/dist/admin/components/TableList/TableRows.js +0 -1
  130. package/dist/admin/components/TableList/TableRows.js.map +1 -1
  131. package/dist/admin/components/TableList/TableRows.mjs +0 -1
  132. package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
  133. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js +0 -1
  134. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -1
  135. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +0 -1
  136. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -1
  137. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +2 -3
  138. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
  139. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +3 -4
  140. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
  141. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +0 -1
  142. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -1
  143. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +0 -1
  144. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -1
  145. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +0 -1
  146. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
  147. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +0 -1
  148. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
  149. package/dist/admin/constants.js +4 -7
  150. package/dist/admin/constants.js.map +1 -1
  151. package/dist/admin/constants.mjs +4 -7
  152. package/dist/admin/constants.mjs.map +1 -1
  153. package/dist/admin/enums.js +14 -16
  154. package/dist/admin/enums.js.map +1 -1
  155. package/dist/admin/enums.mjs +13 -15
  156. package/dist/admin/enums.mjs.map +1 -1
  157. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +2 -2
  158. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -1
  159. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +2 -2
  160. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -1
  161. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js +4 -4
  162. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js.map +1 -1
  163. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs +4 -4
  164. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +1 -1
  165. package/dist/admin/future/pages/Assets/components/AssetsGrid.js +2 -2
  166. package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -1
  167. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +2 -2
  168. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -1
  169. package/dist/admin/future/utils/getAssetIcon.js +4 -4
  170. package/dist/admin/future/utils/getAssetIcon.js.map +1 -1
  171. package/dist/admin/future/utils/getAssetIcon.mjs +4 -4
  172. package/dist/admin/future/utils/getAssetIcon.mjs.map +1 -1
  173. package/dist/admin/hooks/useAIMetadataJob.js +0 -1
  174. package/dist/admin/hooks/useAIMetadataJob.js.map +1 -1
  175. package/dist/admin/hooks/useAIMetadataJob.mjs +0 -1
  176. package/dist/admin/hooks/useAIMetadataJob.mjs.map +1 -1
  177. package/dist/admin/hooks/useBulkEdit.js +0 -1
  178. package/dist/admin/hooks/useBulkEdit.js.map +1 -1
  179. package/dist/admin/hooks/useBulkEdit.mjs +0 -1
  180. package/dist/admin/hooks/useBulkEdit.mjs.map +1 -1
  181. package/dist/admin/hooks/useBulkMove.js +0 -1
  182. package/dist/admin/hooks/useBulkMove.js.map +1 -1
  183. package/dist/admin/hooks/useBulkMove.mjs +0 -1
  184. package/dist/admin/hooks/useBulkMove.mjs.map +1 -1
  185. package/dist/admin/hooks/useBulkRemove.js +0 -1
  186. package/dist/admin/hooks/useBulkRemove.js.map +1 -1
  187. package/dist/admin/hooks/useBulkRemove.mjs +0 -1
  188. package/dist/admin/hooks/useBulkRemove.mjs.map +1 -1
  189. package/dist/admin/hooks/useEditAsset.js +0 -1
  190. package/dist/admin/hooks/useEditAsset.js.map +1 -1
  191. package/dist/admin/hooks/useEditAsset.mjs +0 -1
  192. package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
  193. package/dist/admin/hooks/useFolder.js +0 -1
  194. package/dist/admin/hooks/useFolder.js.map +1 -1
  195. package/dist/admin/hooks/useFolder.mjs +0 -1
  196. package/dist/admin/hooks/useFolder.mjs.map +1 -1
  197. package/dist/admin/hooks/useFolderStructure.js +0 -1
  198. package/dist/admin/hooks/useFolderStructure.js.map +1 -1
  199. package/dist/admin/hooks/useFolderStructure.mjs +0 -1
  200. package/dist/admin/hooks/useFolderStructure.mjs.map +1 -1
  201. package/dist/admin/index.js +0 -1
  202. package/dist/admin/index.js.map +1 -1
  203. package/dist/admin/index.mjs +0 -1
  204. package/dist/admin/index.mjs.map +1 -1
  205. package/dist/admin/pages/App/App.js +0 -1
  206. package/dist/admin/pages/App/App.js.map +1 -1
  207. package/dist/admin/pages/App/App.mjs +0 -1
  208. package/dist/admin/pages/App/App.mjs.map +1 -1
  209. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +0 -1
  210. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
  211. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +0 -1
  212. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
  213. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +0 -1
  214. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
  215. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +0 -1
  216. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
  217. package/dist/admin/pages/App/MediaLibrary.js +0 -1
  218. package/dist/admin/pages/App/MediaLibrary.js.map +1 -1
  219. package/dist/admin/pages/App/MediaLibrary.mjs +0 -1
  220. package/dist/admin/pages/App/MediaLibrary.mjs.map +1 -1
  221. package/dist/admin/pages/App/components/BulkActions.js +0 -1
  222. package/dist/admin/pages/App/components/BulkActions.js.map +1 -1
  223. package/dist/admin/pages/App/components/BulkActions.mjs +0 -1
  224. package/dist/admin/pages/App/components/BulkActions.mjs.map +1 -1
  225. package/dist/admin/pages/App/components/EmptyOrNoPermissions.js +0 -1
  226. package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +1 -1
  227. package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs +0 -1
  228. package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -1
  229. package/dist/admin/pages/App/components/Filters.js +0 -1
  230. package/dist/admin/pages/App/components/Filters.js.map +1 -1
  231. package/dist/admin/pages/App/components/Filters.mjs +0 -1
  232. package/dist/admin/pages/App/components/Filters.mjs.map +1 -1
  233. package/dist/admin/pages/App/components/Header.js +0 -1
  234. package/dist/admin/pages/App/components/Header.js.map +1 -1
  235. package/dist/admin/pages/App/components/Header.mjs +0 -1
  236. package/dist/admin/pages/App/components/Header.mjs.map +1 -1
  237. package/dist/admin/pages/SettingsPage/SettingsPage.js +0 -1
  238. package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
  239. package/dist/admin/pages/SettingsPage/SettingsPage.mjs +0 -1
  240. package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
  241. package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewComponents.d.ts +11 -12
  242. package/dist/admin/src/components/EmptyAssets/EmptyAssets.d.ts +0 -1
  243. package/dist/admin/src/components/FolderCard/contexts/FolderCard.d.ts +2 -3
  244. package/dist/admin/src/constants.d.ts +5 -4
  245. package/dist/admin/src/enums.d.ts +14 -12
  246. package/dist/admin/src/future/store/uploadProgress.d.ts +1 -1
  247. package/dist/admin/src/hooks/useCropImg.d.ts +2 -2
  248. package/dist/admin/src/hooks/useEditFolder.d.ts +4 -4
  249. package/dist/admin/src/hooks/useModalQueryParams.d.ts +5 -5
  250. package/dist/admin/src/hooks/usePersistentState.d.ts +0 -1
  251. package/dist/admin/src/hooks/useSettings.d.ts +5 -5
  252. package/dist/admin/src/hooks/useTracking.d.ts +1 -1
  253. package/dist/admin/src/pages/App/ConfigureTheView/state/actions.d.ts +1 -1
  254. package/dist/admin/src/pages/App/ConfigureTheView/state/init.d.ts +1 -1
  255. package/dist/admin/src/utils/getBreadcrumbDataML.d.ts +1 -1
  256. package/dist/admin/src/utils/getFolderParents.d.ts +3 -3
  257. package/dist/admin/src/utils/icons.d.ts +2 -1
  258. package/dist/admin/src/utils/rawFileToAsset.d.ts +1 -1
  259. package/dist/admin/src/utils/urlsToAssets.d.ts +2 -10
  260. package/dist/admin/translations/ja.json.js +175 -0
  261. package/dist/admin/translations/ja.json.js.map +1 -1
  262. package/dist/admin/translations/ja.json.mjs +175 -0
  263. package/dist/admin/translations/ja.json.mjs.map +1 -1
  264. package/dist/admin/utils/icons.js +5 -5
  265. package/dist/admin/utils/icons.js.map +1 -1
  266. package/dist/admin/utils/icons.mjs +6 -6
  267. package/dist/admin/utils/icons.mjs.map +1 -1
  268. package/dist/admin/utils/typeFromMime.js +9 -9
  269. package/dist/admin/utils/typeFromMime.js.map +1 -1
  270. package/dist/admin/utils/typeFromMime.mjs +10 -10
  271. package/dist/admin/utils/typeFromMime.mjs.map +1 -1
  272. package/dist/admin/utils/urlsToAssets.js +1 -2
  273. package/dist/admin/utils/urlsToAssets.js.map +1 -1
  274. package/dist/admin/utils/urlsToAssets.mjs +1 -2
  275. package/dist/admin/utils/urlsToAssets.mjs.map +1 -1
  276. package/dist/server/src/controllers/admin-file.d.ts +4 -12
  277. package/dist/server/src/controllers/admin-file.d.ts.map +1 -1
  278. package/dist/server/src/controllers/admin-folder.d.ts +2 -2
  279. package/dist/server/src/controllers/admin-settings.d.ts +2 -2
  280. package/dist/server/src/controllers/admin-upload.d.ts +3 -3
  281. package/dist/server/src/controllers/content-api.d.ts +2 -2
  282. package/dist/server/src/controllers/content-api.d.ts.map +1 -1
  283. package/dist/server/src/controllers/index.d.ts +14 -23
  284. package/dist/server/src/controllers/index.d.ts.map +1 -1
  285. package/dist/server/src/controllers/utils/find-entity-and-check-permissions.d.ts.map +1 -1
  286. package/dist/server/src/controllers/utils/folders.d.ts.map +1 -1
  287. package/dist/server/src/controllers/validation/admin/configureView.d.ts +1 -1
  288. package/dist/server/src/controllers/validation/admin/folder-file.d.ts +1 -1
  289. package/dist/server/src/controllers/validation/admin/folder-file.d.ts.map +1 -1
  290. package/dist/server/src/controllers/validation/admin/folder.d.ts +2 -2
  291. package/dist/server/src/controllers/validation/admin/folder.d.ts.map +1 -1
  292. package/dist/server/src/controllers/validation/admin/settings.d.ts +1 -1
  293. package/dist/server/src/controllers/validation/admin/upload.d.ts +1 -1
  294. package/dist/server/src/controllers/validation/admin/upload.d.ts.map +1 -1
  295. package/dist/server/src/controllers/validation/admin/utils.d.ts.map +1 -1
  296. package/dist/server/src/controllers/validation/content-api/upload.d.ts.map +1 -1
  297. package/dist/server/src/controllers/view-configuration.d.ts +1 -1
  298. package/dist/server/src/graphql.d.ts.map +1 -1
  299. package/dist/server/src/index.d.ts +36 -53
  300. package/dist/server/src/index.d.ts.map +1 -1
  301. package/dist/server/src/middlewares/upload.d.ts.map +1 -1
  302. package/dist/server/src/services/ai-metadata-jobs.d.ts +1 -1
  303. package/dist/server/src/services/ai-metadata-jobs.d.ts.map +1 -1
  304. package/dist/server/src/services/ai-metadata.d.ts.map +1 -1
  305. package/dist/server/src/services/extensions/utils.d.ts.map +1 -1
  306. package/dist/server/src/services/file.d.ts +2 -2
  307. package/dist/server/src/services/file.d.ts.map +1 -1
  308. package/dist/server/src/services/folder.d.ts +1 -1
  309. package/dist/server/src/services/folder.d.ts.map +1 -1
  310. package/dist/server/src/services/image-manipulation.d.ts.map +1 -1
  311. package/dist/server/src/services/index.d.ts +22 -30
  312. package/dist/server/src/services/index.d.ts.map +1 -1
  313. package/dist/server/src/services/metrics.d.ts.map +1 -1
  314. package/dist/server/src/services/provider.d.ts.map +1 -1
  315. package/dist/server/src/services/upload.d.ts +1 -1
  316. package/dist/server/src/services/upload.d.ts.map +1 -1
  317. package/dist/server/src/services/weekly-metrics.d.ts.map +1 -1
  318. package/dist/server/src/types.d.ts +4 -3
  319. package/dist/server/src/types.d.ts.map +1 -1
  320. package/dist/server/src/utils/cron.d.ts.map +1 -1
  321. package/dist/server/src/utils/index.d.ts.map +1 -1
  322. package/dist/server/src/utils/mime-validation.d.ts.map +1 -1
  323. package/dist/server/utils/mime-validation.js +3 -1
  324. package/dist/server/utils/mime-validation.js.map +1 -1
  325. package/dist/server/utils/mime-validation.mjs +3 -1
  326. package/dist/server/utils/mime-validation.mjs.map +1 -1
  327. package/package.json +9 -9
  328. package/dist/admin/future/enums.js +0 -12
  329. package/dist/admin/future/enums.js.map +0 -1
  330. package/dist/admin/future/enums.mjs +0 -10
  331. package/dist/admin/future/enums.mjs.map +0 -1
  332. package/dist/admin/src/future/enums.d.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"ReplaceMediaButton.js","sources":["../../../../admin/src/components/EditAssetDialog/ReplaceMediaButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, VisuallyHidden, ButtonProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../hooks/useTracking';\nimport { getTrad } from '../../utils';\n\ninterface ReplaceMediaButtonProps extends ButtonProps {\n acceptedMime: string;\n onSelectMedia: (file?: File) => void;\n trackedLocation?: string;\n}\n\nexport const ReplaceMediaButton = ({\n onSelectMedia,\n acceptedMime,\n trackedLocation,\n ...props\n}: ReplaceMediaButtonProps) => {\n const { formatMessage } = useIntl();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (trackedLocation) {\n trackUsage('didReplaceMedia', { location: trackedLocation });\n }\n\n inputRef.current?.click();\n };\n\n const handleChange = () => {\n const file = inputRef.current?.files?.[0];\n\n onSelectMedia(file);\n };\n\n return (\n <>\n <Button variant=\"secondary\" onClick={handleClick} {...props}>\n {formatMessage({\n id: getTrad('control-card.replace-media'),\n defaultMessage: 'Replace media',\n })}\n </Button>\n <VisuallyHidden>\n <input\n accept={acceptedMime}\n type=\"file\"\n name=\"file\"\n data-testid=\"file-input\"\n tabIndex={-1}\n ref={inputRef}\n onChange={handleChange}\n aria-hidden\n />\n </VisuallyHidden>\n </>\n );\n};\n"],"names":["ReplaceMediaButton","onSelectMedia","acceptedMime","trackedLocation","props","formatMessage","useIntl","inputRef","React","useRef","trackUsage","useTracking","handleClick","e","preventDefault","location","current","click","handleChange","file","files","_jsxs","_Fragment","_jsx","Button","variant","onClick","id","getTrad","defaultMessage","VisuallyHidden","input","accept","type","name","data-testid","tabIndex","ref","onChange","aria-hidden"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,MAAMA,kBAAAA,GAAqB,CAAC,EACjCC,aAAa,EACbC,YAAY,EACZC,eAAe,EACf,GAAGC,KAAAA,EACqB,GAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,QAAAA,GAAWC,gBAAAA,CAAMC,MAAM,CAAmB,IAAA,CAAA;IAChD,MAAM,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;AAEvB,IAAA,MAAMC,cAAc,CAACC,CAAAA,GAAAA;AACnBA,QAAAA,CAAAA,CAAEC,cAAc,EAAA;AAEhB,QAAA,IAAIX,eAAAA,EAAiB;AACnBO,YAAAA,UAAAA,CAAW,iBAAA,EAAmB;gBAAEK,QAAAA,EAAUZ;AAAgB,aAAA,CAAA;AAC5D,QAAA;AAEAI,QAAAA,QAAAA,CAASS,OAAO,EAAEC,KAAAA,EAAAA;AACpB,IAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAe,IAAA;AACnB,QAAA,MAAMC,OAAOZ,QAAAA,CAASS,OAAO,EAAEI,KAAAA,GAAQ,CAAA,CAAE;QAEzCnB,aAAAA,CAAckB,IAAAA,CAAAA;AAChB,IAAA,CAAA;IAEA,qBACEE,eAAA,CAAAC,mBAAA,EAAA;;0BACEC,cAAA,CAACC,mBAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,WAAA;gBAAYC,OAAAA,EAASd,WAAAA;AAAc,gBAAA,GAAGR,KAAK;0BACxDC,aAAAA,CAAc;AACbsB,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,4BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFN,cAAA,CAACO,2BAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAP,cAAA,CAACQ,OAAAA,EAAAA;oBACCC,MAAAA,EAAQ9B,YAAAA;oBACR+B,IAAAA,EAAK,MAAA;oBACLC,IAAAA,EAAK,MAAA;oBACLC,aAAAA,EAAY,YAAA;AACZC,oBAAAA,QAAAA,EAAU,EAAC;oBACXC,GAAAA,EAAK9B,QAAAA;oBACL+B,QAAAA,EAAUpB,YAAAA;oBACVqB,aAAW,EAAA;;;;;AAKrB;;;;"}
1
+ {"version":3,"file":"ReplaceMediaButton.js","sources":["../../../../admin/src/components/EditAssetDialog/ReplaceMediaButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, VisuallyHidden, ButtonProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../hooks/useTracking';\nimport { getTrad } from '../../utils';\n\ninterface ReplaceMediaButtonProps extends ButtonProps {\n acceptedMime: string;\n onSelectMedia: (file?: File) => void;\n trackedLocation?: string;\n}\n\nexport const ReplaceMediaButton = ({\n onSelectMedia,\n acceptedMime,\n trackedLocation,\n ...props\n}: ReplaceMediaButtonProps) => {\n const { formatMessage } = useIntl();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (trackedLocation) {\n trackUsage('didReplaceMedia', { location: trackedLocation });\n }\n\n inputRef.current?.click();\n };\n\n const handleChange = () => {\n const file = inputRef.current?.files?.[0];\n\n onSelectMedia(file);\n };\n\n return (\n <>\n <Button variant=\"secondary\" onClick={handleClick} {...props}>\n {formatMessage({\n id: getTrad('control-card.replace-media'),\n defaultMessage: 'Replace media',\n })}\n </Button>\n <VisuallyHidden>\n <input\n accept={acceptedMime}\n type=\"file\"\n name=\"file\"\n data-testid=\"file-input\"\n tabIndex={-1}\n ref={inputRef}\n onChange={handleChange}\n aria-hidden\n />\n </VisuallyHidden>\n </>\n );\n};\n"],"names":["ReplaceMediaButton","onSelectMedia","acceptedMime","trackedLocation","props","formatMessage","useIntl","inputRef","React","useRef","trackUsage","useTracking","handleClick","e","preventDefault","location","current","click","handleChange","file","files","_jsxs","_Fragment","_jsx","Button","variant","onClick","id","getTrad","defaultMessage","VisuallyHidden","input","accept","type","name","data-testid","tabIndex","ref","onChange","aria-hidden"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,MAAMA,kBAAAA,GAAqB,CAAC,EACjCC,aAAa,EACbC,YAAY,EACZC,eAAe,EACf,GAAGC,KAAAA,EACqB,GAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,QAAAA,GAAWC,gBAAAA,CAAMC,MAAM,CAAmB,IAAA,CAAA;IAChD,MAAM,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;AAEvB,IAAA,MAAMC,cAAc,CAACC,CAAAA,GAAAA;AACnBA,QAAAA,CAAAA,CAAEC,cAAc,EAAA;AAEhB,QAAA,IAAIX,eAAAA,EAAiB;AACnBO,YAAAA,UAAAA,CAAW,iBAAA,EAAmB;gBAAEK,QAAAA,EAAUZ;AAAgB,aAAA,CAAA;AAC5D,QAAA;AAEAI,QAAAA,QAAAA,CAASS,OAAO,EAAEC,KAAAA,EAAAA;AACpB,IAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAe,IAAA;AACnB,QAAA,MAAMC,OAAOZ,QAAAA,CAASS,OAAO,EAAEI,KAAAA,GAAQ,CAAA,CAAE;QAEzCnB,aAAAA,CAAckB,IAAAA,CAAAA;AAChB,IAAA,CAAA;IAEA,qBACEE,eAAA,CAAAC,mBAAA,EAAA;;0BACEC,cAAA,CAACC,mBAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,WAAA;gBAAYC,OAAAA,EAASd,WAAAA;AAAc,gBAAA,GAAGR,KAAK;0BACxDC,aAAAA,CAAc;AACbsB,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,4BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFN,cAAA,CAACO,2BAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAP,cAAA,CAACQ,OAAAA,EAAAA;oBACCC,MAAAA,EAAQ9B,YAAAA;oBACR+B,IAAAA,EAAK,MAAA;oBACLC,IAAAA,EAAK,MAAA;oBACLC,aAAAA,EAAY,YAAA;AACZC,oBAAAA,QAAAA,EAAU,EAAC;oBACXC,GAAAA,EAAK9B,QAAAA;oBACL+B,QAAAA,EAAUpB,YAAAA;oBACVqB,aAAW,EAAA;;;;;AAKrB;;;;"}
@@ -7,7 +7,6 @@ import 'byte-size';
7
7
  import 'date-fns';
8
8
  import { getTrad } from '../../utils/getTrad.mjs';
9
9
  import 'qs';
10
- import '../../utils/typeFromMime.mjs';
11
10
  import '../../utils/urlYupSchema.mjs';
12
11
 
13
12
  const ReplaceMediaButton = ({ onSelectMedia, acceptedMime, trackedLocation, ...props })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"ReplaceMediaButton.mjs","sources":["../../../../admin/src/components/EditAssetDialog/ReplaceMediaButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, VisuallyHidden, ButtonProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../hooks/useTracking';\nimport { getTrad } from '../../utils';\n\ninterface ReplaceMediaButtonProps extends ButtonProps {\n acceptedMime: string;\n onSelectMedia: (file?: File) => void;\n trackedLocation?: string;\n}\n\nexport const ReplaceMediaButton = ({\n onSelectMedia,\n acceptedMime,\n trackedLocation,\n ...props\n}: ReplaceMediaButtonProps) => {\n const { formatMessage } = useIntl();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (trackedLocation) {\n trackUsage('didReplaceMedia', { location: trackedLocation });\n }\n\n inputRef.current?.click();\n };\n\n const handleChange = () => {\n const file = inputRef.current?.files?.[0];\n\n onSelectMedia(file);\n };\n\n return (\n <>\n <Button variant=\"secondary\" onClick={handleClick} {...props}>\n {formatMessage({\n id: getTrad('control-card.replace-media'),\n defaultMessage: 'Replace media',\n })}\n </Button>\n <VisuallyHidden>\n <input\n accept={acceptedMime}\n type=\"file\"\n name=\"file\"\n data-testid=\"file-input\"\n tabIndex={-1}\n ref={inputRef}\n onChange={handleChange}\n aria-hidden\n />\n </VisuallyHidden>\n </>\n );\n};\n"],"names":["ReplaceMediaButton","onSelectMedia","acceptedMime","trackedLocation","props","formatMessage","useIntl","inputRef","React","useRef","trackUsage","useTracking","handleClick","e","preventDefault","location","current","click","handleChange","file","files","_jsxs","_Fragment","_jsx","Button","variant","onClick","id","getTrad","defaultMessage","VisuallyHidden","input","accept","type","name","data-testid","tabIndex","ref","onChange","aria-hidden"],"mappings":";;;;;;;;;;;;AAcO,MAAMA,kBAAAA,GAAqB,CAAC,EACjCC,aAAa,EACbC,YAAY,EACZC,eAAe,EACf,GAAGC,KAAAA,EACqB,GAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,QAAAA,GAAWC,KAAAA,CAAMC,MAAM,CAAmB,IAAA,CAAA;IAChD,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AAEvB,IAAA,MAAMC,cAAc,CAACC,CAAAA,GAAAA;AACnBA,QAAAA,CAAAA,CAAEC,cAAc,EAAA;AAEhB,QAAA,IAAIX,eAAAA,EAAiB;AACnBO,YAAAA,UAAAA,CAAW,iBAAA,EAAmB;gBAAEK,QAAAA,EAAUZ;AAAgB,aAAA,CAAA;AAC5D,QAAA;AAEAI,QAAAA,QAAAA,CAASS,OAAO,EAAEC,KAAAA,EAAAA;AACpB,IAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAe,IAAA;AACnB,QAAA,MAAMC,OAAOZ,QAAAA,CAASS,OAAO,EAAEI,KAAAA,GAAQ,CAAA,CAAE;QAEzCnB,aAAAA,CAAckB,IAAAA,CAAAA;AAChB,IAAA,CAAA;IAEA,qBACEE,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAAA,CAACC,MAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,WAAA;gBAAYC,OAAAA,EAASd,WAAAA;AAAc,gBAAA,GAAGR,KAAK;0BACxDC,aAAAA,CAAc;AACbsB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,4BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFN,GAAA,CAACO,cAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAP,GAAA,CAACQ,OAAAA,EAAAA;oBACCC,MAAAA,EAAQ9B,YAAAA;oBACR+B,IAAAA,EAAK,MAAA;oBACLC,IAAAA,EAAK,MAAA;oBACLC,aAAAA,EAAY,YAAA;AACZC,oBAAAA,QAAAA,EAAU,EAAC;oBACXC,GAAAA,EAAK9B,QAAAA;oBACL+B,QAAAA,EAAUpB,YAAAA;oBACVqB,aAAW,EAAA;;;;;AAKrB;;;;"}
1
+ {"version":3,"file":"ReplaceMediaButton.mjs","sources":["../../../../admin/src/components/EditAssetDialog/ReplaceMediaButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, VisuallyHidden, ButtonProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../hooks/useTracking';\nimport { getTrad } from '../../utils';\n\ninterface ReplaceMediaButtonProps extends ButtonProps {\n acceptedMime: string;\n onSelectMedia: (file?: File) => void;\n trackedLocation?: string;\n}\n\nexport const ReplaceMediaButton = ({\n onSelectMedia,\n acceptedMime,\n trackedLocation,\n ...props\n}: ReplaceMediaButtonProps) => {\n const { formatMessage } = useIntl();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { trackUsage } = useTracking();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (trackedLocation) {\n trackUsage('didReplaceMedia', { location: trackedLocation });\n }\n\n inputRef.current?.click();\n };\n\n const handleChange = () => {\n const file = inputRef.current?.files?.[0];\n\n onSelectMedia(file);\n };\n\n return (\n <>\n <Button variant=\"secondary\" onClick={handleClick} {...props}>\n {formatMessage({\n id: getTrad('control-card.replace-media'),\n defaultMessage: 'Replace media',\n })}\n </Button>\n <VisuallyHidden>\n <input\n accept={acceptedMime}\n type=\"file\"\n name=\"file\"\n data-testid=\"file-input\"\n tabIndex={-1}\n ref={inputRef}\n onChange={handleChange}\n aria-hidden\n />\n </VisuallyHidden>\n </>\n );\n};\n"],"names":["ReplaceMediaButton","onSelectMedia","acceptedMime","trackedLocation","props","formatMessage","useIntl","inputRef","React","useRef","trackUsage","useTracking","handleClick","e","preventDefault","location","current","click","handleChange","file","files","_jsxs","_Fragment","_jsx","Button","variant","onClick","id","getTrad","defaultMessage","VisuallyHidden","input","accept","type","name","data-testid","tabIndex","ref","onChange","aria-hidden"],"mappings":";;;;;;;;;;;AAcO,MAAMA,kBAAAA,GAAqB,CAAC,EACjCC,aAAa,EACbC,YAAY,EACZC,eAAe,EACf,GAAGC,KAAAA,EACqB,GAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,QAAAA,GAAWC,KAAAA,CAAMC,MAAM,CAAmB,IAAA,CAAA;IAChD,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AAEvB,IAAA,MAAMC,cAAc,CAACC,CAAAA,GAAAA;AACnBA,QAAAA,CAAAA,CAAEC,cAAc,EAAA;AAEhB,QAAA,IAAIX,eAAAA,EAAiB;AACnBO,YAAAA,UAAAA,CAAW,iBAAA,EAAmB;gBAAEK,QAAAA,EAAUZ;AAAgB,aAAA,CAAA;AAC5D,QAAA;AAEAI,QAAAA,QAAAA,CAASS,OAAO,EAAEC,KAAAA,EAAAA;AACpB,IAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAe,IAAA;AACnB,QAAA,MAAMC,OAAOZ,QAAAA,CAASS,OAAO,EAAEI,KAAAA,GAAQ,CAAA,CAAE;QAEzCnB,aAAAA,CAAckB,IAAAA,CAAAA;AAChB,IAAA,CAAA;IAEA,qBACEE,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAAA,CAACC,MAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,WAAA;gBAAYC,OAAAA,EAASd,WAAAA;AAAc,gBAAA,GAAGR,KAAK;0BACxDC,aAAAA,CAAc;AACbsB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,4BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFN,GAAA,CAACO,cAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAP,GAAA,CAACQ,OAAAA,EAAAA;oBACCC,MAAAA,EAAQ9B,YAAAA;oBACR+B,IAAAA,EAAK,MAAA;oBACLC,IAAAA,EAAK,MAAA;oBACLC,aAAAA,EAAY,YAAA;AACZC,oBAAAA,QAAAA,EAAU,EAAC;oBACXC,GAAAA,EAAK9B,QAAAA;oBACL+B,QAAAA,EAAUpB,YAAAA;oBACVqB,aAAW,EAAA;;;;;AAKrB;;;;"}
@@ -19,7 +19,6 @@ require('date-fns');
19
19
  var getAPIInnerErrors = require('../../utils/getAPIInnerErrors.js');
20
20
  var getTrad = require('../../utils/getTrad.js');
21
21
  require('qs');
22
- require('../../utils/typeFromMime.js');
23
22
  require('../../utils/urlYupSchema.js');
24
23
  var ContextInfo = require('../ContextInfo/ContextInfo.js');
25
24
  var SelectTree = require('../SelectTree/SelectTree.js');
@@ -1 +1 @@
1
- {"version":3,"file":"EditFolderDialog.js","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.js","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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"}
@@ -17,7 +17,6 @@ import 'date-fns';
17
17
  import { getAPIInnerErrors } from '../../utils/getAPIInnerErrors.mjs';
18
18
  import { getTrad } from '../../utils/getTrad.mjs';
19
19
  import 'qs';
20
- import '../../utils/typeFromMime.mjs';
21
20
  import '../../utils/urlYupSchema.mjs';
22
21
  import { ContextInfo } from '../ContextInfo/ContextInfo.mjs';
23
22
  import { SelectTree } from '../SelectTree/SelectTree.mjs';
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,YAAAA,GAAeC,GAAAA,CAAIC,MAAM,CAAC;IAC9BC,IAAAA,EAAMF,GAAAA,CAAIG,MAAM,EAAA,CAAGC,QAAQ,EAAA;IAC3BC,MAAAA,EAAQL,GAAAA,CACLC,MAAM,CAAC;AACNK,QAAAA,KAAAA,EAAON,IAAIG,MAAM,EAAA;AACjBI,QAAAA,KAAAA,EAAOP,GAAAA,CAAIQ,MAAM,EAAA,CAAGC,QAAQ,CAAC,IAAA;AAC/B,KAAA,CAAA,CACCA,QAAQ,CAAC,IAAA;AACd,CAAA,CAAA;AAeO,MAAMC,iBAAAA,GAAoB,CAAC,EAChCC,OAAO,EACPC,MAAM,EACNC,QAAQ,EACRC,cAAc,EACQ,GAAA;IACtB,MAAM,EAAEC,MAAMC,eAAe,EAAEC,WAAWC,wBAAwB,EAAE,GAAGC,kBAAAA,CAAmB;QACxFC,OAAAA,EAAS;AACX,KAAA,CAAA;IACA,MAAM,EAAEC,SAAS,EAAEJ,SAAAA,EAAWK,oBAAoB,EAAEC,SAAS,EAAE,GAAGC,0BAAAA,EAAAA;AAClE,IAAA,MAAM,CAACC,iBAAAA,EAAmBC,oBAAAA,CAAqB,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACjE,IAAA,MAAM,EAAEC,aAAa,EAAEC,UAAU,EAAE,GAAGC,OAAAA,EAAAA;IACtC,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AACvB,IAAA,MAAM,EAAEC,UAAU,EAAEjB,SAAAA,EAAWkB,mBAAmB,EAAE,GAAGC,aAAAA,EAAAA;IACvD,MAAM,EAAEC,MAAM,EAAE,GAAGC,aAAAA,EAAAA;IACnB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAMvB,YAAYK,oBAAAA,IAAwBJ,wBAAAA;IAC1C,MAAMuB,SAAAA,GAAY,CAAC,CAAC7B,MAAAA;AACpB,IAAA,MAAM8B,eAAe,MAAC9B,IAAU,CAACW,SAAAA,IAAe,CAACX,UAAU,CAACS,SAAAA;IAC5D,MAAMsB,eAAAA,GAAgC,CAACzB,wBAAAA,GACnC;AACEhB,QAAAA,IAAAA,EAAMU,QAAQV,IAAAA,IAAQ,EAAA;QACtBG,MAAAA,EAAQ;AACN;AACmD,gEACnDE,OAAOO,cAAAA,GAAiB8B,QAAAA,CAAS9B,cAAAA,CAAe+B,QAAQ,IAAI,EAAA,CAAA,GAAMC,SAAAA;AAClExC,YAAAA,KAAAA,EAAOQ,cAAAA,GACHE,eAAAA,IACA+B,0BAAAA,CAA2B/B,eAAAA,EAAiB4B,QAAAA,CAAS9B,cAAAA,CAAe+B,QAAQ,EAAA,EAAI,EAAA,CAAA,CAAA,EAC5EvC,KAAAA,GACJU,eAAAA,GAAkB,EAAE,CAACV;AAC3B;KACF,GACA;QACEJ,IAAAA,EAAM,EAAA;QACNG,MAAAA,EAAQ;AACV,KAAA;IAEJ,MAAM2C,OAAAA,GAAUrB,KAAAA,CAAMsB,MAAM,CAAkB,IAAA,CAAA;IAE9C,MAAMC,aAAAA,GACJ,CAACC,YAAAA,GACD,CAACC,KAAAA,GAAAA;YACC,IAAIA,KAAAA,CAAMC,GAAG,KAAK,OAAA,EAAS;gBACzB,IAAID,KAAAA,CAAME,MAAM,YAAYC,gBAAAA,EAAkB;oBAC5CJ,YAAAA,CAAaC,KAAAA,CAAAA;AACbA,oBAAAA,KAAAA,CAAMI,cAAc,EAAA;AACtB,gBAAA;AACF,YAAA;AACF,QAAA,CAAA;AAEF,IAAA,MAAML,YAAAA,GAAe,OACnBM,MAAAA,EACA,EAAEC,SAAS,EAA+D,GAAA;QAE1E,IAAI;AACF,YAAA,MAAMxB,UAAAA,CACJ;AACE,gBAAA,GAAGuB,MAAM;gBACTpD,MAAAA,EAAQoD,MAAAA,CAAOpD,MAAM,EAAEE,KAAAA,IAAS;AAClC,aAAA,EACAK,MAAAA,EAAQ+C,EAAAA,CAAAA;YAGVpB,kBAAAA,CAAmB;gBACjBqB,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASpB,YACLZ,aAAAA,CAAc;AACZ8B,oBAAAA,EAAAA,EAAIG,OAAAA,CAAQ,0CAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA,GACAlC,aAAAA,CAAc;AACZ8B,oBAAAA,EAAAA,EAAIG,OAAAA,CAAQ,2CAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACN,aAAA,CAAA;AAEA,YAAA,IAAItB,SAAAA,EAAW;AACb,gBAAA,MAAMuB,oBAAoBlD,cAAAA,GACtB8B,QAAAA,CAAS9B,cAAAA,CAAe+B,QAAQ,IAAI,EAAA,CAAA,KAAQY,MAAAA,CAAOpD,MAAM,EAAEE,QAC3DO,cAAAA,KAAmB,IAAA,IAAQ,CAAC,CAAC2C,MAAAA,CAAOpD,MAAM,EAAEE,KAAAA;AAChDyB,gBAAAA,UAAAA,CAAW,6BAAA,EAA+B;AACxCnB,oBAAAA,QAAAA;oBACA+C,IAAAA,EAAM,QAAA;oBACNK,cAAAA,EAAgBD;AAClB,iBAAA,CAAA;YACF,CAAA,MAAO;AACLhC,gBAAAA,UAAAA,CAAW,2BAAA,EAA6B;oBAAEnB,QAAAA,EAAUA;AAAU,iBAAA,CAAA;AAChE,YAAA;YAEAF,OAAAA,CAAQ;gBAAEuD,OAAAA,EAAS;AAAK,aAAA,CAAA;AAC1B,QAAA,CAAA,CAAE,OAAOC,GAAAA,EAAK;YACZ,MAAMC,MAAAA,GAASC,kBAAkBF,GAAAA,EAAmB;AAAEL,gBAAAA;AAAQ,aAAA,CAAA;YAC9D,MAAMQ,YAAAA,GAAeC,MAAAA,CAAOC,OAAO,CAACJ,MAAAA,CAAAA,CAASK,MAAM,CACjD,CAACC,GAAAA,EAA6B,CAACrB,GAAAA,EAAKsB,KAAAA,CAAM,GAAA;AACxCD,gBAAAA,GAAG,CAACrB,GAAAA,CAAI,GAAGsB,KAAAA,CAAMZ,cAAc;gBAE/B,OAAOW,GAAAA;AACT,YAAA,CAAA,EACA,EAAC,CAAA;YAGH,IAAI,CAACE,QAAQN,YAAAA,CAAAA,EAAe;gBAC1BZ,SAAAA,CAAUY,YAAAA,CAAAA;AACZ,YAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMO,YAAAA,GAAe,UAAA;AACnB,QAAA,IAAIjE,MAAAA,EAAQ;AACV,YAAA,MAAMyB,MAAAA,CAAO;AAACzB,gBAAAA;AAAO,aAAA,CAAA;AACvB,QAAA;QAEAc,oBAAAA,CAAqB,KAAA,CAAA;AACrBf,QAAAA,OAAAA,EAAAA;AACF,IAAA,CAAA;AAEA,IAAA,IAAIM,SAAAA,EAAW;QACb,qBACE6D,IAAA,CAAAC,QAAA,EAAA;;8BACEC,GAAA,CAACC,qBAAAA,EAAAA;oBAAsBxC,SAAAA,EAAWA;;AAClC,8BAAAuC,GAAA,CAACE,MAAMC,IAAI,EAAA;AACT,oBAAA,QAAA,gBAAAH,GAAA,CAACI,IAAAA,EAAAA;wBAAKC,cAAAA,EAAe,QAAA;wBAASC,UAAAA,EAAY,CAAA;wBAAGC,aAAAA,EAAe,CAAA;AAC1D,wBAAA,QAAA,gBAAAP,GAAA,CAACQ,MAAAA,EAAAA;sCACE3D,aAAAA,CAAc;AACb8B,gCAAAA,EAAAA,EAAIG,OAAAA,CAAQ,mBAAA,CAAA;gCACZC,cAAAA,EAAgB;AAClB,6BAAA;;;;;;AAMZ,IAAA;IAEA,qBACEe,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAAA,CAACS,MAAAA,EAAAA;gBACCC,gBAAAA,EAAkB3F,YAAAA;gBAClB4F,gBAAAA,EAAkB,KAAA;gBAClBC,QAAAA,EAAUzC,YAAAA;gBACV0C,aAAAA,EAAelD,eAAAA;AAEd,gBAAA,QAAA,EAAA,CAAC,EAAEc,MAAM,EAAEW,MAAM,EAAE0B,YAAY,EAAEC,aAAa,EAAE5C,YAAY,EAAE,iBAC7D2B,IAAA,CAACkB,IAAAA,EAAAA;wBAAKC,UAAU,EAAA,IAAA;wBAACC,GAAAA,EAAKlD,OAAAA;AAASmD,wBAAAA,SAAAA,EAAWjD,aAAAA,CAAcC,YAAAA,CAAAA;;0CACtD6B,GAAA,CAACC,qBAAAA,EAAAA;gCAAsBxC,SAAAA,EAAWA;;AAClC,0CAAAuC,GAAA,CAACE,MAAMC,IAAI,EAAA;wDACTL,IAAA,CAACsB,KAAKC,IAAI,EAAA;oCAACC,GAAAA,EAAK,CAAA;;wCACb7D,SAAAA,kBACCuC,GAAA,CAACoB,KAAKG,IAAI,EAAA;4CAACC,EAAAA,EAAI,EAAA;4CAAIC,GAAAA,EAAK,EAAA;4CAAIC,SAAAA,EAAU,QAAA;4CAASC,UAAAA,EAAW,SAAA;AACxD,4CAAA,QAAA,gBAAA3B,GAAA,CAAC4B,WAAAA,EAAAA;gDACCC,MAAAA,EAAQ;AACN,oDAAA;AACEvG,wDAAAA,KAAAA,EAAOuB,aAAAA,CAAc;AACnB8B,4DAAAA,EAAAA,EAAIG,OAAAA,CAAQ,8BAAA,CAAA;4DACZC,cAAAA,EAAgB;AAClB,yDAAA,CAAA;AACAxD,wDAAAA,KAAAA,EAAOsB,aAAAA,CACL;AACE8B,4DAAAA,EAAAA,EAAIG,OAAAA,CAAQ,6BAAA,CAAA;4DACZC,cAAAA,EAAgB;yDAClB,EACA;4DACE+C,UAAAA,EAAYlG,MAAAA,EAAQmG,OAAOC,KAAAA,IAAS,CAAA;4DACpCC,WAAAA,EAAarG,MAAAA,EAAQsG,UAAUF,KAAAA,IAAS;AAC1C,yDAAA;AAEJ,qDAAA;AAEA,oDAAA;AACE1G,wDAAAA,KAAAA,EAAOuB,aAAAA,CAAc;AACnB8B,4DAAAA,EAAAA,EAAIG,OAAAA,CAAQ,mCAAA,CAAA;4DACZC,cAAAA,EAAgB;AAClB,yDAAA,CAAA;AACAxD,wDAAAA,KAAAA,EAAOuB,UAAAA,CAAW,IAAIqF,IAAAA,CAAKvG,MAAAA,CAAOwG,SAAS,CAAA;AAC7C;AACD;;;AAKP,sDAAApC,GAAA,CAACoB,KAAKG,IAAI,EAAA;4CAACC,EAAAA,EAAI,EAAA;4CAAIC,GAAAA,EAAK,CAAA;4CAAGC,SAAAA,EAAU,QAAA;4CAASC,UAAAA,EAAW,SAAA;oEACvD7B,IAAA,CAACuC,MAAMhB,IAAI,EAAA;gDACTnG,IAAAA,EAAK,MAAA;AACLyE,gDAAAA,KAAAA,EAAO,OAAOP,MAAAA,CAAOlE,IAAI,KAAK,QAAA,GAAWkE,MAAAA,CAAOlE,IAAI,GAAG4C,SAAAA;;AAEvD,kEAAAkC,GAAA,CAACqC,MAAMC,KAAK,EAAA;kEACTzF,aAAAA,CAAc;AACb8B,4DAAAA,EAAAA,EAAIG,OAAAA,CAAQ,8BAAA,CAAA;4DACZC,cAAAA,EAAgB;AAClB,yDAAA;;AAEF,kEAAAiB,GAAA,CAACqC,MAAME,KAAK,EAAA;AACVhH,wDAAAA,KAAAA,EAAOkD,OAAOvD,IAAI;wDAClBsH,QAAAA,EAAU1B,YAAAA;wDACV2B,QAAAA,EAAU/E;;AAEZ,kEAAAsC,GAAA,CAACqC,MAAMK,KAAK,EAAA,EAAA;;;;AAIhB,sDAAA1C,GAAA,CAACoB,KAAKG,IAAI,EAAA;4CAACC,EAAAA,EAAI,EAAA;4CAAIC,GAAAA,EAAK,CAAA;4CAAGC,SAAAA,EAAU,QAAA;4CAASC,UAAAA,EAAW,SAAA;oEACvD7B,IAAA,CAACuC,MAAMhB,IAAI,EAAA;gDAAC1C,EAAAA,EAAG,eAAA;;AACb,kEAAAqB,GAAA,CAACqC,MAAMC,KAAK,EAAA;kEACTzF,aAAAA,CAAc;AACb8B,4DAAAA,EAAAA,EAAIG,OAAAA,CAAQ,kCAAA,CAAA;4DACZC,cAAAA,EAAgB;AAClB,yDAAA;;kEAGFiB,GAAA,CAAC2C,UAAAA,EAAAA;wDACCC,OAAAA,EAAS5G,eAAAA;AACTwG,wDAAAA,QAAAA,EAAU,CAACjH,KAAAA,GAAAA;AACTwF,4DAAAA,aAAAA,CAAc,QAAA,EAAUxF,KAAAA,CAAAA;AAC1B,wDAAA,CAAA;wDACAsH,UAAAA,EAAYnF,YAAAA;AACZoF,wDAAAA,YAAAA,EAAcrE,OAAOpD,MAAM;wDAC3BH,IAAAA,EAAK,QAAA;wDACL6H,gBAAAA,EAAkBC,QAAAA,CAASC,aAAa,CAAC,MAAA,CAAA;wDACzCC,OAAAA,EAAQ,eAAA;wDACRT,QAAAA,EAAU/E,YAAAA;AACViC,wDAAAA,KAAAA,EAAO,OAAOP,MAAAA,CAAO/D,MAAM,KAAK,QAAA,GAAW+D,MAAAA,CAAO/D,MAAM,GAAGyC,SAAAA;wDAC3DqF,gBAAAA,EAAiB;;oDAGlB/D,MAAAA,CAAO/D,MAAM,kBACZ2E,GAAA,CAACoD,UAAAA,EAAAA;wDACCC,OAAAA,EAAQ,IAAA;wDACRC,GAAAA,EAAI,GAAA;wDACJ3E,EAAAA,EAAG,qBAAA;wDACH4E,SAAAA,EAAU,WAAA;AAET,wDAAA,QAAA,EAAA,OAAOnE,OAAO/D,MAAM,KAAK,QAAA,GAAW+D,MAAAA,CAAO/D,MAAM,GAAGyC;;;;;;;;AAOjE,0CAAAgC,IAAA,CAACI,MAAMsD,MAAM,EAAA;;kDACXxD,GAAA,CAACyD,MAAAA,EAAAA;AAAOC,wCAAAA,OAAAA,EAAS,IAAM/H,OAAAA,EAAAA;wCAAW0H,OAAAA,EAAQ,UAAA;wCAAWnI,IAAAA,EAAK,QAAA;kDACvD2B,aAAAA,CAAc;4CAAE8B,EAAAA,EAAI,QAAA;4CAAUI,cAAAA,EAAgB;AAAS,yCAAA;;kDAE1De,IAAA,CAACM,IAAAA,EAAAA;wCAAKkB,GAAAA,EAAK,CAAA;;AACR7D,4CAAAA,SAAAA,IAAalB,2BACZyD,GAAA,CAACyD,MAAAA,EAAAA;gDACC7E,IAAAA,EAAK,QAAA;gDACLyE,OAAAA,EAAQ,cAAA;AACRK,gDAAAA,OAAAA,EAAS,IAAMhH,oBAAAA,CAAqB,IAAA,CAAA;gDACpCxB,IAAAA,EAAK,QAAA;AACLuH,gDAAAA,QAAAA,EAAU,CAAClG,SAAAA,IAAaY,mBAAAA;0DAEvBN,aAAAA,CAAc;AACb8B,oDAAAA,EAAAA,EAAIG,OAAAA,CAAQ,4BAAA,CAAA;oDACZC,cAAAA,EAAgB;AAClB,iDAAA;;0DAIJiB,GAAA,CAACyD,MAAAA,EAAAA;gDACCvI,IAAAA,EAAK,QAAA;gDACLyI,OAAAA,EAASxG,mBAAAA;gDACTsF,QAAAA,EAAU/E,YAAAA;gDACVkB,IAAAA,EAAK,QAAA;AAEJ/B,gDAAAA,QAAAA,EAAAA,aAAAA,CACCY,SAAAA,GACI;AAAEkB,oDAAAA,EAAAA,EAAIG,OAAAA,CAAQ,0BAAA,CAAA;oDAA6BC,cAAAA,EAAgB;iDAAO,GAClE;AAAEJ,oDAAAA,EAAAA,EAAIG,OAAAA,CAAQ,4BAAA,CAAA;oDAA+BC,cAAAA,EAAgB;AAAS,iDAAA;;;;;;;;;0BAQxFiB,GAAA,CAAC4D,kBAAAA,EAAAA;gBACCC,IAAAA,EAAMpH,iBAAAA;AACNd,gBAAAA,OAAAA,EAAS,IAAMe,oBAAAA,CAAqB,KAAA,CAAA;gBACpCoH,SAAAA,EAAWjE;;;;AAInB;AAEO,MAAMkE,mBAAmB,CAAC,EAAEF,IAAI,EAAElI,OAAO,EAAE,GAAGqI,SAAAA,EAAkC,GAAA;IACrF,qBACEhE,GAAA,CAACE,MAAMmB,IAAI,EAAA;QAACwC,IAAAA,EAAMA,IAAAA;QAAMI,YAAAA,EAActI,OAAAA;gCACpCqE,GAAA,CAACE,MAAMgE,OAAO,EAAA;AACZ,YAAA,QAAA,gBAAAlE,GAAA,CAACtE,iBAAAA,EAAAA;AAAmB,gBAAA,GAAGsI,SAAS;gBAAErI,OAAAA,EAASA,OAAAA;gBAASkI,IAAAA,EAAMA;;;;AAIlE;;;;"}
@@ -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,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
 
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselAssetActions.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.tsx"],"sourcesContent":["import { CarouselActions, IconButton } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad, prefixFileUrlWithBackendUrl } from '../../../utils';\nimport { CopyLinkButton } from '../../CopyLinkButton/CopyLinkButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\ninterface CarouselAssetActionsProps {\n asset: File;\n onDeleteAsset?: (asset: File) => void;\n onAddAsset?: (asset: File) => void;\n onEditAsset?: () => void;\n}\n\nexport const CarouselAssetActions = ({\n asset,\n onDeleteAsset,\n onAddAsset,\n onEditAsset,\n}: CarouselAssetActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <CarouselActions>\n {onAddAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.add'),\n defaultMessage: 'Add',\n })}\n onClick={() => onAddAsset(asset)}\n >\n <Plus />\n </IconButton>\n )}\n\n <CopyLinkButton url={prefixFileUrlWithBackendUrl(asset.url)!} />\n\n {onDeleteAsset && (\n <IconButton\n label={formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n onClick={() => onDeleteAsset(asset)}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEditAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'edit',\n })}\n onClick={onEditAsset}\n >\n <Pencil />\n </IconButton>\n )}\n </CarouselActions>\n );\n};\n"],"names":["CarouselAssetActions","asset","onDeleteAsset","onAddAsset","onEditAsset","formatMessage","useIntl","_jsxs","CarouselActions","_jsx","IconButton","label","id","getTrad","defaultMessage","onClick","Plus","CopyLinkButton","url","prefixFileUrlWithBackendUrl","Trash","Pencil"],"mappings":";;;;;;;;;;;;;;;AAgBO,MAAMA,oBAAAA,GAAuB,CAAC,EACnCC,KAAK,EACLC,aAAa,EACbC,UAAU,EACVC,WAAW,EACe,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,eAAA,CAACC,4BAAAA,EAAAA;;AACEL,YAAAA,UAAAA,kBACCM,cAAA,CAACC,uBAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,kBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMZ,UAAAA,CAAWF,KAAAA,CAAAA;AAE1B,gBAAA,QAAA,gBAAAQ,cAAA,CAACO,UAAAA,EAAAA,EAAAA;;0BAILP,cAAA,CAACQ,6BAAAA,EAAAA;gBAAeC,GAAAA,EAAKC,uDAAAA,CAA4BlB,MAAMiB,GAAG;;AAEzDhB,YAAAA,aAAAA,kBACCO,cAAA,CAACC,uBAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;oBACnBO,EAAAA,EAAI,eAAA;oBACJE,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMb,aAAAA,CAAcD,KAAAA,CAAAA;AAE7B,gBAAA,QAAA,gBAAAQ,cAAA,CAACW,WAAAA,EAAAA,EAAAA;;AAIJhB,YAAAA,WAAAA,kBACCK,cAAA,CAACC,uBAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,mBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;gBACAC,OAAAA,EAASX,WAAAA;AAET,gBAAA,QAAA,gBAAAK,cAAA,CAACY,YAAAA,EAAAA,EAAAA;;;;AAKX;;;;"}
1
+ {"version":3,"file":"CarouselAssetActions.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.tsx"],"sourcesContent":["import { CarouselActions, IconButton } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad, prefixFileUrlWithBackendUrl } from '../../../utils';\nimport { CopyLinkButton } from '../../CopyLinkButton/CopyLinkButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\ninterface CarouselAssetActionsProps {\n asset: File;\n onDeleteAsset?: (asset: File) => void;\n onAddAsset?: (asset: File) => void;\n onEditAsset?: () => void;\n}\n\nexport const CarouselAssetActions = ({\n asset,\n onDeleteAsset,\n onAddAsset,\n onEditAsset,\n}: CarouselAssetActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <CarouselActions>\n {onAddAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.add'),\n defaultMessage: 'Add',\n })}\n onClick={() => onAddAsset(asset)}\n >\n <Plus />\n </IconButton>\n )}\n\n <CopyLinkButton url={prefixFileUrlWithBackendUrl(asset.url)!} />\n\n {onDeleteAsset && (\n <IconButton\n label={formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n onClick={() => onDeleteAsset(asset)}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEditAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'edit',\n })}\n onClick={onEditAsset}\n >\n <Pencil />\n </IconButton>\n )}\n </CarouselActions>\n );\n};\n"],"names":["CarouselAssetActions","asset","onDeleteAsset","onAddAsset","onEditAsset","formatMessage","useIntl","_jsxs","CarouselActions","_jsx","IconButton","label","id","getTrad","defaultMessage","onClick","Plus","CopyLinkButton","url","prefixFileUrlWithBackendUrl","Trash","Pencil"],"mappings":";;;;;;;;;;;;;;AAgBO,MAAMA,oBAAAA,GAAuB,CAAC,EACnCC,KAAK,EACLC,aAAa,EACbC,UAAU,EACVC,WAAW,EACe,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,eAAA,CAACC,4BAAAA,EAAAA;;AACEL,YAAAA,UAAAA,kBACCM,cAAA,CAACC,uBAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,kBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMZ,UAAAA,CAAWF,KAAAA,CAAAA;AAE1B,gBAAA,QAAA,gBAAAQ,cAAA,CAACO,UAAAA,EAAAA,EAAAA;;0BAILP,cAAA,CAACQ,6BAAAA,EAAAA;gBAAeC,GAAAA,EAAKC,uDAAAA,CAA4BlB,MAAMiB,GAAG;;AAEzDhB,YAAAA,aAAAA,kBACCO,cAAA,CAACC,uBAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;oBACnBO,EAAAA,EAAI,eAAA;oBACJE,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMb,aAAAA,CAAcD,KAAAA,CAAAA;AAE7B,gBAAA,QAAA,gBAAAQ,cAAA,CAACW,WAAAA,EAAAA,EAAAA;;AAIJhB,YAAAA,WAAAA,kBACCK,cAAA,CAACC,uBAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,mBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;gBACAC,OAAAA,EAASX,WAAAA;AAET,gBAAA,QAAA,gBAAAK,cAAA,CAACY,YAAAA,EAAAA,EAAAA;;;;AAKX;;;;"}
@@ -7,7 +7,6 @@ import 'byte-size';
7
7
  import 'date-fns';
8
8
  import { getTrad } from '../../../utils/getTrad.mjs';
9
9
  import 'qs';
10
- import '../../../utils/typeFromMime.mjs';
11
10
  import '../../../utils/urlYupSchema.mjs';
12
11
  import { CopyLinkButton } from '../../CopyLinkButton/CopyLinkButton.mjs';
13
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselAssetActions.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.tsx"],"sourcesContent":["import { CarouselActions, IconButton } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad, prefixFileUrlWithBackendUrl } from '../../../utils';\nimport { CopyLinkButton } from '../../CopyLinkButton/CopyLinkButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\ninterface CarouselAssetActionsProps {\n asset: File;\n onDeleteAsset?: (asset: File) => void;\n onAddAsset?: (asset: File) => void;\n onEditAsset?: () => void;\n}\n\nexport const CarouselAssetActions = ({\n asset,\n onDeleteAsset,\n onAddAsset,\n onEditAsset,\n}: CarouselAssetActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <CarouselActions>\n {onAddAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.add'),\n defaultMessage: 'Add',\n })}\n onClick={() => onAddAsset(asset)}\n >\n <Plus />\n </IconButton>\n )}\n\n <CopyLinkButton url={prefixFileUrlWithBackendUrl(asset.url)!} />\n\n {onDeleteAsset && (\n <IconButton\n label={formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n onClick={() => onDeleteAsset(asset)}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEditAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'edit',\n })}\n onClick={onEditAsset}\n >\n <Pencil />\n </IconButton>\n )}\n </CarouselActions>\n );\n};\n"],"names":["CarouselAssetActions","asset","onDeleteAsset","onAddAsset","onEditAsset","formatMessage","useIntl","_jsxs","CarouselActions","_jsx","IconButton","label","id","getTrad","defaultMessage","onClick","Plus","CopyLinkButton","url","prefixFileUrlWithBackendUrl","Trash","Pencil"],"mappings":";;;;;;;;;;;;;AAgBO,MAAMA,oBAAAA,GAAuB,CAAC,EACnCC,KAAK,EACLC,aAAa,EACbC,UAAU,EACVC,WAAW,EACe,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,IAAA,CAACC,eAAAA,EAAAA;;AACEL,YAAAA,UAAAA,kBACCM,GAAA,CAACC,UAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,kBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMZ,UAAAA,CAAWF,KAAAA,CAAAA;AAE1B,gBAAA,QAAA,gBAAAQ,GAAA,CAACO,IAAAA,EAAAA,EAAAA;;0BAILP,GAAA,CAACQ,cAAAA,EAAAA;gBAAeC,GAAAA,EAAKC,2BAAAA,CAA4BlB,MAAMiB,GAAG;;AAEzDhB,YAAAA,aAAAA,kBACCO,GAAA,CAACC,UAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;oBACnBO,EAAAA,EAAI,eAAA;oBACJE,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMb,aAAAA,CAAcD,KAAAA,CAAAA;AAE7B,gBAAA,QAAA,gBAAAQ,GAAA,CAACW,KAAAA,EAAAA,EAAAA;;AAIJhB,YAAAA,WAAAA,kBACCK,GAAA,CAACC,UAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,mBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;gBACAC,OAAAA,EAASX,WAAAA;AAET,gBAAA,QAAA,gBAAAK,GAAA,CAACY,MAAAA,EAAAA,EAAAA;;;;AAKX;;;;"}
1
+ {"version":3,"file":"CarouselAssetActions.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.tsx"],"sourcesContent":["import { CarouselActions, IconButton } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad, prefixFileUrlWithBackendUrl } from '../../../utils';\nimport { CopyLinkButton } from '../../CopyLinkButton/CopyLinkButton';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\ninterface CarouselAssetActionsProps {\n asset: File;\n onDeleteAsset?: (asset: File) => void;\n onAddAsset?: (asset: File) => void;\n onEditAsset?: () => void;\n}\n\nexport const CarouselAssetActions = ({\n asset,\n onDeleteAsset,\n onAddAsset,\n onEditAsset,\n}: CarouselAssetActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <CarouselActions>\n {onAddAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.add'),\n defaultMessage: 'Add',\n })}\n onClick={() => onAddAsset(asset)}\n >\n <Plus />\n </IconButton>\n )}\n\n <CopyLinkButton url={prefixFileUrlWithBackendUrl(asset.url)!} />\n\n {onDeleteAsset && (\n <IconButton\n label={formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n onClick={() => onDeleteAsset(asset)}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEditAsset && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.edit'),\n defaultMessage: 'edit',\n })}\n onClick={onEditAsset}\n >\n <Pencil />\n </IconButton>\n )}\n </CarouselActions>\n );\n};\n"],"names":["CarouselAssetActions","asset","onDeleteAsset","onAddAsset","onEditAsset","formatMessage","useIntl","_jsxs","CarouselActions","_jsx","IconButton","label","id","getTrad","defaultMessage","onClick","Plus","CopyLinkButton","url","prefixFileUrlWithBackendUrl","Trash","Pencil"],"mappings":";;;;;;;;;;;;AAgBO,MAAMA,oBAAAA,GAAuB,CAAC,EACnCC,KAAK,EACLC,aAAa,EACbC,UAAU,EACVC,WAAW,EACe,GAAA;IAC1B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,IAAA,CAACC,eAAAA,EAAAA;;AACEL,YAAAA,UAAAA,kBACCM,GAAA,CAACC,UAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,kBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMZ,UAAAA,CAAWF,KAAAA,CAAAA;AAE1B,gBAAA,QAAA,gBAAAQ,GAAA,CAACO,IAAAA,EAAAA,EAAAA;;0BAILP,GAAA,CAACQ,cAAAA,EAAAA;gBAAeC,GAAAA,EAAKC,2BAAAA,CAA4BlB,MAAMiB,GAAG;;AAEzDhB,YAAAA,aAAAA,kBACCO,GAAA,CAACC,UAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;oBACnBO,EAAAA,EAAI,eAAA;oBACJE,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,OAAAA,EAAS,IAAMb,aAAAA,CAAcD,KAAAA,CAAAA;AAE7B,gBAAA,QAAA,gBAAAQ,GAAA,CAACW,KAAAA,EAAAA,EAAAA;;AAIJhB,YAAAA,WAAAA,kBACCK,GAAA,CAACC,UAAAA,EAAAA;AACCC,gBAAAA,KAAAA,EAAON,aAAAA,CAAc;AACnBO,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,mBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;gBACAC,OAAAA,EAASX,WAAAA;AAET,gBAAA,QAAA,gBAAAK,GAAA,CAACY,MAAAA,EAAAA,EAAAA;;;;AAKX;;;;"}
@@ -84,6 +84,7 @@ const CarouselAssets = /*#__PURE__*/ React__namespace.forwardRef(({ assets, disa
84
84
  m: assets.length
85
85
  }),
86
86
  onDoubleClick: (event)=>{
87
+ if (disabled) return;
87
88
  setIsEditingAsset(true);
88
89
  onDoubleClickAsset(asset, event);
89
90
  },
@@ -106,7 +107,7 @@ const CarouselAssets = /*#__PURE__*/ React__namespace.forwardRef(({ assets, disa
106
107
  }
107
108
  },
108
109
  asset: currentAsset,
109
- canUpdate: true,
110
+ canUpdate: !disabled,
110
111
  canCopyLink: true,
111
112
  canDownload: true,
112
113
  trackedLocation: trackedLocation