@orchidsoftware/charts 0.0.1
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/CHANGELOG.md +71 -0
- package/LICENSE +21 -0
- package/README.md +122 -0
- package/dist/core/Chart.js +1 -0
- package/dist/core/Chart.js.map +1 -0
- package/dist/core/ChartData.js +1 -0
- package/dist/core/ChartData.js.map +1 -0
- package/dist/core/ChartDefinition.js +1 -0
- package/dist/core/ChartDefinition.js.map +1 -0
- package/dist/core/ChartSelection.js +1 -0
- package/dist/core/ChartSelection.js.map +1 -0
- package/dist/core/ChartTooltip.js +1 -0
- package/dist/core/ChartTooltip.js.map +1 -0
- package/dist/core/InteractionController.js +1 -0
- package/dist/core/InteractionController.js.map +1 -0
- package/dist/core/NormalizeAnnotations.js +1 -0
- package/dist/core/NormalizeAnnotations.js.map +1 -0
- package/dist/core/Options.js +1 -0
- package/dist/core/Options.js.map +1 -0
- package/dist/core/builders/Builder.js +1 -0
- package/dist/core/builders/Builder.js.map +1 -0
- package/dist/core/builders/BuilderArguments.js +1 -0
- package/dist/core/builders/BuilderArguments.js.map +1 -0
- package/dist/core/builders/BuilderScopes.js +1 -0
- package/dist/core/builders/BuilderScopes.js.map +1 -0
- package/dist/core/builders/BuilderState.js +1 -0
- package/dist/core/builders/BuilderState.js.map +1 -0
- package/dist/core/builders/BuilderValidation.js +1 -0
- package/dist/core/builders/BuilderValidation.js.map +1 -0
- package/dist/core/builders/CartesianBuilders.js +1 -0
- package/dist/core/builders/CartesianBuilders.js.map +1 -0
- package/dist/core/builders/CompositionBuilders.js +1 -0
- package/dist/core/builders/CompositionBuilders.js.map +1 -0
- package/dist/core/builders/TemporalBuilders.js +1 -0
- package/dist/core/builders/TemporalBuilders.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/renderers/ChartRendering.js +1 -0
- package/dist/renderers/ChartRendering.js.map +1 -0
- package/dist/renderers/LegendRenderer.js +1 -0
- package/dist/renderers/LegendRenderer.js.map +1 -0
- package/dist/renderers/SvgSurface.js +1 -0
- package/dist/renderers/SvgSurface.js.map +1 -0
- package/dist/renderers/cartesian/CartesianAxesRenderer.js +1 -0
- package/dist/renderers/cartesian/CartesianAxesRenderer.js.map +1 -0
- package/dist/renderers/cartesian/CartesianInspectorRenderer.js +1 -0
- package/dist/renderers/cartesian/CartesianInspectorRenderer.js.map +1 -0
- package/dist/renderers/cartesian/CartesianLayout.js +1 -0
- package/dist/renderers/cartesian/CartesianLayout.js.map +1 -0
- package/dist/renderers/cartesian/CartesianRendering.js +1 -0
- package/dist/renderers/cartesian/CartesianRendering.js.map +1 -0
- package/dist/renderers/cartesian/CartesianSeriesRendering.js +1 -0
- package/dist/renderers/cartesian/CartesianSeriesRendering.js.map +1 -0
- package/dist/renderers/composition/AggregationRendering.js +1 -0
- package/dist/renderers/composition/AggregationRendering.js.map +1 -0
- package/dist/renderers/composition/Composition.js +1 -0
- package/dist/renderers/composition/Composition.js.map +1 -0
- package/dist/renderers/composition/PolarAreaRendering.js +1 -0
- package/dist/renderers/composition/PolarAreaRendering.js.map +1 -0
- package/dist/renderers/composition/RadarRendering.js +1 -0
- package/dist/renderers/composition/RadarRendering.js.map +1 -0
- package/dist/renderers/temporal/HeatmapRendering.js +1 -0
- package/dist/renderers/temporal/HeatmapRendering.js.map +1 -0
- package/dist/renderers/temporal/TimesheetLayout.js +1 -0
- package/dist/renderers/temporal/TimesheetLayout.js.map +1 -0
- package/dist/renderers/temporal/TimesheetRendering.js +1 -0
- package/dist/renderers/temporal/TimesheetRendering.js.map +1 -0
- package/dist/support/Constants.js +1 -0
- package/dist/support/Constants.js.map +1 -0
- package/dist/support/Dom.js +1 -0
- package/dist/support/Dom.js.map +1 -0
- package/dist/support/Normalize.js +2 -0
- package/dist/support/Normalize.js.map +1 -0
- package/dist/support/Validation.js +1 -0
- package/dist/support/Validation.js.map +1 -0
- package/dist/support/geometry/CartesianGeometry.js +1 -0
- package/dist/support/geometry/CartesianGeometry.js.map +1 -0
- package/dist/support/geometry/Scale.js +1 -0
- package/dist/support/geometry/Scale.js.map +1 -0
- package/dist/support/geometry/SectorGeometry.js +1 -0
- package/dist/support/geometry/SectorGeometry.js.map +1 -0
- package/dist/support/presentation/Formatting.js +1 -0
- package/dist/support/presentation/Formatting.js.map +1 -0
- package/dist/support/presentation/Presentation.js +1 -0
- package/dist/support/presentation/Presentation.js.map +1 -0
- package/dist/support/presentation/Time.js +1 -0
- package/dist/support/presentation/Time.js.map +1 -0
- package/docs/api-reference.md +322 -0
- package/docs/bar.md +110 -0
- package/docs/bubble.md +76 -0
- package/docs/chart-types.md +35 -0
- package/docs/customization.md +178 -0
- package/docs/donut.md +55 -0
- package/docs/exporting.md +87 -0
- package/docs/frameworks.md +203 -0
- package/docs/getting-started.md +121 -0
- package/docs/heatmap.md +95 -0
- package/docs/line.md +148 -0
- package/docs/mixed.md +114 -0
- package/docs/percentage.md +48 -0
- package/docs/pie.md +58 -0
- package/docs/polar-area.md +46 -0
- package/docs/radar.md +49 -0
- package/docs/readme.md +37 -0
- package/docs/scatter.md +83 -0
- package/docs/timesheet.md +125 -0
- package/docs/updates-and-interaction.md +124 -0
- package/package.json +133 -0
- package/src/index.d.ts +481 -0
- package/src/styles.css +350 -0
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,481 @@
|
|
|
1
|
+
export type ChartType =
|
|
2
|
+
| "line"
|
|
3
|
+
| "bar"
|
|
4
|
+
| "scatter"
|
|
5
|
+
| "mixed"
|
|
6
|
+
| "bubble"
|
|
7
|
+
| "pie"
|
|
8
|
+
| "donut"
|
|
9
|
+
| "percentage"
|
|
10
|
+
| "radar"
|
|
11
|
+
| "polar-area"
|
|
12
|
+
| "heatmap"
|
|
13
|
+
| "timesheet";
|
|
14
|
+
export interface Point {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
}
|
|
18
|
+
export interface BubblePoint extends Point {
|
|
19
|
+
r: number;
|
|
20
|
+
}
|
|
21
|
+
export type TimesheetDate = Date | string | number;
|
|
22
|
+
export type ValueRange = readonly [start: number, end: number];
|
|
23
|
+
export type ValueFormatTarget = "axis" | "tooltip" | "value-label" | "accessibility";
|
|
24
|
+
|
|
25
|
+
export interface ChartValueFormatContext {
|
|
26
|
+
readonly target: ValueFormatTarget;
|
|
27
|
+
readonly chartType: ChartType;
|
|
28
|
+
readonly datasetIndex?: number;
|
|
29
|
+
readonly datasetName?: string;
|
|
30
|
+
readonly index?: number;
|
|
31
|
+
readonly label?: string | number;
|
|
32
|
+
readonly point?: Readonly<Point>;
|
|
33
|
+
}
|
|
34
|
+
export interface DatasetValueFormatContext extends ChartValueFormatContext {
|
|
35
|
+
readonly target: Exclude<ValueFormatTarget, "axis">;
|
|
36
|
+
readonly datasetIndex: number;
|
|
37
|
+
readonly index: number;
|
|
38
|
+
readonly point: Readonly<Point>;
|
|
39
|
+
}
|
|
40
|
+
export type ChartValueFormatter = (value: number, context: Readonly<ChartValueFormatContext>) => string;
|
|
41
|
+
export type DatasetValueFormatter = (value: number, context: Readonly<DatasetValueFormatContext>) => string;
|
|
42
|
+
export type AxisValueFormatter = ChartValueFormatter;
|
|
43
|
+
export type LabelFormatter = (
|
|
44
|
+
label: string | number,
|
|
45
|
+
context: Readonly<ChartValueFormatContext>,
|
|
46
|
+
) => string | readonly string[];
|
|
47
|
+
export type DateFormatter = (date: Readonly<Date>) => string;
|
|
48
|
+
export type DurationFormatter = (milliseconds: number) => string;
|
|
49
|
+
export type MarkerLabelFormatter = (
|
|
50
|
+
label: string,
|
|
51
|
+
value: number,
|
|
52
|
+
context: Readonly<ChartValueFormatContext>,
|
|
53
|
+
) => string;
|
|
54
|
+
export type RegionLabelFormatter = (
|
|
55
|
+
label: string,
|
|
56
|
+
range: ValueRange,
|
|
57
|
+
context: Readonly<ChartValueFormatContext>,
|
|
58
|
+
) => string;
|
|
59
|
+
|
|
60
|
+
export interface GradientOptions {
|
|
61
|
+
fromOpacity?: number;
|
|
62
|
+
toOpacity?: number;
|
|
63
|
+
}
|
|
64
|
+
export interface DatasetInput<TValue extends number | Point = number | Point> {
|
|
65
|
+
name?: string;
|
|
66
|
+
values: readonly TValue[];
|
|
67
|
+
color?: string;
|
|
68
|
+
opacity?: number;
|
|
69
|
+
formatValue?: DatasetValueFormatter;
|
|
70
|
+
}
|
|
71
|
+
export interface LineDatasetInput extends DatasetInput<number> {
|
|
72
|
+
gradient?: boolean | GradientOptions;
|
|
73
|
+
smooth?: boolean;
|
|
74
|
+
dots?: boolean;
|
|
75
|
+
dotSize?: number;
|
|
76
|
+
line?: boolean;
|
|
77
|
+
area?: boolean;
|
|
78
|
+
strokeWidth?: number;
|
|
79
|
+
}
|
|
80
|
+
export interface BarDatasetInput extends DatasetInput<number> {
|
|
81
|
+
radius?: number;
|
|
82
|
+
}
|
|
83
|
+
export interface ScatterDatasetInput extends DatasetInput<number | Point> {}
|
|
84
|
+
export interface BubbleDatasetInput extends DatasetInput<BubblePoint> {}
|
|
85
|
+
export type MixedDatasetInput =
|
|
86
|
+
| (LineDatasetInput & { chartType: "line" })
|
|
87
|
+
| (BarDatasetInput & { chartType: "bar" })
|
|
88
|
+
| (ScatterDatasetInput & { chartType: "scatter" });
|
|
89
|
+
export type AnyDatasetInput = LineDatasetInput | BarDatasetInput | ScatterDatasetInput | BubbleDatasetInput;
|
|
90
|
+
|
|
91
|
+
export interface MarkerInput {
|
|
92
|
+
label: string;
|
|
93
|
+
value: number;
|
|
94
|
+
color?: string;
|
|
95
|
+
width?: number;
|
|
96
|
+
opacity?: number;
|
|
97
|
+
lineStyle?: "solid" | "dashed" | "dotted";
|
|
98
|
+
dash?: readonly number[];
|
|
99
|
+
labelPosition?: "start" | "center" | "end";
|
|
100
|
+
labelColor?: string;
|
|
101
|
+
includeInDomain?: boolean;
|
|
102
|
+
formatLabel?: MarkerLabelFormatter;
|
|
103
|
+
}
|
|
104
|
+
export interface RegionInput {
|
|
105
|
+
label: string;
|
|
106
|
+
range: ValueRange;
|
|
107
|
+
color?: string;
|
|
108
|
+
opacity?: number;
|
|
109
|
+
labelPosition?: "start" | "center" | "end";
|
|
110
|
+
labelColor?: string;
|
|
111
|
+
includeInDomain?: boolean;
|
|
112
|
+
formatLabel?: RegionLabelFormatter;
|
|
113
|
+
}
|
|
114
|
+
export interface TimesheetTaskInput {
|
|
115
|
+
label: string;
|
|
116
|
+
start: TimesheetDate;
|
|
117
|
+
end: TimesheetDate;
|
|
118
|
+
group?: string;
|
|
119
|
+
color?: string;
|
|
120
|
+
}
|
|
121
|
+
export interface SeriesData<TDatasetInput extends DatasetInput = AnyDatasetInput> {
|
|
122
|
+
labels?: readonly string[];
|
|
123
|
+
datasets: readonly TDatasetInput[];
|
|
124
|
+
}
|
|
125
|
+
export interface CartesianSeriesData<
|
|
126
|
+
TDatasetInput extends DatasetInput = AnyDatasetInput,
|
|
127
|
+
> extends SeriesData<TDatasetInput> {
|
|
128
|
+
markers?: readonly MarkerInput[];
|
|
129
|
+
regions?: readonly RegionInput[];
|
|
130
|
+
}
|
|
131
|
+
export interface HeatmapData {
|
|
132
|
+
start?: Date;
|
|
133
|
+
end?: Date;
|
|
134
|
+
points: Readonly<Record<string | number, number>>;
|
|
135
|
+
}
|
|
136
|
+
export interface TimesheetData {
|
|
137
|
+
start?: TimesheetDate;
|
|
138
|
+
end?: TimesheetDate;
|
|
139
|
+
tasks: readonly TimesheetTaskInput[];
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export interface SeriesPointSnapshot {
|
|
143
|
+
readonly index: number;
|
|
144
|
+
readonly label: string | number;
|
|
145
|
+
readonly values: readonly (number | undefined)[];
|
|
146
|
+
}
|
|
147
|
+
export interface SeriesMarkSnapshot {
|
|
148
|
+
readonly index: number;
|
|
149
|
+
readonly datasetIndex: number;
|
|
150
|
+
readonly dataset: string;
|
|
151
|
+
readonly pointIndex: number;
|
|
152
|
+
readonly label: string | number;
|
|
153
|
+
readonly x: number;
|
|
154
|
+
readonly y: number;
|
|
155
|
+
readonly r?: number;
|
|
156
|
+
readonly chartType?: "line" | "bar" | "scatter";
|
|
157
|
+
}
|
|
158
|
+
export interface HeatmapPointSnapshot {
|
|
159
|
+
readonly date: Date;
|
|
160
|
+
readonly key: string;
|
|
161
|
+
readonly value: number;
|
|
162
|
+
}
|
|
163
|
+
export interface TimesheetPointSnapshot {
|
|
164
|
+
readonly label: string;
|
|
165
|
+
readonly start: Date;
|
|
166
|
+
readonly end: Date;
|
|
167
|
+
readonly group?: string;
|
|
168
|
+
readonly color: string;
|
|
169
|
+
}
|
|
170
|
+
export interface TimesheetTaskSnapshot extends TimesheetPointSnapshot {}
|
|
171
|
+
export type ChartPoint =
|
|
172
|
+
SeriesPointSnapshot | SeriesMarkSnapshot | HeatmapPointSnapshot | TimesheetPointSnapshot;
|
|
173
|
+
|
|
174
|
+
export interface SeriesSelection {
|
|
175
|
+
readonly type: "line" | "bar" | "scatter" | "mixed" | "bubble" | "radar";
|
|
176
|
+
readonly index: number;
|
|
177
|
+
readonly label: string | number;
|
|
178
|
+
readonly value: number;
|
|
179
|
+
readonly values: readonly (number | undefined)[];
|
|
180
|
+
readonly datasetIndex: number;
|
|
181
|
+
readonly dataset: string;
|
|
182
|
+
readonly x: number;
|
|
183
|
+
readonly y: number;
|
|
184
|
+
readonly r?: number;
|
|
185
|
+
}
|
|
186
|
+
export interface CompositionSelection {
|
|
187
|
+
readonly type: "pie" | "donut" | "percentage" | "polar-area";
|
|
188
|
+
readonly index: number;
|
|
189
|
+
readonly label: string;
|
|
190
|
+
readonly value: number;
|
|
191
|
+
readonly color: string;
|
|
192
|
+
}
|
|
193
|
+
export interface HeatmapSelection {
|
|
194
|
+
readonly type: "heatmap";
|
|
195
|
+
readonly index: number;
|
|
196
|
+
readonly key: string;
|
|
197
|
+
readonly date: Date;
|
|
198
|
+
readonly value: number;
|
|
199
|
+
readonly color: string;
|
|
200
|
+
}
|
|
201
|
+
export interface TimesheetSelection {
|
|
202
|
+
readonly type: "timesheet";
|
|
203
|
+
readonly index: number;
|
|
204
|
+
readonly label: string;
|
|
205
|
+
readonly start: Date;
|
|
206
|
+
readonly end: Date;
|
|
207
|
+
readonly duration: number;
|
|
208
|
+
readonly group?: string;
|
|
209
|
+
readonly color: string;
|
|
210
|
+
readonly task: Readonly<TimesheetTaskSnapshot>;
|
|
211
|
+
}
|
|
212
|
+
export type ChartSelection = SeriesSelection | CompositionSelection | HeatmapSelection | TimesheetSelection;
|
|
213
|
+
|
|
214
|
+
export interface Chart<TData, TPoint extends ChartPoint> {
|
|
215
|
+
readonly element: SVGSVGElement;
|
|
216
|
+
update(data: TData): this;
|
|
217
|
+
point(index?: number): TPoint | undefined;
|
|
218
|
+
toSvg(): string;
|
|
219
|
+
download(filename?: string): this;
|
|
220
|
+
destroy(): void;
|
|
221
|
+
}
|
|
222
|
+
export interface ChartDefinition<TBuilder> {
|
|
223
|
+
make(parent: string | Element): TBuilder;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
export interface DatasetBuilder {
|
|
227
|
+
color(value: string): this;
|
|
228
|
+
opacity(value: number): this;
|
|
229
|
+
formatValue(formatter: DatasetValueFormatter): this;
|
|
230
|
+
}
|
|
231
|
+
export interface LineDatasetBuilder extends DatasetBuilder {
|
|
232
|
+
gradient(value?: boolean | GradientOptions): this;
|
|
233
|
+
smooth(enabled?: boolean): this;
|
|
234
|
+
dots(visible: boolean): this;
|
|
235
|
+
dotSize(value: number): this;
|
|
236
|
+
line(visible: boolean): this;
|
|
237
|
+
area(enabled?: boolean): this;
|
|
238
|
+
strokeWidth(value: number): this;
|
|
239
|
+
}
|
|
240
|
+
export interface BarDatasetBuilder extends DatasetBuilder {
|
|
241
|
+
radius(value: number): this;
|
|
242
|
+
}
|
|
243
|
+
export interface AxisBuilder {
|
|
244
|
+
position(value: "left" | "right"): this;
|
|
245
|
+
formatValue(formatter: AxisValueFormatter): this;
|
|
246
|
+
}
|
|
247
|
+
export interface SeriesTooltipBuilder {
|
|
248
|
+
formatLabel(formatter: LabelFormatter): this;
|
|
249
|
+
formatValue(formatter: DatasetValueFormatter): this;
|
|
250
|
+
}
|
|
251
|
+
export interface HeatmapTooltipBuilder {
|
|
252
|
+
formatDate(formatter: DateFormatter): this;
|
|
253
|
+
formatValue(formatter: ChartValueFormatter): this;
|
|
254
|
+
}
|
|
255
|
+
export interface TimesheetTooltipBuilder {
|
|
256
|
+
formatDate(formatter: DateFormatter): this;
|
|
257
|
+
formatDuration(formatter: DurationFormatter): this;
|
|
258
|
+
}
|
|
259
|
+
export interface MarkerBuilder {
|
|
260
|
+
color(value: string): this;
|
|
261
|
+
width(value: number): this;
|
|
262
|
+
opacity(value: number): this;
|
|
263
|
+
lineStyle(value: "solid" | "dashed" | "dotted"): this;
|
|
264
|
+
dash(pattern: readonly number[]): this;
|
|
265
|
+
labelPosition(value: "start" | "center" | "end"): this;
|
|
266
|
+
labelColor(value: string): this;
|
|
267
|
+
includeInDomain(enabled: boolean): this;
|
|
268
|
+
formatLabel(formatter: MarkerLabelFormatter): this;
|
|
269
|
+
}
|
|
270
|
+
export interface RegionBuilder {
|
|
271
|
+
color(value: string): this;
|
|
272
|
+
opacity(value: number): this;
|
|
273
|
+
labelPosition(value: "start" | "center" | "end"): this;
|
|
274
|
+
labelColor(value: string): this;
|
|
275
|
+
includeInDomain(enabled: boolean): this;
|
|
276
|
+
formatLabel(formatter: RegionLabelFormatter): this;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export interface CommonChartBuilder<TTooltipBuilder, TSelection extends ChartSelection> {
|
|
280
|
+
title(value: string): this;
|
|
281
|
+
description(value: string): this;
|
|
282
|
+
ariaLabel(value: string): this;
|
|
283
|
+
width(value: number): this;
|
|
284
|
+
height(value: number): this;
|
|
285
|
+
colors(values: readonly string[]): this;
|
|
286
|
+
tooltip(visible: boolean): this;
|
|
287
|
+
tooltip(configure: (tooltip: TTooltipBuilder) => void): this;
|
|
288
|
+
onSelect(callback: (selection: TSelection | undefined) => void): this;
|
|
289
|
+
}
|
|
290
|
+
export interface LegendChartBuilder {
|
|
291
|
+
legend(visible: boolean): this;
|
|
292
|
+
}
|
|
293
|
+
export interface SeriesDataBuilder<TDatasetBuilder, TDatasetInput extends DatasetInput> {
|
|
294
|
+
labels(values: readonly string[]): this;
|
|
295
|
+
dataset(values: TDatasetInput["values"]): this;
|
|
296
|
+
dataset(values: TDatasetInput["values"], color: string): this;
|
|
297
|
+
dataset(values: TDatasetInput["values"], configure: (dataset: TDatasetBuilder) => void): this;
|
|
298
|
+
dataset(name: string, values: TDatasetInput["values"]): this;
|
|
299
|
+
dataset(name: string, values: TDatasetInput["values"], color: string): this;
|
|
300
|
+
dataset(name: string, values: TDatasetInput["values"], configure: (dataset: TDatasetBuilder) => void): this;
|
|
301
|
+
dataset(input: TDatasetInput, configure?: (dataset: TDatasetBuilder) => void): this;
|
|
302
|
+
}
|
|
303
|
+
export interface CartesianBuilderMethods {
|
|
304
|
+
axes(visible: boolean): this;
|
|
305
|
+
grid(visible: boolean): this;
|
|
306
|
+
valueLabels(visible: boolean): this;
|
|
307
|
+
frameless(enabled?: boolean): this;
|
|
308
|
+
formatLabel(formatter: LabelFormatter): this;
|
|
309
|
+
formatValue(formatter: ChartValueFormatter): this;
|
|
310
|
+
yAxis(configure: (axis: AxisBuilder) => void): this;
|
|
311
|
+
marker(label: string, value: number): this;
|
|
312
|
+
marker(label: string, value: number, color: string): this;
|
|
313
|
+
marker(label: string, value: number, configure: (marker: MarkerBuilder) => void): this;
|
|
314
|
+
marker(input: MarkerInput, configure?: (marker: MarkerBuilder) => void): this;
|
|
315
|
+
region(label: string, range: ValueRange): this;
|
|
316
|
+
region(label: string, range: ValueRange, color: string): this;
|
|
317
|
+
region(label: string, range: ValueRange, configure: (region: RegionBuilder) => void): this;
|
|
318
|
+
region(input: RegionInput, configure?: (region: RegionBuilder) => void): this;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export interface LineChartBuilder
|
|
322
|
+
extends
|
|
323
|
+
CommonChartBuilder<SeriesTooltipBuilder, SeriesSelection>,
|
|
324
|
+
LegendChartBuilder,
|
|
325
|
+
SeriesDataBuilder<LineDatasetBuilder, LineDatasetInput>,
|
|
326
|
+
CartesianBuilderMethods {
|
|
327
|
+
smooth(enabled?: boolean): this;
|
|
328
|
+
dots(visible: boolean): this;
|
|
329
|
+
dotSize(value: number): this;
|
|
330
|
+
line(visible: boolean): this;
|
|
331
|
+
area(enabled?: boolean): this;
|
|
332
|
+
gradient(value?: boolean | GradientOptions): this;
|
|
333
|
+
strokeWidth(value: number): this;
|
|
334
|
+
render(): Chart<CartesianSeriesData<LineDatasetInput>, SeriesPointSnapshot>;
|
|
335
|
+
}
|
|
336
|
+
export interface BarChartBuilder
|
|
337
|
+
extends
|
|
338
|
+
CommonChartBuilder<SeriesTooltipBuilder, SeriesSelection>,
|
|
339
|
+
LegendChartBuilder,
|
|
340
|
+
SeriesDataBuilder<BarDatasetBuilder, BarDatasetInput>,
|
|
341
|
+
CartesianBuilderMethods {
|
|
342
|
+
horizontal(enabled?: boolean): this;
|
|
343
|
+
stacked(enabled?: boolean): this;
|
|
344
|
+
radius(value: number): this;
|
|
345
|
+
render(): Chart<CartesianSeriesData<BarDatasetInput>, SeriesPointSnapshot>;
|
|
346
|
+
}
|
|
347
|
+
export interface ScatterChartBuilder
|
|
348
|
+
extends
|
|
349
|
+
CommonChartBuilder<SeriesTooltipBuilder, SeriesSelection>,
|
|
350
|
+
LegendChartBuilder,
|
|
351
|
+
SeriesDataBuilder<DatasetBuilder, ScatterDatasetInput>,
|
|
352
|
+
CartesianBuilderMethods {
|
|
353
|
+
dots(visible: boolean): this;
|
|
354
|
+
render(): Chart<CartesianSeriesData<ScatterDatasetInput>, SeriesMarkSnapshot>;
|
|
355
|
+
}
|
|
356
|
+
export interface BubbleChartBuilder
|
|
357
|
+
extends
|
|
358
|
+
CommonChartBuilder<SeriesTooltipBuilder, SeriesSelection>,
|
|
359
|
+
LegendChartBuilder,
|
|
360
|
+
SeriesDataBuilder<DatasetBuilder, BubbleDatasetInput>,
|
|
361
|
+
CartesianBuilderMethods {
|
|
362
|
+
dots(visible: boolean): this;
|
|
363
|
+
render(): Chart<CartesianSeriesData<BubbleDatasetInput>, SeriesMarkSnapshot>;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
export interface MixedDataBuilder {
|
|
367
|
+
labels(values: readonly string[]): this;
|
|
368
|
+
line(
|
|
369
|
+
name: string,
|
|
370
|
+
values: readonly number[],
|
|
371
|
+
colorOrConfigure?: string | ((dataset: LineDatasetBuilder) => void),
|
|
372
|
+
): this;
|
|
373
|
+
bar(
|
|
374
|
+
name: string,
|
|
375
|
+
values: readonly number[],
|
|
376
|
+
colorOrConfigure?: string | ((dataset: BarDatasetBuilder) => void),
|
|
377
|
+
): this;
|
|
378
|
+
scatter(
|
|
379
|
+
name: string,
|
|
380
|
+
values: readonly (number | Point)[],
|
|
381
|
+
colorOrConfigure?: string | ((dataset: DatasetBuilder) => void),
|
|
382
|
+
): this;
|
|
383
|
+
dataset(
|
|
384
|
+
input: LineDatasetInput & { chartType: "line" },
|
|
385
|
+
configure?: (dataset: LineDatasetBuilder) => void,
|
|
386
|
+
): this;
|
|
387
|
+
dataset(
|
|
388
|
+
input: BarDatasetInput & { chartType: "bar" },
|
|
389
|
+
configure?: (dataset: BarDatasetBuilder) => void,
|
|
390
|
+
): this;
|
|
391
|
+
dataset(
|
|
392
|
+
input: ScatterDatasetInput & { chartType: "scatter" },
|
|
393
|
+
configure?: (dataset: DatasetBuilder) => void,
|
|
394
|
+
): this;
|
|
395
|
+
}
|
|
396
|
+
export interface MixedChartBuilder
|
|
397
|
+
extends
|
|
398
|
+
CommonChartBuilder<SeriesTooltipBuilder, SeriesSelection>,
|
|
399
|
+
LegendChartBuilder,
|
|
400
|
+
MixedDataBuilder,
|
|
401
|
+
CartesianBuilderMethods {
|
|
402
|
+
gradient(value?: boolean | GradientOptions): this;
|
|
403
|
+
render(): Chart<CartesianSeriesData<MixedDatasetInput>, SeriesMarkSnapshot>;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export interface NumericSeriesBuilder<
|
|
407
|
+
TData extends DatasetInput<number>,
|
|
408
|
+
TSelection extends ChartSelection = CompositionSelection,
|
|
409
|
+
>
|
|
410
|
+
extends
|
|
411
|
+
CommonChartBuilder<SeriesTooltipBuilder, TSelection>,
|
|
412
|
+
LegendChartBuilder,
|
|
413
|
+
SeriesDataBuilder<DatasetBuilder, TData> {
|
|
414
|
+
formatLabel(formatter: LabelFormatter): this;
|
|
415
|
+
formatValue(formatter: ChartValueFormatter): this;
|
|
416
|
+
}
|
|
417
|
+
export interface SectorChartBuilder extends NumericSeriesBuilder<DatasetInput<number>> {
|
|
418
|
+
maxSlices(value: number): this;
|
|
419
|
+
startAngle(degrees: number): this;
|
|
420
|
+
padAngle(degrees: number): this;
|
|
421
|
+
cornerRadius(value: number): this;
|
|
422
|
+
render(): Chart<SeriesData<DatasetInput<number>>, SeriesPointSnapshot>;
|
|
423
|
+
}
|
|
424
|
+
export interface PieChartBuilder extends SectorChartBuilder {}
|
|
425
|
+
export interface DonutChartBuilder extends SectorChartBuilder {}
|
|
426
|
+
export interface PercentageChartBuilder extends NumericSeriesBuilder<DatasetInput<number>> {
|
|
427
|
+
maxSlices(value: number): this;
|
|
428
|
+
radius(value: number): this;
|
|
429
|
+
render(): Chart<SeriesData<DatasetInput<number>>, SeriesPointSnapshot>;
|
|
430
|
+
}
|
|
431
|
+
export interface PolarAreaChartBuilder extends NumericSeriesBuilder<DatasetInput<number>> {
|
|
432
|
+
padAngle(degrees: number): this;
|
|
433
|
+
cornerRadius(value: number): this;
|
|
434
|
+
render(): Chart<SeriesData<DatasetInput<number>>, SeriesPointSnapshot>;
|
|
435
|
+
}
|
|
436
|
+
export interface RadarChartBuilder
|
|
437
|
+
extends
|
|
438
|
+
CommonChartBuilder<SeriesTooltipBuilder, SeriesSelection>,
|
|
439
|
+
LegendChartBuilder,
|
|
440
|
+
SeriesDataBuilder<DatasetBuilder, DatasetInput<number>> {
|
|
441
|
+
formatLabel(formatter: LabelFormatter): this;
|
|
442
|
+
formatValue(formatter: ChartValueFormatter): this;
|
|
443
|
+
strokeWidth(value: number): this;
|
|
444
|
+
render(): Chart<SeriesData<DatasetInput<number>>, SeriesPointSnapshot>;
|
|
445
|
+
}
|
|
446
|
+
export interface HeatmapChartBuilder extends CommonChartBuilder<HeatmapTooltipBuilder, HeatmapSelection> {
|
|
447
|
+
range(start: Date, end: Date): this;
|
|
448
|
+
points(values: Readonly<Record<string | number, number>>): this;
|
|
449
|
+
countLabel(value: string): this;
|
|
450
|
+
radius(value: number): this;
|
|
451
|
+
render(): Chart<HeatmapData, HeatmapPointSnapshot>;
|
|
452
|
+
}
|
|
453
|
+
export interface TimesheetChartBuilder extends CommonChartBuilder<
|
|
454
|
+
TimesheetTooltipBuilder,
|
|
455
|
+
TimesheetSelection
|
|
456
|
+
> {
|
|
457
|
+
range(start: TimesheetDate, end: TimesheetDate): this;
|
|
458
|
+
task(label: string, start: TimesheetDate, end: TimesheetDate): this;
|
|
459
|
+
task(input: TimesheetTaskInput): this;
|
|
460
|
+
axes(visible: boolean): this;
|
|
461
|
+
grid(visible: boolean): this;
|
|
462
|
+
valueLabels(visible: boolean): this;
|
|
463
|
+
formatDate(formatter: DateFormatter): this;
|
|
464
|
+
formatDuration(formatter: DurationFormatter): this;
|
|
465
|
+
formatTick(formatter: DateFormatter): this;
|
|
466
|
+
radius(value: number): this;
|
|
467
|
+
render(): Chart<TimesheetData, TimesheetPointSnapshot>;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
export declare const LineChart: Readonly<ChartDefinition<LineChartBuilder>>;
|
|
471
|
+
export declare const BarChart: Readonly<ChartDefinition<BarChartBuilder>>;
|
|
472
|
+
export declare const ScatterChart: Readonly<ChartDefinition<ScatterChartBuilder>>;
|
|
473
|
+
export declare const MixedChart: Readonly<ChartDefinition<MixedChartBuilder>>;
|
|
474
|
+
export declare const BubbleChart: Readonly<ChartDefinition<BubbleChartBuilder>>;
|
|
475
|
+
export declare const PieChart: Readonly<ChartDefinition<PieChartBuilder>>;
|
|
476
|
+
export declare const DonutChart: Readonly<ChartDefinition<DonutChartBuilder>>;
|
|
477
|
+
export declare const PercentageChart: Readonly<ChartDefinition<PercentageChartBuilder>>;
|
|
478
|
+
export declare const RadarChart: Readonly<ChartDefinition<RadarChartBuilder>>;
|
|
479
|
+
export declare const PolarAreaChart: Readonly<ChartDefinition<PolarAreaChartBuilder>>;
|
|
480
|
+
export declare const HeatmapChart: Readonly<ChartDefinition<HeatmapChartBuilder>>;
|
|
481
|
+
export declare const TimesheetChart: Readonly<ChartDefinition<TimesheetChartBuilder>>;
|