diff --git a/package-lock.json b/package-lock.json index 61e06a49d1..d5f7724dd4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "@mui/material": "^5.18.0", "@mui/x-charts": "^7.29.1", "@mui/x-tree-view": "^7.29.1", - "@powsybl/network-viewer": "1.11.0", + "@powsybl/network-viewer": "1.12.0", "@reduxjs/toolkit": "^2.9.0", "@svgdotjs/svg.js": "^3.2.4", "@xyflow/react": "^12.8.4", @@ -5406,9 +5406,9 @@ } }, "node_modules/@powsybl/network-viewer": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@powsybl/network-viewer/-/network-viewer-1.11.0.tgz", - "integrity": "sha512-rNu6J8Ibpn656iYtpwTmDBTD4qDEMYwAikb42/t8ugDIoDxlFJF55EqlPlxlTneql/hB2SsMZxD7TKpTnfeGwQ==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@powsybl/network-viewer/-/network-viewer-1.12.0.tgz", + "integrity": "sha512-vOkltTHZaJG1mXjtPaTvUd4/M4mFuXvo1HfjIC9rkku519pXkI1mrTCIiKn7YFP+V1m1/TnRKmRXWMPyghTwig==", "hasInstallScript": true, "license": "MPL-2.0", "dependencies": { diff --git a/package.json b/package.json index 584ae805f5..b4cae291be 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@mui/material": "^5.18.0", "@mui/x-charts": "^7.29.1", "@mui/x-tree-view": "^7.29.1", - "@powsybl/network-viewer": "1.11.0", + "@powsybl/network-viewer": "1.12.0", "@reduxjs/toolkit": "^2.9.0", "@svgdotjs/svg.js": "^3.2.4", "@xyflow/react": "^12.8.4", diff --git a/src/components/grid-layout/cards/diagrams/networkAreaDiagram/network-area-diagram-content.tsx b/src/components/grid-layout/cards/diagrams/networkAreaDiagram/network-area-diagram-content.tsx index 852637fe69..a0008670fa 100644 --- a/src/components/grid-layout/cards/diagrams/networkAreaDiagram/network-area-diagram-content.tsx +++ b/src/components/grid-layout/cards/diagrams/networkAreaDiagram/network-area-diagram-content.tsx @@ -23,6 +23,7 @@ import { DiagramMetadata, OnToggleNadHoverCallbackType, OnSelectNodeCallbackType, + NadViewerParametersOptions, } from '@powsybl/network-viewer'; import LinearProgress from '@mui/material/LinearProgress'; import Box from '@mui/material/Box'; @@ -293,41 +294,32 @@ function NetworkAreaDiagramContent(props: NetworkAreaDiagramContentProps) { useLayoutEffect(() => { if (props.svg && svgRef.current) { + const nadViewerParameters: NadViewerParametersOptions = { + minWidth: MIN_WIDTH, + minHeight: MIN_HEIGHT, + maxWidth: MAX_WIDTH_NETWORK_AREA_DIAGRAM, + maxHeight: MAX_HEIGHT_NETWORK_AREA_DIAGRAM, + enableDragInteraction: isEditNadMode, + enableLevelOfDetail: true, + zoomLevels: NAD_ZOOM_LEVELS, + addButtons: false, + onMoveNodeCallback: onMoveNodeCallback, + onMoveTextNodeCallback: onMoveTextNodeCallback, + onSelectNodeCallback: OnLeftClickCallback, + onToggleHoverCallback: OnToggleHoverCallback, + onRightClickCallback: showEquipmentMenu, + initialViewBox: diagramViewerRef?.current?.getViewBox(), + }; const diagramViewer = new NetworkAreaDiagramViewer( svgRef.current, props.svg, props.svgMetadata ?? null, - MIN_WIDTH, - MIN_HEIGHT, - MAX_WIDTH_NETWORK_AREA_DIAGRAM, - MAX_HEIGHT_NETWORK_AREA_DIAGRAM, - onMoveNodeCallback, - onMoveTextNodeCallback, - OnLeftClickCallback, - isEditNadMode, - true, - NAD_ZOOM_LEVELS, - OnToggleHoverCallback, - showEquipmentMenu, - false + nadViewerParameters ); // Update the diagram-pane's list of sizes with the width and height from the backend diagramSizeSetter(diagramId, props.svgType, diagramViewer.getWidth(), diagramViewer.getHeight()); - // If a previous diagram was loaded and the diagram's size remained the same, we keep - // the user's zoom and scroll state for the current render. - if ( - diagramViewerRef.current && - diagramViewer.getWidth() === diagramViewerRef.current.getWidth() && - diagramViewer.getHeight() === diagramViewerRef.current.getHeight() - ) { - const viewBox = diagramViewerRef.current.getViewBox(); - if (viewBox) { - diagramViewer.setViewBox(viewBox); - } - } - // Repositioning the nodes with specified positions if (props.customPositions.length > 0) { props.customPositions.forEach((position) => {