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 • 33.9 kB
Source Map (JSON)
{"version":3,"file":"ExtractSystem.mjs","sources":["../../../../../src/rendering/renderers/shared/extract/ExtractSystem.ts"],"sourcesContent":["import { DOMAdapter } from '../../../../environment/adapter';\nimport { type ImageLike } from '../../../../environment/ImageLike';\nimport { ExtensionType } from '../../../../extensions/Extensions';\nimport { Container } from '../../../../scene/container/Container';\nimport { Texture } from '../texture/Texture';\n\nimport type { ColorSource } from '../../../../color/Color';\nimport type { ICanvas } from '../../../../environment/canvas/ICanvas';\nimport type { Rectangle } from '../../../../maths/shapes/Rectangle';\nimport type { Renderer } from '../../types';\nimport type { System } from '../system/System';\nimport type { GetPixelsOutput } from '../texture/GenerateCanvas';\nimport type { GenerateTextureOptions } from './GenerateTextureSystem';\n\nconst imageTypes = {\n png: 'image/png',\n jpg: 'image/jpeg',\n webp: 'image/webp',\n};\n\ntype Formats = keyof typeof imageTypes;\n\n/**\n * Options for creating an image from a renderer.\n * Controls the output format and quality of extracted images.\n * @example\n * ```ts\n * // Extract as PNG (default)\n * const pngImage = await renderer.extract.image({\n * target: sprite,\n * format: 'png'\n * });\n *\n * // Extract as JPEG with quality setting\n * const jpgImage = await renderer.extract.image({\n * target: sprite,\n * format: 'jpg',\n * quality: 0.8\n * });\n *\n * // Extract as WebP for better compression\n * const webpImage = await renderer.extract.image({\n * target: sprite,\n * format: 'webp',\n * quality: 0.9\n * });\n * ```\n * @category rendering\n * @advanced\n */\nexport interface ImageOptions\n{\n /**\n * The format of the extracted image.\n * - 'png': Lossless format, best for images with text or sharp edges\n * - 'jpg': Lossy format, smaller file size, good for photos\n * - 'webp': Modern format with better compression\n * @example\n * ```ts\n * // Extract as PNG\n * const pngImage = await renderer.extract.image({\n * target: sprite,\n * format: 'png'\n * });\n * // Extract as JPEG\n * const jpgImage = await renderer.extract.image({\n * target: sprite,\n * format: 'jpg',\n * });\n * ```\n * @default 'png'\n */\n format?: Formats;\n\n /**\n * The quality of the extracted image, between 0 and 1.\n * Only applies to lossy formats (jpg, webp).\n * - 1: Maximum quality\n * - 0: Maximum compression\n * @example\n * ```ts\n * // Extract as JPEG with 80% quality\n * const jpgImage = await renderer.extract.image({\n * target: sprite,\n * format: 'jpg',\n * quality: 0.8\n * });\n * // Extract as WebP with 90% quality\n * const webpImage = await renderer.extract.image({\n * target: sprite,\n * format: 'webp',\n * quality: 0.9\n * });\n * ```\n * @default 1\n */\n quality?: number;\n}\n\n/**\n * Options for extracting content from a renderer.\n * These options control how content is extracted and processed from the renderer.\n * @example\n * ```ts\n * // Basic extraction\n * const pixels = renderer.extract.pixels({\n * target: sprite,\n * });\n *\n * // Extract with custom region and resolution\n * const canvas = renderer.extract.canvas({\n * target: container,\n * frame: new Rectangle(0, 0, 100, 100),\n * resolution: 2,\n * });\n *\n * // Extract with background color and anti-aliasing\n * const image = await renderer.extract.image({\n * target: graphics,\n * clearColor: '#ff0000',\n * antialias: true\n * });\n * ```\n * @category rendering\n * @advanced\n */\nexport interface BaseExtractOptions\n{\n /**\n * The target to extract. Can be a Container or Texture.\n * @example\n * ```ts\n * // Extract from a sprite\n * const sprite = new Sprite(texture);\n * renderer.extract.pixels({ target: sprite });\n *\n * // Extract from a texture directly\n * renderer.extract.pixels({ target: texture });\n * ```\n */\n target: Container | Texture;\n\n /**\n * The region of the target to extract. If not specified, extracts the entire target.\n * @example\n * ```ts\n * // Extract a specific region\n * renderer.extract.canvas({\n * target: sprite,\n * frame: new Rectangle(10, 10, 100, 100)\n * });\n * ```\n */\n frame?: Rectangle;\n\n /**\n * The resolution of the extracted content. Higher values create sharper images.\n * @default 1\n * @example\n * ```ts\n * // Extract at 2x resolution for retina displays\n * renderer.extract.image({\n * target: sprite,\n * resolution: 2\n * });\n * ```\n */\n resolution?: number;\n\n /**\n * The color used to clear the extracted content before rendering.\n * Can be a hex number, string, or array of numbers.\n * @example\n * ```ts\n * // Clear with red background\n * renderer.extract.canvas({\n * target: sprite,\n * clearColor: '#ff0000'\n * });\n *\n * // Clear with semi-transparent black\n * renderer.extract.canvas({\n * target: sprite,\n * clearColor: [0, 0, 0, 0.5]\n * });\n * ```\n */\n clearColor?: ColorSource;\n\n /**\n * Whether to enable anti-aliasing during extraction.\n * Improves quality but may affect performance.\n * @default false\n * @example\n * ```ts\n * // Enable anti-aliasing for smoother edges\n * renderer.extract.image({\n * target: graphics,\n * antialias: true\n * });\n * ```\n */\n antialias?: boolean;\n}\n/**\n * Options for extracting an HTMLImage from the renderer.\n * Combines base extraction options with image-specific settings.\n * @example\n * ```ts\n * // Basic PNG extraction\n * const image = await renderer.extract.image({\n * target: sprite,\n * format: 'png'\n * });\n *\n * // High-quality JPEG with custom region\n * const image = await renderer.extract.image({\n * target: container,\n * format: 'jpg',\n * quality: 0.9,\n * frame: new Rectangle(0, 0, 100, 100),\n * resolution: 2\n * });\n *\n * // WebP with background and anti-aliasing\n * const image = await renderer.extract.image({\n * target: graphics,\n * format: 'webp',\n * quality: 0.8,\n * clearColor: '#ff0000',\n * antialias: true\n * });\n * ```\n *\n * Combines all options from:\n * - {@link BaseExtractOptions} for basic extraction settings\n * - {@link ImageOptions} for image format and quality settings\n *\n * Common use cases:\n * - Capturing game screenshots\n * - Saving rendered content\n * - Creating image thumbnails\n * - Exporting canvas content\n * @see {@link ExtractSystem.image} For the method that uses these options\n * @see {@link ExtractSystem.base64} For base64 encoding\n * @category rendering\n * @advanced\n * @interface\n */\nexport type ExtractImageOptions = BaseExtractOptions & ImageOptions;\n/**\n * Options for extracting and downloading content from a renderer.\n * Combines base extraction options with download-specific settings.\n * @example\n * ```ts\n * // Basic download with default filename\n * renderer.extract.download({\n * target: sprite\n * });\n *\n * // Download with custom filename and region\n * renderer.extract.download({\n * target: container,\n * filename: 'screenshot.png',\n * frame: new Rectangle(0, 0, 100, 100)\n * });\n *\n * // Download with high resolution and background\n * renderer.extract.download({\n * target: stage,\n * filename: 'hd-capture.png',\n * resolution: 2,\n * clearColor: '#ff0000'\n * });\n *\n * // Download with anti-aliasing\n * renderer.extract.download({\n * target: graphics,\n * filename: 'smooth.png',\n * antialias: true\n * });\n * ```\n *\n * Combines all options from:\n * - {@link BaseExtractOptions} for basic extraction settings\n * - Additional download-specific options\n *\n * Common use cases:\n * - Saving game screenshots\n * - Exporting rendered content\n * - Creating downloadable assets\n * - Saving canvas state\n * @see {@link ExtractSystem.download} For the method that uses these options\n * @see {@link ExtractSystem.image} For creating images without download\n * @category rendering\n * @advanced\n * @interface\n */\nexport type ExtractDownloadOptions = BaseExtractOptions & {\n /**\n * The filename to use when downloading the content.\n * Should include the desired file extension (e.g., .png).\n * @default 'image.png'\n * @example\n * ```ts\n * renderer.extract.download({\n * target: sprite,\n * filename: 'my-screenshot.png'\n * });\n * ```\n */\n filename: string;\n};\n/**\n * Options for extracting content from a renderer. Represents a union of all possible extraction option types.\n * Used by various extraction methods to support different output formats and configurations.\n * @example\n * ```ts\n * // Basic canvas extraction\n * const canvas = renderer.extract.canvas({\n * target: sprite\n * });\n *\n * // Image extraction with format\n * const image = await renderer.extract.image({\n * target: sprite,\n * format: 'png',\n * quality: 1\n * });\n *\n * // Download with filename\n * renderer.extract.download({\n * target: sprite,\n * filename: 'screenshot.png'\n * });\n *\n * // Advanced extraction with multiple options\n * const image = await renderer.extract.image({\n * target: container,\n * frame: new Rectangle(0, 0, 100, 100),\n * resolution: 2,\n * clearColor: '#ff0000',\n * antialias: true,\n * format: 'webp',\n * quality: 0.8\n * });\n * ```\n *\n * Supports three types of options:\n * - {@link BaseExtractOptions} - Basic extraction settings\n * - {@link ExtractImageOptions} - Image-specific settings with format and quality\n * - {@link ExtractDownloadOptions} - Download settings with filename\n *\n * Common use cases:\n * - Extracting raw pixels\n * - Creating canvas elements\n * - Generating downloadable images\n * - Taking screenshots\n * - Creating thumbnails\n * @see {@link ExtractSystem.canvas} For canvas extraction\n * @see {@link ExtractSystem.image} For image extraction\n * @see {@link ExtractSystem.download} For downloading content\n * @category rendering\n * @advanced\n */\nexport type ExtractOptions = BaseExtractOptions | ExtractImageOptions | ExtractDownloadOptions;\n\n/**\n * System for exporting content from a renderer. It provides methods to extract content as images,\n * canvases, or raw pixel data. Available through `renderer.extract`.\n * @example\n * ```ts\n * import { Application, Graphics } from 'pixi.js';\n *\n * // Create a new application\n * const app = new Application();\n * await app.init();\n *\n * // Draw something to extract\n * const graphics = new Graphics()\n * .circle(0, 0, 50)\n * .fill(0xFF0000);\n *\n * // Basic extraction examples\n * const image = await app.renderer.extract.image(graphics); // As IImage (HTMLImageElement)\n * const canvas = app.renderer.extract.canvas(graphics); // As Canvas\n * const pixels = app.renderer.extract.pixels(graphics); // As pixel data\n * const base64 = await app.renderer.extract.base64(graphics); // As base64 string\n *\n * // Advanced extraction with options\n * const customImage = await app.renderer.extract.image({\n * target: graphics,\n * format: 'png',\n * resolution: 2,\n * frame: new Rectangle(0, 0, 100, 100),\n * clearColor: '#00000000'\n * });\n *\n * // Download content\n * app.renderer.extract.download({\n * target: graphics,\n * filename: 'my-image.png'\n * });\n *\n * // Debug visualization\n * app.renderer.extract.log(graphics);\n * ```\n *\n * Features:\n * - Extract as various formats (PNG, JPEG, WebP)\n * - Control output quality and resolution\n * - Extract specific regions\n * - Download extracted content\n * - Debug visualization\n *\n * Common Use Cases:\n * - Creating thumbnails\n * - Saving game screenshots\n * - Processing visual content\n * - Debugging renders\n * - Creating textures from rendered content\n *\n * Performance Considerations:\n * - Extraction operations are relatively expensive\n * - Consider caching results for frequently used content\n * - Be mindful of resolution and format choices\n * - Large extractions may impact performance\n * @category rendering\n * @standard\n */\nexport class ExtractSystem implements System\n{\n /** @ignore */\n public static extension = {\n type: [\n ExtensionType.WebGLSystem,\n ExtensionType.WebGPUSystem,\n ExtensionType.CanvasSystem,\n ],\n name: 'extract',\n } as const;\n\n /**\n * Default options for image extraction.\n * @example\n * ```ts\n * // Customize default options\n * ExtractSystem.defaultImageOptions.format = 'webp';\n * ExtractSystem.defaultImageOptions.quality = 0.8;\n *\n * // Use defaults\n * const image = await renderer.extract.image(sprite);\n * ```\n */\n public static defaultImageOptions: ImageOptions = {\n format: 'png' as Formats,\n quality: 1,\n };\n\n private _renderer: Renderer;\n\n /** @param renderer - The renderer this System works for. */\n constructor(renderer: Renderer)\n {\n this._renderer = renderer;\n }\n\n private _normalizeOptions<T extends ExtractOptions>(\n options: ExtractImageOptions | Container | Texture,\n defaults: Partial<T> = {},\n ): T\n {\n if (options instanceof Container || options instanceof Texture)\n {\n return {\n target: options,\n ...defaults\n } as T;\n }\n\n return {\n ...defaults,\n ...options,\n } as T;\n }\n\n /**\n * Creates an IImage from a display object or texture.\n * @param options - Options for creating the image, or the target to extract\n * @returns Promise that resolves with the generated IImage\n * @example\n * ```ts\n * // Basic usage with a sprite\n * const sprite = new Sprite(texture);\n * const image = await renderer.extract.image(sprite);\n * document.body.appendChild(image);\n *\n * // Advanced usage with options\n * const image = await renderer.extract.image({\n * target: container,\n * format: 'webp',\n * quality: 0.8,\n * frame: new Rectangle(0, 0, 100, 100),\n * resolution: 2,\n * clearColor: '#ff0000',\n * antialias: true\n * });\n *\n * // Extract directly from a texture\n * const texture = Texture.from('myTexture.png');\n * const image = await renderer.extract.image(texture);\n * ```\n * @see {@link ExtractImageOptions} For detailed options\n * @see {@link ExtractSystem.base64} For base64 string output\n * @see {@link ExtractSystem.canvas} For canvas output\n * @see {@link ImageLike} For the image interface\n * @category rendering\n */\n public async image(options: ExtractImageOptions | Container | Texture): Promise<ImageLike>\n {\n const image = DOMAdapter.get().createImage();\n\n image.src = await this.base64(options);\n\n return image;\n }\n\n /**\n * Converts the target into a base64 encoded string.\n *\n * This method works by first creating\n * a canvas using `Extract.canvas` and then converting it to a base64 string.\n * @param options - The options for creating the base64 string, or the target to extract\n * @returns Promise that resolves with the base64 encoded string\n * @example\n * ```ts\n * // Basic usage with a sprite\n * const sprite = new Sprite(texture);\n * const base64 = await renderer.extract.base64(sprite);\n * console.log(base64); // data:image/png;base64,...\n *\n * // Advanced usage with options\n * const base64 = await renderer.extract.base64({\n * target: container,\n * format: 'webp',\n * quality: 0.8,\n * frame: new Rectangle(0, 0, 100, 100),\n * resolution: 2\n * });\n * ```\n * @throws Will throw an error if the platform doesn't support any of:\n * - ICanvas.toDataURL\n * - ICanvas.toBlob\n * - ICanvas.convertToBlob\n * @see {@link ExtractImageOptions} For detailed options\n * @see {@link ExtractSystem.canvas} For canvas output\n * @see {@link ExtractSystem.image} For HTMLImage output\n * @category rendering\n */\n public async base64(options: ExtractImageOptions | Container | Texture): Promise<string>\n {\n options = this._normalizeOptions<ExtractImageOptions>(\n options,\n ExtractSystem.defaultImageOptions\n );\n\n const { format, quality } = options;\n\n const canvas = this.canvas(options);\n\n if (canvas.toBlob !== undefined)\n {\n return new Promise<string>((resolve, reject) =>\n {\n canvas.toBlob!((blob) =>\n {\n if (!blob)\n {\n reject(new Error('ICanvas.toBlob failed!'));\n\n return;\n }\n\n const reader = new FileReader();\n\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n }, imageTypes[format], quality);\n });\n }\n if (canvas.toDataURL !== undefined)\n {\n return canvas.toDataURL(imageTypes[format], quality);\n }\n if (canvas.convertToBlob !== undefined)\n {\n const blob = await canvas.convertToBlob({ type: imageTypes[format], quality });\n\n return new Promise<string>((resolve, reject) =>\n {\n const reader = new FileReader();\n\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n });\n }\n\n throw new Error('Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, '\n + 'or ICanvas.convertToBlob to be implemented');\n }\n\n /**\n * Creates a Canvas element, renders the target to it and returns it.\n * This method is useful for creating static images or when you need direct canvas access.\n * @param options - The options for creating the canvas, or the target to extract\n * @returns A Canvas element with the texture rendered on\n * @example\n * ```ts\n * // Basic canvas extraction from a sprite\n * const sprite = new Sprite(texture);\n * const canvas = renderer.extract.canvas(sprite);\n * document.body.appendChild(canvas);\n *\n * // Extract with custom region\n * const canvas = renderer.extract.canvas({\n * target: container,\n * frame: new Rectangle(0, 0, 100, 100)\n * });\n *\n * // Extract with high resolution\n * const canvas = renderer.extract.canvas({\n * target: sprite,\n * resolution: 2,\n * clearColor: '#ff0000'\n * });\n *\n * // Extract directly from a texture\n * const texture = Texture.from('myTexture.png');\n * const canvas = renderer.extract.canvas(texture);\n *\n * // Extract with anti-aliasing\n * const canvas = renderer.extract.canvas({\n * target: graphics,\n * antialias: true\n * });\n * ```\n * @see {@link ExtractOptions} For detailed options\n * @see {@link ExtractSystem.image} For HTMLImage output\n * @see {@link ExtractSystem.pixels} For raw pixel data\n * @category rendering\n */\n public canvas(options: ExtractOptions | Container | Texture): ICanvas\n {\n options = this._normalizeOptions(options);\n\n const target = options.target;\n\n const renderer = this._renderer;\n\n if (target instanceof Texture)\n {\n return renderer.texture.generateCanvas(target);\n }\n\n const texture = renderer.textureGenerator.generateTexture(options as GenerateTextureOptions);\n\n const canvas = renderer.texture.generateCanvas(texture);\n\n texture.destroy(true);\n\n return canvas;\n }\n\n /**\n * Returns a one-dimensional array containing the pixel data of the entire texture in RGBA order,\n * with integer values between 0 and 255 (inclusive).\n * > [!NOE] The returned array is a flat Uint8Array where every 4 values represent RGBA\n * @param options - The options for extracting the image, or the target to extract\n * @returns One-dimensional Uint8Array containing the pixel data in RGBA format\n * @example\n * ```ts\n * // Basic pixel extraction\n * const sprite = new Sprite(texture);\n * const pixels = renderer.extract.pixels(sprite);\n * console.log(pixels[0], pixels[1], pixels[2], pixels[3]); // R,G,B,A values\n *\n * // Extract with custom region\n * const pixels = renderer.extract.pixels({\n * target: sprite,\n * frame: new Rectangle(0, 0, 100, 100)\n * });\n *\n * // Extract with high resolution\n * const pixels = renderer.extract.pixels({\n * target: sprite,\n * resolution: 2\n * });\n * ```\n * @see {@link ExtractOptions} For detailed options\n * @see {@link ExtractSystem.canvas} For canvas output\n * @see {@link ExtractSystem.image} For image output\n * @category rendering\n */\n public pixels(options: ExtractOptions | Container | Texture): GetPixelsOutput\n {\n options = this._normalizeOptions(options);\n\n const target = options.target;\n\n const renderer = this._renderer;\n const texture = target instanceof Texture\n ? target\n : renderer.textureGenerator.generateTexture(options as GenerateTextureOptions);\n\n const pixelInfo = renderer.texture.getPixels(texture);\n\n if (target instanceof Container)\n {\n // destroy generated texture\n texture.destroy(true);\n }\n\n return pixelInfo;\n }\n\n /**\n * Creates a texture from a display object or existing texture.\n *\n * This is useful for creating\n * reusable textures from rendered content or making copies of existing textures.\n * > [!NOTE] The returned texture should be destroyed when no longer needed\n * @param options - The options for creating the texture, or the target to extract\n * @returns A new texture containing the extracted content\n * @example\n * ```ts\n * // Basic texture extraction from a sprite\n * const sprite = new Sprite(texture);\n * const extractedTexture = renderer.extract.texture(sprite);\n *\n * // Extract with custom region\n * const regionTexture = renderer.extract.texture({\n * target: container,\n * frame: new Rectangle(0, 0, 100, 100)\n * });\n *\n * // Extract with high resolution\n * const hiResTexture = renderer.extract.texture({\n * target: sprite,\n * resolution: 2,\n * clearColor: '#ff0000'\n * });\n *\n * // Create a new sprite from extracted texture\n * const newSprite = new Sprite(\n * renderer.extract.texture({\n * target: graphics,\n * antialias: true\n * })\n * );\n *\n * // Clean up when done\n * extractedTexture.destroy(true);\n * ```\n * @see {@link ExtractOptions} For detailed options\n * @see {@link Texture} For texture management\n * @see {@link GenerateTextureSystem} For texture generation\n * @category rendering\n */\n public texture(options: ExtractOptions | Container | Texture): Texture\n {\n options = this._normalizeOptions(options);\n\n if (options.target instanceof Texture) return options.target;\n\n return this._renderer.textureGenerator.generateTexture(options as GenerateTextureOptions);\n }\n\n /**\n * Extracts and downloads content from the renderer as an image file.\n * This is a convenient way to save screenshots or export rendered content.\n * > [!NOTE] The download will use PNG format regardless of the filename extension\n * @param options - The options for downloading and extracting the image, or the target to extract\n * @example\n * ```ts\n * // Basic download with default filename\n * const sprite = new Sprite(texture);\n * renderer.extract.download(sprite); // Downloads as 'image.png'\n *\n * // Download with custom filename\n * renderer.extract.download({\n * target: sprite,\n * filename: 'screenshot.png'\n * });\n *\n * // Download with custom region\n * renderer.extract.download({\n * target: container,\n * filename: 'region.png',\n * frame: new Rectangle(0, 0, 100, 100)\n * });\n *\n * // Download with high resolution and background\n * renderer.extract.download({\n * target: stage,\n * filename: 'hd-screenshot.png',\n * resolution: 2,\n * clearColor: '#ff0000'\n * });\n *\n * // Download with anti-aliasing\n * renderer.extract.download({\n * target: graphics,\n * filename: 'smooth.png',\n * antialias: true\n * });\n * ```\n * @see {@link ExtractDownloadOptions} For detailed options\n * @see {@link ExtractSystem.image} For creating images without download\n * @see {@link ExtractSystem.canvas} For canvas output\n * @category rendering\n */\n public download(options: ExtractDownloadOptions | Container | Texture)\n {\n /* eslint-disable no-restricted-globals */\n options = this._normalizeOptions<ExtractDownloadOptions>(options);\n\n const canvas = this.canvas(options);\n\n const link = document.createElement('a');\n\n link.download = options.filename ?? 'image.png';\n link.href = canvas.toDataURL('image/png');\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n /* eslint-enable no-restricted-globals */\n }\n\n /**\n * Logs the target to the console as an image. This is a useful way to debug what's happening in the renderer.\n * The image will be displayed in the browser's console using CSS background images.\n * @param options - The options for logging the image, or the target to log\n * @param options.width - The width of the logged image preview in the console (in pixels)\n * @example\n * ```ts\n * // Basic usage\n * const sprite = new Sprite(texture);\n * renderer.extract.log(sprite);\n * ```\n * @see {@link ExtractSystem.canvas} For getting raw canvas output\n * @see {@link ExtractSystem.pixels} For raw pixel data\n * @category rendering\n * @advanced\n */\n public log(options: (ExtractOptions & {width?: number}) | Container | Texture)\n {\n const width = options.width ?? 200;\n\n options = this._normalizeOptions(options);\n\n const canvas = this.canvas(options);\n\n const base64 = canvas.toDataURL();\n\n // eslint-disable-next-line no-console\n console.log(`[Pixi Texture] ${canvas.width}px ${canvas.height}px`);\n\n const style = [\n 'font-size: 1px;',\n `padding: ${width}px ${300}px;`,\n `background: url(${base64}) no-repeat;`,\n 'background-size: contain;',\n ].join(' ');\n\n // eslint-disable-next-line no-console\n console.log('%c ', style);\n }\n\n public destroy(): void\n {\n this._renderer = null as any as Renderer;\n }\n}\n"],"names":[],"mappings":"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"}