chart-0714
Version:
Professional trading chart library with advanced customization for trading journal apps
88 lines (87 loc) • 2.15 kB
TypeScript
export interface LineSeriesOptions {
id?: string;
name: string;
data: Array<{
time: number;
value: number;
}>;
color?: string;
lineWidth?: number;
visible?: boolean;
yAxisPosition?: 'left' | 'right';
showInLegend?: boolean;
}
export interface LineSeries {
id: string;
name: string;
values: Float32Array;
times: Float64Array;
color: string;
lineWidth: number;
visible: boolean;
yAxisPosition: 'left' | 'right';
showInLegend: boolean;
priceRange: [number, number];
}
export declare class LineSeriesManager {
private series;
private nextId;
/**
* 라인 시리즈 추가
*/
addLineSeries(options: LineSeriesOptions): string;
/**
* 라인 시리즈 업데이트
*/
updateLineSeries(id: string, data: Array<{
time: number;
value: number;
}>): void;
/**
* 라인 시리즈 제거
*/
removeLineSeries(id: string): void;
/**
* 라인 시리즈 가시성 토글
*/
toggleVisibility(id: string): void;
/**
* 라인 시리즈 스타일 업데이트
*/
updateStyle(id: string, style: Partial<Pick<LineSeries, 'color' | 'lineWidth'>>): void;
/**
* 라인 시리즈 표시/숨김 설정
*/
setSeriesVisibility(id: string, visible: boolean): void;
/**
* 모든 라인 시리즈 가져오기
*/
getAllSeries(): LineSeries[];
/**
* 가시적인 라인 시리즈만 가져오기
*/
getVisibleSeries(): LineSeries[];
/**
* 특정 라인 시리즈 가져오기
*/
getSeries(id: string): LineSeries | undefined;
/**
* 전체 가격 범위 계산
*/
getTotalPriceRange(): [number, number];
/**
* 특정 시간 범위의 데이터 포인트 가져오기
*/
getDataInTimeRange(timeRange: [number, number]): Map<string, {
times: Float64Array;
values: Float32Array;
}>;
/**
* 이진 탐색으로 시간 인덱스 찾기
*/
private binarySearchTime;
/**
* 모든 라인 시리즈 제거
*/
clear(): void;
}