@easyv/charts 1.3.9 → 1.3.11

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 (74) hide show
  1. package/.babelrc +8 -8
  2. package/.husky/commit-msg +3 -3
  3. package/CHANGELOG.md +18 -18
  4. package/lib/components/Axis.js +10 -10
  5. package/lib/components/Background.js +2 -2
  6. package/lib/components/Band.js +22 -1
  7. package/lib/components/Carousel.js +2 -2
  8. package/lib/components/CartesianChart.js +1 -1
  9. package/lib/components/ConicalGradient.js +21 -21
  10. package/lib/components/Indicator.js +2 -2
  11. package/lib/components/Lighter.js +179 -179
  12. package/lib/components/Line.js +6 -0
  13. package/lib/components/LinearGradient.js +2 -2
  14. package/lib/components/Marquee.js +3 -3
  15. package/lib/components/TextOverflow.js +3 -3
  16. package/lib/css/index.module.css +41 -41
  17. package/lib/css/piechart.module.css +26 -26
  18. package/lib/element/ConicGradient.js +72 -72
  19. package/lib/hooks/useAnimateData.js +5 -5
  20. package/lib/hooks/useAxes.js +5 -5
  21. package/lib/hooks/useCarouselAxisX.js +5 -5
  22. package/lib/hooks/useExtentData.js +6 -6
  23. package/lib/hooks/useFilterData.js +5 -5
  24. package/lib/hooks/useStackData.js +5 -5
  25. package/lib/hooks/useTooltip.js +10 -10
  26. package/lib/utils/index.js +91 -74
  27. package/package.json +54 -54
  28. package/src/components/AnimateData.tsx +24 -24
  29. package/src/components/Axis.tsx +354 -354
  30. package/src/components/Background.tsx +62 -62
  31. package/src/components/Band.tsx +191 -169
  32. package/src/components/BaseLine.js +82 -82
  33. package/src/components/Brush.js +159 -159
  34. package/src/components/Carousel.tsx +144 -144
  35. package/src/components/CartesianChart.js +3 -1
  36. package/src/components/Chart.js +99 -99
  37. package/src/components/ChartContainer.tsx +63 -63
  38. package/src/components/ConicalGradient.js +258 -258
  39. package/src/components/ExtentData.js +17 -17
  40. package/src/components/FilterData.js +23 -23
  41. package/src/components/Indicator.js +13 -13
  42. package/src/components/Label.js +226 -226
  43. package/src/components/Legend.js +158 -158
  44. package/src/components/Lighter.jsx +173 -173
  45. package/src/components/Line.js +150 -145
  46. package/src/components/LinearGradient.js +29 -29
  47. package/src/components/Mapping.js +71 -71
  48. package/src/components/Marquee.js +97 -97
  49. package/src/components/PieChart.js +1278 -1278
  50. package/src/components/StackData.js +16 -16
  51. package/src/components/StereoBar.tsx +307 -307
  52. package/src/components/TextOverflow.js +51 -51
  53. package/src/components/Tooltip.js +169 -169
  54. package/src/components/index.js +55 -55
  55. package/src/context/index.js +2 -2
  56. package/src/css/index.module.css +41 -41
  57. package/src/css/piechart.module.css +26 -26
  58. package/src/element/ConicGradient.jsx +55 -55
  59. package/src/element/Line.tsx +33 -33
  60. package/src/element/index.ts +3 -3
  61. package/src/formatter/index.js +1 -1
  62. package/src/formatter/legend.js +90 -90
  63. package/src/hooks/index.js +17 -17
  64. package/src/hooks/useAnimateData.ts +67 -67
  65. package/src/hooks/useAxes.js +144 -144
  66. package/src/hooks/useCarouselAxisX.js +163 -163
  67. package/src/hooks/useExtentData.js +89 -89
  68. package/src/hooks/useFilterData.js +72 -72
  69. package/src/hooks/useStackData.js +101 -101
  70. package/src/hooks/useTooltip.ts +96 -96
  71. package/src/index.js +6 -6
  72. package/src/types/index.d.ts +67 -67
  73. package/src/utils/index.js +755 -738
  74. package/tsconfig.json +23 -23
@@ -26,8 +26,7 @@ var _server = require("react-dom/server");
26
26
 
27
27
  var _svgPoints = require("svg-points");
28
28
 
29
- var _excluded = ["backgroundSize"],
30
- _excluded2 = ["vote", "value"];
29
+ var _excluded = ["backgroundSize"];
31
30
 
32
31
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
32
 
@@ -408,15 +407,15 @@ function band() {
408
407
  };
409
408
 
410
409
  scale.range = function (_) {
411
- var _ref11, _ref12;
410
+ var _ref11;
412
411
 
413
- return arguments.length ? ((_ref11 = _, _ref12 = (0, _slicedToArray2["default"])(_ref11, 2), r0 = _ref12[0], r1 = _ref12[1], _ref11), r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
412
+ return arguments.length ? ((_ref11 = (0, _slicedToArray2["default"])(_, 2), r0 = _ref11[0], r1 = _ref11[1]), r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
414
413
  };
415
414
 
416
415
  scale.rangeRound = function (_) {
417
- var _ref13, _ref14;
416
+ var _ref12;
418
417
 
419
- return (_ref13 = _, _ref14 = (0, _slicedToArray2["default"])(_ref13, 2), r0 = _ref14[0], r1 = _ref14[1], _ref13), r0 = +r0, r1 = +r1, round = true, rescale();
418
+ return (_ref12 = (0, _slicedToArray2["default"])(_, 2), r0 = _ref12[0], r1 = _ref12[1]), r0 = +r0, r1 = +r1, round = true, rescale();
420
419
  };
421
420
 
422
421
  scale.bandwidth = function () {
@@ -481,14 +480,14 @@ function initRange(domain, range) {
481
480
 
482
481
  var getStacks = function getStacks(series) {
483
482
  var tmp = [];
484
- series.forEach(function (_ref15, name) {
485
- var type = _ref15.type,
486
- stack = _ref15.stack,
487
- yOrZ = _ref15.yOrZ;
488
- var current = tmp.find(function (_ref16) {
489
- var _type = _ref16.type,
490
- _stack = _ref16.stack,
491
- _yOrZ = _ref16.yOrZ;
483
+ series.forEach(function (_ref13, name) {
484
+ var type = _ref13.type,
485
+ stack = _ref13.stack,
486
+ yOrZ = _ref13.yOrZ;
487
+ var current = tmp.find(function (_ref14) {
488
+ var _type = _ref14.type,
489
+ _stack = _ref14.stack,
490
+ _yOrZ = _ref14.yOrZ;
492
491
  return _type == type && stack && _stack == stack && yOrZ == _yOrZ;
493
492
  });
494
493
 
@@ -523,9 +522,9 @@ var getStacks = function getStacks(series) {
523
522
 
524
523
  exports.getStacks = getStacks;
525
524
 
526
- var dataYOrZ = function dataYOrZ(data, _ref17) {
527
- var seriesY = _ref17.y,
528
- seriesZ = _ref17.z;
525
+ var dataYOrZ = function dataYOrZ(data, _ref15) {
526
+ var seriesY = _ref15.y,
527
+ seriesZ = _ref15.z;
529
528
  var tmp = {
530
529
  y: [],
531
530
  z: []
@@ -577,11 +576,11 @@ var resetStacks = function resetStacks(stacks) {
577
576
  exports.resetStacks = resetStacks;
578
577
 
579
578
  var getCurrentStack = function getCurrentStack(stack, stackMap) {
580
- return stackMap.find(function (_ref18) {
581
- var _stack = _ref18.stack,
582
- _type = _ref18.type,
583
- _yOrZ = _ref18.yOrZ,
584
- _s = _ref18.s;
579
+ return stackMap.find(function (_ref16) {
580
+ var _stack = _ref16.stack,
581
+ _type = _ref16.type,
582
+ _yOrZ = _ref16.yOrZ,
583
+ _s = _ref16.s;
585
584
  return _type == stack.type && _stack == stack.stack && _yOrZ == stack.yOrZ && _s.includes(stack.name);
586
585
  });
587
586
  };
@@ -609,10 +608,10 @@ var getBandwidth = function getBandwidth(step, paddingOuter) {
609
608
 
610
609
  exports.getBandwidth = getBandwidth;
611
610
 
612
- var getBandSeriesStepAndWidth = function getBandSeriesStepAndWidth(_ref19) {
613
- var width = _ref19.width,
614
- paddingInner = _ref19.paddingInner,
615
- bandLength = _ref19.bandLength;
611
+ var getBandSeriesStepAndWidth = function getBandSeriesStepAndWidth(_ref17) {
612
+ var width = _ref17.width,
613
+ paddingInner = _ref17.paddingInner,
614
+ bandLength = _ref17.bandLength;
616
615
  var seriesStep = width / (bandLength == 0 ? 1 : bandLength);
617
616
  var seriesWidth = seriesStep * (1 - paddingInner);
618
617
  return {
@@ -623,14 +622,14 @@ var getBandSeriesStepAndWidth = function getBandSeriesStepAndWidth(_ref19) {
623
622
 
624
623
  exports.getBandSeriesStepAndWidth = getBandSeriesStepAndWidth;
625
624
 
626
- var getSeriesInfo = function getSeriesInfo(_ref20) {
627
- var step = _ref20.step,
628
- _ref20$bandLength = _ref20.bandLength,
629
- bandLength = _ref20$bandLength === void 0 ? 1 : _ref20$bandLength,
630
- _ref20$paddingInner = _ref20.paddingInner,
631
- paddingInner = _ref20$paddingInner === void 0 ? 0 : _ref20$paddingInner,
632
- _ref20$paddingOuter = _ref20.paddingOuter,
633
- paddingOuter = _ref20$paddingOuter === void 0 ? 0 : _ref20$paddingOuter;
625
+ var getSeriesInfo = function getSeriesInfo(_ref18) {
626
+ var step = _ref18.step,
627
+ _ref18$bandLength = _ref18.bandLength,
628
+ bandLength = _ref18$bandLength === void 0 ? 1 : _ref18$bandLength,
629
+ _ref18$paddingInner = _ref18.paddingInner,
630
+ paddingInner = _ref18$paddingInner === void 0 ? 0 : _ref18$paddingInner,
631
+ _ref18$paddingOuter = _ref18.paddingOuter,
632
+ paddingOuter = _ref18$paddingOuter === void 0 ? 0 : _ref18$paddingOuter;
634
633
  if (bandLength == 0) return {
635
634
  seriesWidth: step,
636
635
  seriesStep: step,
@@ -767,27 +766,27 @@ var sortPie = function sortPie(data, order) {
767
766
 
768
767
  switch (order) {
769
768
  case '':
770
- _data.sort(function (_ref21, _ref22) {
771
- var a = _ref21.index;
772
- var b = _ref22.index;
769
+ _data.sort(function (_ref19, _ref20) {
770
+ var a = _ref19.index;
771
+ var b = _ref20.index;
773
772
  return (0, _d3v.ascending)(a, b);
774
773
  });
775
774
 
776
775
  break;
777
776
 
778
777
  case 'desc':
779
- _data.sort(function (_ref23, _ref24) {
780
- var a = _ref23.value;
781
- var b = _ref24.value;
778
+ _data.sort(function (_ref21, _ref22) {
779
+ var a = _ref21.value;
780
+ var b = _ref22.value;
782
781
  return (0, _d3v.descending)(a, b);
783
782
  });
784
783
 
785
784
  break;
786
785
 
787
786
  case 'asc':
788
- _data.sort(function (_ref25, _ref26) {
789
- var a = _ref25.value;
790
- var b = _ref26.value;
787
+ _data.sort(function (_ref23, _ref24) {
788
+ var a = _ref23.value;
789
+ var b = _ref24.value;
791
790
  return (0, _d3v.ascending)(a, b);
792
791
  });
793
792
 
@@ -821,43 +820,61 @@ exports.sortPie = sortPie;
821
820
  var getDataWithPercent = function getDataWithPercent() {
822
821
  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
823
822
  var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
824
- var digits = Math.pow(10, precision);
825
- var targetSeats = digits * 100;
826
- var total = (0, _d3v.sum)(data, function (d) {
827
- return d.value;
828
- }) || 1;
829
- var votesPerQuota = data.map(function (d, index) {
830
- return _objectSpread(_objectSpread({}, d), {}, {
831
- vote: Math.round(d.value / total * digits * 100),
832
- index: index
823
+ var objData = [];
824
+
825
+ function getPercentWithPrecision(valueList, idx, precision) {
826
+ if (!valueList[idx]) {
827
+ return 0;
828
+ }
829
+
830
+ var sum = valueList.reduce(function (acc, val) {
831
+ return acc + val.data.y;
832
+ }, 0);
833
+
834
+ if (sum === 0) {
835
+ return 0;
836
+ }
837
+
838
+ var digits = Math.pow(10, precision);
839
+ var votesPerQuota = valueList.map(function (val) {
840
+ return val.data.y / sum * digits * 100;
833
841
  });
834
- });
835
- var currentSum = (0, _d3v.sum)(votesPerQuota, function (d) {
836
- return d.vote;
837
- });
838
- var remainder = targetSeats - currentSum;
839
- votesPerQuota.sort(function (_ref27, _ref28) {
840
- var a = _ref27.value;
841
- var b = _ref28.value;
842
- return a % total - b % total;
843
- });
844
- var tmp = votesPerQuota.map(function (_ref29, index) {
845
- var vote = _ref29.vote,
846
- value = _ref29.value,
847
- data = (0, _objectWithoutProperties2["default"])(_ref29, _excluded2);
848
-
849
- var obj = _objectSpread(_objectSpread({}, data), {}, {
850
- value: value,
851
- percent: (0, _utils2.toFixed)((vote + (value && value != 0 ? remainder : 0)) / digits, precision)
842
+ var targetSeats = digits * 100;
843
+ var seats = votesPerQuota.map(function (votes) {
844
+ return Math.floor(votes);
845
+ });
846
+ var currentSum = seats.reduce(function (acc, val) {
847
+ return acc + val;
848
+ }, 0);
849
+ var remainder = votesPerQuota.map(function (votes, idx) {
850
+ return votes - seats[idx];
852
851
  });
853
852
 
854
- if (value && value != 0) {
855
- remainder = 0;
853
+ while (currentSum < targetSeats) {
854
+ var max = Number.NEGATIVE_INFINITY;
855
+ var maxId = null;
856
+
857
+ for (var i = 0, len = remainder.length; i < len; ++i) {
858
+ if (remainder[i] > max) {
859
+ max = remainder[i];
860
+ maxId = i;
861
+ }
862
+ }
863
+
864
+ ++seats[maxId];
865
+ remainder[maxId] = 0;
866
+ ++currentSum;
856
867
  }
857
868
 
858
- return obj;
869
+ return seats[idx] / digits;
870
+ }
871
+
872
+ data.forEach(function (d, i) {
873
+ objData.push(_objectSpread(_objectSpread({}, d), {}, {
874
+ percent: getPercentWithPrecision(data, i, precision)
875
+ }));
859
876
  });
860
- return tmp;
877
+ return objData;
861
878
  };
862
879
 
863
880
  exports.getDataWithPercent = getDataWithPercent;
package/package.json CHANGED
@@ -1,54 +1,54 @@
1
- {
2
- "name": "@easyv/charts",
3
- "version": "1.3.9",
4
- "description": "",
5
- "main": "lib/index.js",
6
- "scripts": {
7
- "make": "babel src -d lib --extensions .ts,.tsx,.js && cp -r src/css lib",
8
- "prepare": "husky install"
9
- },
10
- "keywords": [],
11
- "author": "",
12
- "license": "ISC",
13
- "devDependencies": {
14
- "@babel/cli": "^7.17.10",
15
- "@babel/core": "^7.17.10",
16
- "@babel/plugin-proposal-class-properties": "^7.16.7",
17
- "@babel/plugin-proposal-export-default-from": "^7.16.7",
18
- "@babel/plugin-transform-runtime": "^7.17.10",
19
- "@babel/preset-env": "^7.17.10",
20
- "@babel/preset-react": "^7.16.7",
21
- "@babel/preset-typescript": "^7.16.7",
22
- "@commitlint/cli": "^17.0.3",
23
- "@commitlint/config-conventional": "^16.2.4",
24
- "@types/d3": "^7.0.0",
25
- "@types/react": "^18.0.12",
26
- "@types/react-dom": "^18.0.5",
27
- "babel-plugin-transform-import-styles": "^0.0.11",
28
- "babel-preset-env": "^1.7.0",
29
- "cz-conventional-changelog": "^3.3.0",
30
- "husky": "^7.0.4",
31
- "load-styles": "^2.0.0",
32
- "standard-version": "^9.3.2"
33
- },
34
- "dependencies": {
35
- "@easyv/utils": "^0.0.45",
36
- "d3v7": "npm:d3@^7.0.0",
37
- "gitignore": "^0.7.0",
38
- "mrm": "^4.0.0",
39
- "popmotion": "^9.3.6",
40
- "react": "^17.0.2",
41
- "svg-path-properties": "^1.0.11",
42
- "svg-points": "^6.0.1"
43
- },
44
- "config": {
45
- "commitizen": {
46
- "path": "./node_modules/cz-conventional-changelog"
47
- }
48
- },
49
- "standard-version": {
50
- "skip": {
51
- "commit": true
52
- }
53
- }
54
- }
1
+ {
2
+ "name": "@easyv/charts",
3
+ "version": "1.3.11",
4
+ "description": "",
5
+ "main": "lib/index.js",
6
+ "scripts": {
7
+ "make": "babel src -d lib --extensions .ts,.tsx,.js && cp -r src/css lib",
8
+ "prepare": "husky install"
9
+ },
10
+ "keywords": [],
11
+ "author": "",
12
+ "license": "ISC",
13
+ "devDependencies": {
14
+ "@babel/cli": "^7.17.10",
15
+ "@babel/core": "^7.17.10",
16
+ "@babel/plugin-proposal-class-properties": "^7.16.7",
17
+ "@babel/plugin-proposal-export-default-from": "^7.16.7",
18
+ "@babel/plugin-transform-runtime": "^7.17.10",
19
+ "@babel/preset-env": "^7.17.10",
20
+ "@babel/preset-react": "^7.16.7",
21
+ "@babel/preset-typescript": "^7.16.7",
22
+ "@commitlint/cli": "^17.0.3",
23
+ "@commitlint/config-conventional": "^16.2.4",
24
+ "@types/d3": "^7.0.0",
25
+ "@types/react": "^18.0.12",
26
+ "@types/react-dom": "^18.0.5",
27
+ "babel-plugin-transform-import-styles": "^0.0.11",
28
+ "babel-preset-env": "^1.7.0",
29
+ "cz-conventional-changelog": "^3.3.0",
30
+ "husky": "^7.0.4",
31
+ "load-styles": "^2.0.0",
32
+ "standard-version": "^9.3.2"
33
+ },
34
+ "dependencies": {
35
+ "@easyv/utils": "^0.0.45",
36
+ "d3v7": "npm:d3@^7.0.0",
37
+ "gitignore": "^0.7.0",
38
+ "mrm": "^4.0.0",
39
+ "popmotion": "^9.3.6",
40
+ "react": "^17.0.2",
41
+ "svg-path-properties": "^1.0.11",
42
+ "svg-points": "^6.0.1"
43
+ },
44
+ "config": {
45
+ "commitizen": {
46
+ "path": "./node_modules/cz-conventional-changelog"
47
+ }
48
+ },
49
+ "standard-version": {
50
+ "skip": {
51
+ "commit": true
52
+ }
53
+ }
54
+ }
@@ -1,24 +1,24 @@
1
- /**
2
- * 用来做图表数据改变(增长)动画(HOC)
3
- */
4
- import React, { memo, ComponentType } from 'react';
5
- import { useAnimateData } from '../hooks';
6
-
7
- export default (Component: ComponentType<any>) =>
8
- memo(
9
- ({
10
- data,
11
- config: { dataAnimation, ...config },
12
- ...rest
13
- }: {
14
- data: DataType[];
15
- config: { dataAnimation: DataAnimation; [key: string]: any };
16
- [key: string]: any;
17
- }) => (
18
- <Component
19
- {...rest}
20
- config={config}
21
- data={useAnimateData(data, dataAnimation)}
22
- />
23
- )
24
- );
1
+ /**
2
+ * 用来做图表数据改变(增长)动画(HOC)
3
+ */
4
+ import React, { memo, ComponentType } from 'react';
5
+ import { useAnimateData } from '../hooks';
6
+
7
+ export default (Component: ComponentType<any>) =>
8
+ memo(
9
+ ({
10
+ data,
11
+ config: { dataAnimation, ...config },
12
+ ...rest
13
+ }: {
14
+ data: DataType[];
15
+ config: { dataAnimation: DataAnimation; [key: string]: any };
16
+ [key: string]: any;
17
+ }) => (
18
+ <Component
19
+ {...rest}
20
+ config={config}
21
+ data={useAnimateData(data, dataAnimation)}
22
+ />
23
+ )
24
+ );