@easyv/charts 1.2.6 → 1.2.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 (91) hide show
  1. package/.babelrc +8 -8
  2. package/.husky/commit-msg +3 -3
  3. package/CHANGELOG.md +18 -18
  4. package/lib/components/AnimateData.js +7 -11
  5. package/lib/components/Axis.js +14 -18
  6. package/lib/components/Background.js +2 -2
  7. package/lib/components/Band.js +4 -8
  8. package/lib/components/BaseLine.js +7 -9
  9. package/lib/components/Brush.js +2 -2
  10. package/lib/components/Carousel.js +8 -15
  11. package/lib/components/CartesianChart.js +7 -11
  12. package/lib/components/Chart.js +6 -9
  13. package/lib/components/ChartContainer.js +4 -8
  14. package/lib/components/ConicalGradient.js +23 -27
  15. package/lib/components/ExtentData.js +4 -7
  16. package/lib/components/FilterData.js +4 -7
  17. package/lib/components/Indicator.js +2 -2
  18. package/lib/components/Label.js +2 -2
  19. package/lib/components/Legend.js +5 -11
  20. package/lib/components/Lighter.js +179 -179
  21. package/lib/components/Line.js +5 -11
  22. package/lib/components/LinearGradient.js +2 -2
  23. package/lib/components/Mapping.js +5 -8
  24. package/lib/components/Marquee.js +5 -5
  25. package/lib/components/PieChart.js +12 -22
  26. package/lib/components/StackData.js +4 -7
  27. package/lib/components/StereoBar.js +4 -8
  28. package/lib/components/TextOverflow.js +5 -5
  29. package/lib/components/Tooltip.js +2 -2
  30. package/lib/components/index.js +49 -49
  31. package/lib/css/index.module.css +41 -41
  32. package/lib/css/piechart.module.css +26 -26
  33. package/lib/element/ConicGradient.js +72 -72
  34. package/lib/formatter/legend.js +2 -2
  35. package/lib/hooks/index.js +14 -14
  36. package/lib/hooks/useAnimateData.js +7 -7
  37. package/lib/hooks/useAxes.js +7 -7
  38. package/lib/hooks/useCarouselAxisX.js +7 -7
  39. package/lib/hooks/useExtentData.js +8 -8
  40. package/lib/hooks/useFilterData.js +8 -8
  41. package/lib/hooks/useStackData.js +8 -10
  42. package/lib/hooks/useTooltip.js +10 -10
  43. package/lib/index.js +2 -6
  44. package/lib/utils/index.js +5 -8
  45. package/package.json +53 -53
  46. package/src/components/AnimateData.tsx +24 -24
  47. package/src/components/Axis.tsx +354 -354
  48. package/src/components/Background.tsx +45 -45
  49. package/src/components/Band.tsx +173 -173
  50. package/src/components/BaseLine.js +76 -76
  51. package/src/components/Brush.js +159 -159
  52. package/src/components/Carousel.tsx +144 -144
  53. package/src/components/Chart.js +99 -99
  54. package/src/components/ChartContainer.tsx +63 -63
  55. package/src/components/ConicalGradient.js +258 -258
  56. package/src/components/ExtentData.js +17 -17
  57. package/src/components/FilterData.js +23 -23
  58. package/src/components/Indicator.js +13 -13
  59. package/src/components/Label.js +206 -206
  60. package/src/components/Legend.js +158 -158
  61. package/src/components/Lighter.jsx +173 -173
  62. package/src/components/Line.js +144 -144
  63. package/src/components/LinearGradient.js +29 -29
  64. package/src/components/Mapping.js +71 -71
  65. package/src/components/Marquee.js +93 -93
  66. package/src/components/PieChart.js +1287 -1288
  67. package/src/components/StackData.js +20 -20
  68. package/src/components/StereoBar.tsx +310 -310
  69. package/src/components/TextOverflow.js +51 -51
  70. package/src/components/Tooltip.js +169 -169
  71. package/src/components/index.js +55 -55
  72. package/src/context/index.js +2 -2
  73. package/src/css/index.module.css +41 -41
  74. package/src/css/piechart.module.css +26 -26
  75. package/src/element/ConicGradient.jsx +55 -55
  76. package/src/element/Line.tsx +33 -33
  77. package/src/element/index.ts +3 -3
  78. package/src/formatter/index.js +1 -1
  79. package/src/formatter/legend.js +90 -90
  80. package/src/hooks/index.js +17 -17
  81. package/src/hooks/useAnimateData.ts +67 -67
  82. package/src/hooks/useAxes.js +144 -144
  83. package/src/hooks/useCarouselAxisX.js +163 -163
  84. package/src/hooks/useExtentData.js +88 -88
  85. package/src/hooks/useFilterData.js +72 -72
  86. package/src/hooks/useStackData.js +100 -100
  87. package/src/hooks/useTooltip.ts +96 -96
  88. package/src/index.js +6 -6
  89. package/src/types/index.d.ts +67 -67
  90. package/src/utils/index.js +714 -714
  91. 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
+ );