@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":"CarouselAssets.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssets.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { CarouselInput, CarouselSlide } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { EditAssetDialog } from '../../EditAssetDialog/EditAssetContent';\n\nimport { CarouselAsset } from './CarouselAsset';\nimport { CarouselAssetActions } from './CarouselAssetActions';\nimport { EmptyStateAsset } from './EmptyStateAsset';\n\nimport type { File as FileAsset, RawFile } from '../../../../../shared/contracts/files';\n\nexport type FileWithoutIdHash = Omit<FileAsset, 'id' | 'hash'>;\n\ninterface Asset extends Omit<FileAsset, 'folder'> {\n isLocal?: boolean;\n rawFile?: RawFile;\n folder?: FileAsset['folder'] & { id: number };\n}\n\nexport interface CarouselAssetsProps {\n assets: FileAsset[];\n disabled?: boolean;\n error?: string;\n hint?: string;\n label: string;\n labelAction?: React.ReactNode;\n onAddAsset: (asset?: FileAsset, event?: React.MouseEventHandler<HTMLButtonElement>) => void;\n onDeleteAsset: (asset: FileAsset) => void;\n onDeleteAssetFromMediaLibrary: () => void;\n onDropAsset?: (assets: FileWithoutIdHash[]) => void;\n onEditAsset?: (asset: FileAsset) => void;\n onNext: () => void;\n onPrevious: () => void;\n onDoubleClickAsset: (asset: FileAsset, event?: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n required?: boolean;\n selectedAssetIndex: number;\n trackedLocation?: string;\n}\n\nexport const CarouselAssets = React.forwardRef(\n (\n {\n assets,\n disabled = false,\n error,\n hint,\n label,\n labelAction,\n onAddAsset,\n onDeleteAsset,\n onDeleteAssetFromMediaLibrary,\n onDropAsset,\n onEditAsset,\n onNext,\n onPrevious,\n onDoubleClickAsset,\n required = false,\n selectedAssetIndex,\n trackedLocation,\n }: CarouselAssetsProps,\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const [isEditingAsset, setIsEditingAsset] = React.useState(false);\n\n const currentAsset = assets[selectedAssetIndex];\n const canEditMedia = !disabled && onEditAsset;\n\n return (\n <>\n <CarouselInput\n ref={forwardedRef as React.Ref<HTMLDivElement>}\n label={label}\n labelAction={labelAction}\n secondaryLabel={currentAsset?.name}\n selectedSlide={selectedAssetIndex}\n previousLabel={formatMessage({\n id: getTrad('mediaLibraryInput.actions.previousSlide'),\n defaultMessage: 'Previous slide',\n })}\n nextLabel={formatMessage({\n id: getTrad('mediaLibraryInput.actions.nextSlide'),\n defaultMessage: 'Next slide',\n })}\n onNext={onNext}\n onPrevious={onPrevious}\n hint={hint}\n error={error}\n required={required}\n actions={\n currentAsset ? (\n <CarouselAssetActions\n asset={currentAsset}\n onDeleteAsset={disabled ? undefined : onDeleteAsset}\n onAddAsset={disabled ? undefined : onAddAsset}\n onEditAsset={canEditMedia ? () => setIsEditingAsset(true) : undefined}\n />\n ) : undefined\n }\n >\n {assets.length === 0 ? (\n <CarouselSlide\n label={formatMessage(\n {\n id: getTrad('mediaLibraryInput.slideCount'),\n defaultMessage: '{n} of {m} slides',\n },\n { n: 1, m: 1 }\n )}\n >\n <EmptyStateAsset\n disabled={disabled}\n onClick={onAddAsset}\n onDropAsset={onDropAsset!}\n />\n </CarouselSlide>\n ) : (\n assets.map((asset, index) => (\n <CarouselSlide\n key={asset.id}\n label={formatMessage(\n {\n id: getTrad('mediaLibraryInput.slideCount'),\n defaultMessage: '{n} of {m} slides',\n },\n { n: index + 1, m: assets.length }\n )}\n onDoubleClick={(event) => {\n setIsEditingAsset(true);\n onDoubleClickAsset(asset, event);\n }}\n aria-selected={currentAsset.id === asset.id}\n >\n <CarouselAsset asset={asset} />\n </CarouselSlide>\n ))\n )}\n </CarouselInput>\n <EditAssetDialog\n open={isEditingAsset}\n onClose={(editedAsset) => {\n setIsEditingAsset(false);\n\n // The asset has been deleted\n if (editedAsset === null) {\n onDeleteAssetFromMediaLibrary();\n }\n if (editedAsset && typeof editedAsset !== 'boolean') {\n onEditAsset?.(editedAsset);\n }\n }}\n asset={currentAsset as Asset}\n canUpdate\n canCopyLink\n canDownload\n trackedLocation={trackedLocation}\n />\n </>\n );\n }\n);\n"],"names":["CarouselAssets","React","forwardRef","assets","disabled","error","hint","label","labelAction","onAddAsset","onDeleteAsset","onDeleteAssetFromMediaLibrary","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","required","selectedAssetIndex","trackedLocation","forwardedRef","formatMessage","useIntl","isEditingAsset","setIsEditingAsset","useState","currentAsset","canEditMedia","_jsxs","_Fragment","_jsx","CarouselInput","ref","secondaryLabel","name","selectedSlide","previousLabel","id","getTrad","defaultMessage","nextLabel","actions","CarouselAssetActions","asset","undefined","length","CarouselSlide","n","m","EmptyStateAsset","onClick","map","index","onDoubleClick","event","aria-selected","CarouselAsset","EditAssetDialog","open","onClose","editedAsset","canUpdate","canCopyLink","canDownload"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA0CaA,cAAAA,iBAAiBC,gBAAAA,CAAMC,UAAU,CAC5C,CACE,EACEC,MAAM,EACNC,WAAW,KAAK,EAChBC,KAAK,EACLC,IAAI,EACJC,KAAK,EACLC,WAAW,EACXC,UAAU,EACVC,aAAa,EACbC,6BAA6B,EAC7BC,WAAW,EACXC,WAAW,EACXC,MAAM,EACNC,UAAU,EACVC,kBAAkB,EAClBC,WAAW,KAAK,EAChBC,kBAAkB,EAClBC,eAAe,EACK,EACtBC,YAAAA,GAAAA;IAEA,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,cAAAA,EAAgBC,iBAAAA,CAAkB,GAAGvB,gBAAAA,CAAMwB,QAAQ,CAAC,KAAA,CAAA;IAE3D,MAAMC,YAAAA,GAAevB,MAAM,CAACe,kBAAAA,CAAmB;IAC/C,MAAMS,YAAAA,GAAe,CAACvB,QAAAA,IAAYS,WAAAA;IAElC,qBACEe,eAAA,CAAAC,mBAAA,EAAA;;0BACEC,cAAA,CAACC,0BAAAA,EAAAA;gBACCC,GAAAA,EAAKZ,YAAAA;gBACLb,KAAAA,EAAOA,KAAAA;gBACPC,WAAAA,EAAaA,WAAAA;AACbyB,gBAAAA,cAAAA,EAAgBP,YAAAA,EAAcQ,IAAAA;gBAC9BC,aAAAA,EAAejB,kBAAAA;AACfkB,gBAAAA,aAAAA,EAAef,aAAAA,CAAc;AAC3BgB,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,yCAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAC,gBAAAA,SAAAA,EAAWnB,aAAAA,CAAc;AACvBgB,oBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,qCAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;gBACAzB,MAAAA,EAAQA,MAAAA;gBACRC,UAAAA,EAAYA,UAAAA;gBACZT,IAAAA,EAAMA,IAAAA;gBACND,KAAAA,EAAOA,KAAAA;gBACPY,QAAAA,EAAUA,QAAAA;AACVwB,gBAAAA,OAAAA,EACEf,6BACEI,cAAA,CAACY,yCAAAA,EAAAA;oBACCC,KAAAA,EAAOjB,YAAAA;AACPhB,oBAAAA,aAAAA,EAAeN,WAAWwC,SAAAA,GAAYlC,aAAAA;AACtCD,oBAAAA,UAAAA,EAAYL,WAAWwC,SAAAA,GAAYnC,UAAAA;oBACnCI,WAAAA,EAAac,YAAAA,GAAe,IAAMH,iBAAAA,CAAkB,IAAA,CAAA,GAAQoB;AAE5DA,iBAAAA,CAAAA,GAAAA,SAAAA;0BAGLzC,MAAAA,CAAO0C,MAAM,KAAK,CAAA,iBACjBf,cAAA,CAACgB,0BAAAA,EAAAA;AACCvC,oBAAAA,KAAAA,EAAOc,aAAAA,CACL;AACEgB,wBAAAA,EAAAA,EAAIC,eAAAA,CAAQ,8BAAA,CAAA;wBACZC,cAAAA,EAAgB;qBAClB,EACA;wBAAEQ,CAAAA,EAAG,CAAA;wBAAGC,CAAAA,EAAG;AAAE,qBAAA,CAAA;AAGf,oBAAA,QAAA,gBAAAlB,cAAA,CAACmB,+BAAAA,EAAAA;wBACC7C,QAAAA,EAAUA,QAAAA;wBACV8C,OAAAA,EAASzC,UAAAA;wBACTG,WAAAA,EAAaA;;AAIjBT,iBAAAA,CAAAA,GAAAA,MAAAA,CAAOgD,GAAG,CAAC,CAACR,KAAAA,EAAOS,sBACjBtB,cAAA,CAACgB,0BAAAA,EAAAA;AAECvC,wBAAAA,KAAAA,EAAOc,aAAAA,CACL;AACEgB,4BAAAA,EAAAA,EAAIC,eAAAA,CAAQ,8BAAA,CAAA;4BACZC,cAAAA,EAAgB;yBAClB,EACA;AAAEQ,4BAAAA,CAAAA,EAAGK,KAAAA,GAAQ,CAAA;AAAGJ,4BAAAA,CAAAA,EAAG7C,OAAO0C;AAAO,yBAAA,CAAA;AAEnCQ,wBAAAA,aAAAA,EAAe,CAACC,KAAAA,GAAAA;4BACd9B,iBAAAA,CAAkB,IAAA,CAAA;AAClBR,4BAAAA,kBAAAA,CAAmB2B,KAAAA,EAAOW,KAAAA,CAAAA;AAC5B,wBAAA,CAAA;AACAC,wBAAAA,eAAAA,EAAe7B,YAAAA,CAAaW,EAAE,KAAKM,KAAAA,CAAMN,EAAE;AAE3C,wBAAA,QAAA,gBAAAP,cAAA,CAAC0B,2BAAAA,EAAAA;4BAAcb,KAAAA,EAAOA;;AAdjBA,qBAAAA,EAAAA,KAAAA,CAAMN,EAAE,CAAA;;0BAmBrBP,cAAA,CAAC2B,gCAAAA,EAAAA;gBACCC,IAAAA,EAAMnC,cAAAA;AACNoC,gBAAAA,OAAAA,EAAS,CAACC,WAAAA,GAAAA;oBACRpC,iBAAAA,CAAkB,KAAA,CAAA;;AAGlB,oBAAA,IAAIoC,gBAAgB,IAAA,EAAM;AACxBjD,wBAAAA,6BAAAA,EAAAA;AACF,oBAAA;oBACA,IAAIiD,WAAAA,IAAe,OAAOA,WAAAA,KAAgB,SAAA,EAAW;wBACnD/C,WAAAA,GAAc+C,WAAAA,CAAAA;AAChB,oBAAA;AACF,gBAAA,CAAA;gBACAjB,KAAAA,EAAOjB,YAAAA;gBACPmC,SAAS,EAAA,IAAA;gBACTC,WAAW,EAAA,IAAA;gBACXC,WAAW,EAAA,IAAA;gBACX5C,eAAAA,EAAiBA;;;;AAIzB,CAAA;;;;"}
1
+ {"version":3,"file":"CarouselAssets.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssets.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { CarouselInput, CarouselSlide } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { EditAssetDialog } from '../../EditAssetDialog/EditAssetContent';\n\nimport { CarouselAsset } from './CarouselAsset';\nimport { CarouselAssetActions } from './CarouselAssetActions';\nimport { EmptyStateAsset } from './EmptyStateAsset';\n\nimport type { File as FileAsset, RawFile } from '../../../../../shared/contracts/files';\n\nexport type FileWithoutIdHash = Omit<FileAsset, 'id' | 'hash'>;\n\ninterface Asset extends Omit<FileAsset, 'folder'> {\n isLocal?: boolean;\n rawFile?: RawFile;\n folder?: FileAsset['folder'] & { id: number };\n}\n\nexport interface CarouselAssetsProps {\n assets: FileAsset[];\n disabled?: boolean;\n error?: string;\n hint?: string;\n label: string;\n labelAction?: React.ReactNode;\n onAddAsset: (asset?: FileAsset, event?: React.MouseEventHandler<HTMLButtonElement>) => void;\n onDeleteAsset: (asset: FileAsset) => void;\n onDeleteAssetFromMediaLibrary: () => void;\n onDropAsset?: (assets: FileWithoutIdHash[]) => void;\n onEditAsset?: (asset: FileAsset) => void;\n onNext: () => void;\n onPrevious: () => void;\n onDoubleClickAsset: (asset: FileAsset, event?: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n required?: boolean;\n selectedAssetIndex: number;\n trackedLocation?: string;\n}\n\nexport const CarouselAssets = React.forwardRef(\n (\n {\n assets,\n disabled = false,\n error,\n hint,\n label,\n labelAction,\n onAddAsset,\n onDeleteAsset,\n onDeleteAssetFromMediaLibrary,\n onDropAsset,\n onEditAsset,\n onNext,\n onPrevious,\n onDoubleClickAsset,\n required = false,\n selectedAssetIndex,\n trackedLocation,\n }: CarouselAssetsProps,\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const [isEditingAsset, setIsEditingAsset] = React.useState(false);\n\n const currentAsset = assets[selectedAssetIndex];\n const canEditMedia = !disabled && onEditAsset;\n\n return (\n <>\n <CarouselInput\n ref={forwardedRef as React.Ref<HTMLDivElement>}\n label={label}\n labelAction={labelAction}\n secondaryLabel={currentAsset?.name}\n selectedSlide={selectedAssetIndex}\n previousLabel={formatMessage({\n id: getTrad('mediaLibraryInput.actions.previousSlide'),\n defaultMessage: 'Previous slide',\n })}\n nextLabel={formatMessage({\n id: getTrad('mediaLibraryInput.actions.nextSlide'),\n defaultMessage: 'Next slide',\n })}\n onNext={onNext}\n onPrevious={onPrevious}\n hint={hint}\n error={error}\n required={required}\n actions={\n currentAsset ? (\n <CarouselAssetActions\n asset={currentAsset}\n onDeleteAsset={disabled ? undefined : onDeleteAsset}\n onAddAsset={disabled ? undefined : onAddAsset}\n onEditAsset={canEditMedia ? () => setIsEditingAsset(true) : undefined}\n />\n ) : undefined\n }\n >\n {assets.length === 0 ? (\n <CarouselSlide\n label={formatMessage(\n {\n id: getTrad('mediaLibraryInput.slideCount'),\n defaultMessage: '{n} of {m} slides',\n },\n { n: 1, m: 1 }\n )}\n >\n <EmptyStateAsset\n disabled={disabled}\n onClick={onAddAsset}\n onDropAsset={onDropAsset!}\n />\n </CarouselSlide>\n ) : (\n assets.map((asset, index) => (\n <CarouselSlide\n key={asset.id}\n label={formatMessage(\n {\n id: getTrad('mediaLibraryInput.slideCount'),\n defaultMessage: '{n} of {m} slides',\n },\n { n: index + 1, m: assets.length }\n )}\n onDoubleClick={(event) => {\n if (disabled) return;\n setIsEditingAsset(true);\n onDoubleClickAsset(asset, event);\n }}\n aria-selected={currentAsset.id === asset.id}\n >\n <CarouselAsset asset={asset} />\n </CarouselSlide>\n ))\n )}\n </CarouselInput>\n <EditAssetDialog\n open={isEditingAsset}\n onClose={(editedAsset) => {\n setIsEditingAsset(false);\n\n // The asset has been deleted\n if (editedAsset === null) {\n onDeleteAssetFromMediaLibrary();\n }\n if (editedAsset && typeof editedAsset !== 'boolean') {\n onEditAsset?.(editedAsset);\n }\n }}\n asset={currentAsset as Asset}\n canUpdate={!disabled}\n canCopyLink\n canDownload\n trackedLocation={trackedLocation}\n />\n </>\n );\n }\n);\n"],"names":["CarouselAssets","React","forwardRef","assets","disabled","error","hint","label","labelAction","onAddAsset","onDeleteAsset","onDeleteAssetFromMediaLibrary","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","required","selectedAssetIndex","trackedLocation","forwardedRef","formatMessage","useIntl","isEditingAsset","setIsEditingAsset","useState","currentAsset","canEditMedia","_jsxs","_Fragment","_jsx","CarouselInput","ref","secondaryLabel","name","selectedSlide","previousLabel","id","getTrad","defaultMessage","nextLabel","actions","CarouselAssetActions","asset","undefined","length","CarouselSlide","n","m","EmptyStateAsset","onClick","map","index","onDoubleClick","event","aria-selected","CarouselAsset","EditAssetDialog","open","onClose","editedAsset","canUpdate","canCopyLink","canDownload"],"mappings":"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"}
@@ -62,6 +62,7 @@ const CarouselAssets = /*#__PURE__*/ React.forwardRef(({ assets, disabled = fals
62
62
  m: assets.length
63
63
  }),
64
64
  onDoubleClick: (event)=>{
65
+ if (disabled) return;
65
66
  setIsEditingAsset(true);
66
67
  onDoubleClickAsset(asset, event);
67
68
  },
@@ -84,7 +85,7 @@ const CarouselAssets = /*#__PURE__*/ React.forwardRef(({ assets, disabled = fals
84
85
  }
85
86
  },
86
87
  asset: currentAsset,
87
- canUpdate: true,
88
+ canUpdate: !disabled,
88
89
  canCopyLink: true,
89
90
  canDownload: true,
90
91
  trackedLocation: trackedLocation
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselAssets.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssets.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { CarouselInput, CarouselSlide } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { EditAssetDialog } from '../../EditAssetDialog/EditAssetContent';\n\nimport { CarouselAsset } from './CarouselAsset';\nimport { CarouselAssetActions } from './CarouselAssetActions';\nimport { EmptyStateAsset } from './EmptyStateAsset';\n\nimport type { File as FileAsset, RawFile } from '../../../../../shared/contracts/files';\n\nexport type FileWithoutIdHash = Omit<FileAsset, 'id' | 'hash'>;\n\ninterface Asset extends Omit<FileAsset, 'folder'> {\n isLocal?: boolean;\n rawFile?: RawFile;\n folder?: FileAsset['folder'] & { id: number };\n}\n\nexport interface CarouselAssetsProps {\n assets: FileAsset[];\n disabled?: boolean;\n error?: string;\n hint?: string;\n label: string;\n labelAction?: React.ReactNode;\n onAddAsset: (asset?: FileAsset, event?: React.MouseEventHandler<HTMLButtonElement>) => void;\n onDeleteAsset: (asset: FileAsset) => void;\n onDeleteAssetFromMediaLibrary: () => void;\n onDropAsset?: (assets: FileWithoutIdHash[]) => void;\n onEditAsset?: (asset: FileAsset) => void;\n onNext: () => void;\n onPrevious: () => void;\n onDoubleClickAsset: (asset: FileAsset, event?: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n required?: boolean;\n selectedAssetIndex: number;\n trackedLocation?: string;\n}\n\nexport const CarouselAssets = React.forwardRef(\n (\n {\n assets,\n disabled = false,\n error,\n hint,\n label,\n labelAction,\n onAddAsset,\n onDeleteAsset,\n onDeleteAssetFromMediaLibrary,\n onDropAsset,\n onEditAsset,\n onNext,\n onPrevious,\n onDoubleClickAsset,\n required = false,\n selectedAssetIndex,\n trackedLocation,\n }: CarouselAssetsProps,\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const [isEditingAsset, setIsEditingAsset] = React.useState(false);\n\n const currentAsset = assets[selectedAssetIndex];\n const canEditMedia = !disabled && onEditAsset;\n\n return (\n <>\n <CarouselInput\n ref={forwardedRef as React.Ref<HTMLDivElement>}\n label={label}\n labelAction={labelAction}\n secondaryLabel={currentAsset?.name}\n selectedSlide={selectedAssetIndex}\n previousLabel={formatMessage({\n id: getTrad('mediaLibraryInput.actions.previousSlide'),\n defaultMessage: 'Previous slide',\n })}\n nextLabel={formatMessage({\n id: getTrad('mediaLibraryInput.actions.nextSlide'),\n defaultMessage: 'Next slide',\n })}\n onNext={onNext}\n onPrevious={onPrevious}\n hint={hint}\n error={error}\n required={required}\n actions={\n currentAsset ? (\n <CarouselAssetActions\n asset={currentAsset}\n onDeleteAsset={disabled ? undefined : onDeleteAsset}\n onAddAsset={disabled ? undefined : onAddAsset}\n onEditAsset={canEditMedia ? () => setIsEditingAsset(true) : undefined}\n />\n ) : undefined\n }\n >\n {assets.length === 0 ? (\n <CarouselSlide\n label={formatMessage(\n {\n id: getTrad('mediaLibraryInput.slideCount'),\n defaultMessage: '{n} of {m} slides',\n },\n { n: 1, m: 1 }\n )}\n >\n <EmptyStateAsset\n disabled={disabled}\n onClick={onAddAsset}\n onDropAsset={onDropAsset!}\n />\n </CarouselSlide>\n ) : (\n assets.map((asset, index) => (\n <CarouselSlide\n key={asset.id}\n label={formatMessage(\n {\n id: getTrad('mediaLibraryInput.slideCount'),\n defaultMessage: '{n} of {m} slides',\n },\n { n: index + 1, m: assets.length }\n )}\n onDoubleClick={(event) => {\n setIsEditingAsset(true);\n onDoubleClickAsset(asset, event);\n }}\n aria-selected={currentAsset.id === asset.id}\n >\n <CarouselAsset asset={asset} />\n </CarouselSlide>\n ))\n )}\n </CarouselInput>\n <EditAssetDialog\n open={isEditingAsset}\n onClose={(editedAsset) => {\n setIsEditingAsset(false);\n\n // The asset has been deleted\n if (editedAsset === null) {\n onDeleteAssetFromMediaLibrary();\n }\n if (editedAsset && typeof editedAsset !== 'boolean') {\n onEditAsset?.(editedAsset);\n }\n }}\n asset={currentAsset as Asset}\n canUpdate\n canCopyLink\n canDownload\n trackedLocation={trackedLocation}\n />\n </>\n );\n }\n);\n"],"names":["CarouselAssets","React","forwardRef","assets","disabled","error","hint","label","labelAction","onAddAsset","onDeleteAsset","onDeleteAssetFromMediaLibrary","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","required","selectedAssetIndex","trackedLocation","forwardedRef","formatMessage","useIntl","isEditingAsset","setIsEditingAsset","useState","currentAsset","canEditMedia","_jsxs","_Fragment","_jsx","CarouselInput","ref","secondaryLabel","name","selectedSlide","previousLabel","id","getTrad","defaultMessage","nextLabel","actions","CarouselAssetActions","asset","undefined","length","CarouselSlide","n","m","EmptyStateAsset","onClick","map","index","onDoubleClick","event","aria-selected","CarouselAsset","EditAssetDialog","open","onClose","editedAsset","canUpdate","canCopyLink","canDownload"],"mappings":"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"}
1
+ {"version":3,"file":"CarouselAssets.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/CarouselAssets.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { CarouselInput, CarouselSlide } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { EditAssetDialog } from '../../EditAssetDialog/EditAssetContent';\n\nimport { CarouselAsset } from './CarouselAsset';\nimport { CarouselAssetActions } from './CarouselAssetActions';\nimport { EmptyStateAsset } from './EmptyStateAsset';\n\nimport type { File as FileAsset, RawFile } from '../../../../../shared/contracts/files';\n\nexport type FileWithoutIdHash = Omit<FileAsset, 'id' | 'hash'>;\n\ninterface Asset extends Omit<FileAsset, 'folder'> {\n isLocal?: boolean;\n rawFile?: RawFile;\n folder?: FileAsset['folder'] & { id: number };\n}\n\nexport interface CarouselAssetsProps {\n assets: FileAsset[];\n disabled?: boolean;\n error?: string;\n hint?: string;\n label: string;\n labelAction?: React.ReactNode;\n onAddAsset: (asset?: FileAsset, event?: React.MouseEventHandler<HTMLButtonElement>) => void;\n onDeleteAsset: (asset: FileAsset) => void;\n onDeleteAssetFromMediaLibrary: () => void;\n onDropAsset?: (assets: FileWithoutIdHash[]) => void;\n onEditAsset?: (asset: FileAsset) => void;\n onNext: () => void;\n onPrevious: () => void;\n onDoubleClickAsset: (asset: FileAsset, event?: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n required?: boolean;\n selectedAssetIndex: number;\n trackedLocation?: string;\n}\n\nexport const CarouselAssets = React.forwardRef(\n (\n {\n assets,\n disabled = false,\n error,\n hint,\n label,\n labelAction,\n onAddAsset,\n onDeleteAsset,\n onDeleteAssetFromMediaLibrary,\n onDropAsset,\n onEditAsset,\n onNext,\n onPrevious,\n onDoubleClickAsset,\n required = false,\n selectedAssetIndex,\n trackedLocation,\n }: CarouselAssetsProps,\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const [isEditingAsset, setIsEditingAsset] = React.useState(false);\n\n const currentAsset = assets[selectedAssetIndex];\n const canEditMedia = !disabled && onEditAsset;\n\n return (\n <>\n <CarouselInput\n ref={forwardedRef as React.Ref<HTMLDivElement>}\n label={label}\n labelAction={labelAction}\n secondaryLabel={currentAsset?.name}\n selectedSlide={selectedAssetIndex}\n previousLabel={formatMessage({\n id: getTrad('mediaLibraryInput.actions.previousSlide'),\n defaultMessage: 'Previous slide',\n })}\n nextLabel={formatMessage({\n id: getTrad('mediaLibraryInput.actions.nextSlide'),\n defaultMessage: 'Next slide',\n })}\n onNext={onNext}\n onPrevious={onPrevious}\n hint={hint}\n error={error}\n required={required}\n actions={\n currentAsset ? (\n <CarouselAssetActions\n asset={currentAsset}\n onDeleteAsset={disabled ? undefined : onDeleteAsset}\n onAddAsset={disabled ? undefined : onAddAsset}\n onEditAsset={canEditMedia ? () => setIsEditingAsset(true) : undefined}\n />\n ) : undefined\n }\n >\n {assets.length === 0 ? (\n <CarouselSlide\n label={formatMessage(\n {\n id: getTrad('mediaLibraryInput.slideCount'),\n defaultMessage: '{n} of {m} slides',\n },\n { n: 1, m: 1 }\n )}\n >\n <EmptyStateAsset\n disabled={disabled}\n onClick={onAddAsset}\n onDropAsset={onDropAsset!}\n />\n </CarouselSlide>\n ) : (\n assets.map((asset, index) => (\n <CarouselSlide\n key={asset.id}\n label={formatMessage(\n {\n id: getTrad('mediaLibraryInput.slideCount'),\n defaultMessage: '{n} of {m} slides',\n },\n { n: index + 1, m: assets.length }\n )}\n onDoubleClick={(event) => {\n if (disabled) return;\n setIsEditingAsset(true);\n onDoubleClickAsset(asset, event);\n }}\n aria-selected={currentAsset.id === asset.id}\n >\n <CarouselAsset asset={asset} />\n </CarouselSlide>\n ))\n )}\n </CarouselInput>\n <EditAssetDialog\n open={isEditingAsset}\n onClose={(editedAsset) => {\n setIsEditingAsset(false);\n\n // The asset has been deleted\n if (editedAsset === null) {\n onDeleteAssetFromMediaLibrary();\n }\n if (editedAsset && typeof editedAsset !== 'boolean') {\n onEditAsset?.(editedAsset);\n }\n }}\n asset={currentAsset as Asset}\n canUpdate={!disabled}\n canCopyLink\n canDownload\n trackedLocation={trackedLocation}\n />\n </>\n );\n }\n);\n"],"names":["CarouselAssets","React","forwardRef","assets","disabled","error","hint","label","labelAction","onAddAsset","onDeleteAsset","onDeleteAssetFromMediaLibrary","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","required","selectedAssetIndex","trackedLocation","forwardedRef","formatMessage","useIntl","isEditingAsset","setIsEditingAsset","useState","currentAsset","canEditMedia","_jsxs","_Fragment","_jsx","CarouselInput","ref","secondaryLabel","name","selectedSlide","previousLabel","id","getTrad","defaultMessage","nextLabel","actions","CarouselAssetActions","asset","undefined","length","CarouselSlide","n","m","EmptyStateAsset","onClick","map","index","onDoubleClick","event","aria-selected","CarouselAsset","EditAssetDialog","open","onClose","editedAsset","canUpdate","canCopyLink","canDownload"],"mappings":"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"}
@@ -12,7 +12,6 @@ require('date-fns');
12
12
  var getTrad = require('../../../utils/getTrad.js');
13
13
  require('qs');
14
14
  var rawFileToAsset = require('../../../utils/rawFileToAsset.js');
15
- require('../../../utils/typeFromMime.js');
16
15
  require('../../../utils/urlYupSchema.js');
17
16
 
18
17
  function _interopNamespace(e) {
@@ -61,7 +60,7 @@ const EmptyStateAsset = ({ disabled = false, onClick, onDropAsset })=>{
61
60
  for(let i = 0; i < files.length; i++){
62
61
  const file = files.item(i);
63
62
  if (file) {
64
- const asset = rawFileToAsset.rawFileToAsset(file, constants.AssetSource.Computer);
63
+ const asset = rawFileToAsset.rawFileToAsset(file, constants.ASSET_SOURCES.Computer);
65
64
  assets.push(asset);
66
65
  }
67
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyStateAsset.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/EmptyStateAsset.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport { PlusCircle as PicturePlus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AssetSource } from '../../../constants';\nimport { getTrad, rawFileToAsset } from '../../../utils';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\nconst TextAlignTypography = styled(Typography)`\n align-items: center;\n`;\n\ntype FileWithoutIdHash = Omit<File, 'id' | 'hash'>;\n\ninterface EmptyStateAssetProps {\n disabled?: boolean;\n onClick: (asset?: File, event?: React.MouseEventHandler<HTMLButtonElement>) => void;\n onDropAsset: (assets: FileWithoutIdHash[]) => void;\n}\n\nexport const EmptyStateAsset = ({\n disabled = false,\n onClick,\n onDropAsset,\n}: EmptyStateAssetProps) => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n\n const handleDragEnter = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n setDragOver(true);\n };\n\n const handleDragLeave = (e: React.DragEvent<HTMLButtonElement>) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node)) {\n setDragOver(false);\n }\n };\n\n const handleDragOver = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n };\n\n const handleDrop = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (e?.dataTransfer?.files) {\n const files = e.dataTransfer.files;\n const assets: FileWithoutIdHash[] = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, AssetSource.Computer);\n\n assets.push(asset);\n }\n }\n\n onDropAsset(assets);\n }\n\n setDragOver(false);\n };\n\n return (\n <Flex\n borderStyle={dragOver ? 'dashed' : undefined}\n borderWidth={dragOver ? '1px' : undefined}\n borderColor={dragOver ? 'primary600' : undefined}\n direction=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n height=\"100%\"\n width=\"100%\"\n tag=\"button\"\n type=\"button\"\n disabled={disabled}\n onClick={onClick as unknown as React.MouseEventHandler<HTMLButtonElement>}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n gap={3}\n style={{ cursor: disabled ? 'not-allowed' : 'pointer' }}\n >\n <PicturePlus\n aria-hidden\n width=\"3.2rem\"\n height=\"3.2rem\"\n fill={disabled ? 'neutral400' : 'primary600'}\n />\n <TextAlignTypography\n variant=\"pi\"\n fontWeight=\"bold\"\n textColor=\"neutral600\"\n style={{ textAlign: 'center' }}\n tag=\"span\"\n >\n {formatMessage({\n id: getTrad('mediaLibraryInput.placeholder'),\n defaultMessage: 'Click to add an asset or drag and drop one in this area',\n })}\n </TextAlignTypography>\n </Flex>\n );\n};\n"],"names":["TextAlignTypography","styled","Typography","EmptyStateAsset","disabled","onClick","onDropAsset","formatMessage","useIntl","dragOver","setDragOver","React","useState","handleDragEnter","e","preventDefault","handleDragLeave","currentTarget","contains","relatedTarget","handleDragOver","handleDrop","dataTransfer","files","assets","i","length","file","item","asset","rawFileToAsset","AssetSource","Computer","push","_jsxs","Flex","borderStyle","undefined","borderWidth","borderColor","direction","justifyContent","alignItems","height","width","tag","type","onDragEnter","onDragLeave","onDragOver","onDrop","gap","style","cursor","_jsx","PicturePlus","aria-hidden","fill","variant","fontWeight","textColor","textAlign","id","getTrad","defaultMessage"],"mappings":"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"}
1
+ {"version":3,"file":"EmptyStateAsset.js","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/EmptyStateAsset.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport { PlusCircle as PicturePlus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ASSET_SOURCES } from '../../../constants';\nimport { getTrad, rawFileToAsset } from '../../../utils';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\nconst TextAlignTypography = styled(Typography)`\n align-items: center;\n`;\n\ntype FileWithoutIdHash = Omit<File, 'id' | 'hash'>;\n\ninterface EmptyStateAssetProps {\n disabled?: boolean;\n onClick: (asset?: File, event?: React.MouseEventHandler<HTMLButtonElement>) => void;\n onDropAsset: (assets: FileWithoutIdHash[]) => void;\n}\n\nexport const EmptyStateAsset = ({\n disabled = false,\n onClick,\n onDropAsset,\n}: EmptyStateAssetProps) => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n\n const handleDragEnter = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n setDragOver(true);\n };\n\n const handleDragLeave = (e: React.DragEvent<HTMLButtonElement>) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node)) {\n setDragOver(false);\n }\n };\n\n const handleDragOver = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n };\n\n const handleDrop = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (e?.dataTransfer?.files) {\n const files = e.dataTransfer.files;\n const assets: FileWithoutIdHash[] = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, ASSET_SOURCES.Computer);\n\n assets.push(asset);\n }\n }\n\n onDropAsset(assets);\n }\n\n setDragOver(false);\n };\n\n return (\n <Flex\n borderStyle={dragOver ? 'dashed' : undefined}\n borderWidth={dragOver ? '1px' : undefined}\n borderColor={dragOver ? 'primary600' : undefined}\n direction=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n height=\"100%\"\n width=\"100%\"\n tag=\"button\"\n type=\"button\"\n disabled={disabled}\n onClick={onClick as unknown as React.MouseEventHandler<HTMLButtonElement>}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n gap={3}\n style={{ cursor: disabled ? 'not-allowed' : 'pointer' }}\n >\n <PicturePlus\n aria-hidden\n width=\"3.2rem\"\n height=\"3.2rem\"\n fill={disabled ? 'neutral400' : 'primary600'}\n />\n <TextAlignTypography\n variant=\"pi\"\n fontWeight=\"bold\"\n textColor=\"neutral600\"\n style={{ textAlign: 'center' }}\n tag=\"span\"\n >\n {formatMessage({\n id: getTrad('mediaLibraryInput.placeholder'),\n defaultMessage: 'Click to add an asset or drag and drop one in this area',\n })}\n </TextAlignTypography>\n </Flex>\n );\n};\n"],"names":["TextAlignTypography","styled","Typography","EmptyStateAsset","disabled","onClick","onDropAsset","formatMessage","useIntl","dragOver","setDragOver","React","useState","handleDragEnter","e","preventDefault","handleDragLeave","currentTarget","contains","relatedTarget","handleDragOver","handleDrop","dataTransfer","files","assets","i","length","file","item","asset","rawFileToAsset","ASSET_SOURCES","Computer","push","_jsxs","Flex","borderStyle","undefined","borderWidth","borderColor","direction","justifyContent","alignItems","height","width","tag","type","onDragEnter","onDragLeave","onDragOver","onDrop","gap","style","cursor","_jsx","PicturePlus","aria-hidden","fill","variant","fontWeight","textColor","textAlign","id","getTrad","defaultMessage"],"mappings":"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"}
@@ -4,13 +4,12 @@ import { Typography, Flex } from '@strapi/design-system';
4
4
  import { PlusCircle } from '@strapi/icons';
5
5
  import { useIntl } from 'react-intl';
6
6
  import { styled } from 'styled-components';
7
- import { AssetSource } from '../../../constants.mjs';
7
+ import { ASSET_SOURCES } from '../../../constants.mjs';
8
8
  import 'byte-size';
9
9
  import 'date-fns';
10
10
  import { getTrad } from '../../../utils/getTrad.mjs';
11
11
  import 'qs';
12
12
  import { rawFileToAsset } from '../../../utils/rawFileToAsset.mjs';
13
- import '../../../utils/typeFromMime.mjs';
14
13
  import '../../../utils/urlYupSchema.mjs';
15
14
 
16
15
  const TextAlignTypography = styled(Typography)`
@@ -39,7 +38,7 @@ const EmptyStateAsset = ({ disabled = false, onClick, onDropAsset })=>{
39
38
  for(let i = 0; i < files.length; i++){
40
39
  const file = files.item(i);
41
40
  if (file) {
42
- const asset = rawFileToAsset(file, AssetSource.Computer);
41
+ const asset = rawFileToAsset(file, ASSET_SOURCES.Computer);
43
42
  assets.push(asset);
44
43
  }
45
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyStateAsset.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/EmptyStateAsset.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport { PlusCircle as PicturePlus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AssetSource } from '../../../constants';\nimport { getTrad, rawFileToAsset } from '../../../utils';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\nconst TextAlignTypography = styled(Typography)`\n align-items: center;\n`;\n\ntype FileWithoutIdHash = Omit<File, 'id' | 'hash'>;\n\ninterface EmptyStateAssetProps {\n disabled?: boolean;\n onClick: (asset?: File, event?: React.MouseEventHandler<HTMLButtonElement>) => void;\n onDropAsset: (assets: FileWithoutIdHash[]) => void;\n}\n\nexport const EmptyStateAsset = ({\n disabled = false,\n onClick,\n onDropAsset,\n}: EmptyStateAssetProps) => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n\n const handleDragEnter = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n setDragOver(true);\n };\n\n const handleDragLeave = (e: React.DragEvent<HTMLButtonElement>) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node)) {\n setDragOver(false);\n }\n };\n\n const handleDragOver = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n };\n\n const handleDrop = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (e?.dataTransfer?.files) {\n const files = e.dataTransfer.files;\n const assets: FileWithoutIdHash[] = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, AssetSource.Computer);\n\n assets.push(asset);\n }\n }\n\n onDropAsset(assets);\n }\n\n setDragOver(false);\n };\n\n return (\n <Flex\n borderStyle={dragOver ? 'dashed' : undefined}\n borderWidth={dragOver ? '1px' : undefined}\n borderColor={dragOver ? 'primary600' : undefined}\n direction=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n height=\"100%\"\n width=\"100%\"\n tag=\"button\"\n type=\"button\"\n disabled={disabled}\n onClick={onClick as unknown as React.MouseEventHandler<HTMLButtonElement>}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n gap={3}\n style={{ cursor: disabled ? 'not-allowed' : 'pointer' }}\n >\n <PicturePlus\n aria-hidden\n width=\"3.2rem\"\n height=\"3.2rem\"\n fill={disabled ? 'neutral400' : 'primary600'}\n />\n <TextAlignTypography\n variant=\"pi\"\n fontWeight=\"bold\"\n textColor=\"neutral600\"\n style={{ textAlign: 'center' }}\n tag=\"span\"\n >\n {formatMessage({\n id: getTrad('mediaLibraryInput.placeholder'),\n defaultMessage: 'Click to add an asset or drag and drop one in this area',\n })}\n </TextAlignTypography>\n </Flex>\n );\n};\n"],"names":["TextAlignTypography","styled","Typography","EmptyStateAsset","disabled","onClick","onDropAsset","formatMessage","useIntl","dragOver","setDragOver","React","useState","handleDragEnter","e","preventDefault","handleDragLeave","currentTarget","contains","relatedTarget","handleDragOver","handleDrop","dataTransfer","files","assets","i","length","file","item","asset","rawFileToAsset","AssetSource","Computer","push","_jsxs","Flex","borderStyle","undefined","borderWidth","borderColor","direction","justifyContent","alignItems","height","width","tag","type","onDragEnter","onDragLeave","onDragOver","onDrop","gap","style","cursor","_jsx","PicturePlus","aria-hidden","fill","variant","fontWeight","textColor","textAlign","id","getTrad","defaultMessage"],"mappings":"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"}
1
+ {"version":3,"file":"EmptyStateAsset.mjs","sources":["../../../../../admin/src/components/MediaLibraryInput/Carousel/EmptyStateAsset.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport { PlusCircle as PicturePlus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ASSET_SOURCES } from '../../../constants';\nimport { getTrad, rawFileToAsset } from '../../../utils';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\nconst TextAlignTypography = styled(Typography)`\n align-items: center;\n`;\n\ntype FileWithoutIdHash = Omit<File, 'id' | 'hash'>;\n\ninterface EmptyStateAssetProps {\n disabled?: boolean;\n onClick: (asset?: File, event?: React.MouseEventHandler<HTMLButtonElement>) => void;\n onDropAsset: (assets: FileWithoutIdHash[]) => void;\n}\n\nexport const EmptyStateAsset = ({\n disabled = false,\n onClick,\n onDropAsset,\n}: EmptyStateAssetProps) => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n\n const handleDragEnter = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n setDragOver(true);\n };\n\n const handleDragLeave = (e: React.DragEvent<HTMLButtonElement>) => {\n if (!e.currentTarget.contains(e.relatedTarget as Node)) {\n setDragOver(false);\n }\n };\n\n const handleDragOver = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n };\n\n const handleDrop = (e: React.DragEvent<HTMLButtonElement>) => {\n e.preventDefault();\n\n if (e?.dataTransfer?.files) {\n const files = e.dataTransfer.files;\n const assets: FileWithoutIdHash[] = [];\n\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n if (file) {\n const asset = rawFileToAsset(file, ASSET_SOURCES.Computer);\n\n assets.push(asset);\n }\n }\n\n onDropAsset(assets);\n }\n\n setDragOver(false);\n };\n\n return (\n <Flex\n borderStyle={dragOver ? 'dashed' : undefined}\n borderWidth={dragOver ? '1px' : undefined}\n borderColor={dragOver ? 'primary600' : undefined}\n direction=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n height=\"100%\"\n width=\"100%\"\n tag=\"button\"\n type=\"button\"\n disabled={disabled}\n onClick={onClick as unknown as React.MouseEventHandler<HTMLButtonElement>}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n gap={3}\n style={{ cursor: disabled ? 'not-allowed' : 'pointer' }}\n >\n <PicturePlus\n aria-hidden\n width=\"3.2rem\"\n height=\"3.2rem\"\n fill={disabled ? 'neutral400' : 'primary600'}\n />\n <TextAlignTypography\n variant=\"pi\"\n fontWeight=\"bold\"\n textColor=\"neutral600\"\n style={{ textAlign: 'center' }}\n tag=\"span\"\n >\n {formatMessage({\n id: getTrad('mediaLibraryInput.placeholder'),\n defaultMessage: 'Click to add an asset or drag and drop one in this area',\n })}\n </TextAlignTypography>\n </Flex>\n );\n};\n"],"names":["TextAlignTypography","styled","Typography","EmptyStateAsset","disabled","onClick","onDropAsset","formatMessage","useIntl","dragOver","setDragOver","React","useState","handleDragEnter","e","preventDefault","handleDragLeave","currentTarget","contains","relatedTarget","handleDragOver","handleDrop","dataTransfer","files","assets","i","length","file","item","asset","rawFileToAsset","ASSET_SOURCES","Computer","push","_jsxs","Flex","borderStyle","undefined","borderWidth","borderColor","direction","justifyContent","alignItems","height","width","tag","type","onDragEnter","onDragLeave","onDragOver","onDrop","gap","style","cursor","_jsx","PicturePlus","aria-hidden","fill","variant","fontWeight","textColor","textAlign","id","getTrad","defaultMessage"],"mappings":"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"}
@@ -9,7 +9,6 @@ require('date-fns');
9
9
  var getAllowedFiles = require('../../utils/getAllowedFiles.js');
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 AssetDialog = require('../AssetDialog/AssetDialog.js');
15
14
  var EditFolderDialog = require('../EditFolderDialog/EditFolderDialog.js');
@@ -148,6 +147,7 @@ const MediaLibraryInput = /*#__PURE__*/ React__namespace.forwardRef(({ attribute
148
147
  ];
149
148
  }
150
149
  const handleDoubleClickAsset = (asset)=>{
150
+ if (disabled) return;
151
151
  handleAssetEdit(asset);
152
152
  };
153
153
  return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
@@ -1 +1 @@
1
- {"version":3,"file":"MediaLibraryInput.js","sources":["../../../../admin/src/components/MediaLibraryInput/MediaLibraryInput.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { useField, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { AllowedFiles, getAllowedFiles, getTrad } from '../../utils';\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { Asset, UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nimport { CarouselAssets, CarouselAssetsProps, FileWithoutIdHash } from './Carousel/CarouselAssets';\n\nimport type { File } from '../../../../shared/contracts/files';\n\ntype AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nexport interface MediaLibraryInputProps {\n required?: boolean;\n name: string;\n labelAction?: React.ReactNode;\n label?: string;\n hint?: string;\n disabled?: boolean;\n attribute?: {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n };\n}\n\nexport const MediaLibraryInput = React.forwardRef<CarouselAssetsProps, MediaLibraryInputProps>(\n (\n {\n attribute: { allowedTypes = null, multiple = false } = {},\n label,\n hint,\n disabled = false,\n labelAction = undefined,\n name,\n required = false,\n },\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const { onChange, value, error } = useField(name);\n const [uploadedFiles, setUploadedFiles] = React.useState<Asset[] | File[]>([]);\n const [step, setStep] = React.useState<string | undefined>(undefined);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [droppedAssets, setDroppedAssets] = React.useState<AllowedFiles[]>();\n const [folderId, setFolderId] = React.useState<number | null>(null);\n const { toggleNotification } = useNotification();\n\n React.useEffect(() => {\n // Clear the uploaded files on close\n if (step === undefined) {\n setUploadedFiles([]);\n }\n }, [step]);\n\n let selectedAssets: File[] = [];\n\n if (Array.isArray(value)) {\n selectedAssets = value;\n } else if (value) {\n selectedAssets = [value];\n }\n\n const handleValidation = (nextSelectedAssets: File[]) => {\n const value = multiple ? nextSelectedAssets : nextSelectedAssets[0];\n onChange(name, value);\n setStep(undefined);\n };\n\n const handleDeleteAssetFromMediaLibrary = () => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter(\n (_, assetIndex) => assetIndex !== selectedIndex\n );\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n const value = nextValue;\n onChange(name, value);\n\n setSelectedIndex(0);\n };\n\n const handleDeleteAsset = (asset: File) => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter((prevAsset) => prevAsset.id !== asset.id);\n\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n onChange(name, nextValue);\n\n setSelectedIndex(0);\n };\n\n const handleAssetEdit = (asset: File) => {\n const nextSelectedAssets = selectedAssets.map((prevAsset) =>\n prevAsset.id === asset.id ? asset : prevAsset\n );\n\n onChange(name, multiple ? nextSelectedAssets : nextSelectedAssets[0]);\n };\n\n const validateAssetsTypes = (\n assets: FileWithoutIdHash[] | Asset[],\n callback: (assets?: AllowedFiles[], error?: string) => void\n ) => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (allowedAssets.length > 0) {\n callback(allowedAssets);\n } else {\n toggleNotification({\n type: 'danger',\n timeout: 4000,\n message: formatMessage(\n {\n id: getTrad('input.notification.not-supported'),\n defaultMessage: `You can't upload this type of file.`,\n },\n {\n fileTypes: (allowedTypes ?? []).join(','),\n }\n ),\n });\n }\n };\n\n const handleAssetDrop = (assets: FileWithoutIdHash[]) => {\n validateAssetsTypes(assets, (allowedAssets?: AllowedFiles[]) => {\n setDroppedAssets(allowedAssets);\n setStep(STEPS.AssetUpload);\n });\n };\n\n if (multiple && selectedAssets.length > 0) {\n label = `${label} (${selectedIndex + 1} / ${selectedAssets.length})`;\n }\n\n const handleNext = () => {\n setSelectedIndex((current) => (current < selectedAssets.length - 1 ? current + 1 : 0));\n };\n\n const handlePrevious = () => {\n setSelectedIndex((current) => (current > 0 ? current - 1 : selectedAssets.length - 1));\n };\n\n const handleFilesUploadSucceeded = (uploadedFiles: Asset[] | File[]) => {\n setUploadedFiles((prev) => [...prev, ...uploadedFiles]);\n };\n\n let initiallySelectedAssets = selectedAssets;\n\n if (uploadedFiles.length > 0) {\n const allowedUploadedFiles = getAllowedFiles(allowedTypes, uploadedFiles as AllowedFiles[]);\n\n initiallySelectedAssets = multiple\n ? [...allowedUploadedFiles, ...selectedAssets]\n : [allowedUploadedFiles[0]];\n }\n\n const handleDoubleClickAsset = (asset: File) => {\n handleAssetEdit(asset);\n };\n\n return (\n <>\n <CarouselAssets\n ref={forwardedRef}\n assets={selectedAssets}\n disabled={disabled}\n label={label!}\n labelAction={labelAction}\n onDeleteAsset={handleDeleteAsset}\n onDeleteAssetFromMediaLibrary={handleDeleteAssetFromMediaLibrary}\n onAddAsset={() => setStep(STEPS.AssetSelect)}\n onDropAsset={handleAssetDrop}\n onEditAsset={handleAssetEdit}\n onNext={handleNext}\n onPrevious={handlePrevious}\n onDoubleClickAsset={handleDoubleClickAsset}\n error={error}\n hint={hint}\n required={required}\n selectedAssetIndex={selectedIndex}\n trackedLocation=\"content-manager\"\n />\n\n {step === STEPS.AssetSelect && (\n <AssetDialog\n allowedTypes={allowedTypes as AllowedTypes[]}\n initiallySelectedAssets={initiallySelectedAssets}\n folderId={folderId}\n onClose={() => {\n setStep(undefined);\n setFolderId(null);\n }}\n open={step === STEPS.AssetSelect}\n onValidate={handleValidation}\n multiple={multiple}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folder) => setFolderId(folder)}\n trackedLocation=\"content-manager\"\n />\n )}\n\n {step === STEPS.AssetUpload && (\n <UploadAssetDialog\n open={step === STEPS.AssetUpload}\n onClose={() => setStep(STEPS.AssetSelect)}\n initialAssetsToAdd={droppedAssets as Asset[]}\n addUploadedFiles={handleFilesUploadSucceeded}\n trackedLocation=\"content-manager\"\n folderId={folderId}\n validateAssetsTypes={validateAssetsTypes}\n />\n )}\n\n {step === STEPS.FolderCreate && (\n <EditFolderDialog\n open={step === STEPS.FolderCreate}\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n )}\n </>\n );\n }\n);\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryInput","React","forwardRef","attribute","allowedTypes","multiple","label","hint","disabled","labelAction","undefined","name","required","forwardedRef","formatMessage","useIntl","onChange","value","error","useField","uploadedFiles","setUploadedFiles","useState","step","setStep","selectedIndex","setSelectedIndex","droppedAssets","setDroppedAssets","folderId","setFolderId","toggleNotification","useNotification","useEffect","selectedAssets","Array","isArray","handleValidation","nextSelectedAssets","handleDeleteAssetFromMediaLibrary","nextValue","filter","_","assetIndex","length","handleDeleteAsset","asset","prevAsset","id","handleAssetEdit","map","validateAssetsTypes","assets","callback","allowedAssets","getAllowedFiles","type","timeout","message","getTrad","defaultMessage","fileTypes","join","handleAssetDrop","handleNext","current","handlePrevious","handleFilesUploadSucceeded","prev","initiallySelectedAssets","allowedUploadedFiles","handleDoubleClickAsset","_jsxs","_Fragment","_jsx","CarouselAssets","ref","onDeleteAsset","onDeleteAssetFromMediaLibrary","onAddAsset","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","selectedAssetIndex","trackedLocation","AssetDialog","onClose","open","onValidate","onAddFolder","onChangeFolder","folder","UploadAssetDialog","initialAssetsToAdd","addUploadedFiles","EditFolderDialog","parentFolderId"],"mappings":"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"}
1
+ {"version":3,"file":"MediaLibraryInput.js","sources":["../../../../admin/src/components/MediaLibraryInput/MediaLibraryInput.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { useField, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { AllowedFiles, getAllowedFiles, getTrad } from '../../utils';\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { Asset, UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nimport { CarouselAssets, CarouselAssetsProps, FileWithoutIdHash } from './Carousel/CarouselAssets';\n\nimport type { File } from '../../../../shared/contracts/files';\n\ntype AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nexport interface MediaLibraryInputProps {\n required?: boolean;\n name: string;\n labelAction?: React.ReactNode;\n label?: string;\n hint?: string;\n disabled?: boolean;\n attribute?: {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n };\n}\n\nexport const MediaLibraryInput = React.forwardRef<CarouselAssetsProps, MediaLibraryInputProps>(\n (\n {\n attribute: { allowedTypes = null, multiple = false } = {},\n label,\n hint,\n disabled = false,\n labelAction = undefined,\n name,\n required = false,\n },\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const { onChange, value, error } = useField(name);\n const [uploadedFiles, setUploadedFiles] = React.useState<Asset[] | File[]>([]);\n const [step, setStep] = React.useState<string | undefined>(undefined);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [droppedAssets, setDroppedAssets] = React.useState<AllowedFiles[]>();\n const [folderId, setFolderId] = React.useState<number | null>(null);\n const { toggleNotification } = useNotification();\n\n React.useEffect(() => {\n // Clear the uploaded files on close\n if (step === undefined) {\n setUploadedFiles([]);\n }\n }, [step]);\n\n let selectedAssets: File[] = [];\n\n if (Array.isArray(value)) {\n selectedAssets = value;\n } else if (value) {\n selectedAssets = [value];\n }\n\n const handleValidation = (nextSelectedAssets: File[]) => {\n const value = multiple ? nextSelectedAssets : nextSelectedAssets[0];\n onChange(name, value);\n setStep(undefined);\n };\n\n const handleDeleteAssetFromMediaLibrary = () => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter(\n (_, assetIndex) => assetIndex !== selectedIndex\n );\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n const value = nextValue;\n onChange(name, value);\n\n setSelectedIndex(0);\n };\n\n const handleDeleteAsset = (asset: File) => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter((prevAsset) => prevAsset.id !== asset.id);\n\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n onChange(name, nextValue);\n\n setSelectedIndex(0);\n };\n\n const handleAssetEdit = (asset: File) => {\n const nextSelectedAssets = selectedAssets.map((prevAsset) =>\n prevAsset.id === asset.id ? asset : prevAsset\n );\n\n onChange(name, multiple ? nextSelectedAssets : nextSelectedAssets[0]);\n };\n\n const validateAssetsTypes = (\n assets: FileWithoutIdHash[] | Asset[],\n callback: (assets?: AllowedFiles[], error?: string) => void\n ) => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (allowedAssets.length > 0) {\n callback(allowedAssets);\n } else {\n toggleNotification({\n type: 'danger',\n timeout: 4000,\n message: formatMessage(\n {\n id: getTrad('input.notification.not-supported'),\n defaultMessage: `You can't upload this type of file.`,\n },\n {\n fileTypes: (allowedTypes ?? []).join(','),\n }\n ),\n });\n }\n };\n\n const handleAssetDrop = (assets: FileWithoutIdHash[]) => {\n validateAssetsTypes(assets, (allowedAssets?: AllowedFiles[]) => {\n setDroppedAssets(allowedAssets);\n setStep(STEPS.AssetUpload);\n });\n };\n\n if (multiple && selectedAssets.length > 0) {\n label = `${label} (${selectedIndex + 1} / ${selectedAssets.length})`;\n }\n\n const handleNext = () => {\n setSelectedIndex((current) => (current < selectedAssets.length - 1 ? current + 1 : 0));\n };\n\n const handlePrevious = () => {\n setSelectedIndex((current) => (current > 0 ? current - 1 : selectedAssets.length - 1));\n };\n\n const handleFilesUploadSucceeded = (uploadedFiles: Asset[] | File[]) => {\n setUploadedFiles((prev) => [...prev, ...uploadedFiles]);\n };\n\n let initiallySelectedAssets = selectedAssets;\n\n if (uploadedFiles.length > 0) {\n const allowedUploadedFiles = getAllowedFiles(allowedTypes, uploadedFiles as AllowedFiles[]);\n\n initiallySelectedAssets = multiple\n ? [...allowedUploadedFiles, ...selectedAssets]\n : [allowedUploadedFiles[0]];\n }\n\n const handleDoubleClickAsset = (asset: File) => {\n if (disabled) return;\n handleAssetEdit(asset);\n };\n\n return (\n <>\n <CarouselAssets\n ref={forwardedRef}\n assets={selectedAssets}\n disabled={disabled}\n label={label!}\n labelAction={labelAction}\n onDeleteAsset={handleDeleteAsset}\n onDeleteAssetFromMediaLibrary={handleDeleteAssetFromMediaLibrary}\n onAddAsset={() => setStep(STEPS.AssetSelect)}\n onDropAsset={handleAssetDrop}\n onEditAsset={handleAssetEdit}\n onNext={handleNext}\n onPrevious={handlePrevious}\n onDoubleClickAsset={handleDoubleClickAsset}\n error={error}\n hint={hint}\n required={required}\n selectedAssetIndex={selectedIndex}\n trackedLocation=\"content-manager\"\n />\n\n {step === STEPS.AssetSelect && (\n <AssetDialog\n allowedTypes={allowedTypes as AllowedTypes[]}\n initiallySelectedAssets={initiallySelectedAssets}\n folderId={folderId}\n onClose={() => {\n setStep(undefined);\n setFolderId(null);\n }}\n open={step === STEPS.AssetSelect}\n onValidate={handleValidation}\n multiple={multiple}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folder) => setFolderId(folder)}\n trackedLocation=\"content-manager\"\n />\n )}\n\n {step === STEPS.AssetUpload && (\n <UploadAssetDialog\n open={step === STEPS.AssetUpload}\n onClose={() => setStep(STEPS.AssetSelect)}\n initialAssetsToAdd={droppedAssets as Asset[]}\n addUploadedFiles={handleFilesUploadSucceeded}\n trackedLocation=\"content-manager\"\n folderId={folderId}\n validateAssetsTypes={validateAssetsTypes}\n />\n )}\n\n {step === STEPS.FolderCreate && (\n <EditFolderDialog\n open={step === STEPS.FolderCreate}\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n )}\n </>\n );\n }\n);\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryInput","React","forwardRef","attribute","allowedTypes","multiple","label","hint","disabled","labelAction","undefined","name","required","forwardedRef","formatMessage","useIntl","onChange","value","error","useField","uploadedFiles","setUploadedFiles","useState","step","setStep","selectedIndex","setSelectedIndex","droppedAssets","setDroppedAssets","folderId","setFolderId","toggleNotification","useNotification","useEffect","selectedAssets","Array","isArray","handleValidation","nextSelectedAssets","handleDeleteAssetFromMediaLibrary","nextValue","filter","_","assetIndex","length","handleDeleteAsset","asset","prevAsset","id","handleAssetEdit","map","validateAssetsTypes","assets","callback","allowedAssets","getAllowedFiles","type","timeout","message","getTrad","defaultMessage","fileTypes","join","handleAssetDrop","handleNext","current","handlePrevious","handleFilesUploadSucceeded","prev","initiallySelectedAssets","allowedUploadedFiles","handleDoubleClickAsset","_jsxs","_Fragment","_jsx","CarouselAssets","ref","onDeleteAsset","onDeleteAssetFromMediaLibrary","onAddAsset","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","selectedAssetIndex","trackedLocation","AssetDialog","onClose","open","onValidate","onAddFolder","onChangeFolder","folder","UploadAssetDialog","initialAssetsToAdd","addUploadedFiles","EditFolderDialog","parentFolderId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAiBA,MAAMA,KAAAA,GAAQ;IACZC,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,aAAA;IACbC,YAAAA,EAAc;AAChB,CAAA;AAeO,MAAMC,iBAAAA,iBAAoBC,gBAAAA,CAAMC,UAAU,CAC/C,CACE,EACEC,SAAAA,EAAW,EAAEC,eAAe,IAAI,EAAEC,QAAAA,GAAW,KAAK,EAAE,GAAG,EAAE,EACzDC,KAAK,EACLC,IAAI,EACJC,WAAW,KAAK,EAChBC,WAAAA,GAAcC,SAAS,EACvBC,IAAI,EACJC,QAAAA,GAAW,KAAK,EACjB,EACDC,YAAAA,GAAAA;IAEA,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGC,oBAAAA,CAASR,IAAAA,CAAAA;AAC5C,IAAA,MAAM,CAACS,aAAAA,EAAeC,gBAAAA,CAAiB,GAAGpB,gBAAAA,CAAMqB,QAAQ,CAAmB,EAAE,CAAA;AAC7E,IAAA,MAAM,CAACC,IAAAA,EAAMC,OAAAA,CAAQ,GAAGvB,gBAAAA,CAAMqB,QAAQ,CAAqBZ,SAAAA,CAAAA;AAC3D,IAAA,MAAM,CAACe,aAAAA,EAAeC,gBAAAA,CAAiB,GAAGzB,gBAAAA,CAAMqB,QAAQ,CAAC,CAAA,CAAA;AACzD,IAAA,MAAM,CAACK,aAAAA,EAAeC,gBAAAA,CAAiB,GAAG3B,iBAAMqB,QAAQ,EAAA;AACxD,IAAA,MAAM,CAACO,QAAAA,EAAUC,WAAAA,CAAY,GAAG7B,gBAAAA,CAAMqB,QAAQ,CAAgB,IAAA,CAAA;IAC9D,MAAM,EAAES,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAE/B/B,IAAAA,gBAAAA,CAAMgC,SAAS,CAAC,IAAA;;AAEd,QAAA,IAAIV,SAASb,SAAAA,EAAW;AACtBW,YAAAA,gBAAAA,CAAiB,EAAE,CAAA;AACrB,QAAA;IACF,CAAA,EAAG;AAACE,QAAAA;AAAK,KAAA,CAAA;AAET,IAAA,IAAIW,iBAAyB,EAAE;IAE/B,IAAIC,KAAAA,CAAMC,OAAO,CAACnB,KAAAA,CAAAA,EAAQ;QACxBiB,cAAAA,GAAiBjB,KAAAA;AACnB,IAAA,CAAA,MAAO,IAAIA,KAAAA,EAAO;QAChBiB,cAAAA,GAAiB;AAACjB,YAAAA;AAAM,SAAA;AAC1B,IAAA;AAEA,IAAA,MAAMoB,mBAAmB,CAACC,kBAAAA,GAAAA;AACxB,QAAA,MAAMrB,KAAAA,GAAQZ,QAAAA,GAAWiC,kBAAAA,GAAqBA,kBAAkB,CAAC,CAAA,CAAE;AACnEtB,QAAAA,QAAAA,CAASL,IAAAA,EAAMM,KAAAA,CAAAA;QACfO,OAAAA,CAAQd,SAAAA,CAAAA;AACV,IAAA,CAAA;AAEA,IAAA,MAAM6B,iCAAAA,GAAoC,IAAA;QACxC,IAAIC,SAAAA;AAEJ,QAAA,IAAInC,QAAAA,EAAU;AACZ,YAAA,MAAMiC,qBAAqBJ,cAAAA,CAAeO,MAAM,CAC9C,CAACC,CAAAA,EAAGC,aAAeA,UAAAA,KAAelB,aAAAA,CAAAA;AAEpCe,YAAAA,SAAAA,GAAYF,kBAAAA,CAAmBM,MAAM,GAAG,CAAA,GAAIN,kBAAAA,GAAqB,IAAA;QACnE,CAAA,MAAO;YACLE,SAAAA,GAAY,IAAA;AACd,QAAA;AAEA,QAAA,MAAMvB,KAAAA,GAAQuB,SAAAA;AACdxB,QAAAA,QAAAA,CAASL,IAAAA,EAAMM,KAAAA,CAAAA;QAEfS,gBAAAA,CAAiB,CAAA,CAAA;AACnB,IAAA,CAAA;AAEA,IAAA,MAAMmB,oBAAoB,CAACC,KAAAA,GAAAA;QACzB,IAAIN,SAAAA;AAEJ,QAAA,IAAInC,QAAAA,EAAU;YACZ,MAAMiC,kBAAAA,GAAqBJ,cAAAA,CAAeO,MAAM,CAAC,CAACM,YAAcA,SAAAA,CAAUC,EAAE,KAAKF,KAAAA,CAAME,EAAE,CAAA;AAEzFR,YAAAA,SAAAA,GAAYF,kBAAAA,CAAmBM,MAAM,GAAG,CAAA,GAAIN,kBAAAA,GAAqB,IAAA;QACnE,CAAA,MAAO;YACLE,SAAAA,GAAY,IAAA;AACd,QAAA;AAEAxB,QAAAA,QAAAA,CAASL,IAAAA,EAAM6B,SAAAA,CAAAA;QAEfd,gBAAAA,CAAiB,CAAA,CAAA;AACnB,IAAA,CAAA;AAEA,IAAA,MAAMuB,kBAAkB,CAACH,KAAAA,GAAAA;AACvB,QAAA,MAAMR,kBAAAA,GAAqBJ,cAAAA,CAAegB,GAAG,CAAC,CAACH,SAAAA,GAC7CA,SAAAA,CAAUC,EAAE,KAAKF,KAAAA,CAAME,EAAE,GAAGF,KAAAA,GAAQC,SAAAA,CAAAA;AAGtC/B,QAAAA,QAAAA,CAASL,IAAAA,EAAMN,QAAAA,GAAWiC,kBAAAA,GAAqBA,kBAAkB,CAAC,CAAA,CAAE,CAAA;AACtE,IAAA,CAAA;IAEA,MAAMa,mBAAAA,GAAsB,CAC1BC,MAAAA,EACAC,QAAAA,GAAAA;QAEA,MAAMC,aAAAA,GAAgBC,gCAAgBnD,YAAAA,EAAcgD,MAAAA,CAAAA;QAEpD,IAAIE,aAAAA,CAAcV,MAAM,GAAG,CAAA,EAAG;YAC5BS,QAAAA,CAASC,aAAAA,CAAAA;QACX,CAAA,MAAO;YACLvB,kBAAAA,CAAmB;gBACjByB,IAAAA,EAAM,QAAA;gBACNC,OAAAA,EAAS,IAAA;AACTC,gBAAAA,OAAAA,EAAS5C,aAAAA,CACP;AACEkC,oBAAAA,EAAAA,EAAIW,eAAAA,CAAQ,kCAAA,CAAA;oBACZC,cAAAA,EAAgB,CAAC,mCAAmC;iBACtD,EACA;AACEC,oBAAAA,SAAAA,EAAW,CAACzD,YAAAA,IAAgB,EAAE,EAAE0D,IAAI,CAAC,GAAA;AACvC,iBAAA;AAEJ,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMC,kBAAkB,CAACX,MAAAA,GAAAA;AACvBD,QAAAA,mBAAAA,CAAoBC,QAAQ,CAACE,aAAAA,GAAAA;YAC3B1B,gBAAAA,CAAiB0B,aAAAA,CAAAA;AACjB9B,YAAAA,OAAAA,CAAQ5B,MAAME,WAAW,CAAA;AAC3B,QAAA,CAAA,CAAA;AACF,IAAA,CAAA;AAEA,IAAA,IAAIO,QAAAA,IAAY6B,cAAAA,CAAeU,MAAM,GAAG,CAAA,EAAG;AACzCtC,QAAAA,KAAAA,GAAQ,CAAA,EAAGA,KAAAA,CAAM,EAAE,EAAEmB,aAAAA,GAAgB,CAAA,CAAE,GAAG,EAAES,cAAAA,CAAeU,MAAM,CAAC,CAAC,CAAC;AACtE,IAAA;AAEA,IAAA,MAAMoB,UAAAA,GAAa,IAAA;QACjBtC,gBAAAA,CAAiB,CAACuC,UAAaA,OAAAA,GAAU/B,cAAAA,CAAeU,MAAM,GAAG,CAAA,GAAIqB,UAAU,CAAA,GAAI,CAAA,CAAA;AACrF,IAAA,CAAA;AAEA,IAAA,MAAMC,cAAAA,GAAiB,IAAA;QACrBxC,gBAAAA,CAAiB,CAACuC,UAAaA,OAAAA,GAAU,CAAA,GAAIA,UAAU,CAAA,GAAI/B,cAAAA,CAAeU,MAAM,GAAG,CAAA,CAAA;AACrF,IAAA,CAAA;AAEA,IAAA,MAAMuB,6BAA6B,CAAC/C,aAAAA,GAAAA;AAClCC,QAAAA,gBAAAA,CAAiB,CAAC+C,IAAAA,GAAS;AAAIA,gBAAAA,GAAAA,IAAAA;AAAShD,gBAAAA,GAAAA;AAAc,aAAA,CAAA;AACxD,IAAA,CAAA;AAEA,IAAA,IAAIiD,uBAAAA,GAA0BnC,cAAAA;IAE9B,IAAId,aAAAA,CAAcwB,MAAM,GAAG,CAAA,EAAG;QAC5B,MAAM0B,oBAAAA,GAAuBf,gCAAgBnD,YAAAA,EAAcgB,aAAAA,CAAAA;AAE3DiD,QAAAA,uBAAAA,GAA0BhE,QAAAA,GACtB;AAAIiE,YAAAA,GAAAA,oBAAAA;AAAyBpC,YAAAA,GAAAA;SAAe,GAC5C;AAACoC,YAAAA,oBAAoB,CAAC,CAAA;AAAG,SAAA;AAC/B,IAAA;AAEA,IAAA,MAAMC,yBAAyB,CAACzB,KAAAA,GAAAA;AAC9B,QAAA,IAAItC,QAAAA,EAAU;QACdyC,eAAAA,CAAgBH,KAAAA,CAAAA;AAClB,IAAA,CAAA;IAEA,qBACE0B,eAAA,CAAAC,mBAAA,EAAA;;0BACEC,cAAA,CAACC,6BAAAA,EAAAA;gBACCC,GAAAA,EAAK/D,YAAAA;gBACLuC,MAAAA,EAAQlB,cAAAA;gBACR1B,QAAAA,EAAUA,QAAAA;gBACVF,KAAAA,EAAOA,KAAAA;gBACPG,WAAAA,EAAaA,WAAAA;gBACboE,aAAAA,EAAehC,iBAAAA;gBACfiC,6BAAAA,EAA+BvC,iCAAAA;gBAC/BwC,UAAAA,EAAY,IAAMvD,OAAAA,CAAQ5B,KAAAA,CAAMC,WAAW,CAAA;gBAC3CmF,WAAAA,EAAajB,eAAAA;gBACbkB,WAAAA,EAAahC,eAAAA;gBACbiC,MAAAA,EAAQlB,UAAAA;gBACRmB,UAAAA,EAAYjB,cAAAA;gBACZkB,kBAAAA,EAAoBb,sBAAAA;gBACpBrD,KAAAA,EAAOA,KAAAA;gBACPX,IAAAA,EAAMA,IAAAA;gBACNK,QAAAA,EAAUA,QAAAA;gBACVyE,kBAAAA,EAAoB5D,aAAAA;gBACpB6D,eAAAA,EAAgB;;YAGjB/D,IAAAA,KAAS3B,KAAAA,CAAMC,WAAW,kBACzB6E,cAAA,CAACa,uBAAAA,EAAAA;gBACCnF,YAAAA,EAAcA,YAAAA;gBACdiE,uBAAAA,EAAyBA,uBAAAA;gBACzBxC,QAAAA,EAAUA,QAAAA;gBACV2D,OAAAA,EAAS,IAAA;oBACPhE,OAAAA,CAAQd,SAAAA,CAAAA;oBACRoB,WAAAA,CAAY,IAAA,CAAA;AACd,gBAAA,CAAA;gBACA2D,IAAAA,EAAMlE,IAAAA,KAAS3B,MAAMC,WAAW;gBAChC6F,UAAAA,EAAYrD,gBAAAA;gBACZhC,QAAAA,EAAUA,QAAAA;gBACV0E,UAAAA,EAAY,IAAMvD,OAAAA,CAAQ5B,KAAAA,CAAME,WAAW,CAAA;gBAC3C6F,WAAAA,EAAa,IAAMnE,OAAAA,CAAQ5B,KAAAA,CAAMG,YAAY,CAAA;gBAC7C6F,cAAAA,EAAgB,CAACC,SAAW/D,WAAAA,CAAY+D,MAAAA,CAAAA;gBACxCP,eAAAA,EAAgB;;YAInB/D,IAAAA,KAAS3B,KAAAA,CAAME,WAAW,kBACzB4E,cAAA,CAACoB,mCAAAA,EAAAA;gBACCL,IAAAA,EAAMlE,IAAAA,KAAS3B,MAAME,WAAW;gBAChC0F,OAAAA,EAAS,IAAMhE,OAAAA,CAAQ5B,KAAAA,CAAMC,WAAW,CAAA;gBACxCkG,kBAAAA,EAAoBpE,aAAAA;gBACpBqE,gBAAAA,EAAkB7B,0BAAAA;gBAClBmB,eAAAA,EAAgB,iBAAA;gBAChBzD,QAAAA,EAAUA,QAAAA;gBACVsB,mBAAAA,EAAqBA;;YAIxB5B,IAAAA,KAAS3B,KAAAA,CAAMG,YAAY,kBAC1B2E,cAAA,CAACuB,iCAAAA,EAAAA;gBACCR,IAAAA,EAAMlE,IAAAA,KAAS3B,MAAMG,YAAY;gBACjCyF,OAAAA,EAAS,IAAMhE,OAAAA,CAAQ5B,KAAAA,CAAMC,WAAW,CAAA;gBACxCqG,cAAAA,EAAgBrE;;;;AAK1B,CAAA;;;;"}
@@ -7,7 +7,6 @@ import 'date-fns';
7
7
  import { getAllowedFiles } from '../../utils/getAllowedFiles.mjs';
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 { AssetDialog } from '../AssetDialog/AssetDialog.mjs';
13
12
  import { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog.mjs';
@@ -126,6 +125,7 @@ const MediaLibraryInput = /*#__PURE__*/ React.forwardRef(({ attribute: { allowed
126
125
  ];
127
126
  }
128
127
  const handleDoubleClickAsset = (asset)=>{
128
+ if (disabled) return;
129
129
  handleAssetEdit(asset);
130
130
  };
131
131
  return /*#__PURE__*/ jsxs(Fragment, {
@@ -1 +1 @@
1
- {"version":3,"file":"MediaLibraryInput.mjs","sources":["../../../../admin/src/components/MediaLibraryInput/MediaLibraryInput.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { useField, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { AllowedFiles, getAllowedFiles, getTrad } from '../../utils';\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { Asset, UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nimport { CarouselAssets, CarouselAssetsProps, FileWithoutIdHash } from './Carousel/CarouselAssets';\n\nimport type { File } from '../../../../shared/contracts/files';\n\ntype AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nexport interface MediaLibraryInputProps {\n required?: boolean;\n name: string;\n labelAction?: React.ReactNode;\n label?: string;\n hint?: string;\n disabled?: boolean;\n attribute?: {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n };\n}\n\nexport const MediaLibraryInput = React.forwardRef<CarouselAssetsProps, MediaLibraryInputProps>(\n (\n {\n attribute: { allowedTypes = null, multiple = false } = {},\n label,\n hint,\n disabled = false,\n labelAction = undefined,\n name,\n required = false,\n },\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const { onChange, value, error } = useField(name);\n const [uploadedFiles, setUploadedFiles] = React.useState<Asset[] | File[]>([]);\n const [step, setStep] = React.useState<string | undefined>(undefined);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [droppedAssets, setDroppedAssets] = React.useState<AllowedFiles[]>();\n const [folderId, setFolderId] = React.useState<number | null>(null);\n const { toggleNotification } = useNotification();\n\n React.useEffect(() => {\n // Clear the uploaded files on close\n if (step === undefined) {\n setUploadedFiles([]);\n }\n }, [step]);\n\n let selectedAssets: File[] = [];\n\n if (Array.isArray(value)) {\n selectedAssets = value;\n } else if (value) {\n selectedAssets = [value];\n }\n\n const handleValidation = (nextSelectedAssets: File[]) => {\n const value = multiple ? nextSelectedAssets : nextSelectedAssets[0];\n onChange(name, value);\n setStep(undefined);\n };\n\n const handleDeleteAssetFromMediaLibrary = () => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter(\n (_, assetIndex) => assetIndex !== selectedIndex\n );\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n const value = nextValue;\n onChange(name, value);\n\n setSelectedIndex(0);\n };\n\n const handleDeleteAsset = (asset: File) => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter((prevAsset) => prevAsset.id !== asset.id);\n\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n onChange(name, nextValue);\n\n setSelectedIndex(0);\n };\n\n const handleAssetEdit = (asset: File) => {\n const nextSelectedAssets = selectedAssets.map((prevAsset) =>\n prevAsset.id === asset.id ? asset : prevAsset\n );\n\n onChange(name, multiple ? nextSelectedAssets : nextSelectedAssets[0]);\n };\n\n const validateAssetsTypes = (\n assets: FileWithoutIdHash[] | Asset[],\n callback: (assets?: AllowedFiles[], error?: string) => void\n ) => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (allowedAssets.length > 0) {\n callback(allowedAssets);\n } else {\n toggleNotification({\n type: 'danger',\n timeout: 4000,\n message: formatMessage(\n {\n id: getTrad('input.notification.not-supported'),\n defaultMessage: `You can't upload this type of file.`,\n },\n {\n fileTypes: (allowedTypes ?? []).join(','),\n }\n ),\n });\n }\n };\n\n const handleAssetDrop = (assets: FileWithoutIdHash[]) => {\n validateAssetsTypes(assets, (allowedAssets?: AllowedFiles[]) => {\n setDroppedAssets(allowedAssets);\n setStep(STEPS.AssetUpload);\n });\n };\n\n if (multiple && selectedAssets.length > 0) {\n label = `${label} (${selectedIndex + 1} / ${selectedAssets.length})`;\n }\n\n const handleNext = () => {\n setSelectedIndex((current) => (current < selectedAssets.length - 1 ? current + 1 : 0));\n };\n\n const handlePrevious = () => {\n setSelectedIndex((current) => (current > 0 ? current - 1 : selectedAssets.length - 1));\n };\n\n const handleFilesUploadSucceeded = (uploadedFiles: Asset[] | File[]) => {\n setUploadedFiles((prev) => [...prev, ...uploadedFiles]);\n };\n\n let initiallySelectedAssets = selectedAssets;\n\n if (uploadedFiles.length > 0) {\n const allowedUploadedFiles = getAllowedFiles(allowedTypes, uploadedFiles as AllowedFiles[]);\n\n initiallySelectedAssets = multiple\n ? [...allowedUploadedFiles, ...selectedAssets]\n : [allowedUploadedFiles[0]];\n }\n\n const handleDoubleClickAsset = (asset: File) => {\n handleAssetEdit(asset);\n };\n\n return (\n <>\n <CarouselAssets\n ref={forwardedRef}\n assets={selectedAssets}\n disabled={disabled}\n label={label!}\n labelAction={labelAction}\n onDeleteAsset={handleDeleteAsset}\n onDeleteAssetFromMediaLibrary={handleDeleteAssetFromMediaLibrary}\n onAddAsset={() => setStep(STEPS.AssetSelect)}\n onDropAsset={handleAssetDrop}\n onEditAsset={handleAssetEdit}\n onNext={handleNext}\n onPrevious={handlePrevious}\n onDoubleClickAsset={handleDoubleClickAsset}\n error={error}\n hint={hint}\n required={required}\n selectedAssetIndex={selectedIndex}\n trackedLocation=\"content-manager\"\n />\n\n {step === STEPS.AssetSelect && (\n <AssetDialog\n allowedTypes={allowedTypes as AllowedTypes[]}\n initiallySelectedAssets={initiallySelectedAssets}\n folderId={folderId}\n onClose={() => {\n setStep(undefined);\n setFolderId(null);\n }}\n open={step === STEPS.AssetSelect}\n onValidate={handleValidation}\n multiple={multiple}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folder) => setFolderId(folder)}\n trackedLocation=\"content-manager\"\n />\n )}\n\n {step === STEPS.AssetUpload && (\n <UploadAssetDialog\n open={step === STEPS.AssetUpload}\n onClose={() => setStep(STEPS.AssetSelect)}\n initialAssetsToAdd={droppedAssets as Asset[]}\n addUploadedFiles={handleFilesUploadSucceeded}\n trackedLocation=\"content-manager\"\n folderId={folderId}\n validateAssetsTypes={validateAssetsTypes}\n />\n )}\n\n {step === STEPS.FolderCreate && (\n <EditFolderDialog\n open={step === STEPS.FolderCreate}\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n )}\n </>\n );\n }\n);\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryInput","React","forwardRef","attribute","allowedTypes","multiple","label","hint","disabled","labelAction","undefined","name","required","forwardedRef","formatMessage","useIntl","onChange","value","error","useField","uploadedFiles","setUploadedFiles","useState","step","setStep","selectedIndex","setSelectedIndex","droppedAssets","setDroppedAssets","folderId","setFolderId","toggleNotification","useNotification","useEffect","selectedAssets","Array","isArray","handleValidation","nextSelectedAssets","handleDeleteAssetFromMediaLibrary","nextValue","filter","_","assetIndex","length","handleDeleteAsset","asset","prevAsset","id","handleAssetEdit","map","validateAssetsTypes","assets","callback","allowedAssets","getAllowedFiles","type","timeout","message","getTrad","defaultMessage","fileTypes","join","handleAssetDrop","handleNext","current","handlePrevious","handleFilesUploadSucceeded","prev","initiallySelectedAssets","allowedUploadedFiles","handleDoubleClickAsset","_jsxs","_Fragment","_jsx","CarouselAssets","ref","onDeleteAsset","onDeleteAssetFromMediaLibrary","onAddAsset","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","selectedAssetIndex","trackedLocation","AssetDialog","onClose","open","onValidate","onAddFolder","onChangeFolder","folder","UploadAssetDialog","initialAssetsToAdd","addUploadedFiles","EditFolderDialog","parentFolderId"],"mappings":"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"}
1
+ {"version":3,"file":"MediaLibraryInput.mjs","sources":["../../../../admin/src/components/MediaLibraryInput/MediaLibraryInput.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { useField, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { AllowedFiles, getAllowedFiles, getTrad } from '../../utils';\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { Asset, UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nimport { CarouselAssets, CarouselAssetsProps, FileWithoutIdHash } from './Carousel/CarouselAssets';\n\nimport type { File } from '../../../../shared/contracts/files';\n\ntype AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nexport interface MediaLibraryInputProps {\n required?: boolean;\n name: string;\n labelAction?: React.ReactNode;\n label?: string;\n hint?: string;\n disabled?: boolean;\n attribute?: {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n };\n}\n\nexport const MediaLibraryInput = React.forwardRef<CarouselAssetsProps, MediaLibraryInputProps>(\n (\n {\n attribute: { allowedTypes = null, multiple = false } = {},\n label,\n hint,\n disabled = false,\n labelAction = undefined,\n name,\n required = false,\n },\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const { onChange, value, error } = useField(name);\n const [uploadedFiles, setUploadedFiles] = React.useState<Asset[] | File[]>([]);\n const [step, setStep] = React.useState<string | undefined>(undefined);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [droppedAssets, setDroppedAssets] = React.useState<AllowedFiles[]>();\n const [folderId, setFolderId] = React.useState<number | null>(null);\n const { toggleNotification } = useNotification();\n\n React.useEffect(() => {\n // Clear the uploaded files on close\n if (step === undefined) {\n setUploadedFiles([]);\n }\n }, [step]);\n\n let selectedAssets: File[] = [];\n\n if (Array.isArray(value)) {\n selectedAssets = value;\n } else if (value) {\n selectedAssets = [value];\n }\n\n const handleValidation = (nextSelectedAssets: File[]) => {\n const value = multiple ? nextSelectedAssets : nextSelectedAssets[0];\n onChange(name, value);\n setStep(undefined);\n };\n\n const handleDeleteAssetFromMediaLibrary = () => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter(\n (_, assetIndex) => assetIndex !== selectedIndex\n );\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n const value = nextValue;\n onChange(name, value);\n\n setSelectedIndex(0);\n };\n\n const handleDeleteAsset = (asset: File) => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter((prevAsset) => prevAsset.id !== asset.id);\n\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n onChange(name, nextValue);\n\n setSelectedIndex(0);\n };\n\n const handleAssetEdit = (asset: File) => {\n const nextSelectedAssets = selectedAssets.map((prevAsset) =>\n prevAsset.id === asset.id ? asset : prevAsset\n );\n\n onChange(name, multiple ? nextSelectedAssets : nextSelectedAssets[0]);\n };\n\n const validateAssetsTypes = (\n assets: FileWithoutIdHash[] | Asset[],\n callback: (assets?: AllowedFiles[], error?: string) => void\n ) => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (allowedAssets.length > 0) {\n callback(allowedAssets);\n } else {\n toggleNotification({\n type: 'danger',\n timeout: 4000,\n message: formatMessage(\n {\n id: getTrad('input.notification.not-supported'),\n defaultMessage: `You can't upload this type of file.`,\n },\n {\n fileTypes: (allowedTypes ?? []).join(','),\n }\n ),\n });\n }\n };\n\n const handleAssetDrop = (assets: FileWithoutIdHash[]) => {\n validateAssetsTypes(assets, (allowedAssets?: AllowedFiles[]) => {\n setDroppedAssets(allowedAssets);\n setStep(STEPS.AssetUpload);\n });\n };\n\n if (multiple && selectedAssets.length > 0) {\n label = `${label} (${selectedIndex + 1} / ${selectedAssets.length})`;\n }\n\n const handleNext = () => {\n setSelectedIndex((current) => (current < selectedAssets.length - 1 ? current + 1 : 0));\n };\n\n const handlePrevious = () => {\n setSelectedIndex((current) => (current > 0 ? current - 1 : selectedAssets.length - 1));\n };\n\n const handleFilesUploadSucceeded = (uploadedFiles: Asset[] | File[]) => {\n setUploadedFiles((prev) => [...prev, ...uploadedFiles]);\n };\n\n let initiallySelectedAssets = selectedAssets;\n\n if (uploadedFiles.length > 0) {\n const allowedUploadedFiles = getAllowedFiles(allowedTypes, uploadedFiles as AllowedFiles[]);\n\n initiallySelectedAssets = multiple\n ? [...allowedUploadedFiles, ...selectedAssets]\n : [allowedUploadedFiles[0]];\n }\n\n const handleDoubleClickAsset = (asset: File) => {\n if (disabled) return;\n handleAssetEdit(asset);\n };\n\n return (\n <>\n <CarouselAssets\n ref={forwardedRef}\n assets={selectedAssets}\n disabled={disabled}\n label={label!}\n labelAction={labelAction}\n onDeleteAsset={handleDeleteAsset}\n onDeleteAssetFromMediaLibrary={handleDeleteAssetFromMediaLibrary}\n onAddAsset={() => setStep(STEPS.AssetSelect)}\n onDropAsset={handleAssetDrop}\n onEditAsset={handleAssetEdit}\n onNext={handleNext}\n onPrevious={handlePrevious}\n onDoubleClickAsset={handleDoubleClickAsset}\n error={error}\n hint={hint}\n required={required}\n selectedAssetIndex={selectedIndex}\n trackedLocation=\"content-manager\"\n />\n\n {step === STEPS.AssetSelect && (\n <AssetDialog\n allowedTypes={allowedTypes as AllowedTypes[]}\n initiallySelectedAssets={initiallySelectedAssets}\n folderId={folderId}\n onClose={() => {\n setStep(undefined);\n setFolderId(null);\n }}\n open={step === STEPS.AssetSelect}\n onValidate={handleValidation}\n multiple={multiple}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folder) => setFolderId(folder)}\n trackedLocation=\"content-manager\"\n />\n )}\n\n {step === STEPS.AssetUpload && (\n <UploadAssetDialog\n open={step === STEPS.AssetUpload}\n onClose={() => setStep(STEPS.AssetSelect)}\n initialAssetsToAdd={droppedAssets as Asset[]}\n addUploadedFiles={handleFilesUploadSucceeded}\n trackedLocation=\"content-manager\"\n folderId={folderId}\n validateAssetsTypes={validateAssetsTypes}\n />\n )}\n\n {step === STEPS.FolderCreate && (\n <EditFolderDialog\n open={step === STEPS.FolderCreate}\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n )}\n </>\n );\n }\n);\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryInput","React","forwardRef","attribute","allowedTypes","multiple","label","hint","disabled","labelAction","undefined","name","required","forwardedRef","formatMessage","useIntl","onChange","value","error","useField","uploadedFiles","setUploadedFiles","useState","step","setStep","selectedIndex","setSelectedIndex","droppedAssets","setDroppedAssets","folderId","setFolderId","toggleNotification","useNotification","useEffect","selectedAssets","Array","isArray","handleValidation","nextSelectedAssets","handleDeleteAssetFromMediaLibrary","nextValue","filter","_","assetIndex","length","handleDeleteAsset","asset","prevAsset","id","handleAssetEdit","map","validateAssetsTypes","assets","callback","allowedAssets","getAllowedFiles","type","timeout","message","getTrad","defaultMessage","fileTypes","join","handleAssetDrop","handleNext","current","handlePrevious","handleFilesUploadSucceeded","prev","initiallySelectedAssets","allowedUploadedFiles","handleDoubleClickAsset","_jsxs","_Fragment","_jsx","CarouselAssets","ref","onDeleteAsset","onDeleteAssetFromMediaLibrary","onAddAsset","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","selectedAssetIndex","trackedLocation","AssetDialog","onClose","open","onValidate","onAddFolder","onChangeFolder","folder","UploadAssetDialog","initialAssetsToAdd","addUploadedFiles","EditFolderDialog","parentFolderId"],"mappings":";;;;;;;;;;;;;;;AAAA;AAiBA,MAAMA,KAAAA,GAAQ;IACZC,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,aAAA;IACbC,YAAAA,EAAc;AAChB,CAAA;AAeO,MAAMC,iBAAAA,iBAAoBC,KAAAA,CAAMC,UAAU,CAC/C,CACE,EACEC,SAAAA,EAAW,EAAEC,eAAe,IAAI,EAAEC,QAAAA,GAAW,KAAK,EAAE,GAAG,EAAE,EACzDC,KAAK,EACLC,IAAI,EACJC,WAAW,KAAK,EAChBC,WAAAA,GAAcC,SAAS,EACvBC,IAAI,EACJC,QAAAA,GAAW,KAAK,EACjB,EACDC,YAAAA,GAAAA;IAEA,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGC,QAAAA,CAASR,IAAAA,CAAAA;AAC5C,IAAA,MAAM,CAACS,aAAAA,EAAeC,gBAAAA,CAAiB,GAAGpB,KAAAA,CAAMqB,QAAQ,CAAmB,EAAE,CAAA;AAC7E,IAAA,MAAM,CAACC,IAAAA,EAAMC,OAAAA,CAAQ,GAAGvB,KAAAA,CAAMqB,QAAQ,CAAqBZ,SAAAA,CAAAA;AAC3D,IAAA,MAAM,CAACe,aAAAA,EAAeC,gBAAAA,CAAiB,GAAGzB,KAAAA,CAAMqB,QAAQ,CAAC,CAAA,CAAA;AACzD,IAAA,MAAM,CAACK,aAAAA,EAAeC,gBAAAA,CAAiB,GAAG3B,MAAMqB,QAAQ,EAAA;AACxD,IAAA,MAAM,CAACO,QAAAA,EAAUC,WAAAA,CAAY,GAAG7B,KAAAA,CAAMqB,QAAQ,CAAgB,IAAA,CAAA;IAC9D,MAAM,EAAES,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAE/B/B,IAAAA,KAAAA,CAAMgC,SAAS,CAAC,IAAA;;AAEd,QAAA,IAAIV,SAASb,SAAAA,EAAW;AACtBW,YAAAA,gBAAAA,CAAiB,EAAE,CAAA;AACrB,QAAA;IACF,CAAA,EAAG;AAACE,QAAAA;AAAK,KAAA,CAAA;AAET,IAAA,IAAIW,iBAAyB,EAAE;IAE/B,IAAIC,KAAAA,CAAMC,OAAO,CAACnB,KAAAA,CAAAA,EAAQ;QACxBiB,cAAAA,GAAiBjB,KAAAA;AACnB,IAAA,CAAA,MAAO,IAAIA,KAAAA,EAAO;QAChBiB,cAAAA,GAAiB;AAACjB,YAAAA;AAAM,SAAA;AAC1B,IAAA;AAEA,IAAA,MAAMoB,mBAAmB,CAACC,kBAAAA,GAAAA;AACxB,QAAA,MAAMrB,KAAAA,GAAQZ,QAAAA,GAAWiC,kBAAAA,GAAqBA,kBAAkB,CAAC,CAAA,CAAE;AACnEtB,QAAAA,QAAAA,CAASL,IAAAA,EAAMM,KAAAA,CAAAA;QACfO,OAAAA,CAAQd,SAAAA,CAAAA;AACV,IAAA,CAAA;AAEA,IAAA,MAAM6B,iCAAAA,GAAoC,IAAA;QACxC,IAAIC,SAAAA;AAEJ,QAAA,IAAInC,QAAAA,EAAU;AACZ,YAAA,MAAMiC,qBAAqBJ,cAAAA,CAAeO,MAAM,CAC9C,CAACC,CAAAA,EAAGC,aAAeA,UAAAA,KAAelB,aAAAA,CAAAA;AAEpCe,YAAAA,SAAAA,GAAYF,kBAAAA,CAAmBM,MAAM,GAAG,CAAA,GAAIN,kBAAAA,GAAqB,IAAA;QACnE,CAAA,MAAO;YACLE,SAAAA,GAAY,IAAA;AACd,QAAA;AAEA,QAAA,MAAMvB,KAAAA,GAAQuB,SAAAA;AACdxB,QAAAA,QAAAA,CAASL,IAAAA,EAAMM,KAAAA,CAAAA;QAEfS,gBAAAA,CAAiB,CAAA,CAAA;AACnB,IAAA,CAAA;AAEA,IAAA,MAAMmB,oBAAoB,CAACC,KAAAA,GAAAA;QACzB,IAAIN,SAAAA;AAEJ,QAAA,IAAInC,QAAAA,EAAU;YACZ,MAAMiC,kBAAAA,GAAqBJ,cAAAA,CAAeO,MAAM,CAAC,CAACM,YAAcA,SAAAA,CAAUC,EAAE,KAAKF,KAAAA,CAAME,EAAE,CAAA;AAEzFR,YAAAA,SAAAA,GAAYF,kBAAAA,CAAmBM,MAAM,GAAG,CAAA,GAAIN,kBAAAA,GAAqB,IAAA;QACnE,CAAA,MAAO;YACLE,SAAAA,GAAY,IAAA;AACd,QAAA;AAEAxB,QAAAA,QAAAA,CAASL,IAAAA,EAAM6B,SAAAA,CAAAA;QAEfd,gBAAAA,CAAiB,CAAA,CAAA;AACnB,IAAA,CAAA;AAEA,IAAA,MAAMuB,kBAAkB,CAACH,KAAAA,GAAAA;AACvB,QAAA,MAAMR,kBAAAA,GAAqBJ,cAAAA,CAAegB,GAAG,CAAC,CAACH,SAAAA,GAC7CA,SAAAA,CAAUC,EAAE,KAAKF,KAAAA,CAAME,EAAE,GAAGF,KAAAA,GAAQC,SAAAA,CAAAA;AAGtC/B,QAAAA,QAAAA,CAASL,IAAAA,EAAMN,QAAAA,GAAWiC,kBAAAA,GAAqBA,kBAAkB,CAAC,CAAA,CAAE,CAAA;AACtE,IAAA,CAAA;IAEA,MAAMa,mBAAAA,GAAsB,CAC1BC,MAAAA,EACAC,QAAAA,GAAAA;QAEA,MAAMC,aAAAA,GAAgBC,gBAAgBnD,YAAAA,EAAcgD,MAAAA,CAAAA;QAEpD,IAAIE,aAAAA,CAAcV,MAAM,GAAG,CAAA,EAAG;YAC5BS,QAAAA,CAASC,aAAAA,CAAAA;QACX,CAAA,MAAO;YACLvB,kBAAAA,CAAmB;gBACjByB,IAAAA,EAAM,QAAA;gBACNC,OAAAA,EAAS,IAAA;AACTC,gBAAAA,OAAAA,EAAS5C,aAAAA,CACP;AACEkC,oBAAAA,EAAAA,EAAIW,OAAAA,CAAQ,kCAAA,CAAA;oBACZC,cAAAA,EAAgB,CAAC,mCAAmC;iBACtD,EACA;AACEC,oBAAAA,SAAAA,EAAW,CAACzD,YAAAA,IAAgB,EAAE,EAAE0D,IAAI,CAAC,GAAA;AACvC,iBAAA;AAEJ,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMC,kBAAkB,CAACX,MAAAA,GAAAA;AACvBD,QAAAA,mBAAAA,CAAoBC,QAAQ,CAACE,aAAAA,GAAAA;YAC3B1B,gBAAAA,CAAiB0B,aAAAA,CAAAA;AACjB9B,YAAAA,OAAAA,CAAQ5B,MAAME,WAAW,CAAA;AAC3B,QAAA,CAAA,CAAA;AACF,IAAA,CAAA;AAEA,IAAA,IAAIO,QAAAA,IAAY6B,cAAAA,CAAeU,MAAM,GAAG,CAAA,EAAG;AACzCtC,QAAAA,KAAAA,GAAQ,CAAA,EAAGA,KAAAA,CAAM,EAAE,EAAEmB,aAAAA,GAAgB,CAAA,CAAE,GAAG,EAAES,cAAAA,CAAeU,MAAM,CAAC,CAAC,CAAC;AACtE,IAAA;AAEA,IAAA,MAAMoB,UAAAA,GAAa,IAAA;QACjBtC,gBAAAA,CAAiB,CAACuC,UAAaA,OAAAA,GAAU/B,cAAAA,CAAeU,MAAM,GAAG,CAAA,GAAIqB,UAAU,CAAA,GAAI,CAAA,CAAA;AACrF,IAAA,CAAA;AAEA,IAAA,MAAMC,cAAAA,GAAiB,IAAA;QACrBxC,gBAAAA,CAAiB,CAACuC,UAAaA,OAAAA,GAAU,CAAA,GAAIA,UAAU,CAAA,GAAI/B,cAAAA,CAAeU,MAAM,GAAG,CAAA,CAAA;AACrF,IAAA,CAAA;AAEA,IAAA,MAAMuB,6BAA6B,CAAC/C,aAAAA,GAAAA;AAClCC,QAAAA,gBAAAA,CAAiB,CAAC+C,IAAAA,GAAS;AAAIA,gBAAAA,GAAAA,IAAAA;AAAShD,gBAAAA,GAAAA;AAAc,aAAA,CAAA;AACxD,IAAA,CAAA;AAEA,IAAA,IAAIiD,uBAAAA,GAA0BnC,cAAAA;IAE9B,IAAId,aAAAA,CAAcwB,MAAM,GAAG,CAAA,EAAG;QAC5B,MAAM0B,oBAAAA,GAAuBf,gBAAgBnD,YAAAA,EAAcgB,aAAAA,CAAAA;AAE3DiD,QAAAA,uBAAAA,GAA0BhE,QAAAA,GACtB;AAAIiE,YAAAA,GAAAA,oBAAAA;AAAyBpC,YAAAA,GAAAA;SAAe,GAC5C;AAACoC,YAAAA,oBAAoB,CAAC,CAAA;AAAG,SAAA;AAC/B,IAAA;AAEA,IAAA,MAAMC,yBAAyB,CAACzB,KAAAA,GAAAA;AAC9B,QAAA,IAAItC,QAAAA,EAAU;QACdyC,eAAAA,CAAgBH,KAAAA,CAAAA;AAClB,IAAA,CAAA;IAEA,qBACE0B,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAAA,CAACC,cAAAA,EAAAA;gBACCC,GAAAA,EAAK/D,YAAAA;gBACLuC,MAAAA,EAAQlB,cAAAA;gBACR1B,QAAAA,EAAUA,QAAAA;gBACVF,KAAAA,EAAOA,KAAAA;gBACPG,WAAAA,EAAaA,WAAAA;gBACboE,aAAAA,EAAehC,iBAAAA;gBACfiC,6BAAAA,EAA+BvC,iCAAAA;gBAC/BwC,UAAAA,EAAY,IAAMvD,OAAAA,CAAQ5B,KAAAA,CAAMC,WAAW,CAAA;gBAC3CmF,WAAAA,EAAajB,eAAAA;gBACbkB,WAAAA,EAAahC,eAAAA;gBACbiC,MAAAA,EAAQlB,UAAAA;gBACRmB,UAAAA,EAAYjB,cAAAA;gBACZkB,kBAAAA,EAAoBb,sBAAAA;gBACpBrD,KAAAA,EAAOA,KAAAA;gBACPX,IAAAA,EAAMA,IAAAA;gBACNK,QAAAA,EAAUA,QAAAA;gBACVyE,kBAAAA,EAAoB5D,aAAAA;gBACpB6D,eAAAA,EAAgB;;YAGjB/D,IAAAA,KAAS3B,KAAAA,CAAMC,WAAW,kBACzB6E,GAAA,CAACa,WAAAA,EAAAA;gBACCnF,YAAAA,EAAcA,YAAAA;gBACdiE,uBAAAA,EAAyBA,uBAAAA;gBACzBxC,QAAAA,EAAUA,QAAAA;gBACV2D,OAAAA,EAAS,IAAA;oBACPhE,OAAAA,CAAQd,SAAAA,CAAAA;oBACRoB,WAAAA,CAAY,IAAA,CAAA;AACd,gBAAA,CAAA;gBACA2D,IAAAA,EAAMlE,IAAAA,KAAS3B,MAAMC,WAAW;gBAChC6F,UAAAA,EAAYrD,gBAAAA;gBACZhC,QAAAA,EAAUA,QAAAA;gBACV0E,UAAAA,EAAY,IAAMvD,OAAAA,CAAQ5B,KAAAA,CAAME,WAAW,CAAA;gBAC3C6F,WAAAA,EAAa,IAAMnE,OAAAA,CAAQ5B,KAAAA,CAAMG,YAAY,CAAA;gBAC7C6F,cAAAA,EAAgB,CAACC,SAAW/D,WAAAA,CAAY+D,MAAAA,CAAAA;gBACxCP,eAAAA,EAAgB;;YAInB/D,IAAAA,KAAS3B,KAAAA,CAAME,WAAW,kBACzB4E,GAAA,CAACoB,iBAAAA,EAAAA;gBACCL,IAAAA,EAAMlE,IAAAA,KAAS3B,MAAME,WAAW;gBAChC0F,OAAAA,EAAS,IAAMhE,OAAAA,CAAQ5B,KAAAA,CAAMC,WAAW,CAAA;gBACxCkG,kBAAAA,EAAoBpE,aAAAA;gBACpBqE,gBAAAA,EAAkB7B,0BAAAA;gBAClBmB,eAAAA,EAAgB,iBAAA;gBAChBzD,QAAAA,EAAUA,QAAAA;gBACVsB,mBAAAA,EAAqBA;;YAIxB5B,IAAAA,KAAS3B,KAAAA,CAAMG,YAAY,kBAC1B2E,GAAA,CAACuB,gBAAAA,EAAAA;gBACCR,IAAAA,EAAMlE,IAAAA,KAAS3B,MAAMG,YAAY;gBACjCyF,OAAAA,EAAS,IAAMhE,OAAAA,CAAQ5B,KAAAA,CAAMC,WAAW,CAAA;gBACxCqG,cAAAA,EAAgBrE;;;;AAK1B,CAAA;;;;"}
@@ -8,7 +8,6 @@ require('byte-size');
8
8
  require('date-fns');
9
9
  var getTrad = require('../../utils/getTrad.js');
10
10
  require('qs');
11
- require('../../utils/typeFromMime.js');
12
11
  require('../../utils/urlYupSchema.js');
13
12
 
14
13
  // TODO: find a better naming convention for the file that was an index file before
@@ -1 +1 @@
1
- {"version":3,"file":"SortPicker.js","sources":["../../../../admin/src/components/SortPicker/SortPicker.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport { SingleSelect, SingleSelectOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { sortOptions } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport type { Query } from '../../../../shared/contracts/files';\n\ninterface SortPickerProps {\n onChangeSort: (value: Query['sort'] | string) => void;\n value?: string;\n}\n\nexport const SortPicker = ({ onChangeSort, value }: SortPickerProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n size=\"S\"\n value={value}\n onChange={(value) => onChangeSort(value.toString())}\n aria-label={formatMessage({\n id: getTrad('sort.label'),\n defaultMessage: 'Sort by',\n })}\n placeholder={formatMessage({\n id: getTrad('sort.label'),\n defaultMessage: 'Sort by',\n })}\n >\n {sortOptions.map((filter) => (\n <SingleSelectOption key={filter.key} value={filter.value}>\n {formatMessage({ id: getTrad(filter.key), defaultMessage: `${filter.value}` })}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["SortPicker","onChangeSort","value","formatMessage","useIntl","_jsx","SingleSelect","size","onChange","toString","aria-label","id","getTrad","defaultMessage","placeholder","sortOptions","map","filter","SingleSelectOption","key"],"mappings":";;;;;;;;;;;;;AAAA;MAcaA,UAAAA,GAAa,CAAC,EAAEC,YAAY,EAAEC,KAAK,EAAmB,GAAA;IACjE,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,cAAA,CAACC,yBAAAA,EAAAA;QACCC,IAAAA,EAAK,GAAA;QACLL,KAAAA,EAAOA,KAAAA;AACPM,QAAAA,QAAAA,EAAU,CAACN,KAAAA,GAAUD,YAAAA,CAAaC,KAAAA,CAAMO,QAAQ,EAAA,CAAA;AAChDC,QAAAA,YAAAA,EAAYP,aAAAA,CAAc;AACxBQ,YAAAA,EAAAA,EAAIC,eAAAA,CAAQ,YAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;AACAC,QAAAA,WAAAA,EAAaX,aAAAA,CAAc;AACzBQ,YAAAA,EAAAA,EAAIC,eAAAA,CAAQ,YAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;AAECE,QAAAA,QAAAA,EAAAA,qBAAAA,CAAYC,GAAG,CAAC,CAACC,MAAAA,iBAChBZ,cAAA,CAACa,+BAAAA,EAAAA;AAAoChB,gBAAAA,KAAAA,EAAOe,OAAOf,KAAK;0BACrDC,aAAAA,CAAc;oBAAEQ,EAAAA,EAAIC,eAAAA,CAAQK,OAAOE,GAAG,CAAA;oBAAGN,cAAAA,EAAgB,CAAA,EAAGI,MAAAA,CAAOf,KAAK,CAAA;AAAG,iBAAA;AADrDe,aAAAA,EAAAA,MAAAA,CAAOE,GAAG,CAAA;;AAM3C;;;;"}
1
+ {"version":3,"file":"SortPicker.js","sources":["../../../../admin/src/components/SortPicker/SortPicker.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport { SingleSelect, SingleSelectOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { sortOptions } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport type { Query } from '../../../../shared/contracts/files';\n\ninterface SortPickerProps {\n onChangeSort: (value: Query['sort'] | string) => void;\n value?: string;\n}\n\nexport const SortPicker = ({ onChangeSort, value }: SortPickerProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n size=\"S\"\n value={value}\n onChange={(value) => onChangeSort(value.toString())}\n aria-label={formatMessage({\n id: getTrad('sort.label'),\n defaultMessage: 'Sort by',\n })}\n placeholder={formatMessage({\n id: getTrad('sort.label'),\n defaultMessage: 'Sort by',\n })}\n >\n {sortOptions.map((filter) => (\n <SingleSelectOption key={filter.key} value={filter.value}>\n {formatMessage({ id: getTrad(filter.key), defaultMessage: `${filter.value}` })}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["SortPicker","onChangeSort","value","formatMessage","useIntl","_jsx","SingleSelect","size","onChange","toString","aria-label","id","getTrad","defaultMessage","placeholder","sortOptions","map","filter","SingleSelectOption","key"],"mappings":";;;;;;;;;;;;AAAA;MAcaA,UAAAA,GAAa,CAAC,EAAEC,YAAY,EAAEC,KAAK,EAAmB,GAAA;IACjE,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,cAAA,CAACC,yBAAAA,EAAAA;QACCC,IAAAA,EAAK,GAAA;QACLL,KAAAA,EAAOA,KAAAA;AACPM,QAAAA,QAAAA,EAAU,CAACN,KAAAA,GAAUD,YAAAA,CAAaC,KAAAA,CAAMO,QAAQ,EAAA,CAAA;AAChDC,QAAAA,YAAAA,EAAYP,aAAAA,CAAc;AACxBQ,YAAAA,EAAAA,EAAIC,eAAAA,CAAQ,YAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;AACAC,QAAAA,WAAAA,EAAaX,aAAAA,CAAc;AACzBQ,YAAAA,EAAAA,EAAIC,eAAAA,CAAQ,YAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;AAECE,QAAAA,QAAAA,EAAAA,qBAAAA,CAAYC,GAAG,CAAC,CAACC,MAAAA,iBAChBZ,cAAA,CAACa,+BAAAA,EAAAA;AAAoChB,gBAAAA,KAAAA,EAAOe,OAAOf,KAAK;0BACrDC,aAAAA,CAAc;oBAAEQ,EAAAA,EAAIC,eAAAA,CAAQK,OAAOE,GAAG,CAAA;oBAAGN,cAAAA,EAAgB,CAAA,EAAGI,MAAAA,CAAOf,KAAK,CAAA;AAAG,iBAAA;AADrDe,aAAAA,EAAAA,MAAAA,CAAOE,GAAG,CAAA;;AAM3C;;;;"}
@@ -6,7 +6,6 @@ import 'byte-size';
6
6
  import 'date-fns';
7
7
  import { getTrad } from '../../utils/getTrad.mjs';
8
8
  import 'qs';
9
- import '../../utils/typeFromMime.mjs';
10
9
  import '../../utils/urlYupSchema.mjs';
11
10
 
12
11
  // TODO: find a better naming convention for the file that was an index file before
@@ -1 +1 @@
1
- {"version":3,"file":"SortPicker.mjs","sources":["../../../../admin/src/components/SortPicker/SortPicker.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport { SingleSelect, SingleSelectOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { sortOptions } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport type { Query } from '../../../../shared/contracts/files';\n\ninterface SortPickerProps {\n onChangeSort: (value: Query['sort'] | string) => void;\n value?: string;\n}\n\nexport const SortPicker = ({ onChangeSort, value }: SortPickerProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n size=\"S\"\n value={value}\n onChange={(value) => onChangeSort(value.toString())}\n aria-label={formatMessage({\n id: getTrad('sort.label'),\n defaultMessage: 'Sort by',\n })}\n placeholder={formatMessage({\n id: getTrad('sort.label'),\n defaultMessage: 'Sort by',\n })}\n >\n {sortOptions.map((filter) => (\n <SingleSelectOption key={filter.key} value={filter.value}>\n {formatMessage({ id: getTrad(filter.key), defaultMessage: `${filter.value}` })}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["SortPicker","onChangeSort","value","formatMessage","useIntl","_jsx","SingleSelect","size","onChange","toString","aria-label","id","getTrad","defaultMessage","placeholder","sortOptions","map","filter","SingleSelectOption","key"],"mappings":";;;;;;;;;;;AAAA;MAcaA,UAAAA,GAAa,CAAC,EAAEC,YAAY,EAAEC,KAAK,EAAmB,GAAA;IACjE,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,GAAA,CAACC,YAAAA,EAAAA;QACCC,IAAAA,EAAK,GAAA;QACLL,KAAAA,EAAOA,KAAAA;AACPM,QAAAA,QAAAA,EAAU,CAACN,KAAAA,GAAUD,YAAAA,CAAaC,KAAAA,CAAMO,QAAQ,EAAA,CAAA;AAChDC,QAAAA,YAAAA,EAAYP,aAAAA,CAAc;AACxBQ,YAAAA,EAAAA,EAAIC,OAAAA,CAAQ,YAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;AACAC,QAAAA,WAAAA,EAAaX,aAAAA,CAAc;AACzBQ,YAAAA,EAAAA,EAAIC,OAAAA,CAAQ,YAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;AAECE,QAAAA,QAAAA,EAAAA,WAAAA,CAAYC,GAAG,CAAC,CAACC,MAAAA,iBAChBZ,GAAA,CAACa,kBAAAA,EAAAA;AAAoChB,gBAAAA,KAAAA,EAAOe,OAAOf,KAAK;0BACrDC,aAAAA,CAAc;oBAAEQ,EAAAA,EAAIC,OAAAA,CAAQK,OAAOE,GAAG,CAAA;oBAAGN,cAAAA,EAAgB,CAAA,EAAGI,MAAAA,CAAOf,KAAK,CAAA;AAAG,iBAAA;AADrDe,aAAAA,EAAAA,MAAAA,CAAOE,GAAG,CAAA;;AAM3C;;;;"}
1
+ {"version":3,"file":"SortPicker.mjs","sources":["../../../../admin/src/components/SortPicker/SortPicker.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport { SingleSelect, SingleSelectOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { sortOptions } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport type { Query } from '../../../../shared/contracts/files';\n\ninterface SortPickerProps {\n onChangeSort: (value: Query['sort'] | string) => void;\n value?: string;\n}\n\nexport const SortPicker = ({ onChangeSort, value }: SortPickerProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n size=\"S\"\n value={value}\n onChange={(value) => onChangeSort(value.toString())}\n aria-label={formatMessage({\n id: getTrad('sort.label'),\n defaultMessage: 'Sort by',\n })}\n placeholder={formatMessage({\n id: getTrad('sort.label'),\n defaultMessage: 'Sort by',\n })}\n >\n {sortOptions.map((filter) => (\n <SingleSelectOption key={filter.key} value={filter.value}>\n {formatMessage({ id: getTrad(filter.key), defaultMessage: `${filter.value}` })}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["SortPicker","onChangeSort","value","formatMessage","useIntl","_jsx","SingleSelect","size","onChange","toString","aria-label","id","getTrad","defaultMessage","placeholder","sortOptions","map","filter","SingleSelectOption","key"],"mappings":";;;;;;;;;;AAAA;MAcaA,UAAAA,GAAa,CAAC,EAAEC,YAAY,EAAEC,KAAK,EAAmB,GAAA;IACjE,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,GAAA,CAACC,YAAAA,EAAAA;QACCC,IAAAA,EAAK,GAAA;QACLL,KAAAA,EAAOA,KAAAA;AACPM,QAAAA,QAAAA,EAAU,CAACN,KAAAA,GAAUD,YAAAA,CAAaC,KAAAA,CAAMO,QAAQ,EAAA,CAAA;AAChDC,QAAAA,YAAAA,EAAYP,aAAAA,CAAc;AACxBQ,YAAAA,EAAAA,EAAIC,OAAAA,CAAQ,YAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;AACAC,QAAAA,WAAAA,EAAaX,aAAAA,CAAc;AACzBQ,YAAAA,EAAAA,EAAIC,OAAAA,CAAQ,YAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;AAECE,QAAAA,QAAAA,EAAAA,WAAAA,CAAYC,GAAG,CAAC,CAACC,MAAAA,iBAChBZ,GAAA,CAACa,kBAAAA,EAAAA;AAAoChB,gBAAAA,KAAAA,EAAOe,OAAOf,KAAK;0BACrDC,aAAAA,CAAc;oBAAEQ,EAAAA,EAAIC,OAAAA,CAAQK,OAAOE,GAAG,CAAA;oBAAGN,cAAAA,EAAgB,CAAA,EAAGI,MAAAA,CAAOf,KAAK,CAAA;AAAG,iBAAA;AADrDe,aAAAA,EAAAA,MAAAA,CAAOE,GAAG,CAAA;;AAM3C;;;;"}
@@ -8,7 +8,6 @@ var formatBytes = require('../../utils/formatBytes.js');
8
8
  require('date-fns');
9
9
  require('qs');
10
10
  var getFileExtension = require('../../utils/getFileExtension.js');
11
- require('../../utils/typeFromMime.js');
12
11
  require('../../utils/urlYupSchema.js');
13
12
  var PreviewCell = require('./PreviewCell.js');
14
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"CellContent.js","sources":["../../../../admin/src/components/TableList/CellContent.tsx"],"sourcesContent":["import { Typography } from '@strapi/design-system';\nimport parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nimport { formatBytes, getFileExtension } from '../../utils';\n\nimport { PreviewCell } from './PreviewCell';\n\nimport type { File } from '../../../../shared/contracts/files';\n\nexport interface CellContentProps {\n cellType: string;\n contentType?: string;\n content: File;\n name: string;\n}\n\nexport const CellContent = ({ cellType, contentType, content, name }: CellContentProps) => {\n const { formatDate, formatMessage } = useIntl();\n const contentValue = content[name as Extract<keyof File, string>];\n\n switch (cellType) {\n case 'image':\n return <PreviewCell type={contentType} content={content} />;\n\n case 'date':\n if (typeof contentValue === 'string') {\n return <Typography>{formatDate(parseISO(contentValue), { dateStyle: 'full' })}</Typography>;\n }\n\n case 'size':\n if (contentType === 'folder')\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n if (typeof contentValue === 'string' || typeof contentValue === 'number') {\n return <Typography>{formatBytes(contentValue)}</Typography>;\n }\n\n case 'ext':\n if (contentType === 'folder')\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n\n if (typeof contentValue === 'string') {\n return <Typography>{getFileExtension(contentValue)?.toUpperCase()}</Typography>;\n }\n case 'text':\n if (typeof contentValue === 'string') {\n return <Typography>{contentValue}</Typography>;\n }\n\n default:\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n }\n};\n"],"names":["CellContent","cellType","contentType","content","name","formatDate","formatMessage","useIntl","contentValue","_jsx","PreviewCell","type","Typography","parseISO","dateStyle","aria-label","id","defaultMessage","formatBytes","getFileExtension","toUpperCase"],"mappings":";;;;;;;;;;;;;;;;;;AAiBO,MAAMA,WAAAA,GAAc,CAAC,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,OAAO,EAAEC,IAAI,EAAoB,GAAA;AACpF,IAAA,MAAM,EAAEC,UAAU,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IACtC,MAAMC,YAAAA,GAAeL,OAAO,CAACC,IAAAA,CAAoC;IAEjE,OAAQH,QAAAA;QACN,KAAK,OAAA;AACH,YAAA,qBAAOQ,cAAA,CAACC,uBAAAA,EAAAA;gBAAYC,IAAAA,EAAMT,WAAAA;gBAAaC,OAAAA,EAASA;;QAElD,KAAK,MAAA;YACH,IAAI,OAAOK,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,cAAA,CAACG,uBAAAA,EAAAA;AAAYP,oBAAAA,QAAAA,EAAAA,UAAAA,CAAWQ,0BAASL,YAAAA,CAAAA,EAAe;wBAAEM,SAAAA,EAAW;AAAO,qBAAA;;AAC7E,YAAA;QAEF,KAAK,MAAA;YACH,IAAIZ,WAAAA,KAAgB,QAAA,EAClB,qBACEO,cAAA,CAACG,uBAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;AAIL,YAAA,IAAI,OAAOT,YAAAA,KAAiB,QAAA,IAAY,OAAOA,iBAAiB,QAAA,EAAU;AACxE,gBAAA,qBAAOC,cAAA,CAACG,uBAAAA,EAAAA;8BAAYM,uBAAAA,CAAYV,YAAAA;;AAClC,YAAA;QAEF,KAAK,KAAA;YACH,IAAIN,WAAAA,KAAgB,QAAA,EAClB,qBACEO,cAAA,CAACG,uBAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;YAKL,IAAI,OAAOT,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,cAAA,CAACG,uBAAAA,EAAAA;AAAYO,oBAAAA,QAAAA,EAAAA,iCAAAA,CAAiBX,YAAAA,CAAAA,EAAeY,WAAAA;;AACtD,YAAA;QACF,KAAK,MAAA;YACH,IAAI,OAAOZ,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,cAAA,CAACG,uBAAAA,EAAAA;AAAYJ,oBAAAA,QAAAA,EAAAA;;AACtB,YAAA;AAEF,QAAA;AACE,YAAA,qBACEC,cAAA,CAACG,uBAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;AAIP;AACF;;;;"}
1
+ {"version":3,"file":"CellContent.js","sources":["../../../../admin/src/components/TableList/CellContent.tsx"],"sourcesContent":["import { Typography } from '@strapi/design-system';\nimport parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nimport { formatBytes, getFileExtension } from '../../utils';\n\nimport { PreviewCell } from './PreviewCell';\n\nimport type { File } from '../../../../shared/contracts/files';\n\nexport interface CellContentProps {\n cellType: string;\n contentType?: string;\n content: File;\n name: string;\n}\n\nexport const CellContent = ({ cellType, contentType, content, name }: CellContentProps) => {\n const { formatDate, formatMessage } = useIntl();\n const contentValue = content[name as Extract<keyof File, string>];\n\n switch (cellType) {\n case 'image':\n return <PreviewCell type={contentType} content={content} />;\n\n case 'date':\n if (typeof contentValue === 'string') {\n return <Typography>{formatDate(parseISO(contentValue), { dateStyle: 'full' })}</Typography>;\n }\n\n case 'size':\n if (contentType === 'folder')\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n if (typeof contentValue === 'string' || typeof contentValue === 'number') {\n return <Typography>{formatBytes(contentValue)}</Typography>;\n }\n\n case 'ext':\n if (contentType === 'folder')\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n\n if (typeof contentValue === 'string') {\n return <Typography>{getFileExtension(contentValue)?.toUpperCase()}</Typography>;\n }\n case 'text':\n if (typeof contentValue === 'string') {\n return <Typography>{contentValue}</Typography>;\n }\n\n default:\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n }\n};\n"],"names":["CellContent","cellType","contentType","content","name","formatDate","formatMessage","useIntl","contentValue","_jsx","PreviewCell","type","Typography","parseISO","dateStyle","aria-label","id","defaultMessage","formatBytes","getFileExtension","toUpperCase"],"mappings":";;;;;;;;;;;;;;;;;AAiBO,MAAMA,WAAAA,GAAc,CAAC,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,OAAO,EAAEC,IAAI,EAAoB,GAAA;AACpF,IAAA,MAAM,EAAEC,UAAU,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IACtC,MAAMC,YAAAA,GAAeL,OAAO,CAACC,IAAAA,CAAoC;IAEjE,OAAQH,QAAAA;QACN,KAAK,OAAA;AACH,YAAA,qBAAOQ,cAAA,CAACC,uBAAAA,EAAAA;gBAAYC,IAAAA,EAAMT,WAAAA;gBAAaC,OAAAA,EAASA;;QAElD,KAAK,MAAA;YACH,IAAI,OAAOK,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,cAAA,CAACG,uBAAAA,EAAAA;AAAYP,oBAAAA,QAAAA,EAAAA,UAAAA,CAAWQ,0BAASL,YAAAA,CAAAA,EAAe;wBAAEM,SAAAA,EAAW;AAAO,qBAAA;;AAC7E,YAAA;QAEF,KAAK,MAAA;YACH,IAAIZ,WAAAA,KAAgB,QAAA,EAClB,qBACEO,cAAA,CAACG,uBAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;AAIL,YAAA,IAAI,OAAOT,YAAAA,KAAiB,QAAA,IAAY,OAAOA,iBAAiB,QAAA,EAAU;AACxE,gBAAA,qBAAOC,cAAA,CAACG,uBAAAA,EAAAA;8BAAYM,uBAAAA,CAAYV,YAAAA;;AAClC,YAAA;QAEF,KAAK,KAAA;YACH,IAAIN,WAAAA,KAAgB,QAAA,EAClB,qBACEO,cAAA,CAACG,uBAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;YAKL,IAAI,OAAOT,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,cAAA,CAACG,uBAAAA,EAAAA;AAAYO,oBAAAA,QAAAA,EAAAA,iCAAAA,CAAiBX,YAAAA,CAAAA,EAAeY,WAAAA;;AACtD,YAAA;QACF,KAAK,MAAA;YACH,IAAI,OAAOZ,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,cAAA,CAACG,uBAAAA,EAAAA;AAAYJ,oBAAAA,QAAAA,EAAAA;;AACtB,YAAA;AAEF,QAAA;AACE,YAAA,qBACEC,cAAA,CAACG,uBAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;AAIP;AACF;;;;"}
@@ -6,7 +6,6 @@ import { formatBytes } from '../../utils/formatBytes.mjs';
6
6
  import 'date-fns';
7
7
  import 'qs';
8
8
  import { getFileExtension } from '../../utils/getFileExtension.mjs';
9
- import '../../utils/typeFromMime.mjs';
10
9
  import '../../utils/urlYupSchema.mjs';
11
10
  import { PreviewCell } from './PreviewCell.mjs';
12
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"CellContent.mjs","sources":["../../../../admin/src/components/TableList/CellContent.tsx"],"sourcesContent":["import { Typography } from '@strapi/design-system';\nimport parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nimport { formatBytes, getFileExtension } from '../../utils';\n\nimport { PreviewCell } from './PreviewCell';\n\nimport type { File } from '../../../../shared/contracts/files';\n\nexport interface CellContentProps {\n cellType: string;\n contentType?: string;\n content: File;\n name: string;\n}\n\nexport const CellContent = ({ cellType, contentType, content, name }: CellContentProps) => {\n const { formatDate, formatMessage } = useIntl();\n const contentValue = content[name as Extract<keyof File, string>];\n\n switch (cellType) {\n case 'image':\n return <PreviewCell type={contentType} content={content} />;\n\n case 'date':\n if (typeof contentValue === 'string') {\n return <Typography>{formatDate(parseISO(contentValue), { dateStyle: 'full' })}</Typography>;\n }\n\n case 'size':\n if (contentType === 'folder')\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n if (typeof contentValue === 'string' || typeof contentValue === 'number') {\n return <Typography>{formatBytes(contentValue)}</Typography>;\n }\n\n case 'ext':\n if (contentType === 'folder')\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n\n if (typeof contentValue === 'string') {\n return <Typography>{getFileExtension(contentValue)?.toUpperCase()}</Typography>;\n }\n case 'text':\n if (typeof contentValue === 'string') {\n return <Typography>{contentValue}</Typography>;\n }\n\n default:\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n }\n};\n"],"names":["CellContent","cellType","contentType","content","name","formatDate","formatMessage","useIntl","contentValue","_jsx","PreviewCell","type","Typography","parseISO","dateStyle","aria-label","id","defaultMessage","formatBytes","getFileExtension","toUpperCase"],"mappings":";;;;;;;;;;;;AAiBO,MAAMA,WAAAA,GAAc,CAAC,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,OAAO,EAAEC,IAAI,EAAoB,GAAA;AACpF,IAAA,MAAM,EAAEC,UAAU,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IACtC,MAAMC,YAAAA,GAAeL,OAAO,CAACC,IAAAA,CAAoC;IAEjE,OAAQH,QAAAA;QACN,KAAK,OAAA;AACH,YAAA,qBAAOQ,GAAA,CAACC,WAAAA,EAAAA;gBAAYC,IAAAA,EAAMT,WAAAA;gBAAaC,OAAAA,EAASA;;QAElD,KAAK,MAAA;YACH,IAAI,OAAOK,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,GAAA,CAACG,UAAAA,EAAAA;AAAYP,oBAAAA,QAAAA,EAAAA,UAAAA,CAAWQ,SAASL,YAAAA,CAAAA,EAAe;wBAAEM,SAAAA,EAAW;AAAO,qBAAA;;AAC7E,YAAA;QAEF,KAAK,MAAA;YACH,IAAIZ,WAAAA,KAAgB,QAAA,EAClB,qBACEO,GAAA,CAACG,UAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;AAIL,YAAA,IAAI,OAAOT,YAAAA,KAAiB,QAAA,IAAY,OAAOA,iBAAiB,QAAA,EAAU;AACxE,gBAAA,qBAAOC,GAAA,CAACG,UAAAA,EAAAA;8BAAYM,WAAAA,CAAYV,YAAAA;;AAClC,YAAA;QAEF,KAAK,KAAA;YACH,IAAIN,WAAAA,KAAgB,QAAA,EAClB,qBACEO,GAAA,CAACG,UAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;YAKL,IAAI,OAAOT,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,GAAA,CAACG,UAAAA,EAAAA;AAAYO,oBAAAA,QAAAA,EAAAA,gBAAAA,CAAiBX,YAAAA,CAAAA,EAAeY,WAAAA;;AACtD,YAAA;QACF,KAAK,MAAA;YACH,IAAI,OAAOZ,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,GAAA,CAACG,UAAAA,EAAAA;AAAYJ,oBAAAA,QAAAA,EAAAA;;AACtB,YAAA;AAEF,QAAA;AACE,YAAA,qBACEC,GAAA,CAACG,UAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;AAIP;AACF;;;;"}
1
+ {"version":3,"file":"CellContent.mjs","sources":["../../../../admin/src/components/TableList/CellContent.tsx"],"sourcesContent":["import { Typography } from '@strapi/design-system';\nimport parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nimport { formatBytes, getFileExtension } from '../../utils';\n\nimport { PreviewCell } from './PreviewCell';\n\nimport type { File } from '../../../../shared/contracts/files';\n\nexport interface CellContentProps {\n cellType: string;\n contentType?: string;\n content: File;\n name: string;\n}\n\nexport const CellContent = ({ cellType, contentType, content, name }: CellContentProps) => {\n const { formatDate, formatMessage } = useIntl();\n const contentValue = content[name as Extract<keyof File, string>];\n\n switch (cellType) {\n case 'image':\n return <PreviewCell type={contentType} content={content} />;\n\n case 'date':\n if (typeof contentValue === 'string') {\n return <Typography>{formatDate(parseISO(contentValue), { dateStyle: 'full' })}</Typography>;\n }\n\n case 'size':\n if (contentType === 'folder')\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n if (typeof contentValue === 'string' || typeof contentValue === 'number') {\n return <Typography>{formatBytes(contentValue)}</Typography>;\n }\n\n case 'ext':\n if (contentType === 'folder')\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n\n if (typeof contentValue === 'string') {\n return <Typography>{getFileExtension(contentValue)?.toUpperCase()}</Typography>;\n }\n case 'text':\n if (typeof contentValue === 'string') {\n return <Typography>{contentValue}</Typography>;\n }\n\n default:\n return (\n <Typography\n aria-label={formatMessage({\n id: 'list.table.content.empty-label',\n defaultMessage: 'This field is empty',\n })}\n >\n -\n </Typography>\n );\n }\n};\n"],"names":["CellContent","cellType","contentType","content","name","formatDate","formatMessage","useIntl","contentValue","_jsx","PreviewCell","type","Typography","parseISO","dateStyle","aria-label","id","defaultMessage","formatBytes","getFileExtension","toUpperCase"],"mappings":";;;;;;;;;;;AAiBO,MAAMA,WAAAA,GAAc,CAAC,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,OAAO,EAAEC,IAAI,EAAoB,GAAA;AACpF,IAAA,MAAM,EAAEC,UAAU,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IACtC,MAAMC,YAAAA,GAAeL,OAAO,CAACC,IAAAA,CAAoC;IAEjE,OAAQH,QAAAA;QACN,KAAK,OAAA;AACH,YAAA,qBAAOQ,GAAA,CAACC,WAAAA,EAAAA;gBAAYC,IAAAA,EAAMT,WAAAA;gBAAaC,OAAAA,EAASA;;QAElD,KAAK,MAAA;YACH,IAAI,OAAOK,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,GAAA,CAACG,UAAAA,EAAAA;AAAYP,oBAAAA,QAAAA,EAAAA,UAAAA,CAAWQ,SAASL,YAAAA,CAAAA,EAAe;wBAAEM,SAAAA,EAAW;AAAO,qBAAA;;AAC7E,YAAA;QAEF,KAAK,MAAA;YACH,IAAIZ,WAAAA,KAAgB,QAAA,EAClB,qBACEO,GAAA,CAACG,UAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;AAIL,YAAA,IAAI,OAAOT,YAAAA,KAAiB,QAAA,IAAY,OAAOA,iBAAiB,QAAA,EAAU;AACxE,gBAAA,qBAAOC,GAAA,CAACG,UAAAA,EAAAA;8BAAYM,WAAAA,CAAYV,YAAAA;;AAClC,YAAA;QAEF,KAAK,KAAA;YACH,IAAIN,WAAAA,KAAgB,QAAA,EAClB,qBACEO,GAAA,CAACG,UAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;YAKL,IAAI,OAAOT,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,GAAA,CAACG,UAAAA,EAAAA;AAAYO,oBAAAA,QAAAA,EAAAA,gBAAAA,CAAiBX,YAAAA,CAAAA,EAAeY,WAAAA;;AACtD,YAAA;QACF,KAAK,MAAA;YACH,IAAI,OAAOZ,iBAAiB,QAAA,EAAU;AACpC,gBAAA,qBAAOC,GAAA,CAACG,UAAAA,EAAAA;AAAYJ,oBAAAA,QAAAA,EAAAA;;AACtB,YAAA;AAEF,QAAA;AACE,YAAA,qBACEC,GAAA,CAACG,UAAAA,EAAAA;AACCG,gBAAAA,YAAAA,EAAYT,aAAAA,CAAc;oBACxBU,EAAAA,EAAI,gCAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACD,gBAAA,QAAA,EAAA;;AAIP;AACF;;;;"}