From 4f28c5dc13e9d3a81da3252398d0c9aea3c2aff8 Mon Sep 17 00:00:00 2001 From: rozetko Date: Thu, 11 Jul 2024 18:26:38 +0300 Subject: [PATCH] state: new `getYScaleByOrientation` function --- src/models/series.ts | 3 ++- src/models/state.ts | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/models/series.ts b/src/models/series.ts index 15a9f59..746fc5c 100644 --- a/src/models/series.ts +++ b/src/models/series.ts @@ -35,6 +35,7 @@ export class CoreSeries { _series: Array = []; constructor(series: T[], private _podDefaults?: Partial) { + // TODO: create separate Serie class, and store instances in this._series this.setSeries(series); } @@ -83,7 +84,7 @@ export class CoreSeries { get isSeriesAvailable(): boolean { if(this.visibleSeries.length > 0) { const seriesEmptiness = lodashMap(this.visibleSeries, this._isSerieEmpty.bind(this)); - + return lodashIncludes(seriesEmptiness, false); } return false; diff --git a/src/models/state.ts b/src/models/state.ts index bb2c726..7b37fa9 100755 --- a/src/models/state.ts +++ b/src/models/state.ts @@ -1,4 +1,4 @@ -import { Serie, Options } from '../types'; +import { Serie, Options, yAxisOrientation } from '../types'; import { CoreSeries } from './series'; import { CoreOptions } from './options'; @@ -89,6 +89,15 @@ export class PodState { this._transform = { x: 0, y: 0, k: 1 }; } + getYScaleByOrientation(orientation?: yAxisOrientation): d3.ScaleLinear { + // TODO: we set defaults in Series class, so we don't expect `undefined` here + // we can remove this check when we implement Serie class (see TODO in `series.ts`) + if(orientation === undefined) { + return this._yScale; + } + return orientation === yAxisOrientation.LEFT ? this._yScale : this._y1Scale; + } + get yScale(): d3.ScaleLinear { return this._yScale; }