mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-05-27 01:54:47 -07:00
kibo: move types around
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
URL + Version:
|
||||
|
||||
https://unpkg.com/browse/lightweight-charts@latest/
|
||||
@@ -1,117 +0,0 @@
|
||||
import { Signal } from "../solid-signals/types";
|
||||
import { Accessor } from "../solid-signals/v0.2.4-treeshaked/types/signals";
|
||||
import {
|
||||
DeepPartial,
|
||||
BaselineStyleOptions,
|
||||
CandlestickStyleOptions,
|
||||
LineStyleOptions,
|
||||
SeriesOptionsCommon,
|
||||
Time,
|
||||
ISeriesApi,
|
||||
BaselineData,
|
||||
} from "./v5.0.5-treeshaked/types";
|
||||
import { VecId } from "../../scripts/vecid-to-indexes";
|
||||
|
||||
interface BaseSeriesBlueprint {
|
||||
title: string;
|
||||
defaultActive?: boolean;
|
||||
}
|
||||
interface BaselineSeriesBlueprint extends BaseSeriesBlueprint {
|
||||
type: "Baseline";
|
||||
color?: Color;
|
||||
options?: DeepPartial<BaselineStyleOptions & SeriesOptionsCommon>;
|
||||
data?: Accessor<BaselineData<Time>[]>;
|
||||
}
|
||||
interface CandlestickSeriesBlueprint extends BaseSeriesBlueprint {
|
||||
type: "Candlestick";
|
||||
color?: Color;
|
||||
options?: DeepPartial<CandlestickStyleOptions & SeriesOptionsCommon>;
|
||||
data?: Accessor<CandlestickData[]>;
|
||||
}
|
||||
interface LineSeriesBlueprint extends BaseSeriesBlueprint {
|
||||
type?: "Line";
|
||||
color: Color;
|
||||
options?: DeepPartial<LineStyleOptions & SeriesOptionsCommon>;
|
||||
data?: Accessor<LineData<Time>[]>;
|
||||
}
|
||||
type AnySpecificSeriesBlueprint =
|
||||
| BaselineSeriesBlueprint
|
||||
| CandlestickSeriesBlueprint
|
||||
| LineSeriesBlueprint;
|
||||
|
||||
type SeriesType = NonNullable<AnySpecificSeriesBlueprint["type"]>;
|
||||
type PriceSeriesType = "Candlestick" | "Line";
|
||||
|
||||
type RemoveSeriesBlueprintFluff<Blueprint extends AnySpecificSeriesBlueprint> =
|
||||
Omit<Blueprint, "type" | "title">;
|
||||
|
||||
type SplitSeriesBlueprint<> = {
|
||||
key: VecId;
|
||||
} & AnySpecificSeriesBlueprint;
|
||||
|
||||
type SingleSeriesBlueprint = AnySpecificSeriesBlueprint;
|
||||
|
||||
interface CreateBaseSeriesParameters extends BaseSeriesBlueprint {
|
||||
id: string;
|
||||
disabled?: Accessor<boolean>;
|
||||
color?: Color;
|
||||
}
|
||||
interface BaseSeries {
|
||||
id: string;
|
||||
title: string;
|
||||
color: Color | Color[];
|
||||
active: Signal<boolean>;
|
||||
visible: Accessor<boolean>;
|
||||
}
|
||||
interface SingleSeries extends BaseSeries {
|
||||
iseries: ISeriesApi<SeriesType>;
|
||||
dataset: Accessor<(SingleValueData | CandlestickData)[] | null>;
|
||||
}
|
||||
interface SplitSeries extends BaseSeries {
|
||||
chunks: Array<Accessor<ISeriesApi<SeriesType> | undefined>>;
|
||||
// dataset: ResourceDataset<number>;
|
||||
}
|
||||
type AnySeries = SingleSeries | SplitSeries;
|
||||
|
||||
interface CreateSingleSeriesParameters {
|
||||
blueprint: SingleSeriesBlueprint;
|
||||
id: string;
|
||||
}
|
||||
|
||||
interface CreateSplitSeriesParameters {
|
||||
// dataset: ResourceDataset;
|
||||
blueprint: SplitSeriesBlueprint;
|
||||
id: string;
|
||||
index: number;
|
||||
disabled?: Accessor<boolean>;
|
||||
}
|
||||
|
||||
type ChartPane = IChartApi & {
|
||||
whitespace: ISeriesApi<"Line">;
|
||||
hidden: () => boolean;
|
||||
setHidden: (b: boolean) => void;
|
||||
setInitialVisibleTimeRange: VoidFunction;
|
||||
createSingleSeries: (a: CreateSingleSeriesParameters) => SingleSeries;
|
||||
createSplitSeries: (a: CreateSplitSeriesParameters) => SplitSeries[];
|
||||
anySeries: AnySeries[];
|
||||
singleSeries: SingleSeries[];
|
||||
splitSeries: SplitSeries[];
|
||||
remove: VoidFunction;
|
||||
};
|
||||
|
||||
interface CreatePaneParameters {
|
||||
options?: DeepPartial<ChartOptions>;
|
||||
config?: SingleSeriesBlueprint[];
|
||||
}
|
||||
|
||||
interface Marker {
|
||||
weight: number;
|
||||
time: Time;
|
||||
value: number;
|
||||
seriesChunk: ISeriesApi<SeriesType>;
|
||||
}
|
||||
|
||||
interface HoveredLegend {
|
||||
label: HTMLLabelElement;
|
||||
series: AnySeries;
|
||||
}
|
||||
@@ -1,6 +1,26 @@
|
||||
// @ts-check
|
||||
|
||||
/** @import {IChartApi, ISeriesApi, SeriesDefinition} from './v5.0.5-treeshaked/types' */
|
||||
/** @import {IChartApi, ISeriesApi, SeriesDefinition, SingleValueData as _SingleValueData, CandlestickData as _CandlestickData} from './v5.0.5-treeshaked/types' */
|
||||
|
||||
/**
|
||||
* @typedef {[number, number, number, number]} OHLCTuple
|
||||
*
|
||||
* @typedef {Object} Valued
|
||||
* @property {number} value
|
||||
*
|
||||
* @typedef {Object} Indexed
|
||||
* @property {number} index
|
||||
*/
|
||||
|
||||
/**
|
||||
* @template T
|
||||
* @typedef {T & Valued & Indexed} ChartData<T>
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef {ChartData<_SingleValueData>} SingleValueData
|
||||
* @typedef {ChartData<_CandlestickData>} CandlestickData
|
||||
*/
|
||||
|
||||
export default import("./v5.0.5-treeshaked/script.js").then((lc) => {
|
||||
const oklchToRGBA = createOklchToRGBA();
|
||||
@@ -752,6 +772,7 @@ function createPriceScaleSelectorIfNeeded({
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
const field = utils.dom.createHorizontalChoiceField({
|
||||
title: unit,
|
||||
selected: serializedValue(),
|
||||
@@ -759,6 +780,7 @@ function createPriceScaleSelectorIfNeeded({
|
||||
id: unit,
|
||||
signals,
|
||||
});
|
||||
|
||||
field.addEventListener("change", (event) => {
|
||||
// @ts-ignore
|
||||
const value = event.target.value;
|
||||
|
||||
Reference in New Issue
Block a user