measure-text.js 991 B

123456789101112131415161718192021
  1. import { __spreadArray } from "tslib";
  2. import { isString, memoize, values } from '@antv/util';
  3. import { getCanvasContext } from './context';
  4. /**
  5. * 计算文本在画布中的宽度
  6. * @param text 文本
  7. * @param font 字体
  8. */
  9. export var measureTextWidth = memoize(function (text, font) {
  10. if (font === void 0) { font = {}; }
  11. var fontSize = font.fontSize, _a = font.fontFamily, fontFamily = _a === void 0 ? 'sans-serif' : _a, fontWeight = font.fontWeight, fontStyle = font.fontStyle, fontVariant = font.fontVariant;
  12. var ctx = getCanvasContext();
  13. // @see https://developer.mozilla.org/zh-CN/docs/Web/CSS/font
  14. ctx.font = [fontStyle, fontWeight, fontVariant, "".concat(fontSize, "px"), fontFamily].join(' ');
  15. var metrics = ctx.measureText(isString(text) ? text : '');
  16. return metrics.width;
  17. }, function (text, font) {
  18. if (font === void 0) { font = {}; }
  19. return __spreadArray([text], values(font), true).join('');
  20. });
  21. //# sourceMappingURL=measure-text.js.map