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,140 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { NoSearchResults } from '@gravity-ui/illustrations';
|
4
|
+
import { skipToken } from '@reduxjs/toolkit/query';
|
5
|
+
import { isNil } from 'lodash';
|
6
|
+
import { DEFAULT_TABLE_ROW_HEIGHT, ResizeablePaginatedTable, } from '../../../../components/PaginatedTable';
|
7
|
+
import { partitionsApi } from '../../../../store/reducers/partitions/partitions';
|
8
|
+
import { topicApi } from '../../../../store/reducers/topic';
|
9
|
+
import { useAutoRefreshInterval } from '../../../../utils/hooks';
|
10
|
+
import { useSelectedColumns } from '../../../../utils/hooks/useSelectedColumns';
|
11
|
+
import { renderPaginatedTableErrorMessage } from '../../../../utils/renderPaginatedTableErrorMessage';
|
12
|
+
import { safeParseNumber } from '../../../../utils/utils';
|
13
|
+
import { EmptyFilter } from '../../../Storage/EmptyFilter/EmptyFilter';
|
14
|
+
import { TopicDataControls } from './TopicDataControls/TopicDataControls';
|
15
|
+
import { DEFAULT_TOPIC_DATA_COLUMNS, REQUIRED_TOPIC_DATA_COLUMNS, getAllColumns, } from './columns/columns';
|
16
|
+
import { generateTopicDataGetter } from './getData';
|
17
|
+
import i18n from './i18n';
|
18
|
+
import { useTopicDataQueryParams } from './useTopicDataQueryParams';
|
19
|
+
import { TOPIC_DATA_COLUMNS_TITLES, TOPIC_DATA_COLUMNS_WIDTH_LS_KEY, TOPIC_DATA_FETCH_LIMIT, TOPIC_DATA_SELECTED_COLUMNS_LS_KEY, b, } from './utils/constants';
|
20
|
+
import './TopicData.scss';
|
21
|
+
export function TopicData({ parentRef, path, database }) {
|
22
|
+
const [autoRefreshInterval] = useAutoRefreshInterval();
|
23
|
+
const [startOffset, setStartOffset] = React.useState();
|
24
|
+
const [endOffset, setEndOffset] = React.useState();
|
25
|
+
const [controlsKey, setControlsKey] = React.useState(0);
|
26
|
+
const [emptyData, setEmptyData] = React.useState(false);
|
27
|
+
const [baseOffset, setBaseOffset] = React.useState();
|
28
|
+
const [baseEndOffset, setBaseEndOffset] = React.useState();
|
29
|
+
const startRef = React.useRef();
|
30
|
+
startRef.current = startOffset;
|
31
|
+
const { selectedPartition, selectedOffset, startTimestamp, topicDataFilter, handleSelectedOffsetChange, handleStartTimestampChange, handleSelectedPartitionChange, } = useTopicDataQueryParams();
|
32
|
+
React.useEffect(() => {
|
33
|
+
return () => {
|
34
|
+
handleSelectedPartitionChange(undefined);
|
35
|
+
handleSelectedOffsetChange(undefined);
|
36
|
+
handleStartTimestampChange(undefined);
|
37
|
+
};
|
38
|
+
}, [handleSelectedPartitionChange, handleSelectedOffsetChange, handleStartTimestampChange]);
|
39
|
+
const queryParams = React.useMemo(() => {
|
40
|
+
if (isNil(selectedPartition)) {
|
41
|
+
return skipToken;
|
42
|
+
}
|
43
|
+
const params = { database, path, partition: selectedPartition, limit: 1 };
|
44
|
+
if (startTimestamp) {
|
45
|
+
params.read_timestamp = startTimestamp;
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
params.offset = safeParseNumber(selectedOffset);
|
49
|
+
}
|
50
|
+
return params;
|
51
|
+
}, [selectedPartition, selectedOffset, startTimestamp, database, path]);
|
52
|
+
const { currentData, error, isFetching } = topicApi.useGetTopicDataQuery(queryParams);
|
53
|
+
const { data: partitions, isLoading: partitionsLoading, error: partitionsError, } = partitionsApi.useGetPartitionsQuery({ path, database }, { pollingInterval: autoRefreshInterval });
|
54
|
+
React.useEffect(() => {
|
55
|
+
const selectedPartitionData = partitions === null || partitions === void 0 ? void 0 : partitions.find(({ partitionId }) => partitionId === selectedPartition);
|
56
|
+
if (selectedPartitionData) {
|
57
|
+
if (!baseOffset) {
|
58
|
+
setBaseOffset(safeParseNumber(selectedPartitionData.startOffset));
|
59
|
+
}
|
60
|
+
if (!baseEndOffset) {
|
61
|
+
setBaseEndOffset(safeParseNumber(selectedPartitionData.endOffset));
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}, [selectedPartition, partitions, baseOffset, baseEndOffset, startOffset, endOffset]);
|
65
|
+
React.useEffect(() => {
|
66
|
+
if (partitions && partitions.length && isNil(selectedPartition)) {
|
67
|
+
handleSelectedPartitionChange(partitions[0].partitionId);
|
68
|
+
}
|
69
|
+
}, [partitions, selectedPartition, handleSelectedPartitionChange]);
|
70
|
+
const { columnsToShow, columnsToSelect, setColumns } = useSelectedColumns(getAllColumns(), TOPIC_DATA_SELECTED_COLUMNS_LS_KEY, TOPIC_DATA_COLUMNS_TITLES, DEFAULT_TOPIC_DATA_COLUMNS, REQUIRED_TOPIC_DATA_COLUMNS);
|
71
|
+
React.useEffect(() => {
|
72
|
+
var _a, _b;
|
73
|
+
//values should be recalculated only when data is fetched
|
74
|
+
if (isFetching || (!currentData && !error)) {
|
75
|
+
return;
|
76
|
+
}
|
77
|
+
if (((_a = currentData === null || currentData === void 0 ? void 0 : currentData.Messages) === null || _a === void 0 ? void 0 : _a.length) || (!currentData && !error)) {
|
78
|
+
setEmptyData(false);
|
79
|
+
}
|
80
|
+
else if (!(currentData && ((_b = currentData.Messages) === null || _b === void 0 ? void 0 : _b.length)) || error) {
|
81
|
+
setEmptyData(true);
|
82
|
+
}
|
83
|
+
if (currentData) {
|
84
|
+
setStartOffset(safeParseNumber(currentData.StartOffset));
|
85
|
+
setEndOffset(safeParseNumber(currentData.EndOffset));
|
86
|
+
}
|
87
|
+
}, [isFetching, currentData, error]);
|
88
|
+
const tableFilters = React.useMemo(() => ({
|
89
|
+
path,
|
90
|
+
database,
|
91
|
+
partition: selectedPartition !== null && selectedPartition !== void 0 ? selectedPartition : '',
|
92
|
+
isEmpty: emptyData,
|
93
|
+
}), [path, database, selectedPartition, emptyData]);
|
94
|
+
const resetFilters = React.useCallback(() => {
|
95
|
+
handleSelectedOffsetChange(undefined);
|
96
|
+
handleStartTimestampChange(undefined);
|
97
|
+
if (topicDataFilter === 'TIMESTAMP') {
|
98
|
+
setControlsKey((prev) => prev + 1);
|
99
|
+
}
|
100
|
+
}, [handleSelectedOffsetChange, handleStartTimestampChange, topicDataFilter]);
|
101
|
+
const scrollToOffset = React.useCallback((newOffset) => {
|
102
|
+
var _a;
|
103
|
+
const scrollTop = (newOffset - (baseOffset !== null && baseOffset !== void 0 ? baseOffset : 0)) * DEFAULT_TABLE_ROW_HEIGHT;
|
104
|
+
const normalizedScrollTop = Math.max(0, scrollTop);
|
105
|
+
(_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({
|
106
|
+
top: normalizedScrollTop,
|
107
|
+
behavior: 'instant',
|
108
|
+
});
|
109
|
+
}, [baseOffset, parentRef]);
|
110
|
+
React.useEffect(() => {
|
111
|
+
if (isFetching) {
|
112
|
+
return;
|
113
|
+
}
|
114
|
+
const messages = currentData === null || currentData === void 0 ? void 0 : currentData.Messages;
|
115
|
+
if (messages === null || messages === void 0 ? void 0 : messages.length) {
|
116
|
+
const messageOffset = safeParseNumber(messages[0].Offset);
|
117
|
+
//scroll when table is already rendered and calculated it's state
|
118
|
+
setTimeout(() => {
|
119
|
+
scrollToOffset(messageOffset);
|
120
|
+
}, 0);
|
121
|
+
}
|
122
|
+
}, [currentData, isFetching, scrollToOffset]);
|
123
|
+
const renderControls = () => {
|
124
|
+
return (_jsx(TopicDataControls
|
125
|
+
// component has uncontrolled components inside, so it should be rerendered on filters reset
|
126
|
+
, { columnsToSelect: columnsToSelect, handleSelectedColumnsUpdate: setColumns, partitions: partitions, partitionsLoading: partitionsLoading, partitionsError: partitionsError, startOffset: startOffset, endOffset: endOffset, scrollToOffset: scrollToOffset }, controlsKey));
|
127
|
+
};
|
128
|
+
const renderEmptyDataMessage = () => {
|
129
|
+
const hasFilters = selectedOffset || startTimestamp;
|
130
|
+
return (_jsx(EmptyFilter, { title: i18n('label_nothing-found'), message: i18n('description_nothing-found'), onShowAll: hasFilters ? resetFilters : undefined, showAll: i18n('action_show-all'), image: _jsx(NoSearchResults, { width: 230, height: 230 }) }));
|
131
|
+
};
|
132
|
+
const getTopicData = React.useMemo(() => generateTopicDataGetter({ setEndOffset, setStartOffset, baseOffset }), [baseOffset]);
|
133
|
+
return (!isNil(baseOffset) &&
|
134
|
+
!isNil(baseEndOffset) && (_jsx(ResizeablePaginatedTable, { columnsWidthLSKey: TOPIC_DATA_COLUMNS_WIDTH_LS_KEY, parentRef: parentRef, columns: columnsToShow, fetchData: getTopicData, initialEntitiesCount: baseEndOffset - baseOffset, limit: TOPIC_DATA_FETCH_LIMIT, renderControls: renderControls, renderErrorMessage: renderPaginatedTableErrorMessage, renderEmptyDataMessage: renderEmptyDataMessage, filters: tableFilters, tableName: "topicData", rowHeight: DEFAULT_TABLE_ROW_HEIGHT, keepCache: false, getRowClassName: (row) => {
|
135
|
+
return b('row', {
|
136
|
+
active: Boolean(selectedOffset && String(row.Offset) === selectedOffset),
|
137
|
+
});
|
138
|
+
} })));
|
139
|
+
}
|
140
|
+
//# sourceMappingURL=TopicData.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TopicData.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Diagnostics/TopicData/TopicData.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
.ydb-diagnostics-topic-data {
|
2
|
+
&__partition-select {
|
3
|
+
min-width: 150px;
|
4
|
+
}
|
5
|
+
|
6
|
+
&__full-value {
|
7
|
+
max-width: 70vw;
|
8
|
+
max-height: 80vh;
|
9
|
+
|
10
|
+
word-break: break-all;
|
11
|
+
}
|
12
|
+
&__date-picker {
|
13
|
+
min-width: 265px;
|
14
|
+
}
|
15
|
+
&__column-setup {
|
16
|
+
margin-left: auto;
|
17
|
+
}
|
18
|
+
|
19
|
+
&__row {
|
20
|
+
&_active {
|
21
|
+
background-color: var(--g-color-base-selection);
|
22
|
+
|
23
|
+
&:hover {
|
24
|
+
background: var(--g-color-base-selection-hover) !important;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import type { TableColumnSetupItem } from '@gravity-ui/uikit';
|
2
|
+
import type { PreparedPartitionData } from '../../../../../store/reducers/partitions/types';
|
3
|
+
interface TopicDataControlsProps {
|
4
|
+
columnsToSelect: TableColumnSetupItem[];
|
5
|
+
handleSelectedColumnsUpdate: (updated: TableColumnSetupItem[]) => void;
|
6
|
+
partitions?: PreparedPartitionData[];
|
7
|
+
partitionsLoading: boolean;
|
8
|
+
partitionsError: unknown;
|
9
|
+
startOffset?: number;
|
10
|
+
endOffset?: number;
|
11
|
+
scrollToOffset: (offset: number) => void;
|
12
|
+
}
|
13
|
+
export declare function TopicDataControls({ columnsToSelect, handleSelectedColumnsUpdate, startOffset, endOffset, partitions, partitionsLoading, partitionsError, scrollToOffset, }: TopicDataControlsProps): import("react/jsx-runtime").JSX.Element;
|
14
|
+
export {};
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { RelativeDatePicker } from '@gravity-ui/date-components';
|
4
|
+
import { dateTimeParse } from '@gravity-ui/date-utils';
|
5
|
+
import { CircleChevronDownFill } from '@gravity-ui/icons';
|
6
|
+
import { ActionTooltip, Button, Icon, RadioButton, Select, TableColumnSetup, Text, } from '@gravity-ui/uikit';
|
7
|
+
import { isNil } from 'lodash';
|
8
|
+
import { DebouncedInput } from '../../../../../components/DebouncedInput/DebouncedTextInput';
|
9
|
+
import { formatNumber } from '../../../../../utils/dataFormatters/dataFormatters';
|
10
|
+
import { prepareErrorMessage } from '../../../../../utils/prepareErrorMessage';
|
11
|
+
import { safeParseNumber } from '../../../../../utils/utils';
|
12
|
+
import i18n from '../i18n';
|
13
|
+
import { useTopicDataQueryParams } from '../useTopicDataQueryParams';
|
14
|
+
import { b } from '../utils/constants';
|
15
|
+
import { TopicDataFilterValues } from '../utils/types';
|
16
|
+
export function TopicDataControls({ columnsToSelect, handleSelectedColumnsUpdate, startOffset, endOffset, partitions, partitionsLoading, partitionsError, scrollToOffset, }) {
|
17
|
+
const { selectedPartition, handleSelectedPartitionChange: handleSelectedPartitionParamChange, handleSelectedOffsetChange, handleStartTimestampChange, } = useTopicDataQueryParams();
|
18
|
+
const partitionsToSelect = partitions === null || partitions === void 0 ? void 0 : partitions.map(({ partitionId }) => ({
|
19
|
+
content: partitionId,
|
20
|
+
value: partitionId,
|
21
|
+
}));
|
22
|
+
const handleSelectedPartitionChange = React.useCallback((value) => {
|
23
|
+
handleSelectedPartitionParamChange(value[0]);
|
24
|
+
handleSelectedOffsetChange(undefined);
|
25
|
+
handleStartTimestampChange(undefined);
|
26
|
+
}, [
|
27
|
+
handleSelectedPartitionParamChange,
|
28
|
+
handleStartTimestampChange,
|
29
|
+
handleSelectedOffsetChange,
|
30
|
+
]);
|
31
|
+
return (_jsxs(React.Fragment, { children: [_jsx(Select, { className: b('partition-select'), label: i18n('label_partition-id'), options: partitionsToSelect, value: selectedPartition ? [selectedPartition] : undefined, onUpdate: handleSelectedPartitionChange, filterable: partitions && partitions.length > 5, disabled: !partitions || !partitions.length, errorPlacement: "inside", errorMessage: prepareErrorMessage(partitionsError), error: Boolean(partitionsError), loading: partitionsLoading }), _jsx(TopicDataStartControls, { scrollToOffset: scrollToOffset }), !isNil(startOffset) && !isNil(endOffset) && (_jsxs(Text, { color: "secondary", whiteSpace: "nowrap", children: [formatNumber(startOffset), "\u2014", formatNumber(endOffset - 1)] })), _jsx(TableColumnSetup, { className: b('column-setup'), popupWidth: 242, items: columnsToSelect, showStatus: true, onUpdate: handleSelectedColumnsUpdate, sortable: false })] }));
|
32
|
+
}
|
33
|
+
function TopicDataStartControls({ scrollToOffset }) {
|
34
|
+
const { selectedOffset, startTimestamp, topicDataFilter, handleSelectedOffsetChange, handleStartTimestampChange, handleTopicDataFilterChange, } = useTopicDataQueryParams();
|
35
|
+
const onFilterChange = React.useCallback((value) => {
|
36
|
+
if (value === 'TIMESTAMP') {
|
37
|
+
handleSelectedOffsetChange(undefined);
|
38
|
+
}
|
39
|
+
else {
|
40
|
+
handleStartTimestampChange(undefined);
|
41
|
+
}
|
42
|
+
handleTopicDataFilterChange(value);
|
43
|
+
}, [handleTopicDataFilterChange, handleSelectedOffsetChange, handleStartTimestampChange]);
|
44
|
+
const onStartOffsetChange = React.useCallback((value) => {
|
45
|
+
handleSelectedOffsetChange(value);
|
46
|
+
}, [handleSelectedOffsetChange]);
|
47
|
+
const handleFromTimestampChange = React.useCallback((data) => {
|
48
|
+
let newValue;
|
49
|
+
if (data) {
|
50
|
+
const { value, type } = data;
|
51
|
+
if (type === 'absolute') {
|
52
|
+
newValue = value.valueOf();
|
53
|
+
}
|
54
|
+
else if (type === 'relative') {
|
55
|
+
const absoluteValue = dateTimeParse(value);
|
56
|
+
newValue = absoluteValue ? absoluteValue.valueOf() : undefined;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
handleStartTimestampChange(newValue);
|
60
|
+
}, [handleStartTimestampChange]);
|
61
|
+
const startDateTime = dateTimeParse(Number(startTimestamp));
|
62
|
+
return (_jsxs(React.Fragment, { children: [_jsxs(RadioButton, { value: topicDataFilter, onUpdate: onFilterChange, children: [_jsx(RadioButton.Option, { value: "TIMESTAMP", children: TopicDataFilterValues.TIMESTAMP }), _jsx(RadioButton.Option, { value: "OFFSET", children: TopicDataFilterValues.OFFSET })] }), topicDataFilter === 'OFFSET' && (_jsx(DebouncedInput, { value: selectedOffset ? String(selectedOffset) : '', onUpdate: onStartOffsetChange, label: i18n('label_from'), placeholder: i18n('label_offset'), type: "number", debounce: 600, endContent: _jsx(ActionTooltip, { title: i18n('action_scroll-selected'), children: _jsx(Button, { disabled: isNil(selectedOffset) || selectedOffset === '', view: "flat-action", size: "xs", onClick: () => {
|
63
|
+
if (selectedOffset) {
|
64
|
+
scrollToOffset(safeParseNumber(selectedOffset));
|
65
|
+
}
|
66
|
+
}, children: _jsx(Icon, { size: 14, data: CircleChevronDownFill }) }) }), autoFocus: true })), topicDataFilter === 'TIMESTAMP' && (_jsx(RelativeDatePicker, { format: "YYYY-MM-DD HH:mm:ss", placeholder: "YYYY-MM-DD HH:mm:ss", hasClear: true, isDateUnavailable: (value) => value.isAfter(dateTimeParse()), label: i18n('label_from'), onUpdate: handleFromTimestampChange, defaultValue: startDateTime ? { type: 'absolute', value: startDateTime } : null, className: b('date-picker') }))] }));
|
67
|
+
}
|
68
|
+
//# sourceMappingURL=TopicDataControls.js.map
|
package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TopicDataControls.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,122 @@
|
|
1
|
+
import { prepareResponse } from '../getData';
|
2
|
+
import { TOPIC_DATA_FETCH_LIMIT } from '../utils/constants';
|
3
|
+
describe('prepareResponse', () => {
|
4
|
+
// Test case 1: Normal case with no removed messages
|
5
|
+
test('should handle case with no removed messages', () => {
|
6
|
+
const response = {
|
7
|
+
StartOffset: '100',
|
8
|
+
EndOffset: '120',
|
9
|
+
Messages: [{ Offset: '100' }, { Offset: '101' }, { Offset: '102' }],
|
10
|
+
};
|
11
|
+
const result = prepareResponse(response, 100);
|
12
|
+
expect(result.start).toBe(100);
|
13
|
+
expect(result.end).toBe(120);
|
14
|
+
expect(result.messages.length).toBe(3);
|
15
|
+
expect(result.messages[0]).toEqual({ Offset: '100' });
|
16
|
+
expect(result.messages[1]).toEqual({ Offset: '101' });
|
17
|
+
expect(result.messages[2]).toEqual({ Offset: '102' });
|
18
|
+
});
|
19
|
+
// Test case 2: Case with some removed messages
|
20
|
+
test('should handle case with some removed messages', () => {
|
21
|
+
const response = {
|
22
|
+
StartOffset: '105',
|
23
|
+
EndOffset: '120',
|
24
|
+
Messages: [{ Offset: '105' }, { Offset: '106' }, { Offset: '107' }],
|
25
|
+
};
|
26
|
+
const result = prepareResponse(response, 100);
|
27
|
+
expect(result.start).toBe(105);
|
28
|
+
expect(result.end).toBe(120);
|
29
|
+
expect(result.messages.length).toBe(8); // 5 removed + 3 actual
|
30
|
+
// Check removed messages
|
31
|
+
expect(result.messages[0]).toEqual({ Offset: '100', removed: true });
|
32
|
+
expect(result.messages[1]).toEqual({ Offset: '101', removed: true });
|
33
|
+
expect(result.messages[2]).toEqual({ Offset: '102', removed: true });
|
34
|
+
expect(result.messages[3]).toEqual({ Offset: '103', removed: true });
|
35
|
+
expect(result.messages[4]).toEqual({ Offset: '104', removed: true });
|
36
|
+
// Check actual messages
|
37
|
+
expect(result.messages[5]).toEqual({ Offset: '105' });
|
38
|
+
expect(result.messages[6]).toEqual({ Offset: '106' });
|
39
|
+
expect(result.messages[7]).toEqual({ Offset: '107' });
|
40
|
+
});
|
41
|
+
// Test case 3: Case with more removed messages than the limit
|
42
|
+
test('should handle case with more removed messages than the limit', () => {
|
43
|
+
const response = {
|
44
|
+
StartOffset: '150',
|
45
|
+
EndOffset: '170',
|
46
|
+
Messages: [{ Offset: '150' }, { Offset: '151' }, { Offset: '152' }],
|
47
|
+
};
|
48
|
+
const result = prepareResponse(response, 100);
|
49
|
+
expect(result.start).toBe(150);
|
50
|
+
expect(result.end).toBe(170);
|
51
|
+
expect(result.messages.length).toBe(TOPIC_DATA_FETCH_LIMIT); // Limited by TOPIC_DATA_FETCH_LIMIT
|
52
|
+
// All messages should be "removed" placeholders since there are more than the limit
|
53
|
+
for (let i = 0; i < TOPIC_DATA_FETCH_LIMIT; i++) {
|
54
|
+
expect(result.messages[i]).toEqual({ Offset: `${100 + i}`, removed: true });
|
55
|
+
}
|
56
|
+
});
|
57
|
+
// Test case 4: Case with non-numeric offsets
|
58
|
+
test('should handle case with non-numeric offsets', () => {
|
59
|
+
const response = {
|
60
|
+
StartOffset: 'not-a-number',
|
61
|
+
EndOffset: 'invalid',
|
62
|
+
Messages: [{ Offset: '100' }, { Offset: '101' }],
|
63
|
+
};
|
64
|
+
const result = prepareResponse(response, 100);
|
65
|
+
// safeParseNumber should return 0 for non-numeric values
|
66
|
+
expect(result.start).toBe(0);
|
67
|
+
expect(result.end).toBe(0);
|
68
|
+
// Since start (0) < offset (100), removedMessagesCount is negative
|
69
|
+
// No removed messages should be added
|
70
|
+
expect(result.messages.length).toBe(2);
|
71
|
+
expect(result.messages[0]).toEqual({ Offset: '100' });
|
72
|
+
expect(result.messages[1]).toEqual({ Offset: '101' });
|
73
|
+
});
|
74
|
+
// Test case 5: Case with empty Messages array
|
75
|
+
test('should handle case with empty Messages array', () => {
|
76
|
+
const response = {
|
77
|
+
StartOffset: '100',
|
78
|
+
EndOffset: '100',
|
79
|
+
Messages: [],
|
80
|
+
};
|
81
|
+
const result = prepareResponse(response, 100);
|
82
|
+
expect(result.start).toBe(100);
|
83
|
+
expect(result.end).toBe(100);
|
84
|
+
expect(result.messages.length).toBe(0);
|
85
|
+
});
|
86
|
+
// Test case 6: Case with more messages than the limit
|
87
|
+
test('should handle case with more messages than the limit', () => {
|
88
|
+
// Create an array of 30 messages (more than TOPIC_DATA_FETCH_LIMIT)
|
89
|
+
const messages = [];
|
90
|
+
for (let i = 0; i < TOPIC_DATA_FETCH_LIMIT + 1; i++) {
|
91
|
+
messages.push({ Offset: `${100 + i}` });
|
92
|
+
}
|
93
|
+
const response = {
|
94
|
+
StartOffset: '100',
|
95
|
+
EndOffset: '130',
|
96
|
+
Messages: messages,
|
97
|
+
};
|
98
|
+
const result = prepareResponse(response, 100);
|
99
|
+
expect(result.start).toBe(100);
|
100
|
+
expect(result.end).toBe(130);
|
101
|
+
// Should be limited to TOPIC_DATA_FETCH_LIMIT
|
102
|
+
expect(result.messages.length).toBe(TOPIC_DATA_FETCH_LIMIT);
|
103
|
+
// Check the first few messages
|
104
|
+
expect(result.messages[0]).toEqual({ Offset: '100' });
|
105
|
+
expect(result.messages[1]).toEqual({ Offset: '101' });
|
106
|
+
expect(result.messages[2]).toEqual({ Offset: '102' });
|
107
|
+
});
|
108
|
+
// Test case 7: Case with both removed messages and actual messages within limit
|
109
|
+
test('should handle case with both removed and actual messages within limit', () => {
|
110
|
+
const response = {
|
111
|
+
StartOffset: '110',
|
112
|
+
EndOffset: '130',
|
113
|
+
Messages: Array.from({ length: 15 }, (_, i) => ({ Offset: `${110 + i}` })),
|
114
|
+
};
|
115
|
+
const result = prepareResponse(response, 100);
|
116
|
+
expect(result.start).toBe(110);
|
117
|
+
expect(result.end).toBe(130);
|
118
|
+
// 10 removed + 10 actual = 20 (TOPIC_DATA_FETCH_LIMIT)
|
119
|
+
expect(result.messages.length).toBe(TOPIC_DATA_FETCH_LIMIT);
|
120
|
+
});
|
121
|
+
});
|
122
|
+
//# sourceMappingURL=getData.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getData.test.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
.ydb-diagnostics-topic-data-columns {
|
2
|
+
&__timestamp-ms {
|
3
|
+
color: var(--g-color-text-secondary);
|
4
|
+
}
|
5
|
+
|
6
|
+
&__ts-diff_danger {
|
7
|
+
color: var(--g-color-text-danger);
|
8
|
+
}
|
9
|
+
&__message_clickable {
|
10
|
+
cursor: pointer;
|
11
|
+
|
12
|
+
color: var(--g-color-text-info);
|
13
|
+
}
|
14
|
+
&__offset_removed {
|
15
|
+
text-decoration: line-through;
|
16
|
+
}
|
17
|
+
|
18
|
+
&__message_invalid,
|
19
|
+
&__truncated {
|
20
|
+
font-style: italic;
|
21
|
+
}
|
22
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { Column } from '../../../../../components/PaginatedTable';
|
2
|
+
import type { TopicMessageEnhanced } from '../../../../../types/api/topic';
|
3
|
+
import type { TopicDataColumnId } from '../utils/types';
|
4
|
+
import './Columns.scss';
|
5
|
+
export declare function getAllColumns(): Column<TopicMessageEnhanced>[];
|
6
|
+
export declare const DEFAULT_TOPIC_DATA_COLUMNS: TopicDataColumnId[];
|
7
|
+
export declare const REQUIRED_TOPIC_DATA_COLUMNS: TopicDataColumnId[];
|
@@ -0,0 +1,154 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import DataTable from '@gravity-ui/react-data-table';
|
4
|
+
import { Text } from '@gravity-ui/uikit';
|
5
|
+
import { isNil } from 'lodash';
|
6
|
+
import { EntityStatus } from '../../../../../components/EntityStatus/EntityStatus';
|
7
|
+
import { MultilineTableHeader } from '../../../../../components/MultilineTableHeader/MultilineTableHeader';
|
8
|
+
import { TOPIC_MESSAGE_SIZE_LIMIT } from '../../../../../store/reducers/topic';
|
9
|
+
import { cn } from '../../../../../utils/cn';
|
10
|
+
import { EMPTY_DATA_PLACEHOLDER } from '../../../../../utils/constants';
|
11
|
+
import { formatBytes, formatTimestamp } from '../../../../../utils/dataFormatters/dataFormatters';
|
12
|
+
import { formatToMs } from '../../../../../utils/timeParsers';
|
13
|
+
import { safeParseNumber } from '../../../../../utils/utils';
|
14
|
+
import i18n from '../i18n';
|
15
|
+
import { TOPIC_DATA_COLUMNS_TITLES, codecNumberToName } from '../utils/constants';
|
16
|
+
import { TOPIC_DATA_COLUMNS_IDS } from '../utils/types';
|
17
|
+
import './Columns.scss';
|
18
|
+
const b = cn('ydb-diagnostics-topic-data-columns');
|
19
|
+
export function getAllColumns() {
|
20
|
+
const columns = [
|
21
|
+
{
|
22
|
+
name: TOPIC_DATA_COLUMNS_IDS.OFFSET,
|
23
|
+
header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.OFFSET],
|
24
|
+
align: DataTable.LEFT,
|
25
|
+
render: ({ row }) => {
|
26
|
+
const { Offset, removed } = row;
|
27
|
+
return (_jsx(Text, { className: b('offset', { removed }), variant: "body-2", color: removed ? 'secondary' : 'primary', children: valueOrPlaceholder(Offset) }));
|
28
|
+
},
|
29
|
+
width: 100,
|
30
|
+
},
|
31
|
+
{
|
32
|
+
name: TOPIC_DATA_COLUMNS_IDS.TIMESTAMP_CREATE,
|
33
|
+
header: (_jsx(MultilineTableHeader, { title: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.TIMESTAMP_CREATE] })),
|
34
|
+
align: DataTable.LEFT,
|
35
|
+
render: ({ row }) => _jsx(TopicDataTimestamp, { timestamp: row.CreateTimestamp }),
|
36
|
+
width: 220,
|
37
|
+
},
|
38
|
+
{
|
39
|
+
name: TOPIC_DATA_COLUMNS_IDS.TIMESTAMP_WRITE,
|
40
|
+
header: (_jsx(MultilineTableHeader, { title: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.TIMESTAMP_WRITE] })),
|
41
|
+
align: DataTable.LEFT,
|
42
|
+
render: ({ row }) => _jsx(TopicDataTimestamp, { timestamp: row.WriteTimestamp }),
|
43
|
+
width: 220,
|
44
|
+
},
|
45
|
+
{
|
46
|
+
name: TOPIC_DATA_COLUMNS_IDS.TS_DIFF,
|
47
|
+
header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.TS_DIFF],
|
48
|
+
align: DataTable.RIGHT,
|
49
|
+
render: ({ row }) => {
|
50
|
+
const numericValue = safeParseNumber(row.TimestampDiff);
|
51
|
+
return (_jsx("span", { className: b('ts-diff', { danger: numericValue >= 100000 }), children: formatToMs(numericValue) }));
|
52
|
+
},
|
53
|
+
width: 90,
|
54
|
+
note: i18n('context_ts-diff'),
|
55
|
+
},
|
56
|
+
{
|
57
|
+
name: TOPIC_DATA_COLUMNS_IDS.METADATA,
|
58
|
+
header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.METADATA],
|
59
|
+
align: DataTable.LEFT,
|
60
|
+
render: ({ row: { MessageMetadata } }) => {
|
61
|
+
if (!MessageMetadata) {
|
62
|
+
return EMPTY_DATA_PLACEHOLDER;
|
63
|
+
}
|
64
|
+
const prepared = MessageMetadata.map(({ Key = '', Value = '' }) => `${Key}: ${Value}`);
|
65
|
+
return prepared.join(', ');
|
66
|
+
},
|
67
|
+
width: 200,
|
68
|
+
},
|
69
|
+
{
|
70
|
+
name: TOPIC_DATA_COLUMNS_IDS.MESSAGE,
|
71
|
+
header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.MESSAGE],
|
72
|
+
align: DataTable.LEFT,
|
73
|
+
render: ({ row: { Message, OriginalSize } }) => {
|
74
|
+
if (isNil(Message)) {
|
75
|
+
return EMPTY_DATA_PLACEHOLDER;
|
76
|
+
}
|
77
|
+
let encryptedMessage;
|
78
|
+
let invalid = false;
|
79
|
+
try {
|
80
|
+
encryptedMessage = atob(Message);
|
81
|
+
}
|
82
|
+
catch (_a) {
|
83
|
+
encryptedMessage = i18n('description_failed-decode');
|
84
|
+
invalid = true;
|
85
|
+
}
|
86
|
+
const truncated = safeParseNumber(OriginalSize) > TOPIC_MESSAGE_SIZE_LIMIT;
|
87
|
+
return (_jsxs(Text, { variant: "body-2", color: invalid ? 'secondary' : 'primary', className: b('message', { invalid }), children: [encryptedMessage, truncated && (_jsxs(Text, { color: "secondary", className: b('truncated'), children: [' ', i18n('description_truncated')] }))] }));
|
88
|
+
},
|
89
|
+
width: 500,
|
90
|
+
},
|
91
|
+
{
|
92
|
+
name: TOPIC_DATA_COLUMNS_IDS.SIZE,
|
93
|
+
header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.SIZE],
|
94
|
+
align: DataTable.RIGHT,
|
95
|
+
render: ({ row }) => formatBytes(row.StorageSize),
|
96
|
+
width: 100,
|
97
|
+
},
|
98
|
+
{
|
99
|
+
name: TOPIC_DATA_COLUMNS_IDS.ORIGINAL_SIZE,
|
100
|
+
header: (_jsx(MultilineTableHeader, { title: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.ORIGINAL_SIZE] })),
|
101
|
+
align: DataTable.RIGHT,
|
102
|
+
render: ({ row }) => formatBytes(row.OriginalSize),
|
103
|
+
width: 100,
|
104
|
+
},
|
105
|
+
{
|
106
|
+
name: TOPIC_DATA_COLUMNS_IDS.CODEC,
|
107
|
+
header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.CODEC],
|
108
|
+
align: DataTable.RIGHT,
|
109
|
+
render: ({ row: { Codec } }) => {
|
110
|
+
var _a;
|
111
|
+
if (isNil(Codec)) {
|
112
|
+
return EMPTY_DATA_PLACEHOLDER;
|
113
|
+
}
|
114
|
+
return (_a = codecNumberToName[Codec]) !== null && _a !== void 0 ? _a : Codec;
|
115
|
+
},
|
116
|
+
width: 70,
|
117
|
+
},
|
118
|
+
{
|
119
|
+
name: TOPIC_DATA_COLUMNS_IDS.PRODUCERID,
|
120
|
+
header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.PRODUCERID],
|
121
|
+
align: DataTable.LEFT,
|
122
|
+
render: ({ row }) => (_jsx(EntityStatus, { showStatus: false, name: row.ProducerId, hasClipboardButton: true })),
|
123
|
+
width: 100,
|
124
|
+
},
|
125
|
+
{
|
126
|
+
name: TOPIC_DATA_COLUMNS_IDS.SEQNO,
|
127
|
+
header: TOPIC_DATA_COLUMNS_TITLES[TOPIC_DATA_COLUMNS_IDS.SEQNO],
|
128
|
+
align: DataTable.RIGHT,
|
129
|
+
render: ({ row }) => valueOrPlaceholder(row.SeqNo),
|
130
|
+
width: 70,
|
131
|
+
},
|
132
|
+
];
|
133
|
+
return columns;
|
134
|
+
}
|
135
|
+
export const DEFAULT_TOPIC_DATA_COLUMNS = [
|
136
|
+
'offset',
|
137
|
+
'timestampCreate',
|
138
|
+
'tsDiff',
|
139
|
+
'message',
|
140
|
+
];
|
141
|
+
export const REQUIRED_TOPIC_DATA_COLUMNS = ['offset'];
|
142
|
+
function TopicDataTimestamp({ timestamp }) {
|
143
|
+
if (!timestamp) {
|
144
|
+
return EMPTY_DATA_PLACEHOLDER;
|
145
|
+
}
|
146
|
+
const formatted = formatTimestamp(timestamp);
|
147
|
+
const splitted = formatted.split('.');
|
148
|
+
const ms = splitted.pop();
|
149
|
+
return (_jsxs(React.Fragment, { children: [splitted.join('.'), _jsxs("span", { className: b('timestamp-ms'), children: [".", ms] })] }));
|
150
|
+
}
|
151
|
+
function valueOrPlaceholder(value, placeholder = EMPTY_DATA_PLACEHOLDER) {
|
152
|
+
return isNil(value) ? placeholder : value;
|
153
|
+
}
|
154
|
+
//# sourceMappingURL=columns.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TopicData/columns/columns.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import type { FetchData } from '../../../../components/PaginatedTable';
|
2
|
+
import type { TopicDataResponse, TopicMessage, TopicMessageEnhanced } from '../../../../types/api/topic';
|
3
|
+
import type { TopicDataFilters } from './utils/types';
|
4
|
+
interface GetTopicDataProps {
|
5
|
+
setStartOffset: (offset: number) => void;
|
6
|
+
setEndOffset: (offset: number) => void;
|
7
|
+
baseOffset?: number;
|
8
|
+
}
|
9
|
+
export declare function prepareResponse(response: TopicDataResponse, offset: number): {
|
10
|
+
start: number;
|
11
|
+
end: number;
|
12
|
+
messages: TopicMessageEnhanced[];
|
13
|
+
};
|
14
|
+
export declare const generateTopicDataGetter: ({ setStartOffset, setEndOffset, baseOffset, }: GetTopicDataProps) => FetchData<TopicMessage, TopicDataFilters>;
|
15
|
+
export {};
|