@neo4j-ndl/react-charts 0.0.2
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/LICENSE +674 -0
- package/lib/LICENSES.txt +229 -0
- package/lib/NOTICE.txt +26 -0
- package/lib/cjs/charts/Chart.js +162 -0
- package/lib/cjs/charts/Chart.js.map +1 -0
- package/lib/cjs/charts/ChartTooltip.js +52 -0
- package/lib/cjs/charts/ChartTooltip.js.map +1 -0
- package/lib/cjs/charts/Legend.js +238 -0
- package/lib/cjs/charts/Legend.js.map +1 -0
- package/lib/cjs/charts/index.js +38 -0
- package/lib/cjs/charts/index.js.map +1 -0
- package/lib/cjs/charts/themes/darkTheme.js +30 -0
- package/lib/cjs/charts/themes/darkTheme.js.map +1 -0
- package/lib/cjs/charts/themes/defaultTheme.js +57 -0
- package/lib/cjs/charts/themes/defaultTheme.js.map +1 -0
- package/lib/cjs/charts/themes/lightTheme.js +30 -0
- package/lib/cjs/charts/themes/lightTheme.js.map +1 -0
- package/lib/cjs/charts/utils.js +40 -0
- package/lib/cjs/charts/utils.js.map +1 -0
- package/lib/cjs/common/ConditionalWrap.js +30 -0
- package/lib/cjs/common/ConditionalWrap.js.map +1 -0
- package/lib/cjs/index.js +38 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/esm/charts/Chart.js +159 -0
- package/lib/esm/charts/Chart.js.map +1 -0
- package/lib/esm/charts/ChartTooltip.js +46 -0
- package/lib/esm/charts/ChartTooltip.js.map +1 -0
- package/lib/esm/charts/Legend.js +232 -0
- package/lib/esm/charts/Legend.js.map +1 -0
- package/lib/esm/charts/index.js +22 -0
- package/lib/esm/charts/index.js.map +1 -0
- package/lib/esm/charts/themes/darkTheme.js +27 -0
- package/lib/esm/charts/themes/darkTheme.js.map +1 -0
- package/lib/esm/charts/themes/defaultTheme.js +54 -0
- package/lib/esm/charts/themes/defaultTheme.js.map +1 -0
- package/lib/esm/charts/themes/lightTheme.js +27 -0
- package/lib/esm/charts/themes/lightTheme.js.map +1 -0
- package/lib/esm/charts/utils.js +37 -0
- package/lib/esm/charts/utils.js.map +1 -0
- package/lib/esm/common/ConditionalWrap.js +26 -0
- package/lib/esm/common/ConditionalWrap.js.map +1 -0
- package/lib/esm/index.js +22 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/types/charts/Chart.d.ts +38 -0
- package/lib/types/charts/ChartTooltip.d.ts +59 -0
- package/lib/types/charts/Legend.d.ts +30 -0
- package/lib/types/charts/index.d.ts +21 -0
- package/lib/types/charts/themes/darkTheme.d.ts +55 -0
- package/lib/types/charts/themes/defaultTheme.d.ts +51 -0
- package/lib/types/charts/themes/lightTheme.d.ts +55 -0
- package/lib/types/charts/utils.d.ts +23 -0
- package/lib/types/common/ConditionalWrap.d.ts +27 -0
- package/lib/types/index.d.ts +21 -0
- package/package.json +76 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) "Neo4j"
|
|
5
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
6
|
+
*
|
|
7
|
+
* This file is part of Neo4j.
|
|
8
|
+
*
|
|
9
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
10
|
+
* it under the terms of the GNU General Public License as published by
|
|
11
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
* (at your option) any later version.
|
|
13
|
+
*
|
|
14
|
+
* This program is distributed in the hope that it will be useful,
|
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
* GNU General Public License for more details.
|
|
18
|
+
*
|
|
19
|
+
* You should have received a copy of the GNU General Public License
|
|
20
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
*/
|
|
22
|
+
import { useRef, useEffect, useMemo, useState, } from 'react';
|
|
23
|
+
import { ChartTooltip } from './ChartTooltip';
|
|
24
|
+
import { renderToString } from 'react-dom/server';
|
|
25
|
+
import { init, registerTheme, getInstanceByDom, } from 'echarts';
|
|
26
|
+
import { Legend } from './Legend';
|
|
27
|
+
import { lightTheme } from './themes/lightTheme';
|
|
28
|
+
import { darkTheme } from './themes/darkTheme';
|
|
29
|
+
export function Chart({ dataset, option: userOption, xAxis, yAxis, series, style, settings, loading, legend, }) {
|
|
30
|
+
const chartRef = useRef(null);
|
|
31
|
+
const [isWaitingForFirstResize, setIsWaitingForFirstResize] = useState(true);
|
|
32
|
+
const option = useMemo(() => {
|
|
33
|
+
return Object.assign(Object.assign({ grid: {
|
|
34
|
+
top: '2%',
|
|
35
|
+
right: '5%',
|
|
36
|
+
bottom: '10%',
|
|
37
|
+
}, dataset,
|
|
38
|
+
xAxis,
|
|
39
|
+
yAxis }, userOption), { legend: {
|
|
40
|
+
show: false,
|
|
41
|
+
}, series: Array.isArray(series)
|
|
42
|
+
? series.map((currentSeries) => (Object.assign(Object.assign({ symbolSize: 9, symbol: 'none', symbolBorderWidth: 3 }, currentSeries), { lineStyle: Object.assign({ width: 3, type: 'solid' }, currentSeries.lineStyle) })))
|
|
43
|
+
: series, tooltip: {
|
|
44
|
+
trigger: 'axis',
|
|
45
|
+
className: 'ndl-charts-chart-tooltip',
|
|
46
|
+
axisPointer: {
|
|
47
|
+
type: 'line',
|
|
48
|
+
},
|
|
49
|
+
formatter: function (params) {
|
|
50
|
+
var _a;
|
|
51
|
+
const paramsArray = Array.isArray(params) ? params : [params];
|
|
52
|
+
const firstParam = paramsArray[0];
|
|
53
|
+
let valueFormatter = (value) => `${value}`;
|
|
54
|
+
if (typeof (userOption === null || userOption === void 0 ? void 0 : userOption.tooltip) === 'object' &&
|
|
55
|
+
userOption.tooltip !== null &&
|
|
56
|
+
'valueFormatter' in userOption.tooltip) {
|
|
57
|
+
valueFormatter = userOption.tooltip.valueFormatter;
|
|
58
|
+
}
|
|
59
|
+
return `${renderToString(_jsxs(_Fragment, { children: [_jsx(ChartTooltip.Title, { children: (_a = firstParam === null || firstParam === void 0 ? void 0 : firstParam.axisValueLabel) !== null && _a !== void 0 ? _a : '' }), paramsArray.map((series) => {
|
|
60
|
+
return (_jsx(ChartTooltip.Content, { leftElement: series.seriesName, rightElement: valueFormatter(Array.isArray(series.value)
|
|
61
|
+
? series.value[1]
|
|
62
|
+
: series.value),
|
|
63
|
+
/* @ts-expect-error echarts types are not fully compatible with typescript */
|
|
64
|
+
indentSquareColor: series.color }, series.name));
|
|
65
|
+
})] }))}`;
|
|
66
|
+
},
|
|
67
|
+
} });
|
|
68
|
+
}, [dataset, series, userOption, xAxis, yAxis]);
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
// Initialize chart
|
|
71
|
+
let chart;
|
|
72
|
+
if (chartRef.current !== null) {
|
|
73
|
+
registerTheme('ndl-light', lightTheme.theme);
|
|
74
|
+
registerTheme('ndl-dark', darkTheme.theme);
|
|
75
|
+
chart = init(chartRef.current, 'ndl-light', {
|
|
76
|
+
renderer: 'svg',
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
// Add chart resize listener
|
|
80
|
+
// ResizeObserver is leading to a bit janky UX
|
|
81
|
+
function resizeChart() {
|
|
82
|
+
const calculateGridLeft = () => {
|
|
83
|
+
var _a;
|
|
84
|
+
const textElements = (_a = chartRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll('text');
|
|
85
|
+
const filteredTextElements = Array.from(textElements || []).filter((element) => element.getAttribute('text-anchor') === 'end');
|
|
86
|
+
let maxWidth = 0;
|
|
87
|
+
filteredTextElements.forEach((element) => {
|
|
88
|
+
const bbox = element.getBBox();
|
|
89
|
+
maxWidth = Math.max(maxWidth, bbox.width);
|
|
90
|
+
});
|
|
91
|
+
const tickLength = 5;
|
|
92
|
+
const tickPadding = 3;
|
|
93
|
+
return maxWidth + tickLength + tickPadding;
|
|
94
|
+
};
|
|
95
|
+
// Example of dynamically setting the grid's left
|
|
96
|
+
const gridLeft = calculateGridLeft();
|
|
97
|
+
chart === null || chart === void 0 ? void 0 : chart.setOption({
|
|
98
|
+
grid: {
|
|
99
|
+
left: gridLeft,
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
chart === null || chart === void 0 ? void 0 : chart.resize();
|
|
103
|
+
}
|
|
104
|
+
window.addEventListener('resize', resizeChart);
|
|
105
|
+
requestAnimationFrame(() => {
|
|
106
|
+
resizeChart();
|
|
107
|
+
setIsWaitingForFirstResize(false);
|
|
108
|
+
});
|
|
109
|
+
// Return cleanup function
|
|
110
|
+
return () => {
|
|
111
|
+
chart === null || chart === void 0 ? void 0 : chart.dispose();
|
|
112
|
+
window.removeEventListener('resize', resizeChart);
|
|
113
|
+
};
|
|
114
|
+
}, []);
|
|
115
|
+
useEffect(() => {
|
|
116
|
+
// Update chart
|
|
117
|
+
if (chartRef.current !== null) {
|
|
118
|
+
const chart = getInstanceByDom(chartRef.current);
|
|
119
|
+
chart === null || chart === void 0 ? void 0 : chart.setOption(option, settings);
|
|
120
|
+
}
|
|
121
|
+
}, [option, settings]);
|
|
122
|
+
useEffect(() => {
|
|
123
|
+
if (chartRef.current === null) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const chart = getInstanceByDom(chartRef.current);
|
|
127
|
+
loading || isWaitingForFirstResize
|
|
128
|
+
? chart === null || chart === void 0 ? void 0 : chart.showLoading()
|
|
129
|
+
: chart === null || chart === void 0 ? void 0 : chart.hideLoading();
|
|
130
|
+
}, [loading, isWaitingForFirstResize]);
|
|
131
|
+
const legendSeries = useMemo(() => {
|
|
132
|
+
var _a;
|
|
133
|
+
if (chartRef.current === null || isWaitingForFirstResize) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const chart = getInstanceByDom(chartRef.current);
|
|
137
|
+
const options = chart === null || chart === void 0 ? void 0 : chart.getOption();
|
|
138
|
+
const optionsSeries = (_a = options === null || options === void 0 ? void 0 : options.series) !== null && _a !== void 0 ? _a : [];
|
|
139
|
+
const legendSeries = Array.isArray(series)
|
|
140
|
+
? series.map((s, index) => {
|
|
141
|
+
var _a;
|
|
142
|
+
const name = Array.isArray(optionsSeries)
|
|
143
|
+
? (_a = optionsSeries[index]) === null || _a === void 0 ? void 0 : _a.name
|
|
144
|
+
: undefined;
|
|
145
|
+
if (name === undefined) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
const color = chart === null || chart === void 0 ? void 0 : chart.getVisual({ seriesIndex: index }, 'color');
|
|
149
|
+
return {
|
|
150
|
+
name: String(name),
|
|
151
|
+
color: typeof color === 'string' ? color : '#000000',
|
|
152
|
+
};
|
|
153
|
+
})
|
|
154
|
+
: [];
|
|
155
|
+
return legendSeries.filter((s) => s !== null);
|
|
156
|
+
}, [series, isWaitingForFirstResize]);
|
|
157
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { ref: chartRef, style: Object.assign({ width: '100%', height: '100%' }, style) }), (legend === null || legend === void 0 ? void 0 : legend.show) && chartRef.current !== null && (_jsx(Legend, { wrappingType: legend.wrappingType, series: legendSeries !== null && legendSeries !== void 0 ? legendSeries : [], chartRef: chartRef }))] }));
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=Chart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chart.js","sourceRoot":"","sources":["../../../src/charts/Chart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) "Neo4j"
|
|
5
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
6
|
+
*
|
|
7
|
+
* This file is part of Neo4j.
|
|
8
|
+
*
|
|
9
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
10
|
+
* it under the terms of the GNU General Public License as published by
|
|
11
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
* (at your option) any later version.
|
|
13
|
+
*
|
|
14
|
+
* This program is distributed in the hope that it will be useful,
|
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
* GNU General Public License for more details.
|
|
18
|
+
*
|
|
19
|
+
* You should have received a copy of the GNU General Public License
|
|
20
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
*/
|
|
22
|
+
import classNames from 'classnames';
|
|
23
|
+
import { forwardRef } from 'react';
|
|
24
|
+
import { Popover, Typography, StatusIndicator, TextLink, } from '@neo4j-ndl/react';
|
|
25
|
+
export const ChartTooltipComponent = forwardRef(function ChartTooltipComponent({ children, className, isOpen, style, anchorPosition }, ref) {
|
|
26
|
+
const classes = classNames(`ndl-charts-chart-tooltip`, className);
|
|
27
|
+
return (_jsx(Popover, { isOpen: isOpen, anchorPosition: anchorPosition, placement: "middle-end-middle-start", children: _jsx(Popover.Content, { className: classes, ref: ref, style: style, children: children }) }));
|
|
28
|
+
});
|
|
29
|
+
const ChartTooltipTitle = forwardRef(function ChartTooltipTitle({ children }, ref) {
|
|
30
|
+
const classes = classNames(`ndl-charts-chart-tooltip-title`);
|
|
31
|
+
return (_jsx(Typography, { ref: ref, variant: "body-small", className: classes, children: children }));
|
|
32
|
+
});
|
|
33
|
+
const ChartTooltipContent = forwardRef(function ChartTooltipContent({ leftElement, rightElement, indentSquareColor, notification, }, ref) {
|
|
34
|
+
const classes = classNames(`ndl-charts-chart-tooltip-content`);
|
|
35
|
+
return (_jsxs("div", { ref: ref, className: classes, children: [_jsxs("div", { className: "ndl-charts-chart-tooltip-content-line", children: [indentSquareColor && (_jsx("div", { className: "ndl-charts-chart-tooltip-content-indent-square", style: { backgroundColor: indentSquareColor } })), leftElement && (_jsx(Typography, { variant: rightElement ? 'body-medium' : 'label', className: "ndl-charts-chart-tooltip-content-left-element", children: leftElement })), rightElement && (_jsx(Typography, { variant: "label", className: "ndl-charts-chart-tooltip-content-right-element", children: rightElement }))] }), notification && (_jsxs("div", { className: "ndl-charts-chart-tooltip-content-notification", children: [_jsx(StatusIndicator, { type: notification.type }), _jsx(Typography, { variant: "body-medium", className: "ndl-charts-chart-tooltip-content-notification-left-element", children: notification.leftElement }), _jsx(Typography, { variant: "label", className: "ndl-charts-chart-tooltip-content-notification-right-element", children: notification.rightElement })] }))] }));
|
|
36
|
+
});
|
|
37
|
+
const ChartTooltipLink = forwardRef(function ChartTooltipAction(props, ref) {
|
|
38
|
+
return _jsx(TextLink, Object.assign({ ref: ref }, props));
|
|
39
|
+
});
|
|
40
|
+
const ChartTooltip = Object.assign(ChartTooltipComponent, {
|
|
41
|
+
Title: ChartTooltipTitle,
|
|
42
|
+
Content: ChartTooltipContent,
|
|
43
|
+
Link: ChartTooltipLink,
|
|
44
|
+
});
|
|
45
|
+
export { ChartTooltip };
|
|
46
|
+
//# sourceMappingURL=ChartTooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartTooltip.js","sourceRoot":"","sources":["../../../src/charts/ChartTooltip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) "Neo4j"
|
|
5
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
6
|
+
*
|
|
7
|
+
* This file is part of Neo4j.
|
|
8
|
+
*
|
|
9
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
10
|
+
* it under the terms of the GNU General Public License as published by
|
|
11
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
* (at your option) any later version.
|
|
13
|
+
*
|
|
14
|
+
* This program is distributed in the hope that it will be useful,
|
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
* GNU General Public License for more details.
|
|
18
|
+
*
|
|
19
|
+
* You should have received a copy of the GNU General Public License
|
|
20
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
*/
|
|
22
|
+
import classNames from 'classnames';
|
|
23
|
+
import { forwardRef, useEffect, useRef, useState } from 'react';
|
|
24
|
+
import { Tooltip, Typography } from '@neo4j-ndl/react';
|
|
25
|
+
import { CheckIconOutline } from '@neo4j-ndl/react/icons';
|
|
26
|
+
import { useResizeObserver } from 'usehooks-ts';
|
|
27
|
+
import { ConditionalWrap } from '../common/ConditionalWrap';
|
|
28
|
+
import { getInstanceByDom } from 'echarts';
|
|
29
|
+
import { tokens } from '@neo4j-ndl/base';
|
|
30
|
+
const LegendItem = forwardRef(function LegendItemComponent({ children, as, className, name, selected, deSelected, onSquareClick, onTextClick, color, hasButtons = true, },
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
|
+
ref) {
|
|
33
|
+
const Component = as === 'button' ? 'button' : 'div';
|
|
34
|
+
const InnerComponent = hasButtons ? 'button' : 'div';
|
|
35
|
+
const classes = classNames('ndl-chart-legend-item', {
|
|
36
|
+
'ndl-chart-legend-item-selected': selected,
|
|
37
|
+
'ndl-chart-legend-item-deselected': deSelected,
|
|
38
|
+
}, className);
|
|
39
|
+
return (_jsxs(Component, { className: classes, ref: ref, tabIndex: -1, "data-labelname": name, children: [_jsx(InnerComponent, { className: "ndl-chart-legend-item-square", style: {
|
|
40
|
+
backgroundColor: color,
|
|
41
|
+
}, onClick: hasButtons ? onSquareClick : undefined, children: selected && (_jsx(CheckIconOutline, { className: "ndl-chart-legend-item-square-checkmark" })) }), _jsx(Typography, { as: InnerComponent, variant: "body-medium", className: "ndl-chart-legend-item-text", htmlAttributes: {
|
|
42
|
+
onClick: hasButtons ? onTextClick : undefined,
|
|
43
|
+
}, children: children })] }));
|
|
44
|
+
});
|
|
45
|
+
export const Legend = forwardRef(function LegendComponent({ className, wrappingType = 'wrapping', series, chartRef }, ref) {
|
|
46
|
+
const [selectedSeries, setSelectedSeries] = useState(Object.fromEntries(series.map((s) => { var _a; return [(_a = s.name) !== null && _a !== void 0 ? _a : '', true]; })));
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
setSelectedSeries(Object.fromEntries(series.map((s) => { var _a; return [(_a = s.name) !== null && _a !== void 0 ? _a : '', true]; })));
|
|
49
|
+
if (chartRef.current === null) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const chart = getInstanceByDom(chartRef.current);
|
|
53
|
+
chart === null || chart === void 0 ? void 0 : chart.on('legendselectchanged', (params) => {
|
|
54
|
+
if (typeof params === 'object' &&
|
|
55
|
+
params !== null &&
|
|
56
|
+
'selected' in params &&
|
|
57
|
+
params.selected !== null) {
|
|
58
|
+
// @ts-expect-error echarts types are not extensive enough
|
|
59
|
+
setSelectedSeries(params.selected);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
chart === null || chart === void 0 ? void 0 : chart.on('legendselectall', (params) => {
|
|
63
|
+
if (typeof params === 'object' &&
|
|
64
|
+
params !== null &&
|
|
65
|
+
'selected' in params &&
|
|
66
|
+
params.selected !== null) {
|
|
67
|
+
// @ts-expect-error echarts types are not extensive enough
|
|
68
|
+
setSelectedSeries(params.selected);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
chart === null || chart === void 0 ? void 0 : chart.on('legendselected', (params) => {
|
|
72
|
+
if (typeof params === 'object' &&
|
|
73
|
+
params !== null &&
|
|
74
|
+
'selected' in params &&
|
|
75
|
+
params.selected !== null) {
|
|
76
|
+
// @ts-expect-error echarts types are not extensive enough
|
|
77
|
+
setSelectedSeries(params.selected);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
chart === null || chart === void 0 ? void 0 : chart.on('legendunselected', (params) => {
|
|
81
|
+
if (typeof params === 'object' &&
|
|
82
|
+
params !== null &&
|
|
83
|
+
'selected' in params &&
|
|
84
|
+
params.selected !== null) {
|
|
85
|
+
// @ts-expect-error echarts types are not extensive enough
|
|
86
|
+
setSelectedSeries(params.selected);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
return () => {
|
|
90
|
+
chart === null || chart === void 0 ? void 0 : chart.off('legendselectchanged');
|
|
91
|
+
chart === null || chart === void 0 ? void 0 : chart.off('legendselectall');
|
|
92
|
+
chart === null || chart === void 0 ? void 0 : chart.off('legendselected');
|
|
93
|
+
chart === null || chart === void 0 ? void 0 : chart.off('legendunselected');
|
|
94
|
+
};
|
|
95
|
+
}, [chartRef, series]);
|
|
96
|
+
const classes = classNames(`ndl-chart-legend`, {
|
|
97
|
+
'ndl-chart-legend-overflow': wrappingType === 'overflow',
|
|
98
|
+
'ndl-chart-legend-wrapping': wrappingType === 'wrapping',
|
|
99
|
+
'ndl-chart-legend-truncation': wrappingType === 'truncation',
|
|
100
|
+
}, className);
|
|
101
|
+
const setOnlyVisible = (name) => {
|
|
102
|
+
if (chartRef.current === null) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const chart = getInstanceByDom(chartRef.current);
|
|
106
|
+
chart === null || chart === void 0 ? void 0 : chart.dispatchAction({
|
|
107
|
+
type: 'legendSelect',
|
|
108
|
+
name: name,
|
|
109
|
+
});
|
|
110
|
+
const otherNames = Object.keys(selectedSeries).filter((n) => n !== name);
|
|
111
|
+
otherNames.forEach((name) => {
|
|
112
|
+
chart === null || chart === void 0 ? void 0 : chart.dispatchAction({
|
|
113
|
+
type: 'legendUnSelect',
|
|
114
|
+
name: name,
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
const toggleVisibility = (name) => {
|
|
119
|
+
if (chartRef.current === null) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const chart = getInstanceByDom(chartRef.current);
|
|
123
|
+
chart === null || chart === void 0 ? void 0 : chart.dispatchAction({
|
|
124
|
+
type: 'legendToggleSelect',
|
|
125
|
+
name: name,
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
const setAllVisible = () => {
|
|
129
|
+
if (chartRef.current === null) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
const chart = getInstanceByDom(chartRef.current);
|
|
133
|
+
chart === null || chart === void 0 ? void 0 : chart.dispatchAction({
|
|
134
|
+
type: 'legendAllSelect',
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
return (_jsx(_Fragment, { children: wrappingType === 'truncation' || wrappingType === 'wrapping' ? (_jsx("div", { className: classes, ref: ref, children: series.map((currentSeries, index) => {
|
|
138
|
+
var _a, _b;
|
|
139
|
+
const isOnlyVisible = selectedSeries[(_a = currentSeries.name) !== null && _a !== void 0 ? _a : ''] &&
|
|
140
|
+
Object.values(selectedSeries).filter(Boolean).length === 1;
|
|
141
|
+
const color = currentSeries.color;
|
|
142
|
+
return (_jsx(ConditionalWrap, { shouldWrap: wrappingType === 'truncation', wrapper: (children) => (_jsx(Tooltip, { type: "simple", children: _jsx(Tooltip.Trigger, { hasButtonWrapper: true, children: children }) }, index)), children: _jsx(LegendItem, { as: wrappingType === 'truncation' ? 'button' : 'div', name: currentSeries.name, color: color, hasButtons: currentSeries.name !== undefined, onSquareClick: () => {
|
|
143
|
+
if (isOnlyVisible) {
|
|
144
|
+
setAllVisible();
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
setOnlyVisible(currentSeries.name);
|
|
148
|
+
}
|
|
149
|
+
}, onTextClick: () => toggleVisibility(currentSeries.name), selected: isOnlyVisible, deSelected: currentSeries.name === undefined
|
|
150
|
+
? false
|
|
151
|
+
: !selectedSeries[currentSeries.name], children: (_b = currentSeries.name) !== null && _b !== void 0 ? _b : `Series ${index}` }) }, index));
|
|
152
|
+
}) })) : (_jsx(LegendOverflowType, { className: classes, visibleSeries: selectedSeries, wrappingType: wrappingType, chartRef: chartRef, series: series, onSquareClick: (name) => {
|
|
153
|
+
const isOnlyVisible = selectedSeries[name !== null && name !== void 0 ? name : ''] &&
|
|
154
|
+
Object.values(selectedSeries).filter(Boolean).length === 1;
|
|
155
|
+
if (isOnlyVisible) {
|
|
156
|
+
setAllVisible();
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
setOnlyVisible(name);
|
|
160
|
+
}
|
|
161
|
+
}, onTextClick: (name) => {
|
|
162
|
+
toggleVisibility(name);
|
|
163
|
+
} })) }));
|
|
164
|
+
});
|
|
165
|
+
const LegendOverflowType = function LegendOverflow({ className, series, onSquareClick, onTextClick, visibleSeries, }) {
|
|
166
|
+
const containerRef = useRef(null);
|
|
167
|
+
const [nonOverflowItemsNames, setNonOverflowItemsNames] = useState(series.map((s) => s.name));
|
|
168
|
+
useEffect(() => {
|
|
169
|
+
setNonOverflowItemsNames(series.map((s) => s.name));
|
|
170
|
+
}, [series]);
|
|
171
|
+
const overflowItemsNames = series.filter((item) => !nonOverflowItemsNames.includes(item.name));
|
|
172
|
+
const [width, setWidth] = useState(Infinity);
|
|
173
|
+
useResizeObserver({
|
|
174
|
+
ref: containerRef,
|
|
175
|
+
onResize: (entry) => {
|
|
176
|
+
if (entry.width === undefined) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (width < entry.width) {
|
|
180
|
+
setNonOverflowItemsNames(series.map((s) => s.name));
|
|
181
|
+
}
|
|
182
|
+
setWidth(entry.width);
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
useEffect(() => {
|
|
186
|
+
const container = containerRef.current;
|
|
187
|
+
if (!container) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
let elements = Array.from(container.children);
|
|
191
|
+
if (elements.length === 0 || series.length === 0) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
let totalWidth = 0;
|
|
195
|
+
if (overflowItemsNames.length > 0) {
|
|
196
|
+
const lastElementItem = elements[elements.length - 1];
|
|
197
|
+
const lastItemWidth = lastElementItem.getBoundingClientRect().width;
|
|
198
|
+
elements = elements.slice(0, elements.length - 1);
|
|
199
|
+
totalWidth += lastItemWidth;
|
|
200
|
+
}
|
|
201
|
+
elements.forEach((element) => {
|
|
202
|
+
totalWidth += element.getBoundingClientRect().width;
|
|
203
|
+
const textContent = element.textContent;
|
|
204
|
+
if (!textContent) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
const itemName = element.getAttribute('data-labelname');
|
|
208
|
+
if (itemName === null) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
if (totalWidth > width) {
|
|
212
|
+
setNonOverflowItemsNames((oldNames) => oldNames.filter((name) => name !== itemName));
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
}, [overflowItemsNames.length, series.length, width]);
|
|
216
|
+
const classes = classNames({
|
|
217
|
+
'ndl-chart-legend-calculating': width === Infinity,
|
|
218
|
+
}, className);
|
|
219
|
+
return (_jsxs("div", { className: classes, ref: containerRef, children: [nonOverflowItemsNames.map((name) => {
|
|
220
|
+
const currentSeries = series.find((s) => s.name === name);
|
|
221
|
+
if (currentSeries === undefined) {
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
const isVisible = visibleSeries[name];
|
|
225
|
+
const isOnlyVisible = isVisible &&
|
|
226
|
+
Object.values(visibleSeries).filter(Boolean).length === 1;
|
|
227
|
+
return (_jsx(LegendItem, { name: name, color: currentSeries.color, onSquareClick: () => {
|
|
228
|
+
onSquareClick === null || onSquareClick === void 0 ? void 0 : onSquareClick(name);
|
|
229
|
+
}, onTextClick: () => onTextClick === null || onTextClick === void 0 ? void 0 : onTextClick(name), selected: isOnlyVisible, deSelected: !isVisible, children: name }, name));
|
|
230
|
+
}), overflowItemsNames.length > 0 && (_jsxs(Tooltip, { type: "simple", children: [_jsx(Tooltip.Trigger, { children: _jsxs(LegendItem, { as: "div", name: "ndl-overflow-items", color: tokens.colors.neutral[30], hasButtons: false, children: [overflowItemsNames.length, " more"] }) }), _jsx(Tooltip.Content, { children: overflowItemsNames.map((item) => (_jsx("p", { children: item.name }, item.name))) })] }))] }));
|
|
231
|
+
};
|
|
232
|
+
//# sourceMappingURL=Legend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Legend.js","sourceRoot":"","sources":["../../../src/charts/Legend.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAczC,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,mBAAmB,CACxD,EACE,QAAQ,EACR,EAAE,EACF,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,aAAa,EACb,WAAW,EACX,KAAK,EACL,UAAU,GAAG,IAAI,GACD;AAClB,8DAA8D;AAC9D,GAA4B;IAE5B,MAAM,SAAS,GAAG,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,MAAM,OAAO,GAAG,UAAU,CACxB,uBAAuB,EACvB;QACE,gCAAgC,EAAE,QAAQ;QAC1C,kCAAkC,EAAE,UAAU;KAC/C,EACD,SAAS,CACV,CAAC;IAEF,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,OAAO,EAClB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,CAAC,CAAC,oBACI,IAAI,aAEpB,KAAC,cAAc,IACb,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE;oBACL,eAAe,EAAE,KAAK;iBACvB,EACD,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,YAE9C,QAAQ,IAAI,CACX,KAAC,gBAAgB,IAAC,SAAS,EAAC,wCAAwC,GAAG,CACxE,GACc,EACjB,KAAC,UAAU,IACT,EAAE,EAAE,cAAc,EAClB,OAAO,EAAC,aAAa,EACrB,SAAS,EAAC,4BAA4B,EACtC,cAAc,EAAE;oBACd,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;iBAC9C,YAEA,QAAQ,GACE,IACH,CACb,CAAC;AACJ,CAAC,CAAC,CAAC;AAWH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,eAAe,CACvD,EAAE,SAAS,EAAE,YAAY,GAAG,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAe,EACvE,GAAuC;IAEvC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAC,MAAA,CAAC,CAAC,IAAI,mCAAI,EAAE,EAAE,IAAI,CAAC,CAAA,EAAA,CAAC,CAAC,CAC5D,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,CACf,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAC,MAAA,CAAC,CAAC,IAAI,mCAAI,EAAE,EAAE,IAAI,CAAC,CAAA,EAAA,CAAC,CAAC,CAC5D,CAAC;QAEF,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjD,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1C,IACE,OAAO,MAAM,KAAK,QAAQ;gBAC1B,MAAM,KAAK,IAAI;gBACf,UAAU,IAAI,MAAM;gBACpB,MAAM,CAAC,QAAQ,KAAK,IAAI,EACxB,CAAC;gBACD,0DAA0D;gBAC1D,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;YACtC,IACE,OAAO,MAAM,KAAK,QAAQ;gBAC1B,MAAM,KAAK,IAAI;gBACf,UAAU,IAAI,MAAM;gBACpB,MAAM,CAAC,QAAQ,KAAK,IAAI,EACxB,CAAC;gBACD,0DAA0D;gBAC1D,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE;YACrC,IACE,OAAO,MAAM,KAAK,QAAQ;gBAC1B,MAAM,KAAK,IAAI;gBACf,UAAU,IAAI,MAAM;gBACpB,MAAM,CAAC,QAAQ,KAAK,IAAI,EACxB,CAAC;gBACD,0DAA0D;gBAC1D,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;YACvC,IACE,OAAO,MAAM,KAAK,QAAQ;gBAC1B,MAAM,KAAK,IAAI;gBACf,UAAU,IAAI,MAAM;gBACpB,MAAM,CAAC,QAAQ,KAAK,IAAI,EACxB,CAAC;gBACD,0DAA0D;gBAC1D,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAClC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC9B,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC7B,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvB,MAAM,OAAO,GAAG,UAAU,CACxB,kBAAkB,EAClB;QACE,2BAA2B,EAAE,YAAY,KAAK,UAAU;QACxD,2BAA2B,EAAE,YAAY,KAAK,UAAU;QACxD,6BAA6B,EAAE,YAAY,KAAK,YAAY;KAC7D,EACD,SAAS,CACV,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,IAAwB,EAAE,EAAE;QAClD,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC;YACpB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACzE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC;gBACpB,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAwB,EAAE,EAAE;QACpD,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC;YACpB,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC;YACpB,IAAI,EAAE,iBAAiB;SACxB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACL,4BACG,YAAY,KAAK,YAAY,IAAI,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,CAC9D,cAAK,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,YAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE;;gBACnC,MAAM,aAAa,GACjB,cAAc,CAAC,MAAA,aAAa,CAAC,IAAI,mCAAI,EAAE,CAAC;oBACxC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;gBAE7D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;gBAClC,OAAO,CACL,KAAC,eAAe,IAEd,UAAU,EAAE,YAAY,KAAK,YAAY,EACzC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CACrB,KAAC,OAAO,IAAC,IAAI,EAAC,QAAQ,YACpB,KAAC,OAAO,CAAC,OAAO,IAAC,gBAAgB,kBAC9B,QAAQ,GACO,IAHQ,KAAK,CAIvB,CACX,YAED,KAAC,UAAU,IACT,EAAE,EAAE,YAAY,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EACpD,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,aAAa,CAAC,IAAI,KAAK,SAAS,EAC5C,aAAa,EAAE,GAAG,EAAE;4BAClB,IAAI,aAAa,EAAE,CAAC;gCAClB,aAAa,EAAE,CAAC;4BAClB,CAAC;iCAAM,CAAC;gCACN,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;4BACrC,CAAC;wBACH,CAAC,EACD,WAAW,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,EACvD,QAAQ,EAAE,aAAa,EACvB,UAAU,EACR,aAAa,CAAC,IAAI,KAAK,SAAS;4BAC9B,CAAC,CAAC,KAAK;4BACP,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,YAGxC,MAAA,aAAa,CAAC,IAAI,mCAAI,UAAU,KAAK,EAAE,GAC7B,IA/BR,KAAK,CAgCM,CACnB,CAAC;YACJ,CAAC,CAAC,GACE,CACP,CAAC,CAAC,CAAC,CACF,KAAC,kBAAkB,IACjB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,cAAc,EAC7B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,MAAM,aAAa,GACjB,cAAc,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;oBAC1B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;gBAC7D,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,EAAE,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,EACD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;gBACpB,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,GACD,CACH,GACA,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,SAAS,cAAc,CAAC,EACjD,SAAS,EACT,MAAM,EACN,aAAa,EACb,WAAW,EACX,aAAa,GAUd;IACC,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAElD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAChE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC1B,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CACtC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACrD,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,iBAAiB,CAAC;QAChB,GAAG,EAAE,YAAY;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YACD,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,CAAC;YACD,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;KACF,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtD,MAAM,aAAa,GAAG,eAAe,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;YACpE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClD,UAAU,IAAI,aAAa,CAAC;QAC9B,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,UAAU,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;YACpD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YACxD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,IAAI,UAAU,GAAG,KAAK,EAAE,CAAC;gBACvB,wBAAwB,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAC7C,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,UAAU,CACxB;QACE,8BAA8B,EAAE,KAAK,KAAK,QAAQ;KACnD,EACD,SAAS,CACV,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,aACvC,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBAC1D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,aAAa,GACjB,SAAS;oBACT,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;gBAC5D,OAAO,CACL,KAAC,UAAU,IAET,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,aAAa,CAAC,KAAK,EAC1B,aAAa,EAAE,GAAG,EAAE;wBAClB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,IAAI,CAAC,CAAC;oBACxB,CAAC,EACD,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,IAAI,CAAC,EACtC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,CAAC,SAAS,YAErB,IAAI,IAVA,IAAI,CAWE,CACd,CAAC;YACJ,CAAC,CAAC,EAED,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CAChC,MAAC,OAAO,IAAC,IAAI,EAAC,QAAQ,aACpB,KAAC,OAAO,CAAC,OAAO,cACd,MAAC,UAAU,IACT,EAAE,EAAC,KAAK,EACR,IAAI,EAAC,oBAAoB,EACzB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAChC,UAAU,EAAE,KAAK,aAEhB,kBAAkB,CAAC,MAAM,aACf,GACG,EAClB,KAAC,OAAO,CAAC,OAAO,cACb,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAChC,sBAAoB,IAAI,CAAC,IAAI,IAArB,IAAI,CAAC,IAAI,CAAiB,CACnC,CAAC,GACc,IACV,CACX,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) "Neo4j"
|
|
4
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
5
|
+
*
|
|
6
|
+
* This file is part of Neo4j.
|
|
7
|
+
*
|
|
8
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
9
|
+
* it under the terms of the GNU General Public License as published by
|
|
10
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
* (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
* GNU General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU General Public License
|
|
19
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
*/
|
|
21
|
+
export * from './Chart';
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/charts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) "Neo4j"
|
|
4
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
5
|
+
*
|
|
6
|
+
* This file is part of Neo4j.
|
|
7
|
+
*
|
|
8
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
9
|
+
* it under the terms of the GNU General Public License as published by
|
|
10
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
* (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
* GNU General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU General Public License
|
|
19
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
*/
|
|
21
|
+
import { defaultTheme } from './defaultTheme';
|
|
22
|
+
export const darkTheme = {
|
|
23
|
+
version: 1,
|
|
24
|
+
themeName: 'ndl-dark',
|
|
25
|
+
theme: Object.assign({}, defaultTheme),
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=darkTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"darkTheme.js","sourceRoot":"","sources":["../../../../src/charts/themes/darkTheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,UAAU;IACrB,KAAK,oBACA,YAAY,CAChB;CACF,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) "Neo4j"
|
|
4
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
5
|
+
*
|
|
6
|
+
* This file is part of Neo4j.
|
|
7
|
+
*
|
|
8
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
9
|
+
* it under the terms of the GNU General Public License as published by
|
|
10
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
* (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
* GNU General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU General Public License
|
|
19
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
*/
|
|
21
|
+
import { tokens } from '@neo4j-ndl/base';
|
|
22
|
+
export const defaultTheme = {
|
|
23
|
+
color: Object.values(tokens.palette.categorical),
|
|
24
|
+
axes: [
|
|
25
|
+
{
|
|
26
|
+
type: 'all',
|
|
27
|
+
axisLineShow: true,
|
|
28
|
+
axisLineColor: '#bbbec3',
|
|
29
|
+
axisTickShow: true,
|
|
30
|
+
axisTickColor: '#bbbec3',
|
|
31
|
+
axisLabelShow: true,
|
|
32
|
+
axisLabelColor: '#5e636a',
|
|
33
|
+
splitLineShow: true,
|
|
34
|
+
splitLineColor: ['#E0E6F1'],
|
|
35
|
+
splitAreaShow: false,
|
|
36
|
+
splitAreaColor: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)'],
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
lineWidth: '11',
|
|
40
|
+
backgroundColor: 'transparent',
|
|
41
|
+
kColor: '#eb5454',
|
|
42
|
+
kColor0: '#47b262',
|
|
43
|
+
kBorderColor: '#eb5454',
|
|
44
|
+
kBorderColor0: '#47b262',
|
|
45
|
+
kBorderWidth: 1,
|
|
46
|
+
symbolSize: '12',
|
|
47
|
+
symbol: 'emptyCircle',
|
|
48
|
+
symbolBorderWidth: '3',
|
|
49
|
+
lineSmooth: false,
|
|
50
|
+
graphLineWidth: 1,
|
|
51
|
+
graphLineColor: '#aaa',
|
|
52
|
+
axisSeperateSetting: false,
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=defaultTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultTheme.js","sourceRoot":"","sources":["../../../../src/charts/themes/defaultTheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;IAChD,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,KAAK;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,SAAS;YACxB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,CAAC,SAAS,CAAC;YAC3B,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;SACnE;KACF;IACD,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,aAAa;IAC9B,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,SAAS;IACxB,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,aAAa;IACrB,iBAAiB,EAAE,GAAG;IACtB,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,MAAM;IACtB,mBAAmB,EAAE,KAAK;CAC3B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) "Neo4j"
|
|
4
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
5
|
+
*
|
|
6
|
+
* This file is part of Neo4j.
|
|
7
|
+
*
|
|
8
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
9
|
+
* it under the terms of the GNU General Public License as published by
|
|
10
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
* (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
* GNU General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU General Public License
|
|
19
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
*/
|
|
21
|
+
import { defaultTheme } from './defaultTheme';
|
|
22
|
+
export const lightTheme = {
|
|
23
|
+
version: 1,
|
|
24
|
+
themeName: 'ndl-light',
|
|
25
|
+
theme: Object.assign({}, defaultTheme),
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=lightTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightTheme.js","sourceRoot":"","sources":["../../../../src/charts/themes/lightTheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,WAAW;IACtB,KAAK,oBACA,YAAY,CAChB;CACF,CAAC"}
|