From 39a717454db6d47676c935afbdf3e63205c21487 Mon Sep 17 00:00:00 2001 From: sBouzols Date: Thu, 9 Jul 2026 13:54:23 +0200 Subject: [PATCH 1/3] fix(nad-viewer): Drop nad-edge-infos from the SVG in adaptiveTextZoom mode it will be created from metadata even at init. Add a console warning if this kind of svg file is used with this mode Signed-off-by: sBouzols --- .../network-area-diagram-viewer.ts | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts b/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts index 9068b50b..4420d847 100644 --- a/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts +++ b/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts @@ -377,7 +377,16 @@ export class NetworkAreaDiagramViewer { this.textNodesSection = this.getOrCreateTextNodesSection(); this.textEdgesSection = this.getOrCreateTextEdgesSection(); - this.edgeInfosSection = this.getOrCreateEdgeInfosSection(); + // Do not get nad-edge-infos from the SVG in the following modes + // IT will be build later in the updateAdaptiveEdgeInfos at init + if (this.nadViewerParameters.getAdaptiveTextZoom().enabled) { + this.edgeInfosSection = this.createEmptyEdgeInfosSection(); + console.warn( + 'AdaptiveTextZoom mode : nad-edge-infos has been dropped from the SVG, it will be recreated from metadata' + ); + } else { + this.edgeInfosSection = this.getOrCreateEdgeInfosSection(); + } // add events const hasMetadata = this.diagramMetadata !== null; @@ -502,12 +511,17 @@ export class NetworkAreaDiagramViewer { return legendEdgesSection; } + private createEmptyEdgeInfosSection(): SVGElement { + const edgeInfos = document.createElementNS('http://www.w3.org/2000/svg', 'g'); + edgeInfos.classList.add('nad-edge-infos'); + this.innerSvg?.appendChild(edgeInfos); + return edgeInfos; + } + private getOrCreateEdgeInfosSection(): SVGElement { - let edgeInfos = this.innerSvg?.querySelector(':scope > g.nad-edge-infos'); + const edgeInfos = this.innerSvg?.querySelector(':scope > g.nad-edge-infos'); if (!edgeInfos) { - edgeInfos = document.createElementNS('http://www.w3.org/2000/svg', 'g'); - edgeInfos.classList.add('nad-edge-infos'); - this.innerSvg?.appendChild(edgeInfos); + return this.createEmptyEdgeInfosSection(); } return edgeInfos; } From 2712da180cfd8ebcc96191da91b063287db1f0bf Mon Sep 17 00:00:00 2001 From: sBouzols Date: Thu, 9 Jul 2026 14:04:53 +0200 Subject: [PATCH 2/3] update message from review Signed-off-by: sBouzols --- .../network-area-diagram-viewer/network-area-diagram-viewer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts b/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts index 4420d847..33ddad34 100644 --- a/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts +++ b/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts @@ -382,7 +382,7 @@ export class NetworkAreaDiagramViewer { if (this.nadViewerParameters.getAdaptiveTextZoom().enabled) { this.edgeInfosSection = this.createEmptyEdgeInfosSection(); console.warn( - 'AdaptiveTextZoom mode : nad-edge-infos has been dropped from the SVG, it will be recreated from metadata' + 'AdaptiveTextZoom mode activated: creating nad-edge-infos from metadata and ignoring it from the SVG' ); } else { this.edgeInfosSection = this.getOrCreateEdgeInfosSection(); From d51f85be457eabaaf1aed84a6b7c8f6ab5706605 Mon Sep 17 00:00:00 2001 From: sBouzols Date: Fri, 10 Jul 2026 16:05:58 +0200 Subject: [PATCH 3/3] replace existing edge infos section if exists Signed-off-by: sBouzols --- .../network-area-diagram-viewer.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts b/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts index 33ddad34..9456af8c 100644 --- a/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts +++ b/packages/network-viewer-core/src/network-area-diagram-viewer/network-area-diagram-viewer.ts @@ -377,13 +377,18 @@ export class NetworkAreaDiagramViewer { this.textNodesSection = this.getOrCreateTextNodesSection(); this.textEdgesSection = this.getOrCreateTextEdgesSection(); - // Do not get nad-edge-infos from the SVG in the following modes - // IT will be build later in the updateAdaptiveEdgeInfos at init + // Ignore nad-edge-infos from the SVG in the AdaptiveTextZoom mode at init + // It will be fullfilled later in the updateAdaptiveEdgeInfos if (this.nadViewerParameters.getAdaptiveTextZoom().enabled) { + // if the nad-edge-infos section exists in the SVG, replace it by an empty one + const existingEdgeInfos = this.innerSvg?.querySelector(':scope > g.nad-edge-infos'); + if (existingEdgeInfos) { + existingEdgeInfos.remove(); + console.warn( + 'AdaptiveTextZoom mode activated: creating nad-edge-infos from metadata and ignoring it from the SVG' + ); + } this.edgeInfosSection = this.createEmptyEdgeInfosSection(); - console.warn( - 'AdaptiveTextZoom mode activated: creating nad-edge-infos from metadata and ignoring it from the SVG' - ); } else { this.edgeInfosSection = this.getOrCreateEdgeInfosSection(); }