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">

33 lines (30 loc) 1.32 kB
import { HTMLTextRenderData } from '../HTMLTextRenderData.mjs'; "use strict"; let tempHTMLTextRenderData; function measureHtmlText(text, style, fontStyleCSS, htmlTextRenderData) { htmlTextRenderData || (htmlTextRenderData = tempHTMLTextRenderData || (tempHTMLTextRenderData = new 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 }; } export { measureHtmlText }; //# sourceMappingURL=measureHtmlText.mjs.map