angular-three-postprocessing 4.0.0-next.7 → 4.0.0-next.71

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,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, input, Directive, Injector, computed, viewChild, effect, untracked } from '@angular/core';
3
- import { injectStore, pick, extend, getInstanceState, injectBeforeRender, NgtArgs, vector2, omit, resolveRef, vector3, is, NgtSelection } from 'angular-three';
2
+ import { inject, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, input, Directive, computed, viewChild, effect, untracked } from '@angular/core';
3
+ import { injectStore, pick, extend, getInstanceState, injectBeforeRender, NgtArgs, vector2, omit, resolveRef, vector3, is, NgtSelectionApi } from 'angular-three';
4
4
  import { createNoopInjectionToken } from 'ngxtension/create-injection-token';
5
5
  import { mergeInputs } from 'ngxtension/inject-inputs';
6
- import { EffectAttribute, EffectComposer, RenderPass, NormalPass, DepthDownsamplingPass, Effect, EffectPass, Pass, BloomEffect, BlendFunction, BrightnessContrastEffect, ChromaticAberrationEffect, ColorAverageEffect, ColorDepthEffect, DepthEffect, DepthOfFieldEffect, MaskFunction, DotScreenEffect, FXAAEffect, GlitchEffect, GlitchMode, GodRaysEffect, GridEffect, HueSaturationEffect, LUT3DEffect, NoiseEffect, OutlineEffect, PixelationEffect, ScanlineEffect, SepiaEffect, ShockWaveEffect, SMAAEffect, TiltShiftEffect, ToneMappingEffect, VignetteEffect } from 'postprocessing';
6
+ import { EffectAttribute, EffectComposer, RenderPass, NormalPass, DepthDownsamplingPass, Effect, EffectPass, Pass, BloomEffect, BlendFunction, BrightnessContrastEffect, ChromaticAberrationEffect, ColorAverageEffect, ColorDepthEffect, DepthEffect, DepthOfFieldEffect, MaskFunction, DotScreenEffect, FXAAEffect, GlitchEffect, GlitchMode, GodRaysEffect, GridEffect, HueSaturationEffect, LUT3DEffect, NoiseEffect, OutlineEffect, PixelationEffect, ScanlineEffect, SelectiveBloomEffect, SepiaEffect, ShockWaveEffect, SMAAEffect, TiltShiftEffect, ToneMappingEffect, VignetteEffect } from 'postprocessing';
7
7
  import * as THREE from 'three';
8
8
  import { Group } from 'three';
9
9
  import { isWebGL2Available } from 'three-stdlib';
@@ -14,15 +14,15 @@ class NgtpEffectBlendMode {
14
14
  constructor() {
15
15
  this.effect = inject(NgtpEffect, { optional: true });
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpEffectBlendMode, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: NgtpEffectBlendMode, isStandalone: true, selector: "ngtp-effect-blend-mode", ngImport: i0, template: `
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpEffectBlendMode, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: NgtpEffectBlendMode, isStandalone: true, selector: "ngtp-effect-blend-mode", ngImport: i0, template: `
19
19
  @if (effect) {
20
20
  <ngt-value [rawValue]="effect.blendFunction()" attach="blendMode.blendFunction" />
21
21
  <ngt-value [rawValue]="effect.opacity()" attach="blendMode.opacity.value" />
22
22
  }
23
23
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpEffectBlendMode, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpEffectBlendMode, decorators: [{
26
26
  type: Component,
27
27
  args: [{
28
28
  selector: 'ngtp-effect-blend-mode',
@@ -45,14 +45,14 @@ class NgtpEffect {
45
45
  this.camera = this.store.camera;
46
46
  this.invalidate = this.store.invalidate;
47
47
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpEffect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", 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 }); }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpEffect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.6", 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 }); }
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpEffect, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpEffect, decorators: [{
52
52
  type: Directive
53
53
  }] });
54
54
 
55
- const defaultOptions$4 = {
55
+ const defaultOptions$5 = {
56
56
  enabled: true,
57
57
  renderPriority: 1,
58
58
  autoClear: true,
@@ -64,8 +64,7 @@ function isConvolution(effect) {
64
64
  }
65
65
  class NgtpEffectComposer {
66
66
  constructor() {
67
- this.options = input(defaultOptions$4, { transform: mergeInputs(defaultOptions$4) });
68
- this.injector = inject(Injector);
67
+ this.options = input(defaultOptions$5, { transform: mergeInputs(defaultOptions$5) });
69
68
  this.store = injectStore();
70
69
  this.depthBuffer = pick(this.options, 'depthBuffer');
71
70
  this.stencilBuffer = pick(this.options, 'stencilBuffer');
@@ -121,6 +120,7 @@ class NgtpEffectComposer {
121
120
  }
122
121
  return { composer, normalPass, downSamplingPass };
123
122
  });
123
+ this.effectComposer = pick(this.composerData, 'composer');
124
124
  extend({ Group });
125
125
  // NOTE: Disable tone mapping because threejs disallows tonemapping on render targets
126
126
  effect((onCleanup) => {
@@ -132,7 +132,11 @@ class NgtpEffectComposer {
132
132
  });
133
133
  });
134
134
  effect(() => {
135
- const [{ composer }, width, height] = [this.composerData(), this.store.size.width(), this.store.size.height()];
135
+ const [composer, width, height] = [
136
+ this.effectComposer(),
137
+ this.store.size.width(),
138
+ this.store.size.height(),
139
+ ];
136
140
  if (composer) {
137
141
  composer.setSize(width, height);
138
142
  }
@@ -186,34 +190,30 @@ class NgtpEffectComposer {
186
190
  downSamplingPass.enabled = false;
187
191
  });
188
192
  });
189
- effect((onCleanup) => {
190
- const priority = this.priority();
191
- const sub = injectBeforeRender(({ delta }) => {
192
- const [{ composer }, { enabled, autoClear, stencilBuffer }, gl] = [
193
- this.composerData(),
194
- this.options(),
195
- this.store.snapshot.gl,
196
- ];
197
- if (enabled) {
198
- const currentAutoClear = gl.autoClear;
199
- gl.autoClear = autoClear;
200
- if (stencilBuffer && !autoClear)
201
- gl.clearStencil();
202
- composer.render(delta);
203
- gl.autoClear = currentAutoClear;
204
- }
205
- }, { injector: this.injector, priority });
206
- onCleanup(() => sub());
207
- });
193
+ injectBeforeRender(({ delta }) => {
194
+ const [composer, { enabled, autoClear, stencilBuffer }, gl] = [
195
+ this.effectComposer(),
196
+ this.options(),
197
+ this.store.snapshot.gl,
198
+ ];
199
+ if (enabled) {
200
+ const currentAutoClear = gl.autoClear;
201
+ gl.autoClear = autoClear;
202
+ if (stencilBuffer && !autoClear)
203
+ gl.clearStencil();
204
+ composer.render(delta);
205
+ gl.autoClear = currentAutoClear;
206
+ }
207
+ }, { priority: this.priority });
208
208
  }
209
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpEffectComposer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.6", 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: `
209
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpEffectComposer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
210
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.6", 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: `
211
211
  <ngt-group #group>
212
212
  <ng-content />
213
213
  </ngt-group>
214
214
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
215
215
  }
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpEffectComposer, decorators: [{
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpEffectComposer, decorators: [{
217
217
  type: Component,
218
218
  args: [{
219
219
  selector: 'ngtp-effect-composer',
@@ -309,7 +309,7 @@ class ASCIIEffect extends Effect {
309
309
  return texture;
310
310
  }
311
311
  }
312
- const defaultOptions$3 = {
312
+ const defaultOptions$4 = {
313
313
  font: 'arial',
314
314
  characters: ` .:,'-^=*+?!|0#X%WM@`,
315
315
  fontSize: 54,
@@ -319,19 +319,19 @@ const defaultOptions$3 = {
319
319
  };
320
320
  class NgtpASCII {
321
321
  constructor() {
322
- this.options = input(defaultOptions$3, { transform: mergeInputs(defaultOptions$3) });
322
+ this.options = input(defaultOptions$4, { transform: mergeInputs(defaultOptions$4) });
323
323
  this.effect = computed(() => new ASCIIEffect(this.options()));
324
324
  effect((onCleanup) => {
325
325
  const effect = this.effect();
326
326
  onCleanup(() => effect.dispose());
327
327
  });
328
328
  }
329
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
330
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpASCII, isStandalone: true, selector: "ngtp-ascii", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
329
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
330
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpASCII, isStandalone: true, selector: "ngtp-ascii", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
331
331
  <ngt-primitive *args="[effect()]" />
332
332
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
333
333
  }
334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpASCII, decorators: [{
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpASCII, decorators: [{
335
335
  type: Component,
336
336
  args: [{
337
337
  selector: 'ngtp-ascii',
@@ -350,15 +350,15 @@ class NgtpBloom {
350
350
  this.effect = inject(NgtpEffect, { host: true });
351
351
  extend({ BloomEffect });
352
352
  }
353
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
354
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
353
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
354
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
355
355
  <ngt-bloom-effect *args="[options()]" [camera]="effect.camera()">
356
356
  <ngtp-effect-blend-mode />
357
357
  <ng-content />
358
358
  </ngt-bloom-effect>
359
359
  `, 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 }); }
360
360
  }
361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpBloom, decorators: [{
361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpBloom, decorators: [{
362
362
  type: Component,
363
363
  args: [{
364
364
  selector: 'ngtp-bloom',
@@ -382,15 +382,15 @@ class NgtpBrightnessContrast {
382
382
  this.effect = inject(NgtpEffect, { host: true });
383
383
  extend({ BrightnessContrastEffect });
384
384
  }
385
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpBrightnessContrast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
386
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpBrightnessContrast, isStandalone: true, selector: "ngtp-brightness-contrast", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
385
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpBrightnessContrast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
386
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpBrightnessContrast, isStandalone: true, selector: "ngtp-brightness-contrast", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
387
387
  <ngt-brightness-contrast-effect *args="[options()]" [camera]="effect.camera()">
388
388
  <ngtp-effect-blend-mode />
389
389
  <ng-content />
390
390
  </ngt-brightness-contrast-effect>
391
391
  `, 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 }); }
392
392
  }
393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpBrightnessContrast, decorators: [{
393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpBrightnessContrast, decorators: [{
394
394
  type: Component,
395
395
  args: [{
396
396
  selector: 'ngtp-brightness-contrast',
@@ -413,15 +413,15 @@ class NgtpChromaticAberration {
413
413
  this.effect = inject(NgtpEffect, { host: true });
414
414
  extend({ ChromaticAberrationEffect });
415
415
  }
416
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpChromaticAberration, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
417
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpChromaticAberration, isStandalone: true, selector: "ngtp-chromatic-aberration", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
416
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpChromaticAberration, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
417
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpChromaticAberration, isStandalone: true, selector: "ngtp-chromatic-aberration", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
418
418
  <ngt-chromatic-aberration-effect *args="[options()]" [camera]="effect.camera()">
419
419
  <ngtp-effect-blend-mode />
420
420
  <ng-content />
421
421
  </ngt-chromatic-aberration-effect>
422
422
  `, 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 }); }
423
423
  }
424
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpChromaticAberration, decorators: [{
424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpChromaticAberration, decorators: [{
425
425
  type: Component,
426
426
  args: [{
427
427
  selector: 'ngtp-chromatic-aberration',
@@ -443,14 +443,14 @@ class NgtpColorAverage {
443
443
  this.options = input({ blendFunction: BlendFunction.NORMAL }, { transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) });
444
444
  extend({ ColorAverageEffect });
445
445
  }
446
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
447
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpColorAverage, isStandalone: true, selector: "ngtp-color-average", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
446
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
447
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpColorAverage, isStandalone: true, selector: "ngtp-color-average", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
448
448
  <ngt-color-average-effect *args="[options().blendFunction]">
449
449
  <ng-content />
450
450
  </ngt-color-average-effect>
451
451
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
452
452
  }
453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpColorAverage, decorators: [{
453
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpColorAverage, decorators: [{
454
454
  type: Component,
455
455
  args: [{
456
456
  selector: 'ngtp-color-average',
@@ -471,15 +471,15 @@ class NgtpColorDepth {
471
471
  this.effect = inject(NgtpEffect, { host: true });
472
472
  extend({ ColorDepthEffect });
473
473
  }
474
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
475
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpColorDepth, isStandalone: true, selector: "ngtp-color-depth", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
474
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
475
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpColorDepth, isStandalone: true, selector: "ngtp-color-depth", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
476
476
  <ngt-color-depth-effect *args="[options()]" [camera]="effect.camera()">
477
477
  <ngtp-effect-blend-mode />
478
478
  <ng-content />
479
479
  </ngt-color-depth-effect>
480
480
  `, 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 }); }
481
481
  }
482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpColorDepth, decorators: [{
482
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpColorDepth, decorators: [{
483
483
  type: Component,
484
484
  args: [{
485
485
  selector: 'ngtp-color-depth',
@@ -502,15 +502,15 @@ class NgtpDepth {
502
502
  this.effect = inject(NgtpEffect, { host: true });
503
503
  extend({ DepthEffect });
504
504
  }
505
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
506
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpDepth, isStandalone: true, selector: "ngtp-depth", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
505
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
506
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpDepth, isStandalone: true, selector: "ngtp-depth", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
507
507
  <ngt-depth-effect *args="[options()]" [camera]="effect.camera()">
508
508
  <ngtp-effect-blend-mode />
509
509
  <ng-content />
510
510
  </ngt-depth-effect>
511
511
  `, 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 }); }
512
512
  }
513
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpDepth, decorators: [{
513
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpDepth, decorators: [{
514
514
  type: Component,
515
515
  args: [{
516
516
  selector: 'ngtp-depth',
@@ -552,12 +552,12 @@ class NgtpDepthOfField {
552
552
  onCleanup(() => depthOfFieldEffect.dispose());
553
553
  });
554
554
  }
555
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
556
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpDepthOfField, isStandalone: true, selector: "ngtp-depth-of-field", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
555
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
556
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpDepthOfField, isStandalone: true, selector: "ngtp-depth-of-field", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
557
557
  <ngt-primitive *args="[effect()]" />
558
558
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
559
559
  }
560
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpDepthOfField, decorators: [{
560
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpDepthOfField, decorators: [{
561
561
  type: Component,
562
562
  args: [{
563
563
  selector: 'ngtp-depth-of-field',
@@ -576,15 +576,15 @@ class NgtpDotScreen {
576
576
  this.effect = inject(NgtpEffect, { host: true });
577
577
  extend({ DotScreenEffect });
578
578
  }
579
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpDotScreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
580
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpDotScreen, isStandalone: true, selector: "ngtp-dot-screen", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
579
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpDotScreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
580
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpDotScreen, isStandalone: true, selector: "ngtp-dot-screen", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
581
581
  <ngt-dot-screen-effect *args="[options()]" [camera]="effect.camera()">
582
582
  <ngtp-effect-blend-mode />
583
583
  <ng-content />
584
584
  </ngt-dot-screen-effect>
585
585
  `, 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 }); }
586
586
  }
587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpDotScreen, decorators: [{
587
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpDotScreen, decorators: [{
588
588
  type: Component,
589
589
  args: [{
590
590
  selector: 'ngtp-dot-screen',
@@ -607,15 +607,15 @@ class NgtpFXAA {
607
607
  this.effect = inject(NgtpEffect, { host: true });
608
608
  extend({ FXAAEffect });
609
609
  }
610
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpFXAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
611
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpFXAA, isStandalone: true, selector: "ngtp-fxaa", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
610
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpFXAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
611
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpFXAA, isStandalone: true, selector: "ngtp-fxaa", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
612
612
  <ngt-fXAA-effect *args="[options()]" [camera]="effect.camera()">
613
613
  <ngtp-effect-blend-mode />
614
614
  <ng-content />
615
615
  </ngt-fXAA-effect>
616
616
  `, 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 }); }
617
617
  }
618
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpFXAA, decorators: [{
618
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpFXAA, decorators: [{
619
619
  type: Component,
620
620
  args: [{
621
621
  selector: 'ngtp-fxaa',
@@ -673,12 +673,12 @@ class NgtpGlitch {
673
673
  onCleanup(() => effect.dispose());
674
674
  });
675
675
  }
676
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpGlitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
677
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpGlitch, isStandalone: true, selector: "ngtp-glitch", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
676
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpGlitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
677
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpGlitch, isStandalone: true, selector: "ngtp-glitch", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
678
678
  <ngt-primitive *args="[effect()]" />
679
679
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
680
680
  }
681
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpGlitch, decorators: [{
681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpGlitch, decorators: [{
682
682
  type: Component,
683
683
  args: [{
684
684
  selector: 'ngtp-glitch',
@@ -719,12 +719,12 @@ class NgtpGodRays {
719
719
  onCleanup(() => effect.dispose());
720
720
  });
721
721
  }
722
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpGodRays, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
723
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpGodRays, isStandalone: true, selector: "ngtp-god-rays", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
722
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpGodRays, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
723
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpGodRays, isStandalone: true, selector: "ngtp-god-rays", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
724
724
  <ngt-primitive *args="[effect()]" />
725
725
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
726
726
  }
727
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpGodRays, decorators: [{
727
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpGodRays, decorators: [{
728
728
  type: Component,
729
729
  args: [{
730
730
  selector: 'ngtp-god-rays',
@@ -754,12 +754,12 @@ class NgtpGrid {
754
754
  onCleanup(() => effect.dispose());
755
755
  });
756
756
  }
757
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
758
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpGrid, isStandalone: true, selector: "ngtp-grid", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
757
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
758
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpGrid, isStandalone: true, selector: "ngtp-grid", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
759
759
  <ngt-primitive *args="[effect()]" />
760
760
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
761
761
  }
762
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpGrid, decorators: [{
762
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpGrid, decorators: [{
763
763
  type: Component,
764
764
  args: [{
765
765
  selector: 'ngtp-grid',
@@ -778,15 +778,15 @@ class NgtpHueSaturation {
778
778
  this.effect = inject(NgtpEffect, { host: true });
779
779
  extend({ HueSaturationEffect });
780
780
  }
781
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpHueSaturation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
782
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpHueSaturation, isStandalone: true, selector: "ngtp-hue-saturation", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
781
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpHueSaturation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
782
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpHueSaturation, isStandalone: true, selector: "ngtp-hue-saturation", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
783
783
  <ngt-hue-saturation-effect *args="[options()]" [camera]="effect.camera()">
784
784
  <ngtp-effect-blend-mode />
785
785
  <ng-content />
786
786
  </ngt-hue-saturation-effect>
787
787
  `, 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 }); }
788
788
  }
789
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpHueSaturation, decorators: [{
789
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpHueSaturation, decorators: [{
790
790
  type: Component,
791
791
  args: [{
792
792
  selector: 'ngtp-hue-saturation',
@@ -886,14 +886,14 @@ class LensFlareEffect extends Effect {
886
886
  }
887
887
  }
888
888
  }
889
- const defaultOptions$2 = {
889
+ const defaultOptions$3 = {
890
890
  position: new THREE.Vector3(-25, 6, -60),
891
891
  followMouse: false,
892
892
  smoothTime: 0.7,
893
893
  };
894
894
  class NgtpLensFlare {
895
895
  constructor() {
896
- this.options = input(defaultOptions$2, { transform: mergeInputs(defaultOptions$2) });
896
+ this.options = input(defaultOptions$3, { transform: mergeInputs(defaultOptions$3) });
897
897
  this.store = injectStore();
898
898
  this.effectComposer = inject(NgtpEffectComposer);
899
899
  this.effectOptions = omit(this.options, ['position', 'followMouse', 'smoothTime']);
@@ -974,12 +974,12 @@ class NgtpLensFlare {
974
974
  easing.damp(uOpacity, 'value', target, smoothTime, delta);
975
975
  });
976
976
  }
977
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpLensFlare, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
978
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpLensFlare, isStandalone: true, selector: "ngtp-lens-flare", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
977
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpLensFlare, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
978
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpLensFlare, isStandalone: true, selector: "ngtp-lens-flare", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
979
979
  <ngt-primitive *args="[effect()]" [parameters]="{ dispose: null }" />
980
980
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
981
981
  }
982
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpLensFlare, decorators: [{
982
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpLensFlare, decorators: [{
983
983
  type: Component,
984
984
  args: [{
985
985
  selector: 'ngtp-lens-flare',
@@ -1020,12 +1020,12 @@ class NgtpLUT {
1020
1020
  onCleanup(() => effect.dispose());
1021
1021
  });
1022
1022
  }
1023
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpLUT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1024
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpLUT, isStandalone: true, selector: "ngtp-lut", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1023
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpLUT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1024
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpLUT, isStandalone: true, selector: "ngtp-lut", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1025
1025
  <ngt-primitive *args="[effect()]" [dispose]="null" />
1026
1026
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1027
1027
  }
1028
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpLUT, decorators: [{
1028
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpLUT, decorators: [{
1029
1029
  type: Component,
1030
1030
  args: [{
1031
1031
  selector: 'ngtp-lut',
@@ -1044,15 +1044,15 @@ class NgtpNoise {
1044
1044
  this.effect = inject(NgtpEffect, { host: true });
1045
1045
  extend({ NoiseEffect });
1046
1046
  }
1047
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpNoise, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1048
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1047
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpNoise, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1048
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1049
1049
  <ngt-noise-effect *args="[options()]" [camera]="effect.camera()">
1050
1050
  <ngtp-effect-blend-mode />
1051
1051
  <ng-content />
1052
1052
  </ngt-noise-effect>
1053
1053
  `, 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 }); }
1054
1054
  }
1055
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpNoise, decorators: [{
1055
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpNoise, decorators: [{
1056
1056
  type: Component,
1057
1057
  args: [{
1058
1058
  selector: 'ngtp-noise',
@@ -1070,13 +1070,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
1070
1070
  }]
1071
1071
  }], ctorParameters: () => [] });
1072
1072
 
1073
- const defaultOptions$1 = {
1073
+ const defaultOptions$2 = {
1074
1074
  selectionLayer: 10,
1075
1075
  };
1076
1076
  class NgtpOutline {
1077
1077
  constructor() {
1078
- this.options = input(defaultOptions$1, { transform: mergeInputs(defaultOptions$1) });
1079
- this.ngtSelection = inject(NgtSelection, { optional: true });
1078
+ this.options = input(defaultOptions$2, { transform: mergeInputs(defaultOptions$2) });
1079
+ this.selectionApi = inject(NgtSelectionApi, { optional: true });
1080
1080
  this.effectComposer = inject(NgtpEffectComposer);
1081
1081
  this.store = injectStore();
1082
1082
  this.selection = pick(this.options, 'selection');
@@ -1142,13 +1142,17 @@ class NgtpOutline {
1142
1142
  onCleanup(() => effect.dispose());
1143
1143
  });
1144
1144
  effect(() => {
1145
- const [effect, invalidate, selectionLayer] = [this.effect(), this.store.invalidate(), this.selectionLayer()];
1145
+ const [effect, invalidate, selectionLayer] = [
1146
+ this.effect(),
1147
+ this.store.invalidate(),
1148
+ this.selectionLayer(),
1149
+ ];
1146
1150
  effect.selectionLayer = selectionLayer;
1147
1151
  invalidate();
1148
1152
  });
1149
1153
  effect((onCleanup) => {
1150
1154
  // NOTE: we run this effect if declarative NgtSelection is not enabled
1151
- if (!this.ngtSelection) {
1155
+ if (!this.selectionApi) {
1152
1156
  // NOTE: if NgtSelection is not used and selection is not provided, we throw
1153
1157
  if (this.selection() === undefined) {
1154
1158
  throw new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');
@@ -1160,10 +1164,10 @@ class NgtpOutline {
1160
1164
  return;
1161
1165
  }
1162
1166
  // NOTE: we run this effect if declarative NgtSelection is enabled
1163
- const selectionEnabled = this.ngtSelection.enabled();
1167
+ const selectionEnabled = this.selectionApi.enabled();
1164
1168
  if (!selectionEnabled)
1165
1169
  return;
1166
- const cleanup = this.handleSelectionChangeEffect(this.ngtSelection.selected, this.effect, this.store.invalidate);
1170
+ const cleanup = this.handleSelectionChangeEffect(this.selectionApi.selected, this.effect, this.store.invalidate);
1167
1171
  onCleanup(() => {
1168
1172
  cleanup?.();
1169
1173
  });
@@ -1190,12 +1194,12 @@ class NgtpOutline {
1190
1194
  invalidate();
1191
1195
  };
1192
1196
  }
1193
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpOutline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1194
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpOutline, isStandalone: true, selector: "ngtp-outline", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1197
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpOutline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpOutline, isStandalone: true, selector: "ngtp-outline", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1195
1199
  <ngt-primitive *args="[effect()]" />
1196
1200
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1197
1201
  }
1198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpOutline, decorators: [{
1202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpOutline, decorators: [{
1199
1203
  type: Component,
1200
1204
  args: [{
1201
1205
  selector: 'ngtp-outline',
@@ -1218,12 +1222,12 @@ class NgtpPixelation {
1218
1222
  onCleanup(() => effect.dispose());
1219
1223
  });
1220
1224
  }
1221
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpPixelation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1222
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpPixelation, isStandalone: true, selector: "ngtp-pixelation", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1225
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpPixelation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1226
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpPixelation, isStandalone: true, selector: "ngtp-pixelation", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1223
1227
  <ngt-primitive *args="[effect()]" />
1224
1228
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1225
1229
  }
1226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpPixelation, decorators: [{
1230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpPixelation, decorators: [{
1227
1231
  type: Component,
1228
1232
  args: [{
1229
1233
  selector: 'ngtp-pixelation',
@@ -1236,24 +1240,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
1236
1240
  }]
1237
1241
  }], ctorParameters: () => [] });
1238
1242
 
1239
- const defaultOptions = {
1243
+ const defaultOptions$1 = {
1240
1244
  density: 1.25,
1241
1245
  };
1242
1246
  class NgtpScanline {
1243
1247
  constructor() {
1244
- this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
1248
+ this.options = input(defaultOptions$1, { transform: mergeInputs(defaultOptions$1) });
1245
1249
  this.effect = inject(NgtpEffect, { host: true });
1246
1250
  extend({ ScanlineEffect });
1247
1251
  }
1248
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpScanline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1249
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1252
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpScanline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1250
1254
  <ngt-scanline-effect *args="[options()]" [camera]="effect.camera()">
1251
1255
  <ngtp-effect-blend-mode />
1252
1256
  <ng-content />
1253
1257
  </ngt-scanline-effect>
1254
1258
  `, 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 }); }
1255
1259
  }
1256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpScanline, decorators: [{
1260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpScanline, decorators: [{
1257
1261
  type: Component,
1258
1262
  args: [{
1259
1263
  selector: 'ngtp-scanline',
@@ -1271,21 +1275,158 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
1271
1275
  }]
1272
1276
  }], ctorParameters: () => [] });
1273
1277
 
1278
+ // const addLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.enable(effect.selection.layer)
1279
+ // const removeLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.disable(effect.selection.layer)
1280
+ const defaultOptions = {
1281
+ selectionLayer: 10,
1282
+ inverted: false,
1283
+ ignoreBackground: false,
1284
+ };
1285
+ class NgtpSelectiveBloom {
1286
+ constructor() {
1287
+ this.lights = input.required();
1288
+ this.selection = input([]);
1289
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
1290
+ this.blendFunction = pick(this.options, 'blendFunction');
1291
+ this.luminanceThreshold = pick(this.options, 'luminanceThreshold');
1292
+ this.luminanceSmoothing = pick(this.options, 'luminanceSmoothing');
1293
+ this.mipmapBlur = pick(this.options, 'mipmapBlur');
1294
+ this.intensity = pick(this.options, 'intensity');
1295
+ this.radius = pick(this.options, 'radius');
1296
+ this.levels = pick(this.options, 'levels');
1297
+ this.kernelSize = pick(this.options, 'kernelSize');
1298
+ this.resolutionScale = pick(this.options, 'resolutionScale');
1299
+ this.width = pick(this.options, 'width');
1300
+ this.height = pick(this.options, 'height');
1301
+ this.resolutionX = pick(this.options, 'resolutionX');
1302
+ this.resolutionY = pick(this.options, 'resolutionY');
1303
+ this.inverted = pick(this.options, 'inverted');
1304
+ this.ignoreBackground = pick(this.options, 'ignoreBackground');
1305
+ this.selectionLayer = pick(this.options, 'selectionLayer');
1306
+ this.store = injectStore();
1307
+ this.effectComposer = inject(NgtpEffectComposer);
1308
+ this.selectionApi = inject(NgtSelectionApi, { optional: true });
1309
+ this.resolvedLights = computed(() => this.lights().map((light) => resolveRef(light)));
1310
+ this.resolvedSelected = computed(() => {
1311
+ const selection = this.selection();
1312
+ if (!selection)
1313
+ return [];
1314
+ const array = Array.isArray(selection) ? selection : [selection];
1315
+ return array.map((selected) => resolveRef(selected));
1316
+ });
1317
+ this.resolvedNgtSelected = computed(() => {
1318
+ if (!this.selectionApi || !this.selectionApi.enabled)
1319
+ return [];
1320
+ return this.selectionApi.selected().map((selected) => resolveRef(selected));
1321
+ });
1322
+ this.effect = computed(() => {
1323
+ const effect = new SelectiveBloomEffect(this.effectComposer.scene(), this.effectComposer.camera(), {
1324
+ blendFunction: this.blendFunction() || BlendFunction.ADD,
1325
+ luminanceThreshold: this.luminanceThreshold(),
1326
+ luminanceSmoothing: this.luminanceSmoothing(),
1327
+ mipmapBlur: this.mipmapBlur(),
1328
+ intensity: this.intensity(),
1329
+ radius: this.radius(),
1330
+ levels: this.levels(),
1331
+ kernelSize: this.kernelSize(),
1332
+ resolutionScale: this.resolutionScale(),
1333
+ width: this.width(),
1334
+ height: this.height(),
1335
+ resolutionX: this.resolutionX(),
1336
+ resolutionY: this.resolutionY(),
1337
+ });
1338
+ effect.inverted = this.inverted();
1339
+ effect.ignoreBackground = this.ignoreBackground();
1340
+ return effect;
1341
+ });
1342
+ effect((onCleanup) => {
1343
+ // skip input selection altogether if NgtSelection is used
1344
+ if (this.selectionApi)
1345
+ return;
1346
+ const selection = this.resolvedSelected();
1347
+ if (!selection.length)
1348
+ return;
1349
+ const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];
1350
+ effect.selection.set(selection);
1351
+ invalidate();
1352
+ onCleanup(() => {
1353
+ effect.selection.clear();
1354
+ invalidate();
1355
+ });
1356
+ });
1357
+ effect(() => {
1358
+ const [selectionLayer, invalidate, effect] = [
1359
+ this.selectionLayer(),
1360
+ this.store.invalidate(),
1361
+ this.effect(),
1362
+ ];
1363
+ effect.selection.layer = selectionLayer;
1364
+ invalidate();
1365
+ });
1366
+ effect((onCleanup) => {
1367
+ const lights = this.resolvedLights();
1368
+ if (lights.length <= 0)
1369
+ return;
1370
+ const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];
1371
+ lights.forEach((light) => light && this.addLight(effect, light));
1372
+ invalidate();
1373
+ onCleanup(() => {
1374
+ lights.forEach((light) => light && this.removeLight(effect, light));
1375
+ invalidate();
1376
+ });
1377
+ });
1378
+ effect((onCleanup) => {
1379
+ const selected = this.resolvedNgtSelected();
1380
+ if (!selected.length)
1381
+ return;
1382
+ const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];
1383
+ effect.selection.set(selected);
1384
+ invalidate();
1385
+ onCleanup(() => {
1386
+ effect.selection.clear();
1387
+ invalidate();
1388
+ });
1389
+ });
1390
+ }
1391
+ addLight(effect, light) {
1392
+ light.layers.enable(effect.selection.layer);
1393
+ }
1394
+ removeLight(effect, light) {
1395
+ light.layers.disable(effect.selection.layer);
1396
+ }
1397
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpSelectiveBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1398
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", 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: `
1399
+ <ngt-primitive *args="[effect()]" [dispose]="null" />
1400
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1401
+ }
1402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpSelectiveBloom, decorators: [{
1403
+ type: Component,
1404
+ args: [{
1405
+ selector: 'ngtp-selective-bloom',
1406
+ template: `
1407
+ <ngt-primitive *args="[effect()]" [dispose]="null" />
1408
+ `,
1409
+ imports: [NgtArgs],
1410
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
1411
+ changeDetection: ChangeDetectionStrategy.OnPush,
1412
+ }]
1413
+ }], ctorParameters: () => [] });
1414
+
1274
1415
  class NgtpSepia {
1275
1416
  constructor() {
1276
1417
  this.options = input({});
1277
1418
  this.effect = inject(NgtpEffect, { host: true });
1278
1419
  extend({ SepiaEffect });
1279
1420
  }
1280
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpSepia, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1281
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpSepia, isStandalone: true, selector: "ngtp-sepia", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1421
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpSepia, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1422
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpSepia, isStandalone: true, selector: "ngtp-sepia", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1282
1423
  <ngt-sepia-effect *args="[options()]" [camera]="effect.camera()">
1283
1424
  <ngtp-effect-blend-mode />
1284
1425
  <ng-content />
1285
1426
  </ngt-sepia-effect>
1286
1427
  `, 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 }); }
1287
1428
  }
1288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpSepia, decorators: [{
1429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpSepia, decorators: [{
1289
1430
  type: Component,
1290
1431
  args: [{
1291
1432
  selector: 'ngtp-sepia',
@@ -1308,15 +1449,15 @@ class NgtpShockWave {
1308
1449
  this.effect = inject(NgtpEffect, { host: true });
1309
1450
  extend({ ShockWaveEffect });
1310
1451
  }
1311
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpShockWave, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1312
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpShockWave, isStandalone: true, selector: "ngtp-shock-wave", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1452
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpShockWave, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1453
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpShockWave, isStandalone: true, selector: "ngtp-shock-wave", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1313
1454
  <ngt-shock-wave-effect *args="[options()]" [camera]="effect.camera()">
1314
1455
  <ngtp-effect-blend-mode />
1315
1456
  <ng-content />
1316
1457
  </ngt-shock-wave-effect>
1317
1458
  `, 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 }); }
1318
1459
  }
1319
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpShockWave, decorators: [{
1460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpShockWave, decorators: [{
1320
1461
  type: Component,
1321
1462
  args: [{
1322
1463
  selector: 'ngtp-shock-wave',
@@ -1339,15 +1480,15 @@ class NgtpSMAA {
1339
1480
  this.effect = inject(NgtpEffect, { host: true });
1340
1481
  extend({ SMAAEffect });
1341
1482
  }
1342
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpSMAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1343
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpSMAA, isStandalone: true, selector: "ngtp-smaa", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1483
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpSMAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1484
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpSMAA, isStandalone: true, selector: "ngtp-smaa", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1344
1485
  <ngt-sMAA-effect *args="[options()]" [camera]="effect.camera()">
1345
1486
  <ngtp-effect-blend-mode />
1346
1487
  <ng-content />
1347
1488
  </ngt-sMAA-effect>
1348
1489
  `, 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 }); }
1349
1490
  }
1350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpSMAA, decorators: [{
1491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpSMAA, decorators: [{
1351
1492
  type: Component,
1352
1493
  args: [{
1353
1494
  selector: 'ngtp-smaa',
@@ -1370,15 +1511,15 @@ class NgtpTiltShift {
1370
1511
  this.effect = inject(NgtpEffect, { host: true });
1371
1512
  extend({ TiltShiftEffect });
1372
1513
  }
1373
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpTiltShift, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1374
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1514
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpTiltShift, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1515
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1375
1516
  <ngt-tilt-shift-effect *args="[options()]" [camera]="effect.camera()">
1376
1517
  <ngtp-effect-blend-mode />
1377
1518
  <ng-content />
1378
1519
  </ngt-tilt-shift-effect>
1379
1520
  `, 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 }); }
1380
1521
  }
1381
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpTiltShift, decorators: [{
1522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpTiltShift, decorators: [{
1382
1523
  type: Component,
1383
1524
  args: [{
1384
1525
  selector: 'ngtp-tilt-shift',
@@ -1483,15 +1624,15 @@ class NgtpTiltShift2 {
1483
1624
  this.options = input({});
1484
1625
  this.effect = inject(NgtpEffect, { host: true });
1485
1626
  }
1486
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpTiltShift2, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1487
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1627
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpTiltShift2, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1628
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1488
1629
  <ngt-tilt-shift2-effect *args="[options()]" [camera]="effect.camera()">
1489
1630
  <ngtp-effect-blend-mode />
1490
1631
  <ng-content />
1491
1632
  </ngt-tilt-shift2-effect>
1492
1633
  `, 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 }); }
1493
1634
  }
1494
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpTiltShift2, decorators: [{
1635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpTiltShift2, decorators: [{
1495
1636
  type: Component,
1496
1637
  args: [{
1497
1638
  selector: 'ngtp-tilt-shift2',
@@ -1515,15 +1656,15 @@ class NgtpToneMapping {
1515
1656
  this.effect = inject(NgtpEffect, { host: true });
1516
1657
  extend({ ToneMappingEffect });
1517
1658
  }
1518
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpToneMapping, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1519
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpToneMapping, isStandalone: true, selector: "ngtp-tone-mapping", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1659
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpToneMapping, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1660
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpToneMapping, isStandalone: true, selector: "ngtp-tone-mapping", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1520
1661
  <ngt-tone-mapping-effect *args="[options()]" [camera]="effect.camera()">
1521
1662
  <ngtp-effect-blend-mode />
1522
1663
  <ng-content />
1523
1664
  </ngt-tone-mapping-effect>
1524
1665
  `, 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 }); }
1525
1666
  }
1526
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpToneMapping, decorators: [{
1667
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpToneMapping, decorators: [{
1527
1668
  type: Component,
1528
1669
  args: [{
1529
1670
  selector: 'ngtp-tone-mapping',
@@ -1546,15 +1687,15 @@ class NgtpVignette {
1546
1687
  this.effect = inject(NgtpEffect, { host: true });
1547
1688
  extend({ VignetteEffect });
1548
1689
  }
1549
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpVignette, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1550
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", type: NgtpVignette, isStandalone: true, selector: "ngtp-vignette", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1690
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpVignette, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1691
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", type: NgtpVignette, isStandalone: true, selector: "ngtp-vignette", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1551
1692
  <ngt-vignette-effect *args="[options()]" [camera]="effect.camera()">
1552
1693
  <ngtp-effect-blend-mode />
1553
1694
  <ng-content />
1554
1695
  </ngt-vignette-effect>
1555
1696
  `, 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 }); }
1556
1697
  }
1557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpVignette, decorators: [{
1698
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpVignette, decorators: [{
1558
1699
  type: Component,
1559
1700
  args: [{
1560
1701
  selector: 'ngtp-vignette',
@@ -1601,15 +1742,15 @@ class NgtpWater {
1601
1742
  this.effect = inject(NgtpEffect, { host: true });
1602
1743
  extend({ WaterEffect });
1603
1744
  }
1604
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpWater, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1605
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1745
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpWater, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1746
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", 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: NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
1606
1747
  <ngt-water-effect *args="[options()]" [camera]="effect.camera()">
1607
1748
  <ngtp-effect-blend-mode />
1608
1749
  <ng-content />
1609
1750
  </ngt-water-effect>
1610
1751
  `, 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 }); }
1611
1752
  }
1612
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpWater, decorators: [{
1753
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NgtpWater, decorators: [{
1613
1754
  type: Component,
1614
1755
  args: [{
1615
1756
  selector: 'ngtp-water',
@@ -1631,5 +1772,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
1631
1772
  * Generated bundle index. Do not edit.
1632
1773
  */
1633
1774
 
1634
- export { ASCIIEffect, LensFlareEffect, NgtpASCII, NgtpBloom, NgtpBrightnessContrast, NgtpChromaticAberration, NgtpColorAverage, NgtpColorDepth, NgtpDepth, NgtpDepthOfField, NgtpDotScreen, NgtpEffect, NgtpEffectBlendMode, NgtpEffectComposer, NgtpFXAA, NgtpGlitch, NgtpGodRays, NgtpGrid, NgtpHueSaturation, NgtpLUT, NgtpLensFlare, NgtpNoise, NgtpOutline, NgtpPixelation, NgtpSMAA, NgtpScanline, NgtpSepia, NgtpShockWave, NgtpTiltShift, NgtpTiltShift2, NgtpToneMapping, NgtpVignette, NgtpWater, TiltShift2Effect, WaterEffect, injectDefaultEffectOptions, provideDefaultEffectOptions };
1775
+ export { ASCIIEffect, LensFlareEffect, NgtpASCII, NgtpBloom, NgtpBrightnessContrast, NgtpChromaticAberration, NgtpColorAverage, NgtpColorDepth, NgtpDepth, NgtpDepthOfField, NgtpDotScreen, NgtpEffect, NgtpEffectBlendMode, NgtpEffectComposer, NgtpFXAA, NgtpGlitch, NgtpGodRays, NgtpGrid, NgtpHueSaturation, NgtpLUT, NgtpLensFlare, NgtpNoise, NgtpOutline, NgtpPixelation, NgtpSMAA, NgtpScanline, NgtpSelectiveBloom, NgtpSepia, NgtpShockWave, NgtpTiltShift, NgtpTiltShift2, NgtpToneMapping, NgtpVignette, NgtpWater, TiltShift2Effect, WaterEffect, injectDefaultEffectOptions, provideDefaultEffectOptions };
1635
1776
  //# sourceMappingURL=angular-three-postprocessing.mjs.map