@strapi/upload 5.37.0 → 5.38.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 (526) hide show
  1. package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
  2. package/dist/admin/ai/components/AIAssetCard.mjs +1 -1
  3. package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
  4. package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
  5. package/dist/admin/ai/components/AIUploadModal.mjs +1 -1
  6. package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
  7. package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
  8. package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
  9. package/dist/admin/components/AssetCard/AssetCardBase.js.map +1 -1
  10. package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +1 -1
  11. package/dist/admin/components/AssetCard/AudioAssetCard.js.map +1 -1
  12. package/dist/admin/components/AssetCard/AudioAssetCard.mjs.map +1 -1
  13. package/dist/admin/components/AssetCard/AudioPreview.js.map +1 -1
  14. package/dist/admin/components/AssetCard/AudioPreview.mjs.map +1 -1
  15. package/dist/admin/components/AssetCard/DocAssetCard.js.map +1 -1
  16. package/dist/admin/components/AssetCard/DocAssetCard.mjs.map +1 -1
  17. package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
  18. package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
  19. package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
  20. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
  21. package/dist/admin/components/AssetCard/VideoAssetCard.js.map +1 -1
  22. package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +1 -1
  23. package/dist/admin/components/AssetCard/VideoPreview.js.map +1 -1
  24. package/dist/admin/components/AssetCard/VideoPreview.mjs.map +1 -1
  25. package/dist/admin/components/AssetDialog/AssetDialog.js.map +1 -1
  26. package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +1 -1
  27. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +1 -1
  28. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
  29. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +1 -1
  30. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
  31. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +1 -1
  32. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -1
  33. package/dist/admin/components/AssetDialog/BrowseStep/PageSize.js.map +1 -1
  34. package/dist/admin/components/AssetDialog/BrowseStep/PageSize.mjs.map +1 -1
  35. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +1 -1
  36. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs.map +1 -1
  37. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js.map +1 -1
  38. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs.map +1 -1
  39. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -1
  40. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -1
  41. package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.js.map +1 -1
  42. package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.mjs.map +1 -1
  43. package/dist/admin/components/AssetDialog/DialogFooter.js.map +1 -1
  44. package/dist/admin/components/AssetDialog/DialogFooter.mjs.map +1 -1
  45. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -1
  46. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -1
  47. package/dist/admin/components/AssetGridList/AssetGridList.js.map +1 -1
  48. package/dist/admin/components/AssetGridList/AssetGridList.mjs.map +1 -1
  49. package/dist/admin/components/AssetGridList/Draggable.js.map +1 -1
  50. package/dist/admin/components/AssetGridList/Draggable.mjs.map +1 -1
  51. package/dist/admin/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  52. package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
  53. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -1
  54. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -1
  55. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -1
  56. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -1
  57. package/dist/admin/components/ContextInfo/ContextInfo.js.map +1 -1
  58. package/dist/admin/components/ContextInfo/ContextInfo.mjs.map +1 -1
  59. package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +1 -1
  60. package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -1
  61. package/dist/admin/components/EditAssetDialog/DialogHeader.js.map +1 -1
  62. package/dist/admin/components/EditAssetDialog/DialogHeader.mjs.map +1 -1
  63. package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
  64. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
  65. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
  66. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
  67. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -1
  68. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -1
  69. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -1
  70. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -1
  71. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +1 -4
  72. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
  73. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +1 -4
  74. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
  75. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +1 -1
  76. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +1 -1
  77. package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.js.map +1 -1
  78. package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.mjs.map +1 -1
  79. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -1
  80. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -1
  81. package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +1 -1
  82. package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -1
  83. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -1
  84. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -1
  85. package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.js.map +1 -1
  86. package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.mjs.map +1 -1
  87. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js.map +1 -1
  88. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs.map +1 -1
  89. package/dist/admin/components/EmptyAssets/EmptyAssets.js.map +1 -1
  90. package/dist/admin/components/EmptyAssets/EmptyAssets.mjs.map +1 -1
  91. package/dist/admin/components/FilterList/FilterList.js.map +1 -1
  92. package/dist/admin/components/FilterList/FilterList.mjs.map +1 -1
  93. package/dist/admin/components/FilterList/FilterTag.js.map +1 -1
  94. package/dist/admin/components/FilterList/FilterTag.mjs.map +1 -1
  95. package/dist/admin/components/FilterPopover/FilterPopover.js.map +1 -1
  96. package/dist/admin/components/FilterPopover/FilterPopover.mjs.map +1 -1
  97. package/dist/admin/components/FilterPopover/FilterValueInput.js.map +1 -1
  98. package/dist/admin/components/FilterPopover/FilterValueInput.mjs.map +1 -1
  99. package/dist/admin/components/FilterPopover/utils/getFilterList.js.map +1 -1
  100. package/dist/admin/components/FilterPopover/utils/getFilterList.mjs.map +1 -1
  101. package/dist/admin/components/FolderCard/FolderCard/FolderCard.js.map +1 -1
  102. package/dist/admin/components/FolderCard/FolderCard/FolderCard.mjs.map +1 -1
  103. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js.map +1 -1
  104. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +1 -1
  105. package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js.map +1 -1
  106. package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs.map +1 -1
  107. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +1 -1
  108. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +1 -1
  109. package/dist/admin/components/FolderCard/contexts/FolderCard.js.map +1 -1
  110. package/dist/admin/components/FolderCard/contexts/FolderCard.mjs.map +1 -1
  111. package/dist/admin/components/FolderGridList/FolderGridList.js.map +1 -1
  112. package/dist/admin/components/FolderGridList/FolderGridList.mjs.map +1 -1
  113. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.js.map +1 -1
  114. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +1 -1
  115. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
  116. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
  117. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -1
  118. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -1
  119. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -1
  120. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -1
  121. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
  122. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
  123. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
  124. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
  125. package/dist/admin/components/SelectTree/Option.js.map +1 -1
  126. package/dist/admin/components/SelectTree/Option.mjs.map +1 -1
  127. package/dist/admin/components/SelectTree/SelectTree.js.map +1 -1
  128. package/dist/admin/components/SelectTree/SelectTree.mjs +1 -1
  129. package/dist/admin/components/SelectTree/SelectTree.mjs.map +1 -1
  130. package/dist/admin/components/SelectTree/utils/flattenTree.js.map +1 -1
  131. package/dist/admin/components/SelectTree/utils/flattenTree.mjs.map +1 -1
  132. package/dist/admin/components/SelectTree/utils/getOpenValues.js.map +1 -1
  133. package/dist/admin/components/SelectTree/utils/getOpenValues.mjs.map +1 -1
  134. package/dist/admin/components/SelectTree/utils/getValuesToClose.js.map +1 -1
  135. package/dist/admin/components/SelectTree/utils/getValuesToClose.mjs.map +1 -1
  136. package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
  137. package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
  138. package/dist/admin/components/TableList/CellContent.js.map +1 -1
  139. package/dist/admin/components/TableList/CellContent.mjs.map +1 -1
  140. package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
  141. package/dist/admin/components/TableList/PreviewCell.mjs +1 -1
  142. package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
  143. package/dist/admin/components/TableList/TableList.js.map +1 -1
  144. package/dist/admin/components/TableList/TableList.mjs +1 -1
  145. package/dist/admin/components/TableList/TableList.mjs.map +1 -1
  146. package/dist/admin/components/TableList/TableRows.js.map +1 -1
  147. package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
  148. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -1
  149. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -1
  150. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
  151. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
  152. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -1
  153. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -1
  154. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
  155. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
  156. package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.js.map +1 -1
  157. package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.mjs.map +1 -1
  158. package/dist/admin/components/UploadProgress/UploadProgress.js.map +1 -1
  159. package/dist/admin/components/UploadProgress/UploadProgress.mjs.map +1 -1
  160. package/dist/admin/constants.js.map +1 -1
  161. package/dist/admin/constants.mjs.map +1 -1
  162. package/dist/admin/future/App.js.map +1 -1
  163. package/dist/admin/future/App.mjs.map +1 -1
  164. package/dist/admin/future/components/Drawer.js +189 -0
  165. package/dist/admin/future/components/Drawer.js.map +1 -0
  166. package/dist/admin/future/components/Drawer.mjs +166 -0
  167. package/dist/admin/future/components/Drawer.mjs.map +1 -0
  168. package/dist/admin/future/components/UploadProgressDialog.js +60 -101
  169. package/dist/admin/future/components/UploadProgressDialog.js.map +1 -1
  170. package/dist/admin/future/components/UploadProgressDialog.mjs +62 -84
  171. package/dist/admin/future/components/UploadProgressDialog.mjs.map +1 -1
  172. package/dist/admin/future/pages/Assets/AssetsPage.js +155 -100
  173. package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -1
  174. package/dist/admin/future/pages/Assets/AssetsPage.mjs +160 -105
  175. package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -1
  176. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +406 -0
  177. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -0
  178. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +384 -0
  179. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -0
  180. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js +215 -0
  181. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js.map +1 -0
  182. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs +194 -0
  183. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +1 -0
  184. package/dist/admin/future/pages/Assets/components/AssetsGrid.js +37 -8
  185. package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -1
  186. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +38 -9
  187. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -1
  188. package/dist/admin/future/pages/Assets/components/AssetsTable.js +35 -5
  189. package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +1 -1
  190. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs +37 -7
  191. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +1 -1
  192. package/dist/admin/future/pages/Assets/components/CreateFolderDialog.js +143 -0
  193. package/dist/admin/future/pages/Assets/components/CreateFolderDialog.js.map +1 -0
  194. package/dist/admin/future/pages/Assets/components/CreateFolderDialog.mjs +141 -0
  195. package/dist/admin/future/pages/Assets/components/CreateFolderDialog.mjs.map +1 -0
  196. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -1
  197. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs.map +1 -1
  198. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -1
  199. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -1
  200. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js +127 -0
  201. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js.map +1 -0
  202. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.mjs +106 -0
  203. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.mjs.map +1 -0
  204. package/dist/admin/future/pages/Assets/constants.js.map +1 -1
  205. package/dist/admin/future/pages/Assets/constants.mjs.map +1 -1
  206. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.js.map +1 -1
  207. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.mjs.map +1 -1
  208. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js.map +1 -1
  209. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -1
  210. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js.map +1 -1
  211. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs.map +1 -1
  212. package/dist/admin/future/services/api.js +181 -97
  213. package/dist/admin/future/services/api.js.map +1 -1
  214. package/dist/admin/future/services/api.mjs +181 -98
  215. package/dist/admin/future/services/api.mjs.map +1 -1
  216. package/dist/admin/future/services/assets.js +14 -1
  217. package/dist/admin/future/services/assets.js.map +1 -1
  218. package/dist/admin/future/services/assets.mjs +14 -2
  219. package/dist/admin/future/services/assets.mjs.map +1 -1
  220. package/dist/admin/future/services/folders.js +16 -1
  221. package/dist/admin/future/services/folders.js.map +1 -1
  222. package/dist/admin/future/services/folders.mjs +16 -2
  223. package/dist/admin/future/services/folders.mjs.map +1 -1
  224. package/dist/admin/future/store/hooks.js.map +1 -1
  225. package/dist/admin/future/store/hooks.mjs.map +1 -1
  226. package/dist/admin/future/store/uploadProgress.js +7 -4
  227. package/dist/admin/future/store/uploadProgress.js.map +1 -1
  228. package/dist/admin/future/store/uploadProgress.mjs +7 -4
  229. package/dist/admin/future/store/uploadProgress.mjs.map +1 -1
  230. package/dist/admin/future/utils/files.js +105 -3
  231. package/dist/admin/future/utils/files.js.map +1 -1
  232. package/dist/admin/future/utils/files.mjs +104 -4
  233. package/dist/admin/future/utils/files.mjs.map +1 -1
  234. package/dist/admin/future/utils/getAssetIcon.js +3 -3
  235. package/dist/admin/future/utils/getAssetIcon.js.map +1 -1
  236. package/dist/admin/future/utils/getAssetIcon.mjs +4 -4
  237. package/dist/admin/future/utils/getAssetIcon.mjs.map +1 -1
  238. package/dist/admin/future/utils/translations.js.map +1 -1
  239. package/dist/admin/future/utils/translations.mjs.map +1 -1
  240. package/dist/admin/hooks/useAIMetadataJob.js.map +1 -1
  241. package/dist/admin/hooks/useAIMetadataJob.mjs.map +1 -1
  242. package/dist/admin/hooks/useAiAvailability.js.map +1 -1
  243. package/dist/admin/hooks/useAiAvailability.mjs.map +1 -1
  244. package/dist/admin/hooks/useAssets.js.map +1 -1
  245. package/dist/admin/hooks/useAssets.mjs.map +1 -1
  246. package/dist/admin/hooks/useBulkEdit.js.map +1 -1
  247. package/dist/admin/hooks/useBulkEdit.mjs.map +1 -1
  248. package/dist/admin/hooks/useBulkMove.js.map +1 -1
  249. package/dist/admin/hooks/useBulkMove.mjs.map +1 -1
  250. package/dist/admin/hooks/useBulkRemove.js.map +1 -1
  251. package/dist/admin/hooks/useBulkRemove.mjs.map +1 -1
  252. package/dist/admin/hooks/useConfig.js.map +1 -1
  253. package/dist/admin/hooks/useConfig.mjs.map +1 -1
  254. package/dist/admin/hooks/useCropImg.js.map +1 -1
  255. package/dist/admin/hooks/useCropImg.mjs.map +1 -1
  256. package/dist/admin/hooks/useEditAsset.js.map +1 -1
  257. package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
  258. package/dist/admin/hooks/useEditFolder.js.map +1 -1
  259. package/dist/admin/hooks/useEditFolder.mjs.map +1 -1
  260. package/dist/admin/hooks/useFolder.js.map +1 -1
  261. package/dist/admin/hooks/useFolder.mjs.map +1 -1
  262. package/dist/admin/hooks/useFolderStructure.js.map +1 -1
  263. package/dist/admin/hooks/useFolderStructure.mjs.map +1 -1
  264. package/dist/admin/hooks/useFolders.js.map +1 -1
  265. package/dist/admin/hooks/useFolders.mjs.map +1 -1
  266. package/dist/admin/hooks/useMediaLibraryPermissions.js.map +1 -1
  267. package/dist/admin/hooks/useMediaLibraryPermissions.mjs.map +1 -1
  268. package/dist/admin/hooks/useModalQueryParams.js.map +1 -1
  269. package/dist/admin/hooks/useModalQueryParams.mjs.map +1 -1
  270. package/dist/admin/hooks/usePersistentState.js.map +1 -1
  271. package/dist/admin/hooks/usePersistentState.mjs.map +1 -1
  272. package/dist/admin/hooks/useRemoveAsset.js.map +1 -1
  273. package/dist/admin/hooks/useRemoveAsset.mjs.map +1 -1
  274. package/dist/admin/hooks/useSelectionState.js.map +1 -1
  275. package/dist/admin/hooks/useSelectionState.mjs.map +1 -1
  276. package/dist/admin/hooks/useSettings.js.map +1 -1
  277. package/dist/admin/hooks/useSettings.mjs.map +1 -1
  278. package/dist/admin/hooks/useTracking.js.map +1 -1
  279. package/dist/admin/hooks/useTracking.mjs.map +1 -1
  280. package/dist/admin/hooks/useUpload.js.map +1 -1
  281. package/dist/admin/hooks/useUpload.mjs.map +1 -1
  282. package/dist/admin/hooks/utils/renameKeys.js.map +1 -1
  283. package/dist/admin/hooks/utils/renameKeys.mjs.map +1 -1
  284. package/dist/admin/index.js.map +1 -1
  285. package/dist/admin/index.mjs.map +1 -1
  286. package/dist/admin/package.json.js +1 -152
  287. package/dist/admin/package.json.js.map +1 -1
  288. package/dist/admin/package.json.mjs +2 -141
  289. package/dist/admin/package.json.mjs.map +1 -1
  290. package/dist/admin/pages/App/App.js.map +1 -1
  291. package/dist/admin/pages/App/App.mjs.map +1 -1
  292. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
  293. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +3 -3
  294. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
  295. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
  296. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
  297. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js.map +1 -1
  298. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs.map +1 -1
  299. package/dist/admin/pages/App/ConfigureTheView/state/actions.js.map +1 -1
  300. package/dist/admin/pages/App/ConfigureTheView/state/actions.mjs.map +1 -1
  301. package/dist/admin/pages/App/ConfigureTheView/state/init.js.map +1 -1
  302. package/dist/admin/pages/App/ConfigureTheView/state/init.mjs.map +1 -1
  303. package/dist/admin/pages/App/ConfigureTheView/state/reducer.js.map +1 -1
  304. package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs +1 -1
  305. package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs.map +1 -1
  306. package/dist/admin/pages/App/MediaLibrary.js +1 -1
  307. package/dist/admin/pages/App/MediaLibrary.js.map +1 -1
  308. package/dist/admin/pages/App/MediaLibrary.mjs +2 -2
  309. package/dist/admin/pages/App/MediaLibrary.mjs.map +1 -1
  310. package/dist/admin/pages/App/components/BulkActions.js.map +1 -1
  311. package/dist/admin/pages/App/components/BulkActions.mjs.map +1 -1
  312. package/dist/admin/pages/App/components/BulkDeleteButton.js.map +1 -1
  313. package/dist/admin/pages/App/components/BulkDeleteButton.mjs.map +1 -1
  314. package/dist/admin/pages/App/components/BulkMoveButton.js.map +1 -1
  315. package/dist/admin/pages/App/components/BulkMoveButton.mjs.map +1 -1
  316. package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +1 -1
  317. package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -1
  318. package/dist/admin/pages/App/components/Filters.js.map +1 -1
  319. package/dist/admin/pages/App/components/Filters.mjs.map +1 -1
  320. package/dist/admin/pages/App/components/Header.js.map +1 -1
  321. package/dist/admin/pages/App/components/Header.mjs +2 -2
  322. package/dist/admin/pages/App/components/Header.mjs.map +1 -1
  323. package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
  324. package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
  325. package/dist/admin/pages/SettingsPage/reducer.js.map +1 -1
  326. package/dist/admin/pages/SettingsPage/reducer.mjs.map +1 -1
  327. package/dist/admin/pluginId.js.map +1 -1
  328. package/dist/admin/pluginId.mjs.map +1 -1
  329. package/dist/admin/src/future/components/Drawer.d.ts +32 -0
  330. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +8 -0
  331. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetPreview.d.ts +6 -0
  332. package/dist/admin/src/future/pages/Assets/components/AssetsGrid.d.ts +2 -1
  333. package/dist/admin/src/future/pages/Assets/components/AssetsTable.d.ts +2 -1
  334. package/dist/admin/src/future/pages/Assets/components/CreateFolderDialog.d.ts +8 -0
  335. package/dist/admin/src/future/pages/Assets/components/ImportFromUrlDialog.d.ts +7 -0
  336. package/dist/admin/src/future/services/api.d.ts +10 -1
  337. package/dist/admin/src/future/services/assets.d.ts +2 -2
  338. package/dist/admin/src/future/services/folders.d.ts +1 -1
  339. package/dist/admin/src/future/store/uploadProgress.d.ts +1 -1
  340. package/dist/admin/src/future/utils/files.d.ts +70 -0
  341. package/dist/admin/translations/en.json.js +35 -3
  342. package/dist/admin/translations/en.json.js.map +1 -1
  343. package/dist/admin/translations/en.json.mjs +35 -3
  344. package/dist/admin/translations/en.json.mjs.map +1 -1
  345. package/dist/admin/translations/es.json.js +1 -1
  346. package/dist/admin/translations/es.json.mjs +1 -1
  347. package/dist/admin/utils/appendSearchParamsToUrl.js.map +1 -1
  348. package/dist/admin/utils/appendSearchParamsToUrl.mjs.map +1 -1
  349. package/dist/admin/utils/containsAssetFilter.js.map +1 -1
  350. package/dist/admin/utils/containsAssetFilter.mjs.map +1 -1
  351. package/dist/admin/utils/createAssetUrl.js.map +1 -1
  352. package/dist/admin/utils/createAssetUrl.mjs.map +1 -1
  353. package/dist/admin/utils/displayedFilters.js.map +1 -1
  354. package/dist/admin/utils/displayedFilters.mjs.map +1 -1
  355. package/dist/admin/utils/downloadFile.js.map +1 -1
  356. package/dist/admin/utils/downloadFile.mjs.map +1 -1
  357. package/dist/admin/utils/findRecursiveFolderByValue.js.map +1 -1
  358. package/dist/admin/utils/findRecursiveFolderByValue.mjs.map +1 -1
  359. package/dist/admin/utils/formatBytes.js.map +1 -1
  360. package/dist/admin/utils/formatBytes.mjs.map +1 -1
  361. package/dist/admin/utils/formatDuration.js.map +1 -1
  362. package/dist/admin/utils/formatDuration.mjs.map +1 -1
  363. package/dist/admin/utils/getAPIInnerErrors.js.map +1 -1
  364. package/dist/admin/utils/getAPIInnerErrors.mjs.map +1 -1
  365. package/dist/admin/utils/getAllowedFiles.js.map +1 -1
  366. package/dist/admin/utils/getAllowedFiles.mjs.map +1 -1
  367. package/dist/admin/utils/getBreadcrumbDataCM.js.map +1 -1
  368. package/dist/admin/utils/getBreadcrumbDataCM.mjs.map +1 -1
  369. package/dist/admin/utils/getBreadcrumbDataML.js.map +1 -1
  370. package/dist/admin/utils/getBreadcrumbDataML.mjs.map +1 -1
  371. package/dist/admin/utils/getFileExtension.js.map +1 -1
  372. package/dist/admin/utils/getFileExtension.mjs.map +1 -1
  373. package/dist/admin/utils/getFolderParents.js.map +1 -1
  374. package/dist/admin/utils/getFolderParents.mjs.map +1 -1
  375. package/dist/admin/utils/getFolderURL.js.map +1 -1
  376. package/dist/admin/utils/getFolderURL.mjs.map +1 -1
  377. package/dist/admin/utils/getTrad.js.map +1 -1
  378. package/dist/admin/utils/getTrad.mjs.map +1 -1
  379. package/dist/admin/utils/icons.js.map +1 -1
  380. package/dist/admin/utils/icons.mjs +1 -1
  381. package/dist/admin/utils/icons.mjs.map +1 -1
  382. package/dist/admin/utils/moveElement.js.map +1 -1
  383. package/dist/admin/utils/moveElement.mjs.map +1 -1
  384. package/dist/admin/utils/normalizeAPIError.js.map +1 -1
  385. package/dist/admin/utils/normalizeAPIError.mjs.map +1 -1
  386. package/dist/admin/utils/prefixFileUrlWithBackendUrl.js.map +1 -1
  387. package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs.map +1 -1
  388. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  389. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  390. package/dist/admin/utils/rawFileToAsset.js.map +1 -1
  391. package/dist/admin/utils/rawFileToAsset.mjs.map +1 -1
  392. package/dist/admin/utils/toSingularTypes.js.map +1 -1
  393. package/dist/admin/utils/toSingularTypes.mjs.map +1 -1
  394. package/dist/admin/utils/typeFromMime.js.map +1 -1
  395. package/dist/admin/utils/typeFromMime.mjs.map +1 -1
  396. package/dist/admin/utils/urlYupSchema.js.map +1 -1
  397. package/dist/admin/utils/urlYupSchema.mjs.map +1 -1
  398. package/dist/admin/utils/urlsToAssets.js.map +1 -1
  399. package/dist/admin/utils/urlsToAssets.mjs.map +1 -1
  400. package/dist/server/bootstrap.js.map +1 -1
  401. package/dist/server/bootstrap.mjs.map +1 -1
  402. package/dist/server/config.js.map +1 -1
  403. package/dist/server/config.mjs.map +1 -1
  404. package/dist/server/constants.js.map +1 -1
  405. package/dist/server/constants.mjs.map +1 -1
  406. package/dist/server/content-types/file.js.map +1 -1
  407. package/dist/server/content-types/file.mjs.map +1 -1
  408. package/dist/server/content-types/folder.js.map +1 -1
  409. package/dist/server/content-types/folder.mjs +1 -1
  410. package/dist/server/content-types/folder.mjs.map +1 -1
  411. package/dist/server/content-types/index.js.map +1 -1
  412. package/dist/server/content-types/index.mjs.map +1 -1
  413. package/dist/server/controllers/admin-file.js.map +1 -1
  414. package/dist/server/controllers/admin-file.mjs +1 -1
  415. package/dist/server/controllers/admin-file.mjs.map +1 -1
  416. package/dist/server/controllers/admin-folder-file.js.map +1 -1
  417. package/dist/server/controllers/admin-folder-file.mjs +2 -2
  418. package/dist/server/controllers/admin-folder-file.mjs.map +1 -1
  419. package/dist/server/controllers/admin-folder.js.map +1 -1
  420. package/dist/server/controllers/admin-folder.mjs +1 -1
  421. package/dist/server/controllers/admin-folder.mjs.map +1 -1
  422. package/dist/server/controllers/admin-settings.js.map +1 -1
  423. package/dist/server/controllers/admin-settings.mjs.map +1 -1
  424. package/dist/server/controllers/admin-upload.js +144 -0
  425. package/dist/server/controllers/admin-upload.js.map +1 -1
  426. package/dist/server/controllers/admin-upload.mjs +147 -3
  427. package/dist/server/controllers/admin-upload.mjs.map +1 -1
  428. package/dist/server/controllers/content-api.js.map +1 -1
  429. package/dist/server/controllers/content-api.mjs.map +1 -1
  430. package/dist/server/controllers/index.js.map +1 -1
  431. package/dist/server/controllers/index.mjs.map +1 -1
  432. package/dist/server/controllers/utils/find-entity-and-check-permissions.js.map +1 -1
  433. package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs.map +1 -1
  434. package/dist/server/controllers/utils/folders.js.map +1 -1
  435. package/dist/server/controllers/utils/folders.mjs.map +1 -1
  436. package/dist/server/controllers/validation/admin/configureView.js.map +1 -1
  437. package/dist/server/controllers/validation/admin/configureView.mjs.map +1 -1
  438. package/dist/server/controllers/validation/admin/folder-file.js.map +1 -1
  439. package/dist/server/controllers/validation/admin/folder-file.mjs.map +1 -1
  440. package/dist/server/controllers/validation/admin/folder.js.map +1 -1
  441. package/dist/server/controllers/validation/admin/folder.mjs.map +1 -1
  442. package/dist/server/controllers/validation/admin/settings.js.map +1 -1
  443. package/dist/server/controllers/validation/admin/settings.mjs.map +1 -1
  444. package/dist/server/controllers/validation/admin/upload.js.map +1 -1
  445. package/dist/server/controllers/validation/admin/upload.mjs.map +1 -1
  446. package/dist/server/controllers/validation/admin/utils.js.map +1 -1
  447. package/dist/server/controllers/validation/admin/utils.mjs.map +1 -1
  448. package/dist/server/controllers/validation/content-api/upload.js.map +1 -1
  449. package/dist/server/controllers/validation/content-api/upload.mjs.map +1 -1
  450. package/dist/server/controllers/view-configuration.js.map +1 -1
  451. package/dist/server/controllers/view-configuration.mjs.map +1 -1
  452. package/dist/server/graphql.js.map +1 -1
  453. package/dist/server/graphql.mjs.map +1 -1
  454. package/dist/server/index.js +8 -8
  455. package/dist/server/middlewares/upload.js.map +1 -1
  456. package/dist/server/middlewares/upload.mjs.map +1 -1
  457. package/dist/server/models/ai-metadata-job.js.map +1 -1
  458. package/dist/server/models/ai-metadata-job.mjs.map +1 -1
  459. package/dist/server/register.js.map +1 -1
  460. package/dist/server/register.mjs.map +1 -1
  461. package/dist/server/routes/admin.js +10 -0
  462. package/dist/server/routes/admin.js.map +1 -1
  463. package/dist/server/routes/admin.mjs +10 -0
  464. package/dist/server/routes/admin.mjs.map +1 -1
  465. package/dist/server/routes/content-api.js.map +1 -1
  466. package/dist/server/routes/content-api.mjs.map +1 -1
  467. package/dist/server/routes/index.js.map +1 -1
  468. package/dist/server/routes/index.mjs +4 -4
  469. package/dist/server/routes/index.mjs.map +1 -1
  470. package/dist/server/routes/validation/upload.js.map +1 -1
  471. package/dist/server/routes/validation/upload.mjs.map +1 -1
  472. package/dist/server/routes/view-configuration.js.map +1 -1
  473. package/dist/server/routes/view-configuration.mjs.map +1 -1
  474. package/dist/server/services/ai-metadata-jobs.js.map +1 -1
  475. package/dist/server/services/ai-metadata-jobs.mjs.map +1 -1
  476. package/dist/server/services/ai-metadata.js.map +1 -1
  477. package/dist/server/services/ai-metadata.mjs.map +1 -1
  478. package/dist/server/services/api-upload-folder.js.map +1 -1
  479. package/dist/server/services/api-upload-folder.mjs.map +1 -1
  480. package/dist/server/services/extensions/index.js.map +1 -1
  481. package/dist/server/services/extensions/index.mjs.map +1 -1
  482. package/dist/server/services/extensions/utils.js.map +1 -1
  483. package/dist/server/services/extensions/utils.mjs.map +1 -1
  484. package/dist/server/services/file.js +120 -1
  485. package/dist/server/services/file.js.map +1 -1
  486. package/dist/server/services/file.mjs +122 -3
  487. package/dist/server/services/file.mjs.map +1 -1
  488. package/dist/server/services/folder.js.map +1 -1
  489. package/dist/server/services/folder.mjs +1 -1
  490. package/dist/server/services/folder.mjs.map +1 -1
  491. package/dist/server/services/image-manipulation.js.map +1 -1
  492. package/dist/server/services/image-manipulation.mjs +1 -1
  493. package/dist/server/services/image-manipulation.mjs.map +1 -1
  494. package/dist/server/services/index.js.map +1 -1
  495. package/dist/server/services/index.mjs.map +1 -1
  496. package/dist/server/services/metrics.js.map +1 -1
  497. package/dist/server/services/metrics.mjs.map +1 -1
  498. package/dist/server/services/provider.js.map +1 -1
  499. package/dist/server/services/provider.mjs.map +1 -1
  500. package/dist/server/services/upload.js.map +1 -1
  501. package/dist/server/services/upload.mjs +1 -1
  502. package/dist/server/services/upload.mjs.map +1 -1
  503. package/dist/server/services/weekly-metrics.js.map +1 -1
  504. package/dist/server/services/weekly-metrics.mjs.map +1 -1
  505. package/dist/server/src/controllers/admin-upload.d.ts +13 -0
  506. package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
  507. package/dist/server/src/controllers/index.d.ts +1 -0
  508. package/dist/server/src/controllers/index.d.ts.map +1 -1
  509. package/dist/server/src/index.d.ts +2 -0
  510. package/dist/server/src/index.d.ts.map +1 -1
  511. package/dist/server/src/routes/admin.d.ts.map +1 -1
  512. package/dist/server/src/services/file.d.ts +15 -0
  513. package/dist/server/src/services/file.d.ts.map +1 -1
  514. package/dist/server/src/services/index.d.ts +1 -0
  515. package/dist/server/src/services/index.d.ts.map +1 -1
  516. package/dist/server/utils/cron.js.map +1 -1
  517. package/dist/server/utils/cron.mjs.map +1 -1
  518. package/dist/server/utils/images.js.map +1 -1
  519. package/dist/server/utils/images.mjs.map +1 -1
  520. package/dist/server/utils/index.js.map +1 -1
  521. package/dist/server/utils/index.mjs.map +1 -1
  522. package/dist/server/utils/mime-validation.js.map +1 -1
  523. package/dist/server/utils/mime-validation.mjs.map +1 -1
  524. package/dist/shared/contracts/files.d.ts +11 -0
  525. package/dist/shared/contracts/files.d.ts.map +1 -1
  526. package/package.json +8 -8
@@ -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 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\nexport const EditAssetContent = ({\n onClose,\n asset,\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;\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","EditAssetContent","onClose","asset","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","value","isLocal","editedAsset","assetType","mime","split","didChangeLocation","id","location","type","changeLocation","handleStartCropping","handleCancelCropping","handleFinishCropping","handleFocalPointStart","handleFocalPointCancel","formDisabled","handleConfirmClose","confirm","window","defaultMessage","activeFolderId","initialFormData","undefined","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,MAAMA,WAAAA,GAAcC,uBAAOC,CAAAA,iBAAAA,CAAK;;AAElB,cAAA,EAAE,IAAM,CAAC,kBAAkB,CAAC,CAAC;AAC3C,CAAC;AAED,MAAMC,gBAAAA,GAAmBC,cACtBC,CAAAA,MAAM,CAAC;IACNC,CAAGF,EAAAA,cAAAA,CAAIG,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAGC,CAAAA,CAAAA,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ,EAAA;IACxCC,CAAGP,EAAAA,cAAAA,CAAIG,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAGC,CAAAA,CAAAA,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ;AAC1C,CACCE,CAAAA,CAAAA,QAAQ,EACRC,CAAAA,OAAO,CAAC,IAAA,CAAA;AAEX,MAAMC,cAAAA,GAAiBV,cAAIC,CAAAA,MAAM,CAAC;IAChCU,IAAMX,EAAAA,cAAAA,CAAIY,MAAM,EAAA,CAAGN,QAAQ,EAAA;AAC3BO,IAAAA,eAAAA,EAAiBb,eAAIY,MAAM,EAAA;AAC3BE,IAAAA,OAAAA,EAASd,eAAIY,MAAM,EAAA;IACnBG,UAAYhB,EAAAA,gBAAAA;AACZiB,IAAAA,MAAAA,EAAQhB,eAAIG,MAAM;AACpB,CAAA,CAAA;AA8BO,MAAMc,gBAAmB,GAAA,CAAC,EAC/BC,OAAO,EACPC,KAAK,EACLC,SAAY,GAAA,KAAK,EACjBC,WAAAA,GAAc,KAAK,EACnBC,WAAAA,GAAc,KAAK,EACnBC,eAAe,EACfC,aAAa,EAAE,EACfC,WAAc,GAAA,EAAE,EACM,GAAA;AACtB,IAAA,MAAM,EAAEC,aAAa,EAAEC,UAAU,EAAE,GAAGC,iBAAAA,EAAAA;IACtC,MAAM,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;IACvB,MAAMC,eAAAA,GAAkBC,gBAAMC,CAAAA,MAAM,CAAoB,IAAA,CAAA;AACxD,IAAA,MAAM,CAACC,UAAYC,EAAAA,aAAAA,CAAc,GAAGH,gBAAAA,CAAMI,QAAQ,CAAC,KAAA,CAAA;AACnD,IAAA,MAAM,CAACC,gBAAkBC,EAAAA,mBAAAA,CAAoB,GAAGN,gBAAAA,CAAMI,QAAQ,CAAC,KAAA,CAAA;AAC/D,IAAA,MAAM,CAACG,eAAAA,EAAiBC,kBAAmB,CAAA,GAAGR,iBAAMI,QAAQ,EAAA;AAC5D,IAAA,MAAM,EAAEK,SAAS,EAAEC,SAAS,EAAE,GAAGC,yBAAAA,EAAAA;IAEjC,MAAM,EAAEC,MAAMC,eAAe,EAAEH,WAAWI,wBAAwB,EAAE,GAAGC,qCAAmB,CAAA;QACxFC,OAAS,EAAA;AACX,KAAA,CAAA;AAEA,IAAA,MAAMC,eAAe,OAAOC,MAAAA,GAAAA;AAC1B,QAAA,MAAMC,SAAY,GAAA;AAAE,YAAA,GAAGhC,KAAK;AAAE,YAAA,GAAG+B,MAAM;YAAElC,MAAQkC,EAAAA,MAAAA,CAAOE,MAAM,EAAEC;AAAM,SAAA;AAEtE,QAAA,IAAIlC,OAAOmC,OAAS,EAAA;YAClBpC,OAAQiC,CAAAA,SAAAA,CAAAA;SACH,MAAA;YACL,MAAMI,WAAAA,GAAe,MAAMd,SAAAA,CAAUU,SAAWZ,EAAAA,eAAAA,CAAAA;AAEhD,YAAA,MAAMiB,YAAYrC,KAAOsC,EAAAA,IAAAA,EAAMC,KAAM,CAAA,GAAA,CAAI,CAAC,CAAE,CAAA;;;YAG5C,MAAMC,iBAAAA,GAAoBxC,OAAOH,MAAQ4C,EAAAA,EAAAA,GACrCzC,MAAMH,MAAM,CAAC4C,EAAE,KAAKV,MAAAA,CAAOE,MAAM,EAAEC,KAAAA,GACnClC,OAAOH,MAAW,KAAA,IAAA,IAAQ,CAAC,CAACkC,MAAAA,CAAOE,MAAM,EAAEC,KAAAA;AAE/CxB,YAAAA,UAAAA,CAAW,6BAA+B,EAAA;gBACxCgC,QAAUtC,EAAAA,eAAAA;gBACVuC,IAAMN,EAAAA,SAAAA;gBACNO,cAAgBJ,EAAAA;AAClB,aAAA,CAAA;YAEAzC,OAAQqC,CAAAA,WAAAA,CAAAA;AACV;AACF,KAAA;AAEA,IAAA,MAAMS,mBAAsB,GAAA,IAAA;QAC1B7B,aAAc,CAAA,IAAA,CAAA;AAChB,KAAA;AAEA,IAAA,MAAM8B,oBAAuB,GAAA,IAAA;QAC3B9B,aAAc,CAAA,KAAA,CAAA;AAChB,KAAA;AAEA,IAAA,MAAM+B,oBAAuB,GAAA,IAAA;QAC3B/B,aAAc,CAAA,KAAA,CAAA;AACdjB,QAAAA,OAAAA,EAAAA;AACF,KAAA;AAEA,IAAA,MAAMiD,qBAAwB,GAAA,IAAA;QAC5B7B,mBAAoB,CAAA,IAAA,CAAA;AACtB,KAAA;AAEA,IAAA,MAAM8B,sBAAyB,GAAA,IAAA;QAC7B9B,mBAAoB,CAAA,KAAA,CAAA;AACtB,KAAA;IAEA,MAAM+B,YAAAA,GAAe,CAACjD,SAAAA,IAAac,UAAcG,IAAAA,gBAAAA;AAEjD,IAAA,MAAMiC,kBAAqB,GAAA,IAAA;;AAEzB,QAAA,MAAMC,OAAUC,GAAAA,MAAAA,CAAOD,OAAO,CAC5B7C,aAAc,CAAA;YACZkC,EAAI,EAAA,iCAAA;YACJa,cAAgB,EAAA;AAClB,SAAA,CAAA,CAAA;AAGF,QAAA,IAAIF,OAAS,EAAA;AACXrD,YAAAA,OAAAA,EAAAA;AACF;AACF,KAAA;IAEA,MAAMwD,cAAAA,GAAiBvD,OAAOH,MAAQ4C,EAAAA,EAAAA;IACtC,MAAMe,eAAAA,GAAkB,CAAC7B,wBAA4B,IAAA;AACnDnC,QAAAA,IAAAA,EAAMQ,KAAOR,EAAAA,IAAAA;AACbE,QAAAA,eAAAA,EAAiBM,OAAON,eAAmB+D,IAAAA,SAAAA;AAC3C9D,QAAAA,OAAAA,EAASK,OAAOL,OAAW8D,IAAAA,SAAAA;AAC3B7D,QAAAA,UAAAA,EAAYI,OAAOJ,UAAc,IAAA,IAAA;QACjCqC,MAAQ,EAAA;AACNC,YAAAA,KAAAA,EAAOqB,cAAkBE,IAAAA,SAAAA;YACzBC,KACEC,EAAAA,qDAAAA,CAA2BjC,iBAAkB6B,cAAkBG,CAAAA,EAAAA,KAAAA,IAC/DhC,eAAgB,CAAC,CAAA,CAAE,CAACgC;AACxB;AACF,KAAA;AAEA,IAAA,MAAME,cAAc,CAAC7B,MAAAA,GAAAA;QACnB,IAAI,CAAC8B,OAAQL,CAAAA,eAAAA,EAAiBzB,MAAS,CAAA,EAAA;AACrCoB,YAAAA,kBAAAA,EAAAA;SACK,MAAA;AACLpD,YAAAA,OAAAA,EAAAA;AACF;AACF,KAAA;AAEA,IAAA,IAAI4B,wBAA0B,EAAA;QAC5B,qBACEmC,eAAA,CAAAC,mBAAA,EAAA;;8BACEC,cAACC,CAAAA,yBAAAA,EAAAA,EAAAA,CAAAA;8BACDD,cAACvF,CAAAA,WAAAA,EAAAA;oBAAYyF,SAAU,EAAA,MAAA;oBAAOC,cAAe,EAAA,QAAA;oBAASC,UAAY,EAAA,CAAA;oBAAGC,aAAe,EAAA,CAAA;AAClF,oBAAA,QAAA,gBAAAL,cAACM,CAAAA,mBAAAA,EAAAA;kCACE/D,aAAc,CAAA;AACbkC,4BAAAA,EAAAA,EAAI8B,eAAQ,CAAA,mBAAA,CAAA;4BACZjB,cAAgB,EAAA;AAClB,yBAAA;;;AAGJ,8BAAAU,cAAA,CAACQ,mBAAMC,MAAM,EAAA;AACX,oBAAA,QAAA,gBAAAT,cAACU,CAAAA,mBAAAA,EAAAA;AAAOC,wBAAAA,OAAAA,EAAS,IAAMf,WAAAA,EAAAA;wBAAegB,OAAQ,EAAA,UAAA;kCAC3CrE,aAAc,CAAA;4BAAEkC,EAAI,EAAA,QAAA;4BAAUa,cAAgB,EAAA;AAAS,yBAAA;;;;;AAKlE;AAEA,IAAA,qBACEU,cAACa,CAAAA,aAAAA,EAAAA;QACCC,gBAAkBvF,EAAAA,cAAAA;QAClBwF,gBAAkB,EAAA,KAAA;QAClBC,QAAUlD,EAAAA,YAAAA;QACVmD,aAAezB,EAAAA,eAAAA;kBAEd,CAAC,EAAEzB,MAAM,EAAEmD,MAAM,EAAEC,YAAY,EAAEC,aAAa,EAAE,iBAC/CtB,eAAA,CAAAC,mBAAA,EAAA;;kCACEC,cAACC,CAAAA,yBAAAA,EAAAA,EAAAA,CAAAA;AACD,kCAAAD,cAAA,CAACQ,mBAAMa,IAAI,EAAA;gDACTvB,eAAA,CAACwB,kBAAKC,IAAI,EAAA;4BAACC,GAAK,EAAA,CAAA;;AACd,8CAAAxB,cAAA,CAACsB,kBAAKG,IAAI,EAAA;oCAACC,EAAI,EAAA,EAAA;oCAAIC,GAAK,EAAA,CAAA;oCAAGC,SAAU,EAAA,QAAA;oCAASC,UAAW,EAAA,SAAA;AACvD,oCAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,qBAAAA,EAAAA;wCACC9F,KAAOA,EAAAA,KAAAA;wCACPC,SAAWA,EAAAA,SAAAA;wCACXC,WAAaA,EAAAA,WAAAA;wCACbC,WAAaA,EAAAA,WAAAA;wCACb4F,QAAUhG,EAAAA,OAAAA;wCACViG,YAAcjD,EAAAA,oBAAAA;wCACdkD,WAAapD,EAAAA,mBAAAA;wCACbqD,YAAcpD,EAAAA,oBAAAA;wCACd1B,eAAiBA,EAAAA,eAAAA;wCACjBhB,eAAiBA,EAAAA,eAAAA;AACjB+F,wCAAAA,cAAAA,EAAgBpE,OAAOnC,UAAU;wCACjCwG,iBAAmBpD,EAAAA,qBAAAA;AACnBqD,wCAAAA,kBAAAA,EAAoB,CAACzG,UAAAA,GAAAA;4CACnBuB,mBAAoB,CAAA,KAAA,CAAA;AACpBiE,4CAAAA,aAAAA,CAAc,YAAcxF,EAAAA,UAAAA,CAAAA;AAC9B,yCAAA;wCACA0G,kBAAoBrD,EAAAA;;;AAGxB,8CAAAe,cAAA,CAACsB,kBAAKG,IAAI,EAAA;oCAACC,EAAI,EAAA,EAAA;oCAAIC,GAAK,EAAA,CAAA;oCAAGC,SAAU,EAAA,QAAA;oCAASC,UAAW,EAAA,SAAA;AACvD,oCAAA,QAAA,gBAAA/B,eAACyC,CAAAA,WAAAA,EAAAA;wCAAKC,UAAU,EAAA,IAAA;;0DACd1C,eAACnF,CAAAA,iBAAAA,EAAAA;gDAAKiH,SAAU,EAAA,QAAA;gDAASC,UAAW,EAAA,SAAA;gDAAUL,GAAK,EAAA,CAAA;;kEACjDxB,cAACyC,CAAAA,uBAAAA,EAAAA;wDACCC,MAAQ,EAAA;AACN,4DAAA;AACEhD,gEAAAA,KAAAA,EAAOnD,aAAc,CAAA;AACnBkC,oEAAAA,EAAAA,EAAI8B,eAAQ,CAAA,yBAAA,CAAA;oEACZjB,cAAgB,EAAA;AAClB,iEAAA,CAAA;AACApB,gEAAAA,KAAAA,EAAOyE,uBAAY3G,CAAAA,KAAAA,EAAO4G,IAAO5G,GAAAA,KAAAA,CAAM4G,IAAI,GAAG,CAAA;AAChD,6DAAA;AAEA,4DAAA;AACElD,gEAAAA,KAAAA,EAAOnD,aAAc,CAAA;AACnBkC,oEAAAA,EAAAA,EAAI8B,eAAQ,CAAA,+BAAA,CAAA;oEACZjB,cAAgB,EAAA;AAClB,iEAAA,CAAA;AACApB,gEAAAA,KAAAA,EACElC,KAAO6G,EAAAA,MAAAA,IAAU7G,KAAM8G,CAAAA,KAAK,GAAG,CAAG9G,EAAAA,KAAAA,CAAM8G,KAAK,CAAC,CAAC,EAAE9G,KAAM6G,CAAAA,MAAM,EAAE,GAAG;AACtE,6DAAA;AAEA,4DAAA;AACEnD,gEAAAA,KAAAA,EAAOnD,aAAc,CAAA;AACnBkC,oEAAAA,EAAAA,EAAI8B,eAAQ,CAAA,yBAAA,CAAA;oEACZjB,cAAgB,EAAA;AAClB,iEAAA,CAAA;AACApB,gEAAAA,KAAAA,EAAO1B,WAAW,IAAIuG,IAAAA,CAAK/G,OAAOgH,SAAYhH,GAAAA,KAAAA,CAAMgH,SAAS,GAAG,EAAA,CAAA;AAClE,6DAAA;AAEA,4DAAA;AACEtD,gEAAAA,KAAAA,EAAOnD,aAAc,CAAA;AACnBkC,oEAAAA,EAAAA,EAAI8B,eAAQ,CAAA,8BAAA,CAAA;oEACZjB,cAAgB,EAAA;AAClB,iEAAA,CAAA;AACApB,gEAAAA,KAAAA,EAAO+E,kCAAiBjH,KAAOkH,EAAAA,GAAAA;AACjC,6DAAA;AAEA,4DAAA;AACExD,gEAAAA,KAAAA,EAAOnD,aAAc,CAAA;AACnBkC,oEAAAA,EAAAA,EAAI8B,eAAQ,CAAA,uBAAA,CAAA;oEACZjB,cAAgB,EAAA;AAClB,iEAAA,CAAA;AACApB,gEAAAA,KAAAA,EAAOlC,KAAOyC,EAAAA,EAAAA,GAAKzC,KAAMyC,CAAAA,EAAE,GAAG;AAChC,6DAAA;AAEIV,4DAAAA,GAAAA,MAAAA,CAAOnC,UAAU,GACjB;AACE,gEAAA;AACE8D,oEAAAA,KAAAA,EAAOnD,aAAc,CAAA;AACnBkC,wEAAAA,EAAAA,EAAI8B,eAAQ,CAAA,gCAAA,CAAA;wEACZjB,cAAgB,EAAA;AAClB,qEAAA,CAAA;AACApB,oEAAAA,KAAAA,EAAO,CAAC,GAAG,EAAEH,MAAOnC,CAAAA,UAAU,CAACb,CAAC,CAAC,OAAO,EAAEgD,OAAOnC,UAAU,CAACR,CAAC,CAAC,CAAC;AACjE;AACD,6DAAA,GACD;AACL;;AAEH,kEAAA0E,eAAA,CAACqD,mBAAM5B,IAAI,EAAA;wDAAC/F,IAAK,EAAA,MAAA;AAAO4H,wDAAAA,KAAAA,EAAOlC,OAAO1F,IAAI;;AACxC,0EAAAwE,cAAA,CAACmD,mBAAME,KAAK,EAAA;0EACT9G,aAAc,CAAA;AACbkC,oEAAAA,EAAAA,EAAI8B,eAAQ,CAAA,4BAAA,CAAA;oEACZjB,cAAgB,EAAA;AAClB,iEAAA;;0EAEFU,cAACsD,CAAAA,sBAAAA,EAAAA;AACCpF,gEAAAA,KAAAA,EAAOH,OAAOvC,IAAI;gEAClB+H,QAAUpC,EAAAA,YAAAA;gEACVqC,QAAUtE,EAAAA,YAAAA;gEACVP,IAAK,EAAA;;AAEP,0EAAAqB,cAAA,CAACmD,mBAAMM,KAAK,EAAA,EAAA;;;AAGb,oDAAA,CAACpH,UAAYqH,EAAAA,QAAAA,CAAS,iBACrB,CAAA,kBAAA5D,eAAA,CAACqD,mBAAM5B,IAAI,EAAA;wDACT/F,IAAK,EAAA,iBAAA;AACLmI,wDAAAA,IAAAA,EAAMpH,aAAc,CAAA;AAClBkC,4DAAAA,EAAAA,EAAI8B,eAAQ,CAAA,iCAAA,CAAA;4DACZjB,cACE,EAAA;AACJ,yDAAA,CAAA;AACA8D,wDAAAA,KAAAA,EAAOlC,OAAOxF,eAAe;;AAE7B,0EAAAsE,cAAA,CAACmD,mBAAME,KAAK,EAAA;0EACT9G,aAAc,CAAA;AACbkC,oEAAAA,EAAAA,EAAI8B,eAAQ,CAAA,2BAAA,CAAA;oEACZjB,cAAgB,EAAA;AAClB,iEAAA;;0EAEFU,cAACsD,CAAAA,sBAAAA,EAAAA;AACCpF,gEAAAA,KAAAA,EAAOH,OAAOrC,eAAe;gEAC7B6H,QAAUpC,EAAAA,YAAAA;gEACVqC,QAAUtE,EAAAA,YAAAA;gEACVP,IAAK,EAAA;;AAEP,0EAAAqB,cAAA,CAACmD,mBAAMS,IAAI,EAAA,EAAA,CAAA;AACX,0EAAA5D,cAAA,CAACmD,mBAAMM,KAAK,EAAA,EAAA;;;AAIf,oDAAA,CAACpH,UAAYqH,EAAAA,QAAAA,CAAS,SACrB,CAAA,kBAAA5D,eAAA,CAACqD,mBAAM5B,IAAI,EAAA;wDAAC/F,IAAK,EAAA,SAAA;AAAU4H,wDAAAA,KAAAA,EAAOlC,OAAOvF,OAAO;;AAC9C,0EAAAqE,cAAA,CAACmD,mBAAME,KAAK,EAAA;0EACT9G,aAAc,CAAA;AACbkC,oEAAAA,EAAAA,EAAI8B,eAAQ,CAAA,+BAAA,CAAA;oEACZjB,cAAgB,EAAA;AAClB,iEAAA;;0EAEFU,cAACsD,CAAAA,sBAAAA,EAAAA;AACCpF,gEAAAA,KAAAA,EAAOH,OAAOpC,OAAO;gEACrB4H,QAAUpC,EAAAA,YAAAA;gEACVqC,QAAUtE,EAAAA,YAAAA;gEACVP,IAAK,EAAA;;;;kEAKXqB,cAACrF,CAAAA,iBAAAA,EAAAA;wDAAKiH,SAAU,EAAA,QAAA;wDAASC,UAAW,EAAA,SAAA;wDAAUL,GAAK,EAAA,CAAA;gFACjD1B,eAAA,CAACqD,mBAAM5B,IAAI,EAAA;4DAAC/F,IAAK,EAAA,QAAA;4DAASiD,EAAG,EAAA,cAAA;;AAC3B,8EAAAuB,cAAA,CAACmD,mBAAME,KAAK,EAAA;8EACT9G,aAAc,CAAA;AACbkC,wEAAAA,EAAAA,EAAI8B,eAAQ,CAAA,gCAAA,CAAA;wEACZjB,cAAgB,EAAA;AAClB,qEAAA;;8EAGFU,cAAC6D,CAAAA,qBAAAA,EAAAA;oEACCrI,IAAK,EAAA,QAAA;AACLsI,oEAAAA,YAAAA,EAAc/F,OAAOE,MAAM;oEAC3B8F,OAASrG,EAAAA,eAAAA;AACT6F,oEAAAA,QAAAA,EAAU,CAACrF,KAAAA,GAAAA;AACTkD,wEAAAA,aAAAA,CAAc,QAAUlD,EAAAA,KAAAA,CAAAA;AAC1B,qEAAA;oEACA8F,gBAAkBC,EAAAA,QAAAA,CAASC,aAAa,CAAC,MAAA,CAAA;oEACzCC,OAAQ,EAAA,cAAA;oEACRC,UAAYlF,EAAAA,YAAAA;AACZkE,oEAAAA,KAAAA,EAAOlC,MAAQjD,EAAAA,MAAAA;oEACfoG,gBAAiB,EAAA;;;;;;;0DAMzBrE,cAACsE,CAAAA,2BAAAA,EAAAA;AACC,gDAAA,QAAA,gBAAAtE,cAACuE,CAAAA,QAAAA,EAAAA;oDACC5F,IAAK,EAAA,QAAA;AACL6F,oDAAAA,QAAAA,EAAU,CAAC,CAAA;oDACXC,GAAK7H,EAAAA,eAAAA;oDACL4G,QAAUtE,EAAAA,YAAAA;8DAET3C,aAAc,CAAA;wDAAEkC,EAAI,EAAA,QAAA;wDAAUa,cAAgB,EAAA;AAAS,qDAAA;;;;;;;;;AAOpE,kCAAAQ,eAAA,CAACU,mBAAMC,MAAM,EAAA;;0CACXT,cAACU,CAAAA,mBAAAA,EAAAA;AAAOC,gCAAAA,OAAAA,EAAS,IAAMf,WAAY,CAAA;AAAE,wCAAA,GAAG7B;AAAO,qCAAA,CAAA;gCAAI6C,OAAQ,EAAA,UAAA;0CACxDrE,aAAc,CAAA;oCAAEkC,EAAI,EAAA,eAAA;oCAAiBa,cAAgB,EAAA;AAAS,iCAAA;;0CAEjEQ,eAACnF,CAAAA,iBAAAA,EAAAA;gCAAK6G,GAAK,EAAA,CAAA;;oCACR,CAAClF,WAAAA,EAAaoH,QAAS,CAAA,SAAA,CAAA,kBACtB1D,cAAC0E,CAAAA,qCAAAA,EAAAA;wCACCC,aAAetH,EAAAA,kBAAAA;AACfuH,wCAAAA,YAAAA,EAAc5I,OAAOsC,IAAQ,IAAA,EAAA;wCAC7BkF,QAAUtE,EAAAA,YAAAA;wCACV9C,eAAiBA,EAAAA;;kDAIrB4D,cAACU,CAAAA,mBAAAA,EAAAA;wCACCC,OAAS,EAAA,IAAM/D,eAAgBiI,CAAAA,OAAO,EAAEC,KAAAA,EAAAA;wCACxCC,OAASxH,EAAAA,SAAAA;wCACTiG,QAAUtE,EAAAA,YAAAA;kDAET3C,aAAc,CAAA;4CAAEkC,EAAI,EAAA,eAAA;4CAAiBa,cAAgB,EAAA;AAAS,yCAAA;;;;;;;;;AAQ/E;MAYa0F,eAAkB,GAAA,CAAC,EAC9BC,IAAI,EACJlJ,OAAO,EACPE,SAAAA,GAAY,KAAK,EACjBC,cAAc,KAAK,EACnBC,cAAc,KAAK,EACnB,GAAG+I,SACkB,EAAA,GAAA;IACrB,qBACElF,cAAA,CAACQ,mBAAMe,IAAI,EAAA;QAAC0D,IAAMA,EAAAA,IAAAA;QAAME,YAAcpJ,EAAAA,OAAAA;gCACpCiE,cAAA,CAACQ,mBAAM4E,OAAO,EAAA;AACZ,YAAA,QAAA,gBAAApF,cAAClE,CAAAA,gBAAAA,EAAAA;gBACCC,OAASA,EAAAA,OAAAA;gBACTE,SAAWA,EAAAA,SAAAA;gBACXC,WAAaA,EAAAA,WAAAA;gBACbC,WAAaA,EAAAA,WAAAA;AACZ,gBAAA,GAAG+I;;;;AAKd;;;;;"}
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 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\nexport const EditAssetContent = ({\n onClose,\n asset,\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;\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","EditAssetContent","onClose","asset","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","value","isLocal","editedAsset","assetType","mime","split","didChangeLocation","id","location","type","changeLocation","handleStartCropping","handleCancelCropping","handleFinishCropping","handleFocalPointStart","handleFocalPointCancel","formDisabled","handleConfirmClose","confirm","window","defaultMessage","activeFolderId","initialFormData","undefined","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 +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 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\nexport const EditAssetContent = ({\n onClose,\n asset,\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;\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","EditAssetContent","onClose","asset","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","value","isLocal","editedAsset","assetType","mime","split","didChangeLocation","id","location","type","changeLocation","handleStartCropping","handleCancelCropping","handleFinishCropping","handleFocalPointStart","handleFocalPointCancel","formDisabled","handleConfirmClose","confirm","window","defaultMessage","activeFolderId","initialFormData","undefined","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 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\nexport const EditAssetContent = ({\n onClose,\n asset,\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;\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","EditAssetContent","onClose","asset","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","value","isLocal","editedAsset","assetType","mime","split","didChangeLocation","id","location","type","changeLocation","handleStartCropping","handleCancelCropping","handleFinishCropping","handleFocalPointStart","handleFocalPointCancel","formDisabled","handleConfirmClose","confirm","window","defaultMessage","activeFolderId","initialFormData","undefined","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 +1 @@
1
- {"version":3,"file":"AssetPreview.js","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/AssetPreview.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/media-has-caption */\nimport * as React from 'react';\n\nimport MuxPlayer from '@mux/mux-player-react';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled, useTheme } from 'styled-components';\n\nimport { AssetType } from '../../../enums';\nimport { typeFromMime } from '../../../utils';\nimport { getFileIconComponent } from '../../../utils/icons';\n\nconst CardAsset = styled(Flex)`\n min-height: 26.4rem;\n border-radius: ${({ theme }) => theme.borderRadius} ${({ theme }) => theme.borderRadius} 0 0;\n background: linear-gradient(\n 180deg,\n ${({ theme }) => theme.colors.neutral0} 0%,\n ${({ theme }) => theme.colors.neutral100} 121.48%\n );\n`;\n\ninterface AssetPreviewProps extends React.HTMLAttributes<HTMLElement> {\n mime: string;\n name: string;\n url: string;\n}\n\nexport const AssetPreview = React.forwardRef<\n HTMLImageElement | HTMLVideoElement | HTMLAudioElement,\n AssetPreviewProps\n>(({ mime, url, name, ...props }, ref) => {\n const theme = useTheme();\n\n const assetType = typeFromMime(mime);\n\n const { formatMessage } = useIntl();\n\n if (assetType === AssetType.Image) {\n return (\n <img ref={ref as React.ForwardedRef<HTMLImageElement>} src={url} alt={name} {...props} />\n );\n }\n\n if (assetType === AssetType.Video) {\n return <MuxPlayer src={url} accentColor={theme.colors.primary500} />;\n }\n\n if (assetType === AssetType.Audio) {\n return (\n <Box margin=\"5\">\n <audio controls src={url} ref={ref as React.ForwardedRef<HTMLAudioElement>} {...props}>\n {name}\n </audio>\n </Box>\n );\n }\n\n // getFileIconComponent will handle all other file types, eg. PDF, CSV, XLS, ZIP\n // If the file type is not recognized, the default icon will be used\n const IconComponent = getFileIconComponent(assetType);\n return (\n <CardAsset width=\"100%\" justifyContent=\"center\" {...props}>\n <Flex gap={2} direction=\"column\" alignItems=\"center\">\n <IconComponent aria-label={name} fill=\"neutral500\" width={24} height={24} />\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {formatMessage({\n id: 'noPreview',\n defaultMessage: 'No preview available',\n })}\n </Typography>\n </Flex>\n </CardAsset>\n );\n});\n\nAssetPreview.displayName = 'AssetPreview';\n"],"names":["CardAsset","styled","Flex","theme","borderRadius","colors","neutral0","neutral100","AssetPreview","React","forwardRef","mime","url","name","props","ref","useTheme","assetType","typeFromMime","formatMessage","useIntl","AssetType","Image","_jsx","img","src","alt","Video","MuxPlayer","accentColor","primary500","Audio","Box","margin","audio","controls","IconComponent","getFileIconComponent","width","justifyContent","_jsxs","gap","direction","alignItems","aria-label","fill","height","Typography","textColor","variant","id","defaultMessage","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAMA,SAAAA,GAAYC,uBAAOC,CAAAA,iBAAAA,CAAK;;AAEb,iBAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,MAAMC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAAA,CAAMC,YAAY,CAAC;;;IAGtF,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACC,QAAQ,CAAC;IACvC,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACE,UAAU,CAAC;;AAE7C,CAAC;AAQYC,MAAAA,YAAAA,iBAAeC,gBAAMC,CAAAA,UAAU,CAG1C,CAAC,EAAEC,IAAI,EAAEC,GAAG,EAAEC,IAAI,EAAE,GAAGC,OAAO,EAAEC,GAAAA,GAAAA;AAChC,IAAA,MAAMZ,KAAQa,GAAAA,yBAAAA,EAAAA;AAEd,IAAA,MAAMC,YAAYC,yBAAaP,CAAAA,IAAAA,CAAAA;IAE/B,MAAM,EAAEQ,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,IAAIH,SAAAA,KAAcI,eAAUC,CAAAA,KAAK,EAAE;AACjC,QAAA,qBACEC,cAACC,CAAAA,KAAAA,EAAAA;YAAIT,GAAKA,EAAAA,GAAAA;YAA6CU,GAAKb,EAAAA,GAAAA;YAAKc,GAAKb,EAAAA,IAAAA;AAAO,YAAA,GAAGC;;AAEpF;IAEA,IAAIG,SAAAA,KAAcI,eAAUM,CAAAA,KAAK,EAAE;AACjC,QAAA,qBAAOJ,cAACK,CAAAA,SAAAA,EAAAA;YAAUH,GAAKb,EAAAA,GAAAA;YAAKiB,WAAa1B,EAAAA,KAAAA,CAAME,MAAM,CAACyB;;AACxD;IAEA,IAAIb,SAAAA,KAAcI,eAAUU,CAAAA,KAAK,EAAE;AACjC,QAAA,qBACER,cAACS,CAAAA,gBAAAA,EAAAA;YAAIC,MAAO,EAAA,GAAA;AACV,YAAA,QAAA,gBAAAV,cAACW,CAAAA,OAAAA,EAAAA;gBAAMC,QAAQ,EAAA,IAAA;gBAACV,GAAKb,EAAAA,GAAAA;gBAAKG,GAAKA,EAAAA,GAAAA;AAA8C,gBAAA,GAAGD,KAAK;AAClFD,gBAAAA,QAAAA,EAAAA;;;AAIT;;;AAIA,IAAA,MAAMuB,gBAAgBC,0BAAqBpB,CAAAA,SAAAA,CAAAA;AAC3C,IAAA,qBACEM,cAACvB,CAAAA,SAAAA,EAAAA;QAAUsC,KAAM,EAAA,MAAA;QAAOC,cAAe,EAAA,QAAA;AAAU,QAAA,GAAGzB,KAAK;AACvD,QAAA,QAAA,gBAAA0B,eAACtC,CAAAA,iBAAAA,EAAAA;YAAKuC,GAAK,EAAA,CAAA;YAAGC,SAAU,EAAA,QAAA;YAASC,UAAW,EAAA,QAAA;;8BAC1CpB,cAACa,CAAAA,aAAAA,EAAAA;oBAAcQ,YAAY/B,EAAAA,IAAAA;oBAAMgC,IAAK,EAAA,YAAA;oBAAaP,KAAO,EAAA,EAAA;oBAAIQ,MAAQ,EAAA;;8BACtEvB,cAACwB,CAAAA,uBAAAA,EAAAA;oBAAWC,SAAU,EAAA,YAAA;oBAAaC,OAAQ,EAAA,IAAA;8BACxC9B,aAAc,CAAA;wBACb+B,EAAI,EAAA,WAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAKV,CAAG;AAEH3C,YAAAA,CAAa4C,WAAW,GAAG,cAAA;;;;"}
1
+ {"version":3,"file":"AssetPreview.js","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/AssetPreview.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/media-has-caption */\nimport * as React from 'react';\n\nimport MuxPlayer from '@mux/mux-player-react';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled, useTheme } from 'styled-components';\n\nimport { AssetType } from '../../../enums';\nimport { typeFromMime } from '../../../utils';\nimport { getFileIconComponent } from '../../../utils/icons';\n\nconst CardAsset = styled(Flex)`\n min-height: 26.4rem;\n border-radius: ${({ theme }) => theme.borderRadius} ${({ theme }) => theme.borderRadius} 0 0;\n background: linear-gradient(\n 180deg,\n ${({ theme }) => theme.colors.neutral0} 0%,\n ${({ theme }) => theme.colors.neutral100} 121.48%\n );\n`;\n\ninterface AssetPreviewProps extends React.HTMLAttributes<HTMLElement> {\n mime: string;\n name: string;\n url: string;\n}\n\nexport const AssetPreview = React.forwardRef<\n HTMLImageElement | HTMLVideoElement | HTMLAudioElement,\n AssetPreviewProps\n>(({ mime, url, name, ...props }, ref) => {\n const theme = useTheme();\n\n const assetType = typeFromMime(mime);\n\n const { formatMessage } = useIntl();\n\n if (assetType === AssetType.Image) {\n return (\n <img ref={ref as React.ForwardedRef<HTMLImageElement>} src={url} alt={name} {...props} />\n );\n }\n\n if (assetType === AssetType.Video) {\n return <MuxPlayer src={url} accentColor={theme.colors.primary500} />;\n }\n\n if (assetType === AssetType.Audio) {\n return (\n <Box margin=\"5\">\n <audio controls src={url} ref={ref as React.ForwardedRef<HTMLAudioElement>} {...props}>\n {name}\n </audio>\n </Box>\n );\n }\n\n // getFileIconComponent will handle all other file types, eg. PDF, CSV, XLS, ZIP\n // If the file type is not recognized, the default icon will be used\n const IconComponent = getFileIconComponent(assetType);\n return (\n <CardAsset width=\"100%\" justifyContent=\"center\" {...props}>\n <Flex gap={2} direction=\"column\" alignItems=\"center\">\n <IconComponent aria-label={name} fill=\"neutral500\" width={24} height={24} />\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {formatMessage({\n id: 'noPreview',\n defaultMessage: 'No preview available',\n })}\n </Typography>\n </Flex>\n </CardAsset>\n );\n});\n\nAssetPreview.displayName = 'AssetPreview';\n"],"names":["CardAsset","styled","Flex","theme","borderRadius","colors","neutral0","neutral100","AssetPreview","React","forwardRef","mime","url","name","props","ref","useTheme","assetType","typeFromMime","formatMessage","useIntl","AssetType","Image","_jsx","img","src","alt","Video","MuxPlayer","accentColor","primary500","Audio","Box","margin","audio","controls","IconComponent","getFileIconComponent","width","justifyContent","_jsxs","gap","direction","alignItems","aria-label","fill","height","Typography","textColor","variant","id","defaultMessage","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAMA,SAAAA,GAAYC,uBAAAA,CAAOC,iBAAAA,CAAK;;AAEb,iBAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,MAAMC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAAA,CAAMC,YAAY,CAAC;;;IAGtF,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAAA,CAAME,MAAM,CAACC,QAAQ,CAAC;IACvC,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAKA,KAAAA,CAAME,MAAM,CAACE,UAAU,CAAC;;AAE7C,CAAC;AAQM,MAAMC,YAAAA,iBAAeC,gBAAAA,CAAMC,UAAU,CAG1C,CAAC,EAAEC,IAAI,EAAEC,GAAG,EAAEC,IAAI,EAAE,GAAGC,OAAO,EAAEC,GAAAA,GAAAA;AAChC,IAAA,MAAMZ,KAAAA,GAAQa,yBAAAA,EAAAA;AAEd,IAAA,MAAMC,YAAYC,yBAAAA,CAAaP,IAAAA,CAAAA;IAE/B,MAAM,EAAEQ,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,IAAIH,SAAAA,KAAcI,eAAAA,CAAUC,KAAK,EAAE;AACjC,QAAA,qBACEC,cAAA,CAACC,KAAAA,EAAAA;YAAIT,GAAAA,EAAKA,GAAAA;YAA6CU,GAAAA,EAAKb,GAAAA;YAAKc,GAAAA,EAAKb,IAAAA;AAAO,YAAA,GAAGC;;AAEpF,IAAA;IAEA,IAAIG,SAAAA,KAAcI,eAAAA,CAAUM,KAAK,EAAE;AACjC,QAAA,qBAAOJ,cAAA,CAACK,SAAAA,EAAAA;YAAUH,GAAAA,EAAKb,GAAAA;YAAKiB,WAAAA,EAAa1B,KAAAA,CAAME,MAAM,CAACyB;;AACxD,IAAA;IAEA,IAAIb,SAAAA,KAAcI,eAAAA,CAAUU,KAAK,EAAE;AACjC,QAAA,qBACER,cAAA,CAACS,gBAAAA,EAAAA;YAAIC,MAAAA,EAAO,GAAA;AACV,YAAA,QAAA,gBAAAV,cAAA,CAACW,OAAAA,EAAAA;gBAAMC,QAAQ,EAAA,IAAA;gBAACV,GAAAA,EAAKb,GAAAA;gBAAKG,GAAAA,EAAKA,GAAAA;AAA8C,gBAAA,GAAGD,KAAK;AAClFD,gBAAAA,QAAAA,EAAAA;;;AAIT,IAAA;;;AAIA,IAAA,MAAMuB,gBAAgBC,0BAAAA,CAAqBpB,SAAAA,CAAAA;AAC3C,IAAA,qBACEM,cAAA,CAACvB,SAAAA,EAAAA;QAAUsC,KAAAA,EAAM,MAAA;QAAOC,cAAAA,EAAe,QAAA;AAAU,QAAA,GAAGzB,KAAK;AACvD,QAAA,QAAA,gBAAA0B,eAAA,CAACtC,iBAAAA,EAAAA;YAAKuC,GAAAA,EAAK,CAAA;YAAGC,SAAAA,EAAU,QAAA;YAASC,UAAAA,EAAW,QAAA;;8BAC1CpB,cAAA,CAACa,aAAAA,EAAAA;oBAAcQ,YAAAA,EAAY/B,IAAAA;oBAAMgC,IAAAA,EAAK,YAAA;oBAAaP,KAAAA,EAAO,EAAA;oBAAIQ,MAAAA,EAAQ;;8BACtEvB,cAAA,CAACwB,uBAAAA,EAAAA;oBAAWC,SAAAA,EAAU,YAAA;oBAAaC,OAAAA,EAAQ,IAAA;8BACxC9B,aAAAA,CAAc;wBACb+B,EAAAA,EAAI,WAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;;;;AAKV,CAAA;AAEA3C,YAAAA,CAAa4C,WAAW,GAAG,cAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetPreview.mjs","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/AssetPreview.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/media-has-caption */\nimport * as React from 'react';\n\nimport MuxPlayer from '@mux/mux-player-react';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled, useTheme } from 'styled-components';\n\nimport { AssetType } from '../../../enums';\nimport { typeFromMime } from '../../../utils';\nimport { getFileIconComponent } from '../../../utils/icons';\n\nconst CardAsset = styled(Flex)`\n min-height: 26.4rem;\n border-radius: ${({ theme }) => theme.borderRadius} ${({ theme }) => theme.borderRadius} 0 0;\n background: linear-gradient(\n 180deg,\n ${({ theme }) => theme.colors.neutral0} 0%,\n ${({ theme }) => theme.colors.neutral100} 121.48%\n );\n`;\n\ninterface AssetPreviewProps extends React.HTMLAttributes<HTMLElement> {\n mime: string;\n name: string;\n url: string;\n}\n\nexport const AssetPreview = React.forwardRef<\n HTMLImageElement | HTMLVideoElement | HTMLAudioElement,\n AssetPreviewProps\n>(({ mime, url, name, ...props }, ref) => {\n const theme = useTheme();\n\n const assetType = typeFromMime(mime);\n\n const { formatMessage } = useIntl();\n\n if (assetType === AssetType.Image) {\n return (\n <img ref={ref as React.ForwardedRef<HTMLImageElement>} src={url} alt={name} {...props} />\n );\n }\n\n if (assetType === AssetType.Video) {\n return <MuxPlayer src={url} accentColor={theme.colors.primary500} />;\n }\n\n if (assetType === AssetType.Audio) {\n return (\n <Box margin=\"5\">\n <audio controls src={url} ref={ref as React.ForwardedRef<HTMLAudioElement>} {...props}>\n {name}\n </audio>\n </Box>\n );\n }\n\n // getFileIconComponent will handle all other file types, eg. PDF, CSV, XLS, ZIP\n // If the file type is not recognized, the default icon will be used\n const IconComponent = getFileIconComponent(assetType);\n return (\n <CardAsset width=\"100%\" justifyContent=\"center\" {...props}>\n <Flex gap={2} direction=\"column\" alignItems=\"center\">\n <IconComponent aria-label={name} fill=\"neutral500\" width={24} height={24} />\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {formatMessage({\n id: 'noPreview',\n defaultMessage: 'No preview available',\n })}\n </Typography>\n </Flex>\n </CardAsset>\n );\n});\n\nAssetPreview.displayName = 'AssetPreview';\n"],"names":["CardAsset","styled","Flex","theme","borderRadius","colors","neutral0","neutral100","AssetPreview","React","forwardRef","mime","url","name","props","ref","useTheme","assetType","typeFromMime","formatMessage","useIntl","AssetType","Image","_jsx","img","src","alt","Video","MuxPlayer","accentColor","primary500","Audio","Box","margin","audio","controls","IconComponent","getFileIconComponent","width","justifyContent","_jsxs","gap","direction","alignItems","aria-label","fill","height","Typography","textColor","variant","id","defaultMessage","displayName"],"mappings":";;;;;;;;;;;;;;AAYA,MAAMA,SAAAA,GAAYC,MAAOC,CAAAA,IAAAA,CAAK;;AAEb,iBAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,MAAMC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAAA,CAAMC,YAAY,CAAC;;;IAGtF,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACC,QAAQ,CAAC;IACvC,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACE,UAAU,CAAC;;AAE7C,CAAC;AAQYC,MAAAA,YAAAA,iBAAeC,KAAMC,CAAAA,UAAU,CAG1C,CAAC,EAAEC,IAAI,EAAEC,GAAG,EAAEC,IAAI,EAAE,GAAGC,OAAO,EAAEC,GAAAA,GAAAA;AAChC,IAAA,MAAMZ,KAAQa,GAAAA,QAAAA,EAAAA;AAEd,IAAA,MAAMC,YAAYC,YAAaP,CAAAA,IAAAA,CAAAA;IAE/B,MAAM,EAAEQ,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,IAAIH,SAAAA,KAAcI,SAAUC,CAAAA,KAAK,EAAE;AACjC,QAAA,qBACEC,GAACC,CAAAA,KAAAA,EAAAA;YAAIT,GAAKA,EAAAA,GAAAA;YAA6CU,GAAKb,EAAAA,GAAAA;YAAKc,GAAKb,EAAAA,IAAAA;AAAO,YAAA,GAAGC;;AAEpF;IAEA,IAAIG,SAAAA,KAAcI,SAAUM,CAAAA,KAAK,EAAE;AACjC,QAAA,qBAAOJ,GAACK,CAAAA,SAAAA,EAAAA;YAAUH,GAAKb,EAAAA,GAAAA;YAAKiB,WAAa1B,EAAAA,KAAAA,CAAME,MAAM,CAACyB;;AACxD;IAEA,IAAIb,SAAAA,KAAcI,SAAUU,CAAAA,KAAK,EAAE;AACjC,QAAA,qBACER,GAACS,CAAAA,GAAAA,EAAAA;YAAIC,MAAO,EAAA,GAAA;AACV,YAAA,QAAA,gBAAAV,GAACW,CAAAA,OAAAA,EAAAA;gBAAMC,QAAQ,EAAA,IAAA;gBAACV,GAAKb,EAAAA,GAAAA;gBAAKG,GAAKA,EAAAA,GAAAA;AAA8C,gBAAA,GAAGD,KAAK;AAClFD,gBAAAA,QAAAA,EAAAA;;;AAIT;;;AAIA,IAAA,MAAMuB,gBAAgBC,oBAAqBpB,CAAAA,SAAAA,CAAAA;AAC3C,IAAA,qBACEM,GAACvB,CAAAA,SAAAA,EAAAA;QAAUsC,KAAM,EAAA,MAAA;QAAOC,cAAe,EAAA,QAAA;AAAU,QAAA,GAAGzB,KAAK;AACvD,QAAA,QAAA,gBAAA0B,IAACtC,CAAAA,IAAAA,EAAAA;YAAKuC,GAAK,EAAA,CAAA;YAAGC,SAAU,EAAA,QAAA;YAASC,UAAW,EAAA,QAAA;;8BAC1CpB,GAACa,CAAAA,aAAAA,EAAAA;oBAAcQ,YAAY/B,EAAAA,IAAAA;oBAAMgC,IAAK,EAAA,YAAA;oBAAaP,KAAO,EAAA,EAAA;oBAAIQ,MAAQ,EAAA;;8BACtEvB,GAACwB,CAAAA,UAAAA,EAAAA;oBAAWC,SAAU,EAAA,YAAA;oBAAaC,OAAQ,EAAA,IAAA;8BACxC9B,aAAc,CAAA;wBACb+B,EAAI,EAAA,WAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAKV,CAAG;AAEH3C,YAAAA,CAAa4C,WAAW,GAAG,cAAA;;;;"}
1
+ {"version":3,"file":"AssetPreview.mjs","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/AssetPreview.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/media-has-caption */\nimport * as React from 'react';\n\nimport MuxPlayer from '@mux/mux-player-react';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled, useTheme } from 'styled-components';\n\nimport { AssetType } from '../../../enums';\nimport { typeFromMime } from '../../../utils';\nimport { getFileIconComponent } from '../../../utils/icons';\n\nconst CardAsset = styled(Flex)`\n min-height: 26.4rem;\n border-radius: ${({ theme }) => theme.borderRadius} ${({ theme }) => theme.borderRadius} 0 0;\n background: linear-gradient(\n 180deg,\n ${({ theme }) => theme.colors.neutral0} 0%,\n ${({ theme }) => theme.colors.neutral100} 121.48%\n );\n`;\n\ninterface AssetPreviewProps extends React.HTMLAttributes<HTMLElement> {\n mime: string;\n name: string;\n url: string;\n}\n\nexport const AssetPreview = React.forwardRef<\n HTMLImageElement | HTMLVideoElement | HTMLAudioElement,\n AssetPreviewProps\n>(({ mime, url, name, ...props }, ref) => {\n const theme = useTheme();\n\n const assetType = typeFromMime(mime);\n\n const { formatMessage } = useIntl();\n\n if (assetType === AssetType.Image) {\n return (\n <img ref={ref as React.ForwardedRef<HTMLImageElement>} src={url} alt={name} {...props} />\n );\n }\n\n if (assetType === AssetType.Video) {\n return <MuxPlayer src={url} accentColor={theme.colors.primary500} />;\n }\n\n if (assetType === AssetType.Audio) {\n return (\n <Box margin=\"5\">\n <audio controls src={url} ref={ref as React.ForwardedRef<HTMLAudioElement>} {...props}>\n {name}\n </audio>\n </Box>\n );\n }\n\n // getFileIconComponent will handle all other file types, eg. PDF, CSV, XLS, ZIP\n // If the file type is not recognized, the default icon will be used\n const IconComponent = getFileIconComponent(assetType);\n return (\n <CardAsset width=\"100%\" justifyContent=\"center\" {...props}>\n <Flex gap={2} direction=\"column\" alignItems=\"center\">\n <IconComponent aria-label={name} fill=\"neutral500\" width={24} height={24} />\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {formatMessage({\n id: 'noPreview',\n defaultMessage: 'No preview available',\n })}\n </Typography>\n </Flex>\n </CardAsset>\n );\n});\n\nAssetPreview.displayName = 'AssetPreview';\n"],"names":["CardAsset","styled","Flex","theme","borderRadius","colors","neutral0","neutral100","AssetPreview","React","forwardRef","mime","url","name","props","ref","useTheme","assetType","typeFromMime","formatMessage","useIntl","AssetType","Image","_jsx","img","src","alt","Video","MuxPlayer","accentColor","primary500","Audio","Box","margin","audio","controls","IconComponent","getFileIconComponent","width","justifyContent","_jsxs","gap","direction","alignItems","aria-label","fill","height","Typography","textColor","variant","id","defaultMessage","displayName"],"mappings":";;;;;;;;;;;;;;AAYA,MAAMA,SAAAA,GAAYC,MAAAA,CAAOC,IAAAA,CAAK;;AAEb,iBAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,MAAMC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAAA,CAAMC,YAAY,CAAC;;;IAGtF,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAAA,CAAME,MAAM,CAACC,QAAQ,CAAC;IACvC,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAKA,KAAAA,CAAME,MAAM,CAACE,UAAU,CAAC;;AAE7C,CAAC;AAQM,MAAMC,YAAAA,iBAAeC,KAAAA,CAAMC,UAAU,CAG1C,CAAC,EAAEC,IAAI,EAAEC,GAAG,EAAEC,IAAI,EAAE,GAAGC,OAAO,EAAEC,GAAAA,GAAAA;AAChC,IAAA,MAAMZ,KAAAA,GAAQa,QAAAA,EAAAA;AAEd,IAAA,MAAMC,YAAYC,YAAAA,CAAaP,IAAAA,CAAAA;IAE/B,MAAM,EAAEQ,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,IAAIH,SAAAA,KAAcI,SAAAA,CAAUC,KAAK,EAAE;AACjC,QAAA,qBACEC,GAAA,CAACC,KAAAA,EAAAA;YAAIT,GAAAA,EAAKA,GAAAA;YAA6CU,GAAAA,EAAKb,GAAAA;YAAKc,GAAAA,EAAKb,IAAAA;AAAO,YAAA,GAAGC;;AAEpF,IAAA;IAEA,IAAIG,SAAAA,KAAcI,SAAAA,CAAUM,KAAK,EAAE;AACjC,QAAA,qBAAOJ,GAAA,CAACK,SAAAA,EAAAA;YAAUH,GAAAA,EAAKb,GAAAA;YAAKiB,WAAAA,EAAa1B,KAAAA,CAAME,MAAM,CAACyB;;AACxD,IAAA;IAEA,IAAIb,SAAAA,KAAcI,SAAAA,CAAUU,KAAK,EAAE;AACjC,QAAA,qBACER,GAAA,CAACS,GAAAA,EAAAA;YAAIC,MAAAA,EAAO,GAAA;AACV,YAAA,QAAA,gBAAAV,GAAA,CAACW,OAAAA,EAAAA;gBAAMC,QAAQ,EAAA,IAAA;gBAACV,GAAAA,EAAKb,GAAAA;gBAAKG,GAAAA,EAAKA,GAAAA;AAA8C,gBAAA,GAAGD,KAAK;AAClFD,gBAAAA,QAAAA,EAAAA;;;AAIT,IAAA;;;AAIA,IAAA,MAAMuB,gBAAgBC,oBAAAA,CAAqBpB,SAAAA,CAAAA;AAC3C,IAAA,qBACEM,GAAA,CAACvB,SAAAA,EAAAA;QAAUsC,KAAAA,EAAM,MAAA;QAAOC,cAAAA,EAAe,QAAA;AAAU,QAAA,GAAGzB,KAAK;AACvD,QAAA,QAAA,gBAAA0B,IAAA,CAACtC,IAAAA,EAAAA;YAAKuC,GAAAA,EAAK,CAAA;YAAGC,SAAAA,EAAU,QAAA;YAASC,UAAAA,EAAW,QAAA;;8BAC1CpB,GAAA,CAACa,aAAAA,EAAAA;oBAAcQ,YAAAA,EAAY/B,IAAAA;oBAAMgC,IAAAA,EAAK,YAAA;oBAAaP,KAAAA,EAAO,EAAA;oBAAIQ,MAAAA,EAAQ;;8BACtEvB,GAAA,CAACwB,UAAAA,EAAAA;oBAAWC,SAAAA,EAAU,YAAA;oBAAaC,OAAAA,EAAQ,IAAA;8BACxC9B,aAAAA,CAAc;wBACb+B,EAAAA,EAAI,WAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;;;;AAKV,CAAA;AAEA3C,YAAAA,CAAa4C,WAAW,GAAG,cAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CroppingActions.js","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/CroppingActions.tsx"],"sourcesContent":["import { Flex, FocusTrap, IconButton, Menu } from '@strapi/design-system';\nimport { Check, Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, useTheme } from 'styled-components';\n\nimport { getTrad } from '../../../utils';\n\nimport { CroppingActionRow } from './PreviewComponents';\n\ninterface CroppingActionsProps {\n onCancel: () => void;\n onValidate: () => void;\n onDuplicate?: () => void;\n}\n\nexport const CroppingActions = ({ onCancel, onValidate, onDuplicate }: CroppingActionsProps) => {\n const { formatMessage } = useIntl();\n const theme = useTheme();\n\n return (\n <FocusTrap onEscape={onCancel}>\n <CroppingActionRow justifyContent=\"flex-end\" paddingLeft={3} paddingRight={3}>\n <Flex gap={1}>\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.stop-crop'),\n defaultMessage: 'Stop cropping',\n })}\n onClick={onCancel}\n >\n <Cross />\n </IconButton>\n\n <Menu.Root>\n <Trigger\n aria-label={formatMessage({\n id: getTrad('control-card.crop'),\n defaultMessage: 'Crop',\n })}\n variant=\"tertiary\"\n paddingLeft={2}\n paddingRight={2}\n endIcon={null}\n >\n <Check\n aria-hidden\n focusable={false}\n style={{ position: 'relative', top: 2 }}\n fill=\"#C0C0D0\"\n />\n </Trigger>\n <Menu.Content zIndex={theme.zIndices.dialog}>\n <Menu.Item onSelect={onValidate}>\n {formatMessage({\n id: getTrad('checkControl.crop-original'),\n defaultMessage: 'Crop the original asset',\n })}\n </Menu.Item>\n\n {onDuplicate && (\n <Menu.Item onSelect={onDuplicate}>\n {formatMessage({\n id: getTrad('checkControl.crop-duplicate'),\n defaultMessage: 'Duplicate & crop the asset',\n })}\n </Menu.Item>\n )}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </CroppingActionRow>\n </FocusTrap>\n );\n};\n\nconst Trigger = styled(Menu.Trigger)`\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover {\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n }\n\n &:active {\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral400};\n }\n }\n }\n`;\n"],"names":["CroppingActions","onCancel","onValidate","onDuplicate","formatMessage","useIntl","theme","useTheme","_jsx","FocusTrap","onEscape","CroppingActionRow","justifyContent","paddingLeft","paddingRight","_jsxs","Flex","gap","IconButton","label","id","getTrad","defaultMessage","onClick","Cross","Menu","Root","Trigger","aria-label","variant","endIcon","Check","aria-hidden","focusable","style","position","top","fill","Content","zIndex","zIndices","dialog","Item","onSelect","styled","colors","neutral500","neutral600","neutral400"],"mappings":";;;;;;;;;;;;;;;AAeO,MAAMA,kBAAkB,CAAC,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,WAAW,EAAwB,GAAA;IACzF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,KAAQC,GAAAA,yBAAAA,EAAAA;AAEd,IAAA,qBACEC,cAACC,CAAAA,sBAAAA,EAAAA;QAAUC,QAAUT,EAAAA,QAAAA;AACnB,QAAA,QAAA,gBAAAO,cAACG,CAAAA,mCAAAA,EAAAA;YAAkBC,cAAe,EAAA,UAAA;YAAWC,WAAa,EAAA,CAAA;YAAGC,YAAc,EAAA,CAAA;AACzE,YAAA,QAAA,gBAAAC,eAACC,CAAAA,iBAAAA,EAAAA;gBAAKC,GAAK,EAAA,CAAA;;kCACTT,cAACU,CAAAA,uBAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOf,aAAc,CAAA;AACnBgB,4BAAAA,EAAAA,EAAIC,eAAQ,CAAA,wBAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAC,OAAStB,EAAAA,QAAAA;AAET,wBAAA,QAAA,gBAAAO,cAACgB,CAAAA,WAAAA,EAAAA,EAAAA;;AAGH,kCAAAT,eAAA,CAACU,kBAAKC,IAAI,EAAA;;0CACRlB,cAACmB,CAAAA,OAAAA,EAAAA;AACCC,gCAAAA,YAAAA,EAAYxB,aAAc,CAAA;AACxBgB,oCAAAA,EAAAA,EAAIC,eAAQ,CAAA,mBAAA,CAAA;oCACZC,cAAgB,EAAA;AAClB,iCAAA,CAAA;gCACAO,OAAQ,EAAA,UAAA;gCACRhB,WAAa,EAAA,CAAA;gCACbC,YAAc,EAAA,CAAA;gCACdgB,OAAS,EAAA,IAAA;AAET,gCAAA,QAAA,gBAAAtB,cAACuB,CAAAA,WAAAA,EAAAA;oCACCC,aAAW,EAAA,IAAA;oCACXC,SAAW,EAAA,KAAA;oCACXC,KAAO,EAAA;wCAAEC,QAAU,EAAA,UAAA;wCAAYC,GAAK,EAAA;AAAE,qCAAA;oCACtCC,IAAK,EAAA;;;AAGT,0CAAAtB,eAAA,CAACU,kBAAKa,OAAO,EAAA;gCAACC,MAAQjC,EAAAA,KAAAA,CAAMkC,QAAQ,CAACC,MAAM;;AACzC,kDAAAjC,cAAA,CAACiB,kBAAKiB,IAAI,EAAA;wCAACC,QAAUzC,EAAAA,UAAAA;kDAClBE,aAAc,CAAA;AACbgB,4CAAAA,EAAAA,EAAIC,eAAQ,CAAA,4BAAA,CAAA;4CACZC,cAAgB,EAAA;AAClB,yCAAA;;oCAGDnB,WACC,kBAAAK,cAAA,CAACiB,kBAAKiB,IAAI,EAAA;wCAACC,QAAUxC,EAAAA,WAAAA;kDAClBC,aAAc,CAAA;AACbgB,4CAAAA,EAAAA,EAAIC,eAAQ,CAAA,6BAAA,CAAA;4CACZC,cAAgB,EAAA;AAClB,yCAAA;;;;;;;;;;AASlB;AAEA,MAAMK,OAAUiB,GAAAA,uBAAAA,CAAOnB,iBAAKE,CAAAA,OAAO,CAAC;;;;YAIxB,EAAE,CAAC,EAAErB,KAAK,EAAE,GAAKA,KAAMuC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;;;;;;cAQvC,EAAE,CAAC,EAAExC,KAAK,EAAE,GAAKA,KAAMuC,CAAAA,MAAM,CAACE,UAAU,CAAC;;;;;;;;;cASzC,EAAE,CAAC,EAAEzC,KAAK,EAAE,GAAKA,KAAMuC,CAAAA,MAAM,CAACG,UAAU,CAAC;;;;AAIvD,CAAC;;;;"}
1
+ {"version":3,"file":"CroppingActions.js","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/CroppingActions.tsx"],"sourcesContent":["import { Flex, FocusTrap, IconButton, Menu } from '@strapi/design-system';\nimport { Check, Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, useTheme } from 'styled-components';\n\nimport { getTrad } from '../../../utils';\n\nimport { CroppingActionRow } from './PreviewComponents';\n\ninterface CroppingActionsProps {\n onCancel: () => void;\n onValidate: () => void;\n onDuplicate?: () => void;\n}\n\nexport const CroppingActions = ({ onCancel, onValidate, onDuplicate }: CroppingActionsProps) => {\n const { formatMessage } = useIntl();\n const theme = useTheme();\n\n return (\n <FocusTrap onEscape={onCancel}>\n <CroppingActionRow justifyContent=\"flex-end\" paddingLeft={3} paddingRight={3}>\n <Flex gap={1}>\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.stop-crop'),\n defaultMessage: 'Stop cropping',\n })}\n onClick={onCancel}\n >\n <Cross />\n </IconButton>\n\n <Menu.Root>\n <Trigger\n aria-label={formatMessage({\n id: getTrad('control-card.crop'),\n defaultMessage: 'Crop',\n })}\n variant=\"tertiary\"\n paddingLeft={2}\n paddingRight={2}\n endIcon={null}\n >\n <Check\n aria-hidden\n focusable={false}\n style={{ position: 'relative', top: 2 }}\n fill=\"#C0C0D0\"\n />\n </Trigger>\n <Menu.Content zIndex={theme.zIndices.dialog}>\n <Menu.Item onSelect={onValidate}>\n {formatMessage({\n id: getTrad('checkControl.crop-original'),\n defaultMessage: 'Crop the original asset',\n })}\n </Menu.Item>\n\n {onDuplicate && (\n <Menu.Item onSelect={onDuplicate}>\n {formatMessage({\n id: getTrad('checkControl.crop-duplicate'),\n defaultMessage: 'Duplicate & crop the asset',\n })}\n </Menu.Item>\n )}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </CroppingActionRow>\n </FocusTrap>\n );\n};\n\nconst Trigger = styled(Menu.Trigger)`\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover {\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n }\n\n &:active {\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral400};\n }\n }\n }\n`;\n"],"names":["CroppingActions","onCancel","onValidate","onDuplicate","formatMessage","useIntl","theme","useTheme","_jsx","FocusTrap","onEscape","CroppingActionRow","justifyContent","paddingLeft","paddingRight","_jsxs","Flex","gap","IconButton","label","id","getTrad","defaultMessage","onClick","Cross","Menu","Root","Trigger","aria-label","variant","endIcon","Check","aria-hidden","focusable","style","position","top","fill","Content","zIndex","zIndices","dialog","Item","onSelect","styled","colors","neutral500","neutral600","neutral400"],"mappings":";;;;;;;;;;;;;;;AAeO,MAAMA,kBAAkB,CAAC,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,WAAW,EAAwB,GAAA;IACzF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,KAAAA,GAAQC,yBAAAA,EAAAA;AAEd,IAAA,qBACEC,cAAA,CAACC,sBAAAA,EAAAA;QAAUC,QAAAA,EAAUT,QAAAA;AACnB,QAAA,QAAA,gBAAAO,cAAA,CAACG,mCAAAA,EAAAA;YAAkBC,cAAAA,EAAe,UAAA;YAAWC,WAAAA,EAAa,CAAA;YAAGC,YAAAA,EAAc,CAAA;AACzE,YAAA,QAAA,gBAAAC,eAAA,CAACC,iBAAAA,EAAAA;gBAAKC,GAAAA,EAAK,CAAA;;kCACTT,cAAA,CAACU,uBAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOf,aAAAA,CAAc;AACnBgB,4BAAAA,EAAAA,EAAIC,eAAAA,CAAQ,wBAAA,CAAA;4BACZC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;wBACAC,OAAAA,EAAStB,QAAAA;AAET,wBAAA,QAAA,gBAAAO,cAAA,CAACgB,WAAAA,EAAAA,EAAAA;;AAGH,kCAAAT,eAAA,CAACU,kBAAKC,IAAI,EAAA;;0CACRlB,cAAA,CAACmB,OAAAA,EAAAA;AACCC,gCAAAA,YAAAA,EAAYxB,aAAAA,CAAc;AACxBgB,oCAAAA,EAAAA,EAAIC,eAAAA,CAAQ,mBAAA,CAAA;oCACZC,cAAAA,EAAgB;AAClB,iCAAA,CAAA;gCACAO,OAAAA,EAAQ,UAAA;gCACRhB,WAAAA,EAAa,CAAA;gCACbC,YAAAA,EAAc,CAAA;gCACdgB,OAAAA,EAAS,IAAA;AAET,gCAAA,QAAA,gBAAAtB,cAAA,CAACuB,WAAAA,EAAAA;oCACCC,aAAW,EAAA,IAAA;oCACXC,SAAAA,EAAW,KAAA;oCACXC,KAAAA,EAAO;wCAAEC,QAAAA,EAAU,UAAA;wCAAYC,GAAAA,EAAK;AAAE,qCAAA;oCACtCC,IAAAA,EAAK;;;AAGT,0CAAAtB,eAAA,CAACU,kBAAKa,OAAO,EAAA;gCAACC,MAAAA,EAAQjC,KAAAA,CAAMkC,QAAQ,CAACC,MAAM;;AACzC,kDAAAjC,cAAA,CAACiB,kBAAKiB,IAAI,EAAA;wCAACC,QAAAA,EAAUzC,UAAAA;kDAClBE,aAAAA,CAAc;AACbgB,4CAAAA,EAAAA,EAAIC,eAAAA,CAAQ,4BAAA,CAAA;4CACZC,cAAAA,EAAgB;AAClB,yCAAA;;oCAGDnB,WAAAA,kBACCK,cAAA,CAACiB,kBAAKiB,IAAI,EAAA;wCAACC,QAAAA,EAAUxC,WAAAA;kDAClBC,aAAAA,CAAc;AACbgB,4CAAAA,EAAAA,EAAIC,eAAAA,CAAQ,6BAAA,CAAA;4CACZC,cAAAA,EAAgB;AAClB,yCAAA;;;;;;;;;;AASlB;AAEA,MAAMK,OAAAA,GAAUiB,uBAAAA,CAAOnB,iBAAAA,CAAKE,OAAO,CAAC;;;;YAIxB,EAAE,CAAC,EAAErB,KAAK,EAAE,GAAKA,KAAAA,CAAMuC,MAAM,CAACC,UAAU,CAAC;;;;;;;;cAQvC,EAAE,CAAC,EAAExC,KAAK,EAAE,GAAKA,KAAAA,CAAMuC,MAAM,CAACE,UAAU,CAAC;;;;;;;;;cASzC,EAAE,CAAC,EAAEzC,KAAK,EAAE,GAAKA,KAAAA,CAAMuC,MAAM,CAACG,UAAU,CAAC;;;;AAIvD,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CroppingActions.mjs","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/CroppingActions.tsx"],"sourcesContent":["import { Flex, FocusTrap, IconButton, Menu } from '@strapi/design-system';\nimport { Check, Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, useTheme } from 'styled-components';\n\nimport { getTrad } from '../../../utils';\n\nimport { CroppingActionRow } from './PreviewComponents';\n\ninterface CroppingActionsProps {\n onCancel: () => void;\n onValidate: () => void;\n onDuplicate?: () => void;\n}\n\nexport const CroppingActions = ({ onCancel, onValidate, onDuplicate }: CroppingActionsProps) => {\n const { formatMessage } = useIntl();\n const theme = useTheme();\n\n return (\n <FocusTrap onEscape={onCancel}>\n <CroppingActionRow justifyContent=\"flex-end\" paddingLeft={3} paddingRight={3}>\n <Flex gap={1}>\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.stop-crop'),\n defaultMessage: 'Stop cropping',\n })}\n onClick={onCancel}\n >\n <Cross />\n </IconButton>\n\n <Menu.Root>\n <Trigger\n aria-label={formatMessage({\n id: getTrad('control-card.crop'),\n defaultMessage: 'Crop',\n })}\n variant=\"tertiary\"\n paddingLeft={2}\n paddingRight={2}\n endIcon={null}\n >\n <Check\n aria-hidden\n focusable={false}\n style={{ position: 'relative', top: 2 }}\n fill=\"#C0C0D0\"\n />\n </Trigger>\n <Menu.Content zIndex={theme.zIndices.dialog}>\n <Menu.Item onSelect={onValidate}>\n {formatMessage({\n id: getTrad('checkControl.crop-original'),\n defaultMessage: 'Crop the original asset',\n })}\n </Menu.Item>\n\n {onDuplicate && (\n <Menu.Item onSelect={onDuplicate}>\n {formatMessage({\n id: getTrad('checkControl.crop-duplicate'),\n defaultMessage: 'Duplicate & crop the asset',\n })}\n </Menu.Item>\n )}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </CroppingActionRow>\n </FocusTrap>\n );\n};\n\nconst Trigger = styled(Menu.Trigger)`\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover {\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n }\n\n &:active {\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral400};\n }\n }\n }\n`;\n"],"names":["CroppingActions","onCancel","onValidate","onDuplicate","formatMessage","useIntl","theme","useTheme","_jsx","FocusTrap","onEscape","CroppingActionRow","justifyContent","paddingLeft","paddingRight","_jsxs","Flex","gap","IconButton","label","id","getTrad","defaultMessage","onClick","Cross","Menu","Root","Trigger","aria-label","variant","endIcon","Check","aria-hidden","focusable","style","position","top","fill","Content","zIndex","zIndices","dialog","Item","onSelect","styled","colors","neutral500","neutral600","neutral400"],"mappings":";;;;;;;;;;;;;AAeO,MAAMA,kBAAkB,CAAC,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,WAAW,EAAwB,GAAA;IACzF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,KAAQC,GAAAA,QAAAA,EAAAA;AAEd,IAAA,qBACEC,GAACC,CAAAA,SAAAA,EAAAA;QAAUC,QAAUT,EAAAA,QAAAA;AACnB,QAAA,QAAA,gBAAAO,GAACG,CAAAA,iBAAAA,EAAAA;YAAkBC,cAAe,EAAA,UAAA;YAAWC,WAAa,EAAA,CAAA;YAAGC,YAAc,EAAA,CAAA;AACzE,YAAA,QAAA,gBAAAC,IAACC,CAAAA,IAAAA,EAAAA;gBAAKC,GAAK,EAAA,CAAA;;kCACTT,GAACU,CAAAA,UAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOf,aAAc,CAAA;AACnBgB,4BAAAA,EAAAA,EAAIC,OAAQ,CAAA,wBAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAC,OAAStB,EAAAA,QAAAA;AAET,wBAAA,QAAA,gBAAAO,GAACgB,CAAAA,KAAAA,EAAAA,EAAAA;;AAGH,kCAAAT,IAAA,CAACU,KAAKC,IAAI,EAAA;;0CACRlB,GAACmB,CAAAA,OAAAA,EAAAA;AACCC,gCAAAA,YAAAA,EAAYxB,aAAc,CAAA;AACxBgB,oCAAAA,EAAAA,EAAIC,OAAQ,CAAA,mBAAA,CAAA;oCACZC,cAAgB,EAAA;AAClB,iCAAA,CAAA;gCACAO,OAAQ,EAAA,UAAA;gCACRhB,WAAa,EAAA,CAAA;gCACbC,YAAc,EAAA,CAAA;gCACdgB,OAAS,EAAA,IAAA;AAET,gCAAA,QAAA,gBAAAtB,GAACuB,CAAAA,KAAAA,EAAAA;oCACCC,aAAW,EAAA,IAAA;oCACXC,SAAW,EAAA,KAAA;oCACXC,KAAO,EAAA;wCAAEC,QAAU,EAAA,UAAA;wCAAYC,GAAK,EAAA;AAAE,qCAAA;oCACtCC,IAAK,EAAA;;;AAGT,0CAAAtB,IAAA,CAACU,KAAKa,OAAO,EAAA;gCAACC,MAAQjC,EAAAA,KAAAA,CAAMkC,QAAQ,CAACC,MAAM;;AACzC,kDAAAjC,GAAA,CAACiB,KAAKiB,IAAI,EAAA;wCAACC,QAAUzC,EAAAA,UAAAA;kDAClBE,aAAc,CAAA;AACbgB,4CAAAA,EAAAA,EAAIC,OAAQ,CAAA,4BAAA,CAAA;4CACZC,cAAgB,EAAA;AAClB,yCAAA;;oCAGDnB,WACC,kBAAAK,GAAA,CAACiB,KAAKiB,IAAI,EAAA;wCAACC,QAAUxC,EAAAA,WAAAA;kDAClBC,aAAc,CAAA;AACbgB,4CAAAA,EAAAA,EAAIC,OAAQ,CAAA,6BAAA,CAAA;4CACZC,cAAgB,EAAA;AAClB,yCAAA;;;;;;;;;;AASlB;AAEA,MAAMK,OAAUiB,GAAAA,MAAAA,CAAOnB,IAAKE,CAAAA,OAAO,CAAC;;;;YAIxB,EAAE,CAAC,EAAErB,KAAK,EAAE,GAAKA,KAAMuC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;;;;;;cAQvC,EAAE,CAAC,EAAExC,KAAK,EAAE,GAAKA,KAAMuC,CAAAA,MAAM,CAACE,UAAU,CAAC;;;;;;;;;cASzC,EAAE,CAAC,EAAEzC,KAAK,EAAE,GAAKA,KAAMuC,CAAAA,MAAM,CAACG,UAAU,CAAC;;;;AAIvD,CAAC;;;;"}
1
+ {"version":3,"file":"CroppingActions.mjs","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/CroppingActions.tsx"],"sourcesContent":["import { Flex, FocusTrap, IconButton, Menu } from '@strapi/design-system';\nimport { Check, Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, useTheme } from 'styled-components';\n\nimport { getTrad } from '../../../utils';\n\nimport { CroppingActionRow } from './PreviewComponents';\n\ninterface CroppingActionsProps {\n onCancel: () => void;\n onValidate: () => void;\n onDuplicate?: () => void;\n}\n\nexport const CroppingActions = ({ onCancel, onValidate, onDuplicate }: CroppingActionsProps) => {\n const { formatMessage } = useIntl();\n const theme = useTheme();\n\n return (\n <FocusTrap onEscape={onCancel}>\n <CroppingActionRow justifyContent=\"flex-end\" paddingLeft={3} paddingRight={3}>\n <Flex gap={1}>\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.stop-crop'),\n defaultMessage: 'Stop cropping',\n })}\n onClick={onCancel}\n >\n <Cross />\n </IconButton>\n\n <Menu.Root>\n <Trigger\n aria-label={formatMessage({\n id: getTrad('control-card.crop'),\n defaultMessage: 'Crop',\n })}\n variant=\"tertiary\"\n paddingLeft={2}\n paddingRight={2}\n endIcon={null}\n >\n <Check\n aria-hidden\n focusable={false}\n style={{ position: 'relative', top: 2 }}\n fill=\"#C0C0D0\"\n />\n </Trigger>\n <Menu.Content zIndex={theme.zIndices.dialog}>\n <Menu.Item onSelect={onValidate}>\n {formatMessage({\n id: getTrad('checkControl.crop-original'),\n defaultMessage: 'Crop the original asset',\n })}\n </Menu.Item>\n\n {onDuplicate && (\n <Menu.Item onSelect={onDuplicate}>\n {formatMessage({\n id: getTrad('checkControl.crop-duplicate'),\n defaultMessage: 'Duplicate & crop the asset',\n })}\n </Menu.Item>\n )}\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </CroppingActionRow>\n </FocusTrap>\n );\n};\n\nconst Trigger = styled(Menu.Trigger)`\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover {\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n }\n\n &:active {\n svg {\n > g,\n path {\n fill: ${({ theme }) => theme.colors.neutral400};\n }\n }\n }\n`;\n"],"names":["CroppingActions","onCancel","onValidate","onDuplicate","formatMessage","useIntl","theme","useTheme","_jsx","FocusTrap","onEscape","CroppingActionRow","justifyContent","paddingLeft","paddingRight","_jsxs","Flex","gap","IconButton","label","id","getTrad","defaultMessage","onClick","Cross","Menu","Root","Trigger","aria-label","variant","endIcon","Check","aria-hidden","focusable","style","position","top","fill","Content","zIndex","zIndices","dialog","Item","onSelect","styled","colors","neutral500","neutral600","neutral400"],"mappings":";;;;;;;;;;;;;AAeO,MAAMA,kBAAkB,CAAC,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,WAAW,EAAwB,GAAA;IACzF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,KAAAA,GAAQC,QAAAA,EAAAA;AAEd,IAAA,qBACEC,GAAA,CAACC,SAAAA,EAAAA;QAAUC,QAAAA,EAAUT,QAAAA;AACnB,QAAA,QAAA,gBAAAO,GAAA,CAACG,iBAAAA,EAAAA;YAAkBC,cAAAA,EAAe,UAAA;YAAWC,WAAAA,EAAa,CAAA;YAAGC,YAAAA,EAAc,CAAA;AACzE,YAAA,QAAA,gBAAAC,IAAA,CAACC,IAAAA,EAAAA;gBAAKC,GAAAA,EAAK,CAAA;;kCACTT,GAAA,CAACU,UAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOf,aAAAA,CAAc;AACnBgB,4BAAAA,EAAAA,EAAIC,OAAAA,CAAQ,wBAAA,CAAA;4BACZC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;wBACAC,OAAAA,EAAStB,QAAAA;AAET,wBAAA,QAAA,gBAAAO,GAAA,CAACgB,KAAAA,EAAAA,EAAAA;;AAGH,kCAAAT,IAAA,CAACU,KAAKC,IAAI,EAAA;;0CACRlB,GAAA,CAACmB,OAAAA,EAAAA;AACCC,gCAAAA,YAAAA,EAAYxB,aAAAA,CAAc;AACxBgB,oCAAAA,EAAAA,EAAIC,OAAAA,CAAQ,mBAAA,CAAA;oCACZC,cAAAA,EAAgB;AAClB,iCAAA,CAAA;gCACAO,OAAAA,EAAQ,UAAA;gCACRhB,WAAAA,EAAa,CAAA;gCACbC,YAAAA,EAAc,CAAA;gCACdgB,OAAAA,EAAS,IAAA;AAET,gCAAA,QAAA,gBAAAtB,GAAA,CAACuB,KAAAA,EAAAA;oCACCC,aAAW,EAAA,IAAA;oCACXC,SAAAA,EAAW,KAAA;oCACXC,KAAAA,EAAO;wCAAEC,QAAAA,EAAU,UAAA;wCAAYC,GAAAA,EAAK;AAAE,qCAAA;oCACtCC,IAAAA,EAAK;;;AAGT,0CAAAtB,IAAA,CAACU,KAAKa,OAAO,EAAA;gCAACC,MAAAA,EAAQjC,KAAAA,CAAMkC,QAAQ,CAACC,MAAM;;AACzC,kDAAAjC,GAAA,CAACiB,KAAKiB,IAAI,EAAA;wCAACC,QAAAA,EAAUzC,UAAAA;kDAClBE,aAAAA,CAAc;AACbgB,4CAAAA,EAAAA,EAAIC,OAAAA,CAAQ,4BAAA,CAAA;4CACZC,cAAAA,EAAgB;AAClB,yCAAA;;oCAGDnB,WAAAA,kBACCK,GAAA,CAACiB,KAAKiB,IAAI,EAAA;wCAACC,QAAAA,EAAUxC,WAAAA;kDAClBC,aAAAA,CAAc;AACbgB,4CAAAA,EAAAA,EAAIC,OAAAA,CAAQ,6BAAA,CAAA;4CACZC,cAAAA,EAAgB;AAClB,yCAAA;;;;;;;;;;AASlB;AAEA,MAAMK,OAAAA,GAAUiB,MAAAA,CAAOnB,IAAAA,CAAKE,OAAO,CAAC;;;;YAIxB,EAAE,CAAC,EAAErB,KAAK,EAAE,GAAKA,KAAAA,CAAMuC,MAAM,CAACC,UAAU,CAAC;;;;;;;;cAQvC,EAAE,CAAC,EAAExC,KAAK,EAAE,GAAKA,KAAAA,CAAMuC,MAAM,CAACE,UAAU,CAAC;;;;;;;;;cASzC,EAAE,CAAC,EAAEzC,KAAK,EAAE,GAAKA,KAAAA,CAAMuC,MAAM,CAACG,UAAU,CAAC;;;;AAIvD,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FocalPointActions.js","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/FocalPointActions.tsx"],"sourcesContent":["import { Flex, FocusTrap, IconButton } from '@strapi/design-system';\nimport { Check, Cross, ArrowsCounterClockwise } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\nimport { FocalPointActionRow } from './PreviewComponents';\n\ninterface FocalPointActionsProps {\n onCancel: () => void;\n onValidate: () => void;\n onReset: () => void;\n}\n\nexport const FocalPointActions = ({ onCancel, onValidate, onReset }: FocalPointActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <FocusTrap onEscape={onCancel}>\n <FocalPointActionRow justifyContent=\"flex-end\" paddingLeft={3} paddingRight={3}>\n <Flex gap={1}>\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.stop-focal-point'),\n defaultMessage: 'Cancel focal point selection',\n })}\n onClick={onCancel}\n >\n <Cross />\n </IconButton>\n\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.reset-focal-point'),\n defaultMessage: 'Reset to center',\n })}\n onClick={onReset}\n >\n <ArrowsCounterClockwise />\n </IconButton>\n\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.save-focal-point'),\n defaultMessage: 'Save focal point',\n })}\n onClick={onValidate}\n >\n <Check />\n </IconButton>\n </Flex>\n </FocalPointActionRow>\n </FocusTrap>\n );\n};\n"],"names":["FocalPointActions","onCancel","onValidate","onReset","formatMessage","useIntl","_jsx","FocusTrap","onEscape","FocalPointActionRow","justifyContent","paddingLeft","paddingRight","_jsxs","Flex","gap","IconButton","label","id","getTrad","defaultMessage","onClick","Cross","ArrowsCounterClockwise","Check"],"mappings":";;;;;;;;;;;;;;AAcO,MAAMA,oBAAoB,CAAC,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAA0B,GAAA;IACzF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,cAACC,CAAAA,sBAAAA,EAAAA;QAAUC,QAAUP,EAAAA,QAAAA;AACnB,QAAA,QAAA,gBAAAK,cAACG,CAAAA,qCAAAA,EAAAA;YAAoBC,cAAe,EAAA,UAAA;YAAWC,WAAa,EAAA,CAAA;YAAGC,YAAc,EAAA,CAAA;AAC3E,YAAA,QAAA,gBAAAC,eAACC,CAAAA,iBAAAA,EAAAA;gBAAKC,GAAK,EAAA,CAAA;;kCACTT,cAACU,CAAAA,uBAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAc,CAAA;AACnBc,4BAAAA,EAAAA,EAAIC,eAAQ,CAAA,+BAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAC,OAASpB,EAAAA,QAAAA;AAET,wBAAA,QAAA,gBAAAK,cAACgB,CAAAA,WAAAA,EAAAA,EAAAA;;kCAGHhB,cAACU,CAAAA,uBAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAc,CAAA;AACnBc,4BAAAA,EAAAA,EAAIC,eAAQ,CAAA,gCAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAC,OAASlB,EAAAA,OAAAA;AAET,wBAAA,QAAA,gBAAAG,cAACiB,CAAAA,4BAAAA,EAAAA,EAAAA;;kCAGHjB,cAACU,CAAAA,uBAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAc,CAAA;AACnBc,4BAAAA,EAAAA,EAAIC,eAAQ,CAAA,+BAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAC,OAASnB,EAAAA,UAAAA;AAET,wBAAA,QAAA,gBAAAI,cAACkB,CAAAA,WAAAA,EAAAA,EAAAA;;;;;;AAMb;;;;"}
1
+ {"version":3,"file":"FocalPointActions.js","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/FocalPointActions.tsx"],"sourcesContent":["import { Flex, FocusTrap, IconButton } from '@strapi/design-system';\nimport { Check, Cross, ArrowsCounterClockwise } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\nimport { FocalPointActionRow } from './PreviewComponents';\n\ninterface FocalPointActionsProps {\n onCancel: () => void;\n onValidate: () => void;\n onReset: () => void;\n}\n\nexport const FocalPointActions = ({ onCancel, onValidate, onReset }: FocalPointActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <FocusTrap onEscape={onCancel}>\n <FocalPointActionRow justifyContent=\"flex-end\" paddingLeft={3} paddingRight={3}>\n <Flex gap={1}>\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.stop-focal-point'),\n defaultMessage: 'Cancel focal point selection',\n })}\n onClick={onCancel}\n >\n <Cross />\n </IconButton>\n\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.reset-focal-point'),\n defaultMessage: 'Reset to center',\n })}\n onClick={onReset}\n >\n <ArrowsCounterClockwise />\n </IconButton>\n\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.save-focal-point'),\n defaultMessage: 'Save focal point',\n })}\n onClick={onValidate}\n >\n <Check />\n </IconButton>\n </Flex>\n </FocalPointActionRow>\n </FocusTrap>\n );\n};\n"],"names":["FocalPointActions","onCancel","onValidate","onReset","formatMessage","useIntl","_jsx","FocusTrap","onEscape","FocalPointActionRow","justifyContent","paddingLeft","paddingRight","_jsxs","Flex","gap","IconButton","label","id","getTrad","defaultMessage","onClick","Cross","ArrowsCounterClockwise","Check"],"mappings":";;;;;;;;;;;;;;AAcO,MAAMA,oBAAoB,CAAC,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAA0B,GAAA;IACzF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,cAAA,CAACC,sBAAAA,EAAAA;QAAUC,QAAAA,EAAUP,QAAAA;AACnB,QAAA,QAAA,gBAAAK,cAAA,CAACG,qCAAAA,EAAAA;YAAoBC,cAAAA,EAAe,UAAA;YAAWC,WAAAA,EAAa,CAAA;YAAGC,YAAAA,EAAc,CAAA;AAC3E,YAAA,QAAA,gBAAAC,eAAA,CAACC,iBAAAA,EAAAA;gBAAKC,GAAAA,EAAK,CAAA;;kCACTT,cAAA,CAACU,uBAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAAA,CAAc;AACnBc,4BAAAA,EAAAA,EAAIC,eAAAA,CAAQ,+BAAA,CAAA;4BACZC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;wBACAC,OAAAA,EAASpB,QAAAA;AAET,wBAAA,QAAA,gBAAAK,cAAA,CAACgB,WAAAA,EAAAA,EAAAA;;kCAGHhB,cAAA,CAACU,uBAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAAA,CAAc;AACnBc,4BAAAA,EAAAA,EAAIC,eAAAA,CAAQ,gCAAA,CAAA;4BACZC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;wBACAC,OAAAA,EAASlB,OAAAA;AAET,wBAAA,QAAA,gBAAAG,cAAA,CAACiB,4BAAAA,EAAAA,EAAAA;;kCAGHjB,cAAA,CAACU,uBAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAAA,CAAc;AACnBc,4BAAAA,EAAAA,EAAIC,eAAAA,CAAQ,+BAAA,CAAA;4BACZC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;wBACAC,OAAAA,EAASnB,UAAAA;AAET,wBAAA,QAAA,gBAAAI,cAAA,CAACkB,WAAAA,EAAAA,EAAAA;;;;;;AAMb;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FocalPointActions.mjs","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/FocalPointActions.tsx"],"sourcesContent":["import { Flex, FocusTrap, IconButton } from '@strapi/design-system';\nimport { Check, Cross, ArrowsCounterClockwise } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\nimport { FocalPointActionRow } from './PreviewComponents';\n\ninterface FocalPointActionsProps {\n onCancel: () => void;\n onValidate: () => void;\n onReset: () => void;\n}\n\nexport const FocalPointActions = ({ onCancel, onValidate, onReset }: FocalPointActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <FocusTrap onEscape={onCancel}>\n <FocalPointActionRow justifyContent=\"flex-end\" paddingLeft={3} paddingRight={3}>\n <Flex gap={1}>\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.stop-focal-point'),\n defaultMessage: 'Cancel focal point selection',\n })}\n onClick={onCancel}\n >\n <Cross />\n </IconButton>\n\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.reset-focal-point'),\n defaultMessage: 'Reset to center',\n })}\n onClick={onReset}\n >\n <ArrowsCounterClockwise />\n </IconButton>\n\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.save-focal-point'),\n defaultMessage: 'Save focal point',\n })}\n onClick={onValidate}\n >\n <Check />\n </IconButton>\n </Flex>\n </FocalPointActionRow>\n </FocusTrap>\n );\n};\n"],"names":["FocalPointActions","onCancel","onValidate","onReset","formatMessage","useIntl","_jsx","FocusTrap","onEscape","FocalPointActionRow","justifyContent","paddingLeft","paddingRight","_jsxs","Flex","gap","IconButton","label","id","getTrad","defaultMessage","onClick","Cross","ArrowsCounterClockwise","Check"],"mappings":";;;;;;;;;;;;AAcO,MAAMA,oBAAoB,CAAC,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAA0B,GAAA;IACzF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,GAACC,CAAAA,SAAAA,EAAAA;QAAUC,QAAUP,EAAAA,QAAAA;AACnB,QAAA,QAAA,gBAAAK,GAACG,CAAAA,mBAAAA,EAAAA;YAAoBC,cAAe,EAAA,UAAA;YAAWC,WAAa,EAAA,CAAA;YAAGC,YAAc,EAAA,CAAA;AAC3E,YAAA,QAAA,gBAAAC,IAACC,CAAAA,IAAAA,EAAAA;gBAAKC,GAAK,EAAA,CAAA;;kCACTT,GAACU,CAAAA,UAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAc,CAAA;AACnBc,4BAAAA,EAAAA,EAAIC,OAAQ,CAAA,+BAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAC,OAASpB,EAAAA,QAAAA;AAET,wBAAA,QAAA,gBAAAK,GAACgB,CAAAA,KAAAA,EAAAA,EAAAA;;kCAGHhB,GAACU,CAAAA,UAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAc,CAAA;AACnBc,4BAAAA,EAAAA,EAAIC,OAAQ,CAAA,gCAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAC,OAASlB,EAAAA,OAAAA;AAET,wBAAA,QAAA,gBAAAG,GAACiB,CAAAA,sBAAAA,EAAAA,EAAAA;;kCAGHjB,GAACU,CAAAA,UAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAc,CAAA;AACnBc,4BAAAA,EAAAA,EAAIC,OAAQ,CAAA,+BAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAC,OAASnB,EAAAA,UAAAA;AAET,wBAAA,QAAA,gBAAAI,GAACkB,CAAAA,KAAAA,EAAAA,EAAAA;;;;;;AAMb;;;;"}
1
+ {"version":3,"file":"FocalPointActions.mjs","sources":["../../../../../admin/src/components/EditAssetDialog/PreviewBox/FocalPointActions.tsx"],"sourcesContent":["import { Flex, FocusTrap, IconButton } from '@strapi/design-system';\nimport { Check, Cross, ArrowsCounterClockwise } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../../utils';\n\nimport { FocalPointActionRow } from './PreviewComponents';\n\ninterface FocalPointActionsProps {\n onCancel: () => void;\n onValidate: () => void;\n onReset: () => void;\n}\n\nexport const FocalPointActions = ({ onCancel, onValidate, onReset }: FocalPointActionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <FocusTrap onEscape={onCancel}>\n <FocalPointActionRow justifyContent=\"flex-end\" paddingLeft={3} paddingRight={3}>\n <Flex gap={1}>\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.stop-focal-point'),\n defaultMessage: 'Cancel focal point selection',\n })}\n onClick={onCancel}\n >\n <Cross />\n </IconButton>\n\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.reset-focal-point'),\n defaultMessage: 'Reset to center',\n })}\n onClick={onReset}\n >\n <ArrowsCounterClockwise />\n </IconButton>\n\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.save-focal-point'),\n defaultMessage: 'Save focal point',\n })}\n onClick={onValidate}\n >\n <Check />\n </IconButton>\n </Flex>\n </FocalPointActionRow>\n </FocusTrap>\n );\n};\n"],"names":["FocalPointActions","onCancel","onValidate","onReset","formatMessage","useIntl","_jsx","FocusTrap","onEscape","FocalPointActionRow","justifyContent","paddingLeft","paddingRight","_jsxs","Flex","gap","IconButton","label","id","getTrad","defaultMessage","onClick","Cross","ArrowsCounterClockwise","Check"],"mappings":";;;;;;;;;;;;AAcO,MAAMA,oBAAoB,CAAC,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,OAAO,EAA0B,GAAA;IACzF,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,GAAA,CAACC,SAAAA,EAAAA;QAAUC,QAAAA,EAAUP,QAAAA;AACnB,QAAA,QAAA,gBAAAK,GAAA,CAACG,mBAAAA,EAAAA;YAAoBC,cAAAA,EAAe,UAAA;YAAWC,WAAAA,EAAa,CAAA;YAAGC,YAAAA,EAAc,CAAA;AAC3E,YAAA,QAAA,gBAAAC,IAAA,CAACC,IAAAA,EAAAA;gBAAKC,GAAAA,EAAK,CAAA;;kCACTT,GAAA,CAACU,UAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAAA,CAAc;AACnBc,4BAAAA,EAAAA,EAAIC,OAAAA,CAAQ,+BAAA,CAAA;4BACZC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;wBACAC,OAAAA,EAASpB,QAAAA;AAET,wBAAA,QAAA,gBAAAK,GAAA,CAACgB,KAAAA,EAAAA,EAAAA;;kCAGHhB,GAAA,CAACU,UAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAAA,CAAc;AACnBc,4BAAAA,EAAAA,EAAIC,OAAAA,CAAQ,gCAAA,CAAA;4BACZC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;wBACAC,OAAAA,EAASlB,OAAAA;AAET,wBAAA,QAAA,gBAAAG,GAAA,CAACiB,sBAAAA,EAAAA,EAAAA;;kCAGHjB,GAAA,CAACU,UAAAA,EAAAA;AACCC,wBAAAA,KAAAA,EAAOb,aAAAA,CAAc;AACnBc,4BAAAA,EAAAA,EAAIC,OAAAA,CAAQ,+BAAA,CAAA;4BACZC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;wBACAC,OAAAA,EAASnB,UAAAA;AAET,wBAAA,QAAA,gBAAAI,GAAA,CAACkB,KAAAA,EAAAA,EAAAA;;;;;;AAMb;;;;"}
@@ -140,10 +140,7 @@ const PreviewBox = ({ asset, canUpdate, canCopyLink, canDownload, onDelete, onCr
140
140
  const isInCroppingMode = isCropping && !isLoading;
141
141
  const handleDuplication = async ()=>{
142
142
  const nextAsset = {
143
- ...asset,
144
- width,
145
- height
146
- };
143
+ ...asset};
147
144
  const file = await produceFile(nextAsset.name, nextAsset.mime, nextAsset.updatedAt);
148
145
  await upload({
149
146
  name: file.name,