aliencharts 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts ADDED
@@ -0,0 +1,161 @@
1
+ import type { MouseEvent as ReactMouseEvent, ReactElement } from "react";
2
+
3
+ export type NumericArray =
4
+ | number[]
5
+ | Float32Array
6
+ | Float64Array
7
+ | Int8Array
8
+ | Uint8Array
9
+ | Uint8ClampedArray
10
+ | Int16Array
11
+ | Uint16Array
12
+ | Int32Array
13
+ | Uint32Array;
14
+
15
+ export interface SeriesOptions {
16
+ id: string;
17
+ name?: string;
18
+ color?: string;
19
+ x?: NumericArray;
20
+ y?: NumericArray;
21
+ maxLevels?: number;
22
+ }
23
+
24
+ export interface VisibleSeriesPoints {
25
+ x: Float64Array;
26
+ y: Float32Array;
27
+ bucketSize: number;
28
+ pointCount: number;
29
+ }
30
+
31
+ export class LineSeries {
32
+ constructor(options: SeriesOptions);
33
+
34
+ id: string;
35
+ name: string;
36
+ color: string;
37
+ maxLevels: number;
38
+ readonly length: number;
39
+ rawX: Float64Array;
40
+ rawY: Float32Array;
41
+
42
+ append(xValues: NumericArray, yValues: NumericArray): void;
43
+ getVisiblePoints(
44
+ xMin: number,
45
+ xMax: number,
46
+ pixelWidth: number,
47
+ ): VisibleSeriesPoints;
48
+ }
49
+
50
+ export interface Chart {
51
+ id: string;
52
+ title: string;
53
+ series: LineSeries[];
54
+ pinned?: boolean;
55
+ yRange?: {
56
+ min: number;
57
+ max: number;
58
+ };
59
+ [key: string]: unknown;
60
+ }
61
+
62
+ export interface DataPoint {
63
+ x: number;
64
+ y: number;
65
+ }
66
+
67
+ export type DrawingTool = "trendline" | "hline" | "vline" | "pin";
68
+
69
+ export interface DrawingStyle {
70
+ color?: string;
71
+ lineWidth?: number;
72
+ dashPattern?: number[];
73
+ extendLeft?: boolean;
74
+ extendRight?: boolean;
75
+ text?: string;
76
+ }
77
+
78
+ export interface Drawing {
79
+ id: string;
80
+ chartId: string;
81
+ type: DrawingTool;
82
+ start: DataPoint;
83
+ end: DataPoint;
84
+ createdAt?: number;
85
+ style?: DrawingStyle;
86
+ }
87
+
88
+ export interface MovingAverage {
89
+ enabled?: boolean;
90
+ period?: number;
91
+ type?: "ema" | "sma";
92
+ hideBase?: boolean;
93
+ }
94
+
95
+ export interface TopMarker<T = unknown> {
96
+ id?: string | number;
97
+ x?: number;
98
+ step?: number;
99
+ color?: string;
100
+ title?: string;
101
+ ariaLabel?: string;
102
+ data?: T;
103
+ [key: string]: unknown;
104
+ }
105
+
106
+ export interface ChartContextMenuPayload {
107
+ chart: Chart;
108
+ event: ReactMouseEvent<HTMLDivElement>;
109
+ point: DataPoint;
110
+ }
111
+
112
+ export interface CreateDrawingIdPayload {
113
+ chartId: string;
114
+ type: DrawingTool;
115
+ }
116
+
117
+ export interface ChartGridProps {
118
+ charts: Chart[];
119
+ columns?: number;
120
+ className?: string;
121
+ dataRevision?: number;
122
+ initialVisiblePoints?: number | null;
123
+ backgroundColor?: string;
124
+ antialiasLines?: boolean;
125
+ followLatest?: boolean;
126
+ followVisibleLatest?: boolean;
127
+ jumpToLatestRevision?: number;
128
+ drawings?: Drawing[];
129
+ onDrawingsChange?: (drawings: Drawing[]) => void;
130
+ activeDrawingTool?: DrawingTool | null;
131
+ onActiveDrawingToolChange?: (tool: DrawingTool | null) => void;
132
+ selectedDrawingId?: string | null;
133
+ onSelectedDrawingIdChange?: (drawingId: string | null) => void;
134
+ createDrawingId?: (payload: CreateDrawingIdPayload) => string;
135
+ onClearDrawingsRequest?: (chartId: string) => void;
136
+ onChartContextMenu?: (payload: ChartContextMenuPayload) => void;
137
+ movingAverageByChart?: Record<string, MovingAverage>;
138
+ onMovingAverageToggle?: (chartId: string) => void;
139
+ onMovingAverageChange?: (
140
+ chartId: string,
141
+ movingAverage: MovingAverage,
142
+ ) => void;
143
+ seriesOrderByChart?: Record<string, number[]>;
144
+ topMarkers?: TopMarker[];
145
+ onTopMarkerClick?: (marker: TopMarker) => void;
146
+ xAxisLabel?: string;
147
+ disableDrawings?: boolean;
148
+ formatXTick?: (value: number) => string;
149
+ formatXValue?: (value: number) => string;
150
+ formatYValue?: (value: number) => string;
151
+ }
152
+
153
+ export interface MockChartsOptions {
154
+ chartCount?: number;
155
+ seriesPerChart?: number;
156
+ pointCount?: number;
157
+ }
158
+
159
+ export function ChartGrid(props: ChartGridProps): ReactElement;
160
+ export function createSeries(options: SeriesOptions): LineSeries;
161
+ export function createMockCharts(options?: MockChartsOptions): Chart[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aliencharts",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "WebGL chart renderer for multi-metric dashboards, built for ease of use and high performance.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -24,15 +24,19 @@
24
24
  },
25
25
  "main": "./dist/index.cjs",
26
26
  "module": "./dist/index.js",
27
+ "types": "./index.d.ts",
27
28
  "exports": {
28
29
  ".": {
30
+ "types": "./index.d.ts",
29
31
  "import": "./dist/index.js",
30
32
  "require": "./dist/index.cjs"
31
33
  },
32
34
  "./styles.css": "./dist/aliencharts.css"
33
35
  },
34
36
  "files": [
35
- "dist"
37
+ "dist",
38
+ "assets",
39
+ "index.d.ts"
36
40
  ],
37
41
  "sideEffects": [
38
42
  "**/*.css"