ydb-embedded-ui 22.3.0 → 22.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 (472) hide show
  1. package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.d.ts +3 -2
  2. package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.js +19 -4
  3. package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.js.map +1 -1
  4. package/dist/components/CopyableValue/CopyableValue.d.ts +10 -0
  5. package/dist/components/CopyableValue/CopyableValue.js +10 -0
  6. package/dist/components/CopyableValue/CopyableValue.js.map +1 -0
  7. package/dist/components/CopyableValue/CopyableValue.scss +16 -0
  8. package/dist/components/CopyableValue/i18n/en.json +3 -0
  9. package/dist/components/CopyableValue/i18n/index.d.ts +2 -0
  10. package/dist/components/CopyableValue/i18n/index.js +6 -0
  11. package/dist/components/CopyableValue/i18n/index.js.map +1 -0
  12. package/dist/components/CriticalActionDialog/CriticalActionDialog.d.ts +2 -1
  13. package/dist/components/CriticalActionDialog/CriticalActionDialog.js +2 -1
  14. package/dist/components/CriticalActionDialog/CriticalActionDialog.js.map +1 -1
  15. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.d.ts +8 -19
  16. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js +68 -92
  17. package/dist/components/DiskCapacityInfo/DiskCapacityInfo.js.map +1 -1
  18. package/dist/components/DiskCapacityInfo/i18n/en.json +0 -1
  19. package/dist/components/DiskCapacityInfo/i18n/index.d.ts +1 -1
  20. package/dist/components/DiskPopup/DiskPopup.d.ts +25 -0
  21. package/dist/components/DiskPopup/DiskPopup.js +44 -0
  22. package/dist/components/DiskPopup/DiskPopup.js.map +1 -0
  23. package/dist/components/DiskPopup/DiskPopup.scss +203 -0
  24. package/dist/components/DiskPopup/i18n/en.json +3 -0
  25. package/dist/components/DiskPopup/i18n/index.d.ts +2 -0
  26. package/dist/components/DiskPopup/i18n/index.js +4 -0
  27. package/dist/components/DiskPopup/i18n/index.js.map +1 -0
  28. package/dist/components/DiskStatus/DiskStatus.d.ts +31 -0
  29. package/dist/components/DiskStatus/DiskStatus.js +61 -0
  30. package/dist/components/DiskStatus/DiskStatus.js.map +1 -0
  31. package/dist/components/DiskStatus/DiskStatus.scss +59 -0
  32. package/dist/components/DiskStatus/i18n/en.json +6 -0
  33. package/dist/components/DiskStatus/i18n/index.d.ts +2 -0
  34. package/dist/components/DiskStatus/i18n/index.js +4 -0
  35. package/dist/components/DiskStatus/i18n/index.js.map +1 -0
  36. package/dist/components/EntityStatus/EntityStatus.d.ts +19 -6
  37. package/dist/components/EntityStatus/EntityStatus.js +6 -2
  38. package/dist/components/EntityStatus/EntityStatus.js.map +1 -1
  39. package/dist/components/EntityStatus/EntityStatus.scss +5 -0
  40. package/dist/components/EvictVDiskButton/EvictVDiskButton.d.ts +5 -2
  41. package/dist/components/EvictVDiskButton/EvictVDiskButton.js +3 -2
  42. package/dist/components/EvictVDiskButton/EvictVDiskButton.js.map +1 -1
  43. package/dist/components/EvictVDiskButton/i18n/en.json +2 -2
  44. package/dist/components/FullNodeViewer/FullNodeViewer.js +4 -7
  45. package/dist/components/FullNodeViewer/FullNodeViewer.js.map +1 -1
  46. package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
  47. package/dist/components/HoverPopup/HoverPopup.d.ts +3 -1
  48. package/dist/components/HoverPopup/HoverPopup.js +131 -28
  49. package/dist/components/HoverPopup/HoverPopup.js.map +1 -1
  50. package/dist/components/HoverPopup/usePopupPriority.d.ts +4 -0
  51. package/dist/components/HoverPopup/usePopupPriority.js +30 -0
  52. package/dist/components/HoverPopup/usePopupPriority.js.map +1 -0
  53. package/dist/components/MemoryViewer/MemoryViewer.d.ts +3 -1
  54. package/dist/components/MemoryViewer/MemoryViewer.js +25 -16
  55. package/dist/components/MemoryViewer/MemoryViewer.js.map +1 -1
  56. package/dist/components/MemoryViewer/i18n/en.json +4 -3
  57. package/dist/components/MemoryViewer/i18n/index.d.ts +1 -1
  58. package/dist/components/MemoryViewer/utils.d.ts +4 -2
  59. package/dist/components/MemoryViewer/utils.js +11 -11
  60. package/dist/components/MemoryViewer/utils.js.map +1 -1
  61. package/dist/components/PDiskInfo/PDiskInfo.d.ts +4 -9
  62. package/dist/components/PDiskInfo/PDiskInfo.js +32 -144
  63. package/dist/components/PDiskInfo/PDiskInfo.js.map +1 -1
  64. package/dist/components/PDiskInfo/PDiskInfo.scss +15 -0
  65. package/dist/components/PDiskInfo/PDiskLogSize.d.ts +5 -0
  66. package/dist/components/PDiskInfo/PDiskLogSize.js +20 -0
  67. package/dist/components/PDiskInfo/PDiskLogSize.js.map +1 -0
  68. package/dist/components/PDiskInfo/PDiskLogSize.scss +12 -0
  69. package/dist/components/PDiskInfo/getPDiskDetails.d.ts +4 -0
  70. package/dist/components/PDiskInfo/getPDiskDetails.js +33 -0
  71. package/dist/components/PDiskInfo/getPDiskDetails.js.map +1 -0
  72. package/dist/components/PDiskInfo/i18n/en.json +69 -4
  73. package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
  74. package/dist/components/PDiskInfo/statuses.d.ts +7 -0
  75. package/dist/components/PDiskInfo/statuses.js +194 -0
  76. package/dist/components/PDiskInfo/statuses.js.map +1 -0
  77. package/dist/components/PDiskPopup/PDiskPopup.d.ts +4 -7
  78. package/dist/components/PDiskPopup/PDiskPopup.js +28 -99
  79. package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
  80. package/dist/components/PDiskPopup/i18n/en.json +2 -12
  81. package/dist/components/PDiskPopup/i18n/index.d.ts +1 -1
  82. package/dist/components/Search/Search.js +3 -1
  83. package/dist/components/Search/Search.js.map +1 -1
  84. package/dist/components/StorageGroupInfo/StorageGroupInfo.d.ts +3 -3
  85. package/dist/components/StorageGroupInfo/StorageGroupInfo.js +73 -218
  86. package/dist/components/StorageGroupInfo/StorageGroupInfo.js.map +1 -1
  87. package/dist/components/StorageGroupInfo/StorageGroupInfo.scss +21 -0
  88. package/dist/components/StorageGroupInfo/i18n/en.json +1 -9
  89. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  90. package/dist/components/TenantNameWrapper/i18n/index.d.ts +1 -1
  91. package/dist/components/VDisk/VDisk.d.ts +2 -1
  92. package/dist/components/VDisk/VDisk.js +24 -33
  93. package/dist/components/VDisk/VDisk.js.map +1 -1
  94. package/dist/components/VDisk/VDiskWithDonorsStack.d.ts +1 -1
  95. package/dist/components/VDisk/VDiskWithDonorsStack.js +2 -1
  96. package/dist/components/VDisk/VDiskWithDonorsStack.js.map +1 -1
  97. package/dist/components/VDisk/getFlagStatusText.d.ts +2 -0
  98. package/dist/components/VDisk/getFlagStatusText.js +18 -0
  99. package/dist/components/VDisk/getFlagStatusText.js.map +1 -0
  100. package/dist/components/VDisk/i18n/en.json +1 -1
  101. package/dist/components/VDisk/i18n/index.d.ts +1 -1
  102. package/dist/components/VDiskInfo/VDiskInfo.d.ts +3 -7
  103. package/dist/components/VDiskInfo/VDiskInfo.js +57 -235
  104. package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
  105. package/dist/components/VDiskInfo/VDiskInfo.scss +19 -3
  106. package/dist/components/VDiskInfo/getVDiskDetails.d.ts +11 -0
  107. package/dist/components/VDiskInfo/getVDiskDetails.js +42 -0
  108. package/dist/components/VDiskInfo/getVDiskDetails.js.map +1 -0
  109. package/dist/components/VDiskInfo/i18n/en.json +5 -12
  110. package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
  111. package/dist/components/VDiskPopup/VDiskPopup.d.ts +7 -8
  112. package/dist/components/VDiskPopup/VDiskPopup.js +91 -241
  113. package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
  114. package/dist/components/VDiskPopup/VDiskPopup.scss +3 -10
  115. package/dist/components/VDiskPopup/i18n/en.json +4 -22
  116. package/dist/components/VDiskPopup/i18n/index.d.ts +1 -1
  117. package/dist/components/VDiskStatus/VDiskReplicationStatus.d.ts +8 -0
  118. package/dist/components/VDiskStatus/VDiskReplicationStatus.js +32 -0
  119. package/dist/components/VDiskStatus/VDiskReplicationStatus.js.map +1 -0
  120. package/dist/components/VDiskStatus/VDiskStatus.d.ts +16 -0
  121. package/dist/components/VDiskStatus/VDiskStatus.js +20 -0
  122. package/dist/components/VDiskStatus/VDiskStatus.js.map +1 -0
  123. package/dist/components/VDiskStatus/VDiskStatus.scss +36 -0
  124. package/dist/components/VDiskStatus/i18n/en.json +33 -0
  125. package/dist/components/VDiskStatus/i18n/index.d.ts +1 -0
  126. package/dist/components/VDiskStatus/i18n/index.js +5 -0
  127. package/dist/components/VDiskStatus/i18n/index.js.map +1 -0
  128. package/dist/components/VDiskStatus/index.d.ts +2 -0
  129. package/dist/components/VDiskStatus/index.js +3 -0
  130. package/dist/components/VDiskStatus/index.js.map +1 -0
  131. package/dist/components/VDiskStatus/statuses.d.ts +4 -0
  132. package/dist/components/VDiskStatus/statuses.js +120 -0
  133. package/dist/components/VDiskStatus/statuses.js.map +1 -0
  134. package/dist/components/capacityMetricsColumns/i18n/en.json +4 -4
  135. package/dist/components/nodesColumns/columns.d.ts +1 -0
  136. package/dist/components/nodesColumns/columns.js +13 -6
  137. package/dist/components/nodesColumns/columns.js.map +1 -1
  138. package/dist/containers/Cluster/ClusterDrawerHealthcheck.js +6 -1
  139. package/dist/containers/Cluster/ClusterDrawerHealthcheck.js.map +1 -1
  140. package/dist/containers/Clusters/ClusterDrawerHealthcheck.js +1 -1
  141. package/dist/containers/Clusters/ClusterDrawerHealthcheck.js.map +1 -1
  142. package/dist/containers/Clusters/Clusters.js +35 -6
  143. package/dist/containers/Clusters/Clusters.js.map +1 -1
  144. package/dist/containers/Clusters/Clusters.scss +24 -6
  145. package/dist/containers/Clusters/columns.js +9 -4
  146. package/dist/containers/Clusters/columns.js.map +1 -1
  147. package/dist/containers/Clusters/i18n/en.json +6 -0
  148. package/dist/containers/Clusters/i18n/index.d.ts +1 -1
  149. package/dist/containers/Header/Header.js +16 -2
  150. package/dist/containers/Header/Header.js.map +1 -1
  151. package/dist/containers/Header/HeaderLeftControls.js +3 -1
  152. package/dist/containers/Header/HeaderLeftControls.js.map +1 -1
  153. package/dist/containers/Header/PDiskLeftControls.d.ts +1 -0
  154. package/dist/containers/Header/PDiskLeftControls.js +24 -0
  155. package/dist/containers/Header/PDiskLeftControls.js.map +1 -0
  156. package/dist/containers/Header/StorageGroupLeftControls.d.ts +1 -0
  157. package/dist/containers/Header/StorageGroupLeftControls.js +23 -0
  158. package/dist/containers/Header/StorageGroupLeftControls.js.map +1 -0
  159. package/dist/containers/Header/VDiskLeftControls.d.ts +1 -0
  160. package/dist/containers/Header/VDiskLeftControls.js +23 -0
  161. package/dist/containers/Header/VDiskLeftControls.js.map +1 -0
  162. package/dist/containers/Header/breadcrumbs.js +5 -2
  163. package/dist/containers/Header/breadcrumbs.js.map +1 -1
  164. package/dist/containers/Header/i18n/en.json +6 -1
  165. package/dist/containers/Header/i18n/index.d.ts +1 -1
  166. package/dist/containers/Nodes/NodesControls/NodesControls.js +1 -1
  167. package/dist/containers/Nodes/NodesControls/NodesControls.js.map +1 -1
  168. package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js +5 -3
  169. package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js.map +1 -1
  170. package/dist/containers/Nodes/PaginatedNodes/NodesComponent.js +4 -2
  171. package/dist/containers/Nodes/PaginatedNodes/NodesComponent.js.map +1 -1
  172. package/dist/containers/Nodes/useDebouncedSearch.d.ts +2 -0
  173. package/dist/containers/Nodes/useDebouncedSearch.js +11 -0
  174. package/dist/containers/Nodes/useDebouncedSearch.js.map +1 -0
  175. package/dist/containers/Operations/constants.d.ts +1 -1
  176. package/dist/containers/PDiskPage/PDiskPage.js +30 -31
  177. package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
  178. package/dist/containers/PDiskPage/PDiskPage.scss +22 -11
  179. package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js +7 -7
  180. package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js.map +1 -1
  181. package/dist/containers/PDiskPage/PDiskStorageDetails.d.ts +6 -0
  182. package/dist/containers/PDiskPage/PDiskStorageDetails.js +28 -0
  183. package/dist/containers/PDiskPage/PDiskStorageDetails.js.map +1 -0
  184. package/dist/containers/PDiskPage/PDiskStorageDetails.scss +51 -0
  185. package/dist/containers/PDiskPage/i18n/en.json +2 -0
  186. package/dist/containers/PDiskPage/i18n/index.d.ts +1 -1
  187. package/dist/containers/Storage/Disks/Disks.js +36 -9
  188. package/dist/containers/Storage/Disks/Disks.js.map +1 -1
  189. package/dist/containers/Storage/PDisk/PDisk.d.ts +2 -1
  190. package/dist/containers/Storage/PDisk/PDisk.js +2 -2
  191. package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
  192. package/dist/containers/Storage/PDisk/i18n/index.d.ts +1 -1
  193. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +7 -2
  194. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
  195. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
  196. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.scss +14 -82
  197. package/dist/containers/Storage/StorageExpertModePanel/constants.d.ts +1 -1
  198. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +1 -1
  199. package/dist/containers/Storage/StorageGroupStateLabel.d.ts +4 -0
  200. package/dist/containers/Storage/StorageGroupStateLabel.js +9 -0
  201. package/dist/containers/Storage/StorageGroupStateLabel.js.map +1 -0
  202. package/dist/containers/Storage/useStorageQueryParams.d.ts +4 -4
  203. package/dist/containers/Storage/utils/getStorageGroupStateLabel.d.ts +2 -0
  204. package/dist/containers/Storage/utils/getStorageGroupStateLabel.js +35 -0
  205. package/dist/containers/Storage/utils/getStorageGroupStateLabel.js.map +1 -0
  206. package/dist/containers/StorageGroupPage/StorageGroupPage.js +20 -13
  207. package/dist/containers/StorageGroupPage/StorageGroupPage.js.map +1 -1
  208. package/dist/containers/StorageGroupPage/StorageGroupPage.scss +18 -12
  209. package/dist/containers/StorageGroupPage/i18n/en.json +2 -1
  210. package/dist/containers/StorageGroupPage/i18n/index.d.ts +1 -1
  211. package/dist/containers/Tenant/Diagnostics/Overview/Overview.d.ts +2 -1
  212. package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +4 -1
  213. package/dist/containers/Tenant/Diagnostics/Overview/Overview.js.map +1 -1
  214. package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/SchemaObjectInfo.d.ts +2 -1
  215. package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/SchemaObjectInfo.js +11 -2
  216. package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/SchemaObjectInfo.js.map +1 -1
  217. package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSchemaObjectInfo.d.ts +2 -1
  218. package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSchemaObjectInfo.js +9 -8
  219. package/dist/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSchemaObjectInfo.js.map +1 -1
  220. package/dist/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/StreamingQueryInfo.d.ts +16 -1
  221. package/dist/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/StreamingQueryInfo.js +56 -19
  222. package/dist/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/StreamingQueryInfo.js.map +1 -1
  223. package/dist/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/i18n/en.json +5 -1
  224. package/dist/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/i18n/index.d.ts +1 -1
  225. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/i18n/index.d.ts +1 -1
  226. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +5 -12
  227. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  228. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +1 -1
  229. package/dist/containers/Tenant/Diagnostics/TopQueries/columns/i18n/index.d.ts +1 -1
  230. package/dist/containers/Tenant/Healthcheck/Healthcheck.scss +6 -1
  231. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.d.ts +3 -1
  232. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.js +3 -3
  233. package/dist/containers/Tenant/Healthcheck/components/HealthcheckDrawer.js.map +1 -1
  234. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js +2 -2
  235. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssue.js.map +1 -1
  236. package/dist/containers/Tenant/TenantDrawerHealthcheck.js +17 -2
  237. package/dist/containers/Tenant/TenantDrawerHealthcheck.js.map +1 -1
  238. package/dist/containers/Tenants/DatabaseDrawerHealthcheck.js +8 -1
  239. package/dist/containers/Tenants/DatabaseDrawerHealthcheck.js.map +1 -1
  240. package/dist/containers/VDiskPage/VDiskPage.js +33 -33
  241. package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
  242. package/dist/containers/VDiskPage/VDiskPage.scss +21 -8
  243. package/dist/containers/VDiskPage/VDiskStorageDetails.js +27 -29
  244. package/dist/containers/VDiskPage/VDiskStorageDetails.js.map +1 -1
  245. package/dist/containers/VDiskPage/VDiskStorageDetails.scss +24 -93
  246. package/dist/containers/VDiskPage/i18n/en.json +3 -12
  247. package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
  248. package/dist/lib.d.ts +1 -1
  249. package/dist/lib.js.map +1 -1
  250. package/dist/store/configureStore.d.ts +2 -2
  251. package/dist/store/defaultStore.d.ts +1 -1
  252. package/dist/store/reducers/cluster/parseFields.js +1 -0
  253. package/dist/store/reducers/cluster/parseFields.js.map +1 -1
  254. package/dist/store/reducers/clusters/clusters.js +1 -0
  255. package/dist/store/reducers/clusters/clusters.js.map +1 -1
  256. package/dist/store/reducers/clusters/selectors.d.ts +1 -0
  257. package/dist/store/reducers/clusters/selectors.js +4 -1
  258. package/dist/store/reducers/clusters/selectors.js.map +1 -1
  259. package/dist/store/reducers/clusters/types.d.ts +2 -0
  260. package/dist/store/reducers/header/types.d.ts +1 -1
  261. package/dist/store/reducers/index.d.ts +2 -2
  262. package/dist/store/reducers/pdisk/types.d.ts +1 -0
  263. package/dist/store/reducers/pdisk/utils.js +6 -1
  264. package/dist/store/reducers/pdisk/utils.js.map +1 -1
  265. package/dist/store/reducers/storage/prepareGroupsDisks.d.ts +2 -1
  266. package/dist/store/reducers/storage/prepareGroupsDisks.js +9 -19
  267. package/dist/store/reducers/storage/prepareGroupsDisks.js.map +1 -1
  268. package/dist/store/reducers/storage/utils.js +14 -3
  269. package/dist/store/reducers/storage/utils.js.map +1 -1
  270. package/dist/store/reducers/streamingQuery/streamingQuery.js +2 -4
  271. package/dist/store/reducers/streamingQuery/streamingQuery.js.map +1 -1
  272. package/dist/store/reducers/vdisk/types.d.ts +1 -1
  273. package/dist/store/reducers/vdisk/utils.js +5 -5
  274. package/dist/store/reducers/vdisk/utils.js.map +1 -1
  275. package/dist/styles/mixins.scss +22 -0
  276. package/dist/types/api/meta.d.ts +1 -0
  277. package/dist/types/api/nodesList.d.ts +2 -0
  278. package/dist/types/api/pdisk.d.ts +4 -0
  279. package/dist/types/api/pdisk.js.map +1 -1
  280. package/dist/types/api/vdisk.d.ts +8 -0
  281. package/dist/types/api/vdisk.js +7 -0
  282. package/dist/types/api/vdisk.js.map +1 -1
  283. package/dist/types/store/nodesList.d.ts +4 -2
  284. package/dist/uiFactory/types.d.ts +5 -2
  285. package/dist/utils/bytesParsers/formatBytes.d.ts +3 -1
  286. package/dist/utils/bytesParsers/formatBytes.js +12 -3
  287. package/dist/utils/bytesParsers/formatBytes.js.map +1 -1
  288. package/dist/utils/disks/constants.d.ts +1 -0
  289. package/dist/utils/disks/constants.js +4 -0
  290. package/dist/utils/disks/constants.js.map +1 -1
  291. package/dist/utils/disks/diskInfo/getDiskLocationItems.d.ts +16 -0
  292. package/dist/utils/disks/diskInfo/getDiskLocationItems.js +30 -0
  293. package/dist/utils/disks/diskInfo/getDiskLocationItems.js.map +1 -0
  294. package/dist/utils/disks/diskInfo/i18n/en.json +9 -0
  295. package/dist/utils/disks/diskInfo/i18n/index.d.ts +2 -0
  296. package/dist/utils/disks/diskInfo/i18n/index.js +4 -0
  297. package/dist/utils/disks/diskInfo/i18n/index.js.map +1 -0
  298. package/dist/utils/disks/iconCalculators.d.ts +5 -0
  299. package/dist/utils/disks/iconCalculators.js +1 -1
  300. package/dist/utils/disks/iconCalculators.js.map +1 -1
  301. package/dist/utils/disks/prepareDisks.d.ts +6 -2
  302. package/dist/utils/disks/prepareDisks.js +22 -35
  303. package/dist/utils/disks/prepareDisks.js.map +1 -1
  304. package/dist/utils/disks/types.d.ts +9 -2
  305. package/dist/utils/hooks/useDatabaseHealthcheckAvailable.d.ts +2 -0
  306. package/dist/utils/hooks/useDatabaseHealthcheckAvailable.js +6 -0
  307. package/dist/utils/hooks/useDatabaseHealthcheckAvailable.js.map +1 -0
  308. package/dist/utils/hooks/useNodeMetadata.d.ts +2 -0
  309. package/dist/utils/hooks/useNodeMetadata.js +15 -0
  310. package/dist/utils/hooks/useNodeMetadata.js.map +1 -0
  311. package/dist/utils/memory.d.ts +5 -0
  312. package/dist/utils/memory.js +9 -0
  313. package/dist/utils/memory.js.map +1 -0
  314. package/dist/utils/nodes.js +6 -2
  315. package/dist/utils/nodes.js.map +1 -1
  316. package/dist/utils/storageMetrics.d.ts +3 -2
  317. package/dist/utils/storageMetrics.js +30 -10
  318. package/dist/utils/storageMetrics.js.map +1 -1
  319. package/dist/utils/timeParsers/formatDuration.d.ts +4 -1
  320. package/dist/utils/timeParsers/formatDuration.js +16 -1
  321. package/dist/utils/timeParsers/formatDuration.js.map +1 -1
  322. package/dist/utils/timeParsers/i18n/en.json +5 -1
  323. package/dist/utils/timeParsers/i18n/index.d.ts +1 -1
  324. package/dist/utils/timeParsers/i18n/ru.json +5 -1
  325. package/package.json +2 -2
  326. package/src/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.tsx +22 -3
  327. package/src/components/CopyableValue/CopyableValue.scss +16 -0
  328. package/src/components/CopyableValue/CopyableValue.tsx +40 -0
  329. package/src/components/CopyableValue/i18n/en.json +3 -0
  330. package/src/components/CopyableValue/i18n/index.ts +8 -0
  331. package/src/components/CriticalActionDialog/CriticalActionDialog.tsx +3 -0
  332. package/src/components/DiskCapacityInfo/DiskCapacityInfo.tsx +75 -129
  333. package/src/components/DiskCapacityInfo/i18n/en.json +0 -1
  334. package/src/components/DiskPopup/DiskPopup.scss +203 -0
  335. package/src/components/DiskPopup/DiskPopup.tsx +123 -0
  336. package/src/components/DiskPopup/i18n/en.json +3 -0
  337. package/src/components/DiskPopup/i18n/index.ts +5 -0
  338. package/src/components/DiskStatus/DiskStatus.scss +59 -0
  339. package/src/components/DiskStatus/DiskStatus.tsx +149 -0
  340. package/src/components/DiskStatus/i18n/en.json +6 -0
  341. package/src/components/DiskStatus/i18n/index.ts +5 -0
  342. package/src/components/EntityStatus/EntityStatus.scss +5 -0
  343. package/src/components/EntityStatus/EntityStatus.tsx +39 -6
  344. package/src/components/EvictVDiskButton/EvictVDiskButton.tsx +10 -2
  345. package/src/components/EvictVDiskButton/i18n/en.json +2 -2
  346. package/src/components/FullNodeViewer/FullNodeViewer.tsx +4 -9
  347. package/src/components/HoverPopup/HoverPopup.tsx +157 -34
  348. package/src/components/HoverPopup/usePopupPriority.ts +39 -0
  349. package/src/components/MemoryViewer/MemoryViewer.tsx +30 -17
  350. package/src/components/MemoryViewer/i18n/en.json +4 -3
  351. package/src/components/MemoryViewer/utils.ts +19 -12
  352. package/src/components/PDiskInfo/PDiskInfo.scss +15 -0
  353. package/src/components/PDiskInfo/PDiskInfo.tsx +51 -243
  354. package/src/components/PDiskInfo/PDiskLogSize.scss +12 -0
  355. package/src/components/PDiskInfo/PDiskLogSize.tsx +41 -0
  356. package/src/components/PDiskInfo/getPDiskDetails.tsx +37 -0
  357. package/src/components/PDiskInfo/i18n/en.json +69 -10
  358. package/src/components/PDiskInfo/statuses.ts +222 -0
  359. package/src/components/PDiskPopup/PDiskPopup.tsx +62 -147
  360. package/src/components/PDiskPopup/i18n/en.json +2 -12
  361. package/src/components/Search/Search.tsx +5 -2
  362. package/src/components/StorageGroupInfo/StorageGroupInfo.scss +21 -0
  363. package/src/components/StorageGroupInfo/StorageGroupInfo.tsx +119 -263
  364. package/src/components/StorageGroupInfo/i18n/en.json +1 -9
  365. package/src/components/VDisk/VDisk.tsx +34 -36
  366. package/src/components/VDisk/VDiskWithDonorsStack.tsx +2 -0
  367. package/src/components/VDisk/getFlagStatusText.ts +19 -0
  368. package/src/components/VDisk/i18n/en.json +1 -1
  369. package/src/components/VDiskInfo/VDiskInfo.scss +19 -3
  370. package/src/components/VDiskInfo/VDiskInfo.tsx +119 -341
  371. package/src/components/VDiskInfo/getVDiskDetails.tsx +63 -0
  372. package/src/components/VDiskInfo/i18n/en.json +5 -21
  373. package/src/components/VDiskPopup/VDiskPopup.scss +3 -10
  374. package/src/components/VDiskPopup/VDiskPopup.tsx +192 -424
  375. package/src/components/VDiskPopup/i18n/en.json +4 -22
  376. package/src/components/VDiskStatus/VDiskReplicationStatus.tsx +77 -0
  377. package/src/components/VDiskStatus/VDiskStatus.scss +36 -0
  378. package/src/components/VDiskStatus/VDiskStatus.tsx +49 -0
  379. package/src/components/VDiskStatus/i18n/en.json +33 -0
  380. package/src/components/VDiskStatus/i18n/index.ts +7 -0
  381. package/src/components/VDiskStatus/index.ts +7 -0
  382. package/src/components/VDiskStatus/statuses.ts +139 -0
  383. package/src/components/capacityMetricsColumns/i18n/en.json +4 -4
  384. package/src/components/nodesColumns/columns.tsx +26 -12
  385. package/src/containers/Cluster/ClusterDrawerHealthcheck.tsx +6 -0
  386. package/src/containers/Clusters/ClusterDrawerHealthcheck.tsx +1 -0
  387. package/src/containers/Clusters/Clusters.scss +24 -6
  388. package/src/containers/Clusters/Clusters.tsx +74 -5
  389. package/src/containers/Clusters/columns.tsx +36 -6
  390. package/src/containers/Clusters/i18n/en.json +6 -0
  391. package/src/containers/Header/Header.tsx +19 -3
  392. package/src/containers/Header/HeaderLeftControls.tsx +3 -1
  393. package/src/containers/Header/PDiskLeftControls.tsx +41 -0
  394. package/src/containers/Header/StorageGroupLeftControls.tsx +38 -0
  395. package/src/containers/Header/VDiskLeftControls.tsx +40 -0
  396. package/src/containers/Header/breadcrumbs.tsx +4 -2
  397. package/src/containers/Header/i18n/en.json +6 -1
  398. package/src/containers/Nodes/NodesControls/NodesControls.tsx +1 -0
  399. package/src/containers/Nodes/PaginatedNodes/GroupedNodesComponent.tsx +5 -3
  400. package/src/containers/Nodes/PaginatedNodes/NodesComponent.tsx +4 -2
  401. package/src/containers/Nodes/useDebouncedSearch.ts +13 -0
  402. package/src/containers/PDiskPage/PDiskPage.scss +22 -11
  403. package/src/containers/PDiskPage/PDiskPage.tsx +88 -56
  404. package/src/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.tsx +16 -11
  405. package/src/containers/PDiskPage/PDiskStorageDetails.scss +51 -0
  406. package/src/containers/PDiskPage/PDiskStorageDetails.tsx +64 -0
  407. package/src/containers/PDiskPage/i18n/en.json +2 -0
  408. package/src/containers/Storage/Disks/Disks.tsx +66 -12
  409. package/src/containers/Storage/PDisk/PDisk.tsx +3 -0
  410. package/src/containers/Storage/PaginatedStorageGroupsTable/columns/columns.tsx +24 -3
  411. package/src/containers/Storage/StorageExpertModePanel/components/SpaceLegend.scss +14 -82
  412. package/src/containers/Storage/StorageGroupStateLabel.tsx +22 -0
  413. package/src/containers/Storage/utils/getStorageGroupStateLabel.ts +49 -0
  414. package/src/containers/StorageGroupPage/StorageGroupPage.scss +18 -12
  415. package/src/containers/StorageGroupPage/StorageGroupPage.tsx +63 -26
  416. package/src/containers/StorageGroupPage/i18n/en.json +2 -1
  417. package/src/containers/Tenant/Diagnostics/Overview/Overview.tsx +5 -1
  418. package/src/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/SchemaObjectInfo.tsx +12 -1
  419. package/src/containers/Tenant/Diagnostics/Overview/SchemaObjectInfo/prepareSchemaObjectInfo.tsx +11 -10
  420. package/src/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/StreamingQueryInfo.tsx +83 -20
  421. package/src/containers/Tenant/Diagnostics/Overview/StreamingQueryInfo/i18n/en.json +5 -1
  422. package/src/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.tsx +5 -32
  423. package/src/containers/Tenant/Healthcheck/Healthcheck.scss +6 -1
  424. package/src/containers/Tenant/Healthcheck/components/HealthcheckDrawer.tsx +5 -2
  425. package/src/containers/Tenant/Healthcheck/components/HealthcheckIssue.tsx +18 -8
  426. package/src/containers/Tenant/TenantDrawerHealthcheck.tsx +24 -1
  427. package/src/containers/Tenants/DatabaseDrawerHealthcheck.tsx +10 -0
  428. package/src/containers/VDiskPage/VDiskPage.scss +21 -8
  429. package/src/containers/VDiskPage/VDiskPage.tsx +103 -64
  430. package/src/containers/VDiskPage/VDiskStorageDetails.scss +24 -93
  431. package/src/containers/VDiskPage/VDiskStorageDetails.tsx +50 -158
  432. package/src/containers/VDiskPage/i18n/en.json +3 -14
  433. package/src/lib.ts +1 -0
  434. package/src/store/reducers/cluster/parseFields.ts +1 -0
  435. package/src/store/reducers/clusters/clusters.ts +1 -0
  436. package/src/store/reducers/clusters/selectors.ts +4 -0
  437. package/src/store/reducers/clusters/types.ts +3 -0
  438. package/src/store/reducers/header/types.ts +3 -1
  439. package/src/store/reducers/pdisk/types.ts +1 -0
  440. package/src/store/reducers/pdisk/utils.ts +6 -3
  441. package/src/store/reducers/storage/prepareGroupsDisks.ts +9 -22
  442. package/src/store/reducers/storage/utils.ts +17 -3
  443. package/src/store/reducers/streamingQuery/streamingQuery.ts +2 -4
  444. package/src/store/reducers/vdisk/types.ts +2 -1
  445. package/src/store/reducers/vdisk/utils.ts +4 -5
  446. package/src/styles/mixins.scss +22 -0
  447. package/src/types/api/meta.ts +1 -0
  448. package/src/types/api/nodesList.ts +3 -0
  449. package/src/types/api/pdisk.ts +4 -0
  450. package/src/types/api/vdisk.ts +9 -0
  451. package/src/types/store/nodesList.ts +7 -7
  452. package/src/uiFactory/types.ts +9 -2
  453. package/src/utils/bytesParsers/formatBytes.ts +23 -4
  454. package/src/utils/disks/constants.ts +5 -0
  455. package/src/utils/disks/diskInfo/getDiskLocationItems.ts +50 -0
  456. package/src/utils/disks/diskInfo/i18n/en.json +9 -0
  457. package/src/utils/disks/diskInfo/i18n/index.ts +5 -0
  458. package/src/utils/disks/iconCalculators.ts +1 -1
  459. package/src/utils/disks/prepareDisks.ts +21 -47
  460. package/src/utils/disks/types.ts +10 -2
  461. package/src/utils/hooks/useDatabaseHealthcheckAvailable.ts +9 -0
  462. package/src/utils/hooks/useNodeMetadata.ts +21 -0
  463. package/src/utils/memory.ts +16 -0
  464. package/src/utils/nodes.ts +7 -1
  465. package/src/utils/storageMetrics.ts +38 -14
  466. package/src/utils/timeParsers/formatDuration.ts +22 -1
  467. package/src/utils/timeParsers/i18n/en.json +5 -1
  468. package/src/utils/timeParsers/i18n/ru.json +5 -1
  469. package/dist/components/VDiskInfo/getVDiskCapacityColumns.d.ts +0 -11
  470. package/dist/components/VDiskInfo/getVDiskCapacityColumns.js +0 -52
  471. package/dist/components/VDiskInfo/getVDiskCapacityColumns.js.map +0 -1
  472. package/src/components/VDiskInfo/getVDiskCapacityColumns.tsx +0 -83
@@ -4,14 +4,16 @@ type HoverPopupProps = {
4
4
  children: React.ReactNode;
5
5
  renderPopupContent: (controls: {
6
6
  onClose: VoidFunction;
7
+ holdOpen: () => VoidFunction;
7
8
  }) => React.ReactNode;
8
9
  showPopup?: boolean;
9
10
  anchorRef?: React.RefObject<HTMLElement>;
10
11
  onShowPopup?: VoidFunction;
11
12
  onHidePopup?: VoidFunction;
13
+ onClosePopup?: VoidFunction;
12
14
  delayOpen?: number;
13
15
  delayClose?: number;
14
16
  contentClassName?: string;
15
17
  } & Pick<PopupProps, 'placement' | 'offset'>;
16
- export declare const HoverPopup: ({ children, renderPopupContent, showPopup, offset, anchorRef, onShowPopup, onHidePopup, placement, contentClassName, delayClose, delayOpen, }: HoverPopupProps) => import("react/jsx-runtime").JSX.Element;
18
+ export declare const HoverPopup: ({ children, renderPopupContent, showPopup, offset, anchorRef, onShowPopup, onHidePopup, onClosePopup, placement, contentClassName, delayClose, delayOpen, }: HoverPopupProps) => import("react/jsx-runtime").JSX.Element;
17
19
  export {};
@@ -5,27 +5,40 @@ import debounce from 'lodash/debounce';
5
5
  import { YDB_POPOVER_CLASS_NAME } from '../../utils/constants';
6
6
  import { useEventHandler } from '../../utils/hooks/useEventHandler';
7
7
  import { getPopupScrollContainer } from './getPopupScrollContainer';
8
+ import { usePopupPriority } from './usePopupPriority';
8
9
  const DEBOUNCE_TIMEOUT = 100;
9
- function useVisibleAnchor(anchorElement, open) {
10
+ function useVisibleAnchor(anchorElement, open, onHidden) {
10
11
  const [visibleAnchor, setVisibleAnchor] = React.useState(null);
12
+ // Mouse events can arrive before React renders the observer's next visibility state.
13
+ const visibleAnchorRef = React.useRef(null);
11
14
  React.useLayoutEffect(() => {
12
15
  setVisibleAnchor(null);
16
+ visibleAnchorRef.current = null;
13
17
  if (!open || !anchorElement) {
14
18
  return undefined;
15
19
  }
16
20
  const observer = new IntersectionObserver(([entry]) => {
17
- setVisibleAnchor(entry.isIntersecting ? anchorElement : null);
21
+ visibleAnchorRef.current = entry.isIntersecting ? anchorElement : null;
22
+ setVisibleAnchor(visibleAnchorRef.current);
23
+ if (!entry.isIntersecting) {
24
+ onHidden();
25
+ }
18
26
  });
19
27
  observer.observe(anchorElement);
20
28
  return () => observer.disconnect();
21
- }, [anchorElement, open]);
22
- return anchorElement !== null && visibleAnchor === anchorElement;
29
+ }, [anchorElement, open, onHidden]);
30
+ return [anchorElement !== null && visibleAnchor === anchorElement, visibleAnchorRef];
23
31
  }
24
- export const HoverPopup = ({ children, renderPopupContent, showPopup, offset, anchorRef, onShowPopup, onHidePopup, placement = ['top', 'bottom', 'left', 'right'], contentClassName, delayClose = DEBOUNCE_TIMEOUT, delayOpen = DEBOUNCE_TIMEOUT, }) => {
32
+ export const HoverPopup = ({ children, renderPopupContent, showPopup, offset, anchorRef, onShowPopup, onHidePopup, onClosePopup, placement = ['top', 'bottom', 'left', 'right'], contentClassName, delayClose = DEBOUNCE_TIMEOUT, delayOpen = DEBOUNCE_TIMEOUT, }) => {
25
33
  const [isPopupVisible, setIsPopupVisible] = React.useState(false);
26
34
  const [isPopupContentHovered, setIsPopupContentHovered] = React.useState(false);
27
35
  const [isFocused, setIsFocused] = React.useState(false);
36
+ const [hoverClosing, setHoverClosing] = React.useState(false);
37
+ const dialogHoldRef = React.useRef(null);
28
38
  const anchor = React.useRef(null);
39
+ const popupContent = React.useRef(null);
40
+ const { activate, zIndex } = usePopupPriority();
41
+ const bringToFront = useEventHandler(() => activate((anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) || anchor.current));
29
42
  const reportedOpenRef = React.useRef(false);
30
43
  const reportOpen = useEventHandler((nextOpen, force = false) => {
31
44
  if (!force && reportedOpenRef.current === nextOpen) {
@@ -43,28 +56,97 @@ export const HoverPopup = ({ children, renderPopupContent, showPopup, offset, an
43
56
  setIsPopupVisible(true);
44
57
  reportOpen(true);
45
58
  }, delayOpen), [delayOpen, reportOpen]);
46
- const hidePopup = React.useCallback(() => {
59
+ const hidePopup = useEventHandler(() => {
60
+ if (dialogHoldRef.current || isFocused) {
61
+ return;
62
+ }
63
+ setHoverClosing(open && visibleAnchorRef.current === anchorElement);
47
64
  setIsPopupVisible(false);
48
- }, []);
49
- const debouncedHandleHidePopup = React.useMemo(() => debounce(() => {
50
- hidePopup();
51
65
  reportOpen(false);
52
- }, delayClose), [delayClose, reportOpen, hidePopup]);
66
+ });
67
+ const debouncedHandleHidePopup = React.useMemo(() => debounce(hidePopup, delayClose), [delayClose, hidePopup]);
53
68
  React.useEffect(() => {
54
69
  return () => {
55
70
  debouncedHandleShowPopup.cancel();
56
71
  debouncedHandleHidePopup.cancel();
72
+ dialogHoldRef.current = null;
57
73
  };
58
74
  }, [debouncedHandleShowPopup, debouncedHandleHidePopup]);
59
75
  const closePopup = React.useCallback(() => {
60
76
  debouncedHandleShowPopup.cancel();
61
77
  debouncedHandleHidePopup.cancel();
78
+ dialogHoldRef.current = null;
62
79
  setIsPopupVisible(false);
63
80
  setIsPopupContentHovered(false);
64
81
  setIsFocused(false);
82
+ setHoverClosing(false);
65
83
  reportOpen(false, true);
66
- }, [debouncedHandleHidePopup, debouncedHandleShowPopup, reportOpen]);
67
- const onMouseEnter = () => {
84
+ onClosePopup === null || onClosePopup === void 0 ? void 0 : onClosePopup();
85
+ }, [debouncedHandleHidePopup, debouncedHandleShowPopup, onClosePopup, reportOpen]);
86
+ const hideClippedPopup = useEventHandler(() => {
87
+ debouncedHandleShowPopup.cancel();
88
+ setIsPopupContentHovered(false);
89
+ setIsFocused(false);
90
+ setHoverClosing(false);
91
+ debouncedHandleHidePopup();
92
+ });
93
+ const internalOpen = isPopupVisible || isPopupContentHovered || isFocused;
94
+ const open = Boolean(internalOpen || showPopup);
95
+ const anchorElement = (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) || anchor.current;
96
+ // Release only this popup's hover source; a hovered peer can keep the pair open.
97
+ const [isAnchorVisible, visibleAnchorRef] = useVisibleAnchor(anchorElement, open || hoverClosing, hideClippedPopup);
98
+ const container = getPopupScrollContainer(anchorElement);
99
+ React.useEffect(() => {
100
+ if (!hoverClosing || !anchorElement) {
101
+ return undefined;
102
+ }
103
+ // Escape may close this popup through its paired sibling's handler.
104
+ const preventHoverReturn = (event) => {
105
+ if (event.key === 'Escape') {
106
+ setHoverClosing(false);
107
+ }
108
+ };
109
+ const doc = anchorElement.ownerDocument;
110
+ doc.addEventListener('keydown', preventHoverReturn, true);
111
+ return () => doc.removeEventListener('keydown', preventHoverReturn, true);
112
+ }, [anchorElement, hoverClosing]);
113
+ const resumeHover = useEventHandler(() => {
114
+ var _a;
115
+ const contentHovered = Boolean((_a = popupContent.current) === null || _a === void 0 ? void 0 : _a.matches(':hover'));
116
+ const hovered = visibleAnchorRef.current === anchorElement &&
117
+ ((anchorElement === null || anchorElement === void 0 ? void 0 : anchorElement.matches(':hover')) || contentHovered);
118
+ debouncedHandleShowPopup.cancel();
119
+ debouncedHandleHidePopup.cancel();
120
+ setIsFocused(false);
121
+ setIsPopupContentHovered(Boolean(hovered && contentHovered));
122
+ if (hovered) {
123
+ setIsPopupVisible(true);
124
+ reportOpen(true);
125
+ }
126
+ else {
127
+ debouncedHandleHidePopup();
128
+ }
129
+ });
130
+ const holdOpen = () => {
131
+ const interaction = {};
132
+ dialogHoldRef.current = interaction;
133
+ debouncedHandleShowPopup.cancel();
134
+ debouncedHandleHidePopup.cancel();
135
+ setIsFocused(false);
136
+ setIsPopupVisible(true);
137
+ reportOpen(true);
138
+ return () => {
139
+ if (dialogHoldRef.current === interaction) {
140
+ dialogHoldRef.current = null;
141
+ resumeHover();
142
+ }
143
+ };
144
+ };
145
+ const onMouseEnter = (event) => {
146
+ if (event.buttons !== 0) {
147
+ return;
148
+ }
149
+ bringToFront();
68
150
  debouncedHandleHidePopup.cancel();
69
151
  debouncedHandleShowPopup();
70
152
  };
@@ -72,42 +154,63 @@ export const HoverPopup = ({ children, renderPopupContent, showPopup, offset, an
72
154
  debouncedHandleShowPopup.cancel();
73
155
  debouncedHandleHidePopup();
74
156
  };
75
- const onPopupMouseEnter = React.useCallback(() => {
157
+ const onPopupMouseEnter = React.useCallback((event) => {
158
+ if ((!open && !hoverClosing) || visibleAnchorRef.current !== anchorElement) {
159
+ return;
160
+ }
161
+ if (event.buttons === 0) {
162
+ bringToFront();
163
+ }
76
164
  debouncedHandleHidePopup.cancel();
165
+ setHoverClosing(false);
166
+ setIsPopupVisible(true);
77
167
  setIsPopupContentHovered(true);
78
168
  reportOpen(true);
79
- }, [reportOpen, debouncedHandleHidePopup]);
169
+ }, [
170
+ bringToFront,
171
+ reportOpen,
172
+ debouncedHandleHidePopup,
173
+ open,
174
+ hoverClosing,
175
+ visibleAnchorRef,
176
+ anchorElement,
177
+ ]);
80
178
  const onPopupMouseLeave = React.useCallback(() => {
81
179
  setIsPopupContentHovered(false);
82
180
  debouncedHandleHidePopup();
83
181
  }, [debouncedHandleHidePopup]);
84
182
  const onPopupContextMenu = React.useCallback(() => {
183
+ if (dialogHoldRef.current || !open || visibleAnchorRef.current !== anchorElement) {
184
+ return;
185
+ }
186
+ bringToFront();
85
187
  setIsFocused(true);
86
188
  reportOpen(true);
87
- }, [reportOpen]);
88
- const onPopupBlur = React.useCallback(() => {
89
- setIsFocused(false);
90
- }, []);
189
+ }, [bringToFront, reportOpen, open, visibleAnchorRef, anchorElement]);
190
+ const onPopupBlur = useEventHandler(() => {
191
+ if (isFocused && !dialogHoldRef.current) {
192
+ resumeHover();
193
+ }
194
+ });
91
195
  const onPopupEscapeKeyDown = React.useCallback(() => {
92
- closePopup();
196
+ if (!dialogHoldRef.current) {
197
+ closePopup();
198
+ }
93
199
  }, [closePopup]);
94
- const internalOpen = isPopupVisible || isPopupContentHovered || isFocused;
95
- const open = Boolean(internalOpen || showPopup);
96
- const anchorElement = (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) || anchor.current;
97
- // Clipping a paired disk must not clear the shared hover state via onHidePopup.
98
- const isAnchorVisible = useVisibleAnchor(anchorElement, open);
99
- const container = getPopupScrollContainer(anchorElement);
100
- return (_jsxs(React.Fragment, { children: [_jsx("span", { ref: anchor, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, children: children }), anchorElement ? (_jsx(Popup, { container: container,
200
+ return (_jsxs(React.Fragment, { children: [_jsx("span", { ref: anchor, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, children: children }), anchorElement ? (_jsx(Popup, { container: container, zIndex: zIndex,
101
201
  // Keep portal typography when the page uses a different font.
102
202
  floatingStyles: { fontFamily: 'var(--g-text-body-font-family)' }, anchorElement: anchorElement, onOpenChange: (_open, _event, reason) => {
103
203
  if (reason === 'escape-key') {
104
204
  onPopupEscapeKeyDown();
105
205
  }
206
+ else if (reason === 'outside-press') {
207
+ onPopupBlur();
208
+ }
106
209
  }, placement: placement,
107
210
  // Exiting popups must not expand the page when their anchors scroll offscreen.
108
- strategy: "fixed", returnFocus: false, hasArrow: true, open: open && isAnchorVisible,
211
+ strategy: "fixed", returnFocus: false, hasArrow: true, open: open && isAnchorVisible, onTransitionOutComplete: () => setHoverClosing(false),
109
212
  // bigger offset for easier switching to neighbour nodes
110
213
  // matches the default offset for popup with arrow out of a sense of beauty
111
- offset: offset || { mainAxis: 12, crossAxis: 0 }, children: _jsx("div", { className: contentClassName, onContextMenu: onPopupContextMenu, onMouseEnter: onPopupMouseEnter, onMouseLeave: onPopupMouseLeave, onBlur: onPopupBlur, children: _jsx("div", { className: YDB_POPOVER_CLASS_NAME, children: renderPopupContent({ onClose: closePopup }) }) }) })) : null] }));
214
+ offset: offset || { mainAxis: 12, crossAxis: 0 }, children: _jsx("div", { ref: popupContent, className: contentClassName, onContextMenu: onPopupContextMenu, onMouseEnter: onPopupMouseEnter, onMouseLeave: onPopupMouseLeave, onBlur: onPopupBlur, children: _jsx("div", { className: YDB_POPOVER_CLASS_NAME, children: renderPopupContent({ onClose: closePopup, holdOpen }) }) }) })) : null] }));
112
215
  };
113
216
  //# sourceMappingURL=HoverPopup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HoverPopup.js","sourceRoot":"","sources":["../../../src/components/HoverPopup/HoverPopup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HoverPopup.js","sourceRoot":"","sources":["../../../src/components/HoverPopup/HoverPopup.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function usePopupPriority(): {
2
+ activate: (element: HTMLElement | null) => void;
3
+ zIndex: number;
4
+ };
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ // Only the previously active popup needs updating when another one is entered.
3
+ const activePopups = new WeakMap();
4
+ export function usePopupPriority() {
5
+ const [active, setActive] = React.useState(false);
6
+ const documentRef = React.useRef();
7
+ const deactivate = React.useCallback(() => setActive(false), []);
8
+ const activate = React.useCallback((element) => {
9
+ if (!element) {
10
+ return;
11
+ }
12
+ const doc = element.ownerDocument;
13
+ const previous = activePopups.get(doc);
14
+ if (previous !== deactivate) {
15
+ previous === null || previous === void 0 ? void 0 : previous();
16
+ activePopups.set(doc, deactivate);
17
+ }
18
+ documentRef.current = doc;
19
+ setActive(true);
20
+ }, [deactivate]);
21
+ React.useEffect(() => () => {
22
+ const doc = documentRef.current;
23
+ if (doc && activePopups.get(doc) === deactivate) {
24
+ activePopups.delete(doc);
25
+ }
26
+ }, [deactivate]);
27
+ // Keep tooltips, menus and modal dialogs (Gravity UI's default 1000) above cards.
28
+ return { activate, zIndex: active ? 999 : 998 };
29
+ }
30
+ //# sourceMappingURL=usePopupPriority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePopupPriority.js","sourceRoot":"","sources":["../../../src/components/HoverPopup/usePopupPriority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,+EAA+E;AAC/E,MAAM,YAAY,GAAG,IAAI,OAAO,EAA0B,CAAC;AAE3D,MAAM,UAAU,gBAAgB;IAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAY,CAAC;IAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAC9B,CAAC,OAA2B,EAAE,EAAE;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO;QACX,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;QAClC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC1B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,EAAI,CAAC;YACb,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;QACD,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC;QAC1B,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EACD,CAAC,UAAU,CAAC,CACf,CAAC;IAEF,KAAK,CAAC,SAAS,CACX,GAAG,EAAE,CAAC,GAAG,EAAE;QACP,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC;QAChC,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;YAC9C,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC,EACD,CAAC,UAAU,CAAC,CACf,CAAC;IAEF,kFAAkF;IAClF,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC;AAClD,CAAC"}
@@ -3,10 +3,12 @@ import type { FormatProgressViewerValues } from '../../utils/progress';
3
3
  import './MemoryViewer.scss';
4
4
  export interface MemoryProgressViewerProps {
5
5
  stats: TMemoryStats;
6
+ memoryUsed?: string;
7
+ memoryLimit?: string;
6
8
  className?: string;
7
9
  warningThreshold?: number;
8
10
  dangerThreshold?: number;
9
11
  formatValues: FormatProgressViewerValues;
10
12
  percents?: boolean;
11
13
  }
12
- export declare function MemoryViewer({ stats, percents, formatValues, className, warningThreshold, dangerThreshold, }: MemoryProgressViewerProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function MemoryViewer({ stats, memoryUsed, memoryLimit, percents, formatValues, className, warningThreshold, dangerThreshold, }: MemoryProgressViewerProps): "—" | import("react/jsx-runtime").JSX.Element;
@@ -2,12 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { DefinitionList, Flex, useTheme } from '@gravity-ui/uikit';
3
3
  import { formatBytes } from '../../utils/bytesParsers';
4
4
  import { cn } from '../../utils/cn';
5
- import { GIGABYTE } from '../../utils/constants';
5
+ import { EMPTY_DATA_PLACEHOLDER, GIGABYTE } from '../../utils/constants';
6
+ import { getNodeMemory } from '../../utils/memory';
6
7
  import { calculateProgressStatus } from '../../utils/progress';
7
- import { isNumeric } from '../../utils/utils';
8
+ import { isNumeric, parseOptionalNonNegativeNumber } from '../../utils/utils';
8
9
  import { HoverPopup } from '../HoverPopup/HoverPopup';
9
10
  import { ProgressViewer } from '../ProgressViewer/ProgressViewer';
10
- import { calculateAllocatedMemory, getMemorySegments } from './utils';
11
+ import { getMemorySegments } from './utils';
11
12
  import './MemoryViewer.scss';
12
13
  const MIN_VISIBLE_MEMORY_SHARE = 1;
13
14
  const MIN_VISIBLE_MEMORY_VALUE = 0.01 * GIGABYTE;
@@ -28,21 +29,25 @@ const formatDetailedValues = (value, total) => {
28
29
  }),
29
30
  ];
30
31
  };
31
- export function MemoryViewer({ stats, percents, formatValues, className, warningThreshold, dangerThreshold, }) {
32
- var _a;
33
- const memoryUsage = (_a = stats.AnonRss) !== null && _a !== void 0 ? _a : calculateAllocatedMemory(stats);
34
- const capacity = stats.HardLimit;
32
+ export function MemoryViewer({ stats, memoryUsed, memoryLimit, percents, formatValues, className, warningThreshold, dangerThreshold, }) {
33
+ const { memoryUsed: memoryUsage, memoryLimit: capacity } = getNodeMemory({
34
+ MemoryStats: stats,
35
+ MemoryUsed: memoryUsed,
36
+ MemoryLimit: memoryLimit,
37
+ });
35
38
  const theme = useTheme();
36
- let fillWidth = Math.floor((parseFloat(String(memoryUsage)) / parseFloat(String(capacity))) * 100) || 0;
37
- fillWidth = fillWidth > 100 ? 100 : fillWidth;
39
+ if (memoryUsage === undefined) {
40
+ return EMPTY_DATA_PLACEHOLDER;
41
+ }
42
+ const fillWidth = capacity === undefined ? 0 : Math.min(100, Math.floor((memoryUsage / capacity) * 100));
38
43
  let valueText = memoryUsage, capacityText = capacity, divider = '/';
39
- if (percents) {
44
+ if (percents && capacity !== undefined) {
40
45
  valueText = fillWidth + '%';
41
46
  capacityText = '';
42
47
  divider = '';
43
48
  }
44
49
  else if (formatValues) {
45
- [valueText, capacityText] = formatValues(Number(memoryUsage), Number(capacity));
50
+ [valueText, capacityText] = formatValues(memoryUsage, capacity);
46
51
  }
47
52
  const renderContent = () => {
48
53
  if (isNumeric(capacity)) {
@@ -51,12 +56,16 @@ export function MemoryViewer({ stats, percents, formatValues, className, warning
51
56
  return valueText;
52
57
  };
53
58
  const calculateMemoryShare = (segmentSize) => {
54
- if (!memoryUsage) {
59
+ if (!memoryUsage || capacity === undefined) {
55
60
  return 0;
56
61
  }
57
- return (segmentSize / parseFloat(String(capacity))) * 100;
62
+ return (segmentSize / capacity) * 100;
58
63
  };
59
- const memorySegments = getMemorySegments(stats, Number(memoryUsage));
64
+ // Without anonymous RSS, the backend's MemoryUsed excludes allocator caches.
65
+ const memorySegments = getMemorySegments(stats, memoryUsage, {
66
+ allocatorCachesIncludedInUsage: parseOptionalNonNegativeNumber(stats.AnonRss) !== undefined,
67
+ memoryLimit: capacity,
68
+ });
60
69
  const status = calculateProgressStatus({
61
70
  fillWidth,
62
71
  warningThreshold,
@@ -69,8 +78,8 @@ export function MemoryViewer({ stats, percents, formatValues, className, warning
69
78
  size: 'gb',
70
79
  withSizeLabel: true,
71
80
  precision: 2,
72
- })) }, label))) })), children: _jsx("div", { className: b({ theme, status }, className), children: _jsxs("div", { className: b('progress-container'), children: [memorySegments
73
- .filter(({ isInfo }) => !isInfo)
81
+ })) }, label))) })), children: _jsx("div", { className: b({ theme, status }, className), children: _jsxs("div", { className: capacity === undefined ? undefined : b('progress-container'), children: [memorySegments
82
+ .filter(({ isInfo }) => !isInfo && capacity !== undefined)
74
83
  .map((segment) => {
75
84
  if (segment.value < MIN_VISIBLE_MEMORY_VALUE) {
76
85
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryViewer.js","sourceRoot":"","sources":["../../../src/components/MemoryViewer/MemoryViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryViewer.js","sourceRoot":"","sources":["../../../src/components/MemoryViewer/MemoryViewer.tsx"],"names":[],"mappings":"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"}
@@ -5,8 +5,9 @@
5
5
  "text_memtable": "MemTable",
6
6
  "text_query-execution": "Query Execution",
7
7
  "text_usage": "Usage",
8
- "text_soft-limit": "Soft Limit",
9
- "text_hard-limit": "Hard Limit",
8
+ "text_soft-limit": "Memory Controller Soft Limit",
9
+ "text_hard-limit": "Memory Controller Hard Limit",
10
10
  "text_other": "Other",
11
- "text_memory-details": "Memory Details"
11
+ "text_memory-details": "Memory Details",
12
+ "text_memory-limit": "Memory Limit"
12
13
  }
@@ -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" | "text_memory-details", 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" | "text_memory-limit", params?: import("@gravity-ui/i18n").Params) => string;
2
2
  export default _default;
@@ -1,5 +1,4 @@
1
1
  import type { TMemoryStats } from '../../types/api/nodes';
2
- export declare function calculateAllocatedMemory(stats: TMemoryStats): string;
3
2
  export interface MemorySegment {
4
3
  label: string;
5
4
  key: string;
@@ -9,4 +8,7 @@ export interface MemorySegment {
9
8
  }
10
9
  export declare const MEMORY_SEGMENT_COLORS: Record<string, string>;
11
10
  export declare function getMemorySegmentColor(key: string): string;
12
- export declare function getMemorySegments(stats: TMemoryStats, memoryUsage: number): MemorySegment[];
11
+ export declare function getMemorySegments(stats: TMemoryStats, memoryUsage: number, { allocatorCachesIncludedInUsage, memoryLimit, }?: {
12
+ allocatorCachesIncludedInUsage?: boolean;
13
+ memoryLimit?: number;
14
+ }): MemorySegment[];
@@ -1,10 +1,5 @@
1
- import { isNumeric } from '../../utils/utils';
1
+ import { isNumeric, parseOptionalNonNegativeNumber } from '../../utils/utils';
2
2
  import i18n from './i18n';
3
- export function calculateAllocatedMemory(stats) {
4
- const allocatedMemory = getMaybeNumber(stats.AllocatedMemory) || 0;
5
- const allocatorCaches = getMaybeNumber(stats.AllocatorCachesMemory) || 0;
6
- return String(allocatedMemory + allocatorCaches);
7
- }
8
3
  function getMaybeNumber(value) {
9
4
  return isNumeric(value) ? parseFloat(String(value)) : undefined;
10
5
  }
@@ -19,7 +14,7 @@ export const MEMORY_SEGMENT_COLORS = {
19
14
  export function getMemorySegmentColor(key) {
20
15
  return MEMORY_SEGMENT_COLORS[key] || MEMORY_SEGMENT_COLORS['Other'];
21
16
  }
22
- export function getMemorySegments(stats, memoryUsage) {
17
+ export function getMemorySegments(stats, memoryUsage, { allocatorCachesIncludedInUsage = true, memoryLimit, } = {}) {
23
18
  const segments = [
24
19
  {
25
20
  label: i18n('text_shared-cache'),
@@ -46,10 +41,10 @@ export function getMemorySegments(stats, memoryUsage) {
46
41
  label: i18n('text_allocator-caches'),
47
42
  key: 'AllocatorCachesMemory',
48
43
  value: getMaybeNumber(stats.AllocatorCachesMemory),
49
- isInfo: false,
44
+ isInfo: !allocatorCachesIncludedInUsage,
50
45
  },
51
46
  ];
52
- const nonInfoSegments = segments.filter((segment) => segment.value !== undefined);
47
+ const nonInfoSegments = segments.filter((segment) => !segment.isInfo && segment.value !== undefined);
53
48
  const sumNonInfoSegments = nonInfoSegments.reduce((acc, segment) => acc + segment.value, 0);
54
49
  const otherMemory = Math.max(0, memoryUsage - sumNonInfoSegments);
55
50
  segments.push({
@@ -68,15 +63,20 @@ export function getMemorySegments(stats, memoryUsage) {
68
63
  key: 'Usage',
69
64
  value: memoryUsage,
70
65
  isInfo: true,
66
+ }, {
67
+ label: i18n('text_memory-limit'),
68
+ key: 'MemoryLimit',
69
+ value: memoryLimit,
70
+ isInfo: true,
71
71
  }, {
72
72
  label: i18n('text_soft-limit'),
73
73
  key: 'SoftLimit',
74
- value: getMaybeNumber(stats.SoftLimit),
74
+ value: parseOptionalNonNegativeNumber(stats.SoftLimit) || undefined,
75
75
  isInfo: true,
76
76
  }, {
77
77
  label: i18n('text_hard-limit'),
78
78
  key: 'HardLimit',
79
- value: getMaybeNumber(stats.HardLimit),
79
+ value: parseOptionalNonNegativeNumber(stats.HardLimit) || undefined,
80
80
  isInfo: true,
81
81
  });
82
82
  return segments.filter((segment) => segment.value !== undefined);
@@ -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":"AACA,OAAO,EAAC,SAAS,EAAE,8BAA8B,EAAC,MAAM,mBAAmB,CAAC;AAE5E,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,SAAS,cAAc,CAAC,KAAkC;IACtD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAUD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IACzD,qBAAqB,EAAE,mCAAmC;IAC1D,sBAAsB,EAAE,iCAAiC;IACzD,mBAAmB,EAAE,oCAAoC;IACzD,yBAAyB,EAAE,qCAAqC;IAChE,KAAK,EAAE,oCAAoC;CAC9C,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC7C,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,KAAmB,EACnB,WAAmB,EACnB,EACI,8BAA8B,GAAG,IAAI,EACrC,WAAW,MACuD,EAAE;IAExE,MAAM,QAAQ,GAAG;QACb;YACI,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC;YAChC,GAAG,EAAE,wBAAwB;YAC7B,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,sBAAsB,CAAC;YACnD,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAChD,MAAM,EAAE,KAAK;SAChB;QACD;YACI,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC;YACnC,GAAG,EAAE,2BAA2B;YAChC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,yBAAyB,CAAC;YACtD,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC;YACnD,MAAM,EAAE,KAAK;SAChB;QACD;YACI,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC;YAC5B,GAAG,EAAE,qBAAqB;YAC1B,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC;YAChD,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC;YAC7C,MAAM,EAAE,KAAK;SAChB;QACD;YACI,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC;YACpC,GAAG,EAAE,uBAAuB;YAC5B,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAClD,MAAM,EAAE,CAAC,8BAA8B;SAC1C;KACJ,CAAC;IAEF,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CACnC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAC3C,CAAC;IACrB,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE5F,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAAC,CAAC;IAElE,QAAQ,CAAC,IAAI,CAAC;QACV,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC;QACzB,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,QAAQ,CAAC,IAAI,CACT;QACI,KAAK,EAAE,IAAI,CAAC,2BAA2B,CAAC;QACxC,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAChD,MAAM,EAAE,IAAI;KACf,EACD;QACI,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC;QACzB,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,IAAI;KACf,EACD;QACI,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAChC,GAAG,EAAE,aAAa;QAClB,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,IAAI;KACf,EACD;QACI,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAC9B,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,8BAA8B,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS;QACnE,MAAM,EAAE,IAAI;KACf,EACD;QACI,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAC9B,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,8BAA8B,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS;QACnE,MAAM,EAAE,IAAI;KACf,CACJ,CAAC;IAEF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAoB,CAAC;AACxF,CAAC"}
@@ -1,13 +1,8 @@
1
1
  import type { PreparedPDisk } from '../../utils/disks/types';
2
- interface GetPDiskInfoOptions<T extends PreparedPDisk> {
3
- pDisk?: T;
4
- nodeId?: number | string | null;
5
- withPDiskPageLink?: boolean;
6
- hasDeveloperUi?: boolean;
7
- capacityMetricsEnabled?: boolean;
8
- }
9
- interface PDiskInfoProps<T extends PreparedPDisk> extends GetPDiskInfoOptions<T> {
2
+ import './PDiskInfo.scss';
3
+ interface PDiskInfoProps {
4
+ pDisk?: PreparedPDisk;
10
5
  className?: string;
11
6
  }
12
- export declare function PDiskInfo<T extends PreparedPDisk>({ pDisk, nodeId, withPDiskPageLink, className, }: PDiskInfoProps<T>): import("react/jsx-runtime").JSX.Element;
7
+ export declare function PDiskInfo({ pDisk, className }: PDiskInfoProps): import("react/jsx-runtime").JSX.Element;
13
8
  export {};