padding.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { isArray, isNumber } from '@antv/util';
  2. /**
  3. * 把 padding 转换成统一的数组写法
  4. * @param padding
  5. */
  6. export function normalPadding(padding) {
  7. if (isNumber(padding)) {
  8. return [padding, padding, padding, padding];
  9. }
  10. if (isArray(padding)) {
  11. var length_1 = padding.length;
  12. if (length_1 === 1) {
  13. return [padding[0], padding[0], padding[0], padding[0]];
  14. }
  15. if (length_1 === 2) {
  16. return [padding[0], padding[1], padding[0], padding[1]];
  17. }
  18. if (length_1 === 3) {
  19. return [padding[0], padding[1], padding[2], padding[1]];
  20. }
  21. if (length_1 === 4) {
  22. return padding;
  23. }
  24. }
  25. return [0, 0, 0, 0];
  26. }
  27. /**
  28. * 获取调整的 appendPadding
  29. */
  30. export function getAdjustAppendPadding(padding, position, append) {
  31. if (position === void 0) { position = 'bottom'; }
  32. if (append === void 0) { append = 25; }
  33. var currentAppendPadding = normalPadding(padding);
  34. var PADDING = [
  35. position.startsWith('top') ? append : 0,
  36. position.startsWith('right') ? append : 0,
  37. position.startsWith('bottom') ? append : 0,
  38. position.startsWith('left') ? append : 0,
  39. ];
  40. return [
  41. currentAppendPadding[0] + PADDING[0],
  42. currentAppendPadding[1] + PADDING[1],
  43. currentAppendPadding[2] + PADDING[2],
  44. currentAppendPadding[3] + PADDING[3],
  45. ];
  46. }
  47. /**
  48. * 根据图表的 padding 和 appendPadding 计算出图表的最终 padding
  49. * @param array
  50. */
  51. export function resolveAllPadding(paddings) {
  52. // 先把数组里的 padding 全部转换成 normal
  53. var normalPaddings = paddings.map(function (item) { return normalPadding(item); });
  54. var finalPadding = [0, 0, 0, 0];
  55. if (normalPaddings.length > 0) {
  56. finalPadding = finalPadding.map(function (item, index) {
  57. // 有几个 padding 数组就遍历几次,累加
  58. normalPaddings.forEach(function (d, i) {
  59. item += normalPaddings[i][index];
  60. });
  61. return item;
  62. });
  63. }
  64. return finalPadding;
  65. }
  66. //# sourceMappingURL=padding.js.map