@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":"CrumbSimpleMenuAsync.mjs","sources":["../../../../admin/src/components/Breadcrumbs/CrumbSimpleMenuAsync.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\nimport { CrumbSimpleMenu, Loader, MenuItem } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { getFolderParents, getFolderURL, getTrad } from '../../utils';\n\ninterface CrumbSimpleMenuAsyncProps {\n parentsToOmit?: number[];\n currentFolderId?: number;\n onChangeFolder?: (id: number, path?: string) => void;\n}\n\nexport const CrumbSimpleMenuAsync = ({\n parentsToOmit = [],\n currentFolderId,\n onChangeFolder,\n}: CrumbSimpleMenuAsyncProps) => {\n const [shouldFetch, setShouldFetch] = React.useState(false);\n const { data, isLoading } = useFolderStructure({ enabled: shouldFetch });\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const [{ query }] = useQueryParams();\n const { formatMessage } = useIntl();\n\n const allAscendants = data && getFolderParents(data, currentFolderId!);\n const filteredAscendants =\n allAscendants &&\n allAscendants.filter(\n (ascendant) =>\n typeof ascendant.id === 'number' &&\n !parentsToOmit.includes(ascendant.id) &&\n ascendant.id !== null\n );\n\n return (\n <CrumbSimpleMenu\n onOpen={() => setShouldFetch(true)}\n onClose={() => setShouldFetch(false)}\n aria-label={formatMessage({\n id: getTrad('header.breadcrumbs.menu.label'),\n defaultMessage: 'Get more ascendants folders',\n })}\n label=\"...\"\n >\n {isLoading && (\n <MenuItem>\n <Loader small>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </MenuItem>\n )}\n {filteredAscendants &&\n filteredAscendants.map((ascendant) => {\n if (onChangeFolder) {\n return (\n <MenuItem\n tag=\"button\"\n type=\"button\"\n onClick={() => onChangeFolder(Number(ascendant.id), ascendant.path)}\n key={ascendant.id}\n >\n {ascendant.label}\n </MenuItem>\n );\n }\n\n const url = getFolderURL(pathname, query, {\n folder: String(ascendant.id),\n folderPath: ascendant?.path,\n });\n\n return (\n <MenuItem key={ascendant.id} onClick={() => navigate(url)}>\n {ascendant.label}\n </MenuItem>\n );\n })}\n </CrumbSimpleMenu>\n );\n};\n"],"names":["CrumbSimpleMenuAsync","parentsToOmit","currentFolderId","onChangeFolder","shouldFetch","setShouldFetch","React","useState","data","isLoading","useFolderStructure","enabled","pathname","useLocation","navigate","useNavigate","query","useQueryParams","formatMessage","useIntl","allAscendants","getFolderParents","filteredAscendants","filter","ascendant","id","includes","_jsxs","CrumbSimpleMenu","onOpen","onClose","aria-label","getTrad","defaultMessage","label","_jsx","MenuItem","Loader","small","map","tag","type","onClick","Number","path","url","getFolderURL","folder","String","folderPath"],"mappings":";;;;;;;;;;;;;;;AAgBO,MAAMA,oBAAAA,GAAuB,CAAC,EACnCC,aAAAA,GAAgB,EAAE,EAClBC,eAAe,EACfC,cAAc,EACY,GAAA;AAC1B,IAAA,MAAM,CAACC,WAAAA,EAAaC,cAAAA,CAAe,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACrD,IAAA,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGC,kBAAAA,CAAmB;QAAEC,OAAAA,EAASP;AAAY,KAAA,CAAA;IACtE,MAAM,EAAEQ,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;AACrB,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;AACjB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,MAAMC,aAAAA,GAAgBZ,IAAAA,IAAQa,gBAAAA,CAAiBb,IAAAA,EAAMN,eAAAA,CAAAA;IACrD,MAAMoB,kBAAAA,GACJF,iBACAA,aAAAA,CAAcG,MAAM,CAClB,CAACC,SAAAA,GACC,OAAOA,SAAAA,CAAUC,EAAE,KAAK,QAAA,IACxB,CAACxB,cAAcyB,QAAQ,CAACF,UAAUC,EAAE,CAAA,IACpCD,SAAAA,CAAUC,EAAE,KAAK,IAAA,CAAA;AAGvB,IAAA,qBACEE,IAAA,CAACC,eAAAA,EAAAA;AACCC,QAAAA,MAAAA,EAAQ,IAAMxB,cAAAA,CAAe,IAAA,CAAA;AAC7ByB,QAAAA,OAAAA,EAAS,IAAMzB,cAAAA,CAAe,KAAA,CAAA;AAC9B0B,QAAAA,YAAAA,EAAYb,aAAAA,CAAc;AACxBO,YAAAA,EAAAA,EAAIO,OAAAA,CAAQ,+BAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;QACAC,KAAAA,EAAM,KAAA;;AAELzB,YAAAA,SAAAA,kBACC0B,GAAA,CAACC,QAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAAA,CAACE,MAAAA,EAAAA;oBAAOC,KAAK,EAAA,IAAA;8BACVpB,aAAAA,CAAc;AACbO,wBAAAA,EAAAA,EAAIO,OAAAA,CAAQ,mBAAA,CAAA;wBACZC,cAAAA,EAAgB;AAClB,qBAAA;;;YAILX,kBAAAA,IACCA,kBAAAA,CAAmBiB,GAAG,CAAC,CAACf,SAAAA,GAAAA;AACtB,gBAAA,IAAIrB,cAAAA,EAAgB;AAClB,oBAAA,qBACEgC,GAAA,CAACC,QAAAA,EAAAA;wBACCI,GAAAA,EAAI,QAAA;wBACJC,IAAAA,EAAK,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMvC,cAAAA,CAAewC,MAAAA,CAAOnB,UAAUC,EAAE,CAAA,EAAGD,UAAUoB,IAAI,CAAA;AAGjEpB,wBAAAA,QAAAA,EAAAA,SAAAA,CAAUU;AAFNV,qBAAAA,EAAAA,SAAAA,CAAUC,EAAE,CAAA;AAKvB,gBAAA;gBAEA,MAAMoB,GAAAA,GAAMC,YAAAA,CAAalC,QAAAA,EAAUI,KAAAA,EAAO;oBACxC+B,MAAAA,EAAQC,MAAAA,CAAOxB,UAAUC,EAAE,CAAA;AAC3BwB,oBAAAA,UAAAA,EAAYzB,SAAAA,EAAWoB;AACzB,iBAAA,CAAA;AAEA,gBAAA,qBACET,GAAA,CAACC,QAAAA,EAAAA;AAA4BM,oBAAAA,OAAAA,EAAS,IAAM5B,QAAAA,CAAS+B,GAAAA,CAAAA;AAClDrB,oBAAAA,QAAAA,EAAAA,SAAAA,CAAUU;AADEV,iBAAAA,EAAAA,SAAAA,CAAUC,EAAE,CAAA;AAI/B,YAAA,CAAA;;;AAGR;;;;"}
1
+ {"version":3,"file":"CrumbSimpleMenuAsync.mjs","sources":["../../../../admin/src/components/Breadcrumbs/CrumbSimpleMenuAsync.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\nimport { CrumbSimpleMenu, Loader, MenuItem } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { getFolderParents, getFolderURL, getTrad } from '../../utils';\n\ninterface CrumbSimpleMenuAsyncProps {\n parentsToOmit?: number[];\n currentFolderId?: number;\n onChangeFolder?: (id: number, path?: string) => void;\n}\n\nexport const CrumbSimpleMenuAsync = ({\n parentsToOmit = [],\n currentFolderId,\n onChangeFolder,\n}: CrumbSimpleMenuAsyncProps) => {\n const [shouldFetch, setShouldFetch] = React.useState(false);\n const { data, isLoading } = useFolderStructure({ enabled: shouldFetch });\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const [{ query }] = useQueryParams();\n const { formatMessage } = useIntl();\n\n const allAscendants = data && getFolderParents(data, currentFolderId!);\n const filteredAscendants =\n allAscendants &&\n allAscendants.filter(\n (ascendant) =>\n typeof ascendant.id === 'number' &&\n !parentsToOmit.includes(ascendant.id) &&\n ascendant.id !== null\n );\n\n return (\n <CrumbSimpleMenu\n onOpen={() => setShouldFetch(true)}\n onClose={() => setShouldFetch(false)}\n aria-label={formatMessage({\n id: getTrad('header.breadcrumbs.menu.label'),\n defaultMessage: 'Get more ascendants folders',\n })}\n label=\"...\"\n >\n {isLoading && (\n <MenuItem>\n <Loader small>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </MenuItem>\n )}\n {filteredAscendants &&\n filteredAscendants.map((ascendant) => {\n if (onChangeFolder) {\n return (\n <MenuItem\n tag=\"button\"\n type=\"button\"\n onClick={() => onChangeFolder(Number(ascendant.id), ascendant.path)}\n key={ascendant.id}\n >\n {ascendant.label}\n </MenuItem>\n );\n }\n\n const url = getFolderURL(pathname, query, {\n folder: String(ascendant.id),\n folderPath: ascendant?.path,\n });\n\n return (\n <MenuItem key={ascendant.id} onClick={() => navigate(url)}>\n {ascendant.label}\n </MenuItem>\n );\n })}\n </CrumbSimpleMenu>\n );\n};\n"],"names":["CrumbSimpleMenuAsync","parentsToOmit","currentFolderId","onChangeFolder","shouldFetch","setShouldFetch","React","useState","data","isLoading","useFolderStructure","enabled","pathname","useLocation","navigate","useNavigate","query","useQueryParams","formatMessage","useIntl","allAscendants","getFolderParents","filteredAscendants","filter","ascendant","id","includes","_jsxs","CrumbSimpleMenu","onOpen","onClose","aria-label","getTrad","defaultMessage","label","_jsx","MenuItem","Loader","small","map","tag","type","onClick","Number","path","url","getFolderURL","folder","String","folderPath"],"mappings":";;;;;;;;;;;;;;AAgBO,MAAMA,oBAAAA,GAAuB,CAAC,EACnCC,aAAAA,GAAgB,EAAE,EAClBC,eAAe,EACfC,cAAc,EACY,GAAA;AAC1B,IAAA,MAAM,CAACC,WAAAA,EAAaC,cAAAA,CAAe,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACrD,IAAA,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAE,GAAGC,kBAAAA,CAAmB;QAAEC,OAAAA,EAASP;AAAY,KAAA,CAAA;IACtE,MAAM,EAAEQ,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;AACrB,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;AACjB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,MAAMC,aAAAA,GAAgBZ,IAAAA,IAAQa,gBAAAA,CAAiBb,IAAAA,EAAMN,eAAAA,CAAAA;IACrD,MAAMoB,kBAAAA,GACJF,iBACAA,aAAAA,CAAcG,MAAM,CAClB,CAACC,SAAAA,GACC,OAAOA,SAAAA,CAAUC,EAAE,KAAK,QAAA,IACxB,CAACxB,cAAcyB,QAAQ,CAACF,UAAUC,EAAE,CAAA,IACpCD,SAAAA,CAAUC,EAAE,KAAK,IAAA,CAAA;AAGvB,IAAA,qBACEE,IAAA,CAACC,eAAAA,EAAAA;AACCC,QAAAA,MAAAA,EAAQ,IAAMxB,cAAAA,CAAe,IAAA,CAAA;AAC7ByB,QAAAA,OAAAA,EAAS,IAAMzB,cAAAA,CAAe,KAAA,CAAA;AAC9B0B,QAAAA,YAAAA,EAAYb,aAAAA,CAAc;AACxBO,YAAAA,EAAAA,EAAIO,OAAAA,CAAQ,+BAAA,CAAA;YACZC,cAAAA,EAAgB;AAClB,SAAA,CAAA;QACAC,KAAAA,EAAM,KAAA;;AAELzB,YAAAA,SAAAA,kBACC0B,GAAA,CAACC,QAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAAA,CAACE,MAAAA,EAAAA;oBAAOC,KAAK,EAAA,IAAA;8BACVpB,aAAAA,CAAc;AACbO,wBAAAA,EAAAA,EAAIO,OAAAA,CAAQ,mBAAA,CAAA;wBACZC,cAAAA,EAAgB;AAClB,qBAAA;;;YAILX,kBAAAA,IACCA,kBAAAA,CAAmBiB,GAAG,CAAC,CAACf,SAAAA,GAAAA;AACtB,gBAAA,IAAIrB,cAAAA,EAAgB;AAClB,oBAAA,qBACEgC,GAAA,CAACC,QAAAA,EAAAA;wBACCI,GAAAA,EAAI,QAAA;wBACJC,IAAAA,EAAK,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMvC,cAAAA,CAAewC,MAAAA,CAAOnB,UAAUC,EAAE,CAAA,EAAGD,UAAUoB,IAAI,CAAA;AAGjEpB,wBAAAA,QAAAA,EAAAA,SAAAA,CAAUU;AAFNV,qBAAAA,EAAAA,SAAAA,CAAUC,EAAE,CAAA;AAKvB,gBAAA;gBAEA,MAAMoB,GAAAA,GAAMC,YAAAA,CAAalC,QAAAA,EAAUI,KAAAA,EAAO;oBACxC+B,MAAAA,EAAQC,MAAAA,CAAOxB,UAAUC,EAAE,CAAA;AAC3BwB,oBAAAA,UAAAA,EAAYzB,SAAAA,EAAWoB;AACzB,iBAAA,CAAA;AAEA,gBAAA,qBACET,GAAA,CAACC,QAAAA,EAAAA;AAA4BM,oBAAAA,OAAAA,EAAS,IAAM5B,QAAAA,CAAS+B,GAAAA,CAAAA;AAClDrB,oBAAAA,QAAAA,EAAAA,SAAAA,CAAUU;AADEV,iBAAAA,EAAAA,SAAAA,CAAUC,EAAE,CAAA;AAI/B,YAAA,CAAA;;;AAGR;;;;"}
@@ -12,7 +12,6 @@ require('date-fns');
12
12
  var normalizeAPIError = require('../../utils/normalizeAPIError.js');
13
13
  var getTrad = require('../../utils/getTrad.js');
14
14
  require('qs');
15
- require('../../utils/typeFromMime.js');
16
15
  require('../../utils/urlYupSchema.js');
17
16
  var SelectTree = require('../SelectTree/SelectTree.js');
18
17
 
@@ -1 +1 @@
1
- {"version":3,"file":"BulkMoveDialog.js","sources":["../../../../admin/src/components/BulkMoveDialog/BulkMoveDialog.tsx"],"sourcesContent":["import { Button, Flex, Grid, Field, Loader, Modal, Typography } from '@strapi/design-system';\nimport { Form, Formik, FormikErrors } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\n\nimport { File } from '../../../../shared/contracts/files';\nimport { useBulkMove } from '../../hooks/useBulkMove';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { getTrad, normalizeAPIError } from '../../utils';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport type { Folder } from '../../../../shared/contracts/folders';\nimport type { OptionSelectTree } from '../SelectTree/SelectTree';\nimport type { FetchError } from '@strapi/admin/strapi-admin';\n\ntype InitialFormData = {\n destination:\n | {\n value: string | number;\n label: string;\n }\n | string;\n};\n\ninterface FolderWithType extends Folder {\n type: string;\n}\n\ninterface FileWithType extends File {\n type: string;\n}\n\nexport interface BulkMoveDialogProps {\n onClose: () => void;\n selected?: Array<FolderWithType | FileWithType>;\n currentFolder?: FolderWithType;\n}\n\nexport const BulkMoveDialog = ({ onClose, selected = [], currentFolder }: BulkMoveDialogProps) => {\n const { formatMessage } = useIntl();\n const { data: folderStructure, isLoading } = useFolderStructure();\n const { move } = useBulkMove();\n\n if (!folderStructure) {\n return null;\n }\n\n const handleSubmit = async (\n values: InitialFormData,\n { setErrors }: { setErrors: (errors: FormikErrors<InitialFormData>) => void }\n ) => {\n try {\n if (typeof values.destination !== 'string') {\n const destinationValue = values.destination.value;\n await move(destinationValue, selected);\n onClose();\n }\n } catch (error) {\n const normalizedError = normalizeAPIError(error as FetchError)!;\n\n if (normalizedError && 'errors' in normalizedError) {\n const formikErrors = normalizedError.errors?.reduce<Record<string, string>>(\n (acc, error) => {\n acc[error.values?.path?.length || 'destination'] = error.defaultMessage;\n\n return acc;\n },\n {}\n );\n\n if (!isEmpty(formikErrors)) {\n setErrors(formikErrors);\n }\n }\n }\n };\n\n if (isLoading) {\n return (\n <Modal.Content>\n <Modal.Body>\n <Flex justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </Flex>\n </Modal.Body>\n </Modal.Content>\n );\n }\n\n const initialFormData: InitialFormData = {\n destination: {\n value: currentFolder?.id || '',\n label: currentFolder?.name || folderStructure[0].label,\n },\n };\n\n return (\n <Modal.Content>\n <Formik validateOnChange={false} onSubmit={handleSubmit} initialValues={initialFormData}>\n {({ values, errors, setFieldValue }) => (\n <Form noValidate>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('modal.folder.move.title'),\n defaultMessage: 'Move elements to',\n })}\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body>\n <Grid.Root gap={4}>\n <Grid.Item xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root id=\"folder-destination\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n options={folderStructure as OptionSelectTree[]}\n onChange={(value: Record<string, string | number>) => {\n setFieldValue('destination', value);\n }}\n defaultValue={\n typeof values.destination !== 'string' ? values.destination : undefined\n }\n name=\"destination\"\n menuPortalTarget={document.querySelector('body')}\n inputId=\"folder-destination\"\n error={errors?.destination}\n ariaErrorMessage=\"destination-error\"\n />\n\n {errors.destination && (\n <Typography variant=\"pi\" tag=\"p\" textColor=\"danger600\">\n {errors.destination}\n </Typography>\n )}\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'global.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button type=\"submit\" loading={isLoading}>\n {formatMessage({ id: 'global.move', defaultMessage: 'Move' })}\n </Button>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n </Modal.Content>\n );\n};\n"],"names":["BulkMoveDialog","onClose","selected","currentFolder","formatMessage","useIntl","data","folderStructure","isLoading","useFolderStructure","move","useBulkMove","handleSubmit","values","setErrors","destination","destinationValue","value","error","normalizedError","normalizeAPIError","formikErrors","errors","reduce","acc","path","length","defaultMessage","isEmpty","_jsx","Modal","Content","Body","Flex","justifyContent","paddingTop","paddingBottom","Loader","id","getTrad","initialFormData","label","name","Formik","validateOnChange","onSubmit","initialValues","setFieldValue","_jsxs","Form","noValidate","Header","Title","Grid","Root","gap","Item","xs","direction","alignItems","Field","Label","SelectTree","options","onChange","defaultValue","undefined","menuPortalTarget","document","querySelector","inputId","ariaErrorMessage","Typography","variant","tag","textColor","Footer","Close","Button","type","loading"],"mappings":"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"}
1
+ {"version":3,"file":"BulkMoveDialog.js","sources":["../../../../admin/src/components/BulkMoveDialog/BulkMoveDialog.tsx"],"sourcesContent":["import { Button, Flex, Grid, Field, Loader, Modal, Typography } from '@strapi/design-system';\nimport { Form, Formik, FormikErrors } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\n\nimport { File } from '../../../../shared/contracts/files';\nimport { useBulkMove } from '../../hooks/useBulkMove';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { getTrad, normalizeAPIError } from '../../utils';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport type { Folder } from '../../../../shared/contracts/folders';\nimport type { OptionSelectTree } from '../SelectTree/SelectTree';\nimport type { FetchError } from '@strapi/admin/strapi-admin';\n\ntype InitialFormData = {\n destination:\n | {\n value: string | number;\n label: string;\n }\n | string;\n};\n\ninterface FolderWithType extends Folder {\n type: string;\n}\n\ninterface FileWithType extends File {\n type: string;\n}\n\nexport interface BulkMoveDialogProps {\n onClose: () => void;\n selected?: Array<FolderWithType | FileWithType>;\n currentFolder?: FolderWithType;\n}\n\nexport const BulkMoveDialog = ({ onClose, selected = [], currentFolder }: BulkMoveDialogProps) => {\n const { formatMessage } = useIntl();\n const { data: folderStructure, isLoading } = useFolderStructure();\n const { move } = useBulkMove();\n\n if (!folderStructure) {\n return null;\n }\n\n const handleSubmit = async (\n values: InitialFormData,\n { setErrors }: { setErrors: (errors: FormikErrors<InitialFormData>) => void }\n ) => {\n try {\n if (typeof values.destination !== 'string') {\n const destinationValue = values.destination.value;\n await move(destinationValue, selected);\n onClose();\n }\n } catch (error) {\n const normalizedError = normalizeAPIError(error as FetchError)!;\n\n if (normalizedError && 'errors' in normalizedError) {\n const formikErrors = normalizedError.errors?.reduce<Record<string, string>>(\n (acc, error) => {\n acc[error.values?.path?.length || 'destination'] = error.defaultMessage;\n\n return acc;\n },\n {}\n );\n\n if (!isEmpty(formikErrors)) {\n setErrors(formikErrors);\n }\n }\n }\n };\n\n if (isLoading) {\n return (\n <Modal.Content>\n <Modal.Body>\n <Flex justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </Flex>\n </Modal.Body>\n </Modal.Content>\n );\n }\n\n const initialFormData: InitialFormData = {\n destination: {\n value: currentFolder?.id || '',\n label: currentFolder?.name || folderStructure[0].label,\n },\n };\n\n return (\n <Modal.Content>\n <Formik validateOnChange={false} onSubmit={handleSubmit} initialValues={initialFormData}>\n {({ values, errors, setFieldValue }) => (\n <Form noValidate>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('modal.folder.move.title'),\n defaultMessage: 'Move elements to',\n })}\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body>\n <Grid.Root gap={4}>\n <Grid.Item xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root id=\"folder-destination\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n options={folderStructure as OptionSelectTree[]}\n onChange={(value: Record<string, string | number>) => {\n setFieldValue('destination', value);\n }}\n defaultValue={\n typeof values.destination !== 'string' ? values.destination : undefined\n }\n name=\"destination\"\n menuPortalTarget={document.querySelector('body')}\n inputId=\"folder-destination\"\n error={errors?.destination}\n ariaErrorMessage=\"destination-error\"\n />\n\n {errors.destination && (\n <Typography variant=\"pi\" tag=\"p\" textColor=\"danger600\">\n {errors.destination}\n </Typography>\n )}\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'global.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button type=\"submit\" loading={isLoading}>\n {formatMessage({ id: 'global.move', defaultMessage: 'Move' })}\n </Button>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n </Modal.Content>\n );\n};\n"],"names":["BulkMoveDialog","onClose","selected","currentFolder","formatMessage","useIntl","data","folderStructure","isLoading","useFolderStructure","move","useBulkMove","handleSubmit","values","setErrors","destination","destinationValue","value","error","normalizedError","normalizeAPIError","formikErrors","errors","reduce","acc","path","length","defaultMessage","isEmpty","_jsx","Modal","Content","Body","Flex","justifyContent","paddingTop","paddingBottom","Loader","id","getTrad","initialFormData","label","name","Formik","validateOnChange","onSubmit","initialValues","setFieldValue","_jsxs","Form","noValidate","Header","Title","Grid","Root","gap","Item","xs","direction","alignItems","Field","Label","SelectTree","options","onChange","defaultValue","undefined","menuPortalTarget","document","querySelector","inputId","ariaErrorMessage","Typography","variant","tag","textColor","Footer","Close","Button","type","loading"],"mappings":"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"}
@@ -10,7 +10,6 @@ import 'date-fns';
10
10
  import { normalizeAPIError } from '../../utils/normalizeAPIError.mjs';
11
11
  import { getTrad } from '../../utils/getTrad.mjs';
12
12
  import 'qs';
13
- import '../../utils/typeFromMime.mjs';
14
13
  import '../../utils/urlYupSchema.mjs';
15
14
  import { SelectTree } from '../SelectTree/SelectTree.mjs';
16
15
 
@@ -1 +1 @@
1
- {"version":3,"file":"BulkMoveDialog.mjs","sources":["../../../../admin/src/components/BulkMoveDialog/BulkMoveDialog.tsx"],"sourcesContent":["import { Button, Flex, Grid, Field, Loader, Modal, Typography } from '@strapi/design-system';\nimport { Form, Formik, FormikErrors } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\n\nimport { File } from '../../../../shared/contracts/files';\nimport { useBulkMove } from '../../hooks/useBulkMove';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { getTrad, normalizeAPIError } from '../../utils';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport type { Folder } from '../../../../shared/contracts/folders';\nimport type { OptionSelectTree } from '../SelectTree/SelectTree';\nimport type { FetchError } from '@strapi/admin/strapi-admin';\n\ntype InitialFormData = {\n destination:\n | {\n value: string | number;\n label: string;\n }\n | string;\n};\n\ninterface FolderWithType extends Folder {\n type: string;\n}\n\ninterface FileWithType extends File {\n type: string;\n}\n\nexport interface BulkMoveDialogProps {\n onClose: () => void;\n selected?: Array<FolderWithType | FileWithType>;\n currentFolder?: FolderWithType;\n}\n\nexport const BulkMoveDialog = ({ onClose, selected = [], currentFolder }: BulkMoveDialogProps) => {\n const { formatMessage } = useIntl();\n const { data: folderStructure, isLoading } = useFolderStructure();\n const { move } = useBulkMove();\n\n if (!folderStructure) {\n return null;\n }\n\n const handleSubmit = async (\n values: InitialFormData,\n { setErrors }: { setErrors: (errors: FormikErrors<InitialFormData>) => void }\n ) => {\n try {\n if (typeof values.destination !== 'string') {\n const destinationValue = values.destination.value;\n await move(destinationValue, selected);\n onClose();\n }\n } catch (error) {\n const normalizedError = normalizeAPIError(error as FetchError)!;\n\n if (normalizedError && 'errors' in normalizedError) {\n const formikErrors = normalizedError.errors?.reduce<Record<string, string>>(\n (acc, error) => {\n acc[error.values?.path?.length || 'destination'] = error.defaultMessage;\n\n return acc;\n },\n {}\n );\n\n if (!isEmpty(formikErrors)) {\n setErrors(formikErrors);\n }\n }\n }\n };\n\n if (isLoading) {\n return (\n <Modal.Content>\n <Modal.Body>\n <Flex justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </Flex>\n </Modal.Body>\n </Modal.Content>\n );\n }\n\n const initialFormData: InitialFormData = {\n destination: {\n value: currentFolder?.id || '',\n label: currentFolder?.name || folderStructure[0].label,\n },\n };\n\n return (\n <Modal.Content>\n <Formik validateOnChange={false} onSubmit={handleSubmit} initialValues={initialFormData}>\n {({ values, errors, setFieldValue }) => (\n <Form noValidate>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('modal.folder.move.title'),\n defaultMessage: 'Move elements to',\n })}\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body>\n <Grid.Root gap={4}>\n <Grid.Item xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root id=\"folder-destination\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n options={folderStructure as OptionSelectTree[]}\n onChange={(value: Record<string, string | number>) => {\n setFieldValue('destination', value);\n }}\n defaultValue={\n typeof values.destination !== 'string' ? values.destination : undefined\n }\n name=\"destination\"\n menuPortalTarget={document.querySelector('body')}\n inputId=\"folder-destination\"\n error={errors?.destination}\n ariaErrorMessage=\"destination-error\"\n />\n\n {errors.destination && (\n <Typography variant=\"pi\" tag=\"p\" textColor=\"danger600\">\n {errors.destination}\n </Typography>\n )}\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'global.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button type=\"submit\" loading={isLoading}>\n {formatMessage({ id: 'global.move', defaultMessage: 'Move' })}\n </Button>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n </Modal.Content>\n );\n};\n"],"names":["BulkMoveDialog","onClose","selected","currentFolder","formatMessage","useIntl","data","folderStructure","isLoading","useFolderStructure","move","useBulkMove","handleSubmit","values","setErrors","destination","destinationValue","value","error","normalizedError","normalizeAPIError","formikErrors","errors","reduce","acc","path","length","defaultMessage","isEmpty","_jsx","Modal","Content","Body","Flex","justifyContent","paddingTop","paddingBottom","Loader","id","getTrad","initialFormData","label","name","Formik","validateOnChange","onSubmit","initialValues","setFieldValue","_jsxs","Form","noValidate","Header","Title","Grid","Root","gap","Item","xs","direction","alignItems","Field","Label","SelectTree","options","onChange","defaultValue","undefined","menuPortalTarget","document","querySelector","inputId","ariaErrorMessage","Typography","variant","tag","textColor","Footer","Close","Button","type","loading"],"mappings":"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"}
1
+ {"version":3,"file":"BulkMoveDialog.mjs","sources":["../../../../admin/src/components/BulkMoveDialog/BulkMoveDialog.tsx"],"sourcesContent":["import { Button, Flex, Grid, Field, Loader, Modal, Typography } from '@strapi/design-system';\nimport { Form, Formik, FormikErrors } from 'formik';\nimport isEmpty from 'lodash/isEmpty';\nimport { useIntl } from 'react-intl';\n\nimport { File } from '../../../../shared/contracts/files';\nimport { useBulkMove } from '../../hooks/useBulkMove';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { getTrad, normalizeAPIError } from '../../utils';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport type { Folder } from '../../../../shared/contracts/folders';\nimport type { OptionSelectTree } from '../SelectTree/SelectTree';\nimport type { FetchError } from '@strapi/admin/strapi-admin';\n\ntype InitialFormData = {\n destination:\n | {\n value: string | number;\n label: string;\n }\n | string;\n};\n\ninterface FolderWithType extends Folder {\n type: string;\n}\n\ninterface FileWithType extends File {\n type: string;\n}\n\nexport interface BulkMoveDialogProps {\n onClose: () => void;\n selected?: Array<FolderWithType | FileWithType>;\n currentFolder?: FolderWithType;\n}\n\nexport const BulkMoveDialog = ({ onClose, selected = [], currentFolder }: BulkMoveDialogProps) => {\n const { formatMessage } = useIntl();\n const { data: folderStructure, isLoading } = useFolderStructure();\n const { move } = useBulkMove();\n\n if (!folderStructure) {\n return null;\n }\n\n const handleSubmit = async (\n values: InitialFormData,\n { setErrors }: { setErrors: (errors: FormikErrors<InitialFormData>) => void }\n ) => {\n try {\n if (typeof values.destination !== 'string') {\n const destinationValue = values.destination.value;\n await move(destinationValue, selected);\n onClose();\n }\n } catch (error) {\n const normalizedError = normalizeAPIError(error as FetchError)!;\n\n if (normalizedError && 'errors' in normalizedError) {\n const formikErrors = normalizedError.errors?.reduce<Record<string, string>>(\n (acc, error) => {\n acc[error.values?.path?.length || 'destination'] = error.defaultMessage;\n\n return acc;\n },\n {}\n );\n\n if (!isEmpty(formikErrors)) {\n setErrors(formikErrors);\n }\n }\n }\n };\n\n if (isLoading) {\n return (\n <Modal.Content>\n <Modal.Body>\n <Flex justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </Flex>\n </Modal.Body>\n </Modal.Content>\n );\n }\n\n const initialFormData: InitialFormData = {\n destination: {\n value: currentFolder?.id || '',\n label: currentFolder?.name || folderStructure[0].label,\n },\n };\n\n return (\n <Modal.Content>\n <Formik validateOnChange={false} onSubmit={handleSubmit} initialValues={initialFormData}>\n {({ values, errors, setFieldValue }) => (\n <Form noValidate>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('modal.folder.move.title'),\n defaultMessage: 'Move elements to',\n })}\n </Modal.Title>\n </Modal.Header>\n\n <Modal.Body>\n <Grid.Root gap={4}>\n <Grid.Item xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root id=\"folder-destination\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.folder-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n options={folderStructure as OptionSelectTree[]}\n onChange={(value: Record<string, string | number>) => {\n setFieldValue('destination', value);\n }}\n defaultValue={\n typeof values.destination !== 'string' ? values.destination : undefined\n }\n name=\"destination\"\n menuPortalTarget={document.querySelector('body')}\n inputId=\"folder-destination\"\n error={errors?.destination}\n ariaErrorMessage=\"destination-error\"\n />\n\n {errors.destination && (\n <Typography variant=\"pi\" tag=\"p\" textColor=\"danger600\">\n {errors.destination}\n </Typography>\n )}\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\" name=\"cancel\">\n {formatMessage({ id: 'global.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <Button type=\"submit\" loading={isLoading}>\n {formatMessage({ id: 'global.move', defaultMessage: 'Move' })}\n </Button>\n </Modal.Footer>\n </Form>\n )}\n </Formik>\n </Modal.Content>\n );\n};\n"],"names":["BulkMoveDialog","onClose","selected","currentFolder","formatMessage","useIntl","data","folderStructure","isLoading","useFolderStructure","move","useBulkMove","handleSubmit","values","setErrors","destination","destinationValue","value","error","normalizedError","normalizeAPIError","formikErrors","errors","reduce","acc","path","length","defaultMessage","isEmpty","_jsx","Modal","Content","Body","Flex","justifyContent","paddingTop","paddingBottom","Loader","id","getTrad","initialFormData","label","name","Formik","validateOnChange","onSubmit","initialValues","setFieldValue","_jsxs","Form","noValidate","Header","Title","Grid","Root","gap","Item","xs","direction","alignItems","Field","Label","SelectTree","options","onChange","defaultValue","undefined","menuPortalTarget","document","querySelector","inputId","ariaErrorMessage","Typography","variant","tag","textColor","Footer","Close","Button","type","loading"],"mappings":"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"}
@@ -9,7 +9,6 @@ require('byte-size');
9
9
  require('date-fns');
10
10
  var getTrad = require('../../utils/getTrad.js');
11
11
  require('qs');
12
- require('../../utils/typeFromMime.js');
13
12
  require('../../utils/urlYupSchema.js');
14
13
 
15
14
  // TODO: find a better naming convention for the file that was an index file before
@@ -1 +1 @@
1
- {"version":3,"file":"CopyLinkButton.js","sources":["../../../../admin/src/components/CopyLinkButton/CopyLinkButton.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport { useNotification, useClipboard } from '@strapi/admin/strapi-admin';\nimport { IconButton } from '@strapi/design-system';\nimport { Link as LinkIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../utils';\n\nexport const CopyLinkButton = ({ url }: { url: string }) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const handleClick = async () => {\n const didCopy = await copy(url);\n\n if (didCopy) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.link-copied',\n defaultMessage: 'Link copied into the clipboard',\n }),\n });\n }\n };\n\n return (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.copy-link'),\n defaultMessage: 'Copy link',\n })}\n onClick={handleClick}\n >\n <LinkIcon />\n </IconButton>\n );\n};\n"],"names":["CopyLinkButton","url","toggleNotification","useNotification","formatMessage","useIntl","copy","useClipboard","handleClick","didCopy","type","message","id","defaultMessage","_jsx","IconButton","label","getTrad","onClick","LinkIcon"],"mappings":";;;;;;;;;;;;;;AAAA;AAQO,MAAMA,cAAAA,GAAiB,CAAC,EAAEC,GAAG,EAAmB,GAAA;IACrD,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,IAAI,EAAE,GAAGC,wBAAAA,EAAAA;AAEjB,IAAA,MAAMC,WAAAA,GAAc,UAAA;QAClB,MAAMC,OAAAA,GAAU,MAAMH,IAAAA,CAAKL,GAAAA,CAAAA;AAE3B,QAAA,IAAIQ,OAAAA,EAAS;YACXP,kBAAAA,CAAmB;gBACjBQ,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASP,aAAAA,CAAc;oBACrBQ,EAAAA,EAAI,0BAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,qBACEC,cAAA,CAACC,uBAAAA,EAAAA;AACCC,QAAAA,KAAAA,EAAOZ,aAAAA,CAAc;AACnBQ,YAAAA,EAAAA,EAAIK,eAAAA,CAAQ,wBAAA,CAAA;YACZJ,cAAAA,EAAgB;AAClB,SAAA,CAAA;QACAK,OAAAA,EAASV,WAAAA;AAET,QAAA,QAAA,gBAAAM,cAAA,CAACK,UAAAA,EAAAA,EAAAA;;AAGP;;;;"}
1
+ {"version":3,"file":"CopyLinkButton.js","sources":["../../../../admin/src/components/CopyLinkButton/CopyLinkButton.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport { useNotification, useClipboard } from '@strapi/admin/strapi-admin';\nimport { IconButton } from '@strapi/design-system';\nimport { Link as LinkIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../utils';\n\nexport const CopyLinkButton = ({ url }: { url: string }) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const handleClick = async () => {\n const didCopy = await copy(url);\n\n if (didCopy) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.link-copied',\n defaultMessage: 'Link copied into the clipboard',\n }),\n });\n }\n };\n\n return (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.copy-link'),\n defaultMessage: 'Copy link',\n })}\n onClick={handleClick}\n >\n <LinkIcon />\n </IconButton>\n );\n};\n"],"names":["CopyLinkButton","url","toggleNotification","useNotification","formatMessage","useIntl","copy","useClipboard","handleClick","didCopy","type","message","id","defaultMessage","_jsx","IconButton","label","getTrad","onClick","LinkIcon"],"mappings":";;;;;;;;;;;;;AAAA;AAQO,MAAMA,cAAAA,GAAiB,CAAC,EAAEC,GAAG,EAAmB,GAAA;IACrD,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,IAAI,EAAE,GAAGC,wBAAAA,EAAAA;AAEjB,IAAA,MAAMC,WAAAA,GAAc,UAAA;QAClB,MAAMC,OAAAA,GAAU,MAAMH,IAAAA,CAAKL,GAAAA,CAAAA;AAE3B,QAAA,IAAIQ,OAAAA,EAAS;YACXP,kBAAAA,CAAmB;gBACjBQ,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASP,aAAAA,CAAc;oBACrBQ,EAAAA,EAAI,0BAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,qBACEC,cAAA,CAACC,uBAAAA,EAAAA;AACCC,QAAAA,KAAAA,EAAOZ,aAAAA,CAAc;AACnBQ,YAAAA,EAAAA,EAAIK,eAAAA,CAAQ,wBAAA,CAAA;YACZJ,cAAAA,EAAgB;AAClB,SAAA,CAAA;QACAK,OAAAA,EAASV,WAAAA;AAET,QAAA,QAAA,gBAAAM,cAAA,CAACK,UAAAA,EAAAA,EAAAA;;AAGP;;;;"}
@@ -7,7 +7,6 @@ import 'byte-size';
7
7
  import 'date-fns';
8
8
  import { getTrad } from '../../utils/getTrad.mjs';
9
9
  import 'qs';
10
- import '../../utils/typeFromMime.mjs';
11
10
  import '../../utils/urlYupSchema.mjs';
12
11
 
13
12
  // TODO: find a better naming convention for the file that was an index file before
@@ -1 +1 @@
1
- {"version":3,"file":"CopyLinkButton.mjs","sources":["../../../../admin/src/components/CopyLinkButton/CopyLinkButton.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport { useNotification, useClipboard } from '@strapi/admin/strapi-admin';\nimport { IconButton } from '@strapi/design-system';\nimport { Link as LinkIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../utils';\n\nexport const CopyLinkButton = ({ url }: { url: string }) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const handleClick = async () => {\n const didCopy = await copy(url);\n\n if (didCopy) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.link-copied',\n defaultMessage: 'Link copied into the clipboard',\n }),\n });\n }\n };\n\n return (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.copy-link'),\n defaultMessage: 'Copy link',\n })}\n onClick={handleClick}\n >\n <LinkIcon />\n </IconButton>\n );\n};\n"],"names":["CopyLinkButton","url","toggleNotification","useNotification","formatMessage","useIntl","copy","useClipboard","handleClick","didCopy","type","message","id","defaultMessage","_jsx","IconButton","label","getTrad","onClick","LinkIcon"],"mappings":";;;;;;;;;;;;AAAA;AAQO,MAAMA,cAAAA,GAAiB,CAAC,EAAEC,GAAG,EAAmB,GAAA;IACrD,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,IAAI,EAAE,GAAGC,YAAAA,EAAAA;AAEjB,IAAA,MAAMC,WAAAA,GAAc,UAAA;QAClB,MAAMC,OAAAA,GAAU,MAAMH,IAAAA,CAAKL,GAAAA,CAAAA;AAE3B,QAAA,IAAIQ,OAAAA,EAAS;YACXP,kBAAAA,CAAmB;gBACjBQ,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASP,aAAAA,CAAc;oBACrBQ,EAAAA,EAAI,0BAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,qBACEC,GAAA,CAACC,UAAAA,EAAAA;AACCC,QAAAA,KAAAA,EAAOZ,aAAAA,CAAc;AACnBQ,YAAAA,EAAAA,EAAIK,OAAAA,CAAQ,wBAAA,CAAA;YACZJ,cAAAA,EAAgB;AAClB,SAAA,CAAA;QACAK,OAAAA,EAASV,WAAAA;AAET,QAAA,QAAA,gBAAAM,GAAA,CAACK,IAAAA,EAAAA,EAAAA;;AAGP;;;;"}
1
+ {"version":3,"file":"CopyLinkButton.mjs","sources":["../../../../admin/src/components/CopyLinkButton/CopyLinkButton.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport { useNotification, useClipboard } from '@strapi/admin/strapi-admin';\nimport { IconButton } from '@strapi/design-system';\nimport { Link as LinkIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../utils';\n\nexport const CopyLinkButton = ({ url }: { url: string }) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { copy } = useClipboard();\n\n const handleClick = async () => {\n const didCopy = await copy(url);\n\n if (didCopy) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.link-copied',\n defaultMessage: 'Link copied into the clipboard',\n }),\n });\n }\n };\n\n return (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.copy-link'),\n defaultMessage: 'Copy link',\n })}\n onClick={handleClick}\n >\n <LinkIcon />\n </IconButton>\n );\n};\n"],"names":["CopyLinkButton","url","toggleNotification","useNotification","formatMessage","useIntl","copy","useClipboard","handleClick","didCopy","type","message","id","defaultMessage","_jsx","IconButton","label","getTrad","onClick","LinkIcon"],"mappings":";;;;;;;;;;;AAAA;AAQO,MAAMA,cAAAA,GAAiB,CAAC,EAAEC,GAAG,EAAmB,GAAA;IACrD,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,IAAI,EAAE,GAAGC,YAAAA,EAAAA;AAEjB,IAAA,MAAMC,WAAAA,GAAc,UAAA;QAClB,MAAMC,OAAAA,GAAU,MAAMH,IAAAA,CAAKL,GAAAA,CAAAA;AAE3B,QAAA,IAAIQ,OAAAA,EAAS;YACXP,kBAAAA,CAAmB;gBACjBQ,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASP,aAAAA,CAAc;oBACrBQ,EAAAA,EAAI,0BAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,qBACEC,GAAA,CAACC,UAAAA,EAAAA;AACCC,QAAAA,KAAAA,EAAOZ,aAAAA,CAAc;AACnBQ,YAAAA,EAAAA,EAAIK,OAAAA,CAAQ,wBAAA,CAAA;YACZJ,cAAAA,EAAgB;AAClB,SAAA,CAAA;QACAK,OAAAA,EAASV,WAAAA;AAET,QAAA,QAAA,gBAAAM,GAAA,CAACK,IAAAA,EAAAA,EAAAA;;AAGP;;;;"}
@@ -17,7 +17,6 @@ require('date-fns');
17
17
  var getTrad = require('../../utils/getTrad.js');
18
18
  require('qs');
19
19
  var getFileExtension = require('../../utils/getFileExtension.js');
20
- require('../../utils/typeFromMime.js');
21
20
  require('../../utils/urlYupSchema.js');
22
21
  var ContextInfo = require('../ContextInfo/ContextInfo.js');
23
22
  var SelectTree = require('../SelectTree/SelectTree.js');
@@ -1 +1 @@
1
- {"version":3,"file":"EditAssetContent.js","sources":["../../../../admin/src/components/EditAssetDialog/EditAssetContent.tsx"],"sourcesContent":["/**\n *\n * EditAssetDialog\n *\n */\nimport * as React from 'react';\n\nimport {\n Button,\n Field,\n Flex,\n Grid,\n Loader,\n Modal,\n TextInput,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Form, Formik } from 'formik';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { useEditAsset } from '../../hooks/useEditAsset';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { useTracking } from '../../hooks/useTracking';\nimport { findRecursiveFolderByValue, getTrad, getFileExtension, formatBytes } from '../../utils';\nimport { ContextInfo } from '../ContextInfo/ContextInfo';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport { DialogHeader } from './DialogHeader';\nimport { PreviewBox } from './PreviewBox/PreviewBox';\nimport { ReplaceMediaButton } from './ReplaceMediaButton';\n\nimport type {\n File as FileDefinition,\n RawFile,\n FocalPoint,\n} from '../../../../shared/contracts/files';\n\nconst LoadingBody = styled(Flex)`\n /* 80px are coming from the Tabs component that is not included in the ModalBody */\n min-height: ${() => `calc(60dvh + 8rem)`};\n`;\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup.object({\n name: yup.string().required(),\n alternativeText: yup.string(),\n caption: yup.string(),\n focalPoint: focalPointSchema,\n folder: yup.number(),\n});\n\nexport interface Asset extends Omit<FileDefinition, 'folder'> {\n isLocal?: boolean;\n rawFile?: RawFile;\n folder?: FileDefinition['folder'] & { id: number };\n}\n\ninterface EditAssetContentProps {\n asset?: Asset;\n initialFolderId?: string | number | null;\n canUpdate?: boolean;\n canCopyLink?: boolean;\n canDownload?: boolean;\n trackedLocation?: string;\n onClose: (arg?: Asset | null | boolean) => void;\n omitFields?: ('caption' | 'alternativeText')[];\n omitActions?: 'replace'[];\n}\n\ninterface FormInitialData {\n name?: string;\n alternativeText?: string;\n caption?: string;\n focalPoint?: FocalPoint | null;\n parent?: {\n value?: number;\n label: string;\n };\n}\n\nconst toFolderId = (value: string | number | null | undefined): number | undefined => {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (typeof value === 'number') {\n return Number.isFinite(value) ? value : undefined;\n }\n\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n};\n\nexport const EditAssetContent = ({\n onClose,\n asset,\n initialFolderId = null,\n canUpdate = false,\n canCopyLink = false,\n canDownload = false,\n trackedLocation,\n omitFields = [],\n omitActions = [],\n}: EditAssetContentProps) => {\n const { formatMessage, formatDate } = useIntl();\n const { trackUsage } = useTracking();\n const submitButtonRef = React.useRef<HTMLButtonElement>(null);\n const [isCropping, setIsCropping] = React.useState(false);\n const [isFocalPointMode, setIsFocalPointMode] = React.useState(false);\n const [replacementFile, setReplacementFile] = React.useState<File | undefined>();\n const { editAsset, isLoading } = useEditAsset();\n\n const { data: folderStructure, isLoading: folderStructureIsLoading } = useFolderStructure({\n enabled: true,\n });\n\n const handleSubmit = async (values: FormInitialData) => {\n const nextAsset = { ...asset, ...values, folder: values.parent?.value } as Asset;\n\n if (asset?.isLocal) {\n onClose(nextAsset);\n } else {\n const editedAsset = (await editAsset(nextAsset, replacementFile!)) as Asset;\n\n const assetType = asset?.mime?.split('/')[0];\n // if the folder parent was the root of Media Library, its id is null\n // we know it changed location if the new parent value exists\n const didChangeLocation = asset?.folder?.id\n ? asset.folder.id !== values.parent?.value\n : asset?.folder === null && !!values.parent?.value;\n\n trackUsage('didEditMediaLibraryElements', {\n location: trackedLocation,\n type: assetType,\n changeLocation: didChangeLocation,\n });\n\n onClose(editedAsset);\n }\n };\n\n const handleStartCropping = () => {\n setIsCropping(true);\n };\n\n const handleCancelCropping = () => {\n setIsCropping(false);\n };\n\n const handleFinishCropping = () => {\n setIsCropping(false);\n onClose();\n };\n\n const handleFocalPointStart = () => {\n setIsFocalPointMode(true);\n };\n\n const handleFocalPointCancel = () => {\n setIsFocalPointMode(false);\n };\n\n const formDisabled = !canUpdate || isCropping || isFocalPointMode;\n\n const handleConfirmClose = () => {\n // eslint-disable-next-line no-alert\n const confirm = window.confirm(\n formatMessage({\n id: 'window.confirm.close-modal.file',\n defaultMessage: 'Are you sure? Your changes will be lost.',\n })\n );\n\n if (confirm) {\n onClose();\n }\n };\n\n const activeFolderId = asset?.folder?.id ?? toFolderId(initialFolderId);\n const initialFormData = !folderStructureIsLoading && {\n name: asset?.name,\n alternativeText: asset?.alternativeText ?? undefined,\n caption: asset?.caption ?? undefined,\n focalPoint: asset?.focalPoint ?? null,\n parent: {\n value: activeFolderId ?? undefined,\n label:\n findRecursiveFolderByValue(folderStructure!, activeFolderId!)?.label ??\n folderStructure![0].label,\n },\n };\n\n const handleClose = (values?: { [key: string]: unknown }) => {\n if (!isEqual(initialFormData, values)) {\n handleConfirmClose();\n } else {\n onClose();\n }\n };\n\n if (folderStructureIsLoading) {\n return (\n <>\n <DialogHeader />\n <LoadingBody minHeight=\"60vh\" justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </LoadingBody>\n <Modal.Footer>\n <Button onClick={() => handleClose()} variant=\"tertiary\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n }\n\n return (\n <Formik\n validationSchema={fileInfoSchema}\n validateOnChange={false}\n onSubmit={handleSubmit}\n initialValues={initialFormData}\n >\n {({ values, errors, handleChange, setFieldValue }) => (\n <>\n <DialogHeader />\n <Modal.Body>\n <Grid.Root gap={4}>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <PreviewBox\n asset={asset!}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n onDelete={onClose}\n onCropFinish={handleFinishCropping}\n onCropStart={handleStartCropping}\n onCropCancel={handleCancelCropping}\n replacementFile={replacementFile}\n trackedLocation={trackedLocation}\n formFocalPoint={values.focalPoint}\n onFocalPointStart={handleFocalPointStart}\n onFocalPointFinish={(focalPoint) => {\n setIsFocalPointMode(false);\n setFieldValue('focalPoint', focalPoint);\n }}\n onFocalPointCancel={handleFocalPointCancel}\n />\n </Grid.Item>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Form noValidate>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3}>\n <ContextInfo\n blocks={[\n {\n label: formatMessage({\n id: getTrad('modal.file-details.size'),\n defaultMessage: 'Size',\n }),\n value: formatBytes(asset?.size ? asset.size : 0),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.dimensions'),\n defaultMessage: 'Dimensions',\n }),\n value:\n asset?.height && asset.width ? `${asset.width}✕${asset.height}` : null,\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.date'),\n defaultMessage: 'Date',\n }),\n value: formatDate(new Date(asset?.createdAt ? asset.createdAt : '')),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.extension'),\n defaultMessage: 'Extension',\n }),\n value: getFileExtension(asset?.ext)!,\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.id'),\n defaultMessage: 'Asset ID',\n }),\n value: asset?.id ? asset.id : null,\n },\n\n ...(values.focalPoint\n ? [\n {\n label: formatMessage({\n id: getTrad('modal.file-details.focal-point'),\n defaultMessage: 'Focal point',\n }),\n value: `x: ${values.focalPoint.x}% - y: ${values.focalPoint.y}%`,\n },\n ]\n : []),\n ]}\n />\n <Field.Root name=\"name\" error={errors.name}>\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-name'),\n defaultMessage: 'File name',\n })}\n </Field.Label>\n <TextInput\n value={values.name}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n <Field.Error />\n </Field.Root>\n\n {!omitFields?.includes('alternativeText') && (\n <Field.Root\n name=\"alternativeText\"\n hint={formatMessage({\n id: getTrad('form.input.description.file-alt'),\n defaultMessage:\n 'This text will be displayed if the asset can’t be shown.',\n })}\n error={errors.alternativeText}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-alt'),\n defaultMessage: 'Alternative text',\n })}\n </Field.Label>\n <TextInput\n value={values.alternativeText}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n )}\n\n {!omitFields?.includes('caption') && (\n <Field.Root name=\"caption\" error={errors.caption}>\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-caption'),\n defaultMessage: 'Caption',\n })}\n </Field.Label>\n <TextInput\n value={values.caption}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n </Field.Root>\n )}\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Field.Root name=\"parent\" id=\"asset-folder\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n name=\"parent\"\n defaultValue={values.parent}\n options={folderStructure!}\n onChange={(value) => {\n setFieldValue('parent', value);\n }}\n menuPortalTarget={document.querySelector('body')}\n inputId=\"asset-folder\"\n isDisabled={formDisabled}\n error={errors?.parent}\n ariaErrorMessage=\"folder-parent-error\"\n />\n </Field.Root>\n </Flex>\n </Flex>\n\n <VisuallyHidden>\n <button\n type=\"submit\"\n tabIndex={-1}\n ref={submitButtonRef}\n disabled={formDisabled}\n >\n {formatMessage({ id: 'submit', defaultMessage: 'Submit' })}\n </button>\n </VisuallyHidden>\n </Form>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => handleClose({ ...values })} variant=\"tertiary\">\n {formatMessage({ id: 'global.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Flex gap={2}>\n {!omitActions?.includes('replace') && (\n <ReplaceMediaButton\n onSelectMedia={setReplacementFile}\n acceptedMime={asset?.mime ?? ''}\n disabled={formDisabled}\n trackedLocation={trackedLocation}\n />\n )}\n\n <Button\n onClick={() => submitButtonRef.current?.click()}\n loading={isLoading}\n disabled={formDisabled}\n >\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </Modal.Footer>\n </>\n )}\n </Formik>\n );\n};\n\ninterface EditAssetDialogProps {\n asset: Asset;\n canUpdate?: boolean;\n canCopyLink?: boolean;\n canDownload?: boolean;\n trackedLocation?: string;\n open: boolean;\n onClose: (arg?: Asset | null | boolean) => void;\n}\n\nexport const EditAssetDialog = ({\n open,\n onClose,\n canUpdate = false,\n canCopyLink = false,\n canDownload = false,\n ...restProps\n}: EditAssetDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <EditAssetContent\n onClose={onClose}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n {...restProps}\n />\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["LoadingBody","styled","Flex","focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","folder","toFolderId","value","undefined","Number","isFinite","parsed","EditAssetContent","onClose","asset","initialFolderId","canUpdate","canCopyLink","canDownload","trackedLocation","omitFields","omitActions","formatMessage","formatDate","useIntl","trackUsage","useTracking","submitButtonRef","React","useRef","isCropping","setIsCropping","useState","isFocalPointMode","setIsFocalPointMode","replacementFile","setReplacementFile","editAsset","isLoading","useEditAsset","data","folderStructure","folderStructureIsLoading","useFolderStructure","enabled","handleSubmit","values","nextAsset","parent","isLocal","editedAsset","assetType","mime","split","didChangeLocation","id","location","type","changeLocation","handleStartCropping","handleCancelCropping","handleFinishCropping","handleFocalPointStart","handleFocalPointCancel","formDisabled","handleConfirmClose","confirm","window","defaultMessage","activeFolderId","initialFormData","label","findRecursiveFolderByValue","handleClose","isEqual","_jsxs","_Fragment","_jsx","DialogHeader","minHeight","justifyContent","paddingTop","paddingBottom","Loader","getTrad","Modal","Footer","Button","onClick","variant","Formik","validationSchema","validateOnChange","onSubmit","initialValues","errors","handleChange","setFieldValue","Body","Grid","Root","gap","Item","xs","col","direction","alignItems","PreviewBox","onDelete","onCropFinish","onCropStart","onCropCancel","formFocalPoint","onFocalPointStart","onFocalPointFinish","onFocalPointCancel","Form","noValidate","ContextInfo","blocks","formatBytes","size","height","width","Date","createdAt","getFileExtension","ext","Field","error","Label","TextInput","onChange","disabled","Error","includes","hint","Hint","SelectTree","defaultValue","options","menuPortalTarget","document","querySelector","inputId","isDisabled","ariaErrorMessage","VisuallyHidden","button","tabIndex","ref","ReplaceMediaButton","onSelectMedia","acceptedMime","current","click","loading","EditAssetDialog","open","restProps","onOpenChange","Content"],"mappings":"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"}
1
+ {"version":3,"file":"EditAssetContent.js","sources":["../../../../admin/src/components/EditAssetDialog/EditAssetContent.tsx"],"sourcesContent":["/**\n *\n * EditAssetDialog\n *\n */\nimport * as React from 'react';\n\nimport {\n Button,\n Field,\n Flex,\n Grid,\n Loader,\n Modal,\n TextInput,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Form, Formik } from 'formik';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { useEditAsset } from '../../hooks/useEditAsset';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { useTracking } from '../../hooks/useTracking';\nimport { findRecursiveFolderByValue, getTrad, getFileExtension, formatBytes } from '../../utils';\nimport { ContextInfo } from '../ContextInfo/ContextInfo';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport { DialogHeader } from './DialogHeader';\nimport { PreviewBox } from './PreviewBox/PreviewBox';\nimport { ReplaceMediaButton } from './ReplaceMediaButton';\n\nimport type {\n File as FileDefinition,\n RawFile,\n FocalPoint,\n} from '../../../../shared/contracts/files';\n\nconst LoadingBody = styled(Flex)`\n /* 80px are coming from the Tabs component that is not included in the ModalBody */\n min-height: ${() => `calc(60dvh + 8rem)`};\n`;\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup.object({\n name: yup.string().required(),\n alternativeText: yup.string(),\n caption: yup.string(),\n focalPoint: focalPointSchema,\n folder: yup.number(),\n});\n\nexport interface Asset extends Omit<FileDefinition, 'folder'> {\n isLocal?: boolean;\n rawFile?: RawFile;\n folder?: FileDefinition['folder'] & { id: number };\n}\n\ninterface EditAssetContentProps {\n asset?: Asset;\n initialFolderId?: string | number | null;\n canUpdate?: boolean;\n canCopyLink?: boolean;\n canDownload?: boolean;\n trackedLocation?: string;\n onClose: (arg?: Asset | null | boolean) => void;\n omitFields?: ('caption' | 'alternativeText')[];\n omitActions?: 'replace'[];\n}\n\ninterface FormInitialData {\n name?: string;\n alternativeText?: string;\n caption?: string;\n focalPoint?: FocalPoint | null;\n parent?: {\n value?: number;\n label: string;\n };\n}\n\nconst toFolderId = (value: string | number | null | undefined): number | undefined => {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (typeof value === 'number') {\n return Number.isFinite(value) ? value : undefined;\n }\n\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n};\n\nexport const EditAssetContent = ({\n onClose,\n asset,\n initialFolderId = null,\n canUpdate = false,\n canCopyLink = false,\n canDownload = false,\n trackedLocation,\n omitFields = [],\n omitActions = [],\n}: EditAssetContentProps) => {\n const { formatMessage, formatDate } = useIntl();\n const { trackUsage } = useTracking();\n const submitButtonRef = React.useRef<HTMLButtonElement>(null);\n const [isCropping, setIsCropping] = React.useState(false);\n const [isFocalPointMode, setIsFocalPointMode] = React.useState(false);\n const [replacementFile, setReplacementFile] = React.useState<File | undefined>();\n const { editAsset, isLoading } = useEditAsset();\n\n const { data: folderStructure, isLoading: folderStructureIsLoading } = useFolderStructure({\n enabled: true,\n });\n\n const handleSubmit = async (values: FormInitialData) => {\n const nextAsset = { ...asset, ...values, folder: values.parent?.value } as Asset;\n\n if (asset?.isLocal) {\n onClose(nextAsset);\n } else {\n const editedAsset = (await editAsset(nextAsset, replacementFile!)) as Asset;\n\n const assetType = asset?.mime?.split('/')[0];\n // if the folder parent was the root of Media Library, its id is null\n // we know it changed location if the new parent value exists\n const didChangeLocation = asset?.folder?.id\n ? asset.folder.id !== values.parent?.value\n : asset?.folder === null && !!values.parent?.value;\n\n trackUsage('didEditMediaLibraryElements', {\n location: trackedLocation,\n type: assetType,\n changeLocation: didChangeLocation,\n });\n\n onClose(editedAsset);\n }\n };\n\n const handleStartCropping = () => {\n setIsCropping(true);\n };\n\n const handleCancelCropping = () => {\n setIsCropping(false);\n };\n\n const handleFinishCropping = () => {\n setIsCropping(false);\n onClose();\n };\n\n const handleFocalPointStart = () => {\n setIsFocalPointMode(true);\n };\n\n const handleFocalPointCancel = () => {\n setIsFocalPointMode(false);\n };\n\n const formDisabled = !canUpdate || isCropping || isFocalPointMode;\n\n const handleConfirmClose = () => {\n // eslint-disable-next-line no-alert\n const confirm = window.confirm(\n formatMessage({\n id: 'window.confirm.close-modal.file',\n defaultMessage: 'Are you sure? Your changes will be lost.',\n })\n );\n\n if (confirm) {\n onClose();\n }\n };\n\n const activeFolderId = asset?.folder?.id ?? toFolderId(initialFolderId);\n const initialFormData = !folderStructureIsLoading && {\n name: asset?.name,\n alternativeText: asset?.alternativeText ?? undefined,\n caption: asset?.caption ?? undefined,\n focalPoint: asset?.focalPoint ?? null,\n parent: {\n value: activeFolderId ?? undefined,\n label:\n findRecursiveFolderByValue(folderStructure!, activeFolderId!)?.label ??\n folderStructure![0].label,\n },\n };\n\n const handleClose = (values?: { [key: string]: unknown }) => {\n if (!isEqual(initialFormData, values)) {\n handleConfirmClose();\n } else {\n onClose();\n }\n };\n\n if (folderStructureIsLoading) {\n return (\n <>\n <DialogHeader />\n <LoadingBody minHeight=\"60vh\" justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </LoadingBody>\n <Modal.Footer>\n <Button onClick={() => handleClose()} variant=\"tertiary\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n }\n\n return (\n <Formik\n validationSchema={fileInfoSchema}\n validateOnChange={false}\n onSubmit={handleSubmit}\n initialValues={initialFormData}\n >\n {({ values, errors, handleChange, setFieldValue }) => (\n <>\n <DialogHeader />\n <Modal.Body>\n <Grid.Root gap={4}>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <PreviewBox\n asset={asset!}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n onDelete={onClose}\n onCropFinish={handleFinishCropping}\n onCropStart={handleStartCropping}\n onCropCancel={handleCancelCropping}\n replacementFile={replacementFile}\n trackedLocation={trackedLocation}\n formFocalPoint={values.focalPoint}\n onFocalPointStart={handleFocalPointStart}\n onFocalPointFinish={(focalPoint) => {\n setIsFocalPointMode(false);\n setFieldValue('focalPoint', focalPoint);\n }}\n onFocalPointCancel={handleFocalPointCancel}\n />\n </Grid.Item>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Form noValidate>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3}>\n <ContextInfo\n blocks={[\n {\n label: formatMessage({\n id: getTrad('modal.file-details.size'),\n defaultMessage: 'Size',\n }),\n value: formatBytes(asset?.size ? asset.size : 0),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.dimensions'),\n defaultMessage: 'Dimensions',\n }),\n value:\n asset?.height && asset.width ? `${asset.width}✕${asset.height}` : null,\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.date'),\n defaultMessage: 'Date',\n }),\n value: formatDate(new Date(asset?.createdAt ? asset.createdAt : '')),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.extension'),\n defaultMessage: 'Extension',\n }),\n value: getFileExtension(asset?.ext)!,\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.id'),\n defaultMessage: 'Asset ID',\n }),\n value: asset?.id ? asset.id : null,\n },\n\n ...(values.focalPoint\n ? [\n {\n label: formatMessage({\n id: getTrad('modal.file-details.focal-point'),\n defaultMessage: 'Focal point',\n }),\n value: `x: ${values.focalPoint.x}% - y: ${values.focalPoint.y}%`,\n },\n ]\n : []),\n ]}\n />\n <Field.Root name=\"name\" error={errors.name}>\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-name'),\n defaultMessage: 'File name',\n })}\n </Field.Label>\n <TextInput\n value={values.name}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n <Field.Error />\n </Field.Root>\n\n {!omitFields?.includes('alternativeText') && (\n <Field.Root\n name=\"alternativeText\"\n hint={formatMessage({\n id: getTrad('form.input.description.file-alt'),\n defaultMessage:\n 'This text will be displayed if the asset can’t be shown.',\n })}\n error={errors.alternativeText}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-alt'),\n defaultMessage: 'Alternative text',\n })}\n </Field.Label>\n <TextInput\n value={values.alternativeText}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n )}\n\n {!omitFields?.includes('caption') && (\n <Field.Root name=\"caption\" error={errors.caption}>\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-caption'),\n defaultMessage: 'Caption',\n })}\n </Field.Label>\n <TextInput\n value={values.caption}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n </Field.Root>\n )}\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Field.Root name=\"parent\" id=\"asset-folder\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n name=\"parent\"\n defaultValue={values.parent}\n options={folderStructure!}\n onChange={(value) => {\n setFieldValue('parent', value);\n }}\n menuPortalTarget={document.querySelector('body')}\n inputId=\"asset-folder\"\n isDisabled={formDisabled}\n error={errors?.parent}\n ariaErrorMessage=\"folder-parent-error\"\n />\n </Field.Root>\n </Flex>\n </Flex>\n\n <VisuallyHidden>\n <button\n type=\"submit\"\n tabIndex={-1}\n ref={submitButtonRef}\n disabled={formDisabled}\n >\n {formatMessage({ id: 'submit', defaultMessage: 'Submit' })}\n </button>\n </VisuallyHidden>\n </Form>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => handleClose({ ...values })} variant=\"tertiary\">\n {formatMessage({ id: 'global.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Flex gap={2}>\n {!omitActions?.includes('replace') && (\n <ReplaceMediaButton\n onSelectMedia={setReplacementFile}\n acceptedMime={asset?.mime ?? ''}\n disabled={formDisabled}\n trackedLocation={trackedLocation}\n />\n )}\n\n <Button\n onClick={() => submitButtonRef.current?.click()}\n loading={isLoading}\n disabled={formDisabled}\n >\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </Modal.Footer>\n </>\n )}\n </Formik>\n );\n};\n\ninterface EditAssetDialogProps {\n asset: Asset;\n canUpdate?: boolean;\n canCopyLink?: boolean;\n canDownload?: boolean;\n trackedLocation?: string;\n open: boolean;\n onClose: (arg?: Asset | null | boolean) => void;\n}\n\nexport const EditAssetDialog = ({\n open,\n onClose,\n canUpdate = false,\n canCopyLink = false,\n canDownload = false,\n ...restProps\n}: EditAssetDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <EditAssetContent\n onClose={onClose}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n {...restProps}\n />\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["LoadingBody","styled","Flex","focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","folder","toFolderId","value","undefined","Number","isFinite","parsed","EditAssetContent","onClose","asset","initialFolderId","canUpdate","canCopyLink","canDownload","trackedLocation","omitFields","omitActions","formatMessage","formatDate","useIntl","trackUsage","useTracking","submitButtonRef","React","useRef","isCropping","setIsCropping","useState","isFocalPointMode","setIsFocalPointMode","replacementFile","setReplacementFile","editAsset","isLoading","useEditAsset","data","folderStructure","folderStructureIsLoading","useFolderStructure","enabled","handleSubmit","values","nextAsset","parent","isLocal","editedAsset","assetType","mime","split","didChangeLocation","id","location","type","changeLocation","handleStartCropping","handleCancelCropping","handleFinishCropping","handleFocalPointStart","handleFocalPointCancel","formDisabled","handleConfirmClose","confirm","window","defaultMessage","activeFolderId","initialFormData","label","findRecursiveFolderByValue","handleClose","isEqual","_jsxs","_Fragment","_jsx","DialogHeader","minHeight","justifyContent","paddingTop","paddingBottom","Loader","getTrad","Modal","Footer","Button","onClick","variant","Formik","validationSchema","validateOnChange","onSubmit","initialValues","errors","handleChange","setFieldValue","Body","Grid","Root","gap","Item","xs","col","direction","alignItems","PreviewBox","onDelete","onCropFinish","onCropStart","onCropCancel","formFocalPoint","onFocalPointStart","onFocalPointFinish","onFocalPointCancel","Form","noValidate","ContextInfo","blocks","formatBytes","size","height","width","Date","createdAt","getFileExtension","ext","Field","error","Label","TextInput","onChange","disabled","Error","includes","hint","Hint","SelectTree","defaultValue","options","menuPortalTarget","document","querySelector","inputId","isDisabled","ariaErrorMessage","VisuallyHidden","button","tabIndex","ref","ReplaceMediaButton","onSelectMedia","acceptedMime","current","click","loading","EditAssetDialog","open","restProps","onOpenChange","Content"],"mappings":"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"}
@@ -15,7 +15,6 @@ import 'date-fns';
15
15
  import { getTrad } from '../../utils/getTrad.mjs';
16
16
  import 'qs';
17
17
  import { getFileExtension } from '../../utils/getFileExtension.mjs';
18
- import '../../utils/typeFromMime.mjs';
19
18
  import '../../utils/urlYupSchema.mjs';
20
19
  import { ContextInfo } from '../ContextInfo/ContextInfo.mjs';
21
20
  import { SelectTree } from '../SelectTree/SelectTree.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"EditAssetContent.mjs","sources":["../../../../admin/src/components/EditAssetDialog/EditAssetContent.tsx"],"sourcesContent":["/**\n *\n * EditAssetDialog\n *\n */\nimport * as React from 'react';\n\nimport {\n Button,\n Field,\n Flex,\n Grid,\n Loader,\n Modal,\n TextInput,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Form, Formik } from 'formik';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { useEditAsset } from '../../hooks/useEditAsset';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { useTracking } from '../../hooks/useTracking';\nimport { findRecursiveFolderByValue, getTrad, getFileExtension, formatBytes } from '../../utils';\nimport { ContextInfo } from '../ContextInfo/ContextInfo';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport { DialogHeader } from './DialogHeader';\nimport { PreviewBox } from './PreviewBox/PreviewBox';\nimport { ReplaceMediaButton } from './ReplaceMediaButton';\n\nimport type {\n File as FileDefinition,\n RawFile,\n FocalPoint,\n} from '../../../../shared/contracts/files';\n\nconst LoadingBody = styled(Flex)`\n /* 80px are coming from the Tabs component that is not included in the ModalBody */\n min-height: ${() => `calc(60dvh + 8rem)`};\n`;\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup.object({\n name: yup.string().required(),\n alternativeText: yup.string(),\n caption: yup.string(),\n focalPoint: focalPointSchema,\n folder: yup.number(),\n});\n\nexport interface Asset extends Omit<FileDefinition, 'folder'> {\n isLocal?: boolean;\n rawFile?: RawFile;\n folder?: FileDefinition['folder'] & { id: number };\n}\n\ninterface EditAssetContentProps {\n asset?: Asset;\n initialFolderId?: string | number | null;\n canUpdate?: boolean;\n canCopyLink?: boolean;\n canDownload?: boolean;\n trackedLocation?: string;\n onClose: (arg?: Asset | null | boolean) => void;\n omitFields?: ('caption' | 'alternativeText')[];\n omitActions?: 'replace'[];\n}\n\ninterface FormInitialData {\n name?: string;\n alternativeText?: string;\n caption?: string;\n focalPoint?: FocalPoint | null;\n parent?: {\n value?: number;\n label: string;\n };\n}\n\nconst toFolderId = (value: string | number | null | undefined): number | undefined => {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (typeof value === 'number') {\n return Number.isFinite(value) ? value : undefined;\n }\n\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n};\n\nexport const EditAssetContent = ({\n onClose,\n asset,\n initialFolderId = null,\n canUpdate = false,\n canCopyLink = false,\n canDownload = false,\n trackedLocation,\n omitFields = [],\n omitActions = [],\n}: EditAssetContentProps) => {\n const { formatMessage, formatDate } = useIntl();\n const { trackUsage } = useTracking();\n const submitButtonRef = React.useRef<HTMLButtonElement>(null);\n const [isCropping, setIsCropping] = React.useState(false);\n const [isFocalPointMode, setIsFocalPointMode] = React.useState(false);\n const [replacementFile, setReplacementFile] = React.useState<File | undefined>();\n const { editAsset, isLoading } = useEditAsset();\n\n const { data: folderStructure, isLoading: folderStructureIsLoading } = useFolderStructure({\n enabled: true,\n });\n\n const handleSubmit = async (values: FormInitialData) => {\n const nextAsset = { ...asset, ...values, folder: values.parent?.value } as Asset;\n\n if (asset?.isLocal) {\n onClose(nextAsset);\n } else {\n const editedAsset = (await editAsset(nextAsset, replacementFile!)) as Asset;\n\n const assetType = asset?.mime?.split('/')[0];\n // if the folder parent was the root of Media Library, its id is null\n // we know it changed location if the new parent value exists\n const didChangeLocation = asset?.folder?.id\n ? asset.folder.id !== values.parent?.value\n : asset?.folder === null && !!values.parent?.value;\n\n trackUsage('didEditMediaLibraryElements', {\n location: trackedLocation,\n type: assetType,\n changeLocation: didChangeLocation,\n });\n\n onClose(editedAsset);\n }\n };\n\n const handleStartCropping = () => {\n setIsCropping(true);\n };\n\n const handleCancelCropping = () => {\n setIsCropping(false);\n };\n\n const handleFinishCropping = () => {\n setIsCropping(false);\n onClose();\n };\n\n const handleFocalPointStart = () => {\n setIsFocalPointMode(true);\n };\n\n const handleFocalPointCancel = () => {\n setIsFocalPointMode(false);\n };\n\n const formDisabled = !canUpdate || isCropping || isFocalPointMode;\n\n const handleConfirmClose = () => {\n // eslint-disable-next-line no-alert\n const confirm = window.confirm(\n formatMessage({\n id: 'window.confirm.close-modal.file',\n defaultMessage: 'Are you sure? Your changes will be lost.',\n })\n );\n\n if (confirm) {\n onClose();\n }\n };\n\n const activeFolderId = asset?.folder?.id ?? toFolderId(initialFolderId);\n const initialFormData = !folderStructureIsLoading && {\n name: asset?.name,\n alternativeText: asset?.alternativeText ?? undefined,\n caption: asset?.caption ?? undefined,\n focalPoint: asset?.focalPoint ?? null,\n parent: {\n value: activeFolderId ?? undefined,\n label:\n findRecursiveFolderByValue(folderStructure!, activeFolderId!)?.label ??\n folderStructure![0].label,\n },\n };\n\n const handleClose = (values?: { [key: string]: unknown }) => {\n if (!isEqual(initialFormData, values)) {\n handleConfirmClose();\n } else {\n onClose();\n }\n };\n\n if (folderStructureIsLoading) {\n return (\n <>\n <DialogHeader />\n <LoadingBody minHeight=\"60vh\" justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </LoadingBody>\n <Modal.Footer>\n <Button onClick={() => handleClose()} variant=\"tertiary\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n }\n\n return (\n <Formik\n validationSchema={fileInfoSchema}\n validateOnChange={false}\n onSubmit={handleSubmit}\n initialValues={initialFormData}\n >\n {({ values, errors, handleChange, setFieldValue }) => (\n <>\n <DialogHeader />\n <Modal.Body>\n <Grid.Root gap={4}>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <PreviewBox\n asset={asset!}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n onDelete={onClose}\n onCropFinish={handleFinishCropping}\n onCropStart={handleStartCropping}\n onCropCancel={handleCancelCropping}\n replacementFile={replacementFile}\n trackedLocation={trackedLocation}\n formFocalPoint={values.focalPoint}\n onFocalPointStart={handleFocalPointStart}\n onFocalPointFinish={(focalPoint) => {\n setIsFocalPointMode(false);\n setFieldValue('focalPoint', focalPoint);\n }}\n onFocalPointCancel={handleFocalPointCancel}\n />\n </Grid.Item>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Form noValidate>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3}>\n <ContextInfo\n blocks={[\n {\n label: formatMessage({\n id: getTrad('modal.file-details.size'),\n defaultMessage: 'Size',\n }),\n value: formatBytes(asset?.size ? asset.size : 0),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.dimensions'),\n defaultMessage: 'Dimensions',\n }),\n value:\n asset?.height && asset.width ? `${asset.width}✕${asset.height}` : null,\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.date'),\n defaultMessage: 'Date',\n }),\n value: formatDate(new Date(asset?.createdAt ? asset.createdAt : '')),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.extension'),\n defaultMessage: 'Extension',\n }),\n value: getFileExtension(asset?.ext)!,\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.id'),\n defaultMessage: 'Asset ID',\n }),\n value: asset?.id ? asset.id : null,\n },\n\n ...(values.focalPoint\n ? [\n {\n label: formatMessage({\n id: getTrad('modal.file-details.focal-point'),\n defaultMessage: 'Focal point',\n }),\n value: `x: ${values.focalPoint.x}% - y: ${values.focalPoint.y}%`,\n },\n ]\n : []),\n ]}\n />\n <Field.Root name=\"name\" error={errors.name}>\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-name'),\n defaultMessage: 'File name',\n })}\n </Field.Label>\n <TextInput\n value={values.name}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n <Field.Error />\n </Field.Root>\n\n {!omitFields?.includes('alternativeText') && (\n <Field.Root\n name=\"alternativeText\"\n hint={formatMessage({\n id: getTrad('form.input.description.file-alt'),\n defaultMessage:\n 'This text will be displayed if the asset can’t be shown.',\n })}\n error={errors.alternativeText}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-alt'),\n defaultMessage: 'Alternative text',\n })}\n </Field.Label>\n <TextInput\n value={values.alternativeText}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n )}\n\n {!omitFields?.includes('caption') && (\n <Field.Root name=\"caption\" error={errors.caption}>\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-caption'),\n defaultMessage: 'Caption',\n })}\n </Field.Label>\n <TextInput\n value={values.caption}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n </Field.Root>\n )}\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Field.Root name=\"parent\" id=\"asset-folder\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n name=\"parent\"\n defaultValue={values.parent}\n options={folderStructure!}\n onChange={(value) => {\n setFieldValue('parent', value);\n }}\n menuPortalTarget={document.querySelector('body')}\n inputId=\"asset-folder\"\n isDisabled={formDisabled}\n error={errors?.parent}\n ariaErrorMessage=\"folder-parent-error\"\n />\n </Field.Root>\n </Flex>\n </Flex>\n\n <VisuallyHidden>\n <button\n type=\"submit\"\n tabIndex={-1}\n ref={submitButtonRef}\n disabled={formDisabled}\n >\n {formatMessage({ id: 'submit', defaultMessage: 'Submit' })}\n </button>\n </VisuallyHidden>\n </Form>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => handleClose({ ...values })} variant=\"tertiary\">\n {formatMessage({ id: 'global.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Flex gap={2}>\n {!omitActions?.includes('replace') && (\n <ReplaceMediaButton\n onSelectMedia={setReplacementFile}\n acceptedMime={asset?.mime ?? ''}\n disabled={formDisabled}\n trackedLocation={trackedLocation}\n />\n )}\n\n <Button\n onClick={() => submitButtonRef.current?.click()}\n loading={isLoading}\n disabled={formDisabled}\n >\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </Modal.Footer>\n </>\n )}\n </Formik>\n );\n};\n\ninterface EditAssetDialogProps {\n asset: Asset;\n canUpdate?: boolean;\n canCopyLink?: boolean;\n canDownload?: boolean;\n trackedLocation?: string;\n open: boolean;\n onClose: (arg?: Asset | null | boolean) => void;\n}\n\nexport const EditAssetDialog = ({\n open,\n onClose,\n canUpdate = false,\n canCopyLink = false,\n canDownload = false,\n ...restProps\n}: EditAssetDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <EditAssetContent\n onClose={onClose}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n {...restProps}\n />\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["LoadingBody","styled","Flex","focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","folder","toFolderId","value","undefined","Number","isFinite","parsed","EditAssetContent","onClose","asset","initialFolderId","canUpdate","canCopyLink","canDownload","trackedLocation","omitFields","omitActions","formatMessage","formatDate","useIntl","trackUsage","useTracking","submitButtonRef","React","useRef","isCropping","setIsCropping","useState","isFocalPointMode","setIsFocalPointMode","replacementFile","setReplacementFile","editAsset","isLoading","useEditAsset","data","folderStructure","folderStructureIsLoading","useFolderStructure","enabled","handleSubmit","values","nextAsset","parent","isLocal","editedAsset","assetType","mime","split","didChangeLocation","id","location","type","changeLocation","handleStartCropping","handleCancelCropping","handleFinishCropping","handleFocalPointStart","handleFocalPointCancel","formDisabled","handleConfirmClose","confirm","window","defaultMessage","activeFolderId","initialFormData","label","findRecursiveFolderByValue","handleClose","isEqual","_jsxs","_Fragment","_jsx","DialogHeader","minHeight","justifyContent","paddingTop","paddingBottom","Loader","getTrad","Modal","Footer","Button","onClick","variant","Formik","validationSchema","validateOnChange","onSubmit","initialValues","errors","handleChange","setFieldValue","Body","Grid","Root","gap","Item","xs","col","direction","alignItems","PreviewBox","onDelete","onCropFinish","onCropStart","onCropCancel","formFocalPoint","onFocalPointStart","onFocalPointFinish","onFocalPointCancel","Form","noValidate","ContextInfo","blocks","formatBytes","size","height","width","Date","createdAt","getFileExtension","ext","Field","error","Label","TextInput","onChange","disabled","Error","includes","hint","Hint","SelectTree","defaultValue","options","menuPortalTarget","document","querySelector","inputId","isDisabled","ariaErrorMessage","VisuallyHidden","button","tabIndex","ref","ReplaceMediaButton","onSelectMedia","acceptedMime","current","click","loading","EditAssetDialog","open","restProps","onOpenChange","Content"],"mappings":"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"}
1
+ {"version":3,"file":"EditAssetContent.mjs","sources":["../../../../admin/src/components/EditAssetDialog/EditAssetContent.tsx"],"sourcesContent":["/**\n *\n * EditAssetDialog\n *\n */\nimport * as React from 'react';\n\nimport {\n Button,\n Field,\n Flex,\n Grid,\n Loader,\n Modal,\n TextInput,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Form, Formik } from 'formik';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { useEditAsset } from '../../hooks/useEditAsset';\nimport { useFolderStructure } from '../../hooks/useFolderStructure';\nimport { useTracking } from '../../hooks/useTracking';\nimport { findRecursiveFolderByValue, getTrad, getFileExtension, formatBytes } from '../../utils';\nimport { ContextInfo } from '../ContextInfo/ContextInfo';\nimport { SelectTree } from '../SelectTree/SelectTree';\n\nimport { DialogHeader } from './DialogHeader';\nimport { PreviewBox } from './PreviewBox/PreviewBox';\nimport { ReplaceMediaButton } from './ReplaceMediaButton';\n\nimport type {\n File as FileDefinition,\n RawFile,\n FocalPoint,\n} from '../../../../shared/contracts/files';\n\nconst LoadingBody = styled(Flex)`\n /* 80px are coming from the Tabs component that is not included in the ModalBody */\n min-height: ${() => `calc(60dvh + 8rem)`};\n`;\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup.object({\n name: yup.string().required(),\n alternativeText: yup.string(),\n caption: yup.string(),\n focalPoint: focalPointSchema,\n folder: yup.number(),\n});\n\nexport interface Asset extends Omit<FileDefinition, 'folder'> {\n isLocal?: boolean;\n rawFile?: RawFile;\n folder?: FileDefinition['folder'] & { id: number };\n}\n\ninterface EditAssetContentProps {\n asset?: Asset;\n initialFolderId?: string | number | null;\n canUpdate?: boolean;\n canCopyLink?: boolean;\n canDownload?: boolean;\n trackedLocation?: string;\n onClose: (arg?: Asset | null | boolean) => void;\n omitFields?: ('caption' | 'alternativeText')[];\n omitActions?: 'replace'[];\n}\n\ninterface FormInitialData {\n name?: string;\n alternativeText?: string;\n caption?: string;\n focalPoint?: FocalPoint | null;\n parent?: {\n value?: number;\n label: string;\n };\n}\n\nconst toFolderId = (value: string | number | null | undefined): number | undefined => {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (typeof value === 'number') {\n return Number.isFinite(value) ? value : undefined;\n }\n\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n};\n\nexport const EditAssetContent = ({\n onClose,\n asset,\n initialFolderId = null,\n canUpdate = false,\n canCopyLink = false,\n canDownload = false,\n trackedLocation,\n omitFields = [],\n omitActions = [],\n}: EditAssetContentProps) => {\n const { formatMessage, formatDate } = useIntl();\n const { trackUsage } = useTracking();\n const submitButtonRef = React.useRef<HTMLButtonElement>(null);\n const [isCropping, setIsCropping] = React.useState(false);\n const [isFocalPointMode, setIsFocalPointMode] = React.useState(false);\n const [replacementFile, setReplacementFile] = React.useState<File | undefined>();\n const { editAsset, isLoading } = useEditAsset();\n\n const { data: folderStructure, isLoading: folderStructureIsLoading } = useFolderStructure({\n enabled: true,\n });\n\n const handleSubmit = async (values: FormInitialData) => {\n const nextAsset = { ...asset, ...values, folder: values.parent?.value } as Asset;\n\n if (asset?.isLocal) {\n onClose(nextAsset);\n } else {\n const editedAsset = (await editAsset(nextAsset, replacementFile!)) as Asset;\n\n const assetType = asset?.mime?.split('/')[0];\n // if the folder parent was the root of Media Library, its id is null\n // we know it changed location if the new parent value exists\n const didChangeLocation = asset?.folder?.id\n ? asset.folder.id !== values.parent?.value\n : asset?.folder === null && !!values.parent?.value;\n\n trackUsage('didEditMediaLibraryElements', {\n location: trackedLocation,\n type: assetType,\n changeLocation: didChangeLocation,\n });\n\n onClose(editedAsset);\n }\n };\n\n const handleStartCropping = () => {\n setIsCropping(true);\n };\n\n const handleCancelCropping = () => {\n setIsCropping(false);\n };\n\n const handleFinishCropping = () => {\n setIsCropping(false);\n onClose();\n };\n\n const handleFocalPointStart = () => {\n setIsFocalPointMode(true);\n };\n\n const handleFocalPointCancel = () => {\n setIsFocalPointMode(false);\n };\n\n const formDisabled = !canUpdate || isCropping || isFocalPointMode;\n\n const handleConfirmClose = () => {\n // eslint-disable-next-line no-alert\n const confirm = window.confirm(\n formatMessage({\n id: 'window.confirm.close-modal.file',\n defaultMessage: 'Are you sure? Your changes will be lost.',\n })\n );\n\n if (confirm) {\n onClose();\n }\n };\n\n const activeFolderId = asset?.folder?.id ?? toFolderId(initialFolderId);\n const initialFormData = !folderStructureIsLoading && {\n name: asset?.name,\n alternativeText: asset?.alternativeText ?? undefined,\n caption: asset?.caption ?? undefined,\n focalPoint: asset?.focalPoint ?? null,\n parent: {\n value: activeFolderId ?? undefined,\n label:\n findRecursiveFolderByValue(folderStructure!, activeFolderId!)?.label ??\n folderStructure![0].label,\n },\n };\n\n const handleClose = (values?: { [key: string]: unknown }) => {\n if (!isEqual(initialFormData, values)) {\n handleConfirmClose();\n } else {\n onClose();\n }\n };\n\n if (folderStructureIsLoading) {\n return (\n <>\n <DialogHeader />\n <LoadingBody minHeight=\"60vh\" justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </LoadingBody>\n <Modal.Footer>\n <Button onClick={() => handleClose()} variant=\"tertiary\">\n {formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n }\n\n return (\n <Formik\n validationSchema={fileInfoSchema}\n validateOnChange={false}\n onSubmit={handleSubmit}\n initialValues={initialFormData}\n >\n {({ values, errors, handleChange, setFieldValue }) => (\n <>\n <DialogHeader />\n <Modal.Body>\n <Grid.Root gap={4}>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <PreviewBox\n asset={asset!}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n onDelete={onClose}\n onCropFinish={handleFinishCropping}\n onCropStart={handleStartCropping}\n onCropCancel={handleCancelCropping}\n replacementFile={replacementFile}\n trackedLocation={trackedLocation}\n formFocalPoint={values.focalPoint}\n onFocalPointStart={handleFocalPointStart}\n onFocalPointFinish={(focalPoint) => {\n setIsFocalPointMode(false);\n setFieldValue('focalPoint', focalPoint);\n }}\n onFocalPointCancel={handleFocalPointCancel}\n />\n </Grid.Item>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Form noValidate>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3}>\n <ContextInfo\n blocks={[\n {\n label: formatMessage({\n id: getTrad('modal.file-details.size'),\n defaultMessage: 'Size',\n }),\n value: formatBytes(asset?.size ? asset.size : 0),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.dimensions'),\n defaultMessage: 'Dimensions',\n }),\n value:\n asset?.height && asset.width ? `${asset.width}✕${asset.height}` : null,\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.date'),\n defaultMessage: 'Date',\n }),\n value: formatDate(new Date(asset?.createdAt ? asset.createdAt : '')),\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.extension'),\n defaultMessage: 'Extension',\n }),\n value: getFileExtension(asset?.ext)!,\n },\n\n {\n label: formatMessage({\n id: getTrad('modal.file-details.id'),\n defaultMessage: 'Asset ID',\n }),\n value: asset?.id ? asset.id : null,\n },\n\n ...(values.focalPoint\n ? [\n {\n label: formatMessage({\n id: getTrad('modal.file-details.focal-point'),\n defaultMessage: 'Focal point',\n }),\n value: `x: ${values.focalPoint.x}% - y: ${values.focalPoint.y}%`,\n },\n ]\n : []),\n ]}\n />\n <Field.Root name=\"name\" error={errors.name}>\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-name'),\n defaultMessage: 'File name',\n })}\n </Field.Label>\n <TextInput\n value={values.name}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n <Field.Error />\n </Field.Root>\n\n {!omitFields?.includes('alternativeText') && (\n <Field.Root\n name=\"alternativeText\"\n hint={formatMessage({\n id: getTrad('form.input.description.file-alt'),\n defaultMessage:\n 'This text will be displayed if the asset can’t be shown.',\n })}\n error={errors.alternativeText}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-alt'),\n defaultMessage: 'Alternative text',\n })}\n </Field.Label>\n <TextInput\n value={values.alternativeText}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n )}\n\n {!omitFields?.includes('caption') && (\n <Field.Root name=\"caption\" error={errors.caption}>\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-caption'),\n defaultMessage: 'Caption',\n })}\n </Field.Label>\n <TextInput\n value={values.caption}\n onChange={handleChange}\n disabled={formDisabled}\n type=\"text\"\n />\n </Field.Root>\n )}\n\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Field.Root name=\"parent\" id=\"asset-folder\">\n <Field.Label>\n {formatMessage({\n id: getTrad('form.input.label.file-location'),\n defaultMessage: 'Location',\n })}\n </Field.Label>\n\n <SelectTree\n name=\"parent\"\n defaultValue={values.parent}\n options={folderStructure!}\n onChange={(value) => {\n setFieldValue('parent', value);\n }}\n menuPortalTarget={document.querySelector('body')}\n inputId=\"asset-folder\"\n isDisabled={formDisabled}\n error={errors?.parent}\n ariaErrorMessage=\"folder-parent-error\"\n />\n </Field.Root>\n </Flex>\n </Flex>\n\n <VisuallyHidden>\n <button\n type=\"submit\"\n tabIndex={-1}\n ref={submitButtonRef}\n disabled={formDisabled}\n >\n {formatMessage({ id: 'submit', defaultMessage: 'Submit' })}\n </button>\n </VisuallyHidden>\n </Form>\n </Grid.Item>\n </Grid.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => handleClose({ ...values })} variant=\"tertiary\">\n {formatMessage({ id: 'global.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Flex gap={2}>\n {!omitActions?.includes('replace') && (\n <ReplaceMediaButton\n onSelectMedia={setReplacementFile}\n acceptedMime={asset?.mime ?? ''}\n disabled={formDisabled}\n trackedLocation={trackedLocation}\n />\n )}\n\n <Button\n onClick={() => submitButtonRef.current?.click()}\n loading={isLoading}\n disabled={formDisabled}\n >\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </Modal.Footer>\n </>\n )}\n </Formik>\n );\n};\n\ninterface EditAssetDialogProps {\n asset: Asset;\n canUpdate?: boolean;\n canCopyLink?: boolean;\n canDownload?: boolean;\n trackedLocation?: string;\n open: boolean;\n onClose: (arg?: Asset | null | boolean) => void;\n}\n\nexport const EditAssetDialog = ({\n open,\n onClose,\n canUpdate = false,\n canCopyLink = false,\n canDownload = false,\n ...restProps\n}: EditAssetDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <EditAssetContent\n onClose={onClose}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n {...restProps}\n />\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["LoadingBody","styled","Flex","focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","folder","toFolderId","value","undefined","Number","isFinite","parsed","EditAssetContent","onClose","asset","initialFolderId","canUpdate","canCopyLink","canDownload","trackedLocation","omitFields","omitActions","formatMessage","formatDate","useIntl","trackUsage","useTracking","submitButtonRef","React","useRef","isCropping","setIsCropping","useState","isFocalPointMode","setIsFocalPointMode","replacementFile","setReplacementFile","editAsset","isLoading","useEditAsset","data","folderStructure","folderStructureIsLoading","useFolderStructure","enabled","handleSubmit","values","nextAsset","parent","isLocal","editedAsset","assetType","mime","split","didChangeLocation","id","location","type","changeLocation","handleStartCropping","handleCancelCropping","handleFinishCropping","handleFocalPointStart","handleFocalPointCancel","formDisabled","handleConfirmClose","confirm","window","defaultMessage","activeFolderId","initialFormData","label","findRecursiveFolderByValue","handleClose","isEqual","_jsxs","_Fragment","_jsx","DialogHeader","minHeight","justifyContent","paddingTop","paddingBottom","Loader","getTrad","Modal","Footer","Button","onClick","variant","Formik","validationSchema","validateOnChange","onSubmit","initialValues","errors","handleChange","setFieldValue","Body","Grid","Root","gap","Item","xs","col","direction","alignItems","PreviewBox","onDelete","onCropFinish","onCropStart","onCropCancel","formFocalPoint","onFocalPointStart","onFocalPointFinish","onFocalPointCancel","Form","noValidate","ContextInfo","blocks","formatBytes","size","height","width","Date","createdAt","getFileExtension","ext","Field","error","Label","TextInput","onChange","disabled","Error","includes","hint","Hint","SelectTree","defaultValue","options","menuPortalTarget","document","querySelector","inputId","isDisabled","ariaErrorMessage","VisuallyHidden","button","tabIndex","ref","ReplaceMediaButton","onSelectMedia","acceptedMime","current","click","loading","EditAssetDialog","open","restProps","onOpenChange","Content"],"mappings":"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"}
@@ -50,7 +50,7 @@ const AssetPreview = /*#__PURE__*/ React__namespace.forwardRef(({ mime, url, nam
50
50
  const theme = styledComponents.useTheme();
51
51
  const assetType = typeFromMime.typeFromMime(mime);
52
52
  const { formatMessage } = reactIntl.useIntl();
53
- if (assetType === enums.AssetType.Image) {
53
+ if (assetType === enums.ASSET_TYPES.Image) {
54
54
  return /*#__PURE__*/ jsxRuntime.jsx("img", {
55
55
  ref: ref,
56
56
  src: url,
@@ -59,13 +59,13 @@ const AssetPreview = /*#__PURE__*/ React__namespace.forwardRef(({ mime, url, nam
59
59
  ...props
60
60
  });
61
61
  }
62
- if (assetType === enums.AssetType.Video) {
62
+ if (assetType === enums.ASSET_TYPES.Video) {
63
63
  return /*#__PURE__*/ jsxRuntime.jsx(MuxPlayer__default.default, {
64
64
  src: url,
65
65
  accentColor: theme.colors.primary500
66
66
  });
67
67
  }
68
- if (assetType === enums.AssetType.Audio) {
68
+ if (assetType === enums.ASSET_TYPES.Audio) {
69
69
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
70
70
  margin: "5",
71
71
  children: /*#__PURE__*/ jsxRuntime.jsx("audio", {