ydb-embedded-ui 17.2.0 → 18.0.1

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 (335) hide show
  1. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.d.ts +6 -1
  2. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js +30 -6
  3. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js.map +1 -1
  4. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.scss +230 -5
  5. package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
  6. package/dist/components/LinkToSchemaObject/LinkToSchemaObject.d.ts +4 -3
  7. package/dist/components/LinkToSchemaObject/LinkToSchemaObject.js +31 -8
  8. package/dist/components/LinkToSchemaObject/LinkToSchemaObject.js.map +1 -1
  9. package/dist/components/LinkToSchemaObject/utils.d.ts +4 -0
  10. package/dist/components/LinkToSchemaObject/utils.js +19 -0
  11. package/dist/components/LinkToSchemaObject/utils.js.map +1 -0
  12. package/dist/components/LinkWithIcon/LinkWithIcon.js +1 -1
  13. package/dist/components/LinkWithIcon/LinkWithIcon.js.map +1 -1
  14. package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
  15. package/dist/components/ProgressWrapper/progressUtils.js +1 -1
  16. package/dist/components/ProgressWrapper/progressUtils.js.map +1 -1
  17. package/dist/components/SegmentedProgress/SegmentedProgress.d.ts +5 -1
  18. package/dist/components/SegmentedProgress/SegmentedProgress.js +3 -3
  19. package/dist/components/SegmentedProgress/SegmentedProgress.js.map +1 -1
  20. package/dist/components/SegmentedProgress/SegmentedProgress.scss +37 -4
  21. package/dist/components/Stack/Stack.scss +2 -0
  22. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  23. package/dist/components/VDisk/VDisk.d.ts +3 -1
  24. package/dist/components/VDisk/VDisk.js +21 -4
  25. package/dist/components/VDisk/VDisk.js.map +1 -1
  26. package/dist/components/VDisk/VDiskWithDonorsStack.js +6 -3
  27. package/dist/components/VDisk/VDiskWithDonorsStack.js.map +1 -1
  28. package/dist/components/VDisk/i18n/en.json +1 -1
  29. package/dist/components/VDiskInfo/VDiskInfo.js +2 -2
  30. package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
  31. package/dist/containers/App/NavigationWrapper.js +4 -1
  32. package/dist/containers/App/NavigationWrapper.js.map +1 -1
  33. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js +1 -1
  34. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js.map +1 -1
  35. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js +1 -1
  36. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js.map +1 -1
  37. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js +1 -1
  38. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js.map +1 -1
  39. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js +1 -1
  40. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js.map +1 -1
  41. package/dist/containers/Clusters/constants.d.ts +1 -1
  42. package/dist/containers/Configs/types.d.ts +1 -1
  43. package/dist/containers/Header/i18n/index.d.ts +1 -1
  44. package/dist/containers/Node/Node.js +7 -5
  45. package/dist/containers/Node/Node.js.map +1 -1
  46. package/dist/containers/Node/NodePages.d.ts +1 -1
  47. package/dist/containers/Node/Threads/Threads.d.ts +2 -1
  48. package/dist/containers/Node/Threads/Threads.js +2 -2
  49. package/dist/containers/Node/Threads/Threads.js.map +1 -1
  50. package/dist/containers/Operations/Operations.js +14 -3
  51. package/dist/containers/Operations/Operations.js.map +1 -1
  52. package/dist/containers/Operations/OperationsControls.d.ts +5 -1
  53. package/dist/containers/Operations/OperationsControls.js +2 -3
  54. package/dist/containers/Operations/OperationsControls.js.map +1 -1
  55. package/dist/containers/Operations/constants.d.ts +4 -0
  56. package/dist/containers/Operations/constants.js +4 -0
  57. package/dist/containers/Operations/constants.js.map +1 -1
  58. package/dist/containers/Operations/i18n/en.json +1 -0
  59. package/dist/containers/Operations/i18n/index.d.ts +1 -1
  60. package/dist/containers/Operations/useOperationsQueryParams.d.ts +1 -0
  61. package/dist/containers/Operations/useOperationsQueryParams.js +20 -9
  62. package/dist/containers/Operations/useOperationsQueryParams.js.map +1 -1
  63. package/dist/containers/Operations/utils.d.ts +12 -0
  64. package/dist/containers/Operations/utils.js +8 -0
  65. package/dist/containers/Operations/utils.js.map +1 -1
  66. package/dist/containers/PDiskPage/PDiskPage.js +2 -2
  67. package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
  68. package/dist/containers/Storage/Disks/Disks.d.ts +1 -0
  69. package/dist/containers/Storage/Disks/Disks.js +6 -4
  70. package/dist/containers/Storage/Disks/Disks.js.map +1 -1
  71. package/dist/containers/Storage/PaginatedStorage.js +3 -1
  72. package/dist/containers/Storage/PaginatedStorage.js.map +1 -1
  73. package/dist/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.js +1 -1
  74. package/dist/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.js.map +1 -1
  75. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsComponent.js +1 -1
  76. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsComponent.js.map +1 -1
  77. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.d.ts +5 -2
  78. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js +18 -8
  79. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js.map +1 -1
  80. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/StorageGroupsColumns.scss +10 -0
  81. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +9 -4
  82. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
  83. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.d.ts +5 -1
  84. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js +9 -1
  85. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js.map +1 -1
  86. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js +37 -9
  87. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js.map +1 -1
  88. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/en.json +1 -0
  89. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
  90. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/constants.d.ts +1 -1
  91. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/constants.js +1 -1
  92. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/constants.js.map +1 -1
  93. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.d.ts +6 -0
  94. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js +28 -0
  95. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js.map +1 -0
  96. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.scss +31 -0
  97. package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.d.ts +5 -0
  98. package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js +5 -0
  99. package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js.map +1 -0
  100. package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.d.ts +5 -0
  101. package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.js +21 -0
  102. package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.js.map +1 -0
  103. package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.d.ts +5 -0
  104. package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.js +21 -0
  105. package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.js.map +1 -0
  106. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.d.ts +6 -0
  107. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js +65 -0
  108. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js.map +1 -0
  109. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.scss +115 -0
  110. package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.d.ts +5 -0
  111. package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.js +23 -0
  112. package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.js.map +1 -0
  113. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.d.ts +7 -0
  114. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js +26 -0
  115. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js.map +1 -0
  116. package/dist/containers/Storage/StorageExpertModePanel/components/index.d.ts +5 -0
  117. package/dist/containers/Storage/StorageExpertModePanel/components/index.js +6 -0
  118. package/dist/containers/Storage/StorageExpertModePanel/components/index.js.map +1 -0
  119. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.d.ts +7 -0
  120. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js +21 -0
  121. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js.map +1 -0
  122. package/dist/containers/Storage/StorageExpertModePanel/constants.d.ts +13 -0
  123. package/dist/containers/Storage/StorageExpertModePanel/constants.js +7 -0
  124. package/dist/containers/Storage/StorageExpertModePanel/constants.js.map +1 -0
  125. package/dist/containers/Storage/StorageExpertModePanel/i18n/en.json +33 -0
  126. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +2 -0
  127. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.js +5 -0
  128. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.js.map +1 -0
  129. package/dist/containers/Storage/i18n/en.json +1 -0
  130. package/dist/containers/Storage/i18n/index.d.ts +1 -1
  131. package/dist/containers/Storage/useStorageQueryParams.d.ts +9 -0
  132. package/dist/containers/Storage/useStorageQueryParams.js +57 -6
  133. package/dist/containers/Storage/useStorageQueryParams.js.map +1 -1
  134. package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.d.ts +2 -0
  135. package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js +46 -0
  136. package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js.map +1 -0
  137. package/dist/containers/Storage/utils/index.d.ts +1 -1
  138. package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -1
  139. package/dist/containers/Tenant/Diagnostics/HotKeys/i18n/index.d.ts +1 -1
  140. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.d.ts +4 -3
  141. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js +53 -28
  142. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js.map +1 -1
  143. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.scss +4 -0
  144. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/i18n/en.json +2 -1
  145. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/i18n/index.d.ts +1 -1
  146. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/types.d.ts +7 -0
  147. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/useManagePartitionForm.d.ts +2 -2
  148. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/useManagePartitionForm.js.map +1 -1
  149. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.d.ts +19 -31
  150. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js +48 -15
  151. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js.map +1 -1
  152. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js +9 -3
  153. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js.map +1 -1
  154. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/en.json +3 -1
  155. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/index.d.ts +1 -1
  156. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/hooks/useTablePartitioning.js +1 -0
  157. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/hooks/useTablePartitioning.js.map +1 -1
  158. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/utils.d.ts +2 -2
  159. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/utils.js +3 -3
  160. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/utils.js.map +1 -1
  161. package/dist/containers/Tenant/Diagnostics/StorageUsage/MediaSectionSummary.js +3 -2
  162. package/dist/containers/Tenant/Diagnostics/StorageUsage/MediaSectionSummary.js.map +1 -1
  163. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.d.ts +13 -0
  164. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.js +13 -0
  165. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.js.map +1 -0
  166. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.scss +51 -0
  167. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.d.ts +4 -20
  168. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js +8 -51
  169. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js.map +1 -1
  170. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.scss +24 -35
  171. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.d.ts +3 -6
  172. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.js +4 -7
  173. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.js.map +1 -1
  174. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.d.ts +2 -4
  175. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.js +3 -3
  176. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.js.map +1 -1
  177. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.d.ts +3 -3
  178. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.js +4 -6
  179. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.js.map +1 -1
  180. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/PlaceholderTab.js +1 -3
  181. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/PlaceholderTab.js.map +1 -1
  182. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.d.ts +3 -6
  183. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.js +4 -21
  184. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.js.map +1 -1
  185. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.d.ts +11 -0
  186. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js +10 -0
  187. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js.map +1 -0
  188. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.d.ts +3 -3
  189. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js +3 -4
  190. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js.map +1 -1
  191. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.scss +21 -13
  192. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.d.ts +3 -1
  193. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js +5 -2
  194. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js.map +1 -1
  195. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.d.ts +3 -1
  196. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.js +5 -2
  197. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.js.map +1 -1
  198. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.scss +4 -0
  199. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.d.ts +4 -1
  200. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js +12 -2
  201. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js.map +1 -1
  202. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +30 -11
  203. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  204. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +3 -3
  205. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
  206. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.d.ts +2 -1
  207. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.js +20 -13
  208. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.js.map +1 -1
  209. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +1 -1
  210. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +12 -0
  211. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
  212. package/dist/containers/Tenant/Diagnostics/TenantOverview/metricOverview.d.ts +37 -0
  213. package/dist/containers/Tenant/Diagnostics/TenantOverview/metricOverview.js +115 -0
  214. package/dist/containers/Tenant/Diagnostics/TenantOverview/metricOverview.js.map +1 -0
  215. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.d.ts +5 -1
  216. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.d.ts +7 -1
  217. package/dist/containers/Tenant/Diagnostics/i18n/index.d.ts +1 -1
  218. package/dist/containers/Tenant/Diagnostics/useDiagnosticsPages.js +2 -3
  219. package/dist/containers/Tenant/Diagnostics/useDiagnosticsPages.js.map +1 -1
  220. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +1 -2
  221. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
  222. package/dist/containers/Tenant/ObjectSummary/UpdateTreeContext.d.ts +1 -0
  223. package/dist/containers/Tenant/ObjectSummary/UpdateTreeContext.js +5 -0
  224. package/dist/containers/Tenant/ObjectSummary/UpdateTreeContext.js.map +1 -1
  225. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js +1 -1
  226. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js.map +1 -1
  227. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsTimeout.d.ts +2 -2
  228. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsTimeout.js +1 -2
  229. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsTimeout.js.map +1 -1
  230. package/dist/containers/Tenant/Tenant.js +2 -1
  231. package/dist/containers/Tenant/Tenant.js.map +1 -1
  232. package/dist/containers/Tenant/TenantPages.d.ts +1 -0
  233. package/dist/containers/Tenant/TenantPages.js.map +1 -1
  234. package/dist/containers/UserSettings/i18n/en.json +3 -1
  235. package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
  236. package/dist/containers/UserSettings/settings.d.ts +2 -0
  237. package/dist/containers/UserSettings/settings.js +12 -0
  238. package/dist/containers/UserSettings/settings.js.map +1 -1
  239. package/dist/containers/VDiskPage/VDiskPage.js +2 -2
  240. package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
  241. package/dist/containers/VDiskPage/VDiskStorageDetails.js +2 -2
  242. package/dist/containers/VDiskPage/VDiskStorageDetails.js.map +1 -1
  243. package/dist/lib.d.ts +1 -0
  244. package/dist/lib.js +1 -0
  245. package/dist/lib.js.map +1 -1
  246. package/dist/routes.d.ts +4 -1
  247. package/dist/store/reducers/capabilities/capabilities.d.ts +118 -1
  248. package/dist/store/reducers/capabilities/capabilities.js +1 -0
  249. package/dist/store/reducers/capabilities/capabilities.js.map +1 -1
  250. package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
  251. package/dist/store/reducers/capabilities/hooks.js +10 -1
  252. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  253. package/dist/store/reducers/settings/constants.d.ts +7 -0
  254. package/dist/store/reducers/settings/constants.js +6 -0
  255. package/dist/store/reducers/settings/constants.js.map +1 -1
  256. package/dist/store/reducers/settings/utils.d.ts +2 -1
  257. package/dist/store/reducers/storage/types.d.ts +2 -2
  258. package/dist/store/reducers/storage/utils.js +9 -3
  259. package/dist/store/reducers/storage/utils.js.map +1 -1
  260. package/dist/store/reducers/storageUsage/StorageUsage.d.ts +1 -1
  261. package/dist/store/reducers/tenant/types.d.ts +1 -1
  262. package/dist/styles/index.scss +1 -0
  263. package/dist/styles/mixins.scss +10 -6
  264. package/dist/styles/space-colors.scss +60 -0
  265. package/dist/types/api/capabilities.d.ts +3 -1
  266. package/dist/types/api/operations.d.ts +1 -1
  267. package/dist/uiFactory/types.d.ts +15 -0
  268. package/dist/uiFactory/uiFactory.js +1 -0
  269. package/dist/uiFactory/uiFactory.js.map +1 -1
  270. package/dist/utils/capacityAlerts.d.ts +2 -4
  271. package/dist/utils/capacityAlerts.js +11 -11
  272. package/dist/utils/capacityAlerts.js.map +1 -1
  273. package/dist/utils/disks/calculatePDiskSeverity.d.ts +1 -1
  274. package/dist/utils/disks/constants.d.ts +57 -20
  275. package/dist/utils/disks/constants.js +68 -7
  276. package/dist/utils/disks/constants.js.map +1 -1
  277. package/dist/utils/disks/displayState.d.ts +11 -0
  278. package/dist/utils/disks/displayState.js +11 -0
  279. package/dist/utils/disks/displayState.js.map +1 -0
  280. package/dist/utils/disks/getIconStrategy.d.ts +6 -0
  281. package/dist/utils/disks/getIconStrategy.js +21 -0
  282. package/dist/utils/disks/getIconStrategy.js.map +1 -0
  283. package/dist/utils/disks/getSeverityStrategy.d.ts +6 -0
  284. package/dist/utils/disks/getSeverityStrategy.js +21 -0
  285. package/dist/utils/disks/getSeverityStrategy.js.map +1 -0
  286. package/dist/utils/disks/groupBy.d.ts +8 -0
  287. package/dist/utils/disks/groupBy.js +8 -0
  288. package/dist/utils/disks/groupBy.js.map +1 -0
  289. package/dist/utils/disks/helpers.d.ts +19 -4
  290. package/dist/utils/disks/helpers.js +84 -4
  291. package/dist/utils/disks/helpers.js.map +1 -1
  292. package/dist/utils/disks/iconCalculators.d.ts +51 -0
  293. package/dist/utils/disks/iconCalculators.js +184 -0
  294. package/dist/utils/disks/iconCalculators.js.map +1 -0
  295. package/dist/utils/disks/severityCalculators.d.ts +47 -0
  296. package/dist/utils/disks/severityCalculators.js +143 -0
  297. package/dist/utils/disks/severityCalculators.js.map +1 -0
  298. package/dist/utils/disks/types.d.ts +31 -0
  299. package/dist/utils/docs.d.ts +14 -0
  300. package/dist/utils/docs.js +25 -0
  301. package/dist/utils/docs.js.map +1 -0
  302. package/dist/utils/generateEvaluator.d.ts +1 -1
  303. package/dist/utils/hooks/useChangedQuerySettings.d.ts +2 -2
  304. package/dist/utils/hooks/useLastQueryExecutionSettings.d.ts +2 -2
  305. package/dist/utils/hooks/useQueryExecutionSettings.d.ts +1 -1
  306. package/dist/utils/metrics/formatMetricLegend.d.ts +2 -0
  307. package/dist/utils/metrics/formatMetricLegend.js +11 -4
  308. package/dist/utils/metrics/formatMetricLegend.js.map +1 -1
  309. package/dist/utils/metrics/getDiagramValues.d.ts +48 -0
  310. package/dist/utils/metrics/getDiagramValues.js +59 -0
  311. package/dist/utils/metrics/getDiagramValues.js.map +1 -0
  312. package/dist/utils/metrics.d.ts +1 -0
  313. package/dist/utils/metrics.js +3 -0
  314. package/dist/utils/metrics.js.map +1 -1
  315. package/dist/utils/nodes.d.ts +1 -1
  316. package/dist/utils/query.d.ts +22 -61
  317. package/dist/utils/query.js +16 -10
  318. package/dist/utils/query.js.map +1 -1
  319. package/dist/utils/storageMetrics.d.ts +2 -0
  320. package/dist/utils/storageMetrics.js +17 -0
  321. package/dist/utils/storageMetrics.js.map +1 -1
  322. package/dist/utils/zod/configureZod.d.ts +6 -0
  323. package/dist/utils/zod/configureZod.js +14 -0
  324. package/dist/utils/zod/configureZod.js.map +1 -0
  325. package/dist/utils/zod/zodParsers.d.ts +1 -1
  326. package/package.json +4 -4
  327. package/dist/containers/Cluster/ClusterOverview/utils.d.ts +0 -19
  328. package/dist/containers/Cluster/ClusterOverview/utils.js +0 -46
  329. package/dist/containers/Cluster/ClusterOverview/utils.js.map +0 -1
  330. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UsageTabCard.d.ts +0 -15
  331. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UsageTabCard.js +0 -22
  332. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UsageTabCard.js.map +0 -1
  333. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UtilizationTabCard.d.ts +0 -10
  334. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UtilizationTabCard.js +0 -16
  335. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UtilizationTabCard.js.map +0 -1
@@ -2,11 +2,26 @@ import type { IconData } from '@gravity-ui/uikit';
2
2
  import type { VDiskBlobIndexStatParams } from '../../store/reducers/vdisk/vdisk';
3
3
  import { EFlag } from '../../types/api/enums';
4
4
  import type { TVDiskStateInfo, TVSlotId } from '../../types/api/vdisk';
5
- import type { PreparedVDisk } from './types';
5
+ import type { DiskColor, PreparedVDisk } from './types';
6
6
  export declare function isFullVDiskData(disk: PreparedVDisk | TVDiskStateInfo | TVSlotId): disk is PreparedVDisk | TVDiskStateInfo;
7
- export declare const getSpaceSeverity: (allocatedPercent?: number) => number;
8
- export declare function getSeverityColor(severity: number | undefined): EFlag;
9
- export declare function getColorSeverity(color?: EFlag): number;
7
+ export declare const getSpaceSeverity: (allocatedPercent?: number) => 21 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 22 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | import("./types").DataSeverity;
8
+ /**
9
+ * Convert data severity (0-5) to EFlag color.
10
+ * Used for PreparedVDisk.Severity and PreparedPDisk.Severity in Default mode.
11
+ * Returns only basic EFlag colors (Grey, Green, Blue, Yellow, Orange, Red).
12
+ * @param severity - Basic severity level (0-5), or any number (will be clamped to 0-5 range)
13
+ * @returns EFlag color for visualization
14
+ */
15
+ export declare function getDataSeverityColor(severity: number | undefined): EFlag;
16
+ /**
17
+ * Convert display severity (0-22) to disk color.
18
+ * Used for dynamic coloring in Expert Mode based on grouping strategy.
19
+ * Handles extended severity ranges for State, Space, FrontQueues, and Compaction modes.
20
+ * @param severity - Extended severity level (0-22), or any number
21
+ * @returns Disk color for visualization
22
+ */
23
+ export declare function getDisplaySeverityColor(severity: number | undefined): DiskColor;
24
+ export declare function getColorSeverity(color?: EFlag): 0 | 1 | 2 | 5 | 4 | 21 | 3 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 22 | 11 | 12 | 16 | 17 | 18 | 19 | 20;
10
25
  export declare function getPDiskId({ nodeId, pDiskId, }: {
11
26
  nodeId?: string | number | null;
12
27
  pDiskId?: string | number | null;
@@ -2,22 +2,102 @@ import { isNil } from 'lodash';
2
2
  import { EFlag } from '../../types/api/enums';
3
3
  import { stringifyVdiskId } from '../dataFormatters/dataFormatters';
4
4
  import { generateEvaluator } from '../generateEvaluator';
5
- import { DISK_COLOR_STATE_TO_NUMERIC_SEVERITY, DISK_NUMERIC_SEVERITY_TO_STATE_COLOR, DISPLAYED_DISK_ERROR_ICON, DONOR_ICON, NOT_AVAILABLE_SEVERITY_COLOR, } from './constants';
5
+ import { COMPACTION_SEVERITY, DATA_SEVERITY, DISK_COLOR_STATE_TO_NUMERIC_SEVERITY, DISK_NUMERIC_SEVERITY_TO_STATE_COLOR, DISPLAYED_DISK_ERROR_ICON, DONOR_ICON, FRONT_QUEUES_SEVERITY, NOT_AVAILABLE_SEVERITY_COLOR, SOLID_RED_SEVERITY, SPACE_SEVERITY, } from './constants';
6
6
  export function isFullVDiskData(disk) {
7
7
  return 'VDiskId' in disk;
8
8
  }
9
9
  const getSpaceFlag = generateEvaluator([EFlag.Green, EFlag.Yellow, EFlag.Red]);
10
10
  export const getSpaceSeverity = (allocatedPercent) => {
11
- return isNil(allocatedPercent) ? 0 : getColorSeverity(getSpaceFlag(allocatedPercent));
11
+ return isNil(allocatedPercent)
12
+ ? DATA_SEVERITY.GREY
13
+ : getColorSeverity(getSpaceFlag(allocatedPercent));
12
14
  };
13
- export function getSeverityColor(severity) {
15
+ /**
16
+ * Convert data severity (0-5) to EFlag color.
17
+ * Used for PreparedVDisk.Severity and PreparedPDisk.Severity in Default mode.
18
+ * Returns only basic EFlag colors (Grey, Green, Blue, Yellow, Orange, Red).
19
+ * @param severity - Basic severity level (0-5), or any number (will be clamped to 0-5 range)
20
+ * @returns EFlag color for visualization
21
+ */
22
+ export function getDataSeverityColor(severity) {
23
+ if (severity === undefined || severity < 0 || severity > DATA_SEVERITY.RED) {
24
+ return EFlag.Grey;
25
+ }
26
+ return (DISK_NUMERIC_SEVERITY_TO_STATE_COLOR[severity] || EFlag.Grey);
27
+ }
28
+ /**
29
+ * Convert display severity (0-22) to disk color.
30
+ * Used for dynamic coloring in Expert Mode based on grouping strategy.
31
+ * Handles extended severity ranges for State, Space, FrontQueues, and Compaction modes.
32
+ * @param severity - Extended severity level (0-22), or any number
33
+ * @returns Disk color for visualization
34
+ */
35
+ export function getDisplaySeverityColor(severity) {
14
36
  if (severity === undefined) {
15
37
  return NOT_AVAILABLE_SEVERITY_COLOR;
16
38
  }
39
+ // Special case: SOLID_RED_SEVERITY maps to 'solidred' CSS class
40
+ if (severity === SOLID_RED_SEVERITY) {
41
+ return 'SolidRed';
42
+ }
43
+ // Space mode severities (7-15) map to specific space color classes
44
+ if (severity === SPACE_SEVERITY.GREEN) {
45
+ return EFlag.Green;
46
+ }
47
+ if (severity === SPACE_SEVERITY.CYAN) {
48
+ return 'SpaceCyan';
49
+ }
50
+ if (severity === SPACE_SEVERITY.LIGHT_YELLOW) {
51
+ return 'SpaceLightYellow';
52
+ }
53
+ if (severity === SPACE_SEVERITY.YELLOW) {
54
+ return EFlag.Yellow;
55
+ }
56
+ if (severity === SPACE_SEVERITY.LIGHT_ORANGE) {
57
+ return 'SpaceLightOrange';
58
+ }
59
+ if (severity === SPACE_SEVERITY.PRE_ORANGE) {
60
+ return 'SpacePreOrange';
61
+ }
62
+ if (severity === SPACE_SEVERITY.ORANGE) {
63
+ return 'SpaceOrange';
64
+ }
65
+ if (severity === SPACE_SEVERITY.RED) {
66
+ return EFlag.Red;
67
+ }
68
+ if (severity === SPACE_SEVERITY.BLACK) {
69
+ return 'SpaceBlack';
70
+ }
71
+ // FrontQueues mode severities (16-19) map to colors
72
+ // Grey -> N/D, Green -> OK, Yellow -> Notice, Red -> Warning, SolidRed -> Impaired
73
+ if (severity === FRONT_QUEUES_SEVERITY.OK) {
74
+ return EFlag.Green;
75
+ }
76
+ if (severity === FRONT_QUEUES_SEVERITY.NOTICE) {
77
+ return EFlag.Yellow;
78
+ }
79
+ if (severity === FRONT_QUEUES_SEVERITY.WARNING) {
80
+ return EFlag.Red;
81
+ }
82
+ if (severity === FRONT_QUEUES_SEVERITY.IMPAIRED) {
83
+ return 'SolidRed';
84
+ }
85
+ // Compaction mode severities (20-22) map to colors
86
+ // Green -> OK, Yellow -> Notice, Red -> Warning
87
+ if (severity === COMPACTION_SEVERITY.OK) {
88
+ return EFlag.Green;
89
+ }
90
+ if (severity === COMPACTION_SEVERITY.NOTICE) {
91
+ return EFlag.Yellow;
92
+ }
93
+ if (severity === COMPACTION_SEVERITY.WARNING) {
94
+ return EFlag.Red;
95
+ }
96
+ // Fallback to basic colors for 0-5
17
97
  return DISK_NUMERIC_SEVERITY_TO_STATE_COLOR[severity] || NOT_AVAILABLE_SEVERITY_COLOR;
18
98
  }
19
99
  export function getColorSeverity(color) {
20
- return color ? DISK_COLOR_STATE_TO_NUMERIC_SEVERITY[color] : 0;
100
+ return color ? DISK_COLOR_STATE_TO_NUMERIC_SEVERITY[color] : DATA_SEVERITY.GREY;
21
101
  }
22
102
  export function getPDiskId({ nodeId, pDiskId, }) {
23
103
  if (!isNil(nodeId) && !isNil(pDiskId)) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/disks/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/disks/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { IconData } from '@gravity-ui/uikit';
2
+ import type { PreparedVDisk } from './types';
3
+ export interface IconWithColor {
4
+ icon: IconData;
5
+ color?: string;
6
+ }
7
+ export type IconCalculator = (vDisk: PreparedVDisk, isDonor?: boolean) => IconData | IconWithColor[] | string | undefined;
8
+ /**
9
+ * Default icon logic - show icon only for errors and donors
10
+ * This matches current behavior
11
+ */
12
+ export declare function calculateDefaultIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | undefined;
13
+ /**
14
+ * State-based icon logic - show specific icons for different states
15
+ * Matches Figma specifications for State mode
16
+ */
17
+ export declare function calculateStateIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | undefined;
18
+ /**
19
+ * Space-based icon logic - show text labels for capacityAlert levels
20
+ * Returns text labels (e.g., "G", "C", "LY") instead of icons
21
+ */
22
+ export declare function calculateSpaceIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | string | undefined;
23
+ /**
24
+ * FrontQueues-based icon logic - show icons based on queue status
25
+ * Matches FrontQueuesLegend icons:
26
+ * - OK (Green): no icon
27
+ * - Notice (Yellow): Ellipsis icon
28
+ * - Warning (Orange): GripHorizontal icon
29
+ * - Impaired (Red): Dots9 icon
30
+ */
31
+ export declare function calculateFrontQueuesIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | undefined;
32
+ /**
33
+ * Compaction-based icon logic - shows two icons (Fresh + Level) side by side
34
+ * Each icon has its own color based on its rank
35
+ * Icons are only shown if at least one rank is not green
36
+ * Returns an array of icons with colors: [FreshIcon, LevelIcon]
37
+ *
38
+ * Icon mapping from CompactionLegend:
39
+ * - Green: CircleCheckFill (text-positive)
40
+ * - Yellow: TriangleExclamationFill (text-warning)
41
+ * - Orange: CircleExclamationFill (text-danger)
42
+ * - Red: CircleXmarkFill (text-primary)
43
+ * - Missing: CircleQuestionFill (rgba(162, 162, 162, 1))
44
+ */
45
+ export declare function calculateCompactionIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | IconWithColor[] | undefined;
46
+ /**
47
+ * All mode - complex mode showing multiple indicators
48
+ * For now, uses default icon logic
49
+ * TODO: Implement advanced "All" mode icon logic
50
+ */
51
+ export declare function calculateAllIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | undefined;
@@ -0,0 +1,184 @@
1
+ import { CircleCheckFill, CircleExclamationFill, CircleQuestionFill, CircleXmarkFill, ClockFill, Dots9, Ellipsis, GripHorizontal, TriangleExclamationFill, } from '@gravity-ui/icons';
2
+ import { ECapacityAlert, EFlag, isCapacityAlert } from '../../types/api/enums';
3
+ import { EVDiskState } from '../../types/api/vdisk';
4
+ import { DISK_COLOR_STATE_TO_NUMERIC_SEVERITY, DISPLAYED_DISK_ERROR_ICON, DONOR_ICON, } from './constants';
5
+ /**
6
+ * Default icon logic - show icon only for errors and donors
7
+ * This matches current behavior
8
+ */
9
+ export function calculateDefaultIcon(vDisk, isDonor) {
10
+ if (isDonor) {
11
+ return DONOR_ICON;
12
+ }
13
+ const isError = vDisk.Severity === DISK_COLOR_STATE_TO_NUMERIC_SEVERITY.Red;
14
+ if (isError) {
15
+ return DISPLAYED_DISK_ERROR_ICON;
16
+ }
17
+ return undefined;
18
+ }
19
+ /**
20
+ * State-based icon logic - show specific icons for different states
21
+ * Matches Figma specifications for State mode
22
+ */
23
+ export function calculateStateIcon(vDisk, isDonor) {
24
+ if (isDonor) {
25
+ return DONOR_ICON;
26
+ }
27
+ const state = vDisk.VDiskState;
28
+ // Initial states get Clock icon (Figma: "иконка с часиками")
29
+ if (state === EVDiskState.Initial || state === EVDiskState.SyncGuidRecovery) {
30
+ return ClockFill;
31
+ }
32
+ // PDisk error gets CircleExclamation icon (Figma: "иконка с воскклицательным знаком")
33
+ if (state === EVDiskState.PDiskError) {
34
+ return CircleExclamationFill;
35
+ }
36
+ // Other error states get CircleXmark icon (Figma: "иконка - крестик в кружочке")
37
+ if (state === EVDiskState.LocalRecoveryError || state === EVDiskState.SyncGuidRecoveryError) {
38
+ return CircleXmarkFill;
39
+ }
40
+ // OK state and replication - no icon
41
+ return undefined;
42
+ }
43
+ /**
44
+ * Space-based icon logic - show text labels for capacityAlert levels
45
+ * Returns text labels (e.g., "G", "C", "LY") instead of icons
46
+ */
47
+ export function calculateSpaceIcon(vDisk, isDonor) {
48
+ if (isDonor) {
49
+ return DONOR_ICON;
50
+ }
51
+ if (!vDisk.CapacityAlert || !isCapacityAlert(vDisk.CapacityAlert)) {
52
+ return CircleQuestionFill;
53
+ }
54
+ switch (vDisk.CapacityAlert) {
55
+ case ECapacityAlert.GREEN:
56
+ return 'G';
57
+ case ECapacityAlert.CYAN:
58
+ return 'C';
59
+ case ECapacityAlert.LIGHTYELLOW:
60
+ return 'LY';
61
+ case ECapacityAlert.YELLOW:
62
+ return 'Y';
63
+ case ECapacityAlert.LIGHTORANGE:
64
+ return 'LO';
65
+ case ECapacityAlert.PREORANGE:
66
+ return 'PO';
67
+ case ECapacityAlert.ORANGE:
68
+ return 'O';
69
+ case ECapacityAlert.RED:
70
+ return 'R';
71
+ case ECapacityAlert.BLACK:
72
+ return 'B';
73
+ }
74
+ return undefined;
75
+ }
76
+ /**
77
+ * FrontQueues-based icon logic - show icons based on queue status
78
+ * Matches FrontQueuesLegend icons:
79
+ * - OK (Green): no icon
80
+ * - Notice (Yellow): Ellipsis icon
81
+ * - Warning (Orange): GripHorizontal icon
82
+ * - Impaired (Red): Dots9 icon
83
+ */
84
+ export function calculateFrontQueuesIcon(vDisk, isDonor) {
85
+ if (isDonor) {
86
+ return DONOR_ICON;
87
+ }
88
+ switch (vDisk.FrontQueues) {
89
+ case EFlag.Green:
90
+ case EFlag.Blue:
91
+ return undefined;
92
+ case EFlag.Yellow:
93
+ return Ellipsis;
94
+ case EFlag.Orange:
95
+ return GripHorizontal;
96
+ case EFlag.Red:
97
+ return Dots9;
98
+ case EFlag.Grey:
99
+ default:
100
+ return CircleQuestionFill;
101
+ }
102
+ }
103
+ /**
104
+ * Get icon and color for a single compaction rank (Fresh or Level)
105
+ * Maps EFlag to corresponding icon and color from CompactionLegend
106
+ */
107
+ function getCompactionRankIconWithColor(flag) {
108
+ if (!flag || flag === EFlag.Grey) {
109
+ return {
110
+ icon: CircleQuestionFill,
111
+ color: 'rgba(162, 162, 162, 1)',
112
+ };
113
+ }
114
+ switch (flag) {
115
+ case EFlag.Green:
116
+ return {
117
+ icon: CircleCheckFill,
118
+ color: 'var(--g-color-text-positive)',
119
+ };
120
+ case EFlag.Yellow:
121
+ return {
122
+ icon: TriangleExclamationFill,
123
+ color: 'var(--g-color-text-warning)',
124
+ };
125
+ case EFlag.Orange:
126
+ return {
127
+ icon: CircleExclamationFill,
128
+ color: 'var(--g-color-text-danger)',
129
+ };
130
+ case EFlag.Red:
131
+ return {
132
+ icon: CircleXmarkFill,
133
+ color: 'var(--g-color-text-primary)',
134
+ };
135
+ default:
136
+ return undefined;
137
+ }
138
+ }
139
+ /**
140
+ * Compaction-based icon logic - shows two icons (Fresh + Level) side by side
141
+ * Each icon has its own color based on its rank
142
+ * Icons are only shown if at least one rank is not green
143
+ * Returns an array of icons with colors: [FreshIcon, LevelIcon]
144
+ *
145
+ * Icon mapping from CompactionLegend:
146
+ * - Green: CircleCheckFill (text-positive)
147
+ * - Yellow: TriangleExclamationFill (text-warning)
148
+ * - Orange: CircleExclamationFill (text-danger)
149
+ * - Red: CircleXmarkFill (text-primary)
150
+ * - Missing: CircleQuestionFill (rgba(162, 162, 162, 1))
151
+ */
152
+ export function calculateCompactionIcon(vDisk, isDonor) {
153
+ var _a, _b, _c, _d;
154
+ if (isDonor) {
155
+ return DONOR_ICON;
156
+ }
157
+ const freshFlag = (_b = (_a = vDisk.SatisfactionRank) === null || _a === void 0 ? void 0 : _a.FreshRank) === null || _b === void 0 ? void 0 : _b.Flag;
158
+ const levelFlag = (_d = (_c = vDisk.SatisfactionRank) === null || _c === void 0 ? void 0 : _c.LevelRank) === null || _d === void 0 ? void 0 : _d.Flag;
159
+ // If both ranks are green, no icon
160
+ if (freshFlag === EFlag.Green && levelFlag === EFlag.Green) {
161
+ return undefined;
162
+ }
163
+ // At least one rank is missing or not green - show both icons with their respective colors
164
+ const freshIconWithColor = getCompactionRankIconWithColor(freshFlag);
165
+ const levelIconWithColor = getCompactionRankIconWithColor(levelFlag);
166
+ // Return array of icons with colors [Fresh, Level]
167
+ const icons = [];
168
+ if (freshIconWithColor) {
169
+ icons.push(freshIconWithColor);
170
+ }
171
+ if (levelIconWithColor) {
172
+ icons.push(levelIconWithColor);
173
+ }
174
+ return icons.length > 0 ? icons : undefined;
175
+ }
176
+ /**
177
+ * All mode - complex mode showing multiple indicators
178
+ * For now, uses default icon logic
179
+ * TODO: Implement advanced "All" mode icon logic
180
+ */
181
+ export function calculateAllIcon(vDisk, isDonor) {
182
+ return calculateDefaultIcon(vDisk, isDonor);
183
+ }
184
+ //# sourceMappingURL=iconCalculators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iconCalculators.js","sourceRoot":"","sources":["../../../src/utils/disks/iconCalculators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { DisplaySeverity, PreparedVDisk } from './types';
2
+ export type SeverityCalculator = (vDisk: PreparedVDisk) => DisplaySeverity;
3
+ /**
4
+ * Calculate severity based only on VDiskState
5
+ * Used in State grouping mode
6
+ * Uses special mapping where Initial=Yellow and Error=SolidRed
7
+ * Replicating disks (Replicated=false) remain Blue regardless of state
8
+ */
9
+ export declare function calculateStateSeverity(vDisk: PreparedVDisk): DisplaySeverity;
10
+ /**
11
+ * Calculate severity based only on disk space usage
12
+ * Used in Space grouping mode
13
+ * Maps capacityAlert to detailed severity levels for visual differentiation
14
+ */
15
+ export declare function calculateSpaceSeverity(vDisk: PreparedVDisk): DisplaySeverity;
16
+ /**
17
+ * Calculate severity based only on front queues
18
+ * Used in FrontQueues grouping mode
19
+ * Maps FrontQueues flag to detailed severity levels:
20
+ * - Grey -> N/D (NOT_AVAILABLE_SEVERITY)
21
+ * - Green -> OK (FRONT_QUEUES_SEVERITY.OK)
22
+ * - Blue -> ??? (treated as Green/OK)
23
+ * - Yellow -> Notice (FRONT_QUEUES_SEVERITY.NOTICE)
24
+ * - Orange -> Warning (FRONT_QUEUES_SEVERITY.WARNING)
25
+ * - Red -> Impaired (FRONT_QUEUES_SEVERITY.IMPAIRED)
26
+ *
27
+ * Note: Unlike Space mode, replicating disks (Replicated=false) do NOT get Blue color.
28
+ * Instead, they show striped pattern with their actual severity color (handled in CSS).
29
+ */
30
+ export declare function calculateFrontQueuesSeverity(vDisk: PreparedVDisk): DisplaySeverity;
31
+ /**
32
+ * Calculate severity based on compaction status (Fresh/Level rank satisfaction)
33
+ * Used in Compaction grouping mode
34
+ *
35
+ * Border color is determined by the worst of Fresh or Level rank:
36
+ * - Both Green -> Green border (OK)
37
+ * - At least one Yellow -> Yellow border (NOTICE)
38
+ * - At least one Orange or Red -> Red border (WARNING)
39
+ */
40
+ export declare function calculateCompactionSeverity(vDisk: PreparedVDisk): DisplaySeverity;
41
+ /**
42
+ * Calculate combined severity for "All" grouping mode
43
+ * This is a complex mode that will show multiple indicators simultaneously
44
+ * Uses the pre-calculated Severity field which combines all factors
45
+ * TODO: Implement advanced "All" mode visualization
46
+ */
47
+ export declare function calculateAllSeverity(vDisk: PreparedVDisk): DisplaySeverity;
@@ -0,0 +1,143 @@
1
+ import { ECapacityAlert, EFlag, isCapacityAlert } from '../../types/api/enums';
2
+ import { COMPACTION_SEVERITY, DISK_COLOR_STATE_TO_NUMERIC_SEVERITY, FRONT_QUEUES_SEVERITY, NOT_AVAILABLE_SEVERITY, SPACE_SEVERITY, VDISK_STATE_SEVERITY_FOR_STATE_MODE, } from './constants';
3
+ /**
4
+ * Calculate severity based only on VDiskState
5
+ * Used in State grouping mode
6
+ * Uses special mapping where Initial=Yellow and Error=SolidRed
7
+ * Replicating disks (Replicated=false) remain Blue regardless of state
8
+ */
9
+ export function calculateStateSeverity(vDisk) {
10
+ var _a;
11
+ const vDiskState = vDisk.VDiskState;
12
+ if (!vDiskState) {
13
+ return NOT_AVAILABLE_SEVERITY;
14
+ }
15
+ const stateSeverity = (_a = VDISK_STATE_SEVERITY_FOR_STATE_MODE[vDiskState]) !== null && _a !== void 0 ? _a : NOT_AVAILABLE_SEVERITY;
16
+ // Replicating disks (not replicated yet) should be Blue, even if state is OK
17
+ if (vDisk.Replicated === false &&
18
+ stateSeverity === DISK_COLOR_STATE_TO_NUMERIC_SEVERITY.Green) {
19
+ return DISK_COLOR_STATE_TO_NUMERIC_SEVERITY.Blue;
20
+ }
21
+ return stateSeverity;
22
+ }
23
+ /**
24
+ * Calculate severity based only on disk space usage
25
+ * Used in Space grouping mode
26
+ * Maps capacityAlert to detailed severity levels for visual differentiation
27
+ */
28
+ export function calculateSpaceSeverity(vDisk) {
29
+ // In Space mode, CapacityAlert is the primary indicator
30
+ // If CapacityAlert is not available, show N/D (NOT_AVAILABLE_SEVERITY)
31
+ if (!vDisk.CapacityAlert || !isCapacityAlert(vDisk.CapacityAlert)) {
32
+ return NOT_AVAILABLE_SEVERITY;
33
+ }
34
+ // Use detailed capacityAlert mapping
35
+ const alert = vDisk.CapacityAlert;
36
+ switch (alert) {
37
+ case ECapacityAlert.GREEN:
38
+ return SPACE_SEVERITY.GREEN;
39
+ case ECapacityAlert.CYAN:
40
+ return SPACE_SEVERITY.CYAN;
41
+ case ECapacityAlert.LIGHTYELLOW:
42
+ return SPACE_SEVERITY.LIGHT_YELLOW;
43
+ case ECapacityAlert.YELLOW:
44
+ return SPACE_SEVERITY.YELLOW;
45
+ case ECapacityAlert.LIGHTORANGE:
46
+ return SPACE_SEVERITY.LIGHT_ORANGE;
47
+ case ECapacityAlert.PREORANGE:
48
+ return SPACE_SEVERITY.PRE_ORANGE;
49
+ case ECapacityAlert.ORANGE:
50
+ return SPACE_SEVERITY.ORANGE;
51
+ case ECapacityAlert.RED:
52
+ return SPACE_SEVERITY.RED;
53
+ case ECapacityAlert.BLACK:
54
+ return SPACE_SEVERITY.BLACK;
55
+ default:
56
+ return NOT_AVAILABLE_SEVERITY;
57
+ }
58
+ }
59
+ /**
60
+ * Calculate severity based only on front queues
61
+ * Used in FrontQueues grouping mode
62
+ * Maps FrontQueues flag to detailed severity levels:
63
+ * - Grey -> N/D (NOT_AVAILABLE_SEVERITY)
64
+ * - Green -> OK (FRONT_QUEUES_SEVERITY.OK)
65
+ * - Blue -> ??? (treated as Green/OK)
66
+ * - Yellow -> Notice (FRONT_QUEUES_SEVERITY.NOTICE)
67
+ * - Orange -> Warning (FRONT_QUEUES_SEVERITY.WARNING)
68
+ * - Red -> Impaired (FRONT_QUEUES_SEVERITY.IMPAIRED)
69
+ *
70
+ * Note: Unlike Space mode, replicating disks (Replicated=false) do NOT get Blue color.
71
+ * Instead, they show striped pattern with their actual severity color (handled in CSS).
72
+ */
73
+ export function calculateFrontQueuesSeverity(vDisk) {
74
+ const frontQueues = vDisk.FrontQueues;
75
+ if (!frontQueues) {
76
+ return NOT_AVAILABLE_SEVERITY;
77
+ }
78
+ switch (frontQueues) {
79
+ case EFlag.Grey:
80
+ return NOT_AVAILABLE_SEVERITY;
81
+ case EFlag.Green:
82
+ case EFlag.Blue: // Blue is treated as OK in FrontQueues context
83
+ return FRONT_QUEUES_SEVERITY.OK;
84
+ case EFlag.Yellow:
85
+ return FRONT_QUEUES_SEVERITY.NOTICE;
86
+ case EFlag.Orange:
87
+ return FRONT_QUEUES_SEVERITY.WARNING;
88
+ case EFlag.Red:
89
+ return FRONT_QUEUES_SEVERITY.IMPAIRED;
90
+ default:
91
+ return NOT_AVAILABLE_SEVERITY;
92
+ }
93
+ }
94
+ /**
95
+ * Calculate severity based on compaction status (Fresh/Level rank satisfaction)
96
+ * Used in Compaction grouping mode
97
+ *
98
+ * Border color is determined by the worst of Fresh or Level rank:
99
+ * - Both Green -> Green border (OK)
100
+ * - At least one Yellow -> Yellow border (NOTICE)
101
+ * - At least one Orange or Red -> Red border (WARNING)
102
+ */
103
+ export function calculateCompactionSeverity(vDisk) {
104
+ var _a, _b, _c, _d;
105
+ const freshFlag = (_b = (_a = vDisk.SatisfactionRank) === null || _a === void 0 ? void 0 : _a.FreshRank) === null || _b === void 0 ? void 0 : _b.Flag;
106
+ const levelFlag = (_d = (_c = vDisk.SatisfactionRank) === null || _c === void 0 ? void 0 : _c.LevelRank) === null || _d === void 0 ? void 0 : _d.Flag;
107
+ // If no data available, return N/D
108
+ if (!freshFlag && !levelFlag) {
109
+ return NOT_AVAILABLE_SEVERITY;
110
+ }
111
+ // Grey is an explicit no-data flag from the backend, not a healthy compaction rank.
112
+ if (freshFlag === EFlag.Grey || levelFlag === EFlag.Grey) {
113
+ return NOT_AVAILABLE_SEVERITY;
114
+ }
115
+ // Determine worst severity between Fresh and Level
116
+ const freshSeverity = freshFlag
117
+ ? DISK_COLOR_STATE_TO_NUMERIC_SEVERITY[freshFlag]
118
+ : DISK_COLOR_STATE_TO_NUMERIC_SEVERITY.Green;
119
+ const levelSeverity = levelFlag
120
+ ? DISK_COLOR_STATE_TO_NUMERIC_SEVERITY[levelFlag]
121
+ : DISK_COLOR_STATE_TO_NUMERIC_SEVERITY.Green;
122
+ const worstSeverity = Math.max(freshSeverity, levelSeverity);
123
+ // Map to compaction severity levels
124
+ // Orange (4) and Red (5) both map to WARNING (red border)
125
+ if (worstSeverity >= DISK_COLOR_STATE_TO_NUMERIC_SEVERITY.Orange) {
126
+ return COMPACTION_SEVERITY.WARNING; // Red border
127
+ }
128
+ if (worstSeverity >= DISK_COLOR_STATE_TO_NUMERIC_SEVERITY.Yellow) {
129
+ return COMPACTION_SEVERITY.NOTICE; // Yellow border
130
+ }
131
+ return COMPACTION_SEVERITY.OK; // Green border
132
+ }
133
+ /**
134
+ * Calculate combined severity for "All" grouping mode
135
+ * This is a complex mode that will show multiple indicators simultaneously
136
+ * Uses the pre-calculated Severity field which combines all factors
137
+ * TODO: Implement advanced "All" mode visualization
138
+ */
139
+ export function calculateAllSeverity(vDisk) {
140
+ var _a;
141
+ return ((_a = vDisk.Severity) !== null && _a !== void 0 ? _a : NOT_AVAILABLE_SEVERITY);
142
+ }
143
+ //# sourceMappingURL=severityCalculators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"severityCalculators.js","sourceRoot":"","sources":["../../../src/utils/disks/severityCalculators.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,38 @@
1
+ import type { EFlag } from '../../types/api/enums';
1
2
  import type { TPDiskInfo, TPDiskStateInfo } from '../../types/api/pdisk';
2
3
  import type { TVDiskStateInfo, TVSlotId } from '../../types/api/vdisk';
3
4
  import type { ValueOf } from '../../types/common';
4
5
  import type { PDISK_TYPES } from './getPDiskType';
6
+ /**
7
+ * Additional UI-specific disk colors beyond the backend EFlag enum.
8
+ * Used for special visualization states in disk progress bars.
9
+ */
10
+ export type ExtendedDiskColor = 'SolidRed' | 'SpaceCyan' | 'SpaceLightYellow' | 'SpaceLightOrange' | 'SpacePreOrange' | 'SpaceOrange' | 'SpaceBlack';
11
+ /**
12
+ * Complete color type for disk visualization.
13
+ * Extends backend EFlag enum with additional UI-specific colors.
14
+ * All EFlag values are valid DiskColor values.
15
+ */
16
+ export type DiskColor = EFlag | ExtendedDiskColor;
17
+ /**
18
+ * Basic severity levels for data storage (0-5).
19
+ * Used in PreparedVDisk.Severity and PreparedPDisk.Severity.
20
+ * Represents combined severity calculated from VDiskState, DiskSpace, FrontQueues, and Replicated status.
21
+ */
22
+ export type DataSeverity = 0 | 1 | 2 | 3 | 4 | 5;
23
+ /**
24
+ * Extended severity levels for display (0-22).
25
+ * Includes basic levels (0-5) plus expert mode levels (6-22).
26
+ * Used for dynamic coloring in Expert Mode based on grouping strategy.
27
+ *
28
+ * Ranges:
29
+ * - 0-5: Basic colors (Grey, Green, Blue, Yellow, Orange, Red)
30
+ * - 6: SolidRed (State mode critical errors)
31
+ * - 7-15: Space mode detailed capacity alerts
32
+ * - 16-19: FrontQueues mode queue status
33
+ * - 20-22: Compaction mode satisfaction ranks
34
+ */
35
+ export type DisplaySeverity = DataSeverity | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22;
5
36
  export type PreparedPDisk = Omit<TPDiskStateInfo, 'AvailableSize' | 'TotalSize' | 'EnforcedDynamicSlotSize'> & Omit<Partial<TPDiskInfo>, 'Type' | 'AvailableSize' | 'TotalSize'> & {
6
37
  Type?: PDiskType;
7
38
  Severity?: number;
@@ -0,0 +1,14 @@
1
+ import type { DocsConfig } from '../uiFactory/types';
2
+ /**
3
+ * Keys of the documentation articles configured in `uiFactory.docs`
4
+ * (everything except the `basePath` field).
5
+ */
6
+ type DocsArticle = Exclude<keyof DocsConfig, 'basePath'>;
7
+ /**
8
+ * Generates a link to a documentation article based on the `docs` config from `uiFactory`.
9
+ *
10
+ * Returns `undefined` when documentation is not configured (`uiFactory.docs` is undefined)
11
+ * or when the requested article path is not set.
12
+ */
13
+ export declare function getDocsLink(article: DocsArticle): string | undefined;
14
+ export {};