ydb-embedded-ui 8.11.1 → 8.13.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/DateRange/__test__/fromDateRangeValues.test.js +4 -4
- package/dist/components/DateRange/__test__/fromDateRangeValues.test.js.map +1 -1
- package/dist/components/DateRange/__test__/getdatePickerSize.test.js +4 -4
- package/dist/components/DateRange/__test__/getdatePickerSize.test.js.map +1 -1
- package/dist/components/DateRange/__test__/toDateRangeValues.test.js +4 -4
- package/dist/components/DateRange/__test__/toDateRangeValues.test.js.map +1 -1
- package/dist/components/ErrorBoundary/ErrorBoundary.d.ts +3 -7
- package/dist/components/ErrorBoundary/ErrorBoundary.js +44 -7
- package/dist/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/dist/components/ErrorBoundary/ErrorBoundary.scss +26 -30
- package/dist/components/ErrorBoundary/i18n/en.json +7 -5
- package/dist/components/ErrorBoundary/i18n/index.d.ts +1 -1
- package/dist/components/ErrorBoundary/i18n/index.js +1 -2
- package/dist/components/ErrorBoundary/i18n/index.js.map +1 -1
- package/dist/components/ErrorBoundary/utils.d.ts +17 -0
- package/dist/components/ErrorBoundary/utils.js +43 -0
- package/dist/components/ErrorBoundary/utils.js.map +1 -0
- package/dist/components/Errors/ResponseError/ResponseError.js +3 -16
- package/dist/components/Errors/ResponseError/ResponseError.js.map +1 -1
- package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
- package/dist/components/NodeHostWrapper/NodeHostWrapper.d.ts +2 -2
- package/dist/components/PDiskInfo/PDiskInfo.d.ts +0 -1
- package/dist/components/PDiskInfo/PDiskInfo.js +3 -7
- 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 +8 -4
- package/dist/components/PDiskPopup/PDiskPopup.js.map +1 -1
- package/dist/components/QueryExecutionStatus/QueryExecutionStatus.js +49 -17
- package/dist/components/QueryExecutionStatus/QueryExecutionStatus.js.map +1 -1
- package/dist/components/QueryExecutionStatus/QueryExecutionStatus.scss +0 -12
- package/dist/components/QueryResultTable/QueryResultTable.d.ts +2 -0
- package/dist/components/QueryResultTable/QueryResultTable.js +16 -11
- package/dist/components/QueryResultTable/QueryResultTable.js.map +1 -1
- package/dist/components/QueryResultTable/QueryResultTable.scss +6 -0
- package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
- package/dist/components/TabletNameWrapper/TabletNameWrapper.js +2 -3
- package/dist/components/TabletNameWrapper/TabletNameWrapper.js.map +1 -1
- package/dist/components/TenantNameWrapper/TenantNameWrapper.js +2 -3
- package/dist/components/TenantNameWrapper/TenantNameWrapper.js.map +1 -1
- package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js +2 -3
- package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js.map +1 -1
- package/dist/components/VDiskInfo/VDiskInfo.js +4 -4
- package/dist/components/VDiskInfo/VDiskInfo.js.map +1 -1
- package/dist/components/VDiskInfo/VDiskInfo.scss +0 -6
- package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/VDiskPopup/VDiskPopup.js +7 -4
- package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
- package/dist/components/nodesColumns/__test__/utils.test.js +4 -4
- package/dist/components/nodesColumns/__test__/utils.test.js.map +1 -1
- package/dist/components/nodesColumns/constants.d.ts +1 -0
- package/dist/components/nodesColumns/constants.js +5 -0
- package/dist/components/nodesColumns/constants.js.map +1 -1
- package/dist/containers/App/App.d.ts +1 -1
- package/dist/containers/App/App.scss +10 -0
- package/dist/containers/App/Content.js +13 -3
- package/dist/containers/App/Content.js.map +1 -1
- package/dist/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.js +7 -2
- package/dist/containers/AppWithClusters/ExtendedCluster/ExtendedCluster.js.map +1 -1
- package/dist/containers/AppWithClusters/ExtendedTenant/ExtendedTenant.js +3 -3
- package/dist/containers/AppWithClusters/ExtendedTenant/ExtendedTenant.js.map +1 -1
- package/dist/containers/AppWithClusters/useClusterData.d.ts +1 -13
- package/dist/containers/AppWithClusters/useClusterData.js +4 -18
- package/dist/containers/AppWithClusters/useClusterData.js.map +1 -1
- package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.js +15 -2
- package/dist/containers/AsideNavigation/YdbInternalUser/YdbInternalUser.js.map +1 -1
- package/dist/containers/Authentication/Authentication.js +16 -4
- package/dist/containers/Authentication/Authentication.js.map +1 -1
- package/dist/containers/Authentication/utils.d.ts +1 -0
- package/dist/containers/Authentication/utils.js +3 -0
- package/dist/containers/Authentication/utils.js.map +1 -1
- package/dist/containers/Cluster/Cluster.js +1 -1
- package/dist/containers/Cluster/Cluster.js.map +1 -1
- package/dist/containers/Cluster/Cluster.scss +0 -7
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.d.ts +0 -2
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
- package/dist/containers/Header/Header.js +2 -2
- package/dist/containers/Header/Header.js.map +1 -1
- package/dist/containers/Node/Node.js +1 -1
- package/dist/containers/Node/Node.js.map +1 -1
- package/dist/containers/Node/NodeStructure/Pdisk.js +2 -3
- package/dist/containers/Node/NodeStructure/Pdisk.js.map +1 -1
- package/dist/containers/Nodes/Nodes.js +11 -3
- package/dist/containers/Nodes/Nodes.js.map +1 -1
- package/dist/containers/PDiskPage/PDiskPage.js +3 -3
- package/dist/containers/PDiskPage/PDiskPage.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorage.js +4 -1
- package/dist/containers/Storage/PaginatedStorage.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageNodes.js +2 -4
- package/dist/containers/Storage/PaginatedStorageNodes.js.map +1 -1
- package/dist/containers/Storage/StorageControls/StorageControls.js +4 -1
- package/dist/containers/Storage/StorageControls/StorageControls.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/columns/constants.d.ts +1 -0
- package/dist/containers/Storage/StorageGroups/columns/constants.js +10 -0
- package/dist/containers/Storage/StorageGroups/columns/constants.js.map +1 -1
- package/dist/containers/Storage/StorageGroups/columns/hooks.js +9 -3
- package/dist/containers/Storage/StorageGroups/columns/hooks.js.map +1 -1
- package/dist/containers/Tablet/Tablet.js +3 -3
- package/dist/containers/Tablet/Tablet.js.map +1 -1
- package/dist/containers/Tablet/components/TabletControls/TabletControls.js +2 -3
- package/dist/containers/Tablet/components/TabletControls/TabletControls.js.map +1 -1
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js +2 -3
- package/dist/containers/Tablet/components/TabletInfo/TabletInfo.js.map +1 -1
- package/dist/containers/Tablets/Tablets.d.ts +1 -2
- package/dist/containers/Tablets/Tablets.js +7 -11
- package/dist/containers/Tablets/Tablets.js.map +1 -1
- package/dist/containers/Tablets/TabletsTable.d.ts +2 -1
- package/dist/containers/Tablets/TabletsTable.js +22 -9
- package/dist/containers/Tablets/TabletsTable.js.map +1 -1
- package/dist/containers/Tablets/i18n/en.json +3 -1
- package/dist/containers/Tablets/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js +1 -1
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +1 -0
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +1 -0
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/__test__/transformPath.test.js +6 -6
- package/dist/containers/Tenant/ObjectSummary/__test__/transformPath.test.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +43 -16
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/helpers.d.ts +10 -0
- package/dist/containers/Tenant/Query/QueryEditor/helpers.js +15 -0
- package/dist/containers/Tenant/Query/QueryEditor/helpers.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.d.ts +15 -0
- package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.js +26 -0
- package/dist/containers/Tenant/Query/QueryEditorControls/EditorButton.js.map +1 -0
- package/dist/containers/Tenant/Query/{CancelQueryButton/CancelQueryButton.scss → QueryEditorControls/EditorButton.scss} +7 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.d.ts +4 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js +77 -18
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/QueryEditorControls.scss +3 -4
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.test.js +3 -3
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettings.test.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.test.js +3 -3
- package/dist/containers/Tenant/Query/QueryEditorControls/utils/getChangedQueryExecutionSettingsDescription.test.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.d.ts +4 -2
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js +23 -14
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.scss +1 -1
- package/dist/containers/Tenant/Query/QueryResult/components/QueryInfoDropdown/useQueryInfoMenuItems.js +2 -7
- package/dist/containers/Tenant/Query/QueryResult/components/QueryInfoDropdown/useQueryInfoMenuItems.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js +7 -3
- package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/components/QueryResultError/QueryResultError.scss +2 -1
- package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.d.ts +4 -1
- package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js +28 -18
- package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/components/ResultSetsViewer/ResultSetsViewer.scss +7 -7
- package/dist/containers/Tenant/Query/QueryResult/i18n/en.json +7 -3
- package/dist/containers/Tenant/Query/QueryResult/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Query/QuerySettingsBanner/QuerySettingsBanner.js +1 -1
- package/dist/containers/Tenant/Query/QuerySettingsBanner/QuerySettingsBanner.js.map +1 -1
- package/dist/containers/Tenant/Query/QuerySettingsBanner/QuerySettingsBanner.scss +3 -1
- package/dist/containers/Tenant/Query/QueryStoppedBanner/QueryStoppedBanner.d.ts +2 -0
- package/dist/containers/Tenant/Query/QueryStoppedBanner/QueryStoppedBanner.js +17 -0
- package/dist/containers/Tenant/Query/QueryStoppedBanner/QueryStoppedBanner.js.map +1 -0
- package/dist/containers/Tenant/Query/QueryStoppedBanner/QueryStoppedBanner.scss +5 -0
- package/dist/containers/Tenant/Query/i18n/en.json +5 -1
- package/dist/containers/Tenant/Query/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Query/utils/isQueryCancelledError.js +17 -2
- package/dist/containers/Tenant/Query/utils/isQueryCancelledError.js.map +1 -1
- package/dist/containers/Tenant/utils/controls.js +1 -0
- package/dist/containers/Tenant/utils/controls.js.map +1 -1
- package/dist/containers/Tenant/utils/schema.js +7 -0
- package/dist/containers/Tenant/utils/schema.js.map +1 -1
- package/dist/containers/Tenant/utils/schemaActions.js +1 -0
- package/dist/containers/Tenant/utils/schemaActions.js.map +1 -1
- package/dist/containers/UserSettings/i18n/en.json +2 -0
- package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
- package/dist/containers/UserSettings/settings.d.ts +1 -0
- package/dist/containers/UserSettings/settings.js +8 -4
- package/dist/containers/UserSettings/settings.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.js +3 -3
- package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
- package/dist/containers/Versions/NodesTable/NodesTable.js +3 -5
- package/dist/containers/Versions/NodesTable/NodesTable.js.map +1 -1
- package/dist/services/api/auth.d.ts +1 -0
- package/dist/services/api/auth.js.map +1 -1
- package/dist/services/api/base.d.ts +1 -0
- package/dist/services/api/base.js.map +1 -1
- package/dist/services/api/index.d.ts +2 -0
- package/dist/services/api/index.js +2 -0
- package/dist/services/api/index.js.map +1 -1
- package/dist/services/api/streaming.d.ts +12 -0
- package/dist/services/api/streaming.js +65 -0
- package/dist/services/api/streaming.js.map +1 -0
- package/dist/services/api/viewer.d.ts +4 -15
- package/dist/services/api/viewer.js +3 -2
- package/dist/services/api/viewer.js.map +1 -1
- package/dist/services/settings.d.ts +2 -0
- package/dist/services/settings.js +3 -1
- package/dist/services/settings.js.map +1 -1
- package/dist/store/configureStore.js +11 -7
- package/dist/store/configureStore.js.map +1 -1
- package/dist/store/reducers/authentication/authentication.d.ts +1 -0
- package/dist/store/reducers/authentication/authentication.js.map +1 -1
- package/dist/store/reducers/capabilities/capabilities.d.ts +126 -1
- package/dist/store/reducers/capabilities/capabilities.js +6 -2
- package/dist/store/reducers/capabilities/capabilities.js.map +1 -1
- package/dist/store/reducers/capabilities/hooks.d.ts +3 -0
- package/dist/store/reducers/capabilities/hooks.js +14 -1
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/cluster/__test__/parseGroupsStatsQueryResponse.test.js +1 -1
- package/dist/store/reducers/cluster/__test__/parseGroupsStatsQueryResponse.test.js.map +1 -1
- package/dist/store/reducers/query/__test__/utils.test.js +4 -4
- package/dist/store/reducers/query/__test__/utils.test.js.map +1 -1
- package/dist/store/reducers/query/preparePlanData.d.ts +5 -0
- package/dist/store/reducers/query/preparePlanData.js +57 -0
- package/dist/store/reducers/query/preparePlanData.js.map +1 -0
- package/dist/store/reducers/query/prepareQueryData.js +8 -54
- package/dist/store/reducers/query/prepareQueryData.js.map +1 -1
- package/dist/store/reducers/query/query.d.ts +14 -1
- package/dist/store/reducers/query/query.js +109 -3
- package/dist/store/reducers/query/query.js.map +1 -1
- package/dist/store/reducers/query/streamingReducers.d.ts +6 -0
- package/dist/store/reducers/query/streamingReducers.js +97 -0
- package/dist/store/reducers/query/streamingReducers.js.map +1 -0
- package/dist/store/reducers/query/types.d.ts +2 -0
- package/dist/store/reducers/query/utils.d.ts +4 -0
- package/dist/store/reducers/query/utils.js +12 -0
- package/dist/store/reducers/query/utils.js.map +1 -1
- package/dist/styles/illustrations.scss +20 -0
- package/dist/styles/index.scss +1 -0
- package/dist/types/additionalProps.d.ts +1 -1
- package/dist/types/api/capabilities.d.ts +4 -0
- package/dist/types/api/query.d.ts +17 -1
- package/dist/types/api/schema/schema.d.ts +2 -1
- package/dist/types/api/schema/schema.js +1 -0
- package/dist/types/api/schema/schema.js.map +1 -1
- package/dist/types/store/streaming.d.ts +37 -0
- package/dist/types/store/streaming.js +2 -0
- package/dist/types/store/streaming.js.map +1 -0
- package/dist/utils/__test__/getColumnWidth.test.js +15 -15
- package/dist/utils/__test__/getColumnWidth.test.js.map +1 -1
- package/dist/utils/__test__/monitoring.test.js +4 -4
- package/dist/utils/__test__/monitoring.test.js.map +1 -1
- package/dist/utils/__test__/parseBalancer.test.js +9 -9
- package/dist/utils/__test__/parseBalancer.test.js.map +1 -1
- package/dist/utils/__test__/prepareBackend.test.js +3 -3
- package/dist/utils/__test__/prepareBackend.test.js.map +1 -1
- package/dist/utils/bytesParsers/__test__/formatBytes.test.js +6 -6
- package/dist/utils/bytesParsers/__test__/formatBytes.test.js.map +1 -1
- package/dist/utils/constants.d.ts +3 -1
- package/dist/utils/constants.js +2 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/createToast.d.ts +2 -1
- package/dist/utils/createToast.js +2 -2
- package/dist/utils/createToast.js.map +1 -1
- package/dist/utils/dataFormatters/__test__/formatNumbers.test.js +9 -9
- package/dist/utils/dataFormatters/__test__/formatNumbers.test.js.map +1 -1
- package/dist/utils/dataFormatters/__test__/formatStorageValues.test.js +7 -7
- package/dist/utils/dataFormatters/__test__/formatStorageValues.test.js.map +1 -1
- package/dist/utils/dataFormatters/__test__/formatUptime.test.js +11 -11
- package/dist/utils/dataFormatters/__test__/formatUptime.test.js.map +1 -1
- package/dist/utils/dataFormatters/__test__/roundToSignificant.test.js +2 -2
- package/dist/utils/dataFormatters/__test__/roundToSignificant.test.js.map +1 -1
- package/dist/utils/developerUI/__test__/developerUI.test.js +12 -12
- package/dist/utils/developerUI/__test__/developerUI.test.js.map +1 -1
- package/dist/utils/disks/__test__/calculatePDiskSeverity.test.js +5 -5
- package/dist/utils/disks/__test__/calculatePDiskSeverity.test.js.map +1 -1
- package/dist/utils/disks/__test__/calculateVDiskSeverity.test.js +8 -8
- package/dist/utils/disks/__test__/calculateVDiskSeverity.test.js.map +1 -1
- package/dist/utils/disks/__test__/prepareDisks.test.js +7 -7
- package/dist/utils/disks/__test__/prepareDisks.test.js.map +1 -1
- package/dist/utils/downloadFile.d.ts +2 -0
- package/dist/utils/downloadFile.js +17 -0
- package/dist/utils/downloadFile.js.map +1 -0
- package/dist/utils/hooks/__test__/useTableSort.test.js +3 -3
- package/dist/utils/hooks/__test__/useTableSort.test.js.map +1 -1
- package/dist/utils/hooks/useAdditionalNodesProps.d.ts +2 -0
- package/dist/utils/hooks/useAdditionalNodesProps.js +14 -0
- package/dist/utils/hooks/useAdditionalNodesProps.js.map +1 -0
- package/dist/utils/hooks/useIsUserAllowedToMakeChanges.d.ts +1 -0
- package/dist/utils/hooks/useIsUserAllowedToMakeChanges.js +6 -0
- package/dist/utils/hooks/useIsUserAllowedToMakeChanges.js.map +1 -0
- package/dist/utils/hooks/useNodeDeveloperUIHref.js +4 -7
- package/dist/utils/hooks/useNodeDeveloperUIHref.js.map +1 -1
- package/dist/utils/prepareBackend.d.ts +2 -1
- package/dist/utils/prepareBackend.js +3 -2
- package/dist/utils/prepareBackend.js.map +1 -1
- package/dist/utils/prepareErrorMessage.d.ts +1 -0
- package/dist/utils/prepareErrorMessage.js +18 -0
- package/dist/utils/prepareErrorMessage.js.map +1 -0
- package/dist/utils/query.d.ts +3 -2
- package/dist/utils/query.js +18 -31
- package/dist/utils/query.js.map +1 -1
- package/dist/utils/query.test.js +19 -19
- package/dist/utils/query.test.js.map +1 -1
- package/dist/utils/response.js +2 -1
- package/dist/utils/response.js.map +1 -1
- package/dist/utils/timeParsers/__test__/formatDuration.test.js +6 -6
- package/dist/utils/timeParsers/__test__/formatDuration.test.js.map +1 -1
- package/dist/utils/timeParsers/__test__/protobuf.test.js +10 -10
- package/dist/utils/timeParsers/__test__/protobuf.test.js.map +1 -1
- package/package.json +12 -7
- package/dist/components/ElapsedTime/ElapsedTime.d.ts +0 -5
- package/dist/components/ElapsedTime/ElapsedTime.js +0 -25
- package/dist/components/ElapsedTime/ElapsedTime.js.map +0 -1
- package/dist/components/ElapsedTime/ElapsedTime.scss +0 -3
- package/dist/components/ErrorBoundary/i18n/ru.json +0 -7
- package/dist/components/PDiskInfo/PDiskInfo.scss +0 -7
- package/dist/containers/Tablets/index.d.ts +0 -1
- package/dist/containers/Tablets/index.js +0 -2
- package/dist/containers/Tablets/index.js.map +0 -1
- package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.d.ts +0 -7
- package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.js +0 -17
- package/dist/containers/Tenant/Query/CancelQueryButton/CancelQueryButton.js.map +0 -1
- package/dist/containers/Tenant/Query/QueryDuration/QueryDuration.d.ts +0 -6
- package/dist/containers/Tenant/Query/QueryDuration/QueryDuration.js +0 -15
- package/dist/containers/Tenant/Query/QueryDuration/QueryDuration.js.map +0 -1
- package/dist/containers/Tenant/Query/QueryDuration/QueryDuration.scss +0 -27
- package/dist/containers/Tenant/Query/QueryResult/components/QueryInfoDropdown/utils.d.ts +0 -1
- package/dist/containers/Tenant/Query/QueryResult/components/QueryInfoDropdown/utils.js +0 -9
- package/dist/containers/Tenant/Query/QueryResult/components/QueryInfoDropdown/utils.js.map +0 -1
@@ -1,15 +1,18 @@
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
2
|
import React from 'react';
|
3
|
-
import {
|
3
|
+
import { Flex } from '@gravity-ui/uikit';
|
4
|
+
import { getPDiskPagePath } from '../../routes';
|
4
5
|
import { selectNodesMap } from '../../store/reducers/nodesList';
|
5
6
|
import { EFlag } from '../../types/api/enums';
|
6
7
|
import { valueIsDefined } from '../../utils';
|
7
8
|
import { EMPTY_DATA_PLACEHOLDER } from '../../utils/constants';
|
8
9
|
import { createPDiskDeveloperUILink } from '../../utils/developerUI/developerUI';
|
9
10
|
import { useTypedSelector } from '../../utils/hooks';
|
11
|
+
import { useIsUserAllowedToMakeChanges } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
|
10
12
|
import { bytesToGB, isNumeric } from '../../utils/utils';
|
11
13
|
import { InfoViewer } from '../InfoViewer';
|
12
14
|
import { LinkWithIcon } from '../LinkWithIcon/LinkWithIcon';
|
15
|
+
import { pDiskInfoKeyset } from '../PDiskInfo/i18n';
|
13
16
|
const errorColors = [EFlag.Orange, EFlag.Red, EFlag.Yellow];
|
14
17
|
export const preparePDiskData = (data, nodeData, withDeveloperUILink) => {
|
15
18
|
const { AvailableSize, TotalSize, State, PDiskId, NodeId, StringifiedId, Path, Realtime, Type, Device, } = data;
|
@@ -50,15 +53,16 @@ export const preparePDiskData = (data, nodeData, withDeveloperUILink) => {
|
|
50
53
|
nodeId: NodeId,
|
51
54
|
pDiskId: PDiskId,
|
52
55
|
});
|
56
|
+
const pDiskPagePath = getPDiskPagePath(PDiskId, NodeId);
|
53
57
|
pdiskData.push({
|
54
58
|
label: 'Links',
|
55
|
-
value: _jsx(LinkWithIcon, { title: '
|
59
|
+
value: (_jsxs(Flex, { gap: 2, wrap: "wrap", children: [_jsx(LinkWithIcon, { title: pDiskInfoKeyset('pdisk-page'), url: pDiskPagePath, external: false }), _jsx(LinkWithIcon, { title: pDiskInfoKeyset('developer-ui'), url: pDiskInternalViewerPath })] })),
|
56
60
|
});
|
57
61
|
}
|
58
62
|
return pdiskData;
|
59
63
|
};
|
60
64
|
export const PDiskPopup = ({ data }) => {
|
61
|
-
const isUserAllowedToMakeChanges =
|
65
|
+
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
|
62
66
|
const nodesMap = useTypedSelector(selectNodesMap);
|
63
67
|
const nodeData = valueIsDefined(data.NodeId) ? nodesMap === null || nodesMap === void 0 ? void 0 : nodesMap.get(data.NodeId) : undefined;
|
64
68
|
const info = React.useMemo(() => preparePDiskData(data, nodeData, isUserAllowedToMakeChanges), [data, nodeData, isUserAllowedToMakeChanges]);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PDiskPopup.js","sourceRoot":"","sources":["../../../src/components/PDiskPopup/PDiskPopup.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,
|
1
|
+
{"version":3,"file":"PDiskPopup.js","sourceRoot":"","sources":["../../../src/components/PDiskPopup/PDiskPopup.tsx"],"names":[],"mappings":"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"}
|
@@ -1,41 +1,73 @@
|
|
1
|
-
import { jsx as _jsx
|
2
|
-
import
|
3
|
-
import {
|
4
|
-
import
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { duration } from '@gravity-ui/date-utils';
|
4
|
+
import { CircleCheckFill, CircleQuestionFill, CircleStop, CircleXmark } from '@gravity-ui/icons';
|
5
|
+
import { Icon, Label, Spin, Text } from '@gravity-ui/uikit';
|
5
6
|
import { isQueryCancelledError } from '../../containers/Tenant/Query/utils/isQueryCancelledError';
|
7
|
+
import { selectQueryDuration } from '../../store/reducers/query/query';
|
6
8
|
import { cn } from '../../utils/cn';
|
7
|
-
import {
|
9
|
+
import { HOUR_IN_SECONDS, SECOND_IN_MS } from '../../utils/constants';
|
10
|
+
import { useTypedSelector } from '../../utils/hooks';
|
8
11
|
import { isAxiosError } from '../../utils/response';
|
9
|
-
import QuerySettingsDescription from '../QuerySettingsDescription/QuerySettingsDescription';
|
10
12
|
import './QueryExecutionStatus.scss';
|
11
13
|
const b = cn('kv-query-execution-status');
|
12
|
-
const QuerySettingsIndicator = () => {
|
13
|
-
const { isIndicatorShown, changedLastExecutionSettingsDescriptions } = useChangedQuerySettings();
|
14
|
-
if (!isIndicatorShown) {
|
15
|
-
return null;
|
16
|
-
}
|
17
|
-
return (_jsx(Tooltip, { openDelay: 0, content: _jsx(QuerySettingsDescription, { prefix: i18n('banner.query-settings.message'), querySettings: changedLastExecutionSettingsDescriptions }), children: _jsx(Icon, { data: CircleInfo, className: b('query-settings-icon') }) }));
|
18
|
-
};
|
19
14
|
export const QueryExecutionStatus = ({ className, error, loading }) => {
|
20
15
|
let icon;
|
21
16
|
let label;
|
17
|
+
let theme;
|
18
|
+
let textColor;
|
19
|
+
const { startTime, endTime } = useTypedSelector(selectQueryDuration);
|
20
|
+
const [queryDuration, setQueryDuration] = React.useState(startTime ? (endTime || Date.now()) - startTime : 0);
|
21
|
+
const isCancelled = isQueryCancelledError(error);
|
22
|
+
const setDuration = React.useCallback(() => {
|
23
|
+
if (startTime) {
|
24
|
+
const actualEndTime = endTime || Date.now();
|
25
|
+
setQueryDuration(actualEndTime - startTime);
|
26
|
+
}
|
27
|
+
}, [endTime, startTime]);
|
28
|
+
React.useEffect(() => {
|
29
|
+
let timerId;
|
30
|
+
setDuration();
|
31
|
+
if (loading) {
|
32
|
+
timerId = setInterval(setDuration, SECOND_IN_MS);
|
33
|
+
}
|
34
|
+
else {
|
35
|
+
clearInterval(timerId);
|
36
|
+
}
|
37
|
+
return () => {
|
38
|
+
clearInterval(timerId);
|
39
|
+
};
|
40
|
+
}, [loading, setDuration]);
|
41
|
+
const formattedQueryDuration = React.useMemo(() => {
|
42
|
+
return queryDuration > HOUR_IN_SECONDS * SECOND_IN_MS
|
43
|
+
? duration(queryDuration).format('hh:mm:ss')
|
44
|
+
: duration(queryDuration).format('mm:ss');
|
45
|
+
}, [queryDuration]);
|
22
46
|
if (loading) {
|
47
|
+
theme = 'info';
|
48
|
+
textColor = 'info-heavy';
|
23
49
|
icon = _jsx(Spin, { size: "xs" });
|
24
50
|
label = 'Running';
|
25
51
|
}
|
26
52
|
else if (isAxiosError(error) && error.code === 'ECONNABORTED') {
|
53
|
+
theme = 'danger';
|
54
|
+
textColor = 'danger-heavy';
|
27
55
|
icon = _jsx(Icon, { data: CircleQuestionFill });
|
28
56
|
label = 'Connection aborted';
|
29
57
|
}
|
30
|
-
else if (
|
31
|
-
|
58
|
+
else if (isCancelled) {
|
59
|
+
theme = 'warning';
|
60
|
+
textColor = 'warning-heavy';
|
61
|
+
icon = _jsx(Icon, { data: CircleStop, className: b('result-status-icon', { error: true }) });
|
32
62
|
label = 'Stopped';
|
33
63
|
}
|
34
64
|
else {
|
35
65
|
const hasError = Boolean(error);
|
36
|
-
|
66
|
+
theme = hasError ? 'danger' : 'success';
|
67
|
+
textColor = hasError ? 'danger-heavy' : 'positive-heavy';
|
68
|
+
icon = (_jsx(Icon, { data: hasError ? CircleXmark : CircleCheckFill, className: b('result-status-icon', { error: hasError }) }));
|
37
69
|
label = hasError ? 'Failed' : 'Completed';
|
38
70
|
}
|
39
|
-
return (
|
71
|
+
return (_jsx(Label, { theme: theme, size: "m", className: b(null, className), icon: icon, value: formattedQueryDuration, children: _jsx(Text, { color: textColor, children: label }) }));
|
40
72
|
};
|
41
73
|
//# sourceMappingURL=QueryExecutionStatus.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryExecutionStatus.js","sourceRoot":"","sources":["../../../src/components/QueryExecutionStatus/QueryExecutionStatus.tsx"],"names":[],"mappings":";
|
1
|
+
{"version":3,"file":"QueryExecutionStatus.js","sourceRoot":"","sources":["../../../src/components/QueryExecutionStatus/QueryExecutionStatus.tsx"],"names":[],"mappings":"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"}
|
@@ -2,16 +2,4 @@
|
|
2
2
|
display: flex;
|
3
3
|
align-items: center;
|
4
4
|
gap: 4px;
|
5
|
-
|
6
|
-
color: var(--g-color-text-complementary);
|
7
|
-
&__result-status-icon {
|
8
|
-
color: var(--g-color-text-positive);
|
9
|
-
&_error {
|
10
|
-
color: var(--g-color-text-danger);
|
11
|
-
}
|
12
|
-
}
|
13
|
-
|
14
|
-
&__query-settings-icon {
|
15
|
-
color: var(--g-color-text-hint);
|
16
|
-
}
|
17
5
|
}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { Settings } from '@gravity-ui/react-data-table';
|
1
2
|
import type { ColumnType, KeyValueRow } from '../../types/api/query';
|
2
3
|
import type { ResizeableDataTableProps } from '../ResizeableDataTable/ResizeableDataTable';
|
3
4
|
import './QueryResultTable.scss';
|
@@ -5,6 +6,7 @@ export declare const b: import("@bem-react/classname").ClassNameFormatter;
|
|
5
6
|
interface QueryResultTableProps extends Omit<ResizeableDataTableProps<KeyValueRow>, 'data' | 'columns'> {
|
6
7
|
data?: KeyValueRow[];
|
7
8
|
columns?: ColumnType[];
|
9
|
+
settings?: Partial<Settings>;
|
8
10
|
}
|
9
11
|
export declare const QueryResultTable: (props: QueryResultTableProps) => import("react/jsx-runtime").JSX.Element | null;
|
10
12
|
export {};
|
@@ -4,7 +4,7 @@ import DataTable from '@gravity-ui/react-data-table';
|
|
4
4
|
import { cn } from '../../utils/cn';
|
5
5
|
import { DEFAULT_TABLE_SETTINGS } from '../../utils/constants';
|
6
6
|
import { getColumnWidth } from '../../utils/getColumnWidth';
|
7
|
-
import { getColumnType
|
7
|
+
import { getColumnType } from '../../utils/query';
|
8
8
|
import { isNumeric } from '../../utils/utils';
|
9
9
|
import { ResizeableDataTable } from '../ResizeableDataTable/ResizeableDataTable';
|
10
10
|
import { Cell } from './Cell';
|
@@ -35,7 +35,7 @@ const prepareTypedColumns = (columns, data) => {
|
|
35
35
|
});
|
36
36
|
};
|
37
37
|
const prepareGenericColumns = (data) => {
|
38
|
-
if (!data.length) {
|
38
|
+
if (!(data === null || data === void 0 ? void 0 : data.length)) {
|
39
39
|
return [];
|
40
40
|
}
|
41
41
|
const dataSlice = data === null || data === void 0 ? void 0 : data.slice(0, WIDTH_PREDICTION_ROWS_COUNT);
|
@@ -53,21 +53,26 @@ const getRowIndex = (_, index) => index;
|
|
53
53
|
// Display row number in format 1-10 instead of 0-9
|
54
54
|
const getVisibleRowIndex = (_, index) => index + 1;
|
55
55
|
export const QueryResultTable = (props) => {
|
56
|
-
const { columns
|
57
|
-
const
|
58
|
-
|
59
|
-
|
60
|
-
|
56
|
+
const { columns, data, settings: propsSettings } = props;
|
57
|
+
const preparedColumns = React.useMemo(() => {
|
58
|
+
return columns ? prepareTypedColumns(columns, data) : prepareGenericColumns(data);
|
59
|
+
}, [data, columns]);
|
60
|
+
const settings = React.useMemo(() => {
|
61
|
+
return {
|
62
|
+
...TABLE_SETTINGS,
|
63
|
+
...propsSettings,
|
64
|
+
};
|
65
|
+
}, [propsSettings]);
|
61
66
|
// empty data is expected to be be an empty array
|
62
67
|
// undefined data is not rendered at all
|
63
|
-
if (!Array.isArray(
|
68
|
+
if (!Array.isArray(data)) {
|
64
69
|
return null;
|
65
70
|
}
|
66
|
-
if (!
|
71
|
+
if (!preparedColumns.length) {
|
67
72
|
return _jsx("div", { className: b('message'), children: i18n('empty') });
|
68
73
|
}
|
69
|
-
return (_jsx(ResizeableDataTable, { data: data, columns:
|
74
|
+
return (_jsx(ResizeableDataTable, { data: data, columns: preparedColumns, settings: settings,
|
70
75
|
// prevent accessing row.id in case it is present but is not the PK (i.e. may repeat)
|
71
|
-
rowKey: getRowIndex, visibleRowIndex: getVisibleRowIndex,
|
76
|
+
rowKey: getRowIndex, visibleRowIndex: getVisibleRowIndex, wrapperClassName: b('table-wrapper') }));
|
72
77
|
};
|
73
78
|
//# sourceMappingURL=QueryResultTable.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryResultTable.js","sourceRoot":"","sources":["../../../src/components/QueryResultTable/QueryResultTable.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,SAAS,MAAM,8BAA8B,CAAC;AAIrD,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAC,aAAa,
|
1
|
+
{"version":3,"file":"QueryResultTable.js","sourceRoot":"","sources":["../../../src/components/QueryResultTable/QueryResultTable.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,SAAS,MAAM,8BAA8B,CAAC;AAIrD,OAAO,EAAC,EAAE,EAAC,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAC,mBAAmB,EAAC,MAAM,4CAA4C,CAAC;AAE/E,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,OAAO,yBAAyB,CAAC;AAEjC,MAAM,cAAc,GAAa;IAC7B,GAAG,sBAAsB;IACzB,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,IAAI;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAC;AAE9C,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC,MAAM,mBAAmB,GAAG,CAAC,OAAqB,EAAE,IAAoB,EAAE,EAAE;IACxE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAE9D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,EAAE,EAAE;QAChC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAwB;YAChC,IAAI;YACJ,KAAK,EAAE,cAAc,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;YAC9C,KAAK,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;YACjE,MAAM,EAAE,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAI;SACxD,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,IAAoB,EAAE,EAAE;IACnD,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAE9D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,MAAM,GAAwB;YAChC,IAAI;YACJ,KAAK,EAAE,cAAc,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;YAC9C,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;YAClE,MAAM,EAAE,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAI;SACxD,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,CAAU,EAAE,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC;AAEzD,mDAAmD;AACnD,MAAM,kBAAkB,GAAG,CAAC,CAAU,EAAE,KAAa,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;AASpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAE,EAAE;IAC7D,MAAM,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAC,GAAG,KAAK,CAAC;IAEvD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,OAAO,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChC,OAAO;YACH,GAAG,cAAc;YACjB,GAAG,aAAa;SACnB,CAAC;IACN,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,iDAAiD;IACjD,wCAAwC;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,cAAK,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,YAAG,IAAI,CAAC,OAAO,CAAC,GAAO,CAAC;IAC/D,CAAC;IAED,OAAO,CACH,KAAC,mBAAmB,IAChB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,QAAQ;QAClB,qFAAqF;QACrF,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,kBAAkB,EACnC,gBAAgB,EAAE,CAAC,CAAC,eAAe,CAAC,GACtC,CACL,CAAC;AACN,CAAC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
export declare const storageGroupInfoKeyset: (key: "yes" | "no" | "state" | "encryption" | "missing-disks" | "usage" | "latency" | "allocation-units" | "
|
1
|
+
export declare const storageGroupInfoKeyset: (key: "yes" | "no" | "state" | "encryption" | "missing-disks" | "usage" | "latency" | "allocation-units" | "read-throughput" | "write-throughput" | "media-type" | "available" | "overall" | "disk-space" | "erasure-species" | "used-space" | "group-generation" | "latency-put-tablet-log" | "latency-put-user-data" | "latency-get-fast", params?: import("@gravity-ui/i18n").Params) => string;
|
@@ -1,15 +1,14 @@
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
2
|
import { DefinitionList, PopoverBehavior } from '@gravity-ui/uikit';
|
3
3
|
import { getTabletPagePath } from '../../routes';
|
4
|
-
import { selectIsUserAllowedToMakeChanges } from '../../store/reducers/authentication/authentication';
|
5
4
|
import { createTabletDeveloperUIHref } from '../../utils/developerUI/developerUI';
|
6
|
-
import {
|
5
|
+
import { useIsUserAllowedToMakeChanges } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
|
7
6
|
import { CellWithPopover } from '../CellWithPopover/CellWithPopover';
|
8
7
|
import { EntityStatus } from '../EntityStatus/EntityStatus';
|
9
8
|
import { LinkWithIcon } from '../LinkWithIcon/LinkWithIcon';
|
10
9
|
import i18n from './i18n';
|
11
10
|
export function TabletNameWrapper({ tabletId, database }) {
|
12
|
-
const isUserAllowedToMakeChanges =
|
11
|
+
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
|
13
12
|
const tabletPath = getTabletPagePath(tabletId, { database });
|
14
13
|
return (_jsx(CellWithPopover, { disabled: !isUserAllowedToMakeChanges, delayClosing: 200, content: _jsx(DefinitionList, { responsive: true, children: _jsx(DefinitionList.Item, { name: i18n('field_links'), children: _jsx(LinkWithIcon, { title: i18n('context_developer-ui'), url: createTabletDeveloperUIHref(tabletId) }) }) }), placement: ['top', 'bottom'], behavior: PopoverBehavior.Immediate, children: _jsx(EntityStatus, { name: tabletId.toString(), path: tabletPath, hasClipboardButton: true, showStatus: false }) }));
|
15
14
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TabletNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TabletNameWrapper/TabletNameWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,
|
1
|
+
{"version":3,"file":"TabletNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TabletNameWrapper/TabletNameWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,2BAA2B,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAC,6BAA6B,EAAC,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAE1D,OAAO,IAAI,MAAM,QAAQ,CAAC;AAO1B,MAAM,UAAU,iBAAiB,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAyB;IAC1E,MAAM,0BAA0B,GAAG,6BAA6B,EAAE,CAAC;IAEnE,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;IAE3D,OAAO,CACH,KAAC,eAAe,IACZ,QAAQ,EAAE,CAAC,0BAA0B,EACrC,YAAY,EAAE,GAAG,EACjB,OAAO,EACH,KAAC,cAAc,IAAC,UAAU,kBACtB,KAAC,cAAc,CAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,YAC1C,KAAC,YAAY,IACT,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,EACnC,GAAG,EAAE,2BAA2B,CAAC,QAAQ,CAAC,GAC5C,GACgB,GACT,EAErB,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAC5B,QAAQ,EAAE,eAAe,CAAC,SAAS,YAEnC,KAAC,YAAY,IACT,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,EACzB,IAAI,EAAE,UAAU,EAChB,kBAAkB,QAClB,UAAU,EAAE,KAAK,GACnB,GACY,CACrB,CAAC;AACN,CAAC"}
|
@@ -1,8 +1,7 @@
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
2
|
import { DefinitionList, PopoverBehavior } from '@gravity-ui/uikit';
|
3
3
|
import { getTenantPath } from '../../containers/Tenant/TenantPages';
|
4
|
-
import {
|
5
|
-
import { useTypedSelector } from '../../utils/hooks';
|
4
|
+
import { useIsUserAllowedToMakeChanges } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
|
6
5
|
import { CellWithPopover } from '../CellWithPopover/CellWithPopover';
|
7
6
|
import { EntityStatus } from '../EntityStatus/EntityStatus';
|
8
7
|
import { LinkWithIcon } from '../LinkWithIcon/LinkWithIcon';
|
@@ -22,7 +21,7 @@ const getTenantBackend = (tenant, additionalTenantsProps) => {
|
|
22
21
|
};
|
23
22
|
export function TenantNameWrapper({ tenant, additionalTenantsProps }) {
|
24
23
|
var _a;
|
25
|
-
const isUserAllowedToMakeChanges =
|
24
|
+
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
|
26
25
|
const backend = getTenantBackend(tenant, additionalTenantsProps);
|
27
26
|
const isExternalLink = Boolean(backend);
|
28
27
|
const monitoringLink = (_a = additionalTenantsProps === null || additionalTenantsProps === void 0 ? void 0 : additionalTenantsProps.getMonitoringLink) === null || _a === void 0 ? void 0 : _a.call(additionalTenantsProps, tenant.Name, tenant.Type);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TenantNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TenantNameWrapper/TenantNameWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAC,aAAa,EAAC,MAAM,qCAAqC,CAAC;
|
1
|
+
{"version":3,"file":"TenantNameWrapper.js","sourceRoot":"","sources":["../../../src/components/TenantNameWrapper/TenantNameWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAC,aAAa,EAAC,MAAM,qCAAqC,CAAC;AAGlE,OAAO,EAAC,6BAA6B,EAAC,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAE1D,OAAO,IAAI,MAAM,QAAQ,CAAC;AAO1B,MAAM,gBAAgB,GAAG,CACrB,MAAsB,EACtB,sBAA+C,EACjD,EAAE;;IACA,IAAI,OAAO,CAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,oBAAoB,CAAA,KAAK,UAAU,EAAE,CAAC;QACrE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,GAAqC,MAAA,MAAM,CAAC,kBAAkB,mCAAI,MAAM,CAAC,OAAO,CAAC;IAC5F,MAAM,OAAO,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,MAAM,CAAC,aAAa,CAAC;IACvD,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,GAAG,EAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAC,CAAC;IACvC,CAAC;IACD,OAAO,sBAAsB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,EAAC,MAAM,EAAE,sBAAsB,EAAyB;;IACtF,MAAM,0BAA0B,GAAG,6BAA6B,EAAE,CAAC;IAEnE,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExC,MAAM,cAAc,GAAG,MAAA,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,iBAAiB,uEAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7F,OAAO,CACH,KAAC,eAAe,IACZ,QAAQ,EAAE,CAAC,0BAA0B,IAAI,CAAC,cAAc,EACxD,YAAY,EAAE,GAAG,EACjB,OAAO,EACH,cAAc,CAAC,CAAC,CAAC,CACb,KAAC,cAAc,IAAC,UAAU,kBACtB,KAAC,cAAc,CAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,YAC1C,KAAC,YAAY,IACT,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,EACpC,GAAG,EAAE,cAAc,GACrB,GACgB,GACT,CACpB,CAAC,CAAC,CAAC,IAAI,EAEZ,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAC5B,QAAQ,EAAE,eAAe,CAAC,SAAS,YAEnC,KAAC,YAAY,IACT,YAAY,EAAE,cAAc,EAC5B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAC5C,YAAY,EAAE,IAAI,EAClB,MAAM,EAAE,MAAM,CAAC,OAAO,EACtB,kBAAkB,QAClB,IAAI,EAAE,aAAa,CAAC;gBAChB,QAAQ,EAAE,MAAM,CAAC,IAAI;gBACrB,OAAO;aACV,CAAC,GACJ,GACY,CACrB,CAAC;AACN,CAAC"}
|
package/dist/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.js
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
2
|
import { DefinitionList } from '@gravity-ui/uikit';
|
3
|
-
import { selectIsUserAllowedToMakeChanges } from '../../../store/reducers/authentication/authentication';
|
4
3
|
import { cn } from '../../../utils/cn';
|
5
|
-
import {
|
4
|
+
import { useIsUserAllowedToMakeChanges } from '../../../utils/hooks/useIsUserAllowedToMakeChanges';
|
6
5
|
import { LinkWithIcon } from '../../LinkWithIcon/LinkWithIcon';
|
7
6
|
import i18n from './i18n';
|
8
7
|
import './NodeEndpointsTooltipContent.scss';
|
9
8
|
const b = cn('ydb-node-endpoints-tooltip-content');
|
10
9
|
export const NodeEndpointsTooltipContent = ({ data, nodeHref }) => {
|
11
10
|
var _a, _b;
|
12
|
-
const isUserAllowedToMakeChanges =
|
11
|
+
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
|
13
12
|
const info = [];
|
14
13
|
if ((_a = data === null || data === void 0 ? void 0 : data.Roles) === null || _a === void 0 ? void 0 : _a.length) {
|
15
14
|
info.push({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NodeEndpointsTooltipContent.js","sourceRoot":"","sources":["../../../../src/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;
|
1
|
+
{"version":3,"file":"NodeEndpointsTooltipContent.js","sourceRoot":"","sources":["../../../../src/components/TooltipsContent/NodeEndpointsTooltipContent/NodeEndpointsTooltipContent.tsx"],"names":[],"mappings":"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"}
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { Flex } from '@gravity-ui/uikit';
|
2
3
|
import { getVDiskPagePath } from '../../routes';
|
3
|
-
import { selectIsUserAllowedToMakeChanges } from '../../store/reducers/authentication/authentication';
|
4
4
|
import { valueIsDefined } from '../../utils';
|
5
5
|
import { cn } from '../../utils/cn';
|
6
6
|
import { formatStorageValuesToGb } from '../../utils/dataFormatters/dataFormatters';
|
7
7
|
import { createVDiskDeveloperUILink } from '../../utils/developerUI/developerUI';
|
8
8
|
import { getSeverityColor } from '../../utils/disks/helpers';
|
9
|
-
import {
|
9
|
+
import { useIsUserAllowedToMakeChanges } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
|
10
10
|
import { bytesToSpeed } from '../../utils/utils';
|
11
11
|
import { InfoViewer } from '../InfoViewer';
|
12
12
|
import { LinkWithIcon } from '../LinkWithIcon/LinkWithIcon';
|
@@ -18,7 +18,7 @@ const b = cn('ydb-vdisk-info');
|
|
18
18
|
// eslint-disable-next-line complexity
|
19
19
|
export function VDiskInfo({ data, withVDiskPageLink, withTitle, ...infoViewerProps }) {
|
20
20
|
var _a, _b, _c, _d;
|
21
|
-
const isUserAllowedToMakeChanges =
|
21
|
+
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
|
22
22
|
const { AllocatedSize, DiskSpace, FrontQueues, Guid, Replicated, VDiskState, VDiskSlotId, Kind, SatisfactionRank, AvailableSize, HasUnreadableBlobs, IncarnationGuid, InstanceGuid, StoragePoolName, ReadThroughput, WriteThroughput, PDiskId, NodeId, } = data || {};
|
23
23
|
const vdiskInfo = [];
|
24
24
|
if (valueIsDefined(VDiskSlotId)) {
|
@@ -117,7 +117,7 @@ export function VDiskInfo({ data, withVDiskPageLink, withTitle, ...infoViewerPro
|
|
117
117
|
if (links.length) {
|
118
118
|
vdiskInfo.push({
|
119
119
|
label: vDiskInfoKeyset('links'),
|
120
|
-
value: _jsx(
|
120
|
+
value: (_jsx(Flex, { wrap: "wrap", gap: 2, children: links })),
|
121
121
|
});
|
122
122
|
}
|
123
123
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDiskInfo.js","sourceRoot":"","sources":["../../../src/components/VDiskInfo/VDiskInfo.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,
|
1
|
+
{"version":3,"file":"VDiskInfo.js","sourceRoot":"","sources":["../../../src/components/VDiskInfo/VDiskInfo.tsx"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
export declare const vDiskInfoKeyset: (key: "
|
1
|
+
export declare const vDiskInfoKeyset: (key: "links" | "size" | "yes" | "no" | "kind" | "pool-name" | "guid" | "developer-ui" | "slot-id" | "incarnation-guid" | "instance-guid" | "replication-status" | "state-status" | "space-status" | "fresh-rank-satisfaction" | "level-rank-satisfaction" | "front-queues" | "has-unreadable-blobs" | "read-throughput" | "write-throughput" | "vdisk-page" | "vdiks-title", params?: import("@gravity-ui/i18n").Params) => string;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
2
|
import React from 'react';
|
3
|
-
import { Label } from '@gravity-ui/uikit';
|
4
|
-
import {
|
3
|
+
import { Flex, Label } from '@gravity-ui/uikit';
|
4
|
+
import { getVDiskPagePath } from '../../routes';
|
5
5
|
import { selectNodesMap } from '../../store/reducers/nodesList';
|
6
6
|
import { EFlag } from '../../types/api/enums';
|
7
7
|
import { valueIsDefined } from '../../utils';
|
@@ -10,12 +10,14 @@ import { EMPTY_DATA_PLACEHOLDER } from '../../utils/constants';
|
|
10
10
|
import { createVDiskDeveloperUILink } from '../../utils/developerUI/developerUI';
|
11
11
|
import { isFullVDiskData } from '../../utils/disks/helpers';
|
12
12
|
import { useTypedSelector } from '../../utils/hooks';
|
13
|
+
import { useIsUserAllowedToMakeChanges } from '../../utils/hooks/useIsUserAllowedToMakeChanges';
|
13
14
|
import { bytesToGB, bytesToSpeed } from '../../utils/utils';
|
14
15
|
import { InfoViewer } from '../InfoViewer';
|
15
16
|
import { InternalLink } from '../InternalLink';
|
16
17
|
import { LinkWithIcon } from '../LinkWithIcon/LinkWithIcon';
|
17
18
|
import { preparePDiskData } from '../PDiskPopup/PDiskPopup';
|
18
19
|
import { getVDiskLink } from '../VDisk/utils';
|
20
|
+
import { vDiskInfoKeyset } from '../VDiskInfo/i18n';
|
19
21
|
import './VDiskPopup.scss';
|
20
22
|
const b = cn('vdisk-storage-popup');
|
21
23
|
const prepareUnavailableVDiskData = (data, withDeveloperUILink) => {
|
@@ -112,16 +114,17 @@ const prepareVDiskData = (data, withDeveloperUILink) => {
|
|
112
114
|
pDiskId: PDiskId,
|
113
115
|
vDiskSlotId: VDiskSlotId,
|
114
116
|
});
|
117
|
+
const vDiskPagePath = getVDiskPagePath(VDiskSlotId, PDiskId, NodeId);
|
115
118
|
vdiskData.push({
|
116
119
|
label: 'Links',
|
117
|
-
value: _jsx(LinkWithIcon, { title: '
|
120
|
+
value: (_jsxs(Flex, { wrap: "wrap", gap: 2, children: [_jsx(LinkWithIcon, { title: vDiskInfoKeyset('vdisk-page'), url: vDiskPagePath, external: false }, vDiskPagePath), _jsx(LinkWithIcon, { title: vDiskInfoKeyset('developer-ui'), url: vDiskInternalViewerPath })] })),
|
118
121
|
});
|
119
122
|
}
|
120
123
|
return vdiskData;
|
121
124
|
};
|
122
125
|
export const VDiskPopup = ({ data }) => {
|
123
126
|
const isFullData = isFullVDiskData(data);
|
124
|
-
const isUserAllowedToMakeChanges =
|
127
|
+
const isUserAllowedToMakeChanges = useIsUserAllowedToMakeChanges();
|
125
128
|
const vdiskInfo = React.useMemo(() => isFullData
|
126
129
|
? prepareVDiskData(data, isUserAllowedToMakeChanges)
|
127
130
|
: prepareUnavailableVDiskData(data, isUserAllowedToMakeChanges), [data, isFullData, isUserAllowedToMakeChanges]);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDiskPopup.js","sourceRoot":"","sources":["../../../src/components/VDiskPopup/VDiskPopup.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;
|
1
|
+
{"version":3,"file":"VDiskPopup.js","sourceRoot":"","sources":["../../../src/components/VDiskPopup/VDiskPopup.tsx"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { UNBREAKABLE_GAP } from '../../../utils/utils';
|
2
2
|
import { prepareClockSkewValue, preparePingTimeValue } from '../utils';
|
3
3
|
describe('preparePingTimeValue', () => {
|
4
|
-
|
4
|
+
test('Should correctly prepare value', () => {
|
5
5
|
expect(preparePingTimeValue(1)).toEqual(`0${UNBREAKABLE_GAP}ms`);
|
6
6
|
expect(preparePingTimeValue(100)).toEqual(`0.1${UNBREAKABLE_GAP}ms`);
|
7
7
|
expect(preparePingTimeValue(5550)).toEqual(`6${UNBREAKABLE_GAP}ms`);
|
@@ -9,17 +9,17 @@ describe('preparePingTimeValue', () => {
|
|
9
9
|
});
|
10
10
|
});
|
11
11
|
describe('prepareClockSkewValue', () => {
|
12
|
-
|
12
|
+
test('Should correctly prepare 0 or very low values', () => {
|
13
13
|
expect(prepareClockSkewValue(0)).toEqual(`0${UNBREAKABLE_GAP}ms`);
|
14
14
|
expect(prepareClockSkewValue(10)).toEqual(`0${UNBREAKABLE_GAP}ms`);
|
15
15
|
expect(prepareClockSkewValue(-10)).toEqual(`0${UNBREAKABLE_GAP}ms`);
|
16
16
|
});
|
17
|
-
|
17
|
+
test('Should correctly prepare positive values', () => {
|
18
18
|
expect(prepareClockSkewValue(100)).toEqual(`+0.1${UNBREAKABLE_GAP}ms`);
|
19
19
|
expect(prepareClockSkewValue(5500)).toEqual(`+6${UNBREAKABLE_GAP}ms`);
|
20
20
|
expect(prepareClockSkewValue(100000)).toEqual(`+100${UNBREAKABLE_GAP}ms`);
|
21
21
|
});
|
22
|
-
|
22
|
+
test('Should correctly prepare negative values', () => {
|
23
23
|
expect(prepareClockSkewValue(-100)).toEqual(`-0.1${UNBREAKABLE_GAP}ms`);
|
24
24
|
expect(prepareClockSkewValue(-5500)).toEqual(`-6${UNBREAKABLE_GAP}ms`);
|
25
25
|
expect(prepareClockSkewValue(-100000)).toEqual(`-100${UNBREAKABLE_GAP}ms`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../../src/components/nodesColumns/__test__/utils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,qBAAqB,EAAE,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAErE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../../src/components/nodesColumns/__test__/utils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,qBAAqB,EAAE,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAErE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,eAAe,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,eAAe,IAAI,CAAC,CAAC;QACrE,MAAM,CAAC,oBAAoB,CAAC,IAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,eAAe,IAAI,CAAC,CAAC;QACrE,MAAM,CAAC,oBAAoB,CAAC,MAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,eAAe,IAAI,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACnC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,eAAe,IAAI,CAAC,CAAC;QAClE,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,eAAe,IAAI,CAAC,CAAC;QACnE,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,eAAe,IAAI,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,eAAe,IAAI,CAAC,CAAC;QACvE,MAAM,CAAC,qBAAqB,CAAC,IAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,eAAe,IAAI,CAAC,CAAC;QACvE,MAAM,CAAC,qBAAqB,CAAC,MAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,eAAe,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,eAAe,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,eAAe,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,qBAAqB,CAAC,CAAC,MAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,eAAe,IAAI,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|