ydb-embedded-ui 6.15.1 → 6.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (299) hide show
  1. package/dist/components/ElapsedTime/ElapsedTime.js +2 -1
  2. package/dist/components/ElapsedTime/ElapsedTime.js.map +1 -1
  3. package/dist/components/EmptyState/EmptyState.d.ts +6 -0
  4. package/dist/components/EmptyState/EmptyState.js +6 -0
  5. package/dist/components/EmptyState/EmptyState.js.map +1 -1
  6. package/dist/components/EntitiesCount/EntitiesCount.js +3 -1
  7. package/dist/components/EntitiesCount/EntitiesCount.js.map +1 -1
  8. package/dist/components/EntityPageTitle/EntityPageTitle.d.ts +11 -0
  9. package/dist/components/{DiskPageTitle/DiskPageTitle.js → EntityPageTitle/EntityPageTitle.js} +5 -5
  10. package/dist/components/EntityPageTitle/EntityPageTitle.js.map +1 -0
  11. package/dist/components/{DiskPageTitle/DiskPageTitle.scss → EntityPageTitle/EntityPageTitle.scss} +1 -1
  12. package/dist/components/InfoViewerSkeleton/InfoViewerSkeleton.d.ts +2 -1
  13. package/dist/components/InfoViewerSkeleton/InfoViewerSkeleton.js +10 -1
  14. package/dist/components/InfoViewerSkeleton/InfoViewerSkeleton.js.map +1 -1
  15. package/dist/components/MetricChart/reducer.d.ts +2 -2
  16. package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.d.ts +9 -0
  17. package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.js +9 -0
  18. package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.js.map +1 -0
  19. package/dist/components/NotRenderUntilFirstVisible/NotRenderUntilFirstVisible.scss +3 -0
  20. package/dist/components/PageMeta/PageMeta.d.ts +2 -1
  21. package/dist/components/PageMeta/PageMeta.js +9 -4
  22. package/dist/components/PageMeta/PageMeta.js.map +1 -1
  23. package/dist/components/PageMeta/PageMeta.scss +9 -6
  24. package/dist/components/PaginatedTable/PaginatedTable.d.ts +5 -4
  25. package/dist/components/PaginatedTable/PaginatedTable.js +24 -116
  26. package/dist/components/PaginatedTable/PaginatedTable.js.map +1 -1
  27. package/dist/components/PaginatedTable/ResizeablePaginatedTable.d.ts +2 -2
  28. package/dist/components/PaginatedTable/ResizeablePaginatedTable.js.map +1 -1
  29. package/dist/components/PaginatedTable/TableChunk.d.ts +13 -5
  30. package/dist/components/PaginatedTable/TableChunk.js +51 -21
  31. package/dist/components/PaginatedTable/TableChunk.js.map +1 -1
  32. package/dist/components/PaginatedTable/TableRow.js +1 -1
  33. package/dist/components/PaginatedTable/TableRow.js.map +1 -1
  34. package/dist/components/PaginatedTable/types.d.ts +8 -1
  35. package/dist/components/Skeleton/Skeleton.d.ts +6 -0
  36. package/dist/components/Skeleton/Skeleton.js +11 -0
  37. package/dist/components/Skeleton/Skeleton.js.map +1 -0
  38. package/dist/components/Tablet/Tablet.js +2 -2
  39. package/dist/components/Tablet/Tablet.js.map +1 -1
  40. package/dist/components/TabletState/TabletState.d.ts +6 -0
  41. package/dist/components/TabletState/TabletState.js +7 -0
  42. package/dist/components/TabletState/TabletState.js.map +1 -0
  43. package/dist/containers/Cluster/Cluster.js +10 -10
  44. package/dist/containers/Cluster/Cluster.js.map +1 -1
  45. package/dist/containers/Cluster/Cluster.scss +14 -0
  46. package/dist/containers/Cluster/i18n/index.d.ts +1 -1
  47. package/dist/containers/Heatmap/HeatmapCanvas/HeatmapCanvas.js +2 -2
  48. package/dist/containers/Heatmap/HeatmapCanvas/HeatmapCanvas.js.map +1 -1
  49. package/dist/containers/Nodes/Nodes.d.ts +2 -1
  50. package/dist/containers/Nodes/Nodes.js +2 -2
  51. package/dist/containers/Nodes/Nodes.js.map +1 -1
  52. package/dist/containers/Nodes/NodesWrapper.d.ts +1 -0
  53. package/dist/containers/Nodes/NodesWrapper.js.map +1 -1
  54. package/dist/containers/Nodes/PaginatedNodes.d.ts +2 -1
  55. package/dist/containers/Nodes/PaginatedNodes.js +6 -18
  56. package/dist/containers/Nodes/PaginatedNodes.js.map +1 -1
  57. package/dist/containers/Nodes/getNodes.d.ts +3 -6
  58. package/dist/containers/Nodes/getNodes.js +19 -2
  59. package/dist/containers/Nodes/getNodes.js.map +1 -1
  60. package/dist/containers/PDiskPage/PDiskPage.js +4 -5
  61. package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
  62. package/dist/containers/PDiskPage/PDiskPage.scss +0 -7
  63. package/dist/containers/PDiskPage/i18n/index.d.ts +1 -1
  64. package/dist/containers/Storage/PaginatedStorage.d.ts +2 -2
  65. package/dist/containers/Storage/PaginatedStorage.js +3 -3
  66. package/dist/containers/Storage/PaginatedStorage.js.map +1 -1
  67. package/dist/containers/Storage/Storage.d.ts +2 -2
  68. package/dist/containers/Storage/Storage.js +3 -3
  69. package/dist/containers/Storage/Storage.js.map +1 -1
  70. package/dist/containers/Storage/StorageGroups/PaginatedStorageGroups.d.ts +2 -2
  71. package/dist/containers/Storage/StorageGroups/PaginatedStorageGroups.js +5 -17
  72. package/dist/containers/Storage/StorageGroups/PaginatedStorageGroups.js.map +1 -1
  73. package/dist/containers/Storage/StorageGroups/getGroups.d.ts +3 -6
  74. package/dist/containers/Storage/StorageGroups/getGroups.js +15 -2
  75. package/dist/containers/Storage/StorageGroups/getGroups.js.map +1 -1
  76. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodes.d.ts +2 -2
  77. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodes.js +6 -18
  78. package/dist/containers/Storage/StorageNodes/PaginatedStorageNodes.js.map +1 -1
  79. package/dist/containers/Storage/StorageNodes/getNodes.d.ts +3 -5
  80. package/dist/containers/Storage/StorageNodes/getNodes.js +17 -2
  81. package/dist/containers/Storage/StorageNodes/getNodes.js.map +1 -1
  82. package/dist/containers/Storage/StorageWrapper.d.ts +1 -1
  83. package/dist/containers/Tablet/Tablet.d.ts +1 -1
  84. package/dist/containers/Tablet/Tablet.js +95 -52
  85. package/dist/containers/Tablet/Tablet.js.map +1 -1
  86. package/dist/containers/Tablet/Tablet.scss +4 -81
  87. package/dist/containers/Tablet/components/TabletControls/TabletControls.d.ts +6 -0
  88. package/dist/containers/Tablet/components/TabletControls/TabletControls.js +27 -0
  89. package/dist/containers/Tablet/components/TabletControls/TabletControls.js.map +1 -0
  90. package/dist/containers/Tablet/components/TabletControls/index.js.map +1 -0
  91. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.d.ts +7 -0
  92. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js +59 -0
  93. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js.map +1 -0
  94. package/dist/containers/Tablet/components/TabletInfo/TabletInfo.scss +12 -0
  95. package/dist/containers/Tablet/components/TabletInfo/i18n/en.json +16 -0
  96. package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -0
  97. package/dist/containers/Tablet/components/TabletInfo/i18n/index.js +5 -0
  98. package/dist/containers/Tablet/components/TabletInfo/i18n/index.js.map +1 -0
  99. package/dist/containers/Tablet/components/TabletInfo/index.js.map +1 -0
  100. package/dist/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.d.ts +7 -0
  101. package/dist/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.js +36 -0
  102. package/dist/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.js.map +1 -0
  103. package/dist/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.scss +78 -0
  104. package/dist/containers/Tablet/components/TabletStorageInfo/columns.d.ts +3 -0
  105. package/dist/containers/Tablet/components/TabletStorageInfo/columns.js +56 -0
  106. package/dist/containers/Tablet/components/TabletStorageInfo/columns.js.map +1 -0
  107. package/dist/containers/Tablet/components/TabletStorageInfo/i18n/en.json +7 -0
  108. package/dist/containers/Tablet/components/TabletStorageInfo/i18n/index.d.ts +1 -0
  109. package/dist/containers/Tablet/components/TabletStorageInfo/i18n/index.js +5 -0
  110. package/dist/containers/Tablet/components/TabletStorageInfo/i18n/index.js.map +1 -0
  111. package/dist/containers/Tablet/components/TabletStorageInfo/shared.d.ts +1 -0
  112. package/dist/containers/Tablet/components/TabletStorageInfo/shared.js +3 -0
  113. package/dist/containers/Tablet/components/TabletStorageInfo/shared.js.map +1 -0
  114. package/dist/containers/Tablet/components/TabletStorageInfo/types.d.ts +5 -0
  115. package/dist/containers/Tablet/components/TabletStorageInfo/types.js +2 -0
  116. package/dist/containers/Tablet/components/TabletStorageInfo/types.js.map +1 -0
  117. package/dist/containers/Tablet/components/TabletStorageInfo/utils.d.ts +3 -0
  118. package/dist/containers/Tablet/components/TabletStorageInfo/utils.js +29 -0
  119. package/dist/containers/Tablet/components/TabletStorageInfo/utils.js.map +1 -0
  120. package/dist/containers/Tablet/{TabletTable → components/TabletTable}/TabletTable.d.ts +1 -1
  121. package/dist/containers/Tablet/{TabletTable → components/TabletTable}/TabletTable.js +7 -6
  122. package/dist/containers/Tablet/components/TabletTable/TabletTable.js.map +1 -0
  123. package/dist/containers/Tablet/components/TabletTable/index.js.map +1 -0
  124. package/dist/containers/Tablet/i18n/en.json +5 -1
  125. package/dist/containers/Tablet/i18n/index.d.ts +1 -1
  126. package/dist/containers/Tablet/utils.d.ts +1 -0
  127. package/dist/containers/Tablet/utils.js +4 -0
  128. package/dist/containers/Tablet/utils.js.map +1 -0
  129. package/dist/containers/Tablets/Tablets.js +16 -10
  130. package/dist/containers/Tablets/Tablets.js.map +1 -1
  131. package/dist/containers/Tablets/i18n/index.d.ts +1 -1
  132. package/dist/containers/Tenant/Acl/Acl.scss +2 -2
  133. package/dist/containers/Tenant/Diagnostics/Describe/Describe.js +10 -9
  134. package/dist/containers/Tenant/Diagnostics/Describe/Describe.js.map +1 -1
  135. package/dist/containers/Tenant/Diagnostics/Describe/Describe.scss +13 -2
  136. package/dist/containers/Tenant/Diagnostics/Diagnostics.js +2 -2
  137. package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
  138. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo.js +21 -11
  139. package/dist/containers/Tenant/Diagnostics/Overview/TableInfo/prepareTableInfo.js.map +1 -1
  140. package/dist/containers/Tenant/Diagnostics/TopShards/getTopShardsColumns.js +2 -2
  141. package/dist/containers/Tenant/Diagnostics/TopShards/getTopShardsColumns.js.map +1 -1
  142. package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js +3 -8
  143. package/dist/containers/Tenant/ObjectGeneral/ObjectGeneral.js.map +1 -1
  144. package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/SimplifiedPlan.js +2 -5
  145. package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/SimplifiedPlan.js.map +1 -1
  146. package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/utils.d.ts +0 -1
  147. package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/utils.js +0 -21
  148. package/dist/containers/Tenant/Query/ExplainResult/components/SimplifiedPlan/utils.js.map +1 -1
  149. package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js +19 -1
  150. package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js.map +1 -1
  151. package/dist/containers/Tenant/Query/Query.js +2 -14
  152. package/dist/containers/Tenant/Query/Query.js.map +1 -1
  153. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +4 -4
  154. package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
  155. package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.test.js +1 -1
  156. package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.test.js.map +1 -1
  157. package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.test.js +1 -1
  158. package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.test.js.map +1 -1
  159. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js +3 -3
  160. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js.map +1 -1
  161. package/dist/containers/Tenant/Query/QuerySettingsDialog/constants.d.ts +8 -8
  162. package/dist/containers/Tenant/Query/QuerySettingsDialog/constants.js +6 -6
  163. package/dist/containers/Tenant/Query/QuerySettingsDialog/constants.js.map +1 -1
  164. package/dist/containers/Tenant/Query/i18n/en.json +4 -1
  165. package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
  166. package/dist/containers/Tenant/Query/utils/useSavedQueries.js +2 -1
  167. package/dist/containers/Tenant/Query/utils/useSavedQueries.js.map +1 -1
  168. package/dist/containers/Tenant/Schema/SchemaViewer/columns.js +1 -1
  169. package/dist/containers/Tenant/Schema/SchemaViewer/columns.js.map +1 -1
  170. package/dist/containers/Tenant/Schema/SchemaViewer/prepareData.js +2 -2
  171. package/dist/containers/Tenant/Schema/SchemaViewer/prepareData.js.map +1 -1
  172. package/dist/containers/Tenant/Schema/SchemaViewer/types.d.ts +1 -1
  173. package/dist/containers/Tenant/utils/queryTemplates.js +6 -5
  174. package/dist/containers/Tenant/utils/queryTemplates.js.map +1 -1
  175. package/dist/containers/UserSettings/i18n/en.json +0 -2
  176. package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
  177. package/dist/containers/UserSettings/settings.d.ts +0 -1
  178. package/dist/containers/UserSettings/settings.js +2 -7
  179. package/dist/containers/UserSettings/settings.js.map +1 -1
  180. package/dist/containers/VDiskPage/VDiskPage.js +5 -6
  181. package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
  182. package/dist/containers/VDiskPage/VDiskPage.scss +0 -4
  183. package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
  184. package/dist/routes.d.ts +1 -0
  185. package/dist/routes.js +3 -0
  186. package/dist/routes.js.map +1 -1
  187. package/dist/services/api.d.ts +13 -7
  188. package/dist/services/api.js +27 -6
  189. package/dist/services/api.js.map +1 -1
  190. package/dist/services/settings.d.ts +1 -2
  191. package/dist/services/settings.js +1 -2
  192. package/dist/services/settings.js.map +1 -1
  193. package/dist/store/configureStore.d.ts +4 -8
  194. package/dist/store/defaultStore.d.ts +2 -4
  195. package/dist/store/reducers/api.d.ts +1 -1
  196. package/dist/store/reducers/api.js +1 -1
  197. package/dist/store/reducers/api.js.map +1 -1
  198. package/dist/store/reducers/authentication/authentication.d.ts +4 -4
  199. package/dist/store/reducers/cancelQuery.d.ts +2 -2
  200. package/dist/store/reducers/capabilities/capabilities.d.ts +6 -10
  201. package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
  202. package/dist/store/reducers/capabilities/hooks.js +3 -0
  203. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  204. package/dist/store/reducers/cluster/cluster.d.ts +2 -2
  205. package/dist/store/reducers/clusterNodes/clusterNodes.d.ts +2 -2
  206. package/dist/store/reducers/clusters/clusters.d.ts +2 -2
  207. package/dist/store/reducers/describe.d.ts +2 -2
  208. package/dist/store/reducers/executeQuery.d.ts +18 -4
  209. package/dist/store/reducers/executeQuery.js +50 -5
  210. package/dist/store/reducers/executeQuery.js.map +1 -1
  211. package/dist/store/reducers/executeTopQueries/executeTopQueries.d.ts +2 -2
  212. package/dist/store/reducers/explainQuery/explainQuery.d.ts +2 -2
  213. package/dist/store/reducers/header/types.d.ts +1 -1
  214. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +58 -78
  215. package/dist/store/reducers/heatmap.d.ts +2 -2
  216. package/dist/store/reducers/hotKeys/hotKeys.d.ts +2 -2
  217. package/dist/store/reducers/index.d.ts +3 -6
  218. package/dist/store/reducers/index.js +0 -2
  219. package/dist/store/reducers/index.js.map +1 -1
  220. package/dist/store/reducers/network/network.d.ts +2 -2
  221. package/dist/store/reducers/node/node.d.ts +3 -3
  222. package/dist/store/reducers/node/selectors.d.ts +1 -2
  223. package/dist/store/reducers/nodes/nodes.d.ts +3 -3
  224. package/dist/store/reducers/nodes/types.d.ts +11 -1
  225. package/dist/store/reducers/nodesList.d.ts +3 -4
  226. package/dist/store/reducers/overview/overview.d.ts +2 -2
  227. package/dist/store/reducers/partitions/partitions.d.ts +2 -2
  228. package/dist/store/reducers/pdisk/pdisk.d.ts +3 -3
  229. package/dist/store/reducers/preview.d.ts +2 -2
  230. package/dist/store/reducers/schema/schema.d.ts +3 -3
  231. package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +2 -2
  232. package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +2 -2
  233. package/dist/store/reducers/storage/storage.d.ts +3 -3
  234. package/dist/store/reducers/storage/types.d.ts +15 -0
  235. package/dist/store/reducers/storage/types.js.map +1 -1
  236. package/dist/store/reducers/tableData.d.ts +14 -0
  237. package/dist/store/reducers/tableData.js +25 -0
  238. package/dist/store/reducers/tableData.js.map +1 -0
  239. package/dist/store/reducers/tablet.d.ts +19 -3
  240. package/dist/store/reducers/tablet.js +82 -13
  241. package/dist/store/reducers/tablet.js.map +1 -1
  242. package/dist/store/reducers/tablets.d.ts +15 -23
  243. package/dist/store/reducers/tablets.js +2 -20
  244. package/dist/store/reducers/tablets.js.map +1 -1
  245. package/dist/store/reducers/tabletsFilters.d.ts +1 -2
  246. package/dist/store/reducers/tenant/tenant.d.ts +2 -2
  247. package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.d.ts +2 -2
  248. package/dist/store/reducers/tenantOverview/topNodes/topNodes.d.ts +2 -2
  249. package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +2 -2
  250. package/dist/store/reducers/tenantOverview/topStorageGroups/topStorageGroups.d.ts +2 -2
  251. package/dist/store/reducers/tenants/selectors.d.ts +27 -36
  252. package/dist/store/reducers/tenants/selectors.js +1 -1
  253. package/dist/store/reducers/tenants/selectors.js.map +1 -1
  254. package/dist/store/reducers/tenants/tenants.d.ts +2 -2
  255. package/dist/store/reducers/topic.d.ts +44 -59
  256. package/dist/store/reducers/vdisk/vdisk.d.ts +2 -2
  257. package/dist/store/reducers/viewSchema/viewSchema.d.ts +2 -2
  258. package/dist/styles/mixins.scss +0 -5
  259. package/dist/types/api/capabilities.d.ts +1 -1
  260. package/dist/types/api/schema/shared.d.ts +1 -3
  261. package/dist/types/api/schema/shared.js.map +1 -1
  262. package/dist/types/api/schema/table.d.ts +2 -0
  263. package/dist/types/api/schema/table.js.map +1 -1
  264. package/dist/types/api/tablet.d.ts +22 -0
  265. package/dist/types/store/executeQuery.d.ts +5 -2
  266. package/dist/types/store/tablets.d.ts +1 -0
  267. package/dist/utils/constants.d.ts +1 -2
  268. package/dist/utils/constants.js +1 -2
  269. package/dist/utils/constants.js.map +1 -1
  270. package/dist/utils/dataFormatters/dataFormatters.d.ts +1 -0
  271. package/dist/utils/dataFormatters/dataFormatters.js +5 -0
  272. package/dist/utils/dataFormatters/dataFormatters.js.map +1 -1
  273. package/dist/utils/developerUI/developerUI.d.ts +1 -1
  274. package/dist/utils/developerUI/developerUI.js +3 -2
  275. package/dist/utils/developerUI/developerUI.js.map +1 -1
  276. package/dist/utils/hooks/useQueryExecutionSettings.js +3 -2
  277. package/dist/utils/hooks/useQueryExecutionSettings.js.map +1 -1
  278. package/package.json +2 -1
  279. package/dist/components/DiskPageTitle/DiskPageTitle.d.ts +0 -10
  280. package/dist/components/DiskPageTitle/DiskPageTitle.js.map +0 -1
  281. package/dist/components/PaginatedTable/reducer.d.ts +0 -43
  282. package/dist/components/PaginatedTable/reducer.js +0 -104
  283. package/dist/components/PaginatedTable/reducer.js.map +0 -1
  284. package/dist/containers/Tablet/TabletControls/TabletControls.d.ts +0 -7
  285. package/dist/containers/Tablet/TabletControls/TabletControls.js +0 -29
  286. package/dist/containers/Tablet/TabletControls/TabletControls.js.map +0 -1
  287. package/dist/containers/Tablet/TabletControls/index.js.map +0 -1
  288. package/dist/containers/Tablet/TabletInfo/TabletInfo.d.ts +0 -7
  289. package/dist/containers/Tablet/TabletInfo/TabletInfo.js +0 -40
  290. package/dist/containers/Tablet/TabletInfo/TabletInfo.js.map +0 -1
  291. package/dist/containers/Tablet/TabletInfo/index.js.map +0 -1
  292. package/dist/containers/Tablet/TabletTable/TabletTable.js.map +0 -1
  293. package/dist/containers/Tablet/TabletTable/index.js.map +0 -1
  294. /package/dist/containers/Tablet/{TabletControls → components/TabletControls}/index.d.ts +0 -0
  295. /package/dist/containers/Tablet/{TabletControls → components/TabletControls}/index.js +0 -0
  296. /package/dist/containers/Tablet/{TabletInfo → components/TabletInfo}/index.d.ts +0 -0
  297. /package/dist/containers/Tablet/{TabletInfo → components/TabletInfo}/index.js +0 -0
  298. /package/dist/containers/Tablet/{TabletTable → components/TabletTable}/index.d.ts +0 -0
  299. /package/dist/containers/Tablet/{TabletTable → components/TabletTable}/index.js +0 -0
@@ -1,74 +1,117 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
- import { ArrowUpRightFromSquare } from '@gravity-ui/icons';
4
- import { Link as ExternalLink, Icon } from '@gravity-ui/uikit';
3
+ import { Flex, Tabs } from '@gravity-ui/uikit';
5
4
  import { skipToken } from '@reduxjs/toolkit/query';
6
5
  import { Helmet } from 'react-helmet-async';
7
- import { useLocation, useParams } from 'react-router-dom';
8
- import { EmptyState } from '../../components/EmptyState';
9
- import { EntityStatus } from '../../components/EntityStatus/EntityStatus';
6
+ import { useParams } from 'react-router-dom';
7
+ import { StringParam, useQueryParams } from 'use-query-params';
8
+ import { z } from 'zod';
9
+ import { EmptyStateWrapper } from '../../components/EmptyState';
10
+ import { EntityPageTitle } from '../../components/EntityPageTitle/EntityPageTitle';
10
11
  import { ResponseError } from '../../components/Errors/ResponseError';
11
- import { Loader } from '../../components/Loader';
12
- import { Tag } from '../../components/Tag';
13
- import { parseQuery } from '../../routes';
14
- import { backend } from '../../store';
12
+ import { InternalLink } from '../../components/InternalLink';
13
+ import { LoaderWrapper } from '../../components/LoaderWrapper/LoaderWrapper';
14
+ import { PageMetaWithAutorefresh } from '../../components/PageMeta/PageMeta';
15
+ import { getTabletPagePath } from '../../routes';
16
+ import { selectIsUserAllowedToMakeChanges } from '../../store/reducers/authentication/authentication';
15
17
  import { setHeaderBreadcrumbs } from '../../store/reducers/header/header';
16
18
  import { tabletApi } from '../../store/reducers/tablet';
19
+ import { EFlag } from '../../types/api/enums';
20
+ import { EType } from '../../types/api/tablet';
17
21
  import { cn } from '../../utils/cn';
18
- import { CLUSTER_DEFAULT_TITLE, DEVELOPER_UI_TITLE } from '../../utils/constants';
19
- import { useAutoRefreshInterval, useTypedDispatch } from '../../utils/hooks';
20
- import { TabletControls } from './TabletControls';
21
- import { TabletInfo } from './TabletInfo';
22
- import { TabletTable } from './TabletTable';
22
+ import { CLUSTER_DEFAULT_TITLE } from '../../utils/constants';
23
+ import { useAutoRefreshInterval, useTypedDispatch, useTypedSelector } from '../../utils/hooks';
24
+ import { TabletControls } from './components/TabletControls';
25
+ import { TabletInfo } from './components/TabletInfo';
26
+ import { TabletStorageInfo } from './components/TabletStorageInfo/TabletStorageInfo';
27
+ import { TabletTable } from './components/TabletTable';
23
28
  import i18n from './i18n';
29
+ import { hasHive } from './utils';
24
30
  import './Tablet.scss';
25
- export const b = cn('tablet-page');
26
- export const Tablet = () => {
27
- var _a;
28
- const isFirstDataFetchRef = React.useRef(true);
31
+ export const b = cn('ydb-tablet-page');
32
+ const TABLET_TABS_IDS = {
33
+ history: 'history',
34
+ channels: 'channels',
35
+ };
36
+ const TABLET_PAGE_TABS = [
37
+ {
38
+ id: TABLET_TABS_IDS.history,
39
+ get title() {
40
+ return i18n('label_tablet-history');
41
+ },
42
+ },
43
+ {
44
+ id: TABLET_TABS_IDS.channels,
45
+ get title() {
46
+ return i18n('label_tablet-channels');
47
+ },
48
+ isAdvanced: true,
49
+ },
50
+ ];
51
+ const tabletTabSchema = z.nativeEnum(TABLET_TABS_IDS).catch(TABLET_TABS_IDS.history);
52
+ const eTypeSchema = z.nativeEnum(EType).or(z.undefined()).catch(undefined);
53
+ export function Tablet() {
54
+ var _a, _b;
29
55
  const dispatch = useTypedDispatch();
30
- const location = useLocation();
31
- const params = useParams();
32
- const { id } = params;
33
- const { nodeId: queryNodeId, tenantName: queryTenantName, type: queryTabletType, clusterName: queryClusterName, } = parseQuery(location);
56
+ const { id } = useParams();
57
+ const [{ nodeId: queryNodeId, tenantName: queryTenantName, type: queryTabletType, clusterName: queryClusterName, },] = useQueryParams({
58
+ nodeId: StringParam,
59
+ tenantName: StringParam,
60
+ type: StringParam,
61
+ clusterName: StringParam,
62
+ });
34
63
  const [autoRefreshInterval] = useAutoRefreshInterval();
35
- const { currentData, isFetching, error, refetch } = tabletApi.useGetTabletQuery({ id }, { pollingInterval: autoRefreshInterval });
64
+ const { currentData, isFetching, error } = tabletApi.useGetTabletQuery({ id, database: queryTenantName === null || queryTenantName === void 0 ? void 0 : queryTenantName.toString() }, { pollingInterval: autoRefreshInterval });
36
65
  const loading = isFetching && currentData === undefined;
37
- const { id: tabletId, data: tablet = {}, history = [] } = currentData || {};
66
+ const { data: tablet = {}, history = [] } = currentData || {};
38
67
  const { currentData: tenantPath } = tabletApi.useGetTabletDescribeQuery(tablet.TenantId ? { tenantId: tablet.TenantId } : skipToken);
39
- const nodeId = ((_a = tablet.NodeId) === null || _a === void 0 ? void 0 : _a.toString()) || (queryNodeId === null || queryNodeId === void 0 ? void 0 : queryNodeId.toString());
40
- const tenantName = tenantPath || (queryTenantName === null || queryTenantName === void 0 ? void 0 : queryTenantName.toString());
41
- const type = tablet.Type || (queryTabletType === null || queryTabletType === void 0 ? void 0 : queryTabletType.toString());
68
+ const nodeId = (_a = tablet.NodeId) !== null && _a !== void 0 ? _a : queryNodeId;
69
+ const tenantName = (_b = (tenantPath || queryTenantName)) !== null && _b !== void 0 ? _b : undefined;
70
+ const tabletType = tablet.Type || eTypeSchema.parse(queryTabletType);
42
71
  React.useEffect(() => {
43
72
  dispatch(setHeaderBreadcrumbs('tablet', {
44
73
  nodeIds: nodeId ? [nodeId] : [],
45
74
  tenantName,
46
75
  tabletId: id,
47
- tabletType: type,
76
+ tabletType,
48
77
  }));
49
- }, [dispatch, tenantName, id, nodeId, type]);
50
- const renderExternalLinks = (link, index) => {
51
- return (_jsx("li", { className: b('link', { external: true }), children: _jsx(ExternalLink, { href: `${backend}${link.path}`, target: "_blank", children: link.name }) }, index));
52
- };
53
- const renderView = () => {
54
- if (loading && id !== tabletId && isFirstDataFetchRef.current) {
55
- return _jsx(Loader, { size: "l" });
56
- }
57
- if (error && !currentData) {
58
- return _jsx(ResponseError, { error: error });
59
- }
60
- if (!tablet || !Object.keys(tablet).length) {
61
- return (_jsx("div", { className: b('placeholder'), children: _jsx(EmptyState, { title: i18n('emptyState') }) }));
78
+ }, [dispatch, tenantName, id, nodeId, tabletType]);
79
+ const { Leader, Type } = tablet;
80
+ const database = tenantName ? `${i18n('tablet.meta-database')}: ${tenantName}` : undefined;
81
+ const type = Type ? Type : undefined;
82
+ const follower = Leader === false ? i18n('tablet.meta-follower').toUpperCase() : undefined;
83
+ return (_jsxs(Flex, { gap: 5, direction: "column", className: b(), children: [_jsx(Helmet, { children: _jsx("title", { children: `${id} — ${i18n('tablet.header')} — ${tenantName || queryClusterName || CLUSTER_DEFAULT_TITLE}` }) }), _jsx(PageMetaWithAutorefresh, { items: [database, type, follower] }), _jsxs(LoaderWrapper, { loading: loading, size: "l", children: [error ? _jsx(ResponseError, { error: error }) : null, currentData ? _jsx(TabletContent, { id: id, tablet: tablet, history: history }) : null] })] }));
84
+ }
85
+ function TabletContent({ id, tablet, history, }) {
86
+ const isEmpty = !Object.keys(tablet).length;
87
+ const { Overall, HiveId } = tablet;
88
+ return (_jsxs(EmptyStateWrapper, { title: i18n('emptyState'), className: b('placeholder'), isEmpty: isEmpty, children: [_jsxs(Flex, { gap: 5, direction: "column", children: [_jsx(EntityPageTitle, { entityName: i18n('tablet.header'), status: Overall !== null && Overall !== void 0 ? Overall : EFlag.Grey, id: id }), _jsx(TabletControls, { tablet: tablet }), _jsx(TabletInfo, { tablet: tablet })] }), _jsx(TabletTabs, { id: id, hiveId: HiveId, history: history })] }));
89
+ }
90
+ function TabletTabs({ id, hiveId, history, }) {
91
+ var _a;
92
+ const [{ activeTab }, setParams] = useQueryParams({ activeTab: StringParam });
93
+ const isUserAllowedToMakeChanges = useTypedSelector(selectIsUserAllowedToMakeChanges);
94
+ const noAdvancedInfo = !isUserAllowedToMakeChanges || !hasHive(hiveId);
95
+ let tabletTab = tabletTabSchema.parse(activeTab);
96
+ if (noAdvancedInfo && ((_a = TABLET_PAGE_TABS.find((tab) => tab.id === tabletTab)) === null || _a === void 0 ? void 0 : _a.isAdvanced)) {
97
+ tabletTab = TABLET_TABS_IDS.history;
98
+ }
99
+ React.useEffect(() => {
100
+ if (activeTab !== tabletTab) {
101
+ setParams({ activeTab: tabletTab }, 'replaceIn');
62
102
  }
63
- const { TabletId, Overall, Leader } = tablet;
64
- const externalLinks = [
65
- {
66
- name: `${DEVELOPER_UI_TITLE} - tablet`,
67
- path: `/tablets?TabletID=${TabletId}`,
68
- },
69
- ];
70
- return (_jsxs("div", { className: b(), children: [error ? _jsx(ResponseError, { error: error }) : null, _jsxs("div", { className: b('pane-wrapper'), children: [_jsxs("div", { className: b('left-pane'), children: [_jsx("ul", { className: b('links'), children: externalLinks.map(renderExternalLinks) }), _jsxs("div", { className: b('row', { header: true }), children: [_jsx("span", { className: b('title'), children: i18n('tablet.header') }), _jsx(EntityStatus, { status: Overall, name: TabletId }), _jsx("a", { rel: "noopener noreferrer", className: b('link', { external: true }), href: `${backend}/tablets?TabletID=${TabletId}`, target: "_blank", children: _jsx(Icon, { data: ArrowUpRightFromSquare }) }), Leader && _jsx(Tag, { text: "Leader", type: "blue" }), _jsx("span", { className: b('loader'), children: loading && _jsx(Loader, { size: "s" }) })] }), _jsx(TabletInfo, { tablet: tablet, tenantPath: tenantName }), _jsx(TabletControls, { tablet: tablet, fetchData: refetch })] }), _jsx("div", { className: b('rigth-pane'), children: _jsx(TabletTable, { history: history }) })] })] }));
71
- };
72
- return (_jsxs(React.Fragment, { children: [_jsx(Helmet, { children: _jsx("title", { children: `${id} — ${i18n('tablet.header')} — ${tenantName || queryClusterName || CLUSTER_DEFAULT_TITLE}` }) }), renderView()] }));
73
- };
103
+ }, [activeTab, tabletTab, setParams]);
104
+ return (_jsxs(Flex, { gap: 5, direction: "column", children: [_jsx(Tabs, { size: "l", items: TABLET_PAGE_TABS.filter(({ isAdvanced }) => isAdvanced ? !noAdvancedInfo : true), activeTab: tabletTab, wrapTo: (tab, tabNode) => {
105
+ const path = getTabletPagePath(id, { activeTab: tab.id });
106
+ return (_jsx(InternalLink, { to: path, children: tabNode }, tab.id));
107
+ } }), tabletTab === 'history' ? _jsx(TabletTable, { history: history }) : null, tabletTab === 'channels' && !noAdvancedInfo ? (_jsx(Channels, { id: id, hiveId: hiveId })) : null] }));
108
+ }
109
+ function Channels({ id, hiveId }) {
110
+ const [autoRefreshInterval] = useAutoRefreshInterval();
111
+ const { currentData, error, isFetching } = tabletApi.useGetAdvancedTableInfoQuery({ id, hiveId }, {
112
+ pollingInterval: autoRefreshInterval,
113
+ });
114
+ const loading = isFetching && currentData === undefined;
115
+ return (_jsxs(LoaderWrapper, { loading: loading, size: "l", children: [error ? _jsx(ResponseError, { error: error }) : null, currentData ? _jsx(TabletStorageInfo, { data: currentData }) : null] }));
116
+ }
74
117
  //# sourceMappingURL=Tablet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tablet.js","sourceRoot":"","sources":["../../../src/containers/Tablet/Tablet.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAC,IAAI,IAAI,YAAY,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAC,aAAa,EAAC,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAC,GAAG,EAAC,MAAM,sBAAsB,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AACpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,qBAAqB,EAAE,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,OAAO,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;;IACvB,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,MAAM,GAAG,SAAS,EAAgB,CAAC;IACzC,MAAM,EAAC,EAAE,EAAC,GAAG,MAAM,CAAC;IAEpB,MAAM,EACF,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,eAAe,EACrB,WAAW,EAAE,gBAAgB,GAChC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEzB,MAAM,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,EAAE,CAAC;IACvD,MAAM,EAAC,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC,GAAG,SAAS,CAAC,iBAAiB,CACzE,EAAC,EAAE,EAAC,EACJ,EAAC,eAAe,EAAE,mBAAmB,EAAC,CACzC,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,IAAI,WAAW,KAAK,SAAS,CAAC;IACxD,MAAM,EAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAC,GAAG,WAAW,IAAI,EAAE,CAAC;IAE1E,MAAM,EAAC,WAAW,EAAE,UAAU,EAAC,GAAG,SAAS,CAAC,yBAAyB,CACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,SAAS,CAC5D,CAAC;IAEF,MAAM,MAAM,GAAG,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,QAAQ,EAAE,MAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,EAAE,CAAA,CAAC;IACpE,MAAM,UAAU,GAAG,UAAU,KAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,EAAE,CAAA,CAAC;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,EAAwB,CAAA,CAAC;IAE/E,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,QAAQ,CACJ,oBAAoB,CAAC,QAAQ,EAAE;YAC3B,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/B,UAAU;YACV,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,IAAI;SACnB,CAAC,CACL,CAAC;IACN,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7C,MAAM,mBAAmB,GAAG,CAAC,IAAkC,EAAE,KAAa,EAAE,EAAE;QAC9E,OAAO,CACH,aAAgB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,YAClD,KAAC,YAAY,IAAC,IAAI,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAC,QAAQ,YACxD,IAAI,CAAC,IAAI,GACC,IAHV,KAAK,CAIT,CACR,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,OAAO,IAAI,EAAE,KAAK,QAAQ,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAC5D,OAAO,KAAC,MAAM,IAAC,IAAI,EAAC,GAAG,GAAG,CAAC;QAC/B,CAAC;QAED,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YACzC,OAAO,CACH,cAAK,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,YAC5B,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAI,GACvC,CACT,CAAC;QACN,CAAC;QAED,MAAM,EAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAC,GAAG,MAAM,CAAC;QAE3C,MAAM,aAAa,GAAG;YAClB;gBACI,IAAI,EAAE,GAAG,kBAAkB,WAAW;gBACtC,IAAI,EAAE,qBAAqB,QAAQ,EAAE;aACxC;SACJ,CAAC;QAEF,OAAO,CACH,eAAK,SAAS,EAAE,CAAC,EAAE,aACd,KAAK,CAAC,CAAC,CAAC,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,EAC/C,eAAK,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,aAC7B,eAAK,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,aAC1B,aAAI,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,YAAG,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAM,EACxE,eAAK,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,aACpC,eAAM,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,YAAG,IAAI,CAAC,eAAe,CAAC,GAAQ,EAC3D,KAAC,YAAY,IAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAI,EACjD,YACI,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,EACtC,IAAI,EAAE,GAAG,OAAO,qBAAqB,QAAQ,EAAE,EAC/C,MAAM,EAAC,QAAQ,YAEf,KAAC,IAAI,IAAC,IAAI,EAAE,sBAAsB,GAAI,GACtC,EACH,MAAM,IAAI,KAAC,GAAG,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,GAAG,EAC5C,eAAM,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAG,OAAO,IAAI,KAAC,MAAM,IAAC,IAAI,EAAC,GAAG,GAAG,GAAQ,IACnE,EACN,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAI,EACtD,KAAC,cAAc,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAI,IACpD,EACN,cAAK,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,YAC3B,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI,GAC/B,IACJ,IACJ,CACT,CAAC;IACN,CAAC,CAAC;IACF,OAAO,CACH,MAAC,KAAK,CAAC,QAAQ,eACX,KAAC,MAAM,cACH,0BAAQ,GAAG,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,MACpC,UAAU,IAAI,gBAAgB,IAAI,qBACtC,EAAE,GAAS,GACN,EACR,UAAU,EAAE,IACA,CACpB,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"Tablet.js","sourceRoot":"","sources":["../../../src/containers/Tablet/Tablet.tsx"],"names":[],"mappings":"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"}
@@ -1,27 +1,10 @@
1
1
  @import '../../styles/mixins.scss';
2
2
 
3
- .tablet-page {
3
+ .ydb-tablet-page {
4
4
  $_: &;
5
- display: flex;
6
- flex-direction: column;
7
-
5
+ height: 100%;
8
6
  padding: 20px;
9
-
10
- &__tenant {
11
- margin-bottom: 20px;
12
- }
13
-
14
- &__pane-wrapper {
15
- display: flex;
16
- }
17
-
18
- &__left-pane {
19
- margin-right: 70px;
20
- }
21
- &__history-title {
22
- margin-bottom: 15px;
23
- @include body-2-typography();
24
- }
7
+ @include body-2-typography();
25
8
 
26
9
  &__placeholder {
27
10
  display: flex;
@@ -30,67 +13,7 @@
30
13
  align-items: center;
31
14
  }
32
15
 
33
- &__row {
34
- display: flex;
35
- align-items: center;
36
-
37
- &_header {
38
- margin-bottom: 20px;
39
-
40
- & #{$_}__link {
41
- margin: 0 10px 0 5px;
42
- }
43
- }
44
- }
45
-
46
- &__title {
47
- margin-right: 16px;
48
-
49
- font-weight: 500;
50
- text-transform: uppercase;
51
-
52
- @include body-2-typography();
53
- }
54
-
55
16
  &__loader {
56
- width: 25px;
57
- }
58
-
59
- .info-viewer__items {
60
- grid-template-columns: auto;
61
- }
62
-
63
- &__link {
64
- @extend .link;
65
- }
66
-
67
- &__controls {
68
- margin: 20px 0 15px;
69
- }
70
-
71
- &__control {
72
- margin-right: 15px;
73
- }
74
-
75
- &__links {
76
- display: flex;
77
-
78
- margin: 5px 0 10px;
79
- padding: 0;
80
-
81
- list-style-type: none;
82
-
83
- & > * {
84
- margin: 0 10px 0 0;
85
- }
86
- }
87
-
88
- &__top-label {
89
- margin-right: 16px;
90
-
91
- font-weight: 500;
92
- text-transform: uppercase;
93
-
94
- @include body-2-typography();
17
+ margin-left: var(--g-spacing-2);
95
18
  }
96
19
  }
@@ -0,0 +1,6 @@
1
+ import type { TTabletStateInfo } from '../../../../types/api/tablet';
2
+ interface TabletControlsProps {
3
+ tablet: TTabletStateInfo;
4
+ }
5
+ export declare const TabletControls: ({ tablet }: TabletControlsProps) => import("react/jsx-runtime").JSX.Element | null;
6
+ export {};
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { ArrowRotateLeft, StopFill, TriangleRightFill } from '@gravity-ui/icons';
4
+ import { Flex, Icon } from '@gravity-ui/uikit';
5
+ import { ButtonWithConfirmDialog } from '../../../../components/ButtonWithConfirmDialog/ButtonWithConfirmDialog';
6
+ import { selectIsUserAllowedToMakeChanges } from '../../../../store/reducers/authentication/authentication';
7
+ import { tabletApi } from '../../../../store/reducers/tablet';
8
+ import { ETabletState } from '../../../../types/api/tablet';
9
+ import { useTypedSelector } from '../../../../utils/hooks';
10
+ import i18n from '../../i18n';
11
+ import { hasHive } from '../../utils';
12
+ export const TabletControls = ({ tablet }) => {
13
+ const { TabletId, HiveId } = tablet;
14
+ const isUserAllowedToMakeChanges = useTypedSelector(selectIsUserAllowedToMakeChanges);
15
+ const [killTablet] = tabletApi.useKillTabletMutation();
16
+ const [stopTablet] = tabletApi.useStopTabletMutation();
17
+ const [resumeTablet] = tabletApi.useResumeTabletMutation();
18
+ if (!TabletId) {
19
+ return null;
20
+ }
21
+ const hasHiveId = hasHive(HiveId);
22
+ const isDisabledRestart = tablet.State === ETabletState.Stopped;
23
+ const isDisabledResume = tablet.State !== ETabletState.Stopped && tablet.State !== ETabletState.Dead;
24
+ const isDisabledStop = tablet.State === ETabletState.Stopped || tablet.State === ETabletState.Deleted;
25
+ return (_jsxs(Flex, { gap: 2, wrap: "nowrap", children: [_jsxs(ButtonWithConfirmDialog, { dialogContent: i18n('dialog.kill'), onConfirmAction: () => killTablet({ id: TabletId }).unwrap(), buttonDisabled: isDisabledRestart || !isUserAllowedToMakeChanges, withPopover: true, buttonView: "normal", popoverContent: i18n('controls.kill-not-allowed'), popoverPlacement: 'bottom', popoverDisabled: isUserAllowedToMakeChanges, children: [_jsx(Icon, { data: ArrowRotateLeft }), i18n('controls.kill')] }), hasHiveId && (_jsxs(React.Fragment, { children: [_jsxs(ButtonWithConfirmDialog, { dialogContent: i18n('dialog.stop'), onConfirmAction: () => stopTablet({ id: TabletId, hiveId: HiveId }).unwrap(), buttonDisabled: isDisabledStop || !isUserAllowedToMakeChanges, withPopover: true, buttonView: "normal", popoverContent: i18n('controls.stop-not-allowed'), popoverPlacement: 'bottom', popoverDisabled: isUserAllowedToMakeChanges, children: [_jsx(Icon, { data: StopFill }), i18n('controls.stop')] }), _jsxs(ButtonWithConfirmDialog, { dialogContent: i18n('dialog.resume'), onConfirmAction: () => resumeTablet({ id: TabletId, hiveId: HiveId }).unwrap(), buttonDisabled: isDisabledResume || !isUserAllowedToMakeChanges, withPopover: true, buttonView: "normal", popoverContent: i18n('controls.resume-not-allowed'), popoverPlacement: 'bottom', popoverDisabled: isUserAllowedToMakeChanges, children: [_jsx(Icon, { data: TriangleRightFill }), i18n('controls.resume')] })] }))] }));
26
+ };
27
+ //# sourceMappingURL=TabletControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabletControls.js","sourceRoot":"","sources":["../../../../../src/containers/Tablet/components/TabletControls/TabletControls.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/Tablet/components/TabletControls/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { TTabletStateInfo } from '../../../../types/api/tablet';
2
+ import './TabletInfo.scss';
3
+ interface TabletInfoProps {
4
+ tablet: TTabletStateInfo;
5
+ }
6
+ export declare const TabletInfo: ({ tablet }: TabletInfoProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Flex } from '@gravity-ui/uikit';
3
+ import { Link } from 'react-router-dom';
4
+ import { InfoViewer } from '../../../../components/InfoViewer';
5
+ import { LinkWithIcon } from '../../../../components/LinkWithIcon/LinkWithIcon';
6
+ import { TabletState } from '../../../../components/TabletState/TabletState';
7
+ import { getTabletPagePath } from '../../../../routes';
8
+ import { selectIsUserAllowedToMakeChanges } from '../../../../store/reducers/authentication/authentication';
9
+ import { ETabletState } from '../../../../types/api/tablet';
10
+ import { cn } from '../../../../utils/cn';
11
+ import { calcUptime } from '../../../../utils/dataFormatters/dataFormatters';
12
+ import { createTabletDeveloperUIHref } from '../../../../utils/developerUI/developerUI';
13
+ import { useTypedSelector } from '../../../../utils/hooks';
14
+ import { getDefaultNodePath } from '../../../Node/NodePages';
15
+ import { hasHive } from '../../utils';
16
+ import { tabletInfoKeyset } from './i18n';
17
+ const b = cn('ydb-tablet-info');
18
+ import './TabletInfo.scss';
19
+ export const TabletInfo = ({ tablet }) => {
20
+ const isUserAllowedToMakeChanges = useTypedSelector(selectIsUserAllowedToMakeChanges);
21
+ const { ChangeTime, Generation, FollowerId, NodeId, HiveId, State, TenantId: { SchemeShard } = {}, TabletId, } = tablet;
22
+ const hasHiveId = hasHive(HiveId);
23
+ const hasUptime = State === ETabletState.Active;
24
+ const tabletInfo = [];
25
+ if (hasHiveId) {
26
+ tabletInfo.push({
27
+ label: tabletInfoKeyset('field_hive'),
28
+ value: (_jsx(Link, { to: getTabletPagePath(HiveId), className: b('link'), children: HiveId })),
29
+ });
30
+ }
31
+ if (SchemeShard) {
32
+ tabletInfo.push({
33
+ label: tabletInfoKeyset('field_scheme-shard'),
34
+ value: (_jsx(Link, { to: getTabletPagePath(SchemeShard), className: b('link'), children: SchemeShard })),
35
+ });
36
+ }
37
+ tabletInfo.push({ label: tabletInfoKeyset('field_state'), value: _jsx(TabletState, { state: State }) });
38
+ if (hasUptime) {
39
+ tabletInfo.push({ label: tabletInfoKeyset('field_uptime'), value: calcUptime(ChangeTime) });
40
+ }
41
+ tabletInfo.push({ label: tabletInfoKeyset('field_generation'), value: Generation }, {
42
+ label: tabletInfoKeyset('field_node'),
43
+ value: (_jsx(Link, { className: b('link'), to: getDefaultNodePath(String(NodeId)), children: NodeId })),
44
+ });
45
+ if (FollowerId) {
46
+ tabletInfo.push({ label: tabletInfoKeyset('field_follower'), value: FollowerId });
47
+ }
48
+ const renderTabletInfo = () => {
49
+ return (_jsxs("div", { children: [_jsx("div", { className: b('section-title'), children: tabletInfoKeyset('title_info') }), _jsx(InfoViewer, { info: tabletInfo })] }));
50
+ };
51
+ const renderLinks = () => {
52
+ if (!isUserAllowedToMakeChanges || !TabletId) {
53
+ return null;
54
+ }
55
+ return (_jsxs("div", { children: [_jsx("div", { className: b('section-title'), children: tabletInfoKeyset('title_links') }), _jsxs(Flex, { direction: "column", gap: 3, children: [_jsx(LinkWithIcon, { title: tabletInfoKeyset('field_developer-ui-app'), url: createTabletDeveloperUIHref(TabletId, 'app') }), _jsx(LinkWithIcon, { title: tabletInfoKeyset('field_developer-ui-counters'), url: createTabletDeveloperUIHref(TabletId, 'counters') }), _jsx(LinkWithIcon, { title: tabletInfoKeyset('field_developer-ui-executor'), url: createTabletDeveloperUIHref(TabletId, 'executorInternals') }), _jsx(LinkWithIcon, { title: tabletInfoKeyset('field_developer-ui-state'), url: createTabletDeveloperUIHref(TabletId, undefined, 'SsId') })] })] }));
56
+ };
57
+ return (_jsxs(Flex, { gap: 10, wrap: "nowrap", children: [renderTabletInfo(), renderLinks()] }));
58
+ };
59
+ //# sourceMappingURL=TabletInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabletInfo.js","sourceRoot":"","sources":["../../../../../src/containers/Tablet/components/TabletInfo/TabletInfo.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ @import '../../../../styles/mixins.scss';
2
+
3
+ .ydb-tablet-info {
4
+ &__link {
5
+ @extend .link;
6
+ }
7
+
8
+ &__section-title {
9
+ margin: var(--g-spacing-1) 0 var(--g-spacing-3);
10
+ @include text-subheader-2();
11
+ }
12
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "field_scheme-shard": "SchemeShard",
3
+ "field_follower": "Follower",
4
+ "field_generation": "Generation",
5
+ "field_hive": "HiveId",
6
+ "field_state": "State",
7
+ "field_uptime": "Uptime",
8
+ "field_node": "Node",
9
+ "field_links": "Links",
10
+ "field_developer-ui-app": "App",
11
+ "field_developer-ui-counters": "Counters",
12
+ "field_developer-ui-executor": "Executor DB internals",
13
+ "field_developer-ui-state": "State Storage",
14
+ "title_info": "Info",
15
+ "title_links": "Links"
16
+ }
@@ -0,0 +1 @@
1
+ export declare const tabletInfoKeyset: (key: "field_scheme-shard" | "field_follower" | "field_generation" | "field_hive" | "field_state" | "field_uptime" | "field_node" | "field_links" | "field_developer-ui-app" | "field_developer-ui-counters" | "field_developer-ui-executor" | "field_developer-ui-state" | "title_info" | "title_links", params?: import("@gravity-ui/i18n").Params) => string;
@@ -0,0 +1,5 @@
1
+ import { registerKeysets } from '../../../../../utils/i18n';
2
+ import en from './en.json';
3
+ const COMPONENT = 'ydb-tablet-info';
4
+ export const tabletInfoKeyset = registerKeysets(COMPONENT, { en });
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/containers/Tablet/components/TabletInfo/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAEpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/Tablet/components/TabletInfo/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { TTabletHiveResponse } from '../../../../types/api/tablet';
2
+ import './TabletStorageInfo.scss';
3
+ interface TabletStorageInfoProps {
4
+ data?: TTabletHiveResponse | null;
5
+ }
6
+ export declare function TabletStorageInfo({ data }: TabletStorageInfoProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Table, useTable } from '@gravity-ui/table';
4
+ import { getColumns } from './columns';
5
+ import { b } from './shared';
6
+ import { prepareData } from './utils';
7
+ import './TabletStorageInfo.scss';
8
+ export function TabletStorageInfo({ data }) {
9
+ const [expanded, setExpanded] = React.useState({});
10
+ const tree = React.useMemo(() => prepareData(data), [data]);
11
+ const isExpandable = React.useMemo(() => tree.some((item) => { var _a; return (_a = item.children) === null || _a === void 0 ? void 0 : _a.length; }), [tree]);
12
+ const columns = React.useMemo(() => getColumns(isExpandable), [isExpandable]);
13
+ const table = useTable({
14
+ columns,
15
+ data: tree,
16
+ getSubRows: (item) => item.children,
17
+ enableExpanding: true,
18
+ onExpandedChange: setExpanded,
19
+ state: {
20
+ expanded,
21
+ },
22
+ });
23
+ return (
24
+ //block wrapper for table
25
+ _jsx("div", { children: _jsx(Table, { table: table, headerCellClassName: ({ column }) => {
26
+ var _a;
27
+ const align = (_a = column.columnDef.meta) === null || _a === void 0 ? void 0 : _a.align;
28
+ return b('table-header-cell', { align });
29
+ }, cellClassName: (cell) => {
30
+ var _a, _b;
31
+ const align = (_a = cell === null || cell === void 0 ? void 0 : cell.column.columnDef.meta) === null || _a === void 0 ? void 0 : _a.align;
32
+ const verticalAlign = (_b = cell === null || cell === void 0 ? void 0 : cell.column.columnDef.meta) === null || _b === void 0 ? void 0 : _b.verticalAlign;
33
+ return b('table-cell', { align, 'vertical-align': verticalAlign });
34
+ }, className: b('table') }) }));
35
+ }
36
+ //# sourceMappingURL=TabletStorageInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabletStorageInfo.js","sourceRoot":"","sources":["../../../../../src/containers/Tablet/components/TabletStorageInfo/TabletStorageInfo.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAKlD,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AACrC,OAAO,EAAC,CAAC,EAAC,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEpC,OAAO,0BAA0B,CAAC;AAMlC,MAAM,UAAU,iBAAiB,CAAC,EAAC,IAAI,EAAyB;IAC5D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,CAAA,EAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC;QACnB,OAAO;QACP,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ;QACnC,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,WAAW;QAC7B,KAAK,EAAE;YACH,QAAQ;SACX;KACJ,CAAC,CAAC;IACH,OAAO;IACH,yBAAyB;IACzB,wBACI,KAAC,KAAK,IACF,KAAK,EAAE,KAAK,EACZ,mBAAmB,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE;;gBAC9B,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,KAAK,CAAC;gBAC3C,OAAO,CAAC,CAAC,mBAAmB,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;YAC3C,CAAC,EACD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;;gBACpB,MAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,KAAK,CAAC;gBACjD,MAAM,aAAa,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,aAAa,CAAC;gBACjE,OAAO,CAAC,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAC,CAAC,CAAC;YACrE,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GACvB,GACA,CACT,CAAC;AACN,CAAC"}