ydb-embedded-ui 6.15.1 → 6.17.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/ContentWithPopup/ContentWithPopup.d.ts +2 -1
- package/dist/components/ContentWithPopup/ContentWithPopup.js +9 -2
- package/dist/components/ContentWithPopup/ContentWithPopup.js.map +1 -1
- package/dist/components/ElapsedTime/ElapsedTime.js +2 -1
- package/dist/components/ElapsedTime/ElapsedTime.js.map +1 -1
- package/dist/components/EmptyState/EmptyState.d.ts +6 -0
- package/dist/components/EmptyState/EmptyState.js +6 -0
- package/dist/components/EmptyState/EmptyState.js.map +1 -1
- package/dist/components/EntitiesCount/EntitiesCount.js +3 -1
- package/dist/components/EntitiesCount/EntitiesCount.js.map +1 -1
- package/dist/components/EntityPageTitle/EntityPageTitle.d.ts +11 -0
- package/dist/components/{DiskPageTitle/DiskPageTitle.js → EntityPageTitle/EntityPageTitle.js} +5 -5
- package/dist/components/EntityPageTitle/EntityPageTitle.js.map +1 -0
- package/dist/components/{DiskPageTitle/DiskPageTitle.scss → EntityPageTitle/EntityPageTitle.scss} +1 -1
- package/dist/components/ErrorBoundary/ErrorBoundary.scss +2 -0
- package/dist/components/FullNodeViewer/FullNodeViewer.js +1 -1
- package/dist/components/FullNodeViewer/FullNodeViewer.js.map +1 -1
- package/dist/components/InfoViewer/InfoViewer.d.ts +0 -1
- package/dist/components/InfoViewer/InfoViewer.js +0 -1
- package/dist/components/InfoViewer/InfoViewer.js.map +1 -1
- package/dist/components/InfoViewer/index.d.ts +1 -1
- package/dist/components/InfoViewer/index.js +1 -1
- package/dist/components/InfoViewer/index.js.map +1 -1
- package/dist/components/InfoViewerSkeleton/InfoViewerSkeleton.d.ts +2 -1
- package/dist/components/InfoViewerSkeleton/InfoViewerSkeleton.js +10 -1
- package/dist/components/InfoViewerSkeleton/InfoViewerSkeleton.js.map +1 -1
- package/dist/components/MetricChart/reducer.d.ts +2 -2
- package/dist/components/NodeHostWrapper/NodeHostWrapper.d.ts +2 -1
- package/dist/components/NodeHostWrapper/NodeHostWrapper.js +2 -2
- package/dist/components/NodeHostWrapper/NodeHostWrapper.js.map +1 -1
- package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.d.ts +9 -0
- package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.js +9 -0
- package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.js.map +1 -0
- package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.scss +3 -0
- package/dist/components/PageMeta/PageMeta.d.ts +2 -1
- package/dist/components/PageMeta/PageMeta.js +9 -4
- package/dist/components/PageMeta/PageMeta.js.map +1 -1
- package/dist/components/PageMeta/PageMeta.scss +9 -6
- package/dist/components/PaginatedTable/PaginatedTable.d.ts +5 -4
- package/dist/components/PaginatedTable/PaginatedTable.js +24 -116
- package/dist/components/PaginatedTable/PaginatedTable.js.map +1 -1
- package/dist/components/PaginatedTable/PaginatedTable.scss +8 -0
- package/dist/components/PaginatedTable/ResizeablePaginatedTable.d.ts +2 -2
- package/dist/components/PaginatedTable/ResizeablePaginatedTable.js.map +1 -1
- package/dist/components/PaginatedTable/TableChunk.d.ts +13 -5
- package/dist/components/PaginatedTable/TableChunk.js +53 -22
- package/dist/components/PaginatedTable/TableChunk.js.map +1 -1
- package/dist/components/PaginatedTable/TableHead.js +1 -1
- package/dist/components/PaginatedTable/TableHead.js.map +1 -1
- package/dist/components/PaginatedTable/TableRow.js +1 -1
- package/dist/components/PaginatedTable/TableRow.js.map +1 -1
- package/dist/components/PaginatedTable/types.d.ts +8 -1
- package/dist/components/Skeleton/Skeleton.d.ts +6 -0
- package/dist/components/Skeleton/Skeleton.js +11 -0
- package/dist/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/Tablet/Tablet.js +2 -2
- package/dist/components/Tablet/Tablet.js.map +1 -1
- package/dist/components/TabletState/TabletState.d.ts +6 -0
- package/dist/components/TabletState/TabletState.js +7 -0
- package/dist/components/TabletState/TabletState.js.map +1 -0
- package/dist/components/TabletsStatistic/TabletsStatistic.d.ts +2 -2
- package/dist/components/TabletsStatistic/TabletsStatistic.js +4 -6
- package/dist/components/TabletsStatistic/TabletsStatistic.js.map +1 -1
- package/dist/components/YDBDefinitionList/YDBDefinitionList.d.ts +9 -0
- package/dist/components/YDBDefinitionList/YDBDefinitionList.js +23 -0
- package/dist/components/YDBDefinitionList/YDBDefinitionList.js.map +1 -0
- package/dist/{containers/Tenant/Info/View/View.scss → components/YDBDefinitionList/YDBDefinitionList.scss} +6 -6
- package/dist/components/YDBDefinitionList/i18n/en.json +3 -0
- package/dist/components/YDBDefinitionList/i18n/index.d.ts +2 -0
- package/dist/components/YDBDefinitionList/i18n/index.js +5 -0
- package/dist/components/YDBDefinitionList/i18n/index.js.map +1 -0
- package/dist/containers/App/Content.js +1 -7
- package/dist/containers/App/Content.js.map +1 -1
- package/dist/containers/App/appSlots.d.ts +0 -6
- package/dist/containers/App/appSlots.js +0 -1
- package/dist/containers/App/appSlots.js.map +1 -1
- package/dist/containers/Cluster/Cluster.js +13 -22
- package/dist/containers/Cluster/Cluster.js.map +1 -1
- package/dist/containers/Cluster/Cluster.scss +14 -0
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.d.ts +3 -3
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +18 -2
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
- package/dist/containers/Cluster/i18n/index.d.ts +1 -1
- package/dist/containers/Header/Header.js +6 -7
- package/dist/containers/Header/Header.js.map +1 -1
- package/dist/containers/Header/breadcrumbs.js +26 -30
- package/dist/containers/Header/breadcrumbs.js.map +1 -1
- package/dist/containers/Heatmap/HeatmapCanvas/HeatmapCanvas.js +2 -2
- package/dist/containers/Heatmap/HeatmapCanvas/HeatmapCanvas.js.map +1 -1
- package/dist/containers/Node/Node.js +12 -6
- package/dist/containers/Node/Node.js.map +1 -1
- package/dist/containers/Node/NodePages.d.ts +2 -1
- package/dist/containers/Node/NodePages.js +2 -2
- package/dist/containers/Node/NodePages.js.map +1 -1
- package/dist/containers/Nodes/Nodes.d.ts +2 -1
- package/dist/containers/Nodes/Nodes.js +3 -2
- package/dist/containers/Nodes/Nodes.js.map +1 -1
- package/dist/containers/Nodes/NodesWrapper.d.ts +1 -0
- package/dist/containers/Nodes/NodesWrapper.js.map +1 -1
- package/dist/containers/Nodes/PaginatedNodes.d.ts +2 -1
- package/dist/containers/Nodes/PaginatedNodes.js +7 -18
- package/dist/containers/Nodes/PaginatedNodes.js.map +1 -1
- package/dist/containers/Nodes/getNodes.d.ts +3 -6
- package/dist/containers/Nodes/getNodes.js +19 -2
- package/dist/containers/Nodes/getNodes.js.map +1 -1
- package/dist/containers/Nodes/getNodesColumns.d.ts +3 -3
- package/dist/containers/Nodes/getNodesColumns.js +9 -9
- package/dist/containers/Nodes/getNodesColumns.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskGroups/PDiskGroups.js +2 -2
- package/dist/containers/PDiskPage/PDiskGroups/PDiskGroups.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskPage.js +4 -5
- package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskPage.scss +0 -7
- package/dist/containers/PDiskPage/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/PaginatedStorage.d.ts +2 -2
- package/dist/containers/Storage/PaginatedStorage.js +3 -3
- package/dist/containers/Storage/PaginatedStorage.js.map +1 -1
- package/dist/containers/Storage/Storage.d.ts +2 -2
- package/dist/containers/Storage/Storage.js +4 -4
- package/dist/containers/Storage/Storage.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/PaginatedStorageGroups.d.ts +2 -2
- package/dist/containers/Storage/StorageGroups/PaginatedStorageGroups.js +5 -17
- package/dist/containers/Storage/StorageGroups/PaginatedStorageGroups.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/getGroups.d.ts +3 -6
- package/dist/containers/Storage/StorageGroups/getGroups.js +15 -2
- package/dist/containers/Storage/StorageGroups/getGroups.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/getStorageGroupsColumns.d.ts +1 -1
- package/dist/containers/Storage/StorageGroups/getStorageGroupsColumns.js +1 -1
- package/dist/containers/Storage/StorageGroups/getStorageGroupsColumns.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/PaginatedStorageNodes.d.ts +2 -2
- package/dist/containers/Storage/StorageNodes/PaginatedStorageNodes.js +8 -20
- package/dist/containers/Storage/StorageNodes/PaginatedStorageNodes.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/StorageNodes.d.ts +2 -1
- package/dist/containers/Storage/StorageNodes/StorageNodes.js +2 -2
- package/dist/containers/Storage/StorageNodes/StorageNodes.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/getNodes.d.ts +3 -5
- package/dist/containers/Storage/StorageNodes/getNodes.js +17 -2
- package/dist/containers/Storage/StorageNodes/getNodes.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/getStorageNodesColumns.d.ts +1 -1
- package/dist/containers/Storage/StorageNodes/getStorageNodesColumns.js +4 -4
- package/dist/containers/Storage/StorageNodes/getStorageNodesColumns.js.map +1 -1
- package/dist/containers/Storage/StorageWrapper.d.ts +1 -1
- package/dist/containers/Tablet/Tablet.d.ts +1 -1
- package/dist/containers/Tablet/Tablet.js +118 -54
- package/dist/containers/Tablet/Tablet.js.map +1 -1
- package/dist/containers/Tablet/Tablet.scss +4 -81
- package/dist/containers/Tablet/components/TabletControls/TabletControls.d.ts +6 -0
- package/dist/containers/Tablet/components/TabletControls/TabletControls.js +27 -0
- package/dist/containers/Tablet/components/TabletControls/TabletControls.js.map +1 -0
- package/dist/containers/Tablet/components/TabletControls/index.js.map +1 -0
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.d.ts +7 -0
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js +59 -0
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js.map +1 -0
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.scss +12 -0
- package/dist/containers/Tablet/components/TabletInfo/i18n/en.json +16 -0
- package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -0
- package/dist/containers/Tablet/components/TabletInfo/i18n/index.js +5 -0
- package/dist/containers/Tablet/components/TabletInfo/i18n/index.js.map +1 -0
- package/dist/containers/Tablet/components/TabletInfo/index.js.map +1 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.d.ts +7 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.js +36 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.js.map +1 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.scss +78 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/columns.d.ts +3 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/columns.js +56 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/columns.js.map +1 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/i18n/en.json +7 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/i18n/index.d.ts +1 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/i18n/index.js +5 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/i18n/index.js.map +1 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/shared.d.ts +1 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/shared.js +3 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/shared.js.map +1 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/types.d.ts +5 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/types.js +2 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/types.js.map +1 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/utils.d.ts +3 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/utils.js +29 -0
- package/dist/containers/Tablet/components/TabletStorageInfo/utils.js.map +1 -0
- package/dist/containers/Tablet/{TabletTable → components/TabletTable}/TabletTable.d.ts +1 -1
- package/dist/containers/Tablet/{TabletTable → components/TabletTable}/TabletTable.js +7 -6
- package/dist/containers/Tablet/components/TabletTable/TabletTable.js.map +1 -0
- package/dist/containers/Tablet/components/TabletTable/index.js.map +1 -0
- package/dist/containers/Tablet/i18n/en.json +5 -1
- package/dist/containers/Tablet/i18n/index.d.ts +1 -1
- package/dist/containers/Tablet/utils.d.ts +1 -0
- package/dist/containers/Tablet/utils.js +4 -0
- package/dist/containers/Tablet/utils.js.map +1 -0
- package/dist/containers/Tablets/Tablets.d.ts +2 -1
- package/dist/containers/Tablets/Tablets.js +100 -90
- package/dist/containers/Tablets/Tablets.js.map +1 -1
- package/dist/containers/Tablets/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Acl/Acl.scss +2 -2
- package/dist/containers/Tenant/Diagnostics/Describe/Describe.js +10 -9
- package/dist/containers/Tenant/Diagnostics/Describe/Describe.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Describe/Describe.scss +13 -2
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js +3 -3
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/AsyncReplicationInfo.js +39 -20
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/AsyncReplicationInfo.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo.js +21 -11
- package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopShards/getTopShardsColumns.js +2 -2
- package/dist/containers/Tenant/Diagnostics/TopShards/getTopShardsColumns.js.map +1 -1
- package/dist/containers/Tenant/Info/View/View.d.ts +0 -1
- package/dist/containers/Tenant/Info/View/View.js +3 -5
- package/dist/containers/Tenant/Info/View/View.js.map +1 -1
- package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js +3 -8
- package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +1 -1
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.scss +3 -0
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/SimplifiedPlan.js +2 -5
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/SimplifiedPlan.js.map +1 -1
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/utils.d.ts +0 -1
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/utils.js +0 -21
- package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/utils.js.map +1 -1
- package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js +19 -1
- package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js.map +1 -1
- package/dist/containers/Tenant/Query/Query.js +2 -14
- package/dist/containers/Tenant/Query/Query.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +4 -4
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.test.js +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.test.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.test.js +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.test.js.map +1 -1
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js +3 -3
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js.map +1 -1
- package/dist/containers/Tenant/Query/QuerySettingsDialog/constants.d.ts +8 -8
- package/dist/containers/Tenant/Query/QuerySettingsDialog/constants.js +6 -6
- package/dist/containers/Tenant/Query/QuerySettingsDialog/constants.js.map +1 -1
- package/dist/containers/Tenant/Query/i18n/en.json +4 -1
- package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Query/utils/useSavedQueries.js +2 -1
- package/dist/containers/Tenant/Query/utils/useSavedQueries.js.map +1 -1
- package/dist/containers/Tenant/Schema/SchemaViewer/KeysView.d.ts +8 -0
- package/dist/containers/Tenant/Schema/SchemaViewer/KeysView.js +15 -0
- package/dist/containers/Tenant/Schema/SchemaViewer/KeysView.js.map +1 -0
- package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js +7 -13
- package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.js.map +1 -1
- package/dist/containers/Tenant/Schema/SchemaViewer/SchemaViewer.scss +62 -3
- package/dist/containers/Tenant/Schema/SchemaViewer/columns.js +3 -21
- package/dist/containers/Tenant/Schema/SchemaViewer/columns.js.map +1 -1
- package/dist/containers/Tenant/Schema/SchemaViewer/i18n/en.json +3 -2
- package/dist/containers/Tenant/Schema/SchemaViewer/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Schema/SchemaViewer/prepareData.js +13 -23
- package/dist/containers/Tenant/Schema/SchemaViewer/prepareData.js.map +1 -1
- package/dist/containers/Tenant/Schema/SchemaViewer/types.d.ts +2 -3
- package/dist/containers/Tenant/Schema/SchemaViewer/utils.d.ts +3 -0
- package/dist/containers/Tenant/Schema/SchemaViewer/utils.js +9 -0
- package/dist/containers/Tenant/Schema/SchemaViewer/utils.js.map +1 -0
- package/dist/containers/Tenant/utils/queryTemplates.js +6 -5
- package/dist/containers/Tenant/utils/queryTemplates.js.map +1 -1
- package/dist/containers/Tenants/Tenants.js +2 -2
- package/dist/containers/Tenants/Tenants.js.map +1 -1
- package/dist/containers/UserSettings/i18n/en.json +0 -3
- package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
- package/dist/containers/UserSettings/settings.d.ts +0 -1
- package/dist/containers/UserSettings/settings.js +2 -10
- package/dist/containers/UserSettings/settings.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.d.ts +4 -0
- package/dist/containers/VDiskPage/VDiskPage.js +17 -14
- package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.scss +9 -4
- package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
- package/dist/containers/Versions/GroupedNodesTree/GroupedNodesTree.d.ts +2 -2
- package/dist/containers/Versions/GroupedNodesTree/GroupedNodesTree.js.map +1 -1
- package/dist/containers/Versions/NodesTable/NodesTable.d.ts +2 -2
- package/dist/containers/Versions/NodesTable/NodesTable.js.map +1 -1
- package/dist/containers/Versions/NodesTreeTitle/NodesTreeTitle.d.ts +2 -2
- package/dist/containers/Versions/NodesTreeTitle/NodesTreeTitle.js.map +1 -1
- package/dist/containers/Versions/Versions.js +3 -2
- package/dist/containers/Versions/Versions.js.map +1 -1
- package/dist/containers/Versions/groupNodes.d.ts +4 -4
- package/dist/containers/Versions/groupNodes.js.map +1 -1
- package/dist/containers/Versions/types.d.ts +2 -2
- package/dist/routes.d.ts +1 -0
- package/dist/routes.js +3 -0
- package/dist/routes.js.map +1 -1
- package/dist/services/api.d.ts +19 -12
- package/dist/services/api.js +45 -15
- package/dist/services/api.js.map +1 -1
- package/dist/services/settings.d.ts +1 -2
- package/dist/services/settings.js +1 -2
- package/dist/services/settings.js.map +1 -1
- package/dist/store/configureStore.d.ts +6 -10
- package/dist/store/defaultStore.d.ts +3 -5
- package/dist/store/reducers/api.d.ts +1 -1
- package/dist/store/reducers/api.js +1 -1
- package/dist/store/reducers/api.js.map +1 -1
- package/dist/store/reducers/authentication/authentication.d.ts +4 -4
- package/dist/store/reducers/cancelQuery.d.ts +2 -2
- package/dist/store/reducers/capabilities/capabilities.d.ts +6 -10
- 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/clusters/clusters.d.ts +2 -2
- package/dist/store/reducers/describe.d.ts +2 -2
- package/dist/store/reducers/executeQuery.d.ts +18 -4
- package/dist/store/reducers/executeQuery.js +50 -5
- package/dist/store/reducers/executeQuery.js.map +1 -1
- package/dist/store/reducers/executeTopQueries/executeTopQueries.d.ts +2 -2
- package/dist/store/reducers/explainQuery/explainQuery.d.ts +2 -2
- package/dist/store/reducers/header/types.d.ts +7 -7
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +58 -78
- package/dist/store/reducers/heatmap.d.ts +2 -2
- package/dist/store/reducers/heatmap.js +2 -2
- package/dist/store/reducers/heatmap.js.map +1 -1
- package/dist/store/reducers/hotKeys/hotKeys.d.ts +2 -2
- package/dist/store/reducers/index.d.ts +5 -8
- package/dist/store/reducers/index.js +0 -2
- package/dist/store/reducers/index.js.map +1 -1
- package/dist/store/reducers/network/network.d.ts +2 -2
- package/dist/store/reducers/node/node.d.ts +3 -3
- package/dist/store/reducers/node/selectors.d.ts +1 -2
- package/dist/store/reducers/nodes/nodes.d.ts +3 -3
- package/dist/store/reducers/nodes/types.d.ts +17 -1
- package/dist/store/reducers/nodes/utils.js +6 -0
- package/dist/store/reducers/nodes/utils.js.map +1 -1
- package/dist/store/reducers/nodesList.d.ts +3 -4
- package/dist/store/reducers/overview/overview.d.ts +2 -2
- package/dist/store/reducers/partitions/partitions.d.ts +2 -2
- package/dist/store/reducers/pdisk/pdisk.d.ts +3 -3
- package/dist/store/reducers/preview.d.ts +2 -2
- package/dist/store/reducers/schema/schema.d.ts +3 -3
- package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +2 -2
- package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +2 -2
- package/dist/store/reducers/storage/storage.d.ts +3 -3
- package/dist/store/reducers/storage/types.d.ts +15 -0
- package/dist/store/reducers/storage/types.js.map +1 -1
- package/dist/store/reducers/tableData.d.ts +14 -0
- package/dist/store/reducers/tableData.js +25 -0
- package/dist/store/reducers/tableData.js.map +1 -0
- package/dist/store/reducers/tablet.d.ts +20 -3
- package/dist/store/reducers/tablet.js +82 -13
- package/dist/store/reducers/tablet.js.map +1 -1
- package/dist/store/reducers/tablets.d.ts +15 -23
- package/dist/store/reducers/tablets.js +2 -20
- package/dist/store/reducers/tablets.js.map +1 -1
- package/dist/store/reducers/tenant/tenant.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topNodes/topNodes.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +2 -2
- package/dist/store/reducers/tenantOverview/topStorageGroups/topStorageGroups.d.ts +2 -2
- package/dist/store/reducers/tenants/selectors.d.ts +30 -40
- package/dist/store/reducers/tenants/selectors.js +9 -8
- package/dist/store/reducers/tenants/selectors.js.map +1 -1
- package/dist/store/reducers/tenants/tenants.d.ts +2 -2
- package/dist/store/reducers/topic.d.ts +44 -59
- package/dist/store/reducers/vdisk/types.d.ts +1 -1
- package/dist/store/reducers/vdisk/vdisk.d.ts +3 -3
- package/dist/store/reducers/viewSchema/viewSchema.d.ts +2 -2
- package/dist/store/state-url-mapping.d.ts +0 -8
- package/dist/store/state-url-mapping.js +0 -8
- package/dist/store/state-url-mapping.js.map +1 -1
- package/dist/styles/mixins.scss +3 -3
- package/dist/types/api/capabilities.d.ts +1 -1
- package/dist/types/api/nodes.d.ts +5 -0
- package/dist/types/api/nodes.js.map +1 -1
- package/dist/types/api/schema/shared.d.ts +1 -3
- package/dist/types/api/schema/shared.js.map +1 -1
- package/dist/types/api/schema/table.d.ts +2 -0
- package/dist/types/api/schema/table.js.map +1 -1
- package/dist/types/api/tablet.d.ts +22 -0
- package/dist/types/store/executeQuery.d.ts +5 -2
- package/dist/types/store/heatmap.d.ts +0 -1
- package/dist/types/store/tablets.d.ts +2 -1
- package/dist/utils/constants.d.ts +2 -2
- package/dist/utils/constants.js +2 -2
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/dataFormatters/dataFormatters.d.ts +1 -0
- package/dist/utils/dataFormatters/dataFormatters.js +5 -0
- package/dist/utils/dataFormatters/dataFormatters.js.map +1 -1
- package/dist/utils/developerUI/developerUI.d.ts +1 -1
- package/dist/utils/developerUI/developerUI.js +3 -2
- package/dist/utils/developerUI/developerUI.js.map +1 -1
- package/dist/utils/hooks/useQueryExecutionSettings.js +3 -2
- package/dist/utils/hooks/useQueryExecutionSettings.js.map +1 -1
- package/dist/utils/versions/parseNodesToVersionsValues.d.ts +7 -0
- package/dist/utils/versions/parseNodesToVersionsValues.js +10 -0
- package/dist/utils/versions/parseNodesToVersionsValues.js.map +1 -1
- package/package.json +2 -1
- package/dist/components/DiskPageTitle/DiskPageTitle.d.ts +0 -10
- package/dist/components/DiskPageTitle/DiskPageTitle.js.map +0 -1
- package/dist/components/PaginatedTable/reducer.d.ts +0 -43
- package/dist/components/PaginatedTable/reducer.js +0 -104
- package/dist/components/PaginatedTable/reducer.js.map +0 -1
- package/dist/containers/Tablet/TabletControls/TabletControls.d.ts +0 -7
- package/dist/containers/Tablet/TabletControls/TabletControls.js +0 -29
- package/dist/containers/Tablet/TabletControls/TabletControls.js.map +0 -1
- package/dist/containers/Tablet/TabletControls/index.js.map +0 -1
- package/dist/containers/Tablet/TabletInfo/TabletInfo.d.ts +0 -7
- package/dist/containers/Tablet/TabletInfo/TabletInfo.js +0 -40
- package/dist/containers/Tablet/TabletInfo/TabletInfo.js.map +0 -1
- package/dist/containers/Tablet/TabletInfo/index.js.map +0 -1
- package/dist/containers/Tablet/TabletTable/TabletTable.js.map +0 -1
- package/dist/containers/Tablet/TabletTable/index.js.map +0 -1
- package/dist/containers/TabletsFilters/TabletsFilters.d.ts +0 -2
- package/dist/containers/TabletsFilters/TabletsFilters.js +0 -91
- package/dist/containers/TabletsFilters/TabletsFilters.js.map +0 -1
- package/dist/containers/TabletsFilters/TabletsFilters.scss +0 -80
- package/dist/containers/TabletsFilters/i18n/en.json +0 -3
- package/dist/containers/TabletsFilters/i18n/index.d.ts +0 -2
- package/dist/containers/TabletsFilters/i18n/index.js +0 -6
- package/dist/containers/TabletsFilters/i18n/index.js.map +0 -1
- package/dist/containers/TabletsFilters/i18n/ru.json +0 -3
- package/dist/store/reducers/clusterNodes/clusterNodes.d.ts +0 -5
- package/dist/store/reducers/clusterNodes/clusterNodes.js +0 -22
- package/dist/store/reducers/clusterNodes/clusterNodes.js.map +0 -1
- package/dist/store/reducers/tabletsFilters.d.ts +0 -45
- package/dist/store/reducers/tabletsFilters.js +0 -20
- package/dist/store/reducers/tabletsFilters.js.map +0 -1
- /package/dist/containers/Tablet/{TabletControls → components/TabletControls}/index.d.ts +0 -0
- /package/dist/containers/Tablet/{TabletControls → components/TabletControls}/index.js +0 -0
- /package/dist/containers/Tablet/{TabletInfo → components/TabletInfo}/index.d.ts +0 -0
- /package/dist/containers/Tablet/{TabletInfo → components/TabletInfo}/index.js +0 -0
- /package/dist/containers/Tablet/{TabletTable → components/TabletTable}/index.d.ts +0 -0
- /package/dist/containers/Tablet/{TabletTable → components/TabletTable}/index.js +0 -0
@@ -1,74 +1,138 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
2
|
import React from 'react';
|
3
|
-
import {
|
4
|
-
import { Link as ExternalLink, Icon } from '@gravity-ui/uikit';
|
3
|
+
import { Flex, Tabs } from '@gravity-ui/uikit';
|
5
4
|
import { skipToken } from '@reduxjs/toolkit/query';
|
6
5
|
import { Helmet } from 'react-helmet-async';
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {
|
6
|
+
import { useParams } from 'react-router-dom';
|
7
|
+
import { StringParam, useQueryParams } from 'use-query-params';
|
8
|
+
import { z } from 'zod';
|
9
|
+
import { EmptyStateWrapper } from '../../components/EmptyState';
|
10
|
+
import { EntityPageTitle } from '../../components/EntityPageTitle/EntityPageTitle';
|
10
11
|
import { ResponseError } from '../../components/Errors/ResponseError';
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
12
|
+
import { InternalLink } from '../../components/InternalLink';
|
13
|
+
import { LoaderWrapper } from '../../components/LoaderWrapper/LoaderWrapper';
|
14
|
+
import { PageMetaWithAutorefresh } from '../../components/PageMeta/PageMeta';
|
15
|
+
import { getTabletPagePath } from '../../routes';
|
16
|
+
import { selectIsUserAllowedToMakeChanges } from '../../store/reducers/authentication/authentication';
|
15
17
|
import { setHeaderBreadcrumbs } from '../../store/reducers/header/header';
|
18
|
+
import { nodeApi } from '../../store/reducers/node/node';
|
16
19
|
import { tabletApi } from '../../store/reducers/tablet';
|
20
|
+
import { EFlag } from '../../types/api/enums';
|
21
|
+
import { EType } from '../../types/api/tablet';
|
17
22
|
import { cn } from '../../utils/cn';
|
18
|
-
import { CLUSTER_DEFAULT_TITLE
|
19
|
-
import { useAutoRefreshInterval, useTypedDispatch } from '../../utils/hooks';
|
20
|
-
import { TabletControls } from './TabletControls';
|
21
|
-
import { TabletInfo } from './TabletInfo';
|
22
|
-
import {
|
23
|
+
import { CLUSTER_DEFAULT_TITLE } from '../../utils/constants';
|
24
|
+
import { useAutoRefreshInterval, useTypedDispatch, useTypedSelector } from '../../utils/hooks';
|
25
|
+
import { TabletControls } from './components/TabletControls';
|
26
|
+
import { TabletInfo } from './components/TabletInfo';
|
27
|
+
import { TabletStorageInfo } from './components/TabletStorageInfo/TabletStorageInfo';
|
28
|
+
import { TabletTable } from './components/TabletTable';
|
23
29
|
import i18n from './i18n';
|
30
|
+
import { hasHive } from './utils';
|
24
31
|
import './Tablet.scss';
|
25
|
-
export const b = cn('tablet-page');
|
26
|
-
|
27
|
-
|
28
|
-
|
32
|
+
export const b = cn('ydb-tablet-page');
|
33
|
+
const TABLET_TABS_IDS = {
|
34
|
+
history: 'history',
|
35
|
+
channels: 'channels',
|
36
|
+
};
|
37
|
+
const TABLET_PAGE_TABS = [
|
38
|
+
{
|
39
|
+
id: TABLET_TABS_IDS.history,
|
40
|
+
get title() {
|
41
|
+
return i18n('label_tablet-history');
|
42
|
+
},
|
43
|
+
},
|
44
|
+
{
|
45
|
+
id: TABLET_TABS_IDS.channels,
|
46
|
+
get title() {
|
47
|
+
return i18n('label_tablet-channels');
|
48
|
+
},
|
49
|
+
isAdvanced: true,
|
50
|
+
},
|
51
|
+
];
|
52
|
+
const tabletTabSchema = z.nativeEnum(TABLET_TABS_IDS).catch(TABLET_TABS_IDS.history);
|
53
|
+
const eTypeSchema = z.nativeEnum(EType).or(z.undefined()).catch(undefined);
|
54
|
+
export function Tablet() {
|
55
|
+
var _a, _b, _c;
|
29
56
|
const dispatch = useTypedDispatch();
|
30
|
-
const
|
31
|
-
const
|
32
|
-
|
33
|
-
|
57
|
+
const { id } = useParams();
|
58
|
+
const [{ nodeId: queryNodeId, tenantName: queryDatabase, type: queryTabletType, clusterName: queryClusterName, },] = useQueryParams({
|
59
|
+
nodeId: StringParam,
|
60
|
+
tenantName: StringParam,
|
61
|
+
type: StringParam,
|
62
|
+
clusterName: StringParam,
|
63
|
+
});
|
34
64
|
const [autoRefreshInterval] = useAutoRefreshInterval();
|
35
|
-
const { currentData, isFetching, error
|
65
|
+
const { currentData, isFetching, error } = tabletApi.useGetTabletQuery({ id, database: queryDatabase !== null && queryDatabase !== void 0 ? queryDatabase : undefined, nodeId: queryNodeId !== null && queryNodeId !== void 0 ? queryNodeId : undefined }, { pollingInterval: autoRefreshInterval });
|
36
66
|
const loading = isFetching && currentData === undefined;
|
37
|
-
const {
|
67
|
+
const { data: tablet = {}, history = [] } = currentData || {};
|
38
68
|
const { currentData: tenantPath } = tabletApi.useGetTabletDescribeQuery(tablet.TenantId ? { tenantId: tablet.TenantId } : skipToken);
|
39
|
-
const nodeId = ((_a = tablet.NodeId)
|
40
|
-
const
|
41
|
-
const
|
69
|
+
const nodeId = (_b = (_a = tablet.NodeId) !== null && _a !== void 0 ? _a : queryNodeId) !== null && _b !== void 0 ? _b : undefined;
|
70
|
+
const database = (_c = (tenantPath || queryDatabase)) !== null && _c !== void 0 ? _c : undefined;
|
71
|
+
const nodeRole = useNodeRole(nodeId === null || nodeId === void 0 ? void 0 : nodeId.toString());
|
72
|
+
const tabletType = tablet.Type || eTypeSchema.parse(queryTabletType);
|
42
73
|
React.useEffect(() => {
|
43
74
|
dispatch(setHeaderBreadcrumbs('tablet', {
|
44
|
-
|
45
|
-
|
75
|
+
nodeId,
|
76
|
+
nodeRole,
|
77
|
+
tenantName: queryDatabase !== null && queryDatabase !== void 0 ? queryDatabase : undefined,
|
46
78
|
tabletId: id,
|
47
|
-
tabletType
|
79
|
+
tabletType,
|
48
80
|
}));
|
49
|
-
}, [dispatch,
|
50
|
-
const
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
81
|
+
}, [dispatch, queryDatabase, id, nodeId, nodeRole, tabletType]);
|
82
|
+
const { Leader, Type } = tablet;
|
83
|
+
const metaItems = [];
|
84
|
+
if (database) {
|
85
|
+
metaItems.push(`${i18n('tablet.meta-database')}: ${database}`);
|
86
|
+
}
|
87
|
+
if (Type) {
|
88
|
+
metaItems.push(Type);
|
89
|
+
}
|
90
|
+
if (Leader === false) {
|
91
|
+
metaItems.push(i18n('tablet.meta-follower').toUpperCase());
|
92
|
+
}
|
93
|
+
return (_jsxs(Flex, { gap: 5, direction: "column", className: b(), children: [_jsx(Helmet, { children: _jsx("title", { children: `${id} — ${i18n('tablet.header')} — ${database || queryClusterName || CLUSTER_DEFAULT_TITLE}` }) }), _jsx(PageMetaWithAutorefresh, { items: metaItems }), _jsxs(LoaderWrapper, { loading: loading, size: "l", children: [error ? _jsx(ResponseError, { error: error }) : null, currentData ? _jsx(TabletContent, { id: id, tablet: tablet, history: history }) : null] })] }));
|
94
|
+
}
|
95
|
+
function TabletContent({ id, tablet, history, }) {
|
96
|
+
const isEmpty = !Object.keys(tablet).length;
|
97
|
+
const { Overall, HiveId } = tablet;
|
98
|
+
return (_jsxs(EmptyStateWrapper, { title: i18n('emptyState'), className: b('placeholder'), isEmpty: isEmpty, children: [_jsxs(Flex, { gap: 5, direction: "column", children: [_jsx(EntityPageTitle, { entityName: i18n('tablet.header'), status: Overall !== null && Overall !== void 0 ? Overall : EFlag.Grey, id: id }), _jsx(TabletControls, { tablet: tablet }), _jsx(TabletInfo, { tablet: tablet })] }), _jsx(TabletTabs, { id: id, hiveId: HiveId, history: history })] }));
|
99
|
+
}
|
100
|
+
function TabletTabs({ id, hiveId, history, }) {
|
101
|
+
var _a;
|
102
|
+
const [{ activeTab }, setParams] = useQueryParams({ activeTab: StringParam });
|
103
|
+
const isUserAllowedToMakeChanges = useTypedSelector(selectIsUserAllowedToMakeChanges);
|
104
|
+
const noAdvancedInfo = !isUserAllowedToMakeChanges || !hasHive(hiveId);
|
105
|
+
let tabletTab = tabletTabSchema.parse(activeTab);
|
106
|
+
if (noAdvancedInfo && ((_a = TABLET_PAGE_TABS.find((tab) => tab.id === tabletTab)) === null || _a === void 0 ? void 0 : _a.isAdvanced)) {
|
107
|
+
tabletTab = TABLET_TABS_IDS.history;
|
108
|
+
}
|
109
|
+
React.useEffect(() => {
|
110
|
+
if (activeTab !== tabletTab) {
|
111
|
+
setParams({ activeTab: tabletTab }, 'replaceIn');
|
62
112
|
}
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
}
|
72
|
-
|
73
|
-
};
|
113
|
+
}, [activeTab, tabletTab, setParams]);
|
114
|
+
return (_jsxs(Flex, { gap: 5, direction: "column", children: [_jsx(Tabs, { size: "l", items: TABLET_PAGE_TABS.filter(({ isAdvanced }) => isAdvanced ? !noAdvancedInfo : true), activeTab: tabletTab, wrapTo: (tab, tabNode) => {
|
115
|
+
const path = getTabletPagePath(id, { activeTab: tab.id });
|
116
|
+
return (_jsx(InternalLink, { to: path, children: tabNode }, tab.id));
|
117
|
+
} }), tabletTab === 'history' ? _jsx(TabletTable, { history: history }) : null, tabletTab === 'channels' && !noAdvancedInfo ? (_jsx(Channels, { id: id, hiveId: hiveId })) : null] }));
|
118
|
+
}
|
119
|
+
function Channels({ id, hiveId }) {
|
120
|
+
const [autoRefreshInterval] = useAutoRefreshInterval();
|
121
|
+
const { currentData, error, isFetching } = tabletApi.useGetAdvancedTableInfoQuery({ id, hiveId }, {
|
122
|
+
pollingInterval: autoRefreshInterval,
|
123
|
+
});
|
124
|
+
const loading = isFetching && currentData === undefined;
|
125
|
+
return (_jsxs(LoaderWrapper, { loading: loading, size: "l", children: [error ? _jsx(ResponseError, { error: error }) : null, currentData ? _jsx(TabletStorageInfo, { data: currentData }) : null] }));
|
126
|
+
}
|
127
|
+
function useNodeRole(nodeId) {
|
128
|
+
var _a;
|
129
|
+
const { currentData: node } = nodeApi.useGetNodeInfoQuery(nodeId ? { nodeId } : skipToken);
|
130
|
+
let nodeRole;
|
131
|
+
if (node) {
|
132
|
+
// Compute nodes have tenantName, storage nodes doesn't
|
133
|
+
const isStorage = !((_a = node === null || node === void 0 ? void 0 : node.Tenants) === null || _a === void 0 ? void 0 : _a[0]);
|
134
|
+
nodeRole = isStorage ? 'Storage' : 'Compute';
|
135
|
+
}
|
136
|
+
return nodeRole;
|
137
|
+
}
|
74
138
|
//# sourceMappingURL=Tablet.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Tablet.js","sourceRoot":"","sources":["../../../src/containers/Tablet/Tablet.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,
|
1
|
+
{"version":3,"file":"Tablet.js","sourceRoot":"","sources":["../../../src/containers/Tablet/Tablet.tsx"],"names":[],"mappings":"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"}
|
@@ -1,27 +1,10 @@
|
|
1
1
|
@import '../../styles/mixins.scss';
|
2
2
|
|
3
|
-
.tablet-page {
|
3
|
+
.ydb-tablet-page {
|
4
4
|
$_: &;
|
5
|
-
|
6
|
-
flex-direction: column;
|
7
|
-
|
5
|
+
height: 100%;
|
8
6
|
padding: 20px;
|
9
|
-
|
10
|
-
&__tenant {
|
11
|
-
margin-bottom: 20px;
|
12
|
-
}
|
13
|
-
|
14
|
-
&__pane-wrapper {
|
15
|
-
display: flex;
|
16
|
-
}
|
17
|
-
|
18
|
-
&__left-pane {
|
19
|
-
margin-right: 70px;
|
20
|
-
}
|
21
|
-
&__history-title {
|
22
|
-
margin-bottom: 15px;
|
23
|
-
@include body-2-typography();
|
24
|
-
}
|
7
|
+
@include body-2-typography();
|
25
8
|
|
26
9
|
&__placeholder {
|
27
10
|
display: flex;
|
@@ -30,67 +13,7 @@
|
|
30
13
|
align-items: center;
|
31
14
|
}
|
32
15
|
|
33
|
-
&__row {
|
34
|
-
display: flex;
|
35
|
-
align-items: center;
|
36
|
-
|
37
|
-
&_header {
|
38
|
-
margin-bottom: 20px;
|
39
|
-
|
40
|
-
& #{$_}__link {
|
41
|
-
margin: 0 10px 0 5px;
|
42
|
-
}
|
43
|
-
}
|
44
|
-
}
|
45
|
-
|
46
|
-
&__title {
|
47
|
-
margin-right: 16px;
|
48
|
-
|
49
|
-
font-weight: 500;
|
50
|
-
text-transform: uppercase;
|
51
|
-
|
52
|
-
@include body-2-typography();
|
53
|
-
}
|
54
|
-
|
55
16
|
&__loader {
|
56
|
-
|
57
|
-
}
|
58
|
-
|
59
|
-
.info-viewer__items {
|
60
|
-
grid-template-columns: auto;
|
61
|
-
}
|
62
|
-
|
63
|
-
&__link {
|
64
|
-
@extend .link;
|
65
|
-
}
|
66
|
-
|
67
|
-
&__controls {
|
68
|
-
margin: 20px 0 15px;
|
69
|
-
}
|
70
|
-
|
71
|
-
&__control {
|
72
|
-
margin-right: 15px;
|
73
|
-
}
|
74
|
-
|
75
|
-
&__links {
|
76
|
-
display: flex;
|
77
|
-
|
78
|
-
margin: 5px 0 10px;
|
79
|
-
padding: 0;
|
80
|
-
|
81
|
-
list-style-type: none;
|
82
|
-
|
83
|
-
& > * {
|
84
|
-
margin: 0 10px 0 0;
|
85
|
-
}
|
86
|
-
}
|
87
|
-
|
88
|
-
&__top-label {
|
89
|
-
margin-right: 16px;
|
90
|
-
|
91
|
-
font-weight: 500;
|
92
|
-
text-transform: uppercase;
|
93
|
-
|
94
|
-
@include body-2-typography();
|
17
|
+
margin-left: var(--g-spacing-2);
|
95
18
|
}
|
96
19
|
}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import type { TTabletStateInfo } from '../../../../types/api/tablet';
|
2
|
+
interface TabletControlsProps {
|
3
|
+
tablet: TTabletStateInfo;
|
4
|
+
}
|
5
|
+
export declare const TabletControls: ({ tablet }: TabletControlsProps) => import("react/jsx-runtime").JSX.Element | null;
|
6
|
+
export {};
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { ArrowRotateLeft, StopFill, TriangleRightFill } from '@gravity-ui/icons';
|
4
|
+
import { Flex, Icon } from '@gravity-ui/uikit';
|
5
|
+
import { ButtonWithConfirmDialog } from '../../../../components/ButtonWithConfirmDialog/ButtonWithConfirmDialog';
|
6
|
+
import { selectIsUserAllowedToMakeChanges } from '../../../../store/reducers/authentication/authentication';
|
7
|
+
import { tabletApi } from '../../../../store/reducers/tablet';
|
8
|
+
import { ETabletState } from '../../../../types/api/tablet';
|
9
|
+
import { useTypedSelector } from '../../../../utils/hooks';
|
10
|
+
import i18n from '../../i18n';
|
11
|
+
import { hasHive } from '../../utils';
|
12
|
+
export const TabletControls = ({ tablet }) => {
|
13
|
+
const { TabletId, HiveId } = tablet;
|
14
|
+
const isUserAllowedToMakeChanges = useTypedSelector(selectIsUserAllowedToMakeChanges);
|
15
|
+
const [killTablet] = tabletApi.useKillTabletMutation();
|
16
|
+
const [stopTablet] = tabletApi.useStopTabletMutation();
|
17
|
+
const [resumeTablet] = tabletApi.useResumeTabletMutation();
|
18
|
+
if (!TabletId) {
|
19
|
+
return null;
|
20
|
+
}
|
21
|
+
const hasHiveId = hasHive(HiveId);
|
22
|
+
const isDisabledRestart = tablet.State === ETabletState.Stopped;
|
23
|
+
const isDisabledResume = tablet.State !== ETabletState.Stopped && tablet.State !== ETabletState.Dead;
|
24
|
+
const isDisabledStop = tablet.State === ETabletState.Stopped || tablet.State === ETabletState.Deleted;
|
25
|
+
return (_jsxs(Flex, { gap: 2, wrap: "nowrap", children: [_jsxs(ButtonWithConfirmDialog, { dialogContent: i18n('dialog.kill'), onConfirmAction: () => killTablet({ id: TabletId }).unwrap(), buttonDisabled: isDisabledRestart || !isUserAllowedToMakeChanges, withPopover: true, buttonView: "normal", popoverContent: i18n('controls.kill-not-allowed'), popoverPlacement: 'bottom', popoverDisabled: isUserAllowedToMakeChanges, children: [_jsx(Icon, { data: ArrowRotateLeft }), i18n('controls.kill')] }), hasHiveId && (_jsxs(React.Fragment, { children: [_jsxs(ButtonWithConfirmDialog, { dialogContent: i18n('dialog.stop'), onConfirmAction: () => stopTablet({ id: TabletId, hiveId: HiveId }).unwrap(), buttonDisabled: isDisabledStop || !isUserAllowedToMakeChanges, withPopover: true, buttonView: "normal", popoverContent: i18n('controls.stop-not-allowed'), popoverPlacement: 'bottom', popoverDisabled: isUserAllowedToMakeChanges, children: [_jsx(Icon, { data: StopFill }), i18n('controls.stop')] }), _jsxs(ButtonWithConfirmDialog, { dialogContent: i18n('dialog.resume'), onConfirmAction: () => resumeTablet({ id: TabletId, hiveId: HiveId }).unwrap(), buttonDisabled: isDisabledResume || !isUserAllowedToMakeChanges, withPopover: true, buttonView: "normal", popoverContent: i18n('controls.resume-not-allowed'), popoverPlacement: 'bottom', popoverDisabled: isUserAllowedToMakeChanges, children: [_jsx(Icon, { data: TriangleRightFill }), i18n('controls.resume')] })] }))] }));
|
26
|
+
};
|
27
|
+
//# sourceMappingURL=TabletControls.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TabletControls.js","sourceRoot":"","sources":["../../../../../src/containers/Tablet/components/TabletControls/TabletControls.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/Tablet/components/TabletControls/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { TTabletStateInfo } from '../../../../types/api/tablet';
|
2
|
+
import './TabletInfo.scss';
|
3
|
+
interface TabletInfoProps {
|
4
|
+
tablet: TTabletStateInfo;
|
5
|
+
}
|
6
|
+
export declare const TabletInfo: ({ tablet }: TabletInfoProps) => import("react/jsx-runtime").JSX.Element;
|
7
|
+
export {};
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { Flex } from '@gravity-ui/uikit';
|
3
|
+
import { Link } from 'react-router-dom';
|
4
|
+
import { InfoViewer } from '../../../../components/InfoViewer';
|
5
|
+
import { LinkWithIcon } from '../../../../components/LinkWithIcon/LinkWithIcon';
|
6
|
+
import { TabletState } from '../../../../components/TabletState/TabletState';
|
7
|
+
import { getTabletPagePath } from '../../../../routes';
|
8
|
+
import { selectIsUserAllowedToMakeChanges } from '../../../../store/reducers/authentication/authentication';
|
9
|
+
import { ETabletState } from '../../../../types/api/tablet';
|
10
|
+
import { cn } from '../../../../utils/cn';
|
11
|
+
import { calcUptime } from '../../../../utils/dataFormatters/dataFormatters';
|
12
|
+
import { createTabletDeveloperUIHref } from '../../../../utils/developerUI/developerUI';
|
13
|
+
import { useTypedSelector } from '../../../../utils/hooks';
|
14
|
+
import { getDefaultNodePath } from '../../../Node/NodePages';
|
15
|
+
import { hasHive } from '../../utils';
|
16
|
+
import { tabletInfoKeyset } from './i18n';
|
17
|
+
const b = cn('ydb-tablet-info');
|
18
|
+
import './TabletInfo.scss';
|
19
|
+
export const TabletInfo = ({ tablet }) => {
|
20
|
+
const isUserAllowedToMakeChanges = useTypedSelector(selectIsUserAllowedToMakeChanges);
|
21
|
+
const { ChangeTime, Generation, FollowerId, NodeId, HiveId, State, TenantId: { SchemeShard } = {}, TabletId, } = tablet;
|
22
|
+
const hasHiveId = hasHive(HiveId);
|
23
|
+
const hasUptime = State === ETabletState.Active;
|
24
|
+
const tabletInfo = [];
|
25
|
+
if (hasHiveId) {
|
26
|
+
tabletInfo.push({
|
27
|
+
label: tabletInfoKeyset('field_hive'),
|
28
|
+
value: (_jsx(Link, { to: getTabletPagePath(HiveId), className: b('link'), children: HiveId })),
|
29
|
+
});
|
30
|
+
}
|
31
|
+
if (SchemeShard) {
|
32
|
+
tabletInfo.push({
|
33
|
+
label: tabletInfoKeyset('field_scheme-shard'),
|
34
|
+
value: (_jsx(Link, { to: getTabletPagePath(SchemeShard), className: b('link'), children: SchemeShard })),
|
35
|
+
});
|
36
|
+
}
|
37
|
+
tabletInfo.push({ label: tabletInfoKeyset('field_state'), value: _jsx(TabletState, { state: State }) });
|
38
|
+
if (hasUptime) {
|
39
|
+
tabletInfo.push({ label: tabletInfoKeyset('field_uptime'), value: calcUptime(ChangeTime) });
|
40
|
+
}
|
41
|
+
tabletInfo.push({ label: tabletInfoKeyset('field_generation'), value: Generation }, {
|
42
|
+
label: tabletInfoKeyset('field_node'),
|
43
|
+
value: (_jsx(Link, { className: b('link'), to: getDefaultNodePath(String(NodeId)), children: NodeId })),
|
44
|
+
});
|
45
|
+
if (FollowerId) {
|
46
|
+
tabletInfo.push({ label: tabletInfoKeyset('field_follower'), value: FollowerId });
|
47
|
+
}
|
48
|
+
const renderTabletInfo = () => {
|
49
|
+
return (_jsxs("div", { children: [_jsx("div", { className: b('section-title'), children: tabletInfoKeyset('title_info') }), _jsx(InfoViewer, { info: tabletInfo })] }));
|
50
|
+
};
|
51
|
+
const renderLinks = () => {
|
52
|
+
if (!isUserAllowedToMakeChanges || !TabletId) {
|
53
|
+
return null;
|
54
|
+
}
|
55
|
+
return (_jsxs("div", { children: [_jsx("div", { className: b('section-title'), children: tabletInfoKeyset('title_links') }), _jsxs(Flex, { direction: "column", gap: 3, children: [_jsx(LinkWithIcon, { title: tabletInfoKeyset('field_developer-ui-app'), url: createTabletDeveloperUIHref(TabletId, 'app') }), _jsx(LinkWithIcon, { title: tabletInfoKeyset('field_developer-ui-counters'), url: createTabletDeveloperUIHref(TabletId, 'counters') }), _jsx(LinkWithIcon, { title: tabletInfoKeyset('field_developer-ui-executor'), url: createTabletDeveloperUIHref(TabletId, 'executorInternals') }), _jsx(LinkWithIcon, { title: tabletInfoKeyset('field_developer-ui-state'), url: createTabletDeveloperUIHref(TabletId, undefined, 'SsId') })] })] }));
|
56
|
+
};
|
57
|
+
return (_jsxs(Flex, { gap: 10, wrap: "nowrap", children: [renderTabletInfo(), renderLinks()] }));
|
58
|
+
};
|
59
|
+
//# sourceMappingURL=TabletInfo.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TabletInfo.js","sourceRoot":"","sources":["../../../../../src/containers/Tablet/components/TabletInfo/TabletInfo.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"field_scheme-shard": "SchemeShard",
|
3
|
+
"field_follower": "Follower",
|
4
|
+
"field_generation": "Generation",
|
5
|
+
"field_hive": "HiveId",
|
6
|
+
"field_state": "State",
|
7
|
+
"field_uptime": "Uptime",
|
8
|
+
"field_node": "Node",
|
9
|
+
"field_links": "Links",
|
10
|
+
"field_developer-ui-app": "App",
|
11
|
+
"field_developer-ui-counters": "Counters",
|
12
|
+
"field_developer-ui-executor": "Executor DB internals",
|
13
|
+
"field_developer-ui-state": "State Storage",
|
14
|
+
"title_info": "Info",
|
15
|
+
"title_links": "Links"
|
16
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const tabletInfoKeyset: (key: "field_scheme-shard" | "field_follower" | "field_generation" | "field_hive" | "field_state" | "field_uptime" | "field_node" | "field_links" | "field_developer-ui-app" | "field_developer-ui-counters" | "field_developer-ui-executor" | "field_developer-ui-state" | "title_info" | "title_links", params?: import("@gravity-ui/i18n").Params) => string;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/containers/Tablet/components/TabletInfo/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAEpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/Tablet/components/TabletInfo/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { TTabletHiveResponse } from '../../../../types/api/tablet';
|
2
|
+
import './TabletStorageInfo.scss';
|
3
|
+
interface TabletStorageInfoProps {
|
4
|
+
data?: TTabletHiveResponse | null;
|
5
|
+
}
|
6
|
+
export declare function TabletStorageInfo({ data }: TabletStorageInfoProps): import("react/jsx-runtime").JSX.Element;
|
7
|
+
export {};
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { Table, useTable } from '@gravity-ui/table';
|
4
|
+
import { getColumns } from './columns';
|
5
|
+
import { b } from './shared';
|
6
|
+
import { prepareData } from './utils';
|
7
|
+
import './TabletStorageInfo.scss';
|
8
|
+
export function TabletStorageInfo({ data }) {
|
9
|
+
const [expanded, setExpanded] = React.useState({});
|
10
|
+
const tree = React.useMemo(() => prepareData(data), [data]);
|
11
|
+
const isExpandable = React.useMemo(() => tree.some((item) => { var _a; return (_a = item.children) === null || _a === void 0 ? void 0 : _a.length; }), [tree]);
|
12
|
+
const columns = React.useMemo(() => getColumns(isExpandable), [isExpandable]);
|
13
|
+
const table = useTable({
|
14
|
+
columns,
|
15
|
+
data: tree,
|
16
|
+
getSubRows: (item) => item.children,
|
17
|
+
enableExpanding: true,
|
18
|
+
onExpandedChange: setExpanded,
|
19
|
+
state: {
|
20
|
+
expanded,
|
21
|
+
},
|
22
|
+
});
|
23
|
+
return (
|
24
|
+
//block wrapper for table
|
25
|
+
_jsx("div", { children: _jsx(Table, { table: table, headerCellClassName: ({ column }) => {
|
26
|
+
var _a;
|
27
|
+
const align = (_a = column.columnDef.meta) === null || _a === void 0 ? void 0 : _a.align;
|
28
|
+
return b('table-header-cell', { align });
|
29
|
+
}, cellClassName: (cell) => {
|
30
|
+
var _a, _b;
|
31
|
+
const align = (_a = cell === null || cell === void 0 ? void 0 : cell.column.columnDef.meta) === null || _a === void 0 ? void 0 : _a.align;
|
32
|
+
const verticalAlign = (_b = cell === null || cell === void 0 ? void 0 : cell.column.columnDef.meta) === null || _b === void 0 ? void 0 : _b.verticalAlign;
|
33
|
+
return b('table-cell', { align, 'vertical-align': verticalAlign });
|
34
|
+
}, className: b('table') }) }));
|
35
|
+
}
|
36
|
+
//# sourceMappingURL=TabletStorageInfo.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TabletStorageInfo.js","sourceRoot":"","sources":["../../../../../src/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAKlD,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AACrC,OAAO,EAAC,CAAC,EAAC,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEpC,OAAO,0BAA0B,CAAC;AAMlC,MAAM,UAAU,iBAAiB,CAAC,EAAC,IAAI,EAAyB;IAC5D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,CAAA,EAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC;QACnB,OAAO;QACP,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ;QACnC,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,WAAW;QAC7B,KAAK,EAAE;YACH,QAAQ;SACX;KACJ,CAAC,CAAC;IACH,OAAO;IACH,yBAAyB;IACzB,wBACI,KAAC,KAAK,IACF,KAAK,EAAE,KAAK,EACZ,mBAAmB,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE;;gBAC9B,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,KAAK,CAAC;gBAC3C,OAAO,CAAC,CAAC,mBAAmB,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;YAC3C,CAAC,EACD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;;gBACpB,MAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,KAAK,CAAC;gBACjD,MAAM,aAAa,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,aAAa,CAAC;gBACjE,OAAO,CAAC,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAC,CAAC,CAAC;YACrE,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GACvB,GACA,CACT,CAAC;AACN,CAAC"}
|