UNPKG

pixi.js

Version:

PixiJS — The HTML5 Creation Engine =============

1 lines 3.63 MB
{"version":3,"file":"pixi.mjs","sources":["../src/extensions/Extensions.ts","../node_modules/eventemitter3/index.js","../node_modules/@pixi/colord/index.mjs","../node_modules/@pixi/colord/plugins/names.mjs","../src/color/Color.ts","../src/culling/cullingMixin.ts","../src/maths/misc/const.ts","../src/maths/point/Point.ts","../src/maths/matrix/Matrix.ts","../src/maths/point/ObservablePoint.ts","../src/utils/data/uid.ts","../src/utils/logging/deprecation.ts","../src/utils/pool/Pool.ts","../src/utils/pool/PoolGroup.ts","../src/utils/data/removeItems.ts","../src/scene/container/container-mixins/childrenHelperMixin.ts","../src/filters/FilterEffect.ts","../src/rendering/mask/MaskEffectManager.ts","../src/scene/container/container-mixins/effectsMixin.ts","../src/scene/container/container-mixins/findMixin.ts","../src/maths/shapes/Rectangle.ts","../src/scene/container/bounds/Bounds.ts","../src/scene/container/bounds/utils/matrixAndBoundsPool.ts","../src/scene/container/bounds/getGlobalBounds.ts","../src/utils/logging/warn.ts","../src/scene/container/bounds/getLocalBounds.ts","../src/scene/container/utils/checkChildrenDidChange.ts","../src/scene/container/container-mixins/measureMixin.ts","../src/scene/container/container-mixins/onRenderMixin.ts","../src/scene/container/container-mixins/sortMixin.ts","../src/scene/container/container-mixins/toLocalGlobalMixin.ts","../src/rendering/renderers/shared/instructions/InstructionSet.ts","../src/scene/container/RenderGroup.ts","../src/scene/container/utils/assignWithIgnore.ts","../src/scene/container/Container.ts","../src/events/FederatedEvent.ts","../node_modules/ismobilejs/esm/isMobile.js","../src/utils/browser/isMobile.ts","../src/accessibility/AccessibilitySystem.ts","../src/accessibility/accessibilityTarget.ts","../src/accessibility/init.ts","../src/app/ResizePlugin.ts","../src/ticker/const.ts","../src/ticker/TickerListener.ts","../src/ticker/Ticker.ts","../src/app/TickerPlugin.ts","../src/app/init.ts","../src/events/EventTicker.ts","../src/events/FederatedMouseEvent.ts","../src/events/FederatedPointerEvent.ts","../src/events/FederatedWheelEvent.ts","../src/events/EventBoundary.ts","../src/events/EventSystem.ts","../src/events/FederatedEventTarget.ts","../src/events/init.ts","../src/assets/loader/parsers/LoaderParser.ts","../src/environment-browser/BrowserAdapter.ts","../src/environment/adapter.ts","../src/utils/path.ts","../src/assets/utils/convertToList.ts","../src/assets/utils/createStringVariations.ts","../src/assets/utils/isSingleItem.ts","../src/assets/resolver/Resolver.ts","../src/assets/utils/copySearchParams.ts","../src/maths/matrix/groupD8.ts","../src/utils/misc/NOOP.ts","../src/maths/misc/pow2.ts","../src/scene/container/utils/definedProps.ts","../src/rendering/renderers/shared/texture/TextureStyle.ts","../src/rendering/renderers/shared/texture/sources/TextureSource.ts","../src/rendering/renderers/shared/texture/sources/BufferImageSource.ts","../src/rendering/renderers/shared/texture/TextureMatrix.ts","../src/rendering/renderers/shared/texture/Texture.ts","../src/spritesheet/Spritesheet.ts","../src/spritesheet/spritesheetAsset.ts","../src/spritesheet/init.ts","../src/utils/data/updateQuadBounds.ts","../src/scene/view/View.ts","../src/scene/sprite/Sprite.ts","../src/rendering/mask/utils/addMaskBounds.ts","../src/rendering/mask/utils/addMaskLocalBounds.ts","../src/rendering/mask/alpha/AlphaMask.ts","../src/rendering/mask/color/ColorMask.ts","../src/rendering/mask/stencil/StencilMask.ts","../src/rendering/renderers/shared/texture/sources/CanvasSource.ts","../src/rendering/renderers/shared/texture/sources/ImageSource.ts","../src/utils/browser/detectVideoAlphaMode.ts","../src/rendering/renderers/shared/texture/sources/VideoSource.ts","../src/assets/cache/Cache.ts","../src/rendering/renderers/shared/texture/utils/textureFrom.ts","../src/rendering/init.ts","../src/rendering/renderers/gpu/shader/BindGroup.ts","../src/rendering/renderers/gl/shader/program/getTestContext.ts","../src/rendering/batcher/gl/utils/checkMaxIfStatementsInShader.ts","../src/rendering/batcher/gl/utils/maxRecommendedTextures.ts","../src/rendering/batcher/gpu/getTextureBatchBindGroup.ts","../src/utils/data/ViewableBuffer.ts","../src/rendering/renderers/shared/buffer/utils/fastCopy.ts","../src/rendering/renderers/shared/state/const.ts","../src/rendering/renderers/shared/state/getAdjustedBlendModeBlend.ts","../src/rendering/batcher/shared/BatchTextureArray.ts","../src/rendering/batcher/shared/Batcher.ts","../src/rendering/renderers/shared/buffer/const.ts","../src/rendering/renderers/shared/buffer/Buffer.ts","../src/rendering/renderers/shared/geometry/utils/ensureIsBuffer.ts","../src/rendering/renderers/shared/geometry/utils/getGeometryBounds.ts","../src/rendering/renderers/shared/geometry/Geometry.ts","../src/rendering/batcher/shared/BatchGeometry.ts","../src/rendering/renderers/shared/geometry/utils/buildUvs.ts","../src/rendering/renderers/shared/geometry/utils/transformVertices.ts","../src/scene/container/utils/multiplyHexColors.ts","../src/scene/graphics/shared/BatchableGraphics.ts","../src/scene/graphics/shared/buildCommands/buildCircle.ts","../src/scene/graphics/shared/const.ts","../src/scene/graphics/shared/utils/getOrientationOfPoints.ts","../src/scene/graphics/shared/buildCommands/buildLine.ts","../node_modules/earcut/src/earcut.js","../src/scene/graphics/shared/utils/triangulateWithHoles.ts","../src/scene/graphics/shared/buildCommands/buildPolygon.ts","../src/scene/graphics/shared/buildCommands/buildRectangle.ts","../src/scene/graphics/shared/buildCommands/buildTriangle.ts","../src/scene/graphics/shared/utils/buildContextBatches.ts","../src/scene/graphics/shared/GraphicsContextSystem.ts","../src/rendering/renderers/shared/state/State.ts","../src/scene/graphics/gpu/colorToUniform.ts","../src/scene/graphics/shared/GraphicsPipe.ts","../src/scene/graphics/init.ts","../src/rendering/renderers/shared/utils/createIdFromString.ts","../src/rendering/renderers/shared/shader/types.ts","../src/rendering/renderers/shared/shader/utils/getDefaultUniformValue.ts","../src/rendering/renderers/shared/shader/UniformGroup.ts","../src/scene/mesh/shared/BatchableMesh.ts","../src/scene/mesh/shared/MeshPipe.ts","../src/scene/mesh/init.ts","../src/scene/sprite/BatchableSprite.ts","../src/scene/text/canvas/CanvasTextPipe.ts","../src/rendering/renderers/shared/texture/CanvasPool.ts","../src/rendering/renderers/shared/texture/TexturePool.ts","../src/utils/canvas/getCanvasBoundingBox.ts","../src/scene/graphics/shared/fill/FillGradient.ts","../src/scene/graphics/shared/fill/FillPattern.ts","../node_modules/parse-svg-path/index.js","../src/scene/graphics/shared/svg/SVGToGraphicsPath.ts","../src/maths/shapes/Circle.ts","../src/maths/shapes/Ellipse.ts","../src/maths/misc/squaredDistanceToLineSegment.ts","../src/maths/shapes/Polygon.ts","../src/maths/shapes/RoundedRectangle.ts","../src/scene/graphics/shared/buildCommands/buildAdaptiveBezier.ts","../src/scene/graphics/shared/buildCommands/buildAdaptiveQuadratic.ts","../src/scene/graphics/shared/buildCommands/buildArc.ts","../src/scene/graphics/shared/buildCommands/buildArcTo.ts","../src/scene/graphics/shared/buildCommands/buildArcToSvg.ts","../src/scene/graphics/shared/path/roundShape.ts","../src/scene/graphics/shared/path/ShapePath.ts","../src/scene/graphics/shared/path/GraphicsPath.ts","../src/scene/graphics/shared/svg/SVGParser.ts","../src/scene/graphics/shared/utils/convertFillInputToFillStyle.ts","../src/scene/graphics/shared/GraphicsContext.ts","../src/scene/text/utils/generateTextStyleKey.ts","../src/scene/text/TextStyle.ts","../src/scene/text/utils/getPo2TextureFromSource.ts","../src/scene/text/canvas/utils/fontStringFromTextStyle.ts","../src/scene/text/canvas/CanvasTextMetrics.ts","../src/scene/text/canvas/utils/getCanvasFillStyle.ts","../src/scene/text/canvas/CanvasTextSystem.ts","../src/scene/text/init.ts","../src/scene/graphics/shared/Graphics.ts","../src/rendering/renderers/gl/shader/program/getMaxFragmentPrecision.ts","../src/rendering/renderers/gl/shader/program/preprocessors/addProgramDefines.ts","../src/rendering/renderers/gl/shader/program/preprocessors/ensurePrecision.ts","../src/rendering/renderers/gl/shader/program/preprocessors/insertVersion.ts","../src/rendering/renderers/gl/shader/program/preprocessors/setProgramName.ts","../src/rendering/renderers/gl/shader/program/preprocessors/stripVersion.ts","../src/rendering/renderers/gl/shader/GlProgram.ts","../src/rendering/renderers/shared/geometry/utils/getAttributeInfoFromFormat.ts","../src/rendering/renderers/gpu/shader/utils/extractAttributesFromGpuProgram.ts","../src/rendering/renderers/gpu/shader/utils/extractStructAndGroups.ts","../src/rendering/renderers/shared/shader/const.ts","../src/rendering/renderers/gpu/shader/utils/generateGpuLayoutGroups.ts","../src/rendering/renderers/gpu/shader/utils/generateLayoutHash.ts","../src/rendering/renderers/gpu/shader/utils/removeStructAndGroupDuplicates.ts","../src/rendering/renderers/gpu/shader/GpuProgram.ts","../src/rendering/high-shader/compiler/utils/addBits.ts","../src/rendering/high-shader/compiler/utils/compileHooks.ts","../src/rendering/high-shader/compiler/utils/compileInputs.ts","../src/rendering/high-shader/compiler/utils/compileOutputs.ts","../src/rendering/high-shader/compiler/utils/injectBits.ts","../src/rendering/high-shader/compiler/compileHighShader.ts","../src/rendering/high-shader/defaultProgramTemplate.ts","../src/rendering/high-shader/shader-bits/globalUniformsBit.ts","../src/rendering/high-shader/compileHighShaderToProgram.ts","../src/rendering/high-shader/shader-bits/colorBit.ts","../src/rendering/high-shader/shader-bits/generateTextureBatchBit.ts","../src/rendering/high-shader/shader-bits/roundPixelsBit.ts","../src/rendering/renderers/gl/shader/getBatchSamplersUniformGroup.ts","../src/rendering/renderers/types.ts","../src/rendering/renderers/shared/shader/Shader.ts","../src/scene/text/sdfShader/shader-bits/localUniformMSDFBit.ts","../src/scene/text/sdfShader/shader-bits/mSDFBit.ts","../src/scene/text/sdfShader/SdfShader.ts","../src/scene/text-bitmap/AbstractBitmapFont.ts","../src/scene/text-bitmap/utils/resolveCharacters.ts","../src/scene/text-bitmap/DynamicBitmapFont.ts","../src/scene/text-bitmap/utils/getBitmapTextLayout.ts","../src/scene/text-bitmap/BitmapFontManager.ts","../src/scene/text-bitmap/BitmapTextPipe.ts","../src/scene/text-bitmap/init.ts","../src/scene/text-html/HTMLTextPipe.ts","../src/utils/browser/isSafari.ts","../src/scene/text-html/HTMLTextRenderData.ts","../src/scene/text-html/utils/textStyleToCSS.ts","../src/scene/text-html/HtmlTextStyle.ts","../src/scene/text-html/utils/extractFontFamilies.ts","../src/scene/text-html/utils/loadFontAsBase64.ts","../src/scene/text-html/utils/loadFontCSS.ts","../src/scene/text-html/utils/getFontCss.ts","../src/scene/text-html/utils/getSVGUrl.ts","../src/scene/text-html/utils/getTemporaryCanvasFromImage.ts","../src/scene/text-html/utils/loadSVGImage.ts","../src/scene/text-html/utils/measureHtmlText.ts","../src/scene/text-html/HTMLTextSystem.ts","../src/scene/text-html/init.ts","../src/scene/mesh/shared/MeshGeometry.ts","../src/rendering/high-shader/shader-bits/localUniformBit.ts","../src/scene/sprite-tiling/shader/tilingBit.ts","../src/scene/sprite-tiling/shader/TilingSpriteShader.ts","../src/scene/sprite-tiling/utils/QuadGeometry.ts","../src/scene/sprite-tiling/utils/setPositions.ts","../src/scene/sprite-tiling/utils/applyMatrix.ts","../src/scene/sprite-tiling/utils/setUvs.ts","../src/scene/sprite-tiling/TilingSpritePipe.ts","../src/scene/sprite-tiling/init.ts","../src/scene/mesh-plane/PlaneGeometry.ts","../src/scene/sprite-nine-slice/NineSliceGeometry.ts","../src/scene/sprite-nine-slice/NineSliceSpritePipe.ts","../src/scene/sprite-nine-slice/init.ts","../src/filters/FilterPipe.ts","../src/scene/container/bounds/getFastGlobalBounds.ts","../src/scene/container/bounds/getRenderableBounds.ts","../src/filters/FilterSystem.ts","../src/filters/init.ts","../src/environment/autoDetectEnvironment.ts","../src/utils/browser/unsafeEvalSupported.ts","../src/rendering/renderers/gl/const.ts","../src/rendering/renderers/shared/system/SystemRunner.ts","../src/rendering/renderers/shared/system/AbstractRenderer.ts","../src/utils/browser/isWebGLSupported.ts","../src/utils/browser/isWebGPUSupported.ts","../src/rendering/renderers/autoDetectRenderer.ts","../src/utils/global/globalHooks.ts","../src/app/Application.ts","../src/scene/text-bitmap/BitmapFont.ts","../src/scene/text-bitmap/asset/bitmapFontTextParser.ts","../src/scene/text-bitmap/asset/bitmapFontXMLParser.ts","../src/scene/text-bitmap/asset/bitmapFontXMLStringParser.ts","../src/scene/text-bitmap/asset/loadBitmapFont.ts","../src/assets/BackgroundLoader.ts","../src/assets/cache/parsers/cacheTextureArray.ts","../src/assets/detections/utils/testImageFormat.ts","../src/assets/detections/parsers/detectAvif.ts","../src/assets/detections/parsers/detectDefaults.ts","../src/assets/detections/utils/testVideoFormat.ts","../src/assets/detections/parsers/detectMp4.ts","../src/assets/detections/parsers/detectOgv.ts","../src/assets/detections/parsers/detectWebm.ts","../src/assets/detections/parsers/detectWebp.ts","../src/assets/loader/Loader.ts","../src/assets/utils/checkDataUrl.ts","../src/assets/utils/checkExtension.ts","../src/assets/loader/parsers/loadJson.ts","../src/assets/loader/parsers/loadTxt.ts","../src/assets/loader/parsers/loadWebFont.ts","../src/utils/network/getResolutionOfUrl.ts","../src/assets/loader/parsers/textures/utils/createTexture.ts","../src/assets/loader/parsers/textures/loadSVG.ts","../src/assets/loader/workers/WorkerManager.ts","../src/assets/loader/parsers/textures/loadTextures.ts","../src/assets/loader/parsers/textures/loadVideoTextures.ts","../src/assets/resolver/parsers/resolveTextureUrl.ts","../src/assets/resolver/parsers/resolveJsonUrl.ts","../src/assets/Assets.ts","../src/compressed-textures/basis/detectBasis.ts","../src/rendering/renderers/shared/texture/sources/CompressedSource.ts","../src/rendering/renderers/gl/texture/utils/getSupportedGlCompressedTextureFormats.ts","../src/rendering/renderers/gpu/texture/utils/getSupportedGPUCompressedTextureFormats.ts","../src/rendering/renderers/shared/texture/utils/getSupportedCompressedTextureFormats.ts","../src/rendering/renderers/shared/texture/utils/getSupportedTextureFormats.ts","../src/compressed-textures/basis/utils/setBasisTranscoderPath.ts","../src/compressed-textures/basis/worker/loadBasisOnWorker.ts","../src/compressed-textures/basis/loadBasis.ts","../src/compressed-textures/basis/utils/createLevelBuffers.ts","../src/compressed-textures/basis/utils/gpuFormatToBasisTranscoderFormat.ts","../src/compressed-textures/dds/const.ts","../src/compressed-textures/dds/parseDDS.ts","../src/compressed-textures/dds/loadDDS.ts","../src/compressed-textures/ktx2/const.ts","../src/compressed-textures/ktx/parseKTX.ts","../src/compressed-textures/ktx/loadKTX.ts","../src/compressed-textures/ktx2/utils/setKTXTranscoderPath.ts","../src/compressed-textures/ktx2/worker/loadKTX2onWorker.ts","../src/compressed-textures/ktx2/loadKTX2.ts","../src/compressed-textures/ktx2/utils/convertFormatIfRequired.ts","../src/compressed-textures/ktx2/utils/createLevelBuffersFromKTX.ts","../src/compressed-textures/ktx2/utils/glFormatToGPUFormat.ts","../src/compressed-textures/ktx2/utils/vkFormatToGPUFormat.ts","../src/compressed-textures/ktx2/utils/getTextureFormatFromKTXTexture.ts","../src/compressed-textures/ktx2/utils/gpuFormatToKTXBasisTranscoderFormat.ts","../src/compressed-textures/shared/resolveCompressedTextureUrl.ts","../src/compressed-textures/shared/detectCompressed.ts","../src/culling/Culler.ts","../src/culling/CullerPlugin.ts","../src/environment-browser/browserExt.ts","../src/filters/Filter.ts","../src/filters/blend-modes/BlendModeFilter.ts","../src/filters/blend-modes/hls/GLhls.ts","../src/filters/blend-modes/hls/GPUhls.ts","../src/filters/defaults/alpha/AlphaFilter.ts","../src/filters/defaults/blur/const.ts","../src/filters/defaults/blur/gl/generateBlurFragSource.ts","../src/filters/defaults/blur/gl/generateBlurVertSource.ts","../src/filters/defaults/blur/gl/generateBlurGlProgram.ts","../src/filters/defaults/blur/gpu/generateBlurProgram.ts","../src/filters/defaults/blur/BlurFilterPass.ts","../src/filters/defaults/blur/BlurFilter.ts","../src/filters/defaults/color-matrix/ColorMatrixFilter.ts","../src/filters/defaults/displacement/DisplacementFilter.ts","../src/filters/defaults/noise/NoiseFilter.ts","../src/filters/mask/MaskFilter.ts","../src/maths/point/pointInTriangle.ts","../src/maths/shapes/Triangle.ts","../src/prepare/PrepareBase.ts","../src/scene/mesh/shared/Mesh.ts","../src/scene/sprite-animated/AnimatedSprite.ts","../src/utils/misc/Transform.ts","../src/scene/sprite-tiling/TilingSprite.ts","../src/scene/text/AbstractText.ts","../src/scene/text/Text.ts","../src/prepare/PrepareQueue.ts","../src/scene/text-bitmap/BitmapText.ts","../src/scene/text-html/HTMLText.ts","../src/prepare/PrepareUpload.ts","../src/prepare/PrepareSystem.ts","../src/rendering/batcher/gl/GlBatchAdaptor.ts","../src/rendering/batcher/gpu/generateGPULayout.ts","../src/rendering/batcher/gpu/generateLayout.ts","../src/rendering/batcher/gpu/GpuBatchAdaptor.ts","../src/rendering/batcher/shared/BatcherPipe.ts","../src/rendering/high-shader/compiler/utils/formatShader.ts","../src/rendering/high-shader/shader-bits/textureBit.ts","../src/scene/container/utils/buildInstructions.ts","../src/rendering/mask/alpha/AlphaMaskPipe.ts","../src/rendering/mask/color/ColorMaskPipe.ts","../src/rendering/mask/scissor/ScissorMask.ts","../src/rendering/mask/stencil/StencilMaskPipe.ts","../src/rendering/renderers/gl/buffer/const.ts","../src/rendering/renderers/gl/buffer/GlBuffer.ts","../src/rendering/renderers/gl/buffer/GlBufferSystem.ts","../src/rendering/renderers/gl/context/GlContextSystem.ts","../src/rendering/renderers/gl/shader/program/ensureAttributes.ts","../src/rendering/renderers/gl/texture/const.ts","../src/rendering/renderers/gl/geometry/utils/getGlTypeFromFormat.ts","../src/rendering/renderers/gl/geometry/GlGeometrySystem.ts","../src/rendering/renderers/gl/GlBackBufferSystem.ts","../src/rendering/renderers/gl/GlColorMaskSystem.ts","../src/rendering/renderers/gl/GlEncoderSystem.ts","../src/rendering/renderers/gl/GlRenderTarget.ts","../src/rendering/renderers/gpu/state/GpuStencilModesToPixi.ts","../src/rendering/renderers/gl/GlStencilSystem.ts","../src/rendering/renderers/shared/shader/UboSystem.ts","../src/rendering/renderers/gl/shader/utils/createUboElementsSTD40.ts","../src/rendering/renderers/shared/shader/utils/uniformParsers.ts","../src/rendering/renderers/shared/shader/utils/createUboSyncFunction.ts","../src/rendering/renderers/shared/shader/utils/uboSyncFunctions.ts","../src/rendering/renderers/gl/shader/utils/generateArraySyncSTD40.ts","../src/rendering/renderers/gl/shader/utils/createUboSyncSTD40.ts","../src/rendering/renderers/gl/GlUboSystem.ts","../src/rendering/renderers/gl/renderTarget/GlRenderTargetAdaptor.ts","../src/rendering/renderers/gpu/renderTarget/calculateProjection.ts","../src/rendering/renderers/shared/texture/utils/getCanvasTexture.ts","../src/rendering/renderers/shared/renderTarget/isRenderingToScreen.ts","../src/rendering/renderers/shared/renderTarget/RenderTarget.ts","../src/rendering/renderers/shared/renderTarget/RenderTargetSystem.ts","../src/rendering/renderers/gl/renderTarget/GlRenderTargetSystem.ts","../src/rendering/renderers/shared/buffer/BufferResource.ts","../src/rendering/renderers/gl/shader/GenerateShaderSyncCode.ts","../src/rendering/renderers/gl/shader/GlProgramData.ts","../src/rendering/renderers/gl/shader/program/compileShader.ts","../src/rendering/renderers/gl/shader/program/defaultValue.ts","../src/rendering/renderers/gl/shader/program/mapType.ts","../src/rendering/renderers/gl/shader/program/extractAttributesFromGlProgram.ts","../src/rendering/renderers/gl/shader/program/getUboData.ts","../src/rendering/renderers/gl/shader/program/getUniformData.ts","../src/rendering/renderers/gl/shader/program/logProgramError.ts","../src/rendering/renderers/gl/shader/program/generateProgram.ts","../src/rendering/renderers/gl/shader/GlShaderSystem.ts","../src/rendering/renderers/gl/shader/utils/generateUniformsSyncTypes.ts","../src/rendering/renderers/gl/shader/utils/generateUniformsSync.ts","../src/rendering/renderers/gl/shader/GlUniformGroupSystem.ts","../src/rendering/renderers/gl/shader/migrateFragmentFromV7toV8.ts","../src/rendering/renderers/gl/shader/program/mapSize.ts","../src/rendering/renderers/gl/state/mapWebGLBlendModesToPixi.ts","../src/rendering/renderers/gl/state/GlStateSystem.ts","../src/rendering/renderers/gl/texture/GlTexture.ts","../src/rendering/renderers/gl/texture/uploaders/glUploadBufferImageResource.ts","../src/rendering/renderers/gl/texture/uploaders/glUploadCompressedTextureResource.ts","../src/rendering/renderers/gl/texture/uploaders/glUploadImageResource.ts","../src/rendering/renderers/gl/texture/uploaders/glUploadVideoResource.ts","../src/rendering/renderers/gl/texture/utils/pixiToGlMaps.ts","../src/rendering/renderers/gl/texture/utils/applyStyleParams.ts","../src/rendering/renderers/gl/texture/utils/mapFormatToGlFormat.ts","../src/rendering/renderers/gl/texture/utils/mapFormatToGlInternalFormat.ts","../src/rendering/renderers/gl/texture/utils/mapFormatToGlType.ts","../src/rendering/renderers/gl/texture/utils/unpremultiplyAlpha.ts","../src/rendering/renderers/gl/texture/GlTextureSystem.ts","../src/scene/graphics/gl/GlGraphicsAdaptor.ts","../src/scene/mesh/gl/GlMeshAdaptor.ts","../src/scene/container/CustomRenderPipe.ts","../src/scene/container/utils/executeInstructions.ts","../src/scene/container/RenderGroupPipe.ts","../src/scene/container/utils/clearList.ts","../src/scene/container/utils/collectRenderGroups.ts","../src/scene/container/utils/mixHexColors.ts","../src/scene/container/utils/mixColors.ts","../src/scene/container/utils/updateRenderGroupTransforms.ts","../src/scene/container/utils/validateRenderables.ts","../src/scene/container/RenderGroupSystem.ts","../src/scene/sprite/SpritePipe.ts","../src/rendering/renderers/shared/background/BackgroundSystem.ts","../src/rendering/renderers/shared/blendModes/BlendModePipe.ts","../src/rendering/renderers/shared/extract/ExtractSystem.ts","../src/rendering/renderers/shared/texture/RenderTexture.ts","../src/rendering/renderers/shared/extract/GenerateTextureSystem.ts","../src/rendering/renderers/shared/renderTarget/GlobalUniformSystem.ts","../src/rendering/renderers/shared/SchedulerSystem.ts","../src/utils/sayHello.ts","../src/rendering/renderers/shared/startup/HelloSystem.ts","../src/rendering/renderers/shared/texture/RenderableGCSystem.ts","../src/rendering/renderers/shared/texture/TextureGCSystem.ts","../src/rendering/renderers/shared/view/ViewSystem.ts","../src/rendering/renderers/shared/system/SharedSystems.ts","../src/rendering/renderers/gl/WebGLRenderer.ts","../src/rendering/renderers/gpu/BindGroupSystem.ts","../src/rendering/renderers/gpu/buffer/GpuBufferSystem.ts","../src/rendering/renderers/gpu/buffer/GpuReadBuffer.ts","../src/rendering/renderers/gpu/buffer/UboBatch.ts","../src/rendering/renderers/gpu/GpuColorMaskSystem.ts","../src/rendering/renderers/gpu/GpuDeviceSystem.ts","../src/rendering/renderers/gpu/GpuEncoderSystem.ts","../src/rendering/renderers/gpu/GpuStencilSystem.ts","../src/rendering/renderers/gpu/shader/utils/createUboElementsWGSL.ts","../src/rendering/renderers/gpu/shader/utils/generateArraySyncWGSL.ts","../src/rendering/renderers/gpu/shader/utils/createUboSyncFunctionWGSL.ts","../src/rendering/renderers/gpu/GpuUboSystem.ts","../src/rendering/renderers/gpu/GpuUniformBatchPipe.ts","../src/rendering/renderers/gpu/pipeline/PipelineSystem.ts","../src/rendering/renderers/gpu/renderTarget/GpuRenderTarget.ts","../src/rendering/renderers/gpu/renderTarget/GpuRenderTargetAdaptor.ts","../src/rendering/renderers/gpu/renderTarget/GpuRenderTargetSystem.ts","../src/rendering/renderers/gpu/shader/GpuShaderSystem.ts","../src/rendering/renderers/gpu/state/GpuBlendModesToPixi.ts","../src/rendering/renderers/gpu/state/GpuStateSystem.ts","../src/rendering/renderers/gpu/texture/uploaders/gpuUploadBufferImageResource.ts","../src/rendering/renderers/gpu/texture/uploaders/gpuUploadCompressedTextureResource.ts","../src/rendering/renderers/gpu/texture/uploaders/gpuUploadImageSource.ts","../src/rendering/renderers/gpu/texture/uploaders/gpuUploadVideoSource.ts","../src/rendering/renderers/gpu/texture/utils/GpuMipmapGenerator.ts","../src/rendering/renderers/gpu/texture/GpuTextureSystem.ts","../src/scene/graphics/gpu/GpuGraphicsAdaptor.ts","../src/scene/mesh/gpu/GpuMeshAdapter.ts","../src/rendering/renderers/gpu/WebGPURenderer.ts","../src/rendering/renderers/shared/geometry/const.ts","../src/rendering/renderers/shared/renderTarget/viewportFromFrame.ts","../src/rendering/renderers/shared/texture/const.ts","../src/rendering/renderers/shared/texture/TextureUvs.ts","../src/rendering/renderers/shared/texture/utils/generateUID.ts","../src/rendering/renderers/shared/utils/parseFunctionBody.ts","../src/scene/container/RenderContainer.ts","../src/scene/container/utils/updateLocalTransform.ts","../src/scene/container/utils/updateWorldTransform.ts","../src/scene/graphics/shared/utils/buildGeometryFromPath.ts","../src/scene/mesh-perspective/utils/applyProjectiveTransformationToPlane.ts","../src/scene/mesh-perspective/utils/compute2DProjections.ts","../src/scene/mesh-perspective/PerspectivePlaneGeometry.ts","../src/scene/mesh-perspective/PerspectiveMesh.ts","../src/scene/mesh-plane/MeshPlane.ts","../src/scene/mesh-simple/RopeGeometry.ts","../src/scene/mesh-simple/MeshRope.ts","../src/scene/mesh-simple/MeshSimple.ts","../src/scene/mesh/shared/getTextureDefaultMatrix.ts","../src/scene/sprite-nine-slice/NineSliceSprite.ts","../src/scene/text/utils/ensureTextStyle.ts","../src/utils/const.ts","../src/utils/logging/logDebugTexture.ts","../src/utils/logging/logScene.ts"],"sourcesContent":["/**\n * `extensions` is a global object that holds all the extensions registered with PixiJS.\n * PixiJS uses a this extensions architecture a lot to make the library more modular and\n * flexible.\n *\n * For example, if you want to add load a new type of asset, you can register a new\n * {@link assets.LoaderParser} with the `extensions` object.\n *\n * ```js\n * import { extensions, ExtensionType } from 'pixi.js';\n *\n * // create a custom asset loader\n * const customAssetLoader = {\n * extension: {\n * type: ExtensionType.LoadParser,\n * name: 'custom-asset-loader',\n * },\n * test(url) {\n * // check if this new loader should be used...\n * },\n * load(url) {\n * // load the asset...\n * },\n * };\n *\n * // add the custom asset loader to pixi\n * extensions.add(customAssetLoader);\n * ```\n *\n * This would add the `customAssetLoader` to the list of available loaders that PixiJS can use.\n *\n * There are many different types of extensions, which are listed in {@link extensions.ExtensionType}.\n * @namespace extensions\n */\n\n/**\n * Collection of valid extension types.\n * @memberof extensions\n */\nenum ExtensionType\n// eslint-disable-next-line @typescript-eslint/indent\n{\n /** extensions that are registered as Application plugins */\n Application = 'application',\n\n /** extensions that are registered as WebGL render pipes */\n WebGLPipes = 'webgl-pipes',\n /** extensions that are registered as WebGL render pipes adaptors */\n WebGLPipesAdaptor = 'webgl-pipes-adaptor',\n /** extensions that are registered as WebGL render systems */\n WebGLSystem = 'webgl-system',\n\n /** extensions that are registered as WebGPU render pipes */\n WebGPUPipes = 'webgpu-pipes',\n /** extensions that are registered as WebGPU render pipes adaptors */\n WebGPUPipesAdaptor = 'webgpu-pipes-adaptor',\n /** extensions that are registered as WebGPU render systems */\n WebGPUSystem = 'webgpu-system',\n\n /** extensions that are registered as Canvas render pipes */\n CanvasSystem = 'canvas-system',\n /** extensions that are registered as Canvas render pipes adaptors */\n CanvasPipesAdaptor = 'canvas-pipes-adaptor',\n /** extensions that are registered as Canvas render systems */\n CanvasPipes = 'canvas-pipes',\n\n /** extensions that combine the other Asset extensions */\n Asset = 'asset',\n /** extensions that are used to load assets through Assets */\n LoadParser = 'load-parser',\n /** extensions that are used to resolve asset urls through Assets */\n ResolveParser = 'resolve-parser',\n /** extensions that are used to handle how urls are cached by Assets */\n CacheParser = 'cache-parser',\n /** extensions that are used to add/remove available resources from Assets */\n DetectionParser = 'detection-parser',\n\n /** extensions that are registered with the MaskEffectManager */\n MaskEffect = 'mask-effect',\n\n /** A type of extension for creating a new advanced blend mode */\n BlendMode = 'blend-mode',\n\n /** A type of extension that will be used to auto detect a resource type */\n TextureSource = 'texture-source',\n\n /** A type of extension that will be used to auto detect an environment */\n Environment = 'environment',\n\n /** A type of extension for building and triangulating custom shapes used in graphics. */\n ShapeBuilder = 'shape-builder',\n}\n\n/**\n * The metadata for an extension.\n * @memberof extensions\n * @ignore\n */\ninterface ExtensionMetadataDetails\n{\n /** The extension type, can be multiple types */\n type: ExtensionType | ExtensionType[];\n /** Optional. Some plugins provide an API name/property, to make them more easily accessible */\n name?: string;\n /** Optional, used for sorting the plugins in a particular order */\n priority?: number;\n}\n\n/**\n * The metadata for an extension.\n * @memberof extensions\n */\ntype ExtensionMetadata = ExtensionType | ExtensionMetadataDetails;\n\n/**\n * Format when registering an extension. Generally, the extension\n * should have these values as `extension` static property,\n * but you can override name or type by providing an object.\n * @memberof extensions\n */\ninterface ExtensionFormat\n{\n /** The extension type, can be multiple types */\n type: ExtensionType | ExtensionType[];\n /** Optional. Some plugins provide an API name/property, such as Renderer plugins */\n name?: string;\n /** Optional, used for sorting the plugins in a particular order */\n priority?: number;\n /** Reference to the plugin object/class */\n ref: any;\n}\n\n/**\n * Extension format that is used internally for registrations.\n * @memberof extensions\n * @ignore\n */\ninterface StrictExtensionFormat extends ExtensionFormat\n{\n /** The extension type, always expressed as multiple, even if a single */\n type: ExtensionType[];\n}\n\ntype ExtensionHandler = (extension: StrictExtensionFormat) => void;\n\n/**\n * Convert input into extension format data.\n * @ignore\n */\nconst normalizeExtension = (ext: ExtensionFormat | any): StrictExtensionFormat =>\n{\n // Class/Object submission, use extension object\n if (typeof ext === 'function' || (typeof ext === 'object' && ext.extension))\n {\n // #if _DEBUG\n if (!ext.extension)\n {\n throw new Error('Extension class must have an extension object');\n }\n // #endif\n const metadata: ExtensionMetadataDetails = (typeof ext.extension !== 'object')\n ? { type: ext.extension }\n : ext.extension;\n\n ext = { ...metadata, ref: ext };\n }\n if (typeof ext === 'object')\n {\n ext = { ...ext };\n }\n else\n {\n throw new Error('Invalid extension type');\n }\n\n if (typeof ext.type === 'string')\n {\n ext.type = [ext.type];\n }\n\n return ext;\n};\n\n/**\n * Get the priority for an extension.\n * @ignore\n * @param ext - Any extension\n * @param defaultPriority - Fallback priority if none is defined.\n * @returns The priority for the extension.\n * @memberof extensions\n */\nexport const normalizeExtensionPriority = (ext: ExtensionFormat | any, defaultPriority: number): number =>\n normalizeExtension(ext).priority ?? defaultPriority;\n\n/**\n * Global registration of all PixiJS extensions. One-stop-shop for extensibility.\n *\n * Import the `extensions` object and use it to register new functionality via the described methods below.\n * ```js\n * import { extensions } from 'pixi.js';\n *\n * // register a new extension\n * extensions.add(myExtension);\n * ```\n * @property {Function} remove - Remove extensions from PixiJS.\n * @property {Function} add - Register new extensions with PixiJS.\n * @property {Function} handle - Internal method to handle extensions by name.\n * @property {Function} handleByMap - Handle a type, but using a map by `name` property.\n * @property {Function} handleByNamedList - Handle a type, but using a list of extensions with a `name` property.\n * @property {Function} handleByList - Handle a type, but using a list of extensions.\n * @memberof extensions\n */\nconst extensions = {\n\n /** @ignore */\n _addHandlers: {} as Partial<Record<ExtensionType, ExtensionHandler>>,\n\n /** @ignore */\n _removeHandlers: {} as Partial<Record<ExtensionType, ExtensionHandler>>,\n\n /** @ignore */\n _queue: {} as Partial<Record<ExtensionType, StrictExtensionFormat[]>>,\n\n /**\n * Remove extensions from PixiJS.\n * @param extensions - Extensions to be removed.\n * @returns {extensions} For chaining.\n */\n remove(...extensions: Array<ExtensionFormat | any>)\n {\n extensions.map(normalizeExtension).forEach((ext) =>\n {\n ext.type.forEach((type) => this._removeHandlers[type]?.(ext));\n });\n\n return this;\n },\n\n /**\n * Register new extensions with PixiJS.\n * @param extensions - The spread of extensions to add to PixiJS.\n * @returns {extensions} For chaining.\n */\n add(...extensions: Array<ExtensionFormat | any>)\n {\n // Handle any extensions either passed as class w/ data or as data\n extensions.map(normalizeExtension).forEach((ext) =>\n {\n ext.type.forEach((type) =>\n {\n const handlers = this._addHandlers;\n const queue = this._queue;\n\n if (!handlers[type])\n {\n queue[type] = queue[type] || [];\n queue[type]?.push(ext);\n }\n else\n {\n handlers[type]?.(ext);\n }\n });\n });\n\n return this;\n },\n\n /**\n * Internal method to handle extensions by name.\n * @param type - The extension type.\n * @param onAdd - Function handler when extensions are added/registered {@link StrictExtensionFormat}.\n * @param onRemove - Function handler when extensions are removed/unregistered {@link StrictExtensionFormat}.\n * @returns {extensions} For chaining.\n */\n handle(type: ExtensionType, onAdd: ExtensionHandler, onRemove: ExtensionHandler)\n {\n const addHandlers = this._addHandlers;\n const removeHandlers = this._removeHandlers;\n\n // #if _DEBUG\n if (addHandlers[type] || removeHandlers[type])\n {\n throw new Error(`Extension type ${type} already has a handler`);\n }\n // #endif\n\n addHandlers[type] = onAdd;\n removeHandlers[type] = onRemove;\n\n // Process the queue\n const queue = this._queue;\n\n // Process any plugins that have been registered before the handler\n if (queue[type])\n {\n queue[type]?.forEach((ext) => onAdd(ext));\n delete queue[type];\n }\n\n return this;\n },\n\n /**\n * Handle a type, but using a map by `name` property.\n * @param type - Type of extension to handle.\n * @param map - The object map of named extensions.\n * @returns {extensions} For chaining.\n */\n handleByMap(type: ExtensionType, map: Record<string, any>)\n {\n return this.handle(type,\n (extension) =>\n {\n if (extension.name)\n {\n map[extension.name] = extension.ref;\n }\n },\n (extension) =>\n {\n if (extension.name)\n {\n delete map[extension.name];\n }\n }\n );\n },\n\n /**\n * Handle a type, but using a list of extensions with a `name` property.\n * @param type - Type of extension to handle.\n * @param map - The array of named extensions.\n * @param defaultPriority - Fallback priority if none is defined.\n * @returns {extensions} For chaining.\n */\n handleByNamedList(type: ExtensionType, map: {name: string, value: any}[], defaultPriority = -1)\n {\n return this.handle(\n type,\n (extension) =>\n {\n const index = map.findIndex((item) => item.name === extension.name);\n\n if (index >= 0) return;\n\n map.push({ name: extension.name, value: extension.ref });\n map.sort((a, b) =>\n normalizeExtensionPriority(b.value, defaultPriority)\n - normalizeExtensionPriority(a.value, defaultPriority));\n },\n (extension) =>\n {\n const index = map.findIndex((item) => item.name === extension.name);\n\n if (index !== -1)\n {\n map.splice(index, 1);\n }\n }\n );\n },\n\n /**\n * Handle a type, but using a list of extensions.\n * @param type - Type of extension to handle.\n * @param list - The list of extensions.\n * @param defaultPriority - The default priority to use if none is specified.\n * @returns {extensions} For chaining.\n */\n handleByList(type: ExtensionType, list: any[], defaultPriority = -1)\n {\n return this.handle(\n type,\n (extension) =>\n {\n if (list.includes(extension.ref))\n {\n return;\n }\n\n list.push(extension.ref);\n list.sort((a, b) =>\n normalizeExtensionPriority(b, defaultPriority) - normalizeExtensionPriority(a, defaultPriority));\n },\n (extension) =>\n {\n const index = list.indexOf(extension.ref);\n\n if (index !== -1)\n {\n list.splice(index, 1);\n }\n }\n );\n },\n};\n\nexport {\n extensions,\n ExtensionType,\n};\nexport type {\n StrictExtensionFormat as ExtensionFormat,\n ExtensionFormat as ExtensionFormatLoose,\n ExtensionHandler,\n ExtensionMetadata,\n ExtensionMetadataDetails\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return\"string\"==typeof r?r.length>0:\"number\"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},a=function(r){return{r:e(r.r,0,255),g:e(r.g,0,255),b:e(r.b,0,255),a:e(r.a)}},o=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:n(r.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?\"0\"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:e(r.s,0,100),l:e(r.l,0,100),a:e(r.a)}},d=function(r){return{h:n(r.h),s:n(r.s),l:n(r.l),a:n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=func