padding.js 2.4 KB

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