Skip to content

Commit

Permalink
Fixing creating several baseline series with different base value
Browse files Browse the repository at this point in the history
Fixes #898
  • Loading branch information
timocov committed Nov 17, 2021
1 parent ebd3586 commit fca9246
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/api/chart-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,8 @@ export class ChartApi implements IChartApi, DataUpdatesConsumer<SeriesType> {
options = migrateOptions(options);
patchPriceFormat(options.priceFormat);

const strictOptions = merge(clone(seriesOptionsDefaults), baselineStyleDefaults, options) as BaselineSeriesOptions;
// baseline style defaults has an object in it so we have to clone it as well to avoid assigning fields to defaults
const strictOptions = merge(clone(seriesOptionsDefaults), clone(baselineStyleDefaults), options) as BaselineSeriesOptions;
const series = this._chartWidget.model().createSeries('Baseline', strictOptions);

const res = new SeriesApi<'Baseline'>(series, this, this);
Expand Down
64 changes: 64 additions & 0 deletions tests/e2e/graphics/test-cases/series/2-baseline-series.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
function generateData(valueOffset) {
const res = [];
const time = new Date(Date.UTC(2018, 0, 1, 0, 0, 0, 0));
for (let i = 0; i < 50; ++i) {
res.push({
time: time.getTime() / 1000,
value: i * (-1) + valueOffset,
});

time.setUTCDate(time.getUTCDate() + 1);
}

for (let i = 0; i < 100; ++i) {
res.push({
time: time.getTime() / 1000,
value: -50 + i + valueOffset,
});

time.setUTCDate(time.getUTCDate() + 1);
}

for (let i = 0; i < 100; ++i) {
res.push({
time: time.getTime() / 1000,
value: 50 - i + valueOffset,
});

time.setUTCDate(time.getUTCDate() + 1);
}

for (let i = 0; i < 100; ++i) {
res.push({
time: time.getTime() / 1000,
value: -50 + i + valueOffset,
});

time.setUTCDate(time.getUTCDate() + 1);
}
return res;
}

function runTestCase(container) {
const chart = LightweightCharts.createChart(container);

const firstSeries = chart.addBaselineSeries({
baseValue: {
type: 'price',
price: 0,
},
});

firstSeries.setData(generateData(0));

const secondSeries = chart.addBaselineSeries({
baseValue: {
type: 'price',
price: 100,
},
});

secondSeries.setData(generateData(100));

chart.timeScale().fitContent();
}

0 comments on commit fca9246

Please sign in to comment.