ydb-embedded-ui 12.6.0 → 12.7.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 (263) hide show
  1. package/dist/components/ClipboardButton/ClipboardButton.d.ts +9 -0
  2. package/dist/components/ClipboardButton/ClipboardButton.js +11 -0
  3. package/dist/components/ClipboardButton/ClipboardButton.js.map +1 -0
  4. package/dist/components/{SyntaxHighlighter → ClipboardButton}/i18n/index.js +1 -1
  5. package/dist/components/ClipboardButton/i18n/index.js.map +1 -0
  6. package/dist/components/FixedHeightQuery/FixedHeightQuery.js +1 -1
  7. package/dist/components/FixedHeightQuery/FixedHeightQuery.js.map +1 -1
  8. package/dist/components/FullNodeViewer/FullNodeViewer.js +1 -0
  9. package/dist/components/FullNodeViewer/FullNodeViewer.js.map +1 -1
  10. package/dist/components/JsonViewer/JsonViewer.d.ts +2 -0
  11. package/dist/components/JsonViewer/JsonViewer.js +4 -4
  12. package/dist/components/JsonViewer/JsonViewer.js.map +1 -1
  13. package/dist/components/JsonViewer/JsonViewer.scss +5 -9
  14. package/dist/components/JsonViewer/components/Filter.js +2 -2
  15. package/dist/components/JsonViewer/components/Filter.js.map +1 -1
  16. package/dist/components/JsonViewer/unipika/unipika.js +3 -0
  17. package/dist/components/JsonViewer/unipika/unipika.js.map +1 -1
  18. package/dist/components/NetworkTable/NetworkTable.d.ts +2 -2
  19. package/dist/components/NetworkTable/NetworkTable.js +2 -5
  20. package/dist/components/NetworkTable/NetworkTable.js.map +1 -1
  21. package/dist/components/NetworkTable/columns.d.ts +10 -11
  22. package/dist/components/NetworkTable/columns.js.map +1 -1
  23. package/dist/components/NodeHostWrapper/NodeHostWrapper.d.ts +4 -4
  24. package/dist/components/NodeHostWrapper/NodeHostWrapper.js +2 -14
  25. package/dist/components/NodeHostWrapper/NodeHostWrapper.js.map +1 -1
  26. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  27. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.d.ts +3 -8
  28. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js +8 -11
  29. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js.map +1 -1
  30. package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.scss +1 -1
  31. package/dist/components/SyntaxHighlighter/lazy.d.ts +1 -7
  32. package/dist/components/SyntaxHighlighter/types.d.ts +1 -1
  33. package/dist/components/TableWithControlsLayout/TableWithControlsLayout.scss +10 -5
  34. package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.d.ts +3 -4
  35. package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js +5 -5
  36. package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js.map +1 -1
  37. package/dist/components/TruncatedQuery/TruncatedQuery.js +2 -2
  38. package/dist/components/TruncatedQuery/TruncatedQuery.js.map +1 -1
  39. package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
  40. package/dist/components/nodesColumns/columns.d.ts +3 -3
  41. package/dist/components/nodesColumns/columns.js +4 -4
  42. package/dist/components/nodesColumns/columns.js.map +1 -1
  43. package/dist/components/nodesColumns/i18n/index.d.ts +1 -1
  44. package/dist/components/nodesColumns/types.d.ts +7 -2
  45. package/dist/containers/App/App.scss +10 -0
  46. package/dist/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.js +1 -3
  47. package/dist/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.js.map +1 -1
  48. package/dist/containers/AppWithClusters/ExtendedTenant/ExtendedTenant.js +1 -3
  49. package/dist/containers/AppWithClusters/ExtendedTenant/ExtendedTenant.js.map +1 -1
  50. package/dist/containers/Cluster/Cluster.d.ts +2 -3
  51. package/dist/containers/Cluster/Cluster.js +18 -10
  52. package/dist/containers/Cluster/Cluster.js.map +1 -1
  53. package/dist/containers/Cluster/Cluster.scss +10 -7
  54. package/dist/containers/Cluster/i18n/en.json +2 -1
  55. package/dist/containers/Cluster/i18n/index.d.ts +1 -1
  56. package/dist/containers/Cluster/utils.d.ts +4 -0
  57. package/dist/containers/Cluster/utils.js +8 -1
  58. package/dist/containers/Cluster/utils.js.map +1 -1
  59. package/dist/containers/Configs/Configs.d.ts +9 -0
  60. package/dist/containers/Configs/Configs.js +48 -0
  61. package/dist/containers/Configs/Configs.js.map +1 -0
  62. package/dist/containers/Configs/Configs.scss +25 -0
  63. package/dist/containers/Configs/components/Config/Config.d.ts +5 -0
  64. package/dist/containers/Configs/components/Config/Config.js +18 -0
  65. package/dist/containers/Configs/components/Config/Config.js.map +1 -0
  66. package/dist/containers/Configs/components/FeatureFlags/FeatureFlags.d.ts +7 -0
  67. package/dist/containers/{Tenant/Diagnostics/Configs/Configs.js → Configs/components/FeatureFlags/FeatureFlags.js} +12 -15
  68. package/dist/containers/Configs/components/FeatureFlags/FeatureFlags.js.map +1 -0
  69. package/dist/containers/{Tenant/Diagnostics/Configs/Configs.scss → Configs/components/FeatureFlags/FeatureFlags.scss} +1 -1
  70. package/dist/containers/Configs/components/Startup/Startup.d.ts +6 -0
  71. package/dist/containers/Configs/components/Startup/Startup.js +24 -0
  72. package/dist/containers/Configs/components/Startup/Startup.js.map +1 -0
  73. package/dist/containers/{Tenant/Diagnostics/Configs → Configs}/i18n/en.json +6 -2
  74. package/dist/containers/Configs/i18n/index.d.ts +2 -0
  75. package/dist/containers/{Tenant/Diagnostics/Configs → Configs}/i18n/index.js +1 -1
  76. package/dist/containers/Configs/i18n/index.js.map +1 -0
  77. package/dist/containers/Configs/types.d.ts +13 -0
  78. package/dist/containers/Configs/types.js +20 -0
  79. package/dist/containers/Configs/types.js.map +1 -0
  80. package/dist/containers/Configs/useConfigsQueryParams.d.ts +9 -0
  81. package/dist/containers/Configs/useConfigsQueryParams.js +43 -0
  82. package/dist/containers/Configs/useConfigsQueryParams.js.map +1 -0
  83. package/dist/containers/Header/Header.scss +2 -0
  84. package/dist/containers/Node/Node.js +21 -9
  85. package/dist/containers/Node/Node.js.map +1 -1
  86. package/dist/containers/Node/Node.scss +5 -0
  87. package/dist/containers/Node/NodePages.d.ts +5 -0
  88. package/dist/containers/Node/NodePages.js +7 -0
  89. package/dist/containers/Node/NodePages.js.map +1 -1
  90. package/dist/containers/Node/Threads/Threads.d.ts +2 -1
  91. package/dist/containers/Node/Threads/Threads.js +3 -3
  92. package/dist/containers/Node/Threads/Threads.js.map +1 -1
  93. package/dist/containers/Node/i18n/en.json +1 -0
  94. package/dist/containers/Node/i18n/index.d.ts +1 -1
  95. package/dist/containers/Nodes/Nodes.d.ts +3 -6
  96. package/dist/containers/Nodes/Nodes.js +6 -3
  97. package/dist/containers/Nodes/Nodes.js.map +1 -1
  98. package/dist/containers/Nodes/NodesTable.d.ts +6 -4
  99. package/dist/containers/Nodes/NodesTable.js +2 -2
  100. package/dist/containers/Nodes/NodesTable.js.map +1 -1
  101. package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.d.ts +6 -4
  102. package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js +5 -5
  103. package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js.map +1 -1
  104. package/dist/containers/Nodes/PaginatedNodes/NodesComponent.d.ts +6 -4
  105. package/dist/containers/Nodes/PaginatedNodes/NodesComponent.js +2 -2
  106. package/dist/containers/Nodes/PaginatedNodes/NodesComponent.js.map +1 -1
  107. package/dist/containers/Nodes/PaginatedNodes/PaginatedNodes.d.ts +5 -3
  108. package/dist/containers/Nodes/PaginatedNodes/PaginatedNodes.js.map +1 -1
  109. package/dist/containers/Nodes/columns/columns.d.ts +2 -4
  110. package/dist/containers/Nodes/columns/columns.js +2 -0
  111. package/dist/containers/Nodes/columns/columns.js.map +1 -1
  112. package/dist/containers/Nodes/columns/hooks.d.ts +4 -0
  113. package/dist/containers/Nodes/columns/hooks.js +15 -0
  114. package/dist/containers/Nodes/columns/hooks.js.map +1 -0
  115. package/dist/containers/Nodes/getNodes.d.ts +3 -2
  116. package/dist/containers/Nodes/getNodes.js +6 -6
  117. package/dist/containers/Nodes/getNodes.js.map +1 -1
  118. package/dist/containers/Nodes/shared.d.ts +2 -2
  119. package/dist/containers/Storage/Disks/Disks.js +3 -2
  120. package/dist/containers/Storage/Disks/Disks.js.map +1 -1
  121. package/dist/containers/Storage/PDisk/PDisk.d.ts +3 -1
  122. package/dist/containers/Storage/PDisk/PDisk.js +4 -3
  123. package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
  124. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
  125. package/dist/containers/Storage/PaginatedStorageNodes/useStorageNodesColumnsToSelect.d.ts +2 -2
  126. package/dist/containers/Storage/PaginatedStorageNodes/useStorageNodesColumnsToSelect.js +0 -3
  127. package/dist/containers/Storage/PaginatedStorageNodes/useStorageNodesColumnsToSelect.js.map +1 -1
  128. package/dist/containers/Storage/PaginatedStorageNodesTable/PaginatedStorageNodesTable.d.ts +2 -2
  129. package/dist/containers/Storage/PaginatedStorageNodesTable/PaginatedStorageNodesTable.js.map +1 -1
  130. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/columns.d.ts +4 -2
  131. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/columns.js +5 -5
  132. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/columns.js.map +1 -1
  133. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.d.ts +3 -3
  134. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.js +2 -3
  135. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.js.map +1 -1
  136. package/dist/containers/Storage/PaginatedStorageNodesTable/columns/types.d.ts +1 -5
  137. package/dist/containers/Storage/VDisks/VDisks.js +2 -1
  138. package/dist/containers/Storage/VDisks/VDisks.js.map +1 -1
  139. package/dist/containers/Storage/i18n/index.d.ts +1 -1
  140. package/dist/containers/Storage/shared.d.ts +1 -0
  141. package/dist/containers/Storage/shared.js +1 -0
  142. package/dist/containers/Storage/shared.js.map +1 -1
  143. package/dist/containers/Tenant/Diagnostics/Describe/Describe.js +4 -2
  144. package/dist/containers/Tenant/Diagnostics/Describe/Describe.js.map +1 -1
  145. package/dist/containers/Tenant/Diagnostics/DetailedOverview/DetailedOverview.d.ts +2 -3
  146. package/dist/containers/Tenant/Diagnostics/DetailedOverview/DetailedOverview.js +2 -3
  147. package/dist/containers/Tenant/Diagnostics/DetailedOverview/DetailedOverview.js.map +1 -1
  148. package/dist/containers/Tenant/Diagnostics/Diagnostics.d.ts +2 -3
  149. package/dist/containers/Tenant/Diagnostics/Diagnostics.js +8 -9
  150. package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
  151. package/dist/containers/Tenant/Diagnostics/Diagnostics.scss +7 -15
  152. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +0 -1
  153. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +1 -5
  154. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
  155. package/dist/containers/Tenant/Diagnostics/Network/NetworkWrapper.d.ts +2 -2
  156. package/dist/containers/Tenant/Diagnostics/Network/NetworkWrapper.js +2 -2
  157. package/dist/containers/Tenant/Diagnostics/Network/NetworkWrapper.js.map +1 -1
  158. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.d.ts +1 -3
  159. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js +2 -2
  160. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js.map +1 -1
  161. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByCpu.d.ts +1 -3
  162. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByCpu.js +8 -12
  163. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByCpu.js.map +1 -1
  164. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByLoad.d.ts +1 -3
  165. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByLoad.js +3 -6
  166. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopNodesByLoad.js.map +1 -1
  167. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TopNodesByMemory.d.ts +1 -3
  168. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TopNodesByMemory.js +3 -6
  169. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantMemory/TopNodesByMemory.js.map +1 -1
  170. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.d.ts +1 -3
  171. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js +2 -2
  172. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js.map +1 -1
  173. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesByPing.d.ts +1 -3
  174. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesByPing.js +3 -6
  175. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesByPing.js.map +1 -1
  176. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesBySkew.d.ts +1 -3
  177. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesBySkew.js +3 -6
  178. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TopNodesBySkew.js.map +1 -1
  179. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/columns.d.ts +20 -21
  180. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/columns.js.map +1 -1
  181. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.d.ts +2 -3
  182. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +3 -3
  183. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  184. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.scss +1 -0
  185. package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.d.ts +2 -3
  186. package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js +2 -3
  187. package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js.map +1 -1
  188. package/dist/containers/Tenant/Query/NewSQL/NewSQL.js +7 -6
  189. package/dist/containers/Tenant/Query/NewSQL/NewSQL.js.map +1 -1
  190. package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.scss +2 -5
  191. package/dist/containers/Tenant/Query/QueryResult/components/SimplifiedPlan/OperationCell.js +1 -1
  192. package/dist/containers/Tenant/Query/QueryResult/components/SimplifiedPlan/OperationCell.js.map +1 -1
  193. package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.scss +3 -5
  194. package/dist/containers/Tenant/Tenant.d.ts +2 -3
  195. package/dist/containers/Tenant/Tenant.js +2 -2
  196. package/dist/containers/Tenant/Tenant.js.map +1 -1
  197. package/dist/containers/Versions/GroupedNodesTree/GroupedNodesTree.d.ts +2 -2
  198. package/dist/containers/Versions/NodesTable/NodesTable.d.ts +2 -2
  199. package/dist/containers/Versions/NodesTable/NodesTable.js +1 -3
  200. package/dist/containers/Versions/NodesTable/NodesTable.js.map +1 -1
  201. package/dist/containers/Versions/Versions.js +1 -1
  202. package/dist/containers/Versions/groupNodes.d.ts +4 -4
  203. package/dist/containers/Versions/groupNodes.test.js +24 -0
  204. package/dist/containers/Versions/groupNodes.test.js.map +1 -1
  205. package/dist/containers/Versions/types.d.ts +2 -2
  206. package/dist/containers/Versions/utils.js +3 -3
  207. package/dist/containers/Versions/utils.js.map +1 -1
  208. package/dist/services/api/pdisk.js +0 -1
  209. package/dist/services/api/pdisk.js.map +1 -1
  210. package/dist/services/api/viewer.d.ts +3 -2
  211. package/dist/services/api/viewer.js +11 -2
  212. package/dist/services/api/viewer.js.map +1 -1
  213. package/dist/store/reducers/capabilities/hooks.d.ts +2 -0
  214. package/dist/store/reducers/capabilities/hooks.js +8 -0
  215. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  216. package/dist/store/reducers/configs.d.ts +13 -0
  217. package/dist/store/reducers/configs.js +33 -0
  218. package/dist/store/reducers/configs.js.map +1 -0
  219. package/dist/store/reducers/nodes/nodes.d.ts +1 -1
  220. package/dist/store/reducers/nodes/nodes.js +2 -2
  221. package/dist/store/reducers/nodes/nodes.js.map +1 -1
  222. package/dist/store/reducers/nodes/types.d.ts +2 -46
  223. package/dist/store/reducers/storage/types.d.ts +4 -4
  224. package/dist/store/reducers/storage/types.js.map +1 -1
  225. package/dist/store/reducers/storage/utils.js +11 -10
  226. package/dist/store/reducers/storage/utils.js.map +1 -1
  227. package/dist/store/reducers/tenant/tenant.d.ts +0 -3
  228. package/dist/store/reducers/tenant/tenant.js +0 -13
  229. package/dist/store/reducers/tenant/tenant.js.map +1 -1
  230. package/dist/styles/mixins.scss +4 -4
  231. package/dist/types/additionalProps.d.ts +0 -4
  232. package/dist/types/api/capabilities.d.ts +1 -1
  233. package/dist/utils/additionalProps.d.ts +1 -2
  234. package/dist/utils/additionalProps.js +0 -7
  235. package/dist/utils/additionalProps.js.map +1 -1
  236. package/dist/utils/dataFormatters/dataFormatters.js +5 -6
  237. package/dist/utils/dataFormatters/dataFormatters.js.map +1 -1
  238. package/dist/utils/developerUI/__test__/developerUI.test.js +8 -0
  239. package/dist/utils/developerUI/__test__/developerUI.test.js.map +1 -1
  240. package/dist/utils/developerUI/developerUI.d.ts +6 -7
  241. package/dist/utils/developerUI/developerUI.js +12 -9
  242. package/dist/utils/developerUI/developerUI.js.map +1 -1
  243. package/dist/utils/hooks/useNodeDeveloperUIHref.d.ts +2 -2
  244. package/dist/utils/hooks/useNodeDeveloperUIHref.js +10 -4
  245. package/dist/utils/hooks/useNodeDeveloperUIHref.js.map +1 -1
  246. package/dist/utils/prepareBackend.d.ts +1 -1
  247. package/dist/utils/prepareBackend.js +5 -3
  248. package/dist/utils/prepareBackend.js.map +1 -1
  249. package/dist/utils/versions/parseNodesToVersionsValues.d.ts +2 -2
  250. package/package.json +2 -2
  251. package/dist/components/SyntaxHighlighter/i18n/index.js.map +0 -1
  252. package/dist/containers/Tenant/Diagnostics/Configs/Configs.d.ts +0 -6
  253. package/dist/containers/Tenant/Diagnostics/Configs/Configs.js.map +0 -1
  254. package/dist/containers/Tenant/Diagnostics/Configs/i18n/index.d.ts +0 -2
  255. package/dist/containers/Tenant/Diagnostics/Configs/i18n/index.js.map +0 -1
  256. package/dist/store/reducers/nodes/utils.d.ts +0 -3
  257. package/dist/store/reducers/nodes/utils.js +0 -28
  258. package/dist/store/reducers/nodes/utils.js.map +0 -1
  259. package/dist/utils/hooks/useAdditionalNodesProps.d.ts +0 -2
  260. package/dist/utils/hooks/useAdditionalNodesProps.js +0 -11
  261. package/dist/utils/hooks/useAdditionalNodesProps.js.map +0 -1
  262. /package/dist/components/{SyntaxHighlighter → ClipboardButton}/i18n/en.json +0 -0
  263. /package/dist/components/{SyntaxHighlighter → ClipboardButton}/i18n/index.d.ts +0 -0
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { SegmentedRadioGroup } from '@gravity-ui/uikit';
4
+ import { TableWithControlsLayout } from '../../components/TableWithControlsLayout/TableWithControlsLayout';
5
+ import { useBaseConfigAvailable, useFeatureFlagsAvailable, } from '../../store/reducers/capabilities/hooks';
6
+ import { cn } from '../../utils/cn';
7
+ import { Config } from './components/Config/Config';
8
+ import { FeatureFlags } from './components/FeatureFlags/FeatureFlags';
9
+ import { Startup } from './components/Startup/Startup';
10
+ import { ConfigTypeTitles, ConfigTypes } from './types';
11
+ import { useConfigQueryParams } from './useConfigsQueryParams';
12
+ import './Configs.scss';
13
+ const b = cn('ydb-configs');
14
+ export function Configs({ database, className, scrollContainerRef }) {
15
+ const { configType } = useConfigQueryParams();
16
+ const isFeaturesAvailable = useFeatureFlagsAvailable();
17
+ const isConfigsAvailable = useBaseConfigAvailable();
18
+ const options = React.useMemo(() => {
19
+ const options = [];
20
+ if (isFeaturesAvailable) {
21
+ options.push(ConfigTypes.features);
22
+ }
23
+ if (isConfigsAvailable) {
24
+ options.push(ConfigTypes.current);
25
+ options.push(ConfigTypes.startup);
26
+ }
27
+ return options;
28
+ }, [isFeaturesAvailable, isConfigsAvailable]);
29
+ const renderContent = () => {
30
+ switch (configType) {
31
+ case ConfigTypes.current:
32
+ return _jsx(Config, { database: database });
33
+ case ConfigTypes.startup:
34
+ return _jsx(Startup, { database: database, className: b('startup') });
35
+ case ConfigTypes.features:
36
+ return _jsx(FeatureFlags, { database: database, className: b('feature-flags') });
37
+ }
38
+ };
39
+ return (_jsxs(TableWithControlsLayout, { fullHeight: true, className: b(null, className), children: [_jsx(TableWithControlsLayout.Controls, { children: _jsx(ConfigSelector, { options: options }) }), _jsx(TableWithControlsLayout.Table, { scrollContainerRef: scrollContainerRef, children: renderContent() })] }));
40
+ }
41
+ function ConfigSelector({ options }) {
42
+ const { configType, handleConfigTypeChange } = useConfigQueryParams();
43
+ if (!options.length) {
44
+ return null;
45
+ }
46
+ return (_jsx(SegmentedRadioGroup, { value: configType, onUpdate: handleConfigTypeChange, children: options.map((option) => (_jsx(SegmentedRadioGroup.Option, { value: option, children: ConfigTypeTitles[option] }, option))) }));
47
+ }
48
+ //# sourceMappingURL=Configs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Configs.js","sourceRoot":"","sources":["../../../src/containers/Configs/Configs.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ @use '../../styles/mixins.scss';
2
+
3
+ .ydb-configs {
4
+ --ydb-table-with-controls-layout-controls-height: var(--ydb-configs-controls-height);
5
+ --configs-padding-bottom: var(--g-spacing-4);
6
+ --ydb-json-viewer-toolbar-top: var(--data-table-sticky-header-offset);
7
+ --ydb-syntax-highlighter-height: calc(
8
+ var(--ydb-configs-container-height) - var(
9
+ --ydb-table-with-controls-layout-controls-height
10
+ ) - var(--configs-padding-bottom)
11
+ );
12
+ max-width: 100%;
13
+ padding-bottom: var(--configs-padding-bottom);
14
+
15
+ &__feature-flags {
16
+ --ydb-table-with-controls-layout-controls-padding-top: 0px;
17
+ --data-table-start: calc(
18
+ var(--sticky-tabs-height, 0px) + var(--ydb-configs-controls-height)
19
+ );
20
+ --ydb-table-with-controls-layout-controls-height: 44px;
21
+ }
22
+ &__startup {
23
+ height: var(--ydb-syntax-highlighter-height);
24
+ }
25
+ }
@@ -0,0 +1,5 @@
1
+ interface ConfigProps {
2
+ database?: string;
3
+ }
4
+ export declare function Config({ database }: ConfigProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { ResponseError } from '../../../../components/Errors/ResponseError';
4
+ import { JsonViewer } from '../../../../components/JsonViewer/JsonViewer';
5
+ import { useUnipikaConvert } from '../../../../components/JsonViewer/unipika/unipika';
6
+ import { LoaderWrapper } from '../../../../components/LoaderWrapper/LoaderWrapper';
7
+ import { configsApi } from '../../../../store/reducers/configs';
8
+ import { useAutoRefreshInterval } from '../../../../utils/hooks/useAutoRefreshInterval';
9
+ import i18n from '../../i18n';
10
+ export function Config({ database }) {
11
+ const [autoRefreshInterval] = useAutoRefreshInterval();
12
+ const { currentData, isLoading, error } = configsApi.useGetConfigQuery({ database }, { pollingInterval: autoRefreshInterval });
13
+ const { current } = currentData || {};
14
+ const convertedValue = useUnipikaConvert(current);
15
+ const copyText = React.useMemo(() => JSON.stringify(current, null, 4), [current]);
16
+ return (_jsxs(LoaderWrapper, { loading: isLoading, children: [current ? (_jsx(JsonViewer, { value: convertedValue, collapsedInitially: true, withClipboardButton: { copyText, withLabel: i18n('action_copy-config') } })) : null, error ? _jsx(ResponseError, { error: error }) : null] }));
17
+ }
18
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../../../src/containers/Configs/components/Config/Config.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAC,UAAU,EAAC,MAAM,8CAA8C,CAAC;AACxE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mDAAmD,CAAC;AACpF,OAAO,EAAC,aAAa,EAAC,MAAM,oDAAoD,CAAC;AACjF,OAAO,EAAC,UAAU,EAAC,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAC,sBAAsB,EAAC,MAAM,gDAAgD,CAAC;AACtF,OAAO,IAAI,MAAM,YAAY,CAAC;AAK9B,MAAM,UAAU,MAAM,CAAC,EAAC,QAAQ,EAAc;IAC1C,MAAM,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,EAAE,CAAC;IACvD,MAAM,EAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAC,GAAG,UAAU,CAAC,iBAAiB,CAChE,EAAC,QAAQ,EAAC,EACV,EAAC,eAAe,EAAE,mBAAmB,EAAC,CACzC,CAAC;IAEF,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,IAAI,EAAE,CAAC;IAEpC,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAElF,OAAO,CACH,MAAC,aAAa,IAAC,OAAO,EAAE,SAAS,aAC5B,OAAO,CAAC,CAAC,CAAC,CACP,KAAC,UAAU,IACP,KAAK,EAAE,cAAc,EACrB,kBAAkB,QAClB,mBAAmB,EAAE,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAC,GACxE,CACL,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,CAAC,CAAC,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,IACnC,CACnB,CAAC;AACN,CAAC"}
@@ -0,0 +1,7 @@
1
+ import './FeatureFlags.scss';
2
+ interface FeatureFlagsProps {
3
+ database?: string;
4
+ className?: string;
5
+ }
6
+ export declare const FeatureFlags: ({ database, className }: FeatureFlagsProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -1,24 +1,24 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { PersonPencil } from '@gravity-ui/icons';
3
3
  import { Icon, Popover, Switch } from '@gravity-ui/uikit';
4
- import { StringParam, useQueryParam } from 'use-query-params';
5
4
  import { ResponseError } from '../../../../components/Errors/ResponseError';
6
5
  import { ResizeableDataTable } from '../../../../components/ResizeableDataTable/ResizeableDataTable';
7
6
  import { Search } from '../../../../components/Search';
8
7
  import { TableWithControlsLayout } from '../../../../components/TableWithControlsLayout/TableWithControlsLayout';
9
- import { tenantApi } from '../../../../store/reducers/tenant/tenant';
8
+ import { configsApi } from '../../../../store/reducers/configs';
10
9
  import { cn } from '../../../../utils/cn';
11
- import { DEFAULT_TABLE_SETTINGS } from '../../../../utils/constants';
10
+ import { DEFAULT_TABLE_SETTINGS, YDB_POPOVER_CLASS_NAME } from '../../../../utils/constants';
12
11
  import { useAutoRefreshInterval } from '../../../../utils/hooks';
13
- import i18n from './i18n';
14
- import './Configs.scss';
12
+ import i18n from '../../i18n';
13
+ import { useConfigQueryParams } from '../../useConfigsQueryParams';
14
+ import './FeatureFlags.scss';
15
15
  const FEATURE_FLAGS_COLUMNS_WIDTH_LS_KEY = 'featureFlagsColumnsWidth';
16
- const b = cn('ydb-diagnostics-configs');
16
+ const b = cn('ydb-feature-flags');
17
17
  const columns = [
18
18
  {
19
19
  name: 'Touched',
20
20
  header: '',
21
- render: ({ row }) => row.Current ? (_jsx(Popover, { content: i18n('flag-touched'), className: b('icon-touched'), placement: "left", children: _jsx(Icon, { data: PersonPencil }) })) : null,
21
+ render: ({ row }) => row.Current ? (_jsx(Popover, { content: i18n('flag-touched'), className: b('icon-touched', YDB_POPOVER_CLASS_NAME), placement: "left", children: _jsx(Icon, { data: PersonPencil }) })) : null,
22
22
  width: 36,
23
23
  sortable: false,
24
24
  resizeable: false,
@@ -65,17 +65,14 @@ const columns = [
65
65
  resizeable: false,
66
66
  },
67
67
  ];
68
- export const Configs = ({ database }) => {
69
- const [search, setSearch] = useQueryParam('search', StringParam);
68
+ export const FeatureFlags = ({ database, className }) => {
69
+ const { search, handleSearchChange } = useConfigQueryParams();
70
70
  const [autoRefreshInterval] = useAutoRefreshInterval();
71
- const { currentData = [], isLoading, error, } = tenantApi.useGetClusterConfigQuery({ database }, { pollingInterval: autoRefreshInterval });
72
- const onChange = (value) => {
73
- setSearch(value || undefined, 'replaceIn');
74
- };
71
+ const { currentData = [], isLoading, error, } = configsApi.useGetFeatureFlagsQuery({ database }, { pollingInterval: autoRefreshInterval });
75
72
  const featureFlagsFilter = search === null || search === void 0 ? void 0 : search.toLocaleLowerCase();
76
73
  const featureFlags = featureFlagsFilter
77
74
  ? currentData.filter((item) => item.Name.toLocaleLowerCase().includes(featureFlagsFilter))
78
75
  : currentData;
79
- return (_jsxs(TableWithControlsLayout, { children: [_jsx(TableWithControlsLayout.Controls, { children: _jsx(Search, { value: featureFlagsFilter, onChange: onChange, placeholder: i18n('search-placeholder') }) }), _jsx(TableWithControlsLayout.Table, { loading: isLoading, children: error ? (_jsx(ResponseError, { error: error })) : (_jsx(ResizeableDataTable, { emptyDataMessage: i18n(featureFlagsFilter ? 'search-empty' : 'no-data'), columnsWidthLSKey: FEATURE_FLAGS_COLUMNS_WIDTH_LS_KEY, columns: columns, data: featureFlags, settings: DEFAULT_TABLE_SETTINGS })) })] }));
76
+ return (_jsxs(TableWithControlsLayout, { className: className, children: [_jsx(TableWithControlsLayout.Controls, { children: _jsx(Search, { value: featureFlagsFilter, onChange: handleSearchChange, placeholder: i18n('search-placeholder'), width: 300 }) }), _jsx(TableWithControlsLayout.Table, { loading: isLoading, children: error ? (_jsx(ResponseError, { error: error })) : (_jsx(ResizeableDataTable, { emptyDataMessage: i18n(featureFlagsFilter ? 'search-empty' : 'no-data'), columnsWidthLSKey: FEATURE_FLAGS_COLUMNS_WIDTH_LS_KEY, columns: columns, data: featureFlags, settings: DEFAULT_TABLE_SETTINGS })) })] }));
80
77
  };
81
- //# sourceMappingURL=Configs.js.map
78
+ //# sourceMappingURL=FeatureFlags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureFlags.js","sourceRoot":"","sources":["../../../../../src/containers/Configs/components/FeatureFlags/FeatureFlags.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- .ydb-diagnostics-configs {
1
+ .ydb-feature-flags {
2
2
  &__icon-touched {
3
3
  line-height: 1;
4
4
  cursor: default !important;
@@ -0,0 +1,6 @@
1
+ interface StartupProps {
2
+ database?: string;
3
+ className?: string;
4
+ }
5
+ export declare function Startup({ database, className }: StartupProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useThemeValue } from '@gravity-ui/uikit';
3
+ import MonacoEditor from 'react-monaco-editor';
4
+ import { ResponseError } from '../../../../components/Errors/ResponseError';
5
+ import { LoaderWrapper } from '../../../../components/LoaderWrapper/LoaderWrapper';
6
+ import { configsApi } from '../../../../store/reducers/configs';
7
+ import { useAutoRefreshInterval } from '../../../../utils/hooks/useAutoRefreshInterval';
8
+ const EDITOR_OPTIONS = {
9
+ automaticLayout: true,
10
+ selectOnLineNumbers: true,
11
+ readOnly: true,
12
+ minimap: {
13
+ enabled: false,
14
+ },
15
+ wrappingIndent: 'indent',
16
+ };
17
+ export function Startup({ database, className }) {
18
+ const [autoRefreshInterval] = useAutoRefreshInterval();
19
+ const theme = useThemeValue();
20
+ const { currentData, isLoading, error } = configsApi.useGetConfigQuery({ database }, { pollingInterval: autoRefreshInterval });
21
+ const { startup } = currentData || {};
22
+ return (_jsxs(LoaderWrapper, { loading: isLoading, children: [error ? _jsx(ResponseError, { error: error }) : null, startup ? (_jsx("div", { className: className, children: _jsx(MonacoEditor, { language: 'yaml', value: startup, options: EDITOR_OPTIONS, theme: `vs-${theme}` }) })) : null] }));
23
+ }
24
+ //# sourceMappingURL=Startup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Startup.js","sourceRoot":"","sources":["../../../../../src/containers/Configs/components/Startup/Startup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAC,aAAa,EAAC,MAAM,oDAAoD,CAAC;AACjF,OAAO,EAAC,UAAU,EAAC,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAC,sBAAsB,EAAC,MAAM,gDAAgD,CAAC;AAOtF,MAAM,cAAc,GAAG;IACnB,eAAe,EAAE,IAAI;IACrB,mBAAmB,EAAE,IAAI;IACzB,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE;QACL,OAAO,EAAE,KAAK;KACjB;IACD,cAAc,EAAE,QAAiB;CACpC,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAe;IACvD,MAAM,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,EAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAC,GAAG,UAAU,CAAC,iBAAiB,CAChE,EAAC,QAAQ,EAAC,EACV,EAAC,eAAe,EAAE,mBAAmB,EAAC,CACzC,CAAC;IAEF,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,IAAI,EAAE,CAAC;IAEpC,OAAO,CACH,MAAC,aAAa,IAAC,OAAO,EAAE,SAAS,aAC5B,KAAK,CAAC,CAAC,CAAC,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,EAC9C,OAAO,CAAC,CAAC,CAAC,CACP,cAAK,SAAS,EAAE,SAAS,YACrB,KAAC,YAAY,IACT,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,KAAK,EAAE,GACtB,GACA,CACT,CAAC,CAAC,CAAC,IAAI,IACI,CACnB,CAAC;AACN,CAAC"}
@@ -5,7 +5,11 @@
5
5
  "enabled": "Enabled",
6
6
  "disabled": "Disabled",
7
7
  "flag-touched": "Flag is changed",
8
- "search-placeholder": "Search by feature flag",
8
+ "search-placeholder": "Search...",
9
9
  "search-empty": "Empty search result",
10
- "no-data": "No data"
10
+ "no-data": "No data",
11
+ "title_current": "Current",
12
+ "title_startup": "Startup",
13
+ "title_features": "Feature flags",
14
+ "action_copy-config": "Copy config"
11
15
  }
@@ -0,0 +1,2 @@
1
+ declare const _default: (key: "disabled" | "no-data" | "enabled" | "td-feature-flag" | "td-default" | "td-current" | "flag-touched" | "search-placeholder" | "search-empty" | "title_current" | "title_startup" | "title_features" | "action_copy-config", params?: import("@gravity-ui/i18n").Params) => string;
2
+ export default _default;
@@ -1,4 +1,4 @@
1
- import { registerKeysets } from '../../../../../utils/i18n';
1
+ import { registerKeysets } from '../../../utils/i18n';
2
2
  import en from './en.json';
3
3
  const COMPONENT = 'ydb-diagnostics-configs';
4
4
  export default registerKeysets(COMPONENT, { en });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/containers/Configs/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,MAAM,SAAS,GAAG,yBAAyB,CAAC;AAE5C,eAAe,eAAe,CAAC,SAAS,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export declare const ConfigTypes: {
3
+ readonly current: "current";
4
+ readonly features: "features";
5
+ readonly startup: "startup";
6
+ };
7
+ export declare const configTypesSchema: z.ZodCatch<z.ZodNativeEnum<{
8
+ readonly current: "current";
9
+ readonly features: "features";
10
+ readonly startup: "startup";
11
+ }>>;
12
+ export type ConfigType = z.infer<typeof configTypesSchema>;
13
+ export declare const ConfigTypeTitles: Record<ConfigType, string>;
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ import i18n from './i18n';
3
+ export const ConfigTypes = {
4
+ current: 'current',
5
+ features: 'features',
6
+ startup: 'startup',
7
+ };
8
+ export const configTypesSchema = z.nativeEnum(ConfigTypes).catch(ConfigTypes.current);
9
+ export const ConfigTypeTitles = {
10
+ get current() {
11
+ return i18n('title_current');
12
+ },
13
+ get features() {
14
+ return i18n('title_features');
15
+ },
16
+ get startup() {
17
+ return i18n('title_startup');
18
+ },
19
+ };
20
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/containers/Configs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;CACZ,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAGtF,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IACxD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;CACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ConfigType } from './types';
2
+ export declare const ConfigTypeValueEnum: import("serialize-query-params").QueryParamConfig<"current" | "startup" | "features" | null | undefined, "current" | "startup" | "features" | null | undefined>;
3
+ export declare const ConfigTypeValueParam: import("serialize-query-params").QueryParamConfig<"current" | "startup" | "features" | null | undefined, "current" | "startup" | "features">;
4
+ export declare function useConfigQueryParams(): {
5
+ configType: "current" | "startup" | "features";
6
+ handleConfigTypeChange: (value?: ConfigType) => void;
7
+ search: string | null | undefined;
8
+ handleSearchChange: (value?: string) => void;
9
+ };
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import { StringParam, createEnumParam, useQueryParams, withDefault } from 'use-query-params';
3
+ import { useBaseConfigAvailable, useFeatureFlagsAvailable, } from '../../store/reducers/capabilities/hooks';
4
+ import { ConfigTypes } from './types';
5
+ const configTypesArray = [
6
+ ConfigTypes.current,
7
+ ConfigTypes.startup,
8
+ ConfigTypes.features,
9
+ ];
10
+ export const ConfigTypeValueEnum = createEnumParam(configTypesArray);
11
+ export const ConfigTypeValueParam = withDefault(ConfigTypeValueEnum, 'current');
12
+ export function useConfigQueryParams() {
13
+ const isFeaturesAvailable = useFeatureFlagsAvailable();
14
+ const isConfigsAvailable = useBaseConfigAvailable();
15
+ const [{ configType, search }, setQueryParams] = useQueryParams({
16
+ configType: ConfigTypeValueParam,
17
+ search: StringParam,
18
+ });
19
+ const handleConfigTypeChange = React.useCallback((value) => {
20
+ setQueryParams({ configType: value || undefined }, 'replaceIn');
21
+ }, [setQueryParams]);
22
+ const handleSearchChange = React.useCallback((value) => {
23
+ setQueryParams({ search: value || undefined }, 'replaceIn');
24
+ }, [setQueryParams]);
25
+ React.useEffect(() => {
26
+ if (!isConfigsAvailable && !isFeaturesAvailable) {
27
+ handleConfigTypeChange(undefined);
28
+ }
29
+ else if (!isFeaturesAvailable && configType === ConfigTypes.features) {
30
+ handleConfigTypeChange(ConfigTypes.current);
31
+ }
32
+ else {
33
+ handleConfigTypeChange(ConfigTypes.features);
34
+ }
35
+ }, [isFeaturesAvailable, isConfigsAvailable]);
36
+ return {
37
+ configType,
38
+ handleConfigTypeChange,
39
+ search,
40
+ handleSearchChange,
41
+ };
42
+ }
43
+ //# sourceMappingURL=useConfigsQueryParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfigsQueryParams.js","sourceRoot":"","sources":["../../../src/containers/Configs/useConfigsQueryParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE3F,OAAO,EACH,sBAAsB,EACtB,wBAAwB,GAC3B,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEpC,MAAM,gBAAgB,GAAiB;IACnC,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,QAAQ;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAC3C,mBAAmB,EACnB,SAAS,CACZ,CAAC;AAEF,MAAM,UAAU,oBAAoB;IAChC,MAAM,mBAAmB,GAAG,wBAAwB,EAAE,CAAC;IACvD,MAAM,kBAAkB,GAAG,sBAAsB,EAAE,CAAC;IACpD,MAAM,CAAC,EAAC,UAAU,EAAE,MAAM,EAAC,EAAE,cAAc,CAAC,GAAG,cAAc,CAAC;QAC1D,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,WAAW;KACtB,CAAC,CAAC;IACH,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAC5C,CAAC,KAAkB,EAAE,EAAE;QACnB,cAAc,CAAC,EAAC,UAAU,EAAE,KAAK,IAAI,SAAS,EAAC,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC,EACD,CAAC,cAAc,CAAC,CACnB,CAAC;IACF,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CACxC,CAAC,KAAc,EAAE,EAAE;QACf,cAAc,CAAC,EAAC,MAAM,EAAE,KAAK,IAAI,SAAS,EAAC,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC,EACD,CAAC,cAAc,CAAC,CACnB,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9C,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,CAAC,mBAAmB,IAAI,UAAU,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;YACrE,sBAAsB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,sBAAsB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;IACL,CAAC,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE9C,OAAO;QACH,UAAU;QACV,sBAAsB;QACtB,MAAM;QACN,kBAAkB;KACrB,CAAC;AACN,CAAC"}
@@ -4,6 +4,8 @@
4
4
  justify-content: space-between;
5
5
  align-items: center;
6
6
 
7
+ height: var(--header-height, auto);
8
+ max-height: var(--header-height, auto);
7
9
  padding: 0 var(--g-spacing-5);
8
10
 
9
11
  border-bottom: 1px solid var(--g-color-line-generic);
@@ -12,12 +12,14 @@ import { InfoViewerSkeleton } from '../../components/InfoViewerSkeleton/InfoView
12
12
  import { InternalLink } from '../../components/InternalLink';
13
13
  import { PageMetaWithAutorefresh } from '../../components/PageMeta/PageMeta';
14
14
  import routes from '../../routes';
15
- import { useCapabilitiesLoaded, useDiskPagesAvailable, } from '../../store/reducers/capabilities/hooks';
15
+ import { useCapabilitiesLoaded, useConfigAvailable, useDiskPagesAvailable, } from '../../store/reducers/capabilities/hooks';
16
16
  import { setHeaderBreadcrumbs } from '../../store/reducers/header/header';
17
17
  import { nodeApi } from '../../store/reducers/node/node';
18
18
  import { cn } from '../../utils/cn';
19
19
  import { useAutoRefreshInterval, useTypedDispatch } from '../../utils/hooks';
20
+ import { useIsViewerUser } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
20
21
  import { useAppTitle } from '../App/AppTitleContext';
22
+ import { Configs } from '../Configs/Configs';
21
23
  import { PaginatedStorage } from '../Storage/PaginatedStorage';
22
24
  import { Tablets } from '../Tablets/Tablets';
23
25
  import { NODE_TABS, getDefaultNodePath, nodePageQueryParams, nodePageTabSchema } from './NodePages';
@@ -30,6 +32,9 @@ const STORAGE_ROLE = 'Storage';
30
32
  export function Node() {
31
33
  var _a, _b, _c;
32
34
  const container = React.useRef(null);
35
+ const isViewerUser = useIsViewerUser();
36
+ const hasConfigs = useConfigAvailable();
37
+ const configsAvailable = isViewerUser && hasConfigs;
33
38
  const dispatch = useTypedDispatch();
34
39
  const match = useRouteMatch(routes.node);
35
40
  const nodeId = match === null || match === void 0 ? void 0 : match.params.id;
@@ -46,19 +51,23 @@ export function Node() {
46
51
  const threadsQuantity = (_b = node === null || node === void 0 ? void 0 : node.Threads) === null || _b === void 0 ? void 0 : _b.length;
47
52
  const { activeTab, nodeTabs } = React.useMemo(() => {
48
53
  var _a;
49
- let actualNodeTabs = isStorageNode
50
- ? NODE_TABS
51
- : NODE_TABS.filter((el) => el.id !== 'storage');
54
+ const skippedTabs = [];
55
+ if (!isStorageNode) {
56
+ skippedTabs.push('storage');
57
+ }
58
+ if (!configsAvailable) {
59
+ skippedTabs.push('configs');
60
+ }
52
61
  if (isDiskPagesAvailable) {
53
- actualNodeTabs = actualNodeTabs.filter((el) => el.id !== 'structure');
62
+ skippedTabs.push('structure');
54
63
  }
55
- // Filter out threads tab if there's no thread data in the API response
56
64
  if (!threadsQuantity) {
57
- actualNodeTabs = actualNodeTabs.filter((el) => el.id !== 'threads');
65
+ skippedTabs.push('threads');
58
66
  }
67
+ const actualNodeTabs = NODE_TABS.filter((el) => !skippedTabs.includes(el.id));
59
68
  const actualActiveTab = (_a = actualNodeTabs.find(({ id }) => id === activeTabId)) !== null && _a !== void 0 ? _a : actualNodeTabs[0];
60
69
  return { activeTab: actualActiveTab, nodeTabs: actualNodeTabs };
61
- }, [isStorageNode, isDiskPagesAvailable, activeTabId, threadsQuantity]);
70
+ }, [isStorageNode, isDiskPagesAvailable, activeTabId, threadsQuantity, configsAvailable]);
62
71
  const database = tenantNameFromQuery === null || tenantNameFromQuery === void 0 ? void 0 : tenantNameFromQuery.toString();
63
72
  const databaseName = (_c = node === null || node === void 0 ? void 0 : node.Tenants) === null || _c === void 0 ? void 0 : _c[0];
64
73
  React.useEffect(() => {
@@ -114,7 +123,10 @@ function NodePageContent({ nodeId, database, activeTabId, tabs, parentContainer,
114
123
  return _jsx(NodeStructure, { nodeId: nodeId });
115
124
  }
116
125
  case 'threads': {
117
- return _jsx(Threads, { nodeId: nodeId });
126
+ return (_jsx(Threads, { nodeId: nodeId, scrollContainerRef: parentContainer, className: b('treads') }));
127
+ }
128
+ case 'configs': {
129
+ return _jsx(Configs, { database: database, scrollContainerRef: parentContainer });
118
130
  }
119
131
  default:
120
132
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/containers/Node/Node.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/containers/Node/Node.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  @use '../../styles/mixins';
2
2
 
3
3
  .node {
4
+ --ydb-configs-controls-height: 62px;
5
+ --ydb-configs-container-height: calc(100vh - var(--header-height));
4
6
  position: relative;
5
7
 
6
8
  overflow: auto;
@@ -31,4 +33,7 @@
31
33
  &__tabs {
32
34
  @include mixins.tabs-wrapper-styles();
33
35
  }
36
+ &__treads {
37
+ --ydb-table-with-controls-layout-controls-height: 0px;
38
+ }
34
39
  }
@@ -6,6 +6,7 @@ declare const NODE_TABS_IDS: {
6
6
  readonly tablets: "tablets";
7
7
  readonly structure: "structure";
8
8
  readonly threads: "threads";
9
+ readonly configs: "configs";
9
10
  };
10
11
  export type NodeTab = ValueOf<typeof NODE_TABS_IDS>;
11
12
  export declare const NODE_TABS: ({
@@ -20,12 +21,16 @@ export declare const NODE_TABS: ({
20
21
  } | {
21
22
  id: "threads";
22
23
  readonly title: string;
24
+ } | {
25
+ id: "configs";
26
+ readonly title: string;
23
27
  })[];
24
28
  export declare const nodePageTabSchema: z.ZodCatch<z.ZodNativeEnum<{
25
29
  readonly storage: "storage";
26
30
  readonly tablets: "tablets";
27
31
  readonly structure: "structure";
28
32
  readonly threads: "threads";
33
+ readonly configs: "configs";
29
34
  }>>;
30
35
  export declare const nodePageQueryParams: {
31
36
  database: import("serialize-query-params").QueryParamConfig<string | null | undefined, string | null | undefined>;
@@ -7,6 +7,7 @@ const NODE_TABS_IDS = {
7
7
  tablets: 'tablets',
8
8
  structure: 'structure',
9
9
  threads: 'threads',
10
+ configs: 'configs',
10
11
  };
11
12
  export const NODE_TABS = [
12
13
  {
@@ -33,6 +34,12 @@ export const NODE_TABS = [
33
34
  return i18n('tabs.threads');
34
35
  },
35
36
  },
37
+ {
38
+ id: NODE_TABS_IDS.configs,
39
+ get title() {
40
+ return i18n('tabs.configs');
41
+ },
42
+ },
36
43
  ];
37
44
  export const nodePageTabSchema = z.nativeEnum(NODE_TABS_IDS).catch(NODE_TABS_IDS.tablets);
38
45
  export const nodePageQueryParams = {
@@ -1 +1 @@
1
- {"version":3,"file":"NodePages.js","sourceRoot":"","sources":["../../../src/containers/Node/NodePages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,MAAM,EAAE,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAGhD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,MAAM,aAAa,GAAG;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;CACZ,CAAC;AAIX,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB;QACI,EAAE,EAAE,aAAa,CAAC,OAAO;QACzB,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;KACJ;IACD;QACI,EAAE,EAAE,aAAa,CAAC,SAAS;QAC3B,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC;KACJ;IACD;QACI,EAAE,EAAE,aAAa,CAAC,OAAO;QACzB,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;KACJ;IACD;QACI,EAAE,EAAE,aAAa,CAAC,OAAO;QACzB,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;KACJ;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;CACvB,CAAC;AAIF,MAAM,UAAU,kBAAkB,CAC9B,MAAuB,EACvB,QAAuB,EAAE,EACzB,SAAmB;IAEnB,OAAO,UAAU,CACb,MAAM,CAAC,IAAI,EACX;QACI,EAAE,EAAE,MAAM;QACV,SAAS;KACZ,EACD,KAAK,CACR,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"NodePages.js","sourceRoot":"","sources":["../../../src/containers/Node/NodePages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,MAAM,EAAE,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAGhD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,MAAM,aAAa,GAAG;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACZ,CAAC;AAIX,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB;QACI,EAAE,EAAE,aAAa,CAAC,OAAO;QACzB,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;KACJ;IACD;QACI,EAAE,EAAE,aAAa,CAAC,SAAS;QAC3B,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC;KACJ;IACD;QACI,EAAE,EAAE,aAAa,CAAC,OAAO;QACzB,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;KACJ;IACD;QACI,EAAE,EAAE,aAAa,CAAC,OAAO;QACzB,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;KACJ;IACD;QACI,EAAE,EAAE,aAAa,CAAC,OAAO;QACzB,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;KACJ;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;CACvB,CAAC;AAIF,MAAM,UAAU,kBAAkB,CAC9B,MAAuB,EACvB,QAAuB,EAAE,EACzB,SAAmB;IAEnB,OAAO,UAAU,CACb,MAAM,CAAC,IAAI,EACX;QACI,EAAE,EAAE,MAAM;QACV,SAAS;KACZ,EACD,KAAK,CACR,CAAC;AACN,CAAC"}
@@ -1,6 +1,7 @@
1
1
  interface ThreadsProps {
2
2
  nodeId: string;
3
3
  className?: string;
4
+ scrollContainerRef: React.RefObject<HTMLElement>;
4
5
  }
5
- export declare function Threads({ nodeId, className }: ThreadsProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function Threads({ nodeId, className, scrollContainerRef }: ThreadsProps): import("react/jsx-runtime").JSX.Element;
6
7
  export {};
@@ -1,17 +1,17 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ResponseError } from '../../../components/Errors/ResponseError';
3
- import { LoaderWrapper } from '../../../components/LoaderWrapper/LoaderWrapper';
4
3
  import { ResizeableDataTable } from '../../../components/ResizeableDataTable/ResizeableDataTable';
4
+ import { TableWithControlsLayout } from '../../../components/TableWithControlsLayout/TableWithControlsLayout';
5
5
  import { nodeApi } from '../../../store/reducers/node/node';
6
6
  import { DEFAULT_TABLE_SETTINGS } from '../../../utils/constants';
7
7
  import { useAutoRefreshInterval } from '../../../utils/hooks';
8
8
  import { columns } from './columns';
9
9
  import i18n from './i18n';
10
10
  const THREADS_COLUMNS_WIDTH_LS_KEY = 'threadsTableColumnsWidth';
11
- export function Threads({ nodeId, className }) {
11
+ export function Threads({ nodeId, className, scrollContainerRef }) {
12
12
  const [autoRefreshInterval] = useAutoRefreshInterval();
13
13
  const { currentData: nodeData, isLoading, error, } = nodeApi.useGetNodeInfoQuery({ nodeId }, { pollingInterval: autoRefreshInterval });
14
14
  const data = (nodeData === null || nodeData === void 0 ? void 0 : nodeData.Threads) || [];
15
- return (_jsxs(LoaderWrapper, { loading: isLoading, className: className, children: [error ? _jsx(ResponseError, { error: error }) : null, _jsx(ResizeableDataTable, { columnsWidthLSKey: THREADS_COLUMNS_WIDTH_LS_KEY, data: data, columns: columns, settings: DEFAULT_TABLE_SETTINGS, emptyDataMessage: i18n('alert_no-thread-data') })] }));
15
+ return (_jsxs(TableWithControlsLayout, { fullHeight: true, className: className, children: [error ? _jsx(ResponseError, { error: error }) : null, _jsx(TableWithControlsLayout.Table, { scrollContainerRef: scrollContainerRef, children: _jsx(ResizeableDataTable, { columnsWidthLSKey: THREADS_COLUMNS_WIDTH_LS_KEY, data: data, columns: columns, settings: DEFAULT_TABLE_SETTINGS, emptyDataMessage: i18n('alert_no-thread-data'), loading: isLoading }) })] }));
16
16
  }
17
17
  //# sourceMappingURL=Threads.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Threads.js","sourceRoot":"","sources":["../../../../src/containers/Node/Threads/Threads.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAC,aAAa,EAAC,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAC,mBAAmB,EAAC,MAAM,6DAA6D,CAAC;AAChG,OAAO,EAAC,OAAO,EAAC,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAO1B,MAAM,4BAA4B,GAAG,0BAA0B,CAAC;AAEhE,MAAM,UAAU,OAAO,CAAC,EAAC,MAAM,EAAE,SAAS,EAAe;IACrD,MAAM,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,EAAE,CAAC;IAEvD,MAAM,EACF,WAAW,EAAE,QAAQ,EACrB,SAAS,EACT,KAAK,GACR,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAAC,MAAM,EAAC,EAAE,EAAC,eAAe,EAAE,mBAAmB,EAAC,CAAC,CAAC;IAElF,MAAM,IAAI,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,EAAE,CAAC;IAErC,OAAO,CACH,MAAC,aAAa,IAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,aAClD,KAAK,CAAC,CAAC,CAAC,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,EAC/C,KAAC,mBAAmB,IAChB,iBAAiB,EAAE,4BAA4B,EAC/C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,sBAAsB,EAChC,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CAAC,GAChD,IACU,CACnB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"Threads.js","sourceRoot":"","sources":["../../../../src/containers/Node/Threads/Threads.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,6DAA6D,CAAC;AAChG,OAAO,EAAC,uBAAuB,EAAC,MAAM,qEAAqE,CAAC;AAC5G,OAAO,EAAC,OAAO,EAAC,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAQ1B,MAAM,4BAA4B,GAAG,0BAA0B,CAAC;AAEhE,MAAM,UAAU,OAAO,CAAC,EAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAe;IACzE,MAAM,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,EAAE,CAAC;IAEvD,MAAM,EACF,WAAW,EAAE,QAAQ,EACrB,SAAS,EACT,KAAK,GACR,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAAC,MAAM,EAAC,EAAE,EAAC,eAAe,EAAE,mBAAmB,EAAC,CAAC,CAAC;IAElF,MAAM,IAAI,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,EAAE,CAAC;IAErC,OAAO,CACH,MAAC,uBAAuB,IAAC,UAAU,QAAC,SAAS,EAAE,SAAS,aACnD,KAAK,CAAC,CAAC,CAAC,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,EAC/C,KAAC,uBAAuB,CAAC,KAAK,IAAC,kBAAkB,EAAE,kBAAkB,YACjE,KAAC,mBAAmB,IAChB,iBAAiB,EAAE,4BAA4B,EAC/C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,sBAAsB,EAChC,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CAAC,EAC9C,OAAO,EAAE,SAAS,GACpB,GAC0B,IACV,CAC7B,CAAC;AACN,CAAC"}
@@ -5,6 +5,7 @@
5
5
  "tabs.structure": "Structure",
6
6
  "tabs.tablets": "Tablets",
7
7
  "tabs.threads": "Threads",
8
+ "tabs.configs": "Configs",
8
9
  "node": "Node",
9
10
  "fqdn": "FQDN",
10
11
  "dc": "DC"