{"version":3,"file":"GifAsset.mjs","sources":["../../src/gif/GifAsset.ts"],"sourcesContent":["import { DOMAdapter } from '../environment/adapter';\nimport { ExtensionType } from '../extensions/Extensions';\nimport { path } from '../utils/path';\nimport { type GifBufferOptions, GifSource } from './GifSource';\n\nimport type { AssetExtension } from '../assets/AssetExtension';\n\n/**\n * Handle the loading of GIF images. Registering this loader plugin will\n * load all `.gif` images as an ArrayBuffer and transform into an\n * GifSource object.\n * @category gif\n * @advanced\n */\nconst GifAsset = {\n extension: ExtensionType.Asset,\n detection: {\n test: async () => true,\n add: async (formats) => [...formats, 'gif'],\n remove: async (formats) => formats.filter((format) => format !== 'gif'),\n },\n loader: {\n /** used for deprecation purposes */\n name: 'gifLoader',\n id: 'gif',\n test: (url) => path.extname(url) === '.gif' || url.startsWith('data:image/gif'),\n load: async (url, asset) =>\n {\n const response = await DOMAdapter.get().fetch(url);\n const buffer = await response.arrayBuffer();\n\n return GifSource.from(buffer, asset?.data);\n },\n unload: async (asset) =>\n {\n asset.destroy();\n },\n }\n} as AssetExtension;\n\nexport { GifAsset };\n"],"names":[],"mappings":";;;;;;AAcA,MAAM,QAAW,GAAA;AAAA,EACb,WAAW,aAAc,CAAA,KAAA;AAAA,EACzB,SAAW,EAAA;AAAA,IACP,MAAM,YAAY,IAAA;AAAA,IAClB,KAAK,OAAO,OAAA,KAAY,CAAC,GAAG,SAAS,KAAK,CAAA;AAAA,IAC1C,MAAA,EAAQ,OAAO,OAAY,KAAA,OAAA,CAAQ,OAAO,CAAC,MAAA,KAAW,WAAW,KAAK,CAAA;AAAA,GAC1E;AAAA,EACA,MAAQ,EAAA;AAAA;AAAA,IAEJ,IAAM,EAAA,WAAA;AAAA,IACN,EAAI,EAAA,KAAA;AAAA,IACJ,IAAA,EAAM,CAAC,GAAA,KAAQ,IAAK,CAAA,OAAA,CAAQ,GAAG,CAAM,KAAA,MAAA,IAAU,GAAI,CAAA,UAAA,CAAW,gBAAgB,CAAA;AAAA,IAC9E,IAAA,EAAM,OAAO,GAAA,EAAK,KAClB,KAAA;AACI,MAAA,MAAM,WAAW,MAAM,UAAA,CAAW,GAAI,EAAA,CAAE,MAAM,GAAG,CAAA,CAAA;AACjD,MAAM,MAAA,MAAA,GAAS,MAAM,QAAA,CAAS,WAAY,EAAA,CAAA;AAE1C,MAAA,OAAO,SAAU,CAAA,IAAA,CAAK,MAAQ,EAAA,KAAA,EAAO,IAAI,CAAA,CAAA;AAAA,KAC7C;AAAA,IACA,MAAA,EAAQ,OAAO,KACf,KAAA;AACI,MAAA,KAAA,CAAM,OAAQ,EAAA,CAAA;AAAA,KAClB;AAAA,GACJ;AACJ;;;;"}