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

1 lines 2.88 kB
{"version":3,"file":"extractFontFamilies.mjs","sources":["../../../../src/scene/text-html/utils/extractFontFamilies.ts"],"sourcesContent":["import type { HTMLTextStyle } from '../HTMLTextStyle';\n\n/**\n * Extracts font families from text. It will extract font families from the style, tagStyles and any font families\n * embedded in the text. It should also strip out duplicates as it goes.\n * @param text - The text to extract font families from\n * @param style - The style to extract font families from\n * @returns {string[]} - The font families as an array of strings\n * @internal\n */\nexport function extractFontFamilies(text: string, style: HTMLTextStyle): string[]\n{\n const fontFamily = style.fontFamily;\n const fontFamilies: string[] = [];\n const dedupe: Record<string, boolean> = {};\n\n // first ensure fonts are loaded inline..\n // find any font..\n const regex = /font-family:([^;\"\\s]+)/g;\n\n const matches = text.match(regex);\n\n function addFontFamily(fontFamily: string)\n {\n if (!dedupe[fontFamily])\n {\n fontFamilies.push(fontFamily);\n\n dedupe[fontFamily] = true;\n }\n }\n\n if (Array.isArray(fontFamily))\n {\n for (let i = 0; i < fontFamily.length; i++)\n {\n addFontFamily(fontFamily[i]);\n }\n }\n else\n {\n addFontFamily(fontFamily);\n }\n\n if (matches)\n {\n matches.forEach((match) =>\n {\n const fontFamily = match.split(':')[1].trim();\n\n addFontFamily(fontFamily);\n });\n }\n\n for (const i in style.tagStyles)\n {\n const fontFamily = style.tagStyles[i].fontFamily;\n\n addFontFamily(fontFamily as string);\n }\n\n return fontFamilies;\n}\n"],"names":["fontFamily"],"mappings":";AAUO,SAAS,mBAAA,CAAoB,MAAc,KAAA,EAClD;AACI,EAAA,MAAM,aAAa,KAAA,CAAM,UAAA;AACzB,EAAA,MAAM,eAAyB,EAAC;AAChC,EAAA,MAAM,SAAkC,EAAC;AAIzC,EAAA,MAAM,KAAA,GAAQ,yBAAA;AAEd,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA;AAEhC,EAAA,SAAS,cAAcA,WAAAA,EACvB;AACI,IAAA,IAAI,CAAC,MAAA,CAAOA,WAAU,CAAA,EACtB;AACI,MAAA,YAAA,CAAa,KAAKA,WAAU,CAAA;AAE5B,MAAA,MAAA,CAAOA,WAAU,CAAA,GAAI,IAAA;AAAA,IACzB;AAAA,EACJ;AAEA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,EAC5B;AACI,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,CAAW,QAAQ,CAAA,EAAA,EACvC;AACI,MAAA,aAAA,CAAc,UAAA,CAAW,CAAC,CAAC,CAAA;AAAA,IAC/B;AAAA,EACJ,CAAA,MAEA;AACI,IAAA,aAAA,CAAc,UAAU,CAAA;AAAA,EAC5B;AAEA,EAAA,IAAI,OAAA,EACJ;AACI,IAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,KAAA,KACjB;AACI,MAAA,MAAMA,cAAa,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,EAAE,IAAA,EAAK;AAE5C,MAAA,aAAA,CAAcA,WAAU,CAAA;AAAA,IAC5B,CAAC,CAAA;AAAA,EACL;AAEA,EAAA,KAAA,MAAW,CAAA,IAAK,MAAM,SAAA,EACtB;AACI,IAAA,MAAMA,WAAAA,GAAa,KAAA,CAAM,SAAA,CAAU,CAAC,CAAA,CAAE,UAAA;AAEtC,IAAA,aAAA,CAAcA,WAAoB,CAAA;AAAA,EACtC;AAEA,EAAA,OAAO,YAAA;AACX;;;;"}