@oliasoft-open-source/charts-library 5.2.0 → 5.2.1-beta-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/dist/assets/Color-YHDXOIA2-BH-AgNhy.js +1 -0
- package/dist/assets/DocsRenderer-CFRXHY34-Dx3M1XwG.js +1 -0
- package/dist/assets/bar-chart-const-DT-Qreyz.js +1 -0
- package/dist/assets/bar-chart.stories-BGngamFz.js +145 -0
- package/dist/assets/chunk-2PTXLE6R-BSsKYLj_.js +1 -0
- package/dist/assets/chunk-H6MOWX77-Ds8Hqw1O.js +1 -0
- package/dist/assets/chunk-NUUEMKO5-2vSX1C-f.js +56 -0
- package/dist/assets/chunk-PRSJUHPQ-ClaE-lMK.js +2 -0
- package/dist/assets/chunk-XP5HYGXS-DyEAuB1b.js +1 -0
- package/dist/assets/client-mhWrpqNE.js +1 -0
- package/dist/assets/components-BTILpkCb.js +1 -0
- package/dist/assets/components-BUMWgrws.js +534 -0
- package/dist/assets/docs-tools-C8juKH9v.js +8 -0
- package/dist/assets/entry-preview-D8bkngdo.js +2 -0
- package/dist/assets/entry-preview-docs-DkpGzTK0.js +48 -0
- package/dist/assets/fast-deep-equal-GJSfJzsC.js +1 -0
- package/dist/assets/get-custom-legend-plugin-example-DlEN0LEe.js +1 -0
- package/dist/assets/get-draggableData-DyVot8Zl.js +2 -0
- package/dist/assets/iframe-BC9QdfhZ.js +226 -0
- package/dist/assets/jsx-runtime-BNVfsWEC.js +1 -0
- package/dist/assets/legend-Be3VjYcC.js +1266 -0
- package/dist/assets/legend-context-Bh42wyEh.js +47 -0
- package/dist/assets/line-chart-B0hmsdC3.js +1 -0
- package/dist/assets/line-chart.stories-tGGdFPhQ.js +1162 -0
- package/dist/assets/line-chart.test-case.stories-Cv2J7QkQ.js +430 -0
- package/dist/assets/pie-chart.stories-Cmh7O_JI.js +45 -0
- package/dist/assets/preview-Ba4CwQIJ.js +1 -0
- package/dist/assets/preview-Dihi2lh7.js +3 -0
- package/dist/assets/preview-xQjOlnQG.js +1 -0
- package/dist/assets/react-18-D9p-ZSzh.js +1 -0
- package/dist/assets/react-B_00WdD4.js +1 -0
- package/dist/assets/react-CJCPsloc.js +1 -0
- package/dist/assets/react-dom-BggwCd6n.js +8 -0
- package/dist/assets/react-lj49T_jL.js +1 -0
- package/dist/assets/scatter-chart.stories-Ch-mWz43.js +41 -0
- package/dist/assets/test-utils-D1bSFP61.js +1 -0
- package/dist/bar-chart/bar-chart-const.d.ts +2 -0
- package/dist/bar-chart/bar-chart-default-props.d.ts +2 -0
- package/dist/bar-chart/bar-chart.d.ts +3 -0
- package/dist/bar-chart/bar-chart.interface.d.ts +96 -0
- package/dist/bar-chart/utils/get-bar-chart-data-labels.d.ts +10 -0
- package/dist/bar-chart/utils/get-bar-chart-scales.d.ts +3 -0
- package/dist/bar-chart/utils/get-bar-chart-tooltips.d.ts +6 -0
- package/dist/bar-chart/utils/use-bar-chart-config.d.ts +13 -0
- package/dist/bar-chart/utils/use-bar-chart-options.d.ts +55 -0
- package/dist/common/common.interface.d.ts +210 -0
- package/dist/common/controls-portal.d.ts +7 -0
- package/dist/common/enums.d.ts +10 -0
- package/dist/common/helpers/chart-border-plugin.d.ts +16 -0
- package/dist/common/helpers/chart-consts.d.ts +39 -0
- package/dist/common/helpers/chart-utils.d.ts +86 -0
- package/dist/common/helpers/container.d.ts +18 -0
- package/dist/common/helpers/custom-format-number.d.ts +1 -0
- package/dist/common/helpers/download-pgn.d.ts +3 -0
- package/dist/common/helpers/enums.d.ts +80 -0
- package/dist/common/helpers/get-chart-annotation.d.ts +91 -0
- package/dist/common/helpers/get-custom-legend-plugin-example.d.ts +8 -0
- package/dist/common/helpers/get-draggableData.d.ts +18 -0
- package/dist/common/helpers/range/estimate-data-series-have-close-values.d.ts +8 -0
- package/dist/common/helpers/range/range.d.ts +33 -0
- package/dist/common/helpers/text.d.ts +1 -0
- package/dist/common/helpers/to-annotation.d.ts +4 -0
- package/dist/common/hooks/use-generated-labels.d.ts +4 -0
- package/dist/common/hooks/use-legend-state.d.ts +28 -0
- package/dist/common/hooks/use-legend.d.ts +4 -0
- package/dist/common/hooks/use-reset.d.ts +3 -0
- package/dist/common/hooks/use-update-annotations.d.ts +7 -0
- package/dist/common/legend-component/legend-dropzone.d.ts +3 -0
- package/dist/common/legend-component/legend-interface.d.ts +48 -0
- package/dist/common/legend-component/legend-item/LegendItemLine.d.ts +5 -0
- package/dist/common/legend-component/legend-item/legend-item.d.ts +3 -0
- package/dist/common/legend-component/legend-panel.d.ts +3 -0
- package/dist/common/legend-component/legend.d.ts +3 -0
- package/dist/common/legend-component/state/legend-action-types.d.ts +3 -0
- package/dist/common/legend-component/state/legend-context.d.ts +14 -0
- package/dist/common/legend-component/state/legend-state-reducer.d.ts +30 -0
- package/dist/common/legend-component/utils/create-style-object.d.ts +27 -0
- package/dist/common/legend-component/utils/get-generated-labels.d.ts +2 -0
- package/dist/common/plugins/annotation-dragger-plugin/annotation-dragger-plugin.d.ts +15 -0
- package/dist/common/plugins/annotation-dragger-plugin/enums.d.ts +20 -0
- package/dist/common/plugins/annotation-dragger-plugin/event-helpers.d.ts +6 -0
- package/dist/common/plugins/annotation-dragger-plugin/helpers.d.ts +53 -0
- package/dist/common/plugins/annotation-dragger-plugin/point-annotation-label.d.ts +5 -0
- package/dist/common/plugins/ellipsis-annotation-plugin/compute-ellipse-geometry.d.ts +9 -0
- package/dist/common/plugins/ellipsis-annotation-plugin/ellipsis-annotation-plugin.d.ts +18 -0
- package/dist/common/plugins/gradient-background-plugin/enums.d.ts +10 -0
- package/dist/common/plugins/gradient-background-plugin/gradient-background-plugin.d.ts +2 -0
- package/dist/favicon.svg +1 -0
- package/dist/iframe.html +666 -0
- package/dist/index.html +149 -0
- package/dist/index.js +21 -4
- package/dist/index.json +1 -0
- package/dist/line-chart/constants/default-translations.d.ts +25 -0
- package/dist/line-chart/constants/line-chart-consts.d.ts +13 -0
- package/dist/line-chart/controls/axes-options/axes-options-interfaces.d.ts +57 -0
- package/dist/line-chart/controls/axes-options/axes-options.d.ts +6 -0
- package/dist/line-chart/controls/axes-options/axes-validation.d.ts +8 -0
- package/dist/line-chart/controls/controls-interfaces.d.ts +20 -0
- package/dist/line-chart/controls/controls.d.ts +3 -0
- package/dist/line-chart/controls/drag-options-interfaces.d.ts +14 -0
- package/dist/line-chart/controls/drag-options.d.ts +23 -0
- package/dist/line-chart/controls/line-options.d.ts +19 -0
- package/dist/line-chart/hooks/use-chart-functions.d.ts +33 -0
- package/dist/line-chart/hooks/use-chart-options.d.ts +16 -0
- package/dist/line-chart/hooks/use-chart-plugins.d.ts +7 -0
- package/dist/line-chart/hooks/use-chart-state.d.ts +12 -0
- package/dist/line-chart/hooks/use-toggle-handler.d.ts +12 -0
- package/dist/line-chart/initialize/config.d.ts +12 -0
- package/dist/line-chart/initialize/initialize-line-chart.d.ts +12 -0
- package/dist/line-chart/line-chart-get-default-props.d.ts +2 -0
- package/dist/line-chart/line-chart.d.ts +3 -0
- package/dist/line-chart/line-chart.interface.d.ts +150 -0
- package/dist/line-chart/plugins/chart-area-text-plugin.d.ts +17 -0
- package/dist/line-chart/plugins/line-chart.minor-gridlines-plugin.d.ts +8 -0
- package/dist/line-chart/plugins/plugin-constants.d.ts +11 -0
- package/dist/line-chart/plugins/plugins.interface.d.ts +9 -0
- package/dist/line-chart/state/action-types.d.ts +12 -0
- package/dist/line-chart/state/helpers.d.ts +13 -0
- package/dist/line-chart/state/initial-state.d.ts +11 -0
- package/dist/line-chart/state/line-chart-reducer.d.ts +2 -0
- package/dist/line-chart/state/manage-state-in-local-storage.d.ts +15 -0
- package/dist/line-chart/state/state.interfaces.d.ts +26 -0
- package/dist/line-chart/utils/axis-formatting/axis-formatting.d.ts +2 -0
- package/dist/line-chart/utils/axis-scales/axis-scales.d.ts +9 -0
- package/dist/line-chart/utils/check-custom-option/check-custom-option.d.ts +12 -0
- package/dist/line-chart/utils/datalabels-alignment/datalabels-alignment.interface.d.ts +20 -0
- package/dist/line-chart/utils/datalabels-alignment/get-alignment-condition.d.ts +8 -0
- package/dist/line-chart/utils/datalabels-alignment/get-alignment-data.d.ts +11 -0
- package/dist/line-chart/utils/datalabels-alignment/get-datalabels-position.d.ts +6 -0
- package/dist/line-chart/utils/enums.d.ts +4 -0
- package/dist/line-chart/utils/generate-line-chart-datasets.d.ts +8 -0
- package/dist/line-chart/utils/get-annotations-data.d.ts +1 -0
- package/dist/line-chart/utils/get-axes-data-from-metasets.d.ts +1 -0
- package/dist/line-chart/utils/get-axes-ranges-from-chart.d.ts +9 -0
- package/dist/line-chart/utils/get-axis-range-by-type.d.ts +10 -0
- package/dist/line-chart/utils/get-generated-labels.d.ts +2 -0
- package/dist/line-chart/utils/get-line-chart-data-labels.d.ts +16 -0
- package/dist/line-chart/utils/get-line-chart-scales.d.ts +4 -0
- package/dist/line-chart/utils/get-line-chart-tooltips.d.ts +34 -0
- package/dist/line-chart/utils/line-chart-utils.d.ts +24 -0
- package/dist/line-chart/utils/translations/get-translations.d.ts +8 -0
- package/dist/nunito-sans-bold-italic.woff2 +0 -0
- package/dist/nunito-sans-bold.woff2 +0 -0
- package/dist/nunito-sans-italic.woff2 +0 -0
- package/dist/nunito-sans-regular.woff2 +0 -0
- package/dist/pie-chart/pie-chart-defalut-props.interface.d.ts +50 -0
- package/dist/pie-chart/pie-chart-get-default-props.d.ts +3 -0
- package/dist/pie-chart/pie-chart.d.ts +3 -0
- package/dist/pie-chart/pie-chart.interface.d.ts +70 -0
- package/dist/pie-chart/use-pie-chart-config.d.ts +42 -0
- package/dist/project.json +1 -0
- package/dist/sb-addons/actions-1/manager-bundle.js +3 -0
- package/dist/sb-addons/docs-2/manager-bundle.js +242 -0
- package/dist/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +3 -0
- package/dist/sb-addons/storybook-dark-mode-esm-preset-3/manager-bundle.js +5 -0
- package/dist/sb-common-assets/favicon.svg +1 -0
- package/dist/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
- package/dist/sb-common-assets/nunito-sans-bold.woff2 +0 -0
- package/dist/sb-common-assets/nunito-sans-italic.woff2 +0 -0
- package/dist/sb-common-assets/nunito-sans-regular.woff2 +0 -0
- package/dist/sb-manager/globals-module-info.js +1051 -0
- package/dist/sb-manager/globals-runtime.js +41591 -0
- package/dist/sb-manager/globals.js +48 -0
- package/dist/sb-manager/runtime.js +12048 -0
- package/dist/scatter-chart/hooks/use-scatter-chart-config.d.ts +113 -0
- package/dist/scatter-chart/scatter-chart-default-props.interface.d.ts +71 -0
- package/dist/scatter-chart/scatter-chart-get-default-props.d.ts +3 -0
- package/dist/scatter-chart/scatter-chart.d.ts +3 -0
- package/dist/scatter-chart/scatter-chart.interface.d.ts +81 -0
- package/dist/scatter-chart/utils/get-scales-config.d.ts +49 -0
- package/dist/scatter-chart/utils/get-tooltip-config.d.ts +21 -0
- package/package.json +1 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
interface IGetSuggestedAxisRange {
|
|
2
|
+
data: number[];
|
|
3
|
+
beginAtZero: boolean;
|
|
4
|
+
autoAxisPadding: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Overrides the default chart.js axis range for some edge-cases:
|
|
8
|
+
* - when no data -> default range
|
|
9
|
+
* - when all values are close to zero -> default range
|
|
10
|
+
* - when all values are close to each other -> custom 5% padding
|
|
11
|
+
* - when autoAxisPadding is set -> custom 5% padding
|
|
12
|
+
* - all other cases fall back to chart.js default behaviour
|
|
13
|
+
*
|
|
14
|
+
* `autoAxisPadding` feature requirements:
|
|
15
|
+
* - specified by Truls and ported by Mark+Oleg
|
|
16
|
+
* - numbers that are equal (within tolerance) shall be presented as a straight line
|
|
17
|
+
* - all other data series shall use 90% of width of axis (5% padding each side)
|
|
18
|
+
* - the padding on each side shall be symmetric
|
|
19
|
+
*
|
|
20
|
+
* @param {object} args
|
|
21
|
+
* @param {array<number|null>} args.data
|
|
22
|
+
* @param {boolean} [args.beginAtZero]
|
|
23
|
+
* @param {boolean>} [args.autoAxisPadding]
|
|
24
|
+
* @returns {object} returns {min, max} pair
|
|
25
|
+
*/
|
|
26
|
+
export declare const getSuggestedAxisRange: ({ data, beginAtZero, autoAxisPadding, }: IGetSuggestedAxisRange) => {
|
|
27
|
+
min: number;
|
|
28
|
+
max: number;
|
|
29
|
+
} | {
|
|
30
|
+
min: undefined;
|
|
31
|
+
max: undefined;
|
|
32
|
+
};
|
|
33
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getTextWidth: (text: string, font: string) => number | undefined;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RefObject } from '../../../../node_modules/react';
|
|
2
|
+
import { Chart } from 'chart.js';
|
|
3
|
+
import { TLegendDatasets } from '../legend-component/legend-interface';
|
|
4
|
+
export declare const useGeneratedLabels: (chartRef: RefObject<Chart>, generatedDatasets: TLegendDatasets) => any[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { RefObject } from '../../../../node_modules/react';
|
|
2
|
+
import { Chart, LegendItem } from 'chart.js';
|
|
3
|
+
import { UnusedParameter } from '../common.interface';
|
|
4
|
+
export interface IUseLegendStateProps {
|
|
5
|
+
chartRef: RefObject<Chart>;
|
|
6
|
+
options: any;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Custom hook to manage legend state.
|
|
10
|
+
*/
|
|
11
|
+
export declare const useLegendState: ({ chartRef, options }: IUseLegendStateProps) => {
|
|
12
|
+
legendClick: (_: UnusedParameter, legendItem: LegendItem) => void;
|
|
13
|
+
annotation: import('../common.interface').ICommonAnnotationElement[];
|
|
14
|
+
legend: {
|
|
15
|
+
position: any;
|
|
16
|
+
display: boolean | undefined;
|
|
17
|
+
align: "center" | "start" | "end";
|
|
18
|
+
labels: {
|
|
19
|
+
boxHeight: number;
|
|
20
|
+
boxWidth: number | undefined;
|
|
21
|
+
usePointStyle: boolean | undefined;
|
|
22
|
+
};
|
|
23
|
+
onClick: (_: UnusedParameter, legendItem: LegendItem) => void;
|
|
24
|
+
};
|
|
25
|
+
customLegendPlugin: {
|
|
26
|
+
htmlLegend: any;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Dispatch } from '../../../../node_modules/react';
|
|
2
|
+
import { TLegendAction } from '../legend-component/state/legend-state-reducer';
|
|
3
|
+
import { TChartsOption } from '../legend-component/legend-interface';
|
|
4
|
+
/**
|
|
5
|
+
* Syncs annotation when annotationsData or showAnnotations change
|
|
6
|
+
*/
|
|
7
|
+
export declare const useUpdateAnnotations: (options: TChartsOption, dispatch: Dispatch<TLegendAction>) => void;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { MouseEventHandler, RefObject } from '../../../../node_modules/react';
|
|
2
|
+
import { Chart, ChartArea } from 'chart.js';
|
|
3
|
+
import { IGeneratedScatterChartDataset, TGeneratedScatterChartDatasets, IScatterOptions } from '../../scatter-chart/scatter-chart.interface';
|
|
4
|
+
import { Position } from '../helpers/enums';
|
|
5
|
+
import { IGeneratedLineChartDataset, ILineChartOptions, TGeneratedLineChartDatasets } from '../../line-chart/line-chart.interface';
|
|
6
|
+
import { IBarOptions, IGenerateBarChartDataset, TGenerateBarChartDatasets } from '../../bar-chart/bar-chart.interface';
|
|
7
|
+
import { IGeneratedPieChartDataset, IPieOptions, TGeneratedPieChartDatasets } from '../../pie-chart/pie-chart.interface';
|
|
8
|
+
import { ChartType } from '../enums';
|
|
9
|
+
export interface ILegendDropZone {
|
|
10
|
+
position: Position;
|
|
11
|
+
onDrop: () => void;
|
|
12
|
+
placeholderSize?: {
|
|
13
|
+
width?: number;
|
|
14
|
+
height?: number;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export interface ILegendDropZones {
|
|
18
|
+
chartArea?: ChartArea;
|
|
19
|
+
setLegendPosition: (position: Position) => void;
|
|
20
|
+
isDragging: boolean;
|
|
21
|
+
placeholderSize?: {
|
|
22
|
+
width?: number;
|
|
23
|
+
height?: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export type TLegendDataset = IGeneratedLineChartDataset | IGenerateBarChartDataset | IGeneratedPieChartDataset | IGeneratedScatterChartDataset;
|
|
27
|
+
export type TLegendDatasets = TGeneratedLineChartDatasets | TGenerateBarChartDatasets | TGeneratedPieChartDatasets | TGeneratedScatterChartDatasets;
|
|
28
|
+
export type TChartsOption = ILineChartOptions | IBarOptions | IPieOptions | IScatterOptions;
|
|
29
|
+
export interface ILegendItem {
|
|
30
|
+
hidden: boolean;
|
|
31
|
+
dataset: TLegendDataset;
|
|
32
|
+
handleClick: MouseEventHandler<HTMLDivElement>;
|
|
33
|
+
chartType: ChartType;
|
|
34
|
+
index: number;
|
|
35
|
+
}
|
|
36
|
+
export interface ILegendConfig {
|
|
37
|
+
options: TChartsOption;
|
|
38
|
+
generatedDatasets: TLegendDatasets;
|
|
39
|
+
chartType: ChartType;
|
|
40
|
+
}
|
|
41
|
+
export interface ILegend {
|
|
42
|
+
chartRef: RefObject<Chart>;
|
|
43
|
+
legendConfig: ILegendConfig;
|
|
44
|
+
}
|
|
45
|
+
export interface ILegendPanel extends ILegend {
|
|
46
|
+
legendPosition: Position;
|
|
47
|
+
isDragging: boolean;
|
|
48
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IGeneratedLineChartDataset } from '../../../line-chart/line-chart.interface';
|
|
2
|
+
export interface ILineLegendItemProp {
|
|
3
|
+
dataset: IGeneratedLineChartDataset;
|
|
4
|
+
}
|
|
5
|
+
export declare const LegendItemLine: ({ dataset }: Record<string, any>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as React, ReactNode } from '../../../../../node_modules/react';
|
|
2
|
+
import { ILegendState } from './legend-state-reducer';
|
|
3
|
+
import { TChartsOption } from '../legend-interface';
|
|
4
|
+
import { ICommonDataset } from '../../common.interface';
|
|
5
|
+
export declare const LegendContext: React.Context<{
|
|
6
|
+
state: ILegendState;
|
|
7
|
+
dispatch: React.Dispatch<any>;
|
|
8
|
+
} | undefined>;
|
|
9
|
+
export interface ILegendProviderProps {
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
options: TChartsOption;
|
|
12
|
+
datasets?: ICommonDataset[];
|
|
13
|
+
}
|
|
14
|
+
export declare const LegendProvider: ({ children, options, datasets, }: ILegendProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Chart } from 'chart.js';
|
|
2
|
+
import { TLegendDataset, TLegendDatasets } from '../legend-interface';
|
|
3
|
+
import { RESET_STATE, SET_ANNOTATION, TOGGLE_DATA_VISIBILITY } from './legend-action-types';
|
|
4
|
+
import { ICommonAnnotationElement, ICommonDataset } from '../../common.interface';
|
|
5
|
+
export interface ILegendState {
|
|
6
|
+
datasets: ICommonDataset[];
|
|
7
|
+
annotation: ICommonAnnotationElement[];
|
|
8
|
+
}
|
|
9
|
+
export type TLegendAction = {
|
|
10
|
+
type: typeof TOGGLE_DATA_VISIBILITY;
|
|
11
|
+
payload: {
|
|
12
|
+
chartInstance: Chart;
|
|
13
|
+
dsConfig: {
|
|
14
|
+
datasetIndex: number;
|
|
15
|
+
dataset: TLegendDataset;
|
|
16
|
+
datasets: TLegendDatasets;
|
|
17
|
+
};
|
|
18
|
+
annotationConfig: {
|
|
19
|
+
annotationIndex: number;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
} | {
|
|
23
|
+
type: typeof RESET_STATE;
|
|
24
|
+
payload: ILegendState;
|
|
25
|
+
} | {
|
|
26
|
+
type: typeof SET_ANNOTATION;
|
|
27
|
+
payload: ICommonAnnotationElement[];
|
|
28
|
+
};
|
|
29
|
+
export declare const legendInitialState: ILegendState;
|
|
30
|
+
export declare const legendReducer: (state: ILegendState, action: TLegendAction) => ILegendState;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Position } from '../../helpers/enums';
|
|
2
|
+
export declare const LEGEND_MARGIN = 4;
|
|
3
|
+
interface IChartArea {
|
|
4
|
+
top: number;
|
|
5
|
+
left: number;
|
|
6
|
+
bottom: number;
|
|
7
|
+
right: number;
|
|
8
|
+
}
|
|
9
|
+
interface IChart {
|
|
10
|
+
height?: number;
|
|
11
|
+
width?: number;
|
|
12
|
+
chartArea: IChartArea;
|
|
13
|
+
}
|
|
14
|
+
interface ILegendStyle {
|
|
15
|
+
left: number | undefined;
|
|
16
|
+
right: number | undefined;
|
|
17
|
+
top: number | undefined;
|
|
18
|
+
bottom: number | undefined;
|
|
19
|
+
maxHeight: number;
|
|
20
|
+
maxWidth: number;
|
|
21
|
+
margin: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Creates a style object for positioning and sizing the legend panel based on the chart dimensions and legend position.
|
|
25
|
+
*/
|
|
26
|
+
export declare const createLegendStyle: (legendPosition: Position, chart: IChart | null) => ILegendStyle;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ChartType, Plugin, Scale } from 'chart.js';
|
|
2
|
+
export interface IScales {
|
|
3
|
+
x: Scale;
|
|
4
|
+
y: Scale;
|
|
5
|
+
[key: string]: Scale;
|
|
6
|
+
}
|
|
7
|
+
export interface AnnotationDraggerPluginOptions {
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare module 'chart.js' {
|
|
11
|
+
interface PluginOptionsByType<TType extends ChartType> {
|
|
12
|
+
annotationDraggerPlugin?: AnnotationDraggerPluginOptions;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export declare const annotationDraggerPlugin: Plugin;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare enum FontStyle {
|
|
2
|
+
DEFAULT = "14px Arial",
|
|
3
|
+
CUSTOM = "16px Arial"
|
|
4
|
+
}
|
|
5
|
+
export declare enum MouseEvents {
|
|
6
|
+
MOUSEDOWN = "mousedown",
|
|
7
|
+
MOUSEMOVE = "mousemove",
|
|
8
|
+
MOUSEUP = "mouseup"
|
|
9
|
+
}
|
|
10
|
+
export declare enum AnnotationType {
|
|
11
|
+
POINT = "point",
|
|
12
|
+
BOX = "box",
|
|
13
|
+
LINE = "line",
|
|
14
|
+
ELLIPSE = "ellipse"
|
|
15
|
+
}
|
|
16
|
+
export declare enum DragAxis {
|
|
17
|
+
X = "x",
|
|
18
|
+
Y = "y",
|
|
19
|
+
Both = "both"
|
|
20
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Chart } from 'chart.js';
|
|
2
|
+
import { IScales } from './annotation-dragger-plugin';
|
|
3
|
+
import { ICommonAnnotationsData } from '../../common.interface';
|
|
4
|
+
export declare const handleAnnotationMouseDown: (event: MouseEvent, canvas: HTMLCanvasElement, scales: IScales, annotations: Record<string, ICommonAnnotationsData>, setDraggingState: (isDragging: boolean, annotation: ICommonAnnotationsData | null, dragStartX: number, dragStartY: number) => void, hoveredAnnotationId: string | null) => void;
|
|
5
|
+
export declare const handleAnnotationMouseMove: (event: MouseEvent, canvas: HTMLCanvasElement, scales: IScales, isDragging: boolean, activeAnnotation: ICommonAnnotationsData | null, dragStartX: number, dragStartY: number, chart: Chart) => void;
|
|
6
|
+
export declare const handleAnnotationMouseUp: (isDragging: boolean, activeAnnotation: ICommonAnnotationsData | null, chart: Chart, canvas: HTMLCanvasElement, setDraggingState: (isDragging: boolean, annotation: ICommonAnnotationsData | null) => void) => void;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Chart } from 'chart.js';
|
|
2
|
+
import { ICommonAnnotationsData } from '../../common.interface';
|
|
3
|
+
import { IScales } from './annotation-dragger-plugin';
|
|
4
|
+
import { AnnotationType, DragAxis } from './enums';
|
|
5
|
+
export declare const getMousePosition: (event: MouseEvent, canvas: HTMLCanvasElement) => {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const getMousePositionInCoordinates: (event: MouseEvent, canvas: HTMLCanvasElement, scales: IScales, xScaleID: string, yScaleID: string) => {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
};
|
|
13
|
+
export declare const calculateAnnotationMetricsInValues: (annotation: ICommonAnnotationsData) => {
|
|
14
|
+
centerX: number | undefined;
|
|
15
|
+
centerY: number | undefined;
|
|
16
|
+
width: number | undefined;
|
|
17
|
+
height: number | undefined;
|
|
18
|
+
};
|
|
19
|
+
export declare const calculateAnnotationMetricsInValuesInPixels: (annotation: ICommonAnnotationsData, scales: IScales, xScaleID: string, yScaleID: string) => {
|
|
20
|
+
centerX: number | undefined;
|
|
21
|
+
centerY: number | undefined;
|
|
22
|
+
width: number | undefined;
|
|
23
|
+
height: number | undefined;
|
|
24
|
+
};
|
|
25
|
+
export interface IIsWithinChartAreaProps {
|
|
26
|
+
x?: number;
|
|
27
|
+
y?: number;
|
|
28
|
+
chartArea: {
|
|
29
|
+
left: number;
|
|
30
|
+
right: number;
|
|
31
|
+
top: number;
|
|
32
|
+
bottom: number;
|
|
33
|
+
};
|
|
34
|
+
scales: IScales;
|
|
35
|
+
metrics: {
|
|
36
|
+
width?: number;
|
|
37
|
+
height?: number;
|
|
38
|
+
};
|
|
39
|
+
resizable?: boolean;
|
|
40
|
+
dragRange?: {
|
|
41
|
+
x?: [number, number];
|
|
42
|
+
y?: [number, number];
|
|
43
|
+
} | null;
|
|
44
|
+
annotationType: AnnotationType;
|
|
45
|
+
xScaleID: string;
|
|
46
|
+
yScaleID: string;
|
|
47
|
+
}
|
|
48
|
+
export declare const isWithinChartArea: ({ x, y, chartArea, scales, metrics, resizable, dragRange, annotationType, xScaleID, yScaleID, }: IIsWithinChartAreaProps) => boolean;
|
|
49
|
+
export declare const updateAnnotationPositionWithinBounds: (axis: DragAxis, newPosition: number, activeAnnotation: ICommonAnnotationsData, chart: Chart, scales: IScales, xScaleID: string, yScaleID: string, metrics?: {
|
|
50
|
+
width?: number;
|
|
51
|
+
height?: number;
|
|
52
|
+
}) => void;
|
|
53
|
+
export declare const setAnnotationBorderWidth: (chart: Chart, annotationId?: string, borderWidth?: number) => void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IScales } from './annotation-dragger-plugin';
|
|
2
|
+
import { ICommonAnnotationsData } from '../../common.interface';
|
|
3
|
+
export declare const annotationLabel: (ctx: CanvasRenderingContext2D, annotations: Record<string, ICommonAnnotationsData & {
|
|
4
|
+
label: Record<string, any>;
|
|
5
|
+
}>, scales: IScales) => void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Scale } from 'chart.js';
|
|
2
|
+
import { IEllipsePoints } from './ellipsis-annotation-plugin.ts';
|
|
3
|
+
export declare const computeEllipseGeometry: (ellipsePoints: IEllipsePoints, xScale: Scale, yScale: Scale) => {
|
|
4
|
+
cx: number;
|
|
5
|
+
cy: number;
|
|
6
|
+
radiusX: number;
|
|
7
|
+
radiusY: number;
|
|
8
|
+
angle: number;
|
|
9
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Chart, ChartDataset, ScatterDataPoint } from 'chart.js';
|
|
2
|
+
export interface IPoint {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
export interface IEllipsePoints {
|
|
7
|
+
major: [IPoint, IPoint];
|
|
8
|
+
minor: [IPoint, IPoint];
|
|
9
|
+
}
|
|
10
|
+
export interface ICustomDataPoint extends ScatterDataPoint {
|
|
11
|
+
ellipsePoints?: IEllipsePoints;
|
|
12
|
+
}
|
|
13
|
+
export interface ICustomDataset extends ChartDataset<any, ICustomDataPoint[]> {
|
|
14
|
+
}
|
|
15
|
+
export declare const ellipsisAnnotationPlugin: {
|
|
16
|
+
id: string;
|
|
17
|
+
afterDatasetsDraw(chart: Chart<"scatter">): void;
|
|
18
|
+
};
|
package/dist/favicon.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svgjs="http://svgjs.com/svgjs" xmlns:xlink="http://www.w3.org/1999/xlink" width="164" height="164" version="1.1"><svg xmlns="http://www.w3.org/2000/svg" width="164" height="164" fill="none" viewBox="0 0 164 164"><path fill="#FF4785" d="M22.467 147.762 17.5 15.402a8.062 8.062 0 0 1 7.553-8.35L137.637.016a8.061 8.061 0 0 1 8.565 8.047v144.23a8.063 8.063 0 0 1-8.424 8.054l-107.615-4.833a8.062 8.062 0 0 1-7.695-7.752Z"/><path fill="#fff" fill-rule="evenodd" d="m128.785.57-15.495.968-.755 18.172a1.203 1.203 0 0 0 1.928 1.008l7.06-5.354 5.962 4.697a1.202 1.202 0 0 0 1.946-.987L128.785.569Zm-12.059 60.856c-2.836 2.203-23.965 3.707-23.965.57.447-11.969-4.912-12.494-7.889-12.494-2.828 0-7.59.855-7.59 7.267 0 6.534 6.96 10.223 15.13 14.553 11.607 6.15 25.654 13.594 25.654 32.326 0 17.953-14.588 27.871-33.194 27.871-19.201 0-35.981-7.769-34.086-34.702.744-3.163 25.156-2.411 25.156 0-.298 11.114 2.232 14.383 8.633 14.383 4.912 0 7.144-2.708 7.144-7.267 0-6.9-7.252-10.973-15.595-15.657C64.827 81.933 51.53 74.468 51.53 57.34c0-17.098 11.76-28.497 32.747-28.497 20.988 0 32.449 11.224 32.449 32.584Z" clip-rule="evenodd"/></svg><style>@media (prefers-color-scheme:light){:root{filter:none}}</style></svg>
|