ydb-embedded-ui 8.24.1 → 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 (363) hide show
  1. package/dist/assets/icons/overview.svg +1 -0
  2. package/dist/components/ConnectToDB/ConnectToDBDialog.js +17 -2
  3. package/dist/components/ConnectToDB/ConnectToDBDialog.js.map +1 -1
  4. package/dist/components/ConnectToDB/__test__/utils.test.d.ts +1 -0
  5. package/dist/components/ConnectToDB/__test__/utils.test.js +34 -0
  6. package/dist/components/ConnectToDB/__test__/utils.test.js.map +1 -0
  7. package/dist/components/ConnectToDB/snippets.d.ts +1 -1
  8. package/dist/components/ConnectToDB/snippets.js +6 -1
  9. package/dist/components/ConnectToDB/snippets.js.map +1 -1
  10. package/dist/components/ConnectToDB/utils.d.ts +1 -0
  11. package/dist/components/ConnectToDB/utils.js +19 -0
  12. package/dist/components/ConnectToDB/utils.js.map +1 -0
  13. package/dist/components/CopyLinkButton/CopyLinkButton.d.ts +6 -0
  14. package/dist/components/CopyLinkButton/CopyLinkButton.js +33 -0
  15. package/dist/components/CopyLinkButton/CopyLinkButton.js.map +1 -0
  16. package/dist/components/CopyLinkButton/CopyLinkButton.scss +6 -0
  17. package/dist/components/CopyLinkButton/i18n/en.json +4 -0
  18. package/dist/components/CopyLinkButton/i18n/index.d.ts +2 -0
  19. package/dist/components/CopyLinkButton/i18n/index.js +5 -0
  20. package/dist/components/CopyLinkButton/i18n/index.js.map +1 -0
  21. package/dist/components/DebouncedInput/DebouncedTextInput.d.ts +6 -0
  22. package/dist/components/DebouncedInput/DebouncedTextInput.js +8 -0
  23. package/dist/components/DebouncedInput/DebouncedTextInput.js.map +1 -0
  24. package/dist/components/DoughnutMetrics/DoughnutMetrics.d.ts +3 -1
  25. package/dist/components/DoughnutMetrics/DoughnutMetrics.js +13 -12
  26. package/dist/components/DoughnutMetrics/DoughnutMetrics.js.map +1 -1
  27. package/dist/components/DoughnutMetrics/DoughnutMetrics.scss +14 -7
  28. package/dist/components/Drawer/Drawer.d.ts +30 -0
  29. package/dist/components/Drawer/Drawer.js +83 -0
  30. package/dist/components/Drawer/Drawer.js.map +1 -0
  31. package/dist/components/Drawer/Drawer.scss +38 -0
  32. package/dist/components/Drawer/DrawerContext.d.ts +13 -0
  33. package/dist/components/Drawer/DrawerContext.js +47 -0
  34. package/dist/components/Drawer/DrawerContext.js.map +1 -0
  35. package/dist/components/Drawer/index.d.ts +3 -0
  36. package/dist/components/Drawer/index.js +3 -0
  37. package/dist/components/Drawer/index.js.map +1 -0
  38. package/dist/components/EmptyState/EmptyState.scss +3 -0
  39. package/dist/components/EntityStatusNew/EntityStatus.d.ts +23 -0
  40. package/dist/components/EntityStatusNew/EntityStatus.js +47 -0
  41. package/dist/components/EntityStatusNew/EntityStatus.js.map +1 -0
  42. package/dist/components/EntityStatusNew/EntityStatus.scss +10 -0
  43. package/dist/components/EntityStatusNew/i18n/en.json +14 -0
  44. package/dist/components/EntityStatusNew/i18n/index.d.ts +2 -0
  45. package/dist/components/EntityStatusNew/i18n/index.js +5 -0
  46. package/dist/components/EntityStatusNew/i18n/index.js.map +1 -0
  47. package/dist/components/EntityStatusNew/utils.d.ts +2 -0
  48. package/dist/components/EntityStatusNew/utils.js +23 -0
  49. package/dist/components/EntityStatusNew/utils.js.map +1 -0
  50. package/dist/components/HoverPopup/HoverPopup.d.ts +2 -2
  51. package/dist/components/HoverPopup/HoverPopup.js +3 -3
  52. package/dist/components/HoverPopup/HoverPopup.js.map +1 -1
  53. package/dist/components/JsonViewer/JsonViewer.d.ts +7 -3
  54. package/dist/components/JsonViewer/JsonViewer.js +11 -1
  55. package/dist/components/JsonViewer/JsonViewer.js.map +1 -1
  56. package/dist/components/JsonViewer/unipika/unipika.js +9 -1
  57. package/dist/components/JsonViewer/unipika/unipika.js.map +1 -1
  58. package/dist/components/MemoryViewer/MemoryViewer.js +2 -2
  59. package/dist/components/MemoryViewer/MemoryViewer.js.map +1 -1
  60. package/dist/components/MetricChart/getDefaultDataFormatter.js +4 -11
  61. package/dist/components/MetricChart/getDefaultDataFormatter.js.map +1 -1
  62. package/dist/components/MultilineTableHeader/MultilineTableHeader.d.ts +6 -0
  63. package/dist/components/MultilineTableHeader/MultilineTableHeader.js +11 -0
  64. package/dist/components/MultilineTableHeader/MultilineTableHeader.js.map +1 -0
  65. package/dist/components/MultilineTableHeader/MultilineTableHeader.scss +3 -0
  66. package/dist/components/PaginatedTable/PaginatedTable.d.ts +5 -3
  67. package/dist/components/PaginatedTable/PaginatedTable.js +17 -8
  68. package/dist/components/PaginatedTable/PaginatedTable.js.map +1 -1
  69. package/dist/components/PaginatedTable/PaginatedTable.scss +33 -14
  70. package/dist/components/PaginatedTable/TableChunk.d.ts +4 -3
  71. package/dist/components/PaginatedTable/TableChunk.js +10 -5
  72. package/dist/components/PaginatedTable/TableChunk.js.map +1 -1
  73. package/dist/components/PaginatedTable/TableHead.js +7 -1
  74. package/dist/components/PaginatedTable/TableHead.js.map +1 -1
  75. package/dist/components/PaginatedTable/TableRow.d.ts +2 -4
  76. package/dist/components/PaginatedTable/TableRow.js +6 -5
  77. package/dist/components/PaginatedTable/TableRow.js.map +1 -1
  78. package/dist/components/PaginatedTable/types.d.ts +1 -1
  79. package/dist/components/PaginatedTable/useScrollBasedChunks.js +7 -0
  80. package/dist/components/PaginatedTable/useScrollBasedChunks.js.map +1 -1
  81. package/dist/components/Search/Search.d.ts +2 -1
  82. package/dist/components/Search/Search.js +3 -21
  83. package/dist/components/Search/Search.js.map +1 -1
  84. package/dist/components/StatusIcon/StatusIcon.js +3 -1
  85. package/dist/components/StatusIcon/StatusIcon.js.map +1 -1
  86. package/dist/components/StatusIcon/StatusIcon.scss +6 -0
  87. package/dist/components/StatusIconNew/StatusIcon.d.ts +7 -0
  88. package/dist/components/StatusIconNew/StatusIcon.js +19 -0
  89. package/dist/components/StatusIconNew/StatusIcon.js.map +1 -0
  90. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js +12 -1
  91. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js.map +1 -1
  92. package/dist/components/Tags/Tags.d.ts +1 -3
  93. package/dist/components/Tags/Tags.js +3 -5
  94. package/dist/components/Tags/Tags.js.map +1 -1
  95. package/dist/components/VDisk/VDisk.js +1 -1
  96. package/dist/components/VDisk/VDisk.js.map +1 -1
  97. package/dist/components/nodesColumns/columns.js +1 -0
  98. package/dist/components/nodesColumns/columns.js.map +1 -1
  99. package/dist/containers/Cluster/Cluster.js +8 -6
  100. package/dist/containers/Cluster/Cluster.js.map +1 -1
  101. package/dist/containers/Cluster/Cluster.scss +7 -8
  102. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.d.ts +4 -2
  103. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +27 -17
  104. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
  105. package/dist/containers/Cluster/ClusterInfo/ClusterInfo.scss +2 -8
  106. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.d.ts +8 -0
  107. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.js +41 -0
  108. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.js.map +1 -0
  109. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.scss +14 -0
  110. package/dist/containers/Cluster/ClusterInfo/utils/utils.d.ts +3 -0
  111. package/dist/containers/Cluster/ClusterInfo/utils/utils.js +21 -11
  112. package/dist/containers/Cluster/ClusterInfo/utils/utils.js.map +1 -1
  113. package/dist/containers/Cluster/{ClusterDashboard/ClusterDashboard.d.ts → ClusterOverview/ClusterOverview.d.ts} +6 -3
  114. package/dist/containers/Cluster/ClusterOverview/ClusterOverview.js +63 -0
  115. package/dist/containers/Cluster/ClusterOverview/ClusterOverview.js.map +1 -0
  116. package/dist/containers/Cluster/ClusterOverview/ClusterOverview.scss +70 -0
  117. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.d.ts +21 -0
  118. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js +32 -0
  119. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js.map +1 -0
  120. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.d.ts +5 -0
  121. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js +30 -0
  122. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js.map +1 -0
  123. package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/components/ClusterMetricsMemory.d.ts +1 -1
  124. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js +24 -0
  125. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js.map +1 -0
  126. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.d.ts +7 -0
  127. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js +28 -0
  128. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js.map +1 -0
  129. package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/components/ClusterMetricsStorage.d.ts +2 -1
  130. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js +24 -0
  131. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js.map +1 -0
  132. package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/shared.d.ts +6 -3
  133. package/dist/containers/Cluster/ClusterOverview/shared.js.map +1 -0
  134. package/dist/containers/Cluster/ClusterOverview/utils.d.ts +19 -0
  135. package/dist/containers/Cluster/ClusterOverview/utils.js +32 -0
  136. package/dist/containers/Cluster/ClusterOverview/utils.js.map +1 -0
  137. package/dist/containers/Cluster/i18n/en.json +19 -9
  138. package/dist/containers/Cluster/i18n/index.d.ts +1 -1
  139. package/dist/containers/Cluster/utils.d.ts +2 -4
  140. package/dist/containers/Cluster/utils.js +9 -6
  141. package/dist/containers/Cluster/utils.js.map +1 -1
  142. package/dist/containers/Header/Header.js +4 -5
  143. package/dist/containers/Header/Header.js.map +1 -1
  144. package/dist/containers/Header/breadcrumbs.js +1 -4
  145. package/dist/containers/Header/breadcrumbs.js.map +1 -1
  146. package/dist/containers/Nodes/NodesTable.js +3 -2
  147. package/dist/containers/Nodes/NodesTable.js.map +1 -1
  148. package/dist/containers/Nodes/shared.d.ts +1 -2
  149. package/dist/containers/Nodes/shared.js +0 -9
  150. package/dist/containers/Nodes/shared.js.map +1 -1
  151. package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js +3 -3
  152. package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js.map +1 -1
  153. package/dist/containers/Storage/EmptyFilter/EmptyFilter.d.ts +2 -1
  154. package/dist/containers/Storage/EmptyFilter/EmptyFilter.js +1 -1
  155. package/dist/containers/Storage/EmptyFilter/EmptyFilter.js.map +1 -1
  156. package/dist/containers/Storage/PDisk/PDisk.d.ts +2 -1
  157. package/dist/containers/Storage/PDisk/PDisk.js +2 -2
  158. package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
  159. package/dist/containers/Storage/PDisk/PDisk.scss +5 -1
  160. package/dist/containers/Storage/PaginatedStorageGroups.js +2 -1
  161. package/dist/containers/Storage/PaginatedStorageGroups.js.map +1 -1
  162. package/dist/containers/Storage/PaginatedStorageNodes.js +19 -5
  163. package/dist/containers/Storage/PaginatedStorageNodes.js.map +1 -1
  164. package/dist/containers/Storage/StorageGroups/PaginatedStorageGroupsTable.js +1 -1
  165. package/dist/containers/Storage/StorageGroups/PaginatedStorageGroupsTable.js.map +1 -1
  166. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.d.ts +4 -3
  167. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.js +2 -2
  168. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.js.map +1 -1
  169. package/dist/containers/Storage/StorageNodes/columns/StorageNodesColumns.scss +1 -4
  170. package/dist/containers/Storage/StorageNodes/columns/columns.d.ts +1 -1
  171. package/dist/containers/Storage/StorageNodes/columns/columns.js +6 -11
  172. package/dist/containers/Storage/StorageNodes/columns/columns.js.map +1 -1
  173. package/dist/containers/Storage/StorageNodes/columns/hooks.d.ts +1 -1
  174. package/dist/containers/Storage/StorageNodes/columns/hooks.js +8 -3
  175. package/dist/containers/Storage/StorageNodes/columns/hooks.js.map +1 -1
  176. package/dist/containers/Storage/StorageNodes/columns/types.d.ts +5 -0
  177. package/dist/containers/Storage/StorageNodes/getNodes.js +1 -0
  178. package/dist/containers/Storage/StorageNodes/getNodes.js.map +1 -1
  179. package/dist/containers/Storage/shared.d.ts +0 -2
  180. package/dist/containers/Storage/shared.js +0 -9
  181. package/dist/containers/Storage/shared.js.map +1 -1
  182. package/dist/containers/Storage/types.d.ts +8 -0
  183. package/dist/containers/Storage/utils/index.d.ts +1 -0
  184. package/dist/containers/Storage/utils/index.js +1 -0
  185. package/dist/containers/Storage/utils/index.js.map +1 -1
  186. package/dist/containers/Storage/utils/useStorageColumnsSettings.d.ts +6 -0
  187. package/dist/containers/Storage/utils/useStorageColumnsSettings.js +35 -0
  188. package/dist/containers/Storage/utils/useStorageColumnsSettings.js.map +1 -0
  189. package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -1
  190. package/dist/containers/Tenant/Diagnostics/Diagnostics.js +16 -17
  191. package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
  192. package/dist/containers/Tenant/Diagnostics/Diagnostics.scss +8 -2
  193. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +6 -33
  194. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +40 -6
  195. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
  196. package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.d.ts +0 -5
  197. package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.js +0 -1
  198. package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.js.map +1 -1
  199. package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.scss +0 -4
  200. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js +2 -1
  201. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js.map +1 -1
  202. package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.scss +1 -15
  203. package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js +24 -10
  204. package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js.map +1 -1
  205. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +3 -3
  206. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  207. package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js +2 -1
  208. package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js.map +1 -1
  209. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js +3 -1
  210. package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js.map +1 -1
  211. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/columns.js +7 -1
  212. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/columns.js.map +1 -1
  213. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/constants.js +1 -0
  214. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/constants.js.map +1 -1
  215. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.d.ts +9 -0
  216. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.js +37 -0
  217. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.js.map +1 -0
  218. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.d.ts +10 -0
  219. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.js +50 -0
  220. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.js.map +1 -0
  221. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.d.ts +9 -0
  222. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.js +40 -0
  223. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.js.map +1 -0
  224. package/dist/containers/Tenant/Diagnostics/TopQueries/utils.d.ts +0 -10
  225. package/dist/containers/Tenant/Diagnostics/TopQueries/utils.js +0 -29
  226. package/dist/containers/Tenant/Diagnostics/TopQueries/utils.js.map +1 -1
  227. package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.d.ts +7 -0
  228. package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.js +14 -0
  229. package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.js.map +1 -0
  230. package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.d.ts +9 -0
  231. package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js +140 -0
  232. package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js.map +1 -0
  233. package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.scss +28 -0
  234. package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.d.ts +14 -0
  235. package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.js +68 -0
  236. package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.js.map +1 -0
  237. package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.d.ts +1 -0
  238. package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.js +122 -0
  239. package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.js.map +1 -0
  240. package/dist/containers/Tenant/Diagnostics/TopicData/columns/Columns.scss +22 -0
  241. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.d.ts +7 -0
  242. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +154 -0
  243. package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -0
  244. package/dist/containers/Tenant/Diagnostics/TopicData/getData.d.ts +15 -0
  245. package/dist/containers/Tenant/Diagnostics/TopicData/getData.js +54 -0
  246. package/dist/containers/Tenant/Diagnostics/TopicData/getData.js.map +1 -0
  247. package/dist/containers/Tenant/Diagnostics/TopicData/i18n/en.json +28 -0
  248. package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.d.ts +2 -0
  249. package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.js +5 -0
  250. package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.js.map +1 -0
  251. package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.d.ts +11 -0
  252. package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.js +34 -0
  253. package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.js.map +1 -0
  254. package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.d.ts +7 -0
  255. package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.js +51 -0
  256. package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.js.map +1 -0
  257. package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.d.ts +30 -0
  258. package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.js +30 -0
  259. package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.js.map +1 -0
  260. package/dist/containers/Tenant/ObjectSummary/ObjectTree.js +8 -2
  261. package/dist/containers/Tenant/ObjectSummary/ObjectTree.js.map +1 -1
  262. package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js +2 -3
  263. package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js.map +1 -1
  264. package/dist/containers/Tenant/TenantPages.d.ts +2 -1
  265. package/dist/containers/Tenant/TenantPages.js.map +1 -1
  266. package/dist/containers/Tenant/utils/schema.d.ts +1 -0
  267. package/dist/containers/Tenant/utils/schema.js +1 -0
  268. package/dist/containers/Tenant/utils/schema.js.map +1 -1
  269. package/dist/containers/Tenants/Tenants.js +1 -1
  270. package/dist/containers/Tenants/Tenants.js.map +1 -1
  271. package/dist/containers/Tenants/Tenants.scss +0 -4
  272. package/dist/containers/UserSettings/i18n/en.json +1 -0
  273. package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
  274. package/dist/containers/UserSettings/settings.d.ts +1 -0
  275. package/dist/containers/UserSettings/settings.js +11 -2
  276. package/dist/containers/UserSettings/settings.js.map +1 -1
  277. package/dist/services/api/meta.d.ts +4 -1
  278. package/dist/services/api/meta.js +2 -1
  279. package/dist/services/api/meta.js.map +1 -1
  280. package/dist/services/api/viewer.d.ts +5 -2
  281. package/dist/services/api/viewer.js +7 -1
  282. package/dist/services/api/viewer.js.map +1 -1
  283. package/dist/services/settings.d.ts +2 -0
  284. package/dist/services/settings.js +3 -1
  285. package/dist/services/settings.js.map +1 -1
  286. package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
  287. package/dist/store/reducers/capabilities/hooks.js +3 -0
  288. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  289. package/dist/store/reducers/cluster/cluster.d.ts +2 -2
  290. package/dist/store/reducers/cluster/cluster.js +13 -6
  291. package/dist/store/reducers/cluster/cluster.js.map +1 -1
  292. package/dist/store/reducers/executeTopQueries/executeTopQueries.js +4 -2
  293. package/dist/store/reducers/executeTopQueries/executeTopQueries.js.map +1 -1
  294. package/dist/store/reducers/storage/types.d.ts +6 -2
  295. package/dist/store/reducers/storage/utils.d.ts +2 -2
  296. package/dist/store/reducers/storage/utils.js +10 -9
  297. package/dist/store/reducers/storage/utils.js.map +1 -1
  298. package/dist/store/reducers/tenant/constants.d.ts +1 -0
  299. package/dist/store/reducers/tenant/constants.js +1 -0
  300. package/dist/store/reducers/tenant/constants.js.map +1 -1
  301. package/dist/store/reducers/tenant/tenant.d.ts +1 -0
  302. package/dist/store/reducers/tenant/tenant.js +8 -2
  303. package/dist/store/reducers/tenant/tenant.js.map +1 -1
  304. package/dist/store/reducers/tenants/tenants.js +2 -2
  305. package/dist/store/reducers/tenants/tenants.js.map +1 -1
  306. package/dist/store/reducers/topic.d.ts +12 -0
  307. package/dist/store/reducers/topic.js +16 -0
  308. package/dist/store/reducers/topic.js.map +1 -1
  309. package/dist/styles/mixins.scss +0 -20
  310. package/dist/types/api/capabilities.d.ts +1 -1
  311. package/dist/types/api/cluster.d.ts +8 -1
  312. package/dist/types/api/cluster.js +7 -3
  313. package/dist/types/api/cluster.js.map +1 -1
  314. package/dist/types/api/topic.d.ts +117 -0
  315. package/dist/utils/constants.d.ts +2 -0
  316. package/dist/utils/constants.js +2 -0
  317. package/dist/utils/constants.js.map +1 -1
  318. package/dist/utils/dataFormatters/dataFormatters.js +1 -1
  319. package/dist/utils/dataFormatters/dataFormatters.js.map +1 -1
  320. package/dist/utils/hooks/useDebouncedValue.d.ts +5 -0
  321. package/dist/utils/hooks/useDebouncedValue.js +22 -0
  322. package/dist/utils/hooks/useDebouncedValue.js.map +1 -0
  323. package/dist/utils/renderPaginatedTableErrorMessage.d.ts +2 -0
  324. package/dist/utils/renderPaginatedTableErrorMessage.js +10 -0
  325. package/dist/utils/renderPaginatedTableErrorMessage.js.map +1 -0
  326. package/dist/utils/utils.d.ts +1 -0
  327. package/dist/utils/utils.js +7 -0
  328. package/dist/utils/utils.js.map +1 -1
  329. package/package.json +1 -1
  330. package/dist/assets/icons/user-check.svg +0 -1
  331. package/dist/components/Tag/Tag.d.ts +0 -9
  332. package/dist/components/Tag/Tag.js +0 -8
  333. package/dist/components/Tag/Tag.js.map +0 -1
  334. package/dist/components/Tag/Tag.scss +0 -18
  335. package/dist/components/Tag/index.d.ts +0 -1
  336. package/dist/components/Tag/index.js +0 -2
  337. package/dist/components/Tag/index.js.map +0 -1
  338. package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.js +0 -71
  339. package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.js.map +0 -1
  340. package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.scss +0 -52
  341. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.d.ts +0 -17
  342. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.js +0 -20
  343. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.js.map +0 -1
  344. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.d.ts +0 -5
  345. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.js +0 -26
  346. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.js.map +0 -1
  347. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsMemory.js +0 -20
  348. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsMemory.js.map +0 -1
  349. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsStorage.js +0 -20
  350. package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsStorage.js.map +0 -1
  351. package/dist/containers/Cluster/ClusterDashboard/shared.js.map +0 -1
  352. package/dist/containers/Cluster/ClusterDashboard/utils.d.ts +0 -19
  353. package/dist/containers/Cluster/ClusterDashboard/utils.js +0 -63
  354. package/dist/containers/Cluster/ClusterDashboard/utils.js.map +0 -1
  355. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.d.ts +0 -8
  356. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js +0 -42
  357. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js.map +0 -1
  358. package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.scss +0 -6
  359. package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.d.ts +0 -8
  360. package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.js +0 -8
  361. package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.js.map +0 -1
  362. package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.scss +0 -17
  363. /package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/shared.js +0 -0
@@ -0,0 +1,140 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { NoSearchResults } from '@gravity-ui/illustrations';
4
+ import { skipToken } from '@reduxjs/toolkit/query';
5
+ import { isNil } from 'lodash';
6
+ import { DEFAULT_TABLE_ROW_HEIGHT, ResizeablePaginatedTable, } from '../../../../components/PaginatedTable';
7
+ import { partitionsApi } from '../../../../store/reducers/partitions/partitions';
8
+ import { topicApi } from '../../../../store/reducers/topic';
9
+ import { useAutoRefreshInterval } from '../../../../utils/hooks';
10
+ import { useSelectedColumns } from '../../../../utils/hooks/useSelectedColumns';
11
+ import { renderPaginatedTableErrorMessage } from '../../../../utils/renderPaginatedTableErrorMessage';
12
+ import { safeParseNumber } from '../../../../utils/utils';
13
+ import { EmptyFilter } from '../../../Storage/EmptyFilter/EmptyFilter';
14
+ import { TopicDataControls } from './TopicDataControls/TopicDataControls';
15
+ import { DEFAULT_TOPIC_DATA_COLUMNS, REQUIRED_TOPIC_DATA_COLUMNS, getAllColumns, } from './columns/columns';
16
+ import { generateTopicDataGetter } from './getData';
17
+ import i18n from './i18n';
18
+ import { useTopicDataQueryParams } from './useTopicDataQueryParams';
19
+ import { TOPIC_DATA_COLUMNS_TITLES, TOPIC_DATA_COLUMNS_WIDTH_LS_KEY, TOPIC_DATA_FETCH_LIMIT, TOPIC_DATA_SELECTED_COLUMNS_LS_KEY, b, } from './utils/constants';
20
+ import './TopicData.scss';
21
+ export function TopicData({ parentRef, path, database }) {
22
+ const [autoRefreshInterval] = useAutoRefreshInterval();
23
+ const [startOffset, setStartOffset] = React.useState();
24
+ const [endOffset, setEndOffset] = React.useState();
25
+ const [controlsKey, setControlsKey] = React.useState(0);
26
+ const [emptyData, setEmptyData] = React.useState(false);
27
+ const [baseOffset, setBaseOffset] = React.useState();
28
+ const [baseEndOffset, setBaseEndOffset] = React.useState();
29
+ const startRef = React.useRef();
30
+ startRef.current = startOffset;
31
+ const { selectedPartition, selectedOffset, startTimestamp, topicDataFilter, handleSelectedOffsetChange, handleStartTimestampChange, handleSelectedPartitionChange, } = useTopicDataQueryParams();
32
+ React.useEffect(() => {
33
+ return () => {
34
+ handleSelectedPartitionChange(undefined);
35
+ handleSelectedOffsetChange(undefined);
36
+ handleStartTimestampChange(undefined);
37
+ };
38
+ }, [handleSelectedPartitionChange, handleSelectedOffsetChange, handleStartTimestampChange]);
39
+ const queryParams = React.useMemo(() => {
40
+ if (isNil(selectedPartition)) {
41
+ return skipToken;
42
+ }
43
+ const params = { database, path, partition: selectedPartition, limit: 1 };
44
+ if (startTimestamp) {
45
+ params.read_timestamp = startTimestamp;
46
+ }
47
+ else {
48
+ params.offset = safeParseNumber(selectedOffset);
49
+ }
50
+ return params;
51
+ }, [selectedPartition, selectedOffset, startTimestamp, database, path]);
52
+ const { currentData, error, isFetching } = topicApi.useGetTopicDataQuery(queryParams);
53
+ const { data: partitions, isLoading: partitionsLoading, error: partitionsError, } = partitionsApi.useGetPartitionsQuery({ path, database }, { pollingInterval: autoRefreshInterval });
54
+ React.useEffect(() => {
55
+ const selectedPartitionData = partitions === null || partitions === void 0 ? void 0 : partitions.find(({ partitionId }) => partitionId === selectedPartition);
56
+ if (selectedPartitionData) {
57
+ if (!baseOffset) {
58
+ setBaseOffset(safeParseNumber(selectedPartitionData.startOffset));
59
+ }
60
+ if (!baseEndOffset) {
61
+ setBaseEndOffset(safeParseNumber(selectedPartitionData.endOffset));
62
+ }
63
+ }
64
+ }, [selectedPartition, partitions, baseOffset, baseEndOffset, startOffset, endOffset]);
65
+ React.useEffect(() => {
66
+ if (partitions && partitions.length && isNil(selectedPartition)) {
67
+ handleSelectedPartitionChange(partitions[0].partitionId);
68
+ }
69
+ }, [partitions, selectedPartition, handleSelectedPartitionChange]);
70
+ const { columnsToShow, columnsToSelect, setColumns } = useSelectedColumns(getAllColumns(), TOPIC_DATA_SELECTED_COLUMNS_LS_KEY, TOPIC_DATA_COLUMNS_TITLES, DEFAULT_TOPIC_DATA_COLUMNS, REQUIRED_TOPIC_DATA_COLUMNS);
71
+ React.useEffect(() => {
72
+ var _a, _b;
73
+ //values should be recalculated only when data is fetched
74
+ if (isFetching || (!currentData && !error)) {
75
+ return;
76
+ }
77
+ if (((_a = currentData === null || currentData === void 0 ? void 0 : currentData.Messages) === null || _a === void 0 ? void 0 : _a.length) || (!currentData && !error)) {
78
+ setEmptyData(false);
79
+ }
80
+ else if (!(currentData && ((_b = currentData.Messages) === null || _b === void 0 ? void 0 : _b.length)) || error) {
81
+ setEmptyData(true);
82
+ }
83
+ if (currentData) {
84
+ setStartOffset(safeParseNumber(currentData.StartOffset));
85
+ setEndOffset(safeParseNumber(currentData.EndOffset));
86
+ }
87
+ }, [isFetching, currentData, error]);
88
+ const tableFilters = React.useMemo(() => ({
89
+ path,
90
+ database,
91
+ partition: selectedPartition !== null && selectedPartition !== void 0 ? selectedPartition : '',
92
+ isEmpty: emptyData,
93
+ }), [path, database, selectedPartition, emptyData]);
94
+ const resetFilters = React.useCallback(() => {
95
+ handleSelectedOffsetChange(undefined);
96
+ handleStartTimestampChange(undefined);
97
+ if (topicDataFilter === 'TIMESTAMP') {
98
+ setControlsKey((prev) => prev + 1);
99
+ }
100
+ }, [handleSelectedOffsetChange, handleStartTimestampChange, topicDataFilter]);
101
+ const scrollToOffset = React.useCallback((newOffset) => {
102
+ var _a;
103
+ const scrollTop = (newOffset - (baseOffset !== null && baseOffset !== void 0 ? baseOffset : 0)) * DEFAULT_TABLE_ROW_HEIGHT;
104
+ const normalizedScrollTop = Math.max(0, scrollTop);
105
+ (_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({
106
+ top: normalizedScrollTop,
107
+ behavior: 'instant',
108
+ });
109
+ }, [baseOffset, parentRef]);
110
+ React.useEffect(() => {
111
+ if (isFetching) {
112
+ return;
113
+ }
114
+ const messages = currentData === null || currentData === void 0 ? void 0 : currentData.Messages;
115
+ if (messages === null || messages === void 0 ? void 0 : messages.length) {
116
+ const messageOffset = safeParseNumber(messages[0].Offset);
117
+ //scroll when table is already rendered and calculated it's state
118
+ setTimeout(() => {
119
+ scrollToOffset(messageOffset);
120
+ }, 0);
121
+ }
122
+ }, [currentData, isFetching, scrollToOffset]);
123
+ const renderControls = () => {
124
+ return (_jsx(TopicDataControls
125
+ // component has uncontrolled components inside, so it should be rerendered on filters reset
126
+ , { columnsToSelect: columnsToSelect, handleSelectedColumnsUpdate: setColumns, partitions: partitions, partitionsLoading: partitionsLoading, partitionsError: partitionsError, startOffset: startOffset, endOffset: endOffset, scrollToOffset: scrollToOffset }, controlsKey));
127
+ };
128
+ const renderEmptyDataMessage = () => {
129
+ const hasFilters = selectedOffset || startTimestamp;
130
+ return (_jsx(EmptyFilter, { title: i18n('label_nothing-found'), message: i18n('description_nothing-found'), onShowAll: hasFilters ? resetFilters : undefined, showAll: i18n('action_show-all'), image: _jsx(NoSearchResults, { width: 230, height: 230 }) }));
131
+ };
132
+ const getTopicData = React.useMemo(() => generateTopicDataGetter({ setEndOffset, setStartOffset, baseOffset }), [baseOffset]);
133
+ return (!isNil(baseOffset) &&
134
+ !isNil(baseEndOffset) && (_jsx(ResizeablePaginatedTable, { columnsWidthLSKey: TOPIC_DATA_COLUMNS_WIDTH_LS_KEY, parentRef: parentRef, columns: columnsToShow, fetchData: getTopicData, initialEntitiesCount: baseEndOffset - baseOffset, limit: TOPIC_DATA_FETCH_LIMIT, renderControls: renderControls, renderErrorMessage: renderPaginatedTableErrorMessage, renderEmptyDataMessage: renderEmptyDataMessage, filters: tableFilters, tableName: "topicData", rowHeight: DEFAULT_TABLE_ROW_HEIGHT, keepCache: false, getRowClassName: (row) => {
135
+ return b('row', {
136
+ active: Boolean(selectedOffset && String(row.Offset) === selectedOffset),
137
+ });
138
+ } })));
139
+ }
140
+ //# sourceMappingURL=TopicData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopicData.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Diagnostics/TopicData/TopicData.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ .ydb-diagnostics-topic-data {
2
+ &__partition-select {
3
+ min-width: 150px;
4
+ }
5
+
6
+ &__full-value {
7
+ max-width: 70vw;
8
+ max-height: 80vh;
9
+
10
+ word-break: break-all;
11
+ }
12
+ &__date-picker {
13
+ min-width: 265px;
14
+ }
15
+ &__column-setup {
16
+ margin-left: auto;
17
+ }
18
+
19
+ &__row {
20
+ &_active {
21
+ background-color: var(--g-color-base-selection);
22
+
23
+ &:hover {
24
+ background: var(--g-color-base-selection-hover) !important;
25
+ }
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,14 @@
1
+ import type { TableColumnSetupItem } from '@gravity-ui/uikit';
2
+ import type { PreparedPartitionData } from '../../../../../store/reducers/partitions/types';
3
+ interface TopicDataControlsProps {
4
+ columnsToSelect: TableColumnSetupItem[];
5
+ handleSelectedColumnsUpdate: (updated: TableColumnSetupItem[]) => void;
6
+ partitions?: PreparedPartitionData[];
7
+ partitionsLoading: boolean;
8
+ partitionsError: unknown;
9
+ startOffset?: number;
10
+ endOffset?: number;
11
+ scrollToOffset: (offset: number) => void;
12
+ }
13
+ export declare function TopicDataControls({ columnsToSelect, handleSelectedColumnsUpdate, startOffset, endOffset, partitions, partitionsLoading, partitionsError, scrollToOffset, }: TopicDataControlsProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,68 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { RelativeDatePicker } from '@gravity-ui/date-components';
4
+ import { dateTimeParse } from '@gravity-ui/date-utils';
5
+ import { CircleChevronDownFill } from '@gravity-ui/icons';
6
+ import { ActionTooltip, Button, Icon, RadioButton, Select, TableColumnSetup, Text, } from '@gravity-ui/uikit';
7
+ import { isNil } from 'lodash';
8
+ import { DebouncedInput } from '../../../../../components/DebouncedInput/DebouncedTextInput';
9
+ import { formatNumber } from '../../../../../utils/dataFormatters/dataFormatters';
10
+ import { prepareErrorMessage } from '../../../../../utils/prepareErrorMessage';
11
+ import { safeParseNumber } from '../../../../../utils/utils';
12
+ import i18n from '../i18n';
13
+ import { useTopicDataQueryParams } from '../useTopicDataQueryParams';
14
+ import { b } from '../utils/constants';
15
+ import { TopicDataFilterValues } from '../utils/types';
16
+ export function TopicDataControls({ columnsToSelect, handleSelectedColumnsUpdate, startOffset, endOffset, partitions, partitionsLoading, partitionsError, scrollToOffset, }) {
17
+ const { selectedPartition, handleSelectedPartitionChange: handleSelectedPartitionParamChange, handleSelectedOffsetChange, handleStartTimestampChange, } = useTopicDataQueryParams();
18
+ const partitionsToSelect = partitions === null || partitions === void 0 ? void 0 : partitions.map(({ partitionId }) => ({
19
+ content: partitionId,
20
+ value: partitionId,
21
+ }));
22
+ const handleSelectedPartitionChange = React.useCallback((value) => {
23
+ handleSelectedPartitionParamChange(value[0]);
24
+ handleSelectedOffsetChange(undefined);
25
+ handleStartTimestampChange(undefined);
26
+ }, [
27
+ handleSelectedPartitionParamChange,
28
+ handleStartTimestampChange,
29
+ handleSelectedOffsetChange,
30
+ ]);
31
+ return (_jsxs(React.Fragment, { children: [_jsx(Select, { className: b('partition-select'), label: i18n('label_partition-id'), options: partitionsToSelect, value: selectedPartition ? [selectedPartition] : undefined, onUpdate: handleSelectedPartitionChange, filterable: partitions && partitions.length > 5, disabled: !partitions || !partitions.length, errorPlacement: "inside", errorMessage: prepareErrorMessage(partitionsError), error: Boolean(partitionsError), loading: partitionsLoading }), _jsx(TopicDataStartControls, { scrollToOffset: scrollToOffset }), !isNil(startOffset) && !isNil(endOffset) && (_jsxs(Text, { color: "secondary", whiteSpace: "nowrap", children: [formatNumber(startOffset), "\u2014", formatNumber(endOffset - 1)] })), _jsx(TableColumnSetup, { className: b('column-setup'), popupWidth: 242, items: columnsToSelect, showStatus: true, onUpdate: handleSelectedColumnsUpdate, sortable: false })] }));
32
+ }
33
+ function TopicDataStartControls({ scrollToOffset }) {
34
+ const { selectedOffset, startTimestamp, topicDataFilter, handleSelectedOffsetChange, handleStartTimestampChange, handleTopicDataFilterChange, } = useTopicDataQueryParams();
35
+ const onFilterChange = React.useCallback((value) => {
36
+ if (value === 'TIMESTAMP') {
37
+ handleSelectedOffsetChange(undefined);
38
+ }
39
+ else {
40
+ handleStartTimestampChange(undefined);
41
+ }
42
+ handleTopicDataFilterChange(value);
43
+ }, [handleTopicDataFilterChange, handleSelectedOffsetChange, handleStartTimestampChange]);
44
+ const onStartOffsetChange = React.useCallback((value) => {
45
+ handleSelectedOffsetChange(value);
46
+ }, [handleSelectedOffsetChange]);
47
+ const handleFromTimestampChange = React.useCallback((data) => {
48
+ let newValue;
49
+ if (data) {
50
+ const { value, type } = data;
51
+ if (type === 'absolute') {
52
+ newValue = value.valueOf();
53
+ }
54
+ else if (type === 'relative') {
55
+ const absoluteValue = dateTimeParse(value);
56
+ newValue = absoluteValue ? absoluteValue.valueOf() : undefined;
57
+ }
58
+ }
59
+ handleStartTimestampChange(newValue);
60
+ }, [handleStartTimestampChange]);
61
+ const startDateTime = dateTimeParse(Number(startTimestamp));
62
+ return (_jsxs(React.Fragment, { children: [_jsxs(RadioButton, { value: topicDataFilter, onUpdate: onFilterChange, children: [_jsx(RadioButton.Option, { value: "TIMESTAMP", children: TopicDataFilterValues.TIMESTAMP }), _jsx(RadioButton.Option, { value: "OFFSET", children: TopicDataFilterValues.OFFSET })] }), topicDataFilter === 'OFFSET' && (_jsx(DebouncedInput, { value: selectedOffset ? String(selectedOffset) : '', onUpdate: onStartOffsetChange, label: i18n('label_from'), placeholder: i18n('label_offset'), type: "number", debounce: 600, endContent: _jsx(ActionTooltip, { title: i18n('action_scroll-selected'), children: _jsx(Button, { disabled: isNil(selectedOffset) || selectedOffset === '', view: "flat-action", size: "xs", onClick: () => {
63
+ if (selectedOffset) {
64
+ scrollToOffset(safeParseNumber(selectedOffset));
65
+ }
66
+ }, children: _jsx(Icon, { size: 14, data: CircleChevronDownFill }) }) }), autoFocus: true })), topicDataFilter === 'TIMESTAMP' && (_jsx(RelativeDatePicker, { format: "YYYY-MM-DD HH:mm:ss", placeholder: "YYYY-MM-DD HH:mm:ss", hasClear: true, isDateUnavailable: (value) => value.isAfter(dateTimeParse()), label: i18n('label_from'), onUpdate: handleFromTimestampChange, defaultValue: startDateTime ? { type: 'absolute', value: startDateTime } : null, className: b('date-picker') }))] }));
67
+ }
68
+ //# sourceMappingURL=TopicDataControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopicDataControls.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ import { prepareResponse } from '../getData';
2
+ import { TOPIC_DATA_FETCH_LIMIT } from '../utils/constants';
3
+ describe('prepareResponse', () => {
4
+ // Test case 1: Normal case with no removed messages
5
+ test('should handle case with no removed messages', () => {
6
+ const response = {
7
+ StartOffset: '100',
8
+ EndOffset: '120',
9
+ Messages: [{ Offset: '100' }, { Offset: '101' }, { Offset: '102' }],
10
+ };
11
+ const result = prepareResponse(response, 100);
12
+ expect(result.start).toBe(100);
13
+ expect(result.end).toBe(120);
14
+ expect(result.messages.length).toBe(3);
15
+ expect(result.messages[0]).toEqual({ Offset: '100' });
16
+ expect(result.messages[1]).toEqual({ Offset: '101' });
17
+ expect(result.messages[2]).toEqual({ Offset: '102' });
18
+ });
19
+ // Test case 2: Case with some removed messages
20
+ test('should handle case with some removed messages', () => {
21
+ const response = {
22
+ StartOffset: '105',
23
+ EndOffset: '120',
24
+ Messages: [{ Offset: '105' }, { Offset: '106' }, { Offset: '107' }],
25
+ };
26
+ const result = prepareResponse(response, 100);
27
+ expect(result.start).toBe(105);
28
+ expect(result.end).toBe(120);
29
+ expect(result.messages.length).toBe(8); // 5 removed + 3 actual
30
+ // Check removed messages
31
+ expect(result.messages[0]).toEqual({ Offset: '100', removed: true });
32
+ expect(result.messages[1]).toEqual({ Offset: '101', removed: true });
33
+ expect(result.messages[2]).toEqual({ Offset: '102', removed: true });
34
+ expect(result.messages[3]).toEqual({ Offset: '103', removed: true });
35
+ expect(result.messages[4]).toEqual({ Offset: '104', removed: true });
36
+ // Check actual messages
37
+ expect(result.messages[5]).toEqual({ Offset: '105' });
38
+ expect(result.messages[6]).toEqual({ Offset: '106' });
39
+ expect(result.messages[7]).toEqual({ Offset: '107' });
40
+ });
41
+ // Test case 3: Case with more removed messages than the limit
42
+ test('should handle case with more removed messages than the limit', () => {
43
+ const response = {
44
+ StartOffset: '150',
45
+ EndOffset: '170',
46
+ Messages: [{ Offset: '150' }, { Offset: '151' }, { Offset: '152' }],
47
+ };
48
+ const result = prepareResponse(response, 100);
49
+ expect(result.start).toBe(150);
50
+ expect(result.end).toBe(170);
51
+ expect(result.messages.length).toBe(TOPIC_DATA_FETCH_LIMIT); // Limited by TOPIC_DATA_FETCH_LIMIT
52
+ // All messages should be "removed" placeholders since there are more than the limit
53
+ for (let i = 0; i < TOPIC_DATA_FETCH_LIMIT; i++) {
54
+ expect(result.messages[i]).toEqual({ Offset: `${100 + i}`, removed: true });
55
+ }
56
+ });
57
+ // Test case 4: Case with non-numeric offsets
58
+ test('should handle case with non-numeric offsets', () => {
59
+ const response = {
60
+ StartOffset: 'not-a-number',
61
+ EndOffset: 'invalid',
62
+ Messages: [{ Offset: '100' }, { Offset: '101' }],
63
+ };
64
+ const result = prepareResponse(response, 100);
65
+ // safeParseNumber should return 0 for non-numeric values
66
+ expect(result.start).toBe(0);
67
+ expect(result.end).toBe(0);
68
+ // Since start (0) < offset (100), removedMessagesCount is negative
69
+ // No removed messages should be added
70
+ expect(result.messages.length).toBe(2);
71
+ expect(result.messages[0]).toEqual({ Offset: '100' });
72
+ expect(result.messages[1]).toEqual({ Offset: '101' });
73
+ });
74
+ // Test case 5: Case with empty Messages array
75
+ test('should handle case with empty Messages array', () => {
76
+ const response = {
77
+ StartOffset: '100',
78
+ EndOffset: '100',
79
+ Messages: [],
80
+ };
81
+ const result = prepareResponse(response, 100);
82
+ expect(result.start).toBe(100);
83
+ expect(result.end).toBe(100);
84
+ expect(result.messages.length).toBe(0);
85
+ });
86
+ // Test case 6: Case with more messages than the limit
87
+ test('should handle case with more messages than the limit', () => {
88
+ // Create an array of 30 messages (more than TOPIC_DATA_FETCH_LIMIT)
89
+ const messages = [];
90
+ for (let i = 0; i < TOPIC_DATA_FETCH_LIMIT + 1; i++) {
91
+ messages.push({ Offset: `${100 + i}` });
92
+ }
93
+ const response = {
94
+ StartOffset: '100',
95
+ EndOffset: '130',
96
+ Messages: messages,
97
+ };
98
+ const result = prepareResponse(response, 100);
99
+ expect(result.start).toBe(100);
100
+ expect(result.end).toBe(130);
101
+ // Should be limited to TOPIC_DATA_FETCH_LIMIT
102
+ expect(result.messages.length).toBe(TOPIC_DATA_FETCH_LIMIT);
103
+ // Check the first few messages
104
+ expect(result.messages[0]).toEqual({ Offset: '100' });
105
+ expect(result.messages[1]).toEqual({ Offset: '101' });
106
+ expect(result.messages[2]).toEqual({ Offset: '102' });
107
+ });
108
+ // Test case 7: Case with both removed messages and actual messages within limit
109
+ test('should handle case with both removed and actual messages within limit', () => {
110
+ const response = {
111
+ StartOffset: '110',
112
+ EndOffset: '130',
113
+ Messages: Array.from({ length: 15 }, (_, i) => ({ Offset: `${110 + i}` })),
114
+ };
115
+ const result = prepareResponse(response, 100);
116
+ expect(result.start).toBe(110);
117
+ expect(result.end).toBe(130);
118
+ // 10 removed + 10 actual = 20 (TOPIC_DATA_FETCH_LIMIT)
119
+ expect(result.messages.length).toBe(TOPIC_DATA_FETCH_LIMIT);
120
+ });
121
+ });
122
+ //# sourceMappingURL=getData.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getData.test.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ .ydb-diagnostics-topic-data-columns {
2
+ &__timestamp-ms {
3
+ color: var(--g-color-text-secondary);
4
+ }
5
+
6
+ &__ts-diff_danger {
7
+ color: var(--g-color-text-danger);
8
+ }
9
+ &__message_clickable {
10
+ cursor: pointer;
11
+
12
+ color: var(--g-color-text-info);
13
+ }
14
+ &__offset_removed {
15
+ text-decoration: line-through;
16
+ }
17
+
18
+ &__message_invalid,
19
+ &__truncated {
20
+ font-style: italic;
21
+ }
22
+ }
@@ -0,0 +1,7 @@
1
+ import type { Column } from '../../../../../components/PaginatedTable';
2
+ import type { TopicMessageEnhanced } from '../../../../../types/api/topic';
3
+ import type { TopicDataColumnId } from '../utils/types';
4
+ import './Columns.scss';
5
+ export declare function getAllColumns(): Column<TopicMessageEnhanced>[];
6
+ export declare const DEFAULT_TOPIC_DATA_COLUMNS: TopicDataColumnId[];
7
+ export declare const REQUIRED_TOPIC_DATA_COLUMNS: TopicDataColumnId[];
@@ -0,0 +1,154 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import DataTable from '@gravity-ui/react-data-table';
4
+ import { Text } from '@gravity-ui/uikit';
5
+ import { isNil } from 'lodash';
6
+ import { EntityStatus } from '../../../../../components/EntityStatus/EntityStatus';
7
+ import { MultilineTableHeader } from '../../../../../components/MultilineTableHeader/MultilineTableHeader';
8
+ import { TOPIC_MESSAGE_SIZE_LIMIT } from '../../../../../store/reducers/topic';
9
+ import { cn } from '../../../../../utils/cn';
10
+ import { EMPTY_DATA_PLACEHOLDER } from '../../../../../utils/constants';
11
+ import { formatBytes, formatTimestamp } from '../../../../../utils/dataFormatters/dataFormatters';
12
+ import { formatToMs } from '../../../../../utils/timeParsers';
13
+ import { safeParseNumber } from '../../../../../utils/utils';
14
+ import i18n from '../i18n';
15
+ import { TOPIC_DATA_COLUMNS_TITLES, codecNumberToName } from '../utils/constants';
16
+ import { TOPIC_DATA_COLUMNS_IDS } from '../utils/types';
17
+ import './Columns.scss';
18
+ const b = cn('ydb-diagnostics-topic-data-columns');
19
+ export function getAllColumns() {
20
+ const columns = [
21
+ {
22
+ name: TOPIC_DATA_COLUMNS_IDS.OFFSET,
23
+ header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.OFFSET],
24
+ align: DataTable.LEFT,
25
+ render: ({ row }) => {
26
+ const { Offset, removed } = row;
27
+ return (_jsx(Text, { className: b('offset', { removed }), variant: "body-2", color: removed ? 'secondary' : 'primary', children: valueOrPlaceholder(Offset) }));
28
+ },
29
+ width: 100,
30
+ },
31
+ {
32
+ name: TOPIC_DATA_COLUMNS_IDS.TIMESTAMP_CREATE,
33
+ header: (_jsx(MultilineTableHeader, { title: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.TIMESTAMP_CREATE] })),
34
+ align: DataTable.LEFT,
35
+ render: ({ row }) => _jsx(TopicDataTimestamp, { timestamp: row.CreateTimestamp }),
36
+ width: 220,
37
+ },
38
+ {
39
+ name: TOPIC_DATA_COLUMNS_IDS.TIMESTAMP_WRITE,
40
+ header: (_jsx(MultilineTableHeader, { title: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.TIMESTAMP_WRITE] })),
41
+ align: DataTable.LEFT,
42
+ render: ({ row }) => _jsx(TopicDataTimestamp, { timestamp: row.WriteTimestamp }),
43
+ width: 220,
44
+ },
45
+ {
46
+ name: TOPIC_DATA_COLUMNS_IDS.TS_DIFF,
47
+ header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.TS_DIFF],
48
+ align: DataTable.RIGHT,
49
+ render: ({ row }) => {
50
+ const numericValue = safeParseNumber(row.TimestampDiff);
51
+ return (_jsx("span", { className: b('ts-diff', { danger: numericValue >= 100000 }), children: formatToMs(numericValue) }));
52
+ },
53
+ width: 90,
54
+ note: i18n('context_ts-diff'),
55
+ },
56
+ {
57
+ name: TOPIC_DATA_COLUMNS_IDS.METADATA,
58
+ header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.METADATA],
59
+ align: DataTable.LEFT,
60
+ render: ({ row: { MessageMetadata } }) => {
61
+ if (!MessageMetadata) {
62
+ return EMPTY_DATA_PLACEHOLDER;
63
+ }
64
+ const prepared = MessageMetadata.map(({ Key = '', Value = '' }) => `${Key}: ${Value}`);
65
+ return prepared.join(', ');
66
+ },
67
+ width: 200,
68
+ },
69
+ {
70
+ name: TOPIC_DATA_COLUMNS_IDS.MESSAGE,
71
+ header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.MESSAGE],
72
+ align: DataTable.LEFT,
73
+ render: ({ row: { Message, OriginalSize } }) => {
74
+ if (isNil(Message)) {
75
+ return EMPTY_DATA_PLACEHOLDER;
76
+ }
77
+ let encryptedMessage;
78
+ let invalid = false;
79
+ try {
80
+ encryptedMessage = atob(Message);
81
+ }
82
+ catch (_a) {
83
+ encryptedMessage = i18n('description_failed-decode');
84
+ invalid = true;
85
+ }
86
+ const truncated = safeParseNumber(OriginalSize) > TOPIC_MESSAGE_SIZE_LIMIT;
87
+ return (_jsxs(Text, { variant: "body-2", color: invalid ? 'secondary' : 'primary', className: b('message', { invalid }), children: [encryptedMessage, truncated && (_jsxs(Text, { color: "secondary", className: b('truncated'), children: [' ', i18n('description_truncated')] }))] }));
88
+ },
89
+ width: 500,
90
+ },
91
+ {
92
+ name: TOPIC_DATA_COLUMNS_IDS.SIZE,
93
+ header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.SIZE],
94
+ align: DataTable.RIGHT,
95
+ render: ({ row }) => formatBytes(row.StorageSize),
96
+ width: 100,
97
+ },
98
+ {
99
+ name: TOPIC_DATA_COLUMNS_IDS.ORIGINAL_SIZE,
100
+ header: (_jsx(MultilineTableHeader, { title: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.ORIGINAL_SIZE] })),
101
+ align: DataTable.RIGHT,
102
+ render: ({ row }) => formatBytes(row.OriginalSize),
103
+ width: 100,
104
+ },
105
+ {
106
+ name: TOPIC_DATA_COLUMNS_IDS.CODEC,
107
+ header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.CODEC],
108
+ align: DataTable.RIGHT,
109
+ render: ({ row: { Codec } }) => {
110
+ var _a;
111
+ if (isNil(Codec)) {
112
+ return EMPTY_DATA_PLACEHOLDER;
113
+ }
114
+ return (_a = codecNumberToName[Codec]) !== null && _a !== void 0 ? _a : Codec;
115
+ },
116
+ width: 70,
117
+ },
118
+ {
119
+ name: TOPIC_DATA_COLUMNS_IDS.PRODUCERID,
120
+ header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.PRODUCERID],
121
+ align: DataTable.LEFT,
122
+ render: ({ row }) => (_jsx(EntityStatus, { showStatus: false, name: row.ProducerId, hasClipboardButton: true })),
123
+ width: 100,
124
+ },
125
+ {
126
+ name: TOPIC_DATA_COLUMNS_IDS.SEQNO,
127
+ header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.SEQNO],
128
+ align: DataTable.RIGHT,
129
+ render: ({ row }) => valueOrPlaceholder(row.SeqNo),
130
+ width: 70,
131
+ },
132
+ ];
133
+ return columns;
134
+ }
135
+ export const DEFAULT_TOPIC_DATA_COLUMNS = [
136
+ 'offset',
137
+ 'timestampCreate',
138
+ 'tsDiff',
139
+ 'message',
140
+ ];
141
+ export const REQUIRED_TOPIC_DATA_COLUMNS = ['offset'];
142
+ function TopicDataTimestamp({ timestamp }) {
143
+ if (!timestamp) {
144
+ return EMPTY_DATA_PLACEHOLDER;
145
+ }
146
+ const formatted = formatTimestamp(timestamp);
147
+ const splitted = formatted.split('.');
148
+ const ms = splitted.pop();
149
+ return (_jsxs(React.Fragment, { children: [splitted.join('.'), _jsxs("span", { className: b('timestamp-ms'), children: [".", ms] })] }));
150
+ }
151
+ function valueOrPlaceholder(value, placeholder = EMPTY_DATA_PLACEHOLDER) {
152
+ return isNil(value) ? placeholder : value;
153
+ }
154
+ //# sourceMappingURL=columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TopicData/columns/columns.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { FetchData } from '../../../../components/PaginatedTable';
2
+ import type { TopicDataResponse, TopicMessage, TopicMessageEnhanced } from '../../../../types/api/topic';
3
+ import type { TopicDataFilters } from './utils/types';
4
+ interface GetTopicDataProps {
5
+ setStartOffset: (offset: number) => void;
6
+ setEndOffset: (offset: number) => void;
7
+ baseOffset?: number;
8
+ }
9
+ export declare function prepareResponse(response: TopicDataResponse, offset: number): {
10
+ start: number;
11
+ end: number;
12
+ messages: TopicMessageEnhanced[];
13
+ };
14
+ export declare const generateTopicDataGetter: ({ setStartOffset, setEndOffset, baseOffset, }: GetTopicDataProps) => FetchData<TopicMessage, TopicDataFilters>;
15
+ export {};