@easyv/charts 1.1.6 → 1.1.7

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.
Files changed (67) hide show
  1. package/.babelrc +8 -8
  2. package/.husky/commit-msg +3 -3
  3. package/CHANGELOG.md +18 -18
  4. package/commitlint.config.js +1 -1
  5. package/lib/components/AnimateData.js +2 -2
  6. package/lib/components/Axis.js +10 -10
  7. package/lib/components/Background.js +2 -2
  8. package/lib/components/Carousel.js +2 -2
  9. package/lib/components/Chart.js +2 -2
  10. package/lib/components/ConicalGradient.js +21 -21
  11. package/lib/components/Indicator.js +2 -2
  12. package/lib/components/Lighter.js +179 -179
  13. package/lib/components/LinearGradient.js +2 -2
  14. package/lib/css/index.module.css +41 -41
  15. package/lib/css/piechart.module.css +26 -26
  16. package/lib/element/ConicGradient.js +72 -72
  17. package/lib/hooks/useAnimateData.js +5 -5
  18. package/lib/hooks/useAxes.js +5 -5
  19. package/lib/hooks/useCarouselAxisX.js +5 -5
  20. package/lib/hooks/useExtentData.js +6 -6
  21. package/lib/hooks/useFilterData.js +5 -5
  22. package/lib/hooks/useStackData.js +5 -5
  23. package/lib/hooks/useTooltip.js +10 -10
  24. package/package.json +51 -52
  25. package/src/components/AnimateData.tsx +24 -24
  26. package/src/components/Axis.tsx +354 -354
  27. package/src/components/Background.tsx +45 -45
  28. package/src/components/Band.tsx +173 -173
  29. package/src/components/Brush.js +159 -159
  30. package/src/components/Carousel.tsx +144 -144
  31. package/src/components/Chart.js +99 -99
  32. package/src/components/ChartContainer.tsx +63 -63
  33. package/src/components/ConicalGradient.js +258 -258
  34. package/src/components/ExtentData.js +17 -17
  35. package/src/components/FilterData.js +23 -23
  36. package/src/components/Indicator.js +13 -13
  37. package/src/components/Label.js +206 -206
  38. package/src/components/Legend.js +158 -158
  39. package/src/components/Lighter.jsx +173 -173
  40. package/src/components/Line.js +144 -144
  41. package/src/components/LinearGradient.js +29 -29
  42. package/src/components/Mapping.js +71 -71
  43. package/src/components/PieChart.js +1097 -1097
  44. package/src/components/StackData.js +20 -20
  45. package/src/components/StereoBar.tsx +311 -311
  46. package/src/components/Tooltip.js +168 -168
  47. package/src/components/index.js +51 -51
  48. package/src/context/index.js +2 -2
  49. package/src/css/index.module.css +41 -41
  50. package/src/css/piechart.module.css +26 -26
  51. package/src/element/ConicGradient.jsx +55 -55
  52. package/src/element/Line.tsx +33 -33
  53. package/src/element/index.ts +3 -3
  54. package/src/formatter/index.js +1 -1
  55. package/src/formatter/legend.js +90 -90
  56. package/src/hooks/index.js +17 -17
  57. package/src/hooks/useAnimateData.ts +62 -62
  58. package/src/hooks/useAxes.js +144 -144
  59. package/src/hooks/useCarouselAxisX.js +163 -163
  60. package/src/hooks/useExtentData.js +88 -88
  61. package/src/hooks/useFilterData.js +72 -72
  62. package/src/hooks/useStackData.js +100 -100
  63. package/src/hooks/useTooltip.ts +96 -96
  64. package/src/index.js +6 -6
  65. package/src/types/index.d.ts +62 -62
  66. package/src/utils/index.js +696 -696
  67. package/tsconfig.json +22 -22
@@ -1,99 +1,99 @@
1
- /**
2
- * 总入口,通过外面传进来的type来确定渲染哪种图表,饼环图表为“pie”,否则为轴类图表
3
- */
4
- import React, { memo, useMemo, createRef, useCallback } from 'react';
5
- import { chartContext } from '../context';
6
- import { PieChart, CartesianChart } from '.';
7
-
8
- const getCallbackData = (callbacks, data) => {
9
- let callbackData;
10
- if (callbacks && Array.isArray(callbacks) && callbacks.length && data) {
11
- callbackData = {};
12
- callbacks.forEach(({ origin, target }) => {
13
- callbackData[target] = data[origin];
14
- });
15
- }
16
- return callbackData;
17
- };
18
-
19
- const Chart = memo(
20
- ({
21
- id,
22
- type,
23
- config,
24
- config: {
25
- chart: {
26
- dimension: {
27
- chartDimension: { height, width },
28
- },
29
- margin: { marginRight, marginLeft, marginBottom, marginTop },
30
- },
31
- interaction,
32
- },
33
- data,
34
- onRelative,
35
- emit,
36
- emitEvent,
37
- ...props
38
- }) => {
39
- const svg = createRef();
40
- const chartWidth = width - marginLeft - marginRight;
41
- const chartHeight = height - marginTop - marginBottom;
42
-
43
- const triggerOnRelative = useCallback(
44
- (data) => {
45
- if (!interaction) return;
46
- const { callbacks, remoteControls } = interaction;
47
- const callbackData = getCallbackData(callbacks, data);
48
- if (callbackData) {
49
- onRelative && onRelative(id, callbackData);
50
- remoteControls &&
51
- emitEvent &&
52
- remoteControls.forEach((o) => {
53
- const control = JSON.parse(o.control);
54
- if (
55
- control.screen &&
56
- control.type &&
57
- control.type === 'callback'
58
- ) {
59
- emitEvent({
60
- screen: control.screen,
61
- type: 'callback',
62
- callbackData,
63
- });
64
- }
65
- });
66
- }
67
- },
68
- [onRelative, emitEvent, JSON.stringify(interaction)]
69
- );
70
-
71
- const onEmit = useCallback(
72
- (type = 'click', data) => emit && emit(type, data),
73
- [emit]
74
- );
75
-
76
- const context = useMemo(
77
- () => ({
78
- id,
79
- width: chartWidth,
80
- height: chartHeight,
81
- triggerOnRelative,
82
- svg,
83
- onEmit,
84
- }),
85
- [id, chartWidth, chartHeight, triggerOnRelative, svg, onEmit]
86
- );
87
- return (
88
- <chartContext.Provider value={context}>
89
- {type == 'pie' ? (
90
- <PieChart id={id} config={config} data={data} {...props} />
91
- ) : (
92
- <CartesianChart id={id} config={config} data={data} {...props} />
93
- )}
94
- </chartContext.Provider>
95
- );
96
- }
97
- );
98
-
99
- export default Chart;
1
+ /**
2
+ * 总入口,通过外面传进来的type来确定渲染哪种图表,饼环图表为“pie”,否则为轴类图表
3
+ */
4
+ import React, { memo, useMemo, createRef, useCallback } from 'react';
5
+ import { chartContext } from '../context';
6
+ import { PieChart, CartesianChart } from '.';
7
+
8
+ const getCallbackData = (callbacks, data) => {
9
+ let callbackData;
10
+ if (callbacks && Array.isArray(callbacks) && callbacks.length && data) {
11
+ callbackData = {};
12
+ callbacks.forEach(({ origin, target }) => {
13
+ callbackData[target] = data[origin];
14
+ });
15
+ }
16
+ return callbackData;
17
+ };
18
+
19
+ const Chart = memo(
20
+ ({
21
+ id,
22
+ type,
23
+ config,
24
+ config: {
25
+ chart: {
26
+ dimension: {
27
+ chartDimension: { height, width },
28
+ },
29
+ margin: { marginRight, marginLeft, marginBottom, marginTop },
30
+ },
31
+ interaction,
32
+ },
33
+ data,
34
+ onRelative,
35
+ emit,
36
+ emitEvent,
37
+ ...props
38
+ }) => {
39
+ const svg = createRef();
40
+ const chartWidth = width - marginLeft - marginRight;
41
+ const chartHeight = height - marginTop - marginBottom;
42
+
43
+ const triggerOnRelative = useCallback(
44
+ (data) => {
45
+ if (!interaction) return;
46
+ const { callbacks, remoteControls } = interaction;
47
+ const callbackData = getCallbackData(callbacks, data);
48
+ if (callbackData) {
49
+ onRelative && onRelative(id, callbackData);
50
+ remoteControls &&
51
+ emitEvent &&
52
+ remoteControls.forEach((o) => {
53
+ const control = JSON.parse(o.control);
54
+ if (
55
+ control.screen &&
56
+ control.type &&
57
+ control.type === 'callback'
58
+ ) {
59
+ emitEvent({
60
+ screen: control.screen,
61
+ type: 'callback',
62
+ callbackData,
63
+ });
64
+ }
65
+ });
66
+ }
67
+ },
68
+ [onRelative, emitEvent, JSON.stringify(interaction)]
69
+ );
70
+
71
+ const onEmit = useCallback(
72
+ (type = 'click', data) => emit && emit(type, data),
73
+ [emit]
74
+ );
75
+
76
+ const context = useMemo(
77
+ () => ({
78
+ id,
79
+ width: chartWidth,
80
+ height: chartHeight,
81
+ triggerOnRelative,
82
+ svg,
83
+ onEmit,
84
+ }),
85
+ [id, chartWidth, chartHeight, triggerOnRelative, svg, onEmit]
86
+ );
87
+ return (
88
+ <chartContext.Provider value={context}>
89
+ {type == 'pie' ? (
90
+ <PieChart id={id} config={config} data={data} {...props} />
91
+ ) : (
92
+ <CartesianChart id={id} config={config} data={data} {...props} />
93
+ )}
94
+ </chartContext.Provider>
95
+ );
96
+ }
97
+ );
98
+
99
+ export default Chart;
@@ -1,63 +1,63 @@
1
- /**
2
- * svg外框
3
- */
4
- import React, {
5
- memo,
6
- forwardRef,
7
- ReactChild,
8
- ReactEventHandler,
9
- LegacyRef,
10
- } from 'react';
11
- const event = () => {};
12
-
13
- type Props = {
14
- width: number;
15
- height: number;
16
- marginLeft: number;
17
- marginTop: number;
18
- style: Object;
19
- children: ReactChild;
20
- onMouseEnter: ReactEventHandler;
21
- onMouseLeave: ReactEventHandler;
22
- onClick: ReactEventHandler;
23
- onMouseMove: ReactEventHandler;
24
- onMouseOut: ReactEventHandler;
25
- };
26
-
27
- export default memo(
28
- forwardRef(
29
- (
30
- {
31
- width,
32
- height,
33
- marginLeft,
34
- marginTop,
35
- style,
36
- children,
37
- onMouseEnter = event,
38
- onMouseLeave = event,
39
- onClick = event,
40
- onMouseMove = event,
41
- onMouseOut = event,
42
- }: Props,
43
- ref: LegacyRef<SVGSVGElement>
44
- ) => (
45
- <svg
46
- className='__easyv-svg'
47
- width={width}
48
- height={height}
49
- onMouseEnter={onMouseEnter}
50
- onMouseLeave={onMouseLeave}
51
- onMouseOut={onMouseOut}
52
- onClick={onClick}
53
- onMouseMove={onMouseMove}
54
- ref={ref}
55
- style={{ position: 'absolute', width, height, ...style }}
56
- >
57
- <g transform={'translate(' + marginLeft + ', ' + marginTop + ')'}>
58
- {children}
59
- </g>
60
- </svg>
61
- )
62
- )
63
- );
1
+ /**
2
+ * svg外框
3
+ */
4
+ import React, {
5
+ memo,
6
+ forwardRef,
7
+ ReactChild,
8
+ ReactEventHandler,
9
+ LegacyRef,
10
+ } from 'react';
11
+ const event = () => {};
12
+
13
+ type Props = {
14
+ width: number;
15
+ height: number;
16
+ marginLeft: number;
17
+ marginTop: number;
18
+ style: Object;
19
+ children: ReactChild;
20
+ onMouseEnter: ReactEventHandler;
21
+ onMouseLeave: ReactEventHandler;
22
+ onClick: ReactEventHandler;
23
+ onMouseMove: ReactEventHandler;
24
+ onMouseOut: ReactEventHandler;
25
+ };
26
+
27
+ export default memo(
28
+ forwardRef(
29
+ (
30
+ {
31
+ width,
32
+ height,
33
+ marginLeft,
34
+ marginTop,
35
+ style,
36
+ children,
37
+ onMouseEnter = event,
38
+ onMouseLeave = event,
39
+ onClick = event,
40
+ onMouseMove = event,
41
+ onMouseOut = event,
42
+ }: Props,
43
+ ref: LegacyRef<SVGSVGElement>
44
+ ) => (
45
+ <svg
46
+ className='__easyv-svg'
47
+ width={width}
48
+ height={height}
49
+ onMouseEnter={onMouseEnter}
50
+ onMouseLeave={onMouseLeave}
51
+ onMouseOut={onMouseOut}
52
+ onClick={onClick}
53
+ onMouseMove={onMouseMove}
54
+ ref={ref}
55
+ style={{ position: 'absolute', width, height, ...style }}
56
+ >
57
+ <g transform={'translate(' + marginLeft + ', ' + marginTop + ')'}>
58
+ {children}
59
+ </g>
60
+ </svg>
61
+ )
62
+ )
63
+ );