ydb-embedded-ui 11.3.0 → 11.5.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 (339) hide show
  1. package/dist/components/DoughnutMetrics/DoughnutMetrics.d.ts +3 -1
  2. package/dist/components/DoughnutMetrics/DoughnutMetrics.js +16 -20
  3. package/dist/components/DoughnutMetrics/DoughnutMetrics.js.map +1 -1
  4. package/dist/components/DoughnutMetrics/DoughnutMetrics.scss +25 -28
  5. package/dist/components/DoughnutMetrics/SvgCircle.d.ts +14 -0
  6. package/dist/components/DoughnutMetrics/SvgCircle.js +5 -0
  7. package/dist/components/DoughnutMetrics/SvgCircle.js.map +1 -0
  8. package/dist/components/DoughnutMetrics/utils.d.ts +36 -0
  9. package/dist/components/DoughnutMetrics/utils.js +40 -0
  10. package/dist/components/DoughnutMetrics/utils.js.map +1 -0
  11. package/dist/components/EntityStatus/EntityStatus.js +2 -1
  12. package/dist/components/EntityStatus/EntityStatus.js.map +1 -1
  13. package/dist/components/EntityStatus/EntityStatus.scss +0 -4
  14. package/dist/components/FixedHeightQuery/FixedHeightQuery.d.ts +3 -1
  15. package/dist/components/FixedHeightQuery/FixedHeightQuery.js +5 -3
  16. package/dist/components/FixedHeightQuery/FixedHeightQuery.js.map +1 -1
  17. package/dist/components/FixedHeightQuery/FixedHeightQuery.scss +5 -1
  18. package/dist/components/HoverPopup/HoverPopup.d.ts +0 -1
  19. package/dist/components/HoverPopup/HoverPopup.js +2 -4
  20. package/dist/components/HoverPopup/HoverPopup.js.map +1 -1
  21. package/dist/components/InfoViewer/InfoViewer.d.ts +2 -1
  22. package/dist/components/InfoViewer/InfoViewer.js +2 -2
  23. package/dist/components/InfoViewer/InfoViewer.js.map +1 -1
  24. package/dist/components/InfoViewer/InfoViewer.scss +20 -0
  25. package/dist/components/MemoryViewer/MemoryViewer.d.ts +1 -1
  26. package/dist/components/MemoryViewer/MemoryViewer.js +3 -3
  27. package/dist/components/MemoryViewer/MemoryViewer.js.map +1 -1
  28. package/dist/components/MemoryViewer/MemoryViewer.scss +5 -13
  29. package/dist/components/MemoryViewer/i18n/en.json +2 -1
  30. package/dist/components/MemoryViewer/i18n/index.d.ts +1 -1
  31. package/dist/components/MemoryViewer/utils.d.ts +3 -3
  32. package/dist/components/MemoryViewer/utils.js +12 -1
  33. package/dist/components/MemoryViewer/utils.js.map +1 -1
  34. package/dist/components/ProgressViewer/ProgressViewer.d.ts +1 -1
  35. package/dist/components/ProgressViewer/ProgressViewer.js +2 -9
  36. package/dist/components/ProgressViewer/ProgressViewer.js.map +1 -1
  37. package/dist/components/ProgressWrapper/ProgressContainer.d.ts +2 -0
  38. package/dist/components/ProgressWrapper/ProgressContainer.js +8 -0
  39. package/dist/components/ProgressWrapper/ProgressContainer.js.map +1 -0
  40. package/dist/components/ProgressWrapper/ProgressWrapper.d.ts +2 -0
  41. package/dist/components/ProgressWrapper/ProgressWrapper.js +10 -0
  42. package/dist/components/ProgressWrapper/ProgressWrapper.js.map +1 -0
  43. package/dist/components/ProgressWrapper/SingleProgress.d.ts +2 -0
  44. package/dist/components/ProgressWrapper/SingleProgress.js +24 -0
  45. package/dist/components/ProgressWrapper/SingleProgress.js.map +1 -0
  46. package/dist/components/ProgressWrapper/StackProgress.d.ts +2 -0
  47. package/dist/components/ProgressWrapper/StackProgress.js +39 -0
  48. package/dist/components/ProgressWrapper/StackProgress.js.map +1 -0
  49. package/dist/components/ProgressWrapper/i18n/en.json +4 -0
  50. package/dist/components/ProgressWrapper/i18n/index.d.ts +2 -0
  51. package/dist/components/ProgressWrapper/i18n/index.js +8 -0
  52. package/dist/components/ProgressWrapper/i18n/index.js.map +1 -0
  53. package/dist/components/ProgressWrapper/index.d.ts +6 -0
  54. package/dist/components/ProgressWrapper/index.js +9 -0
  55. package/dist/components/ProgressWrapper/index.js.map +1 -0
  56. package/dist/components/ProgressWrapper/progressUtils.d.ts +13 -0
  57. package/dist/components/ProgressWrapper/progressUtils.js +35 -0
  58. package/dist/components/ProgressWrapper/progressUtils.js.map +1 -0
  59. package/dist/components/ProgressWrapper/types.d.ts +29 -0
  60. package/dist/components/ProgressWrapper/types.js +2 -0
  61. package/dist/components/ProgressWrapper/types.js.map +1 -0
  62. package/dist/components/QueriesActivityBar/QueriesActivityAlert.d.ts +8 -0
  63. package/dist/components/QueriesActivityBar/QueriesActivityAlert.js +26 -0
  64. package/dist/components/QueriesActivityBar/QueriesActivityAlert.js.map +1 -0
  65. package/dist/components/QueriesActivityBar/QueriesActivityAlert.scss +25 -0
  66. package/dist/components/QueriesActivityBar/QueriesActivityBar.js +16 -96
  67. package/dist/components/QueriesActivityBar/QueriesActivityBar.js.map +1 -1
  68. package/dist/components/QueriesActivityBar/QueriesActivityBar.scss +2 -48
  69. package/dist/components/QueriesActivityBar/QueriesActivityCharts.js +5 -2
  70. package/dist/components/QueriesActivityBar/QueriesActivityCharts.js.map +1 -1
  71. package/dist/components/QueriesActivityBar/QueriesActivityExpandable.d.ts +21 -0
  72. package/dist/components/QueriesActivityBar/QueriesActivityExpandable.js +34 -0
  73. package/dist/components/QueriesActivityBar/QueriesActivityExpandable.js.map +1 -0
  74. package/dist/components/QueriesActivityBar/QueriesActivitySkeleton.d.ts +2 -0
  75. package/dist/components/QueriesActivityBar/QueriesActivitySkeleton.js +9 -0
  76. package/dist/components/QueriesActivityBar/QueriesActivitySkeleton.js.map +1 -0
  77. package/dist/components/QueriesActivityBar/QueriesActivitySkeleton.scss +6 -0
  78. package/dist/components/QueriesActivityBar/useQueriesActivityData.d.ts +11 -0
  79. package/dist/components/QueriesActivityBar/useQueriesActivityData.js +71 -0
  80. package/dist/components/QueriesActivityBar/useQueriesActivityData.js.map +1 -0
  81. package/dist/components/SeeAllButton/SeeAllButton.d.ts +7 -0
  82. package/dist/components/SeeAllButton/SeeAllButton.js +9 -0
  83. package/dist/components/SeeAllButton/SeeAllButton.js.map +1 -0
  84. package/dist/components/SeeAllButton/i18n/en.json +3 -0
  85. package/dist/components/SeeAllButton/i18n/index.d.ts +2 -0
  86. package/dist/components/SeeAllButton/i18n/index.js +5 -0
  87. package/dist/components/SeeAllButton/i18n/index.js.map +1 -0
  88. package/dist/components/ShardsTable/columns.js +1 -1
  89. package/dist/components/ShardsTable/columns.js.map +1 -1
  90. package/dist/components/SpeedMultiMeter/SpeedMultiMeter.js +2 -1
  91. package/dist/components/SpeedMultiMeter/SpeedMultiMeter.js.map +1 -1
  92. package/dist/components/SpeedMultiMeter/SpeedMultiMeter.scss +0 -3
  93. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.d.ts +2 -0
  94. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js +4 -9
  95. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js.map +1 -1
  96. package/dist/components/SyntaxHighlighter/themes.d.ts +6 -6
  97. package/dist/components/SyntaxHighlighter/themes.js +8 -0
  98. package/dist/components/SyntaxHighlighter/themes.js.map +1 -1
  99. package/dist/components/TitleWithHelpmark/TitleWithHelpmark.d.ts +6 -0
  100. package/dist/components/TitleWithHelpmark/TitleWithHelpmark.js +6 -0
  101. package/dist/components/TitleWithHelpmark/TitleWithHelpmark.js.map +1 -0
  102. package/dist/components/VersionsBar/VersionsBar.d.ts +7 -0
  103. package/dist/components/VersionsBar/VersionsBar.js +83 -0
  104. package/dist/components/VersionsBar/VersionsBar.js.map +1 -0
  105. package/dist/components/VersionsBar/VersionsBar.scss +36 -0
  106. package/dist/components/VersionsBar/i18n/en.json +8 -0
  107. package/dist/components/VersionsBar/i18n/index.d.ts +2 -0
  108. package/dist/components/VersionsBar/i18n/index.js +5 -0
  109. package/dist/components/VersionsBar/i18n/index.js.map +1 -0
  110. package/dist/components/nodesColumns/columns.js +3 -3
  111. package/dist/components/nodesColumns/columns.js.map +1 -1
  112. package/dist/containers/App/App.scss +4 -0
  113. package/dist/containers/AsideNavigation/AsideNavigation.scss +1 -1
  114. package/dist/containers/AsideNavigation/hooks/useHotkeysPanel.js +0 -8
  115. package/dist/containers/AsideNavigation/hooks/useHotkeysPanel.js.map +1 -1
  116. package/dist/containers/AsideNavigation/i18n/en.json +0 -2
  117. package/dist/containers/AsideNavigation/i18n/index.d.ts +1 -1
  118. package/dist/containers/Cluster/VersionsBar/VersionsBar.d.ts +1 -1
  119. package/dist/containers/Cluster/VersionsBar/VersionsBar.js.map +1 -1
  120. package/dist/containers/Clusters/Clusters.scss +0 -4
  121. package/dist/containers/Clusters/columns.js +3 -11
  122. package/dist/containers/Clusters/columns.js.map +1 -1
  123. package/dist/containers/Clusters/i18n/en.json +4 -1
  124. package/dist/containers/Node/Node.js +4 -0
  125. package/dist/containers/Node/Node.js.map +1 -1
  126. package/dist/containers/Node/NodePages.d.ts +5 -0
  127. package/dist/containers/Node/NodePages.js +7 -0
  128. package/dist/containers/Node/NodePages.js.map +1 -1
  129. package/dist/containers/Node/Threads/CpuUsageBar/CpuUsageBar.d.ts +8 -0
  130. package/dist/containers/Node/Threads/CpuUsageBar/CpuUsageBar.js +14 -0
  131. package/dist/containers/Node/Threads/CpuUsageBar/CpuUsageBar.js.map +1 -0
  132. package/dist/containers/Node/Threads/CpuUsageBar/CpuUsageBar.scss +6 -0
  133. package/dist/containers/Node/Threads/ThreadStatesBar/ThreadStatesBar.d.ts +8 -0
  134. package/dist/containers/Node/Threads/ThreadStatesBar/ThreadStatesBar.js +72 -0
  135. package/dist/containers/Node/Threads/ThreadStatesBar/ThreadStatesBar.js.map +1 -0
  136. package/dist/containers/Node/Threads/ThreadStatesBar/ThreadStatesBar.scss +10 -0
  137. package/dist/containers/Node/Threads/Threads.d.ts +6 -0
  138. package/dist/containers/Node/Threads/Threads.js +17 -0
  139. package/dist/containers/Node/Threads/Threads.js.map +1 -0
  140. package/dist/containers/Node/Threads/columns.d.ts +3 -0
  141. package/dist/containers/Node/Threads/columns.js +52 -0
  142. package/dist/containers/Node/Threads/columns.js.map +1 -0
  143. package/dist/containers/Node/Threads/i18n/en.json +11 -0
  144. package/dist/containers/Node/Threads/i18n/index.d.ts +2 -0
  145. package/dist/containers/Node/Threads/i18n/index.js +5 -0
  146. package/dist/containers/Node/Threads/i18n/index.js.map +1 -0
  147. package/dist/containers/Node/i18n/en.json +1 -0
  148. package/dist/containers/Node/i18n/index.d.ts +1 -1
  149. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +3 -3
  150. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
  151. package/dist/containers/Tenant/Diagnostics/AccessRights/AccessRights.scss +0 -6
  152. package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/columns.js +4 -6
  153. package/dist/containers/Tenant/Diagnostics/AccessRights/components/RightsTable/columns.js.map +1 -1
  154. package/dist/containers/Tenant/Diagnostics/Diagnostics.js +2 -1
  155. package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
  156. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.scss +1 -1
  157. package/dist/containers/Tenant/Diagnostics/TenantOverview/{MetricsCards/MetricsCards.d.ts → MetricsTabs/MetricsTabs.d.ts} +4 -3
  158. package/dist/containers/Tenant/Diagnostics/TenantOverview/{MetricsCards/MetricsCards.js → MetricsTabs/MetricsTabs.js} +16 -9
  159. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js.map +1 -0
  160. package/dist/containers/Tenant/Diagnostics/TenantOverview/{MetricsCards/MetricsCards.scss → MetricsTabs/MetricsTabs.scss} +5 -5
  161. package/dist/containers/Tenant/Diagnostics/TenantOverview/StatsWrapper/StatsWrapper.d.ts +11 -0
  162. package/dist/containers/Tenant/Diagnostics/TenantOverview/StatsWrapper/StatsWrapper.js +10 -0
  163. package/dist/containers/Tenant/Diagnostics/TenantOverview/StatsWrapper/StatsWrapper.js.map +1 -0
  164. package/dist/containers/Tenant/Diagnostics/TenantOverview/StatsWrapper/StatsWrapper.scss +14 -0
  165. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.d.ts +2 -4
  166. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.js +2 -2
  167. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.js.map +1 -1
  168. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.scss +2 -4
  169. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js +13 -2
  170. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js.map +1 -1
  171. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByCpu.js +2 -14
  172. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByCpu.js.map +1 -1
  173. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByLoad.js +2 -14
  174. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByLoad.js.map +1 -1
  175. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopQueries.js +13 -46
  176. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopQueries.js.map +1 -1
  177. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.js +1 -17
  178. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.js.map +1 -1
  179. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantDashboard/TenantDashboard.js +9 -2
  180. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantDashboard/TenantDashboard.js.map +1 -1
  181. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantDashboard/TenantDashboard.scss +1 -1
  182. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/MemoryDetailsSection.d.ts +7 -0
  183. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/MemoryDetailsSection.js +34 -0
  184. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/MemoryDetailsSection.js.map +1 -0
  185. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/MemoryDetailsSection.scss +44 -0
  186. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/MemorySegmentsList.d.ts +7 -0
  187. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/MemorySegmentsList.js +28 -0
  188. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/MemorySegmentsList.js.map +1 -0
  189. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.d.ts +1 -0
  190. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.js +28 -5
  191. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.js.map +1 -1
  192. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.scss +20 -0
  193. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TopNodesByMemory.js +2 -14
  194. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TopNodesByMemory.js.map +1 -1
  195. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.d.ts +8 -0
  196. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js +26 -0
  197. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js.map +1 -0
  198. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.scss +9 -0
  199. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesByPing.d.ts +7 -0
  200. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesByPing.js +28 -0
  201. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesByPing.js.map +1 -0
  202. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesBySkew.d.ts +7 -0
  203. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesBySkew.js +28 -0
  204. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesBySkew.js.map +1 -0
  205. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/columns.d.ts +76 -0
  206. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/columns.js +38 -0
  207. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/columns.js.map +1 -0
  208. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +9 -3
  209. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  210. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.scss +6 -7
  211. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverviewTableLayout.d.ts +1 -1
  212. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverviewTableLayout.js +1 -1
  213. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverviewTableLayout.js.map +1 -1
  214. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.d.ts +0 -1
  215. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +13 -7
  216. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
  217. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js +2 -15
  218. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js.map +1 -1
  219. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopTables.d.ts +0 -1
  220. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopTables.js +14 -19
  221. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopTables.js.map +1 -1
  222. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +19 -21
  223. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
  224. package/dist/containers/Tenant/Diagnostics/TopQueries/QueriesTableWithDrawer.d.ts +22 -0
  225. package/dist/containers/Tenant/Diagnostics/TopQueries/QueriesTableWithDrawer.js +29 -0
  226. package/dist/containers/Tenant/Diagnostics/TopQueries/QueriesTableWithDrawer.js.map +1 -0
  227. package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js +2 -24
  228. package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js.map +1 -1
  229. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js +2 -13
  230. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js.map +1 -1
  231. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/columns.js +10 -13
  232. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/columns.js.map +1 -1
  233. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor.js +0 -2
  234. package/dist/containers/Tenant/Query/QueryEditor/YqlEditor.js.map +1 -1
  235. package/dist/containers/Tenant/Query/QueryEditor/keybindings.d.ts +0 -2
  236. package/dist/containers/Tenant/Query/QueryEditor/keybindings.js +0 -2
  237. package/dist/containers/Tenant/Query/QueryEditor/keybindings.js.map +1 -1
  238. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js +25 -19
  239. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js.map +1 -1
  240. package/dist/containers/Versions/GroupedNodesTree/GroupedNodesTree.d.ts +1 -1
  241. package/dist/containers/Versions/GroupedNodesTree/GroupedNodesTree.js.map +1 -1
  242. package/dist/containers/Versions/NodesTreeTitle/NodesTreeTitle.d.ts +1 -1
  243. package/dist/containers/Versions/NodesTreeTitle/NodesTreeTitle.js.map +1 -1
  244. package/dist/containers/Versions/Versions.js +8 -8
  245. package/dist/containers/Versions/Versions.js.map +1 -1
  246. package/dist/containers/Versions/groupNodes.d.ts +4 -4
  247. package/dist/containers/Versions/groupNodes.js +9 -9
  248. package/dist/containers/Versions/groupNodes.js.map +1 -1
  249. package/dist/containers/Versions/groupNodes.test.js +22 -20
  250. package/dist/containers/Versions/groupNodes.test.js.map +1 -1
  251. package/dist/containers/Versions/types.d.ts +1 -1
  252. package/dist/containers/Versions/utils.d.ts +4 -4
  253. package/dist/containers/Versions/utils.js +15 -15
  254. package/dist/containers/Versions/utils.js.map +1 -1
  255. package/dist/services/api/index.d.ts +6 -3
  256. package/dist/services/api/index.js +19 -2
  257. package/dist/services/api/index.js.map +1 -1
  258. package/dist/services/api/viewer.js +1 -0
  259. package/dist/services/api/viewer.js.map +1 -1
  260. package/dist/store/reducers/capabilities/capabilities.d.ts +125 -0
  261. package/dist/store/reducers/capabilities/capabilities.js +1 -0
  262. package/dist/store/reducers/capabilities/capabilities.js.map +1 -1
  263. package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
  264. package/dist/store/reducers/capabilities/hooks.js +5 -1
  265. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  266. package/dist/store/reducers/clusters/types.d.ts +2 -2
  267. package/dist/store/reducers/clusters/utils.js +3 -3
  268. package/dist/store/reducers/clusters/utils.js.map +1 -1
  269. package/dist/store/reducers/query/__test__/tabPersistence.test.d.ts +1 -0
  270. package/dist/store/reducers/query/__test__/tabPersistence.test.js +62 -0
  271. package/dist/store/reducers/query/__test__/tabPersistence.test.js.map +1 -0
  272. package/dist/store/reducers/query/query.d.ts +14 -1
  273. package/dist/store/reducers/query/query.js +10 -2
  274. package/dist/store/reducers/query/query.js.map +1 -1
  275. package/dist/store/reducers/query/types.d.ts +4 -0
  276. package/dist/store/reducers/tenant/constants.d.ts +1 -0
  277. package/dist/store/reducers/tenant/constants.js +1 -0
  278. package/dist/store/reducers/tenant/constants.js.map +1 -1
  279. package/dist/store/reducers/tenant/tenant.js +2 -1
  280. package/dist/store/reducers/tenant/tenant.js.map +1 -1
  281. package/dist/store/reducers/tenant/types.d.ts +1 -1
  282. package/dist/styles/mixins.scss +6 -0
  283. package/dist/styles/versions.scss +110 -86
  284. package/dist/types/api/capabilities.d.ts +3 -0
  285. package/dist/types/api/nodes.d.ts +3 -0
  286. package/dist/types/api/nodes.js.map +1 -1
  287. package/dist/types/api/systemState.d.ts +3 -0
  288. package/dist/types/api/threads.d.ts +60 -0
  289. package/dist/types/api/threads.js +32 -0
  290. package/dist/types/api/threads.js.map +1 -0
  291. package/dist/utils/constants.d.ts +2 -1
  292. package/dist/utils/constants.js +2 -1
  293. package/dist/utils/constants.js.map +1 -1
  294. package/dist/utils/hooks/index.d.ts +1 -0
  295. package/dist/utils/hooks/index.js +1 -0
  296. package/dist/utils/hooks/index.js.map +1 -1
  297. package/dist/utils/hooks/useScrollPosition.d.ts +7 -0
  298. package/dist/utils/hooks/useScrollPosition.js +100 -0
  299. package/dist/utils/hooks/useScrollPosition.js.map +1 -0
  300. package/dist/utils/metrics/formatMetricLegend.d.ts +1 -0
  301. package/dist/utils/metrics/formatMetricLegend.js +21 -0
  302. package/dist/utils/metrics/formatMetricLegend.js.map +1 -1
  303. package/dist/utils/metrics.d.ts +1 -1
  304. package/dist/utils/metrics.js +1 -1
  305. package/dist/utils/prepareErrorMessage.js +9 -2
  306. package/dist/utils/prepareErrorMessage.js.map +1 -1
  307. package/dist/utils/progress.d.ts +2 -0
  308. package/dist/utils/progress.js +7 -0
  309. package/dist/utils/progress.js.map +1 -1
  310. package/dist/utils/versions/__test__/sortVersions.test.d.ts +1 -0
  311. package/dist/utils/versions/__test__/sortVersions.test.js +106 -0
  312. package/dist/utils/versions/__test__/sortVersions.test.js.map +1 -0
  313. package/dist/utils/versions/clusterVersionColors.d.ts +5 -0
  314. package/dist/utils/versions/clusterVersionColors.js +71 -0
  315. package/dist/utils/versions/clusterVersionColors.js.map +1 -0
  316. package/dist/utils/versions/getVersionsColors.d.ts +5 -4
  317. package/dist/utils/versions/getVersionsColors.js +63 -36
  318. package/dist/utils/versions/getVersionsColors.js.map +1 -1
  319. package/dist/utils/versions/parseNodesToVersionsValues.d.ts +3 -3
  320. package/dist/utils/versions/parseNodesToVersionsValues.js +5 -5
  321. package/dist/utils/versions/parseNodesToVersionsValues.js.map +1 -1
  322. package/dist/utils/versions/sortVersions.d.ts +18 -0
  323. package/dist/utils/versions/sortVersions.js +41 -0
  324. package/dist/utils/versions/sortVersions.js.map +1 -0
  325. package/dist/utils/versions/types.d.ts +22 -0
  326. package/dist/utils/versions/types.js +2 -0
  327. package/dist/utils/versions/types.js.map +1 -0
  328. package/package.json +2 -2
  329. package/dist/components/HoverPopup/HoverPopup.scss +0 -3
  330. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricsCards.js.map +0 -1
  331. package/dist/containers/Tenant/Diagnostics/TenantOverview/getSectionTitle.d.ts +0 -9
  332. package/dist/containers/Tenant/Diagnostics/TenantOverview/getSectionTitle.js +0 -12
  333. package/dist/containers/Tenant/Diagnostics/TenantOverview/getSectionTitle.js.map +0 -1
  334. package/dist/types/versions.d.ts +0 -8
  335. package/dist/types/versions.js +0 -2
  336. package/dist/types/versions.js.map +0 -1
  337. package/dist/utils/clusterVersionColors.d.ts +0 -11
  338. package/dist/utils/clusterVersionColors.js +0 -53
  339. package/dist/utils/clusterVersionColors.js.map +0 -1
@@ -7,5 +7,6 @@
7
7
  "text_usage": "Usage",
8
8
  "text_soft-limit": "Soft Limit",
9
9
  "text_hard-limit": "Hard Limit",
10
- "text_other": "Other"
10
+ "text_other": "Other",
11
+ "text_memory-details": "Memory Details"
11
12
  }
@@ -1,2 +1,2 @@
1
- declare const _default: (key: "text_external-consumption" | "text_allocator-caches" | "text_shared-cache" | "text_memtable" | "text_query-execution" | "text_usage" | "text_soft-limit" | "text_hard-limit" | "text_other", params?: import("@gravity-ui/i18n").Params) => string;
1
+ declare const _default: (key: "text_external-consumption" | "text_allocator-caches" | "text_shared-cache" | "text_memtable" | "text_query-execution" | "text_usage" | "text_soft-limit" | "text_hard-limit" | "text_other" | "text_memory-details", params?: import("@gravity-ui/i18n").Params) => string;
2
2
  export default _default;
@@ -1,12 +1,12 @@
1
1
  import type { TMemoryStats } from '../../types/api/nodes';
2
2
  export declare function calculateAllocatedMemory(stats: TMemoryStats): string;
3
- export declare function getMaybeNumber(value: string | number | undefined): number | undefined;
4
- interface MemorySegment {
3
+ export interface MemorySegment {
5
4
  label: string;
6
5
  key: string;
7
6
  value: number;
8
7
  capacity?: number;
9
8
  isInfo?: boolean;
10
9
  }
10
+ export declare const MEMORY_SEGMENT_COLORS: Record<string, string>;
11
+ export declare function getMemorySegmentColor(key: string): string;
11
12
  export declare function getMemorySegments(stats: TMemoryStats, memoryUsage: number): MemorySegment[];
12
- export {};
@@ -5,9 +5,20 @@ export function calculateAllocatedMemory(stats) {
5
5
  const allocatorCaches = getMaybeNumber(stats.AllocatorCachesMemory) || 0;
6
6
  return String(allocatedMemory + allocatorCaches);
7
7
  }
8
- export function getMaybeNumber(value) {
8
+ function getMaybeNumber(value) {
9
9
  return isNumeric(value) ? parseFloat(String(value)) : undefined;
10
10
  }
11
+ // Memory segment colors using CSS variables for theme support
12
+ export const MEMORY_SEGMENT_COLORS = {
13
+ AllocatorCachesMemory: 'var(--g-color-base-danger-medium)',
14
+ SharedCacheConsumption: 'var(--g-color-base-info-medium)',
15
+ MemTableConsumption: 'var(--g-color-base-warning-medium)',
16
+ QueryExecutionConsumption: 'var(--g-color-base-positive-medium)',
17
+ Other: 'var(--g-color-base-neutral-medium)',
18
+ };
19
+ export function getMemorySegmentColor(key) {
20
+ return MEMORY_SEGMENT_COLORS[key] || MEMORY_SEGMENT_COLORS['Other'];
21
+ }
11
22
  export function getMemorySegments(stats, memoryUsage) {
12
23
  const segments = [
13
24
  {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/MemoryViewer/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/MemoryViewer/utils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
+ import type { FormatProgressViewerValues } from '../../utils/progress';
1
2
  import './ProgressViewer.scss';
2
3
  type ProgressViewerSize = 'xs' | 's' | 'ns' | 'm' | 'n' | 'l' | 'head';
3
- export type FormatProgressViewerValues = (value?: number, capacity?: number) => (string | number | undefined)[];
4
4
  export interface ProgressViewerProps {
5
5
  value?: number | string;
6
6
  capacity?: number | string;
@@ -1,18 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useTheme } from '@gravity-ui/uikit';
3
3
  import { cn } from '../../utils/cn';
4
- import { formatNumber, roundToPrecision } from '../../utils/dataFormatters/dataFormatters';
5
- import { calculateProgressStatus } from '../../utils/progress';
4
+ import { calculateProgressStatus, defaultFormatProgressValues } from '../../utils/progress';
6
5
  import { isNumeric } from '../../utils/utils';
7
6
  import './ProgressViewer.scss';
8
7
  const b = cn('progress-viewer');
9
- const formatValue = (value) => {
10
- return formatNumber(roundToPrecision(Number(value), 2));
11
- };
12
- const defaultFormatValues = (value, total) => {
13
- return [formatValue(value), formatValue(total)];
14
- };
15
- export function ProgressViewer({ value, capacity, formatValues = defaultFormatValues, percents, withOverflow, className, size = 'xs', colorizeProgress, inverseColorize, warningThreshold, dangerThreshold, hideCapacity, }) {
8
+ export function ProgressViewer({ value, capacity, formatValues = defaultFormatProgressValues, percents, withOverflow, className, size = 'xs', colorizeProgress, inverseColorize, warningThreshold, dangerThreshold, hideCapacity, }) {
16
9
  const theme = useTheme();
17
10
  let fillWidth = Math.floor((parseFloat(String(value)) / parseFloat(String(capacity))) * 100) || 0;
18
11
  const rawFillWidth = fillWidth;
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressViewer.js","sourceRoot":"","sources":["../../../src/components/ProgressViewer/ProgressViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProgressViewer.js","sourceRoot":"","sources":["../../../src/components/ProgressViewer/ProgressViewer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,uBAAuB,EAAE,2BAA2B,EAAC,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE5C,OAAO,uBAAuB,CAAC;AAE/B,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC;AAiChC,MAAM,UAAU,cAAc,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,YAAY,GAAG,2BAA2B,EAC1C,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,IAAI,GAAG,IAAI,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,YAAY,GACM;IAClB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,IAAI,SAAS,GACT,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,YAAY,GAAG,SAAS,CAAC;IAC/B,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,IAAI,SAAS,GAAgC,KAAK,EAC9C,YAAY,GAAgC,QAAQ,EACpD,OAAO,GAAG,GAAG,CAAC;IAClB,IAAI,QAAQ,EAAE,CAAC;QACX,SAAS,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;QAC5D,YAAY,GAAG,EAAE,CAAC;QAClB,OAAO,GAAG,EAAE,CAAC;IACjB,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACtB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,MAAM,GAAG,uBAAuB,CAAC;QACnC,SAAS;QACT,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,eAAe;KAClB,CAAC,CAAC;IACH,IAAI,gBAAgB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,SAAS,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAG;QACd,KAAK,EAAE,SAAS,GAAG,GAAG;KACzB,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,OAAO,GAAG,SAAS,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;QACrD,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,CACH,eAAK,SAAS,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAC,EAAE,SAAS,CAAC,aAC/C,cAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,GAAQ,EACnD,eAAM,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YAAG,aAAa,EAAE,GAAQ,IAClD,CACT,CAAC;IACN,CAAC;IAED,OAAO,cAAK,SAAS,EAAE,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,CAAC,IAAI,SAAS,QAAQ,wBAAe,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ProgressContainerProps } from './types';
2
+ export declare function ProgressContainer({ children, displayText, withCapacityUsage, className, width, }: ProgressContainerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Flex, Text } from '@gravity-ui/uikit';
3
+ import { getProgressStyle } from './progressUtils';
4
+ export function ProgressContainer({ children, displayText, withCapacityUsage = false, className, width, }) {
5
+ const progressStyle = getProgressStyle(width);
6
+ return (_jsxs(Flex, { alignItems: "center", gap: "2", className: className, children: [_jsx("div", { style: progressStyle, children: children }), withCapacityUsage && displayText && (_jsx(Text, { variant: "body-1", color: "secondary", children: displayText }))] }));
7
+ }
8
+ //# sourceMappingURL=ProgressContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressContainer.js","sourceRoot":"","sources":["../../../src/components/ProgressWrapper/ProgressContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAGjD,MAAM,UAAU,iBAAiB,CAAC,EAC9B,QAAQ,EACR,WAAW,EACX,iBAAiB,GAAG,KAAK,EACzB,SAAS,EACT,KAAK,GACgB;IACrB,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE9C,OAAO,CACH,MAAC,IAAI,IAAC,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,EAAC,SAAS,EAAE,SAAS,aAClD,cAAK,KAAK,EAAE,aAAa,YAAG,QAAQ,GAAO,EAC1C,iBAAiB,IAAI,WAAW,IAAI,CACjC,KAAC,IAAI,IAAC,OAAO,EAAC,QAAQ,EAAC,KAAK,EAAC,WAAW,YACnC,WAAW,GACT,CACV,IACE,CACV,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ProgressWrapperProps } from './types';
2
+ export declare function ProgressWrapper(props: ProgressWrapperProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { SingleProgress } from './SingleProgress';
3
+ import { StackProgress } from './StackProgress';
4
+ export function ProgressWrapper(props) {
5
+ if ('stack' in props && props.stack) {
6
+ return _jsx(StackProgress, { ...props });
7
+ }
8
+ return _jsx(SingleProgress, { ...props });
9
+ }
10
+ //# sourceMappingURL=ProgressWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressWrapper.js","sourceRoot":"","sources":["../../../src/components/ProgressWrapper/ProgressWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,MAAM,UAAU,eAAe,CAAC,KAA2B;IACvD,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,KAAC,aAAa,OAAK,KAAK,GAAI,CAAC;IACxC,CAAC;IACD,OAAO,KAAC,cAAc,OAAK,KAAK,GAAI,CAAC;AACzC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ProgressWrapperSingleProps } from './types';
2
+ export declare function SingleProgress({ value, capacity, formatValues, className, width, size, withCapacityUsage, }: ProgressWrapperSingleProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Progress } from '@gravity-ui/uikit';
4
+ import { defaultFormatProgressValues } from '../../utils/progress';
5
+ import { safeParseNumber } from '../../utils/utils';
6
+ import { ProgressContainer } from './ProgressContainer';
7
+ import i18n from './i18n';
8
+ import { PROGRESS_SIZE, calculateProgressWidth, formatDisplayValues, formatProgressText, isValidValue, } from './progressUtils';
9
+ export function SingleProgress({ value, capacity, formatValues = defaultFormatProgressValues, className, width, size = PROGRESS_SIZE, withCapacityUsage = false, }) {
10
+ if (!isValidValue(value)) {
11
+ return _jsx("div", { className: className, children: i18n('alert_no-data') });
12
+ }
13
+ const numericValue = safeParseNumber(value);
14
+ const numericCapacity = safeParseNumber(capacity);
15
+ const clampedFillWidth = calculateProgressWidth(numericValue, numericCapacity);
16
+ const [valueText, capacityText] = React.useMemo(() => {
17
+ return formatDisplayValues(value, capacity, formatValues);
18
+ }, [formatValues, value, capacity]);
19
+ const displayText = React.useMemo(() => {
20
+ return formatProgressText(valueText, capacityText, numericCapacity);
21
+ }, [valueText, capacityText, numericCapacity]);
22
+ return (_jsx(ProgressContainer, { displayText: displayText, withCapacityUsage: withCapacityUsage, className: className, width: width, children: _jsx(Progress, { value: clampedFillWidth, theme: "success", size: size }) }));
23
+ }
24
+ //# sourceMappingURL=SingleProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleProgress.js","sourceRoot":"","sources":["../../../src/components/ProgressWrapper/SingleProgress.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAC,2BAA2B,EAAC,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,GACf,MAAM,iBAAiB,CAAC;AAGzB,MAAM,UAAU,cAAc,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,YAAY,GAAG,2BAA2B,EAC1C,SAAS,EACT,KAAK,EACL,IAAI,GAAG,aAAa,EACpB,iBAAiB,GAAG,KAAK,GACA;IACzB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,cAAK,SAAS,EAAE,SAAS,YAAG,IAAI,CAAC,eAAe,CAAC,GAAO,CAAC;IACpE,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAE/E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACjD,OAAO,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEpC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,OAAO,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACxE,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IAE/C,OAAO,CACH,KAAC,iBAAiB,IACd,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,YAEZ,KAAC,QAAQ,IAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAC,SAAS,EAAC,IAAI,EAAE,IAAI,GAAI,GACjD,CACvB,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ProgressWrapperStackProps } from './types';
2
+ export declare function StackProgress({ stack, totalCapacity, formatValues, className, width, size, withCapacityUsage, }: ProgressWrapperStackProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Progress } from '@gravity-ui/uikit';
4
+ import { defaultFormatProgressValues } from '../../utils/progress';
5
+ import { safeParseNumber } from '../../utils/utils';
6
+ import { getMemorySegmentColor } from '../MemoryViewer/utils';
7
+ import { ProgressContainer } from './ProgressContainer';
8
+ import i18n from './i18n';
9
+ import { MAX_PERCENTAGE, PROGRESS_SIZE, formatDisplayValues, formatProgressText, } from './progressUtils';
10
+ export function StackProgress({ stack, totalCapacity, formatValues = defaultFormatProgressValues, className, width, size = PROGRESS_SIZE, withCapacityUsage = false, }) {
11
+ const displaySegments = React.useMemo(() => {
12
+ return stack.filter((segment) => !segment.isInfo && segment.value > 0);
13
+ }, [stack]);
14
+ if (displaySegments.length === 0) {
15
+ return _jsx("div", { className: className, children: i18n('alert_no-data') });
16
+ }
17
+ const totalValue = React.useMemo(() => {
18
+ return displaySegments.reduce((sum, segment) => sum + segment.value, 0);
19
+ }, [displaySegments]);
20
+ const numericTotalCapacity = React.useMemo(() => {
21
+ return safeParseNumber(totalCapacity);
22
+ }, [totalCapacity]);
23
+ const maxValue = numericTotalCapacity || totalValue;
24
+ const stackElements = React.useMemo(() => {
25
+ return displaySegments.map((segment) => ({
26
+ value: maxValue > 0 ? (segment.value / maxValue) * MAX_PERCENTAGE : 0,
27
+ color: getMemorySegmentColor(segment.key),
28
+ title: segment.label,
29
+ }));
30
+ }, [displaySegments, maxValue]);
31
+ const [totalValueText, totalCapacityText] = React.useMemo(() => {
32
+ return formatDisplayValues(totalValue, numericTotalCapacity || totalValue, formatValues);
33
+ }, [formatValues, totalValue, numericTotalCapacity]);
34
+ const displayText = React.useMemo(() => {
35
+ return formatProgressText(totalValueText, totalCapacityText, numericTotalCapacity || 0);
36
+ }, [totalValueText, totalCapacityText, numericTotalCapacity]);
37
+ return (_jsx(ProgressContainer, { displayText: displayText, withCapacityUsage: withCapacityUsage, className: className, width: width, children: _jsx(Progress, { value: MAX_PERCENTAGE, stack: stackElements, size: size }) }));
38
+ }
39
+ //# sourceMappingURL=StackProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackProgress.js","sourceRoot":"","sources":["../../../src/components/ProgressWrapper/StackProgress.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAC,2BAA2B,EAAC,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EACH,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,UAAU,aAAa,CAAC,EAC1B,KAAK,EACL,aAAa,EACb,YAAY,GAAG,2BAA2B,EAC1C,SAAS,EACT,KAAK,EACL,IAAI,GAAG,aAAa,EACpB,iBAAiB,GAAG,KAAK,GACD;IACxB,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,cAAK,SAAS,EAAE,SAAS,YAAG,IAAI,CAAC,eAAe,CAAC,GAAO,CAAC;IACpE,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC5C,OAAO,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,QAAQ,GAAG,oBAAoB,IAAI,UAAU,CAAC;IAEpD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACrE,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC;YACzC,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC,CAAC,CAAC;IACR,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEhC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC3D,OAAO,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,IAAI,UAAU,EAAE,YAAY,CAAC,CAAC;IAC7F,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAErD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,OAAO,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,IAAI,CAAC,CAAC,CAAC;IAC5F,CAAC,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE9D,OAAO,CACH,KAAC,iBAAiB,IACd,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,YAEZ,KAAC,QAAQ,IAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,GAAI,GACrD,CACvB,CAAC;AACN,CAAC"}
@@ -0,0 +1,4 @@
1
+ {
2
+ "alert_no-data": "No data",
3
+ "context_capacity-usage": "{{value}} of {{capacity}}"
4
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: (key: "context_capacity-usage" | "alert_no-data", params?: import("@gravity-ui/i18n").Params) => string;
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import { registerKeysets } from '../../../utils/i18n';
2
+ import en from './en.json';
3
+ const COMPONENT = 'progress-wrapper';
4
+ const keysets = {
5
+ en,
6
+ };
7
+ export default registerKeysets(COMPONENT, keysets);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ProgressWrapper/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,MAAM,SAAS,GAAG,kBAAkB,CAAC;AAErC,MAAM,OAAO,GAAG;IACZ,EAAE;CACL,CAAC;AAEF,eAAe,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { ProgressWrapper } from './ProgressWrapper';
2
+ export { SingleProgress } from './SingleProgress';
3
+ export { StackProgress } from './StackProgress';
4
+ export { ProgressContainer } from './ProgressContainer';
5
+ export type { ProgressWrapperProps, ProgressWrapperSingleProps, ProgressWrapperStackProps, ProgressContainerProps, } from './types';
6
+ export * from './progressUtils';
@@ -0,0 +1,9 @@
1
+ // Main component - public API
2
+ export { ProgressWrapper } from './ProgressWrapper';
3
+ // Individual components - for direct usage if needed
4
+ export { SingleProgress } from './SingleProgress';
5
+ export { StackProgress } from './StackProgress';
6
+ export { ProgressContainer } from './ProgressContainer';
7
+ // Utils - for advanced usage
8
+ export * from './progressUtils';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ProgressWrapper/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElD,qDAAqD;AACrD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAUtD,6BAA6B;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { FormatProgressViewerValues } from '../../utils/progress';
2
+ export declare const DEFAULT_PROGRESS_WIDTH = 400;
3
+ export declare const MAX_PERCENTAGE = 100;
4
+ export declare const MIN_PERCENTAGE = 0;
5
+ export declare const PROGRESS_SIZE = "s";
6
+ export declare const isValidValue: (val?: number | string) => boolean;
7
+ export declare function calculateProgressWidth(value: number, capacity: number): number;
8
+ export declare function getProgressStyle(width?: number | 'full'): {
9
+ width: string;
10
+ flex: string;
11
+ };
12
+ export declare function formatProgressText(valueText: string | number | undefined, capacityText: string | number | undefined, numericCapacity: number): string;
13
+ export declare function formatDisplayValues(value: number | string | undefined, capacity: number | string | undefined, formatValues?: FormatProgressViewerValues): [string | number | undefined, string | number | undefined];
@@ -0,0 +1,35 @@
1
+ import { isNumeric, safeParseNumber } from '../../utils/utils';
2
+ import i18n from './i18n';
3
+ // Constants that were previously in TenantStorage/constants
4
+ export const DEFAULT_PROGRESS_WIDTH = 400;
5
+ export const MAX_PERCENTAGE = 100;
6
+ export const MIN_PERCENTAGE = 0;
7
+ export const PROGRESS_SIZE = 's';
8
+ export const isValidValue = (val) => isNumeric(val) && safeParseNumber(val) >= 0;
9
+ export function calculateProgressWidth(value, capacity) {
10
+ const rawPercentage = capacity > 0 ? Math.floor((value / capacity) * MAX_PERCENTAGE) : MAX_PERCENTAGE;
11
+ const fillWidth = Math.max(MIN_PERCENTAGE, rawPercentage);
12
+ return Math.min(fillWidth, MAX_PERCENTAGE);
13
+ }
14
+ export function getProgressStyle(width) {
15
+ const isFullWidth = width === 'full';
16
+ const validatedWidth = isFullWidth ? 0 : Math.max(0, width || DEFAULT_PROGRESS_WIDTH);
17
+ return {
18
+ width: isFullWidth ? '100%' : `${validatedWidth}px`,
19
+ flex: isFullWidth ? '1' : 'none',
20
+ };
21
+ }
22
+ export function formatProgressText(valueText, capacityText, numericCapacity) {
23
+ if (numericCapacity <= 0) {
24
+ return String(valueText);
25
+ }
26
+ return i18n('context_capacity-usage', { value: valueText, capacity: capacityText });
27
+ }
28
+ export function formatDisplayValues(value, capacity, formatValues) {
29
+ if (formatValues) {
30
+ const result = formatValues(Number(value), Number(capacity));
31
+ return [result[0], result[1]];
32
+ }
33
+ return [value, capacity];
34
+ }
35
+ //# sourceMappingURL=progressUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressUtils.js","sourceRoot":"","sources":["../../../src/components/ProgressWrapper/progressUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAE7D,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAqB,EAAW,EAAE,CAC3D,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEhD,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,QAAgB;IAClE,MAAM,aAAa,GACf,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IACpF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAuB;IACpD,MAAM,WAAW,GAAG,KAAK,KAAK,MAAM,CAAC;IACrC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,sBAAsB,CAAC,CAAC;IAEtF,OAAO;QACH,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI;QACnD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;KACnC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kBAAkB,CAC9B,SAAsC,EACtC,YAAyC,EACzC,eAAuB;IAEvB,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC,wBAAwB,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,KAAkC,EAClC,QAAqC,EACrC,YAAyC;IAEzC,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAA+D,CAAC;IAChG,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { ProgressSize } from '@gravity-ui/uikit';
2
+ import type { FormatProgressViewerValues } from '../../utils/progress';
3
+ import type { MemorySegment } from '../MemoryViewer/utils';
4
+ export interface ProgressWrapperBaseProps {
5
+ formatValues?: FormatProgressViewerValues;
6
+ className?: string;
7
+ width?: number | 'full';
8
+ size?: ProgressSize;
9
+ withCapacityUsage?: boolean;
10
+ }
11
+ export interface ProgressWrapperSingleProps extends ProgressWrapperBaseProps {
12
+ value?: number | string;
13
+ capacity?: number | string;
14
+ stack?: never;
15
+ }
16
+ export interface ProgressWrapperStackProps extends ProgressWrapperBaseProps {
17
+ stack: MemorySegment[];
18
+ totalCapacity?: number | string;
19
+ value?: never;
20
+ capacity?: never;
21
+ }
22
+ export type ProgressWrapperProps = ProgressWrapperSingleProps | ProgressWrapperStackProps;
23
+ export interface ProgressContainerProps {
24
+ children: React.ReactNode;
25
+ displayText?: string;
26
+ withCapacityUsage?: boolean;
27
+ className?: string;
28
+ width?: number | 'full';
29
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/ProgressWrapper/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import './QueriesActivityAlert.scss';
2
+ interface QueriesActivityAlertProps {
3
+ runningQueriesCount: number;
4
+ uniqueApplications: number;
5
+ uniqueUsers: number;
6
+ }
7
+ export declare function QueriesActivityAlert({ runningQueriesCount, uniqueApplications, uniqueUsers, }: QueriesActivityAlertProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CirclePlay, Display, Person } from '@gravity-ui/icons';
3
+ import { Button, Card, Flex, Icon, Label, Text } from '@gravity-ui/uikit';
4
+ import { useHistory, useLocation } from 'react-router-dom';
5
+ import { TenantTabsGroups, getTenantPath } from '../../containers/Tenant/TenantPages';
6
+ import { parseQuery } from '../../routes';
7
+ import { TENANT_DIAGNOSTICS_TABS_IDS } from '../../store/reducers/tenant/constants';
8
+ import { cn } from '../../utils/cn';
9
+ import i18n from './i18n';
10
+ import './QueriesActivityAlert.scss';
11
+ const b = cn('queries-activity-alert');
12
+ export function QueriesActivityAlert({ runningQueriesCount, uniqueApplications, uniqueUsers, }) {
13
+ const history = useHistory();
14
+ const location = useLocation();
15
+ const handleOpenRunningQueries = () => {
16
+ const queryParams = parseQuery(location);
17
+ const path = getTenantPath({
18
+ ...queryParams,
19
+ [TenantTabsGroups.diagnosticsTab]: TENANT_DIAGNOSTICS_TABS_IDS.topQueries,
20
+ queryMode: 'running',
21
+ });
22
+ history.push(path);
23
+ };
24
+ return (_jsx("div", { className: b(), children: _jsx(Card, { className: b('card'), type: "container", view: "outlined", children: _jsxs(Flex, { direction: "row", justifyContent: "space-between", alignItems: "center", gap: 4, className: b('content'), children: [_jsx(Flex, { children: _jsx(Text, { variant: "subheader-2", className: b('title'), children: i18n('title_queries-activity') }) }), _jsxs(Flex, { wrap: true, alignItems: "center", gap: 1, className: b('stats'), children: [_jsx(Label, { theme: runningQueriesCount > 0 ? 'success' : 'unknown', icon: _jsx(Icon, { data: CirclePlay }), size: "s", value: String(runningQueriesCount), children: i18n('field_running-queries') }), _jsx(Label, { theme: "unknown", icon: _jsx(Icon, { data: Display }), size: "s", value: String(uniqueApplications), children: i18n('field_applications') }), _jsx(Label, { theme: "unknown", icon: _jsx(Icon, { data: Person }), size: "s", value: String(uniqueUsers), children: i18n('field_users') }), runningQueriesCount > 0 && (_jsx(Button, { view: "outlined", size: "s", onClick: handleOpenRunningQueries, className: b('open-queries-button'), children: i18n('action_open-running-queries') }))] })] }) }) }));
25
+ }
26
+ //# sourceMappingURL=QueriesActivityAlert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueriesActivityAlert.js","sourceRoot":"","sources":["../../../src/components/QueriesActivityBar/QueriesActivityAlert.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ .queries-activity-alert {
2
+ $b: &;
3
+
4
+ border-radius: var(--g-border-radius-s);
5
+
6
+ &__card {
7
+ width: 100%;
8
+ padding: 0;
9
+
10
+ border: 1px solid var(--g-color-line-generic);
11
+ border-radius: var(--g-border-radius-s);
12
+ }
13
+
14
+ &__content {
15
+ padding: calc(var(--g-spacing-5) - 1px) var(--g-spacing-4);
16
+ }
17
+
18
+ &__title {
19
+ color: var(--g-color-text-primary);
20
+ }
21
+
22
+ &__open-queries-button {
23
+ margin-left: var(--g-spacing-1);
24
+ }
25
+ }
@@ -1,100 +1,20 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { CirclePlay, Clock, Display, Person, Rocket } from '@gravity-ui/icons';
4
- import { ArrowToggle, Button, Card, Flex, Icon, Label, Text } from '@gravity-ui/uikit';
5
- import { useHistory, useLocation } from 'react-router-dom';
6
- import { TenantTabsGroups, getTenantPath } from '../../containers/Tenant/TenantPages';
7
- import { parseQuery } from '../../routes';
8
- import { topQueriesApi } from '../../store/reducers/executeTopQueries/executeTopQueries';
9
- import { TENANT_DIAGNOSTICS_TABS_IDS } from '../../store/reducers/tenant/constants';
10
- import { cn } from '../../utils/cn';
11
- import { useAutoRefreshInterval } from '../../utils/hooks';
12
- import { chartApi } from '../MetricChart/reducer';
13
- import { QueriesActivityCharts } from './QueriesActivityCharts';
14
- import i18n from './i18n';
15
- import { calculateLatency, calculateQueriesPerSecond, formatTrendValue } from './utils';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { QueriesActivityAlert } from './QueriesActivityAlert';
3
+ import { QueriesActivityExpandable } from './QueriesActivityExpandable';
4
+ import { QueriesActivitySkeleton } from './QueriesActivitySkeleton';
5
+ import { useQueriesActivityData } from './useQueriesActivityData';
16
6
  import './QueriesActivityBar.scss';
17
- const b = cn('queries-activity-bar');
18
7
  export function QueriesActivityBar({ tenantName }) {
19
- var _a, _b, _c, _d, _e, _f, _g;
20
- const history = useHistory();
21
- const location = useLocation();
22
- const [autoRefreshInterval] = useAutoRefreshInterval();
23
- const [expanded, setExpanded] = React.useState(false);
24
- const [queriesTimeFrame] = React.useState('1h');
25
- const [latenciesTimeFrame] = React.useState('1h');
26
- const [isActivityBarHidden, setIsActivityBarHidden] = React.useState(true);
27
- // Refetch data only if activity bar successfully loaded
28
- const shouldRefresh = isActivityBarHidden ? 0 : autoRefreshInterval;
29
- /**
30
- * Activity bar should be hidden, if charts are not enabled:
31
- * 1. GraphShard is not enabled
32
- * 2. ydb version does not have /viewer/json/render endpoint (400, 404, CORS error, etc.)
33
- *
34
- * If at least one chart successfully loaded, activity bar should be shown
35
- * @link https://github.com/ydb-platform/ydb-embedded-ui/issues/659
36
- * @todo disable only for specific errors ('GraphShard is not enabled') after ydb-stable-24 is generally used
37
- */
38
- const handleChartDataStatusChange = React.useCallback((chartStatus) => {
39
- if (chartStatus === 'success') {
40
- setIsActivityBarHidden(false);
41
- }
42
- }, []);
43
- // Fetch running queries
44
- const { data: runningQueriesData } = topQueriesApi.useGetRunningQueriesQuery({
45
- database: tenantName,
46
- filters: {},
47
- }, { pollingInterval: shouldRefresh });
48
- // Fetch queries per second data for header metrics
49
- const { data: queriesPerSecData } = chartApi.useGetChartDataQuery({
50
- database: tenantName,
51
- metrics: [{ target: 'queries.requests' }],
52
- timeFrame: queriesTimeFrame,
53
- maxDataPoints: 30,
54
- }, { pollingInterval: shouldRefresh });
55
- // Fetch latency data for header metrics
56
- const { data: latencyData } = chartApi.useGetChartDataQuery({
57
- database: tenantName,
58
- metrics: [{ target: 'queries.latencies.p99' }],
59
- timeFrame: latenciesTimeFrame,
60
- maxDataPoints: 30,
61
- }, { pollingInterval: shouldRefresh });
62
- const runningQueriesCount = ((_c = (_b = (_a = runningQueriesData === null || runningQueriesData === void 0 ? void 0 : runningQueriesData.resultSets) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.result) === null || _c === void 0 ? void 0 : _c.length) || 0;
63
- const qps = React.useMemo(() => { var _a, _b; return calculateQueriesPerSecond((_b = (_a = queriesPerSecData === null || queriesPerSecData === void 0 ? void 0 : queriesPerSecData.metrics) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.data); }, [(_e = (_d = queriesPerSecData === null || queriesPerSecData === void 0 ? void 0 : queriesPerSecData.metrics) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.data]);
64
- const latency = React.useMemo(() => { var _a, _b; return calculateLatency((_b = (_a = latencyData === null || latencyData === void 0 ? void 0 : latencyData.metrics) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.data); }, [(_g = (_f = latencyData === null || latencyData === void 0 ? void 0 : latencyData.metrics) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g.data]);
65
- // Calculate unique applications and users
66
- const uniqueApplications = React.useMemo(() => {
67
- var _a, _b, _c;
68
- const apps = new Set();
69
- (_c = (_b = (_a = runningQueriesData === null || runningQueriesData === void 0 ? void 0 : runningQueriesData.resultSets) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.result) === null || _c === void 0 ? void 0 : _c.forEach((row) => {
70
- if (row.ApplicationName) {
71
- apps.add(String(row.ApplicationName));
72
- }
73
- });
74
- return apps.size;
75
- }, [runningQueriesData]);
76
- const uniqueUsers = React.useMemo(() => {
77
- var _a, _b, _c;
78
- const users = new Set();
79
- (_c = (_b = (_a = runningQueriesData === null || runningQueriesData === void 0 ? void 0 : runningQueriesData.resultSets) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.result) === null || _c === void 0 ? void 0 : _c.forEach((row) => {
80
- if (row.UserSID) {
81
- users.add(String(row.UserSID));
82
- }
83
- });
84
- return users.size;
85
- }, [runningQueriesData]);
86
- const handleOpenRunningQueries = () => {
87
- const queryParams = parseQuery(location);
88
- const path = getTenantPath({
89
- ...queryParams,
90
- [TenantTabsGroups.diagnosticsTab]: TENANT_DIAGNOSTICS_TABS_IDS.topQueries,
91
- queryMode: 'running',
92
- });
93
- history.push(path);
94
- };
95
- const handleToggleExpanded = () => {
96
- setExpanded(!expanded);
97
- };
98
- return (_jsx("div", { className: b({ expanded }), style: { display: isActivityBarHidden ? 'none' : undefined }, children: _jsxs(Card, { className: b('card'), type: "container", view: expanded ? 'outlined' : 'raised', children: [_jsxs("div", { className: b('header'), onClick: handleToggleExpanded, children: [_jsxs(Flex, { justifyContent: "space-between", className: b('content-wrapper'), children: [_jsxs(Flex, { direction: "column", className: b('title-section'), children: [_jsx(Text, { variant: "subheader-2", className: b('title'), children: i18n('title_queries-activity') }), _jsx(Text, { color: "secondary", variant: "caption-2", className: b('subtitle'), children: i18n('context_monitor-changes-realtime') })] }), _jsxs("div", { className: b('metrics'), children: [_jsx(Label, { theme: runningQueriesCount > 0 ? 'success' : 'unknown', size: "s", icon: _jsx(Icon, { data: CirclePlay, size: 14 }), children: runningQueriesCount }), _jsx(Label, { theme: "clear", size: "s", icon: _jsx(Icon, { data: Rocket, size: 14 }), value: formatTrendValue(qps.trend.value), children: i18n('value_per-sec', { count: qps.value }) }), _jsx(Label, { theme: "clear", size: "s", icon: _jsx(Icon, { data: Clock, size: 14 }), value: formatTrendValue(latency.trend.value), children: i18n('value_ms', { time: latency.value }) })] })] }), _jsx(ArrowToggle, { direction: expanded ? 'top' : 'bottom' })] }), expanded && (_jsx("div", { className: b('content'), children: _jsxs("div", { className: b('stats'), children: [_jsx(Label, { theme: "unknown", icon: _jsx(Icon, { data: CirclePlay }), size: "s", value: String(runningQueriesCount), children: i18n('field_running-queries') }), _jsx(Label, { theme: "unknown", icon: _jsx(Icon, { data: Display }), size: "s", value: String(uniqueApplications), children: i18n('field_applications') }), _jsx(Label, { theme: "unknown", icon: _jsx(Icon, { data: Person }), size: "s", value: String(uniqueUsers), children: i18n('field_users') }), _jsx(Button, { view: "outlined", size: "s", onClick: handleOpenRunningQueries, className: b('open-queries-button'), children: i18n('action_open-running-queries') })] }) })), _jsx(QueriesActivityCharts, { tenantName: tenantName, expanded: expanded, onChartDataStatusChange: handleChartDataStatusChange })] }) }));
8
+ const { runningQueriesCount, uniqueApplications, uniqueUsers, qps, latency, areChartsAvailable } = useQueriesActivityData(tenantName);
9
+ // Show skeleton while determining chart availability
10
+ if (areChartsAvailable === null) {
11
+ return _jsx(QueriesActivitySkeleton, {});
12
+ }
13
+ // Render compact alert-style mode when charts are not available
14
+ if (areChartsAvailable === false) {
15
+ return (_jsx(QueriesActivityAlert, { runningQueriesCount: runningQueriesCount, uniqueApplications: uniqueApplications, uniqueUsers: uniqueUsers }));
16
+ }
17
+ // Render expandable mode when charts are available
18
+ return (_jsx(QueriesActivityExpandable, { tenantName: tenantName, runningQueriesCount: runningQueriesCount, uniqueApplications: uniqueApplications, uniqueUsers: uniqueUsers, qps: qps, latency: latency }));
99
19
  }
100
20
  //# sourceMappingURL=QueriesActivityBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueriesActivityBar.js","sourceRoot":"","sources":["../../../src/components/QueriesActivityBar/QueriesActivityBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueriesActivityBar.js","sourceRoot":"","sources":["../../../src/components/QueriesActivityBar/QueriesActivityBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,yBAAyB,EAAC,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAEhE,OAAO,2BAA2B,CAAC;AAMnC,MAAM,UAAU,kBAAkB,CAAC,EAAC,UAAU,EAA0B;IACpE,MAAM,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,EAAC,GAC1F,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAEvC,qDAAqD;IACrD,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAC9B,OAAO,KAAC,uBAAuB,KAAG,CAAC;IACvC,CAAC;IAED,gEAAgE;IAChE,IAAI,kBAAkB,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO,CACH,KAAC,oBAAoB,IACjB,mBAAmB,EAAE,mBAAmB,EACxC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,WAAW,GAC1B,CACL,CAAC;IACN,CAAC;IAED,mDAAmD;IACnD,OAAO,CACH,KAAC,yBAAyB,IACtB,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,GAClB,CACL,CAAC;AACN,CAAC"}