UNPKG

pixi.js

Version:

<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">

35 lines (31 loc) 1.37 kB
'use strict'; var HTMLTextRenderData = require('../HTMLTextRenderData.js'); "use strict"; let tempHTMLTextRenderData; function measureHtmlText(text, style, fontStyleCSS, htmlTextRenderData) { htmlTextRenderData || (htmlTextRenderData = tempHTMLTextRenderData || (tempHTMLTextRenderData = new HTMLTextRenderData.HTMLTextRenderData())); const { domElement, styleElement, svgRoot } = htmlTextRenderData; domElement.innerHTML = `<style>${style.cssStyle};</style><div style='padding:0'>${text}</div>`; domElement.setAttribute("style", "transform-origin: top left; display: inline-block"); if (fontStyleCSS) { styleElement.textContent = fontStyleCSS; } document.body.appendChild(svgRoot); let contentWidth = domElement.scrollWidth; let contentHeight = domElement.scrollHeight; svgRoot.remove(); if (style.dropShadow) { const { distance, angle, blur } = style.dropShadow; const shadowOffsetX = Math.abs(Math.round(Math.cos(angle) * distance)); const shadowOffsetY = Math.abs(Math.round(Math.sin(angle) * distance)); contentWidth += shadowOffsetX + blur; contentHeight += shadowOffsetY + blur; } const doublePadding = style.padding * 2; return { width: contentWidth - doublePadding, height: contentHeight - doublePadding }; } exports.measureHtmlText = measureHtmlText; //# sourceMappingURL=measureHtmlText.js.map