protected subscribeDataSource = (
dataSource: DataSource,
): void => {
const minMove = getPricePrecisionStep();
this.lwcSeries.applyOptions({
priceFormat: {
type: 'custom',
minMove,
formatter: (price: number) =>
formatPrice(price) ?? String(price),
},
});
this.subscriptions.add(
this.mainSymbolTicker$
.pipe(distinctUntilChanged())
.subscribe((symbolTicker) => {
this.lwcSeries.applyOptions({
title: this.showSymbolLabel
? symbolTicker
: '',
});
}),
);
this.subscriptions.add(
this.mainSymbol$
.pipe(distinctUntilChanged())
.subscribe((symbol) => {
this.dataSub?.unsubscribe();
this.realtimeSub?.unsubscribe();
this.dataSub = dataSource.subscribe(
symbol,
(next) => {
this.dataSourceSubscription(next);
},
);
this.realtimeSub =
dataSource.subscribeRealtime(
symbol,
(next: Candle) => {
this.dataSourceRealtimeSubscription(next);
},
);
}),
);
};