utils.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.isAllZero = exports.adaptOffset = exports.getTotalValue = void 0;
  4. var util_1 = require("@antv/util");
  5. var utils_1 = require("../../utils");
  6. /**
  7. * 获取总计值
  8. * @param data
  9. * @param field
  10. */
  11. function getTotalValue(data, field) {
  12. var total = null;
  13. (0, util_1.each)(data, function (item) {
  14. if (typeof item[field] === 'number') {
  15. total += item[field];
  16. }
  17. });
  18. return total;
  19. }
  20. exports.getTotalValue = getTotalValue;
  21. /**
  22. * pie label offset adaptor
  23. */
  24. function adaptOffset(type, offset) {
  25. var defaultOffset;
  26. switch (type) {
  27. case 'inner':
  28. defaultOffset = '-30%';
  29. if ((0, util_1.isString)(offset) && offset.endsWith('%')) {
  30. return parseFloat(offset) * 0.01 > 0 ? defaultOffset : offset;
  31. }
  32. return offset < 0 ? offset : defaultOffset;
  33. case 'outer':
  34. defaultOffset = 12;
  35. if ((0, util_1.isString)(offset) && offset.endsWith('%')) {
  36. return parseFloat(offset) * 0.01 < 0 ? defaultOffset : offset;
  37. }
  38. return offset > 0 ? offset : defaultOffset;
  39. default:
  40. return offset;
  41. }
  42. }
  43. exports.adaptOffset = adaptOffset;
  44. /**
  45. * 判断数据是否全部为 0
  46. * @param data
  47. * @param angleField
  48. */
  49. function isAllZero(data, angleField) {
  50. return (0, util_1.every)((0, utils_1.processIllegalData)(data, angleField), function (d) { return d[angleField] === 0; });
  51. }
  52. exports.isAllZero = isAllZero;
  53. //# sourceMappingURL=utils.js.map