From cb68bffc7ab55eedf07dba1f3fbf40aeed7fc9ce Mon Sep 17 00:00:00 2001 From: Florent MILLOT <75525996+flomillot@users.noreply.github.com> Date: Fri, 21 Nov 2025 15:11:02 +0100 Subject: [PATCH 1/4] Remove `resize-handle` component and update imports accordingly Signed-off-by: Florent MILLOT <75525996+flomillot@users.noreply.github.com> --- src/components/resize-handle.tsx | 45 ------------------- .../global-filter/global-filter-paper.tsx | 4 +- src/components/tree-tab.jsx | 4 +- 3 files changed, 4 insertions(+), 49 deletions(-) delete mode 100644 src/components/resize-handle.tsx diff --git a/src/components/resize-handle.tsx b/src/components/resize-handle.tsx deleted file mode 100644 index 52cf46a279..0000000000 --- a/src/components/resize-handle.tsx +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright (c) 2025, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -import { PanelResizeHandle } from 'react-resizable-panels'; -import DragIndicatorIcon from '@mui/icons-material/DragIndicator'; -import { Theme, useTheme } from '@mui/material'; - -interface ResizeHandleProps { - visible: boolean; - rotated?: boolean; -} - -const getStyles = (theme: Theme, visible: boolean, rotated: boolean) => ({ - handle: { - display: visible ? 'flex' : 'none', - alignItems: 'center', - backgroundColor: theme.palette.background.paper, - borderLeft: !rotated ? `1px solid ${theme.palette.divider}` : 'none', - borderTop: rotated ? `1px solid ${theme.palette.divider}` : 'none', - justifyContent: 'center', - }, - icon: { - transform: rotated ? 'rotate(90deg)' : 'none', - transition: 'transform 0.2s', - color: 'inherit', - cursor: 'ns-resize', - }, -}); - -const ResizeHandle = ({ visible, rotated = false }: ResizeHandleProps) => { - const theme = useTheme(); - const styles = getStyles(theme, visible, rotated); - - return ( - - - - ); -}; - -export default ResizeHandle; diff --git a/src/components/results/common/global-filter/global-filter-paper.tsx b/src/components/results/common/global-filter/global-filter-paper.tsx index 0216b7862b..c79a76e5c6 100644 --- a/src/components/results/common/global-filter/global-filter-paper.tsx +++ b/src/components/results/common/global-filter/global-filter-paper.tsx @@ -5,7 +5,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { Box, Button, Chip, Grid, ListItem, ListItemButton, Paper, Typography } from '@mui/material'; +import { Box, Button, Grid, ListItem, ListItemButton, Paper, Typography } from '@mui/material'; import { getResultsGlobalFiltersChipStyle, GLOBAL_FILTERS_CELL_HEIGHT, @@ -28,8 +28,8 @@ import { ElementType, fetchElementsInfos, mergeSx, - TreeViewFinderNodeProps, OverflowableChip, + TreeViewFinderNodeProps, } from '@gridsuite/commons-ui'; import { GlobalFilterContext } from './global-filter-context'; diff --git a/src/components/tree-tab.jsx b/src/components/tree-tab.jsx index e37ee44953..58d56fdb15 100644 --- a/src/components/tree-tab.jsx +++ b/src/components/tree-tab.jsx @@ -7,14 +7,14 @@ import { ReactFlowProvider } from '@xyflow/react'; import { Box, useTheme } from '@mui/material'; +import { ResizeHandle } from '@gridsuite/commons-ui'; import { Panel, PanelGroup } from 'react-resizable-panels'; -import { useMemo, useCallback } from 'react'; +import { useCallback, useMemo } from 'react'; import NetworkModificationTreePane from './network-modification-tree-pane'; import GridLayoutPanel from './grid-layout/grid-layout-panel'; import NodeEditor from './graph/menus/network-modifications/node-editor'; import ScenarioEditor from './graph/menus/dynamic-simulation/scenario-editor'; -import ResizeHandle from './resize-handle'; import { usePanelManager } from '../hooks/use-panel-manager'; import { PANEL_CONFIG, PANEL_IDS } from '../constants/panel.constants'; From 648219dca43d7a5eccd2fb2616a39848ea9a8b24 Mon Sep 17 00:00:00 2001 From: Florent MILLOT <75525996+flomillot@users.noreply.github.com> Date: Mon, 24 Nov 2025 15:23:07 +0100 Subject: [PATCH 2/4] Move cell renderers to @gridsuite/commons-ui The custom AG Grid cell renderers have been moved from the application-specific folder to the shared @gridsuite/commons-ui library. Updated all references across the codebase to use the shared cell renderers, simplifying code reuse and improving modularity. Signed-off-by: Florent MILLOT <75525996+flomillot@users.noreply.github.com> --- .../custom-aggrid/cell-renderers.tsx | 264 ------------------ .../line-type-segment-form.tsx | 9 +- .../use-column-definitions.ts | 2 +- .../limit-sets-tabular-modification-form.tsx | 7 +- .../tabular/tabular-form.tsx | 13 +- .../voltage-init-modification-dialog.tsx | 9 +- .../network-modifications-table.tsx | 4 +- src/components/report-viewer/log-table.tsx | 3 +- ...mic-security-analysis-result-synthesis.tsx | 3 +- .../dynamic-simulation-result-synthesis.tsx | 3 +- .../dynamic-simulation-result-timeline.tsx | 3 +- .../loadflow/limit-violation-result.tsx | 3 +- .../results/loadflow/load-flow-result.tsx | 3 +- .../results/pccmin/pcc-min-result-table.tsx | 3 +- .../security-analysis-result-utils.ts | 3 +- .../security-analysis-table.tsx | 3 +- .../sensitivity-analysis-result.tsx | 3 +- .../shortcircuit-analysis-result-table.tsx | 11 +- .../state-estimation-quality-result.tsx | 3 +- .../columns/common-column-definitions.ts | 4 +- .../columns/utils/column-mapper.ts | 2 +- 21 files changed, 50 insertions(+), 308 deletions(-) delete mode 100644 src/components/custom-aggrid/cell-renderers.tsx diff --git a/src/components/custom-aggrid/cell-renderers.tsx b/src/components/custom-aggrid/cell-renderers.tsx deleted file mode 100644 index 12a580e037..0000000000 --- a/src/components/custom-aggrid/cell-renderers.tsx +++ /dev/null @@ -1,264 +0,0 @@ -/** - * Copyright (c) 2023, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -import { Box, Checkbox, Tooltip } from '@mui/material'; -import { ReactNode, useEffect, useRef, useState } from 'react'; -import { isBlankOrEmpty } from 'components/utils/validation-functions'; -import { ICellRendererParams } from 'ag-grid-community'; -import { CustomCellRendererProps } from 'ag-grid-react'; -import { mergeSx, type MuiStyles } from '@gridsuite/commons-ui'; -import { useIntl } from 'react-intl'; - -const styles = { - tableCell: (theme) => ({ - fontSize: 'small', - cursor: 'inherit', - display: 'flex', - '&:before': { - content: '""', - position: 'absolute', - left: theme.spacing(0.5), - right: theme.spacing(0.5), - bottom: 0, - }, - }), - overflow: { - whiteSpace: 'pre', - textOverflow: 'ellipsis', - overflow: 'hidden', - }, - numericValue: { - marginLeft: 'inherit', - }, -} as const satisfies MuiStyles; - -const FORMULA_ERROR_KEY = 'spreadsheet/formula/error'; - -interface BaseCellRendererProps { - value: string | undefined; - tooltip?: string; -} - -export const BooleanCellRenderer = (props: any) => { - const isChecked = props.value; - return ( -
- {props.value !== undefined && ( - - )} -
- ); -}; - -export const BooleanNullableCellRenderer = (props: any) => { - return ( -
- -
- ); -}; - -const formatNumericCell = (value: number, fractionDigits?: number) => { - if (value === null || isNaN(value)) { - return { value: null }; - } - return { value: value.toFixed(fractionDigits ?? 2), tooltip: value?.toString() }; -}; - -const formatCell = (props: any) => { - let value = props?.valueFormatted || props.value; - let tooltipValue = undefined; - // we use valueGetter only if value is not defined - if (!value && props.colDef.valueGetter) { - props.colDef.valueGetter(props); - } - if (value != null && props.colDef.context?.numeric && props.colDef.context?.fractionDigits) { - // only numeric rounded cells have a tooltip (their raw numeric value) - tooltipValue = value; - value = parseFloat(value).toFixed(props.colDef.context.fractionDigits); - } - if (props.colDef.context?.numeric && isNaN(value)) { - value = null; - } - return { value: value, tooltip: tooltipValue }; -}; - -export interface NumericCellRendererProps extends CustomCellRendererProps { - fractionDigits?: number; -} - -export const NumericCellRenderer = (props: NumericCellRendererProps) => { - const numericalValue = typeof props.value === 'number' ? props.value : Number.parseFloat(props.value); - const cellValue = formatNumericCell(numericalValue, props.fractionDigits); - return ( - - - {cellValue.value} - - - ); -}; - -const BaseCellRenderer = ({ value, tooltip }: BaseCellRendererProps) => ( - - - {value} - - -); - -export const ErrorCellRenderer = (props: CustomCellRendererProps) => { - const intl = useIntl(); - const errorMessage = intl.formatMessage({ id: props.value?.error }); - const errorValue = intl.formatMessage({ id: FORMULA_ERROR_KEY }); - return ; -}; - -export const DefaultCellRenderer = (props: CustomCellRendererProps) => { - const cellValue = formatCell(props).value?.toString(); - return ; -}; - -export const NetworkModificationNameCellRenderer = (props: CustomCellRendererProps) => { - return ( - - - {props.value} - - - ); -}; - -export const MessageLogCellRenderer = ({ - param, - highlightColor, - currentHighlightColor, - searchTerm, - currentResultIndex, - searchResults, -}: { - param: ICellRendererParams; - highlightColor?: string; - currentHighlightColor?: string; - searchTerm?: string; - currentResultIndex?: number; - searchResults?: number[]; -}) => { - const marginLeft = (param.data?.depth ?? 0) * 2; // add indentation based on depth - const textRef = useRef(null); - const [isEllipsisActive, setIsEllipsisActive] = useState(false); - - const checkEllipsis = () => { - if (textRef.current) { - const zoomLevel = window.devicePixelRatio; - const adjustedScrollWidth = textRef.current.scrollWidth / zoomLevel; - const adjustedClientWidth = textRef.current.clientWidth / zoomLevel; - setIsEllipsisActive(adjustedScrollWidth > adjustedClientWidth); - } - }; - - useEffect(() => { - checkEllipsis(); - const resizeObserver = new ResizeObserver(() => checkEllipsis()); - if (textRef.current) { - resizeObserver.observe(textRef.current); - } - - return () => { - resizeObserver.disconnect(); - }; - }, [param.value]); - - const escapeRegExp = (string: string) => { - return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); - }; - - const renderHighlightedText = (value: string) => { - if (!searchTerm || searchTerm === '') { - return value; - } - - const escapedSearchTerm = escapeRegExp(searchTerm); - const parts = value.split(new RegExp(`(${escapedSearchTerm})`, 'gi')); - return ( - - {parts.map((part: string, index: number) => - part.toLowerCase() === searchTerm.toLowerCase() ? ( - - {part} - - ) : ( - part - ) - )} - - ); - }; - - return ( - - - - {renderHighlightedText(param.value)} - - - - ); -}; - -export const ContingencyCellRenderer = ({ value }: { value: { cellValue: ReactNode; tooltipValue: ReactNode } }) => { - const { cellValue, tooltipValue } = value ?? {}; - - if (cellValue == null || tooltipValue == null) { - return null; - } - - return ( - - {tooltipValue}}> - {cellValue} - - - ); -}; diff --git a/src/components/dialogs/line-types-catalog/line-type-segment-form.tsx b/src/components/dialogs/line-types-catalog/line-type-segment-form.tsx index f83cbf7f6a..f6c6e9db53 100644 --- a/src/components/dialogs/line-types-catalog/line-type-segment-form.tsx +++ b/src/components/dialogs/line-types-catalog/line-type-segment-form.tsx @@ -29,13 +29,18 @@ import LineTypesCatalogSelectorDialog from './line-types-catalog-selector-dialog import { roundToDefaultPrecision } from '../../../utils/rounding'; import LineTypeSegmentCreation from './line-type-segment-creation'; import { calculateReactance, calculateResistance, calculateSusceptance } from '../../utils/utils'; -import { CustomAGGrid, type MuiStyles, snackWithFallback, useSnackMessage } from '@gridsuite/commons-ui'; +import { + CustomAGGrid, + DefaultCellRenderer, + type MuiStyles, + snackWithFallback, + useSnackMessage, +} from '@gridsuite/commons-ui'; import { getLineTypesCatalog } from '../../../services/network-modification'; import GridItem from '../commons/grid-item'; import { CurrentLimitsInfo, LineTypeInfo } from './line-catalog.type'; import { emptyLineSegment, SegmentFormData } from './segment-utils'; import { ColDef } from 'ag-grid-community'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; import GridSection from '../commons/grid-section'; const styles = { diff --git a/src/components/dialogs/line-types-catalog/use-column-definitions.ts b/src/components/dialogs/line-types-catalog/use-column-definitions.ts index 7bc437832a..9dd1a33e60 100644 --- a/src/components/dialogs/line-types-catalog/use-column-definitions.ts +++ b/src/components/dialogs/line-types-catalog/use-column-definitions.ts @@ -7,7 +7,7 @@ import { useIntl } from 'react-intl'; import { useCallback, useMemo } from 'react'; import { ColDef } from 'ag-grid-community'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; +import { DefaultCellRenderer } from '@gridsuite/commons-ui'; export const useColumnDefinitions = () => { const intl = useIntl(); diff --git a/src/components/dialogs/network-modifications/limit-sets/limit-sets-tabular-modification-form.tsx b/src/components/dialogs/network-modifications/limit-sets/limit-sets-tabular-modification-form.tsx index d67aa4ba4e..7852712621 100644 --- a/src/components/dialogs/network-modifications/limit-sets/limit-sets-tabular-modification-form.tsx +++ b/src/components/dialogs/network-modifications/limit-sets/limit-sets-tabular-modification-form.tsx @@ -10,7 +10,9 @@ import { FormattedMessage, useIntl } from 'react-intl'; import { useFormContext, useWatch } from 'react-hook-form'; import { AutocompleteInput, + BooleanNullableCellRenderer, CustomAGGrid, + DefaultCellRenderer, ErrorInput, FieldErrorAlert, IntegerInput, @@ -19,15 +21,14 @@ import { } from '@gridsuite/commons-ui'; import { AMOUNT_TEMPORARY_LIMITS, - EQUIPMENT_ID, CSV_FILENAME, + EQUIPMENT_ID, MODIFICATIONS_TABLE, TYPE, } from 'components/utils/field-constants'; import { EQUIPMENT_TYPES } from 'components/utils/equipment-types'; import CsvDownloader from 'react-csv-downloader'; import { Alert, Button, Grid } from '@mui/material'; -import { BooleanNullableCellRenderer, DefaultCellRenderer } from 'components/custom-aggrid/cell-renderers'; import Papa from 'papaparse'; import { ColDef } from 'ag-grid-community'; import GridItem from '../../commons/grid-item'; @@ -35,7 +36,7 @@ import { useCSVPicker } from 'components/utils/inputs/input-hooks'; import { AGGRID_LOCALES } from '../../../../translations/not-intl/aggrid-locales'; import { useSelector } from 'react-redux'; import { AppState } from '../../../../redux/reducer'; -import { isFieldTypeOk, setFieldTypeError, transformIfFrenchNumber, TabularField } from '../tabular/tabular-common'; +import { isFieldTypeOk, setFieldTypeError, TabularField, transformIfFrenchNumber } from '../tabular/tabular-common'; import { LIMIT_SETS_TABULAR_MODIFICATION_EQUIPMENTS, LIMIT_SETS_TABULAR_MODIFICATION_FIXED_FIELDS, diff --git a/src/components/dialogs/network-modifications/tabular/tabular-form.tsx b/src/components/dialogs/network-modifications/tabular/tabular-form.tsx index 3ece800dd5..0e16fe5862 100644 --- a/src/components/dialogs/network-modifications/tabular/tabular-form.tsx +++ b/src/components/dialogs/network-modifications/tabular/tabular-form.tsx @@ -10,29 +10,30 @@ import { FormattedMessage, useIntl } from 'react-intl'; import { useFormContext, useWatch } from 'react-hook-form'; import { AutocompleteInput, + BooleanNullableCellRenderer, CustomAGGrid, + DefaultCellRenderer, + DirectoryItemSelector, + ElementType, ErrorInput, fetchStudyMetadata, FieldErrorAlert, LANG_FRENCH, + type MuiStyles, + type TreeViewFinderNodeProps, useSnackMessage, useStateBoolean, - DirectoryItemSelector, - ElementType, - type TreeViewFinderNodeProps, - type MuiStyles, } from '@gridsuite/commons-ui'; import { + CSV_FILENAME, EQUIPMENT_ID, MODIFICATIONS_TABLE, - CSV_FILENAME, TABULAR_PROPERTIES, TYPE, } from 'components/utils/field-constants'; import { EQUIPMENT_TYPES } from 'components/utils/equipment-types'; import CsvDownloader from 'react-csv-downloader'; import { Alert, Button, Grid } from '@mui/material'; -import { BooleanNullableCellRenderer, DefaultCellRenderer } from 'components/custom-aggrid/cell-renderers'; import Papa from 'papaparse'; import GridItem from '../../commons/grid-item'; import { useCSVPicker } from 'components/utils/inputs/input-hooks'; diff --git a/src/components/dialogs/network-modifications/voltage-init-modification/voltage-init-modification-dialog.tsx b/src/components/dialogs/network-modifications/voltage-init-modification/voltage-init-modification-dialog.tsx index 32f65b11b9..a357f667e5 100644 --- a/src/components/dialogs/network-modifications/voltage-init-modification/voltage-init-modification-dialog.tsx +++ b/src/components/dialogs/network-modifications/voltage-init-modification/voltage-init-modification-dialog.tsx @@ -7,7 +7,13 @@ import { FunctionComponent, useCallback, useMemo, useRef, useState } from 'react'; import { BasicModificationDialog } from '../../commons/basicModificationDialog'; -import { BooleanCellRenderer, DefaultCellRenderer } from '../../../custom-aggrid/cell-renderers'; +import { + BooleanCellRenderer, + CsvExport, + CustomAGGrid, + DefaultCellRenderer, + type MuiStyles, +} from '@gridsuite/commons-ui'; import { FormattedMessage, useIntl } from 'react-intl'; import { Box, Grid, Tab, Tabs } from '@mui/material'; import { useOpenShortWaitFetching } from '../../commons/handle-modification-form'; @@ -24,7 +30,6 @@ import { V, VOLTAGE_SET_POINT, } from '../../../utils/field-constants'; -import { CustomAGGrid, CsvExport, type MuiStyles } from '@gridsuite/commons-ui'; import { AgGridReact } from 'ag-grid-react'; import { FetchStatus } from '../../../../services/utils.type'; import type { ColDef, RowDataUpdatedEvent } from 'ag-grid-community'; diff --git a/src/components/graph/menus/network-modifications/network-modifications-table.tsx b/src/components/graph/menus/network-modifications/network-modifications-table.tsx index 4b21e4990f..0b4a0504b8 100644 --- a/src/components/graph/menus/network-modifications/network-modifications-table.tsx +++ b/src/components/graph/menus/network-modifications/network-modifications-table.tsx @@ -5,11 +5,12 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import React, { useCallback, useEffect, useMemo, SetStateAction, useRef } from 'react'; +import React, { SetStateAction, useCallback, useEffect, useMemo, useRef } from 'react'; import { CustomAGGrid, type MuiStyles, type NetworkModificationMetadata, + NetworkModificationNameCellRenderer, useModificationLabelComputer, } from '@gridsuite/commons-ui'; import type { @@ -37,7 +38,6 @@ import RootNetworkChipCellRenderer from './root-network-chip-cell-renderer'; import SwitchCellRenderer from './switch-cell-renderer'; import { AGGRID_LOCALES } from '../../../../translations/not-intl/aggrid-locales'; import { ExcludedNetworkModifications } from './network-modification-menu.type'; -import { NetworkModificationNameCellRenderer } from 'components/custom-aggrid/cell-renderers'; import { AgGridReact } from 'ag-grid-react'; const styles = { diff --git a/src/components/report-viewer/log-table.tsx b/src/components/report-viewer/log-table.tsx index 448bf6e923..e7b9f38ebd 100644 --- a/src/components/report-viewer/log-table.tsx +++ b/src/components/report-viewer/log-table.tsx @@ -6,7 +6,7 @@ */ import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { useIntl } from 'react-intl'; -import { CustomAGGrid, type MuiStyles, type SxStyle } from '@gridsuite/commons-ui'; +import { CustomAGGrid, MessageLogCellRenderer, type MuiStyles, type SxStyle } from '@gridsuite/commons-ui'; import { alpha, useTheme } from '@mui/material/styles'; import { setLogsFilter } from '../../redux/actions'; import { makeAgGridCustomHeaderColumn } from 'components/custom-aggrid/utils/custom-aggrid-header-utils'; @@ -28,7 +28,6 @@ import { ComputingAndNetworkModificationType, Log, SelectedReportLog, SeverityLe import { COMPUTING_AND_NETWORK_MODIFICATION_TYPE } from 'utils/report/report.constant'; import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'; import VisibilityIcon from '@mui/icons-material/Visibility'; -import { MessageLogCellRenderer } from 'components/custom-aggrid/cell-renderers'; import { CustomAggridComparatorFilter } from '../custom-aggrid/custom-aggrid-filters/custom-aggrid-comparator-filter'; import { useFilterSelector } from '../../hooks/use-filter-selector'; import { FilterConfig, FilterType } from '../../types/custom-aggrid-types'; diff --git a/src/components/results/dynamic-security-analysis/dynamic-security-analysis-result-synthesis.tsx b/src/components/results/dynamic-security-analysis/dynamic-security-analysis-result-synthesis.tsx index b5f3a49004..b8a21c8ccc 100644 --- a/src/components/results/dynamic-security-analysis/dynamic-security-analysis-result-synthesis.tsx +++ b/src/components/results/dynamic-security-analysis/dynamic-security-analysis-result-synthesis.tsx @@ -11,11 +11,10 @@ import { memo, useMemo } from 'react'; import { useSelector } from 'react-redux'; import { getNoRowsMessage, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; import { makeAgGridCustomHeaderColumn } from '../../custom-aggrid/utils/custom-aggrid-header-utils'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; +import { ComputingType, CustomAGGrid, DefaultCellRenderer, type MuiStyles } from '@gridsuite/commons-ui'; import { COL_STATUS, StatusCellRender } from '../common/result-cell-renderers'; import type { UUID } from 'node:crypto'; import { AppState } from '../../../redux/reducer'; -import { CustomAGGrid, ComputingType, type MuiStyles } from '@gridsuite/commons-ui'; import { fetchDynamicSecurityAnalysisStatus } from '../../../services/study/dynamic-security-analysis'; import { MEDIUM_COLUMN_WIDTH } from '../dynamicsimulation/utils/dynamic-simulation-result-utils'; import { dynamicSecurityAnalysisResultInvalidations } from '../../computing-status/use-all-computing-status'; diff --git a/src/components/results/dynamicsimulation/dynamic-simulation-result-synthesis.tsx b/src/components/results/dynamicsimulation/dynamic-simulation-result-synthesis.tsx index 47dff27e9e..95051a3fe4 100644 --- a/src/components/results/dynamicsimulation/dynamic-simulation-result-synthesis.tsx +++ b/src/components/results/dynamicsimulation/dynamic-simulation-result-synthesis.tsx @@ -13,11 +13,10 @@ import { MEDIUM_COLUMN_WIDTH } from './utils/dynamic-simulation-result-utils'; import { useSelector } from 'react-redux'; import { getNoRowsMessage, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; import { makeAgGridCustomHeaderColumn } from '../../custom-aggrid/utils/custom-aggrid-header-utils'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; +import { ComputingType, CustomAGGrid, DefaultCellRenderer, type MuiStyles } from '@gridsuite/commons-ui'; import { COL_STATUS, StatusCellRender } from '../common/result-cell-renderers'; import type { UUID } from 'node:crypto'; import { AppState } from '../../../redux/reducer'; -import { CustomAGGrid, ComputingType, type MuiStyles } from '@gridsuite/commons-ui'; import { dynamicSimulationResultInvalidations } from '../../computing-status/use-all-computing-status'; import { useNodeData } from 'components/use-node-data'; import { AGGRID_LOCALES } from '../../../translations/not-intl/aggrid-locales'; diff --git a/src/components/results/dynamicsimulation/dynamic-simulation-result-timeline.tsx b/src/components/results/dynamicsimulation/dynamic-simulation-result-timeline.tsx index a0cf137777..dcf13ce73e 100644 --- a/src/components/results/dynamicsimulation/dynamic-simulation-result-timeline.tsx +++ b/src/components/results/dynamicsimulation/dynamic-simulation-result-timeline.tsx @@ -9,7 +9,7 @@ import { Box, LinearProgress } from '@mui/material'; import { memo, useMemo, useRef } from 'react'; import { useIntl } from 'react-intl'; import { makeAgGridCustomHeaderColumn } from '../../custom-aggrid/utils/custom-aggrid-header-utils'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; +import { ComputingType, CustomAGGrid, DefaultCellRenderer, type MuiStyles } from '@gridsuite/commons-ui'; import { getNoRowsMessage, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; import { useSelector } from 'react-redux'; import { AppState } from '../../../redux/reducer'; @@ -18,7 +18,6 @@ import { TimelineEventKeyType } from './types/dynamic-simulation-result.type'; import { LARGE_COLUMN_WIDTH, MEDIUM_COLUMN_WIDTH, MIN_COLUMN_WIDTH } from './utils/dynamic-simulation-result-utils'; import { NumberCellRenderer } from '../common/result-cell-renderers'; import { DYNAMIC_SIMULATION_RESULT_SORT_STORE, TIMELINE } from 'utils/store-sort-filter-fields'; -import { CustomAGGrid, ComputingType, type MuiStyles } from '@gridsuite/commons-ui'; import { CustomAggridComparatorFilter } from '../../custom-aggrid/custom-aggrid-filters/custom-aggrid-comparator-filter'; import { AgGridReact } from 'ag-grid-react'; import { FilterType } from '../../../types/custom-aggrid-types'; diff --git a/src/components/results/loadflow/limit-violation-result.tsx b/src/components/results/loadflow/limit-violation-result.tsx index 647c99cbf4..cc489263d2 100644 --- a/src/components/results/loadflow/limit-violation-result.tsx +++ b/src/components/results/loadflow/limit-violation-result.tsx @@ -13,7 +13,7 @@ import { RowClassParams } from 'ag-grid-community'; import { LimitViolationResultProps } from './load-flow-result.type'; import { getNoRowsMessage, getRows, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; +import { ComputingType, DefaultCellRenderer } from '@gridsuite/commons-ui'; import LinearProgress from '@mui/material/LinearProgress'; import { RunningStatus } from '../../utils/running-status'; @@ -21,7 +21,6 @@ import { useOpenLoaderShortWait } from '../../dialogs/commons/handle-loader'; import { RESULTS_LOADING_DELAY } from '../../network/constants'; import { RenderTableAndExportCsv } from '../../utils/renderTable-ExportCsv'; import { AgGridReact } from 'ag-grid-react'; -import { ComputingType } from '@gridsuite/commons-ui'; import { AppState } from 'redux/reducer'; export const LimitViolationResult: FunctionComponent = ({ diff --git a/src/components/results/loadflow/load-flow-result.tsx b/src/components/results/loadflow/load-flow-result.tsx index f164ce1207..36ade1d97d 100644 --- a/src/components/results/loadflow/load-flow-result.tsx +++ b/src/components/results/loadflow/load-flow-result.tsx @@ -13,7 +13,7 @@ import { RowClassParams } from 'ag-grid-community'; import { LoadflowResultProps } from './load-flow-result.type'; import { getNoRowsMessage, getRows, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; +import { ComputingType, DefaultCellRenderer } from '@gridsuite/commons-ui'; import LinearProgress from '@mui/material/LinearProgress'; import { RunningStatus } from '../../utils/running-status'; @@ -22,7 +22,6 @@ import { RESULTS_LOADING_DELAY } from '../../network/constants'; import { RenderTableAndExportCsv } from '../../utils/renderTable-ExportCsv'; import { formatComponentResult } from './load-flow-result-utils'; import { AgGridReact } from 'ag-grid-react'; -import { ComputingType } from '@gridsuite/commons-ui'; import { AppState } from 'redux/reducer'; export const LoadFlowResult: FunctionComponent = ({ result, isLoadingResult, columnDefs }) => { diff --git a/src/components/results/pccmin/pcc-min-result-table.tsx b/src/components/results/pccmin/pcc-min-result-table.tsx index e1a4d0365f..dd7e4aead9 100644 --- a/src/components/results/pccmin/pcc-min-result-table.tsx +++ b/src/components/results/pccmin/pcc-min-result-table.tsx @@ -11,8 +11,7 @@ import { Box } from '@mui/material'; import { getNoRowsMessage, getRows, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; import { useSelector } from 'react-redux'; import { AppState } from '../../../redux/reducer'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; -import { ComputingType } from '@gridsuite/commons-ui'; +import { ComputingType, DefaultCellRenderer } from '@gridsuite/commons-ui'; import { getPccMinColumns, PccMinResultTableProps } from './pcc-min-result.type'; import { AgGridReact } from 'ag-grid-react'; diff --git a/src/components/results/securityanalysis/security-analysis-result-utils.ts b/src/components/results/securityanalysis/security-analysis-result-utils.ts index e4928b216a..89d02f0acd 100644 --- a/src/components/results/securityanalysis/security-analysis-result-utils.ts +++ b/src/components/results/securityanalysis/security-analysis-result-utils.ts @@ -16,7 +16,7 @@ import { } from './security-analysis.type'; import { IntlShape } from 'react-intl'; import { ColDef, PostSortRowsParams, ValueFormatterParams, ValueGetterParams } from 'ag-grid-community'; -import { ContingencyCellRenderer } from 'components/custom-aggrid/cell-renderers'; +import { ComputingType, ContingencyCellRenderer } from '@gridsuite/commons-ui'; import { makeAgGridCustomHeaderColumn } from '../../custom-aggrid/utils/custom-aggrid-header-utils'; import { translateLimitNameBackToFront, translateLimitNameFrontToBack } from '../common/utils'; import { @@ -25,7 +25,6 @@ import { SECURITY_ANALYSIS_RESULT_SORT_STORE, } from 'utils/store-sort-filter-fields'; import { fetchAvailableFilterEnumValues } from '../../../services/study'; -import { ComputingType } from '@gridsuite/commons-ui'; import { useSelector } from 'react-redux'; import { AppState } from 'redux/reducer'; import { UNDEFINED_ACCEPTABLE_DURATION } from '../../utils/utils'; diff --git a/src/components/results/securityanalysis/security-analysis-table.tsx b/src/components/results/securityanalysis/security-analysis-table.tsx index 98d967a230..3e1d9f02de 100644 --- a/src/components/results/securityanalysis/security-analysis-table.tsx +++ b/src/components/results/securityanalysis/security-analysis-table.tsx @@ -10,10 +10,9 @@ import { SecurityAnalysisResultProps } from './security-analysis.type'; import { getNoRowsMessage, getRows, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; import { GridReadyEvent } from 'ag-grid-community'; import { IntlShape, useIntl } from 'react-intl'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; +import { ComputingType, CustomAGGrid, DefaultCellRenderer } from '@gridsuite/commons-ui'; import { useSelector } from 'react-redux'; import { AppState } from '../../../redux/reducer'; -import { CustomAGGrid, ComputingType } from '@gridsuite/commons-ui'; import { AGGRID_LOCALES } from '../../../translations/not-intl/aggrid-locales'; export const SecurityAnalysisTable: FunctionComponent = ({ diff --git a/src/components/results/sensitivity-analysis/sensitivity-analysis-result.tsx b/src/components/results/sensitivity-analysis/sensitivity-analysis-result.tsx index 41380b56dc..b209cf6626 100644 --- a/src/components/results/sensitivity-analysis/sensitivity-analysis-result.tsx +++ b/src/components/results/sensitivity-analysis/sensitivity-analysis-result.tsx @@ -10,13 +10,12 @@ import { useCallback, useMemo, useRef } from 'react'; import { TOOLTIP_DELAY } from 'utils/UIconstants'; import { getNoRowsMessage, getRows, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; import { useSelector } from 'react-redux'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; +import { ComputingType, CustomAGGrid, CustomAGGridProps, DefaultCellRenderer } from '@gridsuite/commons-ui'; import { useOpenLoaderShortWait } from '../../dialogs/commons/handle-loader'; import { RunningStatus } from '../../utils/running-status'; import { RESULTS_LOADING_DELAY } from '../../network/constants'; import { Box, LinearProgress } from '@mui/material'; import { mappingTabs, SUFFIX_TYPES } from './sensitivity-analysis-result-utils.js'; -import { CustomAGGrid, CustomAGGridProps, ComputingType } from '@gridsuite/commons-ui'; import { SENSITIVITY_ANALYSIS_RESULT_SORT_STORE } from '../../../utils/store-sort-filter-fields'; import { FilterType as AgGridFilterType } from '../../../types/custom-aggrid-types'; import { makeAgGridCustomHeaderColumn } from '../../custom-aggrid/utils/custom-aggrid-header-utils'; diff --git a/src/components/results/shortcircuit/shortcircuit-analysis-result-table.tsx b/src/components/results/shortcircuit/shortcircuit-analysis-result-table.tsx index 764621fc79..75f9681116 100644 --- a/src/components/results/shortcircuit/shortcircuit-analysis-result-table.tsx +++ b/src/components/results/shortcircuit/shortcircuit-analysis-result-table.tsx @@ -19,16 +19,21 @@ import { import { getNoRowsMessage, getRows, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; import { useSelector } from 'react-redux'; import { AppState } from '../../../redux/reducer'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; +import { + ComputingType, + CustomAGGrid, + DefaultCellRenderer, + OverflowableText, + unitToKiloUnit, +} from '@gridsuite/commons-ui'; import { makeAgGridCustomHeaderColumn } from '../../custom-aggrid/utils/custom-aggrid-header-utils'; -import { CustomAGGrid, unitToKiloUnit, ComputingType, OverflowableText } from '@gridsuite/commons-ui'; import { convertSide } from '../loadflow/load-flow-result-utils'; import { CustomAggridComparatorFilter } from '../../custom-aggrid/custom-aggrid-filters/custom-aggrid-comparator-filter'; import { CustomAggridAutocompleteFilter } from '../../custom-aggrid/custom-aggrid-filters/custom-aggrid-autocomplete-filter'; import { SHORTCIRCUIT_ANALYSIS_RESULT_SORT_STORE } from '../../../utils/store-sort-filter-fields'; import { - FilterType as AgGridFilterType, FilterConfig, + FilterType as AgGridFilterType, numericFilterParams, textFilterParams, } from '../../../types/custom-aggrid-types'; diff --git a/src/components/results/stateestimation/state-estimation-quality-result.tsx b/src/components/results/stateestimation/state-estimation-quality-result.tsx index 9854e025c5..e6c6f12141 100644 --- a/src/components/results/stateestimation/state-estimation-quality-result.tsx +++ b/src/components/results/stateestimation/state-estimation-quality-result.tsx @@ -11,11 +11,10 @@ import { useSelector } from 'react-redux'; import { Box, useTheme } from '@mui/material'; import { RowClassParams } from 'ag-grid-community'; -import { ComputingType } from '@gridsuite/commons-ui'; +import { ComputingType, DefaultCellRenderer } from '@gridsuite/commons-ui'; import { AppState } from '../../../redux/reducer'; import { getNoRowsMessage, getRows, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; -import { DefaultCellRenderer } from '../../custom-aggrid/cell-renderers'; import LinearProgress from '@mui/material/LinearProgress'; import { RunningStatus } from '../../utils/running-status'; diff --git a/src/components/spreadsheet-view/columns/common-column-definitions.ts b/src/components/spreadsheet-view/columns/common-column-definitions.ts index 574cc7d65e..0dbd0ed093 100644 --- a/src/components/spreadsheet-view/columns/common-column-definitions.ts +++ b/src/components/spreadsheet-view/columns/common-column-definitions.ts @@ -6,9 +6,9 @@ */ import { COLUMN_TYPES } from '../../custom-aggrid/custom-aggrid-header.type'; import { CustomAggridBooleanFilter } from '../../custom-aggrid/custom-aggrid-filters/custom-aggrid-boolean-filter'; -import { BooleanCellRenderer, DefaultCellRenderer, NumericCellRenderer } from '../../custom-aggrid/cell-renderers'; +import { BooleanCellRenderer, DefaultCellRenderer, NumericCellRenderer } from '@gridsuite/commons-ui'; import { RowIndexCellRenderer } from 'components/custom-aggrid/rowindex-cell-renderer'; -import type { ColDef, IFilterOptionDef, GridApi } from 'ag-grid-community'; +import type { ColDef, GridApi, IFilterOptionDef } from 'ag-grid-community'; import CustomHeaderComponent from '../../custom-aggrid/custom-aggrid-header'; import { CustomAggridComparatorFilter } from '../../custom-aggrid/custom-aggrid-filters/custom-aggrid-comparator-filter'; import { SPREADSHEET_SORT_STORE } from '../../../utils/store-sort-filter-fields'; diff --git a/src/components/spreadsheet-view/columns/utils/column-mapper.ts b/src/components/spreadsheet-view/columns/utils/column-mapper.ts index 7e1da76d73..6138c48760 100644 --- a/src/components/spreadsheet-view/columns/utils/column-mapper.ts +++ b/src/components/spreadsheet-view/columns/utils/column-mapper.ts @@ -21,7 +21,7 @@ import { type CustomColDef, } from '../../../custom-aggrid/custom-aggrid-filters/custom-aggrid-filter.type'; import { isCalculationRow } from '../../utils/calculation-utils'; -import { ErrorCellRenderer } from '../../../custom-aggrid/cell-renderers'; +import { ErrorCellRenderer } from '@gridsuite/commons-ui'; const createValueGetter = (colDef: ColumnDefinition) => From 00eadfe2c6785cc7ec1b5fbe393cc85c6093a3ca Mon Sep 17 00:00:00 2001 From: Florent MILLOT <75525996+flomillot@users.noreply.github.com> Date: Wed, 26 Nov 2025 12:29:35 +0100 Subject: [PATCH 3/4] CLEAR IMPORTS Signed-off-by: Florent MILLOT <75525996+flomillot@users.noreply.github.com> --- src/components/results/pccmin/pcc-min-result-table.tsx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/components/results/pccmin/pcc-min-result-table.tsx b/src/components/results/pccmin/pcc-min-result-table.tsx index b0205be38f..e418e53b5e 100644 --- a/src/components/results/pccmin/pcc-min-result-table.tsx +++ b/src/components/results/pccmin/pcc-min-result-table.tsx @@ -11,12 +11,8 @@ import { Box, Button, LinearProgress } from '@mui/material'; import { useDispatch, useSelector } from 'react-redux'; import { AppState } from '../../../redux/reducer'; import { AgGridReact } from 'ag-grid-react'; -import { CustomAGGrid, ComputingType, OverflowableText } from '@gridsuite/commons-ui'; +import { ComputingType, CustomAGGrid, DefaultCellRenderer, OverflowableText } from '@gridsuite/commons-ui'; import { getNoRowsMessage, getRows, useIntlResultStatusMessages } from '../../utils/aggrid-rows-handler'; -import { useSelector } from 'react-redux'; -import { AppState } from '../../../redux/reducer'; -import { ComputingType, DefaultCellRenderer } from '@gridsuite/commons-ui'; - import { getPccMinColumns, PccMinResultTableProps } from './pcc-min-result.type'; import { RESULTS_LOADING_DELAY } from 'components/network/constants'; import RunningStatus from 'components/utils/running-status'; From a26914fe039effb35ee61ea555828442032a6c9f Mon Sep 17 00:00:00 2001 From: Florent MILLOT <75525996+flomillot@users.noreply.github.com> Date: Wed, 26 Nov 2025 16:37:17 +0100 Subject: [PATCH 4/4] fix bad merge, remove file Signed-off-by: Florent MILLOT <75525996+flomillot@users.noreply.github.com> --- src/components/tree-tab.jsx | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/components/tree-tab.jsx diff --git a/src/components/tree-tab.jsx b/src/components/tree-tab.jsx deleted file mode 100644 index e69de29bb2..0000000000