ydb-embedded-ui 6.2.2 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +38 -16
  2. package/dist/assets/icons/disableFullscreen.svg +4 -0
  3. package/dist/assets/icons/emptyState.svg +13 -0
  4. package/dist/assets/icons/key.svg +6 -0
  5. package/dist/assets/icons/monitoring.svg +9 -0
  6. package/dist/assets/icons/network.svg +21 -0
  7. package/dist/components/BasicNodeViewer/BasicNodeViewer.js +11 -5
  8. package/dist/components/CriticalActionDialog/CriticalActionDialog.js +3 -4
  9. package/dist/components/CriticalActionDialog/CriticalActionDialog.scss +2 -0
  10. package/dist/components/EmptyState/EmptyState.js +3 -2
  11. package/dist/components/EnableFullscreenButton/EnableFullscreenButton.js +3 -3
  12. package/dist/components/Fullscreen/Fullscreen.js +3 -3
  13. package/dist/components/MonitoringButton/MonitoringButton.js +3 -3
  14. package/dist/components/NodeHostWrapper/NodeHostWrapper.js +3 -3
  15. package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
  16. package/dist/components/QueryExecutionStatus/QueryExecutionStatus.js +4 -5
  17. package/dist/components/StatusIcon/StatusIcon.js +5 -7
  18. package/dist/containers/App/App.js +1 -2
  19. package/dist/containers/AsideNavigation/AsideNavigation.js +4 -9
  20. package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.js +2 -3
  21. package/dist/containers/AsideNavigation/useNavigationMenuItems.js +5 -6
  22. package/dist/containers/Authentication/Authentication.js +2 -4
  23. package/dist/containers/Node/NodeStructure/Pdisk.js +4 -4
  24. package/dist/containers/Nodes/Nodes.js +19 -15
  25. package/dist/containers/Nodes/VirtualNodes.js +23 -6
  26. package/dist/containers/PDiskPage/PDiskPage.js +2 -2
  27. package/dist/containers/PDiskPage/i18n/index.d.ts +1 -1
  28. package/dist/containers/Storage/Storage.js +50 -22
  29. package/dist/containers/Storage/StorageGroups/getStorageGroupsColumns.js +2 -2
  30. package/dist/containers/Storage/VirtualStorage.js +32 -10
  31. package/dist/containers/Storage/utils/index.d.ts +4 -1
  32. package/dist/containers/Storage/utils/index.js +29 -0
  33. package/dist/containers/Tablet/Tablet.js +3 -3
  34. package/dist/containers/Tablet/i18n/index.d.ts +1 -1
  35. package/dist/containers/Tablets/Tablets.d.ts +1 -2
  36. package/dist/containers/Tablets/Tablets.js +112 -53
  37. package/dist/containers/Tablets/i18n/en.json +9 -4
  38. package/dist/containers/Tablets/i18n/index.d.ts +1 -1
  39. package/dist/containers/Tablets/i18n/index.js +1 -2
  40. package/dist/containers/Tenant/Diagnostics/Diagnostics.js +5 -5
  41. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +7 -0
  42. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +2 -0
  43. package/dist/containers/Tenant/Diagnostics/HotKeys/HotKeys.js +3 -2
  44. package/dist/containers/Tenant/Diagnostics/Network/Network.js +3 -3
  45. package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +1 -0
  46. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.js +2 -2
  47. package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js +2 -8
  48. package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +10 -7
  49. package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.js +1 -1
  50. package/dist/containers/Tenant/Query/Issues/Issues.js +6 -9
  51. package/dist/containers/Tenant/Query/Preview/Preview.js +5 -5
  52. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.d.ts +1 -1
  53. package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js +4 -4
  54. package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.js +3 -3
  55. package/dist/containers/Tenant/Schema/SchemaViewer/helpers.js +7 -6
  56. package/dist/containers/Tenant/i18n/en.json +2 -1
  57. package/dist/containers/Tenant/i18n/index.d.ts +1 -1
  58. package/dist/containers/Tenant/i18n/index.js +1 -2
  59. package/dist/containers/Tenant/utils/ToggleButton.scss +0 -2
  60. package/dist/containers/Tenant/utils/paneVisibilityToggleHelpers.js +4 -4
  61. package/dist/containers/Tenant/utils/queryTemplates.d.ts +2 -0
  62. package/dist/containers/Tenant/utils/queryTemplates.js +6 -0
  63. package/dist/containers/Tenant/utils/schema.d.ts +4 -3
  64. package/dist/containers/Tenant/utils/schema.js +12 -3
  65. package/dist/containers/Tenant/utils/schemaActions.js +10 -1
  66. package/dist/containers/Tenant/utils/schemaControls.js +4 -3
  67. package/dist/containers/VDiskPage/VDiskPage.js +2 -2
  68. package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
  69. package/dist/routes.d.ts +1 -1
  70. package/dist/services/settings.d.ts +18 -1
  71. package/dist/store/configureStore.d.ts +0 -8
  72. package/dist/store/defaultStore.d.ts +0 -4
  73. package/dist/store/reducers/authentication/authentication.d.ts +0 -6
  74. package/dist/store/reducers/executeQuery.d.ts +0 -2
  75. package/dist/store/reducers/explainQuery.d.ts +0 -4
  76. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +0 -40
  77. package/dist/store/reducers/host.d.ts +0 -2
  78. package/dist/store/reducers/index.d.ts +0 -6
  79. package/dist/store/reducers/index.js +0 -4
  80. package/dist/store/reducers/node/selectors.d.ts +0 -2
  81. package/dist/store/reducers/nodes/nodes.d.ts +1 -5
  82. package/dist/store/reducers/nodes/nodes.js +0 -27
  83. package/dist/store/reducers/nodes/types.d.ts +4 -13
  84. package/dist/store/reducers/nodesList.d.ts +0 -2
  85. package/dist/store/reducers/schema/schema.d.ts +0 -2
  86. package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +0 -2
  87. package/dist/store/reducers/storage/selectors.d.ts +2 -17
  88. package/dist/store/reducers/storage/selectors.js +1 -36
  89. package/dist/store/reducers/storage/storage.d.ts +2 -6
  90. package/dist/store/reducers/storage/storage.js +0 -44
  91. package/dist/store/reducers/storage/types.d.ts +15 -22
  92. package/dist/store/reducers/storage/types.js +4 -1
  93. package/dist/store/reducers/tablets.d.ts +92 -1
  94. package/dist/store/reducers/tablets.js +16 -1
  95. package/dist/store/reducers/tabletsFilters.d.ts +0 -2
  96. package/dist/store/reducers/tenant/tenant.d.ts +2 -2
  97. package/dist/store/reducers/tenant/tenant.js +10 -1
  98. package/dist/store/reducers/tenant/types.d.ts +8 -3
  99. package/dist/store/reducers/tenant/types.js +3 -1
  100. package/dist/store/reducers/tenants/selectors.d.ts +0 -18
  101. package/dist/store/reducers/tenants/utils.d.ts +4 -4
  102. package/dist/store/reducers/tenants/utils.js +8 -8
  103. package/dist/store/reducers/topic.d.ts +0 -30
  104. package/dist/store/state-url-mapping.js +0 -22
  105. package/dist/types/api/schema/schema.d.ts +4 -1
  106. package/dist/types/api/schema/schema.js +1 -0
  107. package/dist/types/api/schema/view.d.ts +8 -0
  108. package/dist/types/api/schema/view.js +1 -0
  109. package/dist/utils/nodes.d.ts +2 -0
  110. package/dist/utils/nodes.js +4 -0
  111. package/dist/utils/tablet.d.ts +2 -0
  112. package/dist/utils/tablet.js +14 -0
  113. package/package.json +4 -3
  114. package/dist/assets/icons/bug.svg +0 -1
  115. package/dist/assets/icons/circle-exclamation.svg +0 -1
  116. package/dist/assets/icons/circle-info.svg +0 -1
  117. package/dist/assets/icons/circle-xmark.svg +0 -1
  118. package/dist/assets/icons/close.svg +0 -1
  119. package/dist/assets/icons/control-menu-button.svg +0 -1
  120. package/dist/assets/icons/dots.svg +0 -1
  121. package/dist/assets/icons/hide.svg +0 -1
  122. package/dist/assets/icons/question.svg +0 -1
  123. package/dist/assets/icons/server.svg +0 -1
  124. package/dist/assets/icons/settings-with-dot.svg +0 -1
  125. package/dist/assets/icons/settings.svg +0 -1
  126. package/dist/assets/icons/shield.svg +0 -3
  127. package/dist/assets/icons/show.svg +0 -1
  128. package/dist/assets/icons/signIn.svg +0 -1
  129. package/dist/assets/icons/signOut.svg +0 -1
  130. package/dist/assets/icons/storage.svg +0 -1
  131. package/dist/assets/icons/support.svg +0 -1
  132. package/dist/assets/icons/triangle-exclamation.svg +0 -1
  133. package/dist/assets/icons/update-arrow.svg +0 -6
  134. package/dist/components/Icon/Icon.d.ts +0 -14
  135. package/dist/components/Icon/Icon.js +0 -16
  136. package/dist/components/Icon/index.d.ts +0 -1
  137. package/dist/components/Icon/index.js +0 -1
  138. package/dist/containers/AppIcons/AppIcons.d.ts +0 -2
  139. package/dist/containers/AppIcons/AppIcons.js +0 -9
  140. package/dist/containers/Tablets/Tablets.scss +0 -35
  141. package/dist/containers/Tablets/i18n/ru.json +0 -6
  142. package/dist/containers/Tenant/i18n/ru.json +0 -22
@@ -1,8 +1,99 @@
1
- import type { ETabletState, EType } from '../../types/api/tablet';
1
+ import type { ETabletState, EType, TTabletStateInfo } from '../../types/api/tablet';
2
2
  import type { TabletsApiRequestParams, TabletsState } from '../../types/store/tablets';
3
+ import type { RootState } from '../defaultStore';
3
4
  export declare const setStateFilter: import("@reduxjs/toolkit").ActionCreatorWithPayload<ETabletState[], "tablets/setStateFilter">, setTypeFilter: import("@reduxjs/toolkit").ActionCreatorWithPayload<EType[], "tablets/setTypeFilter">;
4
5
  declare const _default: import("redux").Reducer<TabletsState>;
5
6
  export default _default;
6
7
  export declare const tabletsApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("./api")._NEVER, unknown, {}>, {
7
8
  getTabletsInfo: import("@reduxjs/toolkit/query").QueryDefinition<TabletsApiRequestParams, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("./api")._NEVER, unknown, {}>, "All", import("../../types/api/tablet").TEvTabletStateResponse | undefined, "api">;
8
9
  }, "api", "All", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/dist/query/react").reactHooksModuleName>;
10
+ export declare const selectTabletsWithFqdn: ((state: {
11
+ api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
12
+ singleClusterMode: boolean;
13
+ cluster: import("./cluster/types").ClusterState;
14
+ tenant: import("./tenant/types").TenantState;
15
+ tooltip: import("../../types/store/tooltip").ITooltipState;
16
+ tablets: TabletsState;
17
+ schema: import("./schema/types").SchemaState;
18
+ host: import("../../types/store/host").IHostState;
19
+ tenants: import("./tenants/types").TenantsState;
20
+ partitions: import("./partitions/types").PartitionsState;
21
+ executeQuery: import("../../types/store/executeQuery").ExecuteQueryState;
22
+ explainQuery: import("../../types/store/explainQuery").ExplainQueryState;
23
+ tabletsFilters: {
24
+ loading: boolean;
25
+ requestTime: number;
26
+ data: undefined;
27
+ wasLoaded: boolean;
28
+ stateFilter: never[];
29
+ typeFilter: never[];
30
+ } | {
31
+ tabletsData: any;
32
+ nodes: any;
33
+ loading: boolean;
34
+ wasLoaded: boolean;
35
+ timeoutForRequest: number;
36
+ error: undefined;
37
+ data: undefined;
38
+ stateFilter: never[];
39
+ typeFilter: never[];
40
+ } | {
41
+ error: any;
42
+ loading: boolean;
43
+ data: undefined;
44
+ wasLoaded: boolean;
45
+ stateFilter: never[];
46
+ typeFilter: never[];
47
+ } | {
48
+ stateFilter: any;
49
+ data: undefined;
50
+ loading: boolean;
51
+ wasLoaded: boolean;
52
+ typeFilter: never[];
53
+ } | {
54
+ typeFilter: any;
55
+ data: undefined;
56
+ loading: boolean;
57
+ wasLoaded: boolean;
58
+ stateFilter: never[];
59
+ };
60
+ heatmap: import("../../types/store/heatmap").IHeatmapState;
61
+ settings: import("./settings/types").SettingsState;
62
+ schemaAcl: import("./schemaAcl/types").SchemaAclState;
63
+ executeTopQueries: import("./executeTopQueries/types").TopQueriesFilters;
64
+ shardsWorkload: import("./shardsWorkload/types").ShardsWorkloadFilters;
65
+ hotKeys: import("./hotKeys/types").HotKeysState;
66
+ authentication: import("./authentication/types").AuthenticationState;
67
+ header: import("./header/types").HeaderState;
68
+ saveQuery: string | null;
69
+ fullscreen: boolean;
70
+ clusters: import("./clusters/types").ClustersFilters;
71
+ }, nodeId: string | undefined, path: string | undefined) => (TTabletStateInfo & {
72
+ fqdn?: string | undefined;
73
+ })[]) & {
74
+ clearCache: () => void;
75
+ resultsCount: () => number;
76
+ resetResultsCount: () => void;
77
+ } & {
78
+ resultFunc: (resultFuncArgs_0: import("../../types/api/tablet").TEvTabletStateResponse | undefined, resultFuncArgs_1: import("../../types/store/nodesList").NodesMap | undefined) => (TTabletStateInfo & {
79
+ fqdn?: string | undefined;
80
+ })[];
81
+ memoizedResultFunc: ((resultFuncArgs_0: import("../../types/api/tablet").TEvTabletStateResponse | undefined, resultFuncArgs_1: import("../../types/store/nodesList").NodesMap | undefined) => (TTabletStateInfo & {
82
+ fqdn?: string | undefined;
83
+ })[]) & {
84
+ clearCache: () => void;
85
+ resultsCount: () => number;
86
+ resetResultsCount: () => void;
87
+ };
88
+ lastResult: () => (TTabletStateInfo & {
89
+ fqdn?: string | undefined;
90
+ })[];
91
+ dependencies: [(state: RootState, nodeId: string | undefined, path: string | undefined) => import("../../types/api/tablet").TEvTabletStateResponse | undefined, (state: RootState) => import("../../types/store/nodesList").NodesMap | undefined];
92
+ recomputations: () => number;
93
+ resetRecomputations: () => void;
94
+ dependencyRecomputations: () => number;
95
+ resetDependencyRecomputations: () => void;
96
+ } & {
97
+ argsMemoize: typeof import("reselect").weakMapMemoize;
98
+ memoize: typeof import("reselect").weakMapMemoize;
99
+ };
@@ -1,5 +1,6 @@
1
- import { createSlice } from '@reduxjs/toolkit';
1
+ import { createSelector, createSlice } from '@reduxjs/toolkit';
2
2
  import { api } from './api';
3
+ import { selectNodesMap } from './nodesList';
3
4
  const initialState = {
4
5
  stateFilter: [],
5
6
  typeFilter: [],
@@ -35,3 +36,17 @@ export const tabletsApi = api.injectEndpoints({
35
36
  }),
36
37
  overrideExisting: 'throw',
37
38
  });
39
+ const getTabletsInfoSelector = createSelector((nodeId, path) => ({ nodeId, path }), ({ nodeId, path }) => tabletsApi.endpoints.getTabletsInfo.select(nodeId === undefined ? { path } : { nodes: [nodeId] }));
40
+ const selectGetTabletsInfo = createSelector((state) => state, (_state, nodeId, path) => getTabletsInfoSelector(nodeId, path), (state, selectTabletsInfo) => selectTabletsInfo(state).data);
41
+ export const selectTabletsWithFqdn = createSelector((state, nodeId, path) => selectGetTabletsInfo(state, nodeId, path), (state) => selectNodesMap(state), (data, nodesMap) => {
42
+ if (!(data === null || data === void 0 ? void 0 : data.TabletStateInfo)) {
43
+ return [];
44
+ }
45
+ if (!nodesMap) {
46
+ return data.TabletStateInfo;
47
+ }
48
+ return data.TabletStateInfo.map((tablet) => {
49
+ const fqdn = tablet.NodeId === undefined ? undefined : nodesMap.get(tablet.NodeId);
50
+ return Object.assign(Object.assign({}, tablet), { fqdn });
51
+ });
52
+ });
@@ -1,10 +1,8 @@
1
1
  export function getTabletsInfo(data: any): (dispatch: import("redux").Dispatch<import("redux").UnknownAction>, getState: () => {
2
2
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
3
3
  singleClusterMode: boolean;
4
- nodes: import("./nodes/types").NodesState;
5
4
  cluster: import("./cluster/types").ClusterState;
6
5
  tenant: import("./tenant/types").TenantState;
7
- storage: import("./storage/types").StorageState;
8
6
  tooltip: import("../../types/store/tooltip").ITooltipState;
9
7
  tablets: import("../../types/store/tablets").TabletsState;
10
8
  schema: import("./schema/types").SchemaState;
@@ -1,7 +1,7 @@
1
- import type { TenantDiagnosticsTab, TenantMetricsTab, TenantPage, TenantQueryTab, TenantState, TenantSummaryTab } from './types';
1
+ import type { TenantDiagnosticsTab, TenantMetricsTab, TenantQueryTab, TenantState, TenantSummaryTab } from './types';
2
2
  declare const _default: import("redux").Reducer<TenantState>;
3
3
  export default _default;
4
- export declare const setTenantPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<TenantPage, "tenant/setTenantPage">, setQueryTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<TenantQueryTab, "tenant/setQueryTab">, setDiagnosticsTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<TenantDiagnosticsTab, "tenant/setDiagnosticsTab">, setSummaryTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<TenantSummaryTab, "tenant/setSummaryTab">, setMetricsTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<TenantMetricsTab, "tenant/setMetricsTab">;
4
+ export declare const setTenantPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<"query" | "diagnostics", "tenant/setTenantPage">, setQueryTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<TenantQueryTab, "tenant/setQueryTab">, setDiagnosticsTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<TenantDiagnosticsTab, "tenant/setDiagnosticsTab">, setSummaryTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<TenantSummaryTab, "tenant/setSummaryTab">, setMetricsTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<TenantMetricsTab, "tenant/setMetricsTab">;
5
5
  export declare const tenantApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, {
6
6
  getTenantInfo: import("@reduxjs/toolkit/query").QueryDefinition<{
7
7
  path: string;
@@ -1,8 +1,17 @@
1
1
  import { createSlice } from '@reduxjs/toolkit';
2
+ import { DEFAULT_USER_SETTINGS, settingsManager } from '../../../services/settings';
3
+ import { TENANT_INITIAL_PAGE_KEY } from '../../../utils/constants';
2
4
  import { api } from '../api';
5
+ import { tenantPageSchema } from './types';
6
+ const tenantPage = tenantPageSchema
7
+ .catch(DEFAULT_USER_SETTINGS[TENANT_INITIAL_PAGE_KEY])
8
+ .parse(settingsManager.readUserSettingsValue(TENANT_INITIAL_PAGE_KEY));
9
+ const initialState = {
10
+ tenantPage,
11
+ };
3
12
  const slice = createSlice({
4
13
  name: 'tenant',
5
- initialState: {},
14
+ initialState,
6
15
  reducers: {
7
16
  setTenantPage: (state, action) => {
8
17
  state.tenantPage = action.payload;
@@ -1,12 +1,17 @@
1
+ import { z } from 'zod';
1
2
  import type { ValueOf } from '../../../types/common';
2
- import type { TENANT_DIAGNOSTICS_TABS_IDS, TENANT_METRICS_TABS_IDS, TENANT_PAGES_IDS, TENANT_QUERY_TABS_ID, TENANT_SUMMARY_TABS_IDS } from './constants';
3
- export type TenantPage = ValueOf<typeof TENANT_PAGES_IDS>;
3
+ import type { TENANT_DIAGNOSTICS_TABS_IDS, TENANT_METRICS_TABS_IDS, TENANT_QUERY_TABS_ID, TENANT_SUMMARY_TABS_IDS } from './constants';
4
+ export declare const tenantPageSchema: z.ZodNativeEnum<{
5
+ readonly query: "query";
6
+ readonly diagnostics: "diagnostics";
7
+ }>;
8
+ export type TenantPage = z.infer<typeof tenantPageSchema>;
4
9
  export type TenantQueryTab = ValueOf<typeof TENANT_QUERY_TABS_ID>;
5
10
  export type TenantDiagnosticsTab = ValueOf<typeof TENANT_DIAGNOSTICS_TABS_IDS>;
6
11
  export type TenantSummaryTab = ValueOf<typeof TENANT_SUMMARY_TABS_IDS>;
7
12
  export type TenantMetricsTab = ValueOf<typeof TENANT_METRICS_TABS_IDS>;
8
13
  export interface TenantState {
9
- tenantPage?: TenantPage;
14
+ tenantPage: TenantPage;
10
15
  queryTab?: TenantQueryTab;
11
16
  diagnosticsTab?: TenantDiagnosticsTab;
12
17
  summaryTab?: TenantSummaryTab;
@@ -1 +1,3 @@
1
- export {};
1
+ import { z } from 'zod';
2
+ import { TENANT_PAGES_IDS } from './constants';
3
+ export const tenantPageSchema = z.nativeEnum(TENANT_PAGES_IDS);
@@ -4,10 +4,8 @@ import type { PreparedTenant, TenantsStateSlice } from './types';
4
4
  export declare const selectTenants: ((state: {
5
5
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
6
6
  singleClusterMode: boolean;
7
- nodes: import("../nodes/types").NodesState;
8
7
  cluster: import("../cluster/types").ClusterState;
9
8
  tenant: import("../tenant/types").TenantState;
10
- storage: import("../storage/types").StorageState;
11
9
  tooltip: import("../../../types/store/tooltip").ITooltipState;
12
10
  tablets: import("../../../types/store/tablets").TabletsState;
13
11
  schema: import("../schema/types").SchemaState;
@@ -72,10 +70,8 @@ export declare const selectTenants: ((state: {
72
70
  resultFunc: (resultFuncArgs_0: {
73
71
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
74
72
  singleClusterMode: boolean;
75
- nodes: import("../nodes/types").NodesState;
76
73
  cluster: import("../cluster/types").ClusterState;
77
74
  tenant: import("../tenant/types").TenantState;
78
- storage: import("../storage/types").StorageState;
79
75
  tooltip: import("../../../types/store/tooltip").ITooltipState;
80
76
  tablets: import("../../../types/store/tablets").TabletsState;
81
77
  schema: import("../schema/types").SchemaState;
@@ -206,10 +202,8 @@ export declare const selectTenants: ((state: {
206
202
  memoizedResultFunc: ((resultFuncArgs_0: {
207
203
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
208
204
  singleClusterMode: boolean;
209
- nodes: import("../nodes/types").NodesState;
210
205
  cluster: import("../cluster/types").ClusterState;
211
206
  tenant: import("../tenant/types").TenantState;
212
- storage: import("../storage/types").StorageState;
213
207
  tooltip: import("../../../types/store/tooltip").ITooltipState;
214
208
  tablets: import("../../../types/store/tablets").TabletsState;
215
209
  schema: import("../schema/types").SchemaState;
@@ -345,10 +339,8 @@ export declare const selectTenants: ((state: {
345
339
  dependencies: [(state: RootState) => {
346
340
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
347
341
  singleClusterMode: boolean;
348
- nodes: import("../nodes/types").NodesState;
349
342
  cluster: import("../cluster/types").ClusterState;
350
343
  tenant: import("../tenant/types").TenantState;
351
- storage: import("../storage/types").StorageState;
352
344
  tooltip: import("../../../types/store/tooltip").ITooltipState;
353
345
  tablets: import("../../../types/store/tablets").TabletsState;
354
346
  schema: import("../schema/types").SchemaState;
@@ -488,10 +480,8 @@ export declare const selectTenantsSearchValue: (state: TenantsStateSlice) => str
488
480
  export declare const selectFilteredTenants: ((state: {
489
481
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
490
482
  singleClusterMode: boolean;
491
- nodes: import("../nodes/types").NodesState;
492
483
  cluster: import("../cluster/types").ClusterState;
493
484
  tenant: import("../tenant/types").TenantState;
494
- storage: import("../storage/types").StorageState;
495
485
  tooltip: import("../../../types/store/tooltip").ITooltipState;
496
486
  tablets: import("../../../types/store/tablets").TabletsState;
497
487
  schema: import("../schema/types").SchemaState;
@@ -563,10 +553,8 @@ export declare const selectFilteredTenants: ((state: {
563
553
  dependencies: [((state: {
564
554
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
565
555
  singleClusterMode: boolean;
566
- nodes: import("../nodes/types").NodesState;
567
556
  cluster: import("../cluster/types").ClusterState;
568
557
  tenant: import("../tenant/types").TenantState;
569
- storage: import("../storage/types").StorageState;
570
558
  tooltip: import("../../../types/store/tooltip").ITooltipState;
571
559
  tablets: import("../../../types/store/tablets").TabletsState;
572
560
  schema: import("../schema/types").SchemaState;
@@ -631,10 +619,8 @@ export declare const selectFilteredTenants: ((state: {
631
619
  resultFunc: (resultFuncArgs_0: {
632
620
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
633
621
  singleClusterMode: boolean;
634
- nodes: import("../nodes/types").NodesState;
635
622
  cluster: import("../cluster/types").ClusterState;
636
623
  tenant: import("../tenant/types").TenantState;
637
- storage: import("../storage/types").StorageState;
638
624
  tooltip: import("../../../types/store/tooltip").ITooltipState;
639
625
  tablets: import("../../../types/store/tablets").TabletsState;
640
626
  schema: import("../schema/types").SchemaState;
@@ -765,10 +751,8 @@ export declare const selectFilteredTenants: ((state: {
765
751
  memoizedResultFunc: ((resultFuncArgs_0: {
766
752
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
767
753
  singleClusterMode: boolean;
768
- nodes: import("../nodes/types").NodesState;
769
754
  cluster: import("../cluster/types").ClusterState;
770
755
  tenant: import("../tenant/types").TenantState;
771
- storage: import("../storage/types").StorageState;
772
756
  tooltip: import("../../../types/store/tooltip").ITooltipState;
773
757
  tablets: import("../../../types/store/tablets").TabletsState;
774
758
  schema: import("../schema/types").SchemaState;
@@ -904,10 +888,8 @@ export declare const selectFilteredTenants: ((state: {
904
888
  dependencies: [(state: RootState) => {
905
889
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
906
890
  singleClusterMode: boolean;
907
- nodes: import("../nodes/types").NodesState;
908
891
  cluster: import("../cluster/types").ClusterState;
909
892
  tenant: import("../tenant/types").TenantState;
910
- storage: import("../storage/types").StorageState;
911
893
  tooltip: import("../../../types/store/tooltip").ITooltipState;
912
894
  tablets: import("../../../types/store/tablets").TabletsState;
913
895
  schema: import("../schema/types").SchemaState;
@@ -11,13 +11,13 @@ export interface TenantMetricStats<T = string> {
11
11
  export type TenantPoolsStats = TenantMetricStats<PoolName>;
12
12
  export type TenantStorageStats = TenantMetricStats<EType>;
13
13
  export declare const calculateTenantMetrics: (tenant?: TTenant) => {
14
- memory: number | undefined;
15
- blobStorage: number | undefined;
16
- tabletStorage: number | undefined;
14
+ memory: number;
15
+ blobStorage: number;
16
+ tabletStorage: number;
17
17
  memoryLimit: number | undefined;
18
18
  blobStorageLimit: number | undefined;
19
19
  tabletStorageLimit: number | undefined;
20
- cpu: number | undefined;
20
+ cpu: number;
21
21
  poolsStats: TenantPoolsStats[] | undefined;
22
22
  memoryStats: TenantMetricStats<string>[];
23
23
  blobStorageStats: TenantStorageStats[];
@@ -25,7 +25,7 @@ const calculatePoolsStats = (poolsStats) => {
25
25
  return poolsStats
26
26
  .map((pool) => {
27
27
  if (pool.Name) {
28
- const usage = Number(pool.Usage);
28
+ const usage = Number(pool.Usage) || 0;
29
29
  const limit = Number(pool.Threads);
30
30
  const used = limit * usage;
31
31
  // Multiply usage by 100 to match with usage to status checkers
@@ -37,16 +37,16 @@ const calculatePoolsStats = (poolsStats) => {
37
37
  };
38
38
  export const calculateTenantMetrics = (tenant = {}) => {
39
39
  const { CoresUsed, MemoryUsed, StorageAllocatedSize, MemoryLimit, StorageAllocatedLimit, PoolStats, Metrics = {}, DatabaseQuotas = {}, StorageUsage, QuotaUsage, } = tenant;
40
- const cpu = isNumeric(CoresUsed) ? Number(CoresUsed) * 1000000 : undefined;
41
- const memory = isNumeric(MemoryUsed) ? Number(MemoryUsed) : undefined;
42
- const blobStorage = isNumeric(StorageAllocatedSize) ? Number(StorageAllocatedSize) : undefined;
43
- const tabletStorage = isNumeric(Metrics.Storage) ? Number(Metrics.Storage) : undefined;
40
+ const cpu = Number(CoresUsed) * 1000000 || 0;
41
+ const memory = Number(MemoryUsed) || 0;
42
+ const blobStorage = Number(StorageAllocatedSize) || 0;
43
+ const tabletStorage = Number(Metrics.Storage) || 0;
44
44
  const memoryLimit = isNumeric(MemoryLimit) ? Number(MemoryLimit) : undefined;
45
45
  const blobStorageLimit = isNumeric(StorageAllocatedLimit)
46
46
  ? Number(StorageAllocatedLimit)
47
47
  : undefined;
48
- const tabletStorageLimit = isNumeric(DatabaseQuotas.data_size_hard_quota)
49
- ? Number(DatabaseQuotas.data_size_hard_quota)
48
+ const tabletStorageLimit = isNumeric(DatabaseQuotas.data_size_soft_quota)
49
+ ? Number(DatabaseQuotas.data_size_soft_quota)
50
50
  : undefined;
51
51
  const poolsStats = calculatePoolsStats(PoolStats);
52
52
  let blobStorageStats;
@@ -87,7 +87,7 @@ export const calculateTenantMetrics = (tenant = {}) => {
87
87
  };
88
88
  });
89
89
  }
90
- else if (tabletStorage !== undefined && tabletStorageLimit) {
90
+ else if (tabletStorageLimit) {
91
91
  tabletStorageStats = [
92
92
  {
93
93
  name: EType.SSD,
@@ -7,10 +7,8 @@ export declare const topicApi: import("@reduxjs/toolkit/query").Api<import("@red
7
7
  export declare const selectConsumersNames: ((state: {
8
8
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
9
9
  singleClusterMode: boolean;
10
- nodes: import("./nodes/types").NodesState;
11
10
  cluster: import("./cluster/types").ClusterState;
12
11
  tenant: import("./tenant/types").TenantState;
13
- storage: import("./storage/types").StorageState;
14
12
  tooltip: import("../../types/store/tooltip").ITooltipState;
15
13
  tablets: import("../../types/store/tablets").TabletsState;
16
14
  schema: import("./schema/types").SchemaState;
@@ -82,10 +80,8 @@ export declare const selectConsumersNames: ((state: {
82
80
  dependencies: [((state: {
83
81
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
84
82
  singleClusterMode: boolean;
85
- nodes: import("./nodes/types").NodesState;
86
83
  cluster: import("./cluster/types").ClusterState;
87
84
  tenant: import("./tenant/types").TenantState;
88
- storage: import("./storage/types").StorageState;
89
85
  tooltip: import("../../types/store/tooltip").ITooltipState;
90
86
  tablets: import("../../types/store/tablets").TabletsState;
91
87
  schema: import("./schema/types").SchemaState;
@@ -150,10 +146,8 @@ export declare const selectConsumersNames: ((state: {
150
146
  resultFunc: (resultFuncArgs_0: {
151
147
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
152
148
  singleClusterMode: boolean;
153
- nodes: import("./nodes/types").NodesState;
154
149
  cluster: import("./cluster/types").ClusterState;
155
150
  tenant: import("./tenant/types").TenantState;
156
- storage: import("./storage/types").StorageState;
157
151
  tooltip: import("../../types/store/tooltip").ITooltipState;
158
152
  tablets: import("../../types/store/tablets").TabletsState;
159
153
  schema: import("./schema/types").SchemaState;
@@ -284,10 +278,8 @@ export declare const selectConsumersNames: ((state: {
284
278
  memoizedResultFunc: ((resultFuncArgs_0: {
285
279
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
286
280
  singleClusterMode: boolean;
287
- nodes: import("./nodes/types").NodesState;
288
281
  cluster: import("./cluster/types").ClusterState;
289
282
  tenant: import("./tenant/types").TenantState;
290
- storage: import("./storage/types").StorageState;
291
283
  tooltip: import("../../types/store/tooltip").ITooltipState;
292
284
  tablets: import("../../types/store/tablets").TabletsState;
293
285
  schema: import("./schema/types").SchemaState;
@@ -423,10 +415,8 @@ export declare const selectConsumersNames: ((state: {
423
415
  dependencies: [(state: RootState) => {
424
416
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
425
417
  singleClusterMode: boolean;
426
- nodes: import("./nodes/types").NodesState;
427
418
  cluster: import("./cluster/types").ClusterState;
428
419
  tenant: import("./tenant/types").TenantState;
429
- storage: import("./storage/types").StorageState;
430
420
  tooltip: import("../../types/store/tooltip").ITooltipState;
431
421
  tablets: import("../../types/store/tablets").TabletsState;
432
422
  schema: import("./schema/types").SchemaState;
@@ -573,10 +563,8 @@ export declare const selectConsumersNames: ((state: {
573
563
  export declare const selectPreparedTopicStats: ((state: {
574
564
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
575
565
  singleClusterMode: boolean;
576
- nodes: import("./nodes/types").NodesState;
577
566
  cluster: import("./cluster/types").ClusterState;
578
567
  tenant: import("./tenant/types").TenantState;
579
- storage: import("./storage/types").StorageState;
580
568
  tooltip: import("../../types/store/tooltip").ITooltipState;
581
569
  tablets: import("../../types/store/tablets").TabletsState;
582
570
  schema: import("./schema/types").SchemaState;
@@ -668,10 +656,8 @@ export declare const selectPreparedTopicStats: ((state: {
668
656
  dependencies: [((state: {
669
657
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
670
658
  singleClusterMode: boolean;
671
- nodes: import("./nodes/types").NodesState;
672
659
  cluster: import("./cluster/types").ClusterState;
673
660
  tenant: import("./tenant/types").TenantState;
674
- storage: import("./storage/types").StorageState;
675
661
  tooltip: import("../../types/store/tooltip").ITooltipState;
676
662
  tablets: import("../../types/store/tablets").TabletsState;
677
663
  schema: import("./schema/types").SchemaState;
@@ -736,10 +722,8 @@ export declare const selectPreparedTopicStats: ((state: {
736
722
  resultFunc: (resultFuncArgs_0: {
737
723
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
738
724
  singleClusterMode: boolean;
739
- nodes: import("./nodes/types").NodesState;
740
725
  cluster: import("./cluster/types").ClusterState;
741
726
  tenant: import("./tenant/types").TenantState;
742
- storage: import("./storage/types").StorageState;
743
727
  tooltip: import("../../types/store/tooltip").ITooltipState;
744
728
  tablets: import("../../types/store/tablets").TabletsState;
745
729
  schema: import("./schema/types").SchemaState;
@@ -870,10 +854,8 @@ export declare const selectPreparedTopicStats: ((state: {
870
854
  memoizedResultFunc: ((resultFuncArgs_0: {
871
855
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
872
856
  singleClusterMode: boolean;
873
- nodes: import("./nodes/types").NodesState;
874
857
  cluster: import("./cluster/types").ClusterState;
875
858
  tenant: import("./tenant/types").TenantState;
876
- storage: import("./storage/types").StorageState;
877
859
  tooltip: import("../../types/store/tooltip").ITooltipState;
878
860
  tablets: import("../../types/store/tablets").TabletsState;
879
861
  schema: import("./schema/types").SchemaState;
@@ -1009,10 +991,8 @@ export declare const selectPreparedTopicStats: ((state: {
1009
991
  dependencies: [(state: RootState) => {
1010
992
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
1011
993
  singleClusterMode: boolean;
1012
- nodes: import("./nodes/types").NodesState;
1013
994
  cluster: import("./cluster/types").ClusterState;
1014
995
  tenant: import("./tenant/types").TenantState;
1015
- storage: import("./storage/types").StorageState;
1016
996
  tooltip: import("../../types/store/tooltip").ITooltipState;
1017
997
  tablets: import("../../types/store/tablets").TabletsState;
1018
998
  schema: import("./schema/types").SchemaState;
@@ -1159,10 +1139,8 @@ export declare const selectPreparedTopicStats: ((state: {
1159
1139
  export declare const selectPreparedConsumersData: ((state: {
1160
1140
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
1161
1141
  singleClusterMode: boolean;
1162
- nodes: import("./nodes/types").NodesState;
1163
1142
  cluster: import("./cluster/types").ClusterState;
1164
1143
  tenant: import("./tenant/types").TenantState;
1165
- storage: import("./storage/types").StorageState;
1166
1144
  tooltip: import("../../types/store/tooltip").ITooltipState;
1167
1145
  tablets: import("../../types/store/tablets").TabletsState;
1168
1146
  schema: import("./schema/types").SchemaState;
@@ -1258,10 +1236,8 @@ export declare const selectPreparedConsumersData: ((state: {
1258
1236
  dependencies: [((state: {
1259
1237
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
1260
1238
  singleClusterMode: boolean;
1261
- nodes: import("./nodes/types").NodesState;
1262
1239
  cluster: import("./cluster/types").ClusterState;
1263
1240
  tenant: import("./tenant/types").TenantState;
1264
- storage: import("./storage/types").StorageState;
1265
1241
  tooltip: import("../../types/store/tooltip").ITooltipState;
1266
1242
  tablets: import("../../types/store/tablets").TabletsState;
1267
1243
  schema: import("./schema/types").SchemaState;
@@ -1326,10 +1302,8 @@ export declare const selectPreparedConsumersData: ((state: {
1326
1302
  resultFunc: (resultFuncArgs_0: {
1327
1303
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
1328
1304
  singleClusterMode: boolean;
1329
- nodes: import("./nodes/types").NodesState;
1330
1305
  cluster: import("./cluster/types").ClusterState;
1331
1306
  tenant: import("./tenant/types").TenantState;
1332
- storage: import("./storage/types").StorageState;
1333
1307
  tooltip: import("../../types/store/tooltip").ITooltipState;
1334
1308
  tablets: import("../../types/store/tablets").TabletsState;
1335
1309
  schema: import("./schema/types").SchemaState;
@@ -1460,10 +1434,8 @@ export declare const selectPreparedConsumersData: ((state: {
1460
1434
  memoizedResultFunc: ((resultFuncArgs_0: {
1461
1435
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
1462
1436
  singleClusterMode: boolean;
1463
- nodes: import("./nodes/types").NodesState;
1464
1437
  cluster: import("./cluster/types").ClusterState;
1465
1438
  tenant: import("./tenant/types").TenantState;
1466
- storage: import("./storage/types").StorageState;
1467
1439
  tooltip: import("../../types/store/tooltip").ITooltipState;
1468
1440
  tablets: import("../../types/store/tablets").TabletsState;
1469
1441
  schema: import("./schema/types").SchemaState;
@@ -1599,10 +1571,8 @@ export declare const selectPreparedConsumersData: ((state: {
1599
1571
  dependencies: [(state: RootState) => {
1600
1572
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
1601
1573
  singleClusterMode: boolean;
1602
- nodes: import("./nodes/types").NodesState;
1603
1574
  cluster: import("./cluster/types").ClusterState;
1604
1575
  tenant: import("./tenant/types").TenantState;
1605
- storage: import("./storage/types").StorageState;
1606
1576
  tooltip: import("../../types/store/tooltip").ITooltipState;
1607
1577
  tablets: import("../../types/store/tablets").TabletsState;
1608
1578
  schema: import("./schema/types").SchemaState;
@@ -81,28 +81,6 @@ const paramSetup = {
81
81
  stateKey: 'partitions.selectedConsumer',
82
82
  },
83
83
  },
84
- '/cluster/storage': {
85
- storageType: {
86
- stateKey: 'storage.type',
87
- },
88
- visible: {
89
- stateKey: 'storage.visible',
90
- },
91
- uptimeFilter: {
92
- stateKey: 'storage.uptimeFilter',
93
- },
94
- search: {
95
- stateKey: 'storage.filter',
96
- },
97
- },
98
- '/cluster/nodes': {
99
- uptimeFilter: {
100
- stateKey: 'nodes.uptimeFilter',
101
- },
102
- search: {
103
- stateKey: 'nodes.searchValue',
104
- },
105
- },
106
84
  '/cluster/tenants': {
107
85
  search: {
108
86
  stateKey: 'tenants.searchValue',
@@ -6,6 +6,7 @@ import type { TExternalTableDescription } from './externalTable';
6
6
  import type { TPersQueueGroupDescription } from './persQueueGroup';
7
7
  import type { TTableDescription, TTableStats } from './table';
8
8
  import type { TIndexDescription } from './tableIndex';
9
+ import type { TViewDescription } from './view';
9
10
  /**
10
11
  * source: https://github.com/ydb-platform/ydb/blob/main/ydb/core/protos/flat_tx_scheme.proto
11
12
  */
@@ -68,6 +69,7 @@ export interface TPathDescription {
68
69
  PersQueueGroup?: TPersQueueGroupDescription;
69
70
  ExternalTableDescription?: TExternalTableDescription;
70
71
  ExternalDataSourceDescription?: TExternalDataSourceDescription;
72
+ ViewDescription?: TViewDescription;
71
73
  }
72
74
  export interface TDirEntry {
73
75
  Name?: string;
@@ -211,7 +213,8 @@ export declare enum EPathType {
211
213
  EPathTypeColumnTable = "EPathTypeColumnTable",
212
214
  EPathTypeCdcStream = "EPathTypeCdcStream",
213
215
  EPathTypeExternalDataSource = "EPathTypeExternalDataSource",
214
- EPathTypeExternalTable = "EPathTypeExternalTable"
216
+ EPathTypeExternalTable = "EPathTypeExternalTable",
217
+ EPathTypeView = "EPathTypeView"
215
218
  }
216
219
  export declare enum EPathSubType {
217
220
  EPathSubTypeEmpty = "EPathSubTypeEmpty",
@@ -40,6 +40,7 @@ export var EPathType;
40
40
  EPathType["EPathTypeCdcStream"] = "EPathTypeCdcStream";
41
41
  EPathType["EPathTypeExternalDataSource"] = "EPathTypeExternalDataSource";
42
42
  EPathType["EPathTypeExternalTable"] = "EPathTypeExternalTable";
43
+ EPathType["EPathTypeView"] = "EPathTypeView";
43
44
  })(EPathType || (EPathType = {}));
44
45
  export var EPathSubType;
45
46
  (function (EPathSubType) {
@@ -0,0 +1,8 @@
1
+ import type { TPathID } from './shared';
2
+ export interface TViewDescription {
3
+ Name?: string;
4
+ PathId?: TPathID;
5
+ /** uint64 */
6
+ Version?: string;
7
+ QueryText?: string;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,4 @@
1
+ import { z } from 'zod';
1
2
  import type { NodesPreparedEntity } from '../store/reducers/nodes/types';
2
3
  import type { ProblemFilterValue } from '../store/reducers/settings/types';
3
4
  import type { TSystemStateInfo } from '../types/api/nodes';
@@ -8,6 +9,7 @@ export declare enum NodesUptimeFilterValues {
8
9
  'All' = "All",
9
10
  'SmallUptime' = "SmallUptime"
10
11
  }
12
+ export declare const nodesUptimeFilterValuesSchema: z.ZodCatch<z.ZodNativeEnum<typeof NodesUptimeFilterValues>>;
11
13
  export declare const NodesUptimeFilterTitles: {
12
14
  All: string;
13
15
  SmallUptime: string;
@@ -1,3 +1,4 @@
1
+ import { z } from 'zod';
1
2
  import { ProblemFilterValues } from '../store/reducers/settings/settings';
2
3
  import { EFlag } from '../types/api/enums';
3
4
  import { HOUR_IN_SECONDS } from './constants';
@@ -7,6 +8,9 @@ export var NodesUptimeFilterValues;
7
8
  NodesUptimeFilterValues["All"] = "All";
8
9
  NodesUptimeFilterValues["SmallUptime"] = "SmallUptime";
9
10
  })(NodesUptimeFilterValues || (NodesUptimeFilterValues = {}));
11
+ export const nodesUptimeFilterValuesSchema = z
12
+ .nativeEnum(NodesUptimeFilterValues)
13
+ .catch(NodesUptimeFilterValues.All);
10
14
  export const NodesUptimeFilterTitles = {
11
15
  [NodesUptimeFilterValues.All]: 'All',
12
16
  [NodesUptimeFilterValues.SmallUptime]: 'Uptime < 1h',
@@ -1,5 +1,7 @@
1
+ import type { LabelProps } from '@gravity-ui/uikit';
1
2
  import { EFlag } from '../types/api/enums';
2
3
  import { ETabletState } from '../types/api/tablet';
3
4
  export declare const tabletStates: string[];
4
5
  export declare const tabletColorToTabletState: Record<EFlag, ETabletState[]>;
5
6
  export declare const mapTabletStateToColorState: (state?: ETabletState | EFlag) => EFlag;
7
+ export declare function mapTabletStateToLabelTheme(state?: ETabletState): LabelProps['theme'];