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">
1 lines • 2.71 kB
Source Map (JSON)
{"version":3,"file":"fontStringFromTextStyle.mjs","sources":["../../../../../src/scene/text/canvas/utils/fontStringFromTextStyle.ts"],"sourcesContent":["import type { TextStyle } from '../../TextStyle';\n\nconst genericFontFamilies = [\n 'serif',\n 'sans-serif',\n 'monospace',\n 'cursive',\n 'fantasy',\n 'system-ui',\n];\n\n/**\n * Generates a font style string to use for `TextMetrics.measureFont()`.\n * @param style\n * @returns Font style string, for passing to `TextMetrics.measureFont()`\n * @internal\n */\nexport function fontStringFromTextStyle(style: TextStyle): string\n{\n // build canvas api font setting from individual components. Convert a numeric style.fontSize to px\n const fontSizeString = (typeof style.fontSize === 'number') ? `${style.fontSize}px` : style.fontSize;\n\n // Clean-up fontFamily property by quoting each font name\n // this will support font names with spaces\n let fontFamilies: string | string[] = style.fontFamily;\n\n if (!Array.isArray(style.fontFamily))\n {\n fontFamilies = style.fontFamily.split(',');\n }\n\n for (let i = fontFamilies.length - 1; i >= 0; i--)\n {\n // Trim any extra white-space\n let fontFamily = fontFamilies[i].trim();\n\n // Check if font already contains strings\n if (!(/([\\\"\\'])[^\\'\\\"]+\\1/).test(fontFamily) && !genericFontFamilies.includes(fontFamily))\n {\n fontFamily = `\"${fontFamily}\"`;\n }\n (fontFamilies as string[])[i] = fontFamily;\n }\n\n // eslint-disable-next-line max-len\n return `${style.fontStyle} ${style.fontVariant} ${style.fontWeight} ${fontSizeString} ${(fontFamilies as string[]).join(',')}`;\n}\n"],"names":[],"mappings":";AAEA,MAAM,mBAAA,GAAsB;AAAA,EACxB,OAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA;AACJ,CAAA;AAQO,SAAS,wBAAwB,KAAA,EACxC;AAEI,EAAA,MAAM,cAAA,GAAkB,OAAO,KAAA,CAAM,QAAA,KAAa,WAAY,CAAA,EAAG,KAAA,CAAM,QAAQ,CAAA,EAAA,CAAA,GAAO,KAAA,CAAM,QAAA;AAI5F,EAAA,IAAI,eAAkC,KAAA,CAAM,UAAA;AAE5C,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,UAAU,CAAA,EACnC;AACI,IAAA,YAAA,GAAe,KAAA,CAAM,UAAA,CAAW,KAAA,CAAM,GAAG,CAAA;AAAA,EAC7C;AAEA,EAAA,KAAA,IAAS,IAAI,YAAA,CAAa,MAAA,GAAS,CAAA,EAAG,CAAA,IAAK,GAAG,CAAA,EAAA,EAC9C;AAEI,IAAA,IAAI,UAAA,GAAa,YAAA,CAAa,CAAC,CAAA,CAAE,IAAA,EAAK;AAGtC,IAAA,IAAI,CAAE,qBAAsB,IAAA,CAAK,UAAU,KAAK,CAAC,mBAAA,CAAoB,QAAA,CAAS,UAAU,CAAA,EACxF;AACI,MAAA,UAAA,GAAa,IAAI,UAAU,CAAA,CAAA,CAAA;AAAA,IAC/B;AACA,IAAC,YAAA,CAA0B,CAAC,CAAA,GAAI,UAAA;AAAA,EACpC;AAGA,EAAA,OAAO,CAAA,EAAG,KAAA,CAAM,SAAS,CAAA,CAAA,EAAI,MAAM,WAAW,CAAA,CAAA,EAAI,KAAA,CAAM,UAAU,IAAI,cAAc,CAAA,CAAA,EAAK,YAAA,CAA0B,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAChI;;;;"}