kibo: move types around

This commit is contained in:
nym21
2025-04-04 00:40:40 +02:00
parent 6700686e4b
commit 6a17ee414a
15 changed files with 193 additions and 247 deletions

View File

@@ -1,3 +0,0 @@
URL + Version:
https://unpkg.com/browse/lightweight-charts@latest/

View File

@@ -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;
}

View File

@@ -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;