{"version":3,"file":"loadSVG.mjs","sources":["../../../../src/loader/parsers/textures/loadSVG.ts"],"sourcesContent":["import { BaseTexture, extensions, ExtensionType, settings, SVGResource, utils } from 'pixijs/core';\nimport { LoaderParserPriority } from '../LoaderParser';\nimport { loadTextures } from './loadTextures';\nimport { createTexture } from './utils/createTexture';\n\nimport type { IBaseTextureOptions, Texture } from 'pixijs/core';\nimport type { Loader } from '../../Loader';\nimport type { LoadAsset } from '../../types';\nimport type { LoaderParser } from '../LoaderParser';\n\n/** Loads SVG's into Textures */\nexport const loadSVG = {\n    extension: {\n        type: ExtensionType.LoadParser,\n        priority: LoaderParserPriority.High,\n    },\n\n    test(url: string): boolean\n    {\n        return (utils.path.extname(url).toLowerCase() === '.svg');\n    },\n\n    async testParse(data: string): Promise<boolean>\n    {\n        return SVGResource.test(data);\n    },\n\n    async parse(asset: string, data: LoadAsset<IBaseTextureOptions>, loader: Loader): Promise<Texture>\n    {\n        const src = new SVGResource(asset, data?.data?.resourceOptions);\n\n        const base = new BaseTexture(src, {\n            resolution: utils.getResolutionOfUrl(asset),\n            ...data?.data,\n        });\n\n        base.resource.src = asset;\n\n        const texture = createTexture(base, loader, asset);\n\n        if (!data?.data?.resourceOptions?.autoLoad)\n        {\n            await src.load();\n        }\n\n        return texture;\n    },\n\n    async load(url: string, _options: LoadAsset): Promise<string>\n    {\n        const response = await settings.ADAPTER.fetch(url);\n\n        return response.text();\n    },\n\n    unload: loadTextures.unload,\n\n} as LoaderParser<Texture | string, IBaseTextureOptions>;\n\nextensions.add(loadSVG);\n"],"names":[],"mappings":";;;;;AAWO,MAAM,OAAU,GAAA;AAAA,EACnB,SAAW,EAAA;AAAA,IACP,MAAM,aAAc,CAAA,UAAA;AAAA,IACpB,UAAU,oBAAqB,CAAA,IAAA;AAAA,GACnC;AAAA,EAEA,KAAK,GACL,EAAA;AACI,IAAA,OAAQ,MAAM,IAAK,CAAA,OAAA,CAAQ,GAAG,CAAA,CAAE,aAAkB,KAAA,MAAA,CAAA;AAAA,GACtD;AAAA,EAEA,MAAM,UAAU,IAChB,EAAA;AACI,IAAO,OAAA,WAAA,CAAY,KAAK,IAAI,CAAA,CAAA;AAAA,GAChC;AAAA,EAEA,MAAM,KAAA,CAAM,KAAe,EAAA,IAAA,EAAsC,MACjE,EAAA;AACI,IAAA,MAAM,MAAM,IAAI,WAAA,CAAY,KAAO,EAAA,IAAA,EAAM,MAAM,eAAe,CAAA,CAAA;AAE9D,IAAM,MAAA,IAAA,GAAO,IAAI,WAAA,CAAY,GAAK,EAAA;AAAA,MAC9B,UAAA,EAAY,KAAM,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAAA,MAC1C,GAAG,IAAM,EAAA,IAAA;AAAA,KACZ,CAAA,CAAA;AAED,IAAA,IAAA,CAAK,SAAS,GAAM,GAAA,KAAA,CAAA;AAEpB,IAAA,MAAM,OAAU,GAAA,aAAA,CAAc,IAAM,EAAA,MAAA,EAAQ,KAAK,CAAA,CAAA;AAEjD,IAAA,IAAI,CAAC,IAAA,EAAM,IAAM,EAAA,eAAA,EAAiB,QAClC,EAAA;AACI,MAAA,MAAM,IAAI,IAAK,EAAA,CAAA;AAAA,KACnB;AAEA,IAAO,OAAA,OAAA,CAAA;AAAA,GACX;AAAA,EAEA,MAAM,IAAK,CAAA,GAAA,EAAa,QACxB,EAAA;AACI,IAAA,MAAM,QAAW,GAAA,MAAM,QAAS,CAAA,OAAA,CAAQ,MAAM,GAAG,CAAA,CAAA;AAEjD,IAAA,OAAO,SAAS,IAAK,EAAA,CAAA;AAAA,GACzB;AAAA,EAEA,QAAQ,YAAa,CAAA,MAAA;AAEzB,EAAA;AAEA,UAAA,CAAW,IAAI,OAAO,CAAA;;;;"}