angular-three-postprocessing 4.0.0-next.2 → 4.0.0-next.21

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';
2
+ import { inject, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, input, Directive, computed, viewChild, effect, untracked } from '@angular/core';
3
3
  import { injectStore, pick, extend, getInstanceState, injectBeforeRender, NgtArgs, vector2, omit, resolveRef, vector3, is, NgtSelection } 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.5", ngImport: i0, type: NgtpEffectBlendMode, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", 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.5", 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.5", ngImport: i0, type: NgtpEffect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.5", 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.5", 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,13 +64,8 @@ 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
- // private size = this.store.select('size');
71
- // private gl = this.store.select('gl');
72
- // private defaultScene = this.store.select('scene');
73
- // private defaultCamera = this.store.select('camera');
74
69
  this.depthBuffer = pick(this.options, 'depthBuffer');
75
70
  this.stencilBuffer = pick(this.options, 'stencilBuffer');
76
71
  this.multisampling = pick(this.options, 'multisampling');
@@ -125,6 +120,7 @@ class NgtpEffectComposer {
125
120
  }
126
121
  return { composer, normalPass, downSamplingPass };
127
122
  });
123
+ this.effectComposer = pick(this.composerData, 'composer');
128
124
  extend({ Group });
129
125
  // NOTE: Disable tone mapping because threejs disallows tonemapping on render targets
130
126
  effect((onCleanup) => {
@@ -136,7 +132,11 @@ class NgtpEffectComposer {
136
132
  });
137
133
  });
138
134
  effect(() => {
139
- 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
+ ];
140
140
  if (composer) {
141
141
  composer.setSize(width, height);
142
142
  }
@@ -190,34 +190,30 @@ class NgtpEffectComposer {
190
190
  downSamplingPass.enabled = false;
191
191
  });
192
192
  });
193
- effect((onCleanup) => {
194
- const priority = this.priority();
195
- const sub = injectBeforeRender(({ delta }) => {
196
- const [{ composer }, { enabled, autoClear, stencilBuffer }, gl] = [
197
- this.composerData(),
198
- this.options(),
199
- this.store.snapshot.gl,
200
- ];
201
- if (enabled) {
202
- const currentAutoClear = gl.autoClear;
203
- gl.autoClear = autoClear;
204
- if (stencilBuffer && !autoClear)
205
- gl.clearStencil();
206
- composer.render(delta);
207
- gl.autoClear = currentAutoClear;
208
- }
209
- }, { injector: this.injector, priority });
210
- onCleanup(() => sub());
211
- });
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 });
212
208
  }
213
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpEffectComposer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
214
- 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.5", ngImport: i0, type: NgtpEffectComposer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
210
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.5", 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: `
215
211
  <ngt-group #group>
216
212
  <ng-content />
217
213
  </ngt-group>
218
214
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
219
215
  }
220
- 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.5", ngImport: i0, type: NgtpEffectComposer, decorators: [{
221
217
  type: Component,
222
218
  args: [{
223
219
  selector: 'ngtp-effect-composer',
@@ -313,7 +309,7 @@ class ASCIIEffect extends Effect {
313
309
  return texture;
314
310
  }
315
311
  }
316
- const defaultOptions$3 = {
312
+ const defaultOptions$4 = {
317
313
  font: 'arial',
318
314
  characters: ` .:,'-^=*+?!|0#X%WM@`,
319
315
  fontSize: 54,
@@ -323,19 +319,19 @@ const defaultOptions$3 = {
323
319
  };
324
320
  class NgtpASCII {
325
321
  constructor() {
326
- this.options = input(defaultOptions$3, { transform: mergeInputs(defaultOptions$3) });
322
+ this.options = input(defaultOptions$4, { transform: mergeInputs(defaultOptions$4) });
327
323
  this.effect = computed(() => new ASCIIEffect(this.options()));
328
324
  effect((onCleanup) => {
329
325
  const effect = this.effect();
330
326
  onCleanup(() => effect.dispose());
331
327
  });
332
328
  }
333
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
334
- 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.5", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
330
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: NgtpASCII, isStandalone: true, selector: "ngtp-ascii", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
335
331
  <ngt-primitive *args="[effect()]" />
336
332
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
337
333
  }
338
- 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.5", ngImport: i0, type: NgtpASCII, decorators: [{
339
335
  type: Component,
340
336
  args: [{
341
337
  selector: 'ngtp-ascii',
@@ -354,15 +350,15 @@ class NgtpBloom {
354
350
  this.effect = inject(NgtpEffect, { host: true });
355
351
  extend({ BloomEffect });
356
352
  }
357
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
358
- 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.5", ngImport: i0, type: NgtpBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
354
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
359
355
  <ngt-bloom-effect *args="[options()]" [camera]="effect.camera()">
360
356
  <ngtp-effect-blend-mode />
361
357
  <ng-content />
362
358
  </ngt-bloom-effect>
363
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 }); }
364
360
  }
365
- 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.5", ngImport: i0, type: NgtpBloom, decorators: [{
366
362
  type: Component,
367
363
  args: [{
368
364
  selector: 'ngtp-bloom',
@@ -386,15 +382,15 @@ class NgtpBrightnessContrast {
386
382
  this.effect = inject(NgtpEffect, { host: true });
387
383
  extend({ BrightnessContrastEffect });
388
384
  }
389
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpBrightnessContrast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
390
- 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.5", ngImport: i0, type: NgtpBrightnessContrast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
386
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
391
387
  <ngt-brightness-contrast-effect *args="[options()]" [camera]="effect.camera()">
392
388
  <ngtp-effect-blend-mode />
393
389
  <ng-content />
394
390
  </ngt-brightness-contrast-effect>
395
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 }); }
396
392
  }
397
- 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.5", ngImport: i0, type: NgtpBrightnessContrast, decorators: [{
398
394
  type: Component,
399
395
  args: [{
400
396
  selector: 'ngtp-brightness-contrast',
@@ -417,15 +413,15 @@ class NgtpChromaticAberration {
417
413
  this.effect = inject(NgtpEffect, { host: true });
418
414
  extend({ ChromaticAberrationEffect });
419
415
  }
420
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpChromaticAberration, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
421
- 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.5", ngImport: i0, type: NgtpChromaticAberration, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
417
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
422
418
  <ngt-chromatic-aberration-effect *args="[options()]" [camera]="effect.camera()">
423
419
  <ngtp-effect-blend-mode />
424
420
  <ng-content />
425
421
  </ngt-chromatic-aberration-effect>
426
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 }); }
427
423
  }
428
- 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.5", ngImport: i0, type: NgtpChromaticAberration, decorators: [{
429
425
  type: Component,
430
426
  args: [{
431
427
  selector: 'ngtp-chromatic-aberration',
@@ -447,14 +443,14 @@ class NgtpColorAverage {
447
443
  this.options = input({ blendFunction: BlendFunction.NORMAL }, { transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) });
448
444
  extend({ ColorAverageEffect });
449
445
  }
450
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
451
- 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.5", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
447
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: NgtpColorAverage, isStandalone: true, selector: "ngtp-color-average", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
452
448
  <ngt-color-average-effect *args="[options().blendFunction]">
453
449
  <ng-content />
454
450
  </ngt-color-average-effect>
455
451
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
456
452
  }
457
- 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.5", ngImport: i0, type: NgtpColorAverage, decorators: [{
458
454
  type: Component,
459
455
  args: [{
460
456
  selector: 'ngtp-color-average',
@@ -475,15 +471,15 @@ class NgtpColorDepth {
475
471
  this.effect = inject(NgtpEffect, { host: true });
476
472
  extend({ ColorDepthEffect });
477
473
  }
478
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
479
- 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.5", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
475
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
480
476
  <ngt-color-depth-effect *args="[options()]" [camera]="effect.camera()">
481
477
  <ngtp-effect-blend-mode />
482
478
  <ng-content />
483
479
  </ngt-color-depth-effect>
484
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 }); }
485
481
  }
486
- 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.5", ngImport: i0, type: NgtpColorDepth, decorators: [{
487
483
  type: Component,
488
484
  args: [{
489
485
  selector: 'ngtp-color-depth',
@@ -506,15 +502,15 @@ class NgtpDepth {
506
502
  this.effect = inject(NgtpEffect, { host: true });
507
503
  extend({ DepthEffect });
508
504
  }
509
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
510
- 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.5", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
506
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
511
507
  <ngt-depth-effect *args="[options()]" [camera]="effect.camera()">
512
508
  <ngtp-effect-blend-mode />
513
509
  <ng-content />
514
510
  </ngt-depth-effect>
515
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 }); }
516
512
  }
517
- 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.5", ngImport: i0, type: NgtpDepth, decorators: [{
518
514
  type: Component,
519
515
  args: [{
520
516
  selector: 'ngtp-depth',
@@ -556,12 +552,12 @@ class NgtpDepthOfField {
556
552
  onCleanup(() => depthOfFieldEffect.dispose());
557
553
  });
558
554
  }
559
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
560
- 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.5", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
556
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: NgtpDepthOfField, isStandalone: true, selector: "ngtp-depth-of-field", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
561
557
  <ngt-primitive *args="[effect()]" />
562
558
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
563
559
  }
564
- 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.5", ngImport: i0, type: NgtpDepthOfField, decorators: [{
565
561
  type: Component,
566
562
  args: [{
567
563
  selector: 'ngtp-depth-of-field',
@@ -580,15 +576,15 @@ class NgtpDotScreen {
580
576
  this.effect = inject(NgtpEffect, { host: true });
581
577
  extend({ DotScreenEffect });
582
578
  }
583
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpDotScreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
584
- 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.5", ngImport: i0, type: NgtpDotScreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
580
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
585
581
  <ngt-dot-screen-effect *args="[options()]" [camera]="effect.camera()">
586
582
  <ngtp-effect-blend-mode />
587
583
  <ng-content />
588
584
  </ngt-dot-screen-effect>
589
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 }); }
590
586
  }
591
- 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.5", ngImport: i0, type: NgtpDotScreen, decorators: [{
592
588
  type: Component,
593
589
  args: [{
594
590
  selector: 'ngtp-dot-screen',
@@ -611,15 +607,15 @@ class NgtpFXAA {
611
607
  this.effect = inject(NgtpEffect, { host: true });
612
608
  extend({ FXAAEffect });
613
609
  }
614
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpFXAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
615
- 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.5", ngImport: i0, type: NgtpFXAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
611
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
616
612
  <ngt-fXAA-effect *args="[options()]" [camera]="effect.camera()">
617
613
  <ngtp-effect-blend-mode />
618
614
  <ng-content />
619
615
  </ngt-fXAA-effect>
620
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 }); }
621
617
  }
622
- 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.5", ngImport: i0, type: NgtpFXAA, decorators: [{
623
619
  type: Component,
624
620
  args: [{
625
621
  selector: 'ngtp-fxaa',
@@ -677,12 +673,12 @@ class NgtpGlitch {
677
673
  onCleanup(() => effect.dispose());
678
674
  });
679
675
  }
680
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpGlitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
681
- 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.5", ngImport: i0, type: NgtpGlitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
677
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: NgtpGlitch, isStandalone: true, selector: "ngtp-glitch", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
682
678
  <ngt-primitive *args="[effect()]" />
683
679
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
684
680
  }
685
- 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.5", ngImport: i0, type: NgtpGlitch, decorators: [{
686
682
  type: Component,
687
683
  args: [{
688
684
  selector: 'ngtp-glitch',
@@ -723,12 +719,12 @@ class NgtpGodRays {
723
719
  onCleanup(() => effect.dispose());
724
720
  });
725
721
  }
726
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpGodRays, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
727
- 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.5", ngImport: i0, type: NgtpGodRays, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
723
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: NgtpGodRays, isStandalone: true, selector: "ngtp-god-rays", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
728
724
  <ngt-primitive *args="[effect()]" />
729
725
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
730
726
  }
731
- 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.5", ngImport: i0, type: NgtpGodRays, decorators: [{
732
728
  type: Component,
733
729
  args: [{
734
730
  selector: 'ngtp-god-rays',
@@ -758,12 +754,12 @@ class NgtpGrid {
758
754
  onCleanup(() => effect.dispose());
759
755
  });
760
756
  }
761
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
762
- 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.5", ngImport: i0, type: NgtpGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
758
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: NgtpGrid, isStandalone: true, selector: "ngtp-grid", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
763
759
  <ngt-primitive *args="[effect()]" />
764
760
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
765
761
  }
766
- 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.5", ngImport: i0, type: NgtpGrid, decorators: [{
767
763
  type: Component,
768
764
  args: [{
769
765
  selector: 'ngtp-grid',
@@ -782,15 +778,15 @@ class NgtpHueSaturation {
782
778
  this.effect = inject(NgtpEffect, { host: true });
783
779
  extend({ HueSaturationEffect });
784
780
  }
785
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpHueSaturation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
786
- 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.5", ngImport: i0, type: NgtpHueSaturation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
782
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
787
783
  <ngt-hue-saturation-effect *args="[options()]" [camera]="effect.camera()">
788
784
  <ngtp-effect-blend-mode />
789
785
  <ng-content />
790
786
  </ngt-hue-saturation-effect>
791
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 }); }
792
788
  }
793
- 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.5", ngImport: i0, type: NgtpHueSaturation, decorators: [{
794
790
  type: Component,
795
791
  args: [{
796
792
  selector: 'ngtp-hue-saturation',
@@ -890,14 +886,14 @@ class LensFlareEffect extends Effect {
890
886
  }
891
887
  }
892
888
  }
893
- const defaultOptions$2 = {
889
+ const defaultOptions$3 = {
894
890
  position: new THREE.Vector3(-25, 6, -60),
895
891
  followMouse: false,
896
892
  smoothTime: 0.7,
897
893
  };
898
894
  class NgtpLensFlare {
899
895
  constructor() {
900
- this.options = input(defaultOptions$2, { transform: mergeInputs(defaultOptions$2) });
896
+ this.options = input(defaultOptions$3, { transform: mergeInputs(defaultOptions$3) });
901
897
  this.store = injectStore();
902
898
  this.effectComposer = inject(NgtpEffectComposer);
903
899
  this.effectOptions = omit(this.options, ['position', 'followMouse', 'smoothTime']);
@@ -978,12 +974,12 @@ class NgtpLensFlare {
978
974
  easing.damp(uOpacity, 'value', target, smoothTime, delta);
979
975
  });
980
976
  }
981
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpLensFlare, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
982
- 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.5", ngImport: i0, type: NgtpLensFlare, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
978
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: NgtpLensFlare, isStandalone: true, selector: "ngtp-lens-flare", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
983
979
  <ngt-primitive *args="[effect()]" [parameters]="{ dispose: null }" />
984
980
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
985
981
  }
986
- 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.5", ngImport: i0, type: NgtpLensFlare, decorators: [{
987
983
  type: Component,
988
984
  args: [{
989
985
  selector: 'ngtp-lens-flare',
@@ -1024,12 +1020,12 @@ class NgtpLUT {
1024
1020
  onCleanup(() => effect.dispose());
1025
1021
  });
1026
1022
  }
1027
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpLUT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1028
- 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.5", ngImport: i0, type: NgtpLUT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1024
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: NgtpLUT, isStandalone: true, selector: "ngtp-lut", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1029
1025
  <ngt-primitive *args="[effect()]" [dispose]="null" />
1030
1026
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1031
1027
  }
1032
- 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.5", ngImport: i0, type: NgtpLUT, decorators: [{
1033
1029
  type: Component,
1034
1030
  args: [{
1035
1031
  selector: 'ngtp-lut',
@@ -1048,15 +1044,15 @@ class NgtpNoise {
1048
1044
  this.effect = inject(NgtpEffect, { host: true });
1049
1045
  extend({ NoiseEffect });
1050
1046
  }
1051
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpNoise, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1052
- 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.5", ngImport: i0, type: NgtpNoise, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1048
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
1053
1049
  <ngt-noise-effect *args="[options()]" [camera]="effect.camera()">
1054
1050
  <ngtp-effect-blend-mode />
1055
1051
  <ng-content />
1056
1052
  </ngt-noise-effect>
1057
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 }); }
1058
1054
  }
1059
- 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.5", ngImport: i0, type: NgtpNoise, decorators: [{
1060
1056
  type: Component,
1061
1057
  args: [{
1062
1058
  selector: 'ngtp-noise',
@@ -1074,12 +1070,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
1074
1070
  }]
1075
1071
  }], ctorParameters: () => [] });
1076
1072
 
1077
- const defaultOptions$1 = {
1073
+ const defaultOptions$2 = {
1078
1074
  selectionLayer: 10,
1079
1075
  };
1080
1076
  class NgtpOutline {
1081
1077
  constructor() {
1082
- this.options = input(defaultOptions$1, { transform: mergeInputs(defaultOptions$1) });
1078
+ this.options = input(defaultOptions$2, { transform: mergeInputs(defaultOptions$2) });
1083
1079
  this.ngtSelection = inject(NgtSelection, { optional: true });
1084
1080
  this.effectComposer = inject(NgtpEffectComposer);
1085
1081
  this.store = injectStore();
@@ -1146,7 +1142,11 @@ class NgtpOutline {
1146
1142
  onCleanup(() => effect.dispose());
1147
1143
  });
1148
1144
  effect(() => {
1149
- 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
+ ];
1150
1150
  effect.selectionLayer = selectionLayer;
1151
1151
  invalidate();
1152
1152
  });
@@ -1194,12 +1194,12 @@ class NgtpOutline {
1194
1194
  invalidate();
1195
1195
  };
1196
1196
  }
1197
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpOutline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1198
- 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.5", ngImport: i0, type: NgtpOutline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: NgtpOutline, isStandalone: true, selector: "ngtp-outline", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1199
1199
  <ngt-primitive *args="[effect()]" />
1200
1200
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1201
1201
  }
1202
- 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.5", ngImport: i0, type: NgtpOutline, decorators: [{
1203
1203
  type: Component,
1204
1204
  args: [{
1205
1205
  selector: 'ngtp-outline',
@@ -1222,12 +1222,12 @@ class NgtpPixelation {
1222
1222
  onCleanup(() => effect.dispose());
1223
1223
  });
1224
1224
  }
1225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpPixelation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1226
- 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.5", ngImport: i0, type: NgtpPixelation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1226
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", type: NgtpPixelation, isStandalone: true, selector: "ngtp-pixelation", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1227
1227
  <ngt-primitive *args="[effect()]" />
1228
1228
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1229
1229
  }
1230
- 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.5", ngImport: i0, type: NgtpPixelation, decorators: [{
1231
1231
  type: Component,
1232
1232
  args: [{
1233
1233
  selector: 'ngtp-pixelation',
@@ -1240,24 +1240,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
1240
1240
  }]
1241
1241
  }], ctorParameters: () => [] });
1242
1242
 
1243
- const defaultOptions = {
1243
+ const defaultOptions$1 = {
1244
1244
  density: 1.25,
1245
1245
  };
1246
1246
  class NgtpScanline {
1247
1247
  constructor() {
1248
- this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
1248
+ this.options = input(defaultOptions$1, { transform: mergeInputs(defaultOptions$1) });
1249
1249
  this.effect = inject(NgtpEffect, { host: true });
1250
1250
  extend({ ScanlineEffect });
1251
1251
  }
1252
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpScanline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1253
- 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.5", ngImport: i0, type: NgtpScanline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
1254
1254
  <ngt-scanline-effect *args="[options()]" [camera]="effect.camera()">
1255
1255
  <ngtp-effect-blend-mode />
1256
1256
  <ng-content />
1257
1257
  </ngt-scanline-effect>
1258
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 }); }
1259
1259
  }
1260
- 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.5", ngImport: i0, type: NgtpScanline, decorators: [{
1261
1261
  type: Component,
1262
1262
  args: [{
1263
1263
  selector: 'ngtp-scanline',
@@ -1275,21 +1275,158 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
1275
1275
  }]
1276
1276
  }], ctorParameters: () => [] });
1277
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.ngtSelection = inject(NgtSelection, { 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.ngtSelection || !this.ngtSelection.enabled)
1319
+ return [];
1320
+ return this.ngtSelection.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.ngtSelection)
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.5", ngImport: i0, type: NgtpSelectiveBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1398
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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.5", 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
+
1278
1415
  class NgtpSepia {
1279
1416
  constructor() {
1280
1417
  this.options = input({});
1281
1418
  this.effect = inject(NgtpEffect, { host: true });
1282
1419
  extend({ SepiaEffect });
1283
1420
  }
1284
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpSepia, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1285
- 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.5", ngImport: i0, type: NgtpSepia, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1422
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
1286
1423
  <ngt-sepia-effect *args="[options()]" [camera]="effect.camera()">
1287
1424
  <ngtp-effect-blend-mode />
1288
1425
  <ng-content />
1289
1426
  </ngt-sepia-effect>
1290
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 }); }
1291
1428
  }
1292
- 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.5", ngImport: i0, type: NgtpSepia, decorators: [{
1293
1430
  type: Component,
1294
1431
  args: [{
1295
1432
  selector: 'ngtp-sepia',
@@ -1312,15 +1449,15 @@ class NgtpShockWave {
1312
1449
  this.effect = inject(NgtpEffect, { host: true });
1313
1450
  extend({ ShockWaveEffect });
1314
1451
  }
1315
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpShockWave, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1316
- 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.5", ngImport: i0, type: NgtpShockWave, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1453
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
1317
1454
  <ngt-shock-wave-effect *args="[options()]" [camera]="effect.camera()">
1318
1455
  <ngtp-effect-blend-mode />
1319
1456
  <ng-content />
1320
1457
  </ngt-shock-wave-effect>
1321
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 }); }
1322
1459
  }
1323
- 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.5", ngImport: i0, type: NgtpShockWave, decorators: [{
1324
1461
  type: Component,
1325
1462
  args: [{
1326
1463
  selector: 'ngtp-shock-wave',
@@ -1343,15 +1480,15 @@ class NgtpSMAA {
1343
1480
  this.effect = inject(NgtpEffect, { host: true });
1344
1481
  extend({ SMAAEffect });
1345
1482
  }
1346
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpSMAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1347
- 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.5", ngImport: i0, type: NgtpSMAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1484
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
1348
1485
  <ngt-sMAA-effect *args="[options()]" [camera]="effect.camera()">
1349
1486
  <ngtp-effect-blend-mode />
1350
1487
  <ng-content />
1351
1488
  </ngt-sMAA-effect>
1352
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 }); }
1353
1490
  }
1354
- 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.5", ngImport: i0, type: NgtpSMAA, decorators: [{
1355
1492
  type: Component,
1356
1493
  args: [{
1357
1494
  selector: 'ngtp-smaa',
@@ -1374,15 +1511,15 @@ class NgtpTiltShift {
1374
1511
  this.effect = inject(NgtpEffect, { host: true });
1375
1512
  extend({ TiltShiftEffect });
1376
1513
  }
1377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpTiltShift, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1378
- 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.5", ngImport: i0, type: NgtpTiltShift, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1515
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
1379
1516
  <ngt-tilt-shift-effect *args="[options()]" [camera]="effect.camera()">
1380
1517
  <ngtp-effect-blend-mode />
1381
1518
  <ng-content />
1382
1519
  </ngt-tilt-shift-effect>
1383
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 }); }
1384
1521
  }
1385
- 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.5", ngImport: i0, type: NgtpTiltShift, decorators: [{
1386
1523
  type: Component,
1387
1524
  args: [{
1388
1525
  selector: 'ngtp-tilt-shift',
@@ -1487,15 +1624,15 @@ class NgtpTiltShift2 {
1487
1624
  this.options = input({});
1488
1625
  this.effect = inject(NgtpEffect, { host: true });
1489
1626
  }
1490
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpTiltShift2, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1491
- 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.5", ngImport: i0, type: NgtpTiltShift2, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1628
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
1492
1629
  <ngt-tilt-shift2-effect *args="[options()]" [camera]="effect.camera()">
1493
1630
  <ngtp-effect-blend-mode />
1494
1631
  <ng-content />
1495
1632
  </ngt-tilt-shift2-effect>
1496
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 }); }
1497
1634
  }
1498
- 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.5", ngImport: i0, type: NgtpTiltShift2, decorators: [{
1499
1636
  type: Component,
1500
1637
  args: [{
1501
1638
  selector: 'ngtp-tilt-shift2',
@@ -1519,15 +1656,15 @@ class NgtpToneMapping {
1519
1656
  this.effect = inject(NgtpEffect, { host: true });
1520
1657
  extend({ ToneMappingEffect });
1521
1658
  }
1522
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpToneMapping, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1523
- 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.5", ngImport: i0, type: NgtpToneMapping, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1660
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
1524
1661
  <ngt-tone-mapping-effect *args="[options()]" [camera]="effect.camera()">
1525
1662
  <ngtp-effect-blend-mode />
1526
1663
  <ng-content />
1527
1664
  </ngt-tone-mapping-effect>
1528
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 }); }
1529
1666
  }
1530
- 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.5", ngImport: i0, type: NgtpToneMapping, decorators: [{
1531
1668
  type: Component,
1532
1669
  args: [{
1533
1670
  selector: 'ngtp-tone-mapping',
@@ -1550,15 +1687,15 @@ class NgtpVignette {
1550
1687
  this.effect = inject(NgtpEffect, { host: true });
1551
1688
  extend({ VignetteEffect });
1552
1689
  }
1553
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpVignette, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1554
- 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.5", ngImport: i0, type: NgtpVignette, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1691
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
1555
1692
  <ngt-vignette-effect *args="[options()]" [camera]="effect.camera()">
1556
1693
  <ngtp-effect-blend-mode />
1557
1694
  <ng-content />
1558
1695
  </ngt-vignette-effect>
1559
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 }); }
1560
1697
  }
1561
- 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.5", ngImport: i0, type: NgtpVignette, decorators: [{
1562
1699
  type: Component,
1563
1700
  args: [{
1564
1701
  selector: 'ngtp-vignette',
@@ -1605,15 +1742,15 @@ class NgtpWater {
1605
1742
  this.effect = inject(NgtpEffect, { host: true });
1606
1743
  extend({ WaterEffect });
1607
1744
  }
1608
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: NgtpWater, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1609
- 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.5", ngImport: i0, type: NgtpWater, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1746
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.5", 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: `
1610
1747
  <ngt-water-effect *args="[options()]" [camera]="effect.camera()">
1611
1748
  <ngtp-effect-blend-mode />
1612
1749
  <ng-content />
1613
1750
  </ngt-water-effect>
1614
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 }); }
1615
1752
  }
1616
- 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.5", ngImport: i0, type: NgtpWater, decorators: [{
1617
1754
  type: Component,
1618
1755
  args: [{
1619
1756
  selector: 'ngtp-water',
@@ -1635,5 +1772,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
1635
1772
  * Generated bundle index. Do not edit.
1636
1773
  */
1637
1774
 
1638
- 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 };
1639
1776
  //# sourceMappingURL=angular-three-postprocessing.mjs.map