ydb-embedded-ui 22.0.0 → 22.2.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.
- package/dist/components/DiskStateProgressBar/AllModeCapacityAlertIndicator.d.ts +2 -1
- package/dist/components/DiskStateProgressBar/AllModeCapacityAlertIndicator.js +5 -2
- package/dist/components/DiskStateProgressBar/AllModeCapacityAlertIndicator.js.map +1 -1
- package/dist/components/DiskStateProgressBar/AllModeIndicators.d.ts +2 -1
- package/dist/components/DiskStateProgressBar/AllModeIndicators.js +7 -2
- package/dist/components/DiskStateProgressBar/AllModeIndicators.js.map +1 -1
- package/dist/components/DiskStateProgressBar/DiskIndicator.d.ts +7 -2
- package/dist/components/DiskStateProgressBar/DiskIndicator.js +10 -6
- package/dist/components/DiskStateProgressBar/DiskIndicator.js.map +1 -1
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js +1 -1
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js.map +1 -1
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.scss +96 -46
- package/dist/components/DiskStateProgressBar/PDiskAllModeIndicators.js +9 -1
- package/dist/components/DiskStateProgressBar/PDiskAllModeIndicators.js.map +1 -1
- package/dist/components/EvictVDiskButton/EvictVDiskButton.js +7 -3
- package/dist/components/EvictVDiskButton/EvictVDiskButton.js.map +1 -1
- package/dist/components/FullNodeViewer/FullNodeViewer.js +40 -17
- package/dist/components/FullNodeViewer/FullNodeViewer.js.map +1 -1
- package/dist/components/FullNodeViewer/FullNodeViewer.scss +3 -3
- package/dist/components/FullNodeViewer/i18n/en.json +2 -1
- package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
- package/dist/components/HoverPopup/HoverPopup.js +9 -2
- package/dist/components/HoverPopup/HoverPopup.js.map +1 -1
- package/dist/components/InfoViewer/InfoViewer.js +1 -1
- package/dist/components/InfoViewer/InfoViewer.js.map +1 -1
- package/dist/components/InfoViewer/formatters/pqGroup.js +6 -1
- package/dist/components/InfoViewer/formatters/pqGroup.js.map +1 -1
- package/dist/components/InfoViewer/schemaInfo/i18n/en.json +1 -0
- package/dist/components/InfoViewer/schemaInfo/i18n/index.d.ts +1 -1
- package/dist/components/InfoViewer/schemaInfo/utils.js +6 -1
- package/dist/components/InfoViewer/schemaInfo/utils.js.map +1 -1
- package/dist/components/NodeHostWrapper/NodeHostWrapper.d.ts +4 -1
- package/dist/components/NodeHostWrapper/NodeHostWrapper.js +13 -9
- package/dist/components/NodeHostWrapper/NodeHostWrapper.js.map +1 -1
- package/dist/components/PDiskInfo/PDiskInfo.js +2 -1
- package/dist/components/PDiskInfo/PDiskInfo.js.map +1 -1
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/PDiskPopup/PDiskPopup.js +5 -1
- package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
- package/dist/components/PaginatedTable/KeyboardNavigation.d.ts +9 -0
- package/dist/components/PaginatedTable/KeyboardNavigation.js +14 -0
- package/dist/components/PaginatedTable/KeyboardNavigation.js.map +1 -0
- package/dist/components/PaginatedTable/PaginatedTable.d.ts +4 -1
- package/dist/components/PaginatedTable/PaginatedTable.js +103 -18
- package/dist/components/PaginatedTable/PaginatedTable.js.map +1 -1
- package/dist/components/PaginatedTable/PaginatedTable.scss +10 -0
- package/dist/components/PaginatedTable/PaginatedTableContext.d.ts +2 -3
- package/dist/components/PaginatedTable/PaginatedTableContext.js +10 -11
- package/dist/components/PaginatedTable/PaginatedTableContext.js.map +1 -1
- package/dist/components/PaginatedTable/PaginatedTableWithLayout.d.ts +2 -1
- package/dist/components/PaginatedTable/PaginatedTableWithLayout.js +2 -2
- package/dist/components/PaginatedTable/PaginatedTableWithLayout.js.map +1 -1
- package/dist/components/PaginatedTable/ResizeablePaginatedTable.js +2 -1
- package/dist/components/PaginatedTable/ResizeablePaginatedTable.js.map +1 -1
- package/dist/components/PaginatedTable/TableChunk.d.ts +1 -1
- package/dist/components/PaginatedTable/TableChunk.js +8 -11
- package/dist/components/PaginatedTable/TableChunk.js.map +1 -1
- package/dist/components/PaginatedTable/TableChunksRenderer.d.ts +3 -2
- package/dist/components/PaginatedTable/TableChunksRenderer.js +6 -1
- package/dist/components/PaginatedTable/TableChunksRenderer.js.map +1 -1
- package/dist/components/PaginatedTable/TableRow.d.ts +3 -1
- package/dist/components/PaginatedTable/TableRow.js +24 -8
- package/dist/components/PaginatedTable/TableRow.js.map +1 -1
- package/dist/components/PaginatedTable/getTableChunkQueryParams.d.ts +23 -0
- package/dist/components/PaginatedTable/getTableChunkQueryParams.js +12 -0
- package/dist/components/PaginatedTable/getTableChunkQueryParams.js.map +1 -0
- package/dist/components/PaginatedTable/rowLookup.d.ts +8 -0
- package/dist/components/PaginatedTable/rowLookup.js +35 -0
- package/dist/components/PaginatedTable/rowLookup.js.map +1 -0
- package/dist/components/PaginatedTable/tableCounts.d.ts +19 -0
- package/dist/components/PaginatedTable/tableCounts.js +30 -0
- package/dist/components/PaginatedTable/tableCounts.js.map +1 -0
- package/dist/components/PaginatedTable/useKeyboardNavigation.d.ts +27 -0
- package/dist/components/PaginatedTable/useKeyboardNavigation.js +70 -0
- package/dist/components/PaginatedTable/useKeyboardNavigation.js.map +1 -0
- package/dist/components/ResizeableDataTable/DataTableKeyboardNavigation.d.ts +24 -0
- package/dist/components/ResizeableDataTable/DataTableKeyboardNavigation.js +144 -0
- package/dist/components/ResizeableDataTable/DataTableKeyboardNavigation.js.map +1 -0
- package/dist/components/ResizeableDataTable/ResizeableDataTable.d.ts +4 -1
- package/dist/components/ResizeableDataTable/ResizeableDataTable.js +28 -4
- package/dist/components/ResizeableDataTable/ResizeableDataTable.js.map +1 -1
- package/dist/components/ResizeableDataTable/ResizeableDataTable.scss +10 -0
- package/dist/components/ResizeableDataTable/getDataTableOrder.d.ts +2 -0
- package/dist/components/ResizeableDataTable/getDataTableOrder.js +12 -0
- package/dist/components/ResizeableDataTable/getDataTableOrder.js.map +1 -0
- package/dist/components/Search/Search.d.ts +2 -1
- package/dist/components/Search/Search.js +6 -2
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/ShardsTable/columns.js +6 -3
- package/dist/components/ShardsTable/columns.js.map +1 -1
- package/dist/components/ShardsTable/i18n/en.json +1 -0
- package/dist/components/ShardsTable/i18n/index.d.ts +1 -1
- package/dist/components/TableKeyboardNavigation/TableKeyboardNavigation.d.ts +54 -0
- package/dist/components/TableKeyboardNavigation/TableKeyboardNavigation.js +389 -0
- package/dist/components/TableKeyboardNavigation/TableKeyboardNavigation.js.map +1 -0
- package/dist/components/TableKeyboardNavigation/TableKeyboardNavigation.scss +16 -0
- package/dist/components/TableKeyboardNavigation/i18n/en.json +4 -0
- package/dist/components/TableKeyboardNavigation/i18n/index.d.ts +2 -0
- package/dist/components/TableKeyboardNavigation/i18n/index.js +4 -0
- package/dist/components/TableKeyboardNavigation/i18n/index.js.map +1 -0
- package/dist/components/TableKeyboardNavigation/utils.d.ts +3 -0
- package/dist/components/TableKeyboardNavigation/utils.js +24 -0
- package/dist/components/TableKeyboardNavigation/utils.js.map +1 -0
- package/dist/components/TableWithControlsLayout/TableWithControlsLayout.d.ts +4 -1
- package/dist/components/TableWithControlsLayout/TableWithControlsLayout.js +4 -2
- package/dist/components/TableWithControlsLayout/TableWithControlsLayout.js.map +1 -1
- package/dist/components/TenantNameWrapper/TenantNameWrapper.d.ts +3 -1
- package/dist/components/TenantNameWrapper/TenantNameWrapper.js +8 -12
- package/dist/components/TenantNameWrapper/TenantNameWrapper.js.map +1 -1
- package/dist/components/TenantNameWrapper/utils.d.ts +10 -0
- package/dist/components/TenantNameWrapper/utils.js +11 -0
- package/dist/components/TenantNameWrapper/utils.js.map +1 -1
- package/dist/components/UptimeViewer/UptimeViewer.d.ts +2 -2
- package/dist/components/VDisk/VDisk.d.ts +6 -1
- package/dist/components/VDisk/VDisk.js +97 -32
- package/dist/components/VDisk/VDisk.js.map +1 -1
- package/dist/components/VDisk/VDiskWithDonorsStack.d.ts +6 -2
- package/dist/components/VDisk/VDiskWithDonorsStack.js +9 -4
- package/dist/components/VDisk/VDiskWithDonorsStack.js.map +1 -1
- package/dist/components/VDisk/i18n/en.json +14 -1
- package/dist/components/VDisk/i18n/index.d.ts +1 -1
- package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/nodesColumns/columns.d.ts +4 -1
- package/dist/components/nodesColumns/columns.js +13 -0
- package/dist/components/nodesColumns/columns.js.map +1 -1
- package/dist/components/nodesColumns/constants.d.ts +2 -0
- package/dist/components/nodesColumns/constants.js +6 -0
- package/dist/components/nodesColumns/constants.js.map +1 -1
- package/dist/components/nodesColumns/i18n/en.json +2 -1
- package/dist/components/nodesColumns/i18n/index.d.ts +1 -1
- package/dist/containers/Clusters/Clusters.js +11 -7
- package/dist/containers/Clusters/Clusters.js.map +1 -1
- package/dist/containers/Node/NodeNetwork/NodeNetworkControls/NodeNetworkControls.js +1 -1
- package/dist/containers/Node/NodeNetwork/NodeNetworkControls/NodeNetworkControls.js.map +1 -1
- package/dist/containers/Node/NodeNetwork/NodeNetworkTable.js +11 -1
- package/dist/containers/Node/NodeNetwork/NodeNetworkTable.js.map +1 -1
- package/dist/containers/Node/Threads/ThreadStatesBar/ThreadStatesBar.d.ts +1 -1
- package/dist/containers/Nodes/NodesControls/NodesControls.js +1 -1
- package/dist/containers/Nodes/NodesControls/NodesControls.js.map +1 -1
- package/dist/containers/Nodes/NodesTable.js +12 -1
- package/dist/containers/Nodes/NodesTable.js.map +1 -1
- package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js +1 -1
- package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js.map +1 -1
- package/dist/containers/Nodes/columns/columns.js +2 -1
- package/dist/containers/Nodes/columns/columns.js.map +1 -1
- package/dist/containers/Storage/Disks/Disks.d.ts +2 -1
- package/dist/containers/Storage/Disks/Disks.js +32 -23
- package/dist/containers/Storage/Disks/Disks.js.map +1 -1
- package/dist/containers/Storage/Disks/Disks.scss +5 -0
- package/dist/containers/Storage/PDisk/PDisk.d.ts +6 -9
- package/dist/containers/Storage/PDisk/PDisk.js +99 -37
- package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
- package/dist/containers/Storage/PDisk/PDisk.scss +79 -1
- package/dist/containers/Storage/PDisk/PDiskWithVDisks.d.ts +17 -0
- package/dist/containers/Storage/PDisk/PDiskWithVDisks.js +48 -0
- package/dist/containers/Storage/PDisk/PDiskWithVDisks.js.map +1 -0
- package/dist/containers/Storage/PDisk/i18n/en.json +9 -0
- package/dist/containers/Storage/PDisk/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/PDisk/index.d.ts +1 -0
- package/dist/containers/Storage/PDisk/index.js +1 -0
- package/dist/containers/Storage/PDisk/index.js.map +1 -1
- package/dist/containers/Storage/PDisks/PDisks.d.ts +4 -1
- package/dist/containers/Storage/PDisks/PDisks.js +52 -6
- package/dist/containers/Storage/PDisks/PDisks.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorage.js +3 -1
- package/dist/containers/Storage/PaginatedStorage.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.js +1 -1
- package/dist/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js +2 -2
- package/dist/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/PaginatedStorageGroupsTable.js +10 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/PaginatedStorageGroupsTable.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageGroupsTable/columns/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/PaginatedStorageNodes/GroupedStorageNodesComponent.d.ts +1 -0
- package/dist/containers/Storage/PaginatedStorageNodes/GroupedStorageNodesComponent.js +8 -5
- package/dist/containers/Storage/PaginatedStorageNodes/GroupedStorageNodesComponent.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageNodes/StorageNodesComponent.js +6 -3
- package/dist/containers/Storage/PaginatedStorageNodes/StorageNodesComponent.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageNodes/StorageNodesControls.js +17 -5
- package/dist/containers/Storage/PaginatedStorageNodes/StorageNodesControls.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageNodes/nodeExpertModeLayout.d.ts +16 -0
- package/dist/containers/Storage/PaginatedStorageNodes/nodeExpertModeLayout.js +68 -0
- package/dist/containers/Storage/PaginatedStorageNodes/nodeExpertModeLayout.js.map +1 -0
- package/dist/containers/Storage/PaginatedStorageNodesTable/PaginatedStorageNodesTable.d.ts +2 -1
- package/dist/containers/Storage/PaginatedStorageNodesTable/PaginatedStorageNodesTable.js +14 -2
- package/dist/containers/Storage/PaginatedStorageNodesTable/PaginatedStorageNodesTable.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageNodesTable/columns/columns.js +2 -2
- package/dist/containers/Storage/PaginatedStorageNodesTable/columns/columns.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.js +7 -2
- package/dist/containers/Storage/PaginatedStorageNodesTable/columns/hooks.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageNodesTable/columns/types.d.ts +2 -0
- package/dist/containers/Storage/StorageExpertModePanel/StorageGroupsExpertModePanel.d.ts +5 -0
- package/dist/containers/Storage/StorageExpertModePanel/StorageGroupsExpertModePanel.js +33 -0
- package/dist/containers/Storage/StorageExpertModePanel/StorageGroupsExpertModePanel.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/StorageNodesExpertModePanel.d.ts +5 -0
- package/dist/containers/Storage/StorageExpertModePanel/StorageNodesExpertModePanel.js +31 -0
- package/dist/containers/Storage/StorageExpertModePanel/StorageNodesExpertModePanel.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/DriveTypeLegend.d.ts +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/DriveTypeLegend.js +7 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/DriveTypeLegend.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/ExpertModePanelLayout.d.ts +21 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/ExpertModePanelLayout.js +13 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/ExpertModePanelLayout.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.js +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDecommitLegend.js +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDecommitLegend.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDriveLegend.js +3 -2
- package/dist/containers/Storage/StorageExpertModePanel/components/PDiskDriveLegend.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/PDiskMaintenanceLegend.js +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/PDiskMaintenanceLegend.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js +4 -4
- package/dist/containers/Storage/StorageExpertModePanel/components/SpaceLegend.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/StatusPairLegend.js +3 -3
- package/dist/containers/Storage/StorageExpertModePanel/components/StatusPairLegend.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.d.ts +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/components/renderExpertModeLegend.d.ts +4 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/renderExpertModeLegend.js +54 -0
- package/dist/containers/Storage/StorageExpertModePanel/components/renderExpertModeLegend.js.map +1 -0
- package/dist/containers/Storage/StorageExpertModePanel/constants.d.ts +23 -0
- package/dist/containers/Storage/StorageExpertModePanel/constants.js +23 -0
- package/dist/containers/Storage/StorageExpertModePanel/constants.js.map +1 -1
- package/dist/containers/Storage/StorageExpertModePanel/i18n/en.json +6 -2
- package/dist/containers/Storage/StorageExpertModePanel/i18n/index.d.ts +1 -1
- package/dist/containers/Storage/TableGroup/TableGroup.js +2 -1
- package/dist/containers/Storage/TableGroup/TableGroup.js.map +1 -1
- package/dist/containers/Storage/VDisks/VDisks.d.ts +2 -1
- package/dist/containers/Storage/VDisks/VDisks.js +11 -4
- package/dist/containers/Storage/VDisks/VDisks.js.map +1 -1
- package/dist/containers/Storage/VDisks/VDisks.scss +3 -0
- package/dist/containers/Storage/useStoragePDiskDisplayStateGetter.d.ts +1 -0
- package/dist/containers/Storage/useStoragePDiskDisplayStateGetter.js +80 -102
- package/dist/containers/Storage/useStoragePDiskDisplayStateGetter.js.map +1 -1
- package/dist/containers/Storage/useStorageQueryParams.d.ts +13 -5
- package/dist/containers/Storage/useStorageQueryParams.js +50 -2
- package/dist/containers/Storage/useStorageQueryParams.js.map +1 -1
- package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.d.ts +1 -0
- package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js +59 -13
- package/dist/containers/Storage/useStorageVDiskDisplayStateGetter.js.map +1 -1
- package/dist/containers/Storage/utils/useStorageColumnsSettings.d.ts +4 -1
- package/dist/containers/Storage/utils/useStorageColumnsSettings.js +49 -39
- package/dist/containers/Storage/utils/useStorageColumnsSettings.js.map +1 -1
- package/dist/containers/Storage/utils/useVirtualizedDiskList.d.ts +10 -0
- package/dist/containers/Storage/utils/useVirtualizedDiskList.js +131 -0
- package/dist/containers/Storage/utils/useVirtualizedDiskList.js.map +1 -0
- package/dist/containers/Tablet/Tablet.js +4 -2
- package/dist/containers/Tablet/Tablet.js.map +1 -1
- package/dist/containers/Tablet/components/TabletControls/TabletControls.js +3 -1
- package/dist/containers/Tablet/components/TabletControls/TabletControls.js.map +1 -1
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js +9 -3
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js.map +1 -1
- package/dist/containers/Tablets/TabletsTable.js +25 -1
- package/dist/containers/Tablets/TabletsTable.js.map +1 -1
- package/dist/containers/Tablets/i18n/en.json +2 -1
- package/dist/containers/Tablets/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationPaths/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +2 -1
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/ResourcePoolInfo.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/ResourcePoolInfo.js +69 -0
- package/dist/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/ResourcePoolInfo.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/i18n/en.json +9 -0
- package/dist/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/i18n/index.js +5 -0
- package/dist/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/i18n/index.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/index.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/index.js +2 -0
- package/dist/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/index.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/utils/prepareTopicSchemaInfo.js +3 -3
- package/dist/containers/Tenant/Diagnostics/Overview/utils/prepareTopicSchemaInfo.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/QueriesTableWithDrawer.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/QueriesTableWithDrawer.js +3 -2
- package/dist/containers/Tenant/Diagnostics/TopQueries/QueriesTableWithDrawer.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopShards/TopShards.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TopShards/TopShards.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.d.ts +3 -3
- package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js +2 -1
- package/dist/containers/Tenant/Query/QueriesHistory/QueriesHistory.js.map +1 -1
- package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.js +1 -1
- package/dist/containers/Tenant/Query/SavedQueries/SavedQueries.js.map +1 -1
- package/dist/containers/Tenants/TenantsTable.js +37 -6
- package/dist/containers/Tenants/TenantsTable.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.js +10 -2
- package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
- package/dist/services/api/tablets.d.ts +6 -4
- package/dist/services/api/tablets.js +9 -8
- package/dist/services/api/tablets.js.map +1 -1
- package/dist/store/reducers/capabilities/capabilities.d.ts +4 -4
- package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
- package/dist/store/reducers/capabilities/hooks.js +8 -0
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/nodesList.d.ts +3 -261
- package/dist/store/reducers/nodesList.js +1 -1
- package/dist/store/reducers/nodesList.js.map +1 -1
- package/dist/store/reducers/settings/constants.d.ts +4 -0
- package/dist/store/reducers/settings/constants.js +4 -0
- package/dist/store/reducers/settings/constants.js.map +1 -1
- package/dist/store/reducers/storage/prepareGroupsDisks.d.ts +1 -0
- package/dist/store/reducers/storage/prepareGroupsDisks.js +17 -13
- package/dist/store/reducers/storage/prepareGroupsDisks.js.map +1 -1
- package/dist/store/reducers/storage/utils.js +11 -5
- package/dist/store/reducers/storage/utils.js.map +1 -1
- package/dist/store/reducers/table/table.js +6 -0
- package/dist/store/reducers/table/table.js.map +1 -1
- package/dist/store/reducers/tableData.d.ts +1 -1
- package/dist/store/reducers/tableData.js.map +1 -1
- package/dist/store/reducers/tablet.d.ts +3 -0
- package/dist/store/reducers/tablet.js +6 -6
- package/dist/store/reducers/tablet.js.map +1 -1
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.js +1 -1
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.js.map +1 -1
- package/dist/store/reducers/topic/topic.js +7 -1
- package/dist/store/reducers/topic/topic.js.map +1 -1
- package/dist/types/api/capabilities.d.ts +2 -2
- package/dist/types/api/pdisk.d.ts +2 -0
- package/dist/types/api/pdisk.js.map +1 -1
- package/dist/types/api/schema/persQueueGroup.d.ts +2 -2
- package/dist/types/api/schema/schema.d.ts +15 -0
- package/dist/types/api/schema/schema.js.map +1 -1
- package/dist/types/api/schema/tableIndex.d.ts +1 -0
- package/dist/types/api/storage.d.ts +4 -0
- package/dist/types/api/storage.js.map +1 -1
- package/dist/types/api/vdisk.d.ts +2 -0
- package/dist/types/api/vdisk.js.map +1 -1
- package/dist/uiFactory/types.d.ts +6 -0
- package/dist/utils/developerUI/tabletDevUi.d.ts +1 -0
- package/dist/utils/developerUI/tabletDevUi.js +4 -0
- package/dist/utils/developerUI/tabletDevUi.js.map +1 -0
- package/dist/utils/disks/displayState.d.ts +5 -2
- package/dist/utils/disks/displayState.js.map +1 -1
- package/dist/utils/disks/driveType.d.ts +3 -0
- package/dist/utils/disks/driveType.js +27 -0
- package/dist/utils/disks/driveType.js.map +1 -0
- package/dist/utils/disks/getDiskBarTone.d.ts +4 -2
- package/dist/utils/disks/getDiskBarTone.js +8 -1
- package/dist/utils/disks/getDiskBarTone.js.map +1 -1
- package/dist/utils/disks/getPDiskType.d.ts +1 -0
- package/dist/utils/disks/getPDiskType.js +3 -0
- package/dist/utils/disks/getPDiskType.js.map +1 -1
- package/dist/utils/disks/groupBy.d.ts +1 -0
- package/dist/utils/disks/groupBy.js +1 -0
- package/dist/utils/disks/groupBy.js.map +1 -1
- package/dist/utils/disks/iconCalculators.d.ts +1 -1
- package/dist/utils/disks/iconCalculators.js +2 -2
- package/dist/utils/disks/iconCalculators.js.map +1 -1
- package/dist/utils/disks/pdiskState.js +2 -2
- package/dist/utils/disks/pdiskState.js.map +1 -1
- package/dist/utils/disks/prepareDisks.js +19 -9
- package/dist/utils/disks/prepareDisks.js.map +1 -1
- package/dist/utils/disks/types.d.ts +3 -2
- package/dist/utils/objectCreationMetrics.d.ts +5 -0
- package/dist/utils/objectCreationMetrics.js +38 -0
- package/dist/utils/objectCreationMetrics.js.map +1 -0
- package/dist/utils/query.d.ts +1 -0
- package/dist/utils/query.js +6 -0
- package/dist/utils/query.js.map +1 -1
- package/package.json +1 -1
- package/src/components/DiskStateProgressBar/AllModeCapacityAlertIndicator.tsx +15 -2
- package/src/components/DiskStateProgressBar/AllModeIndicators.tsx +30 -6
- package/src/components/DiskStateProgressBar/DiskIndicator.tsx +27 -8
- package/src/components/DiskStateProgressBar/DiskStateProgressBar.scss +96 -46
- package/src/components/DiskStateProgressBar/DiskStateProgressBar.tsx +1 -1
- package/src/components/DiskStateProgressBar/PDiskAllModeIndicators.tsx +16 -3
- package/src/components/EvictVDiskButton/EvictVDiskButton.tsx +10 -3
- package/src/components/FullNodeViewer/FullNodeViewer.scss +3 -3
- package/src/components/FullNodeViewer/FullNodeViewer.tsx +81 -34
- package/src/components/FullNodeViewer/i18n/en.json +2 -1
- package/src/components/HoverPopup/HoverPopup.tsx +21 -16
- package/src/components/InfoViewer/InfoViewer.tsx +4 -2
- package/src/components/InfoViewer/formatters/pqGroup.ts +6 -2
- package/src/components/InfoViewer/schemaInfo/i18n/en.json +1 -0
- package/src/components/InfoViewer/schemaInfo/utils.tsx +9 -0
- package/src/components/NodeHostWrapper/NodeHostWrapper.tsx +23 -13
- package/src/components/PDiskInfo/PDiskInfo.tsx +2 -1
- package/src/components/PDiskPopup/PDiskPopup.tsx +5 -1
- package/src/components/PaginatedTable/KeyboardNavigation.tsx +30 -0
- package/src/components/PaginatedTable/PaginatedTable.scss +10 -0
- package/src/components/PaginatedTable/PaginatedTable.tsx +154 -20
- package/src/components/PaginatedTable/PaginatedTableContext.tsx +14 -19
- package/src/components/PaginatedTable/PaginatedTableWithLayout.tsx +6 -1
- package/src/components/PaginatedTable/ResizeablePaginatedTable.tsx +6 -1
- package/src/components/PaginatedTable/TableChunk.tsx +9 -16
- package/src/components/PaginatedTable/TableChunksRenderer.tsx +13 -1
- package/src/components/PaginatedTable/TableRow.tsx +54 -20
- package/src/components/PaginatedTable/getTableChunkQueryParams.ts +25 -0
- package/src/components/PaginatedTable/rowLookup.ts +63 -0
- package/src/components/PaginatedTable/tableCounts.ts +50 -0
- package/src/components/PaginatedTable/useKeyboardNavigation.ts +115 -0
- package/src/components/ResizeableDataTable/DataTableKeyboardNavigation.tsx +194 -0
- package/src/components/ResizeableDataTable/ResizeableDataTable.scss +10 -0
- package/src/components/ResizeableDataTable/ResizeableDataTable.tsx +100 -5
- package/src/components/ResizeableDataTable/getDataTableOrder.ts +18 -0
- package/src/components/Search/Search.tsx +8 -1
- package/src/components/ShardsTable/columns.tsx +14 -5
- package/src/components/ShardsTable/i18n/en.json +1 -0
- package/src/components/TableKeyboardNavigation/TableKeyboardNavigation.scss +16 -0
- package/src/components/TableKeyboardNavigation/TableKeyboardNavigation.tsx +519 -0
- package/src/components/TableKeyboardNavigation/i18n/en.json +4 -0
- package/src/components/TableKeyboardNavigation/i18n/index.ts +5 -0
- package/src/components/TableKeyboardNavigation/utils.ts +36 -0
- package/src/components/TableWithControlsLayout/TableWithControlsLayout.tsx +26 -1
- package/src/components/TenantNameWrapper/TenantNameWrapper.tsx +14 -15
- package/src/components/TenantNameWrapper/utils.ts +26 -0
- package/src/components/VDisk/VDisk.tsx +141 -44
- package/src/components/VDisk/VDiskWithDonorsStack.tsx +23 -4
- package/src/components/VDisk/i18n/en.json +14 -1
- package/src/components/nodesColumns/columns.tsx +13 -1
- package/src/components/nodesColumns/constants.ts +6 -0
- package/src/components/nodesColumns/i18n/en.json +2 -1
- package/src/containers/Clusters/Clusters.tsx +47 -29
- package/src/containers/Node/NodeNetwork/NodeNetworkControls/NodeNetworkControls.tsx +1 -0
- package/src/containers/Node/NodeNetwork/NodeNetworkTable.tsx +17 -0
- package/src/containers/Nodes/NodesControls/NodesControls.tsx +1 -0
- package/src/containers/Nodes/NodesTable.tsx +17 -1
- package/src/containers/Nodes/PaginatedNodes/GroupedNodesComponent.tsx +1 -0
- package/src/containers/Nodes/columns/columns.tsx +2 -0
- package/src/containers/Storage/Disks/Disks.scss +5 -0
- package/src/containers/Storage/Disks/Disks.tsx +157 -95
- package/src/containers/Storage/PDisk/PDisk.scss +79 -1
- package/src/containers/Storage/PDisk/PDisk.tsx +166 -81
- package/src/containers/Storage/PDisk/PDiskWithVDisks.tsx +181 -0
- package/src/containers/Storage/PDisk/i18n/en.json +9 -0
- package/src/containers/Storage/PDisk/index.ts +1 -0
- package/src/containers/Storage/PDisks/PDisks.tsx +157 -22
- package/src/containers/Storage/PaginatedStorage.tsx +4 -0
- package/src/containers/Storage/PaginatedStorageGroups/GroupedStorageGroupsComponent.tsx +1 -0
- package/src/containers/Storage/PaginatedStorageGroups/StorageGroupsControls.tsx +3 -2
- package/src/containers/Storage/PaginatedStorageGroupsTable/PaginatedStorageGroupsTable.tsx +13 -0
- package/src/containers/Storage/PaginatedStorageNodes/GroupedStorageNodesComponent.tsx +10 -2
- package/src/containers/Storage/PaginatedStorageNodes/StorageNodesComponent.tsx +6 -2
- package/src/containers/Storage/PaginatedStorageNodes/StorageNodesControls.tsx +76 -41
- package/src/containers/Storage/PaginatedStorageNodes/nodeExpertModeLayout.ts +103 -0
- package/src/containers/Storage/PaginatedStorageNodesTable/PaginatedStorageNodesTable.tsx +24 -1
- package/src/containers/Storage/PaginatedStorageNodesTable/columns/columns.tsx +3 -1
- package/src/containers/Storage/PaginatedStorageNodesTable/columns/hooks.ts +8 -1
- package/src/containers/Storage/PaginatedStorageNodesTable/columns/types.ts +2 -0
- package/src/containers/Storage/StorageExpertModePanel/StorageGroupsExpertModePanel.tsx +65 -0
- package/src/containers/Storage/StorageExpertModePanel/StorageNodesExpertModePanel.tsx +67 -0
- package/src/containers/Storage/StorageExpertModePanel/components/DriveTypeLegend.tsx +22 -0
- package/src/containers/Storage/StorageExpertModePanel/components/ExpertModePanelLayout.tsx +63 -0
- package/src/containers/Storage/StorageExpertModePanel/components/FrontQueuesLegend.tsx +1 -0
- package/src/containers/Storage/StorageExpertModePanel/components/PDiskDecommitLegend.tsx +1 -0
- package/src/containers/Storage/StorageExpertModePanel/components/PDiskDriveLegend.tsx +3 -2
- package/src/containers/Storage/StorageExpertModePanel/components/PDiskMaintenanceLegend.tsx +1 -0
- package/src/containers/Storage/StorageExpertModePanel/components/SpaceLegend.tsx +3 -0
- package/src/containers/Storage/StorageExpertModePanel/components/StatusPairLegend.tsx +7 -9
- package/src/containers/Storage/StorageExpertModePanel/components/getSpaceLegendSelection.ts +1 -1
- package/src/containers/Storage/StorageExpertModePanel/components/renderExpertModeLegend.tsx +63 -0
- package/src/containers/Storage/StorageExpertModePanel/constants.ts +27 -0
- package/src/containers/Storage/StorageExpertModePanel/i18n/en.json +6 -2
- package/src/containers/Storage/TableGroup/TableGroup.tsx +6 -1
- package/src/containers/Storage/VDisks/VDisks.scss +3 -0
- package/src/containers/Storage/VDisks/VDisks.tsx +29 -7
- package/src/containers/Storage/useStoragePDiskDisplayStateGetter.ts +102 -135
- package/src/containers/Storage/useStorageQueryParams.ts +120 -1
- package/src/containers/Storage/useStorageVDiskDisplayStateGetter.ts +75 -10
- package/src/containers/Storage/utils/useStorageColumnsSettings.ts +77 -49
- package/src/containers/Storage/utils/useVirtualizedDiskList.ts +156 -0
- package/src/containers/Tablet/Tablet.tsx +4 -2
- package/src/containers/Tablet/components/TabletControls/TabletControls.tsx +7 -3
- package/src/containers/Tablet/components/TabletInfo/TabletInfo.tsx +13 -3
- package/src/containers/Tablets/TabletsTable.tsx +50 -10
- package/src/containers/Tablets/i18n/en.json +2 -1
- package/src/containers/Tenant/Diagnostics/Overview/Overview.tsx +2 -1
- package/src/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/ResourcePoolInfo.tsx +106 -0
- package/src/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/i18n/en.json +9 -0
- package/src/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/i18n/index.ts +7 -0
- package/src/containers/Tenant/Diagnostics/Overview/ResourcePoolInfo/index.ts +1 -0
- package/src/containers/Tenant/Diagnostics/Overview/utils/prepareTopicSchemaInfo.ts +3 -3
- package/src/containers/Tenant/Diagnostics/TopQueries/QueriesTableWithDrawer.tsx +6 -0
- package/src/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.tsx +4 -0
- package/src/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.tsx +7 -1
- package/src/containers/Tenant/Diagnostics/TopShards/TopShards.tsx +1 -1
- package/src/containers/Tenant/Query/QueriesHistory/QueriesHistory.tsx +5 -0
- package/src/containers/Tenant/Query/SavedQueries/SavedQueries.tsx +6 -0
- package/src/containers/Tenants/TenantsTable.tsx +70 -12
- package/src/containers/VDiskPage/VDiskPage.tsx +10 -2
- package/src/services/api/tablets.ts +16 -7
- package/src/store/reducers/capabilities/hooks.ts +9 -0
- package/src/store/reducers/nodesList.ts +2 -3
- package/src/store/reducers/settings/constants.ts +4 -0
- package/src/store/reducers/storage/prepareGroupsDisks.ts +16 -11
- package/src/store/reducers/storage/utils.ts +12 -5
- package/src/store/reducers/table/table.ts +6 -0
- package/src/store/reducers/tableData.ts +1 -1
- package/src/store/reducers/tablet.ts +25 -6
- package/src/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.ts +1 -1
- package/src/store/reducers/topic/topic.ts +7 -1
- package/src/types/api/capabilities.ts +2 -2
- package/src/types/api/pdisk.ts +2 -0
- package/src/types/api/schema/persQueueGroup.ts +2 -2
- package/src/types/api/schema/schema.ts +18 -0
- package/src/types/api/schema/tableIndex.ts +1 -0
- package/src/types/api/storage.ts +4 -0
- package/src/types/api/vdisk.ts +2 -0
- package/src/uiFactory/types.ts +6 -0
- package/src/utils/developerUI/tabletDevUi.ts +3 -0
- package/src/utils/disks/displayState.ts +5 -1
- package/src/utils/disks/driveType.ts +30 -0
- package/src/utils/disks/getDiskBarTone.ts +15 -1
- package/src/utils/disks/getPDiskType.ts +4 -0
- package/src/utils/disks/groupBy.ts +1 -0
- package/src/utils/disks/iconCalculators.ts +2 -2
- package/src/utils/disks/pdiskState.ts +2 -2
- package/src/utils/disks/prepareDisks.ts +25 -9
- package/src/utils/disks/types.ts +3 -2
- package/src/utils/objectCreationMetrics.ts +47 -0
- package/src/utils/query.ts +7 -0
- package/dist/containers/Storage/PDisk/PDiskVDisks.d.ts +0 -13
- package/dist/containers/Storage/PDisk/PDiskVDisks.js +0 -20
- package/dist/containers/Storage/PDisk/PDiskVDisks.js.map +0 -1
- package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.d.ts +0 -6
- package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js +0 -66
- package/dist/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.js.map +0 -1
- package/src/containers/Storage/PDisk/PDiskVDisks.tsx +0 -65
- package/src/containers/Storage/StorageExpertModePanel/StorageExpertModePanel.tsx +0 -151
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { Flex, useLayoutContext } from '@gravity-ui/uikit';
|
|
4
|
+
import { isNil } from 'lodash';
|
|
4
5
|
import { VDiskWithDonorsStack } from '../../../components/VDisk/VDiskWithDonorsStack';
|
|
5
6
|
import { cn } from '../../../utils/cn';
|
|
6
7
|
import { PDisk } from '../PDisk';
|
|
@@ -8,15 +9,42 @@ import { DISKS_POPUP_DEBOUNCE_TIMEOUT } from '../shared';
|
|
|
8
9
|
import { useStoragePDiskDisplayStateGetter } from '../useStoragePDiskDisplayStateGetter';
|
|
9
10
|
import { useStorageVDiskDisplayStateGetter } from '../useStorageVDiskDisplayStateGetter';
|
|
10
11
|
import { isPdiskActive, isVdiskActive, useVDisksWithDCMargins } from '../utils';
|
|
12
|
+
import { useVirtualizedDiskList } from '../utils/useVirtualizedDiskList';
|
|
11
13
|
import { calculateCompactVDiskWidths } from './calculateCompactVDiskWidths';
|
|
12
|
-
import { ALL_VDISK_WIDTH, VDISKS_CONTAINER_WIDTH, getAllVDisksContainerWidth } from './constants';
|
|
14
|
+
import { ALL_VDISK_WIDTH, EXPERT_MODE_PDISK_WIDTH, VDISKS_CONTAINER_WIDTH, getAllVDisksContainerWidth, } from './constants';
|
|
13
15
|
import './Disks.scss';
|
|
14
16
|
const b = cn('ydb-storage-disks');
|
|
15
|
-
|
|
17
|
+
const VDiskItem = React.memo(function VDiskItem({ vDisk, highlighted, inactive, setHighlightedVDisk, compactVDiskWidth, withIcon, getDisplayState, isAllVDisksLayout, renderContent, placeholderProps, }) {
|
|
18
|
+
const style = isAllVDisksLayout
|
|
19
|
+
? { width: ALL_VDISK_WIDTH, flexBasis: ALL_VDISK_WIDTH }
|
|
20
|
+
: { width: compactVDiskWidth, flexBasis: compactVDiskWidth };
|
|
21
|
+
return (_jsxs("div", { style: style, className: b('vdisk-item', { all: isAllVDisksLayout }), "data-disk-id": vDisk.StringifiedId, children: [isAllVDisksLayout ? (_jsx("div", { "aria-hidden": true, className: b('vdisk-size-indicator'), style: {
|
|
22
|
+
width: compactVDiskWidth,
|
|
23
|
+
visibility: renderContent ? undefined : 'hidden',
|
|
24
|
+
} })) : null, _jsx(VDiskWithDonorsStack, { renderContent: renderContent, placeholderProps: placeholderProps, data: vDisk, hideMainPDiskInPopup: true, compact: !isAllVDisksLayout, withIcon: withIcon, inactive: inactive, delayOpen: DISKS_POPUP_DEBOUNCE_TIMEOUT, delayClose: DISKS_POPUP_DEBOUNCE_TIMEOUT, highlightedVDisk: highlighted ? vDisk.StringifiedId : undefined, setHighlightedVDisk: setHighlightedVDisk, progressBarClassName: b('vdisk-progress-bar'), getDisplayState: getDisplayState })] }));
|
|
25
|
+
});
|
|
26
|
+
const PDiskItem = React.memo(function PDiskItem({ vDisk, viewContext, highlighted, setHighlightedVDisk, withDCMargin, withIcon, getDisplayState, renderContent, placeholderProps, }) {
|
|
27
|
+
var _a;
|
|
28
|
+
const vDiskId = vDisk.StringifiedId;
|
|
29
|
+
const onShowPopup = React.useCallback(() => setHighlightedVDisk === null || setHighlightedVDisk === void 0 ? void 0 : setHighlightedVDisk(vDiskId), [setHighlightedVDisk, vDiskId]);
|
|
30
|
+
const onHidePopup = React.useCallback(() => setHighlightedVDisk === null || setHighlightedVDisk === void 0 ? void 0 : setHighlightedVDisk(undefined), [setHighlightedVDisk]);
|
|
31
|
+
if (!vDisk.PDisk) {
|
|
32
|
+
// Preserve disk indices for focus tracking while virtualization is disabled.
|
|
33
|
+
return _jsx("div", { "data-disk-id": vDiskId, hidden: true });
|
|
34
|
+
}
|
|
35
|
+
return (_jsx("div", { className: b('pdisk-item', { ['with-dc-margin']: withDCMargin }), "data-disk-id": vDiskId, style: { width: (_a = getDisplayState === null || getDisplayState === void 0 ? void 0 : getDisplayState(vDisk.PDisk).width) !== null && _a !== void 0 ? _a : EXPERT_MODE_PDISK_WIDTH }, tabIndex: -1, ...(renderContent || highlighted ? undefined : placeholderProps), children: (renderContent || highlighted) && (_jsx(PDisk, { progressBarClassName: b('pdisk-progress-bar'), data: vDisk.PDisk, inactive: !isPdiskActive(vDisk.PDisk, viewContext), showPopup: highlighted, delayOpen: DISKS_POPUP_DEBOUNCE_TIMEOUT, delayClose: DISKS_POPUP_DEBOUNCE_TIMEOUT, onShowPopup: onShowPopup, onHidePopup: onHidePopup, withIcon: withIcon, highlighted: highlighted, getDisplayState: getDisplayState })) }));
|
|
36
|
+
});
|
|
37
|
+
export const Disks = React.memo(function Disks({ vDisks = [], viewContext, erasure, withIcon, isAllVDisksLayout, }) {
|
|
16
38
|
const vDisksWithDCMargins = useVDisksWithDCMargins(vDisks, erasure);
|
|
17
39
|
const getVDiskDisplayState = useStorageVDiskDisplayStateGetter();
|
|
18
40
|
const getPDiskDisplayState = useStoragePDiskDisplayStateGetter();
|
|
19
41
|
const [highlightedVDisk, setHighlightedVDisk] = React.useState();
|
|
42
|
+
const vDiskList = useVirtualizedDiskList(vDisks, vDisks.every((disk) => Boolean(disk.StringifiedId)));
|
|
43
|
+
// Missing disk identities produce non-focusable placeholders; keep all links reachable.
|
|
44
|
+
const pDiskList = useVirtualizedDiskList(vDisks, vDisks.every(({ PDisk: pDisk }) => !isNil(pDisk === null || pDisk === void 0 ? void 0 : pDisk.NodeId) && !isNil(pDisk === null || pDisk === void 0 ? void 0 : pDisk.PDiskId)));
|
|
45
|
+
React.useEffect(() => {
|
|
46
|
+
setHighlightedVDisk((id) => vDisks.some((disk) => disk.StringifiedId === id) ? id : undefined);
|
|
47
|
+
}, [vDisks]);
|
|
20
48
|
const { theme: { spaceBaseSize }, } = useLayoutContext();
|
|
21
49
|
const compactVDiskWidths = React.useMemo(() => calculateCompactVDiskWidths(vDisks, spaceBaseSize), [spaceBaseSize, vDisks]);
|
|
22
50
|
if (!vDisks.length) {
|
|
@@ -25,25 +53,6 @@ export function Disks({ vDisks = [], viewContext, erasure, withIcon, isAllVDisks
|
|
|
25
53
|
const vDisksContainerWidth = isAllVDisksLayout
|
|
26
54
|
? getAllVDisksContainerWidth()
|
|
27
55
|
: VDISKS_CONTAINER_WIDTH;
|
|
28
|
-
return (_jsxs("div", { className: b(null), children: [_jsx(Flex, { direction: "row", gap: 1, grow: true, style: { width: vDisksContainerWidth },
|
|
29
|
-
|
|
30
|
-
return (_jsx(PDiskItem, { vDisk: vDisk, viewContext: viewContext, highlightedVDisk: highlightedVDisk, setHighlightedVDisk: setHighlightedVDisk, withDCMargin: vDisksWithDCMargins.includes(index), withIcon: withIcon, getDisplayState: getPDiskDisplayState }, ((_a = vDisk === null || vDisk === void 0 ? void 0 : vDisk.PDisk) === null || _a === void 0 ? void 0 : _a.StringifiedId) || index));
|
|
31
|
-
}) })] }));
|
|
32
|
-
}
|
|
33
|
-
function VDiskItem({ vDisk, highlightedVDisk, inactive, setHighlightedVDisk, compactVDiskWidth, withIcon, getDisplayState, isAllVDisksLayout, }) {
|
|
34
|
-
// Do not show PDisk popup for VDisk
|
|
35
|
-
const vDiskToShow = { ...vDisk, PDisk: undefined };
|
|
36
|
-
const style = isAllVDisksLayout
|
|
37
|
-
? { width: ALL_VDISK_WIDTH, flexBasis: ALL_VDISK_WIDTH }
|
|
38
|
-
: { width: compactVDiskWidth, flexBasis: compactVDiskWidth };
|
|
39
|
-
return (_jsxs("div", { style: style, className: b('vdisk-item', { all: isAllVDisksLayout }), children: [isAllVDisksLayout ? (_jsx("div", { "aria-hidden": true, className: b('vdisk-size-indicator'), style: { width: compactVDiskWidth } })) : null, _jsx(VDiskWithDonorsStack, { data: vDiskToShow, compact: !isAllVDisksLayout, withIcon: withIcon, inactive: inactive, delayOpen: DISKS_POPUP_DEBOUNCE_TIMEOUT, delayClose: DISKS_POPUP_DEBOUNCE_TIMEOUT, highlightedVDisk: highlightedVDisk, setHighlightedVDisk: setHighlightedVDisk, progressBarClassName: b('vdisk-progress-bar'), getDisplayState: getDisplayState })] }));
|
|
40
|
-
}
|
|
41
|
-
function PDiskItem({ vDisk, viewContext, highlightedVDisk, setHighlightedVDisk, withDCMargin, withIcon, getDisplayState, }) {
|
|
42
|
-
const vDiskId = vDisk.StringifiedId;
|
|
43
|
-
const isHighlighted = highlightedVDisk === vDiskId;
|
|
44
|
-
if (!vDisk.PDisk) {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
return (_jsx(PDisk, { className: b('pdisk-item', { ['with-dc-margin']: withDCMargin }), progressBarClassName: b('pdisk-progress-bar'), data: vDisk.PDisk, inactive: !isPdiskActive(vDisk.PDisk, viewContext), showPopup: isHighlighted, delayOpen: DISKS_POPUP_DEBOUNCE_TIMEOUT, delayClose: DISKS_POPUP_DEBOUNCE_TIMEOUT, onShowPopup: () => setHighlightedVDisk === null || setHighlightedVDisk === void 0 ? void 0 : setHighlightedVDisk(vDiskId), onHidePopup: () => setHighlightedVDisk === null || setHighlightedVDisk === void 0 ? void 0 : setHighlightedVDisk(undefined), withIcon: withIcon, highlighted: isHighlighted, getDisplayState: getDisplayState }));
|
|
48
|
-
}
|
|
56
|
+
return (_jsxs("div", { className: b(null), children: [_jsx(Flex, { direction: "row", gap: 1, grow: true, style: { width: vDisksContainerWidth }, ref: vDiskList.containerRef, children: vDisks.map((vDisk, index) => (_jsx(VDiskItem, { vDisk: vDisk, inactive: !isVdiskActive(vDisk, viewContext), highlighted: highlightedVDisk === vDisk.StringifiedId, setHighlightedVDisk: setHighlightedVDisk, compactVDiskWidth: compactVDiskWidths[index], withIcon: withIcon, getDisplayState: getVDiskDisplayState, isAllVDisksLayout: isAllVDisksLayout, renderContent: vDiskList.shouldRenderDisk(index), placeholderProps: vDiskList.getPlaceholderProps(index) }, vDisk.StringifiedId || index))) }), _jsx("div", { className: b('pdisks-wrapper'), ref: pDiskList.containerRef, children: vDisks.map((vDisk, index) => (_jsx(PDiskItem, { vDisk: vDisk, viewContext: viewContext, highlighted: highlightedVDisk === vDisk.StringifiedId, setHighlightedVDisk: setHighlightedVDisk, withDCMargin: vDisksWithDCMargins.includes(index), withIcon: withIcon, getDisplayState: getPDiskDisplayState, renderContent: pDiskList.shouldRenderDisk(index), placeholderProps: pDiskList.getPlaceholderProps(index) }, vDisk.StringifiedId || index))) })] }));
|
|
57
|
+
});
|
|
49
58
|
//# sourceMappingURL=Disks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Disks.js","sourceRoot":"","sources":["../../../../src/containers/Storage/Disks/Disks.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Disks.js","sourceRoot":"","sources":["../../../../src/containers/Storage/Disks/Disks.tsx"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
flex-shrink: 0;
|
|
20
20
|
|
|
21
21
|
min-width: 24px;
|
|
22
|
+
min-height: 20px;
|
|
22
23
|
|
|
23
24
|
&_all {
|
|
24
25
|
position: relative;
|
|
@@ -30,6 +31,7 @@
|
|
|
30
31
|
|
|
31
32
|
width: 65px;
|
|
32
33
|
min-width: 65px;
|
|
34
|
+
min-height: 24px;
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
&__vdisk-size-indicator {
|
|
@@ -48,7 +50,10 @@
|
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
&__pdisk-item {
|
|
53
|
+
flex-shrink: 0;
|
|
54
|
+
|
|
51
55
|
min-width: 55px;
|
|
56
|
+
min-height: 20px;
|
|
52
57
|
margin-right: var(--g-spacing-1);
|
|
53
58
|
|
|
54
59
|
&_with-dc-margin {
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import type { PDiskDisplayStateGetter } from '../../../utils/disks/displayState';
|
|
2
|
-
import type { PreparedPDisk
|
|
3
|
-
import type { StorageViewContext } from '../types';
|
|
3
|
+
import type { PreparedPDisk } from '../../../utils/disks/types';
|
|
4
4
|
import './PDisk.scss';
|
|
5
|
-
interface PDiskProps {
|
|
5
|
+
export interface PDiskProps {
|
|
6
6
|
data?: PreparedPDisk;
|
|
7
|
-
vDisks?: PreparedVDisk[];
|
|
8
7
|
showPopup?: boolean;
|
|
9
8
|
onShowPopup?: VoidFunction;
|
|
10
9
|
onHidePopup?: VoidFunction;
|
|
11
10
|
className?: string;
|
|
12
11
|
progressBarClassName?: string;
|
|
13
|
-
viewContext?: StorageViewContext;
|
|
14
12
|
width?: number;
|
|
15
13
|
delayOpen?: number;
|
|
16
14
|
delayClose?: number;
|
|
17
15
|
withIcon?: boolean;
|
|
16
|
+
showTypeLabel?: boolean;
|
|
18
17
|
inactive?: boolean;
|
|
19
18
|
highlighted?: boolean;
|
|
20
|
-
highlightedDisk?: string;
|
|
21
|
-
setHighlightedDisk?: (id?: string) => void;
|
|
22
19
|
getDisplayState?: PDiskDisplayStateGetter;
|
|
20
|
+
topContent?: React.ReactNode;
|
|
23
21
|
}
|
|
24
|
-
export declare const PDisk: ({ data,
|
|
25
|
-
export {};
|
|
22
|
+
export declare const PDisk: ({ data, showPopup, onShowPopup, onHidePopup, className, progressBarClassName, width, delayOpen, delayClose, withIcon, showTypeLabel, inactive, highlighted, getDisplayState, topContent, }: PDiskProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -9,21 +9,30 @@ import { HoverPopup } from '../../../components/HoverPopup/HoverPopup';
|
|
|
9
9
|
import { InternalLink } from '../../../components/InternalLink';
|
|
10
10
|
import { PDiskPopup } from '../../../components/PDiskPopup/PDiskPopup';
|
|
11
11
|
import { getPDiskPagePath } from '../../../routes';
|
|
12
|
+
import { isCapacityAlert } from '../../../types/api/enums';
|
|
12
13
|
import { cn } from '../../../utils/cn';
|
|
14
|
+
import { EMPTY_DATA_PLACEHOLDER } from '../../../utils/constants';
|
|
13
15
|
import { getDefaultPDiskDisplayState } from '../../../utils/disks/displayState';
|
|
14
16
|
import { getDiskBarTone } from '../../../utils/disks/getDiskBarTone';
|
|
17
|
+
import { formatPDiskType } from '../../../utils/disks/getPDiskType';
|
|
15
18
|
import { getPDiskId, getVDiskStatusIcon } from '../../../utils/disks/helpers';
|
|
16
19
|
import { isNumeric } from '../../../utils/utils';
|
|
17
20
|
import { DISKS_POPUP_DEBOUNCE_TIMEOUT } from '../shared';
|
|
18
|
-
import { PDiskVDisks } from './PDiskVDisks';
|
|
19
21
|
import { i18n } from './i18n';
|
|
20
22
|
import './PDisk.scss';
|
|
21
23
|
const b = cn('pdisk-storage');
|
|
22
24
|
const EMPTY_ALL_MODE_INDICATORS = {};
|
|
23
|
-
function
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
function PDiskNodeBarContent({ left, center, type }) {
|
|
26
|
+
return (_jsxs("div", { className: b('node-bar-content'), children: [_jsx("div", { className: b('node-bar-left'), children: left }), _jsx("div", { className: b('node-bar-center'), children: center }), _jsx("div", { className: b('node-bar-type'), children: type })] }));
|
|
27
|
+
}
|
|
28
|
+
function getPDiskContent({ barContent, data, hasIndicators, showAllocatedPercentLabel, showTypeLabel, isNoData, }) {
|
|
29
|
+
if (!showTypeLabel) {
|
|
30
|
+
return barContent;
|
|
26
31
|
}
|
|
32
|
+
const showNoDataLabel = isNoData && !showAllocatedPercentLabel;
|
|
33
|
+
return (_jsx(PDiskNodeBarContent, { left: hasIndicators || showAllocatedPercentLabel || showNoDataLabel ? null : barContent, center: showAllocatedPercentLabel ? barContent : null, type: _jsxs(React.Fragment, { children: [showNoDataLabel ? barContent : null, _jsx(DiskBarLabel, { children: formatPDiskType(data.Type) || EMPTY_DATA_PLACEHOLDER })] }) }));
|
|
34
|
+
}
|
|
35
|
+
function getPDiskBarContent({ allocatedPercent, isAllMode, noDataPlaceholder, showAllocatedPercentLabel, showNoDataPlaceholder, }) {
|
|
27
36
|
const hasAllocatedPercent = isNumeric(allocatedPercent) && allocatedPercent >= 0;
|
|
28
37
|
if (hasAllocatedPercent && showAllocatedPercentLabel !== false) {
|
|
29
38
|
return _jsx(DiskBarLabel, { children: `${Math.floor(allocatedPercent)}%` });
|
|
@@ -49,36 +58,24 @@ function getPDiskBarIndicator({ hidden, icon, placement, severity, withIcon, })
|
|
|
49
58
|
showIndicator: true,
|
|
50
59
|
};
|
|
51
60
|
}
|
|
52
|
-
function
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return _jsx(PDiskAllModeIndicators, { indicators: indicators !== null && indicators !== void 0 ? indicators : EMPTY_ALL_MODE_INDICATORS });
|
|
61
|
+
function getAccessiblePDiskId(data) {
|
|
62
|
+
return (data.StringifiedId ||
|
|
63
|
+
getPDiskId({ nodeId: data.NodeId, pDiskId: data.PDiskId }) ||
|
|
64
|
+
i18n('context_no-data'));
|
|
57
65
|
}
|
|
58
|
-
function
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
66
|
+
function getAllocatedPercentAccessibleName(allocatedPercent) {
|
|
67
|
+
const hasAllocatedPercent = typeof allocatedPercent === 'number' &&
|
|
68
|
+
Number.isFinite(allocatedPercent) &&
|
|
69
|
+
allocatedPercent >= 0;
|
|
70
|
+
return hasAllocatedPercent ? `${Math.floor(allocatedPercent)}%` : i18n('context_no-data');
|
|
71
|
+
}
|
|
72
|
+
function getAllModeAccessibleName(data, allocatedPercent, hasIssues) {
|
|
63
73
|
const noData = i18n('context_no-data');
|
|
64
|
-
let allocated = noData;
|
|
65
|
-
if (showNoDataPlaceholder !== true) {
|
|
66
|
-
const hasAllocatedPercent = typeof allocatedPercent === 'number' &&
|
|
67
|
-
Number.isFinite(allocatedPercent) &&
|
|
68
|
-
allocatedPercent >= 0;
|
|
69
|
-
if (hasAllocatedPercent) {
|
|
70
|
-
allocated = `${Math.floor(allocatedPercent)}%`;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
74
|
const health = hasIssues === undefined
|
|
74
75
|
? noData
|
|
75
76
|
: i18n(hasIssues ? 'context_all-mode-health-issues' : 'context_all-mode-health-healthy');
|
|
76
|
-
const pDiskId = (_b = (_a = data.StringifiedId) !== null && _a !== void 0 ? _a : getPDiskId({
|
|
77
|
-
nodeId: data.NodeId,
|
|
78
|
-
pDiskId: data.PDiskId,
|
|
79
|
-
})) !== null && _b !== void 0 ? _b : noData;
|
|
80
77
|
return i18n('context_all-mode-accessible-name', {
|
|
81
|
-
pdiskId:
|
|
78
|
+
pdiskId: getAccessiblePDiskId(data),
|
|
82
79
|
health,
|
|
83
80
|
state: data.State || noData,
|
|
84
81
|
capacityAlert: data.PDiskCapacityAlert || noData,
|
|
@@ -87,24 +84,77 @@ function getAccessibleName(data, allocatedPercent, hasIssues, isAllMode, showNoD
|
|
|
87
84
|
maintenance: data.MaintenanceStatus || noData,
|
|
88
85
|
device: data.Device || noData,
|
|
89
86
|
realtime: data.Realtime || noData,
|
|
90
|
-
allocatedPercent:
|
|
87
|
+
allocatedPercent: getAllocatedPercentAccessibleName(allocatedPercent),
|
|
91
88
|
});
|
|
92
89
|
}
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
function getAccessibleName(data, { mode, allMode, isNoData, allocatedPercent, driveType }) {
|
|
91
|
+
if (!mode) {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
if (mode === 'all') {
|
|
95
|
+
return getAllModeAccessibleName(data, allocatedPercent, allMode === null || allMode === void 0 ? void 0 : allMode.hasIssues);
|
|
96
|
+
}
|
|
97
|
+
const noData = i18n('context_no-data');
|
|
98
|
+
let diskName = i18n('context_pdisk', { pdiskId: getAccessiblePDiskId(data) });
|
|
99
|
+
if (isNoData) {
|
|
100
|
+
diskName = i18n('context_pdisk-no-whiteboard', { disk: diskName, noData });
|
|
101
|
+
}
|
|
102
|
+
const { State, Device, Realtime } = isNoData ? {} : data;
|
|
103
|
+
switch (mode) {
|
|
104
|
+
case 'driveType':
|
|
105
|
+
return i18n('context_drive-type-accessible-name', {
|
|
106
|
+
disk: diskName,
|
|
107
|
+
driveType: formatPDiskType(driveType) || noData,
|
|
108
|
+
});
|
|
109
|
+
case 'state':
|
|
110
|
+
return i18n('context_state-accessible-name', { disk: diskName, state: State || noData });
|
|
111
|
+
case 'space':
|
|
112
|
+
return i18n('context_space-accessible-name', {
|
|
113
|
+
disk: diskName,
|
|
114
|
+
capacityAlert: isCapacityAlert(data.PDiskCapacityAlert)
|
|
115
|
+
? data.PDiskCapacityAlert
|
|
116
|
+
: noData,
|
|
117
|
+
allocatedPercent: getAllocatedPercentAccessibleName(allocatedPercent),
|
|
118
|
+
});
|
|
119
|
+
case 'drive':
|
|
120
|
+
return i18n('context_drive-accessible-name', {
|
|
121
|
+
disk: diskName,
|
|
122
|
+
drive: data.DriveStatus || noData,
|
|
123
|
+
});
|
|
124
|
+
case 'decommit':
|
|
125
|
+
return i18n('context_decommit-accessible-name', {
|
|
126
|
+
disk: diskName,
|
|
127
|
+
decommit: data.DecommitStatus || noData,
|
|
128
|
+
});
|
|
129
|
+
case 'maintenance':
|
|
130
|
+
return i18n('context_maintenance-accessible-name', {
|
|
131
|
+
disk: diskName,
|
|
132
|
+
maintenance: data.MaintenanceStatus || noData,
|
|
133
|
+
});
|
|
134
|
+
case 'device':
|
|
135
|
+
return i18n('context_device-accessible-name', {
|
|
136
|
+
disk: diskName,
|
|
137
|
+
device: Device || noData,
|
|
138
|
+
realtime: Realtime || noData,
|
|
139
|
+
});
|
|
140
|
+
default:
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export const PDisk = ({ data = {}, showPopup, onShowPopup, onHidePopup, className, progressBarClassName, width, delayOpen = DISKS_POPUP_DEBOUNCE_TIMEOUT, delayClose = DISKS_POPUP_DEBOUNCE_TIMEOUT, withIcon, showTypeLabel, inactive, highlighted, getDisplayState, topContent, }) => {
|
|
145
|
+
var _a, _b, _c, _d;
|
|
95
146
|
const { NodeId, PDiskId } = data;
|
|
96
147
|
const pDiskIdsDefined = !isNil(NodeId) && !isNil(PDiskId);
|
|
97
148
|
const anchorRef = React.useRef(null);
|
|
98
149
|
const displayState = React.useMemo(() => (getDisplayState !== null && getDisplayState !== void 0 ? getDisplayState : getDefaultPDiskDisplayState)(data), [data, getDisplayState]);
|
|
99
150
|
const isAllMode = displayState.mode === 'all';
|
|
100
151
|
const noDataPlaceholder = displayState.showNoDataPlaceholder === false ? undefined : i18n('context_no-data');
|
|
101
|
-
const hideBarContent = Boolean(displayState.isLegendInactive);
|
|
102
152
|
const allocatedPercent = displayState.allocatedPercent;
|
|
103
153
|
const hasAllocatedPercent = isNumeric(allocatedPercent) && allocatedPercent >= 0;
|
|
104
154
|
const iconPlacement = (_a = displayState.iconPlacement) !== null && _a !== void 0 ? _a : 'inline';
|
|
105
|
-
const accessibleName = getAccessibleName(data,
|
|
155
|
+
const accessibleName = getAccessibleName(data, displayState);
|
|
106
156
|
const { leading, overflowVisible, showIndicator } = getPDiskBarIndicator({
|
|
107
|
-
hidden:
|
|
157
|
+
hidden: Boolean(displayState.isLegendInactive),
|
|
108
158
|
icon: displayState.icon,
|
|
109
159
|
placement: iconPlacement,
|
|
110
160
|
severity: displayState.severity,
|
|
@@ -112,22 +162,34 @@ export const PDisk = ({ data = {}, vDisks, showPopup, onShowPopup, onHidePopup,
|
|
|
112
162
|
});
|
|
113
163
|
const barContent = getPDiskBarContent({
|
|
114
164
|
allocatedPercent,
|
|
115
|
-
hidden: hideBarContent,
|
|
116
165
|
isAllMode,
|
|
117
166
|
noDataPlaceholder,
|
|
118
167
|
showAllocatedPercentLabel: displayState.showAllocatedPercentLabel,
|
|
119
168
|
showNoDataPlaceholder: displayState.showNoDataPlaceholder,
|
|
120
169
|
});
|
|
121
|
-
const
|
|
170
|
+
const showAllocatedPercentLabel = hasAllocatedPercent && displayState.showAllocatedPercentLabel !== false;
|
|
171
|
+
const allModeIndicators = (_c = (_b = displayState.allMode) === null || _b === void 0 ? void 0 : _b.indicators) !== null && _c !== void 0 ? _c : EMPTY_ALL_MODE_INDICATORS;
|
|
172
|
+
const hasAllModeIndicators = isAllMode && Object.values(allModeIndicators).some(Boolean);
|
|
173
|
+
const overlay = hasAllModeIndicators ? (_jsx(PDiskAllModeIndicators, { indicators: allModeIndicators })) : null;
|
|
174
|
+
const content = getPDiskContent({
|
|
175
|
+
barContent,
|
|
176
|
+
data,
|
|
177
|
+
hasIndicators: showIndicator || hasAllModeIndicators,
|
|
178
|
+
showAllocatedPercentLabel,
|
|
179
|
+
showTypeLabel,
|
|
180
|
+
isNoData: displayState.isNoData,
|
|
181
|
+
});
|
|
122
182
|
const tone = getDiskBarTone({
|
|
183
|
+
driveType: displayState.driveType,
|
|
123
184
|
severity: displayState.severity,
|
|
124
185
|
showIndicator,
|
|
125
186
|
indicator: displayState.icon,
|
|
187
|
+
isNoData: displayState.isNoData,
|
|
126
188
|
});
|
|
127
189
|
let pDiskPath;
|
|
128
190
|
if (pDiskIdsDefined) {
|
|
129
191
|
pDiskPath = getPDiskPagePath(PDiskId, NodeId);
|
|
130
192
|
}
|
|
131
|
-
return (_jsxs("div", { className: b(null, className), ref: anchorRef, style: { width:
|
|
193
|
+
return (_jsxs("div", { className: b(null, className), ref: anchorRef, style: { width: width !== null && width !== void 0 ? width : displayState.width }, children: [topContent, _jsx(HoverPopup, { showPopup: showPopup, offset: { mainAxis: 2, crossAxis: 0 }, anchorRef: anchorRef, onShowPopup: onShowPopup, onHidePopup: onHidePopup, renderPopupContent: () => _jsx(PDiskPopup, { data: data }), delayOpen: delayOpen, delayClose: delayClose, children: _jsx(InternalLink, { to: pDiskPath, "aria-label": accessibleName, className: b('content'), children: _jsx(DiskStateProgressBar, { allocation: allocatedPercent, tone: tone, mode: displayState.mode, leading: leading, content: content, overlay: overlay, className: progressBarClassName, inactive: inactive, highlighted: highlighted, filled: hasAllocatedPercent && Number(allocatedPercent) > 0, strongFill: (_d = displayState.allMode) === null || _d === void 0 ? void 0 : _d.hasIssues, borderless: displayState.borderless, overflowVisible: overflowVisible }) }) })] }));
|
|
132
194
|
};
|
|
133
195
|
//# sourceMappingURL=PDisk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PDisk.js","sourceRoot":"","sources":["../../../../src/containers/Storage/PDisk/PDisk.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,KAAK,EAAC,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAC,YAAY,EAAC,MAAM,uDAAuD,CAAC;AACnF,OAAO,EAAC,aAAa,EAAC,MAAM,wDAAwD,CAAC;AACrF,OAAO,EAAC,oBAAoB,EAAC,MAAM,+DAA+D,CAAC;AACnG,OAAO,EAAC,sBAAsB,EAAC,MAAM,iEAAiE,CAAC;AACvG,OAAO,EAAC,UAAU,EAAC,MAAM,2CAA2C,CAAC;AACrE,OAAO,EAAC,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,2CAA2C,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,EAAE,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"PDisk.js","sourceRoot":"","sources":["../../../../src/containers/Storage/PDisk/PDisk.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,11 +24,22 @@
|
|
|
24
24
|
&__vdisks {
|
|
25
25
|
display: flex;
|
|
26
26
|
flex: 0 0 auto;
|
|
27
|
-
|
|
27
|
+
flex-direction: column;
|
|
28
28
|
|
|
29
29
|
margin-bottom: 4px;
|
|
30
30
|
|
|
31
31
|
white-space: nowrap;
|
|
32
|
+
|
|
33
|
+
&_expert {
|
|
34
|
+
gap: var(--g-spacing-half);
|
|
35
|
+
|
|
36
|
+
margin-bottom: 6px;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&__vdisks-row {
|
|
41
|
+
display: flex;
|
|
42
|
+
gap: var(--pdisk-gap-width);
|
|
32
43
|
}
|
|
33
44
|
|
|
34
45
|
&__vdisks-item {
|
|
@@ -36,10 +47,77 @@
|
|
|
36
47
|
|
|
37
48
|
min-width: var(--pdisk-vdisk-width);
|
|
38
49
|
|
|
50
|
+
&_all {
|
|
51
|
+
display: flex;
|
|
52
|
+
flex-direction: column;
|
|
53
|
+
gap: 2px;
|
|
54
|
+
}
|
|
55
|
+
|
|
39
56
|
.ydb-stack__item {
|
|
40
57
|
.data-table__row:hover & {
|
|
41
58
|
background: var(--ydb-data-table-color-hover);
|
|
42
59
|
}
|
|
43
60
|
}
|
|
44
61
|
}
|
|
62
|
+
|
|
63
|
+
&__vdisk-size-indicator {
|
|
64
|
+
flex: none;
|
|
65
|
+
align-self: center;
|
|
66
|
+
|
|
67
|
+
max-width: 100%;
|
|
68
|
+
height: 2px;
|
|
69
|
+
|
|
70
|
+
border-radius: var(--g-border-radius-xs);
|
|
71
|
+
background: var(--g-color-base-generic-medium);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&__vdisk-progress-bar_expert {
|
|
75
|
+
--progress-bar-full-height: 14px;
|
|
76
|
+
--progress-bar-compact-height: 14px;
|
|
77
|
+
--progress-bar-compact-placeholder-margin-left: var(--g-spacing-half);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&__vdisk-progress-bar_all {
|
|
81
|
+
--disk-border-radius: 3px;
|
|
82
|
+
|
|
83
|
+
min-width: 0;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&__vdisk-indicator {
|
|
87
|
+
flex-shrink: 0;
|
|
88
|
+
|
|
89
|
+
margin: var(--g-spacing-half);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&__node-bar-content {
|
|
93
|
+
position: absolute;
|
|
94
|
+
z-index: 2;
|
|
95
|
+
inset: 0;
|
|
96
|
+
|
|
97
|
+
display: grid;
|
|
98
|
+
align-items: center;
|
|
99
|
+
grid-template-columns: 1fr auto 1fr;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&__node-bar-left {
|
|
103
|
+
justify-self: start;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
&__node-bar-center {
|
|
107
|
+
justify-self: center;
|
|
108
|
+
|
|
109
|
+
.storage-disk-progress-bar__title {
|
|
110
|
+
margin-right: 0;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&__node-bar-type {
|
|
115
|
+
--ydb-progress-bar-font-color: var(--entity-state-font-color);
|
|
116
|
+
|
|
117
|
+
display: flex;
|
|
118
|
+
align-items: center;
|
|
119
|
+
justify-self: end;
|
|
120
|
+
|
|
121
|
+
gap: var(--g-spacing-1);
|
|
122
|
+
}
|
|
45
123
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { VDiskDisplayStateGetter } from '../../../utils/disks/displayState';
|
|
3
|
+
import type { PreparedVDisk } from '../../../utils/disks/types';
|
|
4
|
+
import type { StorageViewContext } from '../types';
|
|
5
|
+
import type { PDiskProps } from './PDisk';
|
|
6
|
+
interface PDiskWithVDisksProps extends Omit<PDiskProps, 'topContent'> {
|
|
7
|
+
vDisks?: PreparedVDisk[];
|
|
8
|
+
viewContext?: StorageViewContext;
|
|
9
|
+
withVDiskIcons?: boolean;
|
|
10
|
+
getVDiskDisplayState?: VDiskDisplayStateGetter;
|
|
11
|
+
expertMode?: boolean;
|
|
12
|
+
isAllVDisksLayout?: boolean;
|
|
13
|
+
highlightedDisk?: string;
|
|
14
|
+
setHighlightedDisk?: (id?: string) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const PDiskWithVDisks: React.NamedExoticComponent<PDiskWithVDisksProps>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { chunk } from 'lodash';
|
|
4
|
+
import { VDisk } from '../../../components/VDisk/VDisk';
|
|
5
|
+
import { cn } from '../../../utils/cn';
|
|
6
|
+
import { NODE_EXPERT_ALL_VDISKS_PER_ROW, NODE_EXPERT_ALL_VDISK_WIDTH, calculateNodeExpertVDiskRows, } from '../PaginatedStorageNodes/nodeExpertModeLayout';
|
|
7
|
+
import { DISKS_POPUP_DEBOUNCE_TIMEOUT } from '../shared';
|
|
8
|
+
import { isVdiskActive } from '../utils';
|
|
9
|
+
import { PDisk } from './PDisk';
|
|
10
|
+
const b = cn('pdisk-storage');
|
|
11
|
+
const NODE_EXPERT_VDISK_ICON_SIZE = 10;
|
|
12
|
+
const NODE_EXPERT_VDISK_ICON_GROUP_SIZE = 8;
|
|
13
|
+
const VDiskItem = React.memo(function VDiskItem({ vDisk, vDiskWidth, viewContext, withIcon, getVDiskDisplayState, expertMode, isAllVDisksLayout, delayOpen, delayClose, highlighted, setHighlightedDisk, }) {
|
|
14
|
+
const id = vDisk.StringifiedId;
|
|
15
|
+
const onShowPopup = React.useCallback(() => setHighlightedDisk === null || setHighlightedDisk === void 0 ? void 0 : setHighlightedDisk(id), [id, setHighlightedDisk]);
|
|
16
|
+
const onHidePopup = React.useCallback(() => setHighlightedDisk === null || setHighlightedDisk === void 0 ? void 0 : setHighlightedDisk(undefined), [setHighlightedDisk]);
|
|
17
|
+
const diskWidth = isAllVDisksLayout ? NODE_EXPERT_ALL_VDISK_WIDTH : vDiskWidth;
|
|
18
|
+
return (_jsxs("div", { className: b('vdisks-item', { all: isAllVDisksLayout }), style: expertMode
|
|
19
|
+
? { width: diskWidth, flexBasis: diskWidth }
|
|
20
|
+
: {
|
|
21
|
+
// 1 is small enough for empty disks to be of the minimum width
|
|
22
|
+
// but if all of them are empty, `flex-grow: 1` would size them evenly
|
|
23
|
+
flexGrow: Number(vDisk.AllocatedSize) || 1,
|
|
24
|
+
}, children: [isAllVDisksLayout ? (_jsx("div", { "aria-hidden": true, className: b('vdisk-size-indicator'), style: { width: vDiskWidth } })) : null, _jsx(VDisk, { withIcon: withIcon, data: vDisk, inactive: !isVdiskActive(vDisk, viewContext), compact: !isAllVDisksLayout, allModeSize: isAllVDisksLayout ? 's' : undefined, delayOpen: delayOpen, delayClose: delayClose, showPopup: highlighted, onShowPopup: onShowPopup, onHidePopup: onHidePopup, highlighted: highlighted, getDisplayState: getVDiskDisplayState, iconSize: expertMode ? NODE_EXPERT_VDISK_ICON_SIZE : undefined, iconGroupSize: expertMode ? NODE_EXPERT_VDISK_ICON_GROUP_SIZE : undefined, indicatorClassName: expertMode ? b('vdisk-indicator') : undefined, progressBarClassName: expertMode
|
|
25
|
+
? b('vdisk-progress-bar', {
|
|
26
|
+
expert: true,
|
|
27
|
+
all: isAllVDisksLayout,
|
|
28
|
+
})
|
|
29
|
+
: undefined })] }));
|
|
30
|
+
});
|
|
31
|
+
export const PDiskWithVDisks = React.memo(function PDiskWithVDisks({ vDisks, viewContext, withIcon, withVDiskIcons, getVDiskDisplayState, expertMode, isAllVDisksLayout, width, delayOpen = DISKS_POPUP_DEBOUNCE_TIMEOUT, delayClose = DISKS_POPUP_DEBOUNCE_TIMEOUT, highlightedDisk, setHighlightedDisk, ...pDiskProps }) {
|
|
32
|
+
const vDiskRows = React.useMemo(() => {
|
|
33
|
+
const compactVDiskRows = expertMode
|
|
34
|
+
? calculateNodeExpertVDiskRows(vDisks !== null && vDisks !== void 0 ? vDisks : [], width)
|
|
35
|
+
: [(vDisks !== null && vDisks !== void 0 ? vDisks : []).map((vDisk) => ({ vDisk, width: undefined }))];
|
|
36
|
+
// All-mode size markers use the compact allocation scale; only the fixed-width cards
|
|
37
|
+
// are regrouped into rows of four.
|
|
38
|
+
return isAllVDisksLayout
|
|
39
|
+
? chunk(compactVDiskRows.flat(), NODE_EXPERT_ALL_VDISKS_PER_ROW)
|
|
40
|
+
: compactVDiskRows;
|
|
41
|
+
}, [expertMode, isAllVDisksLayout, vDisks, width]);
|
|
42
|
+
const vDisksContent = (vDisks === null || vDisks === void 0 ? void 0 : vDisks.length) ? (_jsx("div", { className: b('vdisks', { expert: expertMode }), children: vDiskRows.map((row, rowIndex) => {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
return (_jsx("div", { className: b('vdisks-row'), children: row.map(({ vDisk, width: vDiskWidth }) => (_jsx(VDiskItem, { vDisk: vDisk, vDiskWidth: vDiskWidth, viewContext: viewContext, withIcon: withVDiskIcons !== null && withVDiskIcons !== void 0 ? withVDiskIcons : withIcon, getVDiskDisplayState: getVDiskDisplayState, expertMode: expertMode, isAllVDisksLayout: isAllVDisksLayout, delayOpen: delayOpen, delayClose: delayClose, highlighted: highlightedDisk === vDisk.StringifiedId, setHighlightedDisk: setHighlightedDisk }, vDisk.StringifiedId))) }, (_b = (_a = row[0]) === null || _a === void 0 ? void 0 : _a.vDisk.StringifiedId) !== null && _b !== void 0 ? _b : rowIndex));
|
|
45
|
+
}) })) : null;
|
|
46
|
+
return (_jsx(PDisk, { ...pDiskProps, width: width, withIcon: withIcon, delayOpen: delayOpen, delayClose: delayClose, topContent: vDisksContent }));
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=PDiskWithVDisks.js.map
|