diff --git a/package.json b/package.json index 14a81a5..ec4e02e 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@chartwerk/core", - "version": "0.6.5", + "version": "0.6.6", "description": "Chartwerk core", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/models/series.ts b/src/models/series.ts index 20fd258..eec8698 100644 --- a/src/models/series.ts +++ b/src/models/series.ts @@ -25,6 +25,12 @@ export const CORE_SERIE_DEFAULTS = { color: undefined, }; +export enum Extremum { + MIN = 'min', + MAX = 'max', +} + + export class CoreSeries { _series: Array = []; @@ -99,50 +105,76 @@ export class CoreSeries { return this.visibleSeries.filter(serie => serie.yOrientation = yAxisOrientation.RIGHT); } - get minValueY(): number { + get areSeriesForY1Exist(): boolean { + return this.rightYRelatedSeries.length > 0; + } + + get areSeriesForYExist(): boolean { + return this.leftYRelatedSeries.length > 0; + } + + get minValueY(): number | undefined { return lodashMin( this.leftYRelatedSeries.map( - serie => lodashMinBy(serie.datapoints, dp => dp[1])[1] + serie => { + const mins = lodashMinBy(serie.datapoints, dp => dp[1]); + return !lodashIsNil(mins) ? mins[1] : undefined; + } ) ); } - get maxValueY(): number { + get maxValueY(): number | undefined { return lodashMax( this.leftYRelatedSeries.map( - serie => lodashMaxBy(serie.datapoints, dp => dp[1])[1] + serie => { + const maxs = lodashMaxBy(serie.datapoints, dp => dp[1]); + return !lodashIsNil(maxs) ? maxs[1] : undefined; + } ) ); } - get minValueX(): number { + get minValueX(): number | undefined { return lodashMin( this.visibleSeries.map( - serie => lodashMinBy(serie.datapoints, dp => dp[0])[0] + serie => { + const mins = lodashMinBy(serie.datapoints, dp => dp[0]); + return !lodashIsNil(mins) ? mins[0] : undefined; + } ) ); } - get maxValueX(): number { + get maxValueX(): number | undefined { return lodashMax( this.visibleSeries.map( - serie => lodashMaxBy(serie.datapoints, dp => dp[0])[0] + serie => { + const maxs = lodashMaxBy(serie.datapoints, dp => dp[0]); + return !lodashIsNil(maxs) ? maxs[0] : undefined; + } ) ); } - get minValueY1(): number { + get minValueY1(): number | undefined { return lodashMin( this.rightYRelatedSeries.map( - serie => lodashMinBy(serie.datapoints, dp => dp[1])[1] + serie => { + const mins = lodashMinBy(serie.datapoints, dp => dp[1]); + return !lodashIsNil(mins) ? mins[1] : undefined; + } ) ); } - get maxValueY1(): number { + get maxValueY1(): number | undefined { return lodashMax( this.rightYRelatedSeries.map( - serie => lodashMaxBy(serie.datapoints, dp => dp[1])[1] + serie => { + const maxs = lodashMaxBy(serie.datapoints, dp => dp[1]); + return !lodashIsNil(maxs) ? maxs[1] : undefined; + } ) ); } diff --git a/src/models/state.ts b/src/models/state.ts index b70121a..c9b972e 100755 --- a/src/models/state.ts +++ b/src/models/state.ts @@ -139,7 +139,7 @@ export class PodState { } public getMinValueY(): number { - if(!this.coreSeries.isSeriesAvailable) { + if(!this.coreSeries.areSeriesForYExist) { return DEFAULT_AXIS_RANGE[0]; } if(this.coreOptions.axis.y.range !== undefined) { @@ -149,7 +149,7 @@ export class PodState { } public getMaxValueY(): number { - if(!this.coreSeries.isSeriesAvailable) { + if(!this.coreSeries.areSeriesForYExist) { return DEFAULT_AXIS_RANGE[1]; } if(this.coreOptions.axis.y.range !== undefined) { @@ -181,7 +181,7 @@ export class PodState { } public getMinValueY1(): number { - if(!this.coreSeries.isSeriesAvailable) { + if(!this.coreSeries.areSeriesForY1Exist) { return DEFAULT_AXIS_RANGE[0]; } if(this.coreOptions.axis.y1.range !== undefined) { @@ -191,7 +191,7 @@ export class PodState { } public getMaxValueY1(): number { - if(!this.coreSeries.isSeriesAvailable) { + if(!this.coreSeries.areSeriesForY1Exist) { return DEFAULT_AXIS_RANGE[1]; } if(this.coreOptions.axis.y1.range !== undefined) {