measure-text.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. "use strict";
  2. require("core-js/modules/es.regexp.exec");
  3. require("core-js/modules/es.string.split");
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.measureText = measureText;
  8. exports.measureTextHeight = measureTextHeight;
  9. function measureText(font, text) {
  10. var x = 0;
  11. for (var i = 0; i < text.length; i++) {
  12. if (font.chars[text[i]]) {
  13. var kerning = font.kernings[text[i]] && font.kernings[text[i]][text[i + 1]] ? font.kernings[text[i]][text[i + 1]] : 0;
  14. x += (font.chars[text[i]].xadvance || 0) + kerning;
  15. }
  16. }
  17. return x;
  18. }
  19. function measureTextHeight(font, text, maxWidth) {
  20. var words = text.split(' ');
  21. var line = '';
  22. var textTotalHeight = font.common.lineHeight;
  23. for (var n = 0; n < words.length; n++) {
  24. var testLine = line + words[n] + ' ';
  25. var testWidth = measureText(font, testLine);
  26. if (testWidth > maxWidth && n > 0) {
  27. textTotalHeight += font.common.lineHeight;
  28. line = words[n] + ' ';
  29. } else {
  30. line = testLine;
  31. }
  32. }
  33. return textTotalHeight;
  34. }
  35. //# sourceMappingURL=measure-text.js.map