1 | {"version":3,"file":"PluginSystem.js","sources":["../../src/plugin/PluginSystem.ts"],"sourcesContent":["import { extensions, ExtensionType } from '@pixi/extensions';\nimport { deprecation } from '@pixi/utils';\n\nimport type { ExtensionMetadata } from '@pixi/extensions';\nimport type { IRenderer } from '../IRenderer';\nimport type { ISystem } from '../system/ISystem';\n\nexport interface IRendererPlugins extends GlobalMixins.IRendererPlugins\n{\n [key: string]: any;\n}\n\n/**\n * Manages the functionality that allows users to extend pixi functionality via additional plugins.\n * @memberof PIXI\n */\nexport class PluginSystem implements ISystem\n{\n /** @ignore */\n static extension: ExtensionMetadata = {\n type: [\n ExtensionType.RendererSystem,\n ExtensionType.CanvasRendererSystem\n ],\n name: '_plugin',\n };\n\n /** @ignore */\n public rendererPlugins: IRendererPlugins;\n\n /**\n * Collection of plugins.\n * @readonly\n * @member {object}\n */\n public readonly plugins: IRendererPlugins;\n private renderer: IRenderer;\n\n constructor(renderer: IRenderer)\n {\n this.renderer = renderer;\n\n /**\n * Collection of plugins.\n * @readonly\n * @member {object}\n */\n this.plugins = {};\n\n // #if _DEBUG\n Object.defineProperties(this.plugins, {\n extract: {\n enumerable: false,\n get()\n {\n deprecation('7.0.0', 'renderer.plugins.extract has moved to renderer.extract');\n\n return (renderer as any).extract;\n },\n },\n prepare: {\n enumerable: false,\n get()\n {\n deprecation('7.0.0', 'renderer.plugins.prepare has moved to renderer.prepare');\n\n return (renderer as any).prepare;\n },\n },\n interaction: {\n enumerable: false,\n get()\n {\n deprecation('7.0.0', 'renderer.plugins.interaction has been deprecated, use renderer.events');\n\n return (renderer as any).events;\n },\n },\n });\n // #endif\n }\n\n /**\n * Initialize the plugins.\n * @protected\n */\n init(): void\n {\n const staticMap = this.rendererPlugins;\n\n for (const o in staticMap)\n {\n this.plugins[o] = new (staticMap[o])(this.renderer);\n }\n }\n\n destroy(): void\n {\n for (const o in this.plugins)\n {\n this.plugins[o].destroy();\n this.plugins[o] = null;\n }\n }\n}\n\nextensions.add(PluginSystem);\n"],"names":["deprecation","ExtensionType","extensions"],"mappings":";;;;;;;AAgBO,MAAM,YACb,CAAA;AAAA,EAqBI,YAAY,QACZ,EAAA;AACI,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA,CAAA;AAOhB,IAAA,IAAA,CAAK,UAAU,EAAC,CAAA;AAGhB,IAAO,MAAA,CAAA,gBAAA,CAAiB,KAAK,OAAS,EAAA;AAAA,MAClC,OAAS,EAAA;AAAA,QACL,UAAY,EAAA,KAAA;AAAA,QACZ,GACA,GAAA;AACI,UAAAA,iBAAA,CAAY,SAAS,wDAAwD,CAAA,CAAA;AAE7E,UAAA,OAAQ,QAAiB,CAAA,OAAA,CAAA;AAAA,SAC7B;AAAA,OACJ;AAAA,MACA,OAAS,EAAA;AAAA,QACL,UAAY,EAAA,KAAA;AAAA,QACZ,GACA,GAAA;AACI,UAAAA,iBAAA,CAAY,SAAS,wDAAwD,CAAA,CAAA;AAE7E,UAAA,OAAQ,QAAiB,CAAA,OAAA,CAAA;AAAA,SAC7B;AAAA,OACJ;AAAA,MACA,WAAa,EAAA;AAAA,QACT,UAAY,EAAA,KAAA;AAAA,QACZ,GACA,GAAA;AACI,UAAAA,iBAAA,CAAY,SAAS,uEAAuE,CAAA,CAAA;AAE5F,UAAA,OAAQ,QAAiB,CAAA,MAAA,CAAA;AAAA,SAC7B;AAAA,OACJ;AAAA,KACH,CAAA,CAAA;AAAA,GAEL;AAAA,EAMA,IACA,GAAA;AACI,IAAA,MAAM,YAAY,IAAK,CAAA,eAAA,CAAA;AAEvB,IAAA,KAAA,MAAW,KAAK,SAChB,EAAA;AACI,MAAA,IAAA,CAAK,QAAQ,CAAK,CAAA,GAAA,IAAK,SAAU,CAAA,CAAA,CAAA,CAAI,KAAK,QAAQ,CAAA,CAAA;AAAA,KACtD;AAAA,GACJ;AAAA,EAEA,OACA,GAAA;AACI,IAAW,KAAA,MAAA,CAAA,IAAK,KAAK,OACrB,EAAA;AACI,MAAK,IAAA,CAAA,OAAA,CAAQ,GAAG,OAAQ,EAAA,CAAA;AACxB,MAAA,IAAA,CAAK,QAAQ,CAAK,CAAA,GAAA,IAAA,CAAA;AAAA,KACtB;AAAA,GACJ;AACJ,CAAA;AAxFa,aAGF,SAA+B,GAAA;AAAA,EAClC,IAAM,EAAA;AAAA,IACFC,wBAAc,CAAA,cAAA;AAAA,IACdA,wBAAc,CAAA,oBAAA;AAAA,GAClB;AAAA,EACA,IAAM,EAAA,SAAA;AACV,CAAA,CAAA;AAiFJC,qBAAA,CAAW,IAAI,YAAY,CAAA;;;;"} |