graphic.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.renderTag = void 0;
  4. var tslib_1 = require("tslib");
  5. var util_1 = require("@antv/util");
  6. var label_1 = require("./label");
  7. var matrix_1 = require("./matrix");
  8. var util_2 = require("./util");
  9. function renderTag(container, tagCfg) {
  10. var x = tagCfg.x, y = tagCfg.y, content = tagCfg.content, style = tagCfg.style, id = tagCfg.id, name = tagCfg.name, rotate = tagCfg.rotate, maxLength = tagCfg.maxLength, autoEllipsis = tagCfg.autoEllipsis, isVertical = tagCfg.isVertical, ellipsisPosition = tagCfg.ellipsisPosition, background = tagCfg.background;
  11. var tagGroup = container.addGroup({
  12. id: id + "-group",
  13. name: name + "-group",
  14. attrs: {
  15. x: x,
  16. y: y,
  17. }
  18. });
  19. // Text shape
  20. var text = tagGroup.addShape({
  21. type: 'text',
  22. id: id,
  23. name: name,
  24. attrs: tslib_1.__assign({ x: 0, y: 0, text: content }, style),
  25. });
  26. // maxLength 应包含 background 中的 padding 值
  27. var padding = util_2.formatPadding(util_1.get(background, 'padding', 0));
  28. if (maxLength && autoEllipsis) {
  29. var maxTextLength = maxLength - (padding[1] + padding[3]);
  30. // 超出自动省略
  31. label_1.ellipsisLabel(!isVertical, text, maxTextLength, ellipsisPosition);
  32. }
  33. if (background) {
  34. // 渲染文本背景
  35. var backgroundStyle = util_1.get(background, 'style', {});
  36. var _a = text.getCanvasBBox(), minX = _a.minX, minY = _a.minY, width = _a.width, height = _a.height;
  37. var tagBg = tagGroup.addShape('rect', {
  38. id: id + "-bg",
  39. name: id + "-bg",
  40. attrs: tslib_1.__assign({ x: minX - padding[3], y: minY - padding[0], width: width + padding[1] + padding[3], height: height + padding[0] + padding[2] }, backgroundStyle),
  41. });
  42. tagBg.toBack();
  43. }
  44. matrix_1.applyTranslate(tagGroup, x, y);
  45. matrix_1.applyRotate(tagGroup, rotate, x, y);
  46. }
  47. exports.renderTag = renderTag;
  48. //# sourceMappingURL=graphic.js.map