ydb-embedded-ui 17.2.0 → 18.0.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 (345) 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/GetUserWrapper/GetUserWrapper.d.ts +4 -2
  44. package/dist/containers/GetUserWrapper/GetUserWrapper.js +4 -6
  45. package/dist/containers/GetUserWrapper/GetUserWrapper.js.map +1 -1
  46. package/dist/containers/Header/hooks/useHeaderPageContext.js +4 -4
  47. package/dist/containers/Header/hooks/useHeaderPageContext.js.map +1 -1
  48. package/dist/containers/Header/i18n/index.d.ts +1 -1
  49. package/dist/containers/HomePage/HomePage.js +15 -6
  50. package/dist/containers/HomePage/HomePage.js.map +1 -1
  51. package/dist/containers/HomePage/useHomePageTab.d.ts +4 -0
  52. package/dist/containers/HomePage/useHomePageTab.js +16 -1
  53. package/dist/containers/HomePage/useHomePageTab.js.map +1 -1
  54. package/dist/containers/Node/Node.js +7 -5
  55. package/dist/containers/Node/Node.js.map +1 -1
  56. package/dist/containers/Node/NodePages.d.ts +1 -1
  57. package/dist/containers/Node/Threads/Threads.d.ts +2 -1
  58. package/dist/containers/Node/Threads/Threads.js +2 -2
  59. package/dist/containers/Node/Threads/Threads.js.map +1 -1
  60. package/dist/containers/Operations/Operations.js +14 -3
  61. package/dist/containers/Operations/Operations.js.map +1 -1
  62. package/dist/containers/Operations/OperationsControls.d.ts +5 -1
  63. package/dist/containers/Operations/OperationsControls.js +2 -3
  64. package/dist/containers/Operations/OperationsControls.js.map +1 -1
  65. package/dist/containers/Operations/constants.d.ts +4 -0
  66. package/dist/containers/Operations/constants.js +4 -0
  67. package/dist/containers/Operations/constants.js.map +1 -1
  68. package/dist/containers/Operations/i18n/en.json +1 -0
  69. package/dist/containers/Operations/i18n/index.d.ts +1 -1
  70. package/dist/containers/Operations/useOperationsQueryParams.d.ts +1 -0
  71. package/dist/containers/Operations/useOperationsQueryParams.js +20 -9
  72. package/dist/containers/Operations/useOperationsQueryParams.js.map +1 -1
  73. package/dist/containers/Operations/utils.d.ts +12 -0
  74. package/dist/containers/Operations/utils.js +8 -0
  75. package/dist/containers/Operations/utils.js.map +1 -1
  76. package/dist/containers/PDiskPage/PDiskPage.js +2 -2
  77. package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
  78. package/dist/containers/Storage/Disks/Disks.d.ts +1 -0
  79. package/dist/containers/Storage/Disks/Disks.js +6 -4
  80. package/dist/containers/Storage/Disks/Disks.js.map +1 -1
  81. package/dist/containers/Storage/PaginatedStorage.js +3 -1
  82. package/dist/containers/Storage/PaginatedStorage.js.map +1 -1
  83. package/dist/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.js +1 -1
  84. package/dist/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.js.map +1 -1
  85. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsComponent.js +1 -1
  86. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsComponent.js.map +1 -1
  87. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.d.ts +5 -2
  88. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js +18 -8
  89. package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js.map +1 -1
  90. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/StorageGroupsColumns.scss +10 -0
  91. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +9 -4
  92. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
  93. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.d.ts +5 -1
  94. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js +9 -1
  95. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js.map +1 -1
  96. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js +37 -9
  97. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js.map +1 -1
  98. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/en.json +1 -0
  99. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
  100. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/constants.d.ts +1 -1
  101. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/constants.js +1 -1
  102. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/constants.js.map +1 -1
  103. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.d.ts +6 -0
  104. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js +28 -0
  105. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js.map +1 -0
  106. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.scss +31 -0
  107. package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.d.ts +5 -0
  108. package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js +5 -0
  109. package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js.map +1 -0
  110. package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.d.ts +5 -0
  111. package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.js +21 -0
  112. package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.js.map +1 -0
  113. package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.d.ts +5 -0
  114. package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.js +21 -0
  115. package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.js.map +1 -0
  116. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.d.ts +6 -0
  117. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js +65 -0
  118. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js.map +1 -0
  119. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.scss +115 -0
  120. package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.d.ts +5 -0
  121. package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.js +23 -0
  122. package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.js.map +1 -0
  123. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.d.ts +7 -0
  124. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js +26 -0
  125. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js.map +1 -0
  126. package/dist/containers/Storage/StorageExpertModePanel/components/index.d.ts +5 -0
  127. package/dist/containers/Storage/StorageExpertModePanel/components/index.js +6 -0
  128. package/dist/containers/Storage/StorageExpertModePanel/components/index.js.map +1 -0
  129. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.d.ts +7 -0
  130. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js +21 -0
  131. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js.map +1 -0
  132. package/dist/containers/Storage/StorageExpertModePanel/constants.d.ts +13 -0
  133. package/dist/containers/Storage/StorageExpertModePanel/constants.js +7 -0
  134. package/dist/containers/Storage/StorageExpertModePanel/constants.js.map +1 -0
  135. package/dist/containers/Storage/StorageExpertModePanel/i18n/en.json +33 -0
  136. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +2 -0
  137. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.js +5 -0
  138. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.js.map +1 -0
  139. package/dist/containers/Storage/i18n/en.json +1 -0
  140. package/dist/containers/Storage/i18n/index.d.ts +1 -1
  141. package/dist/containers/Storage/useStorageQueryParams.d.ts +9 -0
  142. package/dist/containers/Storage/useStorageQueryParams.js +57 -6
  143. package/dist/containers/Storage/useStorageQueryParams.js.map +1 -1
  144. package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.d.ts +2 -0
  145. package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js +46 -0
  146. package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js.map +1 -0
  147. package/dist/containers/Storage/utils/index.d.ts +1 -1
  148. package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -1
  149. package/dist/containers/Tenant/Diagnostics/HotKeys/i18n/index.d.ts +1 -1
  150. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.d.ts +4 -3
  151. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js +53 -28
  152. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js.map +1 -1
  153. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.scss +4 -0
  154. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/i18n/en.json +2 -1
  155. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/i18n/index.d.ts +1 -1
  156. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/types.d.ts +7 -0
  157. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/useManagePartitionForm.d.ts +2 -2
  158. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/useManagePartitionForm.js.map +1 -1
  159. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.d.ts +19 -31
  160. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js +48 -15
  161. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js.map +1 -1
  162. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js +9 -3
  163. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js.map +1 -1
  164. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/en.json +3 -1
  165. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/index.d.ts +1 -1
  166. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/hooks/useTablePartitioning.js +1 -0
  167. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/hooks/useTablePartitioning.js.map +1 -1
  168. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/utils.d.ts +2 -2
  169. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/utils.js +3 -3
  170. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/utils.js.map +1 -1
  171. package/dist/containers/Tenant/Diagnostics/StorageUsage/MediaSectionSummary.js +3 -2
  172. package/dist/containers/Tenant/Diagnostics/StorageUsage/MediaSectionSummary.js.map +1 -1
  173. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.d.ts +13 -0
  174. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.js +13 -0
  175. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.js.map +1 -0
  176. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.scss +51 -0
  177. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.d.ts +4 -20
  178. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js +8 -51
  179. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js.map +1 -1
  180. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.scss +24 -35
  181. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.d.ts +3 -6
  182. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.js +4 -7
  183. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.js.map +1 -1
  184. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.d.ts +2 -4
  185. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.js +3 -3
  186. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.js.map +1 -1
  187. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.d.ts +3 -3
  188. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.js +4 -6
  189. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.js.map +1 -1
  190. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/PlaceholderTab.js +1 -3
  191. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/PlaceholderTab.js.map +1 -1
  192. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.d.ts +3 -6
  193. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.js +4 -21
  194. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.js.map +1 -1
  195. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.d.ts +11 -0
  196. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js +10 -0
  197. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js.map +1 -0
  198. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.d.ts +3 -3
  199. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js +3 -4
  200. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js.map +1 -1
  201. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.scss +21 -13
  202. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.d.ts +3 -1
  203. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js +5 -2
  204. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js.map +1 -1
  205. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.d.ts +3 -1
  206. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.js +5 -2
  207. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.js.map +1 -1
  208. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.scss +4 -0
  209. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.d.ts +4 -1
  210. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js +12 -2
  211. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js.map +1 -1
  212. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +30 -11
  213. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  214. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +3 -3
  215. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
  216. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.d.ts +2 -1
  217. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.js +20 -13
  218. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.js.map +1 -1
  219. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +1 -1
  220. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +12 -0
  221. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
  222. package/dist/containers/Tenant/Diagnostics/TenantOverview/metricOverview.d.ts +37 -0
  223. package/dist/containers/Tenant/Diagnostics/TenantOverview/metricOverview.js +115 -0
  224. package/dist/containers/Tenant/Diagnostics/TenantOverview/metricOverview.js.map +1 -0
  225. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.d.ts +5 -1
  226. package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.d.ts +7 -1
  227. package/dist/containers/Tenant/Diagnostics/i18n/index.d.ts +1 -1
  228. package/dist/containers/Tenant/Diagnostics/useDiagnosticsPages.js +2 -3
  229. package/dist/containers/Tenant/Diagnostics/useDiagnosticsPages.js.map +1 -1
  230. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +1 -2
  231. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
  232. package/dist/containers/Tenant/ObjectSummary/UpdateTreeContext.d.ts +1 -0
  233. package/dist/containers/Tenant/ObjectSummary/UpdateTreeContext.js +5 -0
  234. package/dist/containers/Tenant/ObjectSummary/UpdateTreeContext.js.map +1 -1
  235. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js +1 -1
  236. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js.map +1 -1
  237. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsTimeout.d.ts +2 -2
  238. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsTimeout.js +1 -2
  239. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsTimeout.js.map +1 -1
  240. package/dist/containers/Tenant/Tenant.js +2 -1
  241. package/dist/containers/Tenant/Tenant.js.map +1 -1
  242. package/dist/containers/Tenant/TenantPages.d.ts +1 -0
  243. package/dist/containers/Tenant/TenantPages.js.map +1 -1
  244. package/dist/containers/UserSettings/i18n/en.json +3 -1
  245. package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
  246. package/dist/containers/UserSettings/settings.d.ts +2 -0
  247. package/dist/containers/UserSettings/settings.js +12 -0
  248. package/dist/containers/UserSettings/settings.js.map +1 -1
  249. package/dist/containers/VDiskPage/VDiskPage.js +2 -2
  250. package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
  251. package/dist/containers/VDiskPage/VDiskStorageDetails.js +2 -2
  252. package/dist/containers/VDiskPage/VDiskStorageDetails.js.map +1 -1
  253. package/dist/lib.d.ts +1 -0
  254. package/dist/lib.js +1 -0
  255. package/dist/lib.js.map +1 -1
  256. package/dist/routes.d.ts +4 -1
  257. package/dist/store/reducers/capabilities/capabilities.d.ts +118 -1
  258. package/dist/store/reducers/capabilities/capabilities.js +1 -0
  259. package/dist/store/reducers/capabilities/capabilities.js.map +1 -1
  260. package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
  261. package/dist/store/reducers/capabilities/hooks.js +10 -1
  262. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  263. package/dist/store/reducers/settings/constants.d.ts +7 -0
  264. package/dist/store/reducers/settings/constants.js +6 -0
  265. package/dist/store/reducers/settings/constants.js.map +1 -1
  266. package/dist/store/reducers/settings/utils.d.ts +2 -1
  267. package/dist/store/reducers/storage/types.d.ts +2 -2
  268. package/dist/store/reducers/storage/utils.js +9 -3
  269. package/dist/store/reducers/storage/utils.js.map +1 -1
  270. package/dist/store/reducers/storageUsage/StorageUsage.d.ts +1 -1
  271. package/dist/store/reducers/tenant/types.d.ts +1 -1
  272. package/dist/styles/index.scss +1 -0
  273. package/dist/styles/mixins.scss +10 -6
  274. package/dist/styles/space-colors.scss +60 -0
  275. package/dist/types/api/capabilities.d.ts +3 -1
  276. package/dist/types/api/operations.d.ts +1 -1
  277. package/dist/uiFactory/types.d.ts +15 -0
  278. package/dist/uiFactory/uiFactory.js +1 -0
  279. package/dist/uiFactory/uiFactory.js.map +1 -1
  280. package/dist/utils/capacityAlerts.d.ts +2 -4
  281. package/dist/utils/capacityAlerts.js +11 -11
  282. package/dist/utils/capacityAlerts.js.map +1 -1
  283. package/dist/utils/disks/calculatePDiskSeverity.d.ts +1 -1
  284. package/dist/utils/disks/constants.d.ts +57 -20
  285. package/dist/utils/disks/constants.js +68 -7
  286. package/dist/utils/disks/constants.js.map +1 -1
  287. package/dist/utils/disks/displayState.d.ts +11 -0
  288. package/dist/utils/disks/displayState.js +11 -0
  289. package/dist/utils/disks/displayState.js.map +1 -0
  290. package/dist/utils/disks/getIconStrategy.d.ts +6 -0
  291. package/dist/utils/disks/getIconStrategy.js +21 -0
  292. package/dist/utils/disks/getIconStrategy.js.map +1 -0
  293. package/dist/utils/disks/getSeverityStrategy.d.ts +6 -0
  294. package/dist/utils/disks/getSeverityStrategy.js +21 -0
  295. package/dist/utils/disks/getSeverityStrategy.js.map +1 -0
  296. package/dist/utils/disks/groupBy.d.ts +8 -0
  297. package/dist/utils/disks/groupBy.js +8 -0
  298. package/dist/utils/disks/groupBy.js.map +1 -0
  299. package/dist/utils/disks/helpers.d.ts +19 -4
  300. package/dist/utils/disks/helpers.js +84 -4
  301. package/dist/utils/disks/helpers.js.map +1 -1
  302. package/dist/utils/disks/iconCalculators.d.ts +51 -0
  303. package/dist/utils/disks/iconCalculators.js +184 -0
  304. package/dist/utils/disks/iconCalculators.js.map +1 -0
  305. package/dist/utils/disks/severityCalculators.d.ts +47 -0
  306. package/dist/utils/disks/severityCalculators.js +143 -0
  307. package/dist/utils/disks/severityCalculators.js.map +1 -0
  308. package/dist/utils/disks/types.d.ts +31 -0
  309. package/dist/utils/docs.d.ts +14 -0
  310. package/dist/utils/docs.js +25 -0
  311. package/dist/utils/docs.js.map +1 -0
  312. package/dist/utils/generateEvaluator.d.ts +1 -1
  313. package/dist/utils/hooks/useChangedQuerySettings.d.ts +2 -2
  314. package/dist/utils/hooks/useLastQueryExecutionSettings.d.ts +2 -2
  315. package/dist/utils/hooks/useQueryExecutionSettings.d.ts +1 -1
  316. package/dist/utils/metrics/formatMetricLegend.d.ts +2 -0
  317. package/dist/utils/metrics/formatMetricLegend.js +11 -4
  318. package/dist/utils/metrics/formatMetricLegend.js.map +1 -1
  319. package/dist/utils/metrics/getDiagramValues.d.ts +48 -0
  320. package/dist/utils/metrics/getDiagramValues.js +59 -0
  321. package/dist/utils/metrics/getDiagramValues.js.map +1 -0
  322. package/dist/utils/metrics.d.ts +1 -0
  323. package/dist/utils/metrics.js +3 -0
  324. package/dist/utils/metrics.js.map +1 -1
  325. package/dist/utils/nodes.d.ts +1 -1
  326. package/dist/utils/query.d.ts +22 -61
  327. package/dist/utils/query.js +16 -10
  328. package/dist/utils/query.js.map +1 -1
  329. package/dist/utils/storageMetrics.d.ts +2 -0
  330. package/dist/utils/storageMetrics.js +17 -0
  331. package/dist/utils/storageMetrics.js.map +1 -1
  332. package/dist/utils/zod/configureZod.d.ts +6 -0
  333. package/dist/utils/zod/configureZod.js +14 -0
  334. package/dist/utils/zod/configureZod.js.map +1 -0
  335. package/dist/utils/zod/zodParsers.d.ts +1 -1
  336. package/package.json +4 -4
  337. package/dist/containers/Cluster/ClusterOverview/utils.d.ts +0 -19
  338. package/dist/containers/Cluster/ClusterOverview/utils.js +0 -46
  339. package/dist/containers/Cluster/ClusterOverview/utils.js.map +0 -1
  340. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UsageTabCard.d.ts +0 -15
  341. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UsageTabCard.js +0 -22
  342. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UsageTabCard.js.map +0 -1
  343. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UtilizationTabCard.d.ts +0 -10
  344. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UtilizationTabCard.js +0 -16
  345. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UtilizationTabCard.js.map +0 -1
@@ -0,0 +1,21 @@
1
+ import { VDisksGroupBy } from './groupBy';
2
+ import { calculateAllIcon, calculateCompactionIcon, calculateFrontQueuesIcon, calculateSpaceIcon, calculateStateIcon, } from './iconCalculators';
3
+ /**
4
+ * Get the appropriate icon calculator based on grouping mode
5
+ */
6
+ export function getIconCalculator(groupBy) {
7
+ switch (groupBy) {
8
+ case VDisksGroupBy.State:
9
+ return calculateStateIcon;
10
+ case VDisksGroupBy.Space:
11
+ return calculateSpaceIcon;
12
+ case VDisksGroupBy.FrontQueues:
13
+ return calculateFrontQueuesIcon;
14
+ case VDisksGroupBy.Compaction:
15
+ return calculateCompactionIcon;
16
+ case VDisksGroupBy.All:
17
+ default:
18
+ return calculateAllIcon;
19
+ }
20
+ }
21
+ //# sourceMappingURL=getIconStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIconStrategy.js","sourceRoot":"","sources":["../../../src/utils/disks/getIconStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAGxC,OAAO,EACH,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IACzD,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,aAAa,CAAC,KAAK;YACpB,OAAO,kBAAkB,CAAC;QAC9B,KAAK,aAAa,CAAC,KAAK;YACpB,OAAO,kBAAkB,CAAC;QAC9B,KAAK,aAAa,CAAC,WAAW;YAC1B,OAAO,wBAAwB,CAAC;QACpC,KAAK,aAAa,CAAC,UAAU;YACzB,OAAO,uBAAuB,CAAC;QACnC,KAAK,aAAa,CAAC,GAAG,CAAC;QACvB;YACI,OAAO,gBAAgB,CAAC;IAChC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { VDisksGroupByValue } from './groupBy';
2
+ import type { SeverityCalculator } from './severityCalculators';
3
+ /**
4
+ * Get the appropriate severity calculator based on grouping mode
5
+ */
6
+ export declare function getSeverityCalculator(groupBy: VDisksGroupByValue): SeverityCalculator;
@@ -0,0 +1,21 @@
1
+ import { VDisksGroupBy } from './groupBy';
2
+ import { calculateAllSeverity, calculateCompactionSeverity, calculateFrontQueuesSeverity, calculateSpaceSeverity, calculateStateSeverity, } from './severityCalculators';
3
+ /**
4
+ * Get the appropriate severity calculator based on grouping mode
5
+ */
6
+ export function getSeverityCalculator(groupBy) {
7
+ switch (groupBy) {
8
+ case VDisksGroupBy.State:
9
+ return calculateStateSeverity;
10
+ case VDisksGroupBy.Space:
11
+ return calculateSpaceSeverity;
12
+ case VDisksGroupBy.FrontQueues:
13
+ return calculateFrontQueuesSeverity;
14
+ case VDisksGroupBy.Compaction:
15
+ return calculateCompactionSeverity;
16
+ case VDisksGroupBy.All:
17
+ default:
18
+ return calculateAllSeverity;
19
+ }
20
+ }
21
+ //# sourceMappingURL=getSeverityStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSeverityStrategy.js","sourceRoot":"","sources":["../../../src/utils/disks/getSeverityStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAGxC,OAAO,EACH,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,GACzB,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA2B;IAC7D,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,aAAa,CAAC,KAAK;YACpB,OAAO,sBAAsB,CAAC;QAClC,KAAK,aAAa,CAAC,KAAK;YACpB,OAAO,sBAAsB,CAAC;QAClC,KAAK,aAAa,CAAC,WAAW;YAC1B,OAAO,4BAA4B,CAAC;QACxC,KAAK,aAAa,CAAC,UAAU;YACzB,OAAO,2BAA2B,CAAC;QACvC,KAAK,aAAa,CAAC,GAAG,CAAC;QACvB;YACI,OAAO,oBAAoB,CAAC;IACpC,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const VDisksGroupBy: {
2
+ readonly State: "State";
3
+ readonly Space: "Space";
4
+ readonly FrontQueues: "FrontQueues";
5
+ readonly Compaction: "Compaction";
6
+ readonly All: "All";
7
+ };
8
+ export type VDisksGroupByValue = (typeof VDisksGroupBy)[keyof typeof VDisksGroupBy];
@@ -0,0 +1,8 @@
1
+ export const VDisksGroupBy = {
2
+ State: 'State',
3
+ Space: 'Space',
4
+ FrontQueues: 'FrontQueues',
5
+ Compaction: 'Compaction',
6
+ All: 'All',
7
+ };
8
+ //# sourceMappingURL=groupBy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupBy.js","sourceRoot":"","sources":["../../../src/utils/disks/groupBy.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;CACJ,CAAC"}
@@ -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;