ydb-embedded-ui 11.1.1 → 11.3.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 (184) hide show
  1. package/dist/components/DoughnutMetrics/DoughnutMetrics.d.ts +5 -3
  2. package/dist/components/DoughnutMetrics/DoughnutMetrics.js +18 -8
  3. package/dist/components/DoughnutMetrics/DoughnutMetrics.js.map +1 -1
  4. package/dist/components/DoughnutMetrics/DoughnutMetrics.scss +38 -27
  5. package/dist/components/MetricChart/MetricChart.d.ts +4 -9
  6. package/dist/components/MetricChart/MetricChart.js +10 -6
  7. package/dist/components/MetricChart/MetricChart.js.map +1 -1
  8. package/dist/components/MetricChart/MetricChart.scss +5 -7
  9. package/dist/components/MetricChart/reducer.d.ts +2 -2
  10. package/dist/components/QueriesActivityBar/QueriesActivityBar.js +5 -2
  11. package/dist/components/QueriesActivityBar/QueriesActivityBar.js.map +1 -1
  12. package/dist/components/QueriesActivityBar/QueriesActivityBar.scss +18 -21
  13. package/dist/components/QueriesActivityBar/QueriesActivityCharts.js +1 -13
  14. package/dist/components/QueriesActivityBar/QueriesActivityCharts.js.map +1 -1
  15. package/dist/components/SpeedMultiMeter/SpeedMultiMeter.scss +3 -0
  16. package/dist/components/VDiskInfo/VDiskInfo.js +43 -2
  17. package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
  18. package/dist/components/VDiskInfo/i18n/en.json +3 -0
  19. package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
  20. package/dist/components/VDiskPopup/VDiskPopup.js +21 -2
  21. package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
  22. package/dist/containers/App/App.d.ts +3 -10
  23. package/dist/containers/App/App.js +11 -8
  24. package/dist/containers/App/App.js.map +1 -1
  25. package/dist/containers/App/App.scss +1 -1
  26. package/dist/containers/App/AppTitleContext.d.ts +11 -0
  27. package/dist/containers/App/AppTitleContext.js +14 -0
  28. package/dist/containers/App/AppTitleContext.js.map +1 -0
  29. package/dist/containers/App/Providers.d.ts +2 -1
  30. package/dist/containers/App/Providers.js +3 -2
  31. package/dist/containers/App/Providers.js.map +1 -1
  32. package/dist/containers/AppWithClusters/AppWithClusters.d.ts +2 -1
  33. package/dist/containers/AppWithClusters/AppWithClusters.js +2 -2
  34. package/dist/containers/AppWithClusters/AppWithClusters.js.map +1 -1
  35. package/dist/containers/Cluster/Cluster.js +3 -1
  36. package/dist/containers/Cluster/Cluster.js.map +1 -1
  37. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js +1 -11
  38. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js.map +1 -1
  39. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js +1 -5
  40. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js.map +1 -1
  41. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js +1 -5
  42. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js.map +1 -1
  43. package/dist/containers/Node/Node.js +3 -1
  44. package/dist/containers/Node/Node.js.map +1 -1
  45. package/dist/containers/Operations/useOperationsInfiniteQuery.d.ts +1 -1
  46. package/dist/containers/PDiskPage/PDiskPage.js +3 -1
  47. package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
  48. package/dist/containers/StorageGroupPage/StorageGroupPage.js +3 -1
  49. package/dist/containers/StorageGroupPage/StorageGroupPage.js.map +1 -1
  50. package/dist/containers/Tablet/Tablet.js +5 -6
  51. package/dist/containers/Tablet/Tablet.js.map +1 -1
  52. package/dist/containers/Tenant/Diagnostics/TenantOverview/DefaultOverviewContent/defaultDashboardConfig.js +1 -1
  53. package/dist/containers/Tenant/Diagnostics/TenantOverview/DefaultOverviewContent/defaultDashboardConfig.js.map +1 -1
  54. package/dist/containers/Tenant/Diagnostics/TenantOverview/Healthcheck/HealthcheckPreview.scss +1 -0
  55. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricsCards.d.ts +0 -8
  56. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricsCards.js +26 -93
  57. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricsCards.js.map +1 -1
  58. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricsCards.scss +219 -5
  59. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.d.ts +16 -0
  60. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.js +16 -0
  61. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.js.map +1 -0
  62. package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.scss +29 -0
  63. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantDashboard/TenantDashboard.js +3 -11
  64. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantDashboard/TenantDashboard.js.map +1 -1
  65. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantDashboard/TenantDashboard.scss +0 -8
  66. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +2 -6
  67. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
  68. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.scss +13 -2
  69. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +11 -3
  70. package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
  71. package/dist/containers/Tenant/Query/Preview/components/TablePreview.js +5 -1
  72. package/dist/containers/Tenant/Query/Preview/components/TablePreview.js.map +1 -1
  73. package/dist/containers/Tenant/Query/Preview/components/TablePreview.test.d.ts +1 -0
  74. package/dist/containers/Tenant/Query/Preview/components/TablePreview.test.js +28 -0
  75. package/dist/containers/Tenant/Query/Preview/components/TablePreview.test.js.map +1 -0
  76. package/dist/containers/Tenant/Tenant.js +3 -1
  77. package/dist/containers/Tenant/Tenant.js.map +1 -1
  78. package/dist/containers/VDiskPage/VDiskPage.js +58 -10
  79. package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
  80. package/dist/containers/VDiskPage/VDiskPage.scss +3 -4
  81. package/dist/containers/VDiskPage/VDiskTablets/VDiskTablets.d.ts +8 -0
  82. package/dist/containers/VDiskPage/VDiskTablets/VDiskTablets.js +64 -0
  83. package/dist/containers/VDiskPage/VDiskTablets/VDiskTablets.js.map +1 -0
  84. package/dist/containers/VDiskPage/VDiskTablets/VDiskTablets.scss +0 -0
  85. package/dist/containers/VDiskPage/VDiskTablets/columns.d.ts +3 -0
  86. package/dist/containers/VDiskPage/VDiskTablets/columns.js +60 -0
  87. package/dist/containers/VDiskPage/VDiskTablets/columns.js.map +1 -0
  88. package/dist/containers/VDiskPage/VDiskTablets/constants.d.ts +12 -0
  89. package/dist/containers/VDiskPage/VDiskTablets/constants.js +14 -0
  90. package/dist/containers/VDiskPage/VDiskTablets/constants.js.map +1 -0
  91. package/dist/containers/VDiskPage/VDiskTablets/index.d.ts +1 -0
  92. package/dist/containers/VDiskPage/VDiskTablets/index.js +2 -0
  93. package/dist/containers/VDiskPage/VDiskTablets/index.js.map +1 -0
  94. package/dist/containers/VDiskPage/i18n/en.json +5 -0
  95. package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
  96. package/dist/services/api/viewer.d.ts +6 -0
  97. package/dist/services/api/viewer.js +7 -0
  98. package/dist/services/api/viewer.js.map +1 -1
  99. package/dist/store/configureStore.d.ts +7 -5
  100. package/dist/store/configureStore.js +4 -5
  101. package/dist/store/configureStore.js.map +1 -1
  102. package/dist/store/defaultStore.d.ts +2 -2
  103. package/dist/store/reducers/api.d.ts +1 -1
  104. package/dist/store/reducers/api.js +1 -0
  105. package/dist/store/reducers/api.js.map +1 -1
  106. package/dist/store/reducers/authentication/authentication.d.ts +4 -4
  107. package/dist/store/reducers/cancelQuery.d.ts +2 -2
  108. package/dist/store/reducers/capabilities/capabilities.d.ts +31 -31
  109. package/dist/store/reducers/cluster/cluster.d.ts +5 -5
  110. package/dist/store/reducers/clusters/clusters.d.ts +2 -2
  111. package/dist/store/reducers/codeAssist/codeAssist.d.ts +6 -6
  112. package/dist/store/reducers/executeTopQueries/executeTopQueries.d.ts +3 -3
  113. package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +44 -44
  114. package/dist/store/reducers/heatmap.d.ts +2 -2
  115. package/dist/store/reducers/hotKeys/hotKeys.d.ts +2 -2
  116. package/dist/store/reducers/index.d.ts +3 -3
  117. package/dist/store/reducers/network/network.d.ts +2 -2
  118. package/dist/store/reducers/node/node.d.ts +3 -3
  119. package/dist/store/reducers/node/selectors.d.ts +1 -1
  120. package/dist/store/reducers/nodes/nodes.d.ts +2 -2
  121. package/dist/store/reducers/nodesList.d.ts +3 -3
  122. package/dist/store/reducers/operations.d.ts +4 -4
  123. package/dist/store/reducers/overview/overview.d.ts +2 -2
  124. package/dist/store/reducers/partitions/partitions.d.ts +2 -2
  125. package/dist/store/reducers/pdisk/pdisk.d.ts +2 -2
  126. package/dist/store/reducers/planToSvg.d.ts +2 -2
  127. package/dist/store/reducers/preview.d.ts +2 -2
  128. package/dist/store/reducers/query/query.d.ts +3 -3
  129. package/dist/store/reducers/replication.d.ts +2 -2
  130. package/dist/store/reducers/schema/schema.d.ts +16 -16
  131. package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +39 -39
  132. package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +2 -2
  133. package/dist/store/reducers/storage/storage.d.ts +3 -3
  134. package/dist/store/reducers/tableData.d.ts +1 -1
  135. package/dist/store/reducers/tableSchemaData.d.ts +2 -2
  136. package/dist/store/reducers/tablet.d.ts +7 -7
  137. package/dist/store/reducers/tablets.d.ts +3 -3
  138. package/dist/store/reducers/tenant/tenant.d.ts +4 -3
  139. package/dist/store/reducers/tenant/tenant.js +7 -2
  140. package/dist/store/reducers/tenant/tenant.js.map +1 -1
  141. package/dist/store/reducers/tenant/types.d.ts +1 -1
  142. package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.d.ts +2 -2
  143. package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +2 -2
  144. package/dist/store/reducers/tenants/selectors.d.ts +21 -21
  145. package/dist/store/reducers/tenants/tenants.d.ts +2 -2
  146. package/dist/store/reducers/topic.d.ts +45 -45
  147. package/dist/store/reducers/vdisk/vdisk.d.ts +3 -2
  148. package/dist/store/reducers/vdisk/vdisk.js +18 -0
  149. package/dist/store/reducers/vdisk/vdisk.js.map +1 -1
  150. package/dist/store/reducers/viewSchema/viewSchema.d.ts +2 -2
  151. package/dist/store/state-url-mapping.d.ts +1 -0
  152. package/dist/store/state-url-mapping.js +2 -0
  153. package/dist/store/state-url-mapping.js.map +1 -1
  154. package/dist/types/api/vdiskBlobIndex.d.ts +64 -0
  155. package/dist/types/api/vdiskBlobIndex.js +7 -0
  156. package/dist/types/api/vdiskBlobIndex.js.map +1 -0
  157. package/dist/utils/disks/prepareDisks.js +20 -1
  158. package/dist/utils/disks/prepareDisks.js.map +1 -1
  159. package/dist/utils/metrics/formatMetricLegend.d.ts +6 -0
  160. package/dist/utils/metrics/formatMetricLegend.js +17 -0
  161. package/dist/utils/metrics/formatMetricLegend.js.map +1 -0
  162. package/dist/utils/metrics/i18n/en.json +4 -0
  163. package/dist/utils/metrics/i18n/index.d.ts +2 -0
  164. package/dist/utils/metrics/i18n/index.js +5 -0
  165. package/dist/utils/metrics/i18n/index.js.map +1 -0
  166. package/dist/utils/metrics.d.ts +42 -0
  167. package/dist/utils/metrics.js +58 -0
  168. package/dist/utils/metrics.js.map +1 -0
  169. package/package.json +2 -1
  170. package/dist/components/DiagnosticCard/DiagnosticCard.d.ts +0 -9
  171. package/dist/components/DiagnosticCard/DiagnosticCard.js +0 -8
  172. package/dist/components/DiagnosticCard/DiagnosticCard.js.map +0 -1
  173. package/dist/components/DiagnosticCard/DiagnosticCard.scss +0 -35
  174. package/dist/components/TimeFrameSelector/TimeFrameSelector.d.ts +0 -9
  175. package/dist/components/TimeFrameSelector/TimeFrameSelector.js +0 -12
  176. package/dist/components/TimeFrameSelector/TimeFrameSelector.js.map +0 -1
  177. package/dist/components/TimeFrameSelector/TimeFrameSelector.scss +0 -4
  178. package/dist/containers/Tenant/Diagnostics/TenantOverview/DefaultOverviewContent/DefaultOverviewContent.d.ts +0 -5
  179. package/dist/containers/Tenant/Diagnostics/TenantOverview/DefaultOverviewContent/DefaultOverviewContent.js +0 -7
  180. package/dist/containers/Tenant/Diagnostics/TenantOverview/DefaultOverviewContent/DefaultOverviewContent.js.map +0 -1
  181. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricCard/MetricCard.d.ts +0 -16
  182. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricCard/MetricCard.js +0 -37
  183. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricCard/MetricCard.js.map +0 -1
  184. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricCard/MetricCard.scss +0 -48
@@ -4,6 +4,7 @@ interface VDiskDataRequestParams {
4
4
  vDiskSlotId: number | string;
5
5
  }
6
6
  export declare const vDiskApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, {
7
- getVDiskData: import("@reduxjs/toolkit/query").QueryDefinition<VDiskDataRequestParams, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData" | "AccessRights" | "Backups" | "BackupsSchedule", import("./types").VDiskData | undefined, "api", any>;
8
- }, "api", "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData" | "AccessRights" | "Backups" | "BackupsSchedule", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
7
+ getVDiskData: import("@reduxjs/toolkit/query").QueryDefinition<VDiskDataRequestParams, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData" | "VDiskBlobIndexStat" | "AccessRights" | "Backups" | "BackupsSchedule", import("./types").VDiskData | undefined, "api", any>;
8
+ getVDiskBlobIndexStat: import("@reduxjs/toolkit/query").QueryDefinition<VDiskDataRequestParams, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData" | "VDiskBlobIndexStat" | "AccessRights" | "Backups" | "BackupsSchedule", import("../../../types/api/vdiskBlobIndex").VDiskBlobIndexResponse | undefined, "api", any>;
9
+ }, "api", "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData" | "VDiskBlobIndexStat" | "AccessRights" | "Backups" | "BackupsSchedule", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
9
10
  export {};
@@ -26,6 +26,24 @@ export const vDiskApi = api.injectEndpoints({
26
26
  },
27
27
  ],
28
28
  }),
29
+ getVDiskBlobIndexStat: build.query({
30
+ queryFn: async ({ nodeId, pDiskId, vDiskSlotId }, { signal }) => {
31
+ try {
32
+ const response = await window.api.viewer.getVDiskBlobIndexStat({ nodeId, pDiskId, vDiskSlotId }, { signal });
33
+ return { data: response };
34
+ }
35
+ catch (error) {
36
+ return { error };
37
+ }
38
+ },
39
+ providesTags: (_result, _error, arg) => [
40
+ 'All',
41
+ {
42
+ type: 'VDiskBlobIndexStat',
43
+ id: getVDiskSlotBasedId(arg.nodeId, arg.pDiskId, arg.vDiskSlotId),
44
+ },
45
+ ],
46
+ }),
29
47
  }),
30
48
  overrideExisting: 'throw',
31
49
  });
@@ -1 +1 @@
1
- {"version":3,"file":"vdisk.js","sourceRoot":"","sources":["../../../../src/store/reducers/vdisk/vdisk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAC,GAAG,EAAC,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAC,wBAAwB,EAAC,MAAM,SAAS,CAAC;AAQjD,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC;IACxC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnB,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC;YACtB,OAAO,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAyB,EAAE,EAAC,MAAM,EAAC,EAAE,EAAE;gBAChF,IAAI,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBAC/B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC;wBACxE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC;wBACzE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAC,MAAM,EAAC,CAAC;qBAClD,CAAC,CAAC;oBACH,MAAM,IAAI,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;oBAChD,OAAO,EAAC,IAAI,EAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,EAAC,KAAK,EAAC,CAAC;gBACnB,CAAC;YACL,CAAC;YACD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;gBACpC,KAAK;gBACL;oBACI,IAAI,EAAE,WAAW;oBACjB,EAAE,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;iBACpE;aACJ;SACJ,CAAC;KACL,CAAC;IACF,gBAAgB,EAAE,OAAO;CAC5B,CAAC,CAAC"}
1
+ {"version":3,"file":"vdisk.js","sourceRoot":"","sources":["../../../../src/store/reducers/vdisk/vdisk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAC,GAAG,EAAC,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAC,wBAAwB,EAAC,MAAM,SAAS,CAAC;AAQjD,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC;IACxC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnB,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC;YACtB,OAAO,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAyB,EAAE,EAAC,MAAM,EAAC,EAAE,EAAE;gBAChF,IAAI,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBAC/B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC;wBACxE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC;wBACzE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAC,MAAM,EAAC,CAAC;qBAClD,CAAC,CAAC;oBACH,MAAM,IAAI,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;oBAChD,OAAO,EAAC,IAAI,EAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,EAAC,KAAK,EAAC,CAAC;gBACnB,CAAC;YACL,CAAC;YACD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;gBACpC,KAAK;gBACL;oBACI,IAAI,EAAE,WAAW;oBACjB,EAAE,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;iBACpE;aACJ;SACJ,CAAC;QACF,qBAAqB,EAAE,KAAK,CAAC,KAAK,CAAC;YAC/B,OAAO,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAyB,EAAE,EAAC,MAAM,EAAC,EAAE,EAAE;gBAChF,IAAI,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAC1D,EAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAC,EAC9B,EAAC,MAAM,EAAC,CACX,CAAC;oBACF,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,EAAC,KAAK,EAAC,CAAC;gBACnB,CAAC;YACL,CAAC;YACD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;gBACpC,KAAK;gBACL;oBACI,IAAI,EAAE,oBAAoB;oBAC1B,EAAE,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;iBACpE;aACJ;SACJ,CAAC;KACL,CAAC;IACF,gBAAgB,EAAE,OAAO;CAC5B,CAAC,CAAC"}
@@ -3,5 +3,5 @@ export declare const viewSchemaApi: import("@reduxjs/toolkit/query").Api<import(
3
3
  database: string;
4
4
  path: string;
5
5
  timeout?: number;
6
- }, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData" | "AccessRights" | "Backups" | "BackupsSchedule", import("../../../types/api/query").ColumnType[] | undefined, "api", any>;
7
- }, "api", "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData" | "AccessRights" | "Backups" | "BackupsSchedule", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
6
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<void, typeof import("../api")._NEVER, unknown, {}>, "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData" | "VDiskBlobIndexStat" | "AccessRights" | "Backups" | "BackupsSchedule", import("../../../types/api/query").ColumnType[] | undefined, "api", any>;
7
+ }, "api", "All" | "PDiskData" | "PreviewData" | "SchemaTree" | "StorageData" | "Tablet" | "UserData" | "VDiskData" | "VDiskBlobIndexStat" | "AccessRights" | "Backups" | "BackupsSchedule", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
@@ -36,6 +36,7 @@ export declare const paramSetup: {
36
36
  };
37
37
  readonly metricsTab: {
38
38
  readonly stateKey: "tenant.metricsTab";
39
+ readonly initialState: import("./reducers/tenant/types").TenantMetricsTab;
39
40
  };
40
41
  readonly shardsMode: {
41
42
  readonly stateKey: "shardsWorkload.mode";
@@ -9,6 +9,7 @@ import { parseQuery } from 'redux-location-state/lib/parseQuery';
9
9
  import { stateToParams } from 'redux-location-state/lib/stateToParams';
10
10
  import { initialState as initialHeatmapState } from './reducers/heatmap';
11
11
  import { initialState as initialSettingsState } from './reducers/settings/settings';
12
+ import { initialState as initialTenantState } from './reducers/tenant/tenant';
12
13
  export const paramSetup = {
13
14
  global: {
14
15
  problemFilter: {
@@ -45,6 +46,7 @@ export const paramSetup = {
45
46
  },
46
47
  metricsTab: {
47
48
  stateKey: 'tenant.metricsTab',
49
+ initialState: initialTenantState.metricsTab,
48
50
  },
49
51
  shardsMode: {
50
52
  stateKey: 'shardsWorkload.mode',
@@ -1 +1 @@
1
- {"version":3,"file":"state-url-mapping.js","sourceRoot":"","sources":["../../src/store/state-url-mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-url-mapping.js","sourceRoot":"","sources":["../../src/store/state-url-mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * VDisk Blob Index Statistics API types
3
+ *
4
+ * endpoint: /vdisk/blobindexstat
5
+ */
6
+ export interface VDiskBlobIndexItem {
7
+ /** Tablet ID */
8
+ TabletId?: string | number;
9
+ /** Alternative field name for Tablet ID */
10
+ tabletId?: string | number;
11
+ /** Channel ID */
12
+ ChannelId?: number;
13
+ /** Alternative field name for Channel ID */
14
+ channelId?: number;
15
+ /** Count */
16
+ Count?: number;
17
+ /** Alternative field name for Count */
18
+ count?: number;
19
+ /** Size in bytes */
20
+ Size?: number | string;
21
+ /** Alternative field name for Size */
22
+ size?: number | string;
23
+ /** Allow for other possible field names */
24
+ [key: string]: any;
25
+ }
26
+ export interface VDiskBlobIndexChannel {
27
+ /** Channel count */
28
+ count?: string;
29
+ /** Channel data size */
30
+ data_size?: string;
31
+ /** Channel minimum ID */
32
+ min_id?: string;
33
+ /** Channel maximum ID */
34
+ max_id?: string;
35
+ }
36
+ export interface VDiskBlobIndexTablet {
37
+ /** Tablet identifier */
38
+ tablet_id?: string;
39
+ /** Array of tablet channels */
40
+ channels?: VDiskBlobIndexChannel[];
41
+ }
42
+ export interface VDiskBlobIndexStat {
43
+ /** Array of tablets */
44
+ tablets?: VDiskBlobIndexTablet[];
45
+ /** Array of channels */
46
+ channels?: VDiskBlobIndexChannel[];
47
+ }
48
+ export interface VDiskBlobIndexResponse {
49
+ /** Response status */
50
+ status?: string;
51
+ /** Statistics data */
52
+ stat?: VDiskBlobIndexStat;
53
+ /** Response time */
54
+ ResponseTime?: string;
55
+ /** Response duration */
56
+ ResponseDuration?: number;
57
+ /** Alternative response structures for backward compatibility */
58
+ BlobIndexStat?: VDiskBlobIndexItem[];
59
+ blobIndexStat?: VDiskBlobIndexItem[];
60
+ blobindexstat?: VDiskBlobIndexItem[];
61
+ result?: VDiskBlobIndexItem[];
62
+ data?: VDiskBlobIndexItem[];
63
+ [key: string]: any;
64
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * VDisk Blob Index Statistics API types
3
+ *
4
+ * endpoint: /vdisk/blobindexstat
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=vdiskBlobIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vdiskBlobIndex.js","sourceRoot":"","sources":["../../../src/types/api/vdiskBlobIndex.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,3 +1,4 @@
1
+ import { isNil } from 'lodash';
1
2
  import { valueIsDefined } from '..';
2
3
  import { stringifyVdiskId } from '../dataFormatters/dataFormatters';
3
4
  import { calculatePDiskSeverity } from './calculatePDiskSeverity';
@@ -37,7 +38,25 @@ export function prepareWhiteboardVDiskData(vDiskState = {}) {
37
38
  const Severity = calculateVDiskSeverity(vDiskState);
38
39
  const StringifiedId = stringifyVdiskId(VDiskId);
39
40
  const preparedDonors = Donors === null || Donors === void 0 ? void 0 : Donors.map((donor) => {
40
- return prepareWhiteboardVDiskData({ ...donor, DonorMode: true });
41
+ // Handle both TVDiskStateInfo and TVSlotId donor types
42
+ if (isFullVDiskData(donor)) {
43
+ // Full VDisk data
44
+ return prepareWhiteboardVDiskData({ ...donor, DonorMode: true });
45
+ }
46
+ else {
47
+ // TVSlotId data - create a minimal PreparedVDisk
48
+ const { NodeId: dNodeId, PDiskId: dPDiskId, VSlotId: vSlotId } = donor;
49
+ const stringifiedId = !isNil(dNodeId) && !isNil(dPDiskId) && !isNil(vSlotId)
50
+ ? `${dNodeId}-${dPDiskId}-${vSlotId}`
51
+ : '';
52
+ return {
53
+ NodeId: dNodeId,
54
+ PDiskId: dPDiskId,
55
+ VDiskSlotId: vSlotId,
56
+ StringifiedId: stringifiedId,
57
+ DonorMode: true,
58
+ };
59
+ }
41
60
  });
42
61
  return {
43
62
  ...restVDiskFields,
@@ -1 +1 @@
1
- {"version":3,"file":"prepareDisks.js","sourceRoot":"","sources":["../../../src/utils/disks/prepareDisks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepareDisks.js","sourceRoot":"","sources":["../../../src/utils/disks/prepareDisks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface MetricFormatParams {
2
+ value: number;
3
+ capacity: number;
4
+ }
5
+ export declare function formatStorageLegend({ value, capacity }: MetricFormatParams): string;
6
+ export declare function formatCoresLegend({ value, capacity }: MetricFormatParams): string;
@@ -0,0 +1,17 @@
1
+ import { formatNumber, formatNumericValues, formatStorageValues, } from '../dataFormatters/dataFormatters';
2
+ import i18n from './i18n';
3
+ export function formatStorageLegend({ value, capacity }) {
4
+ const formatted = formatStorageValues(value, capacity, undefined, '\n');
5
+ return `${formatted[0]} ${i18n('context_of')} ${formatted[1]}`;
6
+ }
7
+ export function formatCoresLegend({ value, capacity }) {
8
+ let formatted = [];
9
+ if (capacity < 10000) {
10
+ formatted = [formatNumber(Math.round(value)), formatNumber(Math.round(capacity))];
11
+ }
12
+ else {
13
+ formatted = formatNumericValues(value, capacity, undefined, '', true);
14
+ }
15
+ return `${formatted[0]} ${i18n('context_of')} ${formatted[1]} ${i18n('context_cores')}`;
16
+ }
17
+ //# sourceMappingURL=formatMetricLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatMetricLegend.js","sourceRoot":"","sources":["../../../src/utils/metrics/formatMetricLegend.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,GACtB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAO1B,MAAM,UAAU,mBAAmB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAqB;IACrE,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxE,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAqB;IACnE,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAM,EAAE,CAAC;QACpB,SAAS,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACJ,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;AAC5F,CAAC"}
@@ -0,0 +1,4 @@
1
+ {
2
+ "context_of": "of",
3
+ "context_cores": "cores"
4
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: (key: "context_cores" | "context_of", params?: import("@gravity-ui/i18n").Params) => string;
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import { registerKeysets } from '../../i18n';
2
+ import en from './en.json';
3
+ const COMPONENT = 'ydb-metrics';
4
+ export default registerKeysets(COMPONENT, { en });
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/metrics/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC,eAAe,eAAe,CAAC,SAAS,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { MetricStatus } from '../store/reducers/tenants/types';
2
+ import type { ProgressStatus } from './progress';
3
+ export interface MetricWithUsage {
4
+ usage?: number;
5
+ used?: number;
6
+ limit?: number;
7
+ }
8
+ export interface DiagnosticsCardMetric {
9
+ title?: string;
10
+ value?: number;
11
+ capacity?: number;
12
+ formatValues?: (value?: number, total?: number) => string;
13
+ percents?: boolean;
14
+ withOverflow?: boolean;
15
+ }
16
+ export interface MetricCardResult {
17
+ metrics: DiagnosticsCardMetric[];
18
+ status: MetricStatus;
19
+ }
20
+ export interface MetricStats {
21
+ used?: number;
22
+ limit?: number;
23
+ }
24
+ export interface MetricAggregates {
25
+ totalUsed: number;
26
+ totalLimit: number;
27
+ usagePercent: number;
28
+ status: ProgressStatus;
29
+ }
30
+ /**
31
+ * Generic function to create DiagnosticsCardMetric array and determine status
32
+ */
33
+ export declare const createDiagnosticsCardMetric: <T extends MetricWithUsage>(items: T[] | undefined, mapFunction: (item: T) => DiagnosticsCardMetric) => MetricCardResult;
34
+ /**
35
+ * Get the highest severity status from an array of statuses
36
+ */
37
+ export declare const getHighestSeverityStatus: (statuses: MetricStatus[]) => MetricStatus;
38
+ /**
39
+ * Calculate metric aggregates (sum of used/limit values) and determine status
40
+ * This replaces the repetitive calculation logic from MetricsCards.tsx
41
+ */
42
+ export declare const calculateMetricAggregates: <T extends MetricStats>(items?: T[]) => MetricAggregates;
@@ -0,0 +1,58 @@
1
+ import { METRIC_STATUS, MetricStatusToSeverity } from '../store/reducers/tenants/contants';
2
+ import { getMetricStatusFromUsage } from '../store/reducers/tenants/utils';
3
+ import { calculateProgressStatus } from './progress';
4
+ /**
5
+ * Generic function to create DiagnosticsCardMetric array and determine status
6
+ */
7
+ export const createDiagnosticsCardMetric = (items = [], mapFunction) => {
8
+ let status = METRIC_STATUS.Unspecified;
9
+ const metrics = items.map((item) => {
10
+ const metric = mapFunction(item);
11
+ // Update overall status based on individual metric usage
12
+ if (item.usage !== undefined) {
13
+ const itemStatus = getMetricStatusFromUsage(item.usage);
14
+ if (MetricStatusToSeverity[itemStatus] > MetricStatusToSeverity[status]) {
15
+ status = itemStatus;
16
+ }
17
+ }
18
+ return metric;
19
+ });
20
+ return {
21
+ metrics,
22
+ status,
23
+ };
24
+ };
25
+ /**
26
+ * Get the highest severity status from an array of statuses
27
+ */
28
+ export const getHighestSeverityStatus = (statuses) => {
29
+ return statuses.reduce((highest, current) => {
30
+ return MetricStatusToSeverity[current] > MetricStatusToSeverity[highest]
31
+ ? current
32
+ : highest;
33
+ }, METRIC_STATUS.Unspecified);
34
+ };
35
+ /**
36
+ * Calculate metric aggregates (sum of used/limit values) and determine status
37
+ * This replaces the repetitive calculation logic from MetricsCards.tsx
38
+ */
39
+ export const calculateMetricAggregates = (items = []) => {
40
+ // Sum up used and limit values with proper number formatting
41
+ const totalUsed = Number(items.reduce((sum, item) => sum + (item.used || 0), 0).toFixed(2));
42
+ const totalLimit = Number(items.reduce((sum, item) => sum + (item.limit || 0), 0).toFixed(2));
43
+ // Calculate usage percentage
44
+ const usagePercent = totalLimit > 0 ? (totalUsed / totalLimit) * 100 : 0;
45
+ // Determine status based on usage percentage
46
+ const status = calculateProgressStatus({
47
+ fillWidth: usagePercent,
48
+ colorizeProgress: true,
49
+ // Using default thresholds from constants (85% warning, 95% danger)
50
+ });
51
+ return {
52
+ totalUsed,
53
+ totalLimit,
54
+ usagePercent,
55
+ status,
56
+ };
57
+ };
58
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,sBAAsB,EAAC,MAAM,oCAAoC,CAAC;AAEzF,OAAO,EAAC,wBAAwB,EAAC,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAmCnD;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,QAAa,EAAE,EACf,WAA+C,EAC/B,EAAE;IAClB,IAAI,MAAM,GAAiB,aAAa,CAAC,WAAW,CAAC;IAErD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAEjC,yDAAyD;QACzD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,sBAAsB,CAAC,UAAU,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtE,MAAM,GAAG,UAAU,CAAC;YACxB,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,OAAO;QACP,MAAM;KACT,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAwB,EAAgB,EAAE;IAC/E,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QACxC,OAAO,sBAAsB,CAAC,OAAO,CAAC,GAAG,sBAAsB,CAAC,OAAO,CAAC;YACpE,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC;IAClB,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACrC,QAAa,EAAE,EACC,EAAE;IAClB,6DAA6D;IAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9F,6BAA6B;IAC7B,MAAM,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzE,6CAA6C;IAC7C,MAAM,MAAM,GAAG,uBAAuB,CAAC;QACnC,SAAS,EAAE,YAAY;QACvB,gBAAgB,EAAE,IAAI;QACtB,oEAAoE;KACvE,CAAC,CAAC;IAEH,OAAO;QACH,SAAS;QACT,UAAU;QACV,YAAY;QACZ,MAAM;KACT,CAAC;AACN,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ydb-embedded-ui",
3
- "version": "11.1.1",
3
+ "version": "11.3.0",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -148,6 +148,7 @@
148
148
  "@typescript-eslint/parser": "^8.34.1",
149
149
  "copyfiles": "^2.4.1",
150
150
  "eslint-plugin-import": "^2.31.0",
151
+ "eslint-plugin-react-hooks": "^5.2.0",
151
152
  "globals": "^16.2.0",
152
153
  "http-proxy-middleware": "^2.0.7",
153
154
  "husky": "^9.1.7",
@@ -1,9 +0,0 @@
1
- import './DiagnosticCard.scss';
2
- export interface DiagnosticCardProps {
3
- children?: React.ReactNode;
4
- className?: string;
5
- active?: boolean;
6
- size?: 'm' | 'l' | 's';
7
- interactive?: boolean;
8
- }
9
- export declare function DiagnosticCard({ children, className, active, size, interactive, }: DiagnosticCardProps): import("react/jsx-runtime").JSX.Element;
@@ -1,8 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from '../../utils/cn';
3
- import './DiagnosticCard.scss';
4
- const b = cn('ydb-diagnostic-card');
5
- export function DiagnosticCard({ children, className, active, size = 'm', interactive = true, }) {
6
- return _jsx("div", { className: b({ active, size, interactive }, className), children: children });
7
- }
8
- //# sourceMappingURL=DiagnosticCard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DiagnosticCard.js","sourceRoot":"","sources":["../../../src/components/DiagnosticCard/DiagnosticCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAElC,OAAO,uBAAuB,CAAC;AAE/B,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC;AAUpC,MAAM,UAAU,cAAc,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,MAAM,EACN,IAAI,GAAG,GAAG,EACV,WAAW,GAAG,IAAI,GACA;IAClB,OAAO,cAAK,SAAS,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAC,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,CAAC;AACvF,CAAC"}
@@ -1,35 +0,0 @@
1
- .ydb-diagnostic-card {
2
- flex-shrink: 0;
3
-
4
- padding: 16px;
5
- padding-bottom: 28px;
6
-
7
- border: 1px solid var(--g-color-line-generic);
8
- border-radius: 8px;
9
- background-color: transparent;
10
-
11
- &_active {
12
- border-color: var(--g-color-base-info-medium);
13
- background-color: var(--g-color-base-selection);
14
- }
15
- &_interactive {
16
- &:hover {
17
- cursor: pointer;
18
-
19
- box-shadow: 0px 1px 5px var(--g-color-sfx-shadow);
20
- }
21
- }
22
-
23
- &_size_m {
24
- width: 206px;
25
- min-width: 206px;
26
- }
27
- &_size_l {
28
- width: 289px;
29
- min-width: 289px;
30
- }
31
- &_size_s {
32
- width: 134px;
33
- min-width: 134px;
34
- }
35
- }
@@ -1,9 +0,0 @@
1
- import type { TimeFrame } from '../../utils/timeframes';
2
- import './TimeFrameSelector.scss';
3
- interface TimeFrameSelectorProps {
4
- value: TimeFrame;
5
- onChange: (value: TimeFrame) => void;
6
- className?: string;
7
- }
8
- export declare const TimeFrameSelector: ({ value, onChange, className }: TimeFrameSelectorProps) => import("react/jsx-runtime").JSX.Element;
9
- export {};
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Button } from '@gravity-ui/uikit';
3
- import { cn } from '../../utils/cn';
4
- import { TIMEFRAMES } from '../../utils/timeframes';
5
- import './TimeFrameSelector.scss';
6
- const b = cn('ydb-timeframe-selector');
7
- export const TimeFrameSelector = ({ value, onChange, className }) => {
8
- return (_jsx("div", { className: b(null, className), children: Object.keys(TIMEFRAMES).map((timeFrame) => {
9
- return (_jsx(Button, { view: "flat", selected: value === timeFrame, onClick: () => onChange(timeFrame), children: timeFrame }, timeFrame));
10
- }) }));
11
- };
12
- //# sourceMappingURL=TimeFrameSelector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimeFrameSelector.js","sourceRoot":"","sources":["../../../src/components/TimeFrameSelector/TimeFrameSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAGlD,OAAO,0BAA0B,CAAC;AAElC,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAC;AAQvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAyB,EAAE,EAAE;IACtF,OAAO,CACH,cAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,YAC7B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACvC,OAAO,CACH,KAAC,MAAM,IACH,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,KAAK,KAAK,SAAS,EAE7B,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAsB,CAAC,YAE9C,SAAS,IAHL,SAAS,CAIT,CACZ,CAAC;QACN,CAAC,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- .ydb-timeframe-selector {
2
- display: flex;
3
- gap: 2px;
4
- }
@@ -1,5 +0,0 @@
1
- interface DefaultOverviewContentProps {
2
- database: string;
3
- }
4
- export declare const DefaultOverviewContent: ({ database }: DefaultOverviewContentProps) => import("react/jsx-runtime").JSX.Element;
5
- export {};
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { TenantDashboard } from '../TenantDashboard/TenantDashboard';
3
- import { defaultDashboardConfig } from './defaultDashboardConfig';
4
- export const DefaultOverviewContent = ({ database }) => {
5
- return _jsx(TenantDashboard, { database: database, charts: defaultDashboardConfig });
6
- };
7
- //# sourceMappingURL=DefaultOverviewContent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultOverviewContent.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/DefaultOverviewContent/DefaultOverviewContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAMhE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAC,QAAQ,EAA8B,EAAE,EAAE;IAC9E,OAAO,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,sBAAsB,GAAI,CAAC;AACnF,CAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- import type { ProgressViewerProps } from '../../../../../../components/ProgressViewer/ProgressViewer';
2
- import type { MetricStatus } from '../../../../../../store/reducers/tenants/types';
3
- import './MetricCard.scss';
4
- export interface DiagnosticsCardMetric extends ProgressViewerProps {
5
- title?: React.ReactNode;
6
- }
7
- interface MetricCardProps {
8
- active?: boolean;
9
- label?: string;
10
- status?: MetricStatus;
11
- metrics: DiagnosticsCardMetric[];
12
- interactive?: boolean;
13
- note?: string;
14
- }
15
- export declare function MetricCard({ active, label, status, metrics, interactive, note }: MetricCardProps): import("react/jsx-runtime").JSX.Element;
16
- export {};
@@ -1,37 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Flex, HelpMark } from '@gravity-ui/uikit';
3
- import { DiagnosticCard } from '../../../../../../components/DiagnosticCard/DiagnosticCard';
4
- import { ProgressViewer } from '../../../../../../components/ProgressViewer/ProgressViewer';
5
- import { StatusIcon } from '../../../../../../components/StatusIcon/StatusIcon';
6
- import { EFlag } from '../../../../../../types/api/enums';
7
- import { cn } from '../../../../../../utils/cn';
8
- import './MetricCard.scss';
9
- const b = cn('ydb-metrics-card');
10
- const getStatusIcon = (status) => {
11
- let colorStatus;
12
- if (status === 'Warning') {
13
- colorStatus = EFlag.Yellow;
14
- }
15
- if (status === 'Danger') {
16
- colorStatus = EFlag.Red;
17
- }
18
- if (colorStatus) {
19
- return _jsx(StatusIcon, { status: colorStatus, mode: "icons", size: "l" });
20
- }
21
- return null;
22
- };
23
- export function MetricCard({ active, label, status, metrics, interactive, note }) {
24
- const renderContent = () => {
25
- return metrics.map(({ title, ...progressViewerProps }, index) => {
26
- return (_jsxs("div", { className: b('metric'), children: [_jsx("div", { className: b('metric-title'), children: title }), _jsx(ProgressViewer, { size: "xs", colorizeProgress: true, ...progressViewerProps })] }, index));
27
- });
28
- };
29
- const renderNote = () => {
30
- if (!note) {
31
- return null;
32
- }
33
- return (_jsx(HelpMark, { popoverProps: { placement: 'top' }, className: b('note'), children: note }));
34
- };
35
- return (_jsxs(DiagnosticCard, { className: b({ active }), active: active, interactive: interactive, children: [_jsxs("div", { className: b('header'), children: [label && (_jsxs(Flex, { gap: 1, alignItems: "center", className: b('label'), children: [label, renderNote()] })), getStatusIcon(status)] }), _jsx("div", { className: b('content'), children: renderContent() })] }));
36
- }
37
- //# sourceMappingURL=MetricCard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetricCard.js","sourceRoot":"","sources":["../../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/MetricsCards/MetricCard/MetricCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAC,cAAc,EAAC,MAAM,4DAA4D,CAAC;AAC1F,OAAO,EAAC,cAAc,EAAC,MAAM,4DAA4D,CAAC;AAE1F,OAAO,EAAC,UAAU,EAAC,MAAM,oDAAoD,CAAC;AAE9E,OAAO,EAAC,KAAK,EAAC,MAAM,mCAAmC,CAAC;AACxD,OAAO,EAAC,EAAE,EAAC,MAAM,4BAA4B,CAAC;AAE9C,OAAO,mBAAmB,CAAC;AAE3B,MAAM,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC;AAEjC,MAAM,aAAa,GAAG,CAAC,MAAqB,EAAE,EAAE;IAC5C,IAAI,WAA8B,CAAC;IAEnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtB,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,KAAC,UAAU,IAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,GAAG,GAAG,CAAC;IACrE,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAeF,MAAM,UAAU,UAAU,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAkB;IAC3F,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAE,GAAG,mBAAmB,EAAC,EAAE,KAAK,EAAE,EAAE;YAC1D,OAAO,CACH,eAAiB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,aACnC,cAAK,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,YAAG,KAAK,GAAO,EAChD,KAAC,cAAc,IAAC,IAAI,EAAC,IAAI,EAAC,gBAAgB,EAAE,IAAI,KAAM,mBAAmB,GAAI,KAFvE,KAAK,CAGT,CACT,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,CACH,KAAC,QAAQ,IAAC,YAAY,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YAC3D,IAAI,GACE,CACd,CAAC;IACN,CAAC,CAAC;IACF,OAAO,CACH,MAAC,cAAc,IAAC,SAAS,EAAE,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,aAC5E,eAAK,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,aACtB,KAAK,IAAI,CACN,MAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,aAClD,KAAK,EACL,UAAU,EAAE,IACV,CACV,EACA,aAAa,CAAC,MAAM,CAAC,IACpB,EACN,cAAK,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,YAAG,aAAa,EAAE,GAAO,IACxC,CACpB,CAAC;AACN,CAAC"}