ydb-embedded-ui 6.22.0 → 6.23.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (261) hide show
  1. package/dist/components/PDiskPopup/PDiskPopup.d.ts +2 -4
  2. package/dist/components/PDiskPopup/PDiskPopup.js +10 -5
  3. package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
  4. package/dist/components/PaginatedTable/PaginatedTable.d.ts +2 -1
  5. package/dist/components/PaginatedTable/PaginatedTable.js +9 -7
  6. package/dist/components/PaginatedTable/PaginatedTable.js.map +1 -1
  7. package/dist/components/PaginatedTable/TableChunk.d.ts +2 -1
  8. package/dist/components/PaginatedTable/TableChunk.js +5 -2
  9. package/dist/components/PaginatedTable/TableChunk.js.map +1 -1
  10. package/dist/components/QueryResultTable/QueryResultTable.js +11 -16
  11. package/dist/components/QueryResultTable/QueryResultTable.js.map +1 -1
  12. package/dist/components/QueryResultTable/utils/getColumnWidth.d.ts +7 -0
  13. package/dist/components/QueryResultTable/utils/getColumnWidth.js +16 -0
  14. package/dist/components/QueryResultTable/utils/getColumnWidth.js.map +1 -0
  15. package/dist/components/QueryResultTable/utils/getColumnWidth.test.d.ts +1 -0
  16. package/dist/components/QueryResultTable/utils/getColumnWidth.test.js +32 -0
  17. package/dist/components/QueryResultTable/utils/getColumnWidth.test.js.map +1 -0
  18. package/dist/components/StorageGroupInfo/StorageGroupInfo.js +7 -7
  19. package/dist/components/StorageGroupInfo/StorageGroupInfo.js.map +1 -1
  20. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  21. package/dist/components/TableSkeleton/TableSkeleton.d.ts +2 -1
  22. package/dist/components/TableSkeleton/TableSkeleton.js +5 -1
  23. package/dist/components/TableSkeleton/TableSkeleton.js.map +1 -1
  24. package/dist/components/TableSkeleton/TableSkeleton.scss +7 -1
  25. package/dist/components/VDisk/VDisk.d.ts +1 -3
  26. package/dist/components/VDisk/VDisk.js +2 -2
  27. package/dist/components/VDisk/VDisk.js.map +1 -1
  28. package/dist/components/VDiskPopup/VDiskPopup.d.ts +1 -3
  29. package/dist/components/VDiskPopup/VDiskPopup.js +7 -2
  30. package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
  31. package/dist/containers/Cluster/Cluster.scss +2 -2
  32. package/dist/containers/Header/breadcrumbs.js +2 -3
  33. package/dist/containers/Header/breadcrumbs.js.map +1 -1
  34. package/dist/containers/Nodes/columns/columns.js +8 -0
  35. package/dist/containers/Nodes/columns/columns.js.map +1 -1
  36. package/dist/containers/Nodes/columns/constants.d.ts +2 -0
  37. package/dist/containers/Nodes/columns/constants.js +4 -0
  38. package/dist/containers/Nodes/columns/constants.js.map +1 -1
  39. package/dist/containers/Nodes/columns/i18n/en.json +1 -0
  40. package/dist/containers/Nodes/columns/i18n/index.d.ts +1 -1
  41. package/dist/containers/Storage/Disks/Disks.d.ts +3 -3
  42. package/dist/containers/Storage/Disks/Disks.js +6 -7
  43. package/dist/containers/Storage/Disks/Disks.js.map +1 -1
  44. package/dist/containers/Storage/PDisk/PDisk.d.ts +3 -2
  45. package/dist/containers/Storage/PDisk/PDisk.js +3 -2
  46. package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
  47. package/dist/containers/Storage/PDisk/PDisk.scss +1 -1
  48. package/dist/containers/Storage/PaginatedStorage.d.ts +5 -5
  49. package/dist/containers/Storage/PaginatedStorage.js +7 -73
  50. package/dist/containers/Storage/PaginatedStorage.js.map +1 -1
  51. package/dist/containers/Storage/PaginatedStorageGroups.d.ts +3 -0
  52. package/dist/containers/Storage/PaginatedStorageGroups.js +84 -0
  53. package/dist/containers/Storage/PaginatedStorageGroups.js.map +1 -0
  54. package/dist/containers/Storage/PaginatedStorageNodes.d.ts +3 -0
  55. package/dist/containers/Storage/PaginatedStorageNodes.js +98 -0
  56. package/dist/containers/Storage/PaginatedStorageNodes.js.map +1 -0
  57. package/dist/containers/Storage/Storage.js +15 -70
  58. package/dist/containers/Storage/Storage.js.map +1 -1
  59. package/dist/containers/Storage/Storage.scss +4 -0
  60. package/dist/containers/Storage/StorageControls/StorageControls.d.ts +3 -16
  61. package/dist/containers/Storage/StorageControls/StorageControls.js +18 -11
  62. package/dist/containers/Storage/StorageControls/StorageControls.js.map +1 -1
  63. package/dist/containers/Storage/StorageGroups/PaginatedStorageGroupsTable.d.ts +22 -0
  64. package/dist/containers/Storage/StorageGroups/{PaginatedStorageGroups.js → PaginatedStorageGroupsTable.js} +23 -5
  65. package/dist/containers/Storage/StorageGroups/PaginatedStorageGroupsTable.js.map +1 -0
  66. package/dist/containers/Storage/StorageGroups/{StorageGroups.d.ts → StorageGroupsTable.d.ts} +3 -4
  67. package/dist/containers/Storage/StorageGroups/{StorageGroups.js → StorageGroupsTable.js} +4 -3
  68. package/dist/containers/Storage/StorageGroups/StorageGroupsTable.js.map +1 -0
  69. package/dist/containers/Storage/StorageGroups/columns/columns.js +35 -10
  70. package/dist/containers/Storage/StorageGroups/columns/columns.js.map +1 -1
  71. package/dist/containers/Storage/StorageGroups/columns/constants.d.ts +17 -0
  72. package/dist/containers/Storage/StorageGroups/columns/constants.js +46 -1
  73. package/dist/containers/Storage/StorageGroups/columns/constants.js.map +1 -1
  74. package/dist/containers/Storage/StorageGroups/columns/hooks.d.ts +3 -3
  75. package/dist/containers/Storage/StorageGroups/columns/hooks.js +5 -8
  76. package/dist/containers/Storage/StorageGroups/columns/hooks.js.map +1 -1
  77. package/dist/containers/Storage/StorageGroups/columns/i18n/en.json +6 -0
  78. package/dist/containers/Storage/StorageGroups/columns/i18n/index.d.ts +1 -1
  79. package/dist/containers/Storage/StorageGroups/columns/types.d.ts +7 -5
  80. package/dist/containers/Storage/StorageGroups/getGroups.js +6 -5
  81. package/dist/containers/Storage/StorageGroups/getGroups.js.map +1 -1
  82. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.d.ts +23 -0
  83. package/dist/containers/Storage/StorageNodes/{PaginatedStorageNodes.js → PaginatedStorageNodesTable.js} +23 -5
  84. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.js.map +1 -0
  85. package/dist/containers/Storage/StorageNodes/{StorageNodes.d.ts → StorageNodesTable.d.ts} +3 -4
  86. package/dist/containers/Storage/StorageNodes/{StorageNodes.js → StorageNodesTable.js} +8 -6
  87. package/dist/containers/Storage/StorageNodes/StorageNodesTable.js.map +1 -0
  88. package/dist/containers/Storage/StorageNodes/columns/StorageNodesColumns.scss +1 -0
  89. package/dist/containers/Storage/StorageNodes/columns/columns.d.ts +1 -1
  90. package/dist/containers/Storage/StorageNodes/columns/columns.js +4 -5
  91. package/dist/containers/Storage/StorageNodes/columns/columns.js.map +1 -1
  92. package/dist/containers/Storage/StorageNodes/columns/constants.d.ts +9 -0
  93. package/dist/containers/Storage/StorageNodes/columns/constants.js +27 -0
  94. package/dist/containers/Storage/StorageNodes/columns/constants.js.map +1 -1
  95. package/dist/containers/Storage/StorageNodes/columns/i18n/en.json +2 -0
  96. package/dist/containers/Storage/StorageNodes/columns/i18n/index.d.ts +1 -1
  97. package/dist/containers/Storage/StorageNodes/getNodes.js +6 -5
  98. package/dist/containers/Storage/StorageNodes/getNodes.js.map +1 -1
  99. package/dist/containers/Storage/TableGroup/TableGroup.d.ts +12 -0
  100. package/dist/containers/Storage/TableGroup/TableGroup.js +21 -0
  101. package/dist/containers/Storage/TableGroup/TableGroup.js.map +1 -0
  102. package/dist/containers/Storage/TableGroup/TableGroup.scss +49 -0
  103. package/dist/containers/Storage/TableGroup/useExpandedTableGroups.d.ts +5 -0
  104. package/dist/containers/Storage/TableGroup/useExpandedTableGroups.js +28 -0
  105. package/dist/containers/Storage/TableGroup/useExpandedTableGroups.js.map +1 -0
  106. package/dist/containers/Storage/i18n/en.json +4 -1
  107. package/dist/containers/Storage/i18n/index.d.ts +1 -1
  108. package/dist/containers/Storage/i18n/index.js +1 -2
  109. package/dist/containers/Storage/i18n/index.js.map +1 -1
  110. package/dist/containers/Storage/shared.d.ts +2 -0
  111. package/dist/containers/Storage/shared.js +9 -0
  112. package/dist/containers/Storage/shared.js.map +1 -1
  113. package/dist/containers/Storage/useStorageQueryParams.d.ts +18 -0
  114. package/dist/containers/Storage/useStorageQueryParams.js +64 -0
  115. package/dist/containers/Storage/useStorageQueryParams.js.map +1 -0
  116. package/dist/containers/Storage/utils/index.d.ts +6 -2
  117. package/dist/containers/Storage/utils/index.js +11 -6
  118. package/dist/containers/Storage/utils/index.js.map +1 -1
  119. package/dist/containers/Tenant/Diagnostics/Describe/Describe.js +17 -3
  120. package/dist/containers/Tenant/Diagnostics/Describe/Describe.js.map +1 -1
  121. package/dist/containers/Tenant/Diagnostics/Diagnostics.js +1 -1
  122. package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
  123. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +0 -3
  124. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +2 -2
  125. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
  126. package/dist/containers/Tenant/Diagnostics/HotKeys/HotKeys.js +10 -3
  127. package/dist/containers/Tenant/Diagnostics/HotKeys/HotKeys.js.map +1 -1
  128. package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +2 -3
  129. package/dist/containers/Tenant/Diagnostics/Overview/Overview.js.map +1 -1
  130. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js +4 -4
  131. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js.map +1 -1
  132. package/dist/containers/Tenant/Diagnostics/Partitions/utils/index.d.ts +2 -2
  133. package/dist/containers/Tenant/Diagnostics/Partitions/utils/index.js +5 -5
  134. package/dist/containers/Tenant/Diagnostics/Partitions/utils/index.js.map +1 -1
  135. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +8 -2
  136. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  137. package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.d.ts +5 -0
  138. package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js +21 -0
  139. package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js.map +1 -0
  140. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueries.d.ts +1 -3
  141. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueries.js +32 -37
  142. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueries.js.map +1 -1
  143. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.d.ts +6 -0
  144. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js +33 -0
  145. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js.map +1 -0
  146. package/dist/containers/Tenant/Diagnostics/TopQueries/getTopQueriesColumns.d.ts +2 -0
  147. package/dist/containers/Tenant/Diagnostics/TopQueries/getTopQueriesColumns.js +26 -0
  148. package/dist/containers/Tenant/Diagnostics/TopQueries/getTopQueriesColumns.js.map +1 -1
  149. package/dist/containers/Tenant/Diagnostics/TopQueries/i18n/en.json +7 -1
  150. package/dist/containers/Tenant/Diagnostics/TopQueries/i18n/index.d.ts +1 -1
  151. package/dist/containers/Tenant/Diagnostics/TopQueries/i18n/index.js +1 -2
  152. package/dist/containers/Tenant/Diagnostics/TopQueries/i18n/index.js.map +1 -1
  153. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +27 -9
  154. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
  155. package/dist/containers/Tenant/ObjectSummary/__test__/transformPath.test.js +27 -3
  156. package/dist/containers/Tenant/ObjectSummary/__test__/transformPath.test.js.map +1 -1
  157. package/dist/containers/Tenant/ObjectSummary/transformPath.d.ts +2 -0
  158. package/dist/containers/Tenant/ObjectSummary/transformPath.js +10 -0
  159. package/dist/containers/Tenant/ObjectSummary/transformPath.js.map +1 -1
  160. package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.js +3 -1
  161. package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.js.map +1 -1
  162. package/dist/containers/Tenant/Query/ExecuteResult/i18n/en.json +2 -1
  163. package/dist/containers/Tenant/Query/ExecuteResult/i18n/index.d.ts +1 -1
  164. package/dist/containers/Tenant/Query/NewSQL/NewSQL.d.ts +1 -0
  165. package/dist/containers/Tenant/Query/NewSQL/NewSQL.js +135 -0
  166. package/dist/containers/Tenant/Query/NewSQL/NewSQL.js.map +1 -0
  167. package/dist/containers/Tenant/Query/NewSQL/i18n/en.json +32 -0
  168. package/dist/containers/Tenant/Query/NewSQL/i18n/index.d.ts +2 -0
  169. package/dist/containers/Tenant/Query/NewSQL/i18n/index.js +5 -0
  170. package/dist/containers/Tenant/Query/NewSQL/i18n/index.js.map +1 -0
  171. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js +2 -1
  172. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js.map +1 -1
  173. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.scss +1 -0
  174. package/dist/containers/Tenant/Schema/SchemaTree/SchemaTree.js +1 -1
  175. package/dist/containers/Tenant/Schema/SchemaTree/SchemaTree.js.map +1 -1
  176. package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js +10 -2
  177. package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js.map +1 -1
  178. package/dist/containers/Tenant/Schema/SchemaViewer/prepareData.d.ts +2 -1
  179. package/dist/containers/Tenant/Schema/SchemaViewer/prepareData.js.map +1 -1
  180. package/dist/containers/Tenant/Tenant.js +7 -3
  181. package/dist/containers/Tenant/Tenant.js.map +1 -1
  182. package/dist/containers/Tenant/utils/newSQLQueryActions.d.ts +27 -0
  183. package/dist/containers/Tenant/utils/newSQLQueryActions.js +35 -0
  184. package/dist/containers/Tenant/utils/newSQLQueryActions.js.map +1 -0
  185. package/dist/containers/Tenant/utils/newSQLQueryTemplates.d.ts +24 -0
  186. package/dist/containers/Tenant/utils/newSQLQueryTemplates.js +228 -0
  187. package/dist/containers/Tenant/utils/newSQLQueryTemplates.js.map +1 -0
  188. package/dist/containers/Tenant/utils/schemaActions.d.ts +1 -1
  189. package/dist/containers/Tenant/utils/schemaActions.js +8 -6
  190. package/dist/containers/Tenant/utils/schemaActions.js.map +1 -1
  191. package/dist/containers/Tenant/utils/{queryTemplates.js → schemaQueryTemplates.js} +1 -1
  192. package/dist/containers/Tenant/utils/schemaQueryTemplates.js.map +1 -0
  193. package/dist/services/api.js +3 -3
  194. package/dist/services/api.js.map +1 -1
  195. package/dist/store/reducers/capabilities/hooks.d.ts +2 -0
  196. package/dist/store/reducers/capabilities/hooks.js +6 -0
  197. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  198. package/dist/store/reducers/executeTopQueries/executeTopQueries.d.ts +4 -0
  199. package/dist/store/reducers/executeTopQueries/executeTopQueries.js +27 -1
  200. package/dist/store/reducers/executeTopQueries/executeTopQueries.js.map +1 -1
  201. package/dist/store/reducers/nodes/types.d.ts +1 -0
  202. package/dist/store/reducers/nodesList.d.ts +5 -5
  203. package/dist/store/reducers/nodesList.js +2 -2
  204. package/dist/store/reducers/nodesList.js.map +1 -1
  205. package/dist/store/reducers/overview/overview.js +5 -1
  206. package/dist/store/reducers/overview/overview.js.map +1 -1
  207. package/dist/store/reducers/storage/requestStorageData.d.ts +3 -3
  208. package/dist/store/reducers/storage/requestStorageData.js.map +1 -1
  209. package/dist/store/reducers/storage/selectors.d.ts +2 -3
  210. package/dist/store/reducers/storage/selectors.js +1 -27
  211. package/dist/store/reducers/storage/selectors.js.map +1 -1
  212. package/dist/store/reducers/storage/storage.d.ts +2 -2
  213. package/dist/store/reducers/storage/storage.js.map +1 -1
  214. package/dist/store/reducers/storage/types.d.ts +19 -10
  215. package/dist/store/reducers/storage/utils.js +27 -3
  216. package/dist/store/reducers/storage/utils.js.map +1 -1
  217. package/dist/store/reducers/tablet.js +5 -3
  218. package/dist/store/reducers/tablet.js.map +1 -1
  219. package/dist/store/reducers/tablets.d.ts +3 -3
  220. package/dist/store/reducers/tablets.js +4 -4
  221. package/dist/store/reducers/tablets.js.map +1 -1
  222. package/dist/types/api/capabilities.d.ts +1 -1
  223. package/dist/types/api/nodes.d.ts +3 -2
  224. package/dist/types/api/nodes.js.map +1 -1
  225. package/dist/types/api/storage.d.ts +22 -4
  226. package/dist/types/store/nodesList.d.ts +1 -1
  227. package/dist/utils/hooks/useSelectedColumns.js +7 -2
  228. package/dist/utils/hooks/useSelectedColumns.js.map +1 -1
  229. package/dist/utils/nodes.d.ts +2 -2
  230. package/dist/utils/nodes.js +4 -4
  231. package/dist/utils/nodes.js.map +1 -1
  232. package/dist/utils/storage.js +2 -0
  233. package/dist/utils/storage.js.map +1 -1
  234. package/dist/utils/utils.js +2 -1
  235. package/dist/utils/utils.js.map +1 -1
  236. package/package.json +1 -1
  237. package/dist/containers/Storage/StorageGroups/PaginatedStorageGroups.d.ts +0 -16
  238. package/dist/containers/Storage/StorageGroups/PaginatedStorageGroups.js.map +0 -1
  239. package/dist/containers/Storage/StorageGroups/StorageGroups.js.map +0 -1
  240. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodes.d.ts +0 -17
  241. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodes.js.map +0 -1
  242. package/dist/containers/Storage/StorageNodes/StorageNodes.js.map +0 -1
  243. package/dist/containers/Storage/UsageFilter/UsageFilter.d.ts +0 -14
  244. package/dist/containers/Storage/UsageFilter/UsageFilter.js +0 -39
  245. package/dist/containers/Storage/UsageFilter/UsageFilter.js.map +0 -1
  246. package/dist/containers/Storage/UsageFilter/UsageFilter.scss +0 -38
  247. package/dist/containers/Storage/UsageFilter/i18n/en.json +0 -5
  248. package/dist/containers/Storage/UsageFilter/i18n/index.d.ts +0 -2
  249. package/dist/containers/Storage/UsageFilter/i18n/index.js +0 -6
  250. package/dist/containers/Storage/UsageFilter/i18n/index.js.map +0 -1
  251. package/dist/containers/Storage/UsageFilter/i18n/ru.json +0 -5
  252. package/dist/containers/Storage/UsageFilter/index.d.ts +0 -1
  253. package/dist/containers/Storage/UsageFilter/index.js +0 -2
  254. package/dist/containers/Storage/UsageFilter/index.js.map +0 -1
  255. package/dist/containers/Storage/i18n/ru.json +0 -6
  256. package/dist/containers/Tenant/Diagnostics/TopQueries/i18n/ru.json +0 -4
  257. package/dist/containers/Tenant/utils/queryTemplates.js.map +0 -1
  258. package/dist/store/reducers/describe.d.ts +0 -7
  259. package/dist/store/reducers/describe.js +0 -25
  260. package/dist/store/reducers/describe.js.map +0 -1
  261. /package/dist/containers/Tenant/utils/{queryTemplates.d.ts → schemaQueryTemplates.d.ts} +0 -0
@@ -0,0 +1,98 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { ResponseError } from '../../components/Errors/ResponseError';
4
+ import { LoaderWrapper } from '../../components/LoaderWrapper/LoaderWrapper';
5
+ import { TableWithControlsLayout } from '../../components/TableWithControlsLayout/TableWithControlsLayout';
6
+ import { useCapabilitiesLoaded, useViewerNodesHandlerHasGrouping, } from '../../store/reducers/capabilities/hooks';
7
+ import { useClusterBaseInfo } from '../../store/reducers/cluster/cluster';
8
+ import { storageApi } from '../../store/reducers/storage/storage';
9
+ import { useAutoRefreshInterval } from '../../utils/hooks';
10
+ import { NodesUptimeFilterValues } from '../../utils/nodes';
11
+ import { useAdditionalNodeProps } from '../AppWithClusters/useClusterData';
12
+ import { StorageNodesControls } from './StorageControls/StorageControls';
13
+ import { PaginatedStorageNodesTable } from './StorageNodes/PaginatedStorageNodesTable';
14
+ import { useStorageNodesSelectedColumns } from './StorageNodes/columns/hooks';
15
+ import { TableGroup } from './TableGroup/TableGroup';
16
+ import { useExpandedGroups } from './TableGroup/useExpandedTableGroups';
17
+ import i18n from './i18n';
18
+ import { b, renderPaginatedTableErrorMessage } from './shared';
19
+ import { useStorageQueryParams } from './useStorageQueryParams';
20
+ import './Storage.scss';
21
+ export const PaginatedStorageNodes = (props) => {
22
+ const { storageNodesGroupByParam, visibleEntities, nodesUptimeFilter, handleShowAllNodes } = useStorageQueryParams();
23
+ const capabilitiesLoaded = useCapabilitiesLoaded();
24
+ const viewerNodesHandlerHasGrouping = useViewerNodesHandlerHasGrouping();
25
+ // Other filters do not fit with grouping
26
+ // Reset them if grouping available
27
+ React.useEffect(() => {
28
+ if (viewerNodesHandlerHasGrouping &&
29
+ visibleEntities !== 'all' &&
30
+ nodesUptimeFilter !== NodesUptimeFilterValues.All) {
31
+ handleShowAllNodes();
32
+ }
33
+ }, [handleShowAllNodes, nodesUptimeFilter, viewerNodesHandlerHasGrouping, visibleEntities]);
34
+ const renderContent = () => {
35
+ if (viewerNodesHandlerHasGrouping && storageNodesGroupByParam) {
36
+ return _jsx(GroupedStorageNodesComponent, { ...props });
37
+ }
38
+ return _jsx(StorageNodesComponent, { ...props });
39
+ };
40
+ return _jsx(LoaderWrapper, { loading: !capabilitiesLoaded, children: renderContent() });
41
+ };
42
+ function StorageNodesComponent({ database, nodeId, groupId, parentContainer, }) {
43
+ const { searchValue, visibleEntities, nodesUptimeFilter, handleShowAllNodes } = useStorageQueryParams();
44
+ const { columnsToShow, columnsToSelect, setColumns } = useStorageNodesColumnsToSelect({
45
+ database,
46
+ groupId: groupId === null || groupId === void 0 ? void 0 : groupId.toString(),
47
+ });
48
+ const renderControls = ({ totalEntities, foundEntities, inited }) => {
49
+ return (_jsx(StorageNodesControls, { withTypeSelector: true, withGroupBySelect: true, entitiesCountCurrent: foundEntities, entitiesCountTotal: totalEntities, entitiesLoading: !inited, columnsToSelect: columnsToSelect, handleSelectedColumnsUpdate: setColumns }));
50
+ };
51
+ return (_jsx(PaginatedStorageNodesTable, { database: database, nodeId: nodeId, groupId: groupId, searchValue: searchValue, visibleEntities: visibleEntities, nodesUptimeFilter: nodesUptimeFilter, onShowAll: handleShowAllNodes, parentContainer: parentContainer, renderControls: renderControls, renderErrorMessage: renderPaginatedTableErrorMessage, columns: columnsToShow }));
52
+ }
53
+ function GroupedStorageNodesComponent({ database, groupId, nodeId }) {
54
+ const [autoRefreshInterval] = useAutoRefreshInterval();
55
+ const { searchValue, storageNodesGroupByParam, handleShowAllNodes } = useStorageQueryParams();
56
+ const { columnsToShow, columnsToSelect, setColumns } = useStorageNodesColumnsToSelect({
57
+ database,
58
+ groupId: groupId === null || groupId === void 0 ? void 0 : groupId.toString(),
59
+ });
60
+ const { currentData, isFetching, error } = storageApi.useGetStorageNodesInfoQuery({
61
+ database,
62
+ with: 'all',
63
+ filter: searchValue,
64
+ node_id: nodeId,
65
+ group_id: groupId,
66
+ group: storageNodesGroupByParam,
67
+ }, {
68
+ pollingInterval: autoRefreshInterval,
69
+ });
70
+ const isLoading = currentData === undefined && isFetching;
71
+ const { tableGroups, found = 0, total = 0 } = currentData || {};
72
+ const { expandedGroups, setIsGroupExpanded } = useExpandedGroups(tableGroups);
73
+ const renderControls = () => {
74
+ return (_jsx(StorageNodesControls, { withTypeSelector: true, withGroupBySelect: true, entitiesCountCurrent: found, entitiesCountTotal: total, entitiesLoading: isLoading, columnsToSelect: columnsToSelect, handleSelectedColumnsUpdate: setColumns }));
75
+ };
76
+ const renderGroups = () => {
77
+ if (tableGroups === null || tableGroups === void 0 ? void 0 : tableGroups.length) {
78
+ return tableGroups.map(({ name, count }) => {
79
+ const isExpanded = expandedGroups[name];
80
+ return (_jsx(TableGroup, { title: name, count: count, entityName: i18n('nodes'), expanded: isExpanded, onIsExpandedChange: setIsGroupExpanded, children: _jsx(PaginatedStorageNodesTable, { database: database, nodeId: nodeId, groupId: groupId, searchValue: searchValue, visibleEntities: 'all', nodesUptimeFilter: NodesUptimeFilterValues.All, onShowAll: handleShowAllNodes, filterGroup: name, filterGroupBy: storageNodesGroupByParam, renderErrorMessage: renderPaginatedTableErrorMessage, columns: columnsToShow, initialEntitiesCount: count }) }, name));
81
+ });
82
+ }
83
+ return i18n('no-nodes');
84
+ };
85
+ return (_jsxs(TableWithControlsLayout, { children: [_jsx(TableWithControlsLayout.Controls, { children: renderControls() }), error ? _jsx(ResponseError, { error: error }) : null, _jsx(TableWithControlsLayout.Table, { loading: isLoading, className: b('groups-wrapper'), children: renderGroups() })] }));
86
+ }
87
+ function useStorageNodesColumnsToSelect({ database, groupId, }) {
88
+ const { balancer } = useClusterBaseInfo();
89
+ const { additionalNodesProps } = useAdditionalNodeProps({ balancer });
90
+ const { visibleEntities } = useStorageQueryParams();
91
+ return useStorageNodesSelectedColumns({
92
+ additionalNodesProps,
93
+ visibleEntities,
94
+ database,
95
+ groupId,
96
+ });
97
+ }
98
+ //# sourceMappingURL=PaginatedStorageNodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaginatedStorageNodes.js","sourceRoot":"","sources":["../../../src/containers/Storage/PaginatedStorageNodes.tsx"],"names":[],"mappings":"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"}
@@ -1,62 +1,34 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
- import { ArrayParam, StringParam, useQueryParams, withDefault } from 'use-query-params';
4
3
  import { AccessDenied } from '../../components/Errors/403';
5
4
  import { isAccessError } from '../../components/Errors/PageError/PageError';
6
5
  import { ResponseError } from '../../components/Errors/ResponseError';
7
6
  import { TableWithControlsLayout } from '../../components/TableWithControlsLayout/TableWithControlsLayout';
8
7
  import { useCapabilitiesLoaded, useStorageGroupsHandlerAvailable, } from '../../store/reducers/capabilities/hooks';
9
8
  import { useClusterBaseInfo } from '../../store/reducers/cluster/cluster';
10
- import { VISIBLE_ENTITIES } from '../../store/reducers/storage/constants';
11
- import { filterGroups, filterNodes, getUsageFilterOptions, } from '../../store/reducers/storage/selectors';
9
+ import { filterGroups, filterNodes } from '../../store/reducers/storage/selectors';
12
10
  import { storageApi } from '../../store/reducers/storage/storage';
13
- import { storageTypeSchema, visibleEntitiesSchema } from '../../store/reducers/storage/types';
14
- import { valueIsDefined } from '../../utils';
15
- import { DEFAULT_TABLE_SETTINGS } from '../../utils/constants';
16
11
  import { useAutoRefreshInterval, useTableSort } from '../../utils/hooks';
17
- import { NodesUptimeFilterValues, nodesUptimeFilterValuesSchema } from '../../utils/nodes';
18
12
  import { useAdditionalNodeProps } from '../AppWithClusters/useClusterData';
19
- import { StorageControls } from './StorageControls/StorageControls';
20
- import { StorageGroups } from './StorageGroups/StorageGroups';
13
+ import { StorageGroupsControls, StorageNodesControls } from './StorageControls/StorageControls';
14
+ import { StorageGroupsTable } from './StorageGroups/StorageGroupsTable';
21
15
  import { useStorageGroupsSelectedColumns } from './StorageGroups/columns/hooks';
22
- import { StorageNodes } from './StorageNodes/StorageNodes';
16
+ import { StorageNodesTable } from './StorageNodes/StorageNodesTable';
23
17
  import { useStorageNodesSelectedColumns } from './StorageNodes/columns/hooks';
24
18
  import { b } from './shared';
19
+ import { useStorageQueryParams } from './useStorageQueryParams';
25
20
  import { defaultSortNode, getDefaultSortGroup } from './utils';
26
21
  import './Storage.scss';
27
- const UsageFilterParam = withDefault({
28
- encode: ArrayParam.encode,
29
- decode: (input) => {
30
- if (input === null || input === undefined) {
31
- return input;
32
- }
33
- if (!Array.isArray(input)) {
34
- return input ? [input] : [];
35
- }
36
- return input.filter(Boolean);
37
- },
38
- }, []);
39
22
  export const Storage = ({ database, nodeId, groupId, pDiskId }) => {
40
- var _a;
23
+ var _a, _b;
41
24
  const { balancer } = useClusterBaseInfo();
42
25
  const { additionalNodesProps } = useAdditionalNodeProps({ balancer });
26
+ const { storageType, searchValue, visibleEntities, nodesUptimeFilter, handleShowAllGroups, handleShowAllNodes, } = useStorageQueryParams();
43
27
  const capabilitiesLoaded = useCapabilitiesLoaded();
44
28
  const groupsHandlerAvailable = useStorageGroupsHandlerAvailable();
45
29
  const [autoRefreshInterval] = useAutoRefreshInterval();
46
- const [queryParams, setQueryParams] = useQueryParams({
47
- type: StringParam,
48
- visible: StringParam,
49
- search: StringParam,
50
- uptimeFilter: StringParam,
51
- usageFilter: UsageFilterParam,
52
- });
53
- const storageType = storageTypeSchema.parse(queryParams.type);
54
30
  const isGroups = storageType === 'groups';
55
31
  const isNodes = storageType === 'nodes';
56
- const visibleEntities = visibleEntitiesSchema.parse(queryParams.visible);
57
- const filter = (_a = queryParams.search) !== null && _a !== void 0 ? _a : '';
58
- const uptimeFilter = nodesUptimeFilterValuesSchema.parse(queryParams.uptimeFilter);
59
- const usageFilter = queryParams.usageFilter;
60
32
  const [nodeSort, setNodeSort] = React.useState({
61
33
  sortOrder: undefined,
62
34
  sortValue: undefined,
@@ -73,13 +45,12 @@ export const Storage = ({ database, nodeId, groupId, pDiskId }) => {
73
45
  database,
74
46
  groupId: groupId === null || groupId === void 0 ? void 0 : groupId.toString(),
75
47
  });
76
- const { columnsToShow: storageGroupsColumnsToShow, columnsToSelect: storageGroupsColumnsToSelect, setColumns: setStorageGroupsSelectedColumns, } = useStorageGroupsSelectedColumns(visibleEntities);
48
+ const { columnsToShow: storageGroupsColumnsToShow, columnsToSelect: storageGroupsColumnsToSelect, setColumns: setStorageGroupsSelectedColumns, } = useStorageGroupsSelectedColumns({ visibleEntities, nodeId: nodeId === null || nodeId === void 0 ? void 0 : nodeId.toString() });
77
49
  const nodesQuery = storageApi.useGetStorageNodesInfoQuery({
78
50
  database,
79
51
  with: visibleEntities,
80
52
  node_id: nodeId,
81
- // node_id and group_id params don't work together
82
- group_id: valueIsDefined(nodeId) ? undefined : groupId,
53
+ group_id: groupId,
83
54
  }, {
84
55
  skip: !isNodes,
85
56
  pollingInterval: autoRefreshInterval,
@@ -98,44 +69,18 @@ export const Storage = ({ database, nodeId, groupId, pDiskId }) => {
98
69
  const { currentData, isFetching, error } = isNodes ? nodesQuery : groupsQuery;
99
70
  const { currentData: { nodes = [] } = {} } = nodesQuery;
100
71
  const { currentData: { groups = [] } = {} } = groupsQuery;
101
- const { nodes: _, groups: __, ...entitiesCount } = currentData !== null && currentData !== void 0 ? currentData : { found: 0, total: 0 };
72
+ const nodesTotalCount = ((_a = nodesQuery.currentData) === null || _a === void 0 ? void 0 : _a.total) || 0;
73
+ const groupsTotalCount = ((_b = groupsQuery.currentData) === null || _b === void 0 ? void 0 : _b.total) || 0;
102
74
  const isLoading = currentData === undefined && isFetching;
103
- const storageNodes = React.useMemo(() => filterNodes(nodes, filter, uptimeFilter), [filter, nodes, uptimeFilter]);
104
- const storageGroups = React.useMemo(() => filterGroups(groups, filter, usageFilter), [filter, groups, usageFilter]);
105
- const usageFilterOptions = React.useMemo(() => getUsageFilterOptions(groups), [groups]);
75
+ const storageNodes = React.useMemo(() => filterNodes(nodes, searchValue, nodesUptimeFilter), [nodes, nodesUptimeFilter, searchValue]);
76
+ const storageGroups = React.useMemo(() => filterGroups(groups, searchValue), [searchValue, groups]);
106
77
  const [nodesSort, handleNodesSort] = useTableSort(nodesSortParams, (params) => setNodeSort(params));
107
78
  const [groupsSort, handleGroupsSort] = useTableSort(groupsSortParams, (params) => setGroupSort(params));
108
- const handleUsageFilterChange = (value) => {
109
- setQueryParams({ usageFilter: value.length ? value : undefined }, 'replaceIn');
110
- };
111
- const handleTextFilterChange = (value) => {
112
- setQueryParams({ search: value || undefined }, 'replaceIn');
113
- };
114
- const handleGroupVisibilityChange = (value) => {
115
- setQueryParams({ visible: value }, 'replaceIn');
116
- };
117
- const handleStorageTypeChange = (value) => {
118
- setQueryParams({ type: value }, 'replaceIn');
119
- };
120
- const handleUptimeFilterChange = (value) => {
121
- setQueryParams({ uptimeFilter: value }, 'replaceIn');
122
- };
123
- const handleShowAllNodes = () => {
124
- handleGroupVisibilityChange(VISIBLE_ENTITIES.all);
125
- handleUptimeFilterChange(NodesUptimeFilterValues.All);
126
- };
127
79
  const renderDataTable = () => {
128
- return (_jsxs(React.Fragment, { children: [isGroups ? (_jsx(StorageGroups, { visibleEntities: visibleEntities, data: storageGroups, tableSettings: DEFAULT_TABLE_SETTINGS, onShowAll: () => handleGroupVisibilityChange(VISIBLE_ENTITIES.all), sort: groupsSort, handleSort: handleGroupsSort, columns: storageGroupsColumnsToShow }, "groups")) : null, isNodes ? (_jsx(StorageNodes, { visibleEntities: visibleEntities, nodesUptimeFilter: uptimeFilter, data: storageNodes, tableSettings: DEFAULT_TABLE_SETTINGS, onShowAll: handleShowAllNodes, sort: nodesSort, handleSort: handleNodesSort, columns: storageNodesColumnsToShow }, "nodes")) : null] }));
80
+ return (_jsxs(React.Fragment, { children: [isGroups ? (_jsx(StorageGroupsTable, { visibleEntities: visibleEntities, data: storageGroups, onShowAll: handleShowAllGroups, sort: groupsSort, handleSort: handleGroupsSort, columns: storageGroupsColumnsToShow }, "groups")) : null, isNodes ? (_jsx(StorageNodesTable, { visibleEntities: visibleEntities, nodesUptimeFilter: nodesUptimeFilter, data: storageNodes, onShowAll: handleShowAllNodes, sort: nodesSort, handleSort: handleNodesSort, columns: storageNodesColumnsToShow }, "nodes")) : null] }));
129
81
  };
130
82
  const renderControls = () => {
131
- const entitiesCountCurrent = isGroups ? storageGroups.length : storageNodes.length;
132
- const columnsToSelect = isGroups
133
- ? storageGroupsColumnsToSelect
134
- : storageNodesColumnsToSelect;
135
- const handleSelectedColumnsUpdate = isGroups
136
- ? setStorageGroupsSelectedColumns
137
- : setStorageNodesSelectedColumns;
138
- return (_jsx(StorageControls, { searchValue: filter, handleSearchValueChange: handleTextFilterChange, withTypeSelector: true, storageType: storageType, handleStorageTypeChange: handleStorageTypeChange, visibleEntities: visibleEntities, handleVisibleEntitiesChange: handleGroupVisibilityChange, nodesUptimeFilter: uptimeFilter, handleNodesUptimeFilterChange: handleUptimeFilterChange, groupsUsageFilter: usageFilter, groupsUsageFilterOptions: usageFilterOptions, handleGroupsUsageFilterChange: handleUsageFilterChange, entitiesCountCurrent: entitiesCountCurrent, entitiesCountTotal: entitiesCount.total, entitiesLoading: isLoading, columnsToSelect: columnsToSelect, handleSelectedColumnsUpdate: handleSelectedColumnsUpdate }));
83
+ return (_jsxs(React.Fragment, { children: [isGroups ? (_jsx(StorageGroupsControls, { withTypeSelector: true, entitiesCountCurrent: storageGroups.length, entitiesCountTotal: groupsTotalCount, entitiesLoading: isLoading, columnsToSelect: storageGroupsColumnsToSelect, handleSelectedColumnsUpdate: setStorageGroupsSelectedColumns })) : null, isNodes ? (_jsx(StorageNodesControls, { withTypeSelector: true, entitiesCountCurrent: storageNodes.length, entitiesCountTotal: nodesTotalCount, entitiesLoading: isLoading, columnsToSelect: storageNodesColumnsToSelect, handleSelectedColumnsUpdate: setStorageNodesSelectedColumns })) : null] }));
139
84
  };
140
85
  if (isAccessError(error)) {
141
86
  return _jsx(AccessDenied, { position: "left" });
@@ -1 +1 @@
1
- {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../src/containers/Storage/Storage.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAC,aAAa,EAAC,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAC,uBAAuB,EAAC,MAAM,kEAAkE,CAAC;AACzG,OAAO,EACH,qBAAqB,EACrB,gCAAgC,GACnC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAC,gBAAgB,EAAC,MAAM,wCAAwC,CAAC;AACxE,OAAO,EACH,YAAY,EACZ,WAAW,EACX,qBAAqB,GACxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAC,iBAAiB,EAAE,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AAM5F,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAC,sBAAsB,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAC,uBAAuB,EAAE,6BAA6B,EAAC,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAC,eAAe,EAAC,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAC,+BAA+B,EAAC,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAC,8BAA8B,EAAC,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAC,CAAC,EAAC,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAC,eAAe,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAE7D,OAAO,gBAAgB,CAAC;AAExB,MAAM,gBAAgB,GAAG,WAAW,CAChC;IACI,MAAM,EAAE,UAAU,CAAC,MAAM;IACzB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QACd,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAC7C,CAAC;CACJ,EACD,EAAE,CACL,CAAC;AASF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAe,EAAE,EAAE;;IAC1E,MAAM,EAAC,QAAQ,EAAC,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,EAAC,oBAAoB,EAAC,GAAG,sBAAsB,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;IAElE,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,MAAM,sBAAsB,GAAG,gCAAgC,EAAE,CAAC;IAClE,MAAM,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,EAAE,CAAC;IAEvD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,cAAc,CAAC;QACjD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,gBAAgB;KAChC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,WAAW,KAAK,QAAQ,CAAC;IAC1C,MAAM,OAAO,GAAG,WAAW,KAAK,OAAO,CAAC;IAExC,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,MAAA,WAAW,CAAC,MAAM,mCAAI,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,6BAA6B,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnF,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAE5C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkB;QAC5D,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;KACvB,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC;IAExE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAoB;QAChE,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;KACvB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAEhG,MAAM,EACF,aAAa,EAAE,yBAAyB,EACxC,eAAe,EAAE,2BAA2B,EAC5C,UAAU,EAAE,8BAA8B,GAC7C,GAAG,8BAA8B,CAAC;QAC/B,oBAAoB;QACpB,eAAe;QACf,QAAQ;QACR,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE;KAC/B,CAAC,CAAC;IAEH,MAAM,EACF,aAAa,EAAE,0BAA0B,EACzC,eAAe,EAAE,4BAA4B,EAC7C,UAAU,EAAE,+BAA+B,GAC9C,GAAG,+BAA+B,CAAC,eAAe,CAAC,CAAC;IAErD,MAAM,UAAU,GAAG,UAAU,CAAC,2BAA2B,CACrD;QACI,QAAQ;QACR,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,MAAM;QACf,kDAAkD;QAClD,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;KACzD,EACD;QACI,IAAI,EAAE,CAAC,OAAO;QACd,eAAe,EAAE,mBAAmB;KACvC,CACJ,CAAC;IACF,MAAM,WAAW,GAAG,UAAU,CAAC,4BAA4B,CACvD;QACI,QAAQ;QACR,IAAI,EAAE,eAAe;QACrB,MAAM;QACN,OAAO;QACP,OAAO;QACP,sBAAsB,EAAE,sBAAsB;KACjD,EACD;QACI,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,kBAAkB;QACtC,eAAe,EAAE,mBAAmB;KACvC,CACJ,CAAC;IAEF,MAAM,EAAC,WAAW,EAAE,UAAU,EAAE,KAAK,EAAC,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAE5E,MAAM,EAAC,WAAW,EAAE,EAAC,KAAK,GAAG,EAAE,EAAC,GAAG,EAAE,EAAC,GAAG,UAAU,CAAC;IACpD,MAAM,EAAC,WAAW,EAAE,EAAC,MAAM,GAAG,EAAE,EAAC,GAAG,EAAE,EAAC,GAAG,WAAW,CAAC;IACtD,MAAM,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,EAAC,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC;IAErF,MAAM,SAAS,GAAG,WAAW,KAAK,SAAS,IAAI,UAAU,CAAC;IAE1D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAC9B,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAC9C,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAChC,CAAC;IACF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAC/B,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAC/C,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAChC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAExF,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAC1E,WAAW,CAAC,MAAyB,CAAC,CACzC,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE,CAC7E,YAAY,CAAC,MAA2B,CAAC,CAC5C,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,KAAe,EAAE,EAAE;QAChD,cAAc,CAAC,EAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAC,EAAE,WAAW,CAAC,CAAC;IACjF,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAE,EAAE;QAC7C,cAAc,CAAC,EAAC,MAAM,EAAE,KAAK,IAAI,SAAS,EAAC,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,2BAA2B,GAAG,CAAC,KAAsB,EAAE,EAAE;QAC3D,cAAc,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,KAAkB,EAAE,EAAE;QACnD,cAAc,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,WAAW,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAAC,KAA8B,EAAE,EAAE;QAChE,cAAc,CAAC,EAAC,YAAY,EAAE,KAAK,EAAC,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC5B,2BAA2B,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAClD,wBAAwB,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QACzB,OAAO,CACH,MAAC,KAAK,CAAC,QAAQ,eACV,QAAQ,CAAC,CAAC,CAAC,CACR,KAAC,aAAa,IAEV,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,sBAAsB,EACrC,SAAS,EAAE,GAAG,EAAE,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAClE,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,0BAA0B,IAP/B,QAAQ,CAQd,CACL,CAAC,CAAC,CAAC,IAAI,EACP,OAAO,CAAC,CAAC,CAAC,CACP,KAAC,YAAY,IAET,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,YAAY,EAC/B,IAAI,EAAE,YAAY,EAClB,aAAa,EAAE,sBAAsB,EACrC,SAAS,EAAE,kBAAkB,EAC7B,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,yBAAyB,IAR9B,OAAO,CASb,CACL,CAAC,CAAC,CAAC,IAAI,IACK,CACpB,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,MAAM,oBAAoB,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;QAEnF,MAAM,eAAe,GAAG,QAAQ;YAC5B,CAAC,CAAC,4BAA4B;YAC9B,CAAC,CAAC,2BAA2B,CAAC;QAElC,MAAM,2BAA2B,GAAG,QAAQ;YACxC,CAAC,CAAC,+BAA+B;YACjC,CAAC,CAAC,8BAA8B,CAAC;QAErC,OAAO,CACH,KAAC,eAAe,IACZ,WAAW,EAAE,MAAM,EACnB,uBAAuB,EAAE,sBAAsB,EAC/C,gBAAgB,QAChB,WAAW,EAAE,WAAW,EACxB,uBAAuB,EAAE,uBAAuB,EAChD,eAAe,EAAE,eAAe,EAChC,2BAA2B,EAAE,2BAA2B,EACxD,iBAAiB,EAAE,YAAY,EAC/B,6BAA6B,EAAE,wBAAwB,EACvD,iBAAiB,EAAE,WAAW,EAC9B,wBAAwB,EAAE,kBAAkB,EAC5C,6BAA6B,EAAE,uBAAuB,EACtD,oBAAoB,EAAE,oBAAoB,EAC1C,kBAAkB,EAAE,aAAa,CAAC,KAAK,EACvC,eAAe,EAAE,SAAS,EAC1B,eAAe,EAAE,eAAe,EAChC,2BAA2B,EAAE,2BAA2B,GAC1D,CACL,CAAC;IACN,CAAC,CAAC;IAEF,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAC,YAAY,IAAC,QAAQ,EAAC,MAAM,GAAG,CAAC;IAC5C,CAAC;IAED,OAAO,CACH,MAAC,uBAAuB,eACpB,KAAC,uBAAuB,CAAC,QAAQ,cAAE,cAAc,EAAE,GAAoC,EACtF,KAAK,CAAC,CAAC,CAAC,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,EAC/C,KAAC,uBAAuB,CAAC,KAAK,IAC1B,OAAO,EAAE,SAAS,IAAI,CAAC,kBAAkB,EACzC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,YAEpB,WAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,GACX,IACV,CAC7B,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../src/containers/Storage/Storage.tsx"],"names":[],"mappings":"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"}
@@ -15,4 +15,8 @@
15
15
  .entity-status {
16
16
  justify-content: center;
17
17
  }
18
+
19
+ &__groups-wrapper {
20
+ padding-right: 20px;
21
+ }
18
22
  }
@@ -1,26 +1,13 @@
1
1
  import type { TableColumnSetupItem } from '@gravity-ui/uikit';
2
- import type { StorageType, VisibleEntities } from '../../../store/reducers/storage/types';
3
- import type { NodesUptimeFilterValues } from '../../../utils/nodes';
4
- import type { UsageFilterItem } from '../UsageFilter/UsageFilter';
5
2
  interface StorageControlsProps {
6
- searchValue?: string;
7
- handleSearchValueChange: (value: string) => void;
8
3
  withTypeSelector?: boolean;
9
- storageType: StorageType;
10
- handleStorageTypeChange: (value: StorageType) => void;
11
- visibleEntities: VisibleEntities;
12
- handleVisibleEntitiesChange: (value: VisibleEntities) => void;
13
- nodesUptimeFilter: NodesUptimeFilterValues;
14
- handleNodesUptimeFilterChange: (value: NodesUptimeFilterValues) => void;
15
- withGroupsUsageFilter?: boolean;
16
- groupsUsageFilter?: string[];
17
- groupsUsageFilterOptions?: UsageFilterItem[];
18
- handleGroupsUsageFilterChange?: (value: string[]) => void;
4
+ withGroupBySelect?: boolean;
19
5
  entitiesCountCurrent: number;
20
6
  entitiesCountTotal?: number;
21
7
  entitiesLoading: boolean;
22
8
  columnsToSelect: TableColumnSetupItem[];
23
9
  handleSelectedColumnsUpdate: (updated: TableColumnSetupItem[]) => void;
24
10
  }
25
- export declare const StorageControls: ({ searchValue, handleSearchValueChange, withTypeSelector, storageType, handleStorageTypeChange, visibleEntities, handleVisibleEntitiesChange, nodesUptimeFilter, handleNodesUptimeFilterChange, withGroupsUsageFilter, groupsUsageFilter, groupsUsageFilterOptions, handleGroupsUsageFilterChange, entitiesCountCurrent, entitiesCountTotal, entitiesLoading, columnsToSelect, handleSelectedColumnsUpdate, }: StorageControlsProps) => import("react/jsx-runtime").JSX.Element;
11
+ export declare function StorageGroupsControls({ withTypeSelector, withGroupBySelect, entitiesCountCurrent, entitiesCountTotal, entitiesLoading, columnsToSelect, handleSelectedColumnsUpdate, }: StorageControlsProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function StorageNodesControls({ withTypeSelector, withGroupBySelect, entitiesCountCurrent, entitiesCountTotal, entitiesLoading, columnsToSelect, handleSelectedColumnsUpdate, }: StorageControlsProps): import("react/jsx-runtime").JSX.Element;
26
13
  export {};
@@ -1,21 +1,28 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
- import { TableColumnSetup } from '@gravity-ui/uikit';
3
+ import { Select, TableColumnSetup, Text } from '@gravity-ui/uikit';
4
4
  import { EntitiesCount } from '../../../components/EntitiesCount/EntitiesCount';
5
5
  import { Search } from '../../../components/Search/Search';
6
6
  import { UptimeFilter } from '../../../components/UptimeFIlter';
7
- import { STORAGE_TYPES } from '../../../store/reducers/storage/constants';
7
+ import { STORAGE_GROUPS_GROUP_BY_OPTIONS } from '../StorageGroups/columns/constants';
8
+ import { STORAGE_NODES_GROUP_BY_OPTIONS } from '../StorageNodes/columns/constants';
8
9
  import { StorageTypeFilter } from '../StorageTypeFilter/StorageTypeFilter';
9
10
  import { StorageVisibleEntitiesFilter } from '../StorageVisibleEntitiesFilter/StorageVisibleEntitiesFilter';
10
- import { UsageFilter } from '../UsageFilter/UsageFilter';
11
11
  import i18n from '../i18n';
12
12
  import { b } from '../shared';
13
- export const StorageControls = ({ searchValue, handleSearchValueChange, withTypeSelector, storageType, handleStorageTypeChange, visibleEntities, handleVisibleEntitiesChange, nodesUptimeFilter, handleNodesUptimeFilterChange, withGroupsUsageFilter, groupsUsageFilter, groupsUsageFilterOptions, handleGroupsUsageFilterChange, entitiesCountCurrent, entitiesCountTotal, entitiesLoading, columnsToSelect, handleSelectedColumnsUpdate, }) => {
14
- const isNodes = storageType === STORAGE_TYPES.nodes;
15
- const isGroups = storageType === STORAGE_TYPES.groups;
16
- const entityName = isNodes ? i18n('nodes') : i18n('groups');
17
- return (_jsxs(React.Fragment, { children: [_jsx(Search, { value: searchValue, onChange: handleSearchValueChange, placeholder: isNodes
18
- ? i18n('controls_nodes-search-placeholder')
19
- : i18n('controls_groups-search-placeholder'), className: b('search') }), withTypeSelector && (_jsx(StorageTypeFilter, { value: storageType, onChange: handleStorageTypeChange })), _jsx(StorageVisibleEntitiesFilter, { value: visibleEntities, onChange: handleVisibleEntitiesChange }), isNodes && (_jsx(UptimeFilter, { value: nodesUptimeFilter, onChange: handleNodesUptimeFilterChange })), isGroups && withGroupsUsageFilter && (_jsx(UsageFilter, { value: groupsUsageFilter, onChange: handleGroupsUsageFilterChange, groups: groupsUsageFilterOptions })), _jsx(EntitiesCount, { label: entityName, loading: entitiesLoading, total: entitiesCountTotal, current: entitiesCountCurrent }), _jsx(TableColumnSetup, { popupWidth: 200, items: columnsToSelect, showStatus: true, onUpdate: handleSelectedColumnsUpdate, sortable: false })] }));
20
- };
13
+ import { useStorageQueryParams } from '../useStorageQueryParams';
14
+ export function StorageGroupsControls({ withTypeSelector, withGroupBySelect, entitiesCountCurrent, entitiesCountTotal, entitiesLoading, columnsToSelect, handleSelectedColumnsUpdate, }) {
15
+ const { searchValue, storageType, visibleEntities, storageGroupsGroupByParam, handleTextFilterChange, handleStorageTypeChange, handleVisibleEntitiesChange, handleStorageGroupsGroupByParamChange, } = useStorageQueryParams();
16
+ const handleGroupBySelectUpdate = (value) => {
17
+ handleStorageGroupsGroupByParamChange(value[0]);
18
+ };
19
+ return (_jsxs(React.Fragment, { children: [_jsx(Search, { value: searchValue, onChange: handleTextFilterChange, placeholder: i18n('controls_groups-search-placeholder'), className: b('search') }), withTypeSelector && (_jsx(StorageTypeFilter, { value: storageType, onChange: handleStorageTypeChange })), withGroupBySelect ? null : (_jsx(StorageVisibleEntitiesFilter, { value: visibleEntities, onChange: handleVisibleEntitiesChange })), _jsx(EntitiesCount, { label: i18n('groups'), loading: entitiesLoading, total: entitiesCountTotal, current: entitiesCountCurrent }), _jsx(TableColumnSetup, { popupWidth: 200, items: columnsToSelect, showStatus: true, onUpdate: handleSelectedColumnsUpdate, sortable: false }), withGroupBySelect ? (_jsxs(React.Fragment, { children: [_jsx(Text, { variant: "body-2", children: i18n('controls_group-by-placeholder') }), _jsx(Select, { hasClear: true, placeholder: '-', width: 170, defaultValue: storageGroupsGroupByParam ? [storageGroupsGroupByParam] : undefined, onUpdate: handleGroupBySelectUpdate, options: STORAGE_GROUPS_GROUP_BY_OPTIONS })] })) : null] }));
20
+ }
21
+ export function StorageNodesControls({ withTypeSelector, withGroupBySelect, entitiesCountCurrent, entitiesCountTotal, entitiesLoading, columnsToSelect, handleSelectedColumnsUpdate, }) {
22
+ const { searchValue, storageType, visibleEntities, nodesUptimeFilter, storageNodesGroupByParam, handleTextFilterChange, handleStorageTypeChange, handleVisibleEntitiesChange, handleUptimeFilterChange, handleStorageNodesGroupByParamChange, } = useStorageQueryParams();
23
+ const handleGroupBySelectUpdate = (value) => {
24
+ handleStorageNodesGroupByParamChange(value[0]);
25
+ };
26
+ return (_jsxs(React.Fragment, { children: [_jsx(Search, { value: searchValue, onChange: handleTextFilterChange, placeholder: i18n('controls_nodes-search-placeholder'), className: b('search') }), withTypeSelector && (_jsx(StorageTypeFilter, { value: storageType, onChange: handleStorageTypeChange })), withGroupBySelect ? null : (_jsx(StorageVisibleEntitiesFilter, { value: visibleEntities, onChange: handleVisibleEntitiesChange })), withGroupBySelect ? null : (_jsx(UptimeFilter, { value: nodesUptimeFilter, onChange: handleUptimeFilterChange })), _jsx(EntitiesCount, { label: i18n('nodes'), loading: entitiesLoading, total: entitiesCountTotal, current: entitiesCountCurrent }), _jsx(TableColumnSetup, { popupWidth: 200, items: columnsToSelect, showStatus: true, onUpdate: handleSelectedColumnsUpdate, sortable: false }), withGroupBySelect ? (_jsxs(React.Fragment, { children: [_jsx(Text, { variant: "body-2", children: i18n('controls_group-by-placeholder') }), _jsx(Select, { hasClear: true, placeholder: '-', width: 170, defaultValue: storageNodesGroupByParam ? [storageNodesGroupByParam] : undefined, onUpdate: handleGroupBySelectUpdate, options: STORAGE_NODES_GROUP_BY_OPTIONS })] })) : null] }));
27
+ }
21
28
  //# sourceMappingURL=StorageControls.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageControls.js","sourceRoot":"","sources":["../../../../src/containers/Storage/StorageControls/StorageControls.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAC,aAAa,EAAC,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAC,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAC,aAAa,EAAC,MAAM,2CAA2C,CAAC;AAGxE,OAAO,EAAC,iBAAiB,EAAC,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAC,4BAA4B,EAAC,MAAM,8DAA8D,CAAC;AAC1G,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAEvD,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAC,CAAC,EAAC,MAAM,WAAW,CAAC;AA6B5B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC5B,WAAW,EACX,uBAAuB,EAEvB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EAEvB,eAAe,EACf,2BAA2B,EAE3B,iBAAiB,EACjB,6BAA6B,EAE7B,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAE7B,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EAEf,eAAe,EACf,2BAA2B,GACR,EAAE,EAAE;IACvB,MAAM,OAAO,GAAG,WAAW,KAAK,aAAa,CAAC,KAAK,CAAC;IACpD,MAAM,QAAQ,GAAG,WAAW,KAAK,aAAa,CAAC,MAAM,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE5D,OAAO,CACH,MAAC,KAAK,CAAC,QAAQ,eACX,KAAC,MAAM,IACH,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,uBAAuB,EACjC,WAAW,EACP,OAAO;oBACH,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC;oBAC3C,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,EAEpD,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,GACxB,EACD,gBAAgB,IAAI,CACjB,KAAC,iBAAiB,IAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,uBAAuB,GAAI,CAC/E,EACD,KAAC,4BAA4B,IACzB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,2BAA2B,GACvC,EAED,OAAO,IAAI,CACR,KAAC,YAAY,IAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,6BAA6B,GAAI,CACtF,EACA,QAAQ,IAAI,qBAAqB,IAAI,CAClC,KAAC,WAAW,IACR,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,6BAA6B,EACvC,MAAM,EAAE,wBAAwB,GAClC,CACL,EAED,KAAC,aAAa,IACV,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,oBAAoB,GAC/B,EACF,KAAC,gBAAgB,IACb,UAAU,EAAE,GAAG,EACf,KAAK,EAAE,eAAe,EACtB,UAAU,QACV,QAAQ,EAAE,2BAA2B,EACrC,QAAQ,EAAE,KAAK,GACjB,IACW,CACpB,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"StorageControls.js","sourceRoot":"","sources":["../../../../src/containers/Storage/StorageControls/StorageControls.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { RenderControls, RenderErrorMessage } from '../../../components/PaginatedTable';
2
+ import type { VisibleEntities } from '../../../store/reducers/storage/types';
3
+ import type { GroupsGroupByField } from '../../../types/api/storage';
4
+ import type { StorageGroupsColumn } from './columns/types';
5
+ interface PaginatedStorageGroupsTableProps {
6
+ columns: StorageGroupsColumn[];
7
+ database?: string;
8
+ nodeId?: string | number;
9
+ groupId?: string | number;
10
+ pDiskId?: string | number;
11
+ filterGroup?: string;
12
+ filterGroupBy?: GroupsGroupByField;
13
+ searchValue: string;
14
+ visibleEntities: VisibleEntities;
15
+ onShowAll: VoidFunction;
16
+ parentContainer?: Element | null;
17
+ renderControls?: RenderControls;
18
+ renderErrorMessage: RenderErrorMessage;
19
+ initialEntitiesCount?: number;
20
+ }
21
+ export declare const PaginatedStorageGroupsTable: ({ columns, database, nodeId, groupId, pDiskId, filterGroup, filterGroupBy, searchValue, visibleEntities, onShowAll, parentContainer, renderControls, renderErrorMessage, initialEntitiesCount, }: PaginatedStorageGroupsTableProps) => import("react/jsx-runtime").JSX.Element;
22
+ export {};
@@ -8,19 +8,37 @@ import { StorageGroupsEmptyDataMessage } from './StorageGroupsEmptyDataMessage';
8
8
  import { STORAGE_GROUPS_COLUMNS_WIDTH_LS_KEY } from './columns/constants';
9
9
  import { useGroupsGetter } from './getGroups';
10
10
  import i18n from './i18n';
11
- export const PaginatedStorageGroups = ({ columns, searchValue, visibleEntities, database, nodeId, onShowAll, parentContainer, renderControls, renderErrorMessage, }) => {
11
+ export const PaginatedStorageGroupsTable = ({ columns, database, nodeId, groupId, pDiskId, filterGroup, filterGroupBy, searchValue, visibleEntities, onShowAll, parentContainer, renderControls, renderErrorMessage, initialEntitiesCount, }) => {
12
12
  const capabilitiesLoaded = useCapabilitiesLoaded();
13
13
  const groupsHandlerAvailable = useStorageGroupsHandlerAvailable();
14
14
  const fetchData = useGroupsGetter(groupsHandlerAvailable);
15
15
  const tableFilters = React.useMemo(() => {
16
- return { searchValue, visibleEntities, database, nodeId };
17
- }, [searchValue, visibleEntities, database, nodeId]);
16
+ return {
17
+ searchValue,
18
+ visibleEntities,
19
+ database,
20
+ nodeId,
21
+ groupId,
22
+ pDiskId,
23
+ filterGroup,
24
+ filterGroupBy,
25
+ };
26
+ }, [
27
+ searchValue,
28
+ visibleEntities,
29
+ database,
30
+ nodeId,
31
+ groupId,
32
+ pDiskId,
33
+ filterGroup,
34
+ filterGroupBy,
35
+ ]);
18
36
  const renderEmptyDataMessage = () => {
19
37
  if (visibleEntities !== VISIBLE_ENTITIES.all) {
20
38
  return (_jsx(StorageGroupsEmptyDataMessage, { onShowAll: onShowAll, visibleEntities: visibleEntities }));
21
39
  }
22
40
  return i18n('empty.default');
23
41
  };
24
- return (_jsx(LoaderWrapper, { loading: !capabilitiesLoaded, children: _jsx(ResizeablePaginatedTable, { columnsWidthLSKey: STORAGE_GROUPS_COLUMNS_WIDTH_LS_KEY, parentContainer: parentContainer, columns: columns, fetchData: fetchData, limit: 50, renderControls: renderControls, renderErrorMessage: renderErrorMessage, renderEmptyDataMessage: renderEmptyDataMessage, filters: tableFilters, tableName: "storage-groups" }) }));
42
+ return (_jsx(LoaderWrapper, { loading: !capabilitiesLoaded, children: _jsx(ResizeablePaginatedTable, { columnsWidthLSKey: STORAGE_GROUPS_COLUMNS_WIDTH_LS_KEY, parentContainer: parentContainer, columns: columns, fetchData: fetchData, limit: 50, initialEntitiesCount: initialEntitiesCount, renderControls: renderControls, renderErrorMessage: renderErrorMessage, renderEmptyDataMessage: renderEmptyDataMessage, filters: tableFilters, tableName: "storage-groups" }) }));
25
43
  };
26
- //# sourceMappingURL=PaginatedStorageGroups.js.map
44
+ //# sourceMappingURL=PaginatedStorageGroupsTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaginatedStorageGroupsTable.js","sourceRoot":"","sources":["../../../../src/containers/Storage/StorageGroups/PaginatedStorageGroupsTable.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,aAAa,EAAC,MAAM,iDAAiD,CAAC;AAE9E,OAAO,EAAC,wBAAwB,EAAC,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EACH,qBAAqB,EACrB,gCAAgC,GACnC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2CAA2C,CAAC;AAI3E,OAAO,EAAC,6BAA6B,EAAC,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAC,mCAAmC,EAAC,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAuB1B,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EACxC,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACW,EAAE,EAAE;IACnC,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,MAAM,sBAAsB,GAAG,gCAAgC,EAAE,CAAC;IAElE,MAAM,SAAS,GAAG,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAE1D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO;YACH,WAAW;YACX,eAAe;YACf,QAAQ;YACR,MAAM;YACN,OAAO;YACP,OAAO;YACP,WAAW;YACX,aAAa;SAChB,CAAC;IACN,CAAC,EAAE;QACC,WAAW;QACX,eAAe;QACf,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,WAAW;QACX,aAAa;KAChB,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAChC,IAAI,eAAe,KAAK,gBAAgB,CAAC,GAAG,EAAE,CAAC;YAC3C,OAAO,CACH,KAAC,6BAA6B,IAC1B,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,GAClC,CACL,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,aAAa,IAAC,OAAO,EAAE,CAAC,kBAAkB,YACvC,KAAC,wBAAwB,IACrB,iBAAiB,EAAE,mCAAmC,EACtD,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,EACT,oBAAoB,EAAE,oBAAoB,EAC1C,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,kBAAkB,EACtC,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,YAAY,EACrB,SAAS,EAAC,gBAAgB,GAC5B,GACU,CACnB,CAAC;AACN,CAAC,CAAC"}
@@ -1,15 +1,14 @@
1
- import type { Settings, SortOrder } from '@gravity-ui/react-data-table';
1
+ import type { SortOrder } from '@gravity-ui/react-data-table';
2
2
  import type { PreparedStorageGroup, VisibleEntities } from '../../../store/reducers/storage/types';
3
3
  import type { HandleSort } from '../../../utils/hooks/useTableSort';
4
4
  import type { StorageGroupsColumn } from './columns/types';
5
- interface StorageGroupsProps {
5
+ interface StorageGroupsTableProps {
6
6
  data: PreparedStorageGroup[];
7
7
  columns: StorageGroupsColumn[];
8
- tableSettings: Settings;
9
8
  visibleEntities: VisibleEntities;
10
9
  onShowAll?: VoidFunction;
11
10
  sort?: SortOrder;
12
11
  handleSort?: HandleSort;
13
12
  }
14
- export declare function StorageGroups({ data, columns, tableSettings, visibleEntities, onShowAll, sort, handleSort, }: StorageGroupsProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function StorageGroupsTable({ data, columns, visibleEntities, onShowAll, sort, handleSort, }: StorageGroupsTableProps): import("react/jsx-runtime").JSX.Element;
15
14
  export {};
@@ -1,13 +1,14 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { ResizeableDataTable } from '../../../components/ResizeableDataTable/ResizeableDataTable';
3
3
  import { VISIBLE_ENTITIES } from '../../../store/reducers/storage/constants';
4
+ import { DEFAULT_TABLE_SETTINGS } from '../../../utils/constants';
4
5
  import { StorageGroupsEmptyDataMessage } from './StorageGroupsEmptyDataMessage';
5
6
  import { STORAGE_GROUPS_COLUMNS_WIDTH_LS_KEY } from './columns/constants';
6
7
  import i18n from './i18n';
7
- export function StorageGroups({ data, columns, tableSettings, visibleEntities, onShowAll, sort, handleSort, }) {
8
+ export function StorageGroupsTable({ data, columns, visibleEntities, onShowAll, sort, handleSort, }) {
8
9
  if (!data.length && visibleEntities !== VISIBLE_ENTITIES.all) {
9
10
  return (_jsx(StorageGroupsEmptyDataMessage, { onShowAll: onShowAll, visibleEntities: visibleEntities }));
10
11
  }
11
- return (_jsx(ResizeableDataTable, { columnsWidthLSKey: STORAGE_GROUPS_COLUMNS_WIDTH_LS_KEY, data: data, columns: columns, settings: tableSettings, emptyDataMessage: i18n('empty.default'), sortOrder: sort, onSort: handleSort }, visibleEntities));
12
+ return (_jsx(ResizeableDataTable, { columnsWidthLSKey: STORAGE_GROUPS_COLUMNS_WIDTH_LS_KEY, data: data, columns: columns, settings: DEFAULT_TABLE_SETTINGS, emptyDataMessage: i18n('empty.default'), sortOrder: sort, onSort: handleSort }, visibleEntities));
12
13
  }
13
- //# sourceMappingURL=StorageGroups.js.map
14
+ //# sourceMappingURL=StorageGroupsTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageGroupsTable.js","sourceRoot":"","sources":["../../../../src/containers/Storage/StorageGroups/StorageGroupsTable.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,mBAAmB,EAAC,MAAM,6DAA6D,CAAC;AAChG,OAAO,EAAC,gBAAgB,EAAC,MAAM,2CAA2C,CAAC;AAE3E,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAC,6BAA6B,EAAC,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAC,mCAAmC,EAAC,MAAM,qBAAqB,CAAC;AAExE,OAAO,IAAI,MAAM,QAAQ,CAAC;AAW1B,MAAM,UAAU,kBAAkB,CAAC,EAC/B,IAAI,EACJ,OAAO,EACP,eAAe,EACf,SAAS,EACT,IAAI,EACJ,UAAU,GACY;IACtB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,KAAK,gBAAgB,CAAC,GAAG,EAAE,CAAC;QAC3D,OAAO,CACH,KAAC,6BAA6B,IAC1B,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,GAClC,CACL,CAAC;IACN,CAAC;IAED,OAAO,CACH,KAAC,mBAAmB,IAChB,iBAAiB,EAAE,mCAAmC,EAEtD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,sBAAsB,EAChC,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,EACvC,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,UAAU,IANb,eAAe,CAOtB,CACL,CAAC;AACN,CAAC"}
@@ -9,12 +9,15 @@ import { InternalLink } from '../../../../components/InternalLink';
9
9
  import { UsageLabel } from '../../../../components/UsageLabel/UsageLabel';
10
10
  import { VDiskWithDonorsStack } from '../../../../components/VDisk/VDiskWithDonorsStack';
11
11
  import { getStorageGroupPath } from '../../../../routes';
12
+ import { valueIsDefined } from '../../../../utils';
12
13
  import { cn } from '../../../../utils/cn';
13
- import { stringifyVdiskId } from '../../../../utils/dataFormatters/dataFormatters';
14
+ import { EMPTY_DATA_PLACEHOLDER } from '../../../../utils/constants';
15
+ import { formatNumber, stringifyVdiskId } from '../../../../utils/dataFormatters/dataFormatters';
14
16
  import { isSortableStorageProperty } from '../../../../utils/storage';
17
+ import { formatToMs, parseUsToMs } from '../../../../utils/timeParsers';
15
18
  import { bytesToGB, bytesToSpeed } from '../../../../utils/utils';
16
19
  import { Disks } from '../../Disks/Disks';
17
- import { getDegradedSeverity, getUsageSeverityForStorageGroup } from '../../utils';
20
+ import { getDegradedSeverity, getUsageSeverityForStorageGroup, isVdiskActive } from '../../utils';
18
21
  import i18n from '../i18n';
19
22
  import { STORAGE_GROUPS_COLUMNS_IDS, STORAGE_GROUPS_COLUMNS_TITLES } from './constants';
20
23
  import './StorageGroupsColumns.scss';
@@ -125,27 +128,47 @@ const writeColumn = {
125
128
  },
126
129
  align: DataTable.RIGHT,
127
130
  };
128
- const getVDisksColumn = (nodes) => ({
131
+ const latencyColumn = {
132
+ name: STORAGE_GROUPS_COLUMNS_IDS.Latency,
133
+ header: STORAGE_GROUPS_COLUMNS_TITLES.Latency,
134
+ width: 100,
135
+ render: ({ row }) => {
136
+ return valueIsDefined(row.LatencyPutTabletLogMs)
137
+ ? formatToMs(parseUsToMs(row.LatencyPutTabletLogMs))
138
+ : EMPTY_DATA_PLACEHOLDER;
139
+ },
140
+ align: DataTable.RIGHT,
141
+ };
142
+ const allocationUnitsColumn = {
143
+ name: STORAGE_GROUPS_COLUMNS_IDS.AllocationUnits,
144
+ header: STORAGE_GROUPS_COLUMNS_TITLES.AllocationUnits,
145
+ width: 150,
146
+ render: ({ row }) => {
147
+ return valueIsDefined(row.AllocationUnits)
148
+ ? formatNumber(row.AllocationUnits)
149
+ : EMPTY_DATA_PLACEHOLDER;
150
+ },
151
+ align: DataTable.RIGHT,
152
+ };
153
+ const getVDisksColumn = (data) => ({
129
154
  name: STORAGE_GROUPS_COLUMNS_IDS.VDisks,
130
155
  header: STORAGE_GROUPS_COLUMNS_TITLES.VDisks,
131
156
  className: b('vdisks-column'),
132
157
  render: ({ row }) => {
133
158
  var _a;
134
- return (_jsx("div", { className: b('vdisks-wrapper'), children: (_a = row.VDisks) === null || _a === void 0 ? void 0 : _a.map((vDisk) => {
135
- return (_jsx(VDiskWithDonorsStack, { data: vDisk, nodes: nodes, className: b('vdisks-item') }, stringifyVdiskId(vDisk.VDiskId)));
136
- }) }));
159
+ return (_jsx("div", { className: b('vdisks-wrapper'), children: (_a = row.VDisks) === null || _a === void 0 ? void 0 : _a.map((vDisk) => (_jsx(VDiskWithDonorsStack, { data: vDisk, inactive: !isVdiskActive(vDisk, data), className: b('vdisks-item') }, stringifyVdiskId(vDisk.VDiskId)))) }));
137
160
  },
138
161
  align: DataTable.CENTER,
139
162
  width: 900,
140
163
  resizeable: false,
141
164
  sortable: false,
142
165
  });
143
- const getDisksColumn = (nodes) => ({
166
+ const getDisksColumn = (data) => ({
144
167
  name: STORAGE_GROUPS_COLUMNS_IDS.VDisksPDisks,
145
168
  header: STORAGE_GROUPS_COLUMNS_TITLES.VDisksPDisks,
146
169
  className: b('disks-column'),
147
170
  render: ({ row }) => {
148
- return _jsx(Disks, { vDisks: row.VDisks, nodes: nodes });
171
+ return _jsx(Disks, { vDisks: row.VDisks, viewContext: data });
149
172
  },
150
173
  align: DataTable.CENTER,
151
174
  width: 900,
@@ -181,8 +204,10 @@ export const getStorageGroupsColumns = (data) => {
181
204
  usedSpaceFlagColumn,
182
205
  readColumn,
183
206
  writeColumn,
184
- getVDisksColumn(data === null || data === void 0 ? void 0 : data.nodes),
185
- getDisksColumn(data === null || data === void 0 ? void 0 : data.nodes),
207
+ latencyColumn,
208
+ allocationUnitsColumn,
209
+ getVDisksColumn(data),
210
+ getDisksColumn(data),
186
211
  ];
187
212
  return columns.map((column) => ({
188
213
  ...column,