@easyv/charts 1.0.69 → 1.0.73

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 (68) hide show
  1. package/.babelrc +8 -8
  2. package/lib/components/AnimateData.js +2 -2
  3. package/lib/components/Axis.js +15 -12
  4. package/lib/components/Background.js +2 -2
  5. package/lib/components/Band.js +6 -1
  6. package/lib/components/Carousel.js +2 -2
  7. package/lib/components/Chart.js +2 -2
  8. package/lib/components/ConicalGradient.js +21 -21
  9. package/lib/components/Indicator.js +2 -2
  10. package/lib/components/Label.js +13 -3
  11. package/lib/components/Line.js +18 -1
  12. package/lib/components/LinearGradient.js +2 -2
  13. package/lib/components/PieChart.js +2 -2
  14. package/lib/css/index.module.css +41 -41
  15. package/lib/css/piechart.module.css +26 -26
  16. package/lib/formatter/legend.js +1 -1
  17. package/lib/hooks/useAnimateData.js +5 -5
  18. package/lib/hooks/useAxes.js +9 -7
  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/lib/utils/index.js +25 -3
  25. package/package.json +34 -34
  26. package/src/components/AnimateData.tsx +24 -24
  27. package/src/components/Axis.tsx +336 -333
  28. package/src/components/Background.tsx +45 -45
  29. package/src/components/Band.tsx +171 -160
  30. package/src/components/Brush.js +159 -159
  31. package/src/components/Carousel.tsx +144 -144
  32. package/src/components/Chart.js +99 -99
  33. package/src/components/ChartContainer.tsx +63 -63
  34. package/src/components/ConicalGradient.js +258 -258
  35. package/src/components/ExtentData.js +17 -17
  36. package/src/components/FilterData.js +23 -23
  37. package/src/components/Indicator.js +13 -13
  38. package/src/components/Label.js +206 -196
  39. package/src/components/Legend.js +158 -158
  40. package/src/components/Lighter.jsx +162 -162
  41. package/src/components/Line.js +144 -128
  42. package/src/components/LinearGradient.js +29 -29
  43. package/src/components/Mapping.js +71 -71
  44. package/src/components/PieChart.js +1093 -1093
  45. package/src/components/StackData.js +20 -20
  46. package/src/components/StereoBar.tsx +298 -298
  47. package/src/components/Tooltip.js +133 -133
  48. package/src/components/index.js +49 -49
  49. package/src/context/index.js +2 -2
  50. package/src/css/index.module.css +41 -41
  51. package/src/css/piechart.module.css +26 -26
  52. package/src/element/ConicGradient.jsx +55 -55
  53. package/src/element/Line.tsx +33 -33
  54. package/src/element/index.ts +3 -3
  55. package/src/formatter/index.js +1 -1
  56. package/src/formatter/legend.js +90 -90
  57. package/src/hooks/index.js +17 -17
  58. package/src/hooks/useAnimateData.ts +62 -62
  59. package/src/hooks/useAxes.js +144 -143
  60. package/src/hooks/useCarouselAxisX.js +163 -163
  61. package/src/hooks/useExtentData.js +88 -88
  62. package/src/hooks/useFilterData.js +72 -72
  63. package/src/hooks/useStackData.js +100 -100
  64. package/src/hooks/useTooltip.ts +96 -96
  65. package/src/index.js +6 -6
  66. package/src/types/index.d.ts +59 -59
  67. package/src/utils/index.js +692 -672
  68. 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,90 +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
- 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
+ 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
+ <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
+ };