ydb-embedded-ui 19.0.0 → 20.1.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 (193) hide show
  1. package/README.md +15 -0
  2. package/dist/assets/icons/sso-user.svg +12 -0
  3. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js +15 -2
  4. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js.map +1 -1
  5. package/dist/components/DiskStateProgressBar/DiskStateProgressBar.scss +77 -10
  6. package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
  7. package/dist/components/QueryExecutionLabel/i18n/index.d.ts +1 -1
  8. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  9. package/dist/containers/App/Content.js +2 -2
  10. package/dist/containers/App/Content.js.map +1 -1
  11. package/dist/containers/App/NavigationWrapper.js +2 -15
  12. package/dist/containers/App/NavigationWrapper.js.map +1 -1
  13. package/dist/containers/AsideNavigation/AsideNavigation.d.ts +1 -0
  14. package/dist/containers/AsideNavigation/AsideNavigation.js +4 -1
  15. package/dist/containers/AsideNavigation/AsideNavigation.js.map +1 -1
  16. package/dist/containers/AsideNavigation/Navigation.js +1 -1
  17. package/dist/containers/AsideNavigation/Navigation.js.map +1 -1
  18. package/dist/containers/AsideNavigation/SsoUserIcon/SsoUserIcon.d.ts +1 -0
  19. package/dist/containers/AsideNavigation/SsoUserIcon/SsoUserIcon.js +7 -0
  20. package/dist/containers/AsideNavigation/SsoUserIcon/SsoUserIcon.js.map +1 -0
  21. package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.d.ts +3 -2
  22. package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.js +2 -2
  23. package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.js.map +1 -1
  24. package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.scss +4 -0
  25. package/dist/containers/AsideNavigation/i18n/en.json +1 -0
  26. package/dist/containers/AsideNavigation/i18n/index.d.ts +1 -1
  27. package/dist/containers/Authentication/Authentication.js +22 -5
  28. package/dist/containers/Authentication/Authentication.js.map +1 -1
  29. package/dist/containers/Authentication/Authentication.scss +4 -0
  30. package/dist/containers/Authentication/i18n/en.json +2 -1
  31. package/dist/containers/Authentication/i18n/index.d.ts +1 -1
  32. package/dist/containers/Authentication/utils.d.ts +8 -0
  33. package/dist/containers/Authentication/utils.js +32 -0
  34. package/dist/containers/Authentication/utils.js.map +1 -1
  35. package/dist/containers/Cluster/Cluster.js +3 -4
  36. package/dist/containers/Cluster/Cluster.js.map +1 -1
  37. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.d.ts +1 -1
  38. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js +0 -6
  39. package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js.map +1 -1
  40. package/dist/containers/Configs/i18n/index.d.ts +1 -1
  41. package/dist/containers/Storage/Disks/Disks.js +5 -3
  42. package/dist/containers/Storage/Disks/Disks.js.map +1 -1
  43. package/dist/containers/Storage/PDisk/PDisk.d.ts +3 -1
  44. package/dist/containers/Storage/PDisk/PDisk.js +7 -18
  45. package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
  46. package/dist/containers/Storage/PDisk/PDiskVDisks.d.ts +13 -0
  47. package/dist/containers/Storage/PDisk/PDiskVDisks.js +20 -0
  48. package/dist/containers/Storage/PDisk/PDiskVDisks.js.map +1 -0
  49. package/dist/containers/Storage/PaginatedStorage.js +2 -1
  50. package/dist/containers/Storage/PaginatedStorage.js.map +1 -1
  51. package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/columns.js +1 -1
  52. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js +40 -4
  53. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js.map +1 -1
  54. package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.scss +8 -4
  55. package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.d.ts +2 -4
  56. package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.js +3 -17
  57. package/dist/containers/Storage/StorageExpertModePanel/components/CompactionLegend.js.map +1 -1
  58. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDecommitLegend.d.ts +5 -0
  59. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDecommitLegend.js +16 -0
  60. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDecommitLegend.js.map +1 -0
  61. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDeviceLegend.d.ts +1 -0
  62. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDeviceLegend.js +7 -0
  63. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDeviceLegend.js.map +1 -0
  64. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDriveLegend.d.ts +5 -0
  65. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDriveLegend.js +17 -0
  66. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDriveLegend.js.map +1 -0
  67. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskMaintenanceLegend.d.ts +5 -0
  68. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskMaintenanceLegend.js +23 -0
  69. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskMaintenanceLegend.js.map +1 -0
  70. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskStateLegend.d.ts +5 -0
  71. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskStateLegend.js +23 -0
  72. package/dist/containers/Storage/StorageExpertModePanel/components/PDiskStateLegend.js.map +1 -0
  73. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.d.ts +3 -1
  74. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js +4 -4
  75. package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js.map +1 -1
  76. package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.js +3 -3
  77. package/dist/containers/Storage/StorageExpertModePanel/components/StateLegend.js.map +1 -1
  78. package/dist/containers/Storage/StorageExpertModePanel/components/StatusPairLegend.d.ts +6 -0
  79. package/dist/containers/Storage/StorageExpertModePanel/components/StatusPairLegend.js +21 -0
  80. package/dist/containers/Storage/StorageExpertModePanel/components/StatusPairLegend.js.map +1 -0
  81. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.d.ts +3 -2
  82. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js +13 -7
  83. package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.js.map +1 -1
  84. package/dist/containers/Storage/StorageExpertModePanel/components/index.d.ts +5 -0
  85. package/dist/containers/Storage/StorageExpertModePanel/components/index.js +5 -0
  86. package/dist/containers/Storage/StorageExpertModePanel/components/index.js.map +1 -1
  87. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.d.ts +2 -6
  88. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js +10 -6
  89. package/dist/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.js.map +1 -1
  90. package/dist/containers/Storage/StorageExpertModePanel/constants.d.ts +19 -0
  91. package/dist/containers/Storage/StorageExpertModePanel/constants.js +10 -0
  92. package/dist/containers/Storage/StorageExpertModePanel/constants.js.map +1 -1
  93. package/dist/containers/Storage/StorageExpertModePanel/i18n/en.json +23 -0
  94. package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +1 -1
  95. package/dist/containers/Storage/i18n/en.json +1 -1
  96. package/dist/containers/Storage/i18n/index.d.ts +1 -1
  97. package/dist/containers/Storage/useStoragePDiskDisplayStateGetter.d.ts +2 -0
  98. package/dist/containers/Storage/useStoragePDiskDisplayStateGetter.js +142 -0
  99. package/dist/containers/Storage/useStoragePDiskDisplayStateGetter.js.map +1 -0
  100. package/dist/containers/Storage/useStorageQueryParams.d.ts +5 -1
  101. package/dist/containers/Storage/useStorageQueryParams.js +26 -2
  102. package/dist/containers/Storage/useStorageQueryParams.js.map +1 -1
  103. package/dist/containers/Tenant/Diagnostics/Network/NetworkWrapper.js +2 -3
  104. package/dist/containers/Tenant/Diagnostics/Network/NetworkWrapper.js.map +1 -1
  105. package/dist/containers/Tenant/Diagnostics/Overview/DatabaseInfo/DatabaseInfo.d.ts +2 -1
  106. package/dist/containers/Tenant/Diagnostics/Overview/DatabaseInfo/DatabaseInfo.js +6 -2
  107. package/dist/containers/Tenant/Diagnostics/Overview/DatabaseInfo/DatabaseInfo.js.map +1 -1
  108. package/dist/containers/Tenant/Diagnostics/Overview/DatabaseInfo/utils.d.ts +2 -0
  109. package/dist/containers/Tenant/Diagnostics/Overview/DatabaseInfo/utils.js +9 -0
  110. package/dist/containers/Tenant/Diagnostics/Overview/DatabaseInfo/utils.js.map +1 -0
  111. package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +1 -1
  112. package/dist/containers/Tenant/Diagnostics/Overview/Overview.js.map +1 -1
  113. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js +1 -4
  114. package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js.map +1 -1
  115. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js +1 -6
  116. package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js.map +1 -1
  117. package/dist/containers/Tenant/Diagnostics/i18n/index.d.ts +1 -1
  118. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js +3 -4
  119. package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js.map +1 -1
  120. package/dist/containers/Tenant/Query/QueryResult/utils.d.ts +2 -0
  121. package/dist/containers/Tenant/Query/QueryResult/utils.js +9 -0
  122. package/dist/containers/Tenant/Query/QueryResult/utils.js.map +1 -0
  123. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js +4 -15
  124. package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js.map +1 -1
  125. package/dist/containers/Tenant/Query/QuerySettingsDialog/i18n/en.json +0 -1
  126. package/dist/containers/Tenant/Query/QuerySettingsDialog/i18n/index.d.ts +1 -1
  127. package/dist/containers/Tenant/Query/QuerySettingsDialog/i18n/ru.json +0 -1
  128. package/dist/containers/Tenants/TenantsTable.js +21 -26
  129. package/dist/containers/Tenants/TenantsTable.js.map +1 -1
  130. package/dist/containers/UserSettings/i18n/en.json +1 -4
  131. package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
  132. package/dist/containers/UserSettings/settings.d.ts +3 -8
  133. package/dist/containers/UserSettings/settings.js +11 -58
  134. package/dist/containers/UserSettings/settings.js.map +1 -1
  135. package/dist/lib.d.ts +1 -1
  136. package/dist/lib.js.map +1 -1
  137. package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
  138. package/dist/store/reducers/capabilities/hooks.js +5 -0
  139. package/dist/store/reducers/capabilities/hooks.js.map +1 -1
  140. package/dist/store/reducers/query/api.js +4 -0
  141. package/dist/store/reducers/query/api.js.map +1 -1
  142. package/dist/store/reducers/query/types.d.ts +2 -1
  143. package/dist/store/reducers/settings/constants.d.ts +2 -8
  144. package/dist/store/reducers/settings/constants.js +2 -8
  145. package/dist/store/reducers/settings/constants.js.map +1 -1
  146. package/dist/store/reducers/storage/prepareGroupsDisks.d.ts +3 -1
  147. package/dist/store/reducers/storage/prepareGroupsDisks.js +3 -1
  148. package/dist/store/reducers/storage/prepareGroupsDisks.js.map +1 -1
  149. package/dist/store/reducers/tenant/tenant.d.ts +1 -0
  150. package/dist/store/reducers/tenant/tenant.js +1 -0
  151. package/dist/store/reducers/tenant/tenant.js.map +1 -1
  152. package/dist/styles/mixins.scss +8 -8
  153. package/dist/styles/space-colors.scss +48 -4
  154. package/dist/types/api/capabilities.d.ts +1 -1
  155. package/dist/types/api/pdisk.d.ts +2 -0
  156. package/dist/types/api/storage.d.ts +2 -1
  157. package/dist/types/api/storage.js.map +1 -1
  158. package/dist/types/api/tenant.d.ts +2 -0
  159. package/dist/types/api/tenant.js.map +1 -1
  160. package/dist/uiFactory/types.d.ts +5 -0
  161. package/dist/utils/constants.d.ts +1 -1
  162. package/dist/utils/constants.js +1 -5
  163. package/dist/utils/constants.js.map +1 -1
  164. package/dist/utils/disks/displayState.d.ts +7 -1
  165. package/dist/utils/disks/displayState.js +11 -0
  166. package/dist/utils/disks/displayState.js.map +1 -1
  167. package/dist/utils/disks/helpers.d.ts +2 -2
  168. package/dist/utils/disks/iconCalculators.d.ts +2 -0
  169. package/dist/utils/disks/iconCalculators.js +24 -19
  170. package/dist/utils/disks/iconCalculators.js.map +1 -1
  171. package/dist/utils/disks/pdiskState.d.ts +8 -0
  172. package/dist/utils/disks/pdiskState.js +165 -0
  173. package/dist/utils/disks/pdiskState.js.map +1 -0
  174. package/dist/utils/disks/severityCalculators.d.ts +6 -5
  175. package/dist/utils/disks/severityCalculators.js +17 -32
  176. package/dist/utils/disks/severityCalculators.js.map +1 -1
  177. package/dist/utils/disks/types.d.ts +3 -1
  178. package/dist/utils/hooks/useChangedQuerySettings.d.ts +2 -2
  179. package/dist/utils/hooks/useQueryExecutionSettings.d.ts +11 -2
  180. package/dist/utils/hooks/useQueryExecutionSettings.js +2 -18
  181. package/dist/utils/hooks/useQueryExecutionSettings.js.map +1 -1
  182. package/dist/utils/hooks/useQueryStreamingSetting.js +1 -8
  183. package/dist/utils/hooks/useQueryStreamingSetting.js.map +1 -1
  184. package/dist/utils/hooks/useWhoami.d.ts +1 -1
  185. package/dist/utils/hooks/useWhoami.js +2 -1
  186. package/dist/utils/hooks/useWhoami.js.map +1 -1
  187. package/dist/utils/user.d.ts +6 -0
  188. package/dist/utils/user.js +24 -0
  189. package/dist/utils/user.js.map +1 -0
  190. package/package.json +2 -2
  191. package/dist/components/NetworkTable/hooks.d.ts +0 -2
  192. package/dist/components/NetworkTable/hooks.js +0 -14
  193. package/dist/components/NetworkTable/hooks.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Flex, SegmentedRadioGroup, Text } from '@gravity-ui/uikit';
3
3
  import { useStorageQueryParams } from '../useStorageQueryParams';
4
- import { AllLegend, CompactionLegend, FrontQueuesLegend, SpaceLegend, StateLegend, } from './components';
5
- import { VDisksGroupBy, b } from './constants';
4
+ import { AllLegend, CompactionLegend, FrontQueuesLegend, PDiskDecommitLegend, PDiskDeviceLegend, PDiskDriveLegend, PDiskMaintenanceLegend, PDiskStateLegend, SpaceLegend, StateLegend, } from './components';
5
+ import { PDisksGroupBy, VDisksGroupBy, b } from './constants';
6
6
  import i18n from './i18n';
7
7
  import './StorageExpertModePanel.scss';
8
8
  function renderLegend(vdisksGroupBy) {
@@ -21,8 +21,44 @@ function renderLegend(vdisksGroupBy) {
21
21
  return null;
22
22
  }
23
23
  }
24
+ function getPDisksGroupByLabel(pdisksGroupBy) {
25
+ switch (pdisksGroupBy) {
26
+ case PDisksGroupBy.Space:
27
+ return i18n('value_pdisks-space');
28
+ case PDisksGroupBy.Drive:
29
+ return i18n('value_pdisks-drive');
30
+ case PDisksGroupBy.Decommit:
31
+ return i18n('value_pdisks-decommit');
32
+ case PDisksGroupBy.Maintenance:
33
+ return i18n('value_pdisks-maintenance');
34
+ case PDisksGroupBy.Device:
35
+ return i18n('value_pdisks-device');
36
+ case PDisksGroupBy.All:
37
+ return i18n('value_pdisks-all');
38
+ default:
39
+ return null;
40
+ }
41
+ }
42
+ function renderPDiskLegend(pdisksGroupBy) {
43
+ switch (pdisksGroupBy) {
44
+ case PDisksGroupBy.State:
45
+ return _jsx(PDiskStateLegend, {});
46
+ case PDisksGroupBy.Space:
47
+ return _jsx(SpaceLegend, { selectionScope: "pdisks" });
48
+ case PDisksGroupBy.Drive:
49
+ return _jsx(PDiskDriveLegend, {});
50
+ case PDisksGroupBy.Decommit:
51
+ return _jsx(PDiskDecommitLegend, {});
52
+ case PDisksGroupBy.Maintenance:
53
+ return _jsx(PDiskMaintenanceLegend, {});
54
+ case PDisksGroupBy.Device:
55
+ return _jsx(PDiskDeviceLegend, {});
56
+ default:
57
+ return _jsx("div", { children: getPDisksGroupByLabel(pdisksGroupBy) });
58
+ }
59
+ }
24
60
  export function StorageExpertModePanel({ className }) {
25
- const { vdisksGroupBy, handleVDisksGroupByChange } = useStorageQueryParams();
26
- return (_jsx("div", { className: b(null, className), children: _jsxs(Flex, { gap: 3, alignItems: "center", children: [_jsx(Text, { variant: "subheader-1", children: i18n('label_vdisks') }), _jsxs(SegmentedRadioGroup, { value: vdisksGroupBy, onUpdate: handleVDisksGroupByChange, size: "s", children: [_jsx(SegmentedRadioGroup.Option, { value: VDisksGroupBy.State, children: i18n('value_state') }), _jsx(SegmentedRadioGroup.Option, { value: VDisksGroupBy.Space, children: i18n('value_space') }), _jsx(SegmentedRadioGroup.Option, { value: VDisksGroupBy.FrontQueues, children: i18n('value_front-queues') }), _jsx(SegmentedRadioGroup.Option, { value: VDisksGroupBy.Compaction, children: i18n('value_compaction') }), _jsx(SegmentedRadioGroup.Option, { value: VDisksGroupBy.All, children: i18n('value_all') })] }), renderLegend(vdisksGroupBy)] }) }));
61
+ const { vdisksGroupBy, pdisksGroupBy, handleVDisksGroupByChange, handlePDisksGroupByChange } = useStorageQueryParams();
62
+ return (_jsxs("div", { className: b(null, className), children: [_jsxs(Flex, { gap: 3, alignItems: "center", children: [_jsx(Text, { variant: "subheader-1", children: i18n('label_vdisks') }), _jsxs(SegmentedRadioGroup, { value: vdisksGroupBy, onUpdate: handleVDisksGroupByChange, size: "s", children: [_jsx(SegmentedRadioGroup.Option, { value: VDisksGroupBy.State, children: i18n('value_state') }), _jsx(SegmentedRadioGroup.Option, { value: VDisksGroupBy.Space, children: i18n('value_space') }), _jsx(SegmentedRadioGroup.Option, { value: VDisksGroupBy.FrontQueues, children: i18n('value_front-queues') }), _jsx(SegmentedRadioGroup.Option, { value: VDisksGroupBy.Compaction, children: i18n('value_compaction') }), _jsx(SegmentedRadioGroup.Option, { value: VDisksGroupBy.All, children: i18n('value_all') })] }), renderLegend(vdisksGroupBy)] }), _jsxs(Flex, { gap: 3, alignItems: "center", children: [_jsx(Text, { variant: "subheader-1", children: i18n('label_pdisks') }), _jsxs(SegmentedRadioGroup, { qa: "storage-pdisks-expert-mode", value: pdisksGroupBy, onUpdate: handlePDisksGroupByChange, size: "s", children: [_jsx(SegmentedRadioGroup.Option, { value: PDisksGroupBy.State, children: i18n('value_pdisks-state') }), _jsx(SegmentedRadioGroup.Option, { value: PDisksGroupBy.Space, children: i18n('value_pdisks-space') }), _jsx(SegmentedRadioGroup.Option, { value: PDisksGroupBy.Drive, children: i18n('value_pdisks-drive') }), _jsx(SegmentedRadioGroup.Option, { value: PDisksGroupBy.Decommit, children: i18n('value_pdisks-decommit') }), _jsx(SegmentedRadioGroup.Option, { value: PDisksGroupBy.Maintenance, children: i18n('value_pdisks-maintenance') }), _jsx(SegmentedRadioGroup.Option, { value: PDisksGroupBy.Device, children: i18n('value_pdisks-device') }), _jsx(SegmentedRadioGroup.Option, { value: PDisksGroupBy.All, children: i18n('value_pdisks-all') })] }), _jsx("div", { "data-qa": "storage-pdisks-expert-mode-legend", children: renderPDiskLegend(pdisksGroupBy) })] })] }));
27
63
  }
28
64
  //# sourceMappingURL=StorageExpertModePanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageExpertModePanel.js","sourceRoot":"","sources":["../../../../src/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EACH,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,WAAW,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,aAAa,EAAE,CAAC,EAAC,MAAM,aAAa,CAAC;AAE7C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,OAAO,+BAA+B,CAAC;AAMvC,SAAS,YAAY,CAAC,aAAiC;IACnD,QAAQ,aAAa,EAAE,CAAC;QACpB,KAAK,aAAa,CAAC,KAAK;YACpB,OAAO,KAAC,WAAW,KAAG,CAAC;QAC3B,KAAK,aAAa,CAAC,KAAK;YACpB,OAAO,KAAC,WAAW,KAAG,CAAC;QAC3B,KAAK,aAAa,CAAC,WAAW;YAC1B,OAAO,KAAC,iBAAiB,KAAG,CAAC;QACjC,KAAK,aAAa,CAAC,UAAU;YACzB,OAAO,KAAC,gBAAgB,KAAG,CAAC;QAChC,KAAK,aAAa,CAAC,GAAG;YAClB,OAAO,KAAC,SAAS,KAAG,CAAC;QACzB;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EAAC,SAAS,EAA8B;IAC3E,MAAM,EAAC,aAAa,EAAE,yBAAyB,EAAC,GAAG,qBAAqB,EAAE,CAAC;IAE3E,OAAO,CACH,cAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,YAC9B,MAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,aAC7B,KAAC,IAAI,IAAC,OAAO,EAAC,aAAa,YAAE,IAAI,CAAC,cAAc,CAAC,GAAQ,EACzD,MAAC,mBAAmB,IAChB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAC,GAAG,aAER,KAAC,mBAAmB,CAAC,MAAM,IAAC,KAAK,EAAE,aAAa,CAAC,KAAK,YACjD,IAAI,CAAC,aAAa,CAAC,GACK,EAC7B,KAAC,mBAAmB,CAAC,MAAM,IAAC,KAAK,EAAE,aAAa,CAAC,KAAK,YACjD,IAAI,CAAC,aAAa,CAAC,GACK,EAC7B,KAAC,mBAAmB,CAAC,MAAM,IAAC,KAAK,EAAE,aAAa,CAAC,WAAW,YACvD,IAAI,CAAC,oBAAoB,CAAC,GACF,EAC7B,KAAC,mBAAmB,CAAC,MAAM,IAAC,KAAK,EAAE,aAAa,CAAC,UAAU,YACtD,IAAI,CAAC,kBAAkB,CAAC,GACA,EAC7B,KAAC,mBAAmB,CAAC,MAAM,IAAC,KAAK,EAAE,aAAa,CAAC,GAAG,YAC/C,IAAI,CAAC,WAAW,CAAC,GACO,IACX,EACrB,YAAY,CAAC,aAAa,CAAC,IACzB,GACL,CACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"StorageExpertModePanel.js","sourceRoot":"","sources":["../../../../src/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.tsx"],"names":[],"mappings":"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"}
@@ -4,9 +4,13 @@
4
4
  $block: '.ydb-storage-expert-mode-panel';
5
5
 
6
6
  #{$block} {
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: var(--g-spacing-2);
10
+
7
11
  width: 100%;
8
- height: 40px;
9
- padding: var(--g-spacing-2) var(--g-spacing-3);
12
+ height: 80px;
13
+ padding: var(--g-spacing-3);
10
14
 
11
15
  border-radius: var(--g-border-radius-l);
12
16
  background-color: var(--g-color-base-generic);
@@ -36,10 +40,10 @@ $block: '.ydb-storage-expert-mode-panel';
36
40
 
37
41
  // When the expert-mode panel is rendered inside the table layout, grow the
38
42
  // controls slot height so its sticky-header offset accounts for the panel
39
- // (62px controls row + 8px Flex gap + 40px panel = 110px), and align the
43
+ // (62px controls row + 8px Flex gap + 80px panel = 150px), and align the
40
44
  // extra-controls (column setup) with the top controls row instead of the
41
45
  // vertical center of the taller controls block.
42
46
  .ydb-table-with-controls-layout:has(#{$block}) {
43
- --ydb-table-with-controls-layout-controls-height: 110px;
47
+ --ydb-table-with-controls-layout-controls-height: 150px;
44
48
  --ydb-table-with-controls-layout-controls-align-items: baseline;
45
49
  }
@@ -1,5 +1,3 @@
1
- interface CompactionLegendProps {
1
+ export declare function CompactionLegend({ className }: {
2
2
  className?: string;
3
- }
4
- export declare function CompactionLegend({ className }: CompactionLegendProps): import("react/jsx-runtime").JSX.Element;
5
- export {};
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,21 +1,7 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CircleCheckFill, CircleExclamationFill, CircleXmarkFill, TriangleExclamationFill, } from '@gravity-ui/icons';
3
- import { Flex, Icon, Label, Text } from '@gravity-ui/uikit';
4
- import { b } from '../constants';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
5
2
  import i18n from '../i18n';
6
- const iconSize = 12;
7
- const legendItems = [
8
- { text: i18n('compaction_ok'), theme: 'success', icon: CircleCheckFill },
9
- { text: i18n('compaction_notice'), theme: 'warning', icon: TriangleExclamationFill },
10
- { text: i18n('compaction_warning'), theme: 'danger', icon: CircleExclamationFill },
11
- {
12
- text: i18n('compaction_impaired'),
13
- theme: 'danger',
14
- icon: CircleXmarkFill,
15
- className: b('label-danger-heavy'),
16
- },
17
- ];
3
+ import { StatusPairLegend } from './StatusPairLegend';
18
4
  export function CompactionLegend({ className }) {
19
- return (_jsxs(Flex, { className: className, gap: 3, alignItems: "center", wrap: "wrap", children: [_jsxs(Flex, { gap: 2, alignItems: "center", wrap: "wrap", children: [_jsx(Text, { color: "secondary", children: i18n('compaction_key') }), legendItems.map(({ text, theme, icon, className: labelClassName }) => (_jsx(Label, { size: "xs", theme: theme, className: labelClassName, icon: _jsx(Icon, { data: icon, size: iconSize }), children: text }, text)))] }), _jsx(Text, { className: b('empty-statistics'), color: "secondary", children: i18n('context_no-statistics') })] }));
5
+ return _jsx(StatusPairLegend, { className: className, label: i18n('compaction_key') });
20
6
  }
21
7
  //# sourceMappingURL=CompactionLegend.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompactionLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/CompactionLegend.tsx"],"names":[],"mappings":";AAAA,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,uBAAuB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAC,CAAC,EAAC,MAAM,cAAc,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAa3B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,WAAW,GAA2B;IACxC,EAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAC;IACtE,EAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAC;IAClF,EAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAC;IAChF;QACI,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC;QACjC,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,CAAC,CAAC,oBAAoB,CAAC;KACrC;CACJ,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,EAAC,SAAS,EAAwB;IAC/D,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aAC/D,MAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aACzC,KAAC,IAAI,IAAC,KAAK,EAAC,WAAW,YAAE,IAAI,CAAC,gBAAgB,CAAC,GAAQ,EACtD,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAC,EAAE,EAAE,CAAC,CACjE,KAAC,KAAK,IAEF,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAI,YAEzC,IAAI,IANA,IAAI,CAOL,CACX,CAAC,IACC,EACP,KAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAC,WAAW,YACpD,IAAI,CAAC,uBAAuB,CAAC,GAC3B,IACJ,CACV,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"CompactionLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/CompactionLegend.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAEpD,MAAM,UAAU,gBAAgB,CAAC,EAAC,SAAS,EAAuB;IAC9D,OAAO,KAAC,gBAAgB,IAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAI,CAAC;AACrF,CAAC"}
@@ -0,0 +1,5 @@
1
+ interface PDiskDecommitLegendProps {
2
+ className?: string;
3
+ }
4
+ export declare function PDiskDecommitLegend({ className }: PDiskDecommitLegendProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ArrowUpFromLine, HourglassStart, Xmark } from '@gravity-ui/icons';
3
+ import { Flex, Icon, Label, Text } from '@gravity-ui/uikit';
4
+ import { b } from '../constants';
5
+ import i18n from '../i18n';
6
+ const iconSize = 12;
7
+ const legendItems = [
8
+ { text: i18n('value_decommit-imminent'), theme: 'danger', icon: ArrowUpFromLine },
9
+ { text: i18n('value_decommit-rejected'), theme: 'warning', icon: Xmark },
10
+ { text: i18n('value_decommit-pending'), theme: 'info', icon: HourglassStart },
11
+ { text: i18n('value_decommit-none'), theme: 'success' },
12
+ ];
13
+ export function PDiskDecommitLegend({ className }) {
14
+ return (_jsxs(Flex, { className: className, gap: 3, alignItems: "center", wrap: "wrap", children: [_jsx(Flex, { gap: 2, alignItems: "center", wrap: "wrap", children: legendItems.map(({ text, theme, icon }) => (_jsx(Label, { size: "xs", theme: theme, icon: icon ? _jsx(Icon, { data: icon, size: iconSize }) : undefined, children: text }, text))) }), _jsx(Text, { className: b('empty-statistics'), color: "secondary", children: i18n('context_no-statistics') })] }));
15
+ }
16
+ //# sourceMappingURL=PDiskDecommitLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PDiskDecommitLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/PDiskDecommitLegend.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAE,cAAc,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAC,CAAC,EAAC,MAAM,cAAc,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAY3B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,WAAW,GAA8B;IAC3C,EAAC,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAC;IAC/E,EAAC,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAC;IACtE,EAAC,IAAI,EAAE,IAAI,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAC;IAC3E,EAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAC;CACxD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,EAAC,SAAS,EAA2B;IACrE,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aAC/D,KAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,YACxC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,EAAE,EAAE,CAAC,CACtC,KAAC,KAAK,IAEF,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,SAAS,YAE5D,IAAI,IALA,IAAI,CAML,CACX,CAAC,GACC,EACP,KAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAC,WAAW,YACpD,IAAI,CAAC,uBAAuB,CAAC,GAC3B,IACJ,CACV,CAAC;AACN,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function PDiskDeviceLegend(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import i18n from '../i18n';
3
+ import { StatusPairLegend } from './StatusPairLegend';
4
+ export function PDiskDeviceLegend() {
5
+ return _jsx(StatusPairLegend, { label: i18n('device_key') });
6
+ }
7
+ //# sourceMappingURL=PDiskDeviceLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PDiskDeviceLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/PDiskDeviceLegend.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAEpD,MAAM,UAAU,iBAAiB;IAC7B,OAAO,KAAC,gBAAgB,IAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAI,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,5 @@
1
+ interface PDiskDriveLegendProps {
2
+ className?: string;
3
+ }
4
+ export declare function PDiskDriveLegend({ className }: PDiskDriveLegendProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CircleExclamation, CircleXmark, Clock, TrashBin } from '@gravity-ui/icons';
3
+ import { Flex, Icon, Label, Text } from '@gravity-ui/uikit';
4
+ import { b } from '../constants';
5
+ import i18n from '../i18n';
6
+ const iconSize = 12;
7
+ const legendItems = [
8
+ { text: i18n('drive_active'), theme: 'success' },
9
+ { text: i18n('drive_inactive'), theme: 'warning', icon: Clock },
10
+ { text: i18n('drive_to-be-removed'), theme: 'warning', icon: TrashBin },
11
+ { text: i18n('drive_faulty'), theme: 'danger', icon: CircleExclamation },
12
+ { text: i18n('drive_broken'), theme: 'danger', icon: CircleXmark },
13
+ ];
14
+ export function PDiskDriveLegend({ className }) {
15
+ return (_jsxs(Flex, { className: className, gap: 3, alignItems: "center", wrap: "wrap", children: [_jsx(Flex, { gap: 2, alignItems: "center", wrap: "wrap", children: legendItems.map(({ text, theme, icon }) => (_jsx(Label, { size: "xs", theme: theme, icon: icon ? _jsx(Icon, { data: icon, size: iconSize }) : undefined, children: text }, text))) }), _jsx(Text, { className: b('empty-statistics'), color: "secondary", children: i18n('context_no-statistics') })] }));
16
+ }
17
+ //# sourceMappingURL=PDiskDriveLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PDiskDriveLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/PDiskDriveLegend.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAElF,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAC,CAAC,EAAC,MAAM,cAAc,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAY3B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,WAAW,GAA2B;IACxC,EAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAC;IAC9C,EAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAC;IAC7D,EAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAC;IACrE,EAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAC;IACtE,EAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAC;CACnE,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,EAAC,SAAS,EAAwB;IAC/D,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aAC/D,KAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,YACxC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,EAAE,EAAE,CAAC,CACtC,KAAC,KAAK,IAEF,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,SAAS,YAE5D,IAAI,IALA,IAAI,CAML,CACX,CAAC,GACC,EACP,KAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAC,WAAW,YACpD,IAAI,CAAC,uBAAuB,CAAC,GAC3B,IACJ,CACV,CAAC;AACN,CAAC"}
@@ -0,0 +1,5 @@
1
+ interface PDiskMaintenanceLegendProps {
2
+ className?: string;
3
+ }
4
+ export declare function PDiskMaintenanceLegend({ className }: PDiskMaintenanceLegendProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Ban, Wrench } from '@gravity-ui/icons';
3
+ import { Flex, Icon, Label, Text } from '@gravity-ui/uikit';
4
+ import { b } from '../constants';
5
+ import i18n from '../i18n';
6
+ const iconSize = 12;
7
+ const legendItems = [
8
+ {
9
+ text: i18n('value_maintenance-long-term-planned'),
10
+ theme: 'danger',
11
+ icon: Wrench,
12
+ },
13
+ {
14
+ text: i18n('value_maintenance-no-new-vdisks'),
15
+ theme: 'warning',
16
+ icon: Ban,
17
+ },
18
+ { text: i18n('value_maintenance-no-request'), theme: 'success' },
19
+ ];
20
+ export function PDiskMaintenanceLegend({ className }) {
21
+ return (_jsxs(Flex, { className: className, gap: 3, alignItems: "center", wrap: "wrap", children: [_jsx(Flex, { gap: 2, alignItems: "center", wrap: "wrap", children: legendItems.map(({ text, theme, icon }) => (_jsx(Label, { size: "xs", theme: theme, icon: icon ? _jsx(Icon, { data: icon, size: iconSize }) : undefined, children: text }, text))) }), _jsx(Text, { className: b('empty-statistics'), color: "secondary", children: i18n('context_no-statistics') })] }));
22
+ }
23
+ //# sourceMappingURL=PDiskMaintenanceLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PDiskMaintenanceLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/PDiskMaintenanceLegend.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,GAAG,EAAE,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAC,CAAC,EAAC,MAAM,cAAc,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAY3B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,WAAW,GAAiC;IAC9C;QACI,IAAI,EAAE,IAAI,CAAC,qCAAqC,CAAC;QACjD,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,MAAM;KACf;IACD;QACI,IAAI,EAAE,IAAI,CAAC,iCAAiC,CAAC;QAC7C,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,GAAG;KACZ;IACD,EAAC,IAAI,EAAE,IAAI,CAAC,8BAA8B,CAAC,EAAE,KAAK,EAAE,SAAS,EAAC;CACjE,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,EAAC,SAAS,EAA8B;IAC3E,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aAC/D,KAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,YACxC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,EAAE,EAAE,CAAC,CACtC,KAAC,KAAK,IAEF,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,SAAS,YAE5D,IAAI,IALA,IAAI,CAML,CACX,CAAC,GACC,EACP,KAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAC,WAAW,YACpD,IAAI,CAAC,uBAAuB,CAAC,GAC3B,IACJ,CACV,CAAC;AACN,CAAC"}
@@ -0,0 +1,5 @@
1
+ interface PDiskStateLegendProps {
2
+ className?: string;
3
+ }
4
+ export declare function PDiskStateLegend({ className }: PDiskStateLegendProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CircleExclamationFill, CircleStopFill, CircleXmarkFill, ClockFill } from '@gravity-ui/icons';
3
+ import { Flex, Icon, Label, Text } from '@gravity-ui/uikit';
4
+ import { b } from '../constants';
5
+ import i18n from '../i18n';
6
+ const iconSize = 12;
7
+ const legendItems = [
8
+ { text: i18n('value_ok'), theme: 'success' },
9
+ { text: i18n('value_initial'), theme: 'warning', icon: ClockFill },
10
+ { text: i18n('value_attention'), theme: 'danger', icon: CircleExclamationFill },
11
+ { text: i18n('value_stopped'), theme: 'danger', icon: CircleStopFill },
12
+ {
13
+ text: i18n('value_error'),
14
+ theme: 'danger',
15
+ icon: CircleXmarkFill,
16
+ className: b('label-danger-heavy'),
17
+ },
18
+ { text: i18n('value_no-data'), theme: 'unknown' },
19
+ ];
20
+ export function PDiskStateLegend({ className }) {
21
+ return (_jsxs(Flex, { className: className, gap: 3, alignItems: "center", wrap: "wrap", children: [_jsx(Flex, { gap: 2, alignItems: "center", wrap: "wrap", children: legendItems.map(({ text, theme, icon, className: labelClassName }) => (_jsx(Label, { size: "xs", theme: theme, className: labelClassName, icon: icon ? _jsx(Icon, { data: icon, size: iconSize }) : undefined, children: text }, text))) }), _jsx(Text, { className: b('empty-statistics'), color: "secondary", children: i18n('context_no-statistics') })] }));
22
+ }
23
+ //# sourceMappingURL=PDiskStateLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PDiskStateLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/PDiskStateLegend.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAEpG,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAC,CAAC,EAAC,MAAM,cAAc,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAa3B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,WAAW,GAA2B;IACxC,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAC;IAC1C,EAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAC;IAChE,EAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAC;IAC7E,EAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAC;IACpE;QACI,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;QACzB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,CAAC,CAAC,oBAAoB,CAAC;KACrC;IACD,EAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAC;CAClD,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,EAAC,SAAS,EAAwB;IAC/D,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aAC/D,KAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,YACxC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAC,EAAE,EAAE,CAAC,CACjE,KAAC,KAAK,IAEF,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,SAAS,YAE5D,IAAI,IANA,IAAI,CAOL,CACX,CAAC,GACC,EACP,KAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAC,WAAW,YACpD,IAAI,CAAC,uBAAuB,CAAC,GAC3B,IACJ,CACV,CAAC;AACN,CAAC"}
@@ -1,6 +1,8 @@
1
+ import type { SpaceLegendSelectionScope } from './getSpaceLegendSelection';
1
2
  import './SpaceLegend.scss';
2
3
  interface SpaceLegendProps {
3
4
  className?: string;
5
+ selectionScope?: SpaceLegendSelectionScope;
4
6
  }
5
- export declare function SpaceLegend({ className }: SpaceLegendProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function SpaceLegend({ className, selectionScope }: SpaceLegendProps): import("react/jsx-runtime").JSX.Element;
6
8
  export {};
@@ -38,9 +38,9 @@ const legendItems = [
38
38
  { id: ECapacityAlert.RED, text: i18n('space_red'), customClass: b('label', { red: true }) },
39
39
  { id: ECapacityAlert.BLACK, text: i18n('space_black'), customClass: b('label', { black: true }) },
40
40
  ];
41
- export function SpaceLegend({ className }) {
41
+ export function SpaceLegend({ className, selectionScope = 'vdisks' }) {
42
42
  // Load inactive ECapacityAlert values
43
- const [inactiveAlerts, setInactiveAlerts] = React.useState(getSpaceLegendSelection);
43
+ const [inactiveAlerts, setInactiveAlerts] = React.useState(() => getSpaceLegendSelection(selectionScope));
44
44
  const toggleItem = React.useCallback((id) => {
45
45
  setInactiveAlerts((prev) => {
46
46
  const next = new Set(prev);
@@ -50,10 +50,10 @@ export function SpaceLegend({ className }) {
50
50
  else {
51
51
  next.add(id);
52
52
  }
53
- saveSpaceLegendSelection(next);
53
+ saveSpaceLegendSelection(next, selectionScope);
54
54
  return next;
55
55
  });
56
- }, []);
56
+ }, [selectionScope]);
57
57
  return (_jsxs(Flex, { className: className, gap: 2, alignItems: "center", wrap: "wrap", children: [_jsx(Flex, { gap: 2, alignItems: "center", wrap: "wrap", children: legendItems.map(({ id, text, theme, customClass }) => {
58
58
  const isActive = !inactiveAlerts.has(id);
59
59
  return (_jsx(Label, { size: "xs", theme: theme, className: customClass, onClick: () => toggleItem(id), icon: _jsx("div", { className: b('label-icon', { selected: isActive }), children: isActive ? _jsx(Icon, { data: Check, size: 12 }) : null }), children: text }, id));
@@ -1 +1 @@
1
- {"version":3,"file":"SpaceLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/SpaceLegend.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpaceLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/SpaceLegend.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CircleExclamation, CircleXmarkFill, Clock } from '@gravity-ui/icons';
2
+ import { CircleExclamationFill, CircleXmarkFill, ClockFill } from '@gravity-ui/icons';
3
3
  import { Flex, Icon, Label, Text } from '@gravity-ui/uikit';
4
4
  import { b } from '../constants';
5
5
  import i18n from '../i18n';
@@ -7,8 +7,8 @@ const iconSize = 12;
7
7
  const legendItems = [
8
8
  { text: i18n('value_ok'), theme: 'success' },
9
9
  { text: i18n('value_replication'), theme: 'info' },
10
- { text: i18n('value_initial'), theme: 'warning', icon: Clock },
11
- { text: i18n('value_pdisk-error'), theme: 'danger', icon: CircleExclamation },
10
+ { text: i18n('value_initial'), theme: 'warning', icon: ClockFill },
11
+ { text: i18n('value_pdisk-error'), theme: 'danger', icon: CircleExclamationFill },
12
12
  {
13
13
  text: i18n('value_error'),
14
14
  theme: 'danger',
@@ -1 +1 @@
1
- {"version":3,"file":"StateLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/StateLegend.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAC,CAAC,EAAC,MAAM,cAAc,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAa3B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,WAAW,GAAsB;IACnC,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAC;IAC1C,EAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC;IAChD,EAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAC;IAC5D,EAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAC;IAC3E;QACI,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;QACzB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,CAAC,CAAC,oBAAoB,CAAC;KACrC;IACD,EAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAC;CAClD,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAC,SAAS,EAAmB;IACrD,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aAC/D,KAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,YACxC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAC,EAAE,EAAE,CAAC,CACjE,KAAC,KAAK,IAEF,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,SAAS,YAE5D,IAAI,IANA,IAAI,CAOL,CACX,CAAC,GACC,EACP,KAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAC,WAAW,YACpD,IAAI,CAAC,uBAAuB,CAAC,GAC3B,IACJ,CACV,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"StateLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/StateLegend.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,qBAAqB,EAAE,eAAe,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAC,CAAC,EAAC,MAAM,cAAc,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAa3B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,WAAW,GAAsB;IACnC,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAC;IAC1C,EAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC;IAChD,EAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAC;IAChE,EAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAC;IAC/E;QACI,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;QACzB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,CAAC,CAAC,oBAAoB,CAAC;KACrC;IACD,EAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAC;CAClD,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAC,SAAS,EAAmB;IACrD,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aAC/D,KAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,YACxC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAC,EAAE,EAAE,CAAC,CACjE,KAAC,KAAK,IAEF,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,SAAS,YAE5D,IAAI,IANA,IAAI,CAOL,CACX,CAAC,GACC,EACP,KAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAC,WAAW,YACpD,IAAI,CAAC,uBAAuB,CAAC,GAC3B,IACJ,CACV,CAAC;AACN,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface StatusPairLegendProps {
2
+ className?: string;
3
+ label: string;
4
+ }
5
+ export declare function StatusPairLegend({ className, label }: StatusPairLegendProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CircleCheckFill, CircleExclamationFill, CircleXmarkFill, TriangleExclamationFill, } from '@gravity-ui/icons';
3
+ import { Flex, Icon, Label, Text } from '@gravity-ui/uikit';
4
+ import { b } from '../constants';
5
+ import i18n from '../i18n';
6
+ const iconSize = 12;
7
+ const legendItems = [
8
+ { text: i18n('compaction_ok'), theme: 'success', icon: CircleCheckFill },
9
+ { text: i18n('compaction_notice'), theme: 'warning', icon: TriangleExclamationFill },
10
+ { text: i18n('compaction_warning'), theme: 'danger', icon: CircleExclamationFill },
11
+ {
12
+ text: i18n('compaction_impaired'),
13
+ theme: 'danger',
14
+ icon: CircleXmarkFill,
15
+ className: b('label-danger-heavy'),
16
+ },
17
+ ];
18
+ export function StatusPairLegend({ className, label }) {
19
+ return (_jsxs(Flex, { className: className, gap: 3, alignItems: "center", wrap: "wrap", children: [_jsxs(Flex, { gap: 2, alignItems: "center", wrap: "wrap", children: [_jsx(Text, { color: "secondary", children: label }), legendItems.map(({ text, theme, icon, className: labelClassName }) => (_jsx(Label, { size: "xs", theme: theme, className: labelClassName, icon: _jsx(Icon, { data: icon, size: iconSize }), children: text }, text)))] }), _jsx(Text, { className: b('empty-statistics'), color: "secondary", children: i18n('context_no-statistics') })] }));
20
+ }
21
+ //# sourceMappingURL=StatusPairLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusPairLegend.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/StatusPairLegend.tsx"],"names":[],"mappings":";AAAA,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,uBAAuB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAC,CAAC,EAAC,MAAM,cAAc,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAc3B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,WAAW,GAA2B;IACxC,EAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAC;IACtE,EAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAC;IAClF,EAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAC;IAChF;QACI,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC;QACjC,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,CAAC,CAAC,oBAAoB,CAAC;KACrC;CACJ,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,EAAC,SAAS,EAAE,KAAK,EAAwB;IACtE,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aAC/D,MAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,aACzC,KAAC,IAAI,IAAC,KAAK,EAAC,WAAW,YAAE,KAAK,GAAQ,EACrC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAC,EAAE,EAAE,CAAC,CACjE,KAAC,KAAK,IAEF,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAI,YAEzC,IAAI,IANA,IAAI,CAOL,CACX,CAAC,IACC,EACP,KAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAC,WAAW,YACpD,IAAI,CAAC,uBAAuB,CAAC,GAC3B,IACJ,CACV,CAAC;AACN,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { ECapacityAlert } from '../../../../types/api/enums';
2
2
  export declare const SPACE_LEGEND_STORAGE_KEY = "ydb-space-legend-inactive";
3
3
  export declare const SPACE_LEGEND_CHANGE_EVENT = "spaceLegendChange";
4
+ export type SpaceLegendSelectionScope = 'vdisks' | 'pdisks';
4
5
  /**
5
6
  * Get the set of inactive (deselected) capacityAlert values for Space mode legend
6
7
  * Returns a Set of ECapacityAlert values that are currently deselected in the legend
7
8
  */
8
- export declare function getSpaceLegendSelection(): Set<ECapacityAlert>;
9
- export declare function saveSpaceLegendSelection(selection: Set<ECapacityAlert>): void;
9
+ export declare function getSpaceLegendSelection(scope?: SpaceLegendSelectionScope): Set<ECapacityAlert>;
10
+ export declare function saveSpaceLegendSelection(selection: Set<ECapacityAlert>, scope?: SpaceLegendSelectionScope): void;
@@ -4,8 +4,14 @@ export const SPACE_LEGEND_STORAGE_KEY = 'ydb-space-legend-inactive';
4
4
  export const SPACE_LEGEND_CHANGE_EVENT = 'spaceLegendChange';
5
5
  // By default, GREEN and CYAN are inactive (deselected)
6
6
  const defaultInactive = new Set([ECapacityAlert.GREEN, ECapacityAlert.CYAN]);
7
- function loadInactiveItems() {
8
- const stored = loadFromSessionStorage(SPACE_LEGEND_STORAGE_KEY);
7
+ function getStorageKey(scope) {
8
+ return scope === 'vdisks' ? SPACE_LEGEND_STORAGE_KEY : `${SPACE_LEGEND_STORAGE_KEY}-${scope}`;
9
+ }
10
+ function getChangeEvent(scope) {
11
+ return scope === 'vdisks' ? SPACE_LEGEND_CHANGE_EVENT : `${SPACE_LEGEND_CHANGE_EVENT}-${scope}`;
12
+ }
13
+ function loadInactiveItems(scope) {
14
+ const stored = loadFromSessionStorage(getStorageKey(scope));
9
15
  if (Array.isArray(stored)) {
10
16
  const normalizedStored = new Set();
11
17
  stored.forEach((item) => {
@@ -21,11 +27,11 @@ function loadInactiveItems() {
21
27
  * Get the set of inactive (deselected) capacityAlert values for Space mode legend
22
28
  * Returns a Set of ECapacityAlert values that are currently deselected in the legend
23
29
  */
24
- export function getSpaceLegendSelection() {
25
- return loadInactiveItems();
30
+ export function getSpaceLegendSelection(scope = 'vdisks') {
31
+ return loadInactiveItems(scope);
26
32
  }
27
- export function saveSpaceLegendSelection(selection) {
28
- saveToSessionStorage(SPACE_LEGEND_STORAGE_KEY, Array.from(selection));
29
- window.dispatchEvent(new CustomEvent(SPACE_LEGEND_CHANGE_EVENT));
33
+ export function saveSpaceLegendSelection(selection, scope = 'vdisks') {
34
+ saveToSessionStorage(getStorageKey(scope), Array.from(selection));
35
+ window.dispatchEvent(new CustomEvent(getChangeEvent(scope)));
30
36
  }
31
37
  //# sourceMappingURL=getSpaceLegendSelection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getSpaceLegendSelection.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAC,sBAAsB,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAE/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;AAE7D,uDAAuD;AACvD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAE7E,SAAS,iBAAiB;IACtB,MAAM,MAAM,GAAG,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;IAEhE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,OAAO,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACnC,OAAO,iBAAiB,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAA8B;IACnE,oBAAoB,CAAC,wBAAwB,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"getSpaceLegendSelection.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAC,sBAAsB,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAE/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;AAI7D,uDAAuD;AACvD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAE7E,SAAS,aAAa,CAAC,KAAgC;IACnD,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,wBAAwB,IAAI,KAAK,EAAE,CAAC;AAClG,CAAC;AAED,SAAS,cAAc,CAAC,KAAgC;IACpD,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,GAAG,yBAAyB,IAAI,KAAK,EAAE,CAAC;AACpG,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAgC;IACvD,MAAM,MAAM,GAAG,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,OAAO,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACnC,QAAmC,QAAQ;IAE3C,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,SAA8B,EAC9B,QAAmC,QAAQ;IAE3C,oBAAoB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC"}
@@ -1,4 +1,9 @@
1
1
  export { StateLegend } from './StateLegend';
2
+ export { PDiskStateLegend } from './PDiskStateLegend';
3
+ export { PDiskDriveLegend } from './PDiskDriveLegend';
4
+ export { PDiskDecommitLegend } from './PDiskDecommitLegend';
5
+ export { PDiskMaintenanceLegend } from './PDiskMaintenanceLegend';
6
+ export { PDiskDeviceLegend } from './PDiskDeviceLegend';
2
7
  export { SpaceLegend } from './SpaceLegend';
3
8
  export { FrontQueuesLegend } from './FrontQueuesLegend';
4
9
  export { CompactionLegend } from './CompactionLegend';
@@ -1,4 +1,9 @@
1
1
  export { StateLegend } from './StateLegend';
2
+ export { PDiskStateLegend } from './PDiskStateLegend';
3
+ export { PDiskDriveLegend } from './PDiskDriveLegend';
4
+ export { PDiskDecommitLegend } from './PDiskDecommitLegend';
5
+ export { PDiskMaintenanceLegend } from './PDiskMaintenanceLegend';
6
+ export { PDiskDeviceLegend } from './PDiskDeviceLegend';
2
7
  export { SpaceLegend } from './SpaceLegend';
3
8
  export { FrontQueuesLegend } from './FrontQueuesLegend';
4
9
  export { CompactionLegend } from './CompactionLegend';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC"}
@@ -1,7 +1,3 @@
1
1
  import type { ECapacityAlert } from '../../../../types/api/enums';
2
- /**
3
- * Hook to get the set of inactive (deselected) legend items for Space mode
4
- * Returns a Set of ECapacityAlert values that are currently deselected in the legend
5
- * Automatically updates when legend selection changes
6
- */
7
- export declare function useSpaceLegendSelection(): Set<ECapacityAlert>;
2
+ import type { SpaceLegendSelectionScope } from './getSpaceLegendSelection';
3
+ export declare function useSpaceLegendSelection(scope?: SpaceLegendSelectionScope): Set<ECapacityAlert>;
@@ -5,17 +5,21 @@ import { SPACE_LEGEND_CHANGE_EVENT, getSpaceLegendSelection } from './getSpaceLe
5
5
  * Returns a Set of ECapacityAlert values that are currently deselected in the legend
6
6
  * Automatically updates when legend selection changes
7
7
  */
8
- export function useSpaceLegendSelection() {
9
- const [selection, setSelection] = React.useState(getSpaceLegendSelection);
8
+ function getChangeEvent(scope) {
9
+ return scope === 'vdisks' ? SPACE_LEGEND_CHANGE_EVENT : `${SPACE_LEGEND_CHANGE_EVENT}-${scope}`;
10
+ }
11
+ export function useSpaceLegendSelection(scope = 'vdisks') {
12
+ const [selection, setSelection] = React.useState(() => getSpaceLegendSelection(scope));
10
13
  React.useEffect(() => {
11
14
  const handleLegendChange = () => {
12
- setSelection(getSpaceLegendSelection());
15
+ setSelection(getSpaceLegendSelection(scope));
13
16
  };
14
- window.addEventListener(SPACE_LEGEND_CHANGE_EVENT, handleLegendChange);
17
+ const changeEvent = getChangeEvent(scope);
18
+ window.addEventListener(changeEvent, handleLegendChange);
15
19
  return () => {
16
- window.removeEventListener(SPACE_LEGEND_CHANGE_EVENT, handleLegendChange);
20
+ window.removeEventListener(changeEvent, handleLegendChange);
17
21
  };
18
- }, []);
22
+ }, [scope]);
19
23
  return selection;
20
24
  }
21
25
  //# sourceMappingURL=useSpaceLegendSelection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSpaceLegendSelection.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAC,yBAAyB,EAAE,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAE7F;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACnC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAsB,uBAAuB,CAAC,CAAC;IAE/F,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,MAAM,kBAAkB,GAAG,GAAG,EAAE;YAC5B,YAAY,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC;QACvE,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC;QAC9E,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"useSpaceLegendSelection.js","sourceRoot":"","sources":["../../../../../src/containers/Storage/StorageExpertModePanel/components/useSpaceLegendSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAC,yBAAyB,EAAE,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAG7F;;;;GAIG;AACH,SAAS,cAAc,CAAC,KAAgC;IACpD,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,GAAG,yBAAyB,IAAI,KAAK,EAAE,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,QAAmC,QAAQ;IAE3C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAsB,GAAG,EAAE,CACvE,uBAAuB,CAAC,KAAK,CAAC,CACjC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,MAAM,kBAAkB,GAAG,GAAG,EAAE;YAC5B,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACzD,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAChE,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -3,6 +3,16 @@ import { VDisksGroupBy } from '../../../utils/disks/groupBy';
3
3
  import type { VDisksGroupByValue } from '../../../utils/disks/groupBy';
4
4
  export { VDisksGroupBy };
5
5
  export type { VDisksGroupByValue };
6
+ export declare const PDisksGroupBy: {
7
+ readonly State: "State";
8
+ readonly Space: "Space";
9
+ readonly Drive: "Drive";
10
+ readonly Decommit: "Decommit";
11
+ readonly Maintenance: "Maintenance";
12
+ readonly Device: "Device";
13
+ readonly All: "All";
14
+ };
15
+ export type PDisksGroupByValue = (typeof PDisksGroupBy)[keyof typeof PDisksGroupBy];
6
16
  export declare const vdisksGroupBySchema: z.ZodCatch<z.ZodEnum<{
7
17
  readonly State: "State";
8
18
  readonly Space: "Space";
@@ -10,4 +20,13 @@ export declare const vdisksGroupBySchema: z.ZodCatch<z.ZodEnum<{
10
20
  readonly Compaction: "Compaction";
11
21
  readonly All: "All";
12
22
  }>>;
23
+ export declare const pdisksGroupBySchema: z.ZodCatch<z.ZodEnum<{
24
+ readonly State: "State";
25
+ readonly Space: "Space";
26
+ readonly Drive: "Drive";
27
+ readonly Decommit: "Decommit";
28
+ readonly Maintenance: "Maintenance";
29
+ readonly Device: "Device";
30
+ readonly All: "All";
31
+ }>>;
13
32
  export declare const b: import("@bem-react/classname").ClassNameFormatter;