angular-three-postprocessing 4.0.0-next.110 → 4.0.0-next.112
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three-postprocessing.mjs","sources":["../tmp-esm2022/lib/effect.js","../tmp-esm2022/lib/effect-composer.js","../tmp-esm2022/lib/effects/ascii.js","../tmp-esm2022/lib/effects/bloom.js","../tmp-esm2022/lib/effects/brightness-contrast.js","../tmp-esm2022/lib/effects/chromatic-abberation.js","../tmp-esm2022/lib/effects/color-average.js","../tmp-esm2022/lib/effects/color-depth.js","../tmp-esm2022/lib/effects/depth.js","../tmp-esm2022/lib/effects/depth-of-field.js","../tmp-esm2022/lib/effects/dot-screen.js","../tmp-esm2022/lib/effects/fxaa.js","../tmp-esm2022/lib/effects/glitch.js","../tmp-esm2022/lib/effects/god-rays.js","../tmp-esm2022/lib/effects/grid.js","../tmp-esm2022/lib/effects/hue-saturation.js","../tmp-esm2022/lib/effects/lens-flare.js","../tmp-esm2022/lib/effects/lut.js","../tmp-esm2022/lib/effects/noise.js","../tmp-esm2022/lib/effects/outline.js","../tmp-esm2022/lib/effects/pixelation.js","../tmp-esm2022/lib/effects/scanline.js","../tmp-esm2022/lib/effects/selective-bloom.js","../tmp-esm2022/lib/effects/sepia.js","../tmp-esm2022/lib/effects/shock-wave.js","../tmp-esm2022/lib/effects/smaa.js","../tmp-esm2022/lib/effects/tilt-shift.js","../tmp-esm2022/lib/effects/tilt-shift-2.js","../tmp-esm2022/lib/effects/tone-mapping.js","../tmp-esm2022/lib/effects/vignette.js","../tmp-esm2022/lib/effects/water.js","../tmp-esm2022/angular-three-postprocessing.js"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, inject, input } from '@angular/core';\nimport { injectStore } from 'angular-three';\nimport { createNoopInjectionToken } from 'ngxtension/create-injection-token';\nimport * as i0 from \"@angular/core\";\nexport const [injectDefaultEffectOptions, provideDefaultEffectOptions] = createNoopInjectionToken('Default Effect options');\nexport class NgtpEffectBlendMode {\n constructor() {\n this.effect = inject(NgtpEffect, { optional: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpEffectBlendMode, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: NgtpEffectBlendMode, isStandalone: true, selector: \"ngtp-effect-blend-mode\", ngImport: i0, template: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpEffectBlendMode, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-effect-blend-mode',\n template: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\nexport class NgtpEffect {\n constructor() {\n this.defaultEffectOptions = injectDefaultEffectOptions({ optional: true });\n this.blendFunction = input(this.defaultEffectOptions?.blendFunction);\n this.opacity = input(this.defaultEffectOptions?.opacity);\n this.store = injectStore();\n this.camera = this.store.camera;\n this.invalidate = this.store.invalidate;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpEffect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpEffect, isStandalone: true, inputs: { blendFunction: { classPropertyName: \"blendFunction\", publicName: \"blendFunction\", isSignal: true, isRequired: false, transformFunction: null }, opacity: { classPropertyName: \"opacity\", publicName: \"opacity\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpEffect, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRzdFLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsMkJBQTJCLENBQUMsR0FBRyx3QkFBd0IsQ0FHOUYsd0JBQXdCLENBQUMsQ0FBQztBQWE3QixNQUFNLE9BQU8sbUJBQW1CO0lBWGhDO1FBWUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNoRDs4R0FGWSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrRkFUckI7Ozs7O0VBS1Q7OzJGQUlXLG1CQUFtQjtrQkFYL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQzs7QUFNRCxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUVDLHlCQUFvQixHQUFHLDBCQUEwQixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFdEUsa0JBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2hFLFlBQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLFVBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUM5QixXQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsZUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO0tBQ25DOzhHQVRZLFVBQVU7a0dBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFEdEIsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNyZWF0ZU5vb3BJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ25neHRlbnNpb24vY3JlYXRlLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuXG5leHBvcnQgY29uc3QgW2luamVjdERlZmF1bHRFZmZlY3RPcHRpb25zLCBwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnNdID0gY3JlYXRlTm9vcEluamVjdGlvblRva2VuPHtcblx0YmxlbmRGdW5jdGlvbj86IEJsZW5kRnVuY3Rpb247XG5cdG9wYWNpdHk/OiBudW1iZXI7XG59PignRGVmYXVsdCBFZmZlY3Qgb3B0aW9ucycpO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWVmZmVjdC1ibGVuZC1tb2RlJyxcblx0dGVtcGxhdGU6IGBcblx0XHRAaWYgKGVmZmVjdCkge1xuXHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiZWZmZWN0LmJsZW5kRnVuY3Rpb24oKVwiIGF0dGFjaD1cImJsZW5kTW9kZS5ibGVuZEZ1bmN0aW9uXCIgLz5cblx0XHRcdDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImVmZmVjdC5vcGFjaXR5KClcIiBhdHRhY2g9XCJibGVuZE1vZGUub3BhY2l0eS52YWx1ZVwiIC8+XG5cdFx0fVxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwRWZmZWN0QmxlbmRNb2RlIHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIE5ndHBFZmZlY3Qge1xuXHRkZWZhdWx0RWZmZWN0T3B0aW9ucyA9IGluamVjdERlZmF1bHRFZmZlY3RPcHRpb25zKHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cblx0YmxlbmRGdW5jdGlvbiA9IGlucHV0KHRoaXMuZGVmYXVsdEVmZmVjdE9wdGlvbnM/LmJsZW5kRnVuY3Rpb24pO1xuXHRvcGFjaXR5ID0gaW5wdXQodGhpcy5kZWZhdWx0RWZmZWN0T3B0aW9ucz8ub3BhY2l0eSk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdGNhbWVyYSA9IHRoaXMuc3RvcmUuY2FtZXJhO1xuXHRpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5pbnZhbGlkYXRlO1xufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input, viewChild, } from '@angular/core';\nimport { beforeRender, extend, getInstanceState, injectStore, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { DepthDownsamplingPass, Effect, EffectAttribute, EffectComposer, EffectPass, NormalPass, Pass, RenderPass, } from 'postprocessing';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n enabled: true,\n renderPriority: 1,\n autoClear: true,\n multisampling: 8,\n frameBufferType: THREE.HalfFloatType,\n};\nfunction isConvolution(effect) {\n return (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION;\n}\nexport class NgtpEffectComposer {\n constructor() {\n this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n this.store = injectStore();\n this.depthBuffer = pick(this.options, 'depthBuffer');\n this.stencilBuffer = pick(this.options, 'stencilBuffer');\n this.multisampling = pick(this.options, 'multisampling');\n this.frameBufferType = pick(this.options, 'frameBufferType');\n this.enableNormalPass = pick(this.options, 'enableNormalPass');\n this.resolutionScale = pick(this.options, 'resolutionScale');\n this.enabled = pick(this.options, 'enabled');\n this.renderPriority = pick(this.options, 'renderPriority');\n this.scene = computed(() => this.options().scene ?? this.store.scene());\n this.camera = computed(() => this.options().camera ?? this.store.camera());\n this.groupRef = viewChild.required('group');\n this.priority = computed(() => {\n const enabled = this.enabled();\n if (!enabled)\n return 0;\n return this.renderPriority();\n });\n this.composerData = computed(() => {\n const webGL2Available = isWebGL2Available();\n const [gl, scene, camera, depthBuffer, stencilBuffer, multisampling, frameBufferType, enableNormalPass, resolutionScale,] = [\n this.store.gl(),\n this.scene(),\n this.camera(),\n this.depthBuffer(),\n this.stencilBuffer(),\n this.multisampling(),\n this.frameBufferType(),\n this.enableNormalPass(),\n this.resolutionScale(),\n ];\n // initialize composer\n const composer = new EffectComposer(gl, {\n depthBuffer,\n stencilBuffer,\n multisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n frameBufferType,\n });\n // add render pass\n composer.addPass(new RenderPass(scene, camera));\n // create normal pass\n let downSamplingPass = null;\n let normalPass = null;\n if (enableNormalPass) {\n normalPass = new NormalPass(scene, camera);\n normalPass.enabled = false;\n composer.addPass(normalPass);\n if (resolutionScale !== undefined && webGL2Available) {\n downSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n downSamplingPass.enabled = false;\n composer.addPass(downSamplingPass);\n }\n }\n return { composer, normalPass, downSamplingPass };\n });\n this.effectComposer = pick(this.composerData, 'composer');\n extend({ Group });\n // NOTE: Disable tone mapping because threejs disallows tonemapping on render targets\n effect((onCleanup) => {\n const gl = this.store.gl();\n const currentTonemapping = gl.toneMapping;\n gl.toneMapping = THREE.NoToneMapping;\n onCleanup(() => {\n gl.toneMapping = currentTonemapping;\n });\n });\n effect(() => {\n const [composer, width, height] = [\n this.effectComposer(),\n this.store.size.width(),\n this.store.size.height(),\n ];\n if (composer) {\n composer.setSize(width, height);\n }\n });\n effect((onCleanup) => {\n const [group, { composer, normalPass, downSamplingPass }, camera] = [\n this.groupRef().nativeElement,\n this.composerData(),\n this.camera(),\n ];\n const passes = [];\n if (composer) {\n const instanceState = getInstanceState(group);\n if (!instanceState)\n return;\n const children = instanceState.nonObjects();\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof Effect) {\n const effects = [child];\n if (!isConvolution(child)) {\n let next = null;\n while ((next = children[i + 1]) instanceof Effect) {\n if (isConvolution(next))\n break;\n effects.push(next);\n i++;\n }\n }\n const pass = new EffectPass(camera, ...effects);\n passes.push(pass);\n }\n else if (child instanceof Pass) {\n passes.push(child);\n }\n }\n for (const pass of passes) {\n composer.addPass(pass);\n }\n if (normalPass)\n normalPass.enabled = true;\n if (downSamplingPass)\n downSamplingPass.enabled = true;\n }\n onCleanup(() => {\n for (const pass of passes)\n composer?.removePass(pass);\n if (normalPass)\n normalPass.enabled = false;\n if (downSamplingPass)\n downSamplingPass.enabled = false;\n });\n });\n beforeRender(({ delta }) => {\n const [composer, { enabled, autoClear, stencilBuffer }, gl] = [\n this.effectComposer(),\n this.options(),\n this.store.snapshot.gl,\n ];\n if (enabled) {\n const currentAutoClear = gl.autoClear;\n gl.autoClear = autoClear;\n if (stencilBuffer && !autoClear)\n gl.clearStencil();\n composer.render(delta);\n gl.autoClear = currentAutoClear;\n }\n }, { priority: this.priority });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpEffectComposer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.3\", type: NgtpEffectComposer, isStandalone: true, selector: \"ngtp-effect-composer\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: \"groupRef\", first: true, predicate: [\"group\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpEffectComposer, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-effect-composer',\n template: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxFQUNOLGVBQWUsRUFDZixjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBQ0osVUFBVSxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBaUJqRCxNQUFNLGNBQWMsR0FBOEI7SUFDakQsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsQ0FBQztJQUNqQixTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGVBQWUsRUFBRSxLQUFLLENBQUMsYUFBYTtDQUNwQyxDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNwQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxlQUFlLENBQUMsV0FBVyxDQUFDO0FBQy9GLENBQUM7QUFZRCxN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QkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBiZWZvcmVSZW5kZXIsIGV4dGVuZCwgZ2V0SW5zdGFuY2VTdGF0ZSwgaW5qZWN0U3RvcmUsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7XG5cdERlcHRoRG93bnNhbXBsaW5nUGFzcyxcblx0RWZmZWN0LFxuXHRFZmZlY3RBdHRyaWJ1dGUsXG5cdEVmZmVjdENvbXBvc2VyLFxuXHRFZmZlY3RQYXNzLFxuXHROb3JtYWxQYXNzLFxuXHRQYXNzLFxuXHRSZW5kZXJQYXNzLFxufSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGlzV2ViR0wyQXZhaWxhYmxlIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RwRWZmZWN0Q29tcG9zZXJPcHRpb25zIHtcblx0ZW5hYmxlZDogYm9vbGVhbjtcblx0ZGVwdGhCdWZmZXI/OiBib29sZWFuO1xuXHQvKiogT25seSB1c2VkIGZvciBTU0dJIGN1cnJlbnRseSwgbGVhdmUgaXQgZGlzYWJsZWQgZm9yIGV2ZXJ5dGhpbmcgZWxzZSB1bmxlc3MgaXQncyBuZWVkZWQgKi9cblx0ZW5hYmxlTm9ybWFsUGFzcz86IGJvb2xlYW47XG5cdHN0ZW5jaWxCdWZmZXI/OiBib29sZWFuO1xuXHRhdXRvQ2xlYXI6IGJvb2xlYW47XG5cdHJlc29sdXRpb25TY2FsZT86IG51bWJlcjtcblx0bXVsdGlzYW1wbGluZzogbnVtYmVyO1xuXHRmcmFtZUJ1ZmZlclR5cGU6IFRIUkVFLlRleHR1cmVEYXRhVHlwZTtcblx0cmVuZGVyUHJpb3JpdHk6IG51bWJlcjtcblx0Y2FtZXJhPzogVEhSRUUuQ2FtZXJhO1xuXHRzY2VuZT86IFRIUkVFLlNjZW5lO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0cEVmZmVjdENvbXBvc2VyT3B0aW9ucyA9IHtcblx0ZW5hYmxlZDogdHJ1ZSxcblx0cmVuZGVyUHJpb3JpdHk6IDEsXG5cdGF1dG9DbGVhcjogdHJ1ZSxcblx0bXVsdGlzYW1wbGluZzogOCxcblx0ZnJhbWVCdWZmZXJUeXBlOiBUSFJFRS5IYWxmRmxvYXRUeXBlLFxufTtcblxuZnVuY3Rpb24gaXNDb252b2x1dGlvbihlZmZlY3Q6IEVmZmVjdCkge1xuXHRyZXR1cm4gKGVmZmVjdC5nZXRBdHRyaWJ1dGVzKCkgJiBFZmZlY3RBdHRyaWJ1dGUuQ09OVk9MVVRJT04pID09PSBFZmZlY3RBdHRyaWJ1dGUuQ09OVk9MVVRJT047XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZWZmZWN0LWNvbXBvc2VyJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwICNncm91cD5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBFZmZlY3RDb21wb3NlciB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblxuXHRwcml2YXRlIGRlcHRoQnVmZmVyID0gcGljayh0aGlzLm9wdGlvbnMsICdkZXB0aEJ1ZmZlcicpO1xuXHRwcml2YXRlIHN0ZW5jaWxCdWZmZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3N0ZW5jaWxCdWZmZXInKTtcblx0cHJpdmF0ZSBtdWx0aXNhbXBsaW5nID0gcGljayh0aGlzLm9wdGlvbnMsICdtdWx0aXNhbXBsaW5nJyk7XG5cdHByaXZhdGUgZnJhbWVCdWZmZXJUeXBlID0gcGljayh0aGlzLm9wdGlvbnMsICdmcmFtZUJ1ZmZlclR5cGUnKTtcblx0cHJpdmF0ZSBlbmFibGVOb3JtYWxQYXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdlbmFibGVOb3JtYWxQYXNzJyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvblNjYWxlID0gcGljayh0aGlzLm9wdGlvbnMsICdyZXNvbHV0aW9uU2NhbGUnKTtcblx0cHJpdmF0ZSBlbmFibGVkID0gcGljayh0aGlzLm9wdGlvbnMsICdlbmFibGVkJyk7XG5cdHByaXZhdGUgcmVuZGVyUHJpb3JpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3JlbmRlclByaW9yaXR5Jyk7XG5cblx0c2NlbmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS5zY2VuZSA/PyB0aGlzLnN0b3JlLnNjZW5lKCkpO1xuXHRjYW1lcmEgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS5jYW1lcmEgPz8gdGhpcy5zdG9yZS5jYW1lcmEoKSk7XG5cblx0cHJpdmF0ZSBncm91cFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPFRIUkVFLkdyb3VwPj4oJ2dyb3VwJyk7XG5cblx0cHJpdmF0ZSBwcmlvcml0eSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBlbmFibGVkID0gdGhpcy5lbmFibGVkKCk7XG5cdFx0aWYgKCFlbmFibGVkKSByZXR1cm4gMDtcblx0XHRyZXR1cm4gdGhpcy5yZW5kZXJQcmlvcml0eSgpO1xuXHR9KTtcblxuXHRwcml2YXRlIGNvbXBvc2VyRGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB3ZWJHTDJBdmFpbGFibGUgPSBpc1dlYkdMMkF2YWlsYWJsZSgpO1xuXHRcdGNvbnN0IFtcblx0XHRcdGdsLFxuXHRcdFx0c2NlbmUsXG5cdFx0XHRjYW1lcmEsXG5cdFx0XHRkZXB0aEJ1ZmZlcixcblx0XHRcdHN0ZW5jaWxCdWZmZXIsXG5cdFx0XHRtdWx0aXNhbXBsaW5nLFxuXHRcdFx0ZnJhbWVCdWZmZXJUeXBlLFxuXHRcdFx0ZW5hYmxlTm9ybWFsUGFzcyxcblx0XHRcdHJlc29sdXRpb25TY2FsZSxcblx0XHRdID0gW1xuXHRcdFx0dGhpcy5zdG9yZS5nbCgpLFxuXHRcdFx0dGhpcy5zY2VuZSgpLFxuXHRcdFx0dGhpcy5jYW1lcmEoKSxcblx0XHRcdHRoaXMuZGVwdGhCdWZmZXIoKSxcblx0XHRcdHRoaXMuc3RlbmNpbEJ1ZmZlcigpLFxuXHRcdFx0dGhpcy5tdWx0aXNhbXBsaW5nKCksXG5cdFx0XHR0aGlzLmZyYW1lQnVmZmVyVHlwZSgpLFxuXHRcdFx0dGhpcy5lbmFibGVOb3JtYWxQYXNzKCksXG5cdFx0XHR0aGlzLnJlc29sdXRpb25TY2FsZSgpLFxuXHRcdF07XG5cblx0XHQvLyBpbml0aWFsaXplIGNvbXBvc2VyXG5cdFx0Y29uc3QgY29tcG9zZXIgPSBuZXcgRWZmZWN0Q29tcG9zZXIoZ2wsIHtcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmc6IG11bHRpc2FtcGxpbmcgPiAwICYmIHdlYkdMMkF2YWlsYWJsZSA/IG11bHRpc2FtcGxpbmcgOiAwLFxuXHRcdFx0ZnJhbWVCdWZmZXJUeXBlLFxuXHRcdH0pO1xuXG5cdFx0Ly8gYWRkIHJlbmRlciBwYXNzXG5cdFx0Y29tcG9zZXIuYWRkUGFzcyhuZXcgUmVuZGVyUGFzcyhzY2VuZSwgY2FtZXJhKSk7XG5cblx0XHQvLyBjcmVhdGUgbm9ybWFsIHBhc3Ncblx0XHRsZXQgZG93blNhbXBsaW5nUGFzcyA9IG51bGw7XG5cdFx0bGV0IG5vcm1hbFBhc3MgPSBudWxsO1xuXHRcdGlmIChlbmFibGVOb3JtYWxQYXNzKSB7XG5cdFx0XHRub3JtYWxQYXNzID0gbmV3IE5vcm1hbFBhc3Moc2NlbmUsIGNhbWVyYSk7XG5cdFx0XHRub3JtYWxQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdGNvbXBvc2VyLmFkZFBhc3Mobm9ybWFsUGFzcyk7XG5cdFx0XHRpZiAocmVzb2x1dGlvblNjYWxlICE9PSB1bmRlZmluZWQgJiYgd2ViR0wyQXZhaWxhYmxlKSB7XG5cdFx0XHRcdGRvd25TYW1wbGluZ1Bhc3MgPSBuZXcgRGVwdGhEb3duc2FtcGxpbmdQYXNzKHsgbm9ybWFsQnVmZmVyOiBub3JtYWxQYXNzLnRleHR1cmUsIHJlc29sdXRpb25TY2FsZSB9KTtcblx0XHRcdFx0ZG93blNhbXBsaW5nUGFzcy5lbmFibGVkID0gZmFsc2U7XG5cdFx0XHRcdGNvbXBvc2VyLmFkZFBhc3MoZG93blNhbXBsaW5nUGFzcyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHsgY29tcG9zZXIsIG5vcm1hbFBhc3MsIGRvd25TYW1wbGluZ1Bhc3MgfTtcblx0fSk7XG5cblx0ZWZmZWN0Q29tcG9zZXIgPSBwaWNrKHRoaXMuY29tcG9zZXJEYXRhLCAnY29tcG9zZXInKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBHcm91cCB9KTtcblxuXHRcdC8vIE5PVEU6IERpc2FibGUgdG9uZSBtYXBwaW5nIGJlY2F1c2UgdGhyZWVqcyBkaXNhbGxvd3MgdG9uZW1hcHBpbmcgb24gcmVuZGVyIHRhcmdldHNcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZ2wgPSB0aGlzLnN0b3JlLmdsKCk7XG5cdFx0XHRjb25zdCBjdXJyZW50VG9uZW1hcHBpbmcgPSBnbC50b25lTWFwcGluZztcblx0XHRcdGdsLnRvbmVNYXBwaW5nID0gVEhSRUUuTm9Ub25lTWFwcGluZztcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGdsLnRvbmVNYXBwaW5nID0gY3VycmVudFRvbmVtYXBwaW5nO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2NvbXBvc2VyLCB3aWR0aCwgaGVpZ2h0XSA9IFtcblx0XHRcdFx0dGhpcy5lZmZlY3RDb21wb3NlcigpLFxuXHRcdFx0XHR0aGlzLnN0b3JlLnNpemUud2lkdGgoKSxcblx0XHRcdFx0dGhpcy5zdG9yZS5zaXplLmhlaWdodCgpLFxuXHRcdFx0XTtcblx0XHRcdGlmIChjb21wb3Nlcikge1xuXHRcdFx0XHRjb21wb3Nlci5zZXRTaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtncm91cCwgeyBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9LCBjYW1lcmFdID0gW1xuXHRcdFx0XHR0aGlzLmdyb3VwUmVmKCkubmF0aXZlRWxlbWVudCxcblx0XHRcdFx0dGhpcy5jb21wb3NlckRhdGEoKSxcblx0XHRcdFx0dGhpcy5jYW1lcmEoKSxcblx0XHRcdF07XG5cblx0XHRcdGNvbnN0IHBhc3NlczogUGFzc1tdID0gW107XG5cblx0XHRcdGlmIChjb21wb3Nlcikge1xuXHRcdFx0XHRjb25zdCBpbnN0YW5jZVN0YXRlID0gZ2V0SW5zdGFuY2VTdGF0ZShncm91cCk7XG5cdFx0XHRcdGlmICghaW5zdGFuY2VTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0XHRcdGNvbnN0IGNoaWxkcmVuID0gaW5zdGFuY2VTdGF0ZS5ub25PYmplY3RzKCk7XG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2ldO1xuXHRcdFx0XHRcdGlmIChjaGlsZCBpbnN0YW5jZW9mIEVmZmVjdCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgZWZmZWN0czogRWZmZWN0W10gPSBbY2hpbGRdO1xuXG5cdFx0XHRcdFx0XHRpZiAoIWlzQ29udm9sdXRpb24oY2hpbGQpKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBuZXh0OiB1bmtub3duID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0d2hpbGUgKChuZXh0ID0gY2hpbGRyZW5baSArIDFdKSBpbnN0YW5jZW9mIEVmZmVjdCkge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChpc0NvbnZvbHV0aW9uKG5leHQpKSBicmVhaztcblx0XHRcdFx0XHRcdFx0XHRlZmZlY3RzLnB1c2gobmV4dCBhcyBFZmZlY3QpO1xuXHRcdFx0XHRcdFx0XHRcdGkrKztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRjb25zdCBwYXNzID0gbmV3IEVmZmVjdFBhc3MoY2FtZXJhLCAuLi5lZmZlY3RzKTtcblx0XHRcdFx0XHRcdHBhc3Nlcy5wdXNoKHBhc3MpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY2hpbGQgaW5zdGFuY2VvZiBQYXNzKSB7XG5cdFx0XHRcdFx0XHRwYXNzZXMucHVzaChjaGlsZCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Zm9yIChjb25zdCBwYXNzIG9mIHBhc3Nlcykge1xuXHRcdFx0XHRcdGNvbXBvc2VyLmFkZFBhc3MocGFzcyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAobm9ybWFsUGFzcykgbm9ybWFsUGFzcy5lbmFibGVkID0gdHJ1ZTtcblx0XHRcdFx0aWYgKGRvd25TYW1wbGluZ1Bhc3MpIGRvd25TYW1wbGluZ1Bhc3MuZW5hYmxlZCA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGZvciAoY29uc3QgcGFzcyBvZiBwYXNzZXMpIGNvbXBvc2VyPy5yZW1vdmVQYXNzKHBhc3MpO1xuXHRcdFx0XHRpZiAobm9ybWFsUGFzcykgbm9ybWFsUGFzcy5lbmFibGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmIChkb3duU2FtcGxpbmdQYXNzKSBkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0YmVmb3JlUmVuZGVyKFxuXHRcdFx0KHsgZGVsdGEgfSkgPT4ge1xuXHRcdFx0XHRjb25zdCBbY29tcG9zZXIsIHsgZW5hYmxlZCwgYXV0b0NsZWFyLCBzdGVuY2lsQnVmZmVyIH0sIGdsXSA9IFtcblx0XHRcdFx0XHR0aGlzLmVmZmVjdENvbXBvc2VyKCksXG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zKCksXG5cdFx0XHRcdFx0dGhpcy5zdG9yZS5zbmFwc2hvdC5nbCxcblx0XHRcdFx0XTtcblxuXHRcdFx0XHRpZiAoZW5hYmxlZCkge1xuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRBdXRvQ2xlYXIgPSBnbC5hdXRvQ2xlYXI7XG5cdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gYXV0b0NsZWFyO1xuXHRcdFx0XHRcdGlmIChzdGVuY2lsQnVmZmVyICYmICFhdXRvQ2xlYXIpIGdsLmNsZWFyU3RlbmNpbCgpO1xuXHRcdFx0XHRcdGNvbXBvc2VyLnJlbmRlcihkZWx0YSk7XG5cdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gY3VycmVudEF1dG9DbGVhcjtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgcHJpb3JpdHk6IHRoaXMucHJpb3JpdHkgfSxcblx0XHQpO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { Effect } from 'postprocessing';\nimport * as THREE from 'three';\nimport * as i0 from \"@angular/core\";\nconst fragment = /* language=glsl glsl */ `\nuniform sampler2D uCharacters;\nuniform float uCharactersCount;\nuniform float uCellSize;\nuniform bool uInvert;\nuniform vec3 uColor;\n\nconst vec2 SIZE = vec2(16.);\n\nvec3 greyscale(vec3 color, float strength) {\n float g = dot(color, vec3(0.299, 0.587, 0.114));\n return mix(color, vec3(g), strength);\n}\n\nvec3 greyscale(vec3 color) {\n return greyscale(color, 1.0);\n}\n\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 cell = resolution / uCellSize;\n vec2 grid = 1.0 / cell;\n vec2 pixelizedUV = grid * (0.5 + floor(uv / grid));\n vec4 pixelized = texture2D(inputBuffer, pixelizedUV);\n float greyscaled = greyscale(pixelized.rgb).r;\n\n if (uInvert) {\n greyscaled = 1.0 - greyscaled;\n }\n\n float characterIndex = floor((uCharactersCount - 1.0) * greyscaled);\n vec2 characterPosition = vec2(mod(characterIndex, SIZE.x), floor(characterIndex / SIZE.y));\n vec2 offset = vec2(characterPosition.x, -characterPosition.y) / SIZE;\n vec2 charUV = mod(uv * (cell / SIZE), 1.0 / SIZE) - vec2(0., 1.0 / SIZE) + offset;\n vec4 asciiCharacter = texture2D(uCharacters, charUV);\n\n asciiCharacter.rgb = uColor * asciiCharacter.r;\n asciiCharacter.a = pixelized.a;\n outputColor = asciiCharacter;\n}\n`;\nexport class ASCIIEffect extends Effect {\n constructor({ font = 'arial', characters = ` .:,'-^=*+?!|0#X%WM@`, fontSize = 54, cellSize = 16, color = '#ffffff', invert = false, } = {}) {\n const uniforms = new Map([\n ['uCharacters', new THREE.Uniform(new THREE.Texture())],\n ['uCellSize', new THREE.Uniform(cellSize)],\n ['uCharactersCount', new THREE.Uniform(characters.length)],\n ['uColor', new THREE.Uniform(new THREE.Color(color))],\n ['uInvert', new THREE.Uniform(invert)],\n ]);\n super('ASCIIEffect', fragment, { uniforms });\n const charactersTextureUniform = this.uniforms.get('uCharacters');\n if (charactersTextureUniform) {\n charactersTextureUniform.value = this.createCharactersTexture(characters, font, fontSize);\n }\n }\n /** Draws the characters on a Canvas and returns a texture */\n createCharactersTexture(characters, font, fontSize) {\n const canvas = document.createElement('canvas');\n const SIZE = 1024;\n const MAX_PER_ROW = 16;\n const CELL = SIZE / MAX_PER_ROW;\n canvas.width = canvas.height = SIZE;\n const texture = new THREE.CanvasTexture(canvas, undefined, THREE.RepeatWrapping, THREE.RepeatWrapping, THREE.NearestFilter, THREE.NearestFilter);\n const context = canvas.getContext('2d');\n if (!context) {\n throw new Error('Context not available');\n }\n context.clearRect(0, 0, SIZE, SIZE);\n context.font = `${fontSize}px ${font}`;\n context.textAlign = 'center';\n context.textBaseline = 'middle';\n context.fillStyle = '#fff';\n for (let i = 0; i < characters.length; i++) {\n const char = characters[i];\n const x = i % MAX_PER_ROW;\n const y = Math.floor(i / MAX_PER_ROW);\n context.fillText(char, x * CELL + CELL / 2, y * CELL + CELL / 2);\n }\n texture.needsUpdate = true;\n return texture;\n }\n}\nconst defaultOptions = {\n font: 'arial',\n characters: ` .:,'-^=*+?!|0#X%WM@`,\n fontSize: 54,\n cellSize: 16,\n color: '#ffffff',\n invert: false,\n};\nexport class NgtpASCII {\n constructor() {\n this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n this.effect = computed(() => new ASCIIEffect(this.options()));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpASCII, isStandalone: true, selector: \"ngtp-ascii\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpASCII, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-ascii',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNjaWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9hc2NpaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQzs7QUFFL0IsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVDekMsQ0FBQztBQVdGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQ1gsSUFBSSxHQUFHLE9BQU8sRUFDZCxVQUFVLEdBQUcsc0JBQXNCLEVBQ25DLFFBQVEsR0FBRyxFQUFFLEVBQ2IsUUFBUSxHQUFHLEVBQUUsRUFDYixLQUFLLEdBQUcsU0FBUyxFQUNqQixNQUFNLEdBQUcsS0FBSyxNQUNTLEVBQUU7UUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQXdCO1lBQy9DLENBQUMsYUFBYSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxDQUFDLGtCQUFrQixFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMs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QUFLLEVBQUUsU0FBUztJQUNoQixNQUFNLEVBQUUsS0FBSztDQUNiLENBQUM7QUFXRixNQUFNLE9BQU8sU0FBUztJQUtyQjtRQUpBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFbEUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBR2xFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQVZXLFNBQVM7a0dBQVQsU0FBUyxnTkFQWDs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxTQUFTO2tCQVRyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuY29uc3QgZnJhZ21lbnQgPSAvKiBsYW5ndWFnZT1nbHNsIGdsc2wgKi8gYFxudW5pZm9ybSBzYW1wbGVyMkQgdUNoYXJhY3RlcnM7XG51bmlmb3JtIGZsb2F0IHVDaGFyYWN0ZXJzQ291bnQ7XG51bmlmb3JtIGZsb2F0IHVDZWxsU2l6ZTtcbnVuaWZvcm0gYm9vbCB1SW52ZXJ0O1xudW5pZm9ybSB2ZWMzIHVDb2xvcjtcblxuY29uc3QgdmVjMiBTSVpFID0gdmVjMigxNi4pO1xuXG52ZWMzIGdyZXlzY2FsZSh2ZWMzIGNvbG9yLCBmbG9hdCBzdHJlbmd0aCkge1xuICAgIGZsb2F0IGcgPSBkb3QoY29sb3IsIHZlYzMoMC4yOTksIDAuNTg3LCAwLjExNCkpO1xuICAgIHJldHVybiBtaXgoY29sb3IsIHZlYzMoZyksIHN0cmVuZ3RoKTtcbn1cblxudmVjMyBncmV5c2NhbGUodmVjMyBjb2xvcikge1xuICAgIHJldHVybiBncmV5c2NhbGUoY29sb3IsIDEuMCk7XG59XG5cbnZvaWQgbWFpbkltYWdlKGNvbnN0IGluIHZlYzQgaW5wdXRDb2xvciwgY29uc3QgaW4gdmVjMiB1diwgb3V0IHZlYzQgb3V0cHV0Q29sb3IpIHtcbiAgICB2ZWMyIGNlbGwgPSByZXNvbHV0aW9uIC8gdUNlbGxTaXplO1xuICAgIHZlYzIgZ3JpZCA9IDEuMCAvIGNlbGw7XG4gICAgdmVjMiBwaXhlbGl6ZWRVViA9IGdyaWQgKiAoMC41ICsgZmxvb3IodXYgLyBncmlkKSk7XG4gICAgdmVjNCBwaXhlbGl6ZWQgPSB0ZXh0dXJlMkQoaW5wdXRCdWZmZXIsIHBpeGVsaXplZFVWKTtcbiAgICBmbG9hdCBncmV5c2NhbGVkID0gZ3JleXNjYWxlKHBpeGVsaXplZC5yZ2IpLnI7XG5cbiAgICBpZiAodUludmVydCkge1xuICAgICAgICBncmV5c2NhbGVkID0gMS4wIC0gZ3JleXNjYWxlZDtcbiAgICB9XG5cbiAgICBmbG9hdCBjaGFyYWN0ZXJJbmRleCA9IGZsb29yKCh1Q2hhcmFjdGVyc0NvdW50IC0gMS4wKSAqIGdyZXlzY2FsZWQpO1xuICAgIHZlYzIgY2hhcmFjdGVyUG9zaXRpb24gPSB2ZWMyKG1vZChjaGFyYWN0ZXJJbmRleCwgU0laRS54KSwgZmxvb3IoY2hhcmFjdGVySW5kZXggLyBTSVpFLnkpKTtcbiAgICB2ZWMyIG9mZnNldCA9IHZlYzIoY2hhcmFjdGVyUG9zaXRpb24ueCwgLWNoYXJhY3RlclBvc2l0aW9uLnkpIC8gU0laRTtcbiAgICB2ZWMyIGNoYXJVViA9IG1vZCh1diAqIChjZWxsIC8gU0laRSksIDEuMCAvIFNJWkUpIC0gdmVjMigwLiwgMS4wIC8gU0laRSkgKyBvZmZzZXQ7XG4gICAgdmVjNCBhc2NpaUNoYXJhY3RlciA9IHRleHR1cmUyRCh1Q2hhcmFjdGVycywgY2hhclVWKTtcblxuICAgIGFzY2lpQ2hhcmFjdGVyLnJnYiA9IHVDb2xvciAqIGFzY2lpQ2hhcmFjdGVyLnI7XG4gICAgYXNjaWlDaGFyYWN0ZXIuYSA9IHBpeGVsaXplZC5hO1xuICAgIG91dHB1dENvbG9yID0gYXNjaWlDaGFyYWN0ZXI7XG59XG5gO1xuXG5pbnRlcmZhY2UgQVNDSUlFZmZlY3RPcHRpb25zIHtcblx0Zm9udD86IHN0cmluZztcblx0Y2hhcmFjdGVycz86IHN0cmluZztcblx0Zm9udFNpemU/OiBudW1iZXI7XG5cdGNlbGxTaXplPzogbnVtYmVyO1xuXHRjb2xvcj86IHN0cmluZztcblx0aW52ZXJ0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFTQ0lJRWZmZWN0IGV4dGVuZHMgRWZmZWN0IHtcblx0Y29uc3RydWN0b3Ioe1xuXHRcdGZvbnQgPSAnYXJpYWwnLFxuXHRcdGNoYXJhY3RlcnMgPSBgIC46LCctXj0qKz8hfDAjWCVXTUBgLFxuXHRcdGZvbnRTaXplID0gNTQsXG5cdFx0Y2VsbFNpemUgPSAxNixcblx0XHRjb2xvciA9ICcjZmZmZmZmJyxcblx0XHRpbnZlcnQgPSBmYWxzZSxcblx0fTogQVNDSUlFZmZlY3RPcHRpb25zID0ge30pIHtcblx0XHRjb25zdCB1bmlmb3JtcyA9IG5ldyBNYXA8c3RyaW5nLCBUSFJFRS5Vbmlmb3JtPihbXG5cdFx0XHRbJ3VDaGFyYWN0ZXJzJywgbmV3IFRIUkVFLlVuaWZvcm0obmV3IFRIUkVFLlRleHR1cmUoKSldLFxuXHRcdFx0Wyd1Q2VsbFNpemUnLCBuZXcgVEhSRUUuVW5pZm9ybShjZWxsU2l6ZSldLFxuXHRcdFx0Wyd1Q2hhcmFjdGVyc0NvdW50JywgbmV3IFRIUkVFLlVuaWZvcm0oY2hhcmFjdGVycy5sZW5ndGgpXSxcblx0XHRcdFsndUNvbG9yJywgbmV3IFRIUkVFLlVuaWZvcm0obmV3IFRIUkVFLkNvbG9yKGNvbG9yKSldLFxuXHRcdFx0Wyd1SW52ZXJ0JywgbmV3IFRIUkVFLlVuaWZvcm0oaW52ZXJ0KV0sXG5cdFx0XSk7XG5cblx0XHRzdXBlcignQVNDSUlFZmZlY3QnLCBmcmFnbWVudCwgeyB1bmlmb3JtcyB9KTtcblxuXHRcdGNvbnN0IGNoYXJhY3RlcnNUZXh0dXJlVW5pZm9ybSA9IHRoaXMudW5pZm9ybXMuZ2V0KCd1Q2hhcmFjdGVycycpO1xuXG5cdFx0aWYgKGNoYXJhY3RlcnNUZXh0dXJlVW5pZm9ybSkge1xuXHRcdFx0Y2hhcmFjdGVyc1RleHR1cmVVbmlmb3JtLnZhbHVlID0gdGhpcy5jcmVhdGVDaGFyYWN0ZXJzVGV4dHVyZShjaGFyYWN0ZXJzLCBmb250LCBmb250U2l6ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqIERyYXdzIHRoZSBjaGFyYWN0ZXJzIG9uIGEgQ2FudmFzIGFuZCByZXR1cm5zIGEgdGV4dHVyZSAqL1xuXHRwdWJsaWMgY3JlYXRlQ2hhcmFjdGVyc1RleHR1cmUoY2hhcmFjdGVyczogc3RyaW5nLCBmb250OiBzdHJpbmcsIGZvbnRTaXplOiBudW1iZXIpOiBUSFJFRS5UZXh0dXJlIHtcblx0XHRjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcblx0XHRjb25zdCBTSVpFID0gMTAyNDtcblx0XHRjb25zdCBNQVhfUEVSX1JPVyA9IDE2O1xuXHRcdGNvbnN0IENFTEwgPSBTSVpFIC8gTUFYX1BFUl9ST1c7XG5cblx0XHRjYW52YXMud2lkdGggPSBjYW52YXMuaGVpZ2h0ID0gU0laRTtcblx0XHRjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLkNhbnZhc1RleHR1cmUoXG5cdFx0XHRjYW52YXMsXG5cdFx0XHR1bmRlZmluZWQsXG5cdFx0XHRUSFJFRS5SZXBlYXRXcmFwcGluZyxcblx0XHRcdFRIUkVFLlJlcGVhdFdyYXBwaW5nLFxuXHRcdFx0VEhSRUUuTmVhcmVzdEZpbHRlcixcblx0XHRcdFRIUkVFLk5lYXJlc3RGaWx0ZXIsXG5cdFx0KTtcblx0XHRjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG5cblx0XHRpZiAoIWNvbnRleHQpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignQ29udGV4dCBub3QgYXZhaWxhYmxlJyk7XG5cdFx0fVxuXG5cdFx0Y29udGV4dC5jbGVhclJlY3QoMCwgMCwgU0laRSwgU0laRSk7XG5cdFx0Y29udGV4dC5mb250ID0gYCR7Zm9udFNpemV9cHggJHtmb250fWA7XG5cdFx0Y29udGV4dC50ZXh0QWxpZ24gPSAnY2VudGVyJztcblx0XHRjb250ZXh0LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xuXHRcdGNvbnRleHQuZmlsbFN0eWxlID0gJyNmZmYnO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCBjaGFyID0gY2hhcmFjdGVyc1tpXTtcblx0XHRcdGNvbnN0IHggPSBpICUgTUFYX1BFUl9ST1c7XG5cdFx0XHRjb25zdCB5ID0gTWF0aC5mbG9vcihpIC8gTUFYX1BFUl9ST1cpO1xuXHRcdFx0Y29udGV4dC5maWxsVGV4dChjaGFyLCB4ICogQ0VMTCArIENFTEwgLyAyLCB5ICogQ0VMTCArIENFTEwgLyAyKTtcblx0XHR9XG5cblx0XHR0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcblx0XHRyZXR1cm4gdGV4dHVyZTtcblx0fVxufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogQVNDSUlFZmZlY3RPcHRpb25zID0ge1xuXHRmb250OiAnYXJpYWwnLFxuXHRjaGFyYWN0ZXJzOiBgIC46LCctXj0qKz8hfDAjWCVXTUBgLFxuXHRmb250U2l6ZTogNTQsXG5cdGNlbGxTaXplOiAxNixcblx0Y29sb3I6ICcjZmZmZmZmJyxcblx0aW52ZXJ0OiBmYWxzZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtYXNjaWknLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEFTQ0lJIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByb3RlY3RlZCBlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiBuZXcgQVNDSUlFZmZlY3QodGhpcy5vcHRpb25zKCkpKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpBloom {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ BloomEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpBloom, isStandalone: true, selector: \"ngtp-bloom\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpBloom, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-bloom',\n template: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvb20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ibG9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBZ0J6RixNQUFNLE9BQU8sU0FBUztJQUtyQjtRQUpBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBK0MsQ0FBQyxDQUFDO1FBRXZELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQVBXLFNBQVM7a0dBQVQsU0FBUyxtTUFGVixDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLDRJQVZwRTs7Ozs7RUFLVCw0REFDUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBTTFCLFNBQVM7a0JBZHJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztpQkFDOUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIEJsb29tRWZmZWN0LCBCbG9vbUVmZmVjdE9wdGlvbnMgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlLCBwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWJsb29tJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWJsb29tLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWJsb29tLWVmZmVjdD5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uQUREIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEJsb29tIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Qmxvb21FZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBCbG9vbUVmZmVjdCB9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpBrightnessContrast {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ BrightnessContrastEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpBrightnessContrast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpBrightnessContrast, isStandalone: true, selector: \"ngtp-brightness-contrast\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpBrightnessContrast, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-brightness-contrast',\n template: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZ2h0bmVzcy1jb250cmFzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2JyaWdodG5lc3MtY29udHJhc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLHNCQUFzQjtJQUlsQztRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsQ0FBQyxDQUFDO1FBQzVELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7OEdBTlcsc0JBQXNCO2tHQUF0QixzQkFBc0IsZ1ZBWHhCOzs7OztFQUtULDREQUNTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFLMUIsc0JBQXNCO2tCQWJsQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIEJyaWdodG5lc3NFZmZlY3RPcHRpb25zID0gTm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBCcmlnaHRuZXNzQ29udHJhc3RFZmZlY3Q+WzBdPjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1icmlnaHRuZXNzLWNvbnRyYXN0Jyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWJyaWdodG5lc3MtY29udHJhc3QtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtYnJpZ2h0bmVzcy1jb250cmFzdC1lZmZlY3Q+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwQnJpZ2h0bmVzc0NvbnRyYXN0IHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8QnJpZ2h0bmVzc0VmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBCcmlnaHRuZXNzQ29udHJhc3RFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ChromaticAberrationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpChromaticAberration {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ChromaticAberrationEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpChromaticAberration, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpChromaticAberration, isStandalone: true, selector: \"ngtp-chromatic-aberration\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpChromaticAberration, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-chromatic-aberration',\n template: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21hdGljLWFiYmVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jaHJvbWF0aWMtYWJiZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBbUI1RCxNQUFNLE9BQU8sdUJBQXVCO0lBSW5DO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE2RCxDQUFDLENBQUM7UUFDckUsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSx5QkFBeUIsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs4R0FOVyx1QkFBdUI7a0dBQXZCLHVCQUF1QixpVkFYekI7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQix1QkFBdUI7a0JBYm5DLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIENocm9tYXRpY0FiZXJyYXRpb25FZmZlY3RPcHRpb25zID0gUGFydGlhbDxcblx0Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0PlswXT5cbj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtY2hyb21hdGljLWFiZXJyYXRpb24nLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtY2hyb21hdGljLWFiZXJyYXRpb24tZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtY2hyb21hdGljLWFiZXJyYXRpb24tZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cENocm9tYXRpY0FiZXJyYXRpb24ge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IENocm9tYXRpY0FiZXJyYXRpb25FZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ColorAverageEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpColorAverage {\n constructor() {\n this.options = input({ blendFunction: BlendFunction.NORMAL }, { transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) });\n extend({ ColorAverageEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpColorAverage, isStandalone: true, selector: \"ngtp-color-average\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpColorAverage, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-color-average',\n template: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYXZlcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2NvbG9yLWF2ZXJhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFhbkUsTUFBTSxPQUFPLGdCQUFnQjtJQU01QjtRQUxBLFlBQU8sR0FBRyxLQUFLLENBQ2QsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUN2QyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FDbkUsQ0FBQztRQUdELE1BQU0sQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQVJXLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHdOQVRsQjs7OztFQUlULDREQUNTLE9BQU87OzJGQUlMLGdCQUFnQjtrQkFYNUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBDb2xvckF2ZXJhZ2VFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtY29sb3ItYXZlcmFnZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1jb2xvci1hdmVyYWdlLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCkuYmxlbmRGdW5jdGlvbl1cIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtY29sb3ItYXZlcmFnZS1lZmZlY3Q+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cENvbG9yQXZlcmFnZSB7XG5cdG9wdGlvbnMgPSBpbnB1dChcblx0XHR7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uTk9STUFMIH0sXG5cdFx0eyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKHsgYmxlbmRGdW5jdGlvbjogQmxlbmRGdW5jdGlvbi5OT1JNQUwgfSkgfSxcblx0KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBDb2xvckF2ZXJhZ2VFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpColorDepth {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ColorDepthEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpColorDepth, isStandalone: true, selector: \"ngtp-color-depth\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpColorDepth, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-color-depth',\n template: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jb2xvci1kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBaUI1RCxNQUFNLE9BQU8sY0FBYztJQUkxQjtRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsQ0FBQyxDQUFDO1FBQzVELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7OEdBTlcsY0FBYztrR0FBZCxjQUFjLHdVQVhoQjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLGNBQWM7a0JBYjFCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBDb2xvckRlcHRoRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIENvbG9yRGVwdGhFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIENvbG9yRGVwdGhFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtY29sb3ItZGVwdGgnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtY29sb3ItZGVwdGgtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtY29sb3ItZGVwdGgtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cENvbG9yRGVwdGgge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxDb2xvckRlcHRoRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IENvbG9yRGVwdGhFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpDepth {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ DepthEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpDepth, isStandalone: true, selector: \"ngtp-depth\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpDepth, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-depth',\n template: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFNBQVM7SUFJckI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQStDLENBQUMsQ0FBQztRQUN2RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FOVyxTQUFTO2tHQUFULFNBQVMsa1VBWFg7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQixTQUFTO2tCQWJyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IERlcHRoRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIERlcHRoRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEZXB0aEVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1kZXB0aCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1kZXB0aC1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1kZXB0aC1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwRGVwdGgge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxEZXB0aEVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBEZXB0aEVmZmVjdCB9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { DepthOfFieldEffect, MaskFunction } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nexport class NgtpDepthOfField {\n constructor() {\n this.options = input({});\n this.effectComposer = inject(NgtpEffectComposer);\n this.effect = computed(() => {\n const [camera, options] = [this.effectComposer.camera(), this.options()];\n const autoFocus = options.target != null;\n const effect = new DepthOfFieldEffect(camera, options);\n // Creating a target enables autofocus, NGT will set via props\n if (autoFocus)\n effect.target = new THREE.Vector3();\n // Depth texture for depth picking with optional packing strategy\n if (options.depthTexture) {\n effect.setDepthTexture(options.depthTexture.texture, options.depthTexture.packing);\n }\n // Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur\n const maskPass = effect['maskPass'];\n maskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;\n return effect;\n });\n effect((onCleanup) => {\n const depthOfFieldEffect = this.effect();\n onCleanup(() => depthOfFieldEffect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpDepthOfField, isStandalone: true, selector: \"ngtp-depth-of-field\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpDepthOfField, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-depth-of-field',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGgtb2YtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC1vZi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsT0FBTyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFjeEQsTUFBTSxPQUFPLGdCQUFnQjtJQTRCNUI7UUEzQkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFnQixDQUFDLENBQUM7UUFFMUIsbUJBQWMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUxQyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUV6RSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztZQUV6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV2RCw4REFBOEQ7WUFDOUQsSUFBSSxTQUFTO2dCQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkQsaUVBQWlFO1lBQ2pFLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMxQixNQUFNLENBQUMsZUFBZSxDQUNyQixPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFDNUIsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUF1QyxDQUM1RCxDQUFDO1lBQ0gsQ0FBQztZQUNELDJHQUEyRztZQUMzRyxNQUFNLFFBQVEsR0FBSSxNQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RELFFBQVEsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLHNCQUFzQixDQUFDO1lBRTVELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7UUFHRixNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBakNXLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHlOQVBsQjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxnQkFBZ0I7a0JBVDVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkLCBOZ3RBcmdzLCBOZ3RWZWN0b3IzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEZXB0aE9mRmllbGRFZmZlY3QsIE1hc2tGdW5jdGlvbiB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHBFZmZlY3RDb21wb3NlciB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbnR5cGUgRE9GT3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRGVwdGhPZkZpZWxkRWZmZWN0PlsxXT4gJlxuXHRQYXJ0aWFsPHsgdGFyZ2V0OiBOZ3RWZWN0b3IzOyBkZXB0aFRleHR1cmU6IHsgdGV4dHVyZTogVEhSRUUuVGV4dHVyZTsgcGFja2luZzogVEhSRUUuRGVwdGhQYWNraW5nU3RyYXRlZ2llcyB9IH0+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWRlcHRoLW9mLWZpZWxkJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBEZXB0aE9mRmllbGQge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgRE9GT3B0aW9ucyk7XG5cblx0cHJpdmF0ZSBlZmZlY3RDb21wb3NlciA9IGluamVjdChOZ3RwRWZmZWN0Q29tcG9zZXIpO1xuXG5cdHByb3RlY3RlZCBlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW2NhbWVyYSwgb3B0aW9uc10gPSBbdGhpcy5lZmZlY3RDb21wb3Nlci5jYW1lcmEoKSwgdGhpcy5vcHRpb25zKCldO1xuXG5cdFx0Y29uc3QgYXV0b0ZvY3VzID0gb3B0aW9ucy50YXJnZXQgIT0gbnVsbDtcblxuXHRcdGNvbnN0IGVmZmVjdCA9IG5ldyBEZXB0aE9mRmllbGRFZmZlY3QoY2FtZXJhLCBvcHRpb25zKTtcblxuXHRcdC8vIENyZWF0aW5nIGEgdGFyZ2V0IGVuYWJsZXMgYXV0b2ZvY3VzLCBOR1Qgd2lsbCBzZXQgdmlhIHByb3BzXG5cdFx0aWYgKGF1dG9Gb2N1cykgZWZmZWN0LnRhcmdldCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cdFx0Ly8gRGVwdGggdGV4dHVyZSBmb3IgZGVwdGggcGlja2luZyB3aXRoIG9wdGlvbmFsIHBhY2tpbmcgc3RyYXRlZ3lcblx0XHRpZiAob3B0aW9ucy5kZXB0aFRleHR1cmUpIHtcblx0XHRcdGVmZmVjdC5zZXREZXB0aFRleHR1cmUoXG5cdFx0XHRcdG9wdGlvbnMuZGVwdGhUZXh0dXJlLnRleHR1cmUsXG5cdFx0XHRcdG9wdGlvbnMuZGVwdGhUZXh0dXJlLnBhY2tpbmcgYXMgVEhSRUUuRGVwdGhQYWNraW5nU3RyYXRlZ2llcyxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdC8vIFRlbXBvcmFyeSBmaXggdGhhdCByZXN0b3JlcyBET0YgNi4yMS4zIGJlaGF2aW9yLCBldmVyeXRoaW5nIHNpbmNlIHRoZW4gbGV0cyBzaGFwZXMgbGVhayB0aHJvdWdoIHRoZSBibHVyXG5cdFx0Y29uc3QgbWFza1Bhc3MgPSAoZWZmZWN0IGFzIE5ndEFueVJlY29yZClbJ21hc2tQYXNzJ107XG5cdFx0bWFza1Bhc3MubWFza0Z1bmN0aW9uID0gTWFza0Z1bmN0aW9uLk1VTFRJUExZX1JHQl9TRVRfQUxQSEE7XG5cblx0XHRyZXR1cm4gZWZmZWN0O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZGVwdGhPZkZpZWxkRWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBkZXB0aE9mRmllbGRFZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpDotScreen {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ DotScreenEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpDotScreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpDotScreen, isStandalone: true, selector: \"ngtp-dot-screen\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpDotScreen, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-dot-screen',\n template: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2RvdC1zY3JlZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxhQUFhO0lBSXpCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFtRCxDQUFDLENBQUM7UUFDM0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7OEdBTlcsYUFBYTtrR0FBYixhQUFhLHVVQVhmOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsYUFBYTtrQkFiekIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IERvdFNjcmVlbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBEb3RTY3JlZW5FZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIERvdFNjcmVlbkVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1kb3Qtc2NyZWVuJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWRvdC1zY3JlZW4tZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZG90LXNjcmVlbi1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwRG90U2NyZWVuIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8RG90U2NyZWVuRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IERvdFNjcmVlbkVmZmVjdCB9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { FXAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpFXAA {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ FXAAEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpFXAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpFXAA, isStandalone: true, selector: \"ngtp-fxaa\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpFXAA, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-fxaa',\n template: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnhhYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2Z4YWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxRQUFRO0lBSXBCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE4QyxDQUFDLENBQUM7UUFDdEQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OEdBTlcsUUFBUTtrR0FBUixRQUFRLGlVQVhWOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsUUFBUTtrQkFicEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBGWEFBRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIEZYQUFFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEZYQUFFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZnhhYScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1mWEFBLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWZYQUEtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEZYQUEge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxGWEFBRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEZYQUFFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, injectStore, pick, vector2 } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { GlitchEffect, GlitchMode } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGlitch {\n constructor() {\n this.options = input({ active: true }, { transform: mergeInputs({ active: true }) });\n this.active = pick(this.options, 'active');\n this.mode = pick(this.options, 'mode');\n this.ratio = pick(this.options, 'ratio');\n this.dtSize = pick(this.options, 'dtSize');\n this.columns = pick(this.options, 'columns');\n this.blendFunction = pick(this.options, 'blendFunction');\n this.perturbationMap = pick(this.options, 'perturbationMap');\n this.delay = vector2(this.options, 'delay');\n this.duration = vector2(this.options, 'duration');\n this.chromaticAberrationOffset = vector2(this.options, 'chromaticAberrationOffset');\n this.strength = vector2(this.options, 'strength');\n this.store = injectStore();\n this.effect = computed(() => new GlitchEffect({\n ratio: this.ratio(),\n dtSize: this.dtSize(),\n columns: this.columns(),\n blendFunction: this.blendFunction(),\n perturbationMap: this.perturbationMap(),\n delay: this.delay(),\n duration: this.duration(),\n chromaticAberrationOffset: this.chromaticAberrationOffset(),\n strength: this.strength(),\n }));\n effect(() => {\n const [glitchEffect, invalidate, mode, active] = [\n this.effect(),\n this.store.invalidate(),\n this.mode(),\n this.active(),\n ];\n glitchEffect.mode = active ? mode || GlitchMode.SPORADIC : GlitchMode.DISABLED;\n invalidate();\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpGlitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpGlitch, isStandalone: true, selector: \"ngtp-glitch\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpGlitch, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-glitch',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvZ2xpdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLE9BQU8sRUFBYyxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFxQjFELE1BQU0sT0FBTyxVQUFVO0lBaUN0QjtRQWhDQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBbUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFekYsV0FBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsQyxVQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEMsV0FBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3BELG9CQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUV4RCxVQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLDhCQUF5QixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDL0UsYUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLFVBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUU5QixXQUFNLEdBQUcsUUFBUSxDQUNoQixHQUFHLEVBQUUsQ0FDSixJQUFJLFlBQVksQ0FBQztZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6Qix5QkFBeUIsRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDM0QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7U0FDekIsQ0FBQyxDQUNILENBQUM7UUFHRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHO2dCQUNoRCxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNYLElBQUksQ0FBQyxNQUFNLEVBQUU7YUFDYixDQUFDO1lBQ0YsWUFBWSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQy9FLFVBQVUsRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FqRFcsVUFBVTtrR0FBVixVQUFVLGlOQVBaOztFQUVULDREQUNTLE9BQU87OzJGQUlMLFVBQVU7a0JBVHRCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0VmVjdG9yMiwgaW5qZWN0U3RvcmUsIHBpY2ssIHZlY3RvcjIgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEdsaXRjaEVmZmVjdCwgR2xpdGNoTW9kZSB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcblxuZXhwb3J0IHR5cGUgR2xpdGNoT3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgR2xpdGNoRWZmZWN0PlswXT4gJlxuXHRQYXJ0aWFsPHtcblx0XHRtb2RlOiBHbGl0Y2hNb2RlO1xuXHRcdGFjdGl2ZTogYm9vbGVhbjtcblx0XHRkZWxheTogTmd0VmVjdG9yMjtcblx0XHRkdXJhdGlvbjogTmd0VmVjdG9yMjtcblx0XHRjaHJvbWF0aWNBYmVycmF0aW9uT2Zmc2V0OiBOZ3RWZWN0b3IyO1xuXHRcdHN0cmVuZ3RoOiBOZ3RWZWN0b3IyO1xuXHR9PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1nbGl0Y2gnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEdsaXRjaCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7IGFjdGl2ZTogdHJ1ZSB9IGFzIEdsaXRjaE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyh7IGFjdGl2ZTogdHJ1ZSB9KSB9KTtcblxuXHRwcml2YXRlIGFjdGl2ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnYWN0aXZlJyk7XG5cdHByaXZhdGUgbW9kZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnbW9kZScpO1xuXHRwcml2YXRlIHJhdGlvID0gcGljayh0aGlzLm9wdGlvbnMsICdyYXRpbycpO1xuXHRwcml2YXRlIGR0U2l6ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnZHRTaXplJyk7XG5cdHByaXZhdGUgY29sdW1ucyA9IHBpY2sodGhpcy5vcHRpb25zLCAnY29sdW1ucycpO1xuXHRwcml2YXRlIGJsZW5kRnVuY3Rpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nKTtcblx0cHJpdmF0ZSBwZXJ0dXJiYXRpb25NYXAgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3BlcnR1cmJhdGlvbk1hcCcpO1xuXG5cdHByaXZhdGUgZGVsYXkgPSB2ZWN0b3IyKHRoaXMub3B0aW9ucywgJ2RlbGF5Jyk7XG5cdHByaXZhdGUgZHVyYXRpb24gPSB2ZWN0b3IyKHRoaXMub3B0aW9ucywgJ2R1cmF0aW9uJyk7XG5cdHByaXZhdGUgY2hyb21hdGljQWJlcnJhdGlvbk9mZnNldCA9IHZlY3RvcjIodGhpcy5vcHRpb25zLCAnY2hyb21hdGljQWJlcnJhdGlvbk9mZnNldCcpO1xuXHRwcml2YXRlIHN0cmVuZ3RoID0gdmVjdG9yMih0aGlzLm9wdGlvbnMsICdzdHJlbmd0aCcpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXG5cdGVmZmVjdCA9IGNvbXB1dGVkKFxuXHRcdCgpID0+XG5cdFx0XHRuZXcgR2xpdGNoRWZmZWN0KHtcblx0XHRcdFx0cmF0aW86IHRoaXMucmF0aW8oKSxcblx0XHRcdFx0ZHRTaXplOiB0aGlzLmR0U2l6ZSgpLFxuXHRcdFx0XHRjb2x1bW5zOiB0aGlzLmNvbHVtbnMoKSxcblx0XHRcdFx0YmxlbmRGdW5jdGlvbjogdGhpcy5ibGVuZEZ1bmN0aW9uKCksXG5cdFx0XHRcdHBlcnR1cmJhdGlvbk1hcDogdGhpcy5wZXJ0dXJiYXRpb25NYXAoKSxcblx0XHRcdFx0ZGVsYXk6IHRoaXMuZGVsYXkoKSxcblx0XHRcdFx0ZHVyYXRpb246IHRoaXMuZHVyYXRpb24oKSxcblx0XHRcdFx0Y2hyb21hdGljQWJlcnJhdGlvbk9mZnNldDogdGhpcy5jaHJvbWF0aWNBYmVycmF0aW9uT2Zmc2V0KCksXG5cdFx0XHRcdHN0cmVuZ3RoOiB0aGlzLnN0cmVuZ3RoKCksXG5cdFx0XHR9KSxcblx0KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2dsaXRjaEVmZmVjdCwgaW52YWxpZGF0ZSwgbW9kZSwgYWN0aXZlXSA9IFtcblx0XHRcdFx0dGhpcy5lZmZlY3QoKSxcblx0XHRcdFx0dGhpcy5zdG9yZS5pbnZhbGlkYXRlKCksXG5cdFx0XHRcdHRoaXMubW9kZSgpLFxuXHRcdFx0XHR0aGlzLmFjdGl2ZSgpLFxuXHRcdFx0XTtcblx0XHRcdGdsaXRjaEVmZmVjdC5tb2RlID0gYWN0aXZlID8gbW9kZSB8fCBHbGl0Y2hNb2RlLlNQT1JBRElDIDogR2xpdGNoTW9kZS5ESVNBQkxFRDtcblx0XHRcdGludmFsaWRhdGUoKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs, omit, pick, resolveRef } from 'angular-three';\nimport { GodRaysEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGodRays {\n constructor() {\n this.options = input({});\n this.effectComposer = inject(NgtpEffectComposer);\n this.effectOptions = omit(this.options, ['sun']);\n this.sun = pick(this.options, 'sun');\n this.sunElement = computed(() => {\n const sun = this.sun();\n if (typeof sun === 'function')\n return resolveRef(sun());\n return resolveRef(sun);\n });\n this.effect = computed(() => {\n const [camera, sunElement, options] = [this.effectComposer.camera(), this.sunElement(), this.effectOptions()];\n return new GodRaysEffect(camera, sunElement, options);\n });\n effect(() => {\n const sunElement = this.sunElement();\n if (!sunElement)\n return;\n const godRaysEffect = this.effect();\n godRaysEffect.lightSource = sunElement;\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpGodRays, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpGodRays, isStandalone: true, selector: \"ngtp-god-rays\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpGodRays, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-god-rays',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29kLXJheXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9nb2QtcmF5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW1CeEQsTUFBTSxPQUFPLFdBQVc7SUFtQnZCO1FBbEJBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0IsQ0FBQyxDQUFDO1FBRTlCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFNUMsa0JBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUMsUUFBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWhDLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVU7Z0JBQUUsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN4RCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVPLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDOUcsT0FBTyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBR0YsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVTtnQkFBRSxPQUFPO1lBRXhCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxhQUFhLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQWhDVyxXQUFXO2tHQUFYLFdBQVcsbU5BUGI7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsV0FBVztrQkFUdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgb21pdCwgcGljaywgcmVzb2x2ZVJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgR29kUmF5c0VmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHBFZmZlY3RDb21wb3NlciB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbnR5cGUgR29kUmF5c09wdGlvbnMgPSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdvZFJheXNFZmZlY3Q+WzJdICYge1xuXHRzdW46XG5cdFx0fCBUSFJFRS5NZXNoXG5cdFx0fCBUSFJFRS5Qb2ludHNcblx0XHR8IEVsZW1lbnRSZWY8VEhSRUUuTWVzaCB8IFRIUkVFLlBvaW50cz5cblx0XHR8ICgoKSA9PiBUSFJFRS5NZXNoIHwgVEhSRUUuUG9pbnRzIHwgRWxlbWVudFJlZjxUSFJFRS5NZXNoIHwgVEhSRUUuUG9pbnRzPiB8IHVuZGVmaW5lZCk7XG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWdvZC1yYXlzJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBHb2RSYXlzIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIEdvZFJheXNPcHRpb25zKTtcblxuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cblx0cHJpdmF0ZSBlZmZlY3RPcHRpb25zID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnc3VuJ10pO1xuXHRwcml2YXRlIHN1biA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3VuJyk7XG5cblx0cHJpdmF0ZSBzdW5FbGVtZW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHN1biA9IHRoaXMuc3VuKCk7XG5cdFx0aWYgKHR5cGVvZiBzdW4gPT09ICdmdW5jdGlvbicpIHJldHVybiByZXNvbHZlUmVmKHN1bigpKTtcblx0XHRyZXR1cm4gcmVzb2x2ZVJlZihzdW4pO1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtjYW1lcmEsIHN1bkVsZW1lbnQsIG9wdGlvbnNdID0gW3RoaXMuZWZmZWN0Q29tcG9zZXIuY2FtZXJhKCksIHRoaXMuc3VuRWxlbWVudCgpLCB0aGlzLmVmZmVjdE9wdGlvbnMoKV07XG5cdFx0cmV0dXJuIG5ldyBHb2RSYXlzRWZmZWN0KGNhbWVyYSwgc3VuRWxlbWVudCwgb3B0aW9ucyk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBzdW5FbGVtZW50ID0gdGhpcy5zdW5FbGVtZW50KCk7XG5cdFx0XHRpZiAoIXN1bkVsZW1lbnQpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgZ29kUmF5c0VmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRnb2RSYXlzRWZmZWN0LmxpZ2h0U291cmNlID0gc3VuRWxlbWVudDtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, omit, pick } from 'angular-three';\nimport { GridEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGrid {\n constructor() {\n this.options = input({});\n this.effectOptions = omit(this.options, ['size']);\n this.size = pick(this.options, 'size');\n this.effect = computed(() => new GridEffect(this.effectOptions()));\n effect(() => {\n const [size, effect] = [this.size(), this.effect()];\n if (size) {\n effect.setSize(size.width, size.height);\n }\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpGrid, isStandalone: true, selector: \"ngtp-grid\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpGrid, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-grid',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2dyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWM1QyxNQUFNLE9BQU8sUUFBUTtJQU9wQjtRQU5BLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBaUIsQ0FBQyxDQUFDO1FBQzNCLGtCQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdDLFNBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVoQyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFHdkUsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQW5CVyxRQUFRO2tHQUFSLFFBQVEsK01BUFY7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsUUFBUTtrQkFUcEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBvbWl0LCBwaWNrIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBHcmlkRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuXG50eXBlIEdyaWRPcHRpb25zID0gTm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBHcmlkRWZmZWN0PlswXT4gJlxuXHRQYXJ0aWFsPHsgc2l6ZTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IH0+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWdyaWQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEdyaWQge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgR3JpZE9wdGlvbnMpO1xuXHRwcml2YXRlIGVmZmVjdE9wdGlvbnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydzaXplJ10pO1xuXHRwcml2YXRlIHNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3NpemUnKTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4gbmV3IEdyaWRFZmZlY3QodGhpcy5lZmZlY3RPcHRpb25zKCkpKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW3NpemUsIGVmZmVjdF0gPSBbdGhpcy5zaXplKCksIHRoaXMuZWZmZWN0KCldO1xuXHRcdFx0aWYgKHNpemUpIHtcblx0XHRcdFx0ZWZmZWN0LnNldFNpemUoc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpHueSaturation {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ HueSaturationEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpHueSaturation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpHueSaturation, isStandalone: true, selector: \"ngtp-hue-saturation\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpHueSaturation, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-hue-saturation',\n template: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVlLXNhdHVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9odWUtc2F0dXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBaUI1RCxNQUFNLE9BQU8saUJBQWlCO0lBSTdCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUF1RCxDQUFDLENBQUM7UUFDL0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQzs4R0FOVyxpQkFBaUI7a0dBQWpCLGlCQUFpQiwyVUFYbkI7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQixpQkFBaUI7a0JBYjdCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBIdWVTYXR1cmF0aW9uRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIEh1ZVNhdHVyYXRpb25FZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEh1ZVNhdHVyYXRpb25FZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtaHVlLXNhdHVyYXRpb24nLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtaHVlLXNhdHVyYXRpb24tZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtaHVlLXNhdHVyYXRpb24tZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEh1ZVNhdHVyYXRpb24ge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxIdWVTYXR1cmF0aW9uRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEh1ZVNhdHVyYXRpb25FZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","// Created by Anderson Mancini 2023\n// React Three Fiber Ultimate LensFlare\nimport { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs, beforeRender, injectStore, is, omit, vector3 } from 'angular-three';\nimport { easing } from 'maath';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, Effect } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst LensFlareShader = {\n fragmentShader: /* language=glsl glsl */ `\n\n uniform float iTime;\n uniform vec2 lensPosition;\n uniform vec2 iResolution;\n uniform vec3 colorGain;\n uniform float starPoints;\n uniform float glareSize;\n uniform float flareSize;\n uniform float flareSpeed;\n uniform float flareShape;\n uniform float haloScale;\n uniform float opacity;\n uniform bool animated;\n uniform bool anamorphic;\n uniform bool enabled;\n uniform bool secondaryGhosts;\n uniform bool starBurst;\n uniform float ghostScale;\n uniform bool aditionalStreaks;\n uniform sampler2D lensDirtTexture;\n vec2 vxtC;\n\n float rndf(float n){return fract(sin(n) * 43758.5453123);}float niz(float p){float fl = floor(p);float fc = fract(p);return mix(rndf(fl),rndf(fl + 1.0), fc);}\n vec3 hsv2rgb(vec3 c){vec4 k = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);vec3 p = abs(fract(c.xxx + k.xyz) * 6.0 - k.www);return c.z * mix(k.xxx, clamp(p - k.xxx, 0.0, 1.0), c.y);}\n float satU(float x){return clamp(x, 0.,1.);}vec2 rtU(vec2 naz, float rtn){return vec2(cos(rtn) * naz.x + sin(rtn) * naz.y,cos(rtn) * naz.y - sin(rtn) * naz.x);}\n vec3 drwF(vec2 p, float intensity, float rnd, float speed, int id){float flhos = (1. / 32.) * float(id) * 0.1;float lingrad = distance(vec2(0.), p);float expg = 1. / exp(lingrad * (fract(rnd) * 0.66 + 0.33));vec3 qzTg = hsv2rgb(vec3( fract( (expg * 8.) + speed * flareSpeed + flhos), pow(1.-abs(expg*2.-1.), 0.45), 20.0 * expg * intensity));float internalStarPoints;if(anamorphic){internalStarPoints = 1.0;} else{internalStarPoints = starPoints;}float ams = length(p * flareShape * sin(internalStarPoints * atan(p.x, p.y)));float kJhg = pow(1.-satU(ams), ( anamorphic ? 100. : 12.));kJhg += satU(expg-0.9) * 3.;kJhg = pow(kJhg * expg, 8. + (1.-intensity) * 5.);if(flareSpeed > 0.0){return vec3(kJhg) * qzTg;} else{return vec3(kJhg) * flareSize * 15.;}}\n float ams2(vec3 a, vec3 b) { return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);}vec3 satU(vec3 x){return clamp(x, vec3(0.0), vec3(1.0));}\n float glR(vec2 naz, vec2 pos, float zsi){vec2 mni;if(animated){mni = rtU(naz-pos, iTime * 0.1);} else{mni = naz-pos;}float ang = atan(mni.y, mni.x) * (anamorphic ? 1.0 : starPoints);float ams2 = length(mni);ams2 = pow(ams2, .9);float f0 = 1.0/(length(naz-pos)*(1.0/zsi*16.0)+.2);return f0+f0*(sin((ang))*.2 +.3);}\n float sdHex(vec2 p){p = abs(p);vec2 q = vec2(p.x*2.0*0.5773503, p.y + p.x*0.5773503);return dot(step(q.xy,q.yx), 1.0-q.yx);}float fpow(float x, float k){return x > k ? pow((x-k)/(1.0-k),2.0) : 0.0;}\n vec3 rHx(vec2 naz, vec2 p, float s, vec3 col){naz -= p;if (abs(naz.x) < 0.2*s && abs(naz.y) < 0.2*s){return mix(vec3(0),mix(vec3(0),col,0.1 + fpow(length(naz/s),0.1)*10.0),smoothstep(0.0,0.1,sdHex(naz*20.0/s)));}return vec3(0);}\n vec3 mLs(vec2 naz, vec2 pos){vec2 mni = naz-pos;vec2 zxMp = naz*(length(naz));float ang = atan(mni.x,mni.y);float f0 = .3/(length(naz-pos)*16.0+1.0);f0 = f0*(sin(niz(sin(ang*3.9-(animated ? iTime : 0.0) * 0.3) * starPoints))*.2 );float f1 = max(0.01-pow(length(naz+1.2*pos),1.9),.0)*7.0;float f2 = max(.9/(10.0+32.0*pow(length(zxMp+0.99*pos),2.0)),.0)*0.35;float f22 = max(.9/(11.0+32.0*pow(length(zxMp+0.85*pos),2.0)),.0)*0.23;float f23 = max(.9/(12.0+32.0*pow(length(zxMp+0.95*pos),2.0)),.0)*0.6;vec2 ztX = mix(naz,zxMp, 0.1);float f4 = max(0.01-pow(length(ztX+0.4*pos),2.9),.0)*4.02;float f42 = max(0.0-pow(length(ztX+0.45*pos),2.9),.0)*4.1;float f43 = max(0.01-pow(length(ztX+0.5*pos),2.9),.0)*4.6;ztX = mix(naz,zxMp,-.4);float f5 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;float f52 = max(0.01-pow(length(ztX+0.2*pos),5.5),.0)*2.0;float f53 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;ztX = mix(naz,zxMp, 2.1);float f6 = max(0.01-pow(length(ztX-0.3*pos),1.61),.0)*3.159;float f62 = max(0.01-pow(length(ztX-0.325*pos),1.614),.0)*3.14;float f63 = max(0.01-pow(length(ztX-0.389*pos),1.623),.0)*3.12;vec3 c = vec3(glR(naz,pos, glareSize));vec2 prot;if(animated){prot = rtU(naz - pos, (iTime * 0.1));} else if(anamorphic){prot = rtU(naz - pos, 1.570796);} else {prot = naz - pos;}c += drwF(prot, (anamorphic ? flareSize * 10. : flareSize), 0.1, iTime, 1);c.r+=f1+f2+f4+f5+f6; c.g+=f1+f22+f42+f52+f62; c.b+=f1+f23+f43+f53+f63;c = c*1.3 * vec3(length(zxMp)+.09);c+=vec3(f0);return c;}\n vec3 cc(vec3 clr, float fct,float fct2){float w = clr.x+clr.y+clr.z;return mix(clr,vec3(w)*fct,w*fct2);}float rnd(vec2 p){float f = fract(sin(dot(p, vec2(12.1234, 72.8392) )*45123.2));return f;}float rnd(float w){float f = fract(sin(w)*1000.);return f;}\n float rShp(vec2 p, int N){float f;float a=atan(p.x,p.y)+.2;float b=6.28319/float(N);f=smoothstep(.5,.51, cos(floor(.5+a/b)*b-a)*length(p.xy)* 2.0 -ghostScale);return f;}\n vec3 drC(vec2 p, float zsi, float dCy, vec3 clr, vec3 clr2, float ams2, vec2 esom){float l = length(p + esom*(ams2*2.))+zsi/2.;float l2 = length(p + esom*(ams2*4.))+zsi/3.;float c = max(0.01-pow(length(p + esom*ams2), zsi*ghostScale), 0.0)*10.;float c1 = max(0.001-pow(l-0.3, 1./40.)+sin(l*20.), 0.0)*3.;float c2 = max(0.09/pow(length(p-esom*ams2/.5)*1., .95), 0.0)/20.;float s = max(0.02-pow(rShp(p*5. + esom*ams2*5. + dCy, 6) , 1.), 0.0)*1.5;clr = cos(vec3(0.44, .24, .2)*8. + ams2*4.)*0.5+.5;vec3 f = c*clr;f += c1*clr;f += c2*clr;f += s*clr;return f-0.01;}\n vec4 geLC(float x){return vec4(vec3(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(vec3(0., 0., 0.),vec3(0., 0., 0.), smoothstep(0.0, 0.063, x)),vec3(0., 0., 0.), smoothstep(0.063, 0.125, x)),vec3(0.0, 0., 0.), smoothstep(0.125, 0.188, x)),vec3(0.188, 0.131, 0.116), smoothstep(0.188, 0.227, x)),vec3(0.31, 0.204, 0.537), smoothstep(0.227, 0.251, x)),vec3(0.192, 0.106, 0.286), smoothstep(0.251, 0.314, x)),vec3(0.102, 0.008, 0.341), smoothstep(0.314, 0.392, x)),vec3(0.086, 0.0, 0.141), smoothstep(0.392, 0.502, x)),vec3(1.0, 0.31, 0.0), smoothstep(0.502, 0.604, x)),vec3(.1, 0.1, 0.1), smoothstep(0.604, 0.643, x)),vec3(1.0, 0.929, 0.0), smoothstep(0.643, 0.761, x)),vec3(1.0, 0.086, 0.424), smoothstep(0.761, 0.847, x)),vec3(1.0, 0.49, 0.0), smoothstep(0.847, 0.89, x)),vec3(0.945, 0.275, 0.475), smoothstep(0.89, 0.941, x)),vec3(0.251, 0.275, 0.796), smoothstep(0.941, 1.0, x))),1.0);}\n float diTN(vec2 p){vec2 f = fract(p);f = (f * f) * (3.0 - (2.0 * f));float n = dot(floor(p), vec2(1.0, 157.0));vec4 a = fract(sin(vec4(n + 0.0, n + 1.0, n + 157.0, n + 158.0)) * 43758.5453123);return mix(mix(a.x, a.y, f.x), mix(a.z, a.w, f.x), f.y);}\n float fbm(vec2 p){const mat2 m = mat2(0.80, -0.60, 0.60, 0.80);float f = 0.0;f += 0.5000*diTN(p); p = m*p*2.02;f += 0.2500*diTN(p); p = m*p*2.03;f += 0.1250*diTN(p); p = m*p*2.01;f += 0.0625*diTN(p);return f/0.9375;}\n vec4 geLS(vec2 p){vec2 pp = (p - vec2(0.5)) * 2.0;float a = atan(pp.y, pp.x);vec4 cp = vec4(sin(a * 1.0), length(pp), sin(a * 13.0), sin(a * 53.0));float d = sin(clamp(pow(length(vec2(0.5) - p) * 0.5 + haloScale /2., 5.0), 0.0, 1.0) * 3.14159);vec3 c = vec3(d) * vec3(fbm(cp.xy * 16.0) * fbm(cp.zw * 9.0) * max(max(max(max(0.5, sin(a * 1.0)), sin(a * 3.0) * 0.8), sin(a * 7.0) * 0.8), sin(a * 9.0) * 10.6));c *= vec3(mix(2.0, (sin(length(pp.xy) * 256.0) * 0.5) + 0.5, sin((clamp((length(pp.xy) - 0.875) / 0.1, 0.0, 1.0) + 0.0) * 2.0 * 3.14159) * 1.5) + 0.5) * 0.3275;return vec4(vec3(c * 1.0), d);}\n vec4 geLD(vec2 p){p.xy += vec2(fbm(p.yx * 3.0), fbm(p.yx * 2.0)) * 0.0825;vec3 o = vec3(mix(0.125, 0.25, max(max(smoothstep(0.1, 0.0, length(p - vec2(0.25))),smoothstep(0.4, 0.0, length(p - vec2(0.75)))),smoothstep(0.8, 0.0, length(p - vec2(0.875, 0.125))))));o += vec3(max(fbm(p * 1.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 2.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 4.0) - 0.5, 0.0)) * 0.25;o += vec3(max(fbm(p * 8.0) - 0.75, 0.0)) * 1.0;o += vec3(max(fbm(p * 16.0) - 0.75, 0.0)) * 0.75;o += vec3(max(fbm(p * 64.0) - 0.75, 0.0)) * 0.5;return vec4(clamp(o, vec3(0.15), vec3(1.0)), 1.0);}\n vec4 txL(sampler2D tex, vec2 xtC){if(((xtC.x < 0.) || (xtC.y < 0.)) || ((xtC.x > 1.) || (xtC.y > 1.))){return vec4(0.0);}else{return texture(tex, xtC); }}\n vec4 txD(sampler2D tex, vec2 xtC, vec2 dir, vec3 ditn) {return vec4(txL(tex, (xtC + (dir * ditn.r))).r,txL(tex, (xtC + (dir * ditn.g))).g,txL(tex, (xtC + (dir * ditn.b))).b,1.0);}\n vec4 strB(){vec2 aspXtc = vec2(1.0) - (((vxtC - vec2(0.5)) * vec2(1.0)) + vec2(0.5)); vec2 xtC = vec2(1.0) - vxtC; vec2 ghvc = (vec2(0.5) - xtC) * 0.3 - lensPosition; vec2 ghNm = normalize(ghvc * vec2(1.0)) * vec2(1.0);vec2 haloVec = normalize(ghvc) * 0.6;vec2 hlNm = ghNm * 0.6;vec2 texelSize = vec2(1.0) / vec2(iResolution.xy);vec3 ditn = vec3(-(texelSize.x * 1.5), 0.2, texelSize.x * 1.5);vec4 c = vec4(0.0);for (int i = 0; i < 8; i++) {vec2 offset = xtC + (ghvc * float(i));c += txD(lensDirtTexture, offset, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - offset) / length(vec2(0.5)))), 10.0);}vec2 uyTrz = xtC + hlNm; return (c * geLC((length(vec2(0.5) - aspXtc) / length(vec2(haloScale))))) +(txD(lensDirtTexture, uyTrz, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - uyTrz) / length(vec2(0.5)))), 10.0));}\n void mainImage(vec4 v,vec2 r,out vec4 i){vec2 g=r-.5;g.y*=iResolution.y/iResolution.x;vec2 l=lensPosition*.5;l.y*=iResolution.y/iResolution.x;vec3 f=mLs(g,l)*20.*colorGain/256.;if(aditionalStreaks){vec3 o=vec3(.9,.2,.1),p=vec3(.3,.1,.9);for(float n=0.;n<10.;n++)f+=drC(g,pow(rnd(n*2e3)*2.8,.1)+1.41,0.,o+n,p+n,rnd(n*20.)*3.+.2-.5,lensPosition);}if(secondaryGhosts){vec3 n=vec3(0);n+=rHx(g,-lensPosition*.25,ghostScale*1.4,vec3(.25,.35,0));n+=rHx(g,lensPosition*.25,ghostScale*.5,vec3(1,.5,.5));n+=rHx(g,lensPosition*.1,ghostScale*1.6,vec3(1));n+=rHx(g,lensPosition*1.8,ghostScale*2.,vec3(0,.5,.75));n+=rHx(g,lensPosition*1.25,ghostScale*.8,vec3(1,1,.5));n+=rHx(g,-lensPosition*1.25,ghostScale*5.,vec3(.5,.5,.25));n+=fpow(1.-abs(distance(lensPosition*.8,g)-.7),.985)*colorGain/2100.;f+=n;}if(starBurst){vxtC=g+.5;vec4 n=geLD(g);float o=1.-clamp(0.5,0.,.5)*2.;n+=mix(n,pow(n*2.,vec4(2))*.5,o);float s=(g.x+g.y)*(1./6.);vec2 d=mat2(cos(s),-sin(s),sin(s),cos(s))*vxtC;n+=geLS(d)*2.;f+=clamp(n.xyz*strB().xyz,.01,1.);}i=enabled?vec4(mix(f,vec3(0),opacity)+v.xyz,v.w):vec4(v);}\n`,\n};\nexport class LensFlareEffect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, enabled = true, glareSize = 0.2, lensPosition = [0.01, 0.01], iResolution = [0, 0], starPoints = 6, flareSize = 0.01, flareSpeed = 0.01, flareShape = 0.01, animated = true, anamorphic = false, colorGain = new THREE.Color(20, 20, 20), lensDirtTexture = null, haloScale = 0.5, secondaryGhosts = true, aditionalStreaks = true, ghostScale = 0.0, opacity = 1.0, starBurst = false, } = {}) {\n super('LensFlareEffect', LensFlareShader.fragmentShader, {\n blendFunction,\n uniforms: new Map([\n ['enabled', new THREE.Uniform(enabled)],\n ['glareSize', new THREE.Uniform(glareSize)],\n ['lensPosition', new THREE.Uniform(lensPosition)],\n ['iTime', new THREE.Uniform(0)],\n ['iResolution', new THREE.Uniform(iResolution)],\n ['starPoints', new THREE.Uniform(starPoints)],\n ['flareSize', new THREE.Uniform(flareSize)],\n ['flareSpeed', new THREE.Uniform(flareSpeed)],\n ['flareShape', new THREE.Uniform(flareShape)],\n ['animated', new THREE.Uniform(animated)],\n ['anamorphic', new THREE.Uniform(anamorphic)],\n ['colorGain', new THREE.Uniform(colorGain)],\n ['lensDirtTexture', new THREE.Uniform(lensDirtTexture)],\n ['haloScale', new THREE.Uniform(haloScale)],\n ['secondaryGhosts', new THREE.Uniform(secondaryGhosts)],\n ['aditionalStreaks', new THREE.Uniform(aditionalStreaks)],\n ['ghostScale', new THREE.Uniform(ghostScale)],\n ['starBurst', new THREE.Uniform(starBurst)],\n ['opacity', new THREE.Uniform(opacity)],\n ]),\n });\n }\n update(_renderer, _inputBuffer, deltaTime) {\n const iTime = this.uniforms.get('iTime');\n if (iTime) {\n iTime.value += deltaTime;\n }\n }\n}\nconst defaultOptions = {\n position: new THREE.Vector3(-25, 6, -60),\n followMouse: false,\n smoothTime: 0.7,\n};\nexport class NgtpLensFlare {\n constructor() {\n this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n this.store = injectStore();\n this.effectComposer = inject(NgtpEffectComposer);\n this.effectOptions = omit(this.options, ['position', 'followMouse', 'smoothTime']);\n this.position = vector3(this.options, 'position');\n this.projectedPosition = new THREE.Vector3();\n this.mouse2d = new THREE.Vector2();\n this.effect = computed(() => new LensFlareEffect(this.effectOptions()));\n effect(() => {\n const [lensFlareEffect, width, height] = [\n this.effect(),\n this.store.viewport.width(),\n this.store.viewport.height(),\n ];\n const iResolution = lensFlareEffect.uniforms.get('iResolution');\n if (iResolution) {\n iResolution.value.x = width;\n iResolution.value.y = height;\n }\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n beforeRender(({ delta }) => {\n const [effect] = [this.effect()];\n if (!effect)\n return;\n const [{ followMouse, smoothTime }, position, pointer, camera, scene, raycaster] = [\n this.options(),\n this.position(),\n this.store.snapshot.pointer,\n this.effectComposer.camera(),\n this.effectComposer.scene(),\n this.store.snapshot.raycaster,\n ];\n const uLensPosition = effect.uniforms.get('lensPosition');\n const uOpacity = effect.uniforms.get('opacity');\n if (!uLensPosition || !uOpacity)\n return;\n let target = 1;\n if (followMouse) {\n uLensPosition.value.x = pointer.x;\n uLensPosition.value.y = pointer.y;\n target = 0;\n }\n else {\n this.projectedPosition.copy(position).project(camera);\n if (this.projectedPosition.z > 1)\n return;\n uLensPosition.value.x = this.projectedPosition.x;\n uLensPosition.value.y = this.projectedPosition.y;\n this.mouse2d.set(this.projectedPosition.x, this.projectedPosition.y);\n raycaster.setFromCamera(this.mouse2d, camera);\n const intersects = raycaster.intersectObjects(scene.children, true);\n const { object } = intersects[0] ?? {};\n if (object) {\n if (object.userData?.['lensflare'] === 'no-occlusion') {\n target = 0;\n }\n else if (is.three(object, 'isMesh')) {\n if (object.material.uniforms?.['_transmission']?.value > 0.2) {\n //Check for MeshTransmissionMaterial\n target = 0.2;\n }\n else if ('_transmission' in object.material &&\n typeof object.material._transmission === 'number' &&\n object.material._transmission > 0.2) {\n //Check for MeshPhysicalMaterial with transmission setting\n target = 0.2;\n }\n else if (object.material.transparent) {\n // Check for OtherMaterials with transparent parameter\n target = object.material.opacity;\n }\n }\n }\n }\n easing.damp(uOpacity, 'value', target, smoothTime, delta);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpLensFlare, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpLensFlare, isStandalone: true, selector: \"ngtp-lens-flare\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpLensFlare, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-lens-flare',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVucy1mbGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2xlbnMtZmxhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLHVDQUF1QztBQUV2QyxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV4RCxNQUFNLGVBQWUsR0FBRztJQUN2QixjQUFjLEVBQUUsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEN6QztDQUNBLENBQUM7QUFFRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxNQUFNO0lBQzFDLFlBQVksRUFDWCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFDcEMsT0FBTyxHQUFHLElBQUksRUFDZCxTQUFTLEdBQUcsR0FBRyxFQUNmLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFDM0IsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNwQixVQUFVLEdBQUcsQ0FBQyxFQUNkLFNBQVMsR0FBRyxJQUFJLEVBQ2hCLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFFBQVEsR0FBRyxJQUFJLEVBQ2YsVUFBVSxHQUFHLEtBQUssRUFDbEIsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN2QyxlQUFlLEdBQUcsSUFBNEIsRUFDOUMsU0FBUyxHQUFHLEdBQUcsRUFDZixlQUFlLEdBQUcsSUFBSSxFQUN0QixnQkFBZ0IsR0FBRyxJQUFJLEVBQ3ZCLFVBQVUsR0FBRyxHQUFHLEVBQ2hCLE9BQU8sR0FBRyxHQUFHLEVBQ2IsU0FBUyxHQUFHLEtBQUssTUFDZCxFQUFFO1FBQ0wsS0FBSyxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxjQUFjLEVBQUU7WUFDeEQsYUFBYTtZQUNiLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBd0I7Z0JBQ3hDLENBQUMsU0FBUyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLGNBQWMsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2pELENBQUMsT0FBTyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDLFlBQVksRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdDLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxZQUFZLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDLFlBQVksRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdDLENBQUMsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzNDLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN2RCxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzNDLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN2RCxDQUFDLGtCQUFrQixFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLFlBQVksRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdDLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3ZDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDSixDQUFDO0lBRVEsTUFBTSxDQUFDLFNBQThCLEVBQUUsWUFBcUMsRUFBRSxTQUFpQjtRQUN2RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1gsS0FBSyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUM7UUFDMUIsQ0FBQztJQUNGLENBQUM7Q0FDRDtBQVFELE1BQU0sY0FBYyxHQUFxQjtJQUN4QyxRQUFRLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxXQUFXLEVBQUUsS0FBSztJQUNsQixVQUFVLEVBQUUsR0FBRztDQUNmLENBQUM7QUFXRixNQUFNLE9BQU8sYUFBYTtJQWV6QjtRQWRBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEUsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBRXRCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFNUMsa0JBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM5RSxhQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFN0Msc0JBQWlCLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEMsWUFBTyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTVCLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUc1RSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUc7Z0JBQ3hDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO2dCQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7YUFDNUIsQ0FBQztZQUNGLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2hFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDNUIsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQzlCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxZQUFZLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUVwQixNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxHQUFHO2dCQUNsRixJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTztnQkFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFO2dCQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTO2FBQzdCLENBQUM7WUFFRixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBRXhDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztZQUVmLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDWixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDO29CQUFFLE9BQU87Z0JBRXpDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Z0JBRWpELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRSxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNwRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxjQUFjLEVBQUUsQ0FBQzt3QkFDdkQsTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDWixDQUFDO3lCQUFNLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBeUQsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7d0JBQy9GLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUM7NEJBQzlELG9DQUFvQzs0QkFDcEMsTUFBTSxHQUFHLEdBQUcsQ0FBQzt3QkFDZCxDQUFDOzZCQUFNLElBQ04sZUFBZSxJQUFJLE1BQU0sQ0FBQyxRQUFROzRCQUNsQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxLQUFLLFFBQVE7NEJBQ2pELE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFDbEMsQ0FBQzs0QkFDRiwwREFBMEQ7NEJBQzFELE1BQU0sR0FBRyxHQUFHLENBQUM7d0JBQ2QsQ0FBQzs2QkFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7NEJBQ3hDLHNEQUFzRDs0QkFDdEQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO3dCQUNsQyxDQUFDO29CQUNGLENBQUM7Z0JBQ0YsQ0FBQztZQUNGLENBQUM7WUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBNUZXLGFBQWE7a0dBQWIsYUFBYSxxTkFQZjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxhQUFhO2tCQVR6QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEFuZGVyc29uIE1hbmNpbmkgMjAyM1xuLy8gUmVhY3QgVGhyZWUgRmliZXIgVWx0aW1hdGUgTGVuc0ZsYXJlXG5cbmltcG9ydCB7XG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0VmVjdG9yMywgYmVmb3JlUmVuZGVyLCBpbmplY3RTdG9yZSwgaXMsIG9taXQsIHZlY3RvcjMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGVhc2luZyB9IGZyb20gJ21hYXRoJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHBFZmZlY3RDb21wb3NlciB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbmNvbnN0IExlbnNGbGFyZVNoYWRlciA9IHtcblx0ZnJhZ21lbnRTaGFkZXI6IC8qIGxhbmd1YWdlPWdsc2wgZ2xzbCAqLyBgXG5cbiAgdW5pZm9ybSBmbG9hdCBpVGltZTtcbiAgdW5pZm9ybSB2ZWMyIGxlbnNQb3NpdGlvbjtcbiAgdW5pZm9ybSB2ZWMyIGlSZXNvbHV0aW9uO1xuICB1bmlmb3JtIHZlYzMgY29sb3JHYWluO1xuICB1bmlmb3JtIGZsb2F0IHN0YXJQb2ludHM7XG4gIHVuaWZvcm0gZmxvYXQgZ2xhcmVTaXplO1xuICB1bmlmb3JtIGZsb2F0IGZsYXJlU2l6ZTtcbiAgdW5pZm9ybSBmbG9hdCBmbGFyZVNwZWVkO1xuICB1bmlmb3JtIGZsb2F0IGZsYXJlU2hhcGU7XG4gIHVuaWZvcm0gZmxvYXQgaGFsb1NjYWxlO1xuICB1bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG4gIHVuaWZvcm0gYm9vbCBhbmltYXRlZDtcbiAgdW5pZm9ybSBib29sIGFuYW1vcnBoaWM7XG4gIHVuaWZvcm0gYm9vbCBlbmFibGVkO1xuICB1bmlmb3JtIGJvb2wgc2Vjb25kYXJ5R2hvc3RzO1xuICB1bmlmb3JtIGJvb2wgc3RhckJ1cnN0O1xuICB1bmlmb3JtIGZsb2F0IGdob3N0U2NhbGU7XG4gIHVuaWZvcm0gYm9vbCBhZGl0aW9uYWxTdHJlYWtzO1xuICB1bmlmb3JtIHNhbXBsZXIyRCBsZW5zRGlydFRleHR1cmU7XG4gIHZlYzIgdnh0QztcblxuICBmbG9hdCBybmRmKGZsb2F0IG4pe3JldHVybiBmcmFjdChzaW4obikgKiA0Mzc1OC41NDUzMTIzKTt9ZmxvYXQgbml6KGZsb2F0IHApe2Zsb2F0IGZsID0gZmxvb3IocCk7ZmxvYXQgZmMgPSBmcmFjdChwKTtyZXR1cm4gbWl4KHJuZGYoZmwpLHJuZGYoZmwgKyAxLjApLCBmYyk7fVxuICB2ZWMzIGhzdjJyZ2IodmVjMyBjKXt2ZWM0IGsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7dmVjMyBwID0gYWJzKGZyYWN0KGMueHh4ICsgay54eXopICogNi4wIC0gay53d3cpO3JldHVybiBjLnogKiBtaXgoay54eHgsIGNsYW1wKHAgLSBrLnh4eCwgMC4wLCAxLjApLCBjLnkpO31cbiAgZmxvYXQgc2F0VShmbG9hdCB4KXtyZXR1cm4gY2xhbXAoeCwgMC4sMS4pO312ZWMyIHJ0VSh2ZWMyIG5heiwgZmxvYXQgcnRuKXtyZXR1cm4gdmVjMihjb3MocnRuKSAqIG5hei54ICsgc2luKHJ0bikgKiBuYXoueSxjb3MocnRuKSAqIG5hei55IC0gc2luKHJ0bikgKiBuYXoueCk7fVxuICB2ZWMzIGRyd0YodmVjMiBwLCBmbG9hdCBpbnRlbnNpdHksIGZsb2F0IHJuZCwgZmxvYXQgc3BlZWQsIGludCBpZCl7ZmxvYXQgZmxob3MgPSAoMS4gLyAzMi4pICogZmxvYXQoaWQpICogMC4xO2Zsb2F0IGxpbmdyYWQgPSBkaXN0YW5jZSh2ZWMyKDAuKSwgcCk7ZmxvYXQgZXhwZyA9IDEuIC8gZXhwKGxpbmdyYWQgKiAoZnJhY3Qocm5kKSAqIDAuNjYgKyAwLjMzKSk7dmVjMyBxelRnID0gaHN2MnJnYih2ZWMzKCBmcmFjdCggKGV4cGcgKiA4LikgKyBzcGVlZCAqIGZsYXJlU3BlZWQgKyBmbGhvcyksIHBvdygxLi1hYnMoZXhwZyoyLi0xLiksIDAuNDUpLCAyMC4wICogZXhwZyAqIGludGVuc2l0eSkpO2Zsb2F0IGludGVybmFsU3RhclBvaW50cztpZihhbmFtb3JwaGljKXtpbnRlcm5hbFN0YXJQb2ludHMgPSAxLjA7fSBlbHNle2ludGVybmFsU3RhclBvaW50cyA9IHN0YXJQb2ludHM7fWZsb2F0IGFtcyA9IGxlbmd0aChwICogZmxhcmVTaGFwZSAqIHNpbihpbnRlcm5hbFN0YXJQb2ludHMgKiBhdGFuKHAueCwgcC55KSkpO2Zsb2F0IGtKaGcgPSBwb3coMS4tc2F0VShhbXMpLCAoIGFuYW1vcnBoaWMgPyAxMDAuIDogMTIuKSk7a0poZyArPSBzYXRVKGV4cGctMC45KSAqIDMuO2tKaGcgPSBwb3coa0poZyAqIGV4cGcsIDguICsgKDEuLWludGVuc2l0eSkgKiA1Lik7aWYoZmxhcmVTcGVlZCA+IDAuMCl7cmV0dXJuIHZlYzMoa0poZykgKiBxelRnO30gZWxzZXtyZXR1cm4gdmVjMyhrSmhnKSAqIGZsYXJlU2l6ZSAqIDE1Ljt9fVxuICBmbG9hdCBhbXMyKHZlYzMgYSwgdmVjMyBiKSB7IHJldHVybiBhYnMoYS54IC0gYi54KSArIGFicyhhLnkgLSBiLnkpICsgYWJzKGEueiAtIGIueik7fXZlYzMgc2F0VSh2ZWMzIHgpe3JldHVybiBjbGFtcCh4LCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7fVxuICBmbG9hdCBnbFIodmVjMiBuYXosIHZlYzIgcG9zLCBmbG9hdCB6c2kpe3ZlYzIgbW5pO2lmKGFuaW1hdGVkKXttbmkgPSBydFUobmF6LXBvcywgaVRpbWUgKiAwLjEpO30gZWxzZXttbmkgPSBuYXotcG9zO31mbG9hdCBhbmcgPSBhdGFuKG1uaS55LCBtbmkueCkgKiAoYW5hbW9ycGhpYyA/IDEuMCA6IHN0YXJQb2ludHMpO2Zsb2F0IGFtczIgPSBsZW5ndGgobW5pKTthbXMyID0gcG93KGFtczIsIC45KTtmbG9hdCBmMCA9IDEuMC8obGVuZ3RoKG5hei1wb3MpKigxLjAvenNpKjE2LjApKy4yKTtyZXR1cm4gZjArZjAqKHNpbigoYW5nKSkqLjIgKy4zKTt9XG4gIGZsb2F0IHNkSGV4KHZlYzIgcCl7cCA9IGFicyhwKTt2ZWMyIHEgPSB2ZWMyKHAueCoyLjAqMC41NzczNTAzLCBwLnkgKyBwLngqMC41NzczNTAzKTtyZXR1cm4gZG90KHN0ZXAocS54eSxxLnl4KSwgMS4wLXEueXgpO31mbG9hdCBmcG93KGZsb2F0IHgsIGZsb2F0IGspe3JldHVybiB4ID4gayA/IHBvdygoeC1rKS8oMS4wLWspLDIuMCkgOiAwLjA7fVxuICB2ZWMzIHJIeCh2ZWMyIG5heiwgdmVjMiBwLCBmbG9hdCBzLCB2ZWMzIGNvbCl7bmF6IC09IHA7aWYgKGFicyhuYXoueCkgPCAwLjIqcyAmJiBhYnMobmF6LnkpIDwgMC4yKnMpe3JldHVybiBtaXgodmVjMygwKSxtaXgodmVjMygwKSxjb2wsMC4xICsgZnBvdyhsZW5ndGgobmF6L3MpLDAuMSkqMTAuMCksc21vb3Roc3RlcCgwLjAsMC4xLHNkSGV4KG5heioyMC4wL3MpKSk7fXJldHVybiB2ZWMzKDApO31cbiAgdmVjMyBtTHModmVjMiBuYXosIHZlYzIgcG9zKXt2ZWMyIG1uaSA9IG5hei1wb3M7dmVjMiB6eE1wID0gbmF6KihsZW5ndGgobmF6KSk7ZmxvYXQgYW5nID0gYXRhbihtbmkueCxtbmkueSk7ZmxvYXQgZjAgPSAuMy8obGVuZ3RoKG5hei1wb3MpKjE2LjArMS4wKTtmMCA9IGYwKihzaW4obml6KHNpbihhbmcqMy45LShhbmltYXRlZCA/IGlUaW1lIDogMC4wKSAqIDAuMykgKiBzdGFyUG9pbnRzKSkqLjIgKTtmbG9hdCBmMSA9IG1heCgwLjAxLXBvdyhsZW5ndGgobmF6KzEuMipwb3MpLDEuOSksLjApKjcuMDtmbG9hdCBmMiA9IG1heCguOS8oMTAuMCszMi4wKnBvdyhsZW5ndGgoenhNcCswLjk5KnBvcyksMi4wKSksLjApKjAuMzU7ZmxvYXQgZjIyID0gbWF4KC45LygxMS4wKzMyLjAqcG93KGxlbmd0aCh6eE1wKzAuODUqcG9zKSwyLjApKSwuMCkqMC4yMztmbG9hdCBmMjMgPSBtYXgoLjkvKDEyLjArMzIuMCpwb3cobGVuZ3RoKHp4TXArMC45NSpwb3MpLDIuMCkpLC4wKSowLjY7dmVjMiB6dFggPSBtaXgobmF6LHp4TXAsIDAuMSk7ZmxvYXQgZjQgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WCswLjQqcG9zKSwyLjkpLC4wKSo0LjAyO2Zsb2F0IGY0MiA9IG1heCgwLjAtcG93KGxlbmd0aCh6dFgrMC40NSpwb3MpLDIuOSksLjApKjQuMTtmbG9hdCBmNDMgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WCswLjUqcG9zKSwyLjkpLC4wKSo0LjY7enRYID0gbWl4KG5heix6eE1wLC0uNCk7ZmxvYXQgZjUgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WCswLjEqcG9zKSw1LjUpLC4wKSoyLjA7ZmxvYXQgZjUyID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgrMC4yKnBvcyksNS41KSwuMCkqMi4wO2Zsb2F0IGY1MyA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuMSpwb3MpLDUuNSksLjApKjIuMDt6dFggPSBtaXgobmF6LHp4TXAsIDIuMSk7ZmxvYXQgZjYgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WC0wLjMqcG9zKSwxLjYxKSwuMCkqMy4xNTk7ZmxvYXQgZjYyID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgtMC4zMjUqcG9zKSwxLjYxNCksLjApKjMuMTQ7ZmxvYXQgZjYzID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgtMC4zODkqcG9zKSwxLjYyMyksLjApKjMuMTI7dmVjMyBjID0gdmVjMyhnbFIobmF6LHBvcywgZ2xhcmVTaXplKSk7dmVjMiBwcm90O2lmKGFuaW1hdGVkKXtwcm90ID0gcnRVKG5heiAtIHBvcywgKGlUaW1lICogMC4xKSk7fSBlbHNlIGlmKGFuYW1vcnBoaWMpe3Byb3QgPSBydFUobmF6IC0gcG9zLCAxLjU3MDc5Nik7fSBlbHNlIHtwcm90ID0gbmF6IC0gcG9zO31jICs9IGRyd0YocHJvdCwgKGFuYW1vcnBoaWMgPyBmbGFyZVNpemUgKiAxMC4gOiBmbGFyZVNpemUpLCAwLjEsIGlUaW1lLCAxKTtjLnIrPWYxK2YyK2Y0K2Y1K2Y2OyBjLmcrPWYxK2YyMitmNDIrZjUyK2Y2MjsgYy5iKz1mMStmMjMrZjQzK2Y1MytmNjM7YyA9IGMqMS4zICogdmVjMyhsZW5ndGgoenhNcCkrLjA5KTtjKz12ZWMzKGYwKTtyZXR1cm4gYzt9XG4gIHZlYzMgY2ModmVjMyBjbHIsIGZsb2F0IGZjdCxmbG9hdCBmY3QyKXtmbG9hdCB3ID0gY2xyLngrY2xyLnkrY2xyLno7cmV0dXJuIG1peChjbHIsdmVjMyh3KSpmY3QsdypmY3QyKTt9ZmxvYXQgcm5kKHZlYzIgcCl7ZmxvYXQgZiA9IGZyYWN0KHNpbihkb3QocCwgdmVjMigxMi4xMjM0LCA3Mi44MzkyKSApKjQ1MTIzLjIpKTtyZXR1cm4gZjt9ZmxvYXQgcm5kKGZsb2F0IHcpe2Zsb2F0IGYgPSBmcmFjdChzaW4odykqMTAwMC4pO3JldHVybiBmO31cbiAgZmxvYXQgclNocCh2ZWMyIHAsIGludCBOKXtmbG9hdCBmO2Zsb2F0IGE9YXRhbihwLngscC55KSsuMjtmbG9hdCBiPTYuMjgzMTkvZmxvYXQoTik7Zj1zbW9vdGhzdGVwKC41LC41MSwgY29zKGZsb29yKC41K2EvYikqYi1hKSpsZW5ndGgocC54eSkqIDIuMCAgLWdob3N0U2NhbGUpO3JldHVybiBmO31cbiAgdmVjMyBkckModmVjMiBwLCBmbG9hdCB6c2ksIGZsb2F0IGRDeSwgdmVjMyBjbHIsIHZlYzMgY2xyMiwgZmxvYXQgYW1zMiwgdmVjMiBlc29tKXtmbG9hdCBsID0gbGVuZ3RoKHAgKyBlc29tKihhbXMyKjIuKSkrenNpLzIuO2Zsb2F0IGwyID0gbGVuZ3RoKHAgKyBlc29tKihhbXMyKjQuKSkrenNpLzMuO2Zsb2F0IGMgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHAgKyBlc29tKmFtczIpLCB6c2kqZ2hvc3RTY2FsZSksIDAuMCkqMTAuO2Zsb2F0IGMxID0gbWF4KDAuMDAxLXBvdyhsLTAuMywgMS4vNDAuKStzaW4obCoyMC4pLCAwLjApKjMuO2Zsb2F0IGMyID0gIG1heCgwLjA5L3BvdyhsZW5ndGgocC1lc29tKmFtczIvLjUpKjEuLCAuOTUpLCAwLjApLzIwLjtmbG9hdCBzID0gbWF4KDAuMDItcG93KHJTaHAocCo1LiArIGVzb20qYW1zMio1LiArIGRDeSwgNikgLCAxLiksIDAuMCkqMS41O2NsciA9IGNvcyh2ZWMzKDAuNDQsIC4yNCwgLjIpKjguICsgYW1zMio0LikqMC41Ky41O3ZlYzMgZiA9IGMqY2xyO2YgKz0gYzEqY2xyO2YgKz0gYzIqY2xyO2YgKz0gIHMqY2xyO3JldHVybiBmLTAuMDE7fVxuICB2ZWM0IGdlTEMoZmxvYXQgeCl7cmV0dXJuIHZlYzQodmVjMyhtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peCh2ZWMzKDAuLCAwLiwgMC4pLHZlYzMoMC4sIDAuLCAwLiksIHNtb290aHN0ZXAoMC4wLCAwLjA2MywgeCkpLHZlYzMoMC4sIDAuLCAwLiksIHNtb290aHN0ZXAoMC4wNjMsIDAuMTI1LCB4KSksdmVjMygwLjAsIDAuLCAwLiksIHNtb290aHN0ZXAoMC4xMjUsIDAuMTg4LCB4KSksdmVjMygwLjE4OCwgMC4xMzEsIDAuMTE2KSwgc21vb3Roc3RlcCgwLjE4OCwgMC4yMjcsIHgpKSx2ZWMzKDAuMzEsIDAuMjA0LCAwLjUzNyksIHNtb290aHN0ZXAoMC4yMjcsIDAuMjUxLCB4KSksdmVjMygwLjE5MiwgMC4xMDYsIDAuMjg2KSwgc21vb3Roc3RlcCgwLjI1MSwgMC4zMTQsIHgpKSx2ZWMzKDAuMTAyLCAwLjAwOCwgMC4zNDEpLCBzbW9vdGhzdGVwKDAuMzE0LCAwLjM5MiwgeCkpLHZlYzMoMC4wODYsIDAuMCwgMC4xNDEpLCBzbW9vdGhzdGVwKDAuMzkyLCAwLjUwMiwgeCkpLHZlYzMoMS4wLCAwLjMxLCAwLjApLCBzbW9vdGhzdGVwKDAuNTAyLCAwLjYwNCwgeCkpLHZlYzMoLjEsIDAuMSwgMC4xKSwgc21vb3Roc3RlcCgwLjYwNCwgMC42NDMsIHgpKSx2ZWMzKDEuMCwgMC45MjksIDAuMCksIHNtb290aHN0ZXAoMC42NDMsIDAuNzYxLCB4KSksdmVjMygxLjAsIDAuMDg2LCAwLjQyNCksIHNtb290aHN0ZXAoMC43NjEsIDAuODQ3LCB4KSksdmVjMygxLjAsIDAuNDksIDAuMCksIHNtb290aHN0ZXAoMC44NDcsIDAuODksIHgpKSx2ZWMzKDAuOTQ1LCAwLjI3NSwgMC40NzUpLCBzbW9vdGhzdGVwKDAuODksIDAuOTQxLCB4KSksdmVjMygwLjI1MSwgMC4yNzUsIDAuNzk2KSwgc21vb3Roc3RlcCgwLjk0MSwgMS4wLCB4KSkpLDEuMCk7fVxuICBmbG9hdCBkaVROKHZlYzIgcCl7dmVjMiBmID0gZnJhY3QocCk7ZiA9IChmICogZikgKiAoMy4wIC0gKDIuMCAqIGYpKTtmbG9hdCBuID0gZG90KGZsb29yKHApLCB2ZWMyKDEuMCwgMTU3LjApKTt2ZWM0IGEgPSBmcmFjdChzaW4odmVjNChuICsgMC4wLCBuICsgMS4wLCBuICsgMTU3LjAsIG4gKyAxNTguMCkpICogNDM3NTguNTQ1MzEyMyk7cmV0dXJuIG1peChtaXgoYS54LCBhLnksIGYueCksIG1peChhLnosIGEudywgZi54KSwgZi55KTt9XG4gIGZsb2F0IGZibSh2ZWMyIHApe2NvbnN0IG1hdDIgbSA9IG1hdDIoMC44MCwgLTAuNjAsIDAuNjAsIDAuODApO2Zsb2F0IGYgPSAwLjA7ZiArPSAwLjUwMDAqZGlUTihwKTsgcCA9IG0qcCoyLjAyO2YgKz0gMC4yNTAwKmRpVE4ocCk7IHAgPSBtKnAqMi4wMztmICs9IDAuMTI1MCpkaVROKHApOyBwID0gbSpwKjIuMDE7ZiArPSAwLjA2MjUqZGlUTihwKTtyZXR1cm4gZi8wLjkzNzU7fVxuICB2ZWM0IGdlTFModmVjMiBwKXt2ZWMyIHBwID0gKHAgLSB2ZWMyKDAuNSkpICogMi4wO2Zsb2F0IGEgPSBhdGFuKHBwLnksIHBwLngpO3ZlYzQgY3AgPSB2ZWM0KHNpbihhICogMS4wKSwgbGVuZ3RoKHBwKSwgc2luKGEgKiAxMy4wKSwgc2luKGEgKiA1My4wKSk7ZmxvYXQgZCA9IHNpbihjbGFtcChwb3cobGVuZ3RoKHZlYzIoMC41KSAtIHApICogMC41ICsgaGFsb1NjYWxlIC8yLiwgNS4wKSwgMC4wLCAxLjApICogMy4xNDE1OSk7dmVjMyBjID0gdmVjMyhkKSAqIHZlYzMoZmJtKGNwLnh5ICogMTYuMCkgKiBmYm0oY3AuencgKiA5LjApICogbWF4KG1heChtYXgobWF4KDAuNSwgc2luKGEgKiAxLjApKSwgc2luKGEgKiAzLjApICogMC44KSwgc2luKGEgKiA3LjApICogMC44KSwgc2luKGEgKiA5LjApICogMTAuNikpO2MgKj0gdmVjMyhtaXgoMi4wLCAoc2luKGxlbmd0aChwcC54eSkgKiAyNTYuMCkgKiAwLjUpICsgMC41LCBzaW4oKGNsYW1wKChsZW5ndGgocHAueHkpIC0gMC44NzUpIC8gMC4xLCAwLjAsIDEuMCkgKyAwLjApICogMi4wICogMy4xNDE1OSkgKiAxLjUpICsgMC41KSAqIDAuMzI3NTtyZXR1cm4gdmVjNCh2ZWMzKGMgKiAxLjApLCBkKTt9XG4gIHZlYzQgZ2VMRCh2ZWMyIHApe3AueHkgKz0gdmVjMihmYm0ocC55eCAqIDMuMCksIGZibShwLnl4ICogMi4wKSkgKiAwLjA4MjU7dmVjMyBvID0gdmVjMyhtaXgoMC4xMjUsIDAuMjUsIG1heChtYXgoc21vb3Roc3RlcCgwLjEsIDAuMCwgbGVuZ3RoKHAgLSB2ZWMyKDAuMjUpKSksc21vb3Roc3RlcCgwLjQsIDAuMCwgbGVuZ3RoKHAgLSB2ZWMyKDAuNzUpKSkpLHNtb290aHN0ZXAoMC44LCAwLjAsIGxlbmd0aChwIC0gdmVjMigwLjg3NSwgMC4xMjUpKSkpKSk7byArPSB2ZWMzKG1heChmYm0ocCAqIDEuMCkgLSAwLjUsIDAuMCkpICogMC41O28gKz0gdmVjMyhtYXgoZmJtKHAgKiAyLjApIC0gMC41LCAwLjApKSAqIDAuNTtvICs9IHZlYzMobWF4KGZibShwICogNC4wKSAtIDAuNSwgMC4wKSkgKiAwLjI1O28gKz0gdmVjMyhtYXgoZmJtKHAgKiA4LjApIC0gMC43NSwgMC4wKSkgKiAxLjA7byArPSB2ZWMzKG1heChmYm0ocCAqIDE2LjApIC0gMC43NSwgMC4wKSkgKiAwLjc1O28gKz0gdmVjMyhtYXgoZmJtKHAgKiA2NC4wKSAtIDAuNzUsIDAuMCkpICogMC41O3JldHVybiB2ZWM0KGNsYW1wKG8sIHZlYzMoMC4xNSksIHZlYzMoMS4wKSksIDEuMCk7fVxuICB2ZWM0IHR4TChzYW1wbGVyMkQgdGV4LCB2ZWMyIHh0Qyl7aWYoKCh4dEMueCA8IDAuKSB8fCAoeHRDLnkgPCAwLikpIHx8ICgoeHRDLnggPiAxLikgfHwgKHh0Qy55ID4gMS4pKSl7cmV0dXJuIHZlYzQoMC4wKTt9ZWxzZXtyZXR1cm4gdGV4dHVyZSh0ZXgsIHh0Qyk7IH19XG4gIHZlYzQgdHhEKHNhbXBsZXIyRCB0ZXgsIHZlYzIgeHRDLCB2ZWMyIGRpciwgdmVjMyBkaXRuKSB7cmV0dXJuIHZlYzQodHhMKHRleCwgKHh0QyArIChkaXIgKiBkaXRuLnIpKSkucix0eEwodGV4LCAoeHRDICsgKGRpciAqIGRpdG4uZykpKS5nLHR4TCh0ZXgsICh4dEMgKyAoZGlyICogZGl0bi5iKSkpLmIsMS4wKTt9XG4gIHZlYzQgc3RyQigpe3ZlYzIgYXNwWHRjID0gdmVjMigxLjApIC0gKCgodnh0QyAtIHZlYzIoMC41KSkgKiB2ZWMyKDEuMCkpICsgdmVjMigwLjUpKTsgdmVjMiB4dEMgPSB2ZWMyKDEuMCkgLSB2eHRDOyB2ZWMyIGdodmMgPSAodmVjMigwLjUpIC0geHRDKSAqIDAuMyAtIGxlbnNQb3NpdGlvbjsgdmVjMiBnaE5tID0gbm9ybWFsaXplKGdodmMgKiB2ZWMyKDEuMCkpICogdmVjMigxLjApO3ZlYzIgaGFsb1ZlYyA9IG5vcm1hbGl6ZShnaHZjKSAqIDAuNjt2ZWMyIGhsTm0gPSBnaE5tICogMC42O3ZlYzIgdGV4ZWxTaXplID0gdmVjMigxLjApIC8gdmVjMihpUmVzb2x1dGlvbi54eSk7dmVjMyBkaXRuID0gdmVjMygtKHRleGVsU2l6ZS54ICogMS41KSwgMC4yLCB0ZXhlbFNpemUueCAqIDEuNSk7dmVjNCBjID0gdmVjNCgwLjApO2ZvciAoaW50IGkgPSAwOyBpIDwgODsgaSsrKSB7dmVjMiBvZmZzZXQgPSB4dEMgKyAoZ2h2YyAqIGZsb2F0KGkpKTtjICs9IHR4RChsZW5zRGlydFRleHR1cmUsIG9mZnNldCwgZ2hObSwgZGl0bikgKiBwb3cobWF4KDAuMCwgMS4wIC0gKGxlbmd0aCh2ZWMyKDAuNSkgLSBvZmZzZXQpIC8gbGVuZ3RoKHZlYzIoMC41KSkpKSwgMTAuMCk7fXZlYzIgdXlUcnogPSB4dEMgKyBobE5tOyByZXR1cm4gKGMgKiBnZUxDKChsZW5ndGgodmVjMigwLjUpIC0gYXNwWHRjKSAvIGxlbmd0aCh2ZWMyKGhhbG9TY2FsZSkpKSkpICsodHhEKGxlbnNEaXJ0VGV4dHVyZSwgdXlUcnosIGdoTm0sIGRpdG4pICogcG93KG1heCgwLjAsIDEuMCAtIChsZW5ndGgodmVjMigwLjUpIC0gdXlUcnopIC8gbGVuZ3RoKHZlYzIoMC41KSkpKSwgMTAuMCkpO31cbiAgdm9pZCBtYWluSW1hZ2UodmVjNCB2LHZlYzIgcixvdXQgdmVjNCBpKXt2ZWMyIGc9ci0uNTtnLnkqPWlSZXNvbHV0aW9uLnkvaVJlc29sdXRpb24ueDt2ZWMyIGw9bGVuc1Bvc2l0aW9uKi41O2wueSo9aVJlc29sdXRpb24ueS9pUmVzb2x1dGlvbi54O3ZlYzMgZj1tTHMoZyxsKSoyMC4qY29sb3JHYWluLzI1Ni47aWYoYWRpdGlvbmFsU3RyZWFrcyl7dmVjMyBvPXZlYzMoLjksLjIsLjEpLHA9dmVjMyguMywuMSwuOSk7Zm9yKGZsb2F0IG49MC47bjwxMC47bisrKWYrPWRyQyhnLHBvdyhybmQobioyZTMpKjIuOCwuMSkrMS40MSwwLixvK24scCtuLHJuZChuKjIwLikqMy4rLjItLjUsbGVuc1Bvc2l0aW9uKTt9aWYoc2Vjb25kYXJ5R2hvc3RzKXt2ZWMzIG49dmVjMygwKTtuKz1ySHgoZywtbGVuc1Bvc2l0aW9uKi4yNSxnaG9zdFNjYWxlKjEuNCx2ZWMzKC4yNSwuMzUsMCkpO24rPXJIeChnLGxlbnNQb3NpdGlvbiouMjUsZ2hvc3RTY2FsZSouNSx2ZWMzKDEsLjUsLjUpKTtuKz1ySHgoZyxsZW5zUG9zaXRpb24qLjEsZ2hvc3RTY2FsZSoxLjYsdmVjMygxKSk7bis9ckh4KGcsbGVuc1Bvc2l0aW9uKjEuOCxnaG9zdFNjYWxlKjIuLHZlYzMoMCwuNSwuNzUpKTtuKz1ySHgoZyxsZW5zUG9zaXRpb24qMS4yNSxnaG9zdFNjYWxlKi44LHZlYzMoMSwxLC41KSk7bis9ckh4KGcsLWxlbnNQb3NpdGlvbioxLjI1LGdob3N0U2NhbGUqNS4sdmVjMyguNSwuNSwuMjUpKTtuKz1mcG93KDEuLWFicyhkaXN0YW5jZShsZW5zUG9zaXRpb24qLjgsZyktLjcpLC45ODUpKmNvbG9yR2Fpbi8yMTAwLjtmKz1uO31pZihzdGFyQnVyc3Qpe3Z4dEM9ZysuNTt2ZWM0IG49Z2VMRChnKTtmbG9hdCBvPTEuLWNsYW1wKDAuNSwwLiwuNSkqMi47bis9bWl4KG4scG93KG4qMi4sdmVjNCgyKSkqLjUsbyk7ZmxvYXQgcz0oZy54K2cueSkqKDEuLzYuKTt2ZWMyIGQ9bWF0Mihjb3MocyksLXNpbihzKSxzaW4ocyksY29zKHMpKSp2eHRDO24rPWdlTFMoZCkqMi47Zis9Y2xhbXAobi54eXoqc3RyQigpLnh5eiwuMDEsMS4pO31pPWVuYWJsZWQ/dmVjNChtaXgoZix2ZWMzKDApLG9wYWNpdHkpK3YueHl6LHYudyk6dmVjNCh2KTt9XG5gLFxufTtcblxuZXhwb3J0IGNsYXNzIExlbnNGbGFyZUVmZmVjdCBleHRlbmRzIEVmZmVjdCB7XG5cdGNvbnN0cnVjdG9yKHtcblx0XHRibGVuZEZ1bmN0aW9uID0gQmxlbmRGdW5jdGlvbi5OT1JNQUwsXG5cdFx0ZW5hYmxlZCA9IHRydWUsXG5cdFx0Z2xhcmVTaXplID0gMC4yLFxuXHRcdGxlbnNQb3NpdGlvbiA9IFswLjAxLCAwLjAxXSxcblx0XHRpUmVzb2x1dGlvbiA9IFswLCAwXSxcblx0XHRzdGFyUG9pbnRzID0gNixcblx0XHRmbGFyZVNpemUgPSAwLjAxLFxuXHRcdGZsYXJlU3BlZWQgPSAwLjAxLFxuXHRcdGZsYXJlU2hhcGUgPSAwLjAxLFxuXHRcdGFuaW1hdGVkID0gdHJ1ZSxcblx0XHRhbmFtb3JwaGljID0gZmFsc2UsXG5cdFx0Y29sb3JHYWluID0gbmV3IFRIUkVFLkNvbG9yKDIwLCAyMCwgMjApLFxuXHRcdGxlbnNEaXJ0VGV4dHVyZSA9IG51bGwgYXMgVEhSRUUuVGV4dHVyZSB8IG51bGwsXG5cdFx0aGFsb1NjYWxlID0gMC41LFxuXHRcdHNlY29uZGFyeUdob3N0cyA9IHRydWUsXG5cdFx0YWRpdGlvbmFsU3RyZWFrcyA9IHRydWUsXG5cdFx0Z2hvc3RTY2FsZSA9IDAuMCxcblx0XHRvcGFjaXR5ID0gMS4wLFxuXHRcdHN0YXJCdXJzdCA9IGZhbHNlLFxuXHR9ID0ge30pIHtcblx0XHRzdXBlcignTGVuc0ZsYXJlRWZmZWN0JywgTGVuc0ZsYXJlU2hhZGVyLmZyYWdtZW50U2hhZGVyLCB7XG5cdFx0XHRibGVuZEZ1bmN0aW9uLFxuXHRcdFx0dW5pZm9ybXM6IG5ldyBNYXA8c3RyaW5nLCBUSFJFRS5Vbmlmb3JtPihbXG5cdFx0XHRcdFsnZW5hYmxlZCcsIG5ldyBUSFJFRS5Vbmlmb3JtKGVuYWJsZWQpXSxcblx0XHRcdFx0WydnbGFyZVNpemUnLCBuZXcgVEhSRUUuVW5pZm9ybShnbGFyZVNpemUpXSxcblx0XHRcdFx0WydsZW5zUG9zaXRpb24nLCBuZXcgVEhSRUUuVW5pZm9ybShsZW5zUG9zaXRpb24pXSxcblx0XHRcdFx0WydpVGltZScsIG5ldyBUSFJFRS5Vbmlmb3JtKDApXSxcblx0XHRcdFx0WydpUmVzb2x1dGlvbicsIG5ldyBUSFJFRS5Vbmlmb3JtKGlSZXNvbHV0aW9uKV0sXG5cdFx0XHRcdFsnc3RhclBvaW50cycsIG5ldyBUSFJFRS5Vbmlmb3JtKHN0YXJQb2ludHMpXSxcblx0XHRcdFx0WydmbGFyZVNpemUnLCBuZXcgVEhSRUUuVW5pZm9ybShmbGFyZVNpemUpXSxcblx0XHRcdFx0WydmbGFyZVNwZWVkJywgbmV3IFRIUkVFLlVuaWZvcm0oZmxhcmVTcGVlZCldLFxuXHRcdFx0XHRbJ2ZsYXJlU2hhcGUnLCBuZXcgVEhSRUUuVW5pZm9ybShmbGFyZVNoYXBlKV0sXG5cdFx0XHRcdFsnYW5pbWF0ZWQnLCBuZXcgVEhSRUUuVW5pZm9ybShhbmltYXRlZCldLFxuXHRcdFx0XHRbJ2FuYW1vcnBoaWMnLCBuZXcgVEhSRUUuVW5pZm9ybShhbmFtb3JwaGljKV0sXG5cdFx0XHRcdFsnY29sb3JHYWluJywgbmV3IFRIUkVFLlVuaWZvcm0oY29sb3JHYWluKV0sXG5cdFx0XHRcdFsnbGVuc0RpcnRUZXh0dXJlJywgbmV3IFRIUkVFLlVuaWZvcm0obGVuc0RpcnRUZXh0dXJlKV0sXG5cdFx0XHRcdFsnaGFsb1NjYWxlJywgbmV3IFRIUkVFLlVuaWZvcm0oaGFsb1NjYWxlKV0sXG5cdFx0XHRcdFsnc2Vjb25kYXJ5R2hvc3RzJywgbmV3IFRIUkVFLlVuaWZvcm0oc2Vjb25kYXJ5R2hvc3RzKV0sXG5cdFx0XHRcdFsnYWRpdGlvbmFsU3RyZWFrcycsIG5ldyBUSFJFRS5Vbmlmb3JtKGFkaXRpb25hbFN0cmVha3MpXSxcblx0XHRcdFx0WydnaG9zdFNjYWxlJywgbmV3IFRIUkVFLlVuaWZvcm0oZ2hvc3RTY2FsZSldLFxuXHRcdFx0XHRbJ3N0YXJCdXJzdCcsIG5ldyBUSFJFRS5Vbmlmb3JtKHN0YXJCdXJzdCldLFxuXHRcdFx0XHRbJ29wYWNpdHknLCBuZXcgVEhSRUUuVW5pZm9ybShvcGFjaXR5KV0sXG5cdFx0XHRdKSxcblx0XHR9KTtcblx0fVxuXG5cdG92ZXJyaWRlIHVwZGF0ZShfcmVuZGVyZXI6IFRIUkVFLldlYkdMUmVuZGVyZXIsIF9pbnB1dEJ1ZmZlcjogVEhSRUUuV2ViR0xSZW5kZXJUYXJnZXQsIGRlbHRhVGltZTogbnVtYmVyKSB7XG5cdFx0Y29uc3QgaVRpbWUgPSB0aGlzLnVuaWZvcm1zLmdldCgnaVRpbWUnKTtcblx0XHRpZiAoaVRpbWUpIHtcblx0XHRcdGlUaW1lLnZhbHVlICs9IGRlbHRhVGltZTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgTGVuc0ZsYXJlT3B0aW9ucyA9IENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgTGVuc0ZsYXJlRWZmZWN0PlswXSAmIHtcblx0cG9zaXRpb246IE5ndFZlY3RvcjM7XG5cdGZvbGxvd01vdXNlOiBib29sZWFuO1xuXHRzbW9vdGhUaW1lOiBudW1iZXI7XG59O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTGVuc0ZsYXJlT3B0aW9ucyA9IHtcblx0cG9zaXRpb246IG5ldyBUSFJFRS5WZWN0b3IzKC0yNSwgNiwgLTYwKSxcblx0Zm9sbG93TW91c2U6IGZhbHNlLFxuXHRzbW9vdGhUaW1lOiAwLjcsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWxlbnMtZmxhcmUnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIFtwYXJhbWV0ZXJzXT1cInsgZGlzcG9zZTogbnVsbCB9XCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwTGVuc0ZsYXJlIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXG5cdHByaXZhdGUgZWZmZWN0Q29tcG9zZXIgPSBpbmplY3QoTmd0cEVmZmVjdENvbXBvc2VyKTtcblxuXHRwcml2YXRlIGVmZmVjdE9wdGlvbnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydwb3NpdGlvbicsICdmb2xsb3dNb3VzZScsICdzbW9vdGhUaW1lJ10pO1xuXHRwcml2YXRlIHBvc2l0aW9uID0gdmVjdG9yMyh0aGlzLm9wdGlvbnMsICdwb3NpdGlvbicpO1xuXG5cdHByaXZhdGUgcHJvamVjdGVkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuXHRwcml2YXRlIG1vdXNlMmQgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xuXG5cdHByb3RlY3RlZCBlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiBuZXcgTGVuc0ZsYXJlRWZmZWN0KHRoaXMuZWZmZWN0T3B0aW9ucygpKSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFtsZW5zRmxhcmVFZmZlY3QsIHdpZHRoLCBoZWlnaHRdID0gW1xuXHRcdFx0XHR0aGlzLmVmZmVjdCgpLFxuXHRcdFx0XHR0aGlzLnN0b3JlLnZpZXdwb3J0LndpZHRoKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUudmlld3BvcnQuaGVpZ2h0KCksXG5cdFx0XHRdO1xuXHRcdFx0Y29uc3QgaVJlc29sdXRpb24gPSBsZW5zRmxhcmVFZmZlY3QudW5pZm9ybXMuZ2V0KCdpUmVzb2x1dGlvbicpO1xuXHRcdFx0aWYgKGlSZXNvbHV0aW9uKSB7XG5cdFx0XHRcdGlSZXNvbHV0aW9uLnZhbHVlLnggPSB3aWR0aDtcblx0XHRcdFx0aVJlc29sdXRpb24udmFsdWUueSA9IGhlaWdodDtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXG5cdFx0YmVmb3JlUmVuZGVyKCh7IGRlbHRhIH0pID0+IHtcblx0XHRcdGNvbnN0IFtlZmZlY3RdID0gW3RoaXMuZWZmZWN0KCldO1xuXHRcdFx0aWYgKCFlZmZlY3QpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW3sgZm9sbG93TW91c2UsIHNtb290aFRpbWUgfSwgcG9zaXRpb24sIHBvaW50ZXIsIGNhbWVyYSwgc2NlbmUsIHJheWNhc3Rlcl0gPSBbXG5cdFx0XHRcdHRoaXMub3B0aW9ucygpLFxuXHRcdFx0XHR0aGlzLnBvc2l0aW9uKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuc25hcHNob3QucG9pbnRlcixcblx0XHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5jYW1lcmEoKSxcblx0XHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5zY2VuZSgpLFxuXHRcdFx0XHR0aGlzLnN0b3JlLnNuYXBzaG90LnJheWNhc3Rlcixcblx0XHRcdF07XG5cblx0XHRcdGNvbnN0IHVMZW5zUG9zaXRpb24gPSBlZmZlY3QudW5pZm9ybXMuZ2V0KCdsZW5zUG9zaXRpb24nKTtcblx0XHRcdGNvbnN0IHVPcGFjaXR5ID0gZWZmZWN0LnVuaWZvcm1zLmdldCgnb3BhY2l0eScpO1xuXHRcdFx0aWYgKCF1TGVuc1Bvc2l0aW9uIHx8ICF1T3BhY2l0eSkgcmV0dXJuO1xuXG5cdFx0XHRsZXQgdGFyZ2V0ID0gMTtcblxuXHRcdFx0aWYgKGZvbGxvd01vdXNlKSB7XG5cdFx0XHRcdHVMZW5zUG9zaXRpb24udmFsdWUueCA9IHBvaW50ZXIueDtcblx0XHRcdFx0dUxlbnNQb3NpdGlvbi52YWx1ZS55ID0gcG9pbnRlci55O1xuXHRcdFx0XHR0YXJnZXQgPSAwO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5wcm9qZWN0ZWRQb3NpdGlvbi5jb3B5KHBvc2l0aW9uKS5wcm9qZWN0KGNhbWVyYSk7XG5cdFx0XHRcdGlmICh0aGlzLnByb2plY3RlZFBvc2l0aW9uLnogPiAxKSByZXR1cm47XG5cblx0XHRcdFx0dUxlbnNQb3NpdGlvbi52YWx1ZS54ID0gdGhpcy5wcm9qZWN0ZWRQb3NpdGlvbi54O1xuXHRcdFx0XHR1TGVuc1Bvc2l0aW9uLnZhbHVlLnkgPSB0aGlzLnByb2plY3RlZFBvc2l0aW9uLnk7XG5cblx0XHRcdFx0dGhpcy5tb3VzZTJkLnNldCh0aGlzLnByb2plY3RlZFBvc2l0aW9uLngsIHRoaXMucHJvamVjdGVkUG9zaXRpb24ueSk7XG5cdFx0XHRcdHJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKHRoaXMubW91c2UyZCwgY2FtZXJhKTtcblx0XHRcdFx0Y29uc3QgaW50ZXJzZWN0cyA9IHJheWNhc3Rlci5pbnRlcnNlY3RPYmplY3RzKHNjZW5lLmNoaWxkcmVuLCB0cnVlKTtcblx0XHRcdFx0Y29uc3QgeyBvYmplY3QgfSA9IGludGVyc2VjdHNbMF0gPz8ge307XG5cdFx0XHRcdGlmIChvYmplY3QpIHtcblx0XHRcdFx0XHRpZiAob2JqZWN0LnVzZXJEYXRhPy5bJ2xlbnNmbGFyZSddID09PSAnbm8tb2NjbHVzaW9uJykge1xuXHRcdFx0XHRcdFx0dGFyZ2V0ID0gMDtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGlzLnRocmVlPFRIUkVFLk1lc2g8VEhSRUUuQnVmZmVyR2VvbWV0cnksIFRIUkVFLlNoYWRlck1hdGVyaWFsPj4ob2JqZWN0LCAnaXNNZXNoJykpIHtcblx0XHRcdFx0XHRcdGlmIChvYmplY3QubWF0ZXJpYWwudW5pZm9ybXM/LlsnX3RyYW5zbWlzc2lvbiddPy52YWx1ZSA+IDAuMikge1xuXHRcdFx0XHRcdFx0XHQvL0NoZWNrIGZvciBNZXNoVHJhbnNtaXNzaW9uTWF0ZXJpYWxcblx0XHRcdFx0XHRcdFx0dGFyZ2V0ID0gMC4yO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRcdFx0J190cmFuc21pc3Npb24nIGluIG9iamVjdC5tYXRlcmlhbCAmJlxuXHRcdFx0XHRcdFx0XHR0eXBlb2Ygb2JqZWN0Lm1hdGVyaWFsLl90cmFuc21pc3Npb24gPT09ICdudW1iZXInICYmXG5cdFx0XHRcdFx0XHRcdG9iamVjdC5tYXRlcmlhbC5fdHJhbnNtaXNzaW9uID4gMC4yXG5cdFx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdFx0Ly9DaGVjayBmb3IgTWVzaFBoeXNpY2FsTWF0ZXJpYWwgd2l0aCB0cmFuc21pc3Npb24gc2V0dGluZ1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQgPSAwLjI7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG9iamVjdC5tYXRlcmlhbC50cmFuc3BhcmVudCkge1xuXHRcdFx0XHRcdFx0XHQvLyBDaGVjayBmb3IgT3RoZXJNYXRlcmlhbHMgd2l0aCB0cmFuc3BhcmVudCBwYXJhbWV0ZXJcblx0XHRcdFx0XHRcdFx0dGFyZ2V0ID0gb2JqZWN0Lm1hdGVyaWFsLm9wYWNpdHk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGVhc2luZy5kYW1wKHVPcGFjaXR5LCAndmFsdWUnLCB0YXJnZXQsIHNtb290aFRpbWUsIGRlbHRhKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, injectStore, pick } from 'angular-three';\nimport { LUT3DEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpLUT {\n constructor() {\n this.options = input({});\n this.lut = pick(this.options, 'lut');\n this.tetrahedralInterpolation = pick(this.options, 'tetrahedralInterpolation');\n this.store = injectStore();\n this.effect = computed(() => {\n const { lut, ...options } = this.options();\n return new LUT3DEffect(lut, options);\n });\n effect(() => {\n const [effect, lut, tetrahedralInterpolation, invalidate] = [\n this.effect(),\n this.lut(),\n this.tetrahedralInterpolation(),\n this.store.invalidate(),\n ];\n if (tetrahedralInterpolation)\n effect.tetrahedralInterpolation = tetrahedralInterpolation;\n if (lut)\n effect.lut = lut;\n invalidate();\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpLUT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpLUT, isStandalone: true, selector: \"ngtp-lut\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpLUT, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-lut',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvbHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBa0I1RCxNQUFNLE9BQU8sT0FBTztJQWFuQjtRQVpBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBZ0IsQ0FBQyxDQUFDO1FBRTFCLFFBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoQyw2QkFBd0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBRTFFLFVBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUVwQixXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzNDLE9BQU8sSUFBSSxXQUFXLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBR0YsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsQ0FBQyxHQUFHO2dCQUMzRCxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNiLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLHdCQUF3QixFQUFFO2dCQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTthQUN2QixDQUFDO1lBRUYsSUFBSSx3QkFBd0I7Z0JBQUUsTUFBTSxDQUFDLHdCQUF3QixHQUFHLHdCQUF3QixDQUFDO1lBQ3pGLElBQUksR0FBRztnQkFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUMxQixVQUFVLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBL0JXLE9BQU87a0dBQVAsT0FBTyw4TUFQVDs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxPQUFPO2tCQVRuQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGluamVjdFN0b3JlLCBwaWNrIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBMVVQzREVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuZXhwb3J0IGludGVyZmFjZSBMVVRPcHRpb25zIHtcblx0bHV0OiBUSFJFRS5UZXh0dXJlO1xuXHRibGVuZEZ1bmN0aW9uPzogQmxlbmRGdW5jdGlvbjtcblx0dGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1sdXQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIFtkaXNwb3NlXT1cIm51bGxcIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBMVVQge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgTFVUT3B0aW9ucyk7XG5cblx0cHJpdmF0ZSBsdXQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2x1dCcpO1xuXHRwcml2YXRlIHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAndGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uJyk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB7IGx1dCwgLi4ub3B0aW9ucyB9ID0gdGhpcy5vcHRpb25zKCk7XG5cdFx0cmV0dXJuIG5ldyBMVVQzREVmZmVjdChsdXQsIG9wdGlvbnMpO1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2VmZmVjdCwgbHV0LCB0ZXRyYWhlZHJhbEludGVycG9sYXRpb24sIGludmFsaWRhdGVdID0gW1xuXHRcdFx0XHR0aGlzLmVmZmVjdCgpLFxuXHRcdFx0XHR0aGlzLmx1dCgpLFxuXHRcdFx0XHR0aGlzLnRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbigpLFxuXHRcdFx0XHR0aGlzLnN0b3JlLmludmFsaWRhdGUoKSxcblx0XHRcdF07XG5cblx0XHRcdGlmICh0ZXRyYWhlZHJhbEludGVycG9sYXRpb24pIGVmZmVjdC50ZXRyYWhlZHJhbEludGVycG9sYXRpb24gPSB0ZXRyYWhlZHJhbEludGVycG9sYXRpb247XG5cdFx0XHRpZiAobHV0KSBlZmZlY3QubHV0ID0gbHV0O1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpNoise {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ NoiseEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpNoise, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpNoise, isStandalone: true, selector: \"ngtp-noise\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpNoise, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-noise',\n template: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9pc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ub2lzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFrQnpGLE1BQU0sT0FBTyxTQUFTO0lBSXJCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxDQUFDLENBQUM7UUFDdkQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBTlcsU0FBUztrR0FBVCxTQUFTLG1NQUZWLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsNElBVjVFOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFJMUIsU0FBUztrQkFkckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7b0JBQ2pGLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2lCQUN0RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgTm9pc2VFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlLCBwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBOb2lzZUVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgTm9pc2VFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtbm9pc2UnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtbm9pc2UtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3Qtbm9pc2UtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zKHsgYmxlbmRGdW5jdGlvbjogQmxlbmRGdW5jdGlvbi5DT0xPUl9ET0RHRSB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBOb2lzZSB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PE5vaXNlRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IE5vaXNlRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, untracked, } from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelectionApi, omit, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { OutlineEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n selectionLayer: 10,\n};\nexport class NgtpOutline {\n constructor() {\n this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n this.selectionApi = inject(NgtSelectionApi, { optional: true });\n this.effectComposer = inject(NgtpEffectComposer);\n this.store = injectStore();\n this.selection = pick(this.options, 'selection');\n this.selectionLayer = pick(this.options, 'selectionLayer');\n this.blendFunction = pick(this.options, 'blendFunction');\n this.patternTexture = pick(this.options, 'patternTexture');\n this.edgeStrength = pick(this.options, 'edgeStrength');\n this.pulseSpeed = pick(this.options, 'pulseSpeed');\n this.visibleEdgeColor = pick(this.options, 'visibleEdgeColor');\n this.hiddenEdgeColor = pick(this.options, 'hiddenEdgeColor');\n this.width = pick(this.options, 'width');\n this.height = pick(this.options, 'height');\n this.kernelSize = pick(this.options, 'kernelSize');\n this.blur = pick(this.options, 'blur');\n this.xRay = pick(this.options, 'xRay');\n this.restOptions = omit(this.options, [\n 'blendFunction',\n 'patternTexture',\n 'edgeStrength',\n 'pulseSpeed',\n 'visibleEdgeColor',\n 'hiddenEdgeColor',\n 'width',\n 'height',\n 'kernelSize',\n 'blur',\n 'xRay',\n ]);\n this.effect = computed(() => {\n const [scene, camera, blendFunction, patternTexture, edgeStrength, pulseSpeed, visibleEdgeColor, hiddenEdgeColor, width, height, kernelSize, blur, xRay, restOptions,] = [\n this.effectComposer.scene(),\n this.effectComposer.camera(),\n this.blendFunction(),\n this.patternTexture(),\n this.edgeStrength(),\n this.pulseSpeed(),\n this.visibleEdgeColor(),\n this.hiddenEdgeColor(),\n this.width(),\n this.height(),\n this.kernelSize(),\n this.blur(),\n this.xRay(),\n untracked(this.restOptions),\n ];\n return new OutlineEffect(scene, camera, {\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...restOptions,\n });\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n effect(() => {\n const [effect, invalidate, selectionLayer] = [\n this.effect(),\n this.store.invalidate(),\n this.selectionLayer(),\n ];\n effect.selectionLayer = selectionLayer;\n invalidate();\n });\n effect((onCleanup) => {\n // NOTE: we run this effect if declarative NgtSelection is not enabled\n if (!this.selectionApi) {\n // NOTE: if NgtSelection is not used and selection is not provided, we throw\n if (this.selection() === undefined) {\n throw new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');\n }\n const cleanup = this.handleSelectionChangeEffect(this.selection, this.effect, this.store.invalidate);\n onCleanup(() => {\n cleanup?.();\n });\n return;\n }\n // NOTE: we run this effect if declarative NgtSelection is enabled\n const selectionEnabled = this.selectionApi.enabled();\n if (!selectionEnabled)\n return;\n const cleanup = this.handleSelectionChangeEffect(this.selectionApi.selected, this.effect, this.store.invalidate);\n onCleanup(() => {\n cleanup?.();\n });\n });\n }\n handleSelectionChangeEffect(selected, _effect, _invalidate) {\n const selection = selected();\n if (!selection || selection.length === 0)\n return;\n const [effect, invalidate] = [_effect(), _invalidate()];\n const objects = [];\n for (const el of selection) {\n const obj = resolveRef(el);\n if (!obj)\n continue;\n objects.push(obj);\n }\n if (objects.length === 0)\n return;\n effect.selection.set(objects);\n invalidate();\n return () => {\n effect.selection.clear();\n invalidate();\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpOutline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpOutline, isStandalone: true, selector: \"ngtp-outline\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpOutline, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-outline',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0bGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL291dGxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBT3hELE1BQU0sY0FBYyxHQUF1QjtJQUMxQyxjQUFjLEVBQUUsRUFBRTtDQUNsQixDQUFDO0FBV0YsTUFBTSxPQUFPLFdBQVc7SUFvRnZCO1FBbkZBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEUsaUJBQVksR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsbUJBQWMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM1QyxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFFdEIsY0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLG1CQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FB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QU87OzJGQUVMLFdBQVc7a0JBVHZCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0ZWZmZWN0LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0U3RvcmUsIE5ndEFyZ3MsIE5ndFNlbGVjdGlvbkFwaSwgb21pdCwgcGljaywgcmVzb2x2ZVJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgT3V0bGluZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHBFZmZlY3RDb21wb3NlciB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbmV4cG9ydCB0eXBlIE5ndHBPdXRsaW5lT3B0aW9ucyA9IENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgT3V0bGluZUVmZmVjdD5bMl0gJiB7XG5cdHNlbGVjdGlvbj86IEFycmF5PFRIUkVFLk9iamVjdDNEIHwgRWxlbWVudFJlZjxUSFJFRS5PYmplY3QzRD4+O1xuXHRzZWxlY3Rpb25MYXllcjogbnVtYmVyO1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHBPdXRsaW5lT3B0aW9ucyA9IHtcblx0c2VsZWN0aW9uTGF5ZXI6IDEwLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1vdXRsaW5lJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBPdXRsaW5lIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgc2VsZWN0aW9uQXBpID0gaW5qZWN0KE5ndFNlbGVjdGlvbkFwaSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblx0cHJpdmF0ZSBlZmZlY3RDb21wb3NlciA9IGluamVjdChOZ3RwRWZmZWN0Q29tcG9zZXIpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblxuXHRwcml2YXRlIHNlbGVjdGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2VsZWN0aW9uJyk7XG5cdHByaXZhdGUgc2VsZWN0aW9uTGF5ZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3NlbGVjdGlvbkxheWVyJyk7XG5cblx0cHJpdmF0ZSBibGVuZEZ1bmN0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJyk7XG5cdHByaXZhdGUgcGF0dGVyblRleHR1cmUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3BhdHRlcm5UZXh0dXJlJyk7XG5cdHByaXZhdGUgZWRnZVN0cmVuZ3RoID0gcGljayh0aGlzLm9wdGlvbnMsICdlZGdlU3RyZW5ndGgnKTtcblx0cHJpdmF0ZSBwdWxzZVNwZWVkID0gcGljayh0aGlzLm9wdGlvbnMsICdwdWxzZVNwZWVkJyk7XG5cdHByaXZhdGUgdmlzaWJsZUVkZ2VDb2xvciA9IHBpY2sodGhpcy5vcHRpb25zLCAndmlzaWJsZUVkZ2VDb2xvcicpO1xuXHRwcml2YXRlIGhpZGRlbkVkZ2VDb2xvciA9IHBpY2sodGhpcy5vcHRpb25zLCAnaGlkZGVuRWRnZUNvbG9yJyk7XG5cdHByaXZhdGUgd2lkdGggPSBwaWNrKHRoaXMub3B0aW9ucywgJ3dpZHRoJyk7XG5cdHByaXZhdGUgaGVpZ2h0ID0gcGljayh0aGlzLm9wdGlvbnMsICdoZWlnaHQnKTtcblx0cHJpdmF0ZSBrZXJuZWxTaXplID0gcGljayh0aGlzLm9wdGlvbnMsICdrZXJuZWxTaXplJyk7XG5cdHByaXZhdGUgYmx1ciA9IHBpY2sodGhpcy5vcHRpb25zLCAnYmx1cicpO1xuXHRwcml2YXRlIHhSYXkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3hSYXknKTtcblx0cHJpdmF0ZSByZXN0T3B0aW9ucyA9IG9taXQodGhpcy5vcHRpb25zLCBbXG5cdFx0J2JsZW5kRnVuY3Rpb24nLFxuXHRcdCdwYXR0ZXJuVGV4dHVyZScsXG5cdFx0J2VkZ2VTdHJlbmd0aCcsXG5cdFx0J3B1bHNlU3BlZWQnLFxuXHRcdCd2aXNpYmxlRWRnZUNvbG9yJyxcblx0XHQnaGlkZGVuRWRnZUNvbG9yJyxcblx0XHQnd2lkdGgnLFxuXHRcdCdoZWlnaHQnLFxuXHRcdCdrZXJuZWxTaXplJyxcblx0XHQnYmx1cicsXG5cdFx0J3hSYXknLFxuXHRdKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW1xuXHRcdFx0c2NlbmUsXG5cdFx0XHRjYW1lcmEsXG5cdFx0XHRibGVuZEZ1bmN0aW9uLFxuXHRcdFx0cGF0dGVyblRleHR1cmUsXG5cdFx0XHRlZGdlU3RyZW5ndGgsXG5cdFx0XHRwdWxzZVNwZWVkLFxuXHRcdFx0dmlzaWJsZUVkZ2VDb2xvcixcblx0XHRcdGhpZGRlbkVkZ2VDb2xvcixcblx0XHRcdHdpZHRoLFxuXHRcdFx0aGVpZ2h0LFxuXHRcdFx0a2VybmVsU2l6ZSxcblx0XHRcdGJsdXIsXG5cdFx0XHR4UmF5LFxuXHRcdFx0cmVzdE9wdGlvbnMsXG5cdFx0XSA9IFtcblx0XHRcdHRoaXMuZWZmZWN0Q29tcG9zZXIuc2NlbmUoKSxcblx0XHRcdHRoaXMuZWZmZWN0Q29tcG9zZXIuY2FtZXJhKCksXG5cdFx0XHR0aGlzLmJsZW5kRnVuY3Rpb24oKSxcblx0XHRcdHRoaXMucGF0dGVyblRleHR1cmUoKSxcblx0XHRcdHRoaXMuZWRnZVN0cmVuZ3RoKCksXG5cdFx0XHR0aGlzLnB1bHNlU3BlZWQoKSxcblx0XHRcdHRoaXMudmlzaWJsZUVkZ2VDb2xvcigpLFxuXHRcdFx0dGhpcy5oaWRkZW5FZGdlQ29sb3IoKSxcblx0XHRcdHRoaXMud2lkdGgoKSxcblx0XHRcdHRoaXMuaGVpZ2h0KCksXG5cdFx0XHR0aGlzLmtlcm5lbFNpemUoKSxcblx0XHRcdHRoaXMuYmx1cigpLFxuXHRcdFx0dGhpcy54UmF5KCksXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5yZXN0T3B0aW9ucyksXG5cdFx0XTtcblxuXHRcdHJldHVybiBuZXcgT3V0bGluZUVmZmVjdChzY2VuZSwgY2FtZXJhLCB7XG5cdFx0XHRibGVuZEZ1bmN0aW9uLFxuXHRcdFx0cGF0dGVyblRleHR1cmUsXG5cdFx0XHRlZGdlU3RyZW5ndGgsXG5cdFx0XHRwdWxzZVNwZWVkLFxuXHRcdFx0dmlzaWJsZUVkZ2VDb2xvcixcblx0XHRcdGhpZGRlbkVkZ2VDb2xvcixcblx0XHRcdHdpZHRoLFxuXHRcdFx0aGVpZ2h0LFxuXHRcdFx0a2VybmVsU2l6ZSxcblx0XHRcdGJsdXIsXG5cdFx0XHR4UmF5LFxuXHRcdFx0Li4ucmVzdE9wdGlvbnMsXG5cdFx0fSk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGUsIHNlbGVjdGlvbkxheWVyXSA9IFtcblx0XHRcdFx0dGhpcy5lZmZlY3QoKSxcblx0XHRcdFx0dGhpcy5zdG9yZS5pbnZhbGlkYXRlKCksXG5cdFx0XHRcdHRoaXMuc2VsZWN0aW9uTGF5ZXIoKSxcblx0XHRcdF07XG5cdFx0XHRlZmZlY3Quc2VsZWN0aW9uTGF5ZXIgPSBzZWxlY3Rpb25MYXllcjtcblx0XHRcdGludmFsaWRhdGUoKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHQvLyBOT1RFOiB3ZSBydW4gdGhpcyBlZmZlY3QgaWYgZGVjbGFyYXRpdmUgTmd0U2VsZWN0aW9uIGlzIG5vdCBlbmFibGVkXG5cdFx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uQXBpKSB7XG5cdFx0XHRcdC8vIE5PVEU6IGlmIE5ndFNlbGVjdGlvbiBpcyBub3QgdXNlZCBhbmQgc2VsZWN0aW9uIGlzIG5vdCBwcm92aWRlZCwgd2UgdGhyb3dcblx0XHRcdFx0aWYgKHRoaXMuc2VsZWN0aW9uKCkgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignW05HVCBQb3N0UHJvY2Vzc2luZ106IG5ndHAtb3V0bGluZSByZXF1aXJlcyBzZWxlY3Rpb24gaW5wdXQgb3IgdXNlIE5ndFNlbGVjdGlvbicpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGNsZWFudXAgPSB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZUVmZmVjdCh0aGlzLnNlbGVjdGlvbiwgdGhpcy5lZmZlY3QsIHRoaXMuc3RvcmUuaW52YWxpZGF0ZSk7XG5cblx0XHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0XHRjbGVhbnVwPy4oKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTk9URTogd2UgcnVuIHRoaXMgZWZmZWN0IGlmIGRlY2xhcmF0aXZlIE5ndFNlbGVjdGlvbiBpcyBlbmFibGVkXG5cdFx0XHRjb25zdCBzZWxlY3Rpb25FbmFibGVkID0gdGhpcy5zZWxlY3Rpb25BcGkuZW5hYmxlZCgpO1xuXHRcdFx0aWYgKCFzZWxlY3Rpb25FbmFibGVkKSByZXR1cm47XG5cdFx0XHRjb25zdCBjbGVhbnVwID0gdGhpcy5oYW5kbGVTZWxlY3Rpb25DaGFuZ2VFZmZlY3QoXG5cdFx0XHRcdHRoaXMuc2VsZWN0aW9uQXBpLnNlbGVjdGVkLFxuXHRcdFx0XHR0aGlzLmVmZmVjdCxcblx0XHRcdFx0dGhpcy5zdG9yZS5pbnZhbGlkYXRlLFxuXHRcdFx0KTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGNsZWFudXA/LigpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGhhbmRsZVNlbGVjdGlvbkNoYW5nZUVmZmVjdChcblx0XHRzZWxlY3RlZDogKCkgPT4gQXJyYXk8VEhSRUUuT2JqZWN0M0QgfCBFbGVtZW50UmVmPFRIUkVFLk9iamVjdDNEPj4gfCB1bmRlZmluZWQsXG5cdFx0X2VmZmVjdDogKCkgPT4gT3V0bGluZUVmZmVjdCxcblx0XHRfaW52YWxpZGF0ZTogKCkgPT4gKCkgPT4gdm9pZCxcblx0KSB7XG5cdFx0Y29uc3Qgc2VsZWN0aW9uID0gc2VsZWN0ZWQoKTtcblx0XHRpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24ubGVuZ3RoID09PSAwKSByZXR1cm47XG5cblx0XHRjb25zdCBbZWZmZWN0LCBpbnZhbGlkYXRlXSA9IFtfZWZmZWN0KCksIF9pbnZhbGlkYXRlKCldO1xuXG5cdFx0Y29uc3Qgb2JqZWN0czogVEhSRUUuT2JqZWN0M0RbXSA9IFtdO1xuXHRcdGZvciAoY29uc3QgZWwgb2Ygc2VsZWN0aW9uKSB7XG5cdFx0XHRjb25zdCBvYmogPSByZXNvbHZlUmVmKGVsKTtcblx0XHRcdGlmICghb2JqKSBjb250aW51ZTtcblx0XHRcdG9iamVjdHMucHVzaChvYmopO1xuXHRcdH1cblxuXHRcdGlmIChvYmplY3RzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG5cdFx0ZWZmZWN0LnNlbGVjdGlvbi5zZXQob2JqZWN0cyk7XG5cdFx0aW52YWxpZGF0ZSgpO1xuXG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdGVmZmVjdC5zZWxlY3Rpb24uY2xlYXIoKTtcblx0XHRcdGludmFsaWRhdGUoKTtcblx0XHR9O1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { PixelationEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpPixelation {\n constructor() {\n this.options = input({ granularity: 5 }, { transform: mergeInputs({ granularity: 5 }) });\n this.granularity = pick(this.options, 'granularity');\n this.effect = computed(() => new PixelationEffect(this.granularity()));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpPixelation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpPixelation, isStandalone: true, selector: \"ngtp-pixelation\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpPixelation, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-pixelation',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n imports: [NgtArgs],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4ZWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3BpeGVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZWxELE1BQU0sT0FBTyxjQUFjO0lBTTFCO1FBTEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQXVCLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLGdCQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFHM0UsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBWFcsY0FBYztrR0FBZCxjQUFjLHFOQVBoQjs7RUFFVCw0REFHUyxPQUFPOzsyRkFFTCxjQUFjO2tCQVQxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgUGl4ZWxhdGlvbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcblxuZXhwb3J0IGludGVyZmFjZSBQaXhlbGF0aW9uT3B0aW9ucyB7XG5cdGdyYW51bGFyaXR5OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtcGl4ZWxhdGlvbicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgLz5cblx0YCxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwUGl4ZWxhdGlvbiB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7IGdyYW51bGFyaXR5OiA1IH0gYXMgUGl4ZWxhdGlvbk9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyh7IGdyYW51bGFyaXR5OiA1IH0pIH0pO1xuXHRwcml2YXRlIGdyYW51bGFyaXR5ID0gcGljayh0aGlzLm9wdGlvbnMsICdncmFudWxhcml0eScpO1xuXG5cdHByb3RlY3RlZCBlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiBuZXcgUGl4ZWxhdGlvbkVmZmVjdCh0aGlzLmdyYW51bGFyaXR5KCkpKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst defaultOptions = {\n density: 1.25,\n};\nexport class NgtpScanline {\n constructor() {\n this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ScanlineEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpScanline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpScanline, isStandalone: true, selector: \"ngtp-scanline\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpScanline, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-scanline',\n template: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbmxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9zY2FubGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBSXpGLE1BQU0sY0FBYyxHQUFpRDtJQUNwRSxPQUFPLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFnQkYsTUFBTSxPQUFPLFlBQVk7SUFJeEI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQU5XLFlBQVk7a0dBQVosWUFBWSxzTUFGYixDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLDRJQVZ4RTs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSTFCLFlBQVk7a0JBZHhCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztpQkFDbEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIFNjYW5saW5lRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgU2NhbmxpbmVFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFNjYW5saW5lRWZmZWN0PlswXT4+O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogT21pdDxTY2FubGluZUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4gPSB7XG5cdGRlbnNpdHk6IDEuMjUsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXNjYW5saW5lJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXNjYW5saW5lLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXNjYW5saW5lLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uT1ZFUkxBWSB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBTY2FubGluZSB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgU2NhbmxpbmVFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","// const addLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.enable(effect.selection.layer)\n// const removeLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.disable(effect.selection.layer)\nimport { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, } from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelectionApi, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, SelectiveBloomEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n selectionLayer: 10,\n inverted: false,\n ignoreBackground: false,\n};\nexport class NgtpSelectiveBloom {\n constructor() {\n this.lights = input.required();\n this.selection = input([]);\n this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n this.blendFunction = pick(this.options, 'blendFunction');\n this.luminanceThreshold = pick(this.options, 'luminanceThreshold');\n this.luminanceSmoothing = pick(this.options, 'luminanceSmoothing');\n this.mipmapBlur = pick(this.options, 'mipmapBlur');\n this.intensity = pick(this.options, 'intensity');\n this.radius = pick(this.options, 'radius');\n this.levels = pick(this.options, 'levels');\n this.kernelSize = pick(this.options, 'kernelSize');\n this.resolutionScale = pick(this.options, 'resolutionScale');\n this.width = pick(this.options, 'width');\n this.height = pick(this.options, 'height');\n this.resolutionX = pick(this.options, 'resolutionX');\n this.resolutionY = pick(this.options, 'resolutionY');\n this.inverted = pick(this.options, 'inverted');\n this.ignoreBackground = pick(this.options, 'ignoreBackground');\n this.selectionLayer = pick(this.options, 'selectionLayer');\n this.store = injectStore();\n this.effectComposer = inject(NgtpEffectComposer);\n this.selectionApi = inject(NgtSelectionApi, { optional: true });\n this.resolvedLights = computed(() => this.lights().map((light) => resolveRef(light)));\n this.resolvedSelected = computed(() => {\n const selection = this.selection();\n if (!selection)\n return [];\n const array = Array.isArray(selection) ? selection : [selection];\n return array.map((selected) => resolveRef(selected));\n });\n this.resolvedNgtSelected = computed(() => {\n if (!this.selectionApi || !this.selectionApi.enabled)\n return [];\n return this.selectionApi.selected().map((selected) => resolveRef(selected));\n });\n this.effect = computed(() => {\n const effect = new SelectiveBloomEffect(this.effectComposer.scene(), this.effectComposer.camera(), {\n blendFunction: this.blendFunction() || BlendFunction.ADD,\n luminanceThreshold: this.luminanceThreshold(),\n luminanceSmoothing: this.luminanceSmoothing(),\n mipmapBlur: this.mipmapBlur(),\n intensity: this.intensity(),\n radius: this.radius(),\n levels: this.levels(),\n kernelSize: this.kernelSize(),\n resolutionScale: this.resolutionScale(),\n width: this.width(),\n height: this.height(),\n resolutionX: this.resolutionX(),\n resolutionY: this.resolutionY(),\n });\n effect.inverted = this.inverted();\n effect.ignoreBackground = this.ignoreBackground();\n return effect;\n });\n effect((onCleanup) => {\n // skip input selection altogether if NgtSelection is used\n if (this.selectionApi)\n return;\n const selection = this.resolvedSelected();\n if (!selection.length)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n effect.selection.set(selection);\n invalidate();\n onCleanup(() => {\n effect.selection.clear();\n invalidate();\n });\n });\n effect(() => {\n const [selectionLayer, invalidate, effect] = [\n this.selectionLayer(),\n this.store.invalidate(),\n this.effect(),\n ];\n effect.selection.layer = selectionLayer;\n invalidate();\n });\n effect((onCleanup) => {\n const lights = this.resolvedLights();\n if (lights.length <= 0)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n lights.forEach((light) => light && this.addLight(effect, light));\n invalidate();\n onCleanup(() => {\n lights.forEach((light) => light && this.removeLight(effect, light));\n invalidate();\n });\n });\n effect((onCleanup) => {\n const selected = this.resolvedNgtSelected();\n if (!selected.length)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n effect.selection.set(selected);\n invalidate();\n onCleanup(() => {\n effect.selection.clear();\n invalidate();\n });\n });\n }\n addLight(effect, light) {\n light.layers.enable(effect.selection.layer);\n }\n removeLight(effect, light) {\n light.layers.disable(effect.selection.layer);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpSelectiveBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpSelectiveBloom, isStandalone: true, selector: \"ngtp-selective-bloom\", inputs: { lights: { classPropertyName: \"lights\", publicName: \"lights\", isSignal: true, isRequired: true, transformFunction: null }, selection: { classPropertyName: \"selection\", publicName: \"selection\", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpSelectiveBloom, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-selective-bloom',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aXZlLWJsb29tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvc2VsZWN0aXZlLWJsb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtIQUFrSDtBQUNsSCxzSEFBc0g7QUFFdEgsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBc0Isb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFReEQsTUFBTSxjQUFjLEdBQTBCO0lBQzdDLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsZ0JBQWdCLEVBQUUsS0FBSztDQUN2QixDQUFDO0FBV0YsTUFBTSxPQUFPLGtCQUFrQjtJQWtFOUI7UUFqRUEsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQStELENBQUM7UUFDdkYsY0FBUyxHQUFHLEtBQUssQ0FLZixFQUFFLENBQUMsQ0FBQztRQUNOLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEUsa0JBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNwRCx1QkFBa0IsR0FBRyxJ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TSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxXQUFXLENBQUMsTUFBNEIsRUFBRSxLQUFxQjtRQUN0RSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7OEdBaklXLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHdkQVBwQjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxrQkFBa0I7a0JBVDlCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbnN0IGFkZExpZ2h0ID0gKGxpZ2h0OiBPYmplY3QzRCwgZWZmZWN0OiBTZWxlY3RpdmVCbG9vbUVmZmVjdCkgPT4gbGlnaHQubGF5ZXJzLmVuYWJsZShlZmZlY3Quc2VsZWN0aW9uLmxheWVyKVxuLy8gY29uc3QgcmVtb3ZlTGlnaHQgPSAobGlnaHQ6IE9iamVjdDNELCBlZmZlY3Q6IFNlbGVjdGl2ZUJsb29tRWZmZWN0KSA9PiBsaWdodC5sYXllcnMuZGlzYWJsZShlZmZlY3Quc2VsZWN0aW9uLmxheWVyKVxuXG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0ZWZmZWN0LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdFN0b3JlLCBOZ3RBcmdzLCBOZ3RTZWxlY3Rpb25BcGksIHBpY2ssIHJlc29sdmVSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIEJsb29tRWZmZWN0T3B0aW9ucywgU2VsZWN0aXZlQmxvb21FZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0Q29tcG9zZXIgfSBmcm9tICcuLi9lZmZlY3QtY29tcG9zZXInO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RpdmVCbG9vbU9wdGlvbnMgPSBCbG9vbUVmZmVjdE9wdGlvbnMgJiB7XG5cdHNlbGVjdGlvbkxheWVyOiBudW1iZXI7XG5cdGludmVydGVkOiBib29sZWFuO1xuXHRpZ25vcmVCYWNrZ3JvdW5kOiBib29sZWFuO1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IFNlbGVjdGl2ZUJsb29tT3B0aW9ucyA9IHtcblx0c2VsZWN0aW9uTGF5ZXI6IDEwLFxuXHRpbnZlcnRlZDogZmFsc2UsXG5cdGlnbm9yZUJhY2tncm91bmQ6IGZhbHNlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1zZWxlY3RpdmUtYmxvb20nLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIFtkaXNwb3NlXT1cIm51bGxcIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBTZWxlY3RpdmVCbG9vbSB7XG5cdGxpZ2h0cyA9IGlucHV0LnJlcXVpcmVkPFRIUkVFLk9iamVjdDNEW10gfCBFbGVtZW50UmVmPFRIUkVFLk9iamVjdDNEIHwgdW5kZWZpbmVkPltdPigpO1xuXHRzZWxlY3Rpb24gPSBpbnB1dDxcblx0XHR8IFRIUkVFLk9iamVjdDNEXG5cdFx0fCBUSFJFRS5PYmplY3QzRFtdXG5cdFx0fCBFbGVtZW50UmVmPFRIUkVFLk9iamVjdDNEIHwgdW5kZWZpbmVkPlxuXHRcdHwgRWxlbWVudFJlZjxUSFJFRS5PYmplY3QzRCB8IHVuZGVmaW5lZD5bXVxuXHQ+KFtdKTtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgYmxlbmRGdW5jdGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAnYmxlbmRGdW5jdGlvbicpO1xuXHRwcml2YXRlIGx1bWluYW5jZVRocmVzaG9sZCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbHVtaW5hbmNlVGhyZXNob2xkJyk7XG5cdHByaXZhdGUgbHVtaW5hbmNlU21vb3RoaW5nID0gcGljayh0aGlzLm9wdGlvbnMsICdsdW1pbmFuY2VTbW9vdGhpbmcnKTtcblx0cHJpdmF0ZSBtaXBtYXBCbHVyID0gcGljayh0aGlzLm9wdGlvbnMsICdtaXBtYXBCbHVyJyk7XG5cdHByaXZhdGUgaW50ZW5zaXR5ID0gcGljayh0aGlzLm9wdGlvbnMsICdpbnRlbnNpdHknKTtcblx0cHJpdmF0ZSByYWRpdXMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3JhZGl1cycpO1xuXHRwcml2YXRlIGxldmVscyA9IHBpY2sodGhpcy5vcHRpb25zLCAnbGV2ZWxzJyk7XG5cdHByaXZhdGUga2VybmVsU2l6ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAna2VybmVsU2l6ZScpO1xuXHRwcml2YXRlIHJlc29sdXRpb25TY2FsZSA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvblNjYWxlJyk7XG5cdHByaXZhdGUgd2lkdGggPSBwaWNrKHRoaXMub3B0aW9ucywgJ3dpZHRoJyk7XG5cdHByaXZhdGUgaGVpZ2h0ID0gcGljayh0aGlzLm9wdGlvbnMsICdoZWlnaHQnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uWCA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvblgnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uWSA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvblknKTtcblx0cHJpdmF0ZSBpbnZlcnRlZCA9IHBpY2sodGhpcy5vcHRpb25zLCAnaW52ZXJ0ZWQnKTtcblx0cHJpdmF0ZSBpZ25vcmVCYWNrZ3JvdW5kID0gcGljayh0aGlzLm9wdGlvbnMsICdpZ25vcmVCYWNrZ3JvdW5kJyk7XG5cdHByaXZhdGUgc2VsZWN0aW9uTGF5ZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3NlbGVjdGlvbkxheWVyJyk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgZWZmZWN0Q29tcG9zZXIgPSBpbmplY3QoTmd0cEVmZmVjdENvbXBvc2VyKTtcblx0cHJpdmF0ZSBzZWxlY3Rpb25BcGkgPSBpbmplY3QoTmd0U2VsZWN0aW9uQXBpLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG5cdHByaXZhdGUgcmVzb2x2ZWRMaWdodHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxpZ2h0cygpLm1hcCgobGlnaHQpID0+IHJlc29sdmVSZWYobGlnaHQpKSk7XG5cdHByaXZhdGUgcmVzb2x2ZWRTZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBzZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbigpO1xuXHRcdGlmICghc2VsZWN0aW9uKSByZXR1cm4gW107XG5cdFx0Y29uc3QgYXJyYXkgPSBBcnJheS5pc0FycmF5KHNlbGVjdGlvbikgPyBzZWxlY3Rpb24gOiBbc2VsZWN0aW9uXTtcblx0XHRyZXR1cm4gYXJyYXkubWFwKChzZWxlY3RlZCkgPT4gcmVzb2x2ZVJlZihzZWxlY3RlZCkpO1xuXHR9KTtcblx0cHJpdmF0ZSByZXNvbHZlZE5ndFNlbGVjdGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGlmICghdGhpcy5zZWxlY3Rpb25BcGkgfHwgIXRoaXMuc2VsZWN0aW9uQXBpLmVuYWJsZWQpIHJldHVybiBbXTtcblx0XHRyZXR1cm4gdGhpcy5zZWxlY3Rpb25BcGkuc2VsZWN0ZWQoKS5tYXAoKHNlbGVjdGVkKSA9PiByZXNvbHZlUmVmKHNlbGVjdGVkKSk7XG5cdH0pO1xuXG5cdHByb3RlY3RlZCBlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgZWZmZWN0ID0gbmV3IFNlbGVjdGl2ZUJsb29tRWZmZWN0KHRoaXMuZWZmZWN0Q29tcG9zZXIuc2NlbmUoKSwgdGhpcy5lZmZlY3RDb21wb3Nlci5jYW1lcmEoKSwge1xuXHRcdFx0YmxlbmRGdW5jdGlvbjogdGhpcy5ibGVuZEZ1bmN0aW9uKCkgfHwgQmxlbmRGdW5jdGlvbi5BREQsXG5cdFx0XHRsdW1pbmFuY2VUaHJlc2hvbGQ6IHRoaXMubHVtaW5hbmNlVGhyZXNob2xkKCksXG5cdFx0XHRsdW1pbmFuY2VTbW9vdGhpbmc6IHRoaXMubHVtaW5hbmNlU21vb3RoaW5nKCksXG5cdFx0XHRtaXBtYXBCbHVyOiB0aGlzLm1pcG1hcEJsdXIoKSxcblx0XHRcdGludGVuc2l0eTogdGhpcy5pbnRlbnNpdHkoKSxcblx0XHRcdHJhZGl1czogdGhpcy5yYWRpdXMoKSxcblx0XHRcdGxldmVsczogdGhpcy5sZXZlbHMoKSxcblx0XHRcdGtlcm5lbFNpemU6IHRoaXMua2VybmVsU2l6ZSgpLFxuXHRcdFx0cmVzb2x1dGlvblNjYWxlOiB0aGlzLnJlc29sdXRpb25TY2FsZSgpLFxuXHRcdFx0d2lkdGg6IHRoaXMud2lkdGgoKSxcblx0XHRcdGhlaWdodDogdGhpcy5oZWlnaHQoKSxcblx0XHRcdHJlc29sdXRpb25YOiB0aGlzLnJlc29sdXRpb25YKCksXG5cdFx0XHRyZXNvbHV0aW9uWTogdGhpcy5yZXNvbHV0aW9uWSgpLFxuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0LmludmVydGVkID0gdGhpcy5pbnZlcnRlZCgpO1xuXHRcdGVmZmVjdC5pZ25vcmVCYWNrZ3JvdW5kID0gdGhpcy5pZ25vcmVCYWNrZ3JvdW5kKCk7XG5cblx0XHRyZXR1cm4gZWZmZWN0O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Ly8gc2tpcCBpbnB1dCBzZWxlY3Rpb24gYWx0b2dldGhlciBpZiBOZ3RTZWxlY3Rpb24gaXMgdXNlZFxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0aW9uQXBpKSByZXR1cm47XG5cdFx0XHRjb25zdCBzZWxlY3Rpb24gPSB0aGlzLnJlc29sdmVkU2VsZWN0ZWQoKTtcblx0XHRcdGlmICghc2VsZWN0aW9uLmxlbmd0aCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBbZWZmZWN0LCBpbnZhbGlkYXRlXSA9IFt0aGlzLmVmZmVjdCgpLCB0aGlzLnN0b3JlLmludmFsaWRhdGUoKSwgdGhpcy5zZWxlY3Rpb25MYXllcigpXTtcblx0XHRcdGVmZmVjdC5zZWxlY3Rpb24uc2V0KHNlbGVjdGlvbiBhcyBUSFJFRS5PYmplY3QzRFtdKTtcblx0XHRcdGludmFsaWRhdGUoKTtcblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0ZWZmZWN0LnNlbGVjdGlvbi5jbGVhcigpO1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbc2VsZWN0aW9uTGF5ZXIsIGludmFsaWRhdGUsIGVmZmVjdF0gPSBbXG5cdFx0XHRcdHRoaXMuc2VsZWN0aW9uTGF5ZXIoKSxcblx0XHRcdFx0dGhpcy5zdG9yZS5pbnZhbGlkYXRlKCksXG5cdFx0XHRcdHRoaXMuZWZmZWN0KCksXG5cdFx0XHRdO1xuXHRcdFx0ZWZmZWN0LnNlbGVjdGlvbi5sYXllciA9IHNlbGVjdGlvbkxheWVyO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGxpZ2h0cyA9IHRoaXMucmVzb2x2ZWRMaWdodHMoKTtcblx0XHRcdGlmIChsaWdodHMubGVuZ3RoIDw9IDApIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZV0gPSBbdGhpcy5lZmZlY3QoKSwgdGhpcy5zdG9yZS5pbnZhbGlkYXRlKCksIHRoaXMuc2VsZWN0aW9uTGF5ZXIoKV07XG5cblx0XHRcdGxpZ2h0cy5mb3JFYWNoKChsaWdodCkgPT4gbGlnaHQgJiYgdGhpcy5hZGRMaWdodChlZmZlY3QsIGxpZ2h0KSk7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGxpZ2h0cy5mb3JFYWNoKChsaWdodCkgPT4gbGlnaHQgJiYgdGhpcy5yZW1vdmVMaWdodChlZmZlY3QsIGxpZ2h0KSk7XG5cdFx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IHNlbGVjdGVkID0gdGhpcy5yZXNvbHZlZE5ndFNlbGVjdGVkKCk7XG5cdFx0XHRpZiAoIXNlbGVjdGVkLmxlbmd0aCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBbZWZmZWN0LCBpbnZhbGlkYXRlXSA9IFt0aGlzLmVmZmVjdCgpLCB0aGlzLnN0b3JlLmludmFsaWRhdGUoKSwgdGhpcy5zZWxlY3Rpb25MYXllcigpXTtcblx0XHRcdGVmZmVjdC5zZWxlY3Rpb24uc2V0KHNlbGVjdGVkIGFzIFRIUkVFLk9iamVjdDNEW10pO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRlZmZlY3Quc2VsZWN0aW9uLmNsZWFyKCk7XG5cdFx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBhZGRMaWdodChlZmZlY3Q6IFNlbGVjdGl2ZUJsb29tRWZmZWN0LCBsaWdodDogVEhSRUUuT2JqZWN0M0QpIHtcblx0XHRsaWdodC5sYXllcnMuZW5hYmxlKGVmZmVjdC5zZWxlY3Rpb24ubGF5ZXIpO1xuXHR9XG5cblx0cHJpdmF0ZSByZW1vdmVMaWdodChlZmZlY3Q6IFNlbGVjdGl2ZUJsb29tRWZmZWN0LCBsaWdodDogVEhSRUUuT2JqZWN0M0QpIHtcblx0XHRsaWdodC5sYXllcnMuZGlzYWJsZShlZmZlY3Quc2VsZWN0aW9uLmxheWVyKTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpSepia {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ SepiaEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpSepia, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpSepia, isStandalone: true, selector: \"ngtp-sepia\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpSepia, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-sepia',\n template: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9zZXBpYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFNBQVM7SUFJckI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQStDLENBQUMsQ0FBQztRQUN2RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FOVyxTQUFTO2tHQUFULFNBQVMsa1VBWFg7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQixTQUFTO2tCQWJyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFNlcGlhRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIFNlcGlhRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTZXBpYUVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1zZXBpYScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1zZXBpYS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1zZXBpYS1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwU2VwaWEge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxTZXBpYUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBTZXBpYUVmZmVjdCB9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpShockWave {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ShockWaveEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpShockWave, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpShockWave, isStandalone: true, selector: \"ngtp-shock-wave\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpShockWave, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-shock-wave',\n template: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvY2std2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3Nob2NrLXdhdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxhQUFhO0lBSXpCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFtRCxDQUFDLENBQUM7UUFDM0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7OEdBTlcsYUFBYTtrR0FBYixhQUFhLHVVQVhmOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsYUFBYTtrQkFiekIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFNob2NrV2F2ZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBTaG9ja1dhdmVFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFNob2NrV2F2ZUVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1zaG9jay13YXZlJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXNob2NrLXdhdmUtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3Qtc2hvY2std2F2ZS1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwU2hvY2tXYXZlIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8U2hvY2tXYXZlRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IFNob2NrV2F2ZUVmZmVjdCB9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SMAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpSMAA {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ SMAAEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpSMAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpSMAA, isStandalone: true, selector: \"ngtp-smaa\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpSMAA, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-smaa',\n template: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3NtYWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxRQUFRO0lBSXBCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE4QyxDQUFDLENBQUM7UUFDdEQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OEdBTlcsUUFBUTtrR0FBUixRQUFRLGlVQVhWOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsUUFBUTtrQkFicEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTTUFBRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIFNNQUFFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFNNQUFFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtc21hYScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1zTUFBLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXNNQUEtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFNNQUEge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxTTUFBRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IFNNQUFFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpTiltShift {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ TiltShiftEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpTiltShift, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpTiltShift, isStandalone: true, selector: \"ngtp-tilt-shift\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpTiltShift, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tilt-shift',\n template: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsdC1zaGlmdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3RpbHQtc2hpZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBa0J6RixNQUFNLE9BQU8sYUFBYTtJQUl6QjtRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBbUQsQ0FBQyxDQUFDO1FBQzNELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQU5XLGFBQWE7a0dBQWIsYUFBYSx3TUFGZCxDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLDRJQVZwRTs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSTFCLGFBQWE7a0JBZHpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7b0JBQ2pGLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2lCQUM5RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgVGlsdFNoaWZ0RWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgVGlsdFNoaWZ0RWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBUaWx0U2hpZnRFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtdGlsdC1zaGlmdCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC10aWx0LXNoaWZ0LWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXRpbHQtc2hpZnQtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zKHsgYmxlbmRGdW5jdGlvbjogQmxlbmRGdW5jdGlvbi5BREQgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwVGlsdFNoaWZ0IHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VGlsdFNoaWZ0RWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IFRpbHRTaGlmdEVmZmVjdCB9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst TiltShiftShader = {\n fragmentShader: /* language=glsl glsl */ `\n\n // original shader by Evan Wallace\n\n #define MAX_ITERATIONS 100\n\n uniform float blur;\n uniform float taper;\n uniform vec2 start;\n uniform vec2 end;\n uniform vec2 direction;\n uniform int samples;\n\n float random(vec3 scale, float seed) {\n /* use the fragment position for a different seed per-pixel */\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n }\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec4 color = vec4(0.0);\n float total = 0.0;\n vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);\n vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);\n float f_samples = float(samples);\n float half_samples = f_samples / 2.0;\n\n // use screen diagonal to normalize blur radii\n float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance\n float gradientRadius = taper * (maxScreenDistance);\n float blurRadius = blur * (maxScreenDistance / 16.0);\n\n /* randomize the lookup values to hide the fixed number of samples */\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;\n\n #pragma unroll_loop_start\n for (int i = 0; i <= MAX_ITERATIONS; i++) {\n if (i >= samples) { break; } // return early if over sample count\n float f_i = float(i);\n float s_i = -half_samples + f_i;\n float percent = (s_i + offset - 0.5) / half_samples;\n float weight = 1.0 - abs(percent);\n vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);\n /* switch to pre-multiplied alpha to correctly blur transparent images */\n sample_i.rgb *= sample_i.a;\n color += sample_i * weight;\n total += weight;\n }\n #pragma unroll_loop_end\n\n outputColor = color / total;\n\n /* switch back from pre-multiplied alpha */\n outputColor.rgb /= outputColor.a + 0.00001;\n }\n `,\n};\nexport class TiltShift2Effect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, blur = 0.15, // [0, 1], can go beyond 1 for extra\n taper = 0.5, // [0, 1], can go beyond 1 for extra\n start = [0.5, 0.0], // [0,1] percentage x,y of screenspace\n end = [0.5, 1.0], // [0,1] percentage x,y of screenspace\n samples = 10.0, // number of blur samples\n direction = [1, 1], // direction of blur\n } = {}) {\n super('TiltShiftEffect', TiltShiftShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map([\n ['blur', new THREE.Uniform(blur)],\n ['taper', new THREE.Uniform(taper)],\n ['start', new THREE.Uniform(start)],\n ['end', new THREE.Uniform(end)],\n ['samples', new THREE.Uniform(samples)],\n ['direction', new THREE.Uniform(direction)],\n ]),\n });\n }\n}\nextend({ TiltShift2Effect });\nexport class NgtpTiltShift2 {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpTiltShift2, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpTiltShift2, isStandalone: true, selector: \"ngtp-tilt-shift2\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpTiltShift2, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tilt-shift2',\n template: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsdC1zaGlmdC0yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvdGlsdC1zaGlmdC0yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFekYsTUFBTSxlQUFlLEdBQUc7SUFDdkIsY0FBYyxFQUFFLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdEckM7Q0FDSixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLE1BQU07SUFDM0MsWUFBWSxFQUNYLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUNwQyxJQUFJLEdBQUcsSUFBSSxFQUFFLG9DQUFvQztJQUNqRCxLQUFLLEdBQUcsR0FBRyxFQUFFLG9DQUFvQztJQUNqRCxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsc0NBQXNDO0lBQzFELEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxzQ0FBc0M7SUFDeEQsT0FBTyxHQUFHLElBQUksRUFBRSx5QkFBeUI7SUFDekMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLG9CQUFvQjtNQUN4QyxHQUFHLEVBQUU7UUFDTCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLGNBQWMsRUFBRTtZQUN4RCxhQUFhO1lBQ2IsVUFBVSxFQUFFLGVBQWUsQ0FBQyxXQUFXO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBMkM7Z0JBQzNELENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QyxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDM0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRDtBQUlELE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQWdCN0IsTUFBTSxPQUFPLGNBQWM7SUFkM0I7UUFlQyxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQW9ELENBQUMsQ0FBQztRQUM1RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ3REOzhHQUhZLGNBQWM7a0dBQWQsY0FBYyx5TUFGZixDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLDRJQVZ2RTs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSTFCLGNBQWM7a0JBZDFCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7b0JBQ2pGLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0LCBFZmZlY3RBdHRyaWJ1dGUgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlLCBwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5jb25zdCBUaWx0U2hpZnRTaGFkZXIgPSB7XG5cdGZyYWdtZW50U2hhZGVyOiAvKiBsYW5ndWFnZT1nbHNsIGdsc2wgKi8gYFxuXG4gICAgLy8gb3JpZ2luYWwgc2hhZGVyIGJ5IEV2YW4gV2FsbGFjZVxuXG4gICAgI2RlZmluZSBNQVhfSVRFUkFUSU9OUyAxMDBcblxuICAgIHVuaWZvcm0gZmxvYXQgYmx1cjtcbiAgICB1bmlmb3JtIGZsb2F0IHRhcGVyO1xuICAgIHVuaWZvcm0gdmVjMiBzdGFydDtcbiAgICB1bmlmb3JtIHZlYzIgZW5kO1xuICAgIHVuaWZvcm0gdmVjMiBkaXJlY3Rpb247XG4gICAgdW5pZm9ybSBpbnQgc2FtcGxlcztcblxuICAgIGZsb2F0IHJhbmRvbSh2ZWMzIHNjYWxlLCBmbG9hdCBzZWVkKSB7XG4gICAgICAgIC8qIHVzZSB0aGUgZnJhZ21lbnQgcG9zaXRpb24gZm9yIGEgZGlmZmVyZW50IHNlZWQgcGVyLXBpeGVsICovXG4gICAgICAgIHJldHVybiBmcmFjdChzaW4oZG90KGdsX0ZyYWdDb29yZC54eXogKyBzZWVkLCBzY2FsZSkpICogNDM3NTguNTQ1MyArIHNlZWQpO1xuICAgIH1cblxuICAgIHZvaWQgbWFpbkltYWdlKGNvbnN0IGluIHZlYzQgaW5wdXRDb2xvciwgY29uc3QgaW4gdmVjMiB1diwgb3V0IHZlYzQgb3V0cHV0Q29sb3IpIHtcbiAgICAgICAgdmVjNCBjb2xvciA9IHZlYzQoMC4wKTtcbiAgICAgICAgZmxvYXQgdG90YWwgPSAwLjA7XG4gICAgICAgIHZlYzIgc3RhcnRQaXhlbCA9IHZlYzIoc3RhcnQueCAqIHJlc29sdXRpb24ueCwgc3RhcnQueSAqIHJlc29sdXRpb24ueSk7XG4gICAgICAgIHZlYzIgZW5kUGl4ZWwgPSB2ZWMyKGVuZC54ICogcmVzb2x1dGlvbi54LCBlbmQueSAqIHJlc29sdXRpb24ueSk7XG4gICAgICAgIGZsb2F0IGZfc2FtcGxlcyA9IGZsb2F0KHNhbXBsZXMpO1xuICAgICAgICBmbG9hdCBoYWxmX3NhbXBsZXMgPSBmX3NhbXBsZXMgLyAyLjA7XG5cbiAgICAgICAgLy8gdXNlIHNjcmVlbiBkaWFnb25hbCB0byBub3JtYWxpemUgYmx1ciByYWRpaVxuICAgICAgICBmbG9hdCBtYXhTY3JlZW5EaXN0YW5jZSA9IGRpc3RhbmNlKHZlYzIoMC4wKSwgcmVzb2x1dGlvbik7IC8vIGRpYWdvbmFsIGRpc3RhbmNlXG4gICAgICAgIGZsb2F0IGdyYWRpZW50UmFkaXVzID0gdGFwZXIgKiAobWF4U2NyZWVuRGlzdGFuY2UpO1xuICAgICAgICBmbG9hdCBibHVyUmFkaXVzID0gYmx1ciAqIChtYXhTY3JlZW5EaXN0YW5jZSAvIDE2LjApO1xuXG4gICAgICAgIC8qIHJhbmRvbWl6ZSB0aGUgbG9va3VwIHZhbHVlcyB0byBoaWRlIHRoZSBmaXhlZCBudW1iZXIgb2Ygc2FtcGxlcyAqL1xuICAgICAgICBmbG9hdCBvZmZzZXQgPSByYW5kb20odmVjMygxMi45ODk4LCA3OC4yMzMsIDE1MS43MTgyKSwgMC4wKTtcbiAgICAgICAgdmVjMiBub3JtYWwgPSBub3JtYWxpemUodmVjMihzdGFydFBpeGVsLnkgLSBlbmRQaXhlbC55LCBlbmRQaXhlbC54IC0gc3RhcnRQaXhlbC54KSk7XG4gICAgICAgIGZsb2F0IHJhZGl1cyA9IHNtb290aHN0ZXAoMC4wLCAxLjAsIGFicyhkb3QodXYgKiByZXNvbHV0aW9uIC0gc3RhcnRQaXhlbCwgbm9ybWFsKSkgLyBncmFkaWVudFJhZGl1cykgKiBibHVyUmFkaXVzO1xuXG4gICAgICAgICNwcmFnbWEgdW5yb2xsX2xvb3Bfc3RhcnRcbiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gTUFYX0lURVJBVElPTlM7IGkrKykge1xuICAgICAgICAgICAgaWYgKGkgPj0gc2FtcGxlcykgeyBicmVhazsgfSAvLyByZXR1cm4gZWFybHkgaWYgb3ZlciBzYW1wbGUgY291bnRcbiAgICAgICAgICAgIGZsb2F0IGZfaSA9IGZsb2F0KGkpO1xuICAgICAgICAgICAgZmxvYXQgc19pID0gLWhhbGZfc2FtcGxlcyArIGZfaTtcbiAgICAgICAgICAgIGZsb2F0IHBlcmNlbnQgPSAoc19pICsgb2Zmc2V0IC0gMC41KSAvIGhhbGZfc2FtcGxlcztcbiAgICAgICAgICAgIGZsb2F0IHdlaWdodCA9IDEuMCAtIGFicyhwZXJjZW50KTtcbiAgICAgICAgICAgIHZlYzQgc2FtcGxlX2kgPSB0ZXh0dXJlMkQoaW5wdXRCdWZmZXIsIHV2ICsgbm9ybWFsaXplKGRpcmVjdGlvbikgLyByZXNvbHV0aW9uICogcGVyY2VudCAqIHJhZGl1cyk7XG4gICAgICAgICAgICAvKiBzd2l0Y2ggdG8gcHJlLW11bHRpcGxpZWQgYWxwaGEgdG8gY29ycmVjdGx5IGJsdXIgdHJhbnNwYXJlbnQgaW1hZ2VzICovXG4gICAgICAgICAgICBzYW1wbGVfaS5yZ2IgKj0gc2FtcGxlX2kuYTtcbiAgICAgICAgICAgIGNvbG9yICs9IHNhbXBsZV9pICogd2VpZ2h0O1xuICAgICAgICAgICAgdG90YWwgKz0gd2VpZ2h0O1xuICAgICAgICB9XG4gICAgICAgICNwcmFnbWEgdW5yb2xsX2xvb3BfZW5kXG5cbiAgICAgICAgb3V0cHV0Q29sb3IgPSBjb2xvciAvIHRvdGFsO1xuXG4gICAgICAgIC8qIHN3aXRjaCBiYWNrIGZyb20gcHJlLW11bHRpcGxpZWQgYWxwaGEgKi9cbiAgICAgICAgb3V0cHV0Q29sb3IucmdiIC89IG91dHB1dENvbG9yLmEgKyAwLjAwMDAxO1xuICAgIH1cbiAgICBgLFxufTtcblxuZXhwb3J0IGNsYXNzIFRpbHRTaGlmdDJFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuXHRjb25zdHJ1Y3Rvcih7XG5cdFx0YmxlbmRGdW5jdGlvbiA9IEJsZW5kRnVuY3Rpb24uTk9STUFMLFxuXHRcdGJsdXIgPSAwLjE1LCAvLyBbMCwgMV0sIGNhbiBnbyBiZXlvbmQgMSBmb3IgZXh0cmFcblx0XHR0YXBlciA9IDAuNSwgLy8gWzAsIDFdLCBjYW4gZ28gYmV5b25kIDEgZm9yIGV4dHJhXG5cdFx0c3RhcnQgPSBbMC41LCAwLjBdLCAvLyBbMCwxXSBwZXJjZW50YWdlIHgseSBvZiBzY3JlZW5zcGFjZVxuXHRcdGVuZCA9IFswLjUsIDEuMF0sIC8vIFswLDFdIHBlcmNlbnRhZ2UgeCx5IG9mIHNjcmVlbnNwYWNlXG5cdFx0c2FtcGxlcyA9IDEwLjAsIC8vIG51bWJlciBvZiBibHVyIHNhbXBsZXNcblx0XHRkaXJlY3Rpb24gPSBbMSwgMV0sIC8vIGRpcmVjdGlvbiBvZiBibHVyXG5cdH0gPSB7fSkge1xuXHRcdHN1cGVyKCdUaWx0U2hpZnRFZmZlY3QnLCBUaWx0U2hpZnRTaGFkZXIuZnJhZ21lbnRTaGFkZXIsIHtcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRhdHRyaWJ1dGVzOiBFZmZlY3RBdHRyaWJ1dGUuQ09OVk9MVVRJT04sXG5cdFx0XHR1bmlmb3JtczogbmV3IE1hcDxzdHJpbmcsIFRIUkVFLlVuaWZvcm08bnVtYmVyIHwgbnVtYmVyW10+PihbXG5cdFx0XHRcdFsnYmx1cicsIG5ldyBUSFJFRS5Vbmlmb3JtKGJsdXIpXSxcblx0XHRcdFx0Wyd0YXBlcicsIG5ldyBUSFJFRS5Vbmlmb3JtKHRhcGVyKV0sXG5cdFx0XHRcdFsnc3RhcnQnLCBuZXcgVEhSRUUuVW5pZm9ybShzdGFydCldLFxuXHRcdFx0XHRbJ2VuZCcsIG5ldyBUSFJFRS5Vbmlmb3JtKGVuZCldLFxuXHRcdFx0XHRbJ3NhbXBsZXMnLCBuZXcgVEhSRUUuVW5pZm9ybShzYW1wbGVzKV0sXG5cdFx0XHRcdFsnZGlyZWN0aW9uJywgbmV3IFRIUkVFLlVuaWZvcm0oZGlyZWN0aW9uKV0sXG5cdFx0XHRdKSxcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgdHlwZSBUaWx0U2hpZnQyRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBUaWx0U2hpZnQyRWZmZWN0PlswXT4+O1xuXG5leHRlbmQoeyBUaWx0U2hpZnQyRWZmZWN0IH0pO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXRpbHQtc2hpZnQyJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXRpbHQtc2hpZnQyLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXRpbHQtc2hpZnQyLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uTk9STUFMIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFRpbHRTaGlmdDIge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxUaWx0U2hpZnQyRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ToneMappingEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpToneMapping {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ToneMappingEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpToneMapping, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpToneMapping, isStandalone: true, selector: \"ngtp-tone-mapping\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tone-mapping-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpToneMapping, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tone-mapping',\n template: `\n\t\t<ngt-tone-mapping-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uZS1tYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvdG9uZS1tYXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxlQUFlO0lBSTNCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFxRCxDQUFDLENBQUM7UUFDN0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs4R0FOVyxlQUFlO2tHQUFmLGVBQWUseVVBWGpCOzs7OztFQUtULDREQUNTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFLMUIsZUFBZTtrQkFiM0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFRvbmVNYXBwaW5nRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIFRvbmVNYXBwaW5nRWZmZWN0T3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgVG9uZU1hcHBpbmdFZmZlY3Q+WzBdPjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC10b25lLW1hcHBpbmcnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtdG9uZS1tYXBwaW5nLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXRvbmUtbWFwcGluZy1lZmZlY3Q+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwVG9uZU1hcHBpbmcge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxUb25lTWFwcGluZ0VmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBUb25lTWFwcGluZ0VmZmVjdCB9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpVignette {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ VignetteEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpVignette, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpVignette, isStandalone: true, selector: \"ngtp-vignette\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpVignette, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-vignette',\n template: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlnbmV0dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy92aWduZXR0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFlBQVk7SUFJeEI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQWtELENBQUMsQ0FBQztRQUMxRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs4R0FOVyxZQUFZO2tHQUFaLFlBQVkscVVBWGQ7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQixZQUFZO2tCQWJ4QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFZpZ25ldHRlRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIFZpZ25ldHRlRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBWaWduZXR0ZUVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC12aWduZXR0ZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC12aWduZXR0ZS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC12aWduZXR0ZS1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwVmlnbmV0dGUge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxWaWduZXR0ZUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBWaWduZXR0ZUVmZmVjdCB9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst WaterShader = {\n fragmentShader: /* language=glsl glsl */ `\n uniform float factor;\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 vUv = uv;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = vUv.y * frequency + time * .7;\n float y = vUv.x * frequency + time * .3;\n vUv.x += cos(x+y) * amplitude * cos(y);\n vUv.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(inputBuffer, vUv);\n outputColor = rgba;\n }`,\n};\nexport class WaterEffect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, factor = 0 } = {}) {\n super('WaterEffect', WaterShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map([['factor', new THREE.Uniform(factor)]]),\n });\n }\n}\nexport class NgtpWater {\n constructor() {\n this.options = input({});\n this.effect = inject(NgtpEffect, { host: true });\n extend({ WaterEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpWater, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: NgtpWater, isStandalone: true, selector: \"ngtp-water\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: NgtpWater, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-water',\n template: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy93YXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXpGLE1BQU0sV0FBVyxHQUFHO0lBQ25CLGNBQWMsRUFBRSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0lBWXRDO0NBQ0gsQ0FBQztBQUVGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUU7UUFDcEUsS0FBSyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsY0FBYyxFQUFFO1lBQ2hELGFBQWE7WUFDYixVQUFVLEVBQUUsZUFBZSxDQUFDLFdBQVc7WUFDdkMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUEyQyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEcsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNEO0FBa0JELE1BQU0sT0FBTyxTQUFTO0lBSXJCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxDQUFDLENBQUM7UUFDdkQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBTlcsU0FBUztrR0FBVCxTQUFTLG1NQUZWLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsNElBVnZFOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFJMUIsU0FBUztrQkFkckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7b0JBQ2pGLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0LCBFZmZlY3RBdHRyaWJ1dGUgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlLCBwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5jb25zdCBXYXRlclNoYWRlciA9IHtcblx0ZnJhZ21lbnRTaGFkZXI6IC8qIGxhbmd1YWdlPWdsc2wgZ2xzbCAqLyBgXG4gIHVuaWZvcm0gZmxvYXQgZmFjdG9yO1xuICB2b2lkIG1haW5JbWFnZShjb25zdCBpbiB2ZWM0IGlucHV0Q29sb3IsIGNvbnN0IGluIHZlYzIgdXYsIG91dCB2ZWM0IG91dHB1dENvbG9yKSB7XG4gICAgdmVjMiB2VXYgPSB1djtcbiAgICBmbG9hdCBmcmVxdWVuY3kgPSA2LjAgKiBmYWN0b3I7XG4gICAgZmxvYXQgYW1wbGl0dWRlID0gMC4wMTUgKiBmYWN0b3I7XG4gICAgZmxvYXQgeCA9IHZVdi55ICogZnJlcXVlbmN5ICsgdGltZSAqIC43O1xuICAgIGZsb2F0IHkgPSB2VXYueCAqIGZyZXF1ZW5jeSArIHRpbWUgKiAuMztcbiAgICB2VXYueCArPSBjb3MoeCt5KSAqIGFtcGxpdHVkZSAqIGNvcyh5KTtcbiAgICB2VXYueSArPSBzaW4oeC15KSAqIGFtcGxpdHVkZSAqIGNvcyh5KTtcbiAgICB2ZWM0IHJnYmEgPSB0ZXh0dXJlMkQoaW5wdXRCdWZmZXIsIHZVdik7XG4gICAgb3V0cHV0Q29sb3IgPSByZ2JhO1xuICB9YCxcbn07XG5cbmV4cG9ydCBjbGFzcyBXYXRlckVmZmVjdCBleHRlbmRzIEVmZmVjdCB7XG5cdGNvbnN0cnVjdG9yKHsgYmxlbmRGdW5jdGlvbiA9IEJsZW5kRnVuY3Rpb24uTk9STUFMLCBmYWN0b3IgPSAwIH0gPSB7fSkge1xuXHRcdHN1cGVyKCdXYXRlckVmZmVjdCcsIFdhdGVyU2hhZGVyLmZyYWdtZW50U2hhZGVyLCB7XG5cdFx0XHRibGVuZEZ1bmN0aW9uLFxuXHRcdFx0YXR0cmlidXRlczogRWZmZWN0QXR0cmlidXRlLkNPTlZPTFVUSU9OLFxuXHRcdFx0dW5pZm9ybXM6IG5ldyBNYXA8c3RyaW5nLCBUSFJFRS5Vbmlmb3JtPG51bWJlciB8IG51bWJlcltdPj4oW1snZmFjdG9yJywgbmV3IFRIUkVFLlVuaWZvcm0oZmFjdG9yKV1dKSxcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgdHlwZSBXYXRlckVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgV2F0ZXJFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtd2F0ZXInLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtd2F0ZXItZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3Qtd2F0ZXItZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zKHsgYmxlbmRGdW5jdGlvbjogQmxlbmRGdW5jdGlvbi5OT1JNQUwgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwV2F0ZXIge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxXYXRlckVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBXYXRlckVmZmVjdCB9KTtcblx0fVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1wb3N0cHJvY2Vzc2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2FuZ3VsYXItdGhyZWUtcG9zdHByb2Nlc3NpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["defaultOptions","i1.NgtpEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-three-postprocessing.mjs","sources":["../tmp-esm2022/lib/effect.js","../tmp-esm2022/lib/effect-composer.js","../tmp-esm2022/lib/effects/ascii.js","../tmp-esm2022/lib/effects/bloom.js","../tmp-esm2022/lib/effects/brightness-contrast.js","../tmp-esm2022/lib/effects/chromatic-abberation.js","../tmp-esm2022/lib/effects/color-average.js","../tmp-esm2022/lib/effects/color-depth.js","../tmp-esm2022/lib/effects/depth.js","../tmp-esm2022/lib/effects/depth-of-field.js","../tmp-esm2022/lib/effects/dot-screen.js","../tmp-esm2022/lib/effects/fxaa.js","../tmp-esm2022/lib/effects/glitch.js","../tmp-esm2022/lib/effects/god-rays.js","../tmp-esm2022/lib/effects/grid.js","../tmp-esm2022/lib/effects/hue-saturation.js","../tmp-esm2022/lib/effects/lens-flare.js","../tmp-esm2022/lib/effects/lut.js","../tmp-esm2022/lib/effects/noise.js","../tmp-esm2022/lib/effects/outline.js","../tmp-esm2022/lib/effects/pixelation.js","../tmp-esm2022/lib/effects/scanline.js","../tmp-esm2022/lib/effects/selective-bloom.js","../tmp-esm2022/lib/effects/sepia.js","../tmp-esm2022/lib/effects/shock-wave.js","../tmp-esm2022/lib/effects/smaa.js","../tmp-esm2022/lib/effects/tilt-shift.js","../tmp-esm2022/lib/effects/tilt-shift-2.js","../tmp-esm2022/lib/effects/tone-mapping.js","../tmp-esm2022/lib/effects/vignette.js","../tmp-esm2022/lib/effects/water.js","../tmp-esm2022/angular-three-postprocessing.js"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, inject, input } from '@angular/core';\nimport { injectStore } from 'angular-three';\nimport { createNoopInjectionToken } from 'ngxtension/create-injection-token';\nimport * as i0 from \"@angular/core\";\nexport const [injectDefaultEffectOptions, provideDefaultEffectOptions] = createNoopInjectionToken('Default Effect options');\nexport class NgtpEffectBlendMode {\n constructor() {\n this.effect = inject(NgtpEffect, { optional: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffectBlendMode, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.7\", type: NgtpEffectBlendMode, isStandalone: true, selector: \"ngtp-effect-blend-mode\", ngImport: i0, template: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffectBlendMode, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-effect-blend-mode',\n template: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\nexport class NgtpEffect {\n constructor() {\n this.defaultEffectOptions = injectDefaultEffectOptions({ optional: true });\n this.blendFunction = input(this.defaultEffectOptions?.blendFunction, ...(ngDevMode ? [{ debugName: \"blendFunction\" }] : []));\n this.opacity = input(this.defaultEffectOptions?.opacity, ...(ngDevMode ? [{ debugName: \"opacity\" }] : []));\n this.store = injectStore();\n this.camera = this.store.camera;\n this.invalidate = this.store.invalidate;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpEffect, isStandalone: true, inputs: { blendFunction: { classPropertyName: \"blendFunction\", publicName: \"blendFunction\", isSignal: true, isRequired: false, transformFunction: null }, opacity: { classPropertyName: \"opacity\", publicName: \"opacity\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffect, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRzdFLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsMkJBQTJCLENBQUMsR0FBRyx3QkFBd0IsQ0FHOUYsd0JBQXdCLENBQUMsQ0FBQztBQWE3QixNQUFNLE9BQU8sbUJBQW1CO0lBWGhDO1FBWUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNoRDs4R0FGWSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrRkFUckI7Ozs7O0VBS1Q7OzJGQUlXLG1CQUFtQjtrQkFYL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQzs7QUFNRCxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUVDLHlCQUFvQixHQUFHLDBCQUEwQixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFdEUsa0JBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLGFBQWEseURBQUMsQ0FBQztRQUNoRSxZQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLG1EQUFDLENBQUM7UUFFNUMsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixlQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7S0FDbkM7OEdBVFksVUFBVTtrR0FBVixVQUFVOzsyRkFBVixVQUFVO2tCQUR0QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlTm9vcEluamVjdGlvblRva2VuIH0gZnJvbSAnbmd4dGVuc2lvbi9jcmVhdGUtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24gfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0RGVmYXVsdEVmZmVjdE9wdGlvbnMsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9uc10gPSBjcmVhdGVOb29wSW5qZWN0aW9uVG9rZW48e1xuXHRibGVuZEZ1bmN0aW9uPzogQmxlbmRGdW5jdGlvbjtcblx0b3BhY2l0eT86IG51bWJlcjtcbn0+KCdEZWZhdWx0IEVmZmVjdCBvcHRpb25zJyk7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZWZmZWN0LWJsZW5kLW1vZGUnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdEBpZiAoZWZmZWN0KSB7XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJlZmZlY3QuYmxlbmRGdW5jdGlvbigpXCIgYXR0YWNoPVwiYmxlbmRNb2RlLmJsZW5kRnVuY3Rpb25cIiAvPlxuXHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiZWZmZWN0Lm9wYWNpdHkoKVwiIGF0dGFjaD1cImJsZW5kTW9kZS5vcGFjaXR5LnZhbHVlXCIgLz5cblx0XHR9XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBFZmZlY3RCbGVuZE1vZGUge1xuXHRlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdCB7XG5cdGRlZmF1bHRFZmZlY3RPcHRpb25zID0gaW5qZWN0RGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuXHRibGVuZEZ1bmN0aW9uID0gaW5wdXQodGhpcy5kZWZhdWx0RWZmZWN0T3B0aW9ucz8uYmxlbmRGdW5jdGlvbik7XG5cdG9wYWNpdHkgPSBpbnB1dCh0aGlzLmRlZmF1bHRFZmZlY3RPcHRpb25zPy5vcGFjaXR5KTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0Y2FtZXJhID0gdGhpcy5zdG9yZS5jYW1lcmE7XG5cdGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLmludmFsaWRhdGU7XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input, viewChild, } from '@angular/core';\nimport { beforeRender, extend, getInstanceState, injectStore, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { DepthDownsamplingPass, Effect, EffectAttribute, EffectComposer, EffectPass, NormalPass, Pass, RenderPass, } from 'postprocessing';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n enabled: true,\n renderPriority: 1,\n autoClear: true,\n multisampling: 8,\n frameBufferType: THREE.HalfFloatType,\n};\nfunction isConvolution(effect) {\n return (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION;\n}\nexport class NgtpEffectComposer {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.store = injectStore();\n this.depthBuffer = pick(this.options, 'depthBuffer');\n this.stencilBuffer = pick(this.options, 'stencilBuffer');\n this.multisampling = pick(this.options, 'multisampling');\n this.frameBufferType = pick(this.options, 'frameBufferType');\n this.enableNormalPass = pick(this.options, 'enableNormalPass');\n this.resolutionScale = pick(this.options, 'resolutionScale');\n this.enabled = pick(this.options, 'enabled');\n this.renderPriority = pick(this.options, 'renderPriority');\n this.scene = computed(() => this.options().scene ?? this.store.scene(), ...(ngDevMode ? [{ debugName: \"scene\" }] : []));\n this.camera = computed(() => this.options().camera ?? this.store.camera(), ...(ngDevMode ? [{ debugName: \"camera\" }] : []));\n this.groupRef = viewChild.required('group');\n this.priority = computed(() => {\n const enabled = this.enabled();\n if (!enabled)\n return 0;\n return this.renderPriority();\n }, ...(ngDevMode ? [{ debugName: \"priority\" }] : []));\n this.composerData = computed(() => {\n const webGL2Available = isWebGL2Available();\n const [gl, scene, camera, depthBuffer, stencilBuffer, multisampling, frameBufferType, enableNormalPass, resolutionScale,] = [\n this.store.gl(),\n this.scene(),\n this.camera(),\n this.depthBuffer(),\n this.stencilBuffer(),\n this.multisampling(),\n this.frameBufferType(),\n this.enableNormalPass(),\n this.resolutionScale(),\n ];\n // initialize composer\n const composer = new EffectComposer(gl, {\n depthBuffer,\n stencilBuffer,\n multisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n frameBufferType,\n });\n // add render pass\n composer.addPass(new RenderPass(scene, camera));\n // create normal pass\n let downSamplingPass = null;\n let normalPass = null;\n if (enableNormalPass) {\n normalPass = new NormalPass(scene, camera);\n normalPass.enabled = false;\n composer.addPass(normalPass);\n if (resolutionScale !== undefined && webGL2Available) {\n downSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n downSamplingPass.enabled = false;\n composer.addPass(downSamplingPass);\n }\n }\n return { composer, normalPass, downSamplingPass };\n }, ...(ngDevMode ? [{ debugName: \"composerData\" }] : []));\n this.effectComposer = pick(this.composerData, 'composer');\n extend({ Group });\n // NOTE: Disable tone mapping because threejs disallows tonemapping on render targets\n effect((onCleanup) => {\n const gl = this.store.gl();\n const currentTonemapping = gl.toneMapping;\n gl.toneMapping = THREE.NoToneMapping;\n onCleanup(() => {\n gl.toneMapping = currentTonemapping;\n });\n });\n effect(() => {\n const [composer, width, height] = [\n this.effectComposer(),\n this.store.size.width(),\n this.store.size.height(),\n ];\n if (composer) {\n composer.setSize(width, height);\n }\n });\n effect((onCleanup) => {\n const [group, { composer, normalPass, downSamplingPass }, camera] = [\n this.groupRef().nativeElement,\n this.composerData(),\n this.camera(),\n ];\n const passes = [];\n if (composer) {\n const instanceState = getInstanceState(group);\n if (!instanceState)\n return;\n const children = instanceState.nonObjects();\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof Effect) {\n const effects = [child];\n if (!isConvolution(child)) {\n let next = null;\n while ((next = children[i + 1]) instanceof Effect) {\n if (isConvolution(next))\n break;\n effects.push(next);\n i++;\n }\n }\n const pass = new EffectPass(camera, ...effects);\n passes.push(pass);\n }\n else if (child instanceof Pass) {\n passes.push(child);\n }\n }\n for (const pass of passes) {\n composer.addPass(pass);\n }\n if (normalPass)\n normalPass.enabled = true;\n if (downSamplingPass)\n downSamplingPass.enabled = true;\n }\n onCleanup(() => {\n for (const pass of passes)\n composer?.removePass(pass);\n if (normalPass)\n normalPass.enabled = false;\n if (downSamplingPass)\n downSamplingPass.enabled = false;\n });\n });\n beforeRender(({ delta }) => {\n const [composer, { enabled, autoClear, stencilBuffer }, gl] = [\n this.effectComposer(),\n this.options(),\n this.store.snapshot.gl,\n ];\n if (enabled) {\n const currentAutoClear = gl.autoClear;\n gl.autoClear = autoClear;\n if (stencilBuffer && !autoClear)\n gl.clearStencil();\n composer.render(delta);\n gl.autoClear = currentAutoClear;\n }\n }, { priority: this.priority });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffectComposer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.1.7\", type: NgtpEffectComposer, isStandalone: true, selector: \"ngtp-effect-composer\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: \"groupRef\", first: true, predicate: [\"group\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffectComposer, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-effect-composer',\n template: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxFQUNOLGVBQWUsRUFDZixjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBQ0osVUFBVSxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBaUJqRCxNQUFNLGNBQWMsR0FBOEI7SUFDakQsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsQ0FBQztJQUNqQixTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGVBQWUsRUFBRSxLQUFLLENBQUMsYUFBYTtDQUNwQyxDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNwQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxlQUFlLENBQUMsV0FBVyxDQUFDO0FBQy9GLENBQUM7QUFZRCxNQUFNLE9BQU8sa0JBQWtCO0lBK0U5QjtRQTlFQSxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsMkNBQUksU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBeEMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUMsQ0FBQztRQUVwRSxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFFdEIsZ0JBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3BELGtCQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDcEQsb0JBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hELHFCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDMUQsb0JBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hELFlBQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4QyxtQkFBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFOUQsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLGlEQUFDLENBQUM7UUFDbkUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLGtEQUFDLENBQUM7UUFFOUQsYUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQTBCLE9BQU8sQ0FBQyxDQUFDO1FBRWhFLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFPLENBQUMsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM5QixDQUFDLG9EQUFDLENBQUM7UUFFSyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQztZQUM1QyxNQUFNLENBQ0wsRUFBRSxFQUNGLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLGFBQWEsRUFDYixhQUFhLEVBQ2IsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsR0FBRztnQkFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNaLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFO2FBQ3RCLENBQUM7WUFFRixzQkFBc0I7WUFDdEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsRUFBRSxFQUFFO2dCQUN2QyxXQUFXO2dCQUNYLGFBQWE7Z0JBQ2IsYUFBYSxFQUFFLGFBQWEsR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZFLGVBQWU7YUFDZixDQUFDLENBQUM7WUFFSCxrQkFBa0I7WUFDbEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUVoRCxxQkFBcUI7WUFDckIsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDNUIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDdEIsVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDM0MsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQzNCLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdCLElBQUksZUFBZSxLQUFLLFNBQVMsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDdEQsZ0JBQWdCLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7b0JBQ3BHLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ2pDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztZQUNGLENBQUM7WUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25ELENBQUMsd0RBQUMsQ0FBQztRQUVILG1CQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFHcEQsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVsQixxRkFBcUY7UUFDckYsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQixNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7WUFDMUMsRUFBRSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQ3JDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsRUFBRSxDQUFDLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHO2dCQUNqQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTthQUN4QixDQUFDO1lBQ0YsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDZCxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHO2dCQUNuRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYTtnQkFDN0IsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRTthQUNiLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7WUFFMUIsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDZCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLGFBQWE7b0JBQUUsT0FBTztnQkFFM0IsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUMxQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzFCLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRSxDQUFDO3dCQUM3QixNQUFNLE9BQU8sR0FBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUVsQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7NEJBQzNCLElBQUksSUFBSSxHQUFZLElBQUksQ0FBQzs0QkFDekIsT0FBTyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksTUFBTSxFQUFFLENBQUM7Z0NBQ25ELElBQUksYUFBYSxDQUFDLElBQUksQ0FBQztvQ0FBRSxNQUFNO2dDQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQWMsQ0FBQyxDQUFDO2dDQUM3QixDQUFDLEVBQUUsQ0FBQzs0QkFDTCxDQUFDO3dCQUNGLENBQUM7d0JBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7d0JBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25CLENBQUM7eUJBQU0sSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFLENBQUM7d0JBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BCLENBQUM7Z0JBQ0YsQ0FBQztnQkFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUMzQixRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4QixDQUFDO2dCQUVELElBQUksVUFBVTtvQkFBRSxVQUFVLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDMUMsSUFBSSxnQkFBZ0I7b0JBQUUsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUN2RCxDQUFDO1lBRUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU07b0JBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxVQUFVO29CQUFFLFVBQVUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUMzQyxJQUFJLGdCQUFnQjtvQkFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxZQUFZLENBQ1gsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDYixNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRztnQkFDN0QsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDckIsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2FBQ3RCLENBQUM7WUFFRixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztnQkFDdEMsRUFBRSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7Z0JBQ3pCLElBQUksYUFBYSxJQUFJLENBQUMsU0FBUztvQkFBRSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ25ELFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZCLEVBQUUsQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7WUFDakMsQ0FBQztRQUNGLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQzNCLENBQUM7SUFDSCxDQUFDOzhHQTNLVyxrQkFBa0I7a0dBQWxCLGtCQUFrQiw2VUFScEI7Ozs7RUFJVDs7MkZBSVcsa0JBQWtCO2tCQVY5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRjb21wdXRlZCxcblx0ZWZmZWN0LFxuXHRpbnB1dCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGJlZm9yZVJlbmRlciwgZXh0ZW5kLCBnZXRJbnN0YW5jZVN0YXRlLCBpbmplY3RTdG9yZSwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHtcblx0RGVwdGhEb3duc2FtcGxpbmdQYXNzLFxuXHRFZmZlY3QsXG5cdEVmZmVjdEF0dHJpYnV0ZSxcblx0RWZmZWN0Q29tcG9zZXIsXG5cdEVmZmVjdFBhc3MsXG5cdE5vcm1hbFBhc3MsXG5cdFBhc3MsXG5cdFJlbmRlclBhc3MsXG59IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgaXNXZWJHTDJBdmFpbGFibGUgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHBFZmZlY3RDb21wb3Nlck9wdGlvbnMge1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHRkZXB0aEJ1ZmZlcj86IGJvb2xlYW47XG5cdC8qKiBPbmx5IHVzZWQgZm9yIFNTR0kgY3VycmVudGx5LCBsZWF2ZSBpdCBkaXNhYmxlZCBmb3IgZXZlcnl0aGluZyBlbHNlIHVubGVzcyBpdCdzIG5lZWRlZCAqL1xuXHRlbmFibGVOb3JtYWxQYXNzPzogYm9vbGVhbjtcblx0c3RlbmNpbEJ1ZmZlcj86IGJvb2xlYW47XG5cdGF1dG9DbGVhcjogYm9vbGVhbjtcblx0cmVzb2x1dGlvblNjYWxlPzogbnVtYmVyO1xuXHRtdWx0aXNhbXBsaW5nOiBudW1iZXI7XG5cdGZyYW1lQnVmZmVyVHlwZTogVEhSRUUuVGV4dHVyZURhdGFUeXBlO1xuXHRyZW5kZXJQcmlvcml0eTogbnVtYmVyO1xuXHRjYW1lcmE/OiBUSFJFRS5DYW1lcmE7XG5cdHNjZW5lPzogVEhSRUUuU2NlbmU7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RwRWZmZWN0Q29tcG9zZXJPcHRpb25zID0ge1xuXHRlbmFibGVkOiB0cnVlLFxuXHRyZW5kZXJQcmlvcml0eTogMSxcblx0YXV0b0NsZWFyOiB0cnVlLFxuXHRtdWx0aXNhbXBsaW5nOiA4LFxuXHRmcmFtZUJ1ZmZlclR5cGU6IFRIUkVFLkhhbGZGbG9hdFR5cGUsXG59O1xuXG5mdW5jdGlvbiBpc0NvbnZvbHV0aW9uKGVmZmVjdDogRWZmZWN0KSB7XG5cdHJldHVybiAoZWZmZWN0LmdldEF0dHJpYnV0ZXMoKSAmIEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTikgPT09IEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTjtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1lZmZlY3QtY29tcG9zZXInLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgI2dyb3VwPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdENvbXBvc2VyIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXG5cdHByaXZhdGUgZGVwdGhCdWZmZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RlcHRoQnVmZmVyJyk7XG5cdHByaXZhdGUgc3RlbmNpbEJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3RlbmNpbEJ1ZmZlcicpO1xuXHRwcml2YXRlIG11bHRpc2FtcGxpbmcgPSBwaWNrKHRoaXMub3B0aW9ucywgJ211bHRpc2FtcGxpbmcnKTtcblx0cHJpdmF0ZSBmcmFtZUJ1ZmZlclR5cGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZyYW1lQnVmZmVyVHlwZScpO1xuXHRwcml2YXRlIGVuYWJsZU5vcm1hbFBhc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VuYWJsZU5vcm1hbFBhc3MnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uU2NhbGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25TY2FsZScpO1xuXHRwcml2YXRlIGVuYWJsZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VuYWJsZWQnKTtcblx0cHJpdmF0ZSByZW5kZXJQcmlvcml0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVuZGVyUHJpb3JpdHknKTtcblxuXHRzY2VuZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLnNjZW5lID8/IHRoaXMuc3RvcmUuc2NlbmUoKSk7XG5cdGNhbWVyYSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmNhbWVyYSA/PyB0aGlzLnN0b3JlLmNhbWVyYSgpKTtcblxuXHRwcml2YXRlIGdyb3VwUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8VEhSRUUuR3JvdXA+PignZ3JvdXAnKTtcblxuXHRwcml2YXRlIHByaW9yaXR5ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGVuYWJsZWQgPSB0aGlzLmVuYWJsZWQoKTtcblx0XHRpZiAoIWVuYWJsZWQpIHJldHVybiAwO1xuXHRcdHJldHVybiB0aGlzLnJlbmRlclByaW9yaXR5KCk7XG5cdH0pO1xuXG5cdHByaXZhdGUgY29tcG9zZXJEYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHdlYkdMMkF2YWlsYWJsZSA9IGlzV2ViR0wyQXZhaWxhYmxlKCk7XG5cdFx0Y29uc3QgW1xuXHRcdFx0Z2wsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmcsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0XHRlbmFibGVOb3JtYWxQYXNzLFxuXHRcdFx0cmVzb2x1dGlvblNjYWxlLFxuXHRcdF0gPSBbXG5cdFx0XHR0aGlzLnN0b3JlLmdsKCksXG5cdFx0XHR0aGlzLnNjZW5lKCksXG5cdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0dGhpcy5kZXB0aEJ1ZmZlcigpLFxuXHRcdFx0dGhpcy5zdGVuY2lsQnVmZmVyKCksXG5cdFx0XHR0aGlzLm11bHRpc2FtcGxpbmcoKSxcblx0XHRcdHRoaXMuZnJhbWVCdWZmZXJUeXBlKCksXG5cdFx0XHR0aGlzLmVuYWJsZU5vcm1hbFBhc3MoKSxcblx0XHRcdHRoaXMucmVzb2x1dGlvblNjYWxlKCksXG5cdFx0XTtcblxuXHRcdC8vIGluaXRpYWxpemUgY29tcG9zZXJcblx0XHRjb25zdCBjb21wb3NlciA9IG5ldyBFZmZlY3RDb21wb3NlcihnbCwge1xuXHRcdFx0ZGVwdGhCdWZmZXIsXG5cdFx0XHRzdGVuY2lsQnVmZmVyLFxuXHRcdFx0bXVsdGlzYW1wbGluZzogbXVsdGlzYW1wbGluZyA+IDAgJiYgd2ViR0wyQXZhaWxhYmxlID8gbXVsdGlzYW1wbGluZyA6IDAsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0fSk7XG5cblx0XHQvLyBhZGQgcmVuZGVyIHBhc3Ncblx0XHRjb21wb3Nlci5hZGRQYXNzKG5ldyBSZW5kZXJQYXNzKHNjZW5lLCBjYW1lcmEpKTtcblxuXHRcdC8vIGNyZWF0ZSBub3JtYWwgcGFzc1xuXHRcdGxldCBkb3duU2FtcGxpbmdQYXNzID0gbnVsbDtcblx0XHRsZXQgbm9ybWFsUGFzcyA9IG51bGw7XG5cdFx0aWYgKGVuYWJsZU5vcm1hbFBhc3MpIHtcblx0XHRcdG5vcm1hbFBhc3MgPSBuZXcgTm9ybWFsUGFzcyhzY2VuZSwgY2FtZXJhKTtcblx0XHRcdG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhub3JtYWxQYXNzKTtcblx0XHRcdGlmIChyZXNvbHV0aW9uU2NhbGUgIT09IHVuZGVmaW5lZCAmJiB3ZWJHTDJBdmFpbGFibGUpIHtcblx0XHRcdFx0ZG93blNhbXBsaW5nUGFzcyA9IG5ldyBEZXB0aERvd25zYW1wbGluZ1Bhc3MoeyBub3JtYWxCdWZmZXI6IG5vcm1hbFBhc3MudGV4dHVyZSwgcmVzb2x1dGlvblNjYWxlIH0pO1xuXHRcdFx0XHRkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhkb3duU2FtcGxpbmdQYXNzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9O1xuXHR9KTtcblxuXHRlZmZlY3RDb21wb3NlciA9IHBpY2sodGhpcy5jb21wb3NlckRhdGEsICdjb21wb3NlcicpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VwIH0pO1xuXG5cdFx0Ly8gTk9URTogRGlzYWJsZSB0b25lIG1hcHBpbmcgYmVjYXVzZSB0aHJlZWpzIGRpc2FsbG93cyB0b25lbWFwcGluZyBvbiByZW5kZXIgdGFyZ2V0c1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBnbCA9IHRoaXMuc3RvcmUuZ2woKTtcblx0XHRcdGNvbnN0IGN1cnJlbnRUb25lbWFwcGluZyA9IGdsLnRvbmVNYXBwaW5nO1xuXHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBUSFJFRS5Ob1RvbmVNYXBwaW5nO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBjdXJyZW50VG9uZW1hcHBpbmc7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbY29tcG9zZXIsIHdpZHRoLCBoZWlnaHRdID0gW1xuXHRcdFx0XHR0aGlzLmVmZmVjdENvbXBvc2VyKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuc2l6ZS53aWR0aCgpLFxuXHRcdFx0XHR0aGlzLnN0b3JlLnNpemUuaGVpZ2h0KCksXG5cdFx0XHRdO1xuXHRcdFx0aWYgKGNvbXBvc2VyKSB7XG5cdFx0XHRcdGNvbXBvc2VyLnNldFNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW2dyb3VwLCB7IGNvbXBvc2VyLCBub3JtYWxQYXNzLCBkb3duU2FtcGxpbmdQYXNzIH0sIGNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMuZ3JvdXBSZWYoKS5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmNvbXBvc2VyRGF0YSgpLFxuXHRcdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgcGFzc2VzOiBQYXNzW10gPSBbXTtcblxuXHRcdFx0aWYgKGNvbXBvc2VyKSB7XG5cdFx0XHRcdGNvbnN0IGluc3RhbmNlU3RhdGUgPSBnZXRJbnN0YW5jZVN0YXRlKGdyb3VwKTtcblx0XHRcdFx0aWYgKCFpbnN0YW5jZVN0YXRlKSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3QgY2hpbGRyZW4gPSBpbnN0YW5jZVN0YXRlLm5vbk9iamVjdHMoKTtcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baV07XG5cdFx0XHRcdFx0aWYgKGNoaWxkIGluc3RhbmNlb2YgRWZmZWN0KSB7XG5cdFx0XHRcdFx0XHRjb25zdCBlZmZlY3RzOiBFZmZlY3RbXSA9IFtjaGlsZF07XG5cblx0XHRcdFx0XHRcdGlmICghaXNDb252b2x1dGlvbihjaGlsZCkpIHtcblx0XHRcdFx0XHRcdFx0bGV0IG5leHQ6IHVua25vd24gPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAoKG5leHQgPSBjaGlsZHJlbltpICsgMV0pIGluc3RhbmNlb2YgRWZmZWN0KSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKGlzQ29udm9sdXRpb24obmV4dCkpIGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdGVmZmVjdHMucHVzaChuZXh0IGFzIEVmZmVjdCk7XG5cdFx0XHRcdFx0XHRcdFx0aSsrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdGNvbnN0IHBhc3MgPSBuZXcgRWZmZWN0UGFzcyhjYW1lcmEsIC4uLmVmZmVjdHMpO1xuXHRcdFx0XHRcdFx0cGFzc2VzLnB1c2gocGFzcyk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChjaGlsZCBpbnN0YW5jZW9mIFBhc3MpIHtcblx0XHRcdFx0XHRcdHBhc3Nlcy5wdXNoKGNoaWxkKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhc3Mgb2YgcGFzc2VzKSB7XG5cdFx0XHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhwYXNzKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChub3JtYWxQYXNzKSBub3JtYWxQYXNzLmVuYWJsZWQgPSB0cnVlO1xuXHRcdFx0XHRpZiAoZG93blNhbXBsaW5nUGFzcykgZG93blNhbXBsaW5nUGFzcy5lbmFibGVkID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Zm9yIChjb25zdCBwYXNzIG9mIHBhc3NlcykgY29tcG9zZXI/LnJlbW92ZVBhc3MocGFzcyk7XG5cdFx0XHRcdGlmIChub3JtYWxQYXNzKSBub3JtYWxQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0aWYgKGRvd25TYW1wbGluZ1Bhc3MpIGRvd25TYW1wbGluZ1Bhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRiZWZvcmVSZW5kZXIoXG5cdFx0XHQoeyBkZWx0YSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtjb21wb3NlciwgeyBlbmFibGVkLCBhdXRvQ2xlYXIsIHN0ZW5jaWxCdWZmZXIgfSwgZ2xdID0gW1xuXHRcdFx0XHRcdHRoaXMuZWZmZWN0Q29tcG9zZXIoKSxcblx0XHRcdFx0XHR0aGlzLm9wdGlvbnMoKSxcblx0XHRcdFx0XHR0aGlzLnN0b3JlLnNuYXBzaG90LmdsLFxuXHRcdFx0XHRdO1xuXG5cdFx0XHRcdGlmIChlbmFibGVkKSB7XG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudEF1dG9DbGVhciA9IGdsLmF1dG9DbGVhcjtcblx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBhdXRvQ2xlYXI7XG5cdFx0XHRcdFx0aWYgKHN0ZW5jaWxCdWZmZXIgJiYgIWF1dG9DbGVhcikgZ2wuY2xlYXJTdGVuY2lsKCk7XG5cdFx0XHRcdFx0Y29tcG9zZXIucmVuZGVyKGRlbHRhKTtcblx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBjdXJyZW50QXV0b0NsZWFyO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBwcmlvcml0eTogdGhpcy5wcmlvcml0eSB9LFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { Effect } from 'postprocessing';\nimport * as THREE from 'three';\nimport * as i0 from \"@angular/core\";\nconst fragment = /* language=glsl glsl */ `\nuniform sampler2D uCharacters;\nuniform float uCharactersCount;\nuniform float uCellSize;\nuniform bool uInvert;\nuniform vec3 uColor;\n\nconst vec2 SIZE = vec2(16.);\n\nvec3 greyscale(vec3 color, float strength) {\n float g = dot(color, vec3(0.299, 0.587, 0.114));\n return mix(color, vec3(g), strength);\n}\n\nvec3 greyscale(vec3 color) {\n return greyscale(color, 1.0);\n}\n\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 cell = resolution / uCellSize;\n vec2 grid = 1.0 / cell;\n vec2 pixelizedUV = grid * (0.5 + floor(uv / grid));\n vec4 pixelized = texture2D(inputBuffer, pixelizedUV);\n float greyscaled = greyscale(pixelized.rgb).r;\n\n if (uInvert) {\n greyscaled = 1.0 - greyscaled;\n }\n\n float characterIndex = floor((uCharactersCount - 1.0) * greyscaled);\n vec2 characterPosition = vec2(mod(characterIndex, SIZE.x), floor(characterIndex / SIZE.y));\n vec2 offset = vec2(characterPosition.x, -characterPosition.y) / SIZE;\n vec2 charUV = mod(uv * (cell / SIZE), 1.0 / SIZE) - vec2(0., 1.0 / SIZE) + offset;\n vec4 asciiCharacter = texture2D(uCharacters, charUV);\n\n asciiCharacter.rgb = uColor * asciiCharacter.r;\n asciiCharacter.a = pixelized.a;\n outputColor = asciiCharacter;\n}\n`;\nexport class ASCIIEffect extends Effect {\n constructor({ font = 'arial', characters = ` .:,'-^=*+?!|0#X%WM@`, fontSize = 54, cellSize = 16, color = '#ffffff', invert = false, } = {}) {\n const uniforms = new Map([\n ['uCharacters', new THREE.Uniform(new THREE.Texture())],\n ['uCellSize', new THREE.Uniform(cellSize)],\n ['uCharactersCount', new THREE.Uniform(characters.length)],\n ['uColor', new THREE.Uniform(new THREE.Color(color))],\n ['uInvert', new THREE.Uniform(invert)],\n ]);\n super('ASCIIEffect', fragment, { uniforms });\n const charactersTextureUniform = this.uniforms.get('uCharacters');\n if (charactersTextureUniform) {\n charactersTextureUniform.value = this.createCharactersTexture(characters, font, fontSize);\n }\n }\n /** Draws the characters on a Canvas and returns a texture */\n createCharactersTexture(characters, font, fontSize) {\n const canvas = document.createElement('canvas');\n const SIZE = 1024;\n const MAX_PER_ROW = 16;\n const CELL = SIZE / MAX_PER_ROW;\n canvas.width = canvas.height = SIZE;\n const texture = new THREE.CanvasTexture(canvas, undefined, THREE.RepeatWrapping, THREE.RepeatWrapping, THREE.NearestFilter, THREE.NearestFilter);\n const context = canvas.getContext('2d');\n if (!context) {\n throw new Error('Context not available');\n }\n context.clearRect(0, 0, SIZE, SIZE);\n context.font = `${fontSize}px ${font}`;\n context.textAlign = 'center';\n context.textBaseline = 'middle';\n context.fillStyle = '#fff';\n for (let i = 0; i < characters.length; i++) {\n const char = characters[i];\n const x = i % MAX_PER_ROW;\n const y = Math.floor(i / MAX_PER_ROW);\n context.fillText(char, x * CELL + CELL / 2, y * CELL + CELL / 2);\n }\n texture.needsUpdate = true;\n return texture;\n }\n}\nconst defaultOptions = {\n font: 'arial',\n characters: ` .:,'-^=*+?!|0#X%WM@`,\n fontSize: 54,\n cellSize: 16,\n color: '#ffffff',\n invert: false,\n};\nexport class NgtpASCII {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.effect = computed(() => new ASCIIEffect(this.options()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpASCII, isStandalone: true, selector: \"ngtp-ascii\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpASCII, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-ascii',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNjaWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9hc2NpaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQzs7QUFFL0IsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVDekMsQ0FBQztBQVdGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQ1gsSUFBSSxHQUFHLE9BQU8sRUFDZCxVQUFVLEdBQUcsc0JBQXNCLEVBQ25DLFFBQVEsR0FBRyxFQUFFLEVBQ2IsUUFBUSxHQUFHLEVBQUUsRUFDYixLQUFLLEdBQUcsU0FBUyxFQUNqQixNQUFNLEdBQUcsS0FBSyxNQUNTLEVBQUU7UUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQXdCO1lBQy9DLENBQUMsYUFBYSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxDQUFDLGtCQUFrQixFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMs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QUFLLEVBQUUsU0FBUztJQUNoQixNQUFNLEVBQUUsS0FBSztDQUNiLENBQUM7QUFXRixNQUFNLE9BQU8sU0FBUztJQUtyQjtRQUpBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYywyQ0FBSSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUF4QyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBRWxFLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGtEQUFDLENBQUM7UUFHbEUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBVlcsU0FBUztrR0FBVCxTQUFTLGdOQVBYOztFQUVULDREQUNTLE9BQU87OzJGQUlMLFNBQVM7a0JBVHJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5jb25zdCBmcmFnbWVudCA9IC8qIGxhbmd1YWdlPWdsc2wgZ2xzbCAqLyBgXG51bmlmb3JtIHNhbXBsZXIyRCB1Q2hhcmFjdGVycztcbnVuaWZvcm0gZmxvYXQgdUNoYXJhY3RlcnNDb3VudDtcbnVuaWZvcm0gZmxvYXQgdUNlbGxTaXplO1xudW5pZm9ybSBib29sIHVJbnZlcnQ7XG51bmlmb3JtIHZlYzMgdUNvbG9yO1xuXG5jb25zdCB2ZWMyIFNJWkUgPSB2ZWMyKDE2Lik7XG5cbnZlYzMgZ3JleXNjYWxlKHZlYzMgY29sb3IsIGZsb2F0IHN0cmVuZ3RoKSB7XG4gICAgZmxvYXQgZyA9IGRvdChjb2xvciwgdmVjMygwLjI5OSwgMC41ODcsIDAuMTE0KSk7XG4gICAgcmV0dXJuIG1peChjb2xvciwgdmVjMyhnKSwgc3RyZW5ndGgpO1xufVxuXG52ZWMzIGdyZXlzY2FsZSh2ZWMzIGNvbG9yKSB7XG4gICAgcmV0dXJuIGdyZXlzY2FsZShjb2xvciwgMS4wKTtcbn1cblxudm9pZCBtYWluSW1hZ2UoY29uc3QgaW4gdmVjNCBpbnB1dENvbG9yLCBjb25zdCBpbiB2ZWMyIHV2LCBvdXQgdmVjNCBvdXRwdXRDb2xvcikge1xuICAgIHZlYzIgY2VsbCA9IHJlc29sdXRpb24gLyB1Q2VsbFNpemU7XG4gICAgdmVjMiBncmlkID0gMS4wIC8gY2VsbDtcbiAgICB2ZWMyIHBpeGVsaXplZFVWID0gZ3JpZCAqICgwLjUgKyBmbG9vcih1diAvIGdyaWQpKTtcbiAgICB2ZWM0IHBpeGVsaXplZCA9IHRleHR1cmUyRChpbnB1dEJ1ZmZlciwgcGl4ZWxpemVkVVYpO1xuICAgIGZsb2F0IGdyZXlzY2FsZWQgPSBncmV5c2NhbGUocGl4ZWxpemVkLnJnYikucjtcblxuICAgIGlmICh1SW52ZXJ0KSB7XG4gICAgICAgIGdyZXlzY2FsZWQgPSAxLjAgLSBncmV5c2NhbGVkO1xuICAgIH1cblxuICAgIGZsb2F0IGNoYXJhY3RlckluZGV4ID0gZmxvb3IoKHVDaGFyYWN0ZXJzQ291bnQgLSAxLjApICogZ3JleXNjYWxlZCk7XG4gICAgdmVjMiBjaGFyYWN0ZXJQb3NpdGlvbiA9IHZlYzIobW9kKGNoYXJhY3RlckluZGV4LCBTSVpFLngpLCBmbG9vcihjaGFyYWN0ZXJJbmRleCAvIFNJWkUueSkpO1xuICAgIHZlYzIgb2Zmc2V0ID0gdmVjMihjaGFyYWN0ZXJQb3NpdGlvbi54LCAtY2hhcmFjdGVyUG9zaXRpb24ueSkgLyBTSVpFO1xuICAgIHZlYzIgY2hhclVWID0gbW9kKHV2ICogKGNlbGwgLyBTSVpFKSwgMS4wIC8gU0laRSkgLSB2ZWMyKDAuLCAxLjAgLyBTSVpFKSArIG9mZnNldDtcbiAgICB2ZWM0IGFzY2lpQ2hhcmFjdGVyID0gdGV4dHVyZTJEKHVDaGFyYWN0ZXJzLCBjaGFyVVYpO1xuXG4gICAgYXNjaWlDaGFyYWN0ZXIucmdiID0gdUNvbG9yICogYXNjaWlDaGFyYWN0ZXIucjtcbiAgICBhc2NpaUNoYXJhY3Rlci5hID0gcGl4ZWxpemVkLmE7XG4gICAgb3V0cHV0Q29sb3IgPSBhc2NpaUNoYXJhY3Rlcjtcbn1cbmA7XG5cbmludGVyZmFjZSBBU0NJSUVmZmVjdE9wdGlvbnMge1xuXHRmb250Pzogc3RyaW5nO1xuXHRjaGFyYWN0ZXJzPzogc3RyaW5nO1xuXHRmb250U2l6ZT86IG51bWJlcjtcblx0Y2VsbFNpemU/OiBudW1iZXI7XG5cdGNvbG9yPzogc3RyaW5nO1xuXHRpbnZlcnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQVNDSUlFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuXHRjb25zdHJ1Y3Rvcih7XG5cdFx0Zm9udCA9ICdhcmlhbCcsXG5cdFx0Y2hhcmFjdGVycyA9IGAgLjosJy1ePSorPyF8MCNYJVdNQGAsXG5cdFx0Zm9udFNpemUgPSA1NCxcblx0XHRjZWxsU2l6ZSA9IDE2LFxuXHRcdGNvbG9yID0gJyNmZmZmZmYnLFxuXHRcdGludmVydCA9IGZhbHNlLFxuXHR9OiBBU0NJSUVmZmVjdE9wdGlvbnMgPSB7fSkge1xuXHRcdGNvbnN0IHVuaWZvcm1zID0gbmV3IE1hcDxzdHJpbmcsIFRIUkVFLlVuaWZvcm0+KFtcblx0XHRcdFsndUNoYXJhY3RlcnMnLCBuZXcgVEhSRUUuVW5pZm9ybShuZXcgVEhSRUUuVGV4dHVyZSgpKV0sXG5cdFx0XHRbJ3VDZWxsU2l6ZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGNlbGxTaXplKV0sXG5cdFx0XHRbJ3VDaGFyYWN0ZXJzQ291bnQnLCBuZXcgVEhSRUUuVW5pZm9ybShjaGFyYWN0ZXJzLmxlbmd0aCldLFxuXHRcdFx0Wyd1Q29sb3InLCBuZXcgVEhSRUUuVW5pZm9ybShuZXcgVEhSRUUuQ29sb3IoY29sb3IpKV0sXG5cdFx0XHRbJ3VJbnZlcnQnLCBuZXcgVEhSRUUuVW5pZm9ybShpbnZlcnQpXSxcblx0XHRdKTtcblxuXHRcdHN1cGVyKCdBU0NJSUVmZmVjdCcsIGZyYWdtZW50LCB7IHVuaWZvcm1zIH0pO1xuXG5cdFx0Y29uc3QgY2hhcmFjdGVyc1RleHR1cmVVbmlmb3JtID0gdGhpcy51bmlmb3Jtcy5nZXQoJ3VDaGFyYWN0ZXJzJyk7XG5cblx0XHRpZiAoY2hhcmFjdGVyc1RleHR1cmVVbmlmb3JtKSB7XG5cdFx0XHRjaGFyYWN0ZXJzVGV4dHVyZVVuaWZvcm0udmFsdWUgPSB0aGlzLmNyZWF0ZUNoYXJhY3RlcnNUZXh0dXJlKGNoYXJhY3RlcnMsIGZvbnQsIGZvbnRTaXplKTtcblx0XHR9XG5cdH1cblxuXHQvKiogRHJhd3MgdGhlIGNoYXJhY3RlcnMgb24gYSBDYW52YXMgYW5kIHJldHVybnMgYSB0ZXh0dXJlICovXG5cdHB1YmxpYyBjcmVhdGVDaGFyYWN0ZXJzVGV4dHVyZShjaGFyYWN0ZXJzOiBzdHJpbmcsIGZvbnQ6IHN0cmluZywgZm9udFNpemU6IG51bWJlcik6IFRIUkVFLlRleHR1cmUge1xuXHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHRcdGNvbnN0IFNJWkUgPSAxMDI0O1xuXHRcdGNvbnN0IE1BWF9QRVJfUk9XID0gMTY7XG5cdFx0Y29uc3QgQ0VMTCA9IFNJWkUgLyBNQVhfUEVSX1JPVztcblxuXHRcdGNhbnZhcy53aWR0aCA9IGNhbnZhcy5oZWlnaHQgPSBTSVpFO1xuXHRcdGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuQ2FudmFzVGV4dHVyZShcblx0XHRcdGNhbnZhcyxcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFRIUkVFLlJlcGVhdFdyYXBwaW5nLFxuXHRcdFx0VEhSRUUuUmVwZWF0V3JhcHBpbmcsXG5cdFx0XHRUSFJFRS5OZWFyZXN0RmlsdGVyLFxuXHRcdFx0VEhSRUUuTmVhcmVzdEZpbHRlcixcblx0XHQpO1xuXHRcdGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblxuXHRcdGlmICghY29udGV4dCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdDb250ZXh0IG5vdCBhdmFpbGFibGUnKTtcblx0XHR9XG5cblx0XHRjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBTSVpFLCBTSVpFKTtcblx0XHRjb250ZXh0LmZvbnQgPSBgJHtmb250U2l6ZX1weCAke2ZvbnR9YDtcblx0XHRjb250ZXh0LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdGNvbnRleHQudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG5cdFx0Y29udGV4dC5maWxsU3R5bGUgPSAnI2ZmZic7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGNoYXIgPSBjaGFyYWN0ZXJzW2ldO1xuXHRcdFx0Y29uc3QgeCA9IGkgJSBNQVhfUEVSX1JPVztcblx0XHRcdGNvbnN0IHkgPSBNYXRoLmZsb29yKGkgLyBNQVhfUEVSX1JPVyk7XG5cdFx0XHRjb250ZXh0LmZpbGxUZXh0KGNoYXIsIHggKiBDRUxMICsgQ0VMTCAvIDIsIHkgKiBDRUxMICsgQ0VMTCAvIDIpO1xuXHRcdH1cblxuXHRcdHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdHJldHVybiB0ZXh0dXJlO1xuXHR9XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBBU0NJSUVmZmVjdE9wdGlvbnMgPSB7XG5cdGZvbnQ6ICdhcmlhbCcsXG5cdGNoYXJhY3RlcnM6IGAgLjosJy1ePSorPyF8MCNYJVdNQGAsXG5cdGZvbnRTaXplOiA1NCxcblx0Y2VsbFNpemU6IDE2LFxuXHRjb2xvcjogJyNmZmZmZmYnLFxuXHRpbnZlcnQ6IGZhbHNlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1hc2NpaScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwQVNDSUkge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IG5ldyBBU0NJSUVmZmVjdCh0aGlzLm9wdGlvbnMoKSkpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpBloom {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ BloomEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpBloom, isStandalone: true, selector: \"ngtp-bloom\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpBloom, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-bloom',\n template: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvb20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ibG9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBZ0J6RixNQUFNLE9BQU8sU0FBUztJQUtyQjtRQUpBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBK0MsbURBQUMsQ0FBQztRQUV2RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FQVyxTQUFTO2tHQUFULFNBQVMsbU1BRlYsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyw0SUFWcEU7Ozs7O0VBS1QsNERBQ1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQU0xQixTQUFTO2tCQWRyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDakYsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7aUJBQzlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBCbG9vbUVmZmVjdCwgQmxvb21FZmZlY3RPcHRpb25zIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1ibG9vbScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ibG9vbS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ibG9vbS1lZmZlY3Q+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLkFERCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBCbG9vbSB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PEJsb29tRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQmxvb21FZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpBrightnessContrast {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ BrightnessContrastEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpBrightnessContrast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpBrightnessContrast, isStandalone: true, selector: \"ngtp-brightness-contrast\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpBrightnessContrast, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-brightness-contrast',\n template: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZ2h0bmVzcy1jb250cmFzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2JyaWdodG5lc3MtY29udHJhc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLHNCQUFzQjtJQUlsQztRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsbURBQUMsQ0FBQztRQUM1RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDOzhHQU5XLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGdWQVh4Qjs7Ozs7RUFLVCw0REFDUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSzFCLHNCQUFzQjtrQkFibEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJyaWdodG5lc3NDb250cmFzdEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBCcmlnaHRuZXNzRWZmZWN0T3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0PlswXT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtYnJpZ2h0bmVzcy1jb250cmFzdCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1icmlnaHRuZXNzLWNvbnRyYXN0LWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWJyaWdodG5lc3MtY29udHJhc3QtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEJyaWdodG5lc3NDb250cmFzdCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PEJyaWdodG5lc3NFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ChromaticAberrationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpChromaticAberration {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ChromaticAberrationEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpChromaticAberration, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpChromaticAberration, isStandalone: true, selector: \"ngtp-chromatic-aberration\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpChromaticAberration, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-chromatic-aberration',\n template: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21hdGljLWFiYmVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jaHJvbWF0aWMtYWJiZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBbUI1RCxNQUFNLE9BQU8sdUJBQXVCO0lBSW5DO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE2RCxtREFBQyxDQUFDO1FBQ3JFLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OEdBTlcsdUJBQXVCO2tHQUF2Qix1QkFBdUIsaVZBWHpCOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsdUJBQXVCO2tCQWJuQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8XG5cdE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQ2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdD5bMF0+XG4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNocm9tYXRpYy1hYmVycmF0aW9uJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWNocm9tYXRpYy1hYmVycmF0aW9uLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNocm9tYXRpYy1hYmVycmF0aW9uLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDaHJvbWF0aWNBYmVycmF0aW9uIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Q2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ColorAverageEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpColorAverage {\n constructor() {\n this.options = input({ blendFunction: BlendFunction.NORMAL }, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) }] : [{ transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) }]));\n extend({ ColorAverageEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpColorAverage, isStandalone: true, selector: \"ngtp-color-average\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpColorAverage, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-color-average',\n template: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYXZlcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2NvbG9yLWF2ZXJhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFhbkUsTUFBTSxPQUFPLGdCQUFnQjtJQU01QjtRQUxBLFlBQU8sR0FBRyxLQUFLLENBQ2QsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSwyQ0FDckMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBakUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQ25FLENBQUM7UUFHRCxNQUFNLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0FSVyxnQkFBZ0I7a0dBQWhCLGdCQUFnQix3TkFUbEI7Ozs7RUFJVCw0REFDUyxPQUFPOzsyRkFJTCxnQkFBZ0I7a0JBWDVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgQ29sb3JBdmVyYWdlRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNvbG9yLWF2ZXJhZ2UnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtY29sb3ItYXZlcmFnZS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpLmJsZW5kRnVuY3Rpb25dXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNvbG9yLWF2ZXJhZ2UtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckF2ZXJhZ2Uge1xuXHRvcHRpb25zID0gaW5wdXQoXG5cdFx0eyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9LFxuXHRcdHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uTk9STUFMIH0pIH0sXG5cdCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQ29sb3JBdmVyYWdlRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpColorDepth {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ColorDepthEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpColorDepth, isStandalone: true, selector: \"ngtp-color-depth\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpColorDepth, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-color-depth',\n template: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jb2xvci1kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBaUI1RCxNQUFNLE9BQU8sY0FBYztJQUkxQjtRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsbURBQUMsQ0FBQztRQUM1RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQU5XLGNBQWM7a0dBQWQsY0FBYyx3VUFYaEI7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQixjQUFjO2tCQWIxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ29sb3JEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBDb2xvckRlcHRoRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBDb2xvckRlcHRoRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNvbG9yLWRlcHRoJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWNvbG9yLWRlcHRoLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNvbG9yLWRlcHRoLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckRlcHRoIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Q29sb3JEZXB0aEVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBDb2xvckRlcHRoRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpDepth {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ DepthEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpDepth, isStandalone: true, selector: \"ngtp-depth\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDepth, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-depth',\n template: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFNBQVM7SUFJckI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQStDLG1EQUFDLENBQUM7UUFDdkQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBTlcsU0FBUztrR0FBVCxTQUFTLGtVQVhYOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsU0FBUztrQkFickIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBEZXB0aEVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRGVwdGhFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZGVwdGgnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZGVwdGgtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZGVwdGgtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8RGVwdGhFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgRGVwdGhFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { DepthOfFieldEffect, MaskFunction } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nexport class NgtpDepthOfField {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effectComposer = inject(NgtpEffectComposer);\n this.effect = computed(() => {\n const [camera, options] = [this.effectComposer.camera(), this.options()];\n const autoFocus = options.target != null;\n const effect = new DepthOfFieldEffect(camera, options);\n // Creating a target enables autofocus, NGT will set via props\n if (autoFocus)\n effect.target = new THREE.Vector3();\n // Depth texture for depth picking with optional packing strategy\n if (options.depthTexture) {\n effect.setDepthTexture(options.depthTexture.texture, options.depthTexture.packing);\n }\n // Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur\n const maskPass = effect['maskPass'];\n maskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;\n return effect;\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const depthOfFieldEffect = this.effect();\n onCleanup(() => depthOfFieldEffect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpDepthOfField, isStandalone: true, selector: \"ngtp-depth-of-field\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDepthOfField, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-depth-of-field',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGgtb2YtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC1vZi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsT0FBTyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFjeEQsTUFBTSxPQUFPLGdCQUFnQjtJQTRCNUI7UUEzQkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFnQixtREFBQyxDQUFDO1FBRTFCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFMUMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFFekUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7WUFFekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFdkQsOERBQThEO1lBQzlELElBQUksU0FBUztnQkFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25ELGlFQUFpRTtZQUNqRSxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxDQUFDLGVBQWUsQ0FDckIsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQzVCLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBdUMsQ0FDNUQsQ0FBQztZQUNILENBQUM7WUFDRCwyR0FBMkc7WUFDM0csTUFBTSxRQUFRLEdBQUksTUFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RCxRQUFRLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQztZQUU1RCxPQUFPLE1BQU0sQ0FBQztRQUNmLENBQUMsa0RBQUMsQ0FBQztRQUdGLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FqQ1csZ0JBQWdCO2tHQUFoQixnQkFBZ0IseU5BUGxCOztFQUVULDREQUNTLE9BQU87OzJGQUlMLGdCQUFnQjtrQkFUNUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQsIE5ndEFyZ3MsIE5ndFZlY3RvcjMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IERlcHRoT2ZGaWVsZEVmZmVjdCwgTWFza0Z1bmN0aW9uIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxudHlwZSBET0ZPcHRpb25zID0gTm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEZXB0aE9mRmllbGRFZmZlY3Q+WzFdPiAmXG5cdFBhcnRpYWw8eyB0YXJnZXQ6IE5ndFZlY3RvcjM7IGRlcHRoVGV4dHVyZTogeyB0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlOyBwYWNraW5nOiBUSFJFRS5EZXB0aFBhY2tpbmdTdHJhdGVnaWVzIH0gfT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZGVwdGgtb2YtZmllbGQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoT2ZGaWVsZCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBET0ZPcHRpb25zKTtcblxuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbY2FtZXJhLCBvcHRpb25zXSA9IFt0aGlzLmVmZmVjdENvbXBvc2VyLmNhbWVyYSgpLCB0aGlzLm9wdGlvbnMoKV07XG5cblx0XHRjb25zdCBhdXRvRm9jdXMgPSBvcHRpb25zLnRhcmdldCAhPSBudWxsO1xuXG5cdFx0Y29uc3QgZWZmZWN0ID0gbmV3IERlcHRoT2ZGaWVsZEVmZmVjdChjYW1lcmEsIG9wdGlvbnMpO1xuXG5cdFx0Ly8gQ3JlYXRpbmcgYSB0YXJnZXQgZW5hYmxlcyBhdXRvZm9jdXMsIE5HVCB3aWxsIHNldCB2aWEgcHJvcHNcblx0XHRpZiAoYXV0b0ZvY3VzKSBlZmZlY3QudGFyZ2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcblx0XHQvLyBEZXB0aCB0ZXh0dXJlIGZvciBkZXB0aCBwaWNraW5nIHdpdGggb3B0aW9uYWwgcGFja2luZyBzdHJhdGVneVxuXHRcdGlmIChvcHRpb25zLmRlcHRoVGV4dHVyZSkge1xuXHRcdFx0ZWZmZWN0LnNldERlcHRoVGV4dHVyZShcblx0XHRcdFx0b3B0aW9ucy5kZXB0aFRleHR1cmUudGV4dHVyZSxcblx0XHRcdFx0b3B0aW9ucy5kZXB0aFRleHR1cmUucGFja2luZyBhcyBUSFJFRS5EZXB0aFBhY2tpbmdTdHJhdGVnaWVzLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0Ly8gVGVtcG9yYXJ5IGZpeCB0aGF0IHJlc3RvcmVzIERPRiA2LjIxLjMgYmVoYXZpb3IsIGV2ZXJ5dGhpbmcgc2luY2UgdGhlbiBsZXRzIHNoYXBlcyBsZWFrIHRocm91Z2ggdGhlIGJsdXJcblx0XHRjb25zdCBtYXNrUGFzcyA9IChlZmZlY3QgYXMgTmd0QW55UmVjb3JkKVsnbWFza1Bhc3MnXTtcblx0XHRtYXNrUGFzcy5tYXNrRnVuY3Rpb24gPSBNYXNrRnVuY3Rpb24uTVVMVElQTFlfUkdCX1NFVF9BTFBIQTtcblxuXHRcdHJldHVybiBlZmZlY3Q7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBkZXB0aE9mRmllbGRFZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGRlcHRoT2ZGaWVsZEVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpDotScreen {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ DotScreenEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDotScreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpDotScreen, isStandalone: true, selector: \"ngtp-dot-screen\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDotScreen, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-dot-screen',\n template: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2RvdC1zY3JlZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxhQUFhO0lBSXpCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFtRCxtREFBQyxDQUFDO1FBQzNELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQU5XLGFBQWE7a0dBQWIsYUFBYSx1VUFYZjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLGFBQWE7a0JBYnpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEb3RTY3JlZW5FZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgRG90U2NyZWVuRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEb3RTY3JlZW5FZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZG90LXNjcmVlbicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1kb3Qtc2NyZWVuLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWRvdC1zY3JlZW4tZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERvdFNjcmVlbiB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PERvdFNjcmVlbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBEb3RTY3JlZW5FZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { FXAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpFXAA {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ FXAAEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpFXAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpFXAA, isStandalone: true, selector: \"ngtp-fxaa\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpFXAA, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-fxaa',\n template: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnhhYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2Z4YWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxRQUFRO0lBSXBCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE4QyxtREFBQyxDQUFDO1FBQ3RELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQU5XLFFBQVE7a0dBQVIsUUFBUSxpVUFYVjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLFFBQVE7a0JBYnBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgRlhBQUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBGWEFBRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBGWEFBRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWZ4YWEnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZlhBQS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1mWEFBLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBGWEFBIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8RlhBQUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBGWEFBRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, injectStore, pick, vector2 } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { GlitchEffect, GlitchMode } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGlitch {\n constructor() {\n this.options = input({ active: true }, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs({ active: true }) }] : [{ transform: mergeInputs({ active: true }) }]));\n this.active = pick(this.options, 'active');\n this.mode = pick(this.options, 'mode');\n this.ratio = pick(this.options, 'ratio');\n this.dtSize = pick(this.options, 'dtSize');\n this.columns = pick(this.options, 'columns');\n this.blendFunction = pick(this.options, 'blendFunction');\n this.perturbationMap = pick(this.options, 'perturbationMap');\n this.delay = vector2(this.options, 'delay');\n this.duration = vector2(this.options, 'duration');\n this.chromaticAberrationOffset = vector2(this.options, 'chromaticAberrationOffset');\n this.strength = vector2(this.options, 'strength');\n this.store = injectStore();\n this.effect = computed(() => new GlitchEffect({\n ratio: this.ratio(),\n dtSize: this.dtSize(),\n columns: this.columns(),\n blendFunction: this.blendFunction(),\n perturbationMap: this.perturbationMap(),\n delay: this.delay(),\n duration: this.duration(),\n chromaticAberrationOffset: this.chromaticAberrationOffset(),\n strength: this.strength(),\n }), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [glitchEffect, invalidate, mode, active] = [\n this.effect(),\n this.store.invalidate(),\n this.mode(),\n this.active(),\n ];\n glitchEffect.mode = active ? mode || GlitchMode.SPORADIC : GlitchMode.DISABLED;\n invalidate();\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGlitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpGlitch, isStandalone: true, selector: \"ngtp-glitch\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGlitch, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-glitch',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvZ2xpdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLE9BQU8sRUFBYyxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFxQjFELE1BQU0sT0FBTyxVQUFVO0lBaUN0QjtRQWhDQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBbUIsMkNBQUksU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUExQyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFDLENBQUM7UUFFekYsV0FBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsQyxVQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEMsV0FBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3BELG9CQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUV4RCxVQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLDhCQUF5QixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDL0UsYUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLFVBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUU5QixXQUFNLEdBQUcsUUFBUSxDQUNoQixHQUFHLEVBQUUsQ0FDSixJQUFJLFlBQVksQ0FBQztZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6Qix5QkFBeUIsRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDM0QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7U0FDekIsQ0FBQyxrREFDSCxDQUFDO1FBR0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDWCxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQ2IsQ0FBQztZQUNGLFlBQVksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMvRSxVQUFVLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBakRXLFVBQVU7a0dBQVYsVUFBVSxpTkFQWjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxVQUFVO2tCQVR0QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIE5ndFZlY3RvcjIsIGluamVjdFN0b3JlLCBwaWNrLCB2ZWN0b3IyIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBHbGl0Y2hFZmZlY3QsIEdsaXRjaE1vZGUgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCB0eXBlIEdsaXRjaE9wdGlvbnMgPSBOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdsaXRjaEVmZmVjdD5bMF0+ICZcblx0UGFydGlhbDx7XG5cdFx0bW9kZTogR2xpdGNoTW9kZTtcblx0XHRhY3RpdmU6IGJvb2xlYW47XG5cdFx0ZGVsYXk6IE5ndFZlY3RvcjI7XG5cdFx0ZHVyYXRpb246IE5ndFZlY3RvcjI7XG5cdFx0Y2hyb21hdGljQWJlcnJhdGlvbk9mZnNldDogTmd0VmVjdG9yMjtcblx0XHRzdHJlbmd0aDogTmd0VmVjdG9yMjtcblx0fT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZ2xpdGNoJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBHbGl0Y2gge1xuXHRvcHRpb25zID0gaW5wdXQoeyBhY3RpdmU6IHRydWUgfSBhcyBHbGl0Y2hPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoeyBhY3RpdmU6IHRydWUgfSkgfSk7XG5cblx0cHJpdmF0ZSBhY3RpdmUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2FjdGl2ZScpO1xuXHRwcml2YXRlIG1vZGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21vZGUnKTtcblx0cHJpdmF0ZSByYXRpbyA9IHBpY2sodGhpcy5vcHRpb25zLCAncmF0aW8nKTtcblx0cHJpdmF0ZSBkdFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2R0U2l6ZScpO1xuXHRwcml2YXRlIGNvbHVtbnMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2NvbHVtbnMnKTtcblx0cHJpdmF0ZSBibGVuZEZ1bmN0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJyk7XG5cdHByaXZhdGUgcGVydHVyYmF0aW9uTWFwID0gcGljayh0aGlzLm9wdGlvbnMsICdwZXJ0dXJiYXRpb25NYXAnKTtcblxuXHRwcml2YXRlIGRlbGF5ID0gdmVjdG9yMih0aGlzLm9wdGlvbnMsICdkZWxheScpO1xuXHRwcml2YXRlIGR1cmF0aW9uID0gdmVjdG9yMih0aGlzLm9wdGlvbnMsICdkdXJhdGlvbicpO1xuXHRwcml2YXRlIGNocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQgPSB2ZWN0b3IyKHRoaXMub3B0aW9ucywgJ2Nocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQnKTtcblx0cHJpdmF0ZSBzdHJlbmd0aCA9IHZlY3RvcjIodGhpcy5vcHRpb25zLCAnc3RyZW5ndGgnKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZChcblx0XHQoKSA9PlxuXHRcdFx0bmV3IEdsaXRjaEVmZmVjdCh7XG5cdFx0XHRcdHJhdGlvOiB0aGlzLnJhdGlvKCksXG5cdFx0XHRcdGR0U2l6ZTogdGhpcy5kdFNpemUoKSxcblx0XHRcdFx0Y29sdW1uczogdGhpcy5jb2x1bW5zKCksXG5cdFx0XHRcdGJsZW5kRnVuY3Rpb246IHRoaXMuYmxlbmRGdW5jdGlvbigpLFxuXHRcdFx0XHRwZXJ0dXJiYXRpb25NYXA6IHRoaXMucGVydHVyYmF0aW9uTWFwKCksXG5cdFx0XHRcdGRlbGF5OiB0aGlzLmRlbGF5KCksXG5cdFx0XHRcdGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uKCksXG5cdFx0XHRcdGNocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQ6IHRoaXMuY2hyb21hdGljQWJlcnJhdGlvbk9mZnNldCgpLFxuXHRcdFx0XHRzdHJlbmd0aDogdGhpcy5zdHJlbmd0aCgpLFxuXHRcdFx0fSksXG5cdCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFtnbGl0Y2hFZmZlY3QsIGludmFsaWRhdGUsIG1vZGUsIGFjdGl2ZV0gPSBbXG5cdFx0XHRcdHRoaXMuZWZmZWN0KCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLm1vZGUoKSxcblx0XHRcdFx0dGhpcy5hY3RpdmUoKSxcblx0XHRcdF07XG5cdFx0XHRnbGl0Y2hFZmZlY3QubW9kZSA9IGFjdGl2ZSA/IG1vZGUgfHwgR2xpdGNoTW9kZS5TUE9SQURJQyA6IEdsaXRjaE1vZGUuRElTQUJMRUQ7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs, omit, pick, resolveRef } from 'angular-three';\nimport { GodRaysEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGodRays {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effectComposer = inject(NgtpEffectComposer);\n this.effectOptions = omit(this.options, ['sun']);\n this.sun = pick(this.options, 'sun');\n this.sunElement = computed(() => {\n const sun = this.sun();\n if (typeof sun === 'function')\n return resolveRef(sun());\n return resolveRef(sun);\n }, ...(ngDevMode ? [{ debugName: \"sunElement\" }] : []));\n this.effect = computed(() => {\n const [camera, sunElement, options] = [this.effectComposer.camera(), this.sunElement(), this.effectOptions()];\n return new GodRaysEffect(camera, sunElement, options);\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const sunElement = this.sunElement();\n if (!sunElement)\n return;\n const godRaysEffect = this.effect();\n godRaysEffect.lightSource = sunElement;\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGodRays, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpGodRays, isStandalone: true, selector: \"ngtp-god-rays\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGodRays, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-god-rays',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29kLXJheXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9nb2QtcmF5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW1CeEQsTUFBTSxPQUFPLFdBQVc7SUFtQnZCO1FBbEJBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0IsbURBQUMsQ0FBQztRQUU5QixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTVDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVDLFFBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVoQyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVO2dCQUFFLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxzREFBQyxDQUFDO1FBRU8sV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUM5RyxPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxrREFBQyxDQUFDO1FBR0YsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVTtnQkFBRSxPQUFPO1lBRXhCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxhQUFhLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQWhDVyxXQUFXO2tHQUFYLFdBQVcsbU5BUGI7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsV0FBVztrQkFUdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgb21pdCwgcGljaywgcmVzb2x2ZVJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgR29kUmF5c0VmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHBFZmZlY3RDb21wb3NlciB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbnR5cGUgR29kUmF5c09wdGlvbnMgPSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdvZFJheXNFZmZlY3Q+WzJdICYge1xuXHRzdW46XG5cdFx0fCBUSFJFRS5NZXNoXG5cdFx0fCBUSFJFRS5Qb2ludHNcblx0XHR8IEVsZW1lbnRSZWY8VEhSRUUuTWVzaCB8IFRIUkVFLlBvaW50cz5cblx0XHR8ICgoKSA9PiBUSFJFRS5NZXNoIHwgVEhSRUUuUG9pbnRzIHwgRWxlbWVudFJlZjxUSFJFRS5NZXNoIHwgVEhSRUUuUG9pbnRzPiB8IHVuZGVmaW5lZCk7XG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWdvZC1yYXlzJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBHb2RSYXlzIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIEdvZFJheXNPcHRpb25zKTtcblxuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cblx0cHJpdmF0ZSBlZmZlY3RPcHRpb25zID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnc3VuJ10pO1xuXHRwcml2YXRlIHN1biA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3VuJyk7XG5cblx0cHJpdmF0ZSBzdW5FbGVtZW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHN1biA9IHRoaXMuc3VuKCk7XG5cdFx0aWYgKHR5cGVvZiBzdW4gPT09ICdmdW5jdGlvbicpIHJldHVybiByZXNvbHZlUmVmKHN1bigpKTtcblx0XHRyZXR1cm4gcmVzb2x2ZVJlZihzdW4pO1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtjYW1lcmEsIHN1bkVsZW1lbnQsIG9wdGlvbnNdID0gW3RoaXMuZWZmZWN0Q29tcG9zZXIuY2FtZXJhKCksIHRoaXMuc3VuRWxlbWVudCgpLCB0aGlzLmVmZmVjdE9wdGlvbnMoKV07XG5cdFx0cmV0dXJuIG5ldyBHb2RSYXlzRWZmZWN0KGNhbWVyYSwgc3VuRWxlbWVudCwgb3B0aW9ucyk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBzdW5FbGVtZW50ID0gdGhpcy5zdW5FbGVtZW50KCk7XG5cdFx0XHRpZiAoIXN1bkVsZW1lbnQpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgZ29kUmF5c0VmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRnb2RSYXlzRWZmZWN0LmxpZ2h0U291cmNlID0gc3VuRWxlbWVudDtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, omit, pick } from 'angular-three';\nimport { GridEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGrid {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effectOptions = omit(this.options, ['size']);\n this.size = pick(this.options, 'size');\n this.effect = computed(() => new GridEffect(this.effectOptions()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [size, effect] = [this.size(), this.effect()];\n if (size) {\n effect.setSize(size.width, size.height);\n }\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpGrid, isStandalone: true, selector: \"ngtp-grid\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGrid, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-grid',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2dyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWM1QyxNQUFNLE9BQU8sUUFBUTtJQU9wQjtRQU5BLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBaUIsbURBQUMsQ0FBQztRQUMzQixrQkFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM3QyxTQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFaEMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsa0RBQUMsQ0FBQztRQUd2RSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNwRCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNWLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbkJXLFFBQVE7a0dBQVIsUUFBUSwrTUFQVjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxRQUFRO2tCQVRwQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEdyaWRFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbnR5cGUgR3JpZE9wdGlvbnMgPSBOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdyaWRFZmZlY3Q+WzBdPiAmXG5cdFBhcnRpYWw8eyBzaXplOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0gfT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZ3JpZCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwR3JpZCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBHcmlkT3B0aW9ucyk7XG5cdHByaXZhdGUgZWZmZWN0T3B0aW9ucyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3NpemUnXSk7XG5cdHByaXZhdGUgc2l6ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2l6ZScpO1xuXG5cdHByb3RlY3RlZCBlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiBuZXcgR3JpZEVmZmVjdCh0aGlzLmVmZmVjdE9wdGlvbnMoKSkpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbc2l6ZSwgZWZmZWN0XSA9IFt0aGlzLnNpemUoKSwgdGhpcy5lZmZlY3QoKV07XG5cdFx0XHRpZiAoc2l6ZSkge1xuXHRcdFx0XHRlZmZlY3Quc2V0U2l6ZShzaXplLndpZHRoLCBzaXplLmhlaWdodCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpHueSaturation {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ HueSaturationEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpHueSaturation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpHueSaturation, isStandalone: true, selector: \"ngtp-hue-saturation\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpHueSaturation, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-hue-saturation',\n template: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVlLXNhdHVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9odWUtc2F0dXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBaUI1RCxNQUFNLE9BQU8saUJBQWlCO0lBSTdCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUF1RCxtREFBQyxDQUFDO1FBQy9ELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBTlcsaUJBQWlCO2tHQUFqQixpQkFBaUIsMlVBWG5COzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsaUJBQWlCO2tCQWI3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgSHVlU2F0dXJhdGlvbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBIdWVTYXR1cmF0aW9uRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBIdWVTYXR1cmF0aW9uRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWh1ZS1zYXR1cmF0aW9uJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWh1ZS1zYXR1cmF0aW9uLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWh1ZS1zYXR1cmF0aW9uLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBIdWVTYXR1cmF0aW9uIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8SHVlU2F0dXJhdGlvbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBIdWVTYXR1cmF0aW9uRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","// Created by Anderson Mancini 2023\n// React Three Fiber Ultimate LensFlare\nimport { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs, beforeRender, injectStore, is, omit, vector3 } from 'angular-three';\nimport { easing } from 'maath';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, Effect } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst LensFlareShader = {\n fragmentShader: /* language=glsl glsl */ `\n\n uniform float iTime;\n uniform vec2 lensPosition;\n uniform vec2 iResolution;\n uniform vec3 colorGain;\n uniform float starPoints;\n uniform float glareSize;\n uniform float flareSize;\n uniform float flareSpeed;\n uniform float flareShape;\n uniform float haloScale;\n uniform float opacity;\n uniform bool animated;\n uniform bool anamorphic;\n uniform bool enabled;\n uniform bool secondaryGhosts;\n uniform bool starBurst;\n uniform float ghostScale;\n uniform bool aditionalStreaks;\n uniform sampler2D lensDirtTexture;\n vec2 vxtC;\n\n float rndf(float n){return fract(sin(n) * 43758.5453123);}float niz(float p){float fl = floor(p);float fc = fract(p);return mix(rndf(fl),rndf(fl + 1.0), fc);}\n vec3 hsv2rgb(vec3 c){vec4 k = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);vec3 p = abs(fract(c.xxx + k.xyz) * 6.0 - k.www);return c.z * mix(k.xxx, clamp(p - k.xxx, 0.0, 1.0), c.y);}\n float satU(float x){return clamp(x, 0.,1.);}vec2 rtU(vec2 naz, float rtn){return vec2(cos(rtn) * naz.x + sin(rtn) * naz.y,cos(rtn) * naz.y - sin(rtn) * naz.x);}\n vec3 drwF(vec2 p, float intensity, float rnd, float speed, int id){float flhos = (1. / 32.) * float(id) * 0.1;float lingrad = distance(vec2(0.), p);float expg = 1. / exp(lingrad * (fract(rnd) * 0.66 + 0.33));vec3 qzTg = hsv2rgb(vec3( fract( (expg * 8.) + speed * flareSpeed + flhos), pow(1.-abs(expg*2.-1.), 0.45), 20.0 * expg * intensity));float internalStarPoints;if(anamorphic){internalStarPoints = 1.0;} else{internalStarPoints = starPoints;}float ams = length(p * flareShape * sin(internalStarPoints * atan(p.x, p.y)));float kJhg = pow(1.-satU(ams), ( anamorphic ? 100. : 12.));kJhg += satU(expg-0.9) * 3.;kJhg = pow(kJhg * expg, 8. + (1.-intensity) * 5.);if(flareSpeed > 0.0){return vec3(kJhg) * qzTg;} else{return vec3(kJhg) * flareSize * 15.;}}\n float ams2(vec3 a, vec3 b) { return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);}vec3 satU(vec3 x){return clamp(x, vec3(0.0), vec3(1.0));}\n float glR(vec2 naz, vec2 pos, float zsi){vec2 mni;if(animated){mni = rtU(naz-pos, iTime * 0.1);} else{mni = naz-pos;}float ang = atan(mni.y, mni.x) * (anamorphic ? 1.0 : starPoints);float ams2 = length(mni);ams2 = pow(ams2, .9);float f0 = 1.0/(length(naz-pos)*(1.0/zsi*16.0)+.2);return f0+f0*(sin((ang))*.2 +.3);}\n float sdHex(vec2 p){p = abs(p);vec2 q = vec2(p.x*2.0*0.5773503, p.y + p.x*0.5773503);return dot(step(q.xy,q.yx), 1.0-q.yx);}float fpow(float x, float k){return x > k ? pow((x-k)/(1.0-k),2.0) : 0.0;}\n vec3 rHx(vec2 naz, vec2 p, float s, vec3 col){naz -= p;if (abs(naz.x) < 0.2*s && abs(naz.y) < 0.2*s){return mix(vec3(0),mix(vec3(0),col,0.1 + fpow(length(naz/s),0.1)*10.0),smoothstep(0.0,0.1,sdHex(naz*20.0/s)));}return vec3(0);}\n vec3 mLs(vec2 naz, vec2 pos){vec2 mni = naz-pos;vec2 zxMp = naz*(length(naz));float ang = atan(mni.x,mni.y);float f0 = .3/(length(naz-pos)*16.0+1.0);f0 = f0*(sin(niz(sin(ang*3.9-(animated ? iTime : 0.0) * 0.3) * starPoints))*.2 );float f1 = max(0.01-pow(length(naz+1.2*pos),1.9),.0)*7.0;float f2 = max(.9/(10.0+32.0*pow(length(zxMp+0.99*pos),2.0)),.0)*0.35;float f22 = max(.9/(11.0+32.0*pow(length(zxMp+0.85*pos),2.0)),.0)*0.23;float f23 = max(.9/(12.0+32.0*pow(length(zxMp+0.95*pos),2.0)),.0)*0.6;vec2 ztX = mix(naz,zxMp, 0.1);float f4 = max(0.01-pow(length(ztX+0.4*pos),2.9),.0)*4.02;float f42 = max(0.0-pow(length(ztX+0.45*pos),2.9),.0)*4.1;float f43 = max(0.01-pow(length(ztX+0.5*pos),2.9),.0)*4.6;ztX = mix(naz,zxMp,-.4);float f5 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;float f52 = max(0.01-pow(length(ztX+0.2*pos),5.5),.0)*2.0;float f53 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;ztX = mix(naz,zxMp, 2.1);float f6 = max(0.01-pow(length(ztX-0.3*pos),1.61),.0)*3.159;float f62 = max(0.01-pow(length(ztX-0.325*pos),1.614),.0)*3.14;float f63 = max(0.01-pow(length(ztX-0.389*pos),1.623),.0)*3.12;vec3 c = vec3(glR(naz,pos, glareSize));vec2 prot;if(animated){prot = rtU(naz - pos, (iTime * 0.1));} else if(anamorphic){prot = rtU(naz - pos, 1.570796);} else {prot = naz - pos;}c += drwF(prot, (anamorphic ? flareSize * 10. : flareSize), 0.1, iTime, 1);c.r+=f1+f2+f4+f5+f6; c.g+=f1+f22+f42+f52+f62; c.b+=f1+f23+f43+f53+f63;c = c*1.3 * vec3(length(zxMp)+.09);c+=vec3(f0);return c;}\n vec3 cc(vec3 clr, float fct,float fct2){float w = clr.x+clr.y+clr.z;return mix(clr,vec3(w)*fct,w*fct2);}float rnd(vec2 p){float f = fract(sin(dot(p, vec2(12.1234, 72.8392) )*45123.2));return f;}float rnd(float w){float f = fract(sin(w)*1000.);return f;}\n float rShp(vec2 p, int N){float f;float a=atan(p.x,p.y)+.2;float b=6.28319/float(N);f=smoothstep(.5,.51, cos(floor(.5+a/b)*b-a)*length(p.xy)* 2.0 -ghostScale);return f;}\n vec3 drC(vec2 p, float zsi, float dCy, vec3 clr, vec3 clr2, float ams2, vec2 esom){float l = length(p + esom*(ams2*2.))+zsi/2.;float l2 = length(p + esom*(ams2*4.))+zsi/3.;float c = max(0.01-pow(length(p + esom*ams2), zsi*ghostScale), 0.0)*10.;float c1 = max(0.001-pow(l-0.3, 1./40.)+sin(l*20.), 0.0)*3.;float c2 = max(0.09/pow(length(p-esom*ams2/.5)*1., .95), 0.0)/20.;float s = max(0.02-pow(rShp(p*5. + esom*ams2*5. + dCy, 6) , 1.), 0.0)*1.5;clr = cos(vec3(0.44, .24, .2)*8. + ams2*4.)*0.5+.5;vec3 f = c*clr;f += c1*clr;f += c2*clr;f += s*clr;return f-0.01;}\n vec4 geLC(float x){return vec4(vec3(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(vec3(0., 0., 0.),vec3(0., 0., 0.), smoothstep(0.0, 0.063, x)),vec3(0., 0., 0.), smoothstep(0.063, 0.125, x)),vec3(0.0, 0., 0.), smoothstep(0.125, 0.188, x)),vec3(0.188, 0.131, 0.116), smoothstep(0.188, 0.227, x)),vec3(0.31, 0.204, 0.537), smoothstep(0.227, 0.251, x)),vec3(0.192, 0.106, 0.286), smoothstep(0.251, 0.314, x)),vec3(0.102, 0.008, 0.341), smoothstep(0.314, 0.392, x)),vec3(0.086, 0.0, 0.141), smoothstep(0.392, 0.502, x)),vec3(1.0, 0.31, 0.0), smoothstep(0.502, 0.604, x)),vec3(.1, 0.1, 0.1), smoothstep(0.604, 0.643, x)),vec3(1.0, 0.929, 0.0), smoothstep(0.643, 0.761, x)),vec3(1.0, 0.086, 0.424), smoothstep(0.761, 0.847, x)),vec3(1.0, 0.49, 0.0), smoothstep(0.847, 0.89, x)),vec3(0.945, 0.275, 0.475), smoothstep(0.89, 0.941, x)),vec3(0.251, 0.275, 0.796), smoothstep(0.941, 1.0, x))),1.0);}\n float diTN(vec2 p){vec2 f = fract(p);f = (f * f) * (3.0 - (2.0 * f));float n = dot(floor(p), vec2(1.0, 157.0));vec4 a = fract(sin(vec4(n + 0.0, n + 1.0, n + 157.0, n + 158.0)) * 43758.5453123);return mix(mix(a.x, a.y, f.x), mix(a.z, a.w, f.x), f.y);}\n float fbm(vec2 p){const mat2 m = mat2(0.80, -0.60, 0.60, 0.80);float f = 0.0;f += 0.5000*diTN(p); p = m*p*2.02;f += 0.2500*diTN(p); p = m*p*2.03;f += 0.1250*diTN(p); p = m*p*2.01;f += 0.0625*diTN(p);return f/0.9375;}\n vec4 geLS(vec2 p){vec2 pp = (p - vec2(0.5)) * 2.0;float a = atan(pp.y, pp.x);vec4 cp = vec4(sin(a * 1.0), length(pp), sin(a * 13.0), sin(a * 53.0));float d = sin(clamp(pow(length(vec2(0.5) - p) * 0.5 + haloScale /2., 5.0), 0.0, 1.0) * 3.14159);vec3 c = vec3(d) * vec3(fbm(cp.xy * 16.0) * fbm(cp.zw * 9.0) * max(max(max(max(0.5, sin(a * 1.0)), sin(a * 3.0) * 0.8), sin(a * 7.0) * 0.8), sin(a * 9.0) * 10.6));c *= vec3(mix(2.0, (sin(length(pp.xy) * 256.0) * 0.5) + 0.5, sin((clamp((length(pp.xy) - 0.875) / 0.1, 0.0, 1.0) + 0.0) * 2.0 * 3.14159) * 1.5) + 0.5) * 0.3275;return vec4(vec3(c * 1.0), d);}\n vec4 geLD(vec2 p){p.xy += vec2(fbm(p.yx * 3.0), fbm(p.yx * 2.0)) * 0.0825;vec3 o = vec3(mix(0.125, 0.25, max(max(smoothstep(0.1, 0.0, length(p - vec2(0.25))),smoothstep(0.4, 0.0, length(p - vec2(0.75)))),smoothstep(0.8, 0.0, length(p - vec2(0.875, 0.125))))));o += vec3(max(fbm(p * 1.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 2.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 4.0) - 0.5, 0.0)) * 0.25;o += vec3(max(fbm(p * 8.0) - 0.75, 0.0)) * 1.0;o += vec3(max(fbm(p * 16.0) - 0.75, 0.0)) * 0.75;o += vec3(max(fbm(p * 64.0) - 0.75, 0.0)) * 0.5;return vec4(clamp(o, vec3(0.15), vec3(1.0)), 1.0);}\n vec4 txL(sampler2D tex, vec2 xtC){if(((xtC.x < 0.) || (xtC.y < 0.)) || ((xtC.x > 1.) || (xtC.y > 1.))){return vec4(0.0);}else{return texture(tex, xtC); }}\n vec4 txD(sampler2D tex, vec2 xtC, vec2 dir, vec3 ditn) {return vec4(txL(tex, (xtC + (dir * ditn.r))).r,txL(tex, (xtC + (dir * ditn.g))).g,txL(tex, (xtC + (dir * ditn.b))).b,1.0);}\n vec4 strB(){vec2 aspXtc = vec2(1.0) - (((vxtC - vec2(0.5)) * vec2(1.0)) + vec2(0.5)); vec2 xtC = vec2(1.0) - vxtC; vec2 ghvc = (vec2(0.5) - xtC) * 0.3 - lensPosition; vec2 ghNm = normalize(ghvc * vec2(1.0)) * vec2(1.0);vec2 haloVec = normalize(ghvc) * 0.6;vec2 hlNm = ghNm * 0.6;vec2 texelSize = vec2(1.0) / vec2(iResolution.xy);vec3 ditn = vec3(-(texelSize.x * 1.5), 0.2, texelSize.x * 1.5);vec4 c = vec4(0.0);for (int i = 0; i < 8; i++) {vec2 offset = xtC + (ghvc * float(i));c += txD(lensDirtTexture, offset, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - offset) / length(vec2(0.5)))), 10.0);}vec2 uyTrz = xtC + hlNm; return (c * geLC((length(vec2(0.5) - aspXtc) / length(vec2(haloScale))))) +(txD(lensDirtTexture, uyTrz, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - uyTrz) / length(vec2(0.5)))), 10.0));}\n void mainImage(vec4 v,vec2 r,out vec4 i){vec2 g=r-.5;g.y*=iResolution.y/iResolution.x;vec2 l=lensPosition*.5;l.y*=iResolution.y/iResolution.x;vec3 f=mLs(g,l)*20.*colorGain/256.;if(aditionalStreaks){vec3 o=vec3(.9,.2,.1),p=vec3(.3,.1,.9);for(float n=0.;n<10.;n++)f+=drC(g,pow(rnd(n*2e3)*2.8,.1)+1.41,0.,o+n,p+n,rnd(n*20.)*3.+.2-.5,lensPosition);}if(secondaryGhosts){vec3 n=vec3(0);n+=rHx(g,-lensPosition*.25,ghostScale*1.4,vec3(.25,.35,0));n+=rHx(g,lensPosition*.25,ghostScale*.5,vec3(1,.5,.5));n+=rHx(g,lensPosition*.1,ghostScale*1.6,vec3(1));n+=rHx(g,lensPosition*1.8,ghostScale*2.,vec3(0,.5,.75));n+=rHx(g,lensPosition*1.25,ghostScale*.8,vec3(1,1,.5));n+=rHx(g,-lensPosition*1.25,ghostScale*5.,vec3(.5,.5,.25));n+=fpow(1.-abs(distance(lensPosition*.8,g)-.7),.985)*colorGain/2100.;f+=n;}if(starBurst){vxtC=g+.5;vec4 n=geLD(g);float o=1.-clamp(0.5,0.,.5)*2.;n+=mix(n,pow(n*2.,vec4(2))*.5,o);float s=(g.x+g.y)*(1./6.);vec2 d=mat2(cos(s),-sin(s),sin(s),cos(s))*vxtC;n+=geLS(d)*2.;f+=clamp(n.xyz*strB().xyz,.01,1.);}i=enabled?vec4(mix(f,vec3(0),opacity)+v.xyz,v.w):vec4(v);}\n`,\n};\nexport class LensFlareEffect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, enabled = true, glareSize = 0.2, lensPosition = [0.01, 0.01], iResolution = [0, 0], starPoints = 6, flareSize = 0.01, flareSpeed = 0.01, flareShape = 0.01, animated = true, anamorphic = false, colorGain = new THREE.Color(20, 20, 20), lensDirtTexture = null, haloScale = 0.5, secondaryGhosts = true, aditionalStreaks = true, ghostScale = 0.0, opacity = 1.0, starBurst = false, } = {}) {\n super('LensFlareEffect', LensFlareShader.fragmentShader, {\n blendFunction,\n uniforms: new Map([\n ['enabled', new THREE.Uniform(enabled)],\n ['glareSize', new THREE.Uniform(glareSize)],\n ['lensPosition', new THREE.Uniform(lensPosition)],\n ['iTime', new THREE.Uniform(0)],\n ['iResolution', new THREE.Uniform(iResolution)],\n ['starPoints', new THREE.Uniform(starPoints)],\n ['flareSize', new THREE.Uniform(flareSize)],\n ['flareSpeed', new THREE.Uniform(flareSpeed)],\n ['flareShape', new THREE.Uniform(flareShape)],\n ['animated', new THREE.Uniform(animated)],\n ['anamorphic', new THREE.Uniform(anamorphic)],\n ['colorGain', new THREE.Uniform(colorGain)],\n ['lensDirtTexture', new THREE.Uniform(lensDirtTexture)],\n ['haloScale', new THREE.Uniform(haloScale)],\n ['secondaryGhosts', new THREE.Uniform(secondaryGhosts)],\n ['aditionalStreaks', new THREE.Uniform(aditionalStreaks)],\n ['ghostScale', new THREE.Uniform(ghostScale)],\n ['starBurst', new THREE.Uniform(starBurst)],\n ['opacity', new THREE.Uniform(opacity)],\n ]),\n });\n }\n update(_renderer, _inputBuffer, deltaTime) {\n const iTime = this.uniforms.get('iTime');\n if (iTime) {\n iTime.value += deltaTime;\n }\n }\n}\nconst defaultOptions = {\n position: new THREE.Vector3(-25, 6, -60),\n followMouse: false,\n smoothTime: 0.7,\n};\nexport class NgtpLensFlare {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.store = injectStore();\n this.effectComposer = inject(NgtpEffectComposer);\n this.effectOptions = omit(this.options, ['position', 'followMouse', 'smoothTime']);\n this.position = vector3(this.options, 'position');\n this.projectedPosition = new THREE.Vector3();\n this.mouse2d = new THREE.Vector2();\n this.effect = computed(() => new LensFlareEffect(this.effectOptions()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [lensFlareEffect, width, height] = [\n this.effect(),\n this.store.viewport.width(),\n this.store.viewport.height(),\n ];\n const iResolution = lensFlareEffect.uniforms.get('iResolution');\n if (iResolution) {\n iResolution.value.x = width;\n iResolution.value.y = height;\n }\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n beforeRender(({ delta }) => {\n const [effect] = [this.effect()];\n if (!effect)\n return;\n const [{ followMouse, smoothTime }, position, pointer, camera, scene, raycaster] = [\n this.options(),\n this.position(),\n this.store.snapshot.pointer,\n this.effectComposer.camera(),\n this.effectComposer.scene(),\n this.store.snapshot.raycaster,\n ];\n const uLensPosition = effect.uniforms.get('lensPosition');\n const uOpacity = effect.uniforms.get('opacity');\n if (!uLensPosition || !uOpacity)\n return;\n let target = 1;\n if (followMouse) {\n uLensPosition.value.x = pointer.x;\n uLensPosition.value.y = pointer.y;\n target = 0;\n }\n else {\n this.projectedPosition.copy(position).project(camera);\n if (this.projectedPosition.z > 1)\n return;\n uLensPosition.value.x = this.projectedPosition.x;\n uLensPosition.value.y = this.projectedPosition.y;\n this.mouse2d.set(this.projectedPosition.x, this.projectedPosition.y);\n raycaster.setFromCamera(this.mouse2d, camera);\n const intersects = raycaster.intersectObjects(scene.children, true);\n const { object } = intersects[0] ?? {};\n if (object) {\n if (object.userData?.['lensflare'] === 'no-occlusion') {\n target = 0;\n }\n else if (is.three(object, 'isMesh')) {\n if (object.material.uniforms?.['_transmission']?.value > 0.2) {\n //Check for MeshTransmissionMaterial\n target = 0.2;\n }\n else if ('_transmission' in object.material &&\n typeof object.material._transmission === 'number' &&\n object.material._transmission > 0.2) {\n //Check for MeshPhysicalMaterial with transmission setting\n target = 0.2;\n }\n else if (object.material.transparent) {\n // Check for OtherMaterials with transparent parameter\n target = object.material.opacity;\n }\n }\n }\n }\n easing.damp(uOpacity, 'value', target, smoothTime, delta);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpLensFlare, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpLensFlare, isStandalone: true, selector: \"ngtp-lens-flare\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpLensFlare, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-lens-flare',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVucy1mbGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2xlbnMtZmxhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLHVDQUF1QztBQUV2QyxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV4RCxNQUFNLGVBQWUsR0FBRztJQUN2QixjQUFjLEVBQUUsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEN6QztDQUNBLENBQUM7QUFFRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxNQUFNO0lBQzFDLFlBQVksRUFDWCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFDcEMsT0FBTyxHQUFHLElBQUksRUFDZCxTQUFTLEdBQUcsR0FBRyxFQUNmLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFDM0IsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FB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RlcsYUFBYTtrR0FBYixhQUFhLHFOQVBmOztFQUVULDREQUNTLE9BQU87OzJGQUlMLGFBQWE7a0JBVHpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENyZWF0ZWQgYnkgQW5kZXJzb24gTWFuY2luaSAyMDIzXG4vLyBSZWFjdCBUaHJlZSBGaWJlciBVbHRpbWF0ZSBMZW5zRmxhcmVcblxuaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBOZ3RWZWN0b3IzLCBiZWZvcmVSZW5kZXIsIGluamVjdFN0b3JlLCBpcywgb21pdCwgdmVjdG9yMyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgZWFzaW5nIH0gZnJvbSAnbWFhdGgnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxuY29uc3QgTGVuc0ZsYXJlU2hhZGVyID0ge1xuXHRmcmFnbWVudFNoYWRlcjogLyogbGFuZ3VhZ2U9Z2xzbCBnbHNsICovIGBcblxuICB1bmlmb3JtIGZsb2F0IGlUaW1lO1xuICB1bmlmb3JtIHZlYzIgbGVuc1Bvc2l0aW9uO1xuICB1bmlmb3JtIHZlYzIgaVJlc29sdXRpb247XG4gIHVuaWZvcm0gdmVjMyBjb2xvckdhaW47XG4gIHVuaWZvcm0gZmxvYXQgc3RhclBvaW50cztcbiAgdW5pZm9ybSBmbG9hdCBnbGFyZVNpemU7XG4gIHVuaWZvcm0gZmxvYXQgZmxhcmVTaXplO1xuICB1bmlmb3JtIGZsb2F0IGZsYXJlU3BlZWQ7XG4gIHVuaWZvcm0gZmxvYXQgZmxhcmVTaGFwZTtcbiAgdW5pZm9ybSBmbG9hdCBoYWxvU2NhbGU7XG4gIHVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiAgdW5pZm9ybSBib29sIGFuaW1hdGVkO1xuICB1bmlmb3JtIGJvb2wgYW5hbW9ycGhpYztcbiAgdW5pZm9ybSBib29sIGVuYWJsZWQ7XG4gIHVuaWZvcm0gYm9vbCBzZWNvbmRhcnlHaG9zdHM7XG4gIHVuaWZvcm0gYm9vbCBzdGFyQnVyc3Q7XG4gIHVuaWZvcm0gZmxvYXQgZ2hvc3RTY2FsZTtcbiAgdW5pZm9ybSBib29sIGFkaXRpb25hbFN0cmVha3M7XG4gIHVuaWZvcm0gc2FtcGxlcjJEIGxlbnNEaXJ0VGV4dHVyZTtcbiAgdmVjMiB2eHRDO1xuXG4gIGZsb2F0IHJuZGYoZmxvYXQgbil7cmV0dXJuIGZyYWN0KHNpbihuKSAqIDQzNzU4LjU0NTMxMjMpO31mbG9hdCBuaXooZmxvYXQgcCl7ZmxvYXQgZmwgPSBmbG9vcihwKTtmbG9hdCBmYyA9IGZyYWN0KHApO3JldHVybiBtaXgocm5kZihmbCkscm5kZihmbCArIDEuMCksIGZjKTt9XG4gIHZlYzMgaHN2MnJnYih2ZWMzIGMpe3ZlYzQgayA9IHZlYzQoMS4wLCAyLjAgLyAzLjAsIDEuMCAvIDMuMCwgMy4wKTt2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBrLnh5eikgKiA2LjAgLSBrLnd3dyk7cmV0dXJuIGMueiAqIG1peChrLnh4eCwgY2xhbXAocCAtIGsueHh4LCAwLjAsIDEuMCksIGMueSk7fVxuICBmbG9hdCBzYXRVKGZsb2F0IHgpe3JldHVybiBjbGFtcCh4LCAwLiwxLik7fXZlYzIgcnRVKHZlYzIgbmF6LCBmbG9hdCBydG4pe3JldHVybiB2ZWMyKGNvcyhydG4pICogbmF6LnggKyBzaW4ocnRuKSAqIG5hei55LGNvcyhydG4pICogbmF6LnkgLSBzaW4ocnRuKSAqIG5hei54KTt9XG4gIHZlYzMgZHJ3Rih2ZWMyIHAsIGZsb2F0IGludGVuc2l0eSwgZmxvYXQgcm5kLCBmbG9hdCBzcGVlZCwgaW50IGlkKXtmbG9hdCBmbGhvcyA9ICgxLiAvIDMyLikgKiBmbG9hdChpZCkgKiAwLjE7ZmxvYXQgbGluZ3JhZCA9IGRpc3RhbmNlKHZlYzIoMC4pLCBwKTtmbG9hdCBleHBnID0gMS4gLyBleHAobGluZ3JhZCAqIChmcmFjdChybmQpICogMC42NiArIDAuMzMpKTt2ZWMzIHF6VGcgPSBoc3YycmdiKHZlYzMoIGZyYWN0KCAoZXhwZyAqIDguKSArIHNwZWVkICogZmxhcmVTcGVlZCArIGZsaG9zKSwgcG93KDEuLWFicyhleHBnKjIuLTEuKSwgMC40NSksIDIwLjAgKiBleHBnICogaW50ZW5zaXR5KSk7ZmxvYXQgaW50ZXJuYWxTdGFyUG9pbnRzO2lmKGFuYW1vcnBoaWMpe2ludGVybmFsU3RhclBvaW50cyA9IDEuMDt9IGVsc2V7aW50ZXJuYWxTdGFyUG9pbnRzID0gc3RhclBvaW50czt9ZmxvYXQgYW1zID0gbGVuZ3RoKHAgKiBmbGFyZVNoYXBlICogc2luKGludGVybmFsU3RhclBvaW50cyAqIGF0YW4ocC54LCBwLnkpKSk7ZmxvYXQga0poZyA9IHBvdygxLi1zYXRVKGFtcyksICggYW5hbW9ycGhpYyA/IDEwMC4gOiAxMi4pKTtrSmhnICs9IHNhdFUoZXhwZy0wLjkpICogMy47a0poZyA9IHBvdyhrSmhnICogZXhwZywgOC4gKyAoMS4taW50ZW5zaXR5KSAqIDUuKTtpZihmbGFyZVNwZWVkID4gMC4wKXtyZXR1cm4gdmVjMyhrSmhnKSAqIHF6VGc7fSBlbHNle3JldHVybiB2ZWMzKGtKaGcpICogZmxhcmVTaXplICogMTUuO319XG4gIGZsb2F0IGFtczIodmVjMyBhLCB2ZWMzIGIpIHsgcmV0dXJuIGFicyhhLnggLSBiLngpICsgYWJzKGEueSAtIGIueSkgKyBhYnMoYS56IC0gYi56KTt9dmVjMyBzYXRVKHZlYzMgeCl7cmV0dXJuIGNsYW1wKHgsIHZlYzMoMC4wKSwgdmVjMygxLjApKTt9XG4gIGZsb2F0IGdsUih2ZWMyIG5heiwgdmVjMiBwb3MsIGZsb2F0IHpzaSl7dmVjMiBtbmk7aWYoYW5pbWF0ZWQpe21uaSA9IHJ0VShuYXotcG9zLCBpVGltZSAqIDAuMSk7fSBlbHNle21uaSA9IG5hei1wb3M7fWZsb2F0IGFuZyA9IGF0YW4obW5pLnksIG1uaS54KSAqIChhbmFtb3JwaGljID8gMS4wIDogc3RhclBvaW50cyk7ZmxvYXQgYW1zMiA9IGxlbmd0aChtbmkpO2FtczIgPSBwb3coYW1zMiwgLjkpO2Zsb2F0IGYwID0gMS4wLyhsZW5ndGgobmF6LXBvcykqKDEuMC96c2kqMTYuMCkrLjIpO3JldHVybiBmMCtmMCooc2luKChhbmcpKSouMiArLjMpO31cbiAgZmxvYXQgc2RIZXgodmVjMiBwKXtwID0gYWJzKHApO3ZlYzIgcSA9IHZlYzIocC54KjIuMCowLjU3NzM1MDMsIHAueSArIHAueCowLjU3NzM1MDMpO3JldHVybiBkb3Qoc3RlcChxLnh5LHEueXgpLCAxLjAtcS55eCk7fWZsb2F0IGZwb3coZmxvYXQgeCwgZmxvYXQgayl7cmV0dXJuIHggPiBrID8gcG93KCh4LWspLygxLjAtayksMi4wKSA6IDAuMDt9XG4gIHZlYzMgckh4KHZlYzIgbmF6LCB2ZWMyIHAsIGZsb2F0IHMsIHZlYzMgY29sKXtuYXogLT0gcDtpZiAoYWJzKG5hei54KSA8IDAuMipzICYmIGFicyhuYXoueSkgPCAwLjIqcyl7cmV0dXJuIG1peCh2ZWMzKDApLG1peCh2ZWMzKDApLGNvbCwwLjEgKyBmcG93KGxlbmd0aChuYXovcyksMC4xKSoxMC4wKSxzbW9vdGhzdGVwKDAuMCwwLjEsc2RIZXgobmF6KjIwLjAvcykpKTt9cmV0dXJuIHZlYzMoMCk7fVxuICB2ZWMzIG1Mcyh2ZWMyIG5heiwgdmVjMiBwb3Mpe3ZlYzIgbW5pID0gbmF6LXBvczt2ZWMyIHp4TXAgPSBuYXoqKGxlbmd0aChuYXopKTtmbG9hdCBhbmcgPSBhdGFuKG1uaS54LG1uaS55KTtmbG9hdCBmMCA9IC4zLyhsZW5ndGgobmF6LXBvcykqMTYuMCsxLjApO2YwID0gZjAqKHNpbihuaXooc2luKGFuZyozLjktKGFuaW1hdGVkID8gaVRpbWUgOiAwLjApICogMC4zKSAqIHN0YXJQb2ludHMpKSouMiApO2Zsb2F0IGYxID0gbWF4KDAuMDEtcG93KGxlbmd0aChuYXorMS4yKnBvcyksMS45KSwuMCkqNy4wO2Zsb2F0IGYyID0gbWF4KC45LygxMC4wKzMyLjAqcG93KGxlbmd0aCh6eE1wKzAuOTkqcG9zKSwyLjApKSwuMCkqMC4zNTtmbG9hdCBmMjIgPSBtYXgoLjkvKDExLjArMzIuMCpwb3cobGVuZ3RoKHp4TXArMC44NSpwb3MpLDIuMCkpLC4wKSowLjIzO2Zsb2F0IGYyMyA9IG1heCguOS8oMTIuMCszMi4wKnBvdyhsZW5ndGgoenhNcCswLjk1KnBvcyksMi4wKSksLjApKjAuNjt2ZWMyIHp0WCA9IG1peChuYXosenhNcCwgMC4xKTtmbG9hdCBmNCA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuNCpwb3MpLDIuOSksLjApKjQuMDI7ZmxvYXQgZjQyID0gbWF4KDAuMC1wb3cobGVuZ3RoKHp0WCswLjQ1KnBvcyksMi45KSwuMCkqNC4xO2Zsb2F0IGY0MyA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuNSpwb3MpLDIuOSksLjApKjQuNjt6dFggPSBtaXgobmF6LHp4TXAsLS40KTtmbG9hdCBmNSA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuMSpwb3MpLDUuNSksLjApKjIuMDtmbG9hdCBmNTIgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WCswLjIqcG9zKSw1LjUpLC4wKSoyLjA7ZmxvYXQgZjUzID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgrMC4xKnBvcyksNS41KSwuMCkqMi4wO3p0WCA9IG1peChuYXosenhNcCwgMi4xKTtmbG9hdCBmNiA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYLTAuMypwb3MpLDEuNjEpLC4wKSozLjE1OTtmbG9hdCBmNjIgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WC0wLjMyNSpwb3MpLDEuNjE0KSwuMCkqMy4xNDtmbG9hdCBmNjMgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WC0wLjM4OSpwb3MpLDEuNjIzKSwuMCkqMy4xMjt2ZWMzIGMgPSB2ZWMzKGdsUihuYXoscG9zLCBnbGFyZVNpemUpKTt2ZWMyIHByb3Q7aWYoYW5pbWF0ZWQpe3Byb3QgPSBydFUobmF6IC0gcG9zLCAoaVRpbWUgKiAwLjEpKTt9IGVsc2UgaWYoYW5hbW9ycGhpYyl7cHJvdCA9IHJ0VShuYXogLSBwb3MsIDEuNTcwNzk2KTt9IGVsc2Uge3Byb3QgPSBuYXogLSBwb3M7fWMgKz0gZHJ3Rihwcm90LCAoYW5hbW9ycGhpYyA/IGZsYXJlU2l6ZSAqIDEwLiA6IGZsYXJlU2l6ZSksIDAuMSwgaVRpbWUsIDEpO2Mucis9ZjErZjIrZjQrZjUrZjY7IGMuZys9ZjErZjIyK2Y0MitmNTIrZjYyOyBjLmIrPWYxK2YyMytmNDMrZjUzK2Y2MztjID0gYyoxLjMgKiB2ZWMzKGxlbmd0aCh6eE1wKSsuMDkpO2MrPXZlYzMoZjApO3JldHVybiBjO31cbiAgdmVjMyBjYyh2ZWMzIGNsciwgZmxvYXQgZmN0LGZsb2F0IGZjdDIpe2Zsb2F0IHcgPSBjbHIueCtjbHIueStjbHIuejtyZXR1cm4gbWl4KGNscix2ZWMzKHcpKmZjdCx3KmZjdDIpO31mbG9hdCBybmQodmVjMiBwKXtmbG9hdCBmID0gZnJhY3Qoc2luKGRvdChwLCB2ZWMyKDEyLjEyMzQsIDcyLjgzOTIpICkqNDUxMjMuMikpO3JldHVybiBmO31mbG9hdCBybmQoZmxvYXQgdyl7ZmxvYXQgZiA9IGZyYWN0KHNpbih3KSoxMDAwLik7cmV0dXJuIGY7fVxuICBmbG9hdCByU2hwKHZlYzIgcCwgaW50IE4pe2Zsb2F0IGY7ZmxvYXQgYT1hdGFuKHAueCxwLnkpKy4yO2Zsb2F0IGI9Ni4yODMxOS9mbG9hdChOKTtmPXNtb290aHN0ZXAoLjUsLjUxLCBjb3MoZmxvb3IoLjUrYS9iKSpiLWEpKmxlbmd0aChwLnh5KSogMi4wICAtZ2hvc3RTY2FsZSk7cmV0dXJuIGY7fVxuICB2ZWMzIGRyQyh2ZWMyIHAsIGZsb2F0IHpzaSwgZmxvYXQgZEN5LCB2ZWMzIGNsciwgdmVjMyBjbHIyLCBmbG9hdCBhbXMyLCB2ZWMyIGVzb20pe2Zsb2F0IGwgPSBsZW5ndGgocCArIGVzb20qKGFtczIqMi4pKSt6c2kvMi47ZmxvYXQgbDIgPSBsZW5ndGgocCArIGVzb20qKGFtczIqNC4pKSt6c2kvMy47ZmxvYXQgYyA9IG1heCgwLjAxLXBvdyhsZW5ndGgocCArIGVzb20qYW1zMiksIHpzaSpnaG9zdFNjYWxlKSwgMC4wKSoxMC47ZmxvYXQgYzEgPSBtYXgoMC4wMDEtcG93KGwtMC4zLCAxLi80MC4pK3NpbihsKjIwLiksIDAuMCkqMy47ZmxvYXQgYzIgPSAgbWF4KDAuMDkvcG93KGxlbmd0aChwLWVzb20qYW1zMi8uNSkqMS4sIC45NSksIDAuMCkvMjAuO2Zsb2F0IHMgPSBtYXgoMC4wMi1wb3coclNocChwKjUuICsgZXNvbSphbXMyKjUuICsgZEN5LCA2KSAsIDEuKSwgMC4wKSoxLjU7Y2xyID0gY29zKHZlYzMoMC40NCwgLjI0LCAuMikqOC4gKyBhbXMyKjQuKSowLjUrLjU7dmVjMyBmID0gYypjbHI7ZiArPSBjMSpjbHI7ZiArPSBjMipjbHI7ZiArPSAgcypjbHI7cmV0dXJuIGYtMC4wMTt9XG4gIHZlYzQgZ2VMQyhmbG9hdCB4KXtyZXR1cm4gdmVjNCh2ZWMzKG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KHZlYzMoMC4sIDAuLCAwLiksdmVjMygwLiwgMC4sIDAuKSwgc21vb3Roc3RlcCgwLjAsIDAuMDYzLCB4KSksdmVjMygwLiwgMC4sIDAuKSwgc21vb3Roc3RlcCgwLjA2MywgMC4xMjUsIHgpKSx2ZWMzKDAuMCwgMC4sIDAuKSwgc21vb3Roc3RlcCgwLjEyNSwgMC4xODgsIHgpKSx2ZWMzKDAuMTg4LCAwLjEzMSwgMC4xMTYpLCBzbW9vdGhzdGVwKDAuMTg4LCAwLjIyNywgeCkpLHZlYzMoMC4zMSwgMC4yMDQsIDAuNTM3KSwgc21vb3Roc3RlcCgwLjIyNywgMC4yNTEsIHgpKSx2ZWMzKDAuMTkyLCAwLjEwNiwgMC4yODYpLCBzbW9vdGhzdGVwKDAuMjUxLCAwLjMxNCwgeCkpLHZlYzMoMC4xMDIsIDAuMDA4LCAwLjM0MSksIHNtb290aHN0ZXAoMC4zMTQsIDAuMzkyLCB4KSksdmVjMygwLjA4NiwgMC4wLCAwLjE0MSksIHNtb290aHN0ZXAoMC4zOTIsIDAuNTAyLCB4KSksdmVjMygxLjAsIDAuMzEsIDAuMCksIHNtb290aHN0ZXAoMC41MDIsIDAuNjA0LCB4KSksdmVjMyguMSwgMC4xLCAwLjEpLCBzbW9vdGhzdGVwKDAuNjA0LCAwLjY0MywgeCkpLHZlYzMoMS4wLCAwLjkyOSwgMC4wKSwgc21vb3Roc3RlcCgwLjY0MywgMC43NjEsIHgpKSx2ZWMzKDEuMCwgMC4wODYsIDAuNDI0KSwgc21vb3Roc3RlcCgwLjc2MSwgMC44NDcsIHgpKSx2ZWMzKDEuMCwgMC40OSwgMC4wKSwgc21vb3Roc3RlcCgwLjg0NywgMC44OSwgeCkpLHZlYzMoMC45NDUsIDAuMjc1LCAwLjQ3NSksIHNtb290aHN0ZXAoMC44OSwgMC45NDEsIHgpKSx2ZWMzKDAuMjUxLCAwLjI3NSwgMC43OTYpLCBzbW9vdGhzdGVwKDAuOTQxLCAxLjAsIHgpKSksMS4wKTt9XG4gIGZsb2F0IGRpVE4odmVjMiBwKXt2ZWMyIGYgPSBmcmFjdChwKTtmID0gKGYgKiBmKSAqICgzLjAgLSAoMi4wICogZikpO2Zsb2F0IG4gPSBkb3QoZmxvb3IocCksIHZlYzIoMS4wLCAxNTcuMCkpO3ZlYzQgYSA9IGZyYWN0KHNpbih2ZWM0KG4gKyAwLjAsIG4gKyAxLjAsIG4gKyAxNTcuMCwgbiArIDE1OC4wKSkgKiA0Mzc1OC41NDUzMTIzKTtyZXR1cm4gbWl4KG1peChhLngsIGEueSwgZi54KSwgbWl4KGEueiwgYS53LCBmLngpLCBmLnkpO31cbiAgZmxvYXQgZmJtKHZlYzIgcCl7Y29uc3QgbWF0MiBtID0gbWF0MigwLjgwLCAtMC42MCwgMC42MCwgMC44MCk7ZmxvYXQgZiA9IDAuMDtmICs9IDAuNTAwMCpkaVROKHApOyBwID0gbSpwKjIuMDI7ZiArPSAwLjI1MDAqZGlUTihwKTsgcCA9IG0qcCoyLjAzO2YgKz0gMC4xMjUwKmRpVE4ocCk7IHAgPSBtKnAqMi4wMTtmICs9IDAuMDYyNSpkaVROKHApO3JldHVybiBmLzAuOTM3NTt9XG4gIHZlYzQgZ2VMUyh2ZWMyIHApe3ZlYzIgcHAgPSAocCAtIHZlYzIoMC41KSkgKiAyLjA7ZmxvYXQgYSA9IGF0YW4ocHAueSwgcHAueCk7dmVjNCBjcCA9IHZlYzQoc2luKGEgKiAxLjApLCBsZW5ndGgocHApLCBzaW4oYSAqIDEzLjApLCBzaW4oYSAqIDUzLjApKTtmbG9hdCBkID0gc2luKGNsYW1wKHBvdyhsZW5ndGgodmVjMigwLjUpIC0gcCkgKiAwLjUgKyBoYWxvU2NhbGUgLzIuLCA1LjApLCAwLjAsIDEuMCkgKiAzLjE0MTU5KTt2ZWMzIGMgPSB2ZWMzKGQpICogdmVjMyhmYm0oY3AueHkgKiAxNi4wKSAqIGZibShjcC56dyAqIDkuMCkgKiBtYXgobWF4KG1heChtYXgoMC41LCBzaW4oYSAqIDEuMCkpLCBzaW4oYSAqIDMuMCkgKiAwLjgpLCBzaW4oYSAqIDcuMCkgKiAwLjgpLCBzaW4oYSAqIDkuMCkgKiAxMC42KSk7YyAqPSB2ZWMzKG1peCgyLjAsIChzaW4obGVuZ3RoKHBwLnh5KSAqIDI1Ni4wKSAqIDAuNSkgKyAwLjUsIHNpbigoY2xhbXAoKGxlbmd0aChwcC54eSkgLSAwLjg3NSkgLyAwLjEsIDAuMCwgMS4wKSArIDAuMCkgKiAyLjAgKiAzLjE0MTU5KSAqIDEuNSkgKyAwLjUpICogMC4zMjc1O3JldHVybiB2ZWM0KHZlYzMoYyAqIDEuMCksIGQpO31cbiAgdmVjNCBnZUxEKHZlYzIgcCl7cC54eSArPSB2ZWMyKGZibShwLnl4ICogMy4wKSwgZmJtKHAueXggKiAyLjApKSAqIDAuMDgyNTt2ZWMzIG8gPSB2ZWMzKG1peCgwLjEyNSwgMC4yNSwgbWF4KG1heChzbW9vdGhzdGVwKDAuMSwgMC4wLCBsZW5ndGgocCAtIHZlYzIoMC4yNSkpKSxzbW9vdGhzdGVwKDAuNCwgMC4wLCBsZW5ndGgocCAtIHZlYzIoMC43NSkpKSksc21vb3Roc3RlcCgwLjgsIDAuMCwgbGVuZ3RoKHAgLSB2ZWMyKDAuODc1LCAwLjEyNSkpKSkpKTtvICs9IHZlYzMobWF4KGZibShwICogMS4wKSAtIDAuNSwgMC4wKSkgKiAwLjU7byArPSB2ZWMzKG1heChmYm0ocCAqIDIuMCkgLSAwLjUsIDAuMCkpICogMC41O28gKz0gdmVjMyhtYXgoZmJtKHAgKiA0LjApIC0gMC41LCAwLjApKSAqIDAuMjU7byArPSB2ZWMzKG1heChmYm0ocCAqIDguMCkgLSAwLjc1LCAwLjApKSAqIDEuMDtvICs9IHZlYzMobWF4KGZibShwICogMTYuMCkgLSAwLjc1LCAwLjApKSAqIDAuNzU7byArPSB2ZWMzKG1heChmYm0ocCAqIDY0LjApIC0gMC43NSwgMC4wKSkgKiAwLjU7cmV0dXJuIHZlYzQoY2xhbXAobywgdmVjMygwLjE1KSwgdmVjMygxLjApKSwgMS4wKTt9XG4gIHZlYzQgdHhMKHNhbXBsZXIyRCB0ZXgsIHZlYzIgeHRDKXtpZigoKHh0Qy54IDwgMC4pIHx8ICh4dEMueSA8IDAuKSkgfHwgKCh4dEMueCA+IDEuKSB8fCAoeHRDLnkgPiAxLikpKXtyZXR1cm4gdmVjNCgwLjApO31lbHNle3JldHVybiB0ZXh0dXJlKHRleCwgeHRDKTsgfX1cbiAgdmVjNCB0eEQoc2FtcGxlcjJEIHRleCwgdmVjMiB4dEMsIHZlYzIgZGlyLCB2ZWMzIGRpdG4pIHtyZXR1cm4gdmVjNCh0eEwodGV4LCAoeHRDICsgKGRpciAqIGRpdG4ucikpKS5yLHR4TCh0ZXgsICh4dEMgKyAoZGlyICogZGl0bi5nKSkpLmcsdHhMKHRleCwgKHh0QyArIChkaXIgKiBkaXRuLmIpKSkuYiwxLjApO31cbiAgdmVjNCBzdHJCKCl7dmVjMiBhc3BYdGMgPSB2ZWMyKDEuMCkgLSAoKCh2eHRDIC0gdmVjMigwLjUpKSAqIHZlYzIoMS4wKSkgKyB2ZWMyKDAuNSkpOyB2ZWMyIHh0QyA9IHZlYzIoMS4wKSAtIHZ4dEM7IHZlYzIgZ2h2YyA9ICh2ZWMyKDAuNSkgLSB4dEMpICogMC4zIC0gbGVuc1Bvc2l0aW9uOyB2ZWMyIGdoTm0gPSBub3JtYWxpemUoZ2h2YyAqIHZlYzIoMS4wKSkgKiB2ZWMyKDEuMCk7dmVjMiBoYWxvVmVjID0gbm9ybWFsaXplKGdodmMpICogMC42O3ZlYzIgaGxObSA9IGdoTm0gKiAwLjY7dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKDEuMCkgLyB2ZWMyKGlSZXNvbHV0aW9uLnh5KTt2ZWMzIGRpdG4gPSB2ZWMzKC0odGV4ZWxTaXplLnggKiAxLjUpLCAwLjIsIHRleGVsU2l6ZS54ICogMS41KTt2ZWM0IGMgPSB2ZWM0KDAuMCk7Zm9yIChpbnQgaSA9IDA7IGkgPCA4OyBpKyspIHt2ZWMyIG9mZnNldCA9IHh0QyArIChnaHZjICogZmxvYXQoaSkpO2MgKz0gdHhEKGxlbnNEaXJ0VGV4dHVyZSwgb2Zmc2V0LCBnaE5tLCBkaXRuKSAqIHBvdyhtYXgoMC4wLCAxLjAgLSAobGVuZ3RoKHZlYzIoMC41KSAtIG9mZnNldCkgLyBsZW5ndGgodmVjMigwLjUpKSkpLCAxMC4wKTt9dmVjMiB1eVRyeiA9IHh0QyArIGhsTm07IHJldHVybiAoYyAqIGdlTEMoKGxlbmd0aCh2ZWMyKDAuNSkgLSBhc3BYdGMpIC8gbGVuZ3RoKHZlYzIoaGFsb1NjYWxlKSkpKSkgKyh0eEQobGVuc0RpcnRUZXh0dXJlLCB1eVRyeiwgZ2hObSwgZGl0bikgKiBwb3cobWF4KDAuMCwgMS4wIC0gKGxlbmd0aCh2ZWMyKDAuNSkgLSB1eVRyeikgLyBsZW5ndGgodmVjMigwLjUpKSkpLCAxMC4wKSk7fVxuICB2b2lkIG1haW5JbWFnZSh2ZWM0IHYsdmVjMiByLG91dCB2ZWM0IGkpe3ZlYzIgZz1yLS41O2cueSo9aVJlc29sdXRpb24ueS9pUmVzb2x1dGlvbi54O3ZlYzIgbD1sZW5zUG9zaXRpb24qLjU7bC55Kj1pUmVzb2x1dGlvbi55L2lSZXNvbHV0aW9uLng7dmVjMyBmPW1McyhnLGwpKjIwLipjb2xvckdhaW4vMjU2LjtpZihhZGl0aW9uYWxTdHJlYWtzKXt2ZWMzIG89dmVjMyguOSwuMiwuMSkscD12ZWMzKC4zLC4xLC45KTtmb3IoZmxvYXQgbj0wLjtuPDEwLjtuKyspZis9ZHJDKGcscG93KHJuZChuKjJlMykqMi44LC4xKSsxLjQxLDAuLG8rbixwK24scm5kKG4qMjAuKSozLisuMi0uNSxsZW5zUG9zaXRpb24pO31pZihzZWNvbmRhcnlHaG9zdHMpe3ZlYzMgbj12ZWMzKDApO24rPXJIeChnLC1sZW5zUG9zaXRpb24qLjI1LGdob3N0U2NhbGUqMS40LHZlYzMoLjI1LC4zNSwwKSk7bis9ckh4KGcsbGVuc1Bvc2l0aW9uKi4yNSxnaG9zdFNjYWxlKi41LHZlYzMoMSwuNSwuNSkpO24rPXJIeChnLGxlbnNQb3NpdGlvbiouMSxnaG9zdFNjYWxlKjEuNix2ZWMzKDEpKTtuKz1ySHgoZyxsZW5zUG9zaXRpb24qMS44LGdob3N0U2NhbGUqMi4sdmVjMygwLC41LC43NSkpO24rPXJIeChnLGxlbnNQb3NpdGlvbioxLjI1LGdob3N0U2NhbGUqLjgsdmVjMygxLDEsLjUpKTtuKz1ySHgoZywtbGVuc1Bvc2l0aW9uKjEuMjUsZ2hvc3RTY2FsZSo1Lix2ZWMzKC41LC41LC4yNSkpO24rPWZwb3coMS4tYWJzKGRpc3RhbmNlKGxlbnNQb3NpdGlvbiouOCxnKS0uNyksLjk4NSkqY29sb3JHYWluLzIxMDAuO2YrPW47fWlmKHN0YXJCdXJzdCl7dnh0Qz1nKy41O3ZlYzQgbj1nZUxEKGcpO2Zsb2F0IG89MS4tY2xhbXAoMC41LDAuLC41KSoyLjtuKz1taXgobixwb3cobioyLix2ZWM0KDIpKSouNSxvKTtmbG9hdCBzPShnLngrZy55KSooMS4vNi4pO3ZlYzIgZD1tYXQyKGNvcyhzKSwtc2luKHMpLHNpbihzKSxjb3MocykpKnZ4dEM7bis9Z2VMUyhkKSoyLjtmKz1jbGFtcChuLnh5eipzdHJCKCkueHl6LC4wMSwxLik7fWk9ZW5hYmxlZD92ZWM0KG1peChmLHZlYzMoMCksb3BhY2l0eSkrdi54eXosdi53KTp2ZWM0KHYpO31cbmAsXG59O1xuXG5leHBvcnQgY2xhc3MgTGVuc0ZsYXJlRWZmZWN0IGV4dGVuZHMgRWZmZWN0IHtcblx0Y29uc3RydWN0b3Ioe1xuXHRcdGJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTCxcblx0XHRlbmFibGVkID0gdHJ1ZSxcblx0XHRnbGFyZVNpemUgPSAwLjIsXG5cdFx0bGVuc1Bvc2l0aW9uID0gWzAuMDEsIDAuMDFdLFxuXHRcdGlSZXNvbHV0aW9uID0gWzAsIDBdLFxuXHRcdHN0YXJQb2ludHMgPSA2LFxuXHRcdGZsYXJlU2l6ZSA9IDAuMDEsXG5cdFx0ZmxhcmVTcGVlZCA9IDAuMDEsXG5cdFx0ZmxhcmVTaGFwZSA9IDAuMDEsXG5cdFx0YW5pbWF0ZWQgPSB0cnVlLFxuXHRcdGFuYW1vcnBoaWMgPSBmYWxzZSxcblx0XHRjb2xvckdhaW4gPSBuZXcgVEhSRUUuQ29sb3IoMjAsIDIwLCAyMCksXG5cdFx0bGVuc0RpcnRUZXh0dXJlID0gbnVsbCBhcyBUSFJFRS5UZXh0dXJlIHwgbnVsbCxcblx0XHRoYWxvU2NhbGUgPSAwLjUsXG5cdFx0c2Vjb25kYXJ5R2hvc3RzID0gdHJ1ZSxcblx0XHRhZGl0aW9uYWxTdHJlYWtzID0gdHJ1ZSxcblx0XHRnaG9zdFNjYWxlID0gMC4wLFxuXHRcdG9wYWNpdHkgPSAxLjAsXG5cdFx0c3RhckJ1cnN0ID0gZmFsc2UsXG5cdH0gPSB7fSkge1xuXHRcdHN1cGVyKCdMZW5zRmxhcmVFZmZlY3QnLCBMZW5zRmxhcmVTaGFkZXIuZnJhZ21lbnRTaGFkZXIsIHtcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHR1bmlmb3JtczogbmV3IE1hcDxzdHJpbmcsIFRIUkVFLlVuaWZvcm0+KFtcblx0XHRcdFx0WydlbmFibGVkJywgbmV3IFRIUkVFLlVuaWZvcm0oZW5hYmxlZCldLFxuXHRcdFx0XHRbJ2dsYXJlU2l6ZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGdsYXJlU2l6ZSldLFxuXHRcdFx0XHRbJ2xlbnNQb3NpdGlvbicsIG5ldyBUSFJFRS5Vbmlmb3JtKGxlbnNQb3NpdGlvbildLFxuXHRcdFx0XHRbJ2lUaW1lJywgbmV3IFRIUkVFLlVuaWZvcm0oMCldLFxuXHRcdFx0XHRbJ2lSZXNvbHV0aW9uJywgbmV3IFRIUkVFLlVuaWZvcm0oaVJlc29sdXRpb24pXSxcblx0XHRcdFx0WydzdGFyUG9pbnRzJywgbmV3IFRIUkVFLlVuaWZvcm0oc3RhclBvaW50cyldLFxuXHRcdFx0XHRbJ2ZsYXJlU2l6ZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGZsYXJlU2l6ZSldLFxuXHRcdFx0XHRbJ2ZsYXJlU3BlZWQnLCBuZXcgVEhSRUUuVW5pZm9ybShmbGFyZVNwZWVkKV0sXG5cdFx0XHRcdFsnZmxhcmVTaGFwZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGZsYXJlU2hhcGUpXSxcblx0XHRcdFx0WydhbmltYXRlZCcsIG5ldyBUSFJFRS5Vbmlmb3JtKGFuaW1hdGVkKV0sXG5cdFx0XHRcdFsnYW5hbW9ycGhpYycsIG5ldyBUSFJFRS5Vbmlmb3JtKGFuYW1vcnBoaWMpXSxcblx0XHRcdFx0Wydjb2xvckdhaW4nLCBuZXcgVEhSRUUuVW5pZm9ybShjb2xvckdhaW4pXSxcblx0XHRcdFx0WydsZW5zRGlydFRleHR1cmUnLCBuZXcgVEhSRUUuVW5pZm9ybShsZW5zRGlydFRleHR1cmUpXSxcblx0XHRcdFx0WydoYWxvU2NhbGUnLCBuZXcgVEhSRUUuVW5pZm9ybShoYWxvU2NhbGUpXSxcblx0XHRcdFx0WydzZWNvbmRhcnlHaG9zdHMnLCBuZXcgVEhSRUUuVW5pZm9ybShzZWNvbmRhcnlHaG9zdHMpXSxcblx0XHRcdFx0WydhZGl0aW9uYWxTdHJlYWtzJywgbmV3IFRIUkVFLlVuaWZvcm0oYWRpdGlvbmFsU3RyZWFrcyldLFxuXHRcdFx0XHRbJ2dob3N0U2NhbGUnLCBuZXcgVEhSRUUuVW5pZm9ybShnaG9zdFNjYWxlKV0sXG5cdFx0XHRcdFsnc3RhckJ1cnN0JywgbmV3IFRIUkVFLlVuaWZvcm0oc3RhckJ1cnN0KV0sXG5cdFx0XHRcdFsnb3BhY2l0eScsIG5ldyBUSFJFRS5Vbmlmb3JtKG9wYWNpdHkpXSxcblx0XHRcdF0pLFxuXHRcdH0pO1xuXHR9XG5cblx0b3ZlcnJpZGUgdXBkYXRlKF9yZW5kZXJlcjogVEhSRUUuV2ViR0xSZW5kZXJlciwgX2lucHV0QnVmZmVyOiBUSFJFRS5XZWJHTFJlbmRlclRhcmdldCwgZGVsdGFUaW1lOiBudW1iZXIpIHtcblx0XHRjb25zdCBpVGltZSA9IHRoaXMudW5pZm9ybXMuZ2V0KCdpVGltZScpO1xuXHRcdGlmIChpVGltZSkge1xuXHRcdFx0aVRpbWUudmFsdWUgKz0gZGVsdGFUaW1lO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgdHlwZSBMZW5zRmxhcmVPcHRpb25zID0gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBMZW5zRmxhcmVFZmZlY3Q+WzBdICYge1xuXHRwb3NpdGlvbjogTmd0VmVjdG9yMztcblx0Zm9sbG93TW91c2U6IGJvb2xlYW47XG5cdHNtb290aFRpbWU6IG51bWJlcjtcbn07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBMZW5zRmxhcmVPcHRpb25zID0ge1xuXHRwb3NpdGlvbjogbmV3IFRIUkVFLlZlY3RvcjMoLTI1LCA2LCAtNjApLFxuXHRmb2xsb3dNb3VzZTogZmFsc2UsXG5cdHNtb290aFRpbWU6IDAuNyxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtbGVucy1mbGFyZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgW3BhcmFtZXRlcnNdPVwieyBkaXNwb3NlOiBudWxsIH1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBMZW5zRmxhcmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cblx0cHJpdmF0ZSBlZmZlY3RDb21wb3NlciA9IGluamVjdChOZ3RwRWZmZWN0Q29tcG9zZXIpO1xuXG5cdHByaXZhdGUgZWZmZWN0T3B0aW9ucyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3Bvc2l0aW9uJywgJ2ZvbGxvd01vdXNlJywgJ3Ntb290aFRpbWUnXSk7XG5cdHByaXZhdGUgcG9zaXRpb24gPSB2ZWN0b3IzKHRoaXMub3B0aW9ucywgJ3Bvc2l0aW9uJyk7XG5cblx0cHJpdmF0ZSBwcm9qZWN0ZWRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cdHByaXZhdGUgbW91c2UyZCA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IG5ldyBMZW5zRmxhcmVFZmZlY3QodGhpcy5lZmZlY3RPcHRpb25zKCkpKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2xlbnNGbGFyZUVmZmVjdCwgd2lkdGgsIGhlaWdodF0gPSBbXG5cdFx0XHRcdHRoaXMuZWZmZWN0KCksXG5cdFx0XHRcdHRoaXMuc3RvcmUudmlld3BvcnQud2lkdGgoKSxcblx0XHRcdFx0dGhpcy5zdG9yZS52aWV3cG9ydC5oZWlnaHQoKSxcblx0XHRcdF07XG5cdFx0XHRjb25zdCBpUmVzb2x1dGlvbiA9IGxlbnNGbGFyZUVmZmVjdC51bmlmb3Jtcy5nZXQoJ2lSZXNvbHV0aW9uJyk7XG5cdFx0XHRpZiAoaVJlc29sdXRpb24pIHtcblx0XHRcdFx0aVJlc29sdXRpb24udmFsdWUueCA9IHdpZHRoO1xuXHRcdFx0XHRpUmVzb2x1dGlvbi52YWx1ZS55ID0gaGVpZ2h0O1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cblx0XHRiZWZvcmVSZW5kZXIoKHsgZGVsdGEgfSkgPT4ge1xuXHRcdFx0Y29uc3QgW2VmZmVjdF0gPSBbdGhpcy5lZmZlY3QoKV07XG5cdFx0XHRpZiAoIWVmZmVjdCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBbeyBmb2xsb3dNb3VzZSwgc21vb3RoVGltZSB9LCBwb3NpdGlvbiwgcG9pbnRlciwgY2FtZXJhLCBzY2VuZSwgcmF5Y2FzdGVyXSA9IFtcblx0XHRcdFx0dGhpcy5vcHRpb25zKCksXG5cdFx0XHRcdHRoaXMucG9zaXRpb24oKSxcblx0XHRcdFx0dGhpcy5zdG9yZS5zbmFwc2hvdC5wb2ludGVyLFxuXHRcdFx0XHR0aGlzLmVmZmVjdENvbXBvc2VyLmNhbWVyYSgpLFxuXHRcdFx0XHR0aGlzLmVmZmVjdENvbXBvc2VyLnNjZW5lKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuc25hcHNob3QucmF5Y2FzdGVyLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgdUxlbnNQb3NpdGlvbiA9IGVmZmVjdC51bmlmb3Jtcy5nZXQoJ2xlbnNQb3NpdGlvbicpO1xuXHRcdFx0Y29uc3QgdU9wYWNpdHkgPSBlZmZlY3QudW5pZm9ybXMuZ2V0KCdvcGFjaXR5Jyk7XG5cdFx0XHRpZiAoIXVMZW5zUG9zaXRpb24gfHwgIXVPcGFjaXR5KSByZXR1cm47XG5cblx0XHRcdGxldCB0YXJnZXQgPSAxO1xuXG5cdFx0XHRpZiAoZm9sbG93TW91c2UpIHtcblx0XHRcdFx0dUxlbnNQb3NpdGlvbi52YWx1ZS54ID0gcG9pbnRlci54O1xuXHRcdFx0XHR1TGVuc1Bvc2l0aW9uLnZhbHVlLnkgPSBwb2ludGVyLnk7XG5cdFx0XHRcdHRhcmdldCA9IDA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnByb2plY3RlZFBvc2l0aW9uLmNvcHkocG9zaXRpb24pLnByb2plY3QoY2FtZXJhKTtcblx0XHRcdFx0aWYgKHRoaXMucHJvamVjdGVkUG9zaXRpb24ueiA+IDEpIHJldHVybjtcblxuXHRcdFx0XHR1TGVuc1Bvc2l0aW9uLnZhbHVlLnggPSB0aGlzLnByb2plY3RlZFBvc2l0aW9uLng7XG5cdFx0XHRcdHVMZW5zUG9zaXRpb24udmFsdWUueSA9IHRoaXMucHJvamVjdGVkUG9zaXRpb24ueTtcblxuXHRcdFx0XHR0aGlzLm1vdXNlMmQuc2V0KHRoaXMucHJvamVjdGVkUG9zaXRpb24ueCwgdGhpcy5wcm9qZWN0ZWRQb3NpdGlvbi55KTtcblx0XHRcdFx0cmF5Y2FzdGVyLnNldEZyb21DYW1lcmEodGhpcy5tb3VzZTJkLCBjYW1lcmEpO1xuXHRcdFx0XHRjb25zdCBpbnRlcnNlY3RzID0gcmF5Y2FzdGVyLmludGVyc2VjdE9iamVjdHMoc2NlbmUuY2hpbGRyZW4sIHRydWUpO1xuXHRcdFx0XHRjb25zdCB7IG9iamVjdCB9ID0gaW50ZXJzZWN0c1swXSA/PyB7fTtcblx0XHRcdFx0aWYgKG9iamVjdCkge1xuXHRcdFx0XHRcdGlmIChvYmplY3QudXNlckRhdGE/LlsnbGVuc2ZsYXJlJ10gPT09ICduby1vY2NsdXNpb24nKSB7XG5cdFx0XHRcdFx0XHR0YXJnZXQgPSAwO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoaXMudGhyZWU8VEhSRUUuTWVzaDxUSFJFRS5CdWZmZXJHZW9tZXRyeSwgVEhSRUUuU2hhZGVyTWF0ZXJpYWw+PihvYmplY3QsICdpc01lc2gnKSkge1xuXHRcdFx0XHRcdFx0aWYgKG9iamVjdC5tYXRlcmlhbC51bmlmb3Jtcz8uWydfdHJhbnNtaXNzaW9uJ10/LnZhbHVlID4gMC4yKSB7XG5cdFx0XHRcdFx0XHRcdC8vQ2hlY2sgZm9yIE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbFxuXHRcdFx0XHRcdFx0XHR0YXJnZXQgPSAwLjI7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRcdFx0XHQnX3RyYW5zbWlzc2lvbicgaW4gb2JqZWN0Lm1hdGVyaWFsICYmXG5cdFx0XHRcdFx0XHRcdHR5cGVvZiBvYmplY3QubWF0ZXJpYWwuX3RyYW5zbWlzc2lvbiA9PT0gJ251bWJlcicgJiZcblx0XHRcdFx0XHRcdFx0b2JqZWN0Lm1hdGVyaWFsLl90cmFuc21pc3Npb24gPiAwLjJcblx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHQvL0NoZWNrIGZvciBNZXNoUGh5c2ljYWxNYXRlcmlhbCB3aXRoIHRyYW5zbWlzc2lvbiBzZXR0aW5nXG5cdFx0XHRcdFx0XHRcdHRhcmdldCA9IDAuMjtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAob2JqZWN0Lm1hdGVyaWFsLnRyYW5zcGFyZW50KSB7XG5cdFx0XHRcdFx0XHRcdC8vIENoZWNrIGZvciBPdGhlck1hdGVyaWFscyB3aXRoIHRyYW5zcGFyZW50IHBhcmFtZXRlclxuXHRcdFx0XHRcdFx0XHR0YXJnZXQgPSBvYmplY3QubWF0ZXJpYWwub3BhY2l0eTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0ZWFzaW5nLmRhbXAodU9wYWNpdHksICd2YWx1ZScsIHRhcmdldCwgc21vb3RoVGltZSwgZGVsdGEpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, injectStore, pick } from 'angular-three';\nimport { LUT3DEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpLUT {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.lut = pick(this.options, 'lut');\n this.tetrahedralInterpolation = pick(this.options, 'tetrahedralInterpolation');\n this.store = injectStore();\n this.effect = computed(() => {\n const { lut, ...options } = this.options();\n return new LUT3DEffect(lut, options);\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [effect, lut, tetrahedralInterpolation, invalidate] = [\n this.effect(),\n this.lut(),\n this.tetrahedralInterpolation(),\n this.store.invalidate(),\n ];\n if (tetrahedralInterpolation)\n effect.tetrahedralInterpolation = tetrahedralInterpolation;\n if (lut)\n effect.lut = lut;\n invalidate();\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpLUT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpLUT, isStandalone: true, selector: \"ngtp-lut\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpLUT, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-lut',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvbHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBa0I1RCxNQUFNLE9BQU8sT0FBTztJQWFuQjtRQVpBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBZ0IsbURBQUMsQ0FBQztRQUUxQixRQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEMsNkJBQXdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUUxRSxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFFcEIsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMzQyxPQUFPLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0QyxDQUFDLGtEQUFDLENBQUM7UUFHRixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxDQUFDLEdBQUc7Z0JBQzNELElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO2FBQ3ZCLENBQUM7WUFFRixJQUFJLHdCQUF3QjtnQkFBRSxNQUFNLENBQUMsd0JBQXdCLEdBQUcsd0JBQXdCLENBQUM7WUFDekYsSUFBSSxHQUFHO2dCQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQzFCLFVBQVUsRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0EvQlcsT0FBTztrR0FBUCxPQUFPLDhNQVBUOztFQUVULDREQUNTLE9BQU87OzJGQUlMLE9BQU87a0JBVG5CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgaW5qZWN0U3RvcmUsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIExVVDNERWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExVVE9wdGlvbnMge1xuXHRsdXQ6IFRIUkVFLlRleHR1cmU7XG5cdGJsZW5kRnVuY3Rpb24/OiBCbGVuZEZ1bmN0aW9uO1xuXHR0ZXRyYWhlZHJhbEludGVycG9sYXRpb24/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWx1dCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgW2Rpc3Bvc2VdPVwibnVsbFwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cExVVCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBMVVRPcHRpb25zKTtcblxuXHRwcml2YXRlIGx1dCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbHV0Jyk7XG5cdHByaXZhdGUgdGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICd0ZXRyYWhlZHJhbEludGVycG9sYXRpb24nKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHsgbHV0LCAuLi5vcHRpb25zIH0gPSB0aGlzLm9wdGlvbnMoKTtcblx0XHRyZXR1cm4gbmV3IExVVDNERWZmZWN0KGx1dCwgb3B0aW9ucyk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbZWZmZWN0LCBsdXQsIHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbiwgaW52YWxpZGF0ZV0gPSBbXG5cdFx0XHRcdHRoaXMuZWZmZWN0KCksXG5cdFx0XHRcdHRoaXMubHV0KCksXG5cdFx0XHRcdHRoaXMudGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XTtcblxuXHRcdFx0aWYgKHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbikgZWZmZWN0LnRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbiA9IHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbjtcblx0XHRcdGlmIChsdXQpIGVmZmVjdC5sdXQgPSBsdXQ7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpNoise {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ NoiseEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpNoise, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpNoise, isStandalone: true, selector: \"ngtp-noise\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpNoise, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-noise',\n template: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9pc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ub2lzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFrQnpGLE1BQU0sT0FBTyxTQUFTO0lBSXJCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxtREFBQyxDQUFDO1FBQ3ZELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQU5XLFNBQVM7a0dBQVQsU0FBUyxtTUFGVixDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLDRJQVY1RTs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSTFCLFNBQVM7a0JBZHJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztpQkFDdEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIE5vaXNlRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgTm9pc2VFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIE5vaXNlRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLW5vaXNlJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW5vaXNlLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LW5vaXNlLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uQ09MT1JfRE9ER0UgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwTm9pc2Uge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxOb2lzZUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBOb2lzZUVmZmVjdCB9KTtcblx0fVxufVxuIl19","import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, untracked, } from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelectionApi, omit, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { OutlineEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n selectionLayer: 10,\n};\nexport class NgtpOutline {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.selectionApi = inject(NgtSelectionApi, { optional: true });\n this.effectComposer = inject(NgtpEffectComposer);\n this.store = injectStore();\n this.selection = pick(this.options, 'selection');\n this.selectionLayer = pick(this.options, 'selectionLayer');\n this.blendFunction = pick(this.options, 'blendFunction');\n this.patternTexture = pick(this.options, 'patternTexture');\n this.edgeStrength = pick(this.options, 'edgeStrength');\n this.pulseSpeed = pick(this.options, 'pulseSpeed');\n this.visibleEdgeColor = pick(this.options, 'visibleEdgeColor');\n this.hiddenEdgeColor = pick(this.options, 'hiddenEdgeColor');\n this.width = pick(this.options, 'width');\n this.height = pick(this.options, 'height');\n this.kernelSize = pick(this.options, 'kernelSize');\n this.blur = pick(this.options, 'blur');\n this.xRay = pick(this.options, 'xRay');\n this.restOptions = omit(this.options, [\n 'blendFunction',\n 'patternTexture',\n 'edgeStrength',\n 'pulseSpeed',\n 'visibleEdgeColor',\n 'hiddenEdgeColor',\n 'width',\n 'height',\n 'kernelSize',\n 'blur',\n 'xRay',\n ]);\n this.effect = computed(() => {\n const [scene, camera, blendFunction, patternTexture, edgeStrength, pulseSpeed, visibleEdgeColor, hiddenEdgeColor, width, height, kernelSize, blur, xRay, restOptions,] = [\n this.effectComposer.scene(),\n this.effectComposer.camera(),\n this.blendFunction(),\n this.patternTexture(),\n this.edgeStrength(),\n this.pulseSpeed(),\n this.visibleEdgeColor(),\n this.hiddenEdgeColor(),\n this.width(),\n this.height(),\n this.kernelSize(),\n this.blur(),\n this.xRay(),\n untracked(this.restOptions),\n ];\n return new OutlineEffect(scene, camera, {\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...restOptions,\n });\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n effect(() => {\n const [effect, invalidate, selectionLayer] = [\n this.effect(),\n this.store.invalidate(),\n this.selectionLayer(),\n ];\n effect.selectionLayer = selectionLayer;\n invalidate();\n });\n effect((onCleanup) => {\n // NOTE: we run this effect if declarative NgtSelection is not enabled\n if (!this.selectionApi) {\n // NOTE: if NgtSelection is not used and selection is not provided, we throw\n if (this.selection() === undefined) {\n throw new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');\n }\n const cleanup = this.handleSelectionChangeEffect(this.selection, this.effect, this.store.invalidate);\n onCleanup(() => {\n cleanup?.();\n });\n return;\n }\n // NOTE: we run this effect if declarative NgtSelection is enabled\n const selectionEnabled = this.selectionApi.enabled();\n if (!selectionEnabled)\n return;\n const cleanup = this.handleSelectionChangeEffect(this.selectionApi.selected, this.effect, this.store.invalidate);\n onCleanup(() => {\n cleanup?.();\n });\n });\n }\n handleSelectionChangeEffect(selected, _effect, _invalidate) {\n const selection = selected();\n if (!selection || selection.length === 0)\n return;\n const [effect, invalidate] = [_effect(), _invalidate()];\n const objects = [];\n for (const el of selection) {\n const obj = resolveRef(el);\n if (!obj)\n continue;\n objects.push(obj);\n }\n if (objects.length === 0)\n return;\n effect.selection.set(objects);\n invalidate();\n return () => {\n effect.selection.clear();\n invalidate();\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpOutline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpOutline, isStandalone: true, selector: \"ngtp-outline\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpOutline, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-outline',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0bGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL291dGxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBT3hELE1BQU0sY0FBYyxHQUF1QjtJQUMxQyxjQUFjLEVBQUUsRUFBRTtDQUNsQixDQUFDO0FBV0YsTUFBTSxPQUFPLFdBQVc7SUFvRnZCO1FBbkZBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYywyQ0FBSSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUF4QyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBRXBFLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDNUMsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBRXRCLGNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FB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VyxXQUFXO2tHQUFYLFdBQVcsa05BUGI7O0VBRVQsNERBR1MsT0FBTzs7MkZBRUwsV0FBVztrQkFUdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRlZmZlY3QsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSwgTmd0QXJncywgTmd0U2VsZWN0aW9uQXBpLCBvbWl0LCBwaWNrLCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBPdXRsaW5lRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxuZXhwb3J0IHR5cGUgTmd0cE91dGxpbmVPcHRpb25zID0gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBPdXRsaW5lRWZmZWN0PlsyXSAmIHtcblx0c2VsZWN0aW9uPzogQXJyYXk8VEhSRUUuT2JqZWN0M0QgfCBFbGVtZW50UmVmPFRIUkVFLk9iamVjdDNEPj47XG5cdHNlbGVjdGlvbkxheWVyOiBudW1iZXI7XG59O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0cE91dGxpbmVPcHRpb25zID0ge1xuXHRzZWxlY3Rpb25MYXllcjogMTAsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLW91dGxpbmUnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cE91dGxpbmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJpdmF0ZSBzZWxlY3Rpb25BcGkgPSBpbmplY3QoTmd0U2VsZWN0aW9uQXBpLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXG5cdHByaXZhdGUgc2VsZWN0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdzZWxlY3Rpb24nKTtcblx0cHJpdmF0ZSBzZWxlY3Rpb25MYXllciA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2VsZWN0aW9uTGF5ZXInKTtcblxuXHRwcml2YXRlIGJsZW5kRnVuY3Rpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nKTtcblx0cHJpdmF0ZSBwYXR0ZXJuVGV4dHVyZSA9IHBpY2sodGhpcy5vcHRpb25zLCAncGF0dGVyblRleHR1cmUnKTtcblx0cHJpdmF0ZSBlZGdlU3RyZW5ndGggPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VkZ2VTdHJlbmd0aCcpO1xuXHRwcml2YXRlIHB1bHNlU3BlZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3B1bHNlU3BlZWQnKTtcblx0cHJpdmF0ZSB2aXNpYmxlRWRnZUNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICd2aXNpYmxlRWRnZUNvbG9yJyk7XG5cdHByaXZhdGUgaGlkZGVuRWRnZUNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdoaWRkZW5FZGdlQ29sb3InKTtcblx0cHJpdmF0ZSB3aWR0aCA9IHBpY2sodGhpcy5vcHRpb25zLCAnd2lkdGgnKTtcblx0cHJpdmF0ZSBoZWlnaHQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2hlaWdodCcpO1xuXHRwcml2YXRlIGtlcm5lbFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2tlcm5lbFNpemUnKTtcblx0cHJpdmF0ZSBibHVyID0gcGljayh0aGlzLm9wdGlvbnMsICdibHVyJyk7XG5cdHByaXZhdGUgeFJheSA9IHBpY2sodGhpcy5vcHRpb25zLCAneFJheScpO1xuXHRwcml2YXRlIHJlc3RPcHRpb25zID0gb21pdCh0aGlzLm9wdGlvbnMsIFtcblx0XHQnYmxlbmRGdW5jdGlvbicsXG5cdFx0J3BhdHRlcm5UZXh0dXJlJyxcblx0XHQnZWRnZVN0cmVuZ3RoJyxcblx0XHQncHVsc2VTcGVlZCcsXG5cdFx0J3Zpc2libGVFZGdlQ29sb3InLFxuXHRcdCdoaWRkZW5FZGdlQ29sb3InLFxuXHRcdCd3aWR0aCcsXG5cdFx0J2hlaWdodCcsXG5cdFx0J2tlcm5lbFNpemUnLFxuXHRcdCdibHVyJyxcblx0XHQneFJheScsXG5cdF0pO1xuXG5cdGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRwYXR0ZXJuVGV4dHVyZSxcblx0XHRcdGVkZ2VTdHJlbmd0aCxcblx0XHRcdHB1bHNlU3BlZWQsXG5cdFx0XHR2aXNpYmxlRWRnZUNvbG9yLFxuXHRcdFx0aGlkZGVuRWRnZUNvbG9yLFxuXHRcdFx0d2lkdGgsXG5cdFx0XHRoZWlnaHQsXG5cdFx0XHRrZXJuZWxTaXplLFxuXHRcdFx0Ymx1cixcblx0XHRcdHhSYXksXG5cdFx0XHRyZXN0T3B0aW9ucyxcblx0XHRdID0gW1xuXHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5zY2VuZSgpLFxuXHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5jYW1lcmEoKSxcblx0XHRcdHRoaXMuYmxlbmRGdW5jdGlvbigpLFxuXHRcdFx0dGhpcy5wYXR0ZXJuVGV4dHVyZSgpLFxuXHRcdFx0dGhpcy5lZGdlU3RyZW5ndGgoKSxcblx0XHRcdHRoaXMucHVsc2VTcGVlZCgpLFxuXHRcdFx0dGhpcy52aXNpYmxlRWRnZUNvbG9yKCksXG5cdFx0XHR0aGlzLmhpZGRlbkVkZ2VDb2xvcigpLFxuXHRcdFx0dGhpcy53aWR0aCgpLFxuXHRcdFx0dGhpcy5oZWlnaHQoKSxcblx0XHRcdHRoaXMua2VybmVsU2l6ZSgpLFxuXHRcdFx0dGhpcy5ibHVyKCksXG5cdFx0XHR0aGlzLnhSYXkoKSxcblx0XHRcdHVudHJhY2tlZCh0aGlzLnJlc3RPcHRpb25zKSxcblx0XHRdO1xuXG5cdFx0cmV0dXJuIG5ldyBPdXRsaW5lRWZmZWN0KHNjZW5lLCBjYW1lcmEsIHtcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRwYXR0ZXJuVGV4dHVyZSxcblx0XHRcdGVkZ2VTdHJlbmd0aCxcblx0XHRcdHB1bHNlU3BlZWQsXG5cdFx0XHR2aXNpYmxlRWRnZUNvbG9yLFxuXHRcdFx0aGlkZGVuRWRnZUNvbG9yLFxuXHRcdFx0d2lkdGgsXG5cdFx0XHRoZWlnaHQsXG5cdFx0XHRrZXJuZWxTaXplLFxuXHRcdFx0Ymx1cixcblx0XHRcdHhSYXksXG5cdFx0XHQuLi5yZXN0T3B0aW9ucyxcblx0XHR9KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZSwgc2VsZWN0aW9uTGF5ZXJdID0gW1xuXHRcdFx0XHR0aGlzLmVmZmVjdCgpLFxuXHRcdFx0XHR0aGlzLnN0b3JlLmludmFsaWRhdGUoKSxcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25MYXllcigpLFxuXHRcdFx0XTtcblx0XHRcdGVmZmVjdC5zZWxlY3Rpb25MYXllciA9IHNlbGVjdGlvbkxheWVyO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdC8vIE5PVEU6IHdlIHJ1biB0aGlzIGVmZmVjdCBpZiBkZWNsYXJhdGl2ZSBOZ3RTZWxlY3Rpb24gaXMgbm90IGVuYWJsZWRcblx0XHRcdGlmICghdGhpcy5zZWxlY3Rpb25BcGkpIHtcblx0XHRcdFx0Ly8gTk9URTogaWYgTmd0U2VsZWN0aW9uIGlzIG5vdCB1c2VkIGFuZCBzZWxlY3Rpb24gaXMgbm90IHByb3ZpZGVkLCB3ZSB0aHJvd1xuXHRcdFx0XHRpZiAodGhpcy5zZWxlY3Rpb24oKSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdbTkdUIFBvc3RQcm9jZXNzaW5nXTogbmd0cC1vdXRsaW5lIHJlcXVpcmVzIHNlbGVjdGlvbiBpbnB1dCBvciB1c2UgTmd0U2VsZWN0aW9uJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlRWZmZWN0KHRoaXMuc2VsZWN0aW9uLCB0aGlzLmVmZmVjdCwgdGhpcy5zdG9yZS5pbnZhbGlkYXRlKTtcblxuXHRcdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRcdGNsZWFudXA/LigpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBOT1RFOiB3ZSBydW4gdGhpcyBlZmZlY3QgaWYgZGVjbGFyYXRpdmUgTmd0U2VsZWN0aW9uIGlzIGVuYWJsZWRcblx0XHRcdGNvbnN0IHNlbGVjdGlvbkVuYWJsZWQgPSB0aGlzLnNlbGVjdGlvbkFwaS5lbmFibGVkKCk7XG5cdFx0XHRpZiAoIXNlbGVjdGlvbkVuYWJsZWQpIHJldHVybjtcblx0XHRcdGNvbnN0IGNsZWFudXAgPSB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZUVmZmVjdChcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25BcGkuc2VsZWN0ZWQsXG5cdFx0XHRcdHRoaXMuZWZmZWN0LFxuXHRcdFx0XHR0aGlzLnN0b3JlLmludmFsaWRhdGUsXG5cdFx0XHQpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Y2xlYW51cD8uKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlRWZmZWN0KFxuXHRcdHNlbGVjdGVkOiAoKSA9PiBBcnJheTxUSFJFRS5PYmplY3QzRCB8IEVsZW1lbnRSZWY8VEhSRUUuT2JqZWN0M0Q+PiB8IHVuZGVmaW5lZCxcblx0XHRfZWZmZWN0OiAoKSA9PiBPdXRsaW5lRWZmZWN0LFxuXHRcdF9pbnZhbGlkYXRlOiAoKSA9PiAoKSA9PiB2b2lkLFxuXHQpIHtcblx0XHRjb25zdCBzZWxlY3Rpb24gPSBzZWxlY3RlZCgpO1xuXHRcdGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5sZW5ndGggPT09IDApIHJldHVybjtcblxuXHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGVdID0gW19lZmZlY3QoKSwgX2ludmFsaWRhdGUoKV07XG5cblx0XHRjb25zdCBvYmplY3RzOiBUSFJFRS5PYmplY3QzRFtdID0gW107XG5cdFx0Zm9yIChjb25zdCBlbCBvZiBzZWxlY3Rpb24pIHtcblx0XHRcdGNvbnN0IG9iaiA9IHJlc29sdmVSZWYoZWwpO1xuXHRcdFx0aWYgKCFvYmopIGNvbnRpbnVlO1xuXHRcdFx0b2JqZWN0cy5wdXNoKG9iaik7XG5cdFx0fVxuXG5cdFx0aWYgKG9iamVjdHMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cblx0XHRlZmZlY3Quc2VsZWN0aW9uLnNldChvYmplY3RzKTtcblx0XHRpbnZhbGlkYXRlKCk7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0ZWZmZWN0LnNlbGVjdGlvbi5jbGVhcigpO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH07XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { PixelationEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpPixelation {\n constructor() {\n this.options = input({ granularity: 5 }, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs({ granularity: 5 }) }] : [{ transform: mergeInputs({ granularity: 5 }) }]));\n this.granularity = pick(this.options, 'granularity');\n this.effect = computed(() => new PixelationEffect(this.granularity()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpPixelation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpPixelation, isStandalone: true, selector: \"ngtp-pixelation\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpPixelation, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-pixelation',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n imports: [NgtArgs],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4ZWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3BpeGVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZWxELE1BQU0sT0FBTyxjQUFjO0lBTTFCO1FBTEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQXVCLDJDQUFJLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBNUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBQ2pHLGdCQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxrREFBQyxDQUFDO1FBRzNFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQVhXLGNBQWM7a0dBQWQsY0FBYyxxTkFQaEI7O0VBRVQsNERBR1MsT0FBTzs7MkZBRUwsY0FBYztrQkFUMUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IFBpeGVsYXRpb25FZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGl4ZWxhdGlvbk9wdGlvbnMge1xuXHRncmFudWxhcml0eTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXBpeGVsYXRpb24nLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFBpeGVsYXRpb24ge1xuXHRvcHRpb25zID0gaW5wdXQoeyBncmFudWxhcml0eTogNSB9IGFzIFBpeGVsYXRpb25PcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoeyBncmFudWxhcml0eTogNSB9KSB9KTtcblx0cHJpdmF0ZSBncmFudWxhcml0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAnZ3JhbnVsYXJpdHknKTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4gbmV3IFBpeGVsYXRpb25FZmZlY3QodGhpcy5ncmFudWxhcml0eSgpKSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst defaultOptions = {\n density: 1.25,\n};\nexport class NgtpScanline {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ScanlineEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpScanline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpScanline, isStandalone: true, selector: \"ngtp-scanline\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpScanline, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-scanline',\n template: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbmxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9zY2FubGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBSXpGLE1BQU0sY0FBYyxHQUFpRDtJQUNwRSxPQUFPLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFnQkYsTUFBTSxPQUFPLFlBQVk7SUFJeEI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsMkNBQUksU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBeEMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUMsQ0FBQztRQUNsRSxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs4R0FOVyxZQUFZO2tHQUFaLFlBQVksc01BRmIsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyw0SUFWeEU7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUkxQixZQUFZO2tCQWR4QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDakYsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7aUJBQ2xGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBTY2FubGluZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIFNjYW5saW5lRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTY2FubGluZUVmZmVjdD5bMF0+PjtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE9taXQ8U2NhbmxpbmVFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+ID0ge1xuXHRkZW5zaXR5OiAxLjI1LFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1zY2FubGluZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1zY2FubGluZS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1zY2FubGluZS1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk9WRVJMQVkgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwU2NhbmxpbmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IFNjYW5saW5lRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","// const addLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.enable(effect.selection.layer)\n// const removeLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.disable(effect.selection.layer)\nimport { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, } from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelectionApi, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, SelectiveBloomEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n selectionLayer: 10,\n inverted: false,\n ignoreBackground: false,\n};\nexport class NgtpSelectiveBloom {\n constructor() {\n this.lights = input.required(...(ngDevMode ? [{ debugName: \"lights\" }] : []));\n this.selection = input([], ...(ngDevMode ? [{ debugName: \"selection\" }] : []));\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.blendFunction = pick(this.options, 'blendFunction');\n this.luminanceThreshold = pick(this.options, 'luminanceThreshold');\n this.luminanceSmoothing = pick(this.options, 'luminanceSmoothing');\n this.mipmapBlur = pick(this.options, 'mipmapBlur');\n this.intensity = pick(this.options, 'intensity');\n this.radius = pick(this.options, 'radius');\n this.levels = pick(this.options, 'levels');\n this.kernelSize = pick(this.options, 'kernelSize');\n this.resolutionScale = pick(this.options, 'resolutionScale');\n this.width = pick(this.options, 'width');\n this.height = pick(this.options, 'height');\n this.resolutionX = pick(this.options, 'resolutionX');\n this.resolutionY = pick(this.options, 'resolutionY');\n this.inverted = pick(this.options, 'inverted');\n this.ignoreBackground = pick(this.options, 'ignoreBackground');\n this.selectionLayer = pick(this.options, 'selectionLayer');\n this.store = injectStore();\n this.effectComposer = inject(NgtpEffectComposer);\n this.selectionApi = inject(NgtSelectionApi, { optional: true });\n this.resolvedLights = computed(() => this.lights().map((light) => resolveRef(light)), ...(ngDevMode ? [{ debugName: \"resolvedLights\" }] : []));\n this.resolvedSelected = computed(() => {\n const selection = this.selection();\n if (!selection)\n return [];\n const array = Array.isArray(selection) ? selection : [selection];\n return array.map((selected) => resolveRef(selected));\n }, ...(ngDevMode ? [{ debugName: \"resolvedSelected\" }] : []));\n this.resolvedNgtSelected = computed(() => {\n if (!this.selectionApi || !this.selectionApi.enabled)\n return [];\n return this.selectionApi.selected().map((selected) => resolveRef(selected));\n }, ...(ngDevMode ? [{ debugName: \"resolvedNgtSelected\" }] : []));\n this.effect = computed(() => {\n const effect = new SelectiveBloomEffect(this.effectComposer.scene(), this.effectComposer.camera(), {\n blendFunction: this.blendFunction() || BlendFunction.ADD,\n luminanceThreshold: this.luminanceThreshold(),\n luminanceSmoothing: this.luminanceSmoothing(),\n mipmapBlur: this.mipmapBlur(),\n intensity: this.intensity(),\n radius: this.radius(),\n levels: this.levels(),\n kernelSize: this.kernelSize(),\n resolutionScale: this.resolutionScale(),\n width: this.width(),\n height: this.height(),\n resolutionX: this.resolutionX(),\n resolutionY: this.resolutionY(),\n });\n effect.inverted = this.inverted();\n effect.ignoreBackground = this.ignoreBackground();\n return effect;\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n // skip input selection altogether if NgtSelection is used\n if (this.selectionApi)\n return;\n const selection = this.resolvedSelected();\n if (!selection.length)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n effect.selection.set(selection);\n invalidate();\n onCleanup(() => {\n effect.selection.clear();\n invalidate();\n });\n });\n effect(() => {\n const [selectionLayer, invalidate, effect] = [\n this.selectionLayer(),\n this.store.invalidate(),\n this.effect(),\n ];\n effect.selection.layer = selectionLayer;\n invalidate();\n });\n effect((onCleanup) => {\n const lights = this.resolvedLights();\n if (lights.length <= 0)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n lights.forEach((light) => light && this.addLight(effect, light));\n invalidate();\n onCleanup(() => {\n lights.forEach((light) => light && this.removeLight(effect, light));\n invalidate();\n });\n });\n effect((onCleanup) => {\n const selected = this.resolvedNgtSelected();\n if (!selected.length)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n effect.selection.set(selected);\n invalidate();\n onCleanup(() => {\n effect.selection.clear();\n invalidate();\n });\n });\n }\n addLight(effect, light) {\n light.layers.enable(effect.selection.layer);\n }\n removeLight(effect, light) {\n light.layers.disable(effect.selection.layer);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSelectiveBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpSelectiveBloom, isStandalone: true, selector: \"ngtp-selective-bloom\", inputs: { lights: { classPropertyName: \"lights\", publicName: \"lights\", isSignal: true, isRequired: true, transformFunction: null }, selection: { classPropertyName: \"selection\", publicName: \"selection\", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSelectiveBloom, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-selective-bloom',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aXZlLWJsb29tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvc2VsZWN0aXZlLWJsb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtIQUFrSDtBQUNsSCxzSEFBc0g7QUFFdEgsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBc0Isb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFReEQsTUFBTSxjQUFjLEdBQTBCO0lBQzdDLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsZ0JBQWdCLEVBQUUsS0FBSztDQUN2QixDQUFDO0FBV0YsTUFBTSxPQUFPLGtCQUFrQjtJQWtFOUI7UUFqRUEsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLGlEQUErRCxDQUFDO1FBQ3ZGLGNBQVMsR0FBRyxLQUFLLENBS2YsRUFBRSxxREFBQyxDQUFDO1FBQ04sWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLDJDQUFJLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQXhDLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFDLENBQUM7UUFFcEUsa0JBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8s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USxDQUFDLE1BQTRCLEVBQUUsS0FBcUI7UUFDbkUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQTRCLEVBQUUsS0FBcUI7UUFDdEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQWpJVyxrQkFBa0I7a0dBQWxCLGtCQUFrQix3ZEFQcEI7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsa0JBQWtCO2tCQVQ5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBjb25zdCBhZGRMaWdodCA9IChsaWdodDogT2JqZWN0M0QsIGVmZmVjdDogU2VsZWN0aXZlQmxvb21FZmZlY3QpID0+IGxpZ2h0LmxheWVycy5lbmFibGUoZWZmZWN0LnNlbGVjdGlvbi5sYXllcilcbi8vIGNvbnN0IHJlbW92ZUxpZ2h0ID0gKGxpZ2h0OiBPYmplY3QzRCwgZWZmZWN0OiBTZWxlY3RpdmVCbG9vbUVmZmVjdCkgPT4gbGlnaHQubGF5ZXJzLmRpc2FibGUoZWZmZWN0LnNlbGVjdGlvbi5sYXllcilcblxuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSwgTmd0QXJncywgTmd0U2VsZWN0aW9uQXBpLCBwaWNrLCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBCbG9vbUVmZmVjdE9wdGlvbnMsIFNlbGVjdGl2ZUJsb29tRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxuZXhwb3J0IHR5cGUgU2VsZWN0aXZlQmxvb21PcHRpb25zID0gQmxvb21FZmZlY3RPcHRpb25zICYge1xuXHRzZWxlY3Rpb25MYXllcjogbnVtYmVyO1xuXHRpbnZlcnRlZDogYm9vbGVhbjtcblx0aWdub3JlQmFja2dyb3VuZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBTZWxlY3RpdmVCbG9vbU9wdGlvbnMgPSB7XG5cdHNlbGVjdGlvbkxheWVyOiAxMCxcblx0aW52ZXJ0ZWQ6IGZhbHNlLFxuXHRpZ25vcmVCYWNrZ3JvdW5kOiBmYWxzZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtc2VsZWN0aXZlLWJsb29tJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiBbZGlzcG9zZV09XCJudWxsXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwU2VsZWN0aXZlQmxvb20ge1xuXHRsaWdodHMgPSBpbnB1dC5yZXF1aXJlZDxUSFJFRS5PYmplY3QzRFtdIHwgRWxlbWVudFJlZjxUSFJFRS5PYmplY3QzRCB8IHVuZGVmaW5lZD5bXT4oKTtcblx0c2VsZWN0aW9uID0gaW5wdXQ8XG5cdFx0fCBUSFJFRS5PYmplY3QzRFxuXHRcdHwgVEhSRUUuT2JqZWN0M0RbXVxuXHRcdHwgRWxlbWVudFJlZjxUSFJFRS5PYmplY3QzRCB8IHVuZGVmaW5lZD5cblx0XHR8IEVsZW1lbnRSZWY8VEhSRUUuT2JqZWN0M0QgfCB1bmRlZmluZWQ+W11cblx0PihbXSk7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblxuXHRwcml2YXRlIGJsZW5kRnVuY3Rpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nKTtcblx0cHJpdmF0ZSBsdW1pbmFuY2VUaHJlc2hvbGQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2x1bWluYW5jZVRocmVzaG9sZCcpO1xuXHRwcml2YXRlIGx1bWluYW5jZVNtb290aGluZyA9IHBpY2sodGhpcy5vcHRpb25zLCAnbHVtaW5hbmNlU21vb3RoaW5nJyk7XG5cdHByaXZhdGUgbWlwbWFwQmx1ciA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWlwbWFwQmx1cicpO1xuXHRwcml2YXRlIGludGVuc2l0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAnaW50ZW5zaXR5Jyk7XG5cdHByaXZhdGUgcmFkaXVzID0gcGljayh0aGlzLm9wdGlvbnMsICdyYWRpdXMnKTtcblx0cHJpdmF0ZSBsZXZlbHMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2xldmVscycpO1xuXHRwcml2YXRlIGtlcm5lbFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2tlcm5lbFNpemUnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uU2NhbGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25TY2FsZScpO1xuXHRwcml2YXRlIHdpZHRoID0gcGljayh0aGlzLm9wdGlvbnMsICd3aWR0aCcpO1xuXHRwcml2YXRlIGhlaWdodCA9IHBpY2sodGhpcy5vcHRpb25zLCAnaGVpZ2h0Jyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvblggPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25YJyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvblkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25ZJyk7XG5cdHByaXZhdGUgaW52ZXJ0ZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ludmVydGVkJyk7XG5cdHByaXZhdGUgaWdub3JlQmFja2dyb3VuZCA9IHBpY2sodGhpcy5vcHRpb25zLCAnaWdub3JlQmFja2dyb3VuZCcpO1xuXHRwcml2YXRlIHNlbGVjdGlvbkxheWVyID0gcGljayh0aGlzLm9wdGlvbnMsICdzZWxlY3Rpb25MYXllcicpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cdHByaXZhdGUgc2VsZWN0aW9uQXBpID0gaW5qZWN0KE5ndFNlbGVjdGlvbkFwaSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuXHRwcml2YXRlIHJlc29sdmVkTGlnaHRzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5saWdodHMoKS5tYXAoKGxpZ2h0KSA9PiByZXNvbHZlUmVmKGxpZ2h0KSkpO1xuXHRwcml2YXRlIHJlc29sdmVkU2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3Qgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24oKTtcblx0XHRpZiAoIXNlbGVjdGlvbikgcmV0dXJuIFtdO1xuXHRcdGNvbnN0IGFycmF5ID0gQXJyYXkuaXNBcnJheShzZWxlY3Rpb24pID8gc2VsZWN0aW9uIDogW3NlbGVjdGlvbl07XG5cdFx0cmV0dXJuIGFycmF5Lm1hcCgoc2VsZWN0ZWQpID0+IHJlc29sdmVSZWYoc2VsZWN0ZWQpKTtcblx0fSk7XG5cdHByaXZhdGUgcmVzb2x2ZWROZ3RTZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uQXBpIHx8ICF0aGlzLnNlbGVjdGlvbkFwaS5lbmFibGVkKSByZXR1cm4gW107XG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0aW9uQXBpLnNlbGVjdGVkKCkubWFwKChzZWxlY3RlZCkgPT4gcmVzb2x2ZVJlZihzZWxlY3RlZCkpO1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGVmZmVjdCA9IG5ldyBTZWxlY3RpdmVCbG9vbUVmZmVjdCh0aGlzLmVmZmVjdENvbXBvc2VyLnNjZW5lKCksIHRoaXMuZWZmZWN0Q29tcG9zZXIuY2FtZXJhKCksIHtcblx0XHRcdGJsZW5kRnVuY3Rpb246IHRoaXMuYmxlbmRGdW5jdGlvbigpIHx8IEJsZW5kRnVuY3Rpb24uQURELFxuXHRcdFx0bHVtaW5hbmNlVGhyZXNob2xkOiB0aGlzLmx1bWluYW5jZVRocmVzaG9sZCgpLFxuXHRcdFx0bHVtaW5hbmNlU21vb3RoaW5nOiB0aGlzLmx1bWluYW5jZVNtb290aGluZygpLFxuXHRcdFx0bWlwbWFwQmx1cjogdGhpcy5taXBtYXBCbHVyKCksXG5cdFx0XHRpbnRlbnNpdHk6IHRoaXMuaW50ZW5zaXR5KCksXG5cdFx0XHRyYWRpdXM6IHRoaXMucmFkaXVzKCksXG5cdFx0XHRsZXZlbHM6IHRoaXMubGV2ZWxzKCksXG5cdFx0XHRrZXJuZWxTaXplOiB0aGlzLmtlcm5lbFNpemUoKSxcblx0XHRcdHJlc29sdXRpb25TY2FsZTogdGhpcy5yZXNvbHV0aW9uU2NhbGUoKSxcblx0XHRcdHdpZHRoOiB0aGlzLndpZHRoKCksXG5cdFx0XHRoZWlnaHQ6IHRoaXMuaGVpZ2h0KCksXG5cdFx0XHRyZXNvbHV0aW9uWDogdGhpcy5yZXNvbHV0aW9uWCgpLFxuXHRcdFx0cmVzb2x1dGlvblk6IHRoaXMucmVzb2x1dGlvblkoKSxcblx0XHR9KTtcblxuXHRcdGVmZmVjdC5pbnZlcnRlZCA9IHRoaXMuaW52ZXJ0ZWQoKTtcblx0XHRlZmZlY3QuaWdub3JlQmFja2dyb3VuZCA9IHRoaXMuaWdub3JlQmFja2dyb3VuZCgpO1xuXG5cdFx0cmV0dXJuIGVmZmVjdDtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdC8vIHNraXAgaW5wdXQgc2VsZWN0aW9uIGFsdG9nZXRoZXIgaWYgTmd0U2VsZWN0aW9uIGlzIHVzZWRcblx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbkFwaSkgcmV0dXJuO1xuXHRcdFx0Y29uc3Qgc2VsZWN0aW9uID0gdGhpcy5yZXNvbHZlZFNlbGVjdGVkKCk7XG5cdFx0XHRpZiAoIXNlbGVjdGlvbi5sZW5ndGgpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZV0gPSBbdGhpcy5lZmZlY3QoKSwgdGhpcy5zdG9yZS5pbnZhbGlkYXRlKCksIHRoaXMuc2VsZWN0aW9uTGF5ZXIoKV07XG5cdFx0XHRlZmZlY3Quc2VsZWN0aW9uLnNldChzZWxlY3Rpb24gYXMgVEhSRUUuT2JqZWN0M0RbXSk7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGVmZmVjdC5zZWxlY3Rpb24uY2xlYXIoKTtcblx0XHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW3NlbGVjdGlvbkxheWVyLCBpbnZhbGlkYXRlLCBlZmZlY3RdID0gW1xuXHRcdFx0XHR0aGlzLnNlbGVjdGlvbkxheWVyKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLmVmZmVjdCgpLFxuXHRcdFx0XTtcblx0XHRcdGVmZmVjdC5zZWxlY3Rpb24ubGF5ZXIgPSBzZWxlY3Rpb25MYXllcjtcblx0XHRcdGludmFsaWRhdGUoKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBsaWdodHMgPSB0aGlzLnJlc29sdmVkTGlnaHRzKCk7XG5cdFx0XHRpZiAobGlnaHRzLmxlbmd0aCA8PSAwKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGVdID0gW3RoaXMuZWZmZWN0KCksIHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLCB0aGlzLnNlbGVjdGlvbkxheWVyKCldO1xuXG5cdFx0XHRsaWdodHMuZm9yRWFjaCgobGlnaHQpID0+IGxpZ2h0ICYmIHRoaXMuYWRkTGlnaHQoZWZmZWN0LCBsaWdodCkpO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRsaWdodHMuZm9yRWFjaCgobGlnaHQpID0+IGxpZ2h0ICYmIHRoaXMucmVtb3ZlTGlnaHQoZWZmZWN0LCBsaWdodCkpO1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBzZWxlY3RlZCA9IHRoaXMucmVzb2x2ZWROZ3RTZWxlY3RlZCgpO1xuXHRcdFx0aWYgKCFzZWxlY3RlZC5sZW5ndGgpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZV0gPSBbdGhpcy5lZmZlY3QoKSwgdGhpcy5zdG9yZS5pbnZhbGlkYXRlKCksIHRoaXMuc2VsZWN0aW9uTGF5ZXIoKV07XG5cdFx0XHRlZmZlY3Quc2VsZWN0aW9uLnNldChzZWxlY3RlZCBhcyBUSFJFRS5PYmplY3QzRFtdKTtcblx0XHRcdGludmFsaWRhdGUoKTtcblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0ZWZmZWN0LnNlbGVjdGlvbi5jbGVhcigpO1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYWRkTGlnaHQoZWZmZWN0OiBTZWxlY3RpdmVCbG9vbUVmZmVjdCwgbGlnaHQ6IFRIUkVFLk9iamVjdDNEKSB7XG5cdFx0bGlnaHQubGF5ZXJzLmVuYWJsZShlZmZlY3Quc2VsZWN0aW9uLmxheWVyKTtcblx0fVxuXG5cdHByaXZhdGUgcmVtb3ZlTGlnaHQoZWZmZWN0OiBTZWxlY3RpdmVCbG9vbUVmZmVjdCwgbGlnaHQ6IFRIUkVFLk9iamVjdDNEKSB7XG5cdFx0bGlnaHQubGF5ZXJzLmRpc2FibGUoZWZmZWN0LnNlbGVjdGlvbi5sYXllcik7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpSepia {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ SepiaEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSepia, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpSepia, isStandalone: true, selector: \"ngtp-sepia\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSepia, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-sepia',\n template: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9zZXBpYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFNBQVM7SUFJckI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQStDLG1EQUFDLENBQUM7UUFDdkQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBTlcsU0FBUztrR0FBVCxTQUFTLGtVQVhYOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsU0FBUztrQkFickIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTZXBpYUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBTZXBpYUVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgU2VwaWFFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtc2VwaWEnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtc2VwaWEtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3Qtc2VwaWEtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFNlcGlhIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8U2VwaWFFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgU2VwaWFFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpShockWave {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ShockWaveEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpShockWave, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpShockWave, isStandalone: true, selector: \"ngtp-shock-wave\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpShockWave, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-shock-wave',\n template: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvY2std2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3Nob2NrLXdhdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxhQUFhO0lBSXpCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFtRCxtREFBQyxDQUFDO1FBQzNELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQU5XLGFBQWE7a0dBQWIsYUFBYSx1VUFYZjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLGFBQWE7a0JBYnpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTaG9ja1dhdmVFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgU2hvY2tXYXZlRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTaG9ja1dhdmVFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtc2hvY2std2F2ZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1zaG9jay13YXZlLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXNob2NrLXdhdmUtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFNob2NrV2F2ZSB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PFNob2NrV2F2ZUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBTaG9ja1dhdmVFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SMAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpSMAA {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ SMAAEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSMAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpSMAA, isStandalone: true, selector: \"ngtp-smaa\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSMAA, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-smaa',\n template: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3NtYWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxRQUFRO0lBSXBCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE4QyxtREFBQyxDQUFDO1FBQ3RELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQU5XLFFBQVE7a0dBQVIsUUFBUSxpVUFYVjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLFFBQVE7a0JBYnBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgU01BQUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBTTUFBRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTTUFBRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXNtYWEnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtc01BQS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1zTUFBLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBTTUFBIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8U01BQUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBTTUFBRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpTiltShift {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ TiltShiftEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpTiltShift, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpTiltShift, isStandalone: true, selector: \"ngtp-tilt-shift\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpTiltShift, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tilt-shift',\n template: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsdC1zaGlmdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3RpbHQtc2hpZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBa0J6RixNQUFNLE9BQU8sYUFBYTtJQUl6QjtRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBbUQsbURBQUMsQ0FBQztRQUMzRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs4R0FOVyxhQUFhO2tHQUFiLGFBQWEsd01BRmQsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyw0SUFWcEU7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUkxQixhQUFhO2tCQWR6QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztpQkFDOUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIFRpbHRTaGlmdEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIFRpbHRTaGlmdEVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgVGlsdFNoaWZ0RWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXRpbHQtc2hpZnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtdGlsdC1zaGlmdC1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC10aWx0LXNoaWZ0LWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uQUREIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFRpbHRTaGlmdCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PFRpbHRTaGlmdEVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBUaWx0U2hpZnRFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst TiltShiftShader = {\n fragmentShader: /* language=glsl glsl */ `\n\n // original shader by Evan Wallace\n\n #define MAX_ITERATIONS 100\n\n uniform float blur;\n uniform float taper;\n uniform vec2 start;\n uniform vec2 end;\n uniform vec2 direction;\n uniform int samples;\n\n float random(vec3 scale, float seed) {\n /* use the fragment position for a different seed per-pixel */\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n }\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec4 color = vec4(0.0);\n float total = 0.0;\n vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);\n vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);\n float f_samples = float(samples);\n float half_samples = f_samples / 2.0;\n\n // use screen diagonal to normalize blur radii\n float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance\n float gradientRadius = taper * (maxScreenDistance);\n float blurRadius = blur * (maxScreenDistance / 16.0);\n\n /* randomize the lookup values to hide the fixed number of samples */\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;\n\n #pragma unroll_loop_start\n for (int i = 0; i <= MAX_ITERATIONS; i++) {\n if (i >= samples) { break; } // return early if over sample count\n float f_i = float(i);\n float s_i = -half_samples + f_i;\n float percent = (s_i + offset - 0.5) / half_samples;\n float weight = 1.0 - abs(percent);\n vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);\n /* switch to pre-multiplied alpha to correctly blur transparent images */\n sample_i.rgb *= sample_i.a;\n color += sample_i * weight;\n total += weight;\n }\n #pragma unroll_loop_end\n\n outputColor = color / total;\n\n /* switch back from pre-multiplied alpha */\n outputColor.rgb /= outputColor.a + 0.00001;\n }\n `,\n};\nexport class TiltShift2Effect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, blur = 0.15, // [0, 1], can go beyond 1 for extra\n taper = 0.5, // [0, 1], can go beyond 1 for extra\n start = [0.5, 0.0], // [0,1] percentage x,y of screenspace\n end = [0.5, 1.0], // [0,1] percentage x,y of screenspace\n samples = 10.0, // number of blur samples\n direction = [1, 1], // direction of blur\n } = {}) {\n super('TiltShiftEffect', TiltShiftShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map([\n ['blur', new THREE.Uniform(blur)],\n ['taper', new THREE.Uniform(taper)],\n ['start', new THREE.Uniform(start)],\n ['end', new THREE.Uniform(end)],\n ['samples', new THREE.Uniform(samples)],\n ['direction', new THREE.Uniform(direction)],\n ]),\n });\n }\n}\nextend({ TiltShift2Effect });\nexport class NgtpTiltShift2 {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpTiltShift2, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpTiltShift2, isStandalone: true, selector: \"ngtp-tilt-shift2\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpTiltShift2, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tilt-shift2',\n template: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsdC1zaGlmdC0yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvdGlsdC1zaGlmdC0yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFekYsTUFBTSxlQUFlLEdBQUc7SUFDdkIsY0FBYyxFQUFFLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdEckM7Q0FDSixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLE1BQU07SUFDM0MsWUFBWSxFQUNYLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUNwQyxJQUFJLEdBQUcsSUFBSSxFQUFFLG9DQUFvQztJQUNqRCxLQUFLLEdBQUcsR0FBRyxFQUFFLG9DQUFvQztJQUNqRCxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsc0NBQXNDO0lBQzFELEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxzQ0FBc0M7SUFDeEQsT0FBTyxHQUFHLElBQUksRUFBRSx5QkFBeUI7SUFDekMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLG9CQUFvQjtNQUN4QyxHQUFHLEVBQUU7UUFDTCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLGNBQWMsRUFBRTtZQUN4RCxhQUFhO1lBQ2IsVUFBVSxFQUFFLGVBQWUsQ0FBQyxXQUFXO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBMkM7Z0JBQzNELENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QyxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDM0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRDtBQUlELE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQWdCN0IsTUFBTSxPQUFPLGNBQWM7SUFkM0I7UUFlQyxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQW9ELG1EQUFDLENBQUM7UUFDNUQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUN0RDs4R0FIWSxjQUFjO2tHQUFkLGNBQWMseU1BRmYsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyw0SUFWdkU7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUkxQixjQUFjO2tCQWQxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIEVmZmVjdCwgRWZmZWN0QXR0cmlidXRlIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuY29uc3QgVGlsdFNoaWZ0U2hhZGVyID0ge1xuXHRmcmFnbWVudFNoYWRlcjogLyogbGFuZ3VhZ2U9Z2xzbCBnbHNsICovIGBcblxuICAgIC8vIG9yaWdpbmFsIHNoYWRlciBieSBFdmFuIFdhbGxhY2VcblxuICAgICNkZWZpbmUgTUFYX0lURVJBVElPTlMgMTAwXG5cbiAgICB1bmlmb3JtIGZsb2F0IGJsdXI7XG4gICAgdW5pZm9ybSBmbG9hdCB0YXBlcjtcbiAgICB1bmlmb3JtIHZlYzIgc3RhcnQ7XG4gICAgdW5pZm9ybSB2ZWMyIGVuZDtcbiAgICB1bmlmb3JtIHZlYzIgZGlyZWN0aW9uO1xuICAgIHVuaWZvcm0gaW50IHNhbXBsZXM7XG5cbiAgICBmbG9hdCByYW5kb20odmVjMyBzY2FsZSwgZmxvYXQgc2VlZCkge1xuICAgICAgICAvKiB1c2UgdGhlIGZyYWdtZW50IHBvc2l0aW9uIGZvciBhIGRpZmZlcmVudCBzZWVkIHBlci1waXhlbCAqL1xuICAgICAgICByZXR1cm4gZnJhY3Qoc2luKGRvdChnbF9GcmFnQ29vcmQueHl6ICsgc2VlZCwgc2NhbGUpKSAqIDQzNzU4LjU0NTMgKyBzZWVkKTtcbiAgICB9XG5cbiAgICB2b2lkIG1haW5JbWFnZShjb25zdCBpbiB2ZWM0IGlucHV0Q29sb3IsIGNvbnN0IGluIHZlYzIgdXYsIG91dCB2ZWM0IG91dHB1dENvbG9yKSB7XG4gICAgICAgIHZlYzQgY29sb3IgPSB2ZWM0KDAuMCk7XG4gICAgICAgIGZsb2F0IHRvdGFsID0gMC4wO1xuICAgICAgICB2ZWMyIHN0YXJ0UGl4ZWwgPSB2ZWMyKHN0YXJ0LnggKiByZXNvbHV0aW9uLngsIHN0YXJ0LnkgKiByZXNvbHV0aW9uLnkpO1xuICAgICAgICB2ZWMyIGVuZFBpeGVsID0gdmVjMihlbmQueCAqIHJlc29sdXRpb24ueCwgZW5kLnkgKiByZXNvbHV0aW9uLnkpO1xuICAgICAgICBmbG9hdCBmX3NhbXBsZXMgPSBmbG9hdChzYW1wbGVzKTtcbiAgICAgICAgZmxvYXQgaGFsZl9zYW1wbGVzID0gZl9zYW1wbGVzIC8gMi4wO1xuXG4gICAgICAgIC8vIHVzZSBzY3JlZW4gZGlhZ29uYWwgdG8gbm9ybWFsaXplIGJsdXIgcmFkaWlcbiAgICAgICAgZmxvYXQgbWF4U2NyZWVuRGlzdGFuY2UgPSBkaXN0YW5jZSh2ZWMyKDAuMCksIHJlc29sdXRpb24pOyAvLyBkaWFnb25hbCBkaXN0YW5jZVxuICAgICAgICBmbG9hdCBncmFkaWVudFJhZGl1cyA9IHRhcGVyICogKG1heFNjcmVlbkRpc3RhbmNlKTtcbiAgICAgICAgZmxvYXQgYmx1clJhZGl1cyA9IGJsdXIgKiAobWF4U2NyZWVuRGlzdGFuY2UgLyAxNi4wKTtcblxuICAgICAgICAvKiByYW5kb21pemUgdGhlIGxvb2t1cCB2YWx1ZXMgdG8gaGlkZSB0aGUgZml4ZWQgbnVtYmVyIG9mIHNhbXBsZXMgKi9cbiAgICAgICAgZmxvYXQgb2Zmc2V0ID0gcmFuZG9tKHZlYzMoMTIuOTg5OCwgNzguMjMzLCAxNTEuNzE4MiksIDAuMCk7XG4gICAgICAgIHZlYzIgbm9ybWFsID0gbm9ybWFsaXplKHZlYzIoc3RhcnRQaXhlbC55IC0gZW5kUGl4ZWwueSwgZW5kUGl4ZWwueCAtIHN0YXJ0UGl4ZWwueCkpO1xuICAgICAgICBmbG9hdCByYWRpdXMgPSBzbW9vdGhzdGVwKDAuMCwgMS4wLCBhYnMoZG90KHV2ICogcmVzb2x1dGlvbiAtIHN0YXJ0UGl4ZWwsIG5vcm1hbCkpIC8gZ3JhZGllbnRSYWRpdXMpICogYmx1clJhZGl1cztcblxuICAgICAgICAjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG4gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IE1BWF9JVEVSQVRJT05TOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpID49IHNhbXBsZXMpIHsgYnJlYWs7IH0gLy8gcmV0dXJuIGVhcmx5IGlmIG92ZXIgc2FtcGxlIGNvdW50XG4gICAgICAgICAgICBmbG9hdCBmX2kgPSBmbG9hdChpKTtcbiAgICAgICAgICAgIGZsb2F0IHNfaSA9IC1oYWxmX3NhbXBsZXMgKyBmX2k7XG4gICAgICAgICAgICBmbG9hdCBwZXJjZW50ID0gKHNfaSArIG9mZnNldCAtIDAuNSkgLyBoYWxmX3NhbXBsZXM7XG4gICAgICAgICAgICBmbG9hdCB3ZWlnaHQgPSAxLjAgLSBhYnMocGVyY2VudCk7XG4gICAgICAgICAgICB2ZWM0IHNhbXBsZV9pID0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCB1diArIG5vcm1hbGl6ZShkaXJlY3Rpb24pIC8gcmVzb2x1dGlvbiAqIHBlcmNlbnQgKiByYWRpdXMpO1xuICAgICAgICAgICAgLyogc3dpdGNoIHRvIHByZS1tdWx0aXBsaWVkIGFscGhhIHRvIGNvcnJlY3RseSBibHVyIHRyYW5zcGFyZW50IGltYWdlcyAqL1xuICAgICAgICAgICAgc2FtcGxlX2kucmdiICo9IHNhbXBsZV9pLmE7XG4gICAgICAgICAgICBjb2xvciArPSBzYW1wbGVfaSAqIHdlaWdodDtcbiAgICAgICAgICAgIHRvdGFsICs9IHdlaWdodDtcbiAgICAgICAgfVxuICAgICAgICAjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXG4gICAgICAgIG91dHB1dENvbG9yID0gY29sb3IgLyB0b3RhbDtcblxuICAgICAgICAvKiBzd2l0Y2ggYmFjayBmcm9tIHByZS1tdWx0aXBsaWVkIGFscGhhICovXG4gICAgICAgIG91dHB1dENvbG9yLnJnYiAvPSBvdXRwdXRDb2xvci5hICsgMC4wMDAwMTtcbiAgICB9XG4gICAgYCxcbn07XG5cbmV4cG9ydCBjbGFzcyBUaWx0U2hpZnQyRWZmZWN0IGV4dGVuZHMgRWZmZWN0IHtcblx0Y29uc3RydWN0b3Ioe1xuXHRcdGJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTCxcblx0XHRibHVyID0gMC4xNSwgLy8gWzAsIDFdLCBjYW4gZ28gYmV5b25kIDEgZm9yIGV4dHJhXG5cdFx0dGFwZXIgPSAwLjUsIC8vIFswLCAxXSwgY2FuIGdvIGJleW9uZCAxIGZvciBleHRyYVxuXHRcdHN0YXJ0ID0gWzAuNSwgMC4wXSwgLy8gWzAsMV0gcGVyY2VudGFnZSB4LHkgb2Ygc2NyZWVuc3BhY2Vcblx0XHRlbmQgPSBbMC41LCAxLjBdLCAvLyBbMCwxXSBwZXJjZW50YWdlIHgseSBvZiBzY3JlZW5zcGFjZVxuXHRcdHNhbXBsZXMgPSAxMC4wLCAvLyBudW1iZXIgb2YgYmx1ciBzYW1wbGVzXG5cdFx0ZGlyZWN0aW9uID0gWzEsIDFdLCAvLyBkaXJlY3Rpb24gb2YgYmx1clxuXHR9ID0ge30pIHtcblx0XHRzdXBlcignVGlsdFNoaWZ0RWZmZWN0JywgVGlsdFNoaWZ0U2hhZGVyLmZyYWdtZW50U2hhZGVyLCB7XG5cdFx0XHRibGVuZEZ1bmN0aW9uLFxuXHRcdFx0YXR0cmlidXRlczogRWZmZWN0QXR0cmlidXRlLkNPTlZPTFVUSU9OLFxuXHRcdFx0dW5pZm9ybXM6IG5ldyBNYXA8c3RyaW5nLCBUSFJFRS5Vbmlmb3JtPG51bWJlciB8IG51bWJlcltdPj4oW1xuXHRcdFx0XHRbJ2JsdXInLCBuZXcgVEhSRUUuVW5pZm9ybShibHVyKV0sXG5cdFx0XHRcdFsndGFwZXInLCBuZXcgVEhSRUUuVW5pZm9ybSh0YXBlcildLFxuXHRcdFx0XHRbJ3N0YXJ0JywgbmV3IFRIUkVFLlVuaWZvcm0oc3RhcnQpXSxcblx0XHRcdFx0WydlbmQnLCBuZXcgVEhSRUUuVW5pZm9ybShlbmQpXSxcblx0XHRcdFx0WydzYW1wbGVzJywgbmV3IFRIUkVFLlVuaWZvcm0oc2FtcGxlcyldLFxuXHRcdFx0XHRbJ2RpcmVjdGlvbicsIG5ldyBUSFJFRS5Vbmlmb3JtKGRpcmVjdGlvbildLFxuXHRcdFx0XSksXG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgVGlsdFNoaWZ0MkVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgVGlsdFNoaWZ0MkVmZmVjdD5bMF0+PjtcblxuZXh0ZW5kKHsgVGlsdFNoaWZ0MkVmZmVjdCB9KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC10aWx0LXNoaWZ0MicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC10aWx0LXNoaWZ0Mi1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC10aWx0LXNoaWZ0Mi1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBUaWx0U2hpZnQyIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VGlsdFNoaWZ0MkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ToneMappingEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpToneMapping {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ToneMappingEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpToneMapping, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpToneMapping, isStandalone: true, selector: \"ngtp-tone-mapping\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tone-mapping-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpToneMapping, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tone-mapping',\n template: `\n\t\t<ngt-tone-mapping-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uZS1tYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvdG9uZS1tYXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxlQUFlO0lBSTNCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFxRCxtREFBQyxDQUFDO1FBQzdELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7OEdBTlcsZUFBZTtrR0FBZixlQUFlLHlVQVhqQjs7Ozs7RUFLVCw0REFDUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSzFCLGVBQWU7a0JBYjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBUb25lTWFwcGluZ0VmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBUb25lTWFwcGluZ0VmZmVjdE9wdGlvbnMgPSBOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFRvbmVNYXBwaW5nRWZmZWN0PlswXT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtdG9uZS1tYXBwaW5nJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXRvbmUtbWFwcGluZy1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC10b25lLW1hcHBpbmctZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFRvbmVNYXBwaW5nIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VG9uZU1hcHBpbmdFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgVG9uZU1hcHBpbmdFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpVignette {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ VignetteEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpVignette, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpVignette, isStandalone: true, selector: \"ngtp-vignette\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpVignette, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-vignette',\n template: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlnbmV0dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy92aWduZXR0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFlBQVk7SUFJeEI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQWtELG1EQUFDLENBQUM7UUFDMUQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7OEdBTlcsWUFBWTtrR0FBWixZQUFZLHFVQVhkOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsWUFBWTtrQkFieEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBWaWduZXR0ZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBWaWduZXR0ZUVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgVmlnbmV0dGVFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtdmlnbmV0dGUnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtdmlnbmV0dGUtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtdmlnbmV0dGUtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFZpZ25ldHRlIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VmlnbmV0dGVFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgVmlnbmV0dGVFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst WaterShader = {\n fragmentShader: /* language=glsl glsl */ `\n uniform float factor;\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 vUv = uv;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = vUv.y * frequency + time * .7;\n float y = vUv.x * frequency + time * .3;\n vUv.x += cos(x+y) * amplitude * cos(y);\n vUv.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(inputBuffer, vUv);\n outputColor = rgba;\n }`,\n};\nexport class WaterEffect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, factor = 0 } = {}) {\n super('WaterEffect', WaterShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map([['factor', new THREE.Uniform(factor)]]),\n });\n }\n}\nexport class NgtpWater {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ WaterEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpWater, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpWater, isStandalone: true, selector: \"ngtp-water\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpWater, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-water',\n template: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy93YXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXpGLE1BQU0sV0FBVyxHQUFHO0lBQ25CLGNBQWMsRUFBRSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0lBWXRDO0NBQ0gsQ0FBQztBQUVGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUU7UUFDcEUsS0FBSyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsY0FBYyxFQUFFO1lBQ2hELGFBQWE7WUFDYixVQUFVLEVBQUUsZUFBZSxDQUFDLFdBQVc7WUFDdkMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUEyQyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEcsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNEO0FBa0JELE1BQU0sT0FBTyxTQUFTO0lBSXJCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxtREFBQyxDQUFDO1FBQ3ZELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQU5XLFNBQVM7a0dBQVQsU0FBUyxtTUFGVixDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLDRJQVZ2RTs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSTFCLFNBQVM7a0JBZHJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIEVmZmVjdCwgRWZmZWN0QXR0cmlidXRlIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuY29uc3QgV2F0ZXJTaGFkZXIgPSB7XG5cdGZyYWdtZW50U2hhZGVyOiAvKiBsYW5ndWFnZT1nbHNsIGdsc2wgKi8gYFxuICB1bmlmb3JtIGZsb2F0IGZhY3RvcjtcbiAgdm9pZCBtYWluSW1hZ2UoY29uc3QgaW4gdmVjNCBpbnB1dENvbG9yLCBjb25zdCBpbiB2ZWMyIHV2LCBvdXQgdmVjNCBvdXRwdXRDb2xvcikge1xuICAgIHZlYzIgdlV2ID0gdXY7XG4gICAgZmxvYXQgZnJlcXVlbmN5ID0gNi4wICogZmFjdG9yO1xuICAgIGZsb2F0IGFtcGxpdHVkZSA9IDAuMDE1ICogZmFjdG9yO1xuICAgIGZsb2F0IHggPSB2VXYueSAqIGZyZXF1ZW5jeSArIHRpbWUgKiAuNztcbiAgICBmbG9hdCB5ID0gdlV2LnggKiBmcmVxdWVuY3kgKyB0aW1lICogLjM7XG4gICAgdlV2LnggKz0gY29zKHgreSkgKiBhbXBsaXR1ZGUgKiBjb3MoeSk7XG4gICAgdlV2LnkgKz0gc2luKHgteSkgKiBhbXBsaXR1ZGUgKiBjb3MoeSk7XG4gICAgdmVjNCByZ2JhID0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCB2VXYpO1xuICAgIG91dHB1dENvbG9yID0gcmdiYTtcbiAgfWAsXG59O1xuXG5leHBvcnQgY2xhc3MgV2F0ZXJFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuXHRjb25zdHJ1Y3Rvcih7IGJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTCwgZmFjdG9yID0gMCB9ID0ge30pIHtcblx0XHRzdXBlcignV2F0ZXJFZmZlY3QnLCBXYXRlclNoYWRlci5mcmFnbWVudFNoYWRlciwge1xuXHRcdFx0YmxlbmRGdW5jdGlvbixcblx0XHRcdGF0dHJpYnV0ZXM6IEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTixcblx0XHRcdHVuaWZvcm1zOiBuZXcgTWFwPHN0cmluZywgVEhSRUUuVW5pZm9ybTxudW1iZXIgfCBudW1iZXJbXT4+KFtbJ2ZhY3RvcicsIG5ldyBUSFJFRS5Vbmlmb3JtKGZhY3RvcildXSksXG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgV2F0ZXJFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFdhdGVyRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXdhdGVyJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXdhdGVyLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXdhdGVyLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uTk9STUFMIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFdhdGVyIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8V2F0ZXJFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgV2F0ZXJFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1wb3N0cHJvY2Vzc2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2FuZ3VsYXItdGhyZWUtcG9zdHByb2Nlc3NpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["defaultOptions","i1.NgtpEffect"],"mappings":"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"}
|