From 44a704091db3098e40f47bbadf881742f050ee15 Mon Sep 17 00:00:00 2001 From: Vladislav Poddubskii Date: Tue, 4 Feb 2025 19:04:08 +0000 Subject: [PATCH] Pull request #5473: [DXCF-5818], [DXCF-5817] [Web] Multiple scales - Indicators that were previously combined are displayed separately after page reload Merge in DXCHARTS/dxchart5 from bugfix/DXCF-5817-web-multiple-scales-indicators-that-were-previously-combined-are-displayed to master * commit '1cf1311d9a55520a110c10131227179b4aadcfe8': [DXCF-5818], [DXCF-5817] [Web] Multiple scales - Indicators that were previously combined are displayed separately after page reload // source event to update scales fix and code style fix [DXCF-5818], [DXCF-5817] [Web] Multiple scales - Indicators that were previously combined are displayed separately after page reload // code style fix [DXCF-5818], [DXCF-5817] [Web] Multiple scales - Indicators that were previously combined are displayed separately after page reload [DXCF-5817] [Web] Multiple scales - Indicators that were previously combined are displayed separately after page reload // change Overlaying rearrange order fix [DXCF-5817] [Web] Multiple scales - Indicators that were previously combined are displayed separately after page reload // ScalePlacement for some reason lost its type [DXCF-5817] [Web] Multiple scales - Indicators that were previously combined are displayed separately after page reload // rearrange that lost [DXCF-5817] [Web] Multiple scales - Indicators that were previously combined are displayed separately after page reload GitOrigin-RevId: 5b249aa0c8ecaefed4f686b26d5d5dd3536fbd02 --- .../components/pane/pane-manager.component.ts | 10 ++++++++-- src/chart/components/pane/pane.component.ts | 14 +++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/chart/components/pane/pane-manager.component.ts b/src/chart/components/pane/pane-manager.component.ts index f86d657..25596b9 100644 --- a/src/chart/components/pane/pane-manager.component.ts +++ b/src/chart/components/pane/pane-manager.component.ts @@ -316,7 +316,7 @@ export class PaneManager extends ChartBaseElement { const onNewScale = extentIdx && extentIdx > 0; if (!pane) { - const order = direction && direction === 'above' ? index : this.panesOrder.length + index; + const order = direction && direction === 'above' ? index : index + 1; const newPane = this.createPane(paneUUID, { order, initialYAxisState }); newPane.moveDataSeriesToExistingExtentComponent( dataSeries, @@ -330,7 +330,13 @@ export class PaneManager extends ChartBaseElement { } if (extent && !onNewScale) { - pane.moveDataSeriesToExistingExtentComponent(dataSeries, initialPane, initialExtent, extent); + pane.moveDataSeriesToExistingExtentComponent( + dataSeries, + initialPane, + initialExtent, + extent, + isForceKeepPane, + ); } else { pane.moveDataSeriesToNewExtentComponent( dataSeries, diff --git a/src/chart/components/pane/pane.component.ts b/src/chart/components/pane/pane.component.ts index 436c635..6c0df7d 100644 --- a/src/chart/components/pane/pane.component.ts +++ b/src/chart/components/pane/pane.component.ts @@ -263,9 +263,11 @@ export class PaneComponent extends ChartBaseElement { return yExtentComponent; } - public removeExtentComponent(extentComponent: YExtentComponent) { - extentComponent.disable(); - this.yExtentComponents.splice(extentComponent.idx, 1); + public removeExtentComponents(extentComponents: YExtentComponent[]) { + extentComponents.forEach(extentComponent => extentComponent.disable()); + this.yExtentComponents = this.yExtentComponents.filter( + current => !extentComponents.map(excluded => excluded.idx).includes(current.idx), + ); // re-index extents this.yExtentComponents.forEach((c, idx) => (c.idx = idx)); this.canvasBoundsContainer.updateYAxisWidths(); @@ -284,7 +286,7 @@ export class PaneComponent extends ChartBaseElement { const extent = this.createExtentComponent(); extent.yAxis.setYAxisAlign(align); dataSeries.forEach(series => series.moveToExtent(extent)); - initialExtent.dataSeries.size === 0 && initialPane.removeExtentComponent(initialExtent); + initialExtent.dataSeries.size === 0 && initialPane.removeExtentComponents([initialExtent]); } /** @@ -300,7 +302,9 @@ export class PaneComponent extends ChartBaseElement { isForceKeepExtent?: boolean, ) { dataSeries.forEach(series => series.moveToExtent(extentComponent)); - !isForceKeepExtent && initialExtent.dataSeries.size === 0 && initialPane.removeExtentComponent(initialExtent); + !isForceKeepExtent && + initialExtent.dataSeries.size === 0 && + initialPane.removeExtentComponents([initialExtent]); this.yExtentComponentsChangedSubject.next(); }