index.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.processOverlap = exports.canProcessOverlap = exports.OverlapUtils = void 0;
  4. var tslib_1 = require("tslib");
  5. var util_1 = require("../../../util");
  6. var autoEllipsis_1 = tslib_1.__importDefault(require("./autoEllipsis"));
  7. var autoHide_1 = tslib_1.__importDefault(require("./autoHide"));
  8. var autoRotate_1 = tslib_1.__importDefault(require("./autoRotate"));
  9. var autoWrap_1 = tslib_1.__importDefault(require("./autoWrap"));
  10. exports.OverlapUtils = new Map([
  11. ['hide', autoHide_1.default],
  12. ['rotate', autoRotate_1.default],
  13. ['ellipsis', autoEllipsis_1.default],
  14. ['wrap', autoWrap_1.default],
  15. ]);
  16. function canProcessOverlap(labels, attr, type) {
  17. if (attr.labelOverlap.length < 1)
  18. return false;
  19. if (type === 'hide')
  20. return !(0, util_1.isInOffscreenGroup)(labels[0]);
  21. if (type === 'rotate')
  22. return !labels.some(function (label) { var _a; return !!((_a = label.attr('transform')) === null || _a === void 0 ? void 0 : _a.includes('rotate')); });
  23. if (type === 'ellipsis' || type === 'wrap')
  24. return labels.filter(function (item) { return item.querySelector('text'); }).length > 1;
  25. return true;
  26. }
  27. exports.canProcessOverlap = canProcessOverlap;
  28. function processOverlap(labels, attr, utils) {
  29. var _a = attr.labelOverlap, labelOverlap = _a === void 0 ? [] : _a;
  30. if (!labelOverlap.length)
  31. return;
  32. labelOverlap.forEach(function (overlapCfg) {
  33. var type = overlapCfg.type;
  34. var util = exports.OverlapUtils.get(type);
  35. if (canProcessOverlap(labels, attr, type))
  36. util === null || util === void 0 ? void 0 : util(labels, overlapCfg, attr, utils);
  37. });
  38. }
  39. exports.processOverlap = processOverlap;
  40. //# sourceMappingURL=index.js.map