{"version":3,"file":"loadSVGImage.mjs","sources":["../../../../src/scene/text-html/utils/loadSVGImage.ts"],"sourcesContent":["import { type ImageLike } from '../../../environment/ImageLike';\n\n/**\n * This function loads an SVG image into an IImage element.\n * The image can then be uploaded as texture to the GPU.\n * iOS has a bug where embedded fonts are not available immediately after the image loads,\n * so we wait an arbitrary amount of time before resolving the promise.\n * @param image - The image to load the SVG into\n * @param url - The url to load the SVG from\n * @param delay - Whether to delay the load\n * @returns - A promise that resolves when the image has loaded\n * @internal\n */\nexport function loadSVGImage(image: ImageLike, url: string, delay: boolean)\n{\n    return new Promise<void>(async (resolve) =>\n    {\n        // Safari has a known bug where embedded fonts are not available\n        // immediately after the image loads, to compensate we wait an\n        // arbitrary amount of time\n        // @see https://bugs.webkit.org/show_bug.cgi?id=219770\n        if (delay)\n        {\n            await new Promise<void>((resolve) => setTimeout(resolve, 100));\n        }\n\n        image.onload = () =>\n        {\n            resolve();\n        };\n\n        image.src = `data:image/svg+xml;charset=utf8,${encodeURIComponent(url)}`;\n        image.crossOrigin = 'anonymous';\n    });\n}\n"],"names":["resolve"],"mappings":";AAaO,SAAS,YAAA,CAAa,KAAA,EAAkB,GAAA,EAAa,KAAA,EAC5D;AACI,EAAA,OAAO,IAAI,OAAA,CAAc,OAAO,OAAA,KAChC;AAKI,IAAA,IAAI,KAAA,EACJ;AACI,MAAA,MAAM,IAAI,OAAA,CAAc,CAACA,aAAY,UAAA,CAAWA,QAAAA,EAAS,GAAG,CAAC,CAAA;AAAA,IACjE;AAEA,IAAA,KAAA,CAAM,SAAS,MACf;AACI,MAAA,OAAA,EAAQ;AAAA,IACZ,CAAA;AAEA,IAAA,KAAA,CAAM,GAAA,GAAM,CAAA,gCAAA,EAAmC,kBAAA,CAAmB,GAAG,CAAC,CAAA,CAAA;AACtE,IAAA,KAAA,CAAM,WAAA,GAAc,WAAA;AAAA,EACxB,CAAC,CAAA;AACL;;;;"}