@strapi/upload 5.30.0 → 5.31.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 (281) hide show
  1. package/dist/admin/ai/components/AIAssetCard.js +27 -7
  2. package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
  3. package/dist/admin/ai/components/AIAssetCard.mjs +21 -1
  4. package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
  5. package/dist/admin/ai/components/AIUploadModal.js +1 -1
  6. package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
  7. package/dist/admin/ai/components/AIUploadModal.mjs +1 -1
  8. package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
  9. package/dist/admin/components/AssetCard/AssetCard.js +5 -4
  10. package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
  11. package/dist/admin/components/AssetCard/AssetCard.mjs +2 -1
  12. package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
  13. package/dist/admin/components/AssetCard/AssetCardBase.js +1 -1
  14. package/dist/admin/components/AssetCard/AssetCardBase.mjs +1 -1
  15. package/dist/admin/components/AssetCard/DocAssetCard.js +3 -7
  16. package/dist/admin/components/AssetCard/DocAssetCard.js.map +1 -1
  17. package/dist/admin/components/AssetCard/DocAssetCard.mjs +3 -7
  18. package/dist/admin/components/AssetCard/DocAssetCard.mjs.map +1 -1
  19. package/dist/admin/components/AssetCard/ImageAssetCard.js +1 -1
  20. package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
  21. package/dist/admin/components/AssetCard/ImageAssetCard.mjs +1 -1
  22. package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
  23. package/dist/admin/components/AssetCard/UploadingAssetCard.js +5 -4
  24. package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
  25. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +2 -1
  26. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
  27. package/dist/admin/components/AssetCard/VideoAssetCard.js +1 -1
  28. package/dist/admin/components/AssetCard/VideoAssetCard.mjs +1 -1
  29. package/dist/admin/components/AssetDialog/AssetDialog.js +1 -1
  30. package/dist/admin/components/AssetDialog/AssetDialog.mjs +1 -1
  31. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +2 -0
  32. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
  33. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +2 -0
  34. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
  35. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js +1 -1
  36. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs +1 -1
  37. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +1 -1
  38. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +1 -1
  39. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js +1 -1
  40. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs +1 -1
  41. package/dist/admin/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  42. package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
  43. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js +1 -1
  44. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs +1 -1
  45. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js +1 -1
  46. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs +1 -1
  47. package/dist/admin/components/CopyLinkButton/CopyLinkButton.js +1 -1
  48. package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs +1 -1
  49. package/dist/admin/components/EditAssetDialog/EditAssetContent.js +1 -1
  50. package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
  51. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +1 -1
  52. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
  53. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +15 -34
  54. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
  55. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +15 -34
  56. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
  57. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js +1 -1
  58. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs +1 -1
  59. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +3 -2
  60. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
  61. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +2 -1
  62. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
  63. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +1 -1
  64. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +1 -1
  65. package/dist/admin/components/EditFolderDialog/EditFolderDialog.js +1 -1
  66. package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs +1 -1
  67. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js +1 -1
  68. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs +1 -1
  69. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js.map +1 -1
  70. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs.map +1 -1
  71. package/dist/admin/components/FilterList/FilterList.js.map +1 -1
  72. package/dist/admin/components/FilterList/FilterList.mjs.map +1 -1
  73. package/dist/admin/components/FilterList/FilterTag.js.map +1 -1
  74. package/dist/admin/components/FilterList/FilterTag.mjs.map +1 -1
  75. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js.map +1 -1
  76. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +1 -1
  77. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +1 -1
  78. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +1 -1
  79. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +8 -10
  80. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
  81. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +5 -7
  82. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
  83. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js +1 -1
  84. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +1 -1
  85. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +1 -0
  86. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
  87. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +1 -0
  88. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
  89. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +1 -1
  90. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
  91. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +1 -1
  92. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
  93. package/dist/admin/components/SelectTree/Option.js.map +1 -1
  94. package/dist/admin/components/SelectTree/Option.mjs.map +1 -1
  95. package/dist/admin/components/SelectTree/SelectTree.js.map +1 -1
  96. package/dist/admin/components/SelectTree/SelectTree.mjs.map +1 -1
  97. package/dist/admin/components/SelectTree/utils/flattenTree.js.map +1 -1
  98. package/dist/admin/components/SelectTree/utils/flattenTree.mjs.map +1 -1
  99. package/dist/admin/components/SortPicker/SortPicker.js +1 -0
  100. package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
  101. package/dist/admin/components/SortPicker/SortPicker.mjs +1 -0
  102. package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
  103. package/dist/admin/components/TableList/CellContent.js +1 -1
  104. package/dist/admin/components/TableList/CellContent.mjs +1 -1
  105. package/dist/admin/components/TableList/PreviewCell.js +5 -4
  106. package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
  107. package/dist/admin/components/TableList/PreviewCell.mjs +2 -1
  108. package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
  109. package/dist/admin/components/TableList/TableList.js +1 -0
  110. package/dist/admin/components/TableList/TableList.js.map +1 -1
  111. package/dist/admin/components/TableList/TableList.mjs +1 -0
  112. package/dist/admin/components/TableList/TableList.mjs.map +1 -1
  113. package/dist/admin/components/TableList/TableRows.js +1 -0
  114. package/dist/admin/components/TableList/TableRows.js.map +1 -1
  115. package/dist/admin/components/TableList/TableRows.mjs +1 -0
  116. package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
  117. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js +1 -1
  118. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +1 -1
  119. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +1 -0
  120. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
  121. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +1 -0
  122. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
  123. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +1 -1
  124. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +1 -1
  125. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +1 -1
  126. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
  127. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +1 -1
  128. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
  129. package/dist/admin/components/UploadProgress/UploadProgress.js.map +1 -1
  130. package/dist/admin/components/UploadProgress/UploadProgress.mjs.map +1 -1
  131. package/dist/admin/constants.js +5 -10
  132. package/dist/admin/constants.js.map +1 -1
  133. package/dist/admin/constants.mjs +5 -11
  134. package/dist/admin/constants.mjs.map +1 -1
  135. package/dist/admin/enums.js +20 -0
  136. package/dist/admin/enums.js.map +1 -0
  137. package/dist/admin/enums.mjs +17 -0
  138. package/dist/admin/enums.mjs.map +1 -0
  139. package/dist/admin/hooks/useBulkEdit.js +1 -1
  140. package/dist/admin/hooks/useBulkEdit.mjs +1 -1
  141. package/dist/admin/hooks/useBulkMove.js +1 -1
  142. package/dist/admin/hooks/useBulkMove.mjs +1 -1
  143. package/dist/admin/hooks/useBulkRemove.js +1 -1
  144. package/dist/admin/hooks/useBulkRemove.mjs +1 -1
  145. package/dist/admin/hooks/useEditAsset.js +1 -1
  146. package/dist/admin/hooks/useEditAsset.js.map +1 -1
  147. package/dist/admin/hooks/useEditAsset.mjs +1 -1
  148. package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
  149. package/dist/admin/hooks/useEditFolder.js.map +1 -1
  150. package/dist/admin/hooks/useEditFolder.mjs.map +1 -1
  151. package/dist/admin/hooks/useFolder.js +1 -1
  152. package/dist/admin/hooks/useFolder.js.map +1 -1
  153. package/dist/admin/hooks/useFolder.mjs +1 -1
  154. package/dist/admin/hooks/useFolder.mjs.map +1 -1
  155. package/dist/admin/hooks/useFolderStructure.js +1 -1
  156. package/dist/admin/hooks/useFolderStructure.mjs +1 -1
  157. package/dist/admin/hooks/useRemoveAsset.js.map +1 -1
  158. package/dist/admin/hooks/useRemoveAsset.mjs.map +1 -1
  159. package/dist/admin/hooks/useTracking.js +4 -1
  160. package/dist/admin/hooks/useTracking.js.map +1 -1
  161. package/dist/admin/hooks/useTracking.mjs +5 -2
  162. package/dist/admin/hooks/useTracking.mjs.map +1 -1
  163. package/dist/admin/hooks/useUpload.js.map +1 -1
  164. package/dist/admin/hooks/useUpload.mjs.map +1 -1
  165. package/dist/admin/index.js +1 -0
  166. package/dist/admin/index.js.map +1 -1
  167. package/dist/admin/index.mjs +1 -0
  168. package/dist/admin/index.mjs.map +1 -1
  169. package/dist/admin/package.json.js +7 -6
  170. package/dist/admin/package.json.js.map +1 -1
  171. package/dist/admin/package.json.mjs +7 -6
  172. package/dist/admin/package.json.mjs.map +1 -1
  173. package/dist/admin/pages/App/App.js +1 -1
  174. package/dist/admin/pages/App/App.mjs +1 -1
  175. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +1 -1
  176. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
  177. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +1 -1
  178. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
  179. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +1 -0
  180. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
  181. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +1 -0
  182. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
  183. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js.map +1 -1
  184. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs.map +1 -1
  185. package/dist/admin/pages/App/MediaLibrary/MediaLibrary.js +1 -0
  186. package/dist/admin/pages/App/MediaLibrary/MediaLibrary.js.map +1 -1
  187. package/dist/admin/pages/App/MediaLibrary/MediaLibrary.mjs +1 -0
  188. package/dist/admin/pages/App/MediaLibrary/MediaLibrary.mjs.map +1 -1
  189. package/dist/admin/pages/App/MediaLibrary/components/BulkActions.js +1 -1
  190. package/dist/admin/pages/App/MediaLibrary/components/BulkActions.mjs +1 -1
  191. package/dist/admin/pages/App/MediaLibrary/components/EmptyOrNoPermissions.js +1 -1
  192. package/dist/admin/pages/App/MediaLibrary/components/EmptyOrNoPermissions.mjs +1 -1
  193. package/dist/admin/pages/App/MediaLibrary/components/Filters.js +1 -1
  194. package/dist/admin/pages/App/MediaLibrary/components/Filters.mjs +1 -1
  195. package/dist/admin/pages/App/MediaLibrary/components/Header.js +1 -1
  196. package/dist/admin/pages/App/MediaLibrary/components/Header.js.map +1 -1
  197. package/dist/admin/pages/App/MediaLibrary/components/Header.mjs +1 -1
  198. package/dist/admin/pages/App/MediaLibrary/components/Header.mjs.map +1 -1
  199. package/dist/admin/pages/SettingsPage/SettingsPage.js +1 -0
  200. package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
  201. package/dist/admin/pages/SettingsPage/SettingsPage.mjs +1 -0
  202. package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
  203. package/dist/admin/src/components/AssetCard/UploadingAssetCard.d.ts +1 -1
  204. package/dist/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.d.ts +1 -1
  205. package/dist/admin/src/constants.d.ts +0 -6
  206. package/dist/admin/src/enums.d.ts +12 -0
  207. package/dist/admin/src/utils/icons.d.ts +14 -0
  208. package/dist/admin/src/utils/rawFileToAsset.d.ts +1 -1
  209. package/dist/admin/src/utils/typeFromMime.d.ts +2 -2
  210. package/dist/admin/src/utils/urlsToAssets.d.ts +1 -1
  211. package/dist/admin/translations/pt-BR.json.js +75 -7
  212. package/dist/admin/translations/pt-BR.json.js.map +1 -1
  213. package/dist/admin/translations/pt-BR.json.mjs +75 -7
  214. package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
  215. package/dist/admin/utils/formatBytes.js.map +1 -1
  216. package/dist/admin/utils/formatBytes.mjs.map +1 -1
  217. package/dist/admin/utils/formatDuration.js.map +1 -1
  218. package/dist/admin/utils/formatDuration.mjs.map +1 -1
  219. package/dist/admin/utils/getFolderURL.js.map +1 -1
  220. package/dist/admin/utils/getFolderURL.mjs.map +1 -1
  221. package/dist/admin/utils/getTrad.js.map +1 -1
  222. package/dist/admin/utils/getTrad.mjs.map +1 -1
  223. package/dist/admin/utils/icons.js +23 -0
  224. package/dist/admin/utils/icons.js.map +1 -0
  225. package/dist/admin/utils/icons.mjs +19 -0
  226. package/dist/admin/utils/icons.mjs.map +1 -0
  227. package/dist/admin/utils/normalizeAPIError.js.map +1 -1
  228. package/dist/admin/utils/normalizeAPIError.mjs.map +1 -1
  229. package/dist/admin/utils/prefixFileUrlWithBackendUrl.js.map +1 -1
  230. package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs.map +1 -1
  231. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  232. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  233. package/dist/admin/utils/typeFromMime.js +15 -11
  234. package/dist/admin/utils/typeFromMime.js.map +1 -1
  235. package/dist/admin/utils/typeFromMime.mjs +15 -11
  236. package/dist/admin/utils/typeFromMime.mjs.map +1 -1
  237. package/dist/server/controllers/admin-folder-file.js.map +1 -1
  238. package/dist/server/controllers/admin-folder-file.mjs.map +1 -1
  239. package/dist/server/controllers/admin-upload.js +37 -5
  240. package/dist/server/controllers/admin-upload.js.map +1 -1
  241. package/dist/server/controllers/admin-upload.mjs +37 -5
  242. package/dist/server/controllers/admin-upload.mjs.map +1 -1
  243. package/dist/server/controllers/utils/folders.js.map +1 -1
  244. package/dist/server/controllers/utils/folders.mjs.map +1 -1
  245. package/dist/server/controllers/validation/admin/folder-file.js.map +1 -1
  246. package/dist/server/controllers/validation/admin/folder-file.mjs.map +1 -1
  247. package/dist/server/controllers/validation/admin/folder.js +1 -1
  248. package/dist/server/controllers/validation/admin/folder.js.map +1 -1
  249. package/dist/server/controllers/validation/admin/folder.mjs +1 -1
  250. package/dist/server/controllers/validation/admin/folder.mjs.map +1 -1
  251. package/dist/server/register.js.map +1 -1
  252. package/dist/server/register.mjs.map +1 -1
  253. package/dist/server/services/ai-metadata.js.map +1 -1
  254. package/dist/server/services/ai-metadata.mjs.map +1 -1
  255. package/dist/server/services/api-upload-folder.js.map +1 -1
  256. package/dist/server/services/api-upload-folder.mjs.map +1 -1
  257. package/dist/server/services/folder.js.map +1 -1
  258. package/dist/server/services/folder.mjs.map +1 -1
  259. package/dist/server/services/image-manipulation.js +1 -1
  260. package/dist/server/services/image-manipulation.js.map +1 -1
  261. package/dist/server/services/image-manipulation.mjs +1 -1
  262. package/dist/server/services/image-manipulation.mjs.map +1 -1
  263. package/dist/server/services/metrics.js +4 -1
  264. package/dist/server/services/metrics.js.map +1 -1
  265. package/dist/server/services/metrics.mjs +4 -1
  266. package/dist/server/services/metrics.mjs.map +1 -1
  267. package/dist/server/services/upload.js.map +1 -1
  268. package/dist/server/services/upload.mjs.map +1 -1
  269. package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
  270. package/dist/server/src/services/metrics.d.ts.map +1 -1
  271. package/dist/server/src/types.d.ts +1 -0
  272. package/dist/server/src/types.d.ts.map +1 -1
  273. package/dist/server/src/utils/mime-validation.d.ts +34 -0
  274. package/dist/server/src/utils/mime-validation.d.ts.map +1 -0
  275. package/dist/server/utils/cron.js.map +1 -1
  276. package/dist/server/utils/cron.mjs.map +1 -1
  277. package/dist/server/utils/mime-validation.js +218 -0
  278. package/dist/server/utils/mime-validation.js.map +1 -0
  279. package/dist/server/utils/mime-validation.mjs +211 -0
  280. package/dist/server/utils/mime-validation.mjs.map +1 -0
  281. package/package.json +7 -6
@@ -7,7 +7,7 @@ require('byte-size');
7
7
  require('date-fns');
8
8
  var getTrad = require('../../../../utils/getTrad.js');
9
9
  require('qs');
10
- require('../../../../constants.js');
10
+ require('../../../../utils/typeFromMime.js');
11
11
  require('../../../../utils/urlYupSchema.js');
12
12
  var BulkDeleteButton = require('./BulkDeleteButton.js');
13
13
  var BulkMoveButton = require('./BulkMoveButton.js');
@@ -5,7 +5,7 @@ import 'byte-size';
5
5
  import 'date-fns';
6
6
  import { getTrad } from '../../../../utils/getTrad.mjs';
7
7
  import 'qs';
8
- import '../../../../constants.mjs';
8
+ import '../../../../utils/typeFromMime.mjs';
9
9
  import '../../../../utils/urlYupSchema.mjs';
10
10
  import { BulkDeleteButton } from './BulkDeleteButton.mjs';
11
11
  import { BulkMoveButton } from './BulkMoveButton.mjs';
@@ -10,7 +10,7 @@ require('byte-size');
10
10
  require('date-fns');
11
11
  var getTrad = require('../../../../utils/getTrad.js');
12
12
  require('qs');
13
- require('../../../../constants.js');
13
+ require('../../../../utils/typeFromMime.js');
14
14
  require('../../../../utils/urlYupSchema.js');
15
15
 
16
16
  const getContentIntlMessage = ({ isFiltering, canCreate, canRead })=>{
@@ -8,7 +8,7 @@ import 'byte-size';
8
8
  import 'date-fns';
9
9
  import { getTrad } from '../../../../utils/getTrad.mjs';
10
10
  import 'qs';
11
- import '../../../../constants.mjs';
11
+ import '../../../../utils/typeFromMime.mjs';
12
12
  import '../../../../utils/urlYupSchema.mjs';
13
13
 
14
14
  const getContentIntlMessage = ({ isFiltering, canCreate, canRead })=>{
@@ -13,7 +13,7 @@ var displayedFilters = require('../../../../utils/displayedFilters.js');
13
13
  require('byte-size');
14
14
  require('date-fns');
15
15
  require('qs');
16
- require('../../../../constants.js');
16
+ require('../../../../utils/typeFromMime.js');
17
17
  require('../../../../utils/urlYupSchema.js');
18
18
 
19
19
  function _interopNamespaceDefault(e) {
@@ -11,7 +11,7 @@ import { displayedFilters } from '../../../../utils/displayedFilters.mjs';
11
11
  import 'byte-size';
12
12
  import 'date-fns';
13
13
  import 'qs';
14
- import '../../../../constants.mjs';
14
+ import '../../../../utils/typeFromMime.mjs';
15
15
  import '../../../../utils/urlYupSchema.mjs';
16
16
 
17
17
  const Filters = ()=>{
@@ -11,7 +11,7 @@ var Breadcrumbs = require('../../../../components/Breadcrumbs/Breadcrumbs.js');
11
11
  require('byte-size');
12
12
  require('date-fns');
13
13
  var getTrad = require('../../../../utils/getTrad.js');
14
- require('../../../../constants.js');
14
+ require('../../../../utils/typeFromMime.js');
15
15
  require('../../../../utils/urlYupSchema.js');
16
16
 
17
17
  const Header = ({ breadcrumbs = null, canCreate, folder = null, onToggleEditFolderDialog, onToggleUploadAssetDialog })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../../utils';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: ({ created }?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2}>\n <Button startIcon={<Plus />} variant=\"secondary\" onClick={onToggleEditFolderDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","Button","Plus","variant","onClick"],"mappings":";;;;;;;;;;;;;;;;AA+BaA,MAAAA,MAAAA,GAAS,CAAC,EACrBC,cAAc,IAAI,EAClBC,SAAS,EACTC,SAAS,IAAI,EACbC,wBAAwB,EACxBC,yBAAyB,EACb,GAAA;IACZ,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,0BAAAA,EAAAA;AACrB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;AACpB,IAAA,MAAMC,SAAY,GAAA;AAChB,QAAA,GAAGF,KAAK;AACRP,QAAAA,MAAAA,EACEA,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACC,EAAE,GACnEX,MAAAA,CAAOU,MAAM,CAACC,EAAE,GAChBC,SAAAA;AACNC,QAAAA,UAAAA,EACEb,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACI,IAAI,GACrEd,MAAAA,CAAOU,MAAM,CAACI,IAAI,GAClBF;AACR,KAAA;IAEA,qBACEG,cAAA,CAACC,oBAAQnB,MAAM,EAAA;AACboB,QAAAA,KAAAA,EAAOd,aAAc,CAAA;AACnBQ,YAAAA,EAAAA,EAAIO,eAAQ,CAAA,aAAA,CAAA;YACZC,cAAgB,EAAA,CAAC,aAAa;AAChC,SAAA,CAAA;AACAC,QAAAA,QAAAA,EACEtB,WACA,IAAA,OAAOA,WAAgB,KAAA,SAAA,IACvBE,wBACEe,cAACM,CAAAA,uBAAAA,EAAAA;AACCC,YAAAA,KAAAA,EAAOnB,aAAc,CAAA;AACnBQ,gBAAAA,EAAAA,EAAIO,eAAQ,CAAA,8BAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACArB,WAAaA,EAAAA,WAAAA;AACbyB,YAAAA,eAAAA,EAAiBvB,MAAQW,EAAAA;;AAI/Ba,QAAAA,gBAAAA,EACExB,wBACEe,cAACU,CAAAA,iBAAAA,EAAAA;YACCC,GAAKC,EAAAA,sBAAAA;AACLC,YAAAA,SAAAA,gBAAWb,cAACc,CAAAA,eAAAA,EAAAA,EAAAA,CAAAA;AACZC,YAAAA,EAAAA,EAAI,CAAC,EAAEzB,QAAAA,CAAS,CAAC,EAAE0B,aAAUtB,SAAW,EAAA;gBAAEuB,MAAQ,EAAA;AAAM,aAAA,CAAA,CAAG,CAAC;sBAE3D7B,aAAc,CAAA;AACbQ,gBAAAA,EAAAA,EAAIO,eAAQ,CAAA,gCAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA;;AAINc,QAAAA,aAAAA,EACElC,2BACEmC,eAACC,CAAAA,iBAAAA,EAAAA;YAAKC,GAAK,EAAA,CAAA;;8BACTrB,cAACsB,CAAAA,mBAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,cAACuB,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;oBAASC,OAAQ,EAAA,WAAA;oBAAYC,OAASvC,EAAAA,wBAAAA;8BACvDE,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,eAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;8BAGFJ,cAACsB,CAAAA,mBAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,cAACuB,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;oBAASE,OAAStC,EAAAA,yBAAAA;8BACnCC,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,eAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAOd;;;;"}
1
+ {"version":3,"file":"Header.js","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../../utils';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: ({ created }?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2}>\n <Button startIcon={<Plus />} variant=\"secondary\" onClick={onToggleEditFolderDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","Button","Plus","variant","onClick"],"mappings":";;;;;;;;;;;;;;;;AA+BaA,MAAAA,MAAAA,GAAS,CAAC,EACrBC,cAAc,IAAI,EAClBC,SAAS,EACTC,SAAS,IAAI,EACbC,wBAAwB,EACxBC,yBAAyB,EACb,GAAA;IACZ,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,0BAAAA,EAAAA;AACrB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;AACpB,IAAA,MAAMC,SAAY,GAAA;AAChB,QAAA,GAAGF,KAAK;AACRP,QAAAA,MAAAA,EACEA,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACC,EAAE,GACnEX,MAAAA,CAAOU,MAAM,CAACC,EAAE,GAChBC,SAAAA;AACNC,QAAAA,UAAAA,EACEb,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACI,IAAI,GACrEd,MAAAA,CAAOU,MAAM,CAACI,IAAI,GAClBF;AACR,KAAA;IAEA,qBACEG,cAAA,CAACC,oBAAQnB,MAAM,EAAA;AACboB,QAAAA,KAAAA,EAAOd,aAAc,CAAA;AACnBQ,YAAAA,EAAAA,EAAIO,eAAQ,CAAA,aAAA,CAAA;YACZC,cAAgB,EAAA,CAAC,aAAa;AAChC,SAAA,CAAA;AACAC,QAAAA,QAAAA,EACEtB,WACA,IAAA,OAAOA,WAAgB,KAAA,SAAA,IACvBE,wBACEe,cAACM,CAAAA,uBAAAA,EAAAA;AACCC,YAAAA,KAAAA,EAAOnB,aAAc,CAAA;AACnBQ,gBAAAA,EAAAA,EAAIO,eAAQ,CAAA,8BAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACArB,WAAaA,EAAAA,WAAAA;AACbyB,YAAAA,eAAAA,EAAiBvB,MAAQW,EAAAA;;AAI/Ba,QAAAA,gBAAAA,EACExB,wBACEe,cAACU,CAAAA,iBAAAA,EAAAA;YACCC,GAAKC,EAAAA,sBAAAA;AACLC,YAAAA,SAAAA,gBAAWb,cAACc,CAAAA,eAAAA,EAAAA,EAAAA,CAAAA;AACZC,YAAAA,EAAAA,EAAI,CAAGzB,EAAAA,QAAAA,CAAS,CAAC,EAAE0B,aAAUtB,SAAW,EAAA;gBAAEuB,MAAQ,EAAA;aAAU,CAAA,CAAA,CAAA;sBAE3D7B,aAAc,CAAA;AACbQ,gBAAAA,EAAAA,EAAIO,eAAQ,CAAA,gCAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA;;AAINc,QAAAA,aAAAA,EACElC,2BACEmC,eAACC,CAAAA,iBAAAA,EAAAA;YAAKC,GAAK,EAAA,CAAA;;8BACTrB,cAACsB,CAAAA,mBAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,cAACuB,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;oBAASC,OAAQ,EAAA,WAAA;oBAAYC,OAASvC,EAAAA,wBAAAA;8BACvDE,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,eAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;8BAGFJ,cAACsB,CAAAA,mBAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,cAACuB,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;oBAASE,OAAStC,EAAAA,yBAAAA;8BACnCC,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,eAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAOd;;;;"}
@@ -9,7 +9,7 @@ import { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs.mjs'
9
9
  import 'byte-size';
10
10
  import 'date-fns';
11
11
  import { getTrad } from '../../../../utils/getTrad.mjs';
12
- import '../../../../constants.mjs';
12
+ import '../../../../utils/typeFromMime.mjs';
13
13
  import '../../../../utils/urlYupSchema.mjs';
14
14
 
15
15
  const Header = ({ breadcrumbs = null, canCreate, folder = null, onToggleEditFolderDialog, onToggleUploadAssetDialog })=>{
@@ -1 +1 @@
1
- {"version":3,"file":"Header.mjs","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../../utils';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: ({ created }?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2}>\n <Button startIcon={<Plus />} variant=\"secondary\" onClick={onToggleEditFolderDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","Button","Plus","variant","onClick"],"mappings":";;;;;;;;;;;;;;AA+BaA,MAAAA,MAAAA,GAAS,CAAC,EACrBC,cAAc,IAAI,EAClBC,SAAS,EACTC,SAAS,IAAI,EACbC,wBAAwB,EACxBC,yBAAyB,EACb,GAAA;IACZ,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;AACrB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAMC,SAAY,GAAA;AAChB,QAAA,GAAGF,KAAK;AACRP,QAAAA,MAAAA,EACEA,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACC,EAAE,GACnEX,MAAAA,CAAOU,MAAM,CAACC,EAAE,GAChBC,SAAAA;AACNC,QAAAA,UAAAA,EACEb,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACI,IAAI,GACrEd,MAAAA,CAAOU,MAAM,CAACI,IAAI,GAClBF;AACR,KAAA;IAEA,qBACEG,GAAA,CAACC,QAAQnB,MAAM,EAAA;AACboB,QAAAA,KAAAA,EAAOd,aAAc,CAAA;AACnBQ,YAAAA,EAAAA,EAAIO,OAAQ,CAAA,aAAA,CAAA;YACZC,cAAgB,EAAA,CAAC,aAAa;AAChC,SAAA,CAAA;AACAC,QAAAA,QAAAA,EACEtB,WACA,IAAA,OAAOA,WAAgB,KAAA,SAAA,IACvBE,wBACEe,GAACM,CAAAA,WAAAA,EAAAA;AACCC,YAAAA,KAAAA,EAAOnB,aAAc,CAAA;AACnBQ,gBAAAA,EAAAA,EAAIO,OAAQ,CAAA,8BAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACArB,WAAaA,EAAAA,WAAAA;AACbyB,YAAAA,eAAAA,EAAiBvB,MAAQW,EAAAA;;AAI/Ba,QAAAA,gBAAAA,EACExB,wBACEe,GAACU,CAAAA,IAAAA,EAAAA;YACCC,GAAKC,EAAAA,OAAAA;AACLC,YAAAA,SAAAA,gBAAWb,GAACc,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;AACZC,YAAAA,EAAAA,EAAI,CAAC,EAAEzB,QAAAA,CAAS,CAAC,EAAE0B,UAAUtB,SAAW,EAAA;gBAAEuB,MAAQ,EAAA;AAAM,aAAA,CAAA,CAAG,CAAC;sBAE3D7B,aAAc,CAAA;AACbQ,gBAAAA,EAAAA,EAAIO,OAAQ,CAAA,gCAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA;;AAINc,QAAAA,aAAAA,EACElC,2BACEmC,IAACC,CAAAA,IAAAA,EAAAA;YAAKC,GAAK,EAAA,CAAA;;8BACTrB,GAACsB,CAAAA,MAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,GAACuB,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASC,OAAQ,EAAA,WAAA;oBAAYC,OAASvC,EAAAA,wBAAAA;8BACvDE,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,OAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;8BAGFJ,GAACsB,CAAAA,MAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,GAACuB,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASE,OAAStC,EAAAA,yBAAAA;8BACnCC,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,OAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAOd;;;;"}
1
+ {"version":3,"file":"Header.mjs","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Header.tsx"],"sourcesContent":["import { useQueryParams, Layouts } from '@strapi/admin/strapi-admin';\nimport { Button, Flex, Link } from '@strapi/design-system';\nimport { ArrowLeft, Plus } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, NavLink } from 'react-router-dom';\n\nimport { Breadcrumbs } from '../../../../components/Breadcrumbs/Breadcrumbs';\nimport { getTrad } from '../../../../utils';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\nimport type { CrumbDefinition } from '../../../../components/Breadcrumbs/Breadcrumbs';\n\ninterface FolderDefinition extends Omit<Folder, 'children' | 'files' | 'parent'> {\n children: {\n count: number;\n };\n files: {\n count: number;\n };\n parent?: FolderDefinition;\n}\n\nexport interface HeaderProps {\n breadcrumbs?: Array<CrumbDefinition> | null;\n canCreate: boolean;\n folder?: FolderDefinition | null;\n onToggleEditFolderDialog: ({ created }?: { created?: boolean }) => void;\n onToggleUploadAssetDialog: () => void;\n}\n\nexport const Header = ({\n breadcrumbs = null,\n canCreate,\n folder = null,\n onToggleEditFolderDialog,\n onToggleUploadAssetDialog,\n}: HeaderProps) => {\n const { formatMessage } = useIntl();\n const { pathname } = useLocation();\n const [{ query }] = useQueryParams();\n const backQuery = {\n ...query,\n folder:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.id\n ? folder.parent.id\n : undefined,\n folderPath:\n folder?.parent && typeof folder.parent !== 'number' && folder.parent.path\n ? folder.parent.path\n : undefined,\n };\n\n return (\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: `Media Library`,\n })}\n subtitle={\n breadcrumbs &&\n typeof breadcrumbs !== 'boolean' &&\n folder && (\n <Breadcrumbs\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs}\n currentFolderId={folder?.id}\n />\n )\n }\n navigationAction={\n folder && (\n <Link\n tag={NavLink}\n startIcon={<ArrowLeft />}\n to={`${pathname}?${stringify(backQuery, { encode: false })}`}\n >\n {formatMessage({\n id: getTrad('header.actions.folder-level-up'),\n defaultMessage: 'Back',\n })}\n </Link>\n )\n }\n primaryAction={\n canCreate && (\n <Flex gap={2}>\n <Button startIcon={<Plus />} variant=\"secondary\" onClick={onToggleEditFolderDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-folder'),\n defaultMessage: 'Add new folder',\n })}\n </Button>\n\n <Button startIcon={<Plus />} onClick={onToggleUploadAssetDialog}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n </Flex>\n )\n }\n />\n );\n};\n"],"names":["Header","breadcrumbs","canCreate","folder","onToggleEditFolderDialog","onToggleUploadAssetDialog","formatMessage","useIntl","pathname","useLocation","query","useQueryParams","backQuery","parent","id","undefined","folderPath","path","_jsx","Layouts","title","getTrad","defaultMessage","subtitle","Breadcrumbs","label","currentFolderId","navigationAction","Link","tag","NavLink","startIcon","ArrowLeft","to","stringify","encode","primaryAction","_jsxs","Flex","gap","Button","Plus","variant","onClick"],"mappings":";;;;;;;;;;;;;;AA+BaA,MAAAA,MAAAA,GAAS,CAAC,EACrBC,cAAc,IAAI,EAClBC,SAAS,EACTC,SAAS,IAAI,EACbC,wBAAwB,EACxBC,yBAAyB,EACb,GAAA;IACZ,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,GAAGC,WAAAA,EAAAA;AACrB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAMC,SAAY,GAAA;AAChB,QAAA,GAAGF,KAAK;AACRP,QAAAA,MAAAA,EACEA,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACC,EAAE,GACnEX,MAAAA,CAAOU,MAAM,CAACC,EAAE,GAChBC,SAAAA;AACNC,QAAAA,UAAAA,EACEb,QAAQU,MAAU,IAAA,OAAOV,MAAOU,CAAAA,MAAM,KAAK,QAAYV,IAAAA,MAAAA,CAAOU,MAAM,CAACI,IAAI,GACrEd,MAAAA,CAAOU,MAAM,CAACI,IAAI,GAClBF;AACR,KAAA;IAEA,qBACEG,GAAA,CAACC,QAAQnB,MAAM,EAAA;AACboB,QAAAA,KAAAA,EAAOd,aAAc,CAAA;AACnBQ,YAAAA,EAAAA,EAAIO,OAAQ,CAAA,aAAA,CAAA;YACZC,cAAgB,EAAA,CAAC,aAAa;AAChC,SAAA,CAAA;AACAC,QAAAA,QAAAA,EACEtB,WACA,IAAA,OAAOA,WAAgB,KAAA,SAAA,IACvBE,wBACEe,GAACM,CAAAA,WAAAA,EAAAA;AACCC,YAAAA,KAAAA,EAAOnB,aAAc,CAAA;AACnBQ,gBAAAA,EAAAA,EAAIO,OAAQ,CAAA,8BAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA,CAAA;YACArB,WAAaA,EAAAA,WAAAA;AACbyB,YAAAA,eAAAA,EAAiBvB,MAAQW,EAAAA;;AAI/Ba,QAAAA,gBAAAA,EACExB,wBACEe,GAACU,CAAAA,IAAAA,EAAAA;YACCC,GAAKC,EAAAA,OAAAA;AACLC,YAAAA,SAAAA,gBAAWb,GAACc,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;AACZC,YAAAA,EAAAA,EAAI,CAAGzB,EAAAA,QAAAA,CAAS,CAAC,EAAE0B,UAAUtB,SAAW,EAAA;gBAAEuB,MAAQ,EAAA;aAAU,CAAA,CAAA,CAAA;sBAE3D7B,aAAc,CAAA;AACbQ,gBAAAA,EAAAA,EAAIO,OAAQ,CAAA,gCAAA,CAAA;gBACZC,cAAgB,EAAA;AAClB,aAAA;;AAINc,QAAAA,aAAAA,EACElC,2BACEmC,IAACC,CAAAA,IAAAA,EAAAA;YAAKC,GAAK,EAAA,CAAA;;8BACTrB,GAACsB,CAAAA,MAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,GAACuB,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASC,OAAQ,EAAA,WAAA;oBAAYC,OAASvC,EAAAA,wBAAAA;8BACvDE,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,OAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;8BAGFJ,GAACsB,CAAAA,MAAAA,EAAAA;AAAOT,oBAAAA,SAAAA,gBAAWb,GAACuB,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASE,OAAStC,EAAAA,yBAAAA;8BACnCC,aAAc,CAAA;AACbQ,wBAAAA,EAAAA,EAAIO,OAAQ,CAAA,2BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAOd;;;;"}
@@ -15,6 +15,7 @@ require('byte-size');
15
15
  require('date-fns');
16
16
  var getTrad = require('../../utils/getTrad.js');
17
17
  require('qs');
18
+ require('../../utils/typeFromMime.js');
18
19
  require('../../utils/urlYupSchema.js');
19
20
  var init = require('./init.js');
20
21
  var reducer = require('./reducer.js');
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsPage.js","sources":["../../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check, Sparkle } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { useSettings } from '../../hooks/useSettings';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useSettings();\n const isAIAvailable = useAIAvailability();\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err: any) {\n toggleNotification({\n type: 'danger',\n message: err.message || formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Library',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {isAIAvailable && (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={6}>\n <Grid.Item col={8} s={12} direction=\"column\" alignItems=\"stretch\">\n <Flex gap={2}>\n <Box color=\"alternative700\">\n <Sparkle />\n </Box>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.label'),\n defaultMessage:\n 'Generate AI captions and alt texts automatically on upload!',\n })}\n </Typography>\n </Flex>\n <Flex paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.description'),\n defaultMessage:\n 'Enable this feature to save time, optimize your SEO and increase accessibility by letting our AI generate captions and alternative texts for you.',\n })}\n </Typography>\n </Flex>\n </Grid.Item>\n <Grid.Item\n col={4}\n s={12}\n direction=\"column\"\n alignItems=\"end\"\n justifyContent={'center'}\n >\n <Field.Root name=\"aiMetadata\" minWidth=\"200px\">\n <Toggle\n checked={modifiedData?.aiMetadata}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.disabled-label',\n defaultMessage: 'Disabled',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.enabled-label',\n defaultMessage: 'Enabled',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'aiMetadata', value: e.target.checked },\n });\n }}\n />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n )}\n\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","put","useFetchClient","initialData","modifiedData","dispatch","React","useReducer","reducer","initialState","init","data","isLoading","refetch","useSettings","isAIAvailable","useAIAvailability","useEffect","type","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","handleSubmit","e","preventDefault","handleChange","target","name","value","keys","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Grid","Item","col","s","color","Sparkle","Typography","variant","tag","paddingTop","textColor","justifyContent","Field","minWidth","Toggle","checked","aiMetadata","offLabel","onLabel","onChange","hint","Label","responsiveDimensions","Hint","sizeOptimization","autoOrientation","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
1
+ {"version":3,"file":"SettingsPage.js","sources":["../../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check, Sparkle } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { useSettings } from '../../hooks/useSettings';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useSettings();\n const isAIAvailable = useAIAvailability();\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err: any) {\n toggleNotification({\n type: 'danger',\n message: err.message || formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Library',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {isAIAvailable && (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={6}>\n <Grid.Item col={8} s={12} direction=\"column\" alignItems=\"stretch\">\n <Flex gap={2}>\n <Box color=\"alternative700\">\n <Sparkle />\n </Box>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.label'),\n defaultMessage:\n 'Generate AI captions and alt texts automatically on upload!',\n })}\n </Typography>\n </Flex>\n <Flex paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.description'),\n defaultMessage:\n 'Enable this feature to save time, optimize your SEO and increase accessibility by letting our AI generate captions and alternative texts for you.',\n })}\n </Typography>\n </Flex>\n </Grid.Item>\n <Grid.Item\n col={4}\n s={12}\n direction=\"column\"\n alignItems=\"end\"\n justifyContent={'center'}\n >\n <Field.Root name=\"aiMetadata\" minWidth=\"200px\">\n <Toggle\n checked={modifiedData?.aiMetadata}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.disabled-label',\n defaultMessage: 'Disabled',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.enabled-label',\n defaultMessage: 'Enabled',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'aiMetadata', value: e.target.checked },\n });\n }}\n />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n )}\n\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","put","useFetchClient","initialData","modifiedData","dispatch","React","useReducer","reducer","initialState","init","data","isLoading","refetch","useSettings","isAIAvailable","useAIAvailability","useEffect","type","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","handleSubmit","e","preventDefault","handleChange","target","name","value","keys","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Grid","Item","col","s","color","Sparkle","Typography","variant","tag","paddingTop","textColor","justifyContent","Field","minWidth","Toggle","checked","aiMetadata","offLabel","onLabel","onChange","hint","Label","responsiveDimensions","Hint","sizeOptimization","autoOrientation","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
@@ -13,6 +13,7 @@ import 'byte-size';
13
13
  import 'date-fns';
14
14
  import { getTrad } from '../../utils/getTrad.mjs';
15
15
  import 'qs';
16
+ import '../../utils/typeFromMime.mjs';
16
17
  import '../../utils/urlYupSchema.mjs';
17
18
  import { init } from './init.mjs';
18
19
  import { reducer, initialState } from './reducer.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsPage.mjs","sources":["../../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check, Sparkle } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { useSettings } from '../../hooks/useSettings';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useSettings();\n const isAIAvailable = useAIAvailability();\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err: any) {\n toggleNotification({\n type: 'danger',\n message: err.message || formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Library',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {isAIAvailable && (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={6}>\n <Grid.Item col={8} s={12} direction=\"column\" alignItems=\"stretch\">\n <Flex gap={2}>\n <Box color=\"alternative700\">\n <Sparkle />\n </Box>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.label'),\n defaultMessage:\n 'Generate AI captions and alt texts automatically on upload!',\n })}\n </Typography>\n </Flex>\n <Flex paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.description'),\n defaultMessage:\n 'Enable this feature to save time, optimize your SEO and increase accessibility by letting our AI generate captions and alternative texts for you.',\n })}\n </Typography>\n </Flex>\n </Grid.Item>\n <Grid.Item\n col={4}\n s={12}\n direction=\"column\"\n alignItems=\"end\"\n justifyContent={'center'}\n >\n <Field.Root name=\"aiMetadata\" minWidth=\"200px\">\n <Toggle\n checked={modifiedData?.aiMetadata}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.disabled-label',\n defaultMessage: 'Disabled',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.enabled-label',\n defaultMessage: 'Enabled',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'aiMetadata', value: e.target.checked },\n });\n }}\n />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n )}\n\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","put","useFetchClient","initialData","modifiedData","dispatch","React","useReducer","reducer","initialState","init","data","isLoading","refetch","useSettings","isAIAvailable","useAIAvailability","useEffect","type","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","handleSubmit","e","preventDefault","handleChange","target","name","value","keys","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Grid","Item","col","s","color","Sparkle","Typography","variant","tag","paddingTop","textColor","justifyContent","Field","minWidth","Toggle","checked","aiMetadata","offLabel","onLabel","onChange","hint","Label","responsiveDimensions","Hint","sizeOptimization","autoOrientation","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
1
+ {"version":3,"file":"SettingsPage.mjs","sources":["../../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check, Sparkle } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { useSettings } from '../../hooks/useSettings';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useSettings();\n const isAIAvailable = useAIAvailability();\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err: any) {\n toggleNotification({\n type: 'danger',\n message: err.message || formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Library',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {isAIAvailable && (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={6}>\n <Grid.Item col={8} s={12} direction=\"column\" alignItems=\"stretch\">\n <Flex gap={2}>\n <Box color=\"alternative700\">\n <Sparkle />\n </Box>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.label'),\n defaultMessage:\n 'Generate AI captions and alt texts automatically on upload!',\n })}\n </Typography>\n </Flex>\n <Flex paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.description'),\n defaultMessage:\n 'Enable this feature to save time, optimize your SEO and increase accessibility by letting our AI generate captions and alternative texts for you.',\n })}\n </Typography>\n </Flex>\n </Grid.Item>\n <Grid.Item\n col={4}\n s={12}\n direction=\"column\"\n alignItems=\"end\"\n justifyContent={'center'}\n >\n <Field.Root name=\"aiMetadata\" minWidth=\"200px\">\n <Toggle\n checked={modifiedData?.aiMetadata}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.disabled-label',\n defaultMessage: 'Disabled',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.enabled-label',\n defaultMessage: 'Enabled',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'aiMetadata', value: e.target.checked },\n });\n }}\n />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n )}\n\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","put","useFetchClient","initialData","modifiedData","dispatch","React","useReducer","reducer","initialState","init","data","isLoading","refetch","useSettings","isAIAvailable","useAIAvailability","useEffect","type","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","handleSubmit","e","preventDefault","handleChange","target","name","value","keys","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Grid","Item","col","s","color","Sparkle","Typography","variant","tag","paddingTop","textColor","justifyContent","Field","minWidth","Toggle","checked","aiMetadata","offLabel","onLabel","onChange","hint","Label","responsiveDimensions","Hint","sizeOptimization","autoOrientation","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AssetType } from '../../constants';
1
+ import { AssetType } from '../../enums';
2
2
  import type { RawFile, File } from '../../../../shared/contracts/files';
3
3
  interface UploadingAssetCardProps {
4
4
  onCancel: (rawFile: RawFile) => void;
@@ -1,4 +1,4 @@
1
- import { AssetType } from '../../../constants';
1
+ import { AssetType } from '../../../enums';
2
2
  import type { File, RawFile } from '../../../../../shared/contracts/files';
3
3
  interface Asset extends File {
4
4
  rawFile?: RawFile;
@@ -1,9 +1,3 @@
1
- export declare enum AssetType {
2
- Video = "video",
3
- Image = "image",
4
- Document = "doc",
5
- Audio = "audio"
6
- }
7
1
  export declare enum AssetSource {
8
2
  Url = "url",
9
3
  Computer = "computer"
@@ -0,0 +1,12 @@
1
+ export declare enum DocType {
2
+ Pdf = "pdf",
3
+ Csv = "csv",
4
+ Xls = "xls",
5
+ Zip = "zip"
6
+ }
7
+ export declare enum AssetType {
8
+ Video = "video",
9
+ Image = "image",
10
+ Document = "doc",
11
+ Audio = "audio"
12
+ }
@@ -0,0 +1,14 @@
1
+ import { SVGProps } from 'react';
2
+ import { DefaultTheme } from 'styled-components';
3
+ interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'fill' | 'stroke'> {
4
+ /**
5
+ * @default "currentColor"
6
+ */
7
+ fill?: keyof DefaultTheme['colors'] | string;
8
+ stroke?: keyof DefaultTheme['colors'] | string;
9
+ }
10
+ type IconComponent = React.FC<IconProps>;
11
+ export declare const FILE_TYPE_ICON_COMPONENT_MAP: Record<string, IconComponent>;
12
+ export declare const DEFAULT_FILE_ICON: IconComponent;
13
+ export declare const getFileIconComponent: (docType?: string) => IconComponent;
14
+ export {};
@@ -5,7 +5,7 @@ export declare const rawFileToAsset: (rawFile: RawFile, assetSource: AssetSource
5
5
  createdAt: string;
6
6
  name: string;
7
7
  source: AssetSource;
8
- type: import("../constants").AssetType;
8
+ type: import("../enums").AssetType | import("../enums").DocType;
9
9
  url: string;
10
10
  ext: string | undefined;
11
11
  mime: string;
@@ -1,2 +1,2 @@
1
- import { AssetType } from '../constants';
2
- export declare const typeFromMime: (mime: string) => AssetType;
1
+ import { AssetType, DocType } from '../enums';
2
+ export declare const typeFromMime: (mime: string) => AssetType | DocType;
@@ -2,7 +2,7 @@ import { AssetSource } from '../constants';
2
2
  export declare const urlsToAssets: (urls: string[]) => Promise<{
3
3
  source: AssetSource;
4
4
  name: string;
5
- type: import("../constants").AssetType;
5
+ type: import("../enums").AssetType | import("../enums").DocType;
6
6
  url: string;
7
7
  ext: string | undefined;
8
8
  mime: string | undefined;