ydb-embedded-ui 15.5.1 → 15.6.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 (222) hide show
  1. package/README.md +14 -1
  2. package/dist/components/EntityStatus/EntityStatus.js +5 -2
  3. package/dist/components/EntityStatus/EntityStatus.js.map +1 -1
  4. package/dist/components/EntityStatus/EntityStatus.scss +4 -0
  5. package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
  6. package/dist/components/InternalLinkButton/InternalLinkButton.d.ts +8 -0
  7. package/dist/components/InternalLinkButton/InternalLinkButton.js +25 -0
  8. package/dist/components/InternalLinkButton/InternalLinkButton.js.map +1 -0
  9. package/dist/components/InternalLinkButton/__test__/InternalLinkButton.test.d.ts +1 -0
  10. package/dist/components/InternalLinkButton/__test__/InternalLinkButton.test.js +73 -0
  11. package/dist/components/InternalLinkButton/__test__/InternalLinkButton.test.js.map +1 -0
  12. package/dist/components/InternalLinkButton/index.d.ts +1 -0
  13. package/dist/components/InternalLinkButton/index.js +2 -0
  14. package/dist/components/InternalLinkButton/index.js.map +1 -0
  15. package/dist/components/LinkWithIcon/LinkWithIcon.d.ts +2 -1
  16. package/dist/components/LinkWithIcon/LinkWithIcon.js +2 -2
  17. package/dist/components/LinkWithIcon/LinkWithIcon.js.map +1 -1
  18. package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
  19. package/dist/components/PDiskPopup/PDiskPopup.js +5 -3
  20. package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
  21. package/dist/components/PDiskPopup/i18n/en.json +3 -1
  22. package/dist/components/PDiskPopup/i18n/index.d.ts +1 -1
  23. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  24. package/dist/components/TabletNameWrapper/TabletNameWrapper.d.ts +1 -0
  25. package/dist/components/TabletNameWrapper/TabletNameWrapper.js +4 -1
  26. package/dist/components/TabletNameWrapper/TabletNameWrapper.js.map +1 -1
  27. package/dist/components/TabletNameWrapper/TabletNameWrapper.scss +3 -0
  28. package/dist/components/TenantNameWrapper/TenantNameWrapper.js +29 -20
  29. package/dist/components/TenantNameWrapper/TenantNameWrapper.js.map +1 -1
  30. package/dist/components/TenantNameWrapper/i18n/en.json +3 -2
  31. package/dist/components/TenantNameWrapper/i18n/index.d.ts +1 -1
  32. package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js +12 -11
  33. package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js.map +1 -1
  34. package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/i18n/en.json +1 -2
  35. package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/i18n/index.d.ts +1 -1
  36. package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
  37. package/dist/components/VDiskPopup/VDiskPopup.js +4 -3
  38. package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
  39. package/dist/components/VDiskPopup/i18n/en.json +3 -1
  40. package/dist/components/VDiskPopup/i18n/index.d.ts +1 -1
  41. package/dist/components/nodesColumns/i18n/index.d.ts +1 -1
  42. package/dist/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.js +2 -1
  43. package/dist/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.js.map +1 -1
  44. package/dist/containers/Cluster/ClusterOverview/utils.js +16 -3
  45. package/dist/containers/Cluster/ClusterOverview/utils.js.map +1 -1
  46. package/dist/containers/Clusters/columns.js +39 -8
  47. package/dist/containers/Clusters/columns.js.map +1 -1
  48. package/dist/containers/Clusters/constants.d.ts +1 -1
  49. package/dist/containers/Header/ClusterRightControls.js +2 -2
  50. package/dist/containers/Header/ClusterRightControls.js.map +1 -1
  51. package/dist/containers/Header/DatabaseRightControls.d.ts +3 -2
  52. package/dist/containers/Header/DatabaseRightControls.js +7 -5
  53. package/dist/containers/Header/DatabaseRightControls.js.map +1 -1
  54. package/dist/containers/Header/GlobalRightControls.js +2 -1
  55. package/dist/containers/Header/GlobalRightControls.js.map +1 -1
  56. package/dist/containers/Header/Header.js +2 -2
  57. package/dist/containers/Header/Header.js.map +1 -1
  58. package/dist/containers/Header/Header.scss +4 -0
  59. package/dist/containers/Header/HeaderActionsMenu.d.ts +3 -1
  60. package/dist/containers/Header/HeaderActionsMenu.js +21 -27
  61. package/dist/containers/Header/HeaderActionsMenu.js.map +1 -1
  62. package/dist/containers/Header/HeaderLeftControls.js +1 -1
  63. package/dist/containers/Header/HeaderLeftControls.js.map +1 -1
  64. package/dist/containers/Header/HeaderRightControls.d.ts +2 -2
  65. package/dist/containers/Header/HeaderRightControls.js +2 -2
  66. package/dist/containers/Header/HeaderRightControls.js.map +1 -1
  67. package/dist/containers/Header/MonitoringControl.d.ts +6 -0
  68. package/dist/containers/Header/{ClusterMonitoringControl.js → MonitoringControl.js} +2 -2
  69. package/dist/containers/Header/MonitoringControl.js.map +1 -0
  70. package/dist/containers/Header/hooks/useHeaderData.d.ts +1 -2
  71. package/dist/containers/Header/hooks/useHeaderData.js +25 -2
  72. package/dist/containers/Header/hooks/useHeaderData.js.map +1 -1
  73. package/dist/containers/Header/i18n/en.json +3 -3
  74. package/dist/containers/Header/i18n/index.d.ts +1 -1
  75. package/dist/containers/Operations/columns.js +3 -2
  76. package/dist/containers/Operations/columns.js.map +1 -1
  77. package/dist/containers/Operations/constants.d.ts +1 -1
  78. package/dist/containers/Operations/constants.js +6 -0
  79. package/dist/containers/Operations/constants.js.map +1 -1
  80. package/dist/containers/Operations/i18n/en.json +6 -0
  81. package/dist/containers/Operations/i18n/index.d.ts +1 -1
  82. package/dist/containers/Operations/useOperationsQueryParams.js +13 -1
  83. package/dist/containers/Operations/useOperationsQueryParams.js.map +1 -1
  84. package/dist/containers/Operations/utils.d.ts +8 -5
  85. package/dist/containers/Operations/utils.js +56 -5
  86. package/dist/containers/Operations/utils.js.map +1 -1
  87. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
  88. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.d.ts +8 -1
  89. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js +20 -3
  90. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js.map +1 -1
  91. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/__test__/MetricsTabs.test.d.ts +1 -0
  92. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/__test__/MetricsTabs.test.js +74 -0
  93. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/__test__/MetricsTabs.test.js.map +1 -0
  94. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +94 -46
  95. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  96. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.d.ts +2 -13
  97. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +3 -3
  98. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
  99. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageMode.d.ts +2 -0
  100. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageMode.js +18 -0
  101. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageMode.js.map +1 -0
  102. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.d.ts +3 -0
  103. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js +41 -0
  104. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.js.map +1 -0
  105. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageNew.scss +50 -0
  106. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.d.ts +29 -0
  107. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.js +102 -0
  108. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.js.map +1 -0
  109. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSegments.scss +123 -0
  110. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.d.ts +39 -0
  111. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.js +63 -0
  112. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.js.map +1 -0
  113. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummaryCard.scss +190 -0
  114. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.d.ts +11 -0
  115. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.js +176 -0
  116. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.js.map +1 -0
  117. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageSummarySections.scss +3 -0
  118. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageTopUsageTable.d.ts +10 -0
  119. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageTopUsageTable.js +122 -0
  120. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageTopUsageTable.js.map +1 -0
  121. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorageTopUsageTable.scss +121 -0
  122. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/displayFormatters.test.d.ts +1 -0
  123. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/displayFormatters.test.js +135 -0
  124. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/displayFormatters.test.js.map +1 -0
  125. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/utils.test.d.ts +1 -0
  126. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/utils.test.js +855 -0
  127. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/__test__/utils.test.js.map +1 -0
  128. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.d.ts +15 -0
  129. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.js +101 -0
  130. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/displayFormatters.js.map +1 -0
  131. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/en.json +56 -0
  132. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.d.ts +2 -0
  133. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.js +6 -0
  134. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/i18n/index.js.map +1 -0
  135. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/storageDashboardConfig.js +3 -3
  136. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/storageDashboardConfig.js.map +1 -1
  137. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/types.d.ts +16 -0
  138. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/types.js +2 -0
  139. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/types.js.map +1 -0
  140. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/useTenantStorageNewData.d.ts +89 -0
  141. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/useTenantStorageNewData.js +18 -0
  142. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/useTenantStorageNewData.js.map +1 -0
  143. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/utils.d.ts +109 -0
  144. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/utils.js +508 -0
  145. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/utils.js.map +1 -0
  146. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +0 -8
  147. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
  148. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssues.js +2 -2
  149. package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssues.js.map +1 -1
  150. package/dist/containers/Tenant/ObjectSummary/i18n/index.d.ts +1 -1
  151. package/dist/containers/Tenant/utils/schemaActions.js +4 -3
  152. package/dist/containers/Tenant/utils/schemaActions.js.map +1 -1
  153. package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
  154. package/dist/lib.d.ts +1 -0
  155. package/dist/lib.js +1 -0
  156. package/dist/lib.js.map +1 -1
  157. package/dist/store/reducers/cluster/__test__/parseFields.test.js +35 -1
  158. package/dist/store/reducers/cluster/__test__/parseFields.test.js.map +1 -1
  159. package/dist/store/reducers/cluster/cluster.d.ts +1 -1
  160. package/dist/store/reducers/cluster/parseFields.d.ts +10 -0
  161. package/dist/store/reducers/cluster/parseFields.js +41 -0
  162. package/dist/store/reducers/cluster/parseFields.js.map +1 -1
  163. package/dist/store/reducers/clusters/types.d.ts +10 -3
  164. package/dist/store/reducers/clusters/utils.js +8 -3
  165. package/dist/store/reducers/clusters/utils.js.map +1 -1
  166. package/dist/store/reducers/storageUsage/StorageUsage.d.ts +1 -1
  167. package/dist/store/reducers/storageUsage/__test__/storageUsage.test.js +3 -0
  168. package/dist/store/reducers/storageUsage/__test__/storageUsage.test.js.map +1 -1
  169. package/dist/store/reducers/tenantOverview/storage/__test__/tenantOverviewStorage.test.d.ts +1 -0
  170. package/dist/store/reducers/tenantOverview/storage/__test__/tenantOverviewStorage.test.js +333 -0
  171. package/dist/store/reducers/tenantOverview/storage/__test__/tenantOverviewStorage.test.js.map +1 -0
  172. package/dist/store/reducers/tenantOverview/storage/tenantOverviewStorage.d.ts +42 -0
  173. package/dist/store/reducers/tenantOverview/storage/tenantOverviewStorage.js +289 -0
  174. package/dist/store/reducers/tenantOverview/storage/tenantOverviewStorage.js.map +1 -0
  175. package/dist/store/reducers/tenants/__test__/utils.test.d.ts +1 -0
  176. package/dist/store/reducers/tenants/__test__/utils.test.js +151 -0
  177. package/dist/store/reducers/tenants/__test__/utils.test.js.map +1 -0
  178. package/dist/store/reducers/tenants/utils.d.ts +19 -4
  179. package/dist/store/reducers/tenants/utils.js +149 -42
  180. package/dist/store/reducers/tenants/utils.js.map +1 -1
  181. package/dist/styles/mixins.scss +4 -0
  182. package/dist/types/additionalProps.d.ts +1 -4
  183. package/dist/types/api/operations.d.ts +92 -2
  184. package/dist/types/api/operations.js +25 -0
  185. package/dist/types/api/operations.js.map +1 -1
  186. package/dist/types/api/storage.d.ts +1 -1
  187. package/dist/types/api/tenant.d.ts +14 -1
  188. package/dist/types/api/tenant.js.map +1 -1
  189. package/dist/uiFactory/types.d.ts +5 -0
  190. package/dist/utils/__test__/storageMetrics.test.js +7 -0
  191. package/dist/utils/__test__/storageMetrics.test.js.map +1 -1
  192. package/dist/utils/__test__/utils.test.d.ts +1 -0
  193. package/dist/utils/__test__/utils.test.js +30 -0
  194. package/dist/utils/__test__/utils.test.js.map +1 -0
  195. package/dist/utils/additionalProps.js +17 -4
  196. package/dist/utils/additionalProps.js.map +1 -1
  197. package/dist/utils/clusterLinks/__test__/resolveClusterLinks.test.js +647 -5
  198. package/dist/utils/clusterLinks/__test__/resolveClusterLinks.test.js.map +1 -1
  199. package/dist/utils/clusterLinks/clusterLinkConstants.js +3 -5
  200. package/dist/utils/clusterLinks/clusterLinkConstants.js.map +1 -1
  201. package/dist/utils/clusterLinks/i18n/en.json +1 -1
  202. package/dist/utils/clusterLinks/resolveClusterLinks.d.ts +32 -12
  203. package/dist/utils/clusterLinks/resolveClusterLinks.js +182 -29
  204. package/dist/utils/clusterLinks/resolveClusterLinks.js.map +1 -1
  205. package/dist/utils/clusterLinks/useDatabaseLinks.d.ts +3 -0
  206. package/dist/utils/clusterLinks/useDatabaseLinks.js +13 -0
  207. package/dist/utils/clusterLinks/useDatabaseLinks.js.map +1 -0
  208. package/dist/utils/disks/normalizeMediaType.js +4 -1
  209. package/dist/utils/disks/normalizeMediaType.js.map +1 -1
  210. package/dist/utils/monitoring.d.ts +4 -1
  211. package/dist/utils/monitoring.js +45 -45
  212. package/dist/utils/monitoring.js.map +1 -1
  213. package/dist/utils/query.d.ts +1 -1
  214. package/dist/utils/storageMetrics.d.ts +7 -1
  215. package/dist/utils/storageMetrics.js +9 -6
  216. package/dist/utils/storageMetrics.js.map +1 -1
  217. package/dist/utils/utils.d.ts +6 -0
  218. package/dist/utils/utils.js +11 -0
  219. package/dist/utils/utils.js.map +1 -1
  220. package/package.json +1 -1
  221. package/dist/containers/Header/ClusterMonitoringControl.d.ts +0 -6
  222. package/dist/containers/Header/ClusterMonitoringControl.js.map +0 -1
package/README.md CHANGED
@@ -21,12 +21,25 @@ Open http://localhost:8765 to view it in the browser.
21
21
  ## Development
22
22
 
23
23
  1. Run on a machine with Docker installed:
24
+
24
25
  ```
25
26
  docker run --rm -ti --name ydb-local -h localhost \
26
27
  -p 8765:8765 \
27
28
  -e MON_PORT=8765 \
28
29
  ghcr.io/ydb-platform/local-ydb:nightly
29
30
  ```
31
+
32
+ On macOS with Colima on Apple Silicon, `ghcr.io/ydb-platform/local-ydb:nightly` can require `linux/amd64` emulation. Start Colima with Rosetta and run the container with an explicit platform:
33
+
34
+ ```
35
+ colima start --vm-type vz --vz-rosetta --cpu 4 --memory 8
36
+ docker context use colima
37
+ docker run --rm -ti --name ydb-local -h localhost --platform linux/amd64 \
38
+ -p 8765:8765 \
39
+ -e MON_PORT=8765 \
40
+ ghcr.io/ydb-platform/local-ydb:nightly
41
+ ```
42
+
30
43
  2. Install dependencies with `npm ci`
31
44
  3. Run the frontend app in the development mode, via invoking `npm run dev`
32
45
  4. Open [localhost:3000](http://localhost:3000) to view it in the browser. The page will reload if you make edits.\
@@ -114,7 +127,7 @@ npm run test:e2e:docker:report
114
127
 
115
128
  ### CI
116
129
 
117
- E2E tests are run in CI in `e2e_tests` job. Tests run on Playwright `webServer` (it is started with `npm run dev`), `webServer` uses docker container `ghcr.io/ydb-platform/local-ydb:nightly` as backend.
130
+ E2E tests are run in CI in `e2e_tests` job. Tests run on Playwright `webServer` (it is started with `npm run dev`), and the Docker test flow uses `ghcr.io/ydb-platform/local-ydb:nightly` as backend.
118
131
 
119
132
  ## Making a production bundle.
120
133
 
@@ -12,7 +12,6 @@ const b = cn('entity-status');
12
12
  function defaultRenderName(name) {
13
13
  return name !== null && name !== void 0 ? name : '';
14
14
  }
15
- // eslint-disable-next-line complexity
16
15
  export function EntityStatus({ status = EFlag.Grey, name = '', renderName = defaultRenderName, path, size = 's', mode = 'color', showStatus = true, externalLink = false, withLeftTrim = false, hasClipboardButton, infoPopoverContent, clipboardButtonAlwaysVisible = false, className, }) {
17
16
  const [infoIconHovered, setInfoIconHovered] = React.useState(false);
18
17
  const renderIcon = () => {
@@ -33,7 +32,11 @@ export function EntityStatus({ status = EFlag.Grey, name = '', renderName = defa
33
32
  return (_jsxs("div", { className: b(null, className), children: [renderIcon(), (path || name) && (_jsxs("div", { className: b('wrapper', {
34
33
  'with-clipboard-button': hasClipboardButton,
35
34
  'with-info-button': Boolean(infoPopoverContent),
36
- }), children: [_jsx("span", { className: b('link', { 'with-left-trim': withLeftTrim }), title: name, children: renderLink() }), (hasClipboardButton || infoPopoverContent) && (_jsxs("div", { className: b('controls-wrapper', {
35
+ 'with-link': Boolean(path),
36
+ }), children: [_jsx("span", { className: b('link', {
37
+ 'with-left-trim': withLeftTrim,
38
+ 'with-path': Boolean(path),
39
+ }), title: name, children: renderLink() }), (hasClipboardButton || infoPopoverContent) && (_jsxs("div", { className: b('controls-wrapper', {
37
40
  visible: clipboardButtonAlwaysVisible || infoIconHovered,
38
41
  }), onClick: (e) => e.stopPropagation(), children: [infoPopoverContent && (_jsx(Popover, { className: YDB_POPOVER_CLASS_NAME, content: infoPopoverContent, placement: ['top-start', 'bottom-start'], onOpenChange: (visible) => setInfoIconHovered(visible), children: _jsx(Button, { view: "normal", size: "xs", className: b('info-icon', {
39
42
  visible: clipboardButtonAlwaysVisible || infoIconHovered,
@@ -1 +1 @@
1
- {"version":3,"file":"EntityStatus.js","sourceRoot":"","sources":["../../../src/components/EntityStatus/EntityStatus.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityStatus.js","sourceRoot":"","sources":["../../../src/components/EntityStatus/EntityStatus.tsx"],"names":[],"mappings":"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"}
@@ -123,6 +123,10 @@
123
123
  }
124
124
  }
125
125
 
126
+ &__link_with-path {
127
+ color: var(--g-color-text-link);
128
+ }
129
+
126
130
  &__link_with-left-trim {
127
131
  text-align: end;
128
132
  direction: rtl;
@@ -1,2 +1,2 @@
1
- declare const _default: (key: "version" | "database" | "links" | "dc" | "uptime" | "rack" | "no-data" | "developer-ui" | "la-interval-1m" | "la-interval-5m" | "la-interval-15m" | "title.common-info" | "title.endpoints" | "title.roles" | "title.pools" | "title.load-average", params?: import("@gravity-ui/i18n").Params) => string;
1
+ declare const _default: (key: "version" | "database" | "links" | "dc" | "uptime" | "rack" | "no-data" | "la-interval-1m" | "la-interval-5m" | "la-interval-15m" | "developer-ui" | "title.common-info" | "title.endpoints" | "title.roles" | "title.pools" | "title.load-average", params?: import("@gravity-ui/i18n").Params) => string;
2
2
  export default _default;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { ButtonProps } from '@gravity-ui/uikit';
3
+ type InternalLinkButtonProps = ButtonProps & {
4
+ href: string;
5
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
6
+ };
7
+ export declare function InternalLinkButton({ href, onClick, target, ...props }: InternalLinkButtonProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Button } from '@gravity-ui/uikit';
4
+ import { useHistory } from 'react-router-dom';
5
+ import { getLocationObjectFromHref } from '../../routes';
6
+ export function InternalLinkButton({ href, onClick, target, ...props }) {
7
+ const history = useHistory();
8
+ const linkHref = React.useMemo(() => history.createHref(getLocationObjectFromHref(href)), [history, href]);
9
+ const navigate = React.useCallback((path) => history.push(path), [history]);
10
+ const handleClick = React.useCallback((event) => {
11
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
12
+ const isModifiedEvent = event.metaKey || event.altKey || event.ctrlKey || event.shiftKey;
13
+ const shouldHandleInternally = !event.defaultPrevented &&
14
+ event.button === 0 &&
15
+ !isModifiedEvent &&
16
+ (!target || target === '_self');
17
+ if (!shouldHandleInternally) {
18
+ return;
19
+ }
20
+ event.preventDefault();
21
+ navigate(href);
22
+ }, [href, navigate, onClick, target]);
23
+ return _jsx(Button, { ...props, href: linkHref, target: target, onClick: handleClick });
24
+ }
25
+ //# sourceMappingURL=InternalLinkButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalLinkButton.js","sourceRoot":"","sources":["../../../src/components/InternalLinkButton/InternalLinkButton.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAC,yBAAyB,EAAC,MAAM,cAAc,CAAC;AAOvD,MAAM,UAAU,kBAAkB,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,EAA0B;IACzF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC1B,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,EACzD,CAAC,OAAO,EAAE,IAAI,CAAC,CAClB,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,KAAK,EAAE,EAAE;QACN,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;QAEjB,MAAM,eAAe,GACjB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC;QACrE,MAAM,sBAAsB,GACxB,CAAC,KAAK,CAAC,gBAAgB;YACvB,KAAK,CAAC,MAAM,KAAK,CAAC;YAClB,CAAC,eAAe;YAChB,CAAC,CAAC,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC;QAEpC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,EACD,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CACpC,CAAC;IAEF,OAAO,KAAC,MAAM,OAAK,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAI,CAAC;AACvF,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { fireEvent, render, screen } from '@testing-library/react';
3
+ import { InternalLinkButton } from '../InternalLinkButton';
4
+ const mockPush = jest.fn();
5
+ const mockCreateHref = jest.fn(({ pathname, search, hash }) => `${pathname}${search}${hash}`);
6
+ jest.mock('react-router-dom', () => ({
7
+ useHistory: () => ({
8
+ push: mockPush,
9
+ createHref: mockCreateHref,
10
+ }),
11
+ }));
12
+ describe('InternalLinkButton', () => {
13
+ beforeEach(() => {
14
+ mockPush.mockClear();
15
+ mockCreateHref.mockClear();
16
+ mockCreateHref.mockImplementation(({ pathname, search, hash }) => `/base${pathname}${search}${hash}`);
17
+ });
18
+ test('renders browser href created by history.createHref', () => {
19
+ render(_jsx(InternalLinkButton, { href: "/vDisk?nodeId=4&vDiskId=0-1-0-3-0", children: "VDisk" }));
20
+ const link = screen.getByRole('link', { name: 'VDisk' });
21
+ expect(mockCreateHref).toHaveBeenCalledWith({
22
+ pathname: '/vDisk',
23
+ search: '?nodeId=4&vDiskId=0-1-0-3-0',
24
+ hash: '',
25
+ });
26
+ expect(link.getAttribute('href')).toBe('/base/vDisk?nodeId=4&vDiskId=0-1-0-3-0');
27
+ });
28
+ test('navigates internally on unmodified left click', () => {
29
+ const onClick = jest.fn();
30
+ render(_jsx(InternalLinkButton, { href: "/pDisk?nodeId=4&pDiskId=1001", onClick: onClick, children: "PDisk" }));
31
+ const link = screen.getByRole('link', { name: 'PDisk' });
32
+ const wasNotPrevented = fireEvent.click(link, { button: 0 });
33
+ expect(wasNotPrevented).toBe(false);
34
+ expect(onClick).toHaveBeenCalledTimes(1);
35
+ expect(mockPush).toHaveBeenCalledTimes(1);
36
+ expect(mockPush).toHaveBeenCalledWith('/pDisk?nodeId=4&pDiskId=1001');
37
+ });
38
+ test('does not navigate internally when onClick prevents default', () => {
39
+ const onClick = jest.fn((event) => {
40
+ event.preventDefault();
41
+ });
42
+ render(_jsx(InternalLinkButton, { href: "/pDisk?nodeId=4&pDiskId=1001", onClick: onClick, children: "PDisk" }));
43
+ const link = screen.getByRole('link', { name: 'PDisk' });
44
+ const wasNotPrevented = fireEvent.click(link, { button: 0 });
45
+ expect(wasNotPrevented).toBe(false);
46
+ expect(onClick).toHaveBeenCalledTimes(1);
47
+ expect(mockPush).not.toHaveBeenCalled();
48
+ });
49
+ test.each([
50
+ ['meta click', { button: 0, metaKey: true }],
51
+ ['ctrl click', { button: 0, ctrlKey: true }],
52
+ ['shift click', { button: 0, shiftKey: true }],
53
+ ['alt click', { button: 0, altKey: true }],
54
+ ['middle click', { button: 1 }],
55
+ ])('lets browser handle %s', (_name, eventInit) => {
56
+ const onClick = jest.fn();
57
+ render(_jsx(InternalLinkButton, { href: "/vDisk?nodeId=4&vDiskId=0-1-0-3-0", onClick: onClick, children: "VDisk" }));
58
+ const link = screen.getByRole('link', { name: 'VDisk' });
59
+ const wasNotPrevented = fireEvent.click(link, eventInit);
60
+ expect(wasNotPrevented).toBe(true);
61
+ expect(onClick).toHaveBeenCalledTimes(1);
62
+ expect(mockPush).not.toHaveBeenCalled();
63
+ });
64
+ test('lets browser handle links with non-self target', () => {
65
+ render(_jsx(InternalLinkButton, { href: "/vDisk?nodeId=4&vDiskId=0-1-0-3-0", target: "_blank", children: "VDisk" }));
66
+ const link = screen.getByRole('link', { name: 'VDisk' });
67
+ const wasNotPrevented = fireEvent.click(link, { button: 0 });
68
+ expect(wasNotPrevented).toBe(true);
69
+ expect(link.getAttribute('target')).toBe('_blank');
70
+ expect(mockPush).not.toHaveBeenCalled();
71
+ });
72
+ });
73
+ //# sourceMappingURL=InternalLinkButton.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalLinkButton.test.js","sourceRoot":"","sources":["../../../../src/components/InternalLinkButton/__test__/InternalLinkButton.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './InternalLinkButton';
@@ -0,0 +1,2 @@
1
+ export * from './InternalLinkButton';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/InternalLinkButton/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -7,6 +7,7 @@ interface ExternalLinkWithIconProps {
7
7
  className?: string;
8
8
  icon?: IconData;
9
9
  description?: string;
10
+ hideEndIcon?: boolean;
10
11
  }
11
- export declare const LinkWithIcon: ({ title, url, external, className, icon, description, }: ExternalLinkWithIconProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const LinkWithIcon: ({ title, url, external, className, icon, description, hideEndIcon, }: ExternalLinkWithIconProps) => import("react/jsx-runtime").JSX.Element;
12
13
  export {};
@@ -6,8 +6,8 @@ import { cn } from '../../utils/cn';
6
6
  import { InternalLink } from '../InternalLink';
7
7
  import './LinkWithIcon.scss';
8
8
  const b = cn('ydb-link-with-icon');
9
- export const LinkWithIcon = ({ title, url, external = true, className, icon, description, }) => {
10
- const linkContent = (_jsxs(React.Fragment, { children: [icon ? _jsx(Icon, { data: icon, size: 16 }) : null, icon ? '\u00a0' : null, title, '\u00a0', _jsx(ArrowUpRightFromSquare, {})] }));
9
+ export const LinkWithIcon = ({ title, url, external = true, className, icon, description, hideEndIcon, }) => {
10
+ const linkContent = (_jsxs(React.Fragment, { children: [icon ? _jsx(Icon, { data: icon, size: 16 }) : null, icon ? '\u00a0' : null, title, hideEndIcon ? null : (_jsxs(React.Fragment, { children: ['\u00a0', _jsx(ArrowUpRightFromSquare, {})] }))] }));
11
11
  const link = external ? (_jsx(Link, { href: url, target: "_blank", className: b(null, className), children: linkContent })) : (_jsx(InternalLink, { to: url, className: b(null, className), children: linkContent }));
12
12
  if (description) {
13
13
  return (_jsx(ActionTooltip, { title: description, placement: ['top', 'bottom'], children: link }));
@@ -1 +1 @@
1
- {"version":3,"file":"LinkWithIcon.js","sourceRoot":"","sources":["../../../src/components/LinkWithIcon/LinkWithIcon.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,OAAO,qBAAqB,CAAC;AAE7B,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC;AAWnC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EACzB,KAAK,EACL,GAAG,EACH,QAAQ,GAAG,IAAI,EACf,SAAS,EACT,IAAI,EACJ,WAAW,GACa,EAAE,EAAE;IAC5B,MAAM,WAAW,GAAG,CAChB,MAAC,KAAK,CAAC,QAAQ,eACV,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,EAC5C,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EACtB,KAAK,EACL,QAAQ,EACT,KAAC,sBAAsB,KAAG,IACb,CACpB,CAAC;IAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CACpB,KAAC,IAAI,IAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,YACzD,WAAW,GACT,CACV,CAAC,CAAC,CAAC,CACA,KAAC,YAAY,IAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,YAC/C,WAAW,GACD,CAClB,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,CACH,KAAC,aAAa,IAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,YAC1D,IAAI,GACO,CACnB,CAAC;IACN,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"LinkWithIcon.js","sourceRoot":"","sources":["../../../src/components/LinkWithIcon/LinkWithIcon.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,OAAO,qBAAqB,CAAC;AAE7B,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC;AAYnC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EACzB,KAAK,EACL,GAAG,EACH,QAAQ,GAAG,IAAI,EACf,SAAS,EACT,IAAI,EACJ,WAAW,EACX,WAAW,GACa,EAAE,EAAE;IAC5B,MAAM,WAAW,GAAG,CAChB,MAAC,KAAK,CAAC,QAAQ,eACV,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,EAC5C,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EACtB,KAAK,EACL,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,MAAC,KAAK,CAAC,QAAQ,eACV,QAAQ,EACT,KAAC,sBAAsB,KAAG,IACb,CACpB,IACY,CACpB,CAAC;IAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CACpB,KAAC,IAAI,IAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,YACzD,WAAW,GACT,CACV,CAAC,CAAC,CAAC,CACA,KAAC,YAAY,IAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,YAC/C,WAAW,GACD,CAClB,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,CACH,KAAC,aAAa,IAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,YAC1D,IAAI,GACO,CACnB,CAAC;IACN,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC"}
@@ -1 +1 @@
1
- export declare const pDiskInfoKeyset: (key: "space" | "path" | "type" | "links" | "state" | "yes" | "guid" | "serial-number" | "shared-with-os" | "drive-status" | "device" | "realtime" | "usage" | "slots" | "log-size" | "system-size" | "developer-ui", params?: import("@gravity-ui/i18n").Params) => string;
1
+ export declare const pDiskInfoKeyset: (key: "space" | "path" | "type" | "links" | "state" | "yes" | "usage" | "developer-ui" | "guid" | "serial-number" | "shared-with-os" | "drive-status" | "device" | "realtime" | "slots" | "log-size" | "system-size", params?: import("@gravity-ui/i18n").Params) => string;
@@ -1,7 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
+ import { Wrench } from '@gravity-ui/icons';
3
4
  import { Flex, Label } from '@gravity-ui/uikit';
4
5
  import { isNil } from 'lodash';
6
+ import { getPDiskPagePath } from '../../routes';
5
7
  import { selectNodesMap } from '../../store/reducers/nodesList';
6
8
  import { EFlag } from '../../types/api/enums';
7
9
  import { EMPTY_DATA_PLACEHOLDER } from '../../utils/constants';
@@ -11,9 +13,8 @@ import { NUMERIC_SEVERITY_TO_LABEL_VIEW } from '../../utils/disks/constants';
11
13
  import { useTypedSelector } from '../../utils/hooks';
12
14
  import { useDatabaseFromQuery } from '../../utils/hooks/useDatabaseFromQuery';
13
15
  import { bytesToGB, isNumeric } from '../../utils/utils';
16
+ import { InternalLinkButton } from '../InternalLinkButton';
14
17
  import { LinkWithIcon } from '../LinkWithIcon/LinkWithIcon';
15
- import { pDiskInfoKeyset } from '../PDiskInfo/i18n';
16
- import { PDiskPageLink } from '../PDiskPageLink/PDiskPageLink';
17
18
  import { StatusIcon } from '../StatusIcon/StatusIcon';
18
19
  import { YDBDefinitionList } from '../YDBDefinitionList/YDBDefinitionList';
19
20
  import { pDiskPopupKeyset } from './i18n';
@@ -96,7 +97,8 @@ export const buildPDiskFooter = (data, withDeveloperUILink) => {
96
97
  pDiskId: PDiskId,
97
98
  })
98
99
  : undefined;
99
- return (_jsxs(Flex, { gap: 2, wrap: "wrap", children: [_jsx(PDiskPageLink, { pDiskId: PDiskId, nodeId: NodeId }), pDiskInternalViewerPath && (_jsx(LinkWithIcon, { title: pDiskInfoKeyset('developer-ui'), url: pDiskInternalViewerPath }))] }));
100
+ const pDiskPagePath = getPDiskPagePath(PDiskId, NodeId);
101
+ return (_jsxs(Flex, { direction: "column", gap: 5, alignItems: "flex-start", children: [pDiskInternalViewerPath && (_jsx(LinkWithIcon, { title: pDiskPopupKeyset('action_open-in-developer-ui'), url: pDiskInternalViewerPath, icon: Wrench, hideEndIcon: true })), _jsx(InternalLinkButton, { href: pDiskPagePath, view: "action", size: "m", children: pDiskPopupKeyset('action_go-to-pdisk') })] }));
100
102
  };
101
103
  export const PDiskPopup = ({ data }) => {
102
104
  const database = useDatabaseFromQuery();
@@ -1 +1 @@
1
- {"version":3,"file":"PDiskPopup.js","sourceRoot":"","sources":["../../../src/components/PDiskPopup/PDiskPopup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PDiskPopup.js","sourceRoot":"","sources":["../../../src/components/PDiskPopup/PDiskPopup.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAC,KAAK,EAAC,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAC,0BAA0B,EAAE,iBAAiB,EAAC,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAC,gBAAgB,EAAC,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAC,8BAA8B,EAAC,MAAM,6BAA6B,CAAC;AAE3E,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAKpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,wCAAwC,CAAC;AAEzE,OAAO,EAAC,gBAAgB,EAAC,MAAM,QAAQ,CAAC;AAExC,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAmB,EAAE,QAAuC,EAAE,EAAE;IAC7F,MAAM,EAAC,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC;IAE9E,MAAM,SAAS,GAA4B;QACvC,EAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,gBAAgB,CAAC,eAAe,CAAC,EAAC;KAC7F,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACT,SAAS,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,gBAAgB,CAAC,eAAe,CAAC;YACvC,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,MAAM;SACnB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE,CAAC;QACjB,SAAS,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC;YACpC,OAAO,EAAE,QAAQ,CAAC,IAAI;YACtB,QAAQ,EAAE,QAAQ,CAAC,IAAI;SAC1B,CAAC,CAAC;IACP,CAAC;IAED,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,EAAE,CAAC;QACf,SAAS,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,KAAC,KAAK,cAAE,QAAQ,CAAC,EAAE,GAAS,EAAC,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACP,SAAS,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;QACnD,SAAS,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,gBAAgB,CAAC,iBAAiB,CAAC;YACzC,OAAO,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;SACjG,CAAC,CAAC;IACP,CAAC;IAED,IAAI,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,SAAS,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;YACxC,OAAO,EAAE,KAAC,UAAU,IAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAE,QAAQ,GAAI;SACzD,CAAC,CAAC;IACP,CAAC;IAED,IAAI,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,SAAS,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC;YACtC,OAAO,EAAE,KAAC,UAAU,IAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAE,MAAM,GAAI;SACvD,CAAC,CAAC;IACP,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAmB,EAAkC,EAAE;IAC5F,MAAM,MAAM,GAAmC,EAAE,CAAC;IAClD,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC;IAErB,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,CAAC;YACR,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,gBAAgB,CAAC,uBAAuB,CAAC;SACnD,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;QAE/D,MAAM,CAAC,IAAI,CAAC;YACR,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,IAAmB,EACnB,mBAA6B,EACP,EAAE;IACxB,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC;IAE/B,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,uBAAuB,GAAG,mBAAmB;QAC/C,CAAC,CAAC,0BAA0B,CAAC;YACvB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;SACnB,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAExD,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,YAAY,aACnD,uBAAuB,IAAI,CACxB,KAAC,YAAY,IACT,KAAK,EAAE,gBAAgB,CAAC,6BAA6B,CAAC,EACtD,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,MAAM,EACZ,WAAW,SACb,CACL,EACD,KAAC,kBAAkB,IAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,GAAG,YAC1D,gBAAgB,CAAC,oBAAoB,CAAC,GACtB,IAClB,CACV,CAAC;AACN,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAC,IAAI,EAAkB,EAAE,EAAE;IAClD,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE7E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAErF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAC9B,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,EACpC,CAAC,IAAI,CAAC,CACT,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CACxB,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,EAC5C,CAAC,IAAI,EAAE,cAAc,CAAC,CACzB,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;IAEnC,OAAO,CACH,KAAC,iBAAiB,IACd,OAAO,QACP,KAAK,EAAC,OAAO,EACb,WAAW,EAAE,EAAC,KAAK,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,sBAAsB,EAAE,QAAQ,EAAE,OAAO,EAAC,EAC1E,KAAK,EAAE,IAAI,EACX,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,GAAG,GACnB,CACL,CAAC;AACN,CAAC,CAAC"}
@@ -9,5 +9,7 @@
9
9
  "label_realtime": "Realtime",
10
10
  "label_device": "Device",
11
11
  "value_unknown": "unknown",
12
- "value_of": "of"
12
+ "value_of": "of",
13
+ "action_open-in-developer-ui": "Open in Developer UI",
14
+ "action_go-to-pdisk": "Go to PDisk"
13
15
  }
@@ -1 +1 @@
1
- export declare const pDiskPopupKeyset: (key: "label_node-id" | "context_not-available" | "label_type" | "label_host" | "label_dc" | "label_path" | "label_available" | "label_realtime" | "label_device" | "value_unknown" | "value_of", params?: import("@gravity-ui/i18n").Params) => string;
1
+ export declare const pDiskPopupKeyset: (key: "label_node-id" | "context_not-available" | "label_type" | "label_host" | "label_dc" | "label_path" | "label_available" | "label_realtime" | "label_device" | "value_unknown" | "value_of" | "action_open-in-developer-ui" | "action_go-to-pdisk", params?: import("@gravity-ui/i18n").Params) => string;
@@ -1 +1 @@
1
- export declare const storageGroupInfoKeyset: (key: "state" | "available" | "yes" | "no" | "usage" | "read-throughput" | "write-throughput" | "encryption" | "missing-disks" | "latency" | "allocation-units" | "overall" | "disk-space" | "media-type" | "erasure-species" | "used-space" | "group-generation" | "latency-put-tablet-log" | "latency-put-user-data" | "latency-get-fast", params?: import("@gravity-ui/i18n").Params) => string;
1
+ export declare const storageGroupInfoKeyset: (key: "state" | "available" | "yes" | "no" | "encryption" | "missing-disks" | "usage" | "latency" | "allocation-units" | "overall" | "read-throughput" | "write-throughput" | "disk-space" | "media-type" | "erasure-species" | "used-space" | "group-generation" | "latency-put-tablet-log" | "latency-put-user-data" | "latency-get-fast", params?: import("@gravity-ui/i18n").Params) => string;
@@ -1,3 +1,4 @@
1
+ import './TabletNameWrapper.scss';
1
2
  interface TabletNameWrapperProps {
2
3
  tabletId: string | number;
3
4
  followerId?: string | number;
@@ -1,10 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useTabletPagePath } from '../../routes';
3
+ import { cn } from '../../utils/cn';
3
4
  import { EntityStatus } from '../EntityStatus/EntityStatus';
5
+ import './TabletNameWrapper.scss';
6
+ const b = cn('ydb-tablet-name-wrapper');
4
7
  export function TabletNameWrapper({ tabletId, followerId }) {
5
8
  const getTabletPagePath = useTabletPagePath();
6
9
  const tabletPath = getTabletPagePath(tabletId, { followerId: followerId === null || followerId === void 0 ? void 0 : followerId.toString() });
7
10
  const tabletName = `${tabletId}${followerId ? `.${followerId}` : ''}`;
8
- return (_jsx(EntityStatus, { name: tabletName, path: tabletPath, hasClipboardButton: true, showStatus: false }));
11
+ return (_jsx(EntityStatus, { name: tabletName, path: tabletPath, hasClipboardButton: true, showStatus: false, className: b() }));
9
12
  }
10
13
  //# sourceMappingURL=TabletNameWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabletNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TabletNameWrapper/TabletNameWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAO1D,MAAM,UAAU,iBAAiB,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAyB;IAC5E,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAC,UAAU,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,EAAC,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEtE,OAAO,CACH,KAAC,YAAY,IAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,QAAC,UAAU,EAAE,KAAK,GAAI,CAC7F,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"TabletNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TabletNameWrapper/TabletNameWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAE1D,OAAO,0BAA0B,CAAC;AAElC,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC;AAOxC,MAAM,UAAU,iBAAiB,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAyB;IAC5E,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAC,UAAU,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,EAAC,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEtE,OAAO,CACH,KAAC,YAAY,IACT,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,kBAAkB,QAClB,UAAU,EAAE,KAAK,EACjB,SAAS,EAAE,CAAC,EAAE,GAChB,CACL,CAAC;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ .ydb-tablet-name-wrapper {
2
+ height: 100%;
3
+ }
@@ -1,16 +1,20 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
- import { ArrowUpRightFromSquare, Pencil, TrashBin } from '@gravity-ui/icons';
4
- import { ClipboardButton, DropdownMenu, Flex, Icon, Link, Text } from '@gravity-ui/uikit';
3
+ import { Pencil, PlugConnection, TrashBin } from '@gravity-ui/icons';
4
+ import { ClipboardButton, Flex, Link, Text } from '@gravity-ui/uikit';
5
5
  import { getTenantPath } from '../../routes';
6
6
  import { useEmMetaAvailable } from '../../store/reducers/capabilities/hooks';
7
7
  import { useClusterBaseInfo } from '../../store/reducers/cluster/cluster';
8
8
  import { EFlag } from '../../types/api/enums';
9
9
  import { uiFactory } from '../../uiFactory/uiFactory';
10
10
  import { getDatabaseLinks } from '../../utils/additionalProps';
11
+ import { CLUSTER_LINK_CONTEXT } from '../../utils/clusterLinks/clusterLinkConstants';
12
+ import { useDatabaseLinks } from '../../utils/clusterLinks/useDatabaseLinks';
11
13
  import { cn } from '../../utils/cn';
12
14
  import { useIsUserAllowedToMakeChanges } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
13
15
  import { canShowTenantMonitoring } from '../../utils/monitoringVisibility';
16
+ import { getConnectToDBDialog } from '../ConnectToDB/ConnectToDBDialog';
17
+ import { DropdownMenu } from '../DropdownMenu';
14
18
  import { EntityStatus } from '../EntityStatusNew/EntityStatus';
15
19
  import { InternalLink } from '../InternalLink/InternalLink';
16
20
  import i18n from './i18n';
@@ -26,12 +30,13 @@ export function TenantNameWrapper({ tenant, clusterName, additionalTenantsProps,
26
30
  const { settings } = useClusterBaseInfo();
27
31
  const backend = getTenantBackend(tenant, additionalTenantsProps);
28
32
  const isExternalLink = externalLink || Boolean(backend);
29
- const links = getDatabaseLinks(additionalTenantsProps, tenant === null || tenant === void 0 ? void 0 : tenant.Name, tenant === null || tenant === void 0 ? void 0 : tenant.Type);
33
+ const legacyLinks = React.useMemo(() => getDatabaseLinks(additionalTenantsProps, tenant === null || tenant === void 0 ? void 0 : tenant.Name, tenant === null || tenant === void 0 ? void 0 : tenant.Type), [additionalTenantsProps, tenant === null || tenant === void 0 ? void 0 : tenant.Name, tenant === null || tenant === void 0 ? void 0 : tenant.Type]);
30
34
  const { monitoring: clusterMonitoring } = useClusterBaseInfo();
31
35
  const showMonitoring = canShowTenantMonitoring(tenant === null || tenant === void 0 ? void 0 : tenant.ControlPlane, clusterMonitoring);
32
- const filteredLinks = showMonitoring
33
- ? links
34
- : links.filter(({ title }) => title !== i18n('field_monitoring-link'));
36
+ const allResolvedLinks = useDatabaseLinks(tenant, legacyLinks);
37
+ const resolvedLinks = React.useMemo(() => showMonitoring
38
+ ? allResolvedLinks
39
+ : allResolvedLinks.filter(({ context }) => context !== CLUSTER_LINK_CONTEXT.MONITORING), [allResolvedLinks, showMonitoring]);
35
40
  const useDatabaseId = uiFactory.useDatabaseId && (settings === null || settings === void 0 ? void 0 : settings.use_meta_proxy) !== false;
36
41
  const dbUrl = getTenantPath({
37
42
  clusterName: tenant.Cluster,
@@ -43,28 +48,32 @@ export function TenantNameWrapper({ tenant, clusterName, additionalTenantsProps,
43
48
  const dbStatus = tenant.Overall;
44
49
  const dbActions = React.useMemo(() => {
45
50
  const menuItems = [];
46
- if (!isUserAllowedToMakeChanges) {
47
- return [];
48
- }
49
51
  const linksItems = [];
50
- for (const link of filteredLinks) {
52
+ for (const link of resolvedLinks) {
51
53
  linksItems.push({
52
- text: link.title,
53
- iconStart: _jsx(Icon, { data: link.icon }),
54
- iconEnd: _jsx(ArrowUpRightFromSquare, {}),
54
+ title: link.title,
55
+ description: link.description,
56
+ iconStart: link.icon,
55
57
  href: link.url,
56
58
  });
57
59
  }
58
60
  if (linksItems.length > 0) {
59
61
  menuItems.push(linksItems);
60
62
  }
63
+ menuItems.push([
64
+ {
65
+ title: i18n('action_connect-to-db'),
66
+ iconStart: PlugConnection,
67
+ action: () => getConnectToDBDialog({ database: tenant.Name }),
68
+ },
69
+ ]);
61
70
  // Do not show edit and delete actions for domain
62
71
  if (tenant.Type !== 'Domain' && clusterName) {
63
72
  const manageDbItems = [];
64
- if (isEditDBAvailable) {
73
+ if (isEditDBAvailable && isUserAllowedToMakeChanges) {
65
74
  manageDbItems.push({
66
- text: i18n('action_edit'),
67
- iconStart: _jsx(Pencil, {}),
75
+ title: i18n('action_edit'),
76
+ iconStart: Pencil,
68
77
  action: () => {
69
78
  var _a;
70
79
  (_a = uiFactory.onEditDB) === null || _a === void 0 ? void 0 : _a.call(uiFactory, {
@@ -74,10 +83,10 @@ export function TenantNameWrapper({ tenant, clusterName, additionalTenantsProps,
74
83
  },
75
84
  });
76
85
  }
77
- if (isDeleteDBAvailable) {
86
+ if (isDeleteDBAvailable && isUserAllowedToMakeChanges) {
78
87
  manageDbItems.push({
79
- text: i18n('action_remove'),
80
- iconStart: _jsx(TrashBin, {}),
88
+ title: i18n('action_remove'),
89
+ iconStart: TrashBin,
81
90
  action: () => {
82
91
  var _a;
83
92
  (_a = uiFactory.onDeleteDB) === null || _a === void 0 ? void 0 : _a.call(uiFactory, {
@@ -95,7 +104,7 @@ export function TenantNameWrapper({ tenant, clusterName, additionalTenantsProps,
95
104
  return menuItems;
96
105
  }, [
97
106
  isUserAllowedToMakeChanges,
98
- filteredLinks,
107
+ resolvedLinks,
99
108
  clusterName,
100
109
  isEditDBAvailable,
101
110
  isDeleteDBAvailable,
@@ -1 +1 @@
1
- {"version":3,"file":"TenantNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TenantNameWrapper/TenantNameWrapper.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TenantNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TenantNameWrapper/TenantNameWrapper.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  "field_monitoring-link": "Monitoring",
4
4
  "field_logs-link": "Logs",
5
5
  "context_unknown": "unknown database",
6
- "action_edit": "Edit",
7
- "action_remove": "Remove"
6
+ "action_edit": "Edit Database",
7
+ "action_remove": "Remove Database",
8
+ "action_connect-to-db": "Connect to database"
8
9
  }
@@ -1,2 +1,2 @@
1
- declare const _default: (key: "field_links" | "field_monitoring-link" | "field_logs-link" | "context_unknown" | "action_edit" | "action_remove", params?: import("@gravity-ui/i18n").Params) => string;
1
+ declare const _default: (key: "action_connect-to-db" | "field_links" | "field_monitoring-link" | "field_logs-link" | "context_unknown" | "action_edit" | "action_remove", params?: import("@gravity-ui/i18n").Params) => string;
2
2
  export default _default;
@@ -1,5 +1,7 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
+ import { Wrench } from '@gravity-ui/icons';
4
+ import { uiFactory } from '../../../uiFactory/uiFactory';
3
5
  import { useNodeDeveloperUIHref } from '../../../utils/hooks/useNodeDeveloperUIHref';
4
6
  import { LinkWithIcon } from '../../LinkWithIcon/LinkWithIcon';
5
7
  import { YDBDefinitionList } from '../../YDBDefinitionList/YDBDefinitionList';
@@ -44,17 +46,16 @@ const prepareNodeEndpointsData = (data) => {
44
46
  return info;
45
47
  };
46
48
  export const NodeEndpointsTooltipContent = ({ data }) => {
49
+ var _a;
47
50
  const developerUIInternalHref = useNodeDeveloperUIHref(data);
48
- const info = React.useMemo(() => {
49
- const items = prepareNodeEndpointsData(data);
50
- if (developerUIInternalHref) {
51
- items.push({
52
- name: i18n('field_links'),
53
- content: (_jsx(LinkWithIcon, { title: i18n('context_developer-ui'), url: developerUIInternalHref })),
54
- });
51
+ const info = React.useMemo(() => prepareNodeEndpointsData(data), [data]);
52
+ const nodeActions = (_a = uiFactory.renderNodeTooltipActions) === null || _a === void 0 ? void 0 : _a.call(uiFactory, { data });
53
+ const footer = React.useMemo(() => {
54
+ if (!developerUIInternalHref && !nodeActions) {
55
+ return undefined;
55
56
  }
56
- return items;
57
- }, [data, developerUIInternalHref]);
58
- return _jsx(YDBDefinitionList, { items: info, compact: true, responsive: true, nameMaxWidth: "auto" });
57
+ return (_jsxs(React.Fragment, { children: [developerUIInternalHref ? (_jsx(LinkWithIcon, { title: i18n('context_developer-ui'), url: developerUIInternalHref, icon: Wrench, hideEndIcon: true })) : null, nodeActions] }));
58
+ }, [developerUIInternalHref, nodeActions]);
59
+ return (_jsx(YDBDefinitionList, { items: info, footer: footer, compact: true, responsive: true, nameMaxWidth: "auto" }));
59
60
  };
60
61
  //# sourceMappingURL=NodeEndpointsTooltipContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeEndpointsTooltipContent.js","sourceRoot":"","sources":["../../../../src/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeEndpointsTooltipContent.js","sourceRoot":"","sources":["../../../../src/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.tsx"],"names":[],"mappings":"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"}