ydb-embedded-ui 8.25.0 → 8.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/dist/assets/icons/overview.svg +1 -0
  2. package/dist/components/CopyLinkButton/CopyLinkButton.d.ts +6 -0
  3. package/dist/components/CopyLinkButton/CopyLinkButton.js +33 -0
  4. package/dist/components/CopyLinkButton/CopyLinkButton.js.map +1 -0
  5. package/dist/components/CopyLinkButton/CopyLinkButton.scss +6 -0
  6. package/dist/components/CopyLinkButton/i18n/en.json +4 -0
  7. package/dist/components/CopyLinkButton/i18n/index.d.ts +2 -0
  8. package/dist/components/CopyLinkButton/i18n/index.js +5 -0
  9. package/dist/components/CopyLinkButton/i18n/index.js.map +1 -0
  10. package/dist/components/DebouncedInput/DebouncedTextInput.d.ts +6 -0
  11. package/dist/components/DebouncedInput/DebouncedTextInput.js +8 -0
  12. package/dist/components/DebouncedInput/DebouncedTextInput.js.map +1 -0
  13. package/dist/components/DoughnutMetrics/DoughnutMetrics.d.ts +3 -1
  14. package/dist/components/DoughnutMetrics/DoughnutMetrics.js +13 -12
  15. package/dist/components/DoughnutMetrics/DoughnutMetrics.js.map +1 -1
  16. package/dist/components/DoughnutMetrics/DoughnutMetrics.scss +14 -7
  17. package/dist/components/Drawer/Drawer.d.ts +30 -0
  18. package/dist/components/Drawer/Drawer.js +83 -0
  19. package/dist/components/Drawer/Drawer.js.map +1 -0
  20. package/dist/components/Drawer/Drawer.scss +38 -0
  21. package/dist/components/Drawer/DrawerContext.d.ts +13 -0
  22. package/dist/components/Drawer/DrawerContext.js +47 -0
  23. package/dist/components/Drawer/DrawerContext.js.map +1 -0
  24. package/dist/components/Drawer/index.d.ts +3 -0
  25. package/dist/components/Drawer/index.js +3 -0
  26. package/dist/components/Drawer/index.js.map +1 -0
  27. package/dist/components/EmptyState/EmptyState.scss +3 -0
  28. package/dist/components/EntityStatusNew/EntityStatus.d.ts +23 -0
  29. package/dist/components/EntityStatusNew/EntityStatus.js +47 -0
  30. package/dist/components/EntityStatusNew/EntityStatus.js.map +1 -0
  31. package/dist/components/EntityStatusNew/EntityStatus.scss +10 -0
  32. package/dist/components/EntityStatusNew/i18n/en.json +14 -0
  33. package/dist/components/EntityStatusNew/i18n/index.d.ts +2 -0
  34. package/dist/components/EntityStatusNew/i18n/index.js +5 -0
  35. package/dist/components/EntityStatusNew/i18n/index.js.map +1 -0
  36. package/dist/components/EntityStatusNew/utils.d.ts +2 -0
  37. package/dist/components/EntityStatusNew/utils.js +23 -0
  38. package/dist/components/EntityStatusNew/utils.js.map +1 -0
  39. package/dist/components/JsonViewer/JsonViewer.d.ts +7 -3
  40. package/dist/components/JsonViewer/JsonViewer.js +11 -1
  41. package/dist/components/JsonViewer/JsonViewer.js.map +1 -1
  42. package/dist/components/JsonViewer/unipika/unipika.js +9 -1
  43. package/dist/components/JsonViewer/unipika/unipika.js.map +1 -1
  44. package/dist/components/MetricChart/getDefaultDataFormatter.js +4 -11
  45. package/dist/components/MetricChart/getDefaultDataFormatter.js.map +1 -1
  46. package/dist/components/MultilineTableHeader/MultilineTableHeader.d.ts +6 -0
  47. package/dist/components/MultilineTableHeader/MultilineTableHeader.js +11 -0
  48. package/dist/components/MultilineTableHeader/MultilineTableHeader.js.map +1 -0
  49. package/dist/components/MultilineTableHeader/MultilineTableHeader.scss +3 -0
  50. package/dist/components/PaginatedTable/PaginatedTable.d.ts +4 -2
  51. package/dist/components/PaginatedTable/PaginatedTable.js +16 -8
  52. package/dist/components/PaginatedTable/PaginatedTable.js.map +1 -1
  53. package/dist/components/PaginatedTable/PaginatedTable.scss +32 -13
  54. package/dist/components/PaginatedTable/TableChunk.d.ts +4 -3
  55. package/dist/components/PaginatedTable/TableChunk.js +8 -3
  56. package/dist/components/PaginatedTable/TableChunk.js.map +1 -1
  57. package/dist/components/PaginatedTable/TableHead.js +7 -1
  58. package/dist/components/PaginatedTable/TableHead.js.map +1 -1
  59. package/dist/components/PaginatedTable/types.d.ts +1 -0
  60. package/dist/components/PaginatedTable/useScrollBasedChunks.js +7 -0
  61. package/dist/components/PaginatedTable/useScrollBasedChunks.js.map +1 -1
  62. package/dist/components/Search/Search.d.ts +2 -1
  63. package/dist/components/Search/Search.js +3 -21
  64. package/dist/components/Search/Search.js.map +1 -1
  65. package/dist/components/StatusIcon/StatusIcon.js +3 -1
  66. package/dist/components/StatusIcon/StatusIcon.js.map +1 -1
  67. package/dist/components/StatusIcon/StatusIcon.scss +6 -0
  68. package/dist/components/StatusIconNew/StatusIcon.d.ts +7 -0
  69. package/dist/components/StatusIconNew/StatusIcon.js +19 -0
  70. package/dist/components/StatusIconNew/StatusIcon.js.map +1 -0
  71. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js +12 -1
  72. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js.map +1 -1
  73. package/dist/components/Tags/Tags.d.ts +1 -3
  74. package/dist/components/Tags/Tags.js +3 -5
  75. package/dist/components/Tags/Tags.js.map +1 -1
  76. package/dist/components/nodesColumns/columns.js +1 -0
  77. package/dist/components/nodesColumns/columns.js.map +1 -1
  78. package/dist/containers/Cluster/Cluster.js +8 -6
  79. package/dist/containers/Cluster/Cluster.js.map +1 -1
  80. package/dist/containers/Cluster/Cluster.scss +7 -8
  81. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.d.ts +4 -2
  82. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +27 -17
  83. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
  84. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.scss +2 -8
  85. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.d.ts +8 -0
  86. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.js +41 -0
  87. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.js.map +1 -0
  88. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.scss +14 -0
  89. package/dist/containers/Cluster/ClusterInfo/utils/utils.d.ts +3 -0
  90. package/dist/containers/Cluster/ClusterInfo/utils/utils.js +21 -11
  91. package/dist/containers/Cluster/ClusterInfo/utils/utils.js.map +1 -1
  92. package/dist/containers/Cluster/{ClusterDashboard/ClusterDashboard.d.ts → ClusterOverview/ClusterOverview.d.ts} +6 -3
  93. package/dist/containers/Cluster/ClusterOverview/ClusterOverview.js +63 -0
  94. package/dist/containers/Cluster/ClusterOverview/ClusterOverview.js.map +1 -0
  95. package/dist/containers/Cluster/ClusterOverview/ClusterOverview.scss +70 -0
  96. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.d.ts +21 -0
  97. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js +32 -0
  98. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js.map +1 -0
  99. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.d.ts +5 -0
  100. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js +30 -0
  101. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js.map +1 -0
  102. package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/components/ClusterMetricsMemory.d.ts +1 -1
  103. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js +24 -0
  104. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js.map +1 -0
  105. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.d.ts +7 -0
  106. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js +28 -0
  107. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js.map +1 -0
  108. package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/components/ClusterMetricsStorage.d.ts +2 -1
  109. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js +24 -0
  110. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js.map +1 -0
  111. package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/shared.d.ts +6 -3
  112. package/dist/containers/Cluster/ClusterOverview/shared.js.map +1 -0
  113. package/dist/containers/Cluster/ClusterOverview/utils.d.ts +19 -0
  114. package/dist/containers/Cluster/ClusterOverview/utils.js +32 -0
  115. package/dist/containers/Cluster/ClusterOverview/utils.js.map +1 -0
  116. package/dist/containers/Cluster/i18n/en.json +19 -9
  117. package/dist/containers/Cluster/i18n/index.d.ts +1 -1
  118. package/dist/containers/Cluster/utils.d.ts +2 -4
  119. package/dist/containers/Cluster/utils.js +9 -6
  120. package/dist/containers/Cluster/utils.js.map +1 -1
  121. package/dist/containers/Header/breadcrumbs.js +1 -4
  122. package/dist/containers/Header/breadcrumbs.js.map +1 -1
  123. package/dist/containers/Nodes/NodesTable.js +2 -1
  124. package/dist/containers/Nodes/NodesTable.js.map +1 -1
  125. package/dist/containers/Nodes/shared.d.ts +1 -2
  126. package/dist/containers/Nodes/shared.js +0 -9
  127. package/dist/containers/Nodes/shared.js.map +1 -1
  128. package/dist/containers/Storage/EmptyFilter/EmptyFilter.d.ts +2 -1
  129. package/dist/containers/Storage/EmptyFilter/EmptyFilter.js +1 -1
  130. package/dist/containers/Storage/EmptyFilter/EmptyFilter.js.map +1 -1
  131. package/dist/containers/Storage/PDisk/PDisk.d.ts +2 -1
  132. package/dist/containers/Storage/PDisk/PDisk.js +2 -2
  133. package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
  134. package/dist/containers/Storage/PDisk/PDisk.scss +5 -1
  135. package/dist/containers/Storage/PaginatedStorageGroups.js +2 -1
  136. package/dist/containers/Storage/PaginatedStorageGroups.js.map +1 -1
  137. package/dist/containers/Storage/PaginatedStorageNodes.js +19 -5
  138. package/dist/containers/Storage/PaginatedStorageNodes.js.map +1 -1
  139. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.d.ts +4 -3
  140. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.js +2 -2
  141. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.js.map +1 -1
  142. package/dist/containers/Storage/StorageNodes/columns/StorageNodesColumns.scss +1 -4
  143. package/dist/containers/Storage/StorageNodes/columns/columns.d.ts +1 -1
  144. package/dist/containers/Storage/StorageNodes/columns/columns.js +6 -11
  145. package/dist/containers/Storage/StorageNodes/columns/columns.js.map +1 -1
  146. package/dist/containers/Storage/StorageNodes/columns/hooks.d.ts +1 -1
  147. package/dist/containers/Storage/StorageNodes/columns/hooks.js +8 -3
  148. package/dist/containers/Storage/StorageNodes/columns/hooks.js.map +1 -1
  149. package/dist/containers/Storage/StorageNodes/columns/types.d.ts +5 -0
  150. package/dist/containers/Storage/StorageNodes/getNodes.js +1 -0
  151. package/dist/containers/Storage/StorageNodes/getNodes.js.map +1 -1
  152. package/dist/containers/Storage/shared.d.ts +0 -2
  153. package/dist/containers/Storage/shared.js +0 -9
  154. package/dist/containers/Storage/shared.js.map +1 -1
  155. package/dist/containers/Storage/types.d.ts +8 -0
  156. package/dist/containers/Storage/utils/index.d.ts +1 -0
  157. package/dist/containers/Storage/utils/index.js +1 -0
  158. package/dist/containers/Storage/utils/index.js.map +1 -1
  159. package/dist/containers/Storage/utils/useStorageColumnsSettings.d.ts +6 -0
  160. package/dist/containers/Storage/utils/useStorageColumnsSettings.js +35 -0
  161. package/dist/containers/Storage/utils/useStorageColumnsSettings.js.map +1 -0
  162. package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -1
  163. package/dist/containers/Tenant/Diagnostics/Diagnostics.js +16 -17
  164. package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
  165. package/dist/containers/Tenant/Diagnostics/Diagnostics.scss +8 -2
  166. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +6 -33
  167. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +40 -6
  168. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
  169. package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.d.ts +0 -5
  170. package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.js +0 -1
  171. package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.js.map +1 -1
  172. package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.scss +0 -4
  173. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js +2 -1
  174. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js.map +1 -1
  175. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.scss +1 -15
  176. package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js +24 -10
  177. package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js.map +1 -1
  178. package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js +2 -1
  179. package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js.map +1 -1
  180. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js +3 -1
  181. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js.map +1 -1
  182. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/columns.js +7 -1
  183. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/columns.js.map +1 -1
  184. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/constants.js +1 -0
  185. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/constants.js.map +1 -1
  186. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.d.ts +9 -0
  187. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.js +37 -0
  188. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.js.map +1 -0
  189. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.d.ts +10 -0
  190. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.js +50 -0
  191. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.js.map +1 -0
  192. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.d.ts +9 -0
  193. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.js +40 -0
  194. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.js.map +1 -0
  195. package/dist/containers/Tenant/Diagnostics/TopQueries/utils.d.ts +0 -10
  196. package/dist/containers/Tenant/Diagnostics/TopQueries/utils.js +0 -29
  197. package/dist/containers/Tenant/Diagnostics/TopQueries/utils.js.map +1 -1
  198. package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.d.ts +7 -0
  199. package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.js +14 -0
  200. package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.js.map +1 -0
  201. package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.d.ts +9 -0
  202. package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js +140 -0
  203. package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js.map +1 -0
  204. package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.scss +28 -0
  205. package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.d.ts +14 -0
  206. package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.js +68 -0
  207. package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.js.map +1 -0
  208. package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.d.ts +1 -0
  209. package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.js +122 -0
  210. package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.js.map +1 -0
  211. package/dist/containers/Tenant/Diagnostics/TopicData/columns/Columns.scss +22 -0
  212. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.d.ts +7 -0
  213. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +154 -0
  214. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -0
  215. package/dist/containers/Tenant/Diagnostics/TopicData/getData.d.ts +15 -0
  216. package/dist/containers/Tenant/Diagnostics/TopicData/getData.js +54 -0
  217. package/dist/containers/Tenant/Diagnostics/TopicData/getData.js.map +1 -0
  218. package/dist/containers/Tenant/Diagnostics/TopicData/i18n/en.json +28 -0
  219. package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.d.ts +2 -0
  220. package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.js +5 -0
  221. package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.js.map +1 -0
  222. package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.d.ts +11 -0
  223. package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.js +34 -0
  224. package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.js.map +1 -0
  225. package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.d.ts +7 -0
  226. package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.js +51 -0
  227. package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.js.map +1 -0
  228. package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.d.ts +30 -0
  229. package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.js +30 -0
  230. package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.js.map +1 -0
  231. package/dist/containers/Tenant/ObjectSummary/ObjectTree.js +8 -2
  232. package/dist/containers/Tenant/ObjectSummary/ObjectTree.js.map +1 -1
  233. package/dist/containers/Tenant/TenantPages.d.ts +2 -1
  234. package/dist/containers/Tenant/TenantPages.js.map +1 -1
  235. package/dist/containers/Tenant/utils/schema.d.ts +1 -0
  236. package/dist/containers/Tenant/utils/schema.js +1 -0
  237. package/dist/containers/Tenant/utils/schema.js.map +1 -1
  238. package/dist/containers/Tenants/Tenants.js +1 -1
  239. package/dist/containers/Tenants/Tenants.js.map +1 -1
  240. package/dist/containers/Tenants/Tenants.scss +0 -4
  241. package/dist/containers/UserSettings/i18n/en.json +1 -0
  242. package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
  243. package/dist/containers/UserSettings/settings.d.ts +1 -0
  244. package/dist/containers/UserSettings/settings.js +11 -2
  245. package/dist/containers/UserSettings/settings.js.map +1 -1
  246. package/dist/services/api/viewer.d.ts +2 -1
  247. package/dist/services/api/viewer.js +6 -0
  248. package/dist/services/api/viewer.js.map +1 -1
  249. package/dist/services/settings.d.ts +2 -0
  250. package/dist/services/settings.js +3 -1
  251. package/dist/services/settings.js.map +1 -1
  252. package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
  253. package/dist/store/reducers/capabilities/hooks.js +3 -0
  254. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  255. package/dist/store/reducers/cluster/cluster.js +1 -1
  256. package/dist/store/reducers/cluster/cluster.js.map +1 -1
  257. package/dist/store/reducers/executeTopQueries/executeTopQueries.js +4 -2
  258. package/dist/store/reducers/executeTopQueries/executeTopQueries.js.map +1 -1
  259. package/dist/store/reducers/storage/types.d.ts +6 -2
  260. package/dist/store/reducers/storage/utils.d.ts +2 -2
  261. package/dist/store/reducers/storage/utils.js +10 -9
  262. package/dist/store/reducers/storage/utils.js.map +1 -1
  263. package/dist/store/reducers/tenant/constants.d.ts +1 -0
  264. package/dist/store/reducers/tenant/constants.js +1 -0
  265. package/dist/store/reducers/tenant/constants.js.map +1 -1
  266. package/dist/store/reducers/topic.d.ts +12 -0
  267. package/dist/store/reducers/topic.js +16 -0
  268. package/dist/store/reducers/topic.js.map +1 -1
  269. package/dist/styles/mixins.scss +0 -20
  270. package/dist/types/api/capabilities.d.ts +1 -1
  271. package/dist/types/api/cluster.d.ts +8 -1
  272. package/dist/types/api/cluster.js +7 -3
  273. package/dist/types/api/cluster.js.map +1 -1
  274. package/dist/types/api/topic.d.ts +117 -0
  275. package/dist/utils/constants.d.ts +2 -0
  276. package/dist/utils/constants.js +2 -0
  277. package/dist/utils/constants.js.map +1 -1
  278. package/dist/utils/dataFormatters/dataFormatters.js +1 -1
  279. package/dist/utils/dataFormatters/dataFormatters.js.map +1 -1
  280. package/dist/utils/hooks/useDebouncedValue.d.ts +5 -0
  281. package/dist/utils/hooks/useDebouncedValue.js +22 -0
  282. package/dist/utils/hooks/useDebouncedValue.js.map +1 -0
  283. package/dist/utils/renderPaginatedTableErrorMessage.d.ts +2 -0
  284. package/dist/utils/renderPaginatedTableErrorMessage.js +10 -0
  285. package/dist/utils/renderPaginatedTableErrorMessage.js.map +1 -0
  286. package/dist/utils/utils.d.ts +1 -0
  287. package/dist/utils/utils.js +7 -0
  288. package/dist/utils/utils.js.map +1 -1
  289. package/package.json +1 -1
  290. package/dist/assets/icons/user-check.svg +0 -1
  291. package/dist/components/Tag/Tag.d.ts +0 -9
  292. package/dist/components/Tag/Tag.js +0 -8
  293. package/dist/components/Tag/Tag.js.map +0 -1
  294. package/dist/components/Tag/Tag.scss +0 -18
  295. package/dist/components/Tag/index.d.ts +0 -1
  296. package/dist/components/Tag/index.js +0 -2
  297. package/dist/components/Tag/index.js.map +0 -1
  298. package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.js +0 -71
  299. package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.js.map +0 -1
  300. package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.scss +0 -52
  301. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.d.ts +0 -17
  302. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.js +0 -20
  303. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.js.map +0 -1
  304. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.d.ts +0 -5
  305. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.js +0 -26
  306. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.js.map +0 -1
  307. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsMemory.js +0 -20
  308. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsMemory.js.map +0 -1
  309. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsStorage.js +0 -20
  310. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsStorage.js.map +0 -1
  311. package/dist/containers/Cluster/ClusterDashboard/shared.js.map +0 -1
  312. package/dist/containers/Cluster/ClusterDashboard/utils.d.ts +0 -19
  313. package/dist/containers/Cluster/ClusterDashboard/utils.js +0 -63
  314. package/dist/containers/Cluster/ClusterDashboard/utils.js.map +0 -1
  315. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.d.ts +0 -8
  316. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js +0 -42
  317. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js.map +0 -1
  318. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.scss +0 -6
  319. package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.d.ts +0 -8
  320. package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.js +0 -8
  321. package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.js.map +0 -1
  322. package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.scss +0 -17
  323. /package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/shared.js +0 -0
@@ -1,12 +1,13 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import { Flex } from '@gravity-ui/uikit';
4
+ import { EntityStatus } from '../../../../components/EntityStatusNew/EntityStatus';
4
5
  import { ProgressViewer } from '../../../../components/ProgressViewer/ProgressViewer';
5
6
  import { Tags } from '../../../../components/Tags';
6
7
  import { isClusterInfoV2 } from '../../../../types/api/cluster';
7
8
  import { formatNumber } from '../../../../utils/dataFormatters/dataFormatters';
8
9
  import i18n from '../../i18n';
9
- import { NodesState } from '../components/NodesState/NodesState';
10
+ import { DiskGroupsStats } from '../components/DiskGroupsStatsBars/DiskGroupsStats';
10
11
  import { b } from '../shared';
11
12
  const COLORS_PRIORITY = {
12
13
  Green: 5,
@@ -18,30 +19,30 @@ const COLORS_PRIORITY = {
18
19
  };
19
20
  const getDCInfo = (cluster) => {
20
21
  if (isClusterInfoV2(cluster) && cluster.MapDataCenters) {
21
- return Object.entries(cluster.MapDataCenters).map(([dc, count]) => (_jsxs(React.Fragment, { children: [dc, ": ", formatNumber(count)] }, dc)));
22
+ return Object.entries(cluster.MapDataCenters).map(([dc, count]) => (_jsxs(React.Fragment, { children: [dc, " : ", formatNumber(count)] }, dc)));
22
23
  }
23
24
  return undefined;
24
25
  };
25
26
  export const getInfo = (cluster, additionalInfo) => {
26
27
  var _a;
27
28
  const info = [];
29
+ const dataCenters = getDCInfo(cluster);
30
+ if (dataCenters === null || dataCenters === void 0 ? void 0 : dataCenters.length) {
31
+ info.push({
32
+ label: i18n('label_dc'),
33
+ value: _jsx(Tags, { tags: dataCenters, gap: 1, className: b('dc') }),
34
+ });
35
+ }
28
36
  if (isClusterInfoV2(cluster) && cluster.MapNodeStates) {
29
37
  const arrayNodesStates = Object.entries(cluster.MapNodeStates);
30
38
  // sort stack to achieve order "green, orange, yellow, red, blue, grey"
31
39
  arrayNodesStates.sort((a, b) => COLORS_PRIORITY[b[0]] - COLORS_PRIORITY[a[0]]);
32
40
  const nodesStates = arrayNodesStates.map(([state, count]) => {
33
- return (_jsx(NodesState, { state: state, children: formatNumber(count) }, state));
41
+ return (_jsx(EntityStatus.Label, { withStatusName: false, status: state, size: "xs", iconSize: 12, children: formatNumber(count) }, state));
34
42
  });
35
43
  info.push({
36
44
  label: i18n('label_nodes-state'),
37
- value: _jsx(Flex, { gap: 2, children: nodesStates }),
38
- });
39
- }
40
- const dataCenters = getDCInfo(cluster);
41
- if (dataCenters === null || dataCenters === void 0 ? void 0 : dataCenters.length) {
42
- info.push({
43
- label: i18n('label_dc'),
44
- value: _jsx(Tags, { tags: dataCenters, gap: 2, className: b('dc') }),
45
+ value: _jsx(Flex, { gap: 1, children: nodesStates }),
45
46
  });
46
47
  }
47
48
  info.push({
@@ -51,4 +52,13 @@ export const getInfo = (cluster, additionalInfo) => {
51
52
  info.push(...additionalInfo);
52
53
  return info;
53
54
  };
55
+ export function getStorageGroupStats(groupStats) {
56
+ const result = [];
57
+ Object.entries(groupStats).forEach(([storageType, stats]) => {
58
+ Object.values(stats).forEach((erasureStats) => {
59
+ result.push(_jsx(DiskGroupsStats, { stats: erasureStats, storageType: storageType }, `${storageType}|${erasureStats.erasure}`));
60
+ });
61
+ });
62
+ return result;
63
+ }
54
64
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterInfo/utils/utils.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterInfo/utils/utils.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import type { ClusterGroupsStats } from '../../../store/reducers/cluster/types';
2
+ import type { AdditionalClusterProps } from '../../../types/additionalProps';
2
3
  import type { TClusterInfo } from '../../../types/api/cluster';
3
4
  import type { IResponseError } from '../../../types/api/error';
4
- import './ClusterDashboard.scss';
5
- interface ClusterDashboardProps {
5
+ import './ClusterOverview.scss';
6
+ interface ClusterOverviewProps {
6
7
  cluster: TClusterInfo;
7
8
  groupStats?: ClusterGroupsStats;
8
9
  loading?: boolean;
9
10
  error?: IResponseError | string;
11
+ additionalClusterProps?: AdditionalClusterProps;
12
+ collapsed?: boolean;
10
13
  }
11
- export declare function ClusterDashboard({ cluster, ...props }: ClusterDashboardProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function ClusterOverview(props: ClusterOverviewProps): import("react/jsx-runtime").JSX.Element;
12
15
  export {};
@@ -0,0 +1,63 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ArrowToggle, Disclosure, Flex, Icon, Text } from '@gravity-ui/uikit';
3
+ import { ResponseError } from '../../../components/Errors/ResponseError';
4
+ import { useClusterDashboardAvailable } from '../../../store/reducers/capabilities/hooks';
5
+ import { isClusterInfoV2, isClusterInfoV5 } from '../../../types/api/cluster';
6
+ import { valueIsDefined } from '../../../utils';
7
+ import { EXPAND_CLUSTER_DASHBOARD } from '../../../utils/constants';
8
+ import { useSetting } from '../../../utils/hooks/useSetting';
9
+ import { ClusterInfo } from '../ClusterInfo/ClusterInfo';
10
+ import i18n from '../i18n';
11
+ import { getTotalStorageGroupsUsed } from '../utils';
12
+ import { ClusterDashboardSkeleton } from './components/ClusterMetricsCard';
13
+ import { ClusterMetricsCores } from './components/ClusterMetricsCores';
14
+ import { ClusterMetricsMemory } from './components/ClusterMetricsMemory';
15
+ import { ClusterMetricsNetwork } from './components/ClusterMetricsNetwork';
16
+ import { ClusterMetricsStorage } from './components/ClusterMetricsStorage';
17
+ import { b } from './shared';
18
+ import overviewIcon from '../../../assets/icons/overview.svg';
19
+ import './ClusterOverview.scss';
20
+ export function ClusterOverview(props) {
21
+ const [expandDashboard, setExpandDashboard] = useSetting(EXPAND_CLUSTER_DASHBOARD);
22
+ if (props.error) {
23
+ return _jsx(ResponseError, { error: props.error, className: b('error') });
24
+ }
25
+ return (_jsx(Flex, { direction: "column", className: b('overview-wrapper', { collapsed: !expandDashboard }), children: _jsxs(Disclosure, { arrowPosition: "end", expanded: expandDashboard, onUpdate: () => setExpandDashboard(!expandDashboard), children: [_jsx(Disclosure.Summary, { children: (disclosureProps) => (_jsxs("div", { ...disclosureProps, className: b('disclosure-summary'), children: [_jsxs(Flex, { alignItems: "center", justifyContent: "space-between", width: '100%', children: [_jsxs(Flex, { gap: 2, alignItems: "center", children: [_jsx(Icon, { data: overviewIcon, size: 16 }), _jsx(Text, { variant: "body-2", color: "primary", className: b('title'), children: i18n('label_overview') })] }), !expandDashboard && _jsx(ClusterDashboard, { ...props, collapsed: true })] }), _jsx(ArrowToggle, { size: 16, direction: disclosureProps.expanded ? 'top' : 'bottom' })] })) }), _jsx(ClusterDashboard, { ...props }), _jsx(ClusterInfo, { ...props })] }) }));
26
+ }
27
+ function ClusterDashboard({ collapsed, ...props }) {
28
+ const isClusterDashboardAvailable = useClusterDashboardAvailable();
29
+ if (!isClusterDashboardAvailable) {
30
+ return null;
31
+ }
32
+ return (_jsx(Flex, { wrap: true, className: b('dashboard-wrapper', { collapsed }), children: _jsx(ClusterDoughnuts, { ...props, collapsed: collapsed }) }));
33
+ }
34
+ function ClusterDoughnuts({ cluster, groupStats = {}, loading, collapsed }) {
35
+ if (loading) {
36
+ return _jsx(ClusterDashboardSkeleton, {});
37
+ }
38
+ const metricsCards = [];
39
+ if (isClusterInfoV2(cluster)) {
40
+ const { CoresUsed, NumberOfCpus, CoresTotal } = cluster;
41
+ const total = CoresTotal !== null && CoresTotal !== void 0 ? CoresTotal : NumberOfCpus;
42
+ if (valueIsDefined(CoresUsed) && valueIsDefined(total)) {
43
+ metricsCards.push(_jsx(ClusterMetricsCores, { value: CoresUsed, capacity: total, collapsed: collapsed }, "cores"));
44
+ }
45
+ }
46
+ const { StorageTotal, StorageUsed } = cluster;
47
+ if (valueIsDefined(StorageTotal) && valueIsDefined(StorageUsed)) {
48
+ const total = getTotalStorageGroupsUsed(groupStats);
49
+ metricsCards.push(_jsx(ClusterMetricsStorage, { value: StorageUsed, capacity: StorageTotal, groups: total, collapsed: collapsed }, "storage"));
50
+ }
51
+ const { MemoryTotal, MemoryUsed } = cluster;
52
+ if (valueIsDefined(MemoryTotal) && valueIsDefined(MemoryUsed)) {
53
+ metricsCards.push(_jsx(ClusterMetricsMemory, { value: MemoryUsed, capacity: MemoryTotal, collapsed: collapsed }, "memory"));
54
+ }
55
+ if (isClusterInfoV5(cluster)) {
56
+ const { NetworkUtilization, NetworkWriteThroughput } = cluster;
57
+ if (valueIsDefined(NetworkUtilization)) {
58
+ metricsCards.push(_jsx(ClusterMetricsNetwork, { percentsValue: NetworkUtilization, throughput: NetworkWriteThroughput, collapsed: collapsed }, "network"));
59
+ }
60
+ }
61
+ return metricsCards;
62
+ }
63
+ //# sourceMappingURL=ClusterOverview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClusterOverview.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterOverview/ClusterOverview.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ @use '../../../styles/mixins.scss';
2
+
3
+ .ydb-cluster-dashboard {
4
+ &__dashboard-wrapper {
5
+ gap: var(--g-spacing-6);
6
+
7
+ padding-top: var(--g-spacing-4);
8
+ }
9
+
10
+ &__dashboard-wrapper_collapsed {
11
+ gap: var(--g-spacing-1);
12
+
13
+ margin-right: var(--g-spacing-4);
14
+ margin-left: auto;
15
+ padding-top: unset;
16
+ }
17
+
18
+ &__error {
19
+ @include mixins.body-2-typography();
20
+ }
21
+
22
+ &__skeleton-wrapper {
23
+ padding: unset;
24
+
25
+ border: unset;
26
+ }
27
+ &__skeleton {
28
+ height: 100%;
29
+ }
30
+ &__overview-wrapper {
31
+ --g-button-background-color-hover: var(--g-color-base-background);
32
+ --g-button-padding: 0;
33
+ position: sticky;
34
+ left: 0;
35
+
36
+ padding: var(--g-spacing-4);
37
+
38
+ border: 1px solid var(--g-color-line-generic);
39
+ border-radius: 5px;
40
+
41
+ .g-button:active {
42
+ transform: unset;
43
+ }
44
+ }
45
+
46
+ &__overview-wrapper_collapsed {
47
+ &:hover {
48
+ border-color: var(--g-color-line-generic-hover);
49
+ }
50
+ }
51
+
52
+ &__disclosure-summary {
53
+ display: flex;
54
+ justify-content: space-between;
55
+ align-items: center;
56
+
57
+ width: 100%;
58
+ height: 28px;
59
+
60
+ cursor: pointer;
61
+ .g-button__text {
62
+ width: 100%;
63
+ }
64
+ }
65
+
66
+ &__card {
67
+ min-width: 280px;
68
+ height: 132px;
69
+ }
70
+ }
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type { ProgressStatus } from '../../../../utils/progress';
3
+ interface ClusterMetricsDougnutCardProps extends ClusterMetricsCommonCardProps {
4
+ status: ProgressStatus;
5
+ fillWidth: number;
6
+ legend: {
7
+ main?: string;
8
+ secondary?: string;
9
+ note?: React.ReactNode;
10
+ };
11
+ }
12
+ interface ClusterMetricsCommonCardProps {
13
+ children?: React.ReactNode;
14
+ title?: string;
15
+ className?: string;
16
+ collapsed?: boolean;
17
+ }
18
+ export declare function ClusterMetricsCard({ children, className }: ClusterMetricsCommonCardProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function ClusterMetricsCardContent({ title, children, legend, collapsed, ...rest }: ClusterMetricsDougnutCardProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function ClusterDashboardSkeleton(): import("react/jsx-runtime").JSX.Element;
21
+ export {};
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Flex } from '@gravity-ui/uikit';
4
+ import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
5
+ import { EntityStatus } from '../../../../components/EntityStatusNew/EntityStatus';
6
+ import { Skeleton } from '../../../../components/Skeleton/Skeleton';
7
+ import { EFlag } from '../../../../types/api/enums';
8
+ import { b } from '../shared';
9
+ const ProgressStatusToEFlag = {
10
+ good: EFlag.Green,
11
+ warning: EFlag.Yellow,
12
+ danger: EFlag.Red,
13
+ };
14
+ export function ClusterMetricsCard({ children, className }) {
15
+ return (_jsx(Flex, { gap: "6", alignItems: "center", className: b('card', className), children: children }));
16
+ }
17
+ export function ClusterMetricsCardContent({ title, children, legend, collapsed, ...rest }) {
18
+ const { main: mainLegend, secondary: secondaryLegend, note: legendNote } = legend;
19
+ if (collapsed) {
20
+ const { status, fillWidth } = rest;
21
+ const normalizedFillWidth = fillWidth.toFixed(fillWidth > 0 ? 0 : 1);
22
+ return (_jsx(EntityStatus.Label, { withStatusName: false, status: ProgressStatusToEFlag[status], children: `${title} : ${normalizedFillWidth}%` }));
23
+ }
24
+ return (_jsxs(ClusterMetricsCard, { children: [_jsx(DoughnutMetrics, { ...rest, children: children }), _jsxs("div", { className: b('legend-wrapper'), children: [mainLegend && _jsx(DoughnutMetrics.Legend, { children: mainLegend }), secondaryLegend && (_jsx(DoughnutMetrics.Legend, { color: "secondary", note: legendNote, variant: "body-1", children: secondaryLegend }))] })] }));
25
+ }
26
+ function ClusterMetricsCardSkeleton() {
27
+ return (_jsx(ClusterMetricsCard, { className: b('skeleton-wrapper'), children: _jsx(Skeleton, { className: b('skeleton') }) }));
28
+ }
29
+ export function ClusterDashboardSkeleton() {
30
+ return (_jsxs(React.Fragment, { children: [_jsx(ClusterMetricsCardSkeleton, {}), _jsx(ClusterMetricsCardSkeleton, {}), _jsx(ClusterMetricsCardSkeleton, {})] }));
31
+ }
32
+ //# sourceMappingURL=ClusterMetricsCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClusterMetricsCard.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,YAAY,EAAC,MAAM,qDAAqD,CAAC;AACjF,OAAO,EAAC,QAAQ,EAAC,MAAM,0CAA0C,CAAC;AAClE,OAAO,EAAC,KAAK,EAAC,MAAM,6BAA6B,CAAC;AAElD,OAAO,EAAC,CAAC,EAAC,MAAM,WAAW,CAAC;AAE5B,MAAM,qBAAqB,GAAkC;IACzD,IAAI,EAAE,KAAK,CAAC,KAAK;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,MAAM,EAAE,KAAK,CAAC,GAAG;CACpB,CAAC;AAeF,MAAM,UAAU,kBAAkB,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAgC;IACnF,OAAO,CACH,KAAC,IAAI,IAAC,GAAG,EAAC,GAAG,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,YAC5D,QAAQ,GACN,CACV,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EACtC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACsB;IAC7B,MAAM,EAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC;IAEhF,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,EAAC,MAAM,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC;QACjC,MAAM,mBAAmB,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,OAAO,CACH,KAAC,YAAY,CAAC,KAAK,IAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,YAC3E,GAAG,KAAK,MAAM,mBAAmB,GAAG,GACpB,CACxB,CAAC;IACN,CAAC;IACD,OAAO,CACH,MAAC,kBAAkB,eACf,KAAC,eAAe,OAAK,IAAI,YAAG,QAAQ,GAAmB,EACvD,eAAK,SAAS,EAAE,CAAC,CAAC,gBAAgB,CAAC,aAC9B,UAAU,IAAI,KAAC,eAAe,CAAC,MAAM,cAAE,UAAU,GAA0B,EAC3E,eAAe,IAAI,CAChB,KAAC,eAAe,CAAC,MAAM,IAAC,KAAK,EAAC,WAAW,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAC,QAAQ,YACvE,eAAe,GACK,CAC5B,IACC,IACW,CACxB,CAAC;AACN,CAAC;AAED,SAAS,0BAA0B;IAC/B,OAAO,CACH,KAAC,kBAAkB,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,YAChD,KAAC,QAAQ,IAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,GAAI,GACrB,CACxB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,wBAAwB;IACpC,OAAO,CACH,MAAC,KAAK,CAAC,QAAQ,eACX,KAAC,0BAA0B,KAAG,EAC9B,KAAC,0BAA0B,KAAG,EAC9B,KAAC,0BAA0B,KAAG,IACjB,CACpB,CAAC;AACN,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ClusterMetricsCommonProps } from '../shared';
2
+ interface ClusterMetricsCoresProps extends ClusterMetricsCommonProps {
3
+ }
4
+ export declare function ClusterMetricsCores({ collapsed, value, capacity, ...rest }: ClusterMetricsCoresProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
3
+ import { formatNumber, formatNumericValues } from '../../../../utils/dataFormatters/dataFormatters';
4
+ import i18n from '../../i18n';
5
+ import { getDiagramValues } from '../utils';
6
+ import { ClusterMetricsCardContent } from './ClusterMetricsCard';
7
+ function formatCoresLegend({ value, capacity }) {
8
+ let formatted = [];
9
+ if (capacity < 10000) {
10
+ formatted = [formatNumber(Math.round(value)), formatNumber(Math.round(capacity))];
11
+ }
12
+ else {
13
+ formatted = formatNumericValues(value, capacity, undefined, '', true);
14
+ }
15
+ return `${formatted[0]} ${i18n('context_of')} ${formatted[1]} ${i18n('context_cores')}`;
16
+ }
17
+ export function ClusterMetricsCores({ collapsed, value, capacity, ...rest }) {
18
+ const { status, percents, legend, fill } = getDiagramValues({
19
+ value,
20
+ capacity,
21
+ legendFormatter: formatCoresLegend,
22
+ ...rest,
23
+ });
24
+ return (_jsx(ClusterMetricsCardContent, { collapsed: collapsed, status: status, fillWidth: fill, title: i18n('title_cpu'), legend: {
25
+ main: legend,
26
+ secondary: i18n('context_cpu'),
27
+ note: i18n('context_cpu-description'),
28
+ }, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
29
+ }
30
+ //# sourceMappingURL=ClusterMetricsCores.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClusterMetricsCores.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,YAAY,EAAE,mBAAmB,EAAC,MAAM,iDAAiD,CAAC;AAClG,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAI/D,SAAS,iBAAiB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAoC;IAC3E,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAM,EAAE,CAAC;QACpB,SAAS,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACJ,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAChC,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACgB;IACvB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,gBAAgB,CAAC;QACtD,KAAK;QACL,QAAQ;QACR,eAAe,EAAE,iBAAiB;QAClC,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,yBAAyB,IACtB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,EACxB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAC;SACxC,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ClusterMetricsCommonProps } from '../shared';
2
2
  interface ClusterMetricsMemoryProps extends ClusterMetricsCommonProps {
3
3
  }
4
- export declare function ClusterMetricsMemory({ value, capacity, ...rest }: ClusterMetricsMemoryProps): import("react/jsx-runtime").JSX.Element;
4
+ export declare function ClusterMetricsMemory({ value, capacity, collapsed, ...rest }: ClusterMetricsMemoryProps): import("react/jsx-runtime").JSX.Element;
5
5
  export {};
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
3
+ import { formatStorageValues } from '../../../../utils/dataFormatters/dataFormatters';
4
+ import i18n from '../../i18n';
5
+ import { getDiagramValues } from '../utils';
6
+ import { ClusterMetricsCardContent } from './ClusterMetricsCard';
7
+ function formatStorageLegend({ value, capacity }) {
8
+ const formatted = formatStorageValues(value, capacity, undefined, '\n');
9
+ return `${formatted[0]} ${i18n('context_of')} ${formatted[1]}`;
10
+ }
11
+ export function ClusterMetricsMemory({ value, capacity, collapsed, ...rest }) {
12
+ const { status, percents, legend, fill } = getDiagramValues({
13
+ value,
14
+ capacity,
15
+ legendFormatter: formatStorageLegend,
16
+ ...rest,
17
+ });
18
+ return (_jsx(ClusterMetricsCardContent, { status: status, fillWidth: fill, title: i18n('title_memory'), collapsed: collapsed, legend: {
19
+ main: legend,
20
+ secondary: i18n('context_memory'),
21
+ note: i18n('context_memory-description'),
22
+ }, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
23
+ }
24
+ //# sourceMappingURL=ClusterMetricsMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClusterMetricsMemory.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,mBAAmB,EAAC,MAAM,iDAAiD,CAAC;AACpF,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAI/D,SAAS,mBAAmB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAoC;IAC7E,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxE,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACiB;IACxB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,gBAAgB,CAAC;QACtD,KAAK;QACL,QAAQ;QACR,eAAe,EAAE,mBAAmB;QACpC,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,yBAAyB,IACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,EAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,4BAA4B,CAAC;SAC3C,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ClusterMetricsBaseProps } from '../shared';
2
+ interface ClusterMetricsNetworkProps extends ClusterMetricsBaseProps {
3
+ percentsValue: number;
4
+ throughput?: string;
5
+ }
6
+ export declare function ClusterMetricsNetwork({ percentsValue, throughput, collapsed, ...rest }: ClusterMetricsNetworkProps): import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
3
+ import { formatBytes } from '../../../../utils/bytesParsers';
4
+ import { SHOW_NETWORK_UTILIZATION } from '../../../../utils/constants';
5
+ import { useSetting } from '../../../../utils/hooks/useSetting';
6
+ import i18n from '../../i18n';
7
+ import { calculateBaseDiagramValues } from '../utils';
8
+ import { ClusterMetricsCardContent } from './ClusterMetricsCard';
9
+ function formatStorageLegend(value) {
10
+ return formatBytes({ value, withSpeedLabel: true });
11
+ }
12
+ export function ClusterMetricsNetwork({ percentsValue, throughput, collapsed, ...rest }) {
13
+ const [showNetworkUtilization] = useSetting(SHOW_NETWORK_UTILIZATION);
14
+ if (!showNetworkUtilization) {
15
+ return null;
16
+ }
17
+ const { status, percents, fill } = calculateBaseDiagramValues({
18
+ fillWidth: percentsValue * 100,
19
+ ...rest,
20
+ });
21
+ const legend = formatStorageLegend(throughput);
22
+ return (_jsx(ClusterMetricsCardContent, { status: status, fillWidth: fill, title: i18n('title_network'), collapsed: collapsed, legend: {
23
+ main: legend,
24
+ secondary: i18n('context_network'),
25
+ note: i18n('context_network-description'),
26
+ }, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
27
+ }
28
+ //# sourceMappingURL=ClusterMetricsNetwork.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClusterMetricsNetwork.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAC,UAAU,EAAC,MAAM,oCAAoC,CAAC;AAC9D,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,0BAA0B,EAAC,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAO/D,SAAS,mBAAmB,CAAC,KAAc;IACvC,OAAO,WAAW,CAAC,EAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAClC,aAAa,EACb,UAAU,EACV,SAAS,EACT,GAAG,IAAI,EACkB;IACzB,MAAM,CAAC,sBAAsB,CAAC,GAAG,UAAU,CAAU,wBAAwB,CAAC,CAAC;IAC/E,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAC,GAAG,0BAA0B,CAAC;QACxD,SAAS,EAAE,aAAa,GAAG,GAAG;QAC9B,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAE/C,OAAO,CACH,KAAC,yBAAyB,IACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC;SAC5C,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { ClusterMetricsCommonProps } from '../shared';
2
2
  interface ClusterMetricsStorageProps extends ClusterMetricsCommonProps {
3
+ groups: number;
3
4
  }
4
- export declare function ClusterMetricsStorage({ value, capacity, ...rest }: ClusterMetricsStorageProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function ClusterMetricsStorage({ value, capacity, groups, collapsed, ...rest }: ClusterMetricsStorageProps): import("react/jsx-runtime").JSX.Element;
5
6
  export {};
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
3
+ import { formatStorageValues } from '../../../../utils/dataFormatters/dataFormatters';
4
+ import i18n from '../../i18n';
5
+ import { getDiagramValues } from '../utils';
6
+ import { ClusterMetricsCardContent } from './ClusterMetricsCard';
7
+ function formatStorageLegend({ value, capacity }) {
8
+ const formatted = formatStorageValues(value, capacity, undefined, '\n');
9
+ return `${formatted[0]} ${i18n('context_of')} ${formatted[1]}`;
10
+ }
11
+ export function ClusterMetricsStorage({ value, capacity, groups, collapsed, ...rest }) {
12
+ const { status, percents, legend, fill } = getDiagramValues({
13
+ value,
14
+ capacity,
15
+ legendFormatter: formatStorageLegend,
16
+ ...rest,
17
+ });
18
+ return (_jsx(ClusterMetricsCardContent, { status: status, fillWidth: fill, title: i18n('title_storage'), collapsed: collapsed, legend: {
19
+ main: legend,
20
+ secondary: i18n('context_storage', { count: groups }),
21
+ note: i18n('context_storage-description'),
22
+ }, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
23
+ }
24
+ //# sourceMappingURL=ClusterMetricsStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClusterMetricsStorage.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,mBAAmB,EAAC,MAAM,iDAAiD,CAAC;AACpF,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAM/D,SAAS,mBAAmB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAoC;IAC7E,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxE,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACkB;IACzB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,gBAAgB,CAAC;QACtD,KAAK;QACL,QAAQ;QACR,eAAe,EAAE,mBAAmB;QACpC,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,yBAAyB,IACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC;SAC5C,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
@@ -1,9 +1,12 @@
1
1
  export declare const b: import("@bem-react/classname").ClassNameFormatter;
2
- export interface ClusterMetricsCommonProps {
3
- value: number | string;
4
- capacity: number | string;
2
+ export interface ClusterMetricsBaseProps {
5
3
  colorizeProgress?: boolean;
6
4
  inverseColorize?: boolean;
7
5
  warningThreshold?: number;
8
6
  dangerThreshold?: number;
7
+ collapsed?: boolean;
8
+ }
9
+ export interface ClusterMetricsCommonProps extends ClusterMetricsBaseProps {
10
+ value: number | string;
11
+ capacity: number | string;
9
12
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterOverview/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,mBAAmB,CAAC;AACrC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { ClusterMetricsBaseProps, ClusterMetricsCommonProps } from './shared';
2
+ export declare function calculateBaseDiagramValues({ colorizeProgress, warningThreshold, dangerThreshold, inverseColorize, fillWidth, }: ClusterMetricsBaseProps & {
3
+ fillWidth: number;
4
+ }): {
5
+ status: import("../../../utils/progress").ProgressStatus;
6
+ percents: string;
7
+ fill: number;
8
+ };
9
+ export declare function getDiagramValues({ value, capacity, legendFormatter, ...rest }: ClusterMetricsCommonProps & {
10
+ legendFormatter: (params: {
11
+ value: number;
12
+ capacity: number;
13
+ }) => string;
14
+ }): {
15
+ legend: string;
16
+ status: import("../../../utils/progress").ProgressStatus;
17
+ percents: string;
18
+ fill: number;
19
+ };
@@ -0,0 +1,32 @@
1
+ import { formatPercent } from '../../../utils/dataFormatters/dataFormatters';
2
+ import { calculateProgressStatus } from '../../../utils/progress';
3
+ export function calculateBaseDiagramValues({ colorizeProgress = true, warningThreshold, dangerThreshold, inverseColorize = false, fillWidth, }) {
4
+ const normalizedFillWidth = Math.max(fillWidth, 0.5);
5
+ const status = calculateProgressStatus({
6
+ fillWidth,
7
+ warningThreshold,
8
+ dangerThreshold,
9
+ colorizeProgress,
10
+ inverseColorize,
11
+ });
12
+ const percents = formatPercent(fillWidth / 100);
13
+ return { status, percents, fill: normalizedFillWidth };
14
+ }
15
+ export function getDiagramValues({ value, capacity, legendFormatter, ...rest }) {
16
+ const parsedValue = parseFloat(String(value));
17
+ const parsedCapacity = parseFloat(String(capacity));
18
+ let fillWidth = (parsedValue / parsedCapacity) * 100 || 0;
19
+ fillWidth = fillWidth > 100 ? 100 : fillWidth;
20
+ const legend = legendFormatter({
21
+ value: parsedValue,
22
+ capacity: parsedCapacity,
23
+ });
24
+ return {
25
+ ...calculateBaseDiagramValues({
26
+ fillWidth,
27
+ ...rest,
28
+ }),
29
+ legend,
30
+ };
31
+ }
32
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterOverview/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAC,uBAAuB,EAAC,MAAM,yBAAyB,CAAC;AAIhE,MAAM,UAAU,0BAA0B,CAAC,EACvC,gBAAgB,GAAG,IAAI,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAAG,KAAK,EACvB,SAAS,GACmC;IAC5C,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,uBAAuB,CAAC;QACnC,SAAS;QACT,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,eAAe;KAClB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IAEhD,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,eAAe,EACf,GAAG,IAAI,EAGV;IACG,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,IAAI,SAAS,GAAG,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAC1D,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,MAAM,MAAM,GAAG,eAAe,CAAC;QAC3B,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,cAAc;KAC3B,CAAC,CAAC;IACH,OAAO;QACH,GAAG,0BAA0B,CAAC;YAC1B,SAAS;YACT,GAAG,IAAI;SACV,CAAC;QACF,MAAM;KACT,CAAC;AACN,CAAC"}
@@ -1,13 +1,10 @@
1
1
  {
2
- "disk-type": "Disk Type",
3
2
  "erasure": "Erasure",
4
3
  "allocated": "Allocated",
5
4
  "available": "Available",
6
5
  "usage": "Usage",
7
6
  "label_nodes-state": "Nodes state",
8
7
  "label_dc": "Nodes data centers",
9
- "storage-size": "Storage size",
10
- "storage-groups": "Storage groups, {{diskType}}",
11
8
  "links": "Links",
12
9
  "link_cores": "Coredumps",
13
10
  "link_logging": "Logging",
@@ -15,12 +12,25 @@
15
12
  "context_cores": "cores",
16
13
  "title_cpu": "CPU",
17
14
  "title_storage": "Storage",
15
+ "title_storage-groups": "Storage Groups",
18
16
  "title_memory": "Memory",
19
- "title_info": "Info",
17
+ "title_network": "Network",
20
18
  "title_links": "Links",
21
- "label_nodes": "Nodes",
22
- "label_hosts": "Hosts",
23
- "label_storage-groups": "Storage groups",
24
- "label_databases": "Databases",
25
- "label_load": "Load"
19
+ "title_details": "Details",
20
+ "label_overview": "Overview",
21
+ "label_load": "Load",
22
+ "context_of": "of",
23
+ "context_cpu": "CPU load",
24
+ "context_memory": "Memory used",
25
+ "context_storage": [
26
+ "Storage: {{count}} group",
27
+ "Storage: {{count}} groups",
28
+ "Storage: {{count}} groups",
29
+ "Storage: {{count}} groups"
30
+ ],
31
+ "context_network": "Network Evaluation",
32
+ "context_cpu-description": "CPU load is calculated as the cumulative usage across all actor system pools on all nodes in the cluster",
33
+ "context_memory-description": "Memory usage is the total memory consumed by all nodes in the cluster",
34
+ "context_storage-description": "Storage usage is a cumulative usage of raw disk space of all media types",
35
+ "context_network-description": "Network usage is the average outgoing bandwidth usage across all nodes in the cluster"
26
36
  }
@@ -1,2 +1,2 @@
1
- declare const _default: (key: "links" | "erasure" | "usage" | "storage-groups" | "title_storage" | "disk-type" | "allocated" | "available" | "label_nodes-state" | "label_dc" | "storage-size" | "link_cores" | "link_logging" | "link_slo-logs" | "context_cores" | "title_cpu" | "title_memory" | "title_info" | "title_links" | "label_nodes" | "label_hosts" | "label_storage-groups" | "label_databases" | "label_load", params?: import("@gravity-ui/i18n").Params) => string;
1
+ declare const _default: (key: "links" | "erasure" | "usage" | "title_storage" | "allocated" | "available" | "label_nodes-state" | "label_dc" | "link_cores" | "link_logging" | "link_slo-logs" | "context_cores" | "title_cpu" | "title_storage-groups" | "title_memory" | "title_network" | "title_links" | "title_details" | "label_overview" | "label_load" | "context_of" | "context_cpu" | "context_memory" | "context_storage" | "context_network" | "context_cpu-description" | "context_memory-description" | "context_storage-description" | "context_network-description", params?: import("@gravity-ui/i18n").Params) => string;
2
2
  export default _default;