ydb-embedded-ui 8.24.1 → 8.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/icons/overview.svg +1 -0
- package/dist/components/ConnectToDB/ConnectToDBDialog.js +17 -2
- package/dist/components/ConnectToDB/ConnectToDBDialog.js.map +1 -1
- package/dist/components/ConnectToDB/__test__/utils.test.d.ts +1 -0
- package/dist/components/ConnectToDB/__test__/utils.test.js +34 -0
- package/dist/components/ConnectToDB/__test__/utils.test.js.map +1 -0
- package/dist/components/ConnectToDB/snippets.d.ts +1 -1
- package/dist/components/ConnectToDB/snippets.js +6 -1
- package/dist/components/ConnectToDB/snippets.js.map +1 -1
- package/dist/components/ConnectToDB/utils.d.ts +1 -0
- package/dist/components/ConnectToDB/utils.js +19 -0
- package/dist/components/ConnectToDB/utils.js.map +1 -0
- package/dist/components/CopyLinkButton/CopyLinkButton.d.ts +6 -0
- package/dist/components/CopyLinkButton/CopyLinkButton.js +33 -0
- package/dist/components/CopyLinkButton/CopyLinkButton.js.map +1 -0
- package/dist/components/CopyLinkButton/CopyLinkButton.scss +6 -0
- package/dist/components/CopyLinkButton/i18n/en.json +4 -0
- package/dist/components/CopyLinkButton/i18n/index.d.ts +2 -0
- package/dist/components/CopyLinkButton/i18n/index.js +5 -0
- package/dist/components/CopyLinkButton/i18n/index.js.map +1 -0
- package/dist/components/DebouncedInput/DebouncedTextInput.d.ts +6 -0
- package/dist/components/DebouncedInput/DebouncedTextInput.js +8 -0
- package/dist/components/DebouncedInput/DebouncedTextInput.js.map +1 -0
- package/dist/components/DoughnutMetrics/DoughnutMetrics.d.ts +3 -1
- package/dist/components/DoughnutMetrics/DoughnutMetrics.js +13 -12
- package/dist/components/DoughnutMetrics/DoughnutMetrics.js.map +1 -1
- package/dist/components/DoughnutMetrics/DoughnutMetrics.scss +14 -7
- package/dist/components/Drawer/Drawer.d.ts +30 -0
- package/dist/components/Drawer/Drawer.js +83 -0
- package/dist/components/Drawer/Drawer.js.map +1 -0
- package/dist/components/Drawer/Drawer.scss +38 -0
- package/dist/components/Drawer/DrawerContext.d.ts +13 -0
- package/dist/components/Drawer/DrawerContext.js +47 -0
- package/dist/components/Drawer/DrawerContext.js.map +1 -0
- package/dist/components/Drawer/index.d.ts +3 -0
- package/dist/components/Drawer/index.js +3 -0
- package/dist/components/Drawer/index.js.map +1 -0
- package/dist/components/EmptyState/EmptyState.scss +3 -0
- package/dist/components/EntityStatusNew/EntityStatus.d.ts +23 -0
- package/dist/components/EntityStatusNew/EntityStatus.js +47 -0
- package/dist/components/EntityStatusNew/EntityStatus.js.map +1 -0
- package/dist/components/EntityStatusNew/EntityStatus.scss +10 -0
- package/dist/components/EntityStatusNew/i18n/en.json +14 -0
- package/dist/components/EntityStatusNew/i18n/index.d.ts +2 -0
- package/dist/components/EntityStatusNew/i18n/index.js +5 -0
- package/dist/components/EntityStatusNew/i18n/index.js.map +1 -0
- package/dist/components/EntityStatusNew/utils.d.ts +2 -0
- package/dist/components/EntityStatusNew/utils.js +23 -0
- package/dist/components/EntityStatusNew/utils.js.map +1 -0
- package/dist/components/HoverPopup/HoverPopup.d.ts +2 -2
- package/dist/components/HoverPopup/HoverPopup.js +3 -3
- package/dist/components/HoverPopup/HoverPopup.js.map +1 -1
- package/dist/components/JsonViewer/JsonViewer.d.ts +7 -3
- package/dist/components/JsonViewer/JsonViewer.js +11 -1
- package/dist/components/JsonViewer/JsonViewer.js.map +1 -1
- package/dist/components/JsonViewer/unipika/unipika.js +9 -1
- package/dist/components/JsonViewer/unipika/unipika.js.map +1 -1
- package/dist/components/MemoryViewer/MemoryViewer.js +2 -2
- package/dist/components/MemoryViewer/MemoryViewer.js.map +1 -1
- package/dist/components/MetricChart/getDefaultDataFormatter.js +4 -11
- package/dist/components/MetricChart/getDefaultDataFormatter.js.map +1 -1
- package/dist/components/MultilineTableHeader/MultilineTableHeader.d.ts +6 -0
- package/dist/components/MultilineTableHeader/MultilineTableHeader.js +11 -0
- package/dist/components/MultilineTableHeader/MultilineTableHeader.js.map +1 -0
- package/dist/components/MultilineTableHeader/MultilineTableHeader.scss +3 -0
- package/dist/components/PaginatedTable/PaginatedTable.d.ts +5 -3
- package/dist/components/PaginatedTable/PaginatedTable.js +17 -8
- package/dist/components/PaginatedTable/PaginatedTable.js.map +1 -1
- package/dist/components/PaginatedTable/PaginatedTable.scss +33 -14
- package/dist/components/PaginatedTable/TableChunk.d.ts +4 -3
- package/dist/components/PaginatedTable/TableChunk.js +10 -5
- package/dist/components/PaginatedTable/TableChunk.js.map +1 -1
- package/dist/components/PaginatedTable/TableHead.js +7 -1
- package/dist/components/PaginatedTable/TableHead.js.map +1 -1
- package/dist/components/PaginatedTable/TableRow.d.ts +2 -4
- package/dist/components/PaginatedTable/TableRow.js +6 -5
- package/dist/components/PaginatedTable/TableRow.js.map +1 -1
- package/dist/components/PaginatedTable/types.d.ts +1 -1
- package/dist/components/PaginatedTable/useScrollBasedChunks.js +7 -0
- package/dist/components/PaginatedTable/useScrollBasedChunks.js.map +1 -1
- package/dist/components/Search/Search.d.ts +2 -1
- package/dist/components/Search/Search.js +3 -21
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/StatusIcon/StatusIcon.js +3 -1
- package/dist/components/StatusIcon/StatusIcon.js.map +1 -1
- package/dist/components/StatusIcon/StatusIcon.scss +6 -0
- package/dist/components/StatusIconNew/StatusIcon.d.ts +7 -0
- package/dist/components/StatusIconNew/StatusIcon.js +19 -0
- package/dist/components/StatusIconNew/StatusIcon.js.map +1 -0
- package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js +12 -1
- package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js.map +1 -1
- package/dist/components/Tags/Tags.d.ts +1 -3
- package/dist/components/Tags/Tags.js +3 -5
- package/dist/components/Tags/Tags.js.map +1 -1
- package/dist/components/VDisk/VDisk.js +1 -1
- package/dist/components/VDisk/VDisk.js.map +1 -1
- package/dist/components/nodesColumns/columns.js +1 -0
- package/dist/components/nodesColumns/columns.js.map +1 -1
- package/dist/containers/Cluster/Cluster.js +8 -6
- package/dist/containers/Cluster/Cluster.js.map +1 -1
- package/dist/containers/Cluster/Cluster.scss +7 -8
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.d.ts +4 -2
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +27 -17
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.scss +2 -8
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.d.ts +8 -0
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.js +41 -0
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.js.map +1 -0
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.scss +14 -0
- package/dist/containers/Cluster/ClusterInfo/utils/utils.d.ts +3 -0
- package/dist/containers/Cluster/ClusterInfo/utils/utils.js +21 -11
- package/dist/containers/Cluster/ClusterInfo/utils/utils.js.map +1 -1
- package/dist/containers/Cluster/{ClusterDashboard/ClusterDashboard.d.ts → ClusterOverview/ClusterOverview.d.ts} +6 -3
- package/dist/containers/Cluster/ClusterOverview/ClusterOverview.js +63 -0
- package/dist/containers/Cluster/ClusterOverview/ClusterOverview.js.map +1 -0
- package/dist/containers/Cluster/ClusterOverview/ClusterOverview.scss +70 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.d.ts +21 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js +32 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js.map +1 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.d.ts +5 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js +30 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js.map +1 -0
- package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/components/ClusterMetricsMemory.d.ts +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js +24 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js.map +1 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.d.ts +7 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js +28 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js.map +1 -0
- package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/components/ClusterMetricsStorage.d.ts +2 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js +24 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js.map +1 -0
- package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/shared.d.ts +6 -3
- package/dist/containers/Cluster/ClusterOverview/shared.js.map +1 -0
- package/dist/containers/Cluster/ClusterOverview/utils.d.ts +19 -0
- package/dist/containers/Cluster/ClusterOverview/utils.js +32 -0
- package/dist/containers/Cluster/ClusterOverview/utils.js.map +1 -0
- package/dist/containers/Cluster/i18n/en.json +19 -9
- package/dist/containers/Cluster/i18n/index.d.ts +1 -1
- package/dist/containers/Cluster/utils.d.ts +2 -4
- package/dist/containers/Cluster/utils.js +9 -6
- package/dist/containers/Cluster/utils.js.map +1 -1
- package/dist/containers/Header/Header.js +4 -5
- package/dist/containers/Header/Header.js.map +1 -1
- package/dist/containers/Header/breadcrumbs.js +1 -4
- package/dist/containers/Header/breadcrumbs.js.map +1 -1
- package/dist/containers/Nodes/NodesTable.js +3 -2
- package/dist/containers/Nodes/NodesTable.js.map +1 -1
- package/dist/containers/Nodes/shared.d.ts +1 -2
- package/dist/containers/Nodes/shared.js +0 -9
- package/dist/containers/Nodes/shared.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js +3 -3
- package/dist/containers/PDiskPage/PDiskSpaceDistribution/PDiskSpaceDistribution.js.map +1 -1
- package/dist/containers/Storage/EmptyFilter/EmptyFilter.d.ts +2 -1
- package/dist/containers/Storage/EmptyFilter/EmptyFilter.js +1 -1
- package/dist/containers/Storage/EmptyFilter/EmptyFilter.js.map +1 -1
- package/dist/containers/Storage/PDisk/PDisk.d.ts +2 -1
- package/dist/containers/Storage/PDisk/PDisk.js +2 -2
- package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
- package/dist/containers/Storage/PDisk/PDisk.scss +5 -1
- package/dist/containers/Storage/PaginatedStorageGroups.js +2 -1
- package/dist/containers/Storage/PaginatedStorageGroups.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageNodes.js +19 -5
- package/dist/containers/Storage/PaginatedStorageNodes.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/PaginatedStorageGroupsTable.js +1 -1
- package/dist/containers/Storage/StorageGroups/PaginatedStorageGroupsTable.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.d.ts +4 -3
- package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.js +2 -2
- package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/columns/StorageNodesColumns.scss +1 -4
- package/dist/containers/Storage/StorageNodes/columns/columns.d.ts +1 -1
- package/dist/containers/Storage/StorageNodes/columns/columns.js +6 -11
- package/dist/containers/Storage/StorageNodes/columns/columns.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/columns/hooks.d.ts +1 -1
- package/dist/containers/Storage/StorageNodes/columns/hooks.js +8 -3
- package/dist/containers/Storage/StorageNodes/columns/hooks.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/columns/types.d.ts +5 -0
- package/dist/containers/Storage/StorageNodes/getNodes.js +1 -0
- package/dist/containers/Storage/StorageNodes/getNodes.js.map +1 -1
- package/dist/containers/Storage/shared.d.ts +0 -2
- package/dist/containers/Storage/shared.js +0 -9
- package/dist/containers/Storage/shared.js.map +1 -1
- package/dist/containers/Storage/types.d.ts +8 -0
- package/dist/containers/Storage/utils/index.d.ts +1 -0
- package/dist/containers/Storage/utils/index.js +1 -0
- package/dist/containers/Storage/utils/index.js.map +1 -1
- package/dist/containers/Storage/utils/useStorageColumnsSettings.d.ts +6 -0
- package/dist/containers/Storage/utils/useStorageColumnsSettings.js +35 -0
- package/dist/containers/Storage/utils/useStorageColumnsSettings.js.map +1 -0
- package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js +16 -17
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Diagnostics.scss +8 -2
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +6 -33
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +40 -6
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.d.ts +0 -5
- package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.js +0 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.scss +0 -4
- package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js +2 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.scss +1 -15
- package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js +24 -10
- package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +3 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js +2 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js +3 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/columns/columns.js +7 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/columns/columns.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/columns/constants.js +1 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/columns/constants.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.d.ts +9 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.js +37 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.d.ts +10 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.js +50 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.d.ts +9 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.js +40 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/utils.d.ts +0 -10
- package/dist/containers/Tenant/Diagnostics/TopQueries/utils.js +0 -29
- package/dist/containers/Tenant/Diagnostics/TopQueries/utils.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.js +14 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.d.ts +9 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js +140 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.scss +28 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.d.ts +14 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.js +68 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.js +122 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/Columns.scss +22 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +154 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/getData.d.ts +15 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/getData.js +54 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/getData.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/i18n/en.json +28 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.js +5 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.d.ts +11 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.js +34 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.js +51 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.d.ts +30 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.js +30 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.js.map +1 -0
- package/dist/containers/Tenant/ObjectSummary/ObjectTree.js +8 -2
- package/dist/containers/Tenant/ObjectSummary/ObjectTree.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js +2 -3
- package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js.map +1 -1
- package/dist/containers/Tenant/TenantPages.d.ts +2 -1
- package/dist/containers/Tenant/TenantPages.js.map +1 -1
- package/dist/containers/Tenant/utils/schema.d.ts +1 -0
- package/dist/containers/Tenant/utils/schema.js +1 -0
- package/dist/containers/Tenant/utils/schema.js.map +1 -1
- package/dist/containers/Tenants/Tenants.js +1 -1
- package/dist/containers/Tenants/Tenants.js.map +1 -1
- package/dist/containers/Tenants/Tenants.scss +0 -4
- package/dist/containers/UserSettings/i18n/en.json +1 -0
- package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
- package/dist/containers/UserSettings/settings.d.ts +1 -0
- package/dist/containers/UserSettings/settings.js +11 -2
- package/dist/containers/UserSettings/settings.js.map +1 -1
- package/dist/services/api/meta.d.ts +4 -1
- package/dist/services/api/meta.js +2 -1
- package/dist/services/api/meta.js.map +1 -1
- package/dist/services/api/viewer.d.ts +5 -2
- package/dist/services/api/viewer.js +7 -1
- package/dist/services/api/viewer.js.map +1 -1
- package/dist/services/settings.d.ts +2 -0
- package/dist/services/settings.js +3 -1
- package/dist/services/settings.js.map +1 -1
- package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
- package/dist/store/reducers/capabilities/hooks.js +3 -0
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/cluster/cluster.d.ts +2 -2
- package/dist/store/reducers/cluster/cluster.js +13 -6
- package/dist/store/reducers/cluster/cluster.js.map +1 -1
- package/dist/store/reducers/executeTopQueries/executeTopQueries.js +4 -2
- package/dist/store/reducers/executeTopQueries/executeTopQueries.js.map +1 -1
- package/dist/store/reducers/storage/types.d.ts +6 -2
- package/dist/store/reducers/storage/utils.d.ts +2 -2
- package/dist/store/reducers/storage/utils.js +10 -9
- package/dist/store/reducers/storage/utils.js.map +1 -1
- package/dist/store/reducers/tenant/constants.d.ts +1 -0
- package/dist/store/reducers/tenant/constants.js +1 -0
- package/dist/store/reducers/tenant/constants.js.map +1 -1
- package/dist/store/reducers/tenant/tenant.d.ts +1 -0
- package/dist/store/reducers/tenant/tenant.js +8 -2
- package/dist/store/reducers/tenant/tenant.js.map +1 -1
- package/dist/store/reducers/tenants/tenants.js +2 -2
- package/dist/store/reducers/tenants/tenants.js.map +1 -1
- package/dist/store/reducers/topic.d.ts +12 -0
- package/dist/store/reducers/topic.js +16 -0
- package/dist/store/reducers/topic.js.map +1 -1
- package/dist/styles/mixins.scss +0 -20
- package/dist/types/api/capabilities.d.ts +1 -1
- package/dist/types/api/cluster.d.ts +8 -1
- package/dist/types/api/cluster.js +7 -3
- package/dist/types/api/cluster.js.map +1 -1
- package/dist/types/api/topic.d.ts +117 -0
- package/dist/utils/constants.d.ts +2 -0
- package/dist/utils/constants.js +2 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/dataFormatters/dataFormatters.js +1 -1
- package/dist/utils/dataFormatters/dataFormatters.js.map +1 -1
- package/dist/utils/hooks/useDebouncedValue.d.ts +5 -0
- package/dist/utils/hooks/useDebouncedValue.js +22 -0
- package/dist/utils/hooks/useDebouncedValue.js.map +1 -0
- package/dist/utils/renderPaginatedTableErrorMessage.d.ts +2 -0
- package/dist/utils/renderPaginatedTableErrorMessage.js +10 -0
- package/dist/utils/renderPaginatedTableErrorMessage.js.map +1 -0
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.js +7 -0
- package/dist/utils/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/icons/user-check.svg +0 -1
- package/dist/components/Tag/Tag.d.ts +0 -9
- package/dist/components/Tag/Tag.js +0 -8
- package/dist/components/Tag/Tag.js.map +0 -1
- package/dist/components/Tag/Tag.scss +0 -18
- package/dist/components/Tag/index.d.ts +0 -1
- package/dist/components/Tag/index.js +0 -2
- package/dist/components/Tag/index.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.js +0 -71
- package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.scss +0 -52
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.d.ts +0 -17
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.js +0 -20
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.d.ts +0 -5
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.js +0 -26
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsMemory.js +0 -20
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsMemory.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsStorage.js +0 -20
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsStorage.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/shared.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/utils.d.ts +0 -19
- package/dist/containers/Cluster/ClusterDashboard/utils.js +0 -63
- package/dist/containers/Cluster/ClusterDashboard/utils.js.map +0 -1
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.d.ts +0 -8
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js +0 -42
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js.map +0 -1
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.scss +0 -6
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.d.ts +0 -8
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.js +0 -8
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.js.map +0 -1
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.scss +0 -17
- /package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/shared.js +0 -0
@@ -0,0 +1,70 @@
|
|
1
|
+
@use '../../../styles/mixins.scss';
|
2
|
+
|
3
|
+
.ydb-cluster-dashboard {
|
4
|
+
&__dashboard-wrapper {
|
5
|
+
gap: var(--g-spacing-6);
|
6
|
+
|
7
|
+
padding-top: var(--g-spacing-4);
|
8
|
+
}
|
9
|
+
|
10
|
+
&__dashboard-wrapper_collapsed {
|
11
|
+
gap: var(--g-spacing-1);
|
12
|
+
|
13
|
+
margin-right: var(--g-spacing-4);
|
14
|
+
margin-left: auto;
|
15
|
+
padding-top: unset;
|
16
|
+
}
|
17
|
+
|
18
|
+
&__error {
|
19
|
+
@include mixins.body-2-typography();
|
20
|
+
}
|
21
|
+
|
22
|
+
&__skeleton-wrapper {
|
23
|
+
padding: unset;
|
24
|
+
|
25
|
+
border: unset;
|
26
|
+
}
|
27
|
+
&__skeleton {
|
28
|
+
height: 100%;
|
29
|
+
}
|
30
|
+
&__overview-wrapper {
|
31
|
+
--g-button-background-color-hover: var(--g-color-base-background);
|
32
|
+
--g-button-padding: 0;
|
33
|
+
position: sticky;
|
34
|
+
left: 0;
|
35
|
+
|
36
|
+
padding: var(--g-spacing-4);
|
37
|
+
|
38
|
+
border: 1px solid var(--g-color-line-generic);
|
39
|
+
border-radius: 5px;
|
40
|
+
|
41
|
+
.g-button:active {
|
42
|
+
transform: unset;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
&__overview-wrapper_collapsed {
|
47
|
+
&:hover {
|
48
|
+
border-color: var(--g-color-line-generic-hover);
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
&__disclosure-summary {
|
53
|
+
display: flex;
|
54
|
+
justify-content: space-between;
|
55
|
+
align-items: center;
|
56
|
+
|
57
|
+
width: 100%;
|
58
|
+
height: 28px;
|
59
|
+
|
60
|
+
cursor: pointer;
|
61
|
+
.g-button__text {
|
62
|
+
width: 100%;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
&__card {
|
67
|
+
min-width: 280px;
|
68
|
+
height: 132px;
|
69
|
+
}
|
70
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import type { ProgressStatus } from '../../../../utils/progress';
|
3
|
+
interface ClusterMetricsDougnutCardProps extends ClusterMetricsCommonCardProps {
|
4
|
+
status: ProgressStatus;
|
5
|
+
fillWidth: number;
|
6
|
+
legend: {
|
7
|
+
main?: string;
|
8
|
+
secondary?: string;
|
9
|
+
note?: React.ReactNode;
|
10
|
+
};
|
11
|
+
}
|
12
|
+
interface ClusterMetricsCommonCardProps {
|
13
|
+
children?: React.ReactNode;
|
14
|
+
title?: string;
|
15
|
+
className?: string;
|
16
|
+
collapsed?: boolean;
|
17
|
+
}
|
18
|
+
export declare function ClusterMetricsCard({ children, className }: ClusterMetricsCommonCardProps): import("react/jsx-runtime").JSX.Element;
|
19
|
+
export declare function ClusterMetricsCardContent({ title, children, legend, collapsed, ...rest }: ClusterMetricsDougnutCardProps): import("react/jsx-runtime").JSX.Element;
|
20
|
+
export declare function ClusterDashboardSkeleton(): import("react/jsx-runtime").JSX.Element;
|
21
|
+
export {};
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { Flex } from '@gravity-ui/uikit';
|
4
|
+
import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
|
5
|
+
import { EntityStatus } from '../../../../components/EntityStatusNew/EntityStatus';
|
6
|
+
import { Skeleton } from '../../../../components/Skeleton/Skeleton';
|
7
|
+
import { EFlag } from '../../../../types/api/enums';
|
8
|
+
import { b } from '../shared';
|
9
|
+
const ProgressStatusToEFlag = {
|
10
|
+
good: EFlag.Green,
|
11
|
+
warning: EFlag.Yellow,
|
12
|
+
danger: EFlag.Red,
|
13
|
+
};
|
14
|
+
export function ClusterMetricsCard({ children, className }) {
|
15
|
+
return (_jsx(Flex, { gap: "6", alignItems: "center", className: b('card', className), children: children }));
|
16
|
+
}
|
17
|
+
export function ClusterMetricsCardContent({ title, children, legend, collapsed, ...rest }) {
|
18
|
+
const { main: mainLegend, secondary: secondaryLegend, note: legendNote } = legend;
|
19
|
+
if (collapsed) {
|
20
|
+
const { status, fillWidth } = rest;
|
21
|
+
const normalizedFillWidth = fillWidth.toFixed(fillWidth > 0 ? 0 : 1);
|
22
|
+
return (_jsx(EntityStatus.Label, { withStatusName: false, status: ProgressStatusToEFlag[status], children: `${title} : ${normalizedFillWidth}%` }));
|
23
|
+
}
|
24
|
+
return (_jsxs(ClusterMetricsCard, { children: [_jsx(DoughnutMetrics, { ...rest, children: children }), _jsxs("div", { className: b('legend-wrapper'), children: [mainLegend && _jsx(DoughnutMetrics.Legend, { children: mainLegend }), secondaryLegend && (_jsx(DoughnutMetrics.Legend, { color: "secondary", note: legendNote, variant: "body-1", children: secondaryLegend }))] })] }));
|
25
|
+
}
|
26
|
+
function ClusterMetricsCardSkeleton() {
|
27
|
+
return (_jsx(ClusterMetricsCard, { className: b('skeleton-wrapper'), children: _jsx(Skeleton, { className: b('skeleton') }) }));
|
28
|
+
}
|
29
|
+
export function ClusterDashboardSkeleton() {
|
30
|
+
return (_jsxs(React.Fragment, { children: [_jsx(ClusterMetricsCardSkeleton, {}), _jsx(ClusterMetricsCardSkeleton, {}), _jsx(ClusterMetricsCardSkeleton, {})] }));
|
31
|
+
}
|
32
|
+
//# sourceMappingURL=ClusterMetricsCard.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterMetricsCard.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,YAAY,EAAC,MAAM,qDAAqD,CAAC;AACjF,OAAO,EAAC,QAAQ,EAAC,MAAM,0CAA0C,CAAC;AAClE,OAAO,EAAC,KAAK,EAAC,MAAM,6BAA6B,CAAC;AAElD,OAAO,EAAC,CAAC,EAAC,MAAM,WAAW,CAAC;AAE5B,MAAM,qBAAqB,GAAkC;IACzD,IAAI,EAAE,KAAK,CAAC,KAAK;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,MAAM,EAAE,KAAK,CAAC,GAAG;CACpB,CAAC;AAeF,MAAM,UAAU,kBAAkB,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAgC;IACnF,OAAO,CACH,KAAC,IAAI,IAAC,GAAG,EAAC,GAAG,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,YAC5D,QAAQ,GACN,CACV,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EACtC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACsB;IAC7B,MAAM,EAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC;IAEhF,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,EAAC,MAAM,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC;QACjC,MAAM,mBAAmB,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,OAAO,CACH,KAAC,YAAY,CAAC,KAAK,IAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,YAC3E,GAAG,KAAK,MAAM,mBAAmB,GAAG,GACpB,CACxB,CAAC;IACN,CAAC;IACD,OAAO,CACH,MAAC,kBAAkB,eACf,KAAC,eAAe,OAAK,IAAI,YAAG,QAAQ,GAAmB,EACvD,eAAK,SAAS,EAAE,CAAC,CAAC,gBAAgB,CAAC,aAC9B,UAAU,IAAI,KAAC,eAAe,CAAC,MAAM,cAAE,UAAU,GAA0B,EAC3E,eAAe,IAAI,CAChB,KAAC,eAAe,CAAC,MAAM,IAAC,KAAK,EAAC,WAAW,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAC,QAAQ,YACvE,eAAe,GACK,CAC5B,IACC,IACW,CACxB,CAAC;AACN,CAAC;AAED,SAAS,0BAA0B;IAC/B,OAAO,CACH,KAAC,kBAAkB,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,YAChD,KAAC,QAAQ,IAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,GAAI,GACrB,CACxB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,wBAAwB;IACpC,OAAO,CACH,MAAC,KAAK,CAAC,QAAQ,eACX,KAAC,0BAA0B,KAAG,EAC9B,KAAC,0BAA0B,KAAG,EAC9B,KAAC,0BAA0B,KAAG,IACjB,CACpB,CAAC;AACN,CAAC"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import type { ClusterMetricsCommonProps } from '../shared';
|
2
|
+
interface ClusterMetricsCoresProps extends ClusterMetricsCommonProps {
|
3
|
+
}
|
4
|
+
export declare function ClusterMetricsCores({ collapsed, value, capacity, ...rest }: ClusterMetricsCoresProps): import("react/jsx-runtime").JSX.Element;
|
5
|
+
export {};
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
|
3
|
+
import { formatNumber, formatNumericValues } from '../../../../utils/dataFormatters/dataFormatters';
|
4
|
+
import i18n from '../../i18n';
|
5
|
+
import { getDiagramValues } from '../utils';
|
6
|
+
import { ClusterMetricsCardContent } from './ClusterMetricsCard';
|
7
|
+
function formatCoresLegend({ value, capacity }) {
|
8
|
+
let formatted = [];
|
9
|
+
if (capacity < 10000) {
|
10
|
+
formatted = [formatNumber(Math.round(value)), formatNumber(Math.round(capacity))];
|
11
|
+
}
|
12
|
+
else {
|
13
|
+
formatted = formatNumericValues(value, capacity, undefined, '', true);
|
14
|
+
}
|
15
|
+
return `${formatted[0]} ${i18n('context_of')} ${formatted[1]} ${i18n('context_cores')}`;
|
16
|
+
}
|
17
|
+
export function ClusterMetricsCores({ collapsed, value, capacity, ...rest }) {
|
18
|
+
const { status, percents, legend, fill } = getDiagramValues({
|
19
|
+
value,
|
20
|
+
capacity,
|
21
|
+
legendFormatter: formatCoresLegend,
|
22
|
+
...rest,
|
23
|
+
});
|
24
|
+
return (_jsx(ClusterMetricsCardContent, { collapsed: collapsed, status: status, fillWidth: fill, title: i18n('title_cpu'), legend: {
|
25
|
+
main: legend,
|
26
|
+
secondary: i18n('context_cpu'),
|
27
|
+
note: i18n('context_cpu-description'),
|
28
|
+
}, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=ClusterMetricsCores.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterMetricsCores.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,YAAY,EAAE,mBAAmB,EAAC,MAAM,iDAAiD,CAAC;AAClG,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAI/D,SAAS,iBAAiB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAoC;IAC3E,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAM,EAAE,CAAC;QACpB,SAAS,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACJ,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAChC,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACgB;IACvB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,gBAAgB,CAAC;QACtD,KAAK;QACL,QAAQ;QACR,eAAe,EAAE,iBAAiB;QAClC,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,yBAAyB,IACtB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,EACxB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAC;SACxC,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { ClusterMetricsCommonProps } from '../shared';
|
2
2
|
interface ClusterMetricsMemoryProps extends ClusterMetricsCommonProps {
|
3
3
|
}
|
4
|
-
export declare function ClusterMetricsMemory({ value, capacity, ...rest }: ClusterMetricsMemoryProps): import("react/jsx-runtime").JSX.Element;
|
4
|
+
export declare function ClusterMetricsMemory({ value, capacity, collapsed, ...rest }: ClusterMetricsMemoryProps): import("react/jsx-runtime").JSX.Element;
|
5
5
|
export {};
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
|
3
|
+
import { formatStorageValues } from '../../../../utils/dataFormatters/dataFormatters';
|
4
|
+
import i18n from '../../i18n';
|
5
|
+
import { getDiagramValues } from '../utils';
|
6
|
+
import { ClusterMetricsCardContent } from './ClusterMetricsCard';
|
7
|
+
function formatStorageLegend({ value, capacity }) {
|
8
|
+
const formatted = formatStorageValues(value, capacity, undefined, '\n');
|
9
|
+
return `${formatted[0]} ${i18n('context_of')} ${formatted[1]}`;
|
10
|
+
}
|
11
|
+
export function ClusterMetricsMemory({ value, capacity, collapsed, ...rest }) {
|
12
|
+
const { status, percents, legend, fill } = getDiagramValues({
|
13
|
+
value,
|
14
|
+
capacity,
|
15
|
+
legendFormatter: formatStorageLegend,
|
16
|
+
...rest,
|
17
|
+
});
|
18
|
+
return (_jsx(ClusterMetricsCardContent, { status: status, fillWidth: fill, title: i18n('title_memory'), collapsed: collapsed, legend: {
|
19
|
+
main: legend,
|
20
|
+
secondary: i18n('context_memory'),
|
21
|
+
note: i18n('context_memory-description'),
|
22
|
+
}, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=ClusterMetricsMemory.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterMetricsMemory.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,mBAAmB,EAAC,MAAM,iDAAiD,CAAC;AACpF,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAI/D,SAAS,mBAAmB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAoC;IAC7E,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxE,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACiB;IACxB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,gBAAgB,CAAC;QACtD,KAAK;QACL,QAAQ;QACR,eAAe,EAAE,mBAAmB;QACpC,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,yBAAyB,IACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,EAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,4BAA4B,CAAC;SAC3C,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { ClusterMetricsBaseProps } from '../shared';
|
2
|
+
interface ClusterMetricsNetworkProps extends ClusterMetricsBaseProps {
|
3
|
+
percentsValue: number;
|
4
|
+
throughput?: string;
|
5
|
+
}
|
6
|
+
export declare function ClusterMetricsNetwork({ percentsValue, throughput, collapsed, ...rest }: ClusterMetricsNetworkProps): import("react/jsx-runtime").JSX.Element | null;
|
7
|
+
export {};
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
|
3
|
+
import { formatBytes } from '../../../../utils/bytesParsers';
|
4
|
+
import { SHOW_NETWORK_UTILIZATION } from '../../../../utils/constants';
|
5
|
+
import { useSetting } from '../../../../utils/hooks/useSetting';
|
6
|
+
import i18n from '../../i18n';
|
7
|
+
import { calculateBaseDiagramValues } from '../utils';
|
8
|
+
import { ClusterMetricsCardContent } from './ClusterMetricsCard';
|
9
|
+
function formatStorageLegend(value) {
|
10
|
+
return formatBytes({ value, withSpeedLabel: true });
|
11
|
+
}
|
12
|
+
export function ClusterMetricsNetwork({ percentsValue, throughput, collapsed, ...rest }) {
|
13
|
+
const [showNetworkUtilization] = useSetting(SHOW_NETWORK_UTILIZATION);
|
14
|
+
if (!showNetworkUtilization) {
|
15
|
+
return null;
|
16
|
+
}
|
17
|
+
const { status, percents, fill } = calculateBaseDiagramValues({
|
18
|
+
fillWidth: percentsValue * 100,
|
19
|
+
...rest,
|
20
|
+
});
|
21
|
+
const legend = formatStorageLegend(throughput);
|
22
|
+
return (_jsx(ClusterMetricsCardContent, { status: status, fillWidth: fill, title: i18n('title_network'), collapsed: collapsed, legend: {
|
23
|
+
main: legend,
|
24
|
+
secondary: i18n('context_network'),
|
25
|
+
note: i18n('context_network-description'),
|
26
|
+
}, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
|
27
|
+
}
|
28
|
+
//# sourceMappingURL=ClusterMetricsNetwork.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterMetricsNetwork.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAC,UAAU,EAAC,MAAM,oCAAoC,CAAC;AAC9D,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,0BAA0B,EAAC,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAO/D,SAAS,mBAAmB,CAAC,KAAc;IACvC,OAAO,WAAW,CAAC,EAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAClC,aAAa,EACb,UAAU,EACV,SAAS,EACT,GAAG,IAAI,EACkB;IACzB,MAAM,CAAC,sBAAsB,CAAC,GAAG,UAAU,CAAU,wBAAwB,CAAC,CAAC;IAC/E,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAC,GAAG,0BAA0B,CAAC;QACxD,SAAS,EAAE,aAAa,GAAG,GAAG;QAC9B,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAE/C,OAAO,CACH,KAAC,yBAAyB,IACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC;SAC5C,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { ClusterMetricsCommonProps } from '../shared';
|
2
2
|
interface ClusterMetricsStorageProps extends ClusterMetricsCommonProps {
|
3
|
+
groups: number;
|
3
4
|
}
|
4
|
-
export declare function ClusterMetricsStorage({ value, capacity, ...rest }: ClusterMetricsStorageProps): import("react/jsx-runtime").JSX.Element;
|
5
|
+
export declare function ClusterMetricsStorage({ value, capacity, groups, collapsed, ...rest }: ClusterMetricsStorageProps): import("react/jsx-runtime").JSX.Element;
|
5
6
|
export {};
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
|
3
|
+
import { formatStorageValues } from '../../../../utils/dataFormatters/dataFormatters';
|
4
|
+
import i18n from '../../i18n';
|
5
|
+
import { getDiagramValues } from '../utils';
|
6
|
+
import { ClusterMetricsCardContent } from './ClusterMetricsCard';
|
7
|
+
function formatStorageLegend({ value, capacity }) {
|
8
|
+
const formatted = formatStorageValues(value, capacity, undefined, '\n');
|
9
|
+
return `${formatted[0]} ${i18n('context_of')} ${formatted[1]}`;
|
10
|
+
}
|
11
|
+
export function ClusterMetricsStorage({ value, capacity, groups, collapsed, ...rest }) {
|
12
|
+
const { status, percents, legend, fill } = getDiagramValues({
|
13
|
+
value,
|
14
|
+
capacity,
|
15
|
+
legendFormatter: formatStorageLegend,
|
16
|
+
...rest,
|
17
|
+
});
|
18
|
+
return (_jsx(ClusterMetricsCardContent, { status: status, fillWidth: fill, title: i18n('title_storage'), collapsed: collapsed, legend: {
|
19
|
+
main: legend,
|
20
|
+
secondary: i18n('context_storage', { count: groups }),
|
21
|
+
note: i18n('context_storage-description'),
|
22
|
+
}, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=ClusterMetricsStorage.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterMetricsStorage.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,mBAAmB,EAAC,MAAM,iDAAiD,CAAC;AACpF,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAM/D,SAAS,mBAAmB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAoC;IAC7E,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxE,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACkB;IACzB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,gBAAgB,CAAC;QACtD,KAAK;QACL,QAAQ;QACR,eAAe,EAAE,mBAAmB;QACpC,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,yBAAyB,IACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC;SAC5C,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
|
@@ -1,9 +1,12 @@
|
|
1
1
|
export declare const b: import("@bem-react/classname").ClassNameFormatter;
|
2
|
-
export interface
|
3
|
-
value: number | string;
|
4
|
-
capacity: number | string;
|
2
|
+
export interface ClusterMetricsBaseProps {
|
5
3
|
colorizeProgress?: boolean;
|
6
4
|
inverseColorize?: boolean;
|
7
5
|
warningThreshold?: number;
|
8
6
|
dangerThreshold?: number;
|
7
|
+
collapsed?: boolean;
|
8
|
+
}
|
9
|
+
export interface ClusterMetricsCommonProps extends ClusterMetricsBaseProps {
|
10
|
+
value: number | string;
|
11
|
+
capacity: number | string;
|
9
12
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterOverview/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,mBAAmB,CAAC;AACrC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import type { ClusterMetricsBaseProps, ClusterMetricsCommonProps } from './shared';
|
2
|
+
export declare function calculateBaseDiagramValues({ colorizeProgress, warningThreshold, dangerThreshold, inverseColorize, fillWidth, }: ClusterMetricsBaseProps & {
|
3
|
+
fillWidth: number;
|
4
|
+
}): {
|
5
|
+
status: import("../../../utils/progress").ProgressStatus;
|
6
|
+
percents: string;
|
7
|
+
fill: number;
|
8
|
+
};
|
9
|
+
export declare function getDiagramValues({ value, capacity, legendFormatter, ...rest }: ClusterMetricsCommonProps & {
|
10
|
+
legendFormatter: (params: {
|
11
|
+
value: number;
|
12
|
+
capacity: number;
|
13
|
+
}) => string;
|
14
|
+
}): {
|
15
|
+
legend: string;
|
16
|
+
status: import("../../../utils/progress").ProgressStatus;
|
17
|
+
percents: string;
|
18
|
+
fill: number;
|
19
|
+
};
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { formatPercent } from '../../../utils/dataFormatters/dataFormatters';
|
2
|
+
import { calculateProgressStatus } from '../../../utils/progress';
|
3
|
+
export function calculateBaseDiagramValues({ colorizeProgress = true, warningThreshold, dangerThreshold, inverseColorize = false, fillWidth, }) {
|
4
|
+
const normalizedFillWidth = Math.max(fillWidth, 0.5);
|
5
|
+
const status = calculateProgressStatus({
|
6
|
+
fillWidth,
|
7
|
+
warningThreshold,
|
8
|
+
dangerThreshold,
|
9
|
+
colorizeProgress,
|
10
|
+
inverseColorize,
|
11
|
+
});
|
12
|
+
const percents = formatPercent(fillWidth / 100);
|
13
|
+
return { status, percents, fill: normalizedFillWidth };
|
14
|
+
}
|
15
|
+
export function getDiagramValues({ value, capacity, legendFormatter, ...rest }) {
|
16
|
+
const parsedValue = parseFloat(String(value));
|
17
|
+
const parsedCapacity = parseFloat(String(capacity));
|
18
|
+
let fillWidth = (parsedValue / parsedCapacity) * 100 || 0;
|
19
|
+
fillWidth = fillWidth > 100 ? 100 : fillWidth;
|
20
|
+
const legend = legendFormatter({
|
21
|
+
value: parsedValue,
|
22
|
+
capacity: parsedCapacity,
|
23
|
+
});
|
24
|
+
return {
|
25
|
+
...calculateBaseDiagramValues({
|
26
|
+
fillWidth,
|
27
|
+
...rest,
|
28
|
+
}),
|
29
|
+
legend,
|
30
|
+
};
|
31
|
+
}
|
32
|
+
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterOverview/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAC,uBAAuB,EAAC,MAAM,yBAAyB,CAAC;AAIhE,MAAM,UAAU,0BAA0B,CAAC,EACvC,gBAAgB,GAAG,IAAI,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAAG,KAAK,EACvB,SAAS,GACmC;IAC5C,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,uBAAuB,CAAC;QACnC,SAAS;QACT,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,eAAe;KAClB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IAEhD,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,eAAe,EACf,GAAG,IAAI,EAGV;IACG,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,IAAI,SAAS,GAAG,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAC1D,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,MAAM,MAAM,GAAG,eAAe,CAAC;QAC3B,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,cAAc;KAC3B,CAAC,CAAC;IACH,OAAO;QACH,GAAG,0BAA0B,CAAC;YAC1B,SAAS;YACT,GAAG,IAAI;SACV,CAAC;QACF,MAAM;KACT,CAAC;AACN,CAAC"}
|
@@ -1,13 +1,10 @@
|
|
1
1
|
{
|
2
|
-
"disk-type": "Disk Type",
|
3
2
|
"erasure": "Erasure",
|
4
3
|
"allocated": "Allocated",
|
5
4
|
"available": "Available",
|
6
5
|
"usage": "Usage",
|
7
6
|
"label_nodes-state": "Nodes state",
|
8
7
|
"label_dc": "Nodes data centers",
|
9
|
-
"storage-size": "Storage size",
|
10
|
-
"storage-groups": "Storage groups, {{diskType}}",
|
11
8
|
"links": "Links",
|
12
9
|
"link_cores": "Coredumps",
|
13
10
|
"link_logging": "Logging",
|
@@ -15,12 +12,25 @@
|
|
15
12
|
"context_cores": "cores",
|
16
13
|
"title_cpu": "CPU",
|
17
14
|
"title_storage": "Storage",
|
15
|
+
"title_storage-groups": "Storage Groups",
|
18
16
|
"title_memory": "Memory",
|
19
|
-
"
|
17
|
+
"title_network": "Network",
|
20
18
|
"title_links": "Links",
|
21
|
-
"
|
22
|
-
"
|
23
|
-
"
|
24
|
-
"
|
25
|
-
"
|
19
|
+
"title_details": "Details",
|
20
|
+
"label_overview": "Overview",
|
21
|
+
"label_load": "Load",
|
22
|
+
"context_of": "of",
|
23
|
+
"context_cpu": "CPU load",
|
24
|
+
"context_memory": "Memory used",
|
25
|
+
"context_storage": [
|
26
|
+
"Storage: {{count}} group",
|
27
|
+
"Storage: {{count}} groups",
|
28
|
+
"Storage: {{count}} groups",
|
29
|
+
"Storage: {{count}} groups"
|
30
|
+
],
|
31
|
+
"context_network": "Network Evaluation",
|
32
|
+
"context_cpu-description": "CPU load is calculated as the cumulative usage across all actor system pools on all nodes in the cluster",
|
33
|
+
"context_memory-description": "Memory usage is the total memory consumed by all nodes in the cluster",
|
34
|
+
"context_storage-description": "Storage usage is a cumulative usage of raw disk space of all media types",
|
35
|
+
"context_network-description": "Network usage is the average outgoing bandwidth usage across all nodes in the cluster"
|
26
36
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
declare const _default: (key: "links" | "erasure" | "usage" | "
|
1
|
+
declare const _default: (key: "links" | "erasure" | "usage" | "title_storage" | "allocated" | "available" | "label_nodes-state" | "label_dc" | "link_cores" | "link_logging" | "link_slo-logs" | "context_cores" | "title_cpu" | "title_storage-groups" | "title_memory" | "title_network" | "title_links" | "title_details" | "label_overview" | "label_load" | "context_of" | "context_cpu" | "context_memory" | "context_storage" | "context_network" | "context_cpu-description" | "context_memory-description" | "context_storage-description" | "context_network-description", params?: import("@gravity-ui/i18n").Params) => string;
|
2
2
|
export default _default;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { CreateHrefOptions } from '../../routes';
|
2
|
+
import type { ClusterGroupsStats } from '../../store/reducers/cluster/types';
|
2
3
|
import type { ValueOf } from '../../types/common';
|
3
4
|
export declare const clusterTabsIds: {
|
4
|
-
readonly overview: "overview";
|
5
5
|
readonly tenants: "tenants";
|
6
6
|
readonly nodes: "nodes";
|
7
7
|
readonly storage: "storage";
|
@@ -10,9 +10,6 @@ export declare const clusterTabsIds: {
|
|
10
10
|
};
|
11
11
|
export type ClusterTab = ValueOf<typeof clusterTabsIds>;
|
12
12
|
export declare const clusterTabs: ({
|
13
|
-
id: "overview";
|
14
|
-
title: string;
|
15
|
-
} | {
|
16
13
|
id: "tenants";
|
17
14
|
title: string;
|
18
15
|
} | {
|
@@ -30,3 +27,4 @@ export declare const clusterTabs: ({
|
|
30
27
|
})[];
|
31
28
|
export declare function isClusterTab(tab: any): tab is ClusterTab;
|
32
29
|
export declare const getClusterPath: (activeTab?: ClusterTab, query?: {}, options?: CreateHrefOptions) => string;
|
30
|
+
export declare const getTotalStorageGroupsUsed: (groupStats: ClusterGroupsStats) => number;
|
@@ -1,16 +1,11 @@
|
|
1
1
|
import routes, { createHref } from '../../routes';
|
2
2
|
export const clusterTabsIds = {
|
3
|
-
overview: 'overview',
|
4
3
|
tenants: 'tenants',
|
5
4
|
nodes: 'nodes',
|
6
5
|
storage: 'storage',
|
7
6
|
versions: 'versions',
|
8
7
|
tablets: 'tablets',
|
9
8
|
};
|
10
|
-
const overview = {
|
11
|
-
id: clusterTabsIds.overview,
|
12
|
-
title: 'Overview',
|
13
|
-
};
|
14
9
|
const tenants = {
|
15
10
|
id: clusterTabsIds.tenants,
|
16
11
|
title: 'Databases',
|
@@ -31,11 +26,19 @@ const tablets = {
|
|
31
26
|
id: clusterTabsIds.tablets,
|
32
27
|
title: 'Tablets',
|
33
28
|
};
|
34
|
-
export const clusterTabs = [
|
29
|
+
export const clusterTabs = [tenants, nodes, storage, tablets, versions];
|
35
30
|
export function isClusterTab(tab) {
|
36
31
|
return Object.values(clusterTabsIds).includes(tab);
|
37
32
|
}
|
38
33
|
export const getClusterPath = (activeTab, query = {}, options) => {
|
39
34
|
return createHref(routes.cluster, activeTab ? { activeTab } : undefined, query, options);
|
40
35
|
};
|
36
|
+
export const getTotalStorageGroupsUsed = (groupStats) => {
|
37
|
+
return Object.values(groupStats).reduce((acc, data) => {
|
38
|
+
Object.values(data).forEach((erasureStats) => {
|
39
|
+
acc += erasureStats.createdGroups;
|
40
|
+
});
|
41
|
+
return acc;
|
42
|
+
}, 0);
|
43
|
+
};
|
41
44
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/containers/Cluster/utils.tsx"],"names":[],"mappings":"AACA,OAAO,MAAM,EAAE,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/containers/Cluster/utils.tsx"],"names":[],"mappings":"AACA,OAAO,MAAM,EAAE,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAIhD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;CACZ,CAAC;AAIX,MAAM,OAAO,GAAG;IACZ,EAAE,EAAE,cAAc,CAAC,OAAO;IAC1B,KAAK,EAAE,WAAW;CACrB,CAAC;AACF,MAAM,KAAK,GAAG;IACV,EAAE,EAAE,cAAc,CAAC,KAAK;IACxB,KAAK,EAAE,OAAO;CACjB,CAAC;AACF,MAAM,OAAO,GAAG;IACZ,EAAE,EAAE,cAAc,CAAC,OAAO;IAC1B,KAAK,EAAE,SAAS;CACnB,CAAC;AACF,MAAM,QAAQ,GAAG;IACb,EAAE,EAAE,cAAc,CAAC,QAAQ;IAC3B,KAAK,EAAE,UAAU;CACpB,CAAC;AACF,MAAM,OAAO,GAAG;IACZ,EAAE,EAAE,cAAc,CAAC,OAAO;IAC1B,KAAK,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAExE,MAAM,UAAU,YAAY,CAAC,GAAQ;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAsB,EAAE,KAAK,GAAG,EAAE,EAAE,OAA2B,EAAE,EAAE;IAC9F,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,UAA8B,EAAE,EAAE;IACxE,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YACzC,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,CAAC,CAAC"}
|
@@ -19,28 +19,27 @@ const b = cn('header');
|
|
19
19
|
function Header({ mainPage }) {
|
20
20
|
const { page, pageBreadcrumbsOptions } = useTypedSelector((state) => state.header);
|
21
21
|
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
|
22
|
-
const
|
22
|
+
const { title: clusterTitle } = useClusterBaseInfo();
|
23
23
|
const database = useDatabaseFromQuery();
|
24
24
|
const location = useLocation();
|
25
25
|
const isDatabasePage = location.pathname === '/tenant';
|
26
|
-
const clusterName = clusterInfo.title || clusterInfo.name;
|
27
26
|
const breadcrumbItems = React.useMemo(() => {
|
28
27
|
const rawBreadcrumbs = [];
|
29
28
|
let options = pageBreadcrumbsOptions;
|
30
29
|
if (mainPage) {
|
31
30
|
rawBreadcrumbs.push(mainPage);
|
32
31
|
}
|
33
|
-
if (
|
32
|
+
if (clusterTitle) {
|
34
33
|
options = {
|
35
34
|
...options,
|
36
|
-
clusterName,
|
35
|
+
clusterName: clusterTitle,
|
37
36
|
};
|
38
37
|
}
|
39
38
|
const breadcrumbs = getBreadcrumbs(page, options, rawBreadcrumbs);
|
40
39
|
return breadcrumbs.map((item) => {
|
41
40
|
return { ...item, action: () => { } };
|
42
41
|
});
|
43
|
-
}, [
|
42
|
+
}, [clusterTitle, mainPage, page, pageBreadcrumbsOptions]);
|
44
43
|
const renderRightControls = () => {
|
45
44
|
const elements = [];
|
46
45
|
if (isDatabasePage && database) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/containers/Header/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,sBAAsB,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAC,oBAAoB,EAAC,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAC,iCAAiC,EAAC,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,6BAA6B,EAAC,MAAM,iDAAiD,CAAC;AAG9F,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AAEpC,OAAO,eAAe,CAAC;AAEvB,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;AAMvB,SAAS,MAAM,CAAC,EAAC,QAAQ,EAAc;IACnC,MAAM,EAAC,IAAI,EAAE,sBAAsB,EAAC,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,0BAA0B,GAAG,6BAA6B,EAAE,CAAC;IAEnE,MAAM,
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/containers/Header/Header.tsx"],"names":[],"mappings":"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"}
|
@@ -8,9 +8,6 @@ import { getClusterPath } from '../Cluster/utils';
|
|
8
8
|
import { getDefaultNodePath } from '../Node/NodePages';
|
9
9
|
import { TenantTabsGroups, getTenantPath } from '../Tenant/TenantPages';
|
10
10
|
import { headerKeyset } from './i18n';
|
11
|
-
const prepareTenantName = (tenantName) => {
|
12
|
-
return tenantName.startsWith('/') ? tenantName.slice(1) : tenantName;
|
13
|
-
};
|
14
11
|
const getQueryForTenant = (type) => ({
|
15
12
|
[TENANT_PAGE]: TENANT_PAGES_IDS.diagnostics,
|
16
13
|
[TenantTabsGroups.diagnosticsTab]: TENANT_DIAGNOSTICS_TABS_IDS[type],
|
@@ -28,7 +25,7 @@ const getClusterBreadcrumbs = (options, query = {}) => {
|
|
28
25
|
const getTenantBreadcrumbs = (options, query = {}) => {
|
29
26
|
const { tenantName } = options;
|
30
27
|
const breadcrumbs = getClusterBreadcrumbs(options, query);
|
31
|
-
const text = tenantName
|
28
|
+
const text = tenantName || headerKeyset('breadcrumbs.tenant');
|
32
29
|
const link = tenantName ? getTenantPath({ ...query, database: tenantName }) : undefined;
|
33
30
|
const lastItem = { text, link, icon: _jsx(DatabaseIcon, {}) };
|
34
31
|
breadcrumbs.push(lastItem);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../../src/containers/Header/breadcrumbs.tsx"],"names":[],"mappings":";AAAA,OAAO,EACH,UAAU,IAAI,WAAW,EACzB,GAAG,IAAI,eAAe,EACtB,QAAQ,IAAI,YAAY,EACxB,SAAS,IAAI,eAAe,GAC/B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,UAAU,EAAC,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAY9C,OAAO,EACH,2BAA2B,EAC3B,WAAW,EACX,gBAAgB,GACnB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAC,qBAAqB,EAAE,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;
|
1
|
+
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../../src/containers/Header/breadcrumbs.tsx"],"names":[],"mappings":"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"}
|