{"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;;;;"}