@razorpay/blade 12.92.1 → 12.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/spark/bottom-frame.jpg +0 -0
- package/assets/spark/colorama-center-gradient-map.jpg +0 -0
- package/assets/spark/colorama-gradient-map-blue.jpg +0 -0
- package/assets/spark/colorama-gradient-map-green.jpg +0 -0
- package/assets/spark/ray-pulse.mp4 +0 -0
- package/assets/spark/spark-base-video.mp4 +0 -0
- package/assets/spark/success-animation-circle.mp4 +0 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradient.js +9 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradientMount.js +18 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/shader.js +69 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/shader.js.map +1 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/useFluidGradient.js +7 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/PerformanceManager.js +7 -0
- package/build/lib/native/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js +13 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js +28 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/presets.js +4 -0
- package/build/lib/native/components/Spark/RzpGlass/presets.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js +920 -0
- package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/utils.js +4 -0
- package/build/lib/native/components/Spark/RzpGlass/utils.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/webgl-utils.js +7 -0
- package/build/lib/native/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
- package/build/lib/native/components/index.js +2 -0
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradient.js +92 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradientMount.js +110 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/index.js +2 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/index.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js +18 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/useFluidGradient.js +34 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/PerformanceManager.js +455 -0
- package/build/lib/web/development/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +263 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +911 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/index.js +24 -0
- package/build/lib/web/development/components/Spark/RzpGlass/index.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/presets.js +151 -0
- package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js +5 -0
- package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js +77 -0
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/webgl-utils.js +200 -0
- package/build/lib/web/development/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
- package/build/lib/web/development/components/Spark/index.js +3 -0
- package/build/lib/web/development/components/Spark/index.js.map +1 -0
- package/build/lib/web/development/components/index.js +3 -0
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/production/_virtual/cloneDeep.js +1 -1
- package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradient.js +92 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradientMount.js +110 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/index.js +2 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/index.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js +18 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/useFluidGradient.js +34 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/PerformanceManager.js +455 -0
- package/build/lib/web/production/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +263 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +911 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/index.js +24 -0
- package/build/lib/web/production/components/Spark/RzpGlass/index.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/presets.js +151 -0
- package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js +5 -0
- package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js +77 -0
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/webgl-utils.js +200 -0
- package/build/lib/web/production/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
- package/build/lib/web/production/components/Spark/index.js +3 -0
- package/build/lib/web/production/components/Spark/index.js.map +1 -0
- package/build/lib/web/production/components/index.js +3 -0
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
- package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
- package/build/types/components/index.d.ts +297 -1
- package/build/types/components/index.native.d.ts +297 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RzpGlassMount.js","sources":["../../../../../../src/components/Spark/RzpGlass/RzpGlassMount.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/no-implicit-any-catch */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable one-var */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable default-case */\n/* eslint-disable @typescript-eslint/no-inferrable-types */\n\n/**\n * RzpGlassMount\n *\n * Core vanilla class for the RzpGlass WebGL shader effect.\n * Modeled after paper-shaders' ShaderMount with extensions for video textures.\n *\n * @see https://github.com/paper-design/shaders/blob/main/packages/shaders/src/shader-mount.ts\n */\nimport { rzpGlassVertexShader, rzpGlassFragmentShader } from './rzpGlassShader';\nimport type { RzpGlassConfig, RzpGlassAssets } from './types';\nimport { DEFAULT_CONFIG } from './presets';\nimport { loadImage, loadVideo, isSafari, bestGuessBrowserZoom } from './utils';\nimport { createProgram, setupFullscreenQuad, Texture } from './webgl-utils';\nimport { WebGLPerformanceController, LEVEL_RENDER_SETTINGS } from './PerformanceManager';\nimport type { PerformanceLevel } from './PerformanceManager';\n\n// Reference resolution for zoom-independent displacement\nconst REF_RESOLUTION = { width: 3000, height: 2000 };\n\n// Default max pixel count (1920 * 1080 * 4 = 8,294,400 pixels)\nconst DEFAULT_MAX_PIXEL_COUNT = 1920 * 1080 * 4;\n\n// Default styles for the shader container\nconst defaultStyle = `@layer rzp-glass {\n :where([data-rzp-glass]) {\n isolation: isolate;\n position: relative;\n overflow: hidden;\n\n & canvas {\n contain: strict;\n display: block;\n position: absolute;\n z-index: -1;\n border-radius: inherit;\n }\n }\n}`;\n\n/** Map of config keys to uniform names */\nconst CONFIG_TO_UNIFORM: Record<string, string> = {\n enableDisplacement: 'uEnableDisplacement',\n enableColorama: 'uEnableColorama',\n enableBloom: 'uEnableBloom',\n enableLightSweep: 'uEnableLightSweep',\n inputMin: 'uInputMin',\n inputMax: 'uInputMax',\n modifyGamma: 'uModifyGamma',\n posterizeLevels: 'uPosterizeLevels',\n cycleRepetitions: 'uCycleRepetitions',\n phaseShift: 'uPhaseShift',\n cycleSpeed: 'uCycleSpeed',\n wrapMode: 'uWrapMode',\n reverse: 'uReverse',\n blendWithOriginal: 'uBlendWithOriginal',\n lightIntensity: 'uLightIntensity',\n lightStartFrame: 'uLightStartFrame',\n numSegments: 'uNumSegments',\n slitAngle: 'uSlitAngle',\n displacementX: 'uDisplacementX',\n displacementY: 'uDisplacementY',\n enableCenterElement: 'uEnableCenterElement',\n centerAnimDuration: 'uCenterAnimDuration',\n ccBlackPoint: 'uCCBlackPoint',\n ccWhitePoint: 'uCCWhitePoint',\n ccMidtoneGamma: 'uCCMidtoneGamma',\n ccGamma: 'uCCGamma',\n ccContrast: 'uCCContrast',\n zoom: 'uZoom',\n // panX and panY are combined into uPan (vec2) in setUniformValues\n // backgroundColor is handled separately (needs clear color update)\n edgeFeather: 'uEdgeFeather',\n};\n\nexport class RzpGlassMount {\n public parentElement: HTMLElement;\n public canvasElement: HTMLCanvasElement;\n\n private gl: WebGLRenderingContext;\n private program: WebGLProgram | null = null;\n private uniformLocations: Record<string, WebGLUniformLocation | null> = {};\n private uniformCache: Record<string, unknown> = {};\n\n // Textures\n private videoTexture: Texture | null = null;\n private gradientMapTexture: Texture | null = null;\n private gradientMap2Texture: Texture | null = null;\n private centerGradientMapTexture: Texture | null = null;\n\n // Gradient map blend animation state\n private currentGradientMapBlend = 0;\n\n // Video element\n private video: HTMLVideoElement | null = null;\n private videoFrameCallbackId: number | null = null;\n\n // Animation state (paper-shader style)\n private rafId: number | null = null;\n /** Last render time in seconds */\n private lastRenderTime = 0;\n /** Frame count (increments every frame) */\n private currentFrame = 0;\n\n // Video-specific animation state\n /** Time for independent light animation (accumulates deltaTime) */\n private independentLightTime = 0;\n /** Last video animation time (for detecting jumps) */\n private lastVideoTime = 0;\n\n // Configuration\n private config: Required<RzpGlassConfig>;\n private assets: RzpGlassAssets;\n\n // State flags\n private hasBeenDisposed = false;\n private isInitialized = false;\n private resolutionChanged = true;\n\n // Visible UV bounds (where container clips the canvas)\n // vec4(minX, minY, maxX, maxY) - portion of canvas UV that's visible\n private visibleUvBounds: [number, number, number, number] = [0, 0, 1, 1];\n\n // Resize handling\n private resizeObserver: ResizeObserver | null = null;\n private renderScale = 1;\n private parentWidth = 0;\n private parentHeight = 0;\n private parentDevicePixelWidth = 0;\n private parentDevicePixelHeight = 0;\n private devicePixelsSupported = false;\n private minPixelRatio: number;\n private maxPixelCount: number;\n private isSafariBrowser = isSafari();\n\n // Performance monitoring\n private performanceController: WebGLPerformanceController | null = null;\n\n constructor(\n parentElement: HTMLElement,\n assets: RzpGlassAssets,\n config: Partial<RzpGlassConfig> = {},\n /** Starting frame offset in ms for deterministic results */\n frame = 0,\n /** Minimum pixel ratio to render at (default: 2) */\n minPixelRatio = 1,\n /** Maximum pixel count to render (default: ~8.3M) */\n maxPixelCount = DEFAULT_MAX_PIXEL_COUNT,\n ) {\n this.parentElement = parentElement;\n this.assets = assets;\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.currentFrame = frame;\n this.minPixelRatio = minPixelRatio;\n this.maxPixelCount = maxPixelCount;\n\n // Inject default styles if not already present\n if (!document.querySelector('style[data-rzp-glass-style]')) {\n const styleElement = document.createElement('style');\n styleElement.innerHTML = defaultStyle;\n styleElement.setAttribute('data-rzp-glass-style', '');\n document.head.prepend(styleElement);\n }\n\n // Create canvas element\n this.canvasElement = document.createElement('canvas');\n this.parentElement.prepend(this.canvasElement);\n this.parentElement.setAttribute('data-rzp-glass', '');\n\n // Get WebGL context with alpha for transparency during loading\n const gl = this.canvasElement.getContext('webgl', {\n antialias: false,\n premultipliedAlpha: false,\n depth: false,\n alpha: true,\n powerPreference: 'high-performance',\n })!;\n this.gl = gl;\n\n this.performanceController = new WebGLPerformanceController({\n gl: this.gl,\n onLevelChange: this.handlePerformanceLevelChange,\n });\n\n this.stopIfPotato();\n\n // Flip Y axis when uploading textures (video/images have Y=0 at top, WebGL has Y=0 at bottom)\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n\n // WebGL state setup (matching OGL defaults for 2D rendering)\n gl.disable(gl.DEPTH_TEST);\n gl.disable(gl.CULL_FACE);\n\n // Set clear color to transparent (for alpha blending during loading)\n gl.clearColor(0, 0, 0, 0);\n\n // Initialize program\n this.initProgram();\n this.setupPositionAttribute();\n this.setupUniformLocations();\n this.setupResizeObserver();\n\n // Visual viewport listener for zoom changes\n visualViewport?.addEventListener('resize', this.handleVisualViewportChange);\n\n // Listen for visibility changes to pause when tab is hidden\n document.addEventListener('visibilitychange', this.handleDocumentVisibilityChange);\n }\n\n private stopIfPotato(): asserts this is this {\n if (!this.performanceController?.isPotato()) {\n return;\n }\n this.stopRenderLoop();\n throw new Error('RzpGlass: WebGL is not supported in this browser');\n }\n\n /**\n * Load all assets (video or static image + gradient maps) and start rendering.\n * When `assets.imageSrc` is provided it is used as a static base texture and\n * no video element is created.\n */\n async loadAssets(): Promise<void> {\n this.stopIfPotato();\n try {\n const useStaticImage = Boolean(this.assets.imageSrc);\n\n const gradientMap2Src = this.assets.gradientMap2Src ?? this.assets.gradientMapSrc!;\n\n const [baseAsset, gradientMap, gradientMap2, centerGradientMap] = await Promise.all([\n useStaticImage ? loadImage(this.assets.imageSrc!) : loadVideo(this.assets.videoSrc!),\n loadImage(this.assets.gradientMapSrc!),\n loadImage(gradientMap2Src),\n loadImage(this.assets.centerGradientMapSrc!),\n ]);\n\n if (useStaticImage) {\n // Static image path — upload once to texture unit 0, no video loop needed\n this.setupImageTexture('uVideoTexture', baseAsset as HTMLImageElement, 0);\n } else {\n this.video = baseAsset as HTMLVideoElement;\n this.setupVideoTexture();\n // Set video to start time and apply playback rate before playback\n this.video.currentTime = this.config.startTime;\n this.video.playbackRate = this.config.playbackRate;\n if (!this.config.paused) {\n await this.video.play().catch((e) => {\n console.warn('Video autoplay failed:', e);\n });\n }\n }\n\n this.setupImageTexture('uGradientMap', gradientMap as HTMLImageElement, 1);\n this.setupImageTexture('uCenterGradientMap', centerGradientMap as HTMLImageElement, 2);\n this.setupImageTexture('uGradientMap2', gradientMap2 as HTMLImageElement, 3);\n\n // Set initial uniform values\n this.setAllUniforms();\n\n this.isInitialized = true;\n\n // Initial resize\n this.handleResize();\n\n // Start the render loop (runs continuously)\n this.startRenderLoop();\n } catch (error) {\n console.error('RzpGlass: Failed to load assets', error);\n throw error;\n }\n }\n\n private initProgram(): void {\n const program = createProgram(this.gl, rzpGlassVertexShader, rzpGlassFragmentShader);\n if (!program) {\n throw new Error('RzpGlass: Failed to create WebGL program');\n }\n this.program = program;\n }\n\n private setupPositionAttribute(): void {\n const buffers = setupFullscreenQuad(this.gl, this.program!);\n if (!buffers) {\n throw new Error('RzpGlass: Failed to setup fullscreen quad');\n }\n }\n\n private setupUniformLocations(): void {\n const gl = this.gl;\n const program = this.program!;\n\n // All uniform names from the shader\n const uniformNames = [\n 'uTime',\n 'iResolution',\n 'uDpr',\n 'uVideoTexture',\n 'uGradientMap',\n 'uGradientMap2',\n 'uGradientMapBlend',\n 'uCenterGradientMap',\n 'uEnableDisplacement',\n 'uEnableColorama',\n 'uEnableBloom',\n 'uEnableLightSweep',\n 'uInputMin',\n 'uInputMax',\n 'uModifyGamma',\n 'uPosterizeLevels',\n 'uCycleRepetitions',\n 'uPhaseShift',\n 'uCycleSpeed',\n 'uWrapMode',\n 'uReverse',\n 'uBlendWithOriginal',\n 'uLightIntensity',\n 'uFrameCount',\n 'uLightStartFrame',\n 'uNumSegments',\n 'uSlitAngle',\n 'uDisplacementX',\n 'uDisplacementY',\n 'uEnableCenterElement',\n 'uCenterAnimDuration',\n 'uCenterAnimTime',\n 'uCCBlackPoint',\n 'uCCWhitePoint',\n 'uCCMidtoneGamma',\n 'uCCGamma',\n 'uCCContrast',\n 'uZoom',\n 'uPan', // vec2(panX, panY) - set in vertex shader\n 'uEdgeFeather',\n 'uRefResolution',\n 'uVisibleUvBounds', // vec4(minX, minY, maxX, maxY) - visible portion of canvas in UV space\n 'uBackgroundColor', // vec3(r, g, b) - background color to blend with\n // Ripple wave\n 'uEnableRippleWave',\n 'uRippleSpeed',\n 'uRippleBlend',\n 'uRippleAngularPower',\n 'uRippleRadialFalloff',\n 'uRippleWaitTime',\n ];\n\n for (const name of uniformNames) {\n this.uniformLocations[name] = gl.getUniformLocation(program, name);\n }\n }\n\n private setupVideoTexture(): void {\n this.videoTexture = new Texture(this.gl, { textureUnit: 0 });\n\n // Use requestVideoFrameCallback for efficient video texture updates\n if (this.video && 'requestVideoFrameCallback' in this.video) {\n const updateVideoFrame = () => {\n if (this.hasBeenDisposed || !this.video || !this.videoTexture) return;\n\n this.videoTexture.update(this.video);\n\n this.videoFrameCallbackId = (this.video as any).requestVideoFrameCallback(updateVideoFrame);\n };\n this.videoFrameCallbackId = (this.video as any).requestVideoFrameCallback(updateVideoFrame);\n }\n }\n\n private setupImageTexture(\n uniformName: string,\n image: HTMLImageElement,\n textureUnit: number,\n ): void {\n const texture = new Texture(this.gl, { textureUnit });\n texture.image(image);\n\n if (uniformName === 'uVideoTexture') {\n this.videoTexture = texture;\n } else if (uniformName === 'uGradientMap') {\n this.gradientMapTexture = texture;\n } else if (uniformName === 'uGradientMap2') {\n this.gradientMap2Texture = texture;\n } else if (uniformName === 'uCenterGradientMap') {\n this.centerGradientMapTexture = texture;\n }\n }\n\n /**\n * Hot-swap the gradient map texture at runtime.\n * Accepts an HTMLCanvasElement (generated by generateGradientCanvas) or an HTMLImageElement.\n * No reinitialization required — the next frame will pick up the new texture.\n */\n public updateGradientMapTexture(source: HTMLCanvasElement | HTMLImageElement): void {\n if (!this.isInitialized || !this.gradientMapTexture) return;\n this.gradientMapTexture.image(source);\n }\n\n private setupResizeObserver(): void {\n this.resizeObserver = new ResizeObserver(([entry]) => {\n if (entry?.borderBoxSize[0]) {\n const physicalPixelSize = entry.devicePixelContentBoxSize?.[0];\n\n if (physicalPixelSize !== undefined) {\n this.devicePixelsSupported = true;\n this.parentDevicePixelWidth = physicalPixelSize.inlineSize;\n this.parentDevicePixelHeight = physicalPixelSize.blockSize;\n }\n\n this.parentWidth = entry.borderBoxSize[0].inlineSize;\n this.parentHeight = entry.borderBoxSize[0].blockSize;\n }\n\n this.handleResize();\n });\n\n this.resizeObserver.observe(this.parentElement);\n }\n\n private handleVisualViewportChange = (): void => {\n // Restart resize observer to get fresh callback on zoom change\n this.resizeObserver?.disconnect();\n this.setupResizeObserver();\n };\n\n private handleResize = (): void => {\n // Container dimensions (use stored values or fallback to clientWidth/Height)\n const containerWidth = this.parentWidth || this.parentElement.clientWidth;\n const containerHeight = this.parentHeight || this.parentElement.clientHeight;\n const containerAspect = containerWidth / containerHeight;\n\n // \"Cover\" behavior: fill container while maintaining aspect ratio (crop overflow)\n let canvasWidth: number;\n let canvasHeight: number;\n\n const targetAspectRatio = this.config.aspectRatio;\n if (containerAspect > targetAspectRatio) {\n // Container is wider than target - fit to width, crop top/bottom\n canvasWidth = containerWidth;\n canvasHeight = containerWidth / targetAspectRatio;\n } else {\n // Container is taller than target - fit to height, crop left/right\n canvasHeight = containerHeight;\n canvasWidth = containerHeight * targetAspectRatio;\n }\n\n // Center the canvas (overflow will be hidden by parent)\n const offsetX = (containerWidth - canvasWidth) / 2;\n const offsetY = (containerHeight - canvasHeight) / 2;\n\n // Calculate visible UV bounds (where container clips the canvas)\n // When canvas overflows container, we need to know which portion is visible\n const visibleMinX = -offsetX / canvasWidth;\n const visibleMaxX = (containerWidth - offsetX) / canvasWidth;\n const visibleMinY = -offsetY / canvasHeight;\n const visibleMaxY = (containerHeight - offsetY) / canvasHeight;\n this.visibleUvBounds = [visibleMinX, visibleMinY, visibleMaxX, visibleMaxY];\n\n // Set display size (CSS pixels)\n this.canvasElement.style.width = `${canvasWidth}px`;\n this.canvasElement.style.height = `${canvasHeight}px`;\n this.canvasElement.style.left = `${offsetX}px`;\n this.canvasElement.style.top = `${offsetY}px`;\n\n // Calculate target pixel dimensions for rendering\n let targetPixelWidth = 0;\n let targetPixelHeight = 0;\n\n const dpr = Math.max(1, window.devicePixelRatio);\n const pinchZoom = visualViewport?.scale ?? 1;\n\n if (this.devicePixelsSupported) {\n // Use real pixel size if we know it, but maintain aspect ratio\n // Calculate the scale ratio from parent to canvas (for aspect ratio correction)\n const canvasToParentRatioX = canvasWidth / containerWidth;\n const canvasToParentRatioY = canvasHeight / containerHeight;\n\n const scaleToMeetMinPixelRatio = Math.max(1, this.minPixelRatio / dpr);\n // Apply aspect ratio correction to device pixel dimensions\n targetPixelWidth =\n this.parentDevicePixelWidth * canvasToParentRatioX * scaleToMeetMinPixelRatio * pinchZoom;\n targetPixelHeight =\n this.parentDevicePixelHeight * canvasToParentRatioY * scaleToMeetMinPixelRatio * pinchZoom;\n } else {\n // Approximate using devicePixelRatio\n let targetRenderScale = Math.max(dpr, this.minPixelRatio) * pinchZoom;\n\n if (this.isSafariBrowser) {\n // Safari reports physical devicePixelRatio, need to factor in zoom manually\n const zoomLevel = bestGuessBrowserZoom();\n targetRenderScale *= Math.max(1, zoomLevel);\n }\n\n targetPixelWidth = Math.round(canvasWidth) * targetRenderScale;\n targetPixelHeight = Math.round(canvasHeight) * targetRenderScale;\n }\n\n // Prevent total rendered pixels from exceeding maxPixelCount\n const maxPixelCountHeadroom =\n Math.sqrt(this.maxPixelCount) / Math.sqrt(targetPixelWidth * targetPixelHeight);\n const scaleToMeetMaxPixelCount = Math.min(1, maxPixelCountHeadroom);\n const newWidth = Math.round(targetPixelWidth * scaleToMeetMaxPixelCount);\n const newHeight = Math.round(targetPixelHeight * scaleToMeetMaxPixelCount);\n const newRenderScale = newWidth / Math.round(canvasWidth);\n\n if (\n this.canvasElement.width !== newWidth ||\n this.canvasElement.height !== newHeight ||\n this.renderScale !== newRenderScale\n ) {\n this.renderScale = newRenderScale;\n this.canvasElement.width = newWidth;\n this.canvasElement.height = newHeight;\n this.resolutionChanged = true;\n this.gl.viewport(0, 0, newWidth, newHeight);\n\n // Only render immediately when the loop isn't running — if it is,\n // resolutionChanged=true is enough and the next RAF picks it up.\n // Calling render() while the loop is active spawns a duplicate RAF chain.\n if (this.rafId === null) {\n this.render(performance.now());\n }\n }\n };\n\n private handleDocumentVisibilityChange = (): void => {\n if (document.hidden) {\n // Pause render loop when tab is hidden\n this.stopRenderLoop();\n this.video?.pause();\n } else {\n // Resume render loop when tab is visible\n this.startRenderLoop();\n // Only resume video if not paused\n if (!this.config.paused) {\n this.video?.play().catch(() => {});\n }\n }\n };\n\n private setAllUniforms(): void {\n const gl = this.gl;\n gl.useProgram(this.program);\n\n // Texture units\n gl.uniform1i(this.uniformLocations.uVideoTexture, 0);\n gl.uniform1i(this.uniformLocations.uGradientMap, 1);\n gl.uniform1i(this.uniformLocations.uCenterGradientMap, 2);\n gl.uniform1i(this.uniformLocations.uGradientMap2, 3);\n gl.uniform1f(this.uniformLocations.uGradientMapBlend, this.currentGradientMapBlend);\n\n // Set all config-based uniforms\n this.setUniformValues(this.config);\n\n // Explicitly set pan uniform (vertex shader uniform)\n gl.uniform2f(this.uniformLocations.uPan, this.config.panX, this.config.panY);\n\n // Reference resolution (constant)\n gl.uniform2f(this.uniformLocations.uRefResolution, REF_RESOLUTION.width, REF_RESOLUTION.height);\n\n // Background color (or set to -1 if not provided)\n if (this.config.backgroundColor) {\n const [r, g, b] = this.config.backgroundColor;\n gl.uniform3f(this.uniformLocations.uBackgroundColor, r, g, b);\n // Also set clear color to match\n gl.clearColor(r, g, b, 1.0);\n } else {\n // Set to -1 to indicate no background color blending\n gl.uniform3f(this.uniformLocations.uBackgroundColor, -1.0, -1.0, -1.0);\n // Use transparent clear color\n gl.clearColor(0, 0, 0, 0);\n }\n\n // Visible UV bounds (where container clips the canvas)\n gl.uniform4f(\n this.uniformLocations.uVisibleUvBounds,\n this.visibleUvBounds[0],\n this.visibleUvBounds[1],\n this.visibleUvBounds[2],\n this.visibleUvBounds[3],\n );\n }\n\n /** Check if uniform values are equal (handles arrays) */\n private areUniformValuesEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (Array.isArray(a) && Array.isArray(b) && a.length === b.length) {\n return a.every((val, i) => this.areUniformValuesEqual(val, b[i]));\n }\n return false;\n }\n\n /** Set uniform values with caching to avoid redundant updates */\n private setUniformValues(config: Partial<RzpGlassConfig>): void {\n const gl = this.gl;\n gl.useProgram(this.program);\n\n Object.entries(config).forEach(([key, value]) => {\n if (value === undefined) return;\n\n // Check if value has changed\n if (this.areUniformValuesEqual(this.uniformCache[key], value)) return;\n this.uniformCache[key] = value;\n\n // Get uniform name from config key\n const uniformName = CONFIG_TO_UNIFORM[key];\n if (!uniformName) return; // Skip non-uniform config values\n\n const location = this.uniformLocations[uniformName];\n if (!location) return;\n\n if (typeof value === 'boolean') {\n gl.uniform1f(location, value ? 1 : 0);\n } else if (typeof value === 'number') {\n gl.uniform1f(location, value);\n } else if (Array.isArray(value)) {\n // Handle array uniforms (cast to number[] since config values are all numbers/booleans)\n const flatArray = (value as number[]).flat() as number[];\n switch (flatArray.length) {\n case 2:\n gl.uniform2fv(location, flatArray);\n break;\n case 3:\n gl.uniform3fv(location, flatArray);\n break;\n case 4:\n gl.uniform4fv(location, flatArray);\n break;\n }\n }\n });\n\n // Handle special pan uniform (vec2 in vertex shader)\n if (config.panX !== undefined || config.panY !== undefined) {\n const panCacheKey = 'pan';\n const panValue = [this.config.panX, this.config.panY];\n if (!this.areUniformValuesEqual(this.uniformCache[panCacheKey], panValue)) {\n this.uniformCache[panCacheKey] = panValue;\n gl.uniform2f(this.uniformLocations.uPan, panValue[0], panValue[1]);\n }\n }\n\n // Handle special backgroundColor uniform (vec3 in fragment shader)\n if (config.backgroundColor !== undefined) {\n const bgCacheKey = 'backgroundColor';\n if (!this.areUniformValuesEqual(this.uniformCache[bgCacheKey], config.backgroundColor)) {\n this.uniformCache[bgCacheKey] = config.backgroundColor;\n if (config.backgroundColor) {\n const [r, g, b] = config.backgroundColor;\n gl.uniform3f(this.uniformLocations.uBackgroundColor, r, g, b);\n // Also update clear color to match\n gl.clearColor(r, g, b, 1.0);\n } else {\n // Set to -1 to indicate no background color blending\n gl.uniform3f(this.uniformLocations.uBackgroundColor, -1.0, -1.0, -1.0);\n // Use transparent clear color\n gl.clearColor(0, 0, 0, 0);\n }\n }\n }\n }\n\n /**\n * Update uniforms from config (partial update supported)\n */\n public setUniforms(newConfig: Partial<RzpGlassConfig>): void {\n this.config = { ...this.config, ...newConfig };\n\n if (!this.isInitialized) return;\n\n // Use the new caching-based uniform setter\n this.setUniformValues(newConfig);\n\n // Handle paused state changes - control video play/pause\n if (newConfig.paused !== undefined) {\n if (newConfig.paused) {\n this.video?.pause();\n } else {\n this.video?.play().catch(() => {});\n }\n }\n\n if (newConfig.playbackRate !== undefined && this.video) {\n this.video.playbackRate = newConfig.playbackRate;\n }\n\n if (newConfig.aspectRatio !== undefined) {\n this.handleResize();\n }\n }\n\n private startRenderLoop(): void {\n if (this.rafId !== null) return; // Already running\n this.lastRenderTime = performance.now() * 0.001; // Initialize in seconds\n this.rafId = requestAnimationFrame(this.render);\n }\n\n private stopRenderLoop(): void {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n }\n\n private render = (currentTime: number): void => {\n if (this.hasBeenDisposed) return;\n\n // ALWAYS schedule next frame first (like the original loop)\n this.rafId = requestAnimationFrame(this.render);\n\n if (this.program === null) {\n console.warn('Tried to render before program was initialized');\n return;\n }\n\n const gl = this.gl;\n const video = this.video;\n\n // Calculate delta time in seconds (framerate independent)\n const currentTimeSeconds = currentTime * 0.001; // Convert ms to seconds\n const deltaTime = currentTimeSeconds - this.lastRenderTime;\n this.lastRenderTime = currentTimeSeconds;\n this.currentFrame++; // Increment frame count every frame\n\n const usingStaticImage = !video && this.videoTexture !== null;\n\n // Skip rendering if video isn't ready — do NOT clear the canvas here so the\n // last rendered frame stays visible instead of flashing transparent/black.\n // This prevents flickering during video native loop boundary frames.\n if (!usingStaticImage) {\n if (!video || video.readyState < video.HAVE_CURRENT_DATA) {\n return;\n }\n\n // Update video texture (fallback for browsers without requestVideoFrameCallback)\n if (!('requestVideoFrameCallback' in video) && this.videoTexture) {\n this.videoTexture.update(video);\n }\n\n // Handle video looping within start/end time range (only when not paused)\n if (!this.config.paused) {\n if (video.currentTime < this.config.startTime || video.currentTime >= this.config.endTime) {\n video.currentTime = this.config.startTime;\n }\n }\n }\n\n // Clear canvas now that we know we have data to draw.\n // Doing this after the readyState guard means we keep the last frame\n // during any brief gaps (e.g. native video loop boundary).\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n // Animation time: driven by video position for video mode, real elapsed time for static image\n const videoAnimTime = usingStaticImage\n ? currentTimeSeconds\n : video!.currentTime - this.config.startTime;\n\n // Update center animation time (always accumulate real time for smooth animation)\n if (this.config.animateLightIndependently || usingStaticImage) {\n this.independentLightTime += deltaTime;\n } else {\n const videoTimeDelta = videoAnimTime - this.lastVideoTime;\n const isVideoJump = Math.abs(videoTimeDelta) > 0.1 || videoTimeDelta < -0.01;\n\n if (isVideoJump) {\n this.independentLightTime = videoAnimTime;\n } else {\n this.independentLightTime += deltaTime;\n }\n }\n this.lastVideoTime = videoAnimTime;\n\n // Use program and set per-frame uniforms\n gl.useProgram(this.program);\n\n // Time uniforms\n gl.uniform1f(this.uniformLocations.uTime, currentTimeSeconds);\n // When animateLightIndependently is true, use real elapsed time for frame count\n // so light effects aren't tied to video playback\n const frameCount = this.config.animateLightIndependently\n ? this.independentLightTime * 30 // Use independent time (in seconds * 30fps)\n : videoAnimTime * 30; // Use video time (in seconds * 30fps)\n gl.uniform1f(this.uniformLocations.uFrameCount, frameCount);\n gl.uniform1f(this.uniformLocations.uCenterAnimTime, this.independentLightTime);\n\n // Resolution uniforms (only when changed)\n if (this.resolutionChanged) {\n gl.uniform2f(\n this.uniformLocations.iResolution,\n this.canvasElement.width,\n this.canvasElement.height,\n );\n gl.uniform1f(this.uniformLocations.uDpr, this.renderScale);\n // Update visible UV bounds (where container clips the canvas)\n gl.uniform4f(\n this.uniformLocations.uVisibleUvBounds,\n this.visibleUvBounds[0],\n this.visibleUvBounds[1],\n this.visibleUvBounds[2],\n this.visibleUvBounds[3],\n );\n this.resolutionChanged = false;\n }\n\n // Animate cycleRepetitions if enabled\n if (\n this.config.animateCycleReps &&\n this.currentFrame > this.config.cycleRepetitionsStartFrame\n ) {\n const elapsed = this.currentFrame - this.config.cycleRepetitionsStartFrame;\n const cycleProgress =\n (elapsed % (this.config.cycleRepetitionsDuration * 2)) /\n this.config.cycleRepetitionsDuration;\n const pingPong = cycleProgress <= 1 ? cycleProgress : 2 - cycleProgress;\n const eased = pingPong * pingPong * (3 - 2 * pingPong); // smoothstep\n const delta = this.config.cycleRepetitionsEnd - this.config.cycleRepetitionsStart;\n gl.uniform1f(\n this.uniformLocations.uCycleRepetitions,\n this.config.cycleRepetitionsStart + eased * delta,\n );\n } else {\n gl.uniform1f(this.uniformLocations.uCycleRepetitions, this.config.cycleRepetitions);\n }\n\n // Animate gradientMapBlend smoothly towards target\n const targetBlend = this.config.gradientMapBlend;\n if (this.currentGradientMapBlend !== targetBlend) {\n const speed = 1.0 / this.config.gradientMapBlendDuration;\n const diff = targetBlend - this.currentGradientMapBlend;\n const step = Math.sign(diff) * Math.min(Math.abs(diff), speed * deltaTime);\n this.currentGradientMapBlend += step;\n gl.uniform1f(this.uniformLocations.uGradientMapBlend, this.currentGradientMapBlend);\n }\n\n // Draw\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n // ===== Public API (paper-shader style) =====\n\n /** Get the current animation frame (in ms) */\n public getCurrentFrame(): number {\n return this.currentFrame;\n }\n\n /** Set a specific frame for deterministic results */\n public setFrame(newFrame: number): void {\n this.currentFrame = newFrame;\n }\n\n /** Set the maximum pixel count for performance tuning */\n public setMaxPixelCount(newMaxPixelCount: number = DEFAULT_MAX_PIXEL_COUNT): void {\n this.maxPixelCount = newMaxPixelCount;\n this.handleResize();\n }\n\n /** Set the minimum pixel ratio for quality tuning */\n public setMinPixelRatio(newMinPixelRatio: number = 2): void {\n this.minPixelRatio = newMinPixelRatio;\n this.handleResize();\n }\n\n /** Play video */\n public play(): void {\n this.config.paused = false;\n this.video?.play().catch(() => {});\n }\n\n /** Pause video */\n public pause(): void {\n this.config.paused = true;\n this.video?.pause();\n }\n\n /** Seek to specific time in video */\n public setTime(time: number): void {\n if (this.video) {\n this.video.currentTime = time;\n }\n }\n\n private handlePerformanceLevelChange = (level: PerformanceLevel): void => {\n if (level === 0) {\n this.stopRenderLoop();\n this.canvasElement.style.display = 'none';\n return;\n }\n\n const { maxPixelCount, minPixelRatio } = LEVEL_RENDER_SETTINGS[level];\n this.maxPixelCount = maxPixelCount;\n this.minPixelRatio = minPixelRatio;\n\n // Restore canvas + render loop if they were previously hidden/stopped\n if (this.canvasElement.style.display === 'none') {\n this.canvasElement.style.display = '';\n }\n if (this.isInitialized) {\n this.startRenderLoop();\n }\n\n this.handleResize();\n };\n\n /** Clean up all WebGL resources */\n public dispose(): void {\n // Immediately mark as disposed to prevent future renders\n this.hasBeenDisposed = true;\n\n // Cancel any pending RAF\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n\n // Cancel video frame callback\n if (\n this.videoFrameCallbackId !== null &&\n this.video &&\n 'cancelVideoFrameCallback' in this.video\n ) {\n (this.video as any).cancelVideoFrameCallback(this.videoFrameCallbackId);\n }\n\n // Pause and remove video\n if (this.video) {\n this.video.pause();\n this.video.src = '';\n this.video.load();\n this.video = null;\n }\n\n // Clean up WebGL resources\n if (this.gl && this.program) {\n this.videoTexture?.destroy();\n this.gradientMapTexture?.destroy();\n this.gradientMap2Texture?.destroy();\n this.centerGradientMapTexture?.destroy();\n this.gl.deleteProgram(this.program);\n this.program = null;\n\n // Reset WebGL state\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, null);\n this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, null);\n this.gl.bindRenderbuffer(this.gl.RENDERBUFFER, null);\n this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, null);\n\n // Clear any errors\n this.gl.getError();\n }\n\n // Clean up performance controller\n this.performanceController?.dispose();\n this.performanceController = null;\n\n // Clean up observers and listeners\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n\n visualViewport?.removeEventListener('resize', this.handleVisualViewportChange);\n document.removeEventListener('visibilitychange', this.handleDocumentVisibilityChange);\n\n this.uniformLocations = {};\n this.uniformCache = {};\n\n // Remove canvas\n this.canvasElement.remove();\n this.parentElement.removeAttribute('data-rzp-glass');\n }\n}\n"],"names":["REF_RESOLUTION","width","height","DEFAULT_MAX_PIXEL_COUNT","defaultStyle","CONFIG_TO_UNIFORM","enableDisplacement","enableColorama","enableBloom","enableLightSweep","inputMin","inputMax","modifyGamma","posterizeLevels","cycleRepetitions","phaseShift","cycleSpeed","wrapMode","reverse","blendWithOriginal","lightIntensity","lightStartFrame","numSegments","slitAngle","displacementX","displacementY","enableCenterElement","centerAnimDuration","ccBlackPoint","ccWhitePoint","ccMidtoneGamma","ccGamma","ccContrast","zoom","edgeFeather","RzpGlassMount","parentElement","assets","_this","_visualViewport2","config","arguments","length","undefined","frame","minPixelRatio","maxPixelCount","_classCallCheck","program","uniformLocations","uniformCache","videoTexture","gradientMapTexture","gradientMap2Texture","centerGradientMapTexture","currentGradientMapBlend","video","videoFrameCallbackId","rafId","lastRenderTime","currentFrame","independentLightTime","lastVideoTime","hasBeenDisposed","isInitialized","resolutionChanged","visibleUvBounds","resizeObserver","renderScale","parentWidth","parentHeight","parentDevicePixelWidth","parentDevicePixelHeight","devicePixelsSupported","isSafariBrowser","isSafari","performanceController","handleVisualViewportChange","_this$resizeObserver","disconnect","setupResizeObserver","handleResize","_visualViewport$scale","_visualViewport","containerWidth","clientWidth","containerHeight","clientHeight","containerAspect","canvasWidth","canvasHeight","targetAspectRatio","aspectRatio","offsetX","offsetY","visibleMinX","visibleMaxX","visibleMinY","visibleMaxY","canvasElement","style","left","top","targetPixelWidth","targetPixelHeight","dpr","Math","max","window","devicePixelRatio","pinchZoom","visualViewport","scale","canvasToParentRatioX","canvasToParentRatioY","scaleToMeetMinPixelRatio","targetRenderScale","zoomLevel","bestGuessBrowserZoom","round","maxPixelCountHeadroom","sqrt","scaleToMeetMaxPixelCount","min","newWidth","newHeight","newRenderScale","gl","viewport","render","performance","now","handleDocumentVisibilityChange","document","hidden","_this$video","stopRenderLoop","pause","startRenderLoop","paused","_this$video2","play","catch","currentTime","requestAnimationFrame","console","warn","currentTimeSeconds","deltaTime","usingStaticImage","readyState","HAVE_CURRENT_DATA","update","startTime","endTime","clear","COLOR_BUFFER_BIT","videoAnimTime","animateLightIndependently","videoTimeDelta","isVideoJump","abs","useProgram","uniform1f","uTime","frameCount","uFrameCount","uCenterAnimTime","uniform2f","iResolution","uDpr","uniform4f","uVisibleUvBounds","animateCycleReps","cycleRepetitionsStartFrame","elapsed","cycleProgress","cycleRepetitionsDuration","pingPong","eased","delta","cycleRepetitionsEnd","cycleRepetitionsStart","uCycleRepetitions","targetBlend","gradientMapBlend","speed","gradientMapBlendDuration","diff","step","sign","uGradientMapBlend","drawArrays","TRIANGLES","handlePerformanceLevelChange","level","display","_LEVEL_RENDER_SETTING","LEVEL_RENDER_SETTINGS","Object","assign","DEFAULT_CONFIG","querySelector","styleElement","createElement","innerHTML","setAttribute","head","prepend","getContext","antialias","premultipliedAlpha","depth","alpha","powerPreference","WebGLPerformanceController","onLevelChange","stopIfPotato","pixelStorei","UNPACK_FLIP_Y_WEBGL","disable","DEPTH_TEST","CULL_FACE","clearColor","initProgram","setupPositionAttribute","setupUniformLocations","addEventListener","_createClass","key","value","_this$performanceCont","isPotato","Error","_loadAssets","_asyncToGenerator","_this$assets$gradient","useStaticImage","Boolean","imageSrc","gradientMap2Src","gradientMapSrc","_yield$Promise$all","Promise","all","loadImage","loadVideo","videoSrc","centerGradientMapSrc","_yield$Promise$all2","_slicedToArray","baseAsset","gradientMap","gradientMap2","centerGradientMap","setupImageTexture","setupVideoTexture","playbackRate","e","setAllUniforms","error","loadAssets","apply","createProgram","rzpGlassVertexShader","rzpGlassFragmentShader","buffers","setupFullscreenQuad","uniformNames","name","getUniformLocation","_this2","Texture","textureUnit","updateVideoFrame","requestVideoFrameCallback","uniformName","image","texture","updateGradientMapTexture","source","_this3","ResizeObserver","_ref","_ref2","entry","borderBoxSize","_entry$devicePixelCon","physicalPixelSize","devicePixelContentBoxSize","inlineSize","blockSize","observe","uniform1i","uVideoTexture","uGradientMap","uCenterGradientMap","uGradientMap2","setUniformValues","uPan","panX","panY","uRefResolution","backgroundColor","_this$config$backgrou","r","g","b","uniform3f","uBackgroundColor","areUniformValuesEqual","a","_this4","Array","isArray","every","val","i","_this5","entries","forEach","_ref3","_ref4","location","flatArray","flat","uniform2fv","uniform3fv","uniform4fv","panCacheKey","panValue","bgCacheKey","_config$backgroundCol","setUniforms","newConfig","_this$video3","_this$video4","cancelAnimationFrame","getCurrentFrame","setFrame","newFrame","setMaxPixelCount","newMaxPixelCount","setMinPixelRatio","newMinPixelRatio","_this$video5","_this$video6","setTime","time","dispose","_this$performanceCont2","_visualViewport3","cancelVideoFrameCallback","src","load","_this$videoTexture","_this$gradientMapText","_this$gradientMap2Tex","_this$centerGradientM","destroy","deleteProgram","bindBuffer","ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER","bindRenderbuffer","RENDERBUFFER","bindFramebuffer","FRAMEBUFFER","getError","removeEventListener","remove","removeAttribute"],"mappings":";;;;;;;;;;AA0BA,IAAMA,cAAc,CAAG,CAAEC,KAAK,CAAE,IAAI,CAAEC,MAAM,CAAE,IAAK,CAAC,CAGpD,IAAMC,uBAAuB,CAAG,IAAI,CAAG,IAAI,CAAG,CAAC,CAG/C,IAAMC,YAAY,CAAG,CAAA;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,CAAE,CAGF,IAAMC,iBAAyC,CAAG,CAChDC,kBAAkB,CAAE,qBAAqB,CACzCC,cAAc,CAAE,iBAAiB,CACjCC,WAAW,CAAE,cAAc,CAC3BC,gBAAgB,CAAE,mBAAmB,CACrCC,QAAQ,CAAE,WAAW,CACrBC,QAAQ,CAAE,WAAW,CACrBC,WAAW,CAAE,cAAc,CAC3BC,eAAe,CAAE,kBAAkB,CACnCC,gBAAgB,CAAE,mBAAmB,CACrCC,UAAU,CAAE,aAAa,CACzBC,UAAU,CAAE,aAAa,CACzBC,QAAQ,CAAE,WAAW,CACrBC,OAAO,CAAE,UAAU,CACnBC,iBAAiB,CAAE,oBAAoB,CACvCC,cAAc,CAAE,iBAAiB,CACjCC,eAAe,CAAE,kBAAkB,CACnCC,WAAW,CAAE,cAAc,CAC3BC,SAAS,CAAE,YAAY,CACvBC,aAAa,CAAE,gBAAgB,CAC/BC,aAAa,CAAE,gBAAgB,CAC/BC,mBAAmB,CAAE,sBAAsB,CAC3CC,kBAAkB,CAAE,qBAAqB,CACzCC,YAAY,CAAE,eAAe,CAC7BC,YAAY,CAAE,eAAe,CAC7BC,cAAc,CAAE,iBAAiB,CACjCC,OAAO,CAAE,UAAU,CACnBC,UAAU,CAAE,aAAa,CACzBC,IAAI,CAAE,OAAO,CAGbC,WAAW,CAAE,cACf,CAAC,CAEY,IAAAC,aAAa,CA+DxB,UAAA,CAAA,SAAAA,aACEC,CAAAA,aAA0B,CAC1BC,MAAsB,CAQtB,CAAAC,IAAAA,KAAA,MAAAC,gBAAA,CAAA,IAPAC,MAA+B,CAAAC,SAAA,CAAAC,MAAA,CAAA,CAAA,EAAAD,SAAA,CAAA,CAAA,CAAA,GAAAE,SAAA,CAAAF,SAAA,CAAG,CAAA,CAAA,CAAA,EAAE,CAAA,IAEpCG,KAAK,CAAAH,SAAA,CAAAC,MAAA,CAAA,CAAA,EAAAD,SAAA,CAAA,CAAA,CAAA,GAAAE,SAAA,CAAAF,SAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAET,IAAAI,cAAa,CAAAJ,SAAA,CAAAC,MAAA,CAAA,CAAA,EAAAD,SAAA,CAAAE,CAAAA,CAAAA,GAAAA,SAAA,CAAAF,SAAA,CAAG,CAAA,CAAA,CAAA,CAAC,CAEjB,IAAAK,cAAa,CAAAL,SAAA,CAAAC,MAAA,CAAAD,CAAAA,EAAAA,SAAA,CAAAE,CAAAA,CAAAA,GAAAA,SAAA,CAAAF,SAAA,CAAA,CAAA,CAAA,CAAGtC,uBAAuB,CAAA4C,eAAA,CAAA,IAAA,CAAAZ,aAAA,CAAA,CAAA,IAAA,CAnEjCa,OAAO,CAAwB,IAAI,CACnCC,IAAAA,CAAAA,gBAAgB,CAAgD,EAAE,CAClEC,IAAAA,CAAAA,YAAY,CAA4B,EAAE,CAG1CC,IAAAA,CAAAA,YAAY,CAAmB,IAAI,CACnCC,IAAAA,CAAAA,kBAAkB,CAAmB,IAAI,CAAA,IAAA,CACzCC,mBAAmB,CAAmB,IAAI,CAAA,IAAA,CAC1CC,wBAAwB,CAAmB,IAAI,CAG/CC,IAAAA,CAAAA,uBAAuB,CAAG,CAAC,CAG3BC,IAAAA,CAAAA,KAAK,CAA4B,IAAI,MACrCC,oBAAoB,CAAkB,IAAI,CAAA,IAAA,CAG1CC,KAAK,CAAkB,IAAI,CAAA,IAAA,CAE3BC,cAAc,CAAG,CAAC,CAElBC,IAAAA,CAAAA,YAAY,CAAG,CAAC,CAIhBC,IAAAA,CAAAA,oBAAoB,CAAG,CAAC,CAAA,IAAA,CAExBC,aAAa,CAAG,CAAC,CAAA,IAAA,CAOjBC,eAAe,CAAG,KAAK,CACvBC,IAAAA,CAAAA,aAAa,CAAG,KAAK,CACrBC,IAAAA,CAAAA,iBAAiB,CAAG,IAAI,MAIxBC,eAAe,CAAqC,CAAC,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,CAAA,IAAA,CAGhEC,cAAc,CAA0B,IAAI,CAAA,IAAA,CAC5CC,WAAW,CAAG,CAAC,CACfC,IAAAA,CAAAA,WAAW,CAAG,CAAC,CACfC,IAAAA,CAAAA,YAAY,CAAG,CAAC,MAChBC,sBAAsB,CAAG,CAAC,CAAA,IAAA,CAC1BC,uBAAuB,CAAG,CAAC,CAAA,IAAA,CAC3BC,qBAAqB,CAAG,KAAK,CAG7BC,IAAAA,CAAAA,eAAe,CAAGC,QAAQ,EAAE,MAG5BC,qBAAqB,CAAsC,IAAI,CAAA,IAAA,CAwR/DC,0BAA0B,CAAG,UAAY,CAAA,IAAAC,oBAAA,CAE/C,CAAAA,oBAAA,CAAAxC,KAAI,CAAC6B,cAAc,GAAA,IAAA,CAAA,KAAA,CAAA,CAAnBW,oBAAA,CAAqBC,UAAU,EAAE,CACjCzC,KAAI,CAAC0C,mBAAmB,EAAE,CAC5B,CAAC,CAAA,IAAA,CAEOC,YAAY,CAAG,UAAY,CAAAC,IAAAA,qBAAA,CAAAC,eAAA,CAEjC,IAAMC,cAAc,CAAG9C,KAAI,CAAC+B,WAAW,EAAI/B,KAAI,CAACF,aAAa,CAACiD,WAAW,CACzE,IAAMC,eAAe,CAAGhD,KAAI,CAACgC,YAAY,EAAIhC,KAAI,CAACF,aAAa,CAACmD,YAAY,CAC5E,IAAMC,eAAe,CAAGJ,cAAc,CAAGE,eAAe,CAGxD,IAAIG,WAAmB,CACvB,IAAIC,YAAoB,CAExB,IAAMC,iBAAiB,CAAGrD,KAAI,CAACE,MAAM,CAACoD,WAAW,CACjD,GAAIJ,eAAe,CAAGG,iBAAiB,CAAE,CAEvCF,WAAW,CAAGL,cAAc,CAC5BM,YAAY,CAAGN,cAAc,CAAGO,iBAAiB,CACnD,CAAC,KAAM,CAELD,YAAY,CAAGJ,eAAe,CAC9BG,WAAW,CAAGH,eAAe,CAAGK,iBAAiB,CACnD,CAGA,IAAME,OAAO,CAAG,CAACT,cAAc,CAAGK,WAAW,EAAI,CAAC,CAClD,IAAMK,OAAO,CAAG,CAACR,eAAe,CAAGI,YAAY,EAAI,CAAC,CAIpD,IAAMK,WAAW,CAAG,CAACF,OAAO,CAAGJ,WAAW,CAC1C,IAAMO,WAAW,CAAG,CAACZ,cAAc,CAAGS,OAAO,EAAIJ,WAAW,CAC5D,IAAMQ,WAAW,CAAG,CAACH,OAAO,CAAGJ,YAAY,CAC3C,IAAMQ,WAAW,CAAG,CAACZ,eAAe,CAAGQ,OAAO,EAAIJ,YAAY,CAC9DpD,KAAI,CAAC4B,eAAe,CAAG,CAAC6B,WAAW,CAAEE,WAAW,CAAED,WAAW,CAAEE,WAAW,CAAC,CAG3E5D,KAAI,CAAC6D,aAAa,CAACC,KAAK,CAACnG,KAAK,CAAG,CAAGwF,EAAAA,WAAW,IAAI,CACnDnD,KAAI,CAAC6D,aAAa,CAACC,KAAK,CAAClG,MAAM,CAAG,CAAGwF,EAAAA,YAAY,CAAI,EAAA,CAAA,CACrDpD,KAAI,CAAC6D,aAAa,CAACC,KAAK,CAACC,IAAI,CAAG,CAAA,EAAGR,OAAO,CAAA,EAAA,CAAI,CAC9CvD,KAAI,CAAC6D,aAAa,CAACC,KAAK,CAACE,GAAG,CAAG,CAAGR,EAAAA,OAAO,IAAI,CAG7C,IAAIS,gBAAgB,CAAG,CAAC,CACxB,IAAIC,iBAAiB,CAAG,CAAC,CAEzB,IAAMC,GAAG,CAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAEC,MAAM,CAACC,gBAAgB,CAAC,CAChD,IAAMC,SAAS,CAAA,CAAA5B,qBAAA,CAAA,CAAAC,eAAA,CAAG4B,cAAc,GAAd5B,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,eAAA,CAAgB6B,KAAK,GAAA9B,IAAAA,CAAAA,qBAAA,CAAI,CAAC,CAE5C,GAAI5C,KAAI,CAACmC,qBAAqB,CAAE,CAG9B,IAAMwC,oBAAoB,CAAGxB,WAAW,CAAGL,cAAc,CACzD,IAAM8B,oBAAoB,CAAGxB,YAAY,CAAGJ,eAAe,CAE3D,IAAM6B,wBAAwB,CAAGT,IAAI,CAACC,GAAG,CAAC,CAAC,CAAErE,KAAI,CAACO,aAAa,CAAG4D,GAAG,CAAC,CAEtEF,gBAAgB,CACdjE,KAAI,CAACiC,sBAAsB,CAAG0C,oBAAoB,CAAGE,wBAAwB,CAAGL,SAAS,CAC3FN,iBAAiB,CACflE,KAAI,CAACkC,uBAAuB,CAAG0C,oBAAoB,CAAGC,wBAAwB,CAAGL,SAAS,CAC9F,CAAC,KAAM,CAEL,IAAIM,iBAAiB,CAAGV,IAAI,CAACC,GAAG,CAACF,GAAG,CAAEnE,KAAI,CAACO,aAAa,CAAC,CAAGiE,SAAS,CAErE,GAAIxE,KAAI,CAACoC,eAAe,CAAE,CAExB,IAAM2C,SAAS,CAAGC,oBAAoB,EAAE,CACxCF,iBAAiB,EAAIV,IAAI,CAACC,GAAG,CAAC,CAAC,CAAEU,SAAS,CAAC,CAC7C,CAEAd,gBAAgB,CAAGG,IAAI,CAACa,KAAK,CAAC9B,WAAW,CAAC,CAAG2B,iBAAiB,CAC9DZ,iBAAiB,CAAGE,IAAI,CAACa,KAAK,CAAC7B,YAAY,CAAC,CAAG0B,iBAAiB,CAClE,CAGA,IAAMI,qBAAqB,CACzBd,IAAI,CAACe,IAAI,CAACnF,KAAI,CAACQ,aAAa,CAAC,CAAG4D,IAAI,CAACe,IAAI,CAAClB,gBAAgB,CAAGC,iBAAiB,CAAC,CACjF,IAAMkB,wBAAwB,CAAGhB,IAAI,CAACiB,GAAG,CAAC,CAAC,CAAEH,qBAAqB,CAAC,CACnE,IAAMI,QAAQ,CAAGlB,IAAI,CAACa,KAAK,CAAChB,gBAAgB,CAAGmB,wBAAwB,CAAC,CACxE,IAAMG,SAAS,CAAGnB,IAAI,CAACa,KAAK,CAACf,iBAAiB,CAAGkB,wBAAwB,CAAC,CAC1E,IAAMI,cAAc,CAAGF,QAAQ,CAAGlB,IAAI,CAACa,KAAK,CAAC9B,WAAW,CAAC,CAEzD,GACEnD,KAAI,CAAC6D,aAAa,CAAClG,KAAK,GAAK2H,QAAQ,EACrCtF,KAAI,CAAC6D,aAAa,CAACjG,MAAM,GAAK2H,SAAS,EACvCvF,KAAI,CAAC8B,WAAW,GAAK0D,cAAc,CACnC,CACAxF,KAAI,CAAC8B,WAAW,CAAG0D,cAAc,CACjCxF,KAAI,CAAC6D,aAAa,CAAClG,KAAK,CAAG2H,QAAQ,CACnCtF,KAAI,CAAC6D,aAAa,CAACjG,MAAM,CAAG2H,SAAS,CACrCvF,KAAI,CAAC2B,iBAAiB,CAAG,IAAI,CAC7B3B,KAAI,CAACyF,EAAE,CAACC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAEJ,QAAQ,CAAEC,SAAS,CAAC,CAK3C,GAAIvF,KAAI,CAACoB,KAAK,GAAK,IAAI,CAAE,CACvBpB,KAAI,CAAC2F,MAAM,CAACC,WAAW,CAACC,GAAG,EAAE,CAAC,CAChC,CACF,CACF,CAAC,CAAA,IAAA,CAEOC,8BAA8B,CAAG,UAAY,CACnD,GAAIC,QAAQ,CAACC,MAAM,CAAE,CAAAC,IAAAA,WAAA,CAEnBjG,KAAI,CAACkG,cAAc,EAAE,CACrB,CAAAD,WAAA,CAAAjG,KAAI,CAACkB,KAAK,GAAA,IAAA,CAAA,KAAA,CAAA,CAAV+E,WAAA,CAAYE,KAAK,EAAE,CACrB,CAAC,KAAM,CAELnG,KAAI,CAACoG,eAAe,EAAE,CAEtB,GAAI,CAACpG,KAAI,CAACE,MAAM,CAACmG,MAAM,CAAE,CAAAC,IAAAA,YAAA,CACvB,CAAAA,YAAA,CAAAtG,KAAI,CAACkB,KAAK,GAAVoF,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,YAAA,CAAYC,IAAI,EAAE,CAACC,KAAK,CAAC,UAAM,EAAE,CAAC,CACpC,CACF,CACF,CAAC,CAAA,IAAA,CAsKOb,MAAM,CAAG,SAACc,WAAmB,CAAW,CAC9C,GAAIzG,KAAI,CAACyB,eAAe,CAAE,OAG1BzB,KAAI,CAACoB,KAAK,CAAGsF,qBAAqB,CAAC1G,KAAI,CAAC2F,MAAM,CAAC,CAE/C,GAAI3F,KAAI,CAACU,OAAO,GAAK,IAAI,CAAE,CACzBiG,OAAO,CAACC,IAAI,CAAC,gDAAgD,CAAC,CAC9D,OACF,CAEA,IAAMnB,EAAE,CAAGzF,KAAI,CAACyF,EAAE,CAClB,IAAMvE,KAAK,CAAGlB,KAAI,CAACkB,KAAK,CAGxB,IAAM2F,kBAAkB,CAAGJ,WAAW,CAAG,KAAK,CAC9C,IAAMK,SAAS,CAAGD,kBAAkB,CAAG7G,KAAI,CAACqB,cAAc,CAC1DrB,KAAI,CAACqB,cAAc,CAAGwF,kBAAkB,CACxC7G,KAAI,CAACsB,YAAY,EAAE,CAEnB,IAAMyF,gBAAgB,CAAG,CAAC7F,KAAK,EAAIlB,KAAI,CAACa,YAAY,GAAK,IAAI,CAK7D,GAAI,CAACkG,gBAAgB,CAAE,CACrB,GAAI,CAAC7F,KAAK,EAAIA,KAAK,CAAC8F,UAAU,CAAG9F,KAAK,CAAC+F,iBAAiB,CAAE,CACxD,OACF,CAGA,GAAI,EAAE,2BAA2B,GAAI/F,KAAK,CAAC,EAAIlB,KAAI,CAACa,YAAY,CAAE,CAChEb,KAAI,CAACa,YAAY,CAACqG,MAAM,CAAChG,KAAK,CAAC,CACjC,CAGA,GAAI,CAAClB,KAAI,CAACE,MAAM,CAACmG,MAAM,CAAE,CACvB,GAAInF,KAAK,CAACuF,WAAW,CAAGzG,KAAI,CAACE,MAAM,CAACiH,SAAS,EAAIjG,KAAK,CAACuF,WAAW,EAAIzG,KAAI,CAACE,MAAM,CAACkH,OAAO,CAAE,CACzFlG,KAAK,CAACuF,WAAW,CAAGzG,KAAI,CAACE,MAAM,CAACiH,SAAS,CAC3C,CACF,CACF,CAKA1B,EAAE,CAAC4B,KAAK,CAAC5B,EAAE,CAAC6B,gBAAgB,CAAC,CAG7B,IAAMC,aAAa,CAAGR,gBAAgB,CAClCF,kBAAkB,CAClB3F,KAAK,CAAEuF,WAAW,CAAGzG,KAAI,CAACE,MAAM,CAACiH,SAAS,CAG9C,GAAInH,KAAI,CAACE,MAAM,CAACsH,yBAAyB,EAAIT,gBAAgB,CAAE,CAC7D/G,KAAI,CAACuB,oBAAoB,EAAIuF,SAAS,CACxC,CAAC,KAAM,CACL,IAAMW,cAAc,CAAGF,aAAa,CAAGvH,KAAI,CAACwB,aAAa,CACzD,IAAMkG,WAAW,CAAGtD,IAAI,CAACuD,GAAG,CAACF,cAAc,CAAC,CAAG,GAAG,EAAIA,cAAc,CAAG,CAAC,IAAI,CAE5E,GAAIC,WAAW,CAAE,CACf1H,KAAI,CAACuB,oBAAoB,CAAGgG,aAAa,CAC3C,CAAC,KAAM,CACLvH,KAAI,CAACuB,oBAAoB,EAAIuF,SAAS,CACxC,CACF,CACA9G,KAAI,CAACwB,aAAa,CAAG+F,aAAa,CAGlC9B,EAAE,CAACmC,UAAU,CAAC5H,KAAI,CAACU,OAAO,CAAC,CAG3B+E,EAAE,CAACoC,SAAS,CAAC7H,KAAI,CAACW,gBAAgB,CAACmH,KAAK,CAAEjB,kBAAkB,CAAC,CAG7D,IAAMkB,UAAU,CAAG/H,KAAI,CAACE,MAAM,CAACsH,yBAAyB,CACpDxH,KAAI,CAACuB,oBAAoB,CAAG,EAAE,CAC9BgG,aAAa,CAAG,EAAE,CACtB9B,EAAE,CAACoC,SAAS,CAAC7H,KAAI,CAACW,gBAAgB,CAACqH,WAAW,CAAED,UAAU,CAAC,CAC3DtC,EAAE,CAACoC,SAAS,CAAC7H,KAAI,CAACW,gBAAgB,CAACsH,eAAe,CAAEjI,KAAI,CAACuB,oBAAoB,CAAC,CAG9E,GAAIvB,KAAI,CAAC2B,iBAAiB,CAAE,CAC1B8D,EAAE,CAACyC,SAAS,CACVlI,KAAI,CAACW,gBAAgB,CAACwH,WAAW,CACjCnI,KAAI,CAAC6D,aAAa,CAAClG,KAAK,CACxBqC,KAAI,CAAC6D,aAAa,CAACjG,MACrB,CAAC,CACD6H,EAAE,CAACoC,SAAS,CAAC7H,KAAI,CAACW,gBAAgB,CAACyH,IAAI,CAAEpI,KAAI,CAAC8B,WAAW,CAAC,CAE1D2D,EAAE,CAAC4C,SAAS,CACVrI,KAAI,CAACW,gBAAgB,CAAC2H,gBAAgB,CACtCtI,KAAI,CAAC4B,eAAe,CAAC,CAAC,CAAC,CACvB5B,KAAI,CAAC4B,eAAe,CAAC,CAAC,CAAC,CACvB5B,KAAI,CAAC4B,eAAe,CAAC,CAAC,CAAC,CACvB5B,KAAI,CAAC4B,eAAe,CAAC,CAAC,CACxB,CAAC,CACD5B,KAAI,CAAC2B,iBAAiB,CAAG,KAAK,CAChC,CAGA,GACE3B,KAAI,CAACE,MAAM,CAACqI,gBAAgB,EAC5BvI,KAAI,CAACsB,YAAY,CAAGtB,KAAI,CAACE,MAAM,CAACsI,0BAA0B,CAC1D,CACA,IAAMC,OAAO,CAAGzI,KAAI,CAACsB,YAAY,CAAGtB,KAAI,CAACE,MAAM,CAACsI,0BAA0B,CAC1E,IAAME,aAAa,CAChBD,OAAO,EAAIzI,KAAI,CAACE,MAAM,CAACyI,wBAAwB,CAAG,CAAC,CAAC,CACrD3I,KAAI,CAACE,MAAM,CAACyI,wBAAwB,CACtC,IAAMC,QAAQ,CAAGF,aAAa,EAAI,CAAC,CAAGA,aAAa,CAAG,CAAC,CAAGA,aAAa,CACvE,IAAMG,KAAK,CAAGD,QAAQ,CAAGA,QAAQ,EAAI,CAAC,CAAG,CAAC,CAAGA,QAAQ,CAAC,CACtD,IAAME,KAAK,CAAG9I,KAAI,CAACE,MAAM,CAAC6I,mBAAmB,CAAG/I,KAAI,CAACE,MAAM,CAAC8I,qBAAqB,CACjFvD,EAAE,CAACoC,SAAS,CACV7H,KAAI,CAACW,gBAAgB,CAACsI,iBAAiB,CACvCjJ,KAAI,CAACE,MAAM,CAAC8I,qBAAqB,CAAGH,KAAK,CAAGC,KAC9C,CAAC,CACH,CAAC,KAAM,CACLrD,EAAE,CAACoC,SAAS,CAAC7H,KAAI,CAACW,gBAAgB,CAACsI,iBAAiB,CAAEjJ,KAAI,CAACE,MAAM,CAAC1B,gBAAgB,CAAC,CACrF,CAGA,IAAM0K,WAAW,CAAGlJ,KAAI,CAACE,MAAM,CAACiJ,gBAAgB,CAChD,GAAInJ,KAAI,CAACiB,uBAAuB,GAAKiI,WAAW,CAAE,CAChD,IAAME,KAAK,CAAG,GAAG,CAAGpJ,KAAI,CAACE,MAAM,CAACmJ,wBAAwB,CACxD,IAAMC,IAAI,CAAGJ,WAAW,CAAGlJ,KAAI,CAACiB,uBAAuB,CACvD,IAAMsI,IAAI,CAAGnF,IAAI,CAACoF,IAAI,CAACF,IAAI,CAAC,CAAGlF,IAAI,CAACiB,GAAG,CAACjB,IAAI,CAACuD,GAAG,CAAC2B,IAAI,CAAC,CAAEF,KAAK,CAAGtC,SAAS,CAAC,CAC1E9G,KAAI,CAACiB,uBAAuB,EAAIsI,IAAI,CACpC9D,EAAE,CAACoC,SAAS,CAAC7H,KAAI,CAACW,gBAAgB,CAAC8I,iBAAiB,CAAEzJ,KAAI,CAACiB,uBAAuB,CAAC,CACrF,CAGAwE,EAAE,CAACiE,UAAU,CAACjE,EAAE,CAACkE,SAAS,CAAE,CAAC,CAAE,CAAC,CAAC,CACnC,CAAC,CA6COC,IAAAA,CAAAA,4BAA4B,CAAG,SAACC,KAAuB,CAAW,CACxE,GAAIA,KAAK,GAAK,CAAC,CAAE,CACf7J,KAAI,CAACkG,cAAc,EAAE,CACrBlG,KAAI,CAAC6D,aAAa,CAACC,KAAK,CAACgG,OAAO,CAAG,MAAM,CACzC,OACF,CAEA,IAAAC,qBAAA,CAAyCC,qBAAqB,CAACH,KAAK,CAAC,CAA7DrJ,aAAa,CAAAuJ,qBAAA,CAAbvJ,aAAa,CAAED,aAAa,CAAAwJ,qBAAA,CAAbxJ,aAAa,CACpCP,KAAI,CAACQ,aAAa,CAAGA,aAAa,CAClCR,KAAI,CAACO,aAAa,CAAGA,aAAa,CAGlC,GAAIP,KAAI,CAAC6D,aAAa,CAACC,KAAK,CAACgG,OAAO,GAAK,MAAM,CAAE,CAC/C9J,KAAI,CAAC6D,aAAa,CAACC,KAAK,CAACgG,OAAO,CAAG,EAAE,CACvC,CACA,GAAI9J,KAAI,CAAC0B,aAAa,CAAE,CACtB1B,KAAI,CAACoG,eAAe,EAAE,CACxB,CAEApG,KAAI,CAAC2C,YAAY,EAAE,CACrB,CAAC,CA7uBC,IAAI,CAAC7C,aAAa,CAAGA,aAAa,CAClC,IAAI,CAACC,MAAM,CAAGA,MAAM,CACpB,IAAI,CAACG,MAAM,CAAA+J,MAAA,CAAAC,MAAA,CAAA,EAAA,CAAQC,cAAc,CAAKjK,MAAM,CAAE,CAC9C,IAAI,CAACoB,YAAY,CAAGhB,KAAK,CACzB,IAAI,CAACC,aAAa,CAAGA,cAAa,CAClC,IAAI,CAACC,aAAa,CAAGA,cAAa,CAGlC,GAAI,CAACuF,QAAQ,CAACqE,aAAa,CAAC,6BAA6B,CAAC,CAAE,CAC1D,IAAMC,YAAY,CAAGtE,QAAQ,CAACuE,aAAa,CAAC,OAAO,CAAC,CACpDD,YAAY,CAACE,SAAS,CAAGzM,YAAY,CACrCuM,YAAY,CAACG,YAAY,CAAC,sBAAsB,CAAE,EAAE,CAAC,CACrDzE,QAAQ,CAAC0E,IAAI,CAACC,OAAO,CAACL,YAAY,CAAC,CACrC,CAGA,IAAI,CAACxG,aAAa,CAAGkC,QAAQ,CAACuE,aAAa,CAAC,QAAQ,CAAC,CACrD,IAAI,CAACxK,aAAa,CAAC4K,OAAO,CAAC,IAAI,CAAC7G,aAAa,CAAC,CAC9C,IAAI,CAAC/D,aAAa,CAAC0K,YAAY,CAAC,gBAAgB,CAAE,EAAE,CAAC,CAGrD,IAAM/E,GAAE,CAAG,IAAI,CAAC5B,aAAa,CAAC8G,UAAU,CAAC,OAAO,CAAE,CAChDC,SAAS,CAAE,KAAK,CAChBC,kBAAkB,CAAE,KAAK,CACzBC,KAAK,CAAE,KAAK,CACZC,KAAK,CAAE,IAAI,CACXC,eAAe,CAAE,kBACnB,CAAC,CAAE,CACH,IAAI,CAACvF,EAAE,CAAGA,GAAE,CAEZ,IAAI,CAACnD,qBAAqB,CAAG,IAAI2I,0BAA0B,CAAC,CAC1DxF,EAAE,CAAE,IAAI,CAACA,EAAE,CACXyF,aAAa,CAAE,IAAI,CAACtB,4BACtB,CAAC,CAAC,CAEF,IAAI,CAACuB,YAAY,EAAE,CAGnB1F,GAAE,CAAC2F,WAAW,CAAC3F,GAAE,CAAC4F,mBAAmB,CAAE,IAAI,CAAC,CAG5C5F,GAAE,CAAC6F,OAAO,CAAC7F,GAAE,CAAC8F,UAAU,CAAC,CACzB9F,GAAE,CAAC6F,OAAO,CAAC7F,GAAE,CAAC+F,SAAS,CAAC,CAGxB/F,GAAE,CAACgG,UAAU,CAAC,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,CAGzB,IAAI,CAACC,WAAW,EAAE,CAClB,IAAI,CAACC,sBAAsB,EAAE,CAC7B,IAAI,CAACC,qBAAqB,EAAE,CAC5B,IAAI,CAAClJ,mBAAmB,EAAE,CAG1B,CAAAzC,gBAAA,CAAAwE,cAAc,GAAdxE,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,gBAAA,CAAgB4L,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAACtJ,0BAA0B,CAAC,CAG3EwD,QAAQ,CAAC8F,gBAAgB,CAAC,kBAAkB,CAAE,IAAI,CAAC/F,8BAA8B,CAAC,CACpF,CAAC,OAAAgG,YAAA,CAAAjM,aAAA,CAAA,CAAA,CAAAkM,GAAA,CAAAC,cAAAA,CAAAA,KAAA,CAED,SAAQb,YAAYA,EAAyB,KAAAc,qBAAA,CAC3C,GAAI,EAAA,CAAAA,qBAAA,CAAC,IAAI,CAAC3J,qBAAqB,GAA1B2J,IAAAA,EAAAA,qBAAA,CAA4BC,QAAQ,EAAE,CAAE,CAAA,CAC3C,OACF,CACA,IAAI,CAAChG,cAAc,EAAE,CACrB,MAAM,IAAIiG,KAAK,CAAC,kDAAkD,CAAC,CACrE,CAAC,CAAAJ,CAAAA,CAAAA,GAAA,cAAAC,KAAA,EAAA,UAAA,CAAA,IAAAI,WAAA,CAAAC,iBAAA,CAOD,WAAkC,CAChC,IAAI,CAAClB,YAAY,EAAE,CACnB,GAAI,CAAAmB,IAAAA,qBAAA,CACF,IAAMC,cAAc,CAAGC,OAAO,CAAC,IAAI,CAACzM,MAAM,CAAC0M,QAAQ,CAAC,CAEpD,IAAMC,eAAe,CAAA,CAAAJ,qBAAA,CAAG,IAAI,CAACvM,MAAM,CAAC2M,eAAe,GAAAJ,IAAAA,CAAAA,qBAAA,CAAI,IAAI,CAACvM,MAAM,CAAC4M,cAAe,CAElF,IAAAC,kBAAA,OAAwEC,OAAO,CAACC,GAAG,CAAC,CAClFP,cAAc,CAAGQ,SAAS,CAAC,IAAI,CAAChN,MAAM,CAAC0M,QAAS,CAAC,CAAGO,SAAS,CAAC,IAAI,CAACjN,MAAM,CAACkN,QAAS,CAAC,CACpFF,SAAS,CAAC,IAAI,CAAChN,MAAM,CAAC4M,cAAe,CAAC,CACtCI,SAAS,CAACL,eAAe,CAAC,CAC1BK,SAAS,CAAC,IAAI,CAAChN,MAAM,CAACmN,oBAAqB,CAAC,CAC7C,CAAC,CAAAC,mBAAA,CAAAC,cAAA,CAAAR,kBAAA,CAAA,CAAA,CAAA,CALKS,SAAS,CAAAF,mBAAA,CAAA,CAAA,CAAA,CAAEG,WAAW,CAAAH,mBAAA,CAAEI,CAAAA,CAAAA,CAAAA,YAAY,CAAAJ,mBAAA,CAAEK,CAAAA,CAAAA,CAAAA,iBAAiB,CAAAL,mBAAA,IAO9D,GAAIZ,cAAc,CAAE,CAElB,IAAI,CAACkB,iBAAiB,CAAC,eAAe,CAAEJ,SAAS,CAAsB,CAAC,CAAC,CAC3E,CAAC,KAAM,CACL,IAAI,CAACnM,KAAK,CAAGmM,SAA6B,CAC1C,IAAI,CAACK,iBAAiB,EAAE,CAExB,IAAI,CAACxM,KAAK,CAACuF,WAAW,CAAG,IAAI,CAACvG,MAAM,CAACiH,SAAS,CAC9C,IAAI,CAACjG,KAAK,CAACyM,YAAY,CAAG,IAAI,CAACzN,MAAM,CAACyN,YAAY,CAClD,GAAI,CAAC,IAAI,CAACzN,MAAM,CAACmG,MAAM,CAAE,CACvB,MAAU,IAAA,CAACnF,KAAK,CAACqF,IAAI,EAAE,CAACC,KAAK,CAAC,SAACoH,CAAC,CAAK,CACnCjH,OAAO,CAACC,IAAI,CAAC,wBAAwB,CAAEgH,CAAC,CAAC,CAC3C,CAAC,CAAC,CACJ,CACF,CAEA,IAAI,CAACH,iBAAiB,CAAC,cAAc,CAAEH,WAAW,CAAsB,CAAC,CAAC,CAC1E,IAAI,CAACG,iBAAiB,CAAC,oBAAoB,CAAED,iBAAiB,CAAsB,CAAC,CAAC,CACtF,IAAI,CAACC,iBAAiB,CAAC,eAAe,CAAEF,YAAY,CAAsB,CAAC,CAAC,CAG5E,IAAI,CAACM,cAAc,EAAE,CAErB,IAAI,CAACnM,aAAa,CAAG,IAAI,CAGzB,IAAI,CAACiB,YAAY,EAAE,CAGnB,IAAI,CAACyD,eAAe,EAAE,CACxB,CAAE,MAAO0H,KAAK,CAAE,CACdnH,OAAO,CAACmH,KAAK,CAAC,iCAAiC,CAAEA,KAAK,CAAC,CACvD,MAAMA,KAAK,CACb,CACF,CAAC,CAAA,CAAA,SAhDKC,UAAUA,EAAA3B,CAAAA,OAAAA,WAAA,CAAA4B,KAAA,CAAA7N,IAAAA,CAAAA,SAAA,CAAV,CAAA,CAAA,OAAA4N,UAAU,CAAAhC,CAAAA,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAA,CAAAC,aAAAA,CAAAA,KAAA,CAkDhB,SAAQN,WAAWA,EAAS,CAC1B,IAAMhL,OAAO,CAAGuN,aAAa,CAAC,IAAI,CAACxI,EAAE,CAAEyI,oBAAoB,CAAEC,sBAAsB,CAAC,CACpF,GAAI,CAACzN,OAAO,CAAE,CACZ,MAAM,IAAIyL,KAAK,CAAC,0CAA0C,CAAC,CAC7D,CACA,IAAI,CAACzL,OAAO,CAAGA,OAAO,CACxB,CAAC,CAAA,CAAA,CAAAqL,GAAA,CAAA,wBAAA,CAAAC,KAAA,CAED,SAAQL,sBAAsBA,EAAS,CACrC,IAAMyC,OAAO,CAAGC,mBAAmB,CAAC,IAAI,CAAC5I,EAAE,CAAE,IAAI,CAAC/E,OAAQ,CAAC,CAC3D,GAAI,CAAC0N,OAAO,CAAE,CACZ,MAAU,IAAAjC,KAAK,CAAC,2CAA2C,CAAC,CAC9D,CACF,CAAC,CAAAJ,CAAAA,CAAAA,GAAA,yBAAAC,KAAA,CAED,SAAQJ,qBAAqBA,EAAS,CACpC,IAAMnG,EAAE,CAAG,IAAI,CAACA,EAAE,CAClB,IAAM/E,OAAO,CAAG,IAAI,CAACA,OAAQ,CAG7B,IAAM4N,YAAY,CAAG,CACnB,OAAO,CACP,aAAa,CACb,MAAM,CACN,eAAe,CACf,cAAc,CACd,eAAe,CACf,mBAAmB,CACnB,oBAAoB,CACpB,qBAAqB,CACrB,iBAAiB,CACjB,cAAc,CACd,mBAAmB,CACnB,WAAW,CACX,WAAW,CACX,cAAc,CACd,kBAAkB,CAClB,mBAAmB,CACnB,aAAa,CACb,aAAa,CACb,WAAW,CACX,UAAU,CACV,oBAAoB,CACpB,iBAAiB,CACjB,aAAa,CACb,kBAAkB,CAClB,cAAc,CACd,YAAY,CACZ,gBAAgB,CAChB,gBAAgB,CAChB,sBAAsB,CACtB,qBAAqB,CACrB,iBAAiB,CACjB,eAAe,CACf,eAAe,CACf,iBAAiB,CACjB,UAAU,CACV,aAAa,CACb,OAAO,CACP,MAAM,CACN,cAAc,CACd,gBAAgB,CAChB,kBAAkB,CAClB,kBAAkB,CAElB,mBAAmB,CACnB,cAAc,CACd,cAAc,CACd,qBAAqB,CACrB,sBAAsB,CACtB,iBAAiB,CAClB,CAED,IAAK,IAAMC,IAAI,IAAID,YAAY,CAAE,CAC/B,IAAI,CAAC3N,gBAAgB,CAAC4N,IAAI,CAAC,CAAG9I,EAAE,CAAC+I,kBAAkB,CAAC9N,OAAO,CAAE6N,IAAI,CAAC,CACpE,CACF,CAAC,CAAAxC,CAAAA,CAAAA,GAAA,CAAAC,mBAAAA,CAAAA,KAAA,CAED,SAAQ0B,iBAAiBA,EAAS,CAAA,IAAAe,MAAA,CAAA,IAAA,CAChC,IAAI,CAAC5N,YAAY,CAAG,IAAI6N,OAAO,CAAC,IAAI,CAACjJ,EAAE,CAAE,CAAEkJ,WAAW,CAAE,CAAE,CAAC,CAAC,CAG5D,GAAI,IAAI,CAACzN,KAAK,EAAI,2BAA2B,GAAQ,IAAA,CAACA,KAAK,CAAE,CAC3D,IAAM0N,iBAAgB,CAAG,SAAnBA,gBAAgBA,EAAS,CAC7B,GAAIH,MAAI,CAAChN,eAAe,EAAI,CAACgN,MAAI,CAACvN,KAAK,EAAI,CAACuN,MAAI,CAAC5N,YAAY,CAAE,OAE/D4N,MAAI,CAAC5N,YAAY,CAACqG,MAAM,CAACuH,MAAI,CAACvN,KAAK,CAAC,CAEpCuN,MAAI,CAACtN,oBAAoB,CAAIsN,MAAI,CAACvN,KAAK,CAAS2N,yBAAyB,CAACD,iBAAgB,CAAC,CAC7F,CAAC,CACD,IAAI,CAACzN,oBAAoB,CAAI,IAAI,CAACD,KAAK,CAAS2N,yBAAyB,CAACD,iBAAgB,CAAC,CAC7F,CACF,CAAC,CAAA,CAAA,CAAA7C,GAAA,CAAA,mBAAA,CAAAC,KAAA,CAED,SAAQyB,iBAAiBA,CACvBqB,WAAmB,CACnBC,KAAuB,CACvBJ,WAAmB,CACb,CACN,IAAMK,OAAO,CAAG,IAAIN,OAAO,CAAC,IAAI,CAACjJ,EAAE,CAAE,CAAEkJ,WAAW,CAAXA,WAAY,CAAC,CAAC,CACrDK,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC,CAEpB,GAAID,WAAW,GAAK,eAAe,CAAE,CACnC,IAAI,CAACjO,YAAY,CAAGmO,OAAO,CAC7B,CAAC,KAAUF,GAAAA,WAAW,GAAK,cAAc,CAAE,CACzC,IAAI,CAAChO,kBAAkB,CAAGkO,OAAO,CACnC,CAAC,KAAM,GAAIF,WAAW,GAAK,eAAe,CAAE,CAC1C,IAAI,CAAC/N,mBAAmB,CAAGiO,OAAO,CACpC,CAAC,KAAM,GAAIF,WAAW,GAAK,oBAAoB,CAAE,CAC/C,IAAI,CAAC9N,wBAAwB,CAAGgO,OAAO,CACzC,CACF,CAAC,GAAAjD,GAAA,CAAA,0BAAA,CAAAC,KAAA,CAOD,SAAOiD,wBAAwBA,CAACC,MAA4C,CAAQ,CAClF,GAAI,CAAC,IAAI,CAACxN,aAAa,EAAI,CAAC,IAAI,CAACZ,kBAAkB,CAAE,OACrD,IAAI,CAACA,kBAAkB,CAACiO,KAAK,CAACG,MAAM,CAAC,CACvC,CAAC,CAAA,CAAA,CAAAnD,GAAA,CAAA,qBAAA,CAAAC,KAAA,CAED,SAAQtJ,mBAAmBA,EAAS,CAAAyM,IAAAA,MAAA,MAClC,IAAI,CAACtN,cAAc,CAAG,IAAIuN,cAAc,CAAC,SAAAC,IAAA,CAAa,CAAAC,IAAAA,KAAA,CAAAlC,cAAA,CAAAiC,IAAA,IAAXE,KAAK,CAAAD,KAAA,CAAA,CAAA,CAAA,CAC9C,GAAIC,KAAK,EAALA,IAAAA,EAAAA,KAAK,CAAEC,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA,IAAAC,qBAAA,CAC3B,IAAMC,iBAAiB,CAAAD,CAAAA,qBAAA,CAAGF,KAAK,CAACI,yBAAyB,eAA/BF,qBAAA,CAAkC,CAAC,CAAC,CAE9D,GAAIC,iBAAiB,GAAKrP,SAAS,CAAE,CACnC8O,MAAI,CAAChN,qBAAqB,CAAG,IAAI,CACjCgN,MAAI,CAAClN,sBAAsB,CAAGyN,iBAAiB,CAACE,UAAU,CAC1DT,MAAI,CAACjN,uBAAuB,CAAGwN,iBAAiB,CAACG,SAAS,CAC5D,CAEAV,MAAI,CAACpN,WAAW,CAAGwN,KAAK,CAACC,aAAa,CAAC,CAAC,CAAC,CAACI,UAAU,CACpDT,MAAI,CAACnN,YAAY,CAAGuN,KAAK,CAACC,aAAa,CAAC,CAAC,CAAC,CAACK,SAAS,CACtD,CAEAV,MAAI,CAACxM,YAAY,EAAE,CACrB,CAAC,CAAC,CAEF,IAAI,CAACd,cAAc,CAACiO,OAAO,CAAC,IAAI,CAAChQ,aAAa,CAAC,CACjD,CAAC,GAAAiM,GAAA,CAAA,gBAAA,CAAAC,KAAA,CA2HD,SAAQ6B,cAAcA,EAAS,CAC7B,IAAMpI,EAAE,CAAG,IAAI,CAACA,EAAE,CAClBA,EAAE,CAACmC,UAAU,CAAC,IAAI,CAAClH,OAAO,CAAC,CAG3B+E,EAAE,CAACsK,SAAS,CAAC,IAAI,CAACpP,gBAAgB,CAACqP,aAAa,CAAE,CAAC,CAAC,CACpDvK,EAAE,CAACsK,SAAS,CAAC,IAAI,CAACpP,gBAAgB,CAACsP,YAAY,CAAE,CAAC,CAAC,CACnDxK,EAAE,CAACsK,SAAS,CAAC,IAAI,CAACpP,gBAAgB,CAACuP,kBAAkB,CAAE,CAAC,CAAC,CACzDzK,EAAE,CAACsK,SAAS,CAAC,IAAI,CAACpP,gBAAgB,CAACwP,aAAa,CAAE,CAAC,CAAC,CACpD1K,EAAE,CAACoC,SAAS,CAAC,IAAI,CAAClH,gBAAgB,CAAC8I,iBAAiB,CAAE,IAAI,CAACxI,uBAAuB,CAAC,CAGnF,IAAI,CAACmP,gBAAgB,CAAC,IAAI,CAAClQ,MAAM,CAAC,CAGlCuF,EAAE,CAACyC,SAAS,CAAC,IAAI,CAACvH,gBAAgB,CAAC0P,IAAI,CAAE,IAAI,CAACnQ,MAAM,CAACoQ,IAAI,CAAE,IAAI,CAACpQ,MAAM,CAACqQ,IAAI,CAAC,CAG5E9K,EAAE,CAACyC,SAAS,CAAC,IAAI,CAACvH,gBAAgB,CAAC6P,cAAc,CAAE9S,cAAc,CAACC,KAAK,CAAED,cAAc,CAACE,MAAM,CAAC,CAG/F,GAAI,IAAI,CAACsC,MAAM,CAACuQ,eAAe,CAAE,CAC/B,IAAAC,qBAAA,CAAAtD,cAAA,CAAkB,IAAI,CAAClN,MAAM,CAACuQ,eAAe,IAAtCE,CAAC,CAAAD,qBAAA,CAAA,CAAA,CAAA,CAAEE,CAAC,CAAAF,qBAAA,CAAA,CAAA,CAAA,CAAEG,CAAC,CAAAH,qBAAA,CACdjL,CAAAA,CAAAA,CAAAA,EAAE,CAACqL,SAAS,CAAC,IAAI,CAACnQ,gBAAgB,CAACoQ,gBAAgB,CAAEJ,CAAC,CAAEC,CAAC,CAAEC,CAAC,CAAC,CAE7DpL,EAAE,CAACgG,UAAU,CAACkF,CAAC,CAAEC,CAAC,CAAEC,CAAC,CAAE,GAAG,CAAC,CAC7B,CAAC,KAAM,CAELpL,EAAE,CAACqL,SAAS,CAAC,IAAI,CAACnQ,gBAAgB,CAACoQ,gBAAgB,CAAE,CAAC,GAAG,CAAE,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,CAEtEtL,EAAE,CAACgG,UAAU,CAAC,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,CAC3B,CAGAhG,EAAE,CAAC4C,SAAS,CACV,IAAI,CAAC1H,gBAAgB,CAAC2H,gBAAgB,CACtC,IAAI,CAAC1G,eAAe,CAAC,CAAC,CAAC,CACvB,IAAI,CAACA,eAAe,CAAC,CAAC,CAAC,CACvB,IAAI,CAACA,eAAe,CAAC,CAAC,CAAC,CACvB,IAAI,CAACA,eAAe,CAAC,CAAC,CACxB,CAAC,CACH,CAAC,CAAA,CAAA,CAAAmK,GAAA,CAAA,uBAAA,CAAAC,KAAA,CAGD,SAAQgF,qBAAqBA,CAACC,CAAU,CAAEJ,CAAU,CAAW,CAAAK,IAAAA,MAAA,CAC7D,IAAA,CAAA,GAAID,CAAC,GAAKJ,CAAC,CAAE,OAAW,IAAA,CACxB,GAAIM,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,EAAIE,KAAK,CAACC,OAAO,CAACP,CAAC,CAAC,EAAII,CAAC,CAAC7Q,MAAM,GAAKyQ,CAAC,CAACzQ,MAAM,CAAE,CACjE,OAAO6Q,CAAC,CAACI,KAAK,CAAC,SAACC,GAAG,CAAEC,CAAC,CAAK,CAAA,OAAAL,MAAI,CAACF,qBAAqB,CAACM,GAAG,CAAET,CAAC,CAACU,CAAC,CAAC,CAAC,GAAC,CACnE,CACA,OAAO,KAAK,CACd,CAAC,CAAA,CAAA,CAAAxF,GAAA,CAAA,kBAAA,CAAAC,KAAA,CAGD,SAAQoE,gBAAgBA,CAAClQ,MAA+B,CAAQ,CAAA,IAAAsR,MAAA,CAC9D,IAAA,CAAA,IAAM/L,EAAE,CAAG,IAAI,CAACA,EAAE,CAClBA,EAAE,CAACmC,UAAU,CAAC,IAAI,CAAClH,OAAO,CAAC,CAE3BuJ,MAAM,CAACwH,OAAO,CAACvR,MAAM,CAAC,CAACwR,OAAO,CAAC,SAAAC,KAAA,CAAkB,CAAA,IAAAC,KAAA,CAAAxE,cAAA,CAAAuE,KAAA,CAAhB5F,CAAAA,CAAAA,CAAAA,GAAG,CAAA6F,KAAA,CAAE5F,CAAAA,CAAAA,CAAAA,KAAK,CAAA4F,KAAA,IACzC,GAAI5F,KAAK,GAAK3L,SAAS,CAAE,OAGzB,GAAImR,MAAI,CAACR,qBAAqB,CAACQ,MAAI,CAAC5Q,YAAY,CAACmL,GAAG,CAAC,CAAEC,KAAK,CAAC,CAAE,OAC/DwF,MAAI,CAAC5Q,YAAY,CAACmL,GAAG,CAAC,CAAGC,KAAK,CAG9B,IAAM8C,WAAW,CAAG/Q,iBAAiB,CAACgO,GAAG,CAAC,CAC1C,GAAI,CAAC+C,WAAW,CAAE,OAElB,IAAM+C,QAAQ,CAAGL,MAAI,CAAC7Q,gBAAgB,CAACmO,WAAW,CAAC,CACnD,GAAI,CAAC+C,QAAQ,CAAE,OAEf,GAAI,OAAO7F,KAAK,GAAK,SAAS,CAAE,CAC9BvG,EAAE,CAACoC,SAAS,CAACgK,QAAQ,CAAE7F,KAAK,CAAG,CAAC,CAAG,CAAC,CAAC,CACvC,CAAC,KAAU,GAAA,OAAOA,KAAK,GAAK,QAAQ,CAAE,CACpCvG,EAAE,CAACoC,SAAS,CAACgK,QAAQ,CAAE7F,KAAK,CAAC,CAC/B,CAAC,KAAM,GAAImF,KAAK,CAACC,OAAO,CAACpF,KAAK,CAAC,CAAE,CAE/B,IAAM8F,SAAS,CAAI9F,KAAK,CAAc+F,IAAI,EAAc,CACxD,OAAQD,SAAS,CAAC1R,MAAM,EACtB,KAAK,CAAC,CACJqF,EAAE,CAACuM,UAAU,CAACH,QAAQ,CAAEC,SAAS,CAAC,CAClC,MACF,KAAK,CAAC,CACJrM,EAAE,CAACwM,UAAU,CAACJ,QAAQ,CAAEC,SAAS,CAAC,CAClC,MACF,KAAM,CAAA,CACJrM,EAAE,CAACyM,UAAU,CAACL,QAAQ,CAAEC,SAAS,CAAC,CAClC,MACJ,CACF,CACF,CAAC,CAAC,CAGF,GAAI5R,MAAM,CAACoQ,IAAI,GAAKjQ,SAAS,EAAIH,MAAM,CAACqQ,IAAI,GAAKlQ,SAAS,CAAE,CAC1D,IAAM8R,WAAW,CAAG,KAAK,CACzB,IAAMC,QAAQ,CAAG,CAAC,IAAI,CAAClS,MAAM,CAACoQ,IAAI,CAAE,IAAI,CAACpQ,MAAM,CAACqQ,IAAI,CAAC,CACrD,GAAI,CAAC,IAAI,CAACS,qBAAqB,CAAC,IAAI,CAACpQ,YAAY,CAACuR,WAAW,CAAC,CAAEC,QAAQ,CAAC,CAAE,CACzE,IAAI,CAACxR,YAAY,CAACuR,WAAW,CAAC,CAAGC,QAAQ,CACzC3M,EAAE,CAACyC,SAAS,CAAC,IAAI,CAACvH,gBAAgB,CAAC0P,IAAI,CAAE+B,QAAQ,CAAC,CAAC,CAAC,CAAEA,QAAQ,CAAC,CAAC,CAAC,CAAC,CACpE,CACF,CAGA,GAAIlS,MAAM,CAACuQ,eAAe,GAAKpQ,SAAS,CAAE,CACxC,IAAMgS,UAAU,CAAG,iBAAiB,CACpC,GAAI,CAAC,IAAI,CAACrB,qBAAqB,CAAC,IAAI,CAACpQ,YAAY,CAACyR,UAAU,CAAC,CAAEnS,MAAM,CAACuQ,eAAe,CAAC,CAAE,CACtF,IAAI,CAAC7P,YAAY,CAACyR,UAAU,CAAC,CAAGnS,MAAM,CAACuQ,eAAe,CACtD,GAAIvQ,MAAM,CAACuQ,eAAe,CAAE,CAC1B,IAAA6B,qBAAA,CAAAlF,cAAA,CAAkBlN,MAAM,CAACuQ,eAAe,CAAjCE,CAAAA,CAAAA,CAAAA,CAAC,CAAA2B,qBAAA,CAAA,CAAA,CAAA,CAAE1B,CAAC,CAAA0B,qBAAA,CAAA,CAAA,CAAA,CAAEzB,CAAC,CAAAyB,qBAAA,CACd7M,CAAAA,CAAAA,CAAAA,EAAE,CAACqL,SAAS,CAAC,IAAI,CAACnQ,gBAAgB,CAACoQ,gBAAgB,CAAEJ,CAAC,CAAEC,CAAC,CAAEC,CAAC,CAAC,CAE7DpL,EAAE,CAACgG,UAAU,CAACkF,CAAC,CAAEC,CAAC,CAAEC,CAAC,CAAE,GAAG,CAAC,CAC7B,CAAC,KAAM,CAELpL,EAAE,CAACqL,SAAS,CAAC,IAAI,CAACnQ,gBAAgB,CAACoQ,gBAAgB,CAAE,CAAC,GAAG,CAAE,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,CAEtEtL,EAAE,CAACgG,UAAU,CAAC,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,CAC3B,CACF,CACF,CACF,CAAC,CAAA,CAAA,CAAAM,GAAA,CAAAC,aAAAA,CAAAA,KAAA,CAKD,SAAOuG,WAAWA,CAACC,SAAkC,CAAQ,CAC3D,IAAI,CAACtS,MAAM,CAAA+J,MAAA,CAAAC,MAAA,IAAQ,IAAI,CAAChK,MAAM,CAAKsS,SAAS,CAAE,CAE9C,GAAI,CAAC,IAAI,CAAC9Q,aAAa,CAAE,OAGzB,IAAI,CAAC0O,gBAAgB,CAACoC,SAAS,CAAC,CAGhC,GAAIA,SAAS,CAACnM,MAAM,GAAKhG,SAAS,CAAE,CAClC,GAAImS,SAAS,CAACnM,MAAM,CAAE,CAAAoM,IAAAA,YAAA,CACpB,CAAAA,YAAA,CAAI,IAAA,CAACvR,KAAK,GAAA,IAAA,CAAA,KAAA,CAAA,CAAVuR,YAAA,CAAYtM,KAAK,EAAE,CACrB,CAAC,KAAM,CAAA,IAAAuM,YAAA,CACL,CAAAA,YAAA,CAAA,IAAI,CAACxR,KAAK,GAAVwR,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,YAAA,CAAYnM,IAAI,EAAE,CAACC,KAAK,CAAC,UAAM,EAAE,CAAC,CACpC,CACF,CAEA,GAAIgM,SAAS,CAAC7E,YAAY,GAAKtN,SAAS,EAAI,IAAI,CAACa,KAAK,CAAE,CACtD,IAAI,CAACA,KAAK,CAACyM,YAAY,CAAG6E,SAAS,CAAC7E,YAAY,CAClD,CAEA,GAAI6E,SAAS,CAAClP,WAAW,GAAKjD,SAAS,CAAE,CACvC,IAAI,CAACsC,YAAY,EAAE,CACrB,CACF,CAAC,CAAAoJ,CAAAA,CAAAA,GAAA,CAAAC,iBAAAA,CAAAA,KAAA,CAED,SAAQ5F,eAAeA,EAAS,CAC9B,GAAI,IAAI,CAAChF,KAAK,GAAK,IAAI,CAAE,OACzB,IAAI,CAACC,cAAc,CAAGuE,WAAW,CAACC,GAAG,EAAE,CAAG,KAAK,CAC/C,IAAI,CAACzE,KAAK,CAAGsF,qBAAqB,CAAC,IAAI,CAACf,MAAM,CAAC,CACjD,CAAC,CAAAoG,CAAAA,CAAAA,GAAA,CAAAC,gBAAAA,CAAAA,KAAA,CAED,SAAQ9F,cAAcA,EAAS,CAC7B,GAAI,IAAI,CAAC9E,KAAK,GAAK,IAAI,CAAE,CACvBuR,oBAAoB,CAAC,IAAI,CAACvR,KAAK,CAAC,CAChC,IAAI,CAACA,KAAK,CAAG,IAAI,CACnB,CACF,CAAC,GAAA2K,GAAA,CAAA,iBAAA,CAAAC,KAAA,CA2ID,SAAO4G,eAAeA,EAAW,CAC/B,OAAW,IAAA,CAACtR,YAAY,CAC1B,CAAC,CAAA,CAAA,CAAAyK,GAAA,CAAAC,UAAAA,CAAAA,KAAA,CAGD,SAAO6G,QAAQA,CAACC,QAAgB,CAAQ,CACtC,IAAI,CAACxR,YAAY,CAAGwR,QAAQ,CAC9B,CAAC,GAAA/G,GAAA,CAAA,kBAAA,CAAAC,KAAA,CAGD,SAAO+G,gBAAgBA,EAA2D,CAA1D,IAAAC,gBAAwB,CAAA7S,SAAA,CAAAC,MAAA,CAAA,CAAA,EAAAD,SAAA,CAAAE,CAAAA,CAAAA,GAAAA,SAAA,CAAAF,SAAA,IAAGtC,uBAAuB,CACxE,IAAI,CAAC2C,aAAa,CAAGwS,gBAAgB,CACrC,IAAI,CAACrQ,YAAY,EAAE,CACrB,CAAC,CAAA,CAAA,CAAAoJ,GAAA,CAAA,kBAAA,CAAAC,KAAA,CAGD,SAAOiH,gBAAgBA,EAAqC,CAApC,IAAAC,gBAAwB,CAAA/S,SAAA,CAAAC,MAAA,CAAAD,CAAAA,EAAAA,SAAA,CAAAE,CAAAA,CAAAA,GAAAA,SAAA,CAAAF,SAAA,CAAG,CAAA,CAAA,CAAA,CAAC,CAClD,IAAI,CAACI,aAAa,CAAG2S,gBAAgB,CACrC,IAAI,CAACvQ,YAAY,EAAE,CACrB,CAAC,CAAAoJ,CAAAA,CAAAA,GAAA,CAAAC,MAAAA,CAAAA,KAAA,CAGD,SAAOzF,IAAIA,EAAS,CAAA,IAAA4M,YAAA,CAClB,IAAI,CAACjT,MAAM,CAACmG,MAAM,CAAG,KAAK,CAC1B,CAAA8M,YAAA,KAAI,CAACjS,KAAK,GAAViS,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,YAAA,CAAY5M,IAAI,EAAE,CAACC,KAAK,CAAC,UAAM,EAAE,CAAC,CACpC,CAAC,GAAAuF,GAAA,CAAA,OAAA,CAAAC,KAAA,CAGD,SAAO7F,KAAKA,EAAS,CAAAiN,IAAAA,YAAA,CACnB,IAAI,CAAClT,MAAM,CAACmG,MAAM,CAAG,IAAI,CACzB,CAAA+M,YAAA,CAAI,IAAA,CAAClS,KAAK,GAAA,IAAA,CAAA,KAAA,CAAA,CAAVkS,YAAA,CAAYjN,KAAK,EAAE,CACrB,CAAC,CAAA4F,CAAAA,CAAAA,GAAA,WAAAC,KAAA,CAGD,SAAOqH,OAAOA,CAACC,IAAY,CAAQ,CACjC,GAAI,IAAI,CAACpS,KAAK,CAAE,CACd,IAAI,CAACA,KAAK,CAACuF,WAAW,CAAG6M,IAAI,CAC/B,CACF,CAAC,CAAAvH,CAAAA,CAAAA,GAAA,WAAAC,KAAA,CAyBD,SAAOuH,OAAOA,EAAS,CAAA,IAAAC,sBAAA,CAAAC,gBAAA,CAErB,IAAI,CAAChS,eAAe,CAAG,IAAI,CAG3B,GAAI,IAAI,CAACL,KAAK,GAAK,IAAI,CAAE,CACvBuR,oBAAoB,CAAC,IAAI,CAACvR,KAAK,CAAC,CAChC,IAAI,CAACA,KAAK,CAAG,IAAI,CACnB,CAGA,GACE,IAAI,CAACD,oBAAoB,GAAK,IAAI,EAClC,IAAI,CAACD,KAAK,EACV,0BAA0B,OAAQ,CAACA,KAAK,CACxC,CACC,IAAI,CAACA,KAAK,CAASwS,wBAAwB,CAAC,IAAI,CAACvS,oBAAoB,CAAC,CACzE,CAGA,GAAI,IAAI,CAACD,KAAK,CAAE,CACd,IAAI,CAACA,KAAK,CAACiF,KAAK,EAAE,CAClB,IAAI,CAACjF,KAAK,CAACyS,GAAG,CAAG,EAAE,CACnB,IAAI,CAACzS,KAAK,CAAC0S,IAAI,EAAE,CACjB,IAAI,CAAC1S,KAAK,CAAG,IAAI,CACnB,CAGA,GAAI,IAAI,CAACuE,EAAE,EAAI,IAAI,CAAC/E,OAAO,CAAE,CAAA,IAAAmT,kBAAA,CAAAC,qBAAA,CAAAC,qBAAA,CAAAC,qBAAA,CAC3B,CAAAH,kBAAA,CAAI,IAAA,CAAChT,YAAY,GAAA,IAAA,CAAA,KAAA,CAAA,CAAjBgT,kBAAA,CAAmBI,OAAO,EAAE,CAC5B,CAAAH,qBAAA,CAAI,IAAA,CAAChT,kBAAkB,GAAA,IAAA,CAAA,KAAA,CAAA,CAAvBgT,qBAAA,CAAyBG,OAAO,EAAE,CAClC,CAAAF,qBAAA,CAAA,IAAI,CAAChT,mBAAmB,eAAxBgT,qBAAA,CAA0BE,OAAO,EAAE,CACnC,CAAAD,qBAAA,KAAI,CAAChT,wBAAwB,GAA7BgT,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,qBAAA,CAA+BC,OAAO,EAAE,CACxC,IAAI,CAACxO,EAAE,CAACyO,aAAa,CAAC,IAAI,CAACxT,OAAO,CAAC,CACnC,IAAI,CAACA,OAAO,CAAG,IAAI,CAGnB,IAAI,CAAC+E,EAAE,CAAC0O,UAAU,CAAC,IAAI,CAAC1O,EAAE,CAAC2O,YAAY,CAAE,IAAI,CAAC,CAC9C,IAAI,CAAC3O,EAAE,CAAC0O,UAAU,CAAC,IAAI,CAAC1O,EAAE,CAAC4O,oBAAoB,CAAE,IAAI,CAAC,CACtD,IAAI,CAAC5O,EAAE,CAAC6O,gBAAgB,CAAC,IAAI,CAAC7O,EAAE,CAAC8O,YAAY,CAAE,IAAI,CAAC,CACpD,IAAI,CAAC9O,EAAE,CAAC+O,eAAe,CAAC,IAAI,CAAC/O,EAAE,CAACgP,WAAW,CAAE,IAAI,CAAC,CAGlD,IAAI,CAAChP,EAAE,CAACiP,QAAQ,EAAE,CACpB,CAGA,CAAAlB,sBAAA,CAAI,IAAA,CAAClR,qBAAqB,GAA1BkR,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,sBAAA,CAA4BD,OAAO,EAAE,CACrC,IAAI,CAACjR,qBAAqB,CAAG,IAAI,CAGjC,GAAI,IAAI,CAACT,cAAc,CAAE,CACvB,IAAI,CAACA,cAAc,CAACY,UAAU,EAAE,CAChC,IAAI,CAACZ,cAAc,CAAG,IAAI,CAC5B,CAEA,CAAA4R,gBAAA,CAAAhP,cAAc,GAAA,IAAA,CAAA,KAAA,CAAA,CAAdgP,gBAAA,CAAgBkB,mBAAmB,CAAC,QAAQ,CAAE,IAAI,CAACpS,0BAA0B,CAAC,CAC9EwD,QAAQ,CAAC4O,mBAAmB,CAAC,kBAAkB,CAAE,IAAI,CAAC7O,8BAA8B,CAAC,CAErF,IAAI,CAACnF,gBAAgB,CAAG,EAAE,CAC1B,IAAI,CAACC,YAAY,CAAG,EAAE,CAGtB,IAAI,CAACiD,aAAa,CAAC+Q,MAAM,EAAE,CAC3B,IAAI,CAAC9U,aAAa,CAAC+U,eAAe,CAAC,gBAAgB,CAAC,CACtD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var DEFAULT_CONFIG={inputMin:0.0,inputMax:1.0,modifyGamma:1.05,posterizeLevels:0.0,cycleRepetitions:1.0,phaseShift:0.0,cycleSpeed:0.0,wrapMode:false,reverse:true,blendWithOriginal:0.0,gradientMapBlend:0.0,gradientMapBlendDuration:0.6,enableCenterElement:true,centerAnimDuration:6.0,ccBlackPoint:0.0,ccWhitePoint:0.9,ccMidtoneGamma:1.2,ccGamma:1.2,ccContrast:0.0,numSegments:45.0,slitAngle:0.15,displacementX:-12.0,displacementY:-20.0,paused:false,startTime:0,endTime:14,animateLightIndependently:false,playbackRate:1.0,lightIntensity:0.2,lightStartFrame:140,enableDisplacement:true,enableColorama:true,enableBloom:true,enableLightSweep:true,aspectRatio:3/2,zoom:1,panX:0,panY:0,edgeFeather:[0,0,0,0],backgroundColor:[-1,-1,-1],animateCycleReps:true,cycleRepetitionsStart:1.0,cycleRepetitionsEnd:1.15,cycleRepetitionsStartFrame:0,cycleRepetitionsDuration:140};var PRESETS={default:{},zoomed:{lightIntensity:0.2,lightStartFrame:0,ccBlackPoint:0.0,ccWhitePoint:0.9,ccMidtoneGamma:1.2,ccGamma:1.62,ccContrast:0.0,numSegments:20.0,slitAngle:15*Math.PI/180,displacementX:-12.0,displacementY:-20.0,paused:true,startTime:10,endTime:14,animateLightIndependently:true,zoom:5,panX:-0.01,panY:0.1,edgeFeather:[3,5,3,3],animateCycleReps:true,cycleRepetitionsStart:1.0,cycleRepetitionsEnd:1.15,cycleRepetitionsStartFrame:0,cycleRepetitionsDuration:140},bottomWave:{imageSrc:'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark/bottom-frame.jpg',gradientMapSrc:'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark/colorama-gradient-map-green.jpg',gradientMap2Src:'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark/colorama-gradient-map-blue.jpg',gradientMapBlend:0,edgeFeather:[0.3,0,3,0],panY:-0.04,numSegments:30,enableBloom:false,slitAngle:15*Math.PI/180},rippleWave:{videoSrc:'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark/ray-pulse.mp4',aspectRatio:1.61,playbackRate:0.7,slitAngle:15*Math.PI/180,numSegments:35,ccGamma:2.0,displacementX:-2.0,displacementY:-11.0,enableDisplacement:true,enableCenterElement:false,enableLightSweep:false,enableBloom:false,animateCycleReps:false,zoom:2},circleSlideUp:{videoSrc:'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark/success-animation-circle.mp4',aspectRatio:1.61,playbackRate:0.85,slitAngle:15*Math.PI/180,numSegments:25,enableDisplacement:true,enableCenterElement:false,enableLightSweep:false,enableBloom:false,animateCycleReps:false,zoom:1}};
|
|
2
|
+
|
|
3
|
+
export { DEFAULT_CONFIG, PRESETS };
|
|
4
|
+
//# sourceMappingURL=presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.js","sources":["../../../../../../src/components/Spark/RzpGlass/presets.ts"],"sourcesContent":["import type { RzpGlassConfig, RzpGlassPresetDefinition } from './types';\n\n// ============================================\n// DEFAULT CONFIG VALUES\n// ============================================\nconst DEFAULT_CONFIG: Required<RzpGlassConfig> = {\n // Input Phase\n inputMin: 0.0,\n inputMax: 1.0,\n // Modify Phase\n modifyGamma: 1.05,\n posterizeLevels: 0.0,\n cycleRepetitions: 1.0,\n phaseShift: 0.0,\n cycleSpeed: 0.0,\n // Output Cycle\n wrapMode: false,\n reverse: true,\n // Composite\n blendWithOriginal: 0.0,\n gradientMapBlend: 0.0,\n gradientMapBlendDuration: 0.6,\n\n // Center Element\n enableCenterElement: true,\n centerAnimDuration: 6.0,\n\n // Color Correction\n ccBlackPoint: 0.0,\n ccWhitePoint: 0.9,\n ccMidtoneGamma: 1.2,\n ccGamma: 1.2,\n ccContrast: 0.0,\n\n // Displacement\n numSegments: 45.0,\n slitAngle: 0.15,\n displacementX: -12.0,\n displacementY: -20.0,\n\n // Playback\n paused: false,\n startTime: 0,\n endTime: 14,\n animateLightIndependently: false,\n playbackRate: 1.0,\n\n // Light Effect\n lightIntensity: 0.2,\n lightStartFrame: 140,\n\n // Effect Toggles\n enableDisplacement: true,\n enableColorama: true,\n enableBloom: true,\n enableLightSweep: true,\n\n // Canvas\n aspectRatio: 3 / 2,\n\n // Zoom & Pan\n zoom: 1,\n panX: 0,\n panY: 0,\n edgeFeather: [0, 0, 0, 0],\n\n // Background Color\n backgroundColor: [-1, -1, -1],\n\n // Cycle Animation\n animateCycleReps: true,\n cycleRepetitionsStart: 1.0,\n cycleRepetitionsEnd: 1.15,\n cycleRepetitionsStartFrame: 0,\n cycleRepetitionsDuration: 140,\n};\n\n// ============================================\n// PRESETS\n// ============================================\nexport type RzpGlassPreset = 'default' | 'zoomed' | 'bottomWave' | 'rippleWave' | 'circleSlideUp';\n\nconst PRESETS: Record<RzpGlassPreset, RzpGlassPresetDefinition> = {\n /** Baseline — identical to DEFAULT_CONFIG, no overrides */\n default: {},\n\n /**\n * Zoomed-in closeup: high zoom, fine segments, edge feathering.\n * Good for a tight card/badge usage.\n */\n zoomed: {\n lightIntensity: 0.2,\n lightStartFrame: 0,\n // Color Correction\n ccBlackPoint: 0.0,\n ccWhitePoint: 0.9,\n ccMidtoneGamma: 1.2,\n ccGamma: 1.62,\n ccContrast: 0.0,\n // Displacement\n numSegments: 20.0,\n slitAngle: (15 * Math.PI) / 180,\n displacementX: -12.0,\n displacementY: -20.0,\n // Playback\n paused: true,\n startTime: 10,\n endTime: 14,\n animateLightIndependently: true,\n // Zoom & Pan\n zoom: 5,\n panX: -0.01,\n panY: 0.1,\n edgeFeather: [3, 5, 3, 3],\n // Animation\n animateCycleReps: true,\n cycleRepetitionsStart: 1.0,\n cycleRepetitionsEnd: 1.15,\n cycleRepetitionsStartFrame: 0,\n cycleRepetitionsDuration: 140,\n },\n bottomWave: {\n imageSrc:\n 'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark/bottom-frame.jpg',\n gradientMapSrc:\n 'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark/colorama-gradient-map-green.jpg',\n gradientMap2Src:\n 'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark/colorama-gradient-map-blue.jpg',\n gradientMapBlend: 0,\n edgeFeather: [0.3, 0, 3, 0],\n panY: -0.04,\n numSegments: 30,\n enableBloom: false,\n slitAngle: (15 * Math.PI) / 180,\n },\n rippleWave: {\n videoSrc:\n 'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark/ray-pulse.mp4',\n aspectRatio: 1.61,\n playbackRate: 0.7,\n slitAngle: (15 * Math.PI) / 180,\n numSegments: 35,\n ccGamma: 2.0,\n displacementX: -2.0,\n displacementY: -11.0,\n enableDisplacement: true,\n enableCenterElement: false,\n enableLightSweep: false,\n enableBloom: false,\n animateCycleReps: false,\n zoom: 2,\n },\n circleSlideUp: {\n videoSrc:\n 'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark/success-animation-circle.mp4',\n aspectRatio: 1.61,\n playbackRate: 0.85,\n slitAngle: (15 * Math.PI) / 180,\n numSegments: 25,\n enableDisplacement: true,\n enableCenterElement: false,\n enableLightSweep: false,\n enableBloom: false,\n animateCycleReps: false,\n zoom: 1,\n },\n};\n\nexport { DEFAULT_CONFIG, PRESETS };\n"],"names":["DEFAULT_CONFIG","inputMin","inputMax","modifyGamma","posterizeLevels","cycleRepetitions","phaseShift","cycleSpeed","wrapMode","reverse","blendWithOriginal","gradientMapBlend","gradientMapBlendDuration","enableCenterElement","centerAnimDuration","ccBlackPoint","ccWhitePoint","ccMidtoneGamma","ccGamma","ccContrast","numSegments","slitAngle","displacementX","displacementY","paused","startTime","endTime","animateLightIndependently","playbackRate","lightIntensity","lightStartFrame","enableDisplacement","enableColorama","enableBloom","enableLightSweep","aspectRatio","zoom","panX","panY","edgeFeather","backgroundColor","animateCycleReps","cycleRepetitionsStart","cycleRepetitionsEnd","cycleRepetitionsStartFrame","cycleRepetitionsDuration","PRESETS","default","zoomed","Math","PI","bottomWave","imageSrc","gradientMapSrc","gradientMap2Src","rippleWave","videoSrc","circleSlideUp"],"mappings":"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"}
|