ydb-embedded-ui 17.1.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.
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.d.ts +6 -1
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js +30 -6
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js.map +1 -1
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.scss +230 -5
- package/dist/components/Drawer/Drawer.js +4 -1
- package/dist/components/Drawer/Drawer.js.map +1 -1
- package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
- package/dist/components/LinkToSchemaObject/LinkToSchemaObject.d.ts +4 -3
- package/dist/components/LinkToSchemaObject/LinkToSchemaObject.js +31 -8
- package/dist/components/LinkToSchemaObject/LinkToSchemaObject.js.map +1 -1
- package/dist/components/LinkToSchemaObject/utils.d.ts +4 -0
- package/dist/components/LinkToSchemaObject/utils.js +19 -0
- package/dist/components/LinkToSchemaObject/utils.js.map +1 -0
- package/dist/components/LinkWithIcon/LinkWithIcon.js +1 -1
- package/dist/components/LinkWithIcon/LinkWithIcon.js.map +1 -1
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/PaginatedTable/PaginatedTable.d.ts +3 -2
- package/dist/components/PaginatedTable/PaginatedTable.js +2 -2
- package/dist/components/PaginatedTable/PaginatedTable.js.map +1 -1
- package/dist/components/PaginatedTable/PaginatedTable.scss +4 -0
- package/dist/components/PaginatedTable/TableChunk.d.ts +3 -2
- package/dist/components/PaginatedTable/TableChunk.js +2 -2
- package/dist/components/PaginatedTable/TableChunk.js.map +1 -1
- package/dist/components/PaginatedTable/TableChunksRenderer.d.ts +3 -2
- package/dist/components/PaginatedTable/TableChunksRenderer.js +3 -2
- package/dist/components/PaginatedTable/TableChunksRenderer.js.map +1 -1
- package/dist/components/PaginatedTable/TableRow.d.ts +3 -2
- package/dist/components/PaginatedTable/TableRow.js +9 -2
- package/dist/components/PaginatedTable/TableRow.js.map +1 -1
- package/dist/components/PaginatedTable/types.d.ts +1 -0
- package/dist/components/ProgressWrapper/progressUtils.js +1 -1
- package/dist/components/ProgressWrapper/progressUtils.js.map +1 -1
- package/dist/components/SegmentedProgress/SegmentedProgress.d.ts +5 -1
- package/dist/components/SegmentedProgress/SegmentedProgress.js +3 -3
- package/dist/components/SegmentedProgress/SegmentedProgress.js.map +1 -1
- package/dist/components/SegmentedProgress/SegmentedProgress.scss +37 -4
- package/dist/components/Stack/Stack.scss +2 -0
- package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
- package/dist/components/VDisk/VDisk.d.ts +3 -1
- package/dist/components/VDisk/VDisk.js +21 -4
- package/dist/components/VDisk/VDisk.js.map +1 -1
- package/dist/components/VDisk/VDiskWithDonorsStack.js +6 -3
- package/dist/components/VDisk/VDiskWithDonorsStack.js.map +1 -1
- package/dist/components/VDisk/i18n/en.json +1 -1
- package/dist/components/VDiskInfo/VDiskInfo.js +2 -2
- package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
- package/dist/containers/App/NavigationWrapper.js +4 -1
- package/dist/containers/App/NavigationWrapper.js.map +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js.map +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js.map +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js.map +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js.map +1 -1
- package/dist/containers/Clusters/constants.d.ts +1 -1
- package/dist/containers/Configs/types.d.ts +1 -1
- package/dist/containers/GetUserWrapper/GetUserWrapper.d.ts +4 -2
- package/dist/containers/GetUserWrapper/GetUserWrapper.js +4 -6
- package/dist/containers/GetUserWrapper/GetUserWrapper.js.map +1 -1
- package/dist/containers/Header/hooks/useHeaderPageContext.js +4 -4
- package/dist/containers/Header/hooks/useHeaderPageContext.js.map +1 -1
- package/dist/containers/Header/i18n/index.d.ts +1 -1
- package/dist/containers/HomePage/HomePage.js +15 -6
- package/dist/containers/HomePage/HomePage.js.map +1 -1
- package/dist/containers/HomePage/useHomePageTab.d.ts +4 -0
- package/dist/containers/HomePage/useHomePageTab.js +16 -1
- package/dist/containers/HomePage/useHomePageTab.js.map +1 -1
- package/dist/containers/Node/Node.js +7 -5
- package/dist/containers/Node/Node.js.map +1 -1
- package/dist/containers/Node/NodePages.d.ts +1 -1
- package/dist/containers/Node/Threads/Threads.d.ts +2 -1
- package/dist/containers/Node/Threads/Threads.js +2 -2
- package/dist/containers/Node/Threads/Threads.js.map +1 -1
- package/dist/containers/Operations/Operations.js +14 -3
- package/dist/containers/Operations/Operations.js.map +1 -1
- package/dist/containers/Operations/OperationsControls.d.ts +5 -1
- package/dist/containers/Operations/OperationsControls.js +2 -3
- package/dist/containers/Operations/OperationsControls.js.map +1 -1
- package/dist/containers/Operations/constants.d.ts +4 -0
- package/dist/containers/Operations/constants.js +4 -0
- package/dist/containers/Operations/constants.js.map +1 -1
- package/dist/containers/Operations/i18n/en.json +1 -0
- package/dist/containers/Operations/i18n/index.d.ts +1 -1
- package/dist/containers/Operations/useOperationsQueryParams.d.ts +1 -0
- package/dist/containers/Operations/useOperationsQueryParams.js +20 -9
- package/dist/containers/Operations/useOperationsQueryParams.js.map +1 -1
- package/dist/containers/Operations/utils.d.ts +12 -0
- package/dist/containers/Operations/utils.js +8 -0
- package/dist/containers/Operations/utils.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskPage.js +2 -2
- package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
- package/dist/containers/Storage/Disks/Disks.d.ts +1 -0
- package/dist/containers/Storage/Disks/Disks.js +6 -4
- package/dist/containers/Storage/Disks/Disks.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorage.js +3 -1
- package/dist/containers/Storage/PaginatedStorage.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.js +1 -1
- package/dist/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsComponent.js +1 -1
- package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsComponent.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.d.ts +5 -2
- package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js +18 -8
- package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/StorageGroupsColumns.scss +10 -0
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +9 -4
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.d.ts +5 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js +9 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/constants.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js +37 -9
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/hooks.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/en.json +1 -0
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/PaginatedStorageNodesTable/columns/constants.d.ts +1 -1
- package/dist/containers/Storage/PaginatedStorageNodesTable/columns/constants.js +1 -1
- package/dist/containers/Storage/PaginatedStorageNodesTable/columns/constants.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.d.ts +6 -0
- package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js +28 -0
- package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.scss +31 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.d.ts +5 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js +5 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/AllLegend.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.d.ts +5 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.js +21 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.d.ts +5 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.js +21 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.d.ts +6 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js +65 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.scss +115 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.d.ts +5 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.js +23 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.d.ts +7 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js +26 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/index.d.ts +5 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/index.js +6 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/index.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.d.ts +7 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js +21 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/constants.d.ts +13 -0
- package/dist/containers/Storage/StorageExpertModePanel/constants.js +7 -0
- package/dist/containers/Storage/StorageExpertModePanel/constants.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/i18n/en.json +33 -0
- package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +2 -0
- package/dist/containers/Storage/StorageExpertModePanel/i18n/index.js +5 -0
- package/dist/containers/Storage/StorageExpertModePanel/i18n/index.js.map +1 -0
- package/dist/containers/Storage/i18n/en.json +1 -0
- package/dist/containers/Storage/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/useStorageQueryParams.d.ts +9 -0
- package/dist/containers/Storage/useStorageQueryParams.js +57 -6
- package/dist/containers/Storage/useStorageQueryParams.js.map +1 -1
- package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.d.ts +2 -0
- package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js +46 -0
- package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js.map +1 -0
- package/dist/containers/Storage/utils/index.d.ts +1 -1
- package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/HotKeys/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.d.ts +4 -3
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js +53 -28
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/ManagePartitioningDialog.scss +4 -0
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/i18n/en.json +2 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/types.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/useManagePartitionForm.d.ts +2 -2
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/useManagePartitionForm.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.d.ts +19 -31
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js +48 -15
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/ManagePartitioningDialog/utils.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js +9 -3
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/PartitionsProgress.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/en.json +3 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/PartitionsProgress/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/hooks/useTablePartitioning.js +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/hooks/useTablePartitioning.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/utils.d.ts +2 -2
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/utils.js +3 -3
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/utils.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/StorageUsage/MediaSectionSummary.js +3 -2
- package/dist/containers/Tenant/Diagnostics/StorageUsage/MediaSectionSummary.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.d.ts +13 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.js +13 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricPageSummary/MetricPageSummary.scss +51 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.d.ts +4 -20
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js +8 -51
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.scss +24 -35
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.d.ts +3 -6
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.js +4 -7
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/CpuTab.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.d.ts +2 -4
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.js +3 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/MemoryTab.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.d.ts +3 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.js +4 -6
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/NetworkTab.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/PlaceholderTab.js +1 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/PlaceholderTab.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.d.ts +3 -6
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.js +4 -21
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/components/StorageTab.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.d.ts +11 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js +10 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/MetricTabCard.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.d.ts +3 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js +3 -4
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/ServerlessTabCard.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.scss +21 -13
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.d.ts +3 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js +5 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.d.ts +3 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.js +5 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TenantMemory.scss +4 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.d.ts +4 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js +12 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +30 -11
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +3 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.js +20 -13
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +12 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/metricOverview.d.ts +37 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/metricOverview.js +115 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/metricOverview.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.d.ts +5 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.d.ts +7 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js +19 -7
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +2 -3
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/useDiagnosticsPages.js +2 -3
- package/dist/containers/Tenant/Diagnostics/useDiagnosticsPages.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +1 -2
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/UpdateTreeContext.d.ts +1 -0
- package/dist/containers/Tenant/ObjectSummary/UpdateTreeContext.js +5 -0
- package/dist/containers/Tenant/ObjectSummary/UpdateTreeContext.js.map +1 -1
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js +1 -1
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js.map +1 -1
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsTimeout.d.ts +2 -2
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsTimeout.js +1 -2
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsTimeout.js.map +1 -1
- package/dist/containers/Tenant/Tenant.js +2 -1
- package/dist/containers/Tenant/Tenant.js.map +1 -1
- package/dist/containers/Tenant/TenantPages.d.ts +1 -0
- package/dist/containers/Tenant/TenantPages.js.map +1 -1
- package/dist/containers/Tenant/utils/schemaQueryTemplates.js +6 -6
- package/dist/containers/UserSettings/i18n/en.json +3 -1
- package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
- package/dist/containers/UserSettings/settings.d.ts +2 -0
- package/dist/containers/UserSettings/settings.js +12 -0
- package/dist/containers/UserSettings/settings.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.js +2 -2
- package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskStorageDetails.js +2 -2
- package/dist/containers/VDiskPage/VDiskStorageDetails.js.map +1 -1
- package/dist/lib.d.ts +1 -0
- package/dist/lib.js +1 -0
- package/dist/lib.js.map +1 -1
- package/dist/routes.d.ts +4 -1
- package/dist/store/reducers/capabilities/capabilities.d.ts +118 -1
- package/dist/store/reducers/capabilities/capabilities.js +1 -0
- package/dist/store/reducers/capabilities/capabilities.js.map +1 -1
- package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
- package/dist/store/reducers/capabilities/hooks.js +10 -1
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/settings/constants.d.ts +7 -0
- package/dist/store/reducers/settings/constants.js +6 -0
- package/dist/store/reducers/settings/constants.js.map +1 -1
- package/dist/store/reducers/settings/utils.d.ts +2 -1
- package/dist/store/reducers/storage/types.d.ts +2 -2
- package/dist/store/reducers/storage/utils.js +9 -3
- package/dist/store/reducers/storage/utils.js.map +1 -1
- package/dist/store/reducers/storageUsage/StorageUsage.d.ts +1 -1
- package/dist/store/reducers/tenant/types.d.ts +1 -1
- package/dist/styles/index.scss +1 -0
- package/dist/styles/mixins.scss +10 -6
- package/dist/styles/space-colors.scss +60 -0
- package/dist/types/api/capabilities.d.ts +3 -1
- package/dist/types/api/operations.d.ts +1 -1
- package/dist/uiFactory/types.d.ts +15 -0
- package/dist/uiFactory/uiFactory.js +1 -0
- package/dist/uiFactory/uiFactory.js.map +1 -1
- package/dist/utils/capacityAlerts.d.ts +2 -4
- package/dist/utils/capacityAlerts.js +11 -11
- package/dist/utils/capacityAlerts.js.map +1 -1
- package/dist/utils/disks/calculatePDiskSeverity.d.ts +1 -1
- package/dist/utils/disks/constants.d.ts +57 -20
- package/dist/utils/disks/constants.js +68 -7
- package/dist/utils/disks/constants.js.map +1 -1
- package/dist/utils/disks/displayState.d.ts +11 -0
- package/dist/utils/disks/displayState.js +11 -0
- package/dist/utils/disks/displayState.js.map +1 -0
- package/dist/utils/disks/getIconStrategy.d.ts +6 -0
- package/dist/utils/disks/getIconStrategy.js +21 -0
- package/dist/utils/disks/getIconStrategy.js.map +1 -0
- package/dist/utils/disks/getSeverityStrategy.d.ts +6 -0
- package/dist/utils/disks/getSeverityStrategy.js +21 -0
- package/dist/utils/disks/getSeverityStrategy.js.map +1 -0
- package/dist/utils/disks/groupBy.d.ts +8 -0
- package/dist/utils/disks/groupBy.js +8 -0
- package/dist/utils/disks/groupBy.js.map +1 -0
- package/dist/utils/disks/helpers.d.ts +19 -4
- package/dist/utils/disks/helpers.js +84 -4
- package/dist/utils/disks/helpers.js.map +1 -1
- package/dist/utils/disks/iconCalculators.d.ts +51 -0
- package/dist/utils/disks/iconCalculators.js +184 -0
- package/dist/utils/disks/iconCalculators.js.map +1 -0
- package/dist/utils/disks/severityCalculators.d.ts +47 -0
- package/dist/utils/disks/severityCalculators.js +143 -0
- package/dist/utils/disks/severityCalculators.js.map +1 -0
- package/dist/utils/disks/types.d.ts +31 -0
- package/dist/utils/docs.d.ts +14 -0
- package/dist/utils/docs.js +25 -0
- package/dist/utils/docs.js.map +1 -0
- package/dist/utils/generateEvaluator.d.ts +1 -1
- package/dist/utils/hooks/useChangedQuerySettings.d.ts +2 -2
- package/dist/utils/hooks/useLastQueryExecutionSettings.d.ts +2 -2
- package/dist/utils/hooks/useQueryExecutionSettings.d.ts +1 -1
- package/dist/utils/metrics/formatMetricLegend.d.ts +2 -0
- package/dist/utils/metrics/formatMetricLegend.js +11 -4
- package/dist/utils/metrics/formatMetricLegend.js.map +1 -1
- package/dist/utils/metrics/getDiagramValues.d.ts +48 -0
- package/dist/utils/metrics/getDiagramValues.js +59 -0
- package/dist/utils/metrics/getDiagramValues.js.map +1 -0
- package/dist/utils/metrics.d.ts +1 -0
- package/dist/utils/metrics.js +3 -0
- package/dist/utils/metrics.js.map +1 -1
- package/dist/utils/nodes.d.ts +1 -1
- package/dist/utils/query.d.ts +22 -61
- package/dist/utils/query.js +16 -10
- package/dist/utils/query.js.map +1 -1
- package/dist/utils/storageMetrics.d.ts +2 -0
- package/dist/utils/storageMetrics.js +17 -0
- package/dist/utils/storageMetrics.js.map +1 -1
- package/dist/utils/zod/configureZod.d.ts +6 -0
- package/dist/utils/zod/configureZod.js +14 -0
- package/dist/utils/zod/configureZod.js.map +1 -0
- package/dist/utils/zod/zodParsers.d.ts +1 -1
- package/package.json +4 -4
- package/dist/containers/Cluster/ClusterOverview/utils.d.ts +0 -19
- package/dist/containers/Cluster/ClusterOverview/utils.js +0 -46
- package/dist/containers/Cluster/ClusterOverview/utils.js.map +0 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UsageTabCard.d.ts +0 -15
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UsageTabCard.js +0 -22
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UsageTabCard.js.map +0 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UtilizationTabCard.d.ts +0 -10
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UtilizationTabCard.js +0 -16
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/UtilizationTabCard.js.map +0 -1
|
@@ -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 @@
|
|
|
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) =>
|
|
8
|
-
|
|
9
|
-
|
|
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)
|
|
11
|
+
return isNil(allocatedPercent)
|
|
12
|
+
? DATA_SEVERITY.GREY
|
|
13
|
+
: getColorSeverity(getSpaceFlag(allocatedPercent));
|
|
12
14
|
};
|
|
13
|
-
|
|
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] :
|
|
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":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,QAAQ,CAAC;AAG7B,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAC,gBAAgB,EAAC,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EACH,oCAAoC,EACpC,oCAAoC,EACpC,yBAAyB,EACzB,UAAU,EACV,4BAA4B,
|
|
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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"}
|