| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.wrapLabels = void 0;
- var util_1 = require("@antv/util");
- var text_1 = require("../../util/text");
- var WRAP_CODE = '\n';
- function wrapLabel(label, limitLength) {
- var text = label.attr('text');
- var labelLength = label.getBBox().width;
- var codeLength = text_1.strLen(text);
- var ellipsised = false;
- if (limitLength < labelLength) {
- var reseveLength = Math.floor((limitLength / labelLength) * codeLength);
- var newText = wrapText(text, reseveLength);
- label.attr('text', newText);
- ellipsised = true;
- }
- return ellipsised;
- }
- function wrapText(str, reseveLength) {
- var breakIndex = 0;
- var rst = '';
- for (var i = 0, index = 0; i < reseveLength;) {
- var charLength = text_1.charAtLength(str, index);
- if (i + charLength <= reseveLength) {
- rst += str[index];
- i += text_1.charAtLength(str, index);
- index++;
- breakIndex = index;
- }
- else {
- break;
- }
- }
- // 根据设计标准,文本折行不能超过两行
- var wrappedText = rst + WRAP_CODE + str.substring(breakIndex, str.length);
- return wrappedText;
- }
- function wrapLabels(labelGroup, limitLength) {
- var children = labelGroup.getChildren();
- var wrapped = false;
- util_1.each(children, function (label) {
- var rst = wrapLabel(label, limitLength);
- wrapped = wrapped || rst;
- });
- return wrapped;
- }
- exports.wrapLabels = wrapLabels;
- //# sourceMappingURL=auto-wrap.js.map
|