Skip to content

Commit 8c74fdc

Browse files
committed
fix: seriesType type
1 parent 05af3e9 commit 8c74fdc

8 files changed

+52
-46
lines changed

src/model/series/area-series.ts

+6-8
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,17 @@ export const areaStyleDefaults: AreaStyleOptions = {
2424
lastPriceAnimation: LastPriceAnimationMode.Disabled,
2525
pointMarkersVisible: false,
2626
};
27-
const seriesType = 'Area';
28-
const createPaneView = (series: ISeries<typeof seriesType>, model: IChartModelBase): IUpdatablePaneView => new SeriesAreaPaneView(series, model);
29-
30-
export const createSeries = (): SeriesDefinition<typeof seriesType> => {
31-
const definition: SeriesDefinitionInternal<typeof seriesType> = {
32-
type: seriesType,
27+
const createPaneView = (series: ISeries<'Area'>, model: IChartModelBase): IUpdatablePaneView => new SeriesAreaPaneView(series, model);
28+
export const createSeries = (): SeriesDefinition<'Area'> => {
29+
const definition: SeriesDefinitionInternal<'Area'> = {
30+
type: 'Area',
3331
isBuiltIn: true as const,
3432
defaultOptions: areaStyleDefaults,
3533
/**
3634
* @internal
3735
*/
3836
createPaneView: createPaneView,
3937
};
40-
return definition as SeriesDefinition<typeof seriesType>;
38+
return definition as SeriesDefinition<'Area'>;
4139
};
42-
export const areaSeries: SeriesDefinition<typeof seriesType> = createSeries();
40+
export const areaSeries: SeriesDefinition<'Area'> = createSeries();

src/model/series/bar-series.ts

+6-7
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@ export const barStyleDefaults: BarStyleOptions = {
1212
openVisible: true,
1313
thinBars: true,
1414
};
15-
const seriesType = 'Bar';
16-
const createPaneView = (series: ISeries<typeof seriesType>, model: IChartModelBase): IUpdatablePaneView => new SeriesBarsPaneView(series, model);
15+
const createPaneView = (series: ISeries<'Bar'>, model: IChartModelBase): IUpdatablePaneView => new SeriesBarsPaneView(series, model);
1716

18-
export const createSeries = (): SeriesDefinition<typeof seriesType> => {
19-
const definition: SeriesDefinitionInternal<typeof seriesType> = {
20-
type: seriesType,
17+
export const createSeries = (): SeriesDefinition<'Bar'> => {
18+
const definition: SeriesDefinitionInternal<'Bar'> = {
19+
type: 'Bar',
2120
isBuiltIn: true as const,
2221
defaultOptions: barStyleDefaults,
2322
/**
@@ -26,6 +25,6 @@ export const createSeries = (): SeriesDefinition<typeof seriesType> => {
2625
createPaneView: createPaneView,
2726
};
2827

29-
return definition as SeriesDefinition<typeof seriesType>;
28+
return definition as SeriesDefinition<'Bar'>;
3029
};
31-
export const barSeries: SeriesDefinition<typeof seriesType> = createSeries();
30+
export const barSeries: SeriesDefinition<'Bar'> = createSeries();

src/model/series/baseline-series.ts

+6-7
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,18 @@ export const baselineStyleDefaults: BaselineStyleOptions = {
3535
lastPriceAnimation: LastPriceAnimationMode.Disabled,
3636
pointMarkersVisible: false,
3737
};
38-
const seriesType = 'Baseline';
39-
const createPaneView = (series: ISeries<typeof seriesType>, model: IChartModelBase): IUpdatablePaneView => new SeriesBaselinePaneView(series, model);
38+
const createPaneView = (series: ISeries<'Baseline'>, model: IChartModelBase): IUpdatablePaneView => new SeriesBaselinePaneView(series, model);
4039

41-
export const createSeries = (): SeriesDefinition<typeof seriesType> => {
42-
const definition: SeriesDefinitionInternal<typeof seriesType> = {
43-
type: seriesType,
40+
export const createSeries = (): SeriesDefinition<'Baseline'> => {
41+
const definition: SeriesDefinitionInternal<'Baseline'> = {
42+
type: 'Baseline',
4443
isBuiltIn: true as const,
4544
defaultOptions: baselineStyleDefaults,
4645
/**
4746
* @internal
4847
*/
4948
createPaneView: createPaneView,
5049
};
51-
return definition as SeriesDefinition<typeof seriesType>;
50+
return definition as SeriesDefinition<'Baseline'>;
5251
};
53-
export const baselineSeries: SeriesDefinition<typeof seriesType> = createSeries();
52+
export const baselineSeries: SeriesDefinition<'Baseline'> = createSeries();

src/model/series/candlestick-series.ts

+6-7
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,19 @@ export const candlestickStyleDefaults: CandlestickStyleOptions = {
1818
wickUpColor: '#26a69a',
1919
wickDownColor: '#ef5350',
2020
};
21-
const seriesType = 'Candlestick';
2221

23-
const createPaneView = (series: ISeries<typeof seriesType>, model: IChartModelBase): IUpdatablePaneView => new SeriesCandlesticksPaneView(series, model);
22+
const createPaneView = (series: ISeries<'Candlestick'>, model: IChartModelBase): IUpdatablePaneView => new SeriesCandlesticksPaneView(series, model);
2423

25-
export const createSeries = (): SeriesDefinition<typeof seriesType> => {
26-
const definition: SeriesDefinitionInternal<typeof seriesType> = {
27-
type: seriesType,
24+
export const createSeries = (): SeriesDefinition<'Candlestick'> => {
25+
const definition: SeriesDefinitionInternal<'Candlestick'> = {
26+
type: 'Candlestick',
2827
isBuiltIn: true as const,
2928
defaultOptions: candlestickStyleDefaults,
3029
/**
3130
* @internal
3231
*/
3332
createPaneView: createPaneView,
3433
};
35-
return definition as SeriesDefinition<typeof seriesType>;
34+
return definition as SeriesDefinition<'Candlestick'>;
3635
};
37-
export const candlestickSeries: SeriesDefinition<typeof seriesType> = createSeries();
36+
export const candlestickSeries: SeriesDefinition<'Candlestick'> = createSeries();

src/model/series/custom-series.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ import { SeriesDefinition, SeriesDefinitionInternal } from './series-def';
1212
export const customStyleDefaults: CustomStyleOptions = {
1313
color: '#2196f3',
1414
};
15-
const seriesType = 'Custom';
16-
const createPaneView = <HorzScaleItem>(series: ISeries<typeof seriesType>, model: IChartModelBase, customPaneView?: ICustomSeriesPaneView<HorzScaleItem>): IUpdatablePaneView => {
15+
const createPaneView = <HorzScaleItem>(series: ISeries<'Custom'>, model: IChartModelBase, customPaneView?: ICustomSeriesPaneView<HorzScaleItem>): IUpdatablePaneView => {
1716
const paneView = ensure(customPaneView);
1817
return new SeriesCustomPaneView(series, model, paneView);
1918
};
@@ -24,7 +23,7 @@ export const createCustomSeriesDefinition = <
2423
TSeriesOptions extends CustomSeriesOptions = CustomSeriesOptions
2524
>(paneView: ICustomSeriesPaneView<HorzScaleItem, TData, TSeriesOptions>): SeriesDefinition<'Custom'> => {
2625
const definition: SeriesDefinitionInternal<'Custom'> = {
27-
type: seriesType,
26+
type: 'Custom',
2827
isBuiltIn: false as const,
2928
defaultOptions: { ...customStyleDefaults, ...paneView.defaultOptions() },
3029
/**

src/model/series/histogram-series.ts

+6-8
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,18 @@ export const histogramStyleDefaults: HistogramStyleOptions = {
1010
color: '#26a69a',
1111
base: 0,
1212
};
13-
const seriesType = 'Histogram';
13+
const createPaneView = (series: ISeries<'Histogram'>, model: IChartModelBase): IUpdatablePaneView => new SeriesHistogramPaneView(series, model);
1414

15-
const createPaneView = (series: ISeries<typeof seriesType>, model: IChartModelBase): IUpdatablePaneView => new SeriesHistogramPaneView(series, model);
16-
17-
export const createSeries = (): SeriesDefinition<typeof seriesType> => {
18-
const definition: SeriesDefinitionInternal<typeof seriesType> = {
19-
type: seriesType,
15+
export const createSeries = (): SeriesDefinition<'Histogram'> => {
16+
const definition: SeriesDefinitionInternal<'Histogram'> = {
17+
type: 'Histogram',
2018
isBuiltIn: true as const,
2119
defaultOptions: histogramStyleDefaults,
2220
/**
2321
* @internal
2422
*/
2523
createPaneView: createPaneView,
2624
};
27-
return definition as SeriesDefinition<typeof seriesType>;
25+
return definition as SeriesDefinition<'Histogram'>;
2826
};
29-
export const histogramSeries: SeriesDefinition<typeof seriesType> = createSeries();
27+
export const histogramSeries: SeriesDefinition<'Histogram'> = createSeries();

src/model/series/line-series.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,20 @@ export const lineStyleDefaults: LineStyleOptions = {
2121
lastPriceAnimation: LastPriceAnimationMode.Disabled,
2222
pointMarkersVisible: false,
2323
};
24-
const seriesType = 'Line';
2524

2625
const createPaneView = (series: ISeries<'Line'>, model: IChartModelBase): IUpdatablePaneView => new SeriesLinePaneView(series, model);
2726

28-
export const createLineSeries = (): SeriesDefinition<typeof seriesType> => {
29-
const definition: SeriesDefinitionInternal<typeof seriesType> = {
30-
type: seriesType,
27+
export const createLineSeries = (): SeriesDefinition<'Line'> => {
28+
const definition: SeriesDefinitionInternal<'Line'> = {
29+
type: 'Line',
3130
isBuiltIn: true as const,
3231
defaultOptions: lineStyleDefaults,
3332
/**
3433
* @internal
3534
*/
3635
createPaneView: createPaneView,
3736
};
38-
return definition as SeriesDefinition<typeof seriesType>;
37+
return definition as SeriesDefinition<'Line'>;
3938
};
40-
export const lineSeries: SeriesDefinition<typeof seriesType> = createLineSeries();
39+
export const lineSeries: SeriesDefinition<'Line'> = createLineSeries();
4140

src/model/series/series-def.ts

+15
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,25 @@ import { ICustomSeriesPaneView } from '../icustom-series';
55
import { ISeries } from '../iseries';
66
import { SeriesStyleOptionsMap, SeriesType } from '../series-options';
77

8+
/**
9+
* Series definition interface.
10+
*/
811
export interface SeriesDefinition<T extends SeriesType> {
12+
/**
13+
* Series type.
14+
*/
915
readonly type: T;
16+
/**
17+
* Indicates if the series is built-in.
18+
*/
1019
readonly isBuiltIn: boolean;
20+
/**
21+
* Default series options.
22+
*/
1123
readonly defaultOptions: SeriesStyleOptionsMap[T];
24+
/**
25+
* Custom pane view (optional).
26+
*/
1227
readonly customPaneView?: ICustomSeriesPaneView<unknown>;
1328
}
1429

0 commit comments

Comments
 (0)