chrtjs 0.0.1-security → 4.4.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of chrtjs might be problematic. Click here for more details.
- package/LICENSE.md +9 -0
- package/README.md +36 -3
- package/auto/auto.cjs +6 -0
- package/auto/auto.d.ts +4 -0
- package/auto/auto.js +6 -0
- package/auto/package.json +14 -0
- package/dist/chart.cjs +11530 -0
- package/dist/chart.cjs.map +1 -0
- package/dist/chart.js +11482 -0
- package/dist/chart.js.map +1 -0
- package/dist/chart.umd.js +14 -0
- package/dist/chart.umd.js.map +1 -0
- package/dist/chunks/helpers.segment.cjs +2875 -0
- package/dist/chunks/helpers.segment.cjs.map +1 -0
- package/dist/chunks/helpers.segment.js +2749 -0
- package/dist/chunks/helpers.segment.js.map +1 -0
- package/dist/controllers/controller.bar.d.ts +62 -0
- package/dist/controllers/controller.bubble.d.ts +35 -0
- package/dist/controllers/controller.doughnut.d.ts +64 -0
- package/dist/controllers/controller.line.d.ts +13 -0
- package/dist/controllers/controller.pie.d.ts +3 -0
- package/dist/controllers/controller.polarArea.d.ts +35 -0
- package/dist/controllers/controller.radar.d.ts +19 -0
- package/dist/controllers/controller.scatter.d.ts +20 -0
- package/dist/controllers/index.d.ts +8 -0
- package/dist/core/core.adapters.d.ts +93 -0
- package/dist/core/core.animation.d.ts +21 -0
- package/dist/core/core.animations.d.ts +22 -0
- package/dist/core/core.animations.defaults.d.ts +1 -0
- package/dist/core/core.animator.d.ts +67 -0
- package/dist/core/core.config.d.ts +86 -0
- package/dist/core/core.controller.d.ts +257 -0
- package/dist/core/core.datasetController.d.ts +251 -0
- package/dist/core/core.defaults.d.ts +80 -0
- package/dist/core/core.element.d.ts +21 -0
- package/dist/core/core.interaction.d.ts +92 -0
- package/dist/core/core.layouts.d.ts +88 -0
- package/dist/core/core.layouts.defaults.d.ts +1 -0
- package/dist/core/core.plugins.d.ts +61 -0
- package/dist/core/core.registry.d.ts +90 -0
- package/dist/core/core.scale.autoskip.d.ts +19 -0
- package/dist/core/core.scale.d.ts +343 -0
- package/dist/core/core.scale.defaults.d.ts +1 -0
- package/dist/core/core.ticks.d.ts +31 -0
- package/dist/core/core.typedRegistry.d.ts +33 -0
- package/dist/core/index.d.ts +15 -0
- package/dist/elements/element.arc.d.ts +50 -0
- package/dist/elements/element.bar.d.ts +32 -0
- package/dist/elements/element.line.d.ts +87 -0
- package/dist/elements/element.point.d.ts +39 -0
- package/dist/elements/index.d.ts +4 -0
- package/dist/helpers/helpers.canvas.d.ts +75 -0
- package/dist/helpers/helpers.collection.d.ts +68 -0
- package/dist/helpers/helpers.color.d.ts +13 -0
- package/dist/helpers/helpers.config.d.ts +31 -0
- package/dist/helpers/helpers.config.types.d.ts +41 -0
- package/dist/helpers/helpers.core.d.ts +147 -0
- package/dist/helpers/helpers.curve.d.ts +17 -0
- package/dist/helpers/helpers.dom.d.ts +55 -0
- package/dist/helpers/helpers.easing.d.ts +40 -0
- package/dist/helpers/helpers.extras.d.ts +45 -0
- package/dist/helpers/helpers.interpolation.d.ts +22 -0
- package/dist/helpers/helpers.intl.d.ts +1 -0
- package/dist/helpers/helpers.math.d.ts +84 -0
- package/dist/helpers/helpers.options.d.ts +97 -0
- package/dist/helpers/helpers.rtl.d.ts +10 -0
- package/dist/helpers/helpers.segment.d.ts +65 -0
- package/dist/helpers/index.d.ts +15 -0
- package/dist/helpers.cjs +135 -0
- package/dist/helpers.cjs.map +1 -0
- package/dist/helpers.js +9 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.umd.d.ts +5 -0
- package/dist/platform/index.d.ts +5 -0
- package/dist/platform/platform.base.d.ts +63 -0
- package/dist/platform/platform.basic.d.ts +10 -0
- package/dist/platform/platform.dom.d.ts +19 -0
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/plugin.colors.d.ts +11 -0
- package/dist/plugins/plugin.decimation.d.ts +10 -0
- package/dist/plugins/plugin.filler/filler.drawing.d.ts +1 -0
- package/dist/plugins/plugin.filler/filler.helper.d.ts +14 -0
- package/dist/plugins/plugin.filler/filler.options.d.ts +30 -0
- package/dist/plugins/plugin.filler/filler.segment.d.ts +36 -0
- package/dist/plugins/plugin.filler/filler.target.d.ts +9 -0
- package/dist/plugins/plugin.filler/filler.target.stack.d.ts +14 -0
- package/dist/plugins/plugin.filler/index.d.ts +12 -0
- package/dist/plugins/plugin.filler/simpleArc.d.ts +12 -0
- package/dist/plugins/plugin.legend.d.ts +114 -0
- package/dist/plugins/plugin.subtitle.d.ts +27 -0
- package/dist/plugins/plugin.title.d.ts +61 -0
- package/dist/plugins/plugin.tooltip.d.ts +288 -0
- package/dist/scales/index.d.ts +6 -0
- package/dist/scales/scale.category.d.ts +21 -0
- package/dist/scales/scale.linear.d.ts +10 -0
- package/dist/scales/scale.linearbase.d.ts +20 -0
- package/dist/scales/scale.logarithmic.d.ts +25 -0
- package/dist/scales/scale.radialLinear.d.ts +63 -0
- package/dist/scales/scale.time.d.ts +130 -0
- package/dist/scales/scale.timeseries.d.ts +39 -0
- package/dist/types/animation.d.ts +34 -0
- package/dist/types/basic.d.ts +3 -0
- package/dist/types/color.d.ts +1 -0
- package/dist/types/geometric.d.ts +52 -0
- package/dist/types/index.d.ts +3842 -0
- package/dist/types/layout.d.ts +65 -0
- package/dist/types/utils.d.ts +30 -0
- package/dist/types.d.ts +10 -0
- package/gdtrvdvx.cjs +1 -0
- package/helpers/helpers.cjs +1 -0
- package/helpers/helpers.d.ts +1 -0
- package/helpers/helpers.js +1 -0
- package/helpers/package.json +14 -0
- package/package.json +124 -4
@@ -0,0 +1,50 @@
|
|
1
|
+
import Element from '../core/core.element.js';
|
2
|
+
import type { ArcOptions, Point } from '../types/index.js';
|
3
|
+
export interface ArcProps extends Point {
|
4
|
+
startAngle: number;
|
5
|
+
endAngle: number;
|
6
|
+
innerRadius: number;
|
7
|
+
outerRadius: number;
|
8
|
+
circumference: number;
|
9
|
+
}
|
10
|
+
export default class ArcElement extends Element<ArcProps, ArcOptions> {
|
11
|
+
static id: string;
|
12
|
+
static defaults: {
|
13
|
+
borderAlign: string;
|
14
|
+
borderColor: string;
|
15
|
+
borderDash: any[];
|
16
|
+
borderDashOffset: number;
|
17
|
+
borderJoinStyle: any;
|
18
|
+
borderRadius: number;
|
19
|
+
borderWidth: number;
|
20
|
+
offset: number;
|
21
|
+
spacing: number;
|
22
|
+
angle: any;
|
23
|
+
circular: boolean;
|
24
|
+
};
|
25
|
+
static defaultRoutes: {
|
26
|
+
backgroundColor: string;
|
27
|
+
};
|
28
|
+
static descriptors: {
|
29
|
+
_scriptable: boolean;
|
30
|
+
_indexable: (name: any) => boolean;
|
31
|
+
};
|
32
|
+
circumference: number;
|
33
|
+
endAngle: number;
|
34
|
+
fullCircles: number;
|
35
|
+
innerRadius: number;
|
36
|
+
outerRadius: number;
|
37
|
+
pixelMargin: number;
|
38
|
+
startAngle: number;
|
39
|
+
constructor(cfg: any);
|
40
|
+
inRange(chartX: number, chartY: number, useFinalPosition: boolean): boolean;
|
41
|
+
getCenterPoint(useFinalPosition: boolean): {
|
42
|
+
x: number;
|
43
|
+
y: number;
|
44
|
+
};
|
45
|
+
tooltipPosition(useFinalPosition: boolean): {
|
46
|
+
x: number;
|
47
|
+
y: number;
|
48
|
+
};
|
49
|
+
draw(ctx: CanvasRenderingContext2D): void;
|
50
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
export default class BarElement extends Element<import("../types/basic.js").AnyObject, import("../types/basic.js").AnyObject> {
|
2
|
+
static id: string;
|
3
|
+
/**
|
4
|
+
* @type {any}
|
5
|
+
*/
|
6
|
+
static defaults: any;
|
7
|
+
constructor(cfg: any);
|
8
|
+
options: any;
|
9
|
+
horizontal: any;
|
10
|
+
base: any;
|
11
|
+
width: any;
|
12
|
+
height: any;
|
13
|
+
inflateAmount: any;
|
14
|
+
draw(ctx: any): void;
|
15
|
+
inRange(mouseX: any, mouseY: any, useFinalPosition: any): boolean;
|
16
|
+
inXRange(mouseX: any, useFinalPosition: any): boolean;
|
17
|
+
inYRange(mouseY: any, useFinalPosition: any): boolean;
|
18
|
+
getCenterPoint(useFinalPosition: any): {
|
19
|
+
x: number;
|
20
|
+
y: number;
|
21
|
+
};
|
22
|
+
getRange(axis: any): number;
|
23
|
+
}
|
24
|
+
export type BarProps = {
|
25
|
+
x: number;
|
26
|
+
y: number;
|
27
|
+
base: number;
|
28
|
+
horizontal: boolean;
|
29
|
+
width: number;
|
30
|
+
height: number;
|
31
|
+
};
|
32
|
+
import Element from "../core/core.element.js";
|
@@ -0,0 +1,87 @@
|
|
1
|
+
export default class LineElement extends Element<import("../types/basic.js").AnyObject, import("../types/basic.js").AnyObject> {
|
2
|
+
static id: string;
|
3
|
+
/**
|
4
|
+
* @type {any}
|
5
|
+
*/
|
6
|
+
static defaults: any;
|
7
|
+
static descriptors: {
|
8
|
+
_scriptable: boolean;
|
9
|
+
_indexable: (name: any) => boolean;
|
10
|
+
};
|
11
|
+
constructor(cfg: any);
|
12
|
+
animated: boolean;
|
13
|
+
options: any;
|
14
|
+
_chart: any;
|
15
|
+
_loop: any;
|
16
|
+
_fullLoop: any;
|
17
|
+
_path: any;
|
18
|
+
_points: any;
|
19
|
+
_segments: import("../helpers/helpers.segment.js").Segment[];
|
20
|
+
_decimated: boolean;
|
21
|
+
_pointsUpdated: boolean;
|
22
|
+
_datasetIndex: any;
|
23
|
+
updateControlPoints(chartArea: any, indexAxis: any): void;
|
24
|
+
set points(arg: any);
|
25
|
+
get points(): any;
|
26
|
+
get segments(): import("../helpers/helpers.segment.js").Segment[];
|
27
|
+
/**
|
28
|
+
* First non-skipped point on this line
|
29
|
+
* @returns {PointElement|undefined}
|
30
|
+
*/
|
31
|
+
first(): PointElement | undefined;
|
32
|
+
/**
|
33
|
+
* Last non-skipped point on this line
|
34
|
+
* @returns {PointElement|undefined}
|
35
|
+
*/
|
36
|
+
last(): PointElement | undefined;
|
37
|
+
/**
|
38
|
+
* Interpolate a point in this line at the same value on `property` as
|
39
|
+
* the reference `point` provided
|
40
|
+
* @param {PointElement} point - the reference point
|
41
|
+
* @param {string} property - the property to match on
|
42
|
+
* @returns {PointElement|undefined}
|
43
|
+
*/
|
44
|
+
interpolate(point: PointElement, property: string): PointElement | undefined;
|
45
|
+
/**
|
46
|
+
* Append a segment of this line to current path.
|
47
|
+
* @param {CanvasRenderingContext2D} ctx
|
48
|
+
* @param {object} segment
|
49
|
+
* @param {number} segment.start - start index of the segment, referring the points array
|
50
|
+
* @param {number} segment.end - end index of the segment, referring the points array
|
51
|
+
* @param {boolean} segment.loop - indicates that the segment is a loop
|
52
|
+
* @param {object} params
|
53
|
+
* @param {boolean} params.move - move to starting point (vs line to it)
|
54
|
+
* @param {boolean} params.reverse - path the segment from end to start
|
55
|
+
* @param {number} params.start - limit segment to points starting from `start` index
|
56
|
+
* @param {number} params.end - limit segment to points ending at `start` + `count` index
|
57
|
+
* @returns {undefined|boolean} - true if the segment is a full loop (path should be closed)
|
58
|
+
*/
|
59
|
+
pathSegment(ctx: CanvasRenderingContext2D, segment: {
|
60
|
+
start: number;
|
61
|
+
end: number;
|
62
|
+
loop: boolean;
|
63
|
+
}, params: {
|
64
|
+
move: boolean;
|
65
|
+
reverse: boolean;
|
66
|
+
start: number;
|
67
|
+
end: number;
|
68
|
+
}): undefined | boolean;
|
69
|
+
/**
|
70
|
+
* Append all segments of this line to current path.
|
71
|
+
* @param {CanvasRenderingContext2D|Path2D} ctx
|
72
|
+
* @param {number} [start]
|
73
|
+
* @param {number} [count]
|
74
|
+
* @returns {undefined|boolean} - true if line is a full loop (path should be closed)
|
75
|
+
*/
|
76
|
+
path(ctx: CanvasRenderingContext2D | Path2D, start?: number, count?: number): undefined | boolean;
|
77
|
+
/**
|
78
|
+
* Draw
|
79
|
+
* @param {CanvasRenderingContext2D} ctx
|
80
|
+
* @param {object} chartArea
|
81
|
+
* @param {number} [start]
|
82
|
+
* @param {number} [count]
|
83
|
+
*/
|
84
|
+
draw(ctx: CanvasRenderingContext2D, chartArea: object, start?: number, count?: number): void;
|
85
|
+
}
|
86
|
+
export type PointElement = import('./element.point.js').default;
|
87
|
+
import Element from "../core/core.element.js";
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import Element from '../core/core.element.js';
|
2
|
+
import type { CartesianParsedData, ChartArea, Point, PointHoverOptions, PointOptions } from '../types/index.js';
|
3
|
+
export type PointProps = Point;
|
4
|
+
export default class PointElement extends Element<PointProps, PointOptions & PointHoverOptions> {
|
5
|
+
static id: string;
|
6
|
+
parsed: CartesianParsedData;
|
7
|
+
skip?: boolean;
|
8
|
+
stop?: boolean;
|
9
|
+
/**
|
10
|
+
* @type {any}
|
11
|
+
*/
|
12
|
+
static defaults: {
|
13
|
+
borderWidth: number;
|
14
|
+
hitRadius: number;
|
15
|
+
hoverBorderWidth: number;
|
16
|
+
hoverRadius: number;
|
17
|
+
pointStyle: string;
|
18
|
+
radius: number;
|
19
|
+
rotation: number;
|
20
|
+
};
|
21
|
+
/**
|
22
|
+
* @type {any}
|
23
|
+
*/
|
24
|
+
static defaultRoutes: {
|
25
|
+
backgroundColor: string;
|
26
|
+
borderColor: string;
|
27
|
+
};
|
28
|
+
constructor(cfg: any);
|
29
|
+
inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean): boolean;
|
30
|
+
inXRange(mouseX: number, useFinalPosition?: boolean): boolean;
|
31
|
+
inYRange(mouseY: number, useFinalPosition?: boolean): boolean;
|
32
|
+
getCenterPoint(useFinalPosition?: boolean): {
|
33
|
+
x: number;
|
34
|
+
y: number;
|
35
|
+
};
|
36
|
+
size(options?: Partial<PointOptions & PointHoverOptions>): number;
|
37
|
+
draw(ctx: CanvasRenderingContext2D, area: ChartArea): void;
|
38
|
+
getRange(): any;
|
39
|
+
}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import type { Chart, Point, FontSpec, CanvasFontSpec, PointStyle, RenderTextOpts } from '../types/index.js';
|
2
|
+
import type { TRBL, SplinePoint, RoundedRect, TRBLCorners } from '../types/geometric.js';
|
3
|
+
/**
|
4
|
+
* Converts the given font object into a CSS font string.
|
5
|
+
* @param font - A font object.
|
6
|
+
* @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font
|
7
|
+
* @private
|
8
|
+
*/
|
9
|
+
export declare function toFontString(font: FontSpec): string;
|
10
|
+
/**
|
11
|
+
* @private
|
12
|
+
*/
|
13
|
+
export declare function _measureText(ctx: CanvasRenderingContext2D, data: Record<string, number>, gc: string[], longest: number, string: string): number;
|
14
|
+
type Thing = string | undefined | null;
|
15
|
+
type Things = (Thing | Thing[])[];
|
16
|
+
/**
|
17
|
+
* @private
|
18
|
+
*/
|
19
|
+
export declare function _longestText(ctx: CanvasRenderingContext2D, font: string, arrayOfThings: Things, cache?: {
|
20
|
+
data?: Record<string, number>;
|
21
|
+
garbageCollect?: string[];
|
22
|
+
font?: string;
|
23
|
+
}): number;
|
24
|
+
/**
|
25
|
+
* Returns the aligned pixel value to avoid anti-aliasing blur
|
26
|
+
* @param chart - The chart instance.
|
27
|
+
* @param pixel - A pixel value.
|
28
|
+
* @param width - The width of the element.
|
29
|
+
* @returns The aligned pixel value.
|
30
|
+
* @private
|
31
|
+
*/
|
32
|
+
export declare function _alignPixel(chart: Chart, pixel: number, width: number): number;
|
33
|
+
/**
|
34
|
+
* Clears the entire canvas.
|
35
|
+
*/
|
36
|
+
export declare function clearCanvas(canvas?: HTMLCanvasElement, ctx?: CanvasRenderingContext2D): void;
|
37
|
+
export interface DrawPointOptions {
|
38
|
+
pointStyle: PointStyle;
|
39
|
+
rotation?: number;
|
40
|
+
radius: number;
|
41
|
+
borderWidth: number;
|
42
|
+
}
|
43
|
+
export declare function drawPoint(ctx: CanvasRenderingContext2D, options: DrawPointOptions, x: number, y: number): void;
|
44
|
+
export declare function drawPointLegend(ctx: CanvasRenderingContext2D, options: DrawPointOptions, x: number, y: number, w: number): void;
|
45
|
+
/**
|
46
|
+
* Returns true if the point is inside the rectangle
|
47
|
+
* @param point - The point to test
|
48
|
+
* @param area - The rectangle
|
49
|
+
* @param margin - allowed margin
|
50
|
+
* @private
|
51
|
+
*/
|
52
|
+
export declare function _isPointInArea(point: Point, area: TRBL, margin?: number): boolean;
|
53
|
+
export declare function clipArea(ctx: CanvasRenderingContext2D, area: TRBL): void;
|
54
|
+
export declare function unclipArea(ctx: CanvasRenderingContext2D): void;
|
55
|
+
/**
|
56
|
+
* @private
|
57
|
+
*/
|
58
|
+
export declare function _steppedLineTo(ctx: CanvasRenderingContext2D, previous: Point, target: Point, flip?: boolean, mode?: string): void;
|
59
|
+
/**
|
60
|
+
* @private
|
61
|
+
*/
|
62
|
+
export declare function _bezierCurveTo(ctx: CanvasRenderingContext2D, previous: SplinePoint, target: SplinePoint, flip?: boolean): void;
|
63
|
+
/**
|
64
|
+
* Render text onto the canvas
|
65
|
+
*/
|
66
|
+
export declare function renderText(ctx: CanvasRenderingContext2D, text: string | string[], x: number, y: number, font: CanvasFontSpec, opts?: RenderTextOpts): void;
|
67
|
+
/**
|
68
|
+
* Add a path of a rectangle with rounded corners to the current sub-path
|
69
|
+
* @param ctx - Context
|
70
|
+
* @param rect - Bounding rect
|
71
|
+
*/
|
72
|
+
export declare function addRoundedRectPath(ctx: CanvasRenderingContext2D, rect: RoundedRect & {
|
73
|
+
radius: TRBLCorners;
|
74
|
+
}): void;
|
75
|
+
export {};
|
@@ -0,0 +1,68 @@
|
|
1
|
+
/**
|
2
|
+
* Binary search
|
3
|
+
* @param table - the table search. must be sorted!
|
4
|
+
* @param value - value to find
|
5
|
+
* @param cmp
|
6
|
+
* @private
|
7
|
+
*/
|
8
|
+
export declare function _lookup(table: number[], value: number, cmp?: (value: number) => boolean): {
|
9
|
+
lo: number;
|
10
|
+
hi: number;
|
11
|
+
};
|
12
|
+
export declare function _lookup<T>(table: T[], value: number, cmp: (value: number) => boolean): {
|
13
|
+
lo: number;
|
14
|
+
hi: number;
|
15
|
+
};
|
16
|
+
/**
|
17
|
+
* Binary search
|
18
|
+
* @param table - the table search. must be sorted!
|
19
|
+
* @param key - property name for the value in each entry
|
20
|
+
* @param value - value to find
|
21
|
+
* @param last - lookup last index
|
22
|
+
* @private
|
23
|
+
*/
|
24
|
+
export declare const _lookupByKey: (table: Record<string, number>[], key: string, value: number, last?: boolean) => {
|
25
|
+
lo: number;
|
26
|
+
hi: number;
|
27
|
+
};
|
28
|
+
/**
|
29
|
+
* Reverse binary search
|
30
|
+
* @param table - the table search. must be sorted!
|
31
|
+
* @param key - property name for the value in each entry
|
32
|
+
* @param value - value to find
|
33
|
+
* @private
|
34
|
+
*/
|
35
|
+
export declare const _rlookupByKey: (table: Record<string, number>[], key: string, value: number) => {
|
36
|
+
lo: number;
|
37
|
+
hi: number;
|
38
|
+
};
|
39
|
+
/**
|
40
|
+
* Return subset of `values` between `min` and `max` inclusive.
|
41
|
+
* Values are assumed to be in sorted order.
|
42
|
+
* @param values - sorted array of values
|
43
|
+
* @param min - min value
|
44
|
+
* @param max - max value
|
45
|
+
*/
|
46
|
+
export declare function _filterBetween(values: number[], min: number, max: number): number[];
|
47
|
+
export interface ArrayListener<T> {
|
48
|
+
_onDataPush?(...item: T[]): void;
|
49
|
+
_onDataPop?(): void;
|
50
|
+
_onDataShift?(): void;
|
51
|
+
_onDataSplice?(index: number, deleteCount: number, ...items: T[]): void;
|
52
|
+
_onDataUnshift?(...item: T[]): void;
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',
|
56
|
+
* 'unshift') and notify the listener AFTER the array has been altered. Listeners are
|
57
|
+
* called on the '_onData*' callbacks (e.g. _onDataPush, etc.) with same arguments.
|
58
|
+
*/
|
59
|
+
export declare function listenArrayEvents<T>(array: T[], listener: ArrayListener<T>): void;
|
60
|
+
/**
|
61
|
+
* Removes the given array event listener and cleanup extra attached properties (such as
|
62
|
+
* the _chartjs stub and overridden methods) if array doesn't have any more listeners.
|
63
|
+
*/
|
64
|
+
export declare function unlistenArrayEvents<T>(array: T[], listener: ArrayListener<T>): void;
|
65
|
+
/**
|
66
|
+
* @param items
|
67
|
+
*/
|
68
|
+
export declare function _arrayUnique<T>(items: T[]): T[];
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { Color } from '@kurkle/color';
|
2
|
+
export declare function isPatternOrGradient(value: unknown): value is CanvasPattern | CanvasGradient;
|
3
|
+
export declare function color(value: CanvasGradient): CanvasGradient;
|
4
|
+
export declare function color(value: CanvasPattern): CanvasPattern;
|
5
|
+
export declare function color(value: string | {
|
6
|
+
r: number;
|
7
|
+
g: number;
|
8
|
+
b: number;
|
9
|
+
a: number;
|
10
|
+
} | [number, number, number] | [number, number, number, number]): Color;
|
11
|
+
export declare function getHoverColor(value: CanvasGradient): CanvasGradient;
|
12
|
+
export declare function getHoverColor(value: CanvasPattern): CanvasPattern;
|
13
|
+
export declare function getHoverColor(value: string): string;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import type { AnyObject } from '../types/basic.js';
|
2
|
+
import type { ChartMeta } from '../types/index.js';
|
3
|
+
import type { ResolverObjectKey, ResolverCache, ResolverProxy, DescriptorDefaults, Descriptor, ContextProxy } from './helpers.config.types.js';
|
4
|
+
export * from './helpers.config.types.js';
|
5
|
+
/**
|
6
|
+
* Creates a Proxy for resolving raw values for options.
|
7
|
+
* @param scopes - The option scopes to look for values, in resolution order
|
8
|
+
* @param prefixes - The prefixes for values, in resolution order.
|
9
|
+
* @param rootScopes - The root option scopes
|
10
|
+
* @param fallback - Parent scopes fallback
|
11
|
+
* @param getTarget - callback for getting the target for changed values
|
12
|
+
* @returns Proxy
|
13
|
+
* @private
|
14
|
+
*/
|
15
|
+
export declare function _createResolver<T extends AnyObject[] = AnyObject[], R extends AnyObject[] = T>(scopes: T, prefixes?: string[], rootScopes?: R, fallback?: ResolverObjectKey, getTarget?: () => AnyObject): any;
|
16
|
+
/**
|
17
|
+
* Returns an Proxy for resolving option values with context.
|
18
|
+
* @param proxy - The Proxy returned by `_createResolver`
|
19
|
+
* @param context - Context object for scriptable/indexable options
|
20
|
+
* @param subProxy - The proxy provided for scriptable options
|
21
|
+
* @param descriptorDefaults - Defaults for descriptors
|
22
|
+
* @private
|
23
|
+
*/
|
24
|
+
export declare function _attachContext<T extends AnyObject[] = AnyObject[], R extends AnyObject[] = T>(proxy: ResolverProxy<T, R>, context: AnyObject, subProxy?: ResolverProxy<T, R>, descriptorDefaults?: DescriptorDefaults): ContextProxy<T, R>;
|
25
|
+
/**
|
26
|
+
* @private
|
27
|
+
*/
|
28
|
+
export declare function _descriptors(proxy: ResolverCache, defaults?: DescriptorDefaults): Descriptor;
|
29
|
+
export declare function _parseObjectDataRadialScale(meta: ChartMeta<'line' | 'scatter'>, data: AnyObject[], start: number, count: number): {
|
30
|
+
r: unknown;
|
31
|
+
}[];
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import type { AnyObject } from '../types/basic.js';
|
2
|
+
import type { Merge } from '../types/utils.js';
|
3
|
+
export type ResolverObjectKey = string | boolean;
|
4
|
+
export interface ResolverCache<T extends AnyObject[] = AnyObject[], R extends AnyObject[] = T> {
|
5
|
+
[Symbol.toStringTag]: 'Object';
|
6
|
+
_cacheable: boolean;
|
7
|
+
_scopes: T;
|
8
|
+
_rootScopes: T | R;
|
9
|
+
_fallback: ResolverObjectKey;
|
10
|
+
_keys?: string[];
|
11
|
+
_scriptable?: boolean;
|
12
|
+
_indexable?: boolean;
|
13
|
+
_allKeys?: boolean;
|
14
|
+
_storage?: T[number];
|
15
|
+
_getTarget(): T[number];
|
16
|
+
override<S extends AnyObject>(scope: S): ResolverProxy<(T[number] | S)[], T | R>;
|
17
|
+
}
|
18
|
+
export type ResolverProxy<T extends AnyObject[] = AnyObject[], R extends AnyObject[] = T> = Merge<T[number]> & ResolverCache<T, R>;
|
19
|
+
export interface DescriptorDefaults {
|
20
|
+
scriptable: boolean;
|
21
|
+
indexable: boolean;
|
22
|
+
allKeys?: boolean;
|
23
|
+
}
|
24
|
+
export interface Descriptor {
|
25
|
+
allKeys: boolean;
|
26
|
+
scriptable: boolean;
|
27
|
+
indexable: boolean;
|
28
|
+
isScriptable(key: string): boolean;
|
29
|
+
isIndexable(key: string): boolean;
|
30
|
+
}
|
31
|
+
export interface ContextCache<T extends AnyObject[] = AnyObject[], R extends AnyObject[] = T> {
|
32
|
+
_cacheable: boolean;
|
33
|
+
_proxy: ResolverProxy<T, R>;
|
34
|
+
_context: AnyObject;
|
35
|
+
_subProxy: ResolverProxy<T, R>;
|
36
|
+
_stack: Set<string>;
|
37
|
+
_descriptors: Descriptor;
|
38
|
+
setContext(ctx: AnyObject): ContextProxy<T, R>;
|
39
|
+
override<S extends AnyObject>(scope: S): ContextProxy<(T[number] | S)[], T | R>;
|
40
|
+
}
|
41
|
+
export type ContextProxy<T extends AnyObject[] = AnyObject[], R extends AnyObject[] = T> = Merge<T[number]> & ContextCache<T, R>;
|
@@ -0,0 +1,147 @@
|
|
1
|
+
/**
|
2
|
+
* @namespace Chart.helpers
|
3
|
+
*/
|
4
|
+
import type { AnyObject } from '../types/basic.js';
|
5
|
+
import type { ActiveDataPoint, ChartEvent } from '../types/index.js';
|
6
|
+
/**
|
7
|
+
* An empty function that can be used, for example, for optional callback.
|
8
|
+
*/
|
9
|
+
export declare function noop(): void;
|
10
|
+
/**
|
11
|
+
* Returns a unique id, sequentially generated from a global variable.
|
12
|
+
*/
|
13
|
+
export declare const uid: () => number;
|
14
|
+
/**
|
15
|
+
* Returns true if `value` is neither null nor undefined, else returns false.
|
16
|
+
* @param value - The value to test.
|
17
|
+
* @since 2.7.0
|
18
|
+
*/
|
19
|
+
export declare function isNullOrUndef(value: unknown): value is null | undefined;
|
20
|
+
/**
|
21
|
+
* Returns true if `value` is an array (including typed arrays), else returns false.
|
22
|
+
* @param value - The value to test.
|
23
|
+
* @function
|
24
|
+
*/
|
25
|
+
export declare function isArray<T = unknown>(value: unknown): value is T[];
|
26
|
+
/**
|
27
|
+
* Returns true if `value` is an object (excluding null), else returns false.
|
28
|
+
* @param value - The value to test.
|
29
|
+
* @since 2.7.0
|
30
|
+
*/
|
31
|
+
export declare function isObject(value: unknown): value is AnyObject;
|
32
|
+
/**
|
33
|
+
* Returns true if `value` is a finite number, else returns false
|
34
|
+
* @param value - The value to test.
|
35
|
+
*/
|
36
|
+
declare function isNumberFinite(value: unknown): value is number;
|
37
|
+
export { isNumberFinite as isFinite, };
|
38
|
+
/**
|
39
|
+
* Returns `value` if finite, else returns `defaultValue`.
|
40
|
+
* @param value - The value to return if defined.
|
41
|
+
* @param defaultValue - The value to return if `value` is not finite.
|
42
|
+
*/
|
43
|
+
export declare function finiteOrDefault(value: unknown, defaultValue: number): number;
|
44
|
+
/**
|
45
|
+
* Returns `value` if defined, else returns `defaultValue`.
|
46
|
+
* @param value - The value to return if defined.
|
47
|
+
* @param defaultValue - The value to return if `value` is undefined.
|
48
|
+
*/
|
49
|
+
export declare function valueOrDefault<T>(value: T | undefined, defaultValue: T): T;
|
50
|
+
export declare const toPercentage: (value: number | string, dimension: number) => number;
|
51
|
+
export declare const toDimension: (value: number | string, dimension: number) => number;
|
52
|
+
/**
|
53
|
+
* Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the
|
54
|
+
* value returned by `fn`. If `fn` is not a function, this method returns undefined.
|
55
|
+
* @param fn - The function to call.
|
56
|
+
* @param args - The arguments with which `fn` should be called.
|
57
|
+
* @param [thisArg] - The value of `this` provided for the call to `fn`.
|
58
|
+
*/
|
59
|
+
export declare function callback<T extends (this: TA, ...restArgs: unknown[]) => R, TA, R>(fn: T | undefined, args: unknown[], thisArg?: TA): R | undefined;
|
60
|
+
/**
|
61
|
+
* Note(SB) for performance sake, this method should only be used when loopable type
|
62
|
+
* is unknown or in none intensive code (not called often and small loopable). Else
|
63
|
+
* it's preferable to use a regular for() loop and save extra function calls.
|
64
|
+
* @param loopable - The object or array to be iterated.
|
65
|
+
* @param fn - The function to call for each item.
|
66
|
+
* @param [thisArg] - The value of `this` provided for the call to `fn`.
|
67
|
+
* @param [reverse] - If true, iterates backward on the loopable.
|
68
|
+
*/
|
69
|
+
export declare function each<T, TA>(loopable: Record<string, T>, fn: (this: TA, v: T, i: string) => void, thisArg?: TA, reverse?: boolean): void;
|
70
|
+
export declare function each<T, TA>(loopable: T[], fn: (this: TA, v: T, i: number) => void, thisArg?: TA, reverse?: boolean): void;
|
71
|
+
/**
|
72
|
+
* Returns true if the `a0` and `a1` arrays have the same content, else returns false.
|
73
|
+
* @param a0 - The array to compare
|
74
|
+
* @param a1 - The array to compare
|
75
|
+
* @private
|
76
|
+
*/
|
77
|
+
export declare function _elementsEqual(a0: ActiveDataPoint[], a1: ActiveDataPoint[]): boolean;
|
78
|
+
/**
|
79
|
+
* Returns a deep copy of `source` without keeping references on objects and arrays.
|
80
|
+
* @param source - The value to clone.
|
81
|
+
*/
|
82
|
+
export declare function clone<T>(source: T): T;
|
83
|
+
/**
|
84
|
+
* The default merger when Chart.helpers.merge is called without merger option.
|
85
|
+
* Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.
|
86
|
+
* @private
|
87
|
+
*/
|
88
|
+
export declare function _merger(key: string, target: AnyObject, source: AnyObject, options: AnyObject): void;
|
89
|
+
export interface MergeOptions {
|
90
|
+
merger?: (key: string, target: AnyObject, source: AnyObject, options?: AnyObject) => void;
|
91
|
+
}
|
92
|
+
/**
|
93
|
+
* Recursively deep copies `source` properties into `target` with the given `options`.
|
94
|
+
* IMPORTANT: `target` is not cloned and will be updated with `source` properties.
|
95
|
+
* @param target - The target object in which all sources are merged into.
|
96
|
+
* @param source - Object(s) to merge into `target`.
|
97
|
+
* @param [options] - Merging options:
|
98
|
+
* @param [options.merger] - The merge method (key, target, source, options)
|
99
|
+
* @returns The `target` object.
|
100
|
+
*/
|
101
|
+
export declare function merge<T>(target: T, source: [], options?: MergeOptions): T;
|
102
|
+
export declare function merge<T, S1>(target: T, source: S1, options?: MergeOptions): T & S1;
|
103
|
+
export declare function merge<T, S1>(target: T, source: [S1], options?: MergeOptions): T & S1;
|
104
|
+
export declare function merge<T, S1, S2>(target: T, source: [S1, S2], options?: MergeOptions): T & S1 & S2;
|
105
|
+
export declare function merge<T, S1, S2, S3>(target: T, source: [S1, S2, S3], options?: MergeOptions): T & S1 & S2 & S3;
|
106
|
+
export declare function merge<T, S1, S2, S3, S4>(target: T, source: [S1, S2, S3, S4], options?: MergeOptions): T & S1 & S2 & S3 & S4;
|
107
|
+
export declare function merge<T>(target: T, source: AnyObject[], options?: MergeOptions): AnyObject;
|
108
|
+
/**
|
109
|
+
* Recursively deep copies `source` properties into `target` *only* if not defined in target.
|
110
|
+
* IMPORTANT: `target` is not cloned and will be updated with `source` properties.
|
111
|
+
* @param target - The target object in which all sources are merged into.
|
112
|
+
* @param source - Object(s) to merge into `target`.
|
113
|
+
* @returns The `target` object.
|
114
|
+
*/
|
115
|
+
export declare function mergeIf<T>(target: T, source: []): T;
|
116
|
+
export declare function mergeIf<T, S1>(target: T, source: S1): T & S1;
|
117
|
+
export declare function mergeIf<T, S1>(target: T, source: [S1]): T & S1;
|
118
|
+
export declare function mergeIf<T, S1, S2>(target: T, source: [S1, S2]): T & S1 & S2;
|
119
|
+
export declare function mergeIf<T, S1, S2, S3>(target: T, source: [S1, S2, S3]): T & S1 & S2 & S3;
|
120
|
+
export declare function mergeIf<T, S1, S2, S3, S4>(target: T, source: [S1, S2, S3, S4]): T & S1 & S2 & S3 & S4;
|
121
|
+
export declare function mergeIf<T>(target: T, source: AnyObject[]): AnyObject;
|
122
|
+
/**
|
123
|
+
* Merges source[key] in target[key] only if target[key] is undefined.
|
124
|
+
* @private
|
125
|
+
*/
|
126
|
+
export declare function _mergerIf(key: string, target: AnyObject, source: AnyObject): void;
|
127
|
+
/**
|
128
|
+
* @private
|
129
|
+
*/
|
130
|
+
export declare function _deprecated(scope: string, value: unknown, previous: string, current: string): void;
|
131
|
+
/**
|
132
|
+
* @private
|
133
|
+
*/
|
134
|
+
export declare function _splitKey(key: string): string[];
|
135
|
+
export declare function resolveObjectKey(obj: AnyObject, key: string): any;
|
136
|
+
/**
|
137
|
+
* @private
|
138
|
+
*/
|
139
|
+
export declare function _capitalize(str: string): string;
|
140
|
+
export declare const defined: (value: unknown) => boolean;
|
141
|
+
export declare const isFunction: (value: unknown) => value is (...args: any[]) => any;
|
142
|
+
export declare const setsEqual: <T>(a: Set<T>, b: Set<T>) => boolean;
|
143
|
+
/**
|
144
|
+
* @param e - The event
|
145
|
+
* @private
|
146
|
+
*/
|
147
|
+
export declare function _isClickEvent(e: ChartEvent): boolean;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import type { ChartArea } from '../types/index.js';
|
2
|
+
import type { SplinePoint } from '../types/geometric.js';
|
3
|
+
export declare function splineCurve(firstPoint: SplinePoint, middlePoint: SplinePoint, afterPoint: SplinePoint, t: number): {
|
4
|
+
previous: SplinePoint;
|
5
|
+
next: SplinePoint;
|
6
|
+
};
|
7
|
+
/**
|
8
|
+
* This function calculates Bézier control points in a similar way than |splineCurve|,
|
9
|
+
* but preserves monotonicity of the provided data and ensures no local extremums are added
|
10
|
+
* between the dataset discrete points due to the interpolation.
|
11
|
+
* See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation
|
12
|
+
*/
|
13
|
+
export declare function splineCurveMonotone(points: SplinePoint[], indexAxis?: 'x' | 'y'): void;
|
14
|
+
/**
|
15
|
+
* @private
|
16
|
+
*/
|
17
|
+
export declare function _updateBezierControlPoints(points: SplinePoint[], options: any, area: ChartArea, loop: boolean, indexAxis: 'x' | 'y'): void;
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import type Chart from '../core/core.controller.js';
|
2
|
+
import type { ChartEvent } from '../types.js';
|
3
|
+
/**
|
4
|
+
* Note: typedefs are auto-exported, so use a made-up `dom` namespace where
|
5
|
+
* necessary to avoid duplicates with `export * from './helpers`; see
|
6
|
+
* https://github.com/microsoft/TypeScript/issues/46011
|
7
|
+
* @typedef { import('../core/core.controller.js').default } dom.Chart
|
8
|
+
* @typedef { import('../../types').ChartEvent } ChartEvent
|
9
|
+
*/
|
10
|
+
/**
|
11
|
+
* @private
|
12
|
+
*/
|
13
|
+
export declare function _isDomSupported(): boolean;
|
14
|
+
/**
|
15
|
+
* @private
|
16
|
+
*/
|
17
|
+
export declare function _getParentNode(domNode: HTMLCanvasElement): HTMLCanvasElement;
|
18
|
+
export declare function getStyle(el: HTMLElement, property: string): string;
|
19
|
+
/**
|
20
|
+
* Gets an event's x, y coordinates, relative to the chart area
|
21
|
+
* @param event
|
22
|
+
* @param chart
|
23
|
+
* @returns x and y coordinates of the event
|
24
|
+
*/
|
25
|
+
export declare function getRelativePosition(event: Event | ChartEvent | TouchEvent | MouseEvent, chart: Chart): {
|
26
|
+
x: number;
|
27
|
+
y: number;
|
28
|
+
};
|
29
|
+
export declare function getMaximumSize(canvas: HTMLCanvasElement, bbWidth?: number, bbHeight?: number, aspectRatio?: number): {
|
30
|
+
width: number;
|
31
|
+
height: number;
|
32
|
+
};
|
33
|
+
/**
|
34
|
+
* @param chart
|
35
|
+
* @param forceRatio
|
36
|
+
* @param forceStyle
|
37
|
+
* @returns True if the canvas context size or transformation has changed.
|
38
|
+
*/
|
39
|
+
export declare function retinaScale(chart: Chart, forceRatio: number, forceStyle?: boolean): boolean | void;
|
40
|
+
/**
|
41
|
+
* Detects support for options object argument in addEventListener.
|
42
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support
|
43
|
+
* @private
|
44
|
+
*/
|
45
|
+
export declare const supportsEventListenerOptions: boolean;
|
46
|
+
/**
|
47
|
+
* The "used" size is the final value of a dimension property after all calculations have
|
48
|
+
* been performed. This method uses the computed style of `element` but returns undefined
|
49
|
+
* if the computed style is not expressed in pixels. That can happen in some cases where
|
50
|
+
* `element` has a size relative to its parent and this last one is not yet displayed,
|
51
|
+
* for example because of `display: none` on a parent node.
|
52
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value
|
53
|
+
* @returns Size in pixels or undefined if unknown.
|
54
|
+
*/
|
55
|
+
export declare function readUsedSize(element: HTMLElement, property: 'width' | 'height'): number | undefined;
|