@scality/data-browser-library 1.0.0-preview.8 → 1.0.1

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 (303) hide show
  1. package/dist/components/DataBrowserUI.d.ts +12 -0
  2. package/dist/components/DataBrowserUI.js +99 -0
  3. package/dist/components/Editor.d.ts +1 -1
  4. package/dist/components/Editor.js +3 -3
  5. package/dist/components/__tests__/BucketAccessor.test.js +214 -0
  6. package/dist/components/__tests__/BucketCorsPage.test.d.ts +1 -0
  7. package/dist/components/__tests__/BucketCorsPage.test.js +263 -0
  8. package/dist/components/__tests__/BucketCreate.test.d.ts +1 -0
  9. package/dist/components/__tests__/BucketCreate.test.js +574 -0
  10. package/dist/components/__tests__/BucketDetails.test.d.ts +1 -0
  11. package/dist/components/__tests__/BucketDetails.test.js +421 -0
  12. package/dist/components/__tests__/BucketLifecycleFormPage.test.d.ts +14 -0
  13. package/dist/components/__tests__/BucketLifecycleFormPage.test.js +618 -0
  14. package/dist/components/__tests__/BucketLifecycleList.test.d.ts +1 -0
  15. package/dist/components/__tests__/BucketLifecycleList.test.js +325 -0
  16. package/dist/components/__tests__/BucketList.test.js +495 -81
  17. package/dist/components/__tests__/BucketNotificationFormPage.test.d.ts +1 -0
  18. package/dist/components/__tests__/BucketNotificationFormPage.test.js +348 -0
  19. package/dist/components/__tests__/BucketNotificationList.test.d.ts +1 -0
  20. package/dist/components/__tests__/BucketNotificationList.test.js +379 -0
  21. package/dist/components/__tests__/BucketOverview.test.js +484 -179
  22. package/dist/components/__tests__/BucketPolicyPage.test.js +151 -99
  23. package/dist/components/__tests__/BucketReplicationFormPage.test.d.ts +16 -0
  24. package/dist/components/__tests__/BucketReplicationFormPage.test.js +1757 -0
  25. package/dist/components/__tests__/BucketReplicationList.test.d.ts +1 -0
  26. package/dist/components/__tests__/BucketReplicationList.test.js +344 -0
  27. package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
  28. package/dist/components/__tests__/DeleteBucketButton.test.js +64 -64
  29. package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.d.ts +1 -0
  30. package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +196 -0
  31. package/dist/components/__tests__/DeleteObjectButton.test.js +64 -64
  32. package/dist/components/__tests__/EmptyBucketButton.test.d.ts +1 -0
  33. package/dist/components/__tests__/EmptyBucketButton.test.js +302 -0
  34. package/dist/components/__tests__/MetadataSearch.test.js +65 -65
  35. package/dist/components/__tests__/ObjectList.test.js +741 -240
  36. package/dist/components/__tests__/UploadButton.test.js +45 -45
  37. package/dist/components/breadcrumb/Breadcrumb.d.ts +6 -0
  38. package/dist/components/breadcrumb/Breadcrumb.js +37 -0
  39. package/dist/components/breadcrumb/DataBrowserBreadcrumb.d.ts +1 -0
  40. package/dist/components/breadcrumb/DataBrowserBreadcrumb.js +10 -0
  41. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.d.ts +1 -0
  42. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.js +196 -0
  43. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.d.ts +1 -0
  44. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.js +153 -0
  45. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.d.ts +1 -0
  46. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.js +134 -0
  47. package/dist/components/breadcrumb/index.d.ts +8 -0
  48. package/dist/components/breadcrumb/index.js +4 -0
  49. package/dist/components/breadcrumb/useBreadcrumbPaths.d.ts +2 -0
  50. package/dist/components/breadcrumb/useBreadcrumbPaths.js +82 -0
  51. package/dist/components/buckets/BucketAccessor.d.ts +2 -0
  52. package/dist/components/buckets/BucketAccessor.js +125 -0
  53. package/dist/components/buckets/BucketConfigEditButton.d.ts +8 -0
  54. package/dist/components/buckets/{BucketPolicyButton.js → BucketConfigEditButton.js} +9 -5
  55. package/dist/components/buckets/BucketCorsPage.d.ts +1 -0
  56. package/dist/components/buckets/BucketCorsPage.js +234 -0
  57. package/dist/components/buckets/BucketCreate.d.ts +50 -0
  58. package/dist/components/buckets/BucketCreate.js +279 -0
  59. package/dist/components/buckets/BucketDetails.d.ts +42 -0
  60. package/dist/components/buckets/BucketDetails.js +256 -40
  61. package/dist/components/buckets/BucketLifecycleFormPage.d.ts +15 -0
  62. package/dist/components/buckets/BucketLifecycleFormPage.js +1086 -0
  63. package/dist/components/buckets/BucketLifecycleList.d.ts +10 -0
  64. package/dist/components/buckets/BucketLifecycleList.js +270 -0
  65. package/dist/components/buckets/BucketList.d.ts +6 -4
  66. package/dist/components/buckets/BucketList.js +161 -94
  67. package/dist/components/buckets/BucketLocation.js +4 -4
  68. package/dist/components/buckets/BucketOverview.d.ts +86 -5
  69. package/dist/components/buckets/BucketOverview.js +481 -192
  70. package/dist/components/buckets/BucketPage.js +44 -22
  71. package/dist/components/buckets/BucketPolicyPage.js +155 -127
  72. package/dist/components/buckets/BucketReplicationFormPage.d.ts +1 -0
  73. package/dist/components/buckets/BucketReplicationFormPage.js +835 -0
  74. package/dist/components/buckets/BucketReplicationList.d.ts +11 -0
  75. package/dist/components/buckets/BucketReplicationList.js +189 -0
  76. package/dist/components/buckets/BucketVersioning.d.ts +4 -0
  77. package/dist/components/buckets/BucketVersioning.js +76 -0
  78. package/dist/components/buckets/DeleteBucketButton.js +8 -8
  79. package/dist/components/buckets/DeleteBucketConfigRuleButton.d.ts +18 -0
  80. package/dist/components/buckets/DeleteBucketConfigRuleButton.js +53 -0
  81. package/dist/components/buckets/EmptyBucketButton.d.ts +5 -0
  82. package/dist/components/buckets/EmptyBucketButton.js +232 -0
  83. package/dist/components/buckets/EmptyBucketSummary.d.ts +9 -0
  84. package/dist/components/buckets/EmptyBucketSummary.js +60 -0
  85. package/dist/components/buckets/EmptyBucketSummaryList.d.ts +13 -0
  86. package/dist/components/buckets/EmptyBucketSummaryList.js +140 -0
  87. package/dist/components/buckets/__tests__/BucketVersioning.test.d.ts +1 -0
  88. package/dist/components/buckets/__tests__/BucketVersioning.test.js +163 -0
  89. package/dist/components/buckets/notifications/BucketNotificationFormPage.d.ts +1 -0
  90. package/dist/components/buckets/notifications/BucketNotificationFormPage.js +316 -0
  91. package/dist/components/buckets/notifications/BucketNotificationList.d.ts +10 -0
  92. package/dist/components/buckets/notifications/BucketNotificationList.js +267 -0
  93. package/dist/components/buckets/notifications/EventsSection.js +145 -29
  94. package/dist/components/buckets/notifications/__tests__/events.test.d.ts +1 -0
  95. package/dist/components/buckets/notifications/__tests__/events.test.js +56 -0
  96. package/dist/components/buckets/notifications/events.d.ts +71 -7
  97. package/dist/components/buckets/notifications/events.js +98 -16
  98. package/dist/components/index.d.ts +27 -13
  99. package/dist/components/index.js +20 -6
  100. package/dist/components/layouts/ArrowNavigation.d.ts +3 -0
  101. package/dist/components/layouts/ArrowNavigation.js +28 -0
  102. package/dist/components/layouts/BrowserPageLayout.d.ts +5 -1
  103. package/dist/components/layouts/BrowserPageLayout.js +10 -5
  104. package/dist/components/objects/CreateFolderButton.d.ts +2 -2
  105. package/dist/components/objects/CreateFolderButton.js +12 -12
  106. package/dist/components/objects/DeleteObjectButton.d.ts +1 -1
  107. package/dist/components/objects/DeleteObjectButton.js +19 -21
  108. package/dist/components/objects/GetPresignedUrlButton.d.ts +7 -0
  109. package/dist/components/objects/GetPresignedUrlButton.js +255 -0
  110. package/dist/components/objects/ObjectDetails/ObjectMetadata.d.ts +2 -2
  111. package/dist/components/objects/ObjectDetails/ObjectMetadata.js +263 -230
  112. package/dist/components/objects/ObjectDetails/ObjectSummary.d.ts +2 -2
  113. package/dist/components/objects/ObjectDetails/ObjectSummary.js +540 -138
  114. package/dist/components/objects/ObjectDetails/ObjectTags.d.ts +2 -2
  115. package/dist/components/objects/ObjectDetails/ObjectTags.js +95 -123
  116. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.d.ts +1 -0
  117. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.js +516 -0
  118. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.d.ts +1 -0
  119. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.js +1064 -0
  120. package/dist/components/objects/ObjectDetails/index.d.ts +18 -2
  121. package/dist/components/objects/ObjectDetails/index.js +152 -40
  122. package/dist/components/objects/ObjectList.d.ts +12 -10
  123. package/dist/components/objects/ObjectList.js +590 -263
  124. package/dist/components/objects/ObjectLock/EditRetentionButton.d.ts +4 -0
  125. package/dist/components/objects/ObjectLock/EditRetentionButton.js +32 -0
  126. package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.d.ts +3 -0
  127. package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +211 -0
  128. package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +9 -0
  129. package/dist/components/objects/ObjectLock/ObjectLockSettings.js +159 -0
  130. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +8 -0
  131. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +39 -0
  132. package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.d.ts +1 -0
  133. package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +204 -0
  134. package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.d.ts +1 -0
  135. package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +374 -0
  136. package/dist/components/objects/ObjectPage.js +12 -8
  137. package/dist/components/objects/UploadButton.d.ts +3 -3
  138. package/dist/components/objects/UploadButton.js +10 -10
  139. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.d.ts +1 -0
  140. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.js +531 -0
  141. package/dist/components/providers/DataBrowserProvider.d.ts +23 -12
  142. package/dist/components/providers/DataBrowserProvider.js +60 -38
  143. package/dist/components/providers/QueryProvider.d.ts +9 -0
  144. package/dist/components/providers/QueryProvider.js +21 -0
  145. package/dist/components/search/MetadataSearch.js +29 -28
  146. package/dist/components/search/SearchHints.js +1 -1
  147. package/dist/components/ui/ArrayFieldActions.d.ts +36 -0
  148. package/dist/components/ui/ArrayFieldActions.js +43 -0
  149. package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +16 -0
  150. package/dist/components/ui/ConfirmDeleteRuleModal.js +48 -0
  151. package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
  152. package/dist/components/ui/DeleteObjectModalContent.js +12 -12
  153. package/dist/components/ui/FilterFormSection.d.ts +44 -0
  154. package/dist/components/ui/FilterFormSection.js +159 -0
  155. package/dist/components/ui/Search.elements.d.ts +2 -2
  156. package/dist/components/ui/Search.elements.js +7 -7
  157. package/dist/components/ui/Table.elements.d.ts +2 -1
  158. package/dist/components/ui/Table.elements.js +18 -12
  159. package/dist/config/__tests__/factory.test.d.ts +1 -0
  160. package/dist/config/__tests__/factory.test.js +311 -0
  161. package/dist/config/factory.d.ts +14 -49
  162. package/dist/config/factory.js +23 -68
  163. package/dist/config/types.d.ts +212 -34
  164. package/dist/contexts/DataBrowserUICustomizationContext.d.ts +27 -0
  165. package/dist/contexts/DataBrowserUICustomizationContext.js +13 -0
  166. package/dist/hooks/__tests__/useAccessibleBuckets.test.d.ts +1 -0
  167. package/dist/hooks/__tests__/useAccessibleBuckets.test.js +145 -0
  168. package/dist/hooks/__tests__/useISVBucketDetection.test.d.ts +1 -0
  169. package/dist/hooks/__tests__/useISVBucketDetection.test.js +188 -0
  170. package/dist/hooks/__tests__/useIsBucketEmpty.test.js +27 -27
  171. package/dist/hooks/__tests__/useLoginMutation.test.d.ts +1 -0
  172. package/dist/hooks/__tests__/useLoginMutation.test.js +194 -0
  173. package/dist/hooks/bucketConfiguration.d.ts +8 -1
  174. package/dist/hooks/bucketConfiguration.js +52 -51
  175. package/dist/hooks/bucketOperations.d.ts +10 -1
  176. package/dist/hooks/bucketOperations.js +10 -9
  177. package/dist/hooks/factories/__tests__/useCreateS3FunctionMutationHook.test.js +80 -80
  178. package/dist/hooks/factories/__tests__/useCreateS3InfiniteQueryHook.test.js +80 -80
  179. package/dist/hooks/factories/__tests__/useCreateS3LoginHook.test.js +44 -44
  180. package/dist/hooks/factories/__tests__/useCreateS3MutationHook.test.js +63 -63
  181. package/dist/hooks/factories/__tests__/useCreateS3QueryHook.test.js +95 -52
  182. package/dist/hooks/factories/index.d.ts +4 -4
  183. package/dist/hooks/factories/index.js +2 -2
  184. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.d.ts +2 -2
  185. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.js +16 -13
  186. package/dist/hooks/factories/useCreateS3LoginHook.d.ts +2 -2
  187. package/dist/hooks/factories/useCreateS3LoginHook.js +1 -1
  188. package/dist/hooks/factories/useCreateS3MutationHook.d.ts +3 -3
  189. package/dist/hooks/factories/useCreateS3MutationHook.js +7 -2
  190. package/dist/hooks/factories/useCreateS3QueryHook.d.ts +2 -2
  191. package/dist/hooks/factories/useCreateS3QueryHook.js +29 -3
  192. package/dist/hooks/index.d.ts +19 -8
  193. package/dist/hooks/index.js +16 -5
  194. package/dist/hooks/loginOperations.d.ts +1 -1
  195. package/dist/hooks/loginOperations.js +1 -1
  196. package/dist/hooks/objectOperations.d.ts +2 -2
  197. package/dist/hooks/objectOperations.js +50 -49
  198. package/dist/hooks/presignedOperations.d.ts +4 -4
  199. package/dist/hooks/presignedOperations.js +5 -5
  200. package/dist/hooks/useAccessibleBuckets.d.ts +11 -0
  201. package/dist/hooks/useAccessibleBuckets.js +115 -0
  202. package/dist/hooks/useBatchObjectLegalHold.d.ts +11 -0
  203. package/dist/hooks/useBatchObjectLegalHold.js +48 -0
  204. package/dist/hooks/useBucketConfigEditor.d.ts +31 -0
  205. package/dist/hooks/useBucketConfigEditor.js +82 -0
  206. package/dist/hooks/useDataBrowserNavigate.d.ts +28 -0
  207. package/dist/hooks/useDataBrowserNavigate.js +24 -0
  208. package/dist/hooks/useDeleteBucketConfigRule.d.ts +26 -0
  209. package/dist/hooks/useDeleteBucketConfigRule.js +46 -0
  210. package/dist/hooks/useEmptyBucket.d.ts +27 -0
  211. package/dist/hooks/useEmptyBucket.js +116 -0
  212. package/dist/hooks/useFeatures.d.ts +7 -0
  213. package/dist/hooks/useFeatures.js +8 -0
  214. package/dist/hooks/useISVBucketDetection.d.ts +15 -0
  215. package/dist/hooks/useISVBucketDetection.js +27 -0
  216. package/dist/hooks/useIsBucketEmpty.js +4 -4
  217. package/dist/hooks/useLimitedAccessFlow.d.ts +48 -0
  218. package/dist/hooks/useLimitedAccessFlow.js +23 -0
  219. package/dist/hooks/useS3Client.d.ts +6 -0
  220. package/dist/hooks/useS3Client.js +3 -2
  221. package/dist/hooks/useS3ConfigSwitch.d.ts +11 -0
  222. package/dist/hooks/useS3ConfigSwitch.js +37 -0
  223. package/dist/hooks/useSupportedNotificationEvents.d.ts +6 -0
  224. package/dist/hooks/useSupportedNotificationEvents.js +8 -0
  225. package/dist/hooks/useTableRowSelection.d.ts +9 -0
  226. package/dist/hooks/useTableRowSelection.js +45 -0
  227. package/dist/index.d.ts +6 -6
  228. package/dist/index.js +2 -2
  229. package/dist/schemas/bucketPolicySchema.json +3 -13
  230. package/dist/test/msw/handlers/deleteBucket.d.ts +1 -1
  231. package/dist/test/msw/handlers/deleteBucket.js +20 -10
  232. package/dist/test/msw/handlers/getBucketAcl.d.ts +1 -1
  233. package/dist/test/msw/handlers/getBucketAcl.js +29 -17
  234. package/dist/test/msw/handlers/getBucketLocation.d.ts +1 -1
  235. package/dist/test/msw/handlers/getBucketLocation.js +29 -15
  236. package/dist/test/msw/handlers/getBucketPolicy.d.ts +1 -1
  237. package/dist/test/msw/handlers/getBucketPolicy.js +52 -32
  238. package/dist/test/msw/handlers/headObject.d.ts +1 -1
  239. package/dist/test/msw/handlers/headObject.js +31 -13
  240. package/dist/test/msw/handlers/listBuckets.d.ts +1 -1
  241. package/dist/test/msw/handlers/listBuckets.js +5 -3
  242. package/dist/test/msw/handlers/listObjectVersions.d.ts +1 -1
  243. package/dist/test/msw/handlers/listObjectVersions.js +38 -26
  244. package/dist/test/msw/handlers/listObjects.d.ts +1 -1
  245. package/dist/test/msw/handlers/listObjects.js +35 -23
  246. package/dist/test/msw/handlers/objectLegalHold.d.ts +1 -1
  247. package/dist/test/msw/handlers/objectLegalHold.js +32 -17
  248. package/dist/test/msw/handlers/objectRetention.d.ts +1 -1
  249. package/dist/test/msw/handlers/objectRetention.js +31 -17
  250. package/dist/test/msw/handlers/putBucketAcl.d.ts +1 -1
  251. package/dist/test/msw/handlers/putBucketAcl.js +29 -14
  252. package/dist/test/msw/handlers/putObject.d.ts +1 -1
  253. package/dist/test/msw/handlers/putObject.js +27 -12
  254. package/dist/test/msw/handlers.d.ts +3 -3
  255. package/dist/test/msw/handlers.js +77 -54
  256. package/dist/test/msw/index.d.ts +2 -2
  257. package/dist/test/msw/index.js +1 -1
  258. package/dist/test/msw/server.d.ts +1 -1
  259. package/dist/test/msw/server.js +1 -1
  260. package/dist/test/msw/utils.js +2 -2
  261. package/dist/test/setup.d.ts +1 -1
  262. package/dist/test/setup.js +13 -30
  263. package/dist/test/testUtils.d.ts +170 -36
  264. package/dist/test/testUtils.js +229 -116
  265. package/dist/test/utils/errorHandling.test.js +146 -108
  266. package/dist/types/index.d.ts +49 -36
  267. package/dist/types/monaco.d.ts +13 -0
  268. package/dist/types/monaco.js +0 -0
  269. package/dist/utils/__tests__/proxyMiddleware.test.d.ts +1 -0
  270. package/dist/utils/__tests__/proxyMiddleware.test.js +579 -0
  271. package/dist/utils/__tests__/s3Client.test.d.ts +1 -0
  272. package/dist/utils/__tests__/s3Client.test.js +340 -0
  273. package/dist/utils/__tests__/s3ConfigIdentifier.test.d.ts +1 -0
  274. package/dist/utils/__tests__/s3ConfigIdentifier.test.js +437 -0
  275. package/dist/utils/constants.d.ts +22 -0
  276. package/dist/utils/constants.js +19 -0
  277. package/dist/utils/deletion/index.d.ts +2 -2
  278. package/dist/utils/deletion/index.js +1 -1
  279. package/dist/utils/deletion/messages.d.ts +1 -1
  280. package/dist/utils/deletion/messages.js +4 -4
  281. package/dist/utils/errorHandling.d.ts +12 -3
  282. package/dist/utils/errorHandling.js +12 -7
  283. package/dist/utils/hooks.js +8 -8
  284. package/dist/utils/index.d.ts +5 -2
  285. package/dist/utils/index.js +5 -1
  286. package/dist/utils/proxyMiddleware.d.ts +32 -13
  287. package/dist/utils/proxyMiddleware.js +90 -36
  288. package/dist/utils/s3Client.d.ts +14 -4
  289. package/dist/utils/s3Client.js +5 -26
  290. package/dist/utils/s3ConfigIdentifier.d.ts +79 -0
  291. package/dist/utils/s3ConfigIdentifier.js +57 -0
  292. package/dist/utils/s3RuleUtils.d.ts +53 -0
  293. package/dist/utils/s3RuleUtils.js +101 -0
  294. package/package.json +10 -8
  295. package/dist/components/__tests__/BucketNotificationCreatePage.test.js +0 -316
  296. package/dist/components/buckets/BucketPolicyButton.d.ts +0 -7
  297. package/dist/components/buckets/notifications/BucketNotificationCreatePage.d.ts +0 -1
  298. package/dist/components/buckets/notifications/BucketNotificationCreatePage.js +0 -234
  299. package/dist/hooks/useLoginMutation.d.ts +0 -21
  300. package/dist/hooks/useLoginMutation.js +0 -9
  301. package/dist/utils/useFeatures.d.ts +0 -1
  302. package/dist/utils/useFeatures.js +0 -7
  303. /package/dist/components/__tests__/{BucketNotificationCreatePage.test.d.ts → BucketAccessor.test.d.ts} +0 -0
@@ -1,39 +1,70 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { Checkbox, FormGroup, FormSection, Stack, Text, Wrap } from "@scality/core-ui";
3
- import { useCallback } from "react";
4
- import { Controller, useFormContext } from "react-hook-form";
5
- import { objectCreationEvents, objectDeletionEvents, othersEvents } from "./events.js";
6
3
  import { Box } from "@scality/core-ui/dist/next";
4
+ import { useCallback, useMemo } from "react";
5
+ import { Controller, useFormContext } from "react-hook-form";
6
+ import { useSupportedNotificationEvents } from "../../../hooks/useSupportedNotificationEvents.js";
7
+ import { getFilteredEventGroups } from "./events.js";
7
8
  function EventsSection() {
8
9
  const { control, formState: { errors } } = useFormContext();
10
+ const supportedEvents = useSupportedNotificationEvents();
11
+ const eventGroups = useMemo(()=>getFilteredEventGroups(supportedEvents), [
12
+ supportedEvents
13
+ ]);
14
+ const { objectCreation, objectDeletion, objectRestoration, lifecycle, replication, objectTagging, storageAccess, testing } = eventGroups;
15
+ const getRelatedEvents = useCallback((eventValue)=>{
16
+ const basePattern = eventValue.slice(0, -1);
17
+ const eventGroupMap = {
18
+ 's3:ObjectCreated': objectCreation.events,
19
+ 's3:ObjectRemoved': objectDeletion.events,
20
+ 's3:ObjectRestore': objectRestoration.events,
21
+ 's3:Replication': replication.events,
22
+ 's3:ObjectTagging': objectTagging.events
23
+ };
24
+ for (const [prefix, events] of Object.entries(eventGroupMap))if (eventValue.startsWith(prefix)) return events;
25
+ if (eventValue.startsWith('s3:LifecycleExpiration')) return lifecycle.events.filter((e)=>e.startsWith(basePattern));
26
+ return [
27
+ eventValue
28
+ ];
29
+ }, [
30
+ objectCreation.events,
31
+ objectDeletion.events,
32
+ objectRestoration.events,
33
+ lifecycle.events,
34
+ replication.events,
35
+ objectTagging.events
36
+ ]);
9
37
  const toggleEvent = useCallback((currentEvents, eventValue, onChange)=>{
10
- const isWildcard = eventValue.endsWith("*");
38
+ const isWildcard = eventValue.endsWith('*');
11
39
  const isSelected = currentEvents.includes(eventValue);
12
- if (isWildcard) if (isSelected) {
13
- const relatedEvents = eventValue.startsWith("s3:ObjectCreated") ? objectCreationEvents.events : eventValue.startsWith("s3:ObjectRemoved") ? objectDeletionEvents.events : eventValue.startsWith("s3:LifecycleExpiration") ? othersEvents.events.filter((e)=>e.startsWith("s3:LifecycleExpiration")) : [
14
- eventValue
15
- ];
16
- onChange(currentEvents.filter((e)=>!relatedEvents.includes(e)));
17
- } else {
18
- const relatedEvents = eventValue.startsWith("s3:ObjectCreated") ? objectCreationEvents.events : eventValue.startsWith("s3:ObjectRemoved") ? objectDeletionEvents.events : eventValue.startsWith("s3:LifecycleExpiration") ? othersEvents.events.filter((e)=>e.startsWith("s3:LifecycleExpiration")) : [
40
+ if (!isWildcard) {
41
+ const newEvents = isSelected ? currentEvents.filter((e)=>e !== eventValue) : [
42
+ ...currentEvents,
19
43
  eventValue
20
44
  ];
45
+ onChange(newEvents);
46
+ return;
47
+ }
48
+ const relatedEvents = getRelatedEvents(eventValue);
49
+ if (isSelected) onChange(currentEvents.filter((e)=>!relatedEvents.includes(e)));
50
+ else {
21
51
  const newEvents = [
22
52
  ...currentEvents.filter((e)=>!relatedEvents.includes(e)),
23
53
  ...relatedEvents
24
54
  ];
25
55
  onChange(newEvents);
26
56
  }
27
- else onChange(isSelected ? currentEvents.filter((e)=>e !== eventValue) : [
28
- ...currentEvents,
29
- eventValue
30
- ]);
31
- }, []);
57
+ }, [
58
+ getRelatedEvents
59
+ ]);
32
60
  const isEventDisabled = (event, selectedEvents)=>{
33
- if (event.endsWith("*")) return false;
34
- if (event.startsWith("s3:ObjectCreated")) return selectedEvents.includes("s3:ObjectCreated:*");
35
- if (event.startsWith("s3:ObjectRemoved")) return selectedEvents.includes("s3:ObjectRemoved:*");
36
- if (event.startsWith("s3:LifecycleExpiration")) return selectedEvents.includes("s3:LifecycleExpiration:*");
61
+ if (event.endsWith('*')) return false;
62
+ if (event.startsWith('s3:ObjectCreated')) return selectedEvents.includes('s3:ObjectCreated:*');
63
+ if (event.startsWith('s3:ObjectRemoved')) return selectedEvents.includes('s3:ObjectRemoved:*');
64
+ if (event.startsWith('s3:ObjectRestore')) return selectedEvents.includes('s3:ObjectRestore:*');
65
+ if (event.startsWith('s3:LifecycleExpiration')) return selectedEvents.includes('s3:LifecycleExpiration:*');
66
+ if (event.startsWith('s3:Replication')) return selectedEvents.includes('s3:Replication:*');
67
+ else if (event.startsWith('s3:ObjectTagging')) return selectedEvents.includes('s3:ObjectTagging:*');
37
68
  return false;
38
69
  };
39
70
  return /*#__PURE__*/ jsxs(FormSection, {
@@ -62,15 +93,100 @@ function EventsSection() {
62
93
  direction: "vertical",
63
94
  gap: "r16",
64
95
  children: [
65
- /*#__PURE__*/ jsxs(Stack, {
96
+ objectCreation.events.length > 0 && /*#__PURE__*/ jsxs(Stack, {
97
+ direction: "vertical",
98
+ gap: "r8",
99
+ children: [
100
+ /*#__PURE__*/ jsx(Text, {
101
+ color: "textPrimary",
102
+ children: objectCreation.label
103
+ }),
104
+ objectCreation.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
105
+ id: event,
106
+ label: event,
107
+ checked: value.includes(event),
108
+ disabled: isEventDisabled(event, value),
109
+ onChange: ()=>toggleEvent(value, event, onChange)
110
+ }, event))
111
+ ]
112
+ }),
113
+ objectDeletion.events.length > 0 && /*#__PURE__*/ jsxs(Stack, {
114
+ direction: "vertical",
115
+ gap: "r8",
116
+ children: [
117
+ /*#__PURE__*/ jsx(Text, {
118
+ color: "textPrimary",
119
+ children: objectDeletion.label
120
+ }),
121
+ objectDeletion.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
122
+ id: event,
123
+ label: event,
124
+ checked: value.includes(event),
125
+ disabled: isEventDisabled(event, value),
126
+ onChange: ()=>toggleEvent(value, event, onChange)
127
+ }, event))
128
+ ]
129
+ }),
130
+ objectRestoration.events.length > 0 && /*#__PURE__*/ jsxs(Stack, {
131
+ direction: "vertical",
132
+ gap: "r8",
133
+ children: [
134
+ /*#__PURE__*/ jsx(Text, {
135
+ color: "textPrimary",
136
+ children: objectRestoration.label
137
+ }),
138
+ objectRestoration.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
139
+ id: event,
140
+ label: event,
141
+ checked: value.includes(event),
142
+ disabled: isEventDisabled(event, value),
143
+ onChange: ()=>toggleEvent(value, event, onChange)
144
+ }, event))
145
+ ]
146
+ }),
147
+ lifecycle.events.length > 0 && /*#__PURE__*/ jsxs(Stack, {
148
+ direction: "vertical",
149
+ gap: "r8",
150
+ children: [
151
+ /*#__PURE__*/ jsx(Text, {
152
+ color: "textPrimary",
153
+ children: lifecycle.label
154
+ }),
155
+ lifecycle.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
156
+ id: event,
157
+ label: event,
158
+ checked: value.includes(event),
159
+ disabled: isEventDisabled(event, value),
160
+ onChange: ()=>toggleEvent(value, event, onChange)
161
+ }, event))
162
+ ]
163
+ }),
164
+ replication.events.length > 0 && /*#__PURE__*/ jsxs(Stack, {
165
+ direction: "vertical",
166
+ gap: "r8",
167
+ children: [
168
+ /*#__PURE__*/ jsx(Text, {
169
+ color: "textPrimary",
170
+ children: replication.label
171
+ }),
172
+ replication.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
173
+ id: event,
174
+ label: event,
175
+ checked: value.includes(event),
176
+ disabled: isEventDisabled(event, value),
177
+ onChange: ()=>toggleEvent(value, event, onChange)
178
+ }, event))
179
+ ]
180
+ }),
181
+ objectTagging.events.length > 0 && /*#__PURE__*/ jsxs(Stack, {
66
182
  direction: "vertical",
67
183
  gap: "r8",
68
184
  children: [
69
185
  /*#__PURE__*/ jsx(Text, {
70
186
  color: "textPrimary",
71
- children: objectCreationEvents.label
187
+ children: objectTagging.label
72
188
  }),
73
- objectCreationEvents.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
189
+ objectTagging.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
74
190
  id: event,
75
191
  label: event,
76
192
  checked: value.includes(event),
@@ -79,15 +195,15 @@ function EventsSection() {
79
195
  }, event))
80
196
  ]
81
197
  }),
82
- /*#__PURE__*/ jsxs(Stack, {
198
+ storageAccess.events.length > 0 && /*#__PURE__*/ jsxs(Stack, {
83
199
  direction: "vertical",
84
200
  gap: "r8",
85
201
  children: [
86
202
  /*#__PURE__*/ jsx(Text, {
87
203
  color: "textPrimary",
88
- children: objectDeletionEvents.label
204
+ children: storageAccess.label
89
205
  }),
90
- objectDeletionEvents.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
206
+ storageAccess.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
91
207
  id: event,
92
208
  label: event,
93
209
  checked: value.includes(event),
@@ -96,15 +212,15 @@ function EventsSection() {
96
212
  }, event))
97
213
  ]
98
214
  }),
99
- /*#__PURE__*/ jsxs(Stack, {
215
+ testing.events.length > 0 && /*#__PURE__*/ jsxs(Stack, {
100
216
  direction: "vertical",
101
217
  gap: "r8",
102
218
  children: [
103
219
  /*#__PURE__*/ jsx(Text, {
104
220
  color: "textPrimary",
105
- children: othersEvents.label
221
+ children: testing.label
106
222
  }),
107
- othersEvents.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
223
+ testing.events.map((event)=>/*#__PURE__*/ jsx(Checkbox, {
108
224
  id: event,
109
225
  label: event,
110
226
  checked: value.includes(event),
@@ -0,0 +1,56 @@
1
+ import { filterSupportedEvents, getFilteredEventGroups } from "../events.js";
2
+ describe('events', ()=>{
3
+ it('returns all events when supportedEvents is not configured', ()=>{
4
+ const events = [
5
+ 's3:ObjectCreated:*',
6
+ 's3:ObjectCreated:Put'
7
+ ];
8
+ const result = filterSupportedEvents(events);
9
+ expect(result).toEqual(events);
10
+ });
11
+ it('filters events to only include supported ones', ()=>{
12
+ const events = [
13
+ 's3:ObjectCreated:*',
14
+ 's3:ObjectCreated:Put',
15
+ 's3:ObjectCreated:Copy'
16
+ ];
17
+ const supportedEvents = [
18
+ 's3:ObjectCreated:*',
19
+ 's3:ObjectCreated:Put'
20
+ ];
21
+ const result = filterSupportedEvents(events, supportedEvents);
22
+ expect(result).toEqual([
23
+ 's3:ObjectCreated:*',
24
+ 's3:ObjectCreated:Put'
25
+ ]);
26
+ });
27
+ it('filters event groups based on supported events', ()=>{
28
+ const supportedEvents = [
29
+ 's3:ObjectCreated:Put',
30
+ 's3:ObjectRemoved:Delete',
31
+ 's3:Replication:OperationFailedReplication'
32
+ ];
33
+ const result = getFilteredEventGroups(supportedEvents);
34
+ expect(result.objectCreation.events).toEqual([
35
+ 's3:ObjectCreated:Put'
36
+ ]);
37
+ expect(result.objectDeletion.events).toEqual([
38
+ 's3:ObjectRemoved:Delete'
39
+ ]);
40
+ expect(result.replication.events).toEqual([
41
+ 's3:Replication:OperationFailedReplication'
42
+ ]);
43
+ expect(result.lifecycle.events).toEqual([]);
44
+ });
45
+ it('preserves category labels in filtered groups', ()=>{
46
+ const result = getFilteredEventGroups();
47
+ expect(result.objectCreation.label).toBe('Object Creation');
48
+ expect(result.objectDeletion.label).toBe('Object Deletion');
49
+ expect(result.objectRestoration.label).toBe('Object Restoration');
50
+ expect(result.lifecycle.label).toBe('Lifecycle');
51
+ expect(result.replication.label).toBe('Replication');
52
+ expect(result.objectTagging.label).toBe('Object Tagging');
53
+ expect(result.storageAccess.label).toBe('Storage & Access');
54
+ expect(result.testing.label).toBe('Testing');
55
+ });
56
+ });
@@ -1,12 +1,76 @@
1
+ import type { S3EventCategory, S3EventType } from '../../../config/types';
1
2
  export declare const objectCreationEvents: {
2
- label: string;
3
- events: string[];
3
+ label: S3EventCategory;
4
+ events: S3EventType[];
4
5
  };
5
6
  export declare const objectDeletionEvents: {
6
- label: string;
7
- events: string[];
7
+ label: S3EventCategory;
8
+ events: S3EventType[];
8
9
  };
9
- export declare const othersEvents: {
10
- label: string;
11
- events: string[];
10
+ export declare const objectRestorationEvents: {
11
+ label: S3EventCategory;
12
+ events: S3EventType[];
13
+ };
14
+ export declare const lifecycleEvents: {
15
+ label: S3EventCategory;
16
+ events: S3EventType[];
17
+ };
18
+ export declare const replicationEvents: {
19
+ label: S3EventCategory;
20
+ events: S3EventType[];
21
+ };
22
+ export declare const objectTaggingEvents: {
23
+ label: S3EventCategory;
24
+ events: S3EventType[];
25
+ };
26
+ export declare const storageAccessEvents: {
27
+ label: S3EventCategory;
28
+ events: S3EventType[];
29
+ };
30
+ export declare const testingEvents: {
31
+ label: S3EventCategory;
32
+ events: S3EventType[];
33
+ };
34
+ /**
35
+ * Filters events to only include supported ones
36
+ * If no supported events are configured, all events are returned
37
+ */
38
+ export declare function filterSupportedEvents(events: S3EventType[], supportedEvents?: S3EventType[]): S3EventType[];
39
+ /**
40
+ * Gets filtered event groups based on supported events
41
+ * If a wildcard is not supported, but specific events are, the wildcard is filtered out
42
+ */
43
+ export declare function getFilteredEventGroups(supportedEvents?: S3EventType[]): {
44
+ objectCreation: {
45
+ label: S3EventCategory;
46
+ events: S3EventType[];
47
+ };
48
+ objectDeletion: {
49
+ label: S3EventCategory;
50
+ events: S3EventType[];
51
+ };
52
+ objectRestoration: {
53
+ label: S3EventCategory;
54
+ events: S3EventType[];
55
+ };
56
+ lifecycle: {
57
+ label: S3EventCategory;
58
+ events: S3EventType[];
59
+ };
60
+ replication: {
61
+ label: S3EventCategory;
62
+ events: S3EventType[];
63
+ };
64
+ objectTagging: {
65
+ label: S3EventCategory;
66
+ events: S3EventType[];
67
+ };
68
+ storageAccess: {
69
+ label: S3EventCategory;
70
+ events: S3EventType[];
71
+ };
72
+ testing: {
73
+ label: S3EventCategory;
74
+ events: S3EventType[];
75
+ };
12
76
  };
@@ -1,27 +1,109 @@
1
1
  const objectCreationEvents = {
2
- label: "Object creation",
2
+ label: 'Object Creation',
3
3
  events: [
4
- "s3:ObjectCreated:*",
5
- "s3:ObjectCreated:Put",
6
- "s3:ObjectCreated:Copy",
7
- "s3:ObjectCreated:CompleteMultipartUpload"
4
+ 's3:ObjectCreated:*',
5
+ 's3:ObjectCreated:Put',
6
+ 's3:ObjectCreated:Post',
7
+ 's3:ObjectCreated:Copy',
8
+ 's3:ObjectCreated:CompleteMultipartUpload'
8
9
  ]
9
10
  };
10
11
  const objectDeletionEvents = {
11
- label: "Object deletion",
12
+ label: 'Object Deletion',
12
13
  events: [
13
- "s3:ObjectRemoved:*",
14
- "s3:ObjectRemoved:Delete",
15
- "s3:ObjectRemoved:DeleteMarkerCreated"
14
+ 's3:ObjectRemoved:*',
15
+ 's3:ObjectRemoved:Delete',
16
+ 's3:ObjectRemoved:DeleteMarkerCreated'
16
17
  ]
17
18
  };
18
- const othersEvents = {
19
- label: "Others",
19
+ const objectRestorationEvents = {
20
+ label: 'Object Restoration',
20
21
  events: [
21
- "s3:Replication:OperationFailedReplication",
22
- "s3:LifecycleExpiration:*",
23
- "s3:LifecycleExpiration:DeleteMarkerCreated",
24
- "s3:LifecycleExpiration:Delete"
22
+ 's3:ObjectRestore:*',
23
+ 's3:ObjectRestore:Post',
24
+ 's3:ObjectRestore:Completed',
25
+ 's3:ObjectRestore:Delete'
25
26
  ]
26
27
  };
27
- export { objectCreationEvents, objectDeletionEvents, othersEvents };
28
+ const lifecycleEvents = {
29
+ label: 'Lifecycle',
30
+ events: [
31
+ 's3:LifecycleExpiration:*',
32
+ 's3:LifecycleExpiration:Delete',
33
+ 's3:LifecycleExpiration:DeleteMarkerCreated',
34
+ 's3:LifecycleTransition'
35
+ ]
36
+ };
37
+ const replicationEvents = {
38
+ label: 'Replication',
39
+ events: [
40
+ 's3:Replication:*',
41
+ 's3:Replication:OperationFailedReplication',
42
+ 's3:Replication:OperationMissedThreshold',
43
+ 's3:Replication:OperationReplicatedAfterThreshold',
44
+ 's3:Replication:OperationNotTracked'
45
+ ]
46
+ };
47
+ const objectTaggingEvents = {
48
+ label: 'Object Tagging',
49
+ events: [
50
+ 's3:ObjectTagging:*',
51
+ 's3:ObjectTagging:Put',
52
+ 's3:ObjectTagging:Delete'
53
+ ]
54
+ };
55
+ const storageAccessEvents = {
56
+ label: 'Storage & Access',
57
+ events: [
58
+ 's3:ReducedRedundancyLostObject',
59
+ 's3:IntelligentTiering',
60
+ 's3:ObjectAcl:Put'
61
+ ]
62
+ };
63
+ const testingEvents = {
64
+ label: 'Testing',
65
+ events: [
66
+ 's3:TestEvent'
67
+ ]
68
+ };
69
+ function filterSupportedEvents(events, supportedEvents) {
70
+ if (!supportedEvents || 0 === supportedEvents.length) return events;
71
+ return events.filter((event)=>supportedEvents.includes(event));
72
+ }
73
+ function getFilteredEventGroups(supportedEvents) {
74
+ return {
75
+ objectCreation: {
76
+ label: objectCreationEvents.label,
77
+ events: filterSupportedEvents(objectCreationEvents.events, supportedEvents)
78
+ },
79
+ objectDeletion: {
80
+ label: objectDeletionEvents.label,
81
+ events: filterSupportedEvents(objectDeletionEvents.events, supportedEvents)
82
+ },
83
+ objectRestoration: {
84
+ label: objectRestorationEvents.label,
85
+ events: filterSupportedEvents(objectRestorationEvents.events, supportedEvents)
86
+ },
87
+ lifecycle: {
88
+ label: lifecycleEvents.label,
89
+ events: filterSupportedEvents(lifecycleEvents.events, supportedEvents)
90
+ },
91
+ replication: {
92
+ label: replicationEvents.label,
93
+ events: filterSupportedEvents(replicationEvents.events, supportedEvents)
94
+ },
95
+ objectTagging: {
96
+ label: objectTaggingEvents.label,
97
+ events: filterSupportedEvents(objectTaggingEvents.events, supportedEvents)
98
+ },
99
+ storageAccess: {
100
+ label: storageAccessEvents.label,
101
+ events: filterSupportedEvents(storageAccessEvents.events, supportedEvents)
102
+ },
103
+ testing: {
104
+ label: testingEvents.label,
105
+ events: filterSupportedEvents(testingEvents.events, supportedEvents)
106
+ }
107
+ };
108
+ }
109
+ export { filterSupportedEvents, getFilteredEventGroups, lifecycleEvents, objectCreationEvents, objectDeletionEvents, objectRestorationEvents, objectTaggingEvents, replicationEvents, storageAccessEvents, testingEvents };
@@ -1,13 +1,27 @@
1
- export { DeleteBucketButton } from "./buckets/DeleteBucketButton";
2
- export { BucketList } from "./buckets/BucketList";
3
- export { BucketOverview } from "./buckets/BucketOverview";
4
- export { BucketPage } from "./buckets/BucketPage";
5
- export { BucketPolicyPage } from "./buckets/BucketPolicyPage";
6
- export { BucketNotificationCreatePage } from "./buckets/notifications/BucketNotificationCreatePage";
7
- export { UploadButton } from "./objects/UploadButton";
8
- export { CreateFolderButton } from "./objects/CreateFolderButton";
9
- export { ObjectDetails } from "./objects/ObjectDetails";
10
- export { ObjectList } from "./objects/ObjectList";
11
- export { ObjectPage } from "./objects/ObjectPage";
12
- export { MetadataSearch } from "./search/MetadataSearch";
13
- export { DataBrowserProvider, useDataBrowserContext, useDataBrowserTheme, } from "./providers/DataBrowserProvider";
1
+ export { useDataBrowserNavigate } from '../hooks/useDataBrowserNavigate';
2
+ export { Breadcrumb, type BreadcrumbItem, DataBrowserBreadcrumb, useBreadcrumbPaths, } from './breadcrumb';
3
+ export { BucketAccessor } from './buckets/BucketAccessor';
4
+ export { BucketCorsPage } from './buckets/BucketCorsPage';
5
+ export { BucketCreate, type BucketCreateFormData, baseBucketCreateSchema, bucketErrorMessage, bucketNameValidationSchema, } from './buckets/BucketCreate';
6
+ export { BucketLifecycleFormPage } from './buckets/BucketLifecycleFormPage';
7
+ export { BucketList } from './buckets/BucketList';
8
+ export { BucketOverview, BucketOverviewField, BucketOverviewSection, useBucketOverviewContext, } from './buckets/BucketOverview';
9
+ export { BucketPage } from './buckets/BucketPage';
10
+ export { BucketPolicyPage } from './buckets/BucketPolicyPage';
11
+ export { BucketReplicationFormPage } from './buckets/BucketReplicationFormPage';
12
+ export { BucketVersioning } from './buckets/BucketVersioning';
13
+ export { DeleteBucketButton } from './buckets/DeleteBucketButton';
14
+ export { EmptyBucketButton } from './buckets/EmptyBucketButton';
15
+ export { BucketNotificationFormPage } from './buckets/notifications/BucketNotificationFormPage';
16
+ export { DataBrowserUI } from './DataBrowserUI';
17
+ export { CreateFolderButton } from './objects/CreateFolderButton';
18
+ export { ObjectDetails } from './objects/ObjectDetails';
19
+ export { ObjectList, type TableItem } from './objects/ObjectList';
20
+ export { EditRetentionButton } from './objects/ObjectLock/EditRetentionButton';
21
+ export { ObjectLockSettings } from './objects/ObjectLock/ObjectLockSettings';
22
+ export { ObjectPage } from './objects/ObjectPage';
23
+ export { UploadButton } from './objects/UploadButton';
24
+ export { DataBrowserProvider, useDataBrowserConfig, useDataBrowserContext, useInvalidateQueries, } from './providers/DataBrowserProvider';
25
+ export { QueryProvider } from './providers/QueryProvider';
26
+ export { MetadataSearch } from './search/MetadataSearch';
27
+ export { ArrayFieldActions } from './ui/ArrayFieldActions';
@@ -1,14 +1,28 @@
1
- import { DeleteBucketButton } from "./buckets/DeleteBucketButton.js";
1
+ import { useDataBrowserNavigate } from "../hooks/useDataBrowserNavigate.js";
2
+ import { Breadcrumb, DataBrowserBreadcrumb, useBreadcrumbPaths } from "./breadcrumb/index.js";
3
+ import { BucketAccessor } from "./buckets/BucketAccessor.js";
4
+ import { BucketCorsPage } from "./buckets/BucketCorsPage.js";
5
+ import { BucketCreate, baseBucketCreateSchema, bucketErrorMessage, bucketNameValidationSchema } from "./buckets/BucketCreate.js";
6
+ import { BucketLifecycleFormPage } from "./buckets/BucketLifecycleFormPage.js";
2
7
  import { BucketList } from "./buckets/BucketList.js";
3
- import { BucketOverview } from "./buckets/BucketOverview.js";
8
+ import { BucketOverview, BucketOverviewField, BucketOverviewSection, useBucketOverviewContext } from "./buckets/BucketOverview.js";
4
9
  import { BucketPage } from "./buckets/BucketPage.js";
5
10
  import { BucketPolicyPage } from "./buckets/BucketPolicyPage.js";
6
- import { BucketNotificationCreatePage } from "./buckets/notifications/BucketNotificationCreatePage.js";
7
- import { UploadButton } from "./objects/UploadButton.js";
11
+ import { BucketReplicationFormPage } from "./buckets/BucketReplicationFormPage.js";
12
+ import { BucketVersioning } from "./buckets/BucketVersioning.js";
13
+ import { DeleteBucketButton } from "./buckets/DeleteBucketButton.js";
14
+ import { EmptyBucketButton } from "./buckets/EmptyBucketButton.js";
15
+ import { BucketNotificationFormPage } from "./buckets/notifications/BucketNotificationFormPage.js";
16
+ import { DataBrowserUI } from "./DataBrowserUI.js";
8
17
  import { CreateFolderButton } from "./objects/CreateFolderButton.js";
9
18
  import { ObjectDetails } from "./objects/ObjectDetails/index.js";
10
19
  import { ObjectList } from "./objects/ObjectList.js";
20
+ import { EditRetentionButton } from "./objects/ObjectLock/EditRetentionButton.js";
21
+ import { ObjectLockSettings } from "./objects/ObjectLock/ObjectLockSettings.js";
11
22
  import { ObjectPage } from "./objects/ObjectPage.js";
23
+ import { UploadButton } from "./objects/UploadButton.js";
24
+ import { DataBrowserProvider, useDataBrowserConfig, useDataBrowserContext, useInvalidateQueries } from "./providers/DataBrowserProvider.js";
25
+ import { QueryProvider } from "./providers/QueryProvider.js";
12
26
  import { MetadataSearch } from "./search/MetadataSearch.js";
13
- import { DataBrowserProvider, useDataBrowserContext, useDataBrowserTheme } from "./providers/DataBrowserProvider.js";
14
- export { BucketList, BucketNotificationCreatePage, BucketOverview, BucketPage, BucketPolicyPage, CreateFolderButton, DataBrowserProvider, DeleteBucketButton, MetadataSearch, ObjectDetails, ObjectList, ObjectPage, UploadButton, useDataBrowserContext, useDataBrowserTheme };
27
+ import { ArrayFieldActions } from "./ui/ArrayFieldActions.js";
28
+ export { ArrayFieldActions, Breadcrumb, BucketAccessor, BucketCorsPage, BucketCreate, BucketLifecycleFormPage, BucketList, BucketNotificationFormPage, BucketOverview, BucketOverviewField, BucketOverviewSection, BucketPage, BucketPolicyPage, BucketReplicationFormPage, BucketVersioning, CreateFolderButton, DataBrowserBreadcrumb, DataBrowserProvider, DataBrowserUI, DeleteBucketButton, EditRetentionButton, EmptyBucketButton, MetadataSearch, ObjectDetails, ObjectList, ObjectLockSettings, ObjectPage, QueryProvider, UploadButton, baseBucketCreateSchema, bucketErrorMessage, bucketNameValidationSchema, useBreadcrumbPaths, useBucketOverviewContext, useDataBrowserConfig, useDataBrowserContext, useDataBrowserNavigate, useInvalidateQueries };
@@ -0,0 +1,3 @@
1
+ export default function ArrowNavigation({ path }: {
2
+ path: string;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Icon } from "@scality/core-ui";
3
+ import styled_components from "styled-components";
4
+ import { useDataBrowserNavigate } from "../../hooks/useDataBrowserNavigate.js";
5
+ const IconWrapper = styled_components.div`
6
+ display: inline-block;
7
+ cursor: pointer;
8
+
9
+ svg {
10
+ color: ${(props)=>props.theme.textPrimary};
11
+ transition: color 0.2s ease;
12
+ }
13
+
14
+ &:hover svg {
15
+ color: ${(props)=>props.theme.textSecondary};
16
+ }
17
+ `;
18
+ function ArrowNavigation({ path }) {
19
+ const navigate = useDataBrowserNavigate();
20
+ return /*#__PURE__*/ jsx(IconWrapper, {
21
+ onClick: ()=>navigate(path),
22
+ children: /*#__PURE__*/ jsx(Icon, {
23
+ name: "Arrow-left",
24
+ size: '2x'
25
+ })
26
+ });
27
+ }
28
+ export { ArrowNavigation as default };
@@ -1,9 +1,13 @@
1
- import React from "react";
1
+ import type { IconName } from '@scality/core-ui/dist/components/icon/Icon.component';
2
+ import type React from 'react';
2
3
  export declare const HeadTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
3
4
  interface BrowserPageLayoutProps {
4
5
  title: React.ReactNode;
5
6
  leftPanel: React.ReactNode;
6
7
  rightPanel: React.ReactNode;
8
+ iconName?: IconName;
9
+ withArrowNavigation?: boolean;
10
+ arrowNavigationPath?: string;
7
11
  }
8
12
  export declare const BrowserPageLayout: React.FC<BrowserPageLayoutProps>;
9
13
  export {};