@easyv/charts 1.0.62 → 1.0.66

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 (65) hide show
  1. package/.babelrc +8 -8
  2. package/lib/components/AnimateData.js +2 -2
  3. package/lib/components/Axis.js +13 -13
  4. package/lib/components/Background.js +2 -2
  5. package/lib/components/Carousel.js +2 -2
  6. package/lib/components/Chart.js +2 -2
  7. package/lib/components/ConicalGradient.js +21 -21
  8. package/lib/components/Indicator.js +2 -2
  9. package/lib/components/Label.js +8 -3
  10. package/lib/components/LinearGradient.js +2 -2
  11. package/lib/components/Tooltip.js +0 -1
  12. package/lib/css/index.module.css +41 -41
  13. package/lib/css/piechart.module.css +26 -26
  14. package/lib/formatter/legend.js +7 -2
  15. package/lib/hooks/useAnimateData.js +5 -5
  16. package/lib/hooks/useAxes.js +5 -5
  17. package/lib/hooks/useCarouselAxisX.js +5 -5
  18. package/lib/hooks/useExtentData.js +6 -6
  19. package/lib/hooks/useFilterData.js +5 -5
  20. package/lib/hooks/useStackData.js +5 -5
  21. package/lib/hooks/useTooltip.js +10 -10
  22. package/package.json +34 -34
  23. package/src/components/AnimateData.tsx +24 -24
  24. package/src/components/Axis.tsx +333 -333
  25. package/src/components/Background.tsx +45 -45
  26. package/src/components/Band.tsx +160 -160
  27. package/src/components/Brush.js +159 -159
  28. package/src/components/Carousel.tsx +144 -144
  29. package/src/components/Chart.js +99 -99
  30. package/src/components/ChartContainer.tsx +63 -63
  31. package/src/components/ConicalGradient.js +258 -258
  32. package/src/components/ExtentData.js +17 -17
  33. package/src/components/FilterData.js +23 -23
  34. package/src/components/Indicator.js +13 -13
  35. package/src/components/Label.js +196 -193
  36. package/src/components/Legend.js +158 -158
  37. package/src/components/Lighter.jsx +162 -162
  38. package/src/components/Line.js +126 -126
  39. package/src/components/LinearGradient.js +29 -29
  40. package/src/components/Mapping.js +71 -71
  41. package/src/components/PieChart.js +1093 -1093
  42. package/src/components/StackData.js +20 -20
  43. package/src/components/StereoBar.tsx +298 -298
  44. package/src/components/Tooltip.js +133 -134
  45. package/src/components/index.js +49 -49
  46. package/src/context/index.js +2 -2
  47. package/src/css/index.module.css +41 -41
  48. package/src/css/piechart.module.css +26 -26
  49. package/src/element/ConicGradient.jsx +55 -55
  50. package/src/element/Line.tsx +33 -33
  51. package/src/element/index.ts +3 -3
  52. package/src/formatter/index.js +1 -1
  53. package/src/formatter/legend.js +90 -87
  54. package/src/hooks/index.js +17 -17
  55. package/src/hooks/useAnimateData.ts +62 -62
  56. package/src/hooks/useAxes.js +143 -143
  57. package/src/hooks/useCarouselAxisX.js +163 -163
  58. package/src/hooks/useExtentData.js +88 -88
  59. package/src/hooks/useFilterData.js +72 -72
  60. package/src/hooks/useStackData.js +100 -100
  61. package/src/hooks/useTooltip.ts +96 -96
  62. package/src/index.js +6 -6
  63. package/src/types/index.d.ts +59 -59
  64. package/src/utils/index.js +640 -640
  65. package/tsconfig.json +22 -22
@@ -1,33 +1,33 @@
1
- import React from 'react';
2
-
3
- type Props = {
4
- config: ChartLine;
5
- x1: number;
6
- x2: number;
7
- y1: number;
8
- y2: number;
9
- className: string;
10
- };
11
-
12
- export default ({
13
- config: { show, color, lineWidth, strokeDasharray },
14
- x1,
15
- x2,
16
- y1,
17
- y2,
18
- className,
19
- }: Props) => {
20
- if (!show) return null;
21
- return (
22
- <line
23
- className={className}
24
- x1={x1}
25
- x2={x2}
26
- y1={y1}
27
- y2={y2}
28
- stroke={color}
29
- strokeWidth={lineWidth}
30
- strokeDasharray={strokeDasharray}
31
- />
32
- );
33
- };
1
+ import React from 'react';
2
+
3
+ type Props = {
4
+ config: ChartLine;
5
+ x1: number;
6
+ x2: number;
7
+ y1: number;
8
+ y2: number;
9
+ className: string;
10
+ };
11
+
12
+ export default ({
13
+ config: { show, color, lineWidth, strokeDasharray },
14
+ x1,
15
+ x2,
16
+ y1,
17
+ y2,
18
+ className,
19
+ }: Props) => {
20
+ if (!show) return null;
21
+ return (
22
+ <line
23
+ className={className}
24
+ x1={x1}
25
+ x2={x2}
26
+ y1={y1}
27
+ y2={y2}
28
+ stroke={color}
29
+ strokeWidth={lineWidth}
30
+ strokeDasharray={strokeDasharray}
31
+ />
32
+ );
33
+ };
@@ -1,3 +1,3 @@
1
- import Line from './Line';
2
-
3
- export { Line };
1
+ import Line from './Line';
2
+
3
+ export { Line };
@@ -1 +1 @@
1
- export * from './legend';
1
+ export * from './legend';
@@ -1,87 +1,90 @@
1
- import css from '../css/index.module.css';
2
- import { getFontStyle } from '../utils';
3
- export const pieLegendFormatter = (
4
- { displayName, data, percent, series: { color: seriesColor, icon="" } },
5
- {
6
- name: { show: showName, font: nameFont },
7
- value: {
8
- show: showValue,
9
- font: valueFont,
10
- sameColor: valueSameColor,
11
- gap: valueGap,
12
- suffix: {
13
- show: showSuffix,
14
- text,
15
- fontSize,
16
- translate: { x, y },
17
- },
18
- },
19
- percent: {
20
- show: showPercent,
21
- font: percentFont,
22
- sameColor: percentSameColor,
23
- gap: percentGap,
24
- },
25
- }
26
- ) => {
27
- const {
28
- type: seriesColorType,
29
- pure,
30
- linear: { stops },
31
- } = seriesColor;
32
-
33
- const _color = seriesColorType == 'pure' ? pure : stops[0].color;
34
- return (
35
- <>
36
- {icon &&<span style={{ ...icon, marginRight: icon.marginRight }} />}
37
- <span
38
- className={
39
- showName && showValue && showPercent
40
- ? css.showAllStyle
41
- : css.notShowAllStyle
42
- }
43
- >
44
- {showName && (
45
- <span style={{ paddingLeft: 5, ...getFontStyle(nameFont), whiteSpace:"nowrap" }}>
46
- {displayName}
47
- </span>
48
- )}
49
- {showValue && (
50
- <span
51
- style={{
52
- ...getFontStyle(valueFont),
53
- marginLeft: valueGap,
54
- display: 'flex',
55
- color: valueSameColor ? _color : valueFont.color,
56
- alignItems: 'center',
57
- justifyContent: 'flex-start',
58
- }}
59
- >
60
- {showValue && <span>{data.y}</span>}
61
- {showSuffix && (
62
- <span
63
- style={{
64
- fontSize,
65
- transform: 'translate3d(' + x + 'px, ' + y + 'px, 0px)',
66
- }}
67
- >
68
- {text}
69
- </span>
70
- )}
71
- </span>
72
- )}
73
- {showPercent && (
74
- <span
75
- style={{
76
- ...getFontStyle(percentFont),
77
- marginLeft: percentGap,
78
- color: percentSameColor ? _color : percentFont.color,
79
- }}
80
- >
81
- {percent + '%'}
82
- </span>
83
- )}
84
- </span>
85
- </>
86
- );
87
- };
1
+ import css from '../css/index.module.css';
2
+ import { getFontStyle } from '../utils';
3
+ export const pieLegendFormatter = (
4
+ { displayName, data, percent, series: { color: seriesColor, icon="" } },
5
+ {
6
+ name: { show: showName, font: nameFont },
7
+ value: {
8
+ show: showValue,
9
+ font: valueFont,
10
+ sameColor: valueSameColor,
11
+ gap: valueGap,
12
+ suffix: {
13
+ show: showSuffix,
14
+ text,
15
+ fontSize,
16
+ translate: { x, y },
17
+ },
18
+ },
19
+ percent: {
20
+ show: showPercent,
21
+ font: percentFont,
22
+ sameColor: percentSameColor,
23
+ gap: percentGap,
24
+ },
25
+ }
26
+ ) => {
27
+ const {
28
+ type: seriesColorType,
29
+ pure,
30
+ linear: { stops },
31
+ } = seriesColor;
32
+
33
+ const _color = seriesColorType == 'pure' ? pure : stops[0].color;
34
+ return (
35
+ <>
36
+ {icon &&<span style={{ ...icon, marginRight: icon.marginRight }} />}
37
+ <span
38
+ className={
39
+ showName && showValue && showPercent
40
+ ? css.showAllStyle
41
+ : css.notShowAllStyle
42
+ }
43
+ >
44
+ {showName && (
45
+ <span style={{ paddingLeft: 5, ...getFontStyle(nameFont), whiteSpace:"nowrap" }}>
46
+ {displayName}
47
+ </span>
48
+ )}
49
+ {showValue && (
50
+ <span
51
+ style={{
52
+ whiteSpace:"nowrap",
53
+ ...getFontStyle(valueFont),
54
+ marginLeft: valueGap,
55
+ display: 'flex',
56
+ color: valueSameColor ? _color : valueFont.color,
57
+ alignItems: 'center',
58
+ justifyContent: 'flex-start',
59
+ }}
60
+ >
61
+ {showValue && <span>{data.y}</span>}
62
+ {showSuffix && (
63
+ <span
64
+ style={{
65
+ whiteSpace:"nowrap",
66
+ fontSize,
67
+ transform: 'translate3d(' + x + 'px, ' + y + 'px, 0px)',
68
+ }}
69
+ >
70
+ {text}
71
+ </span>
72
+ )}
73
+ </span>
74
+ )}
75
+ {showPercent && (
76
+ <span
77
+ style={{
78
+ whiteSpace:"nowrap",
79
+ ...getFontStyle(percentFont),
80
+ marginLeft: percentGap,
81
+ color: percentSameColor ? _color : percentFont.color,
82
+ }}
83
+ >
84
+ {percent + '%'}
85
+ </span>
86
+ )}
87
+ </span>
88
+ </>
89
+ );
90
+ };
@@ -1,17 +1,17 @@
1
- import useFilterData from './useFilterData';
2
- import useStackData from './useStackData';
3
- import useAxes from './useAxes';
4
- import useTooltip from './useTooltip';
5
- import useAnimateData from './useAnimateData';
6
- import useCarouselAxisX from './useCarouselAxisX';
7
- import useExtentData from './useExtentData';
8
-
9
- export {
10
- useFilterData,
11
- useStackData,
12
- useAxes,
13
- useTooltip,
14
- useAnimateData,
15
- useCarouselAxisX,
16
- useExtentData,
17
- };
1
+ import useFilterData from './useFilterData';
2
+ import useStackData from './useStackData';
3
+ import useAxes from './useAxes';
4
+ import useTooltip from './useTooltip';
5
+ import useAnimateData from './useAnimateData';
6
+ import useCarouselAxisX from './useCarouselAxisX';
7
+ import useExtentData from './useExtentData';
8
+
9
+ export {
10
+ useFilterData,
11
+ useStackData,
12
+ useAxes,
13
+ useTooltip,
14
+ useAnimateData,
15
+ useCarouselAxisX,
16
+ useExtentData,
17
+ };
@@ -1,62 +1,62 @@
1
- import { useEffect, useState } from 'react';
2
- import { animate, linear } from 'popmotion';
3
-
4
- /**
5
- * 图表数据动画
6
- * @param {Array} data data列表
7
- * @param {boolean} dataAnimation 是否开启数据增长动画
8
- * @returns 改变后的数据
9
- */
10
-
11
- export default (data: DataType[], dataAnimation: boolean) => {
12
- const [animateData, setAnimateData] = useState<DataType[]>([]);
13
-
14
- useEffect(() => {
15
- let animateRef: any = null;
16
- if (dataAnimation && data.length) {
17
- animateRef = animate({
18
- autoplay: true,
19
- repeat: 0,
20
- from: 0,
21
- to: 1,
22
- duration: 500,
23
- ease: linear,
24
- onUpdate: (v: number) => {
25
- setAnimateData((oldData: DataType[]) => {
26
- const oldLength = oldData.length;
27
- const newLength = data.length;
28
- if (oldLength >= newLength) {
29
- return oldData.map(({ y }: DataType, i: number) => {
30
- const current: DataType = data[i] || { y: 0 };
31
- const delta: number = current.y - y;
32
- return {
33
- ...current,
34
- y: Math.floor(y + delta * v),
35
- };
36
- });
37
- } else {
38
- return data.map((current: DataType, i: number) => {
39
- const oldCurrent: DataType = oldData[i] || { y: 0 };
40
- const delta = oldCurrent.y - current.y;
41
- return {
42
- ...current,
43
- y: Math.floor(oldCurrent.y + delta * v),
44
- };
45
- });
46
- }
47
- });
48
- },
49
- onComplete: () => {
50
- setAnimateData(data);
51
- },
52
- });
53
- } else {
54
- setAnimateData(data);
55
- }
56
- return () => {
57
- animateRef && animateRef.stop();
58
- };
59
- }, [data, dataAnimation]);
60
-
61
- return animateData;
62
- };
1
+ import { useEffect, useState } from 'react';
2
+ import { animate, linear } from 'popmotion';
3
+
4
+ /**
5
+ * 图表数据动画
6
+ * @param {Array} data data列表
7
+ * @param {boolean} dataAnimation 是否开启数据增长动画
8
+ * @returns 改变后的数据
9
+ */
10
+
11
+ export default (data: DataType[], dataAnimation: boolean) => {
12
+ const [animateData, setAnimateData] = useState<DataType[]>([]);
13
+
14
+ useEffect(() => {
15
+ let animateRef: any = null;
16
+ if (dataAnimation && data.length) {
17
+ animateRef = animate({
18
+ autoplay: true,
19
+ repeat: 0,
20
+ from: 0,
21
+ to: 1,
22
+ duration: 500,
23
+ ease: linear,
24
+ onUpdate: (v: number) => {
25
+ setAnimateData((oldData: DataType[]) => {
26
+ const oldLength = oldData.length;
27
+ const newLength = data.length;
28
+ if (oldLength >= newLength) {
29
+ return oldData.map(({ y }: DataType, i: number) => {
30
+ const current: DataType = data[i] || { y: 0 };
31
+ const delta: number = current.y - y;
32
+ return {
33
+ ...current,
34
+ y: Math.floor(y + delta * v),
35
+ };
36
+ });
37
+ } else {
38
+ return data.map((current: DataType, i: number) => {
39
+ const oldCurrent: DataType = oldData[i] || { y: 0 };
40
+ const delta = oldCurrent.y - current.y;
41
+ return {
42
+ ...current,
43
+ y: Math.floor(oldCurrent.y + delta * v),
44
+ };
45
+ });
46
+ }
47
+ });
48
+ },
49
+ onComplete: () => {
50
+ setAnimateData(data);
51
+ },
52
+ });
53
+ } else {
54
+ setAnimateData(data);
55
+ }
56
+ return () => {
57
+ animateRef && animateRef.stop();
58
+ };
59
+ }, [data, dataAnimation]);
60
+
61
+ return animateData;
62
+ };