angular-three-postprocessing 1.6.1 → 2.0.0-beta.11

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.
Files changed (101) hide show
  1. package/README.md +4 -12
  2. package/esm2022/angular-three-postprocessing.mjs +1 -1
  3. package/esm2022/index.mjs +2 -1
  4. package/esm2022/lib/effect-composer.mjs +180 -173
  5. package/esm2022/lib/effect.mjs +62 -64
  6. package/esm2022/lib/effects/bloom/bloom.mjs +33 -0
  7. package/esm2022/lib/effects/brightness-contrast/brightness-contrast.mjs +29 -0
  8. package/esm2022/lib/effects/color-depth/color-depth.mjs +29 -0
  9. package/esm2022/lib/effects/depth/depth.mjs +29 -0
  10. package/esm2022/lib/effects/dot-screen/dot-screen.mjs +29 -0
  11. package/esm2022/lib/effects/hue-saturation/hue-saturation.mjs +29 -0
  12. package/esm2022/lib/effects/index.mjs +18 -0
  13. package/esm2022/lib/effects/lut/lut.mjs +70 -0
  14. package/esm2022/lib/effects/noise/noise.mjs +33 -0
  15. package/esm2022/lib/effects/pixelation/pixelation.mjs +33 -0
  16. package/esm2022/lib/effects/scanline/scanline.mjs +33 -0
  17. package/esm2022/lib/effects/sepia/sepia.mjs +29 -0
  18. package/esm2022/lib/effects/shock-wave/shock-wave.mjs +29 -0
  19. package/esm2022/lib/effects/smaa/smaa.mjs +29 -0
  20. package/esm2022/lib/effects/ssao/ssao.mjs +213 -0
  21. package/esm2022/lib/effects/tilt-shift/tilt-shift.mjs +33 -0
  22. package/esm2022/lib/effects/tone-mapping/tone-mapping.mjs +29 -0
  23. package/esm2022/lib/effects/vignette/vignette.mjs +29 -0
  24. package/fesm2022/angular-three-postprocessing.mjs +892 -229
  25. package/fesm2022/angular-three-postprocessing.mjs.map +1 -1
  26. package/index.d.ts +1 -0
  27. package/lib/effect-composer.d.ts +89 -28
  28. package/lib/effect.d.ts +23 -18
  29. package/lib/effects/bloom/bloom.d.ts +13 -0
  30. package/lib/effects/brightness-contrast/brightness-contrast.d.ts +15 -0
  31. package/{effects/lib → lib/effects}/color-depth/color-depth.d.ts +9 -3
  32. package/{effects/lib → lib/effects}/depth/depth.d.ts +9 -3
  33. package/lib/effects/dot-screen/dot-screen.d.ts +15 -0
  34. package/lib/effects/hue-saturation/hue-saturation.d.ts +15 -0
  35. package/lib/effects/index.d.ts +17 -0
  36. package/lib/effects/lut/lut.d.ts +29 -0
  37. package/lib/effects/noise/noise.d.ts +15 -0
  38. package/lib/effects/pixelation/pixelation.d.ts +20 -0
  39. package/lib/effects/scanline/scanline.d.ts +15 -0
  40. package/{effects/lib → lib/effects}/sepia/sepia.d.ts +9 -3
  41. package/lib/effects/shock-wave/shock-wave.d.ts +17 -0
  42. package/lib/effects/smaa/smaa.d.ts +16 -0
  43. package/lib/effects/ssao/ssao.d.ts +42 -0
  44. package/lib/effects/tilt-shift/tilt-shift.d.ts +23 -0
  45. package/lib/effects/tone-mapping/tone-mapping.d.ts +22 -0
  46. package/lib/effects/vignette/vignette.d.ts +17 -0
  47. package/package.json +7 -26
  48. package/effects/README.md +0 -3
  49. package/effects/index.d.ts +0 -14
  50. package/effects/lib/bloom/bloom.d.ts +0 -9
  51. package/effects/lib/brightness-contrast/brightness-contrast.d.ts +0 -8
  52. package/effects/lib/dot-screen/dot-screen.d.ts +0 -8
  53. package/effects/lib/hue-saturation/hue-saturation.d.ts +0 -8
  54. package/effects/lib/lut/lut.d.ts +0 -13
  55. package/effects/lib/noise/noise.d.ts +0 -9
  56. package/effects/lib/scanline/scanline.d.ts +0 -9
  57. package/effects/lib/ssao/ssao.d.ts +0 -13
  58. package/effects/lib/tilt-shift/tilt-shift.d.ts +0 -9
  59. package/effects/lib/tone-mapping/tone-mapping.d.ts +0 -8
  60. package/effects/lib/vignette/vignette.d.ts +0 -8
  61. package/esm2022/effects/angular-three-postprocessing-effects.mjs +0 -5
  62. package/esm2022/effects/index.mjs +0 -15
  63. package/esm2022/effects/lib/bloom/bloom.mjs +0 -44
  64. package/esm2022/effects/lib/brightness-contrast/brightness-contrast.mjs +0 -29
  65. package/esm2022/effects/lib/color-depth/color-depth.mjs +0 -29
  66. package/esm2022/effects/lib/depth/depth.mjs +0 -29
  67. package/esm2022/effects/lib/dot-screen/dot-screen.mjs +0 -29
  68. package/esm2022/effects/lib/hue-saturation/hue-saturation.mjs +0 -29
  69. package/esm2022/effects/lib/lut/lut.mjs +0 -60
  70. package/esm2022/effects/lib/noise/noise.mjs +0 -33
  71. package/esm2022/effects/lib/scanline/scanline.mjs +0 -33
  72. package/esm2022/effects/lib/sepia/sepia.mjs +0 -29
  73. package/esm2022/effects/lib/ssao/ssao.mjs +0 -102
  74. package/esm2022/effects/lib/tilt-shift/tilt-shift.mjs +0 -43
  75. package/esm2022/effects/lib/tone-mapping/tone-mapping.mjs +0 -39
  76. package/esm2022/effects/lib/vignette/vignette.mjs +0 -29
  77. package/esm2022/selection/angular-three-postprocessing-selection.mjs +0 -5
  78. package/esm2022/selection/index.mjs +0 -3
  79. package/esm2022/selection/lib/select.mjs +0 -69
  80. package/esm2022/selection/lib/selection.mjs +0 -44
  81. package/fesm2022/angular-three-postprocessing-effects.mjs +0 -484
  82. package/fesm2022/angular-three-postprocessing-effects.mjs.map +0 -1
  83. package/fesm2022/angular-three-postprocessing-selection.mjs +0 -114
  84. package/fesm2022/angular-three-postprocessing-selection.mjs.map +0 -1
  85. package/plugin/README.md +0 -11
  86. package/plugin/generators.json +0 -19
  87. package/plugin/package.json +0 -9
  88. package/plugin/src/generators/init/compat.d.ts +0 -2
  89. package/plugin/src/generators/init/compat.js +0 -6
  90. package/plugin/src/generators/init/compat.js.map +0 -1
  91. package/plugin/src/generators/init/init.d.ts +0 -4
  92. package/plugin/src/generators/init/init.js +0 -26
  93. package/plugin/src/generators/init/init.js.map +0 -1
  94. package/plugin/src/generators/init/schema.json +0 -6
  95. package/plugin/src/index.d.ts +0 -1
  96. package/plugin/src/index.js +0 -6
  97. package/plugin/src/index.js.map +0 -1
  98. package/selection/README.md +0 -3
  99. package/selection/index.d.ts +0 -2
  100. package/selection/lib/select.d.ts +0 -14
  101. package/selection/lib/selection.d.ts +0 -18
@@ -1,80 +1,78 @@
1
- import { Directive, inject, Input, reflectComponentType } from '@angular/core';
2
- import { NgtRxStore, NgtStore, startWithUndefined } from 'angular-three';
1
+ import { Directive, Input, computed, effect } from '@angular/core';
2
+ import { getLocalState, injectNgtRef, injectNgtStore, is, signalStore } from 'angular-three';
3
3
  import { BlendFunction } from 'postprocessing';
4
- import { combineLatest } from 'rxjs';
5
4
  import * as i0 from "@angular/core";
6
- class NgtpEffect extends NgtRxStore {
7
- constructor() {
8
- super(...arguments);
9
- this.defaultBlendMode = BlendFunction.NORMAL;
10
- this.store = inject(NgtStore);
11
- }
12
- set blendFunction(blendFunction) {
13
- this.set({ blendFunction });
5
+ export class NgtpEffect {
6
+ set _blendFunction(blendFunction) {
7
+ this.inputs.set({ blendFunction });
14
8
  }
15
- set opacity(opacity) {
16
- this.set({ opacity });
9
+ set _opacity(opacity) {
10
+ this.inputs.set({ opacity });
17
11
  }
18
- ngOnChanges(changes) {
19
- this.set((s) => ({
20
- ...s,
21
- ...simpleChangesToStateObject(changes, ['blendFunction', 'opacity']),
22
- }));
23
- }
24
- ngOnInit() {
25
- this.connect('effect', componentInputsToCombinedStream(this), (props) => {
26
- delete props['__ngt_dummy__'];
27
- delete props['effect'];
28
- return new this.effectConstructor(props);
12
+ constructor() {
13
+ this.inputs = signalStore();
14
+ this.effectRef = injectNgtRef();
15
+ this.defaultBlendFunction = BlendFunction.NORMAL;
16
+ this.nativeArgs = () => [];
17
+ this.blendFunction = this.inputs.select('blendFunction');
18
+ this.opacity = this.inputs.select('opacity');
19
+ this.store = injectNgtStore();
20
+ this.camera = this.store.select('camera');
21
+ this.invalidate = this.store.select('invalidate');
22
+ this.nativeInputs = computed(() => {
23
+ const effect = this.effectRef.nativeElement;
24
+ if (!effect)
25
+ return this.previousInputs || null;
26
+ const localState = getLocalState(effect);
27
+ if (!localState)
28
+ return this.previousInputs || null;
29
+ const nativeProps = localState.nativeProps.state();
30
+ delete nativeProps['__ngt_dummy_state__'];
31
+ if ('camera' in nativeProps) {
32
+ delete nativeProps['camera'];
33
+ }
34
+ if (!Object.keys(nativeProps).length)
35
+ return this.previousInputs || null;
36
+ return (this.previousInputs = nativeProps);
37
+ }, { equal: (a, b) => is.equ(a, b, { objects: 'shallow' }) });
38
+ this.args = computed(() => {
39
+ const [nativeInputs, nativeArgs] = [this.nativeInputs(), this.nativeArgs()];
40
+ if (nativeInputs) {
41
+ nativeArgs.push(nativeInputs);
42
+ }
43
+ return nativeArgs;
29
44
  });
30
- this.configureBlendMode();
45
+ this.setBlendMode();
31
46
  }
32
- configureBlendMode() {
33
- this.hold(combineLatest([
34
- this.select('effect'),
35
- this.select('blendFunction').pipe(startWithUndefined()),
36
- this.select('opacity').pipe(startWithUndefined()),
37
- ]), ([effect, blendFunction, opacity]) => {
38
- const invalidate = this.store.get('invalidate');
47
+ setBlendMode() {
48
+ effect(() => {
49
+ const [blendFunction, opacity, effect, invalidate] = [
50
+ this.blendFunction(),
51
+ this.opacity(),
52
+ this.effectRef.nativeElement,
53
+ this.invalidate(),
54
+ ];
55
+ if (!effect)
56
+ return;
39
57
  effect.blendMode.blendFunction =
40
- !blendFunction && blendFunction !== 0 ? this.defaultBlendMode : blendFunction;
58
+ !blendFunction && blendFunction !== 0 ? this.defaultBlendFunction : blendFunction;
41
59
  if (opacity !== undefined)
42
60
  effect.blendMode.opacity.value = opacity;
43
61
  invalidate();
44
62
  });
45
63
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtpEffect, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtpEffect, inputs: { blendFunction: "blendFunction", opacity: "opacity" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpEffect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
65
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: NgtpEffect, inputs: { effectRef: "effectRef", _blendFunction: ["blendFunction", "_blendFunction"], _opacity: ["opacity", "_opacity"] }, ngImport: i0 }); }
48
66
  }
49
- export { NgtpEffect };
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtpEffect, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpEffect, decorators: [{
51
68
  type: Directive
52
- }], propDecorators: { blendFunction: [{
53
- type: Input
54
- }], opacity: [{
69
+ }], ctorParameters: function () { return []; }, propDecorators: { effectRef: [{
55
70
  type: Input
71
+ }], _blendFunction: [{
72
+ type: Input,
73
+ args: [{ alias: 'blendFunction' }]
74
+ }], _opacity: [{
75
+ type: Input,
76
+ args: [{ alias: 'opacity' }]
56
77
  }] } });
57
- export function simpleChangesToStateObject(changes, keysToDelete = []) {
58
- for (const key of keysToDelete) {
59
- if (changes[key])
60
- delete changes[key];
61
- }
62
- return Object.entries(changes).reduce((obj, [key, change]) => {
63
- obj[key] = change.currentValue;
64
- return obj;
65
- }, {});
66
- }
67
- export function componentInputsToCombinedStream(component, filterFn = () => true) {
68
- const inputs = reflectComponentType(component.constructor)
69
- ?.inputs.filter(filterFn)
70
- .map((input) => input.propName) || [];
71
- return combineLatest(inputs.reduce((combined, input) => {
72
- let input$ = component.select(input);
73
- if (component.get(input) === undefined) {
74
- input$ = input$.pipe(startWithUndefined());
75
- }
76
- combined[input] = input$;
77
- return combined;
78
- }, {}));
79
- }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXBvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsb0JBQW9CLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBZ0IsVUFBVSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFFakQsTUFDc0IsVUFBNkIsU0FBUSxVQUFVO0lBRHJFOztRQVljLHFCQUFnQixHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDL0IsVUFBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQWtDL0M7SUE3Q0csSUFBYSxhQUFhLENBQUMsYUFBNEI7UUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQU9ELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2IsR0FBRyxDQUFDO1lBQ0osR0FBRywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDdkUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFF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QUMsQ0FBQztTQUM5QztRQUNELFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDekIsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQyxFQUFFLEVBQXFDLENBQUMsQ0FDNUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCByZWZsZWN0Q29tcG9uZW50VHlwZSwgU2ltcGxlQ2hhbmdlcywgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkLCBOZ3RSeFN0b3JlLCBOZ3RTdG9yZSwgc3RhcnRXaXRoVW5kZWZpbmVkIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5ndHBFZmZlY3Q8VCBleHRlbmRzIEVmZmVjdD4gZXh0ZW5kcyBOZ3RSeFN0b3JlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHNldCBibGVuZEZ1bmN0aW9uKGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBibGVuZEZ1bmN0aW9uIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBvcGFjaXR5KG9wYWNpdHk6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IG9wYWNpdHkgfSk7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgZ2V0IGVmZmVjdENvbnN0cnVjdG9yKCk6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG5cbiAgICBwcm90ZWN0ZWQgZGVmYXVsdEJsZW5kTW9kZSA9IEJsZW5kRnVuY3Rpb24uTk9STUFMO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuc2V0KChzKSA9PiAoe1xuICAgICAgICAgICAgLi4ucyxcbiAgICAgICAgICAgIC4uLnNpbXBsZUNoYW5nZXNUb1N0YXRlT2JqZWN0KGNoYW5nZXMsIFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10pLFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY29ubmVjdCgnZWZmZWN0JywgY29tcG9uZW50SW5wdXRzVG9Db21iaW5lZFN0cmVhbSh0aGlzKSwgKHByb3BzKSA9PiB7XG4gICAgICAgICAgICBkZWxldGUgcHJvcHNbJ19fbmd0X2R1bW15X18nXTtcbiAgICAgICAgICAgIGRlbGV0ZSBwcm9wc1snZWZmZWN0J107XG4gICAgICAgICAgICByZXR1cm4gbmV3IHRoaXMuZWZmZWN0Q29uc3RydWN0b3IocHJvcHMpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb25maWd1cmVCbGVuZE1vZGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmZpZ3VyZUJsZW5kTW9kZSgpIHtcbiAgICAgICAgdGhpcy5ob2xkKFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2VmZmVjdCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdibGVuZEZ1bmN0aW9uJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ29wYWNpdHknKS5waXBlKHN0YXJ0V2l0aFVuZGVmaW5lZCgpKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKFtlZmZlY3QsIGJsZW5kRnVuY3Rpb24sIG9wYWNpdHldKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuZ2V0KCdpbnZhbGlkYXRlJyk7XG4gICAgICAgICAgICAgICAgZWZmZWN0LmJsZW5kTW9kZS5ibGVuZEZ1bmN0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgIWJsZW5kRnVuY3Rpb24gJiYgYmxlbmRGdW5jdGlvbiAhPT0gMCA/IHRoaXMuZGVmYXVsdEJsZW5kTW9kZSA6IGJsZW5kRnVuY3Rpb247XG4gICAgICAgICAgICAgICAgaWYgKG9wYWNpdHkgIT09IHVuZGVmaW5lZCkgZWZmZWN0LmJsZW5kTW9kZS5vcGFjaXR5LnZhbHVlID0gb3BhY2l0eTtcbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2ltcGxlQ2hhbmdlc1RvU3RhdGVPYmplY3QoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywga2V5c1RvRGVsZXRlOiBzdHJpbmdbXSA9IFtdKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5c1RvRGVsZXRlKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzW2tleV0pIGRlbGV0ZSBjaGFuZ2VzW2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNoYW5nZXMpLnJlZHVjZSgob2JqLCBba2V5LCBjaGFuZ2VdKSA9PiB7XG4gICAgICAgIG9ialtrZXldID0gY2hhbmdlLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9LCB7fSBhcyBOZ3RBbnlSZWNvcmQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9uZW50SW5wdXRzVG9Db21iaW5lZFN0cmVhbShcbiAgICBjb21wb25lbnQ6IE5ndFJ4U3RvcmUsXG4gICAgZmlsdGVyRm46IChpbnB1dDogeyBwcm9wTmFtZTogc3RyaW5nOyB0ZW1wbGF0ZU5hbWU6IHN0cmluZyB9KSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZVxuKTogT2JzZXJ2YWJsZTxOZ3RBbnlSZWNvcmQ+IHtcbiAgICBjb25zdCBpbnB1dHMgPVxuICAgICAgICByZWZsZWN0Q29tcG9uZW50VHlwZShjb21wb25lbnQuY29uc3RydWN0b3IgYXMgVHlwZTxhbnk+KVxuICAgICAgICAgICAgPy5pbnB1dHMuZmlsdGVyKGZpbHRlckZuKVxuICAgICAgICAgICAgLm1hcCgoaW5wdXQpID0+IGlucHV0LnByb3BOYW1lKSB8fCBbXTtcblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFxuICAgICAgICBpbnB1dHMucmVkdWNlKChjb21iaW5lZCwgaW5wdXQpID0+IHtcbiAgICAgICAgICAgIGxldCBpbnB1dCQgPSBjb21wb25lbnQuc2VsZWN0KGlucHV0KTtcbiAgICAgICAgICAgIGlmIChjb21wb25lbnQuZ2V0KGlucHV0KSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQkID0gaW5wdXQkLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tYmluZWRbaW5wdXRdID0gaW5wdXQkO1xuICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVkO1xuICAgICAgICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPGFueT4+KVxuICAgICk7XG59XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7O0FBUXZELE1BQU0sT0FBZ0IsVUFBVTtJQUsvQixJQUF1QyxjQUFjLENBQUMsYUFBNEI7UUFDakYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFpQyxRQUFRLENBQUMsT0FBZTtRQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQXdDRDtRQWxEQSxXQUFNLEdBQUcsV0FBVyxFQUFtQixDQUFDO1FBRS9CLGNBQVMsR0FBRyxZQUFZLEVBQVcsQ0FBQztRQVVuQyx5QkFBb0IsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQzVDLGVBQVUsR0FBeUIsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRXRELGtCQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlCLFVBQUssR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENB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bXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBjb21wdXRlZCwgZWZmZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQsIGdldExvY2FsU3RhdGUsIGluamVjdE5ndFJlZiwgaW5qZWN0Tmd0U3RvcmUsIGlzLCBzaWduYWxTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuXG5leHBvcnQgdHlwZSBOZ3RwRWZmZWN0U3RhdGUgPSB7XG5cdGJsZW5kRnVuY3Rpb24/OiBCbGVuZEZ1bmN0aW9uO1xuXHRvcGFjaXR5PzogbnVtYmVyO1xufTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmd0cEVmZmVjdDxURWZmZWN0IGV4dGVuZHMgRWZmZWN0PiB7XG5cdGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHBFZmZlY3RTdGF0ZT4oKTtcblxuXHRASW5wdXQoKSBlZmZlY3RSZWYgPSBpbmplY3ROZ3RSZWY8VEVmZmVjdD4oKTtcblxuXHRASW5wdXQoeyBhbGlhczogJ2JsZW5kRnVuY3Rpb24nIH0pIHNldCBfYmxlbmRGdW5jdGlvbihibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgYmxlbmRGdW5jdGlvbiB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnb3BhY2l0eScgfSkgc2V0IF9vcGFjaXR5KG9wYWNpdHk6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IG9wYWNpdHkgfSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZGVmYXVsdEJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTDtcblx0cHJvdGVjdGVkIG5hdGl2ZUFyZ3M6ICgpID0+IE5ndEFueVJlY29yZFtdID0gKCkgPT4gW107XG5cblx0YmxlbmRGdW5jdGlvbiA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYmxlbmRGdW5jdGlvbicpO1xuXHRvcGFjaXR5ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdvcGFjaXR5Jyk7XG5cblx0cHJvdGVjdGVkIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJvdGVjdGVkIGNhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblx0cHJpdmF0ZSBpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKTtcblxuXHRwcml2YXRlIHByZXZpb3VzSW5wdXRzPzogTmd0QW55UmVjb3JkO1xuXG5cdHByaXZhdGUgbmF0aXZlSW5wdXRzID0gY29tcHV0ZWQoXG5cdFx0KCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3RSZWYubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmICghZWZmZWN0KSByZXR1cm4gdGhpcy5wcmV2aW91c0lucHV0cyB8fCBudWxsO1xuXHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoZWZmZWN0KTtcblx0XHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuIHRoaXMucHJldmlvdXNJbnB1dHMgfHwgbnVsbDtcblx0XHRcdGNvbnN0IG5hdGl2ZVByb3BzID0gbG9jYWxTdGF0ZS5uYXRpdmVQcm9wcy5zdGF0ZSgpO1xuXHRcdFx0ZGVsZXRlIG5hdGl2ZVByb3BzWydfX25ndF9kdW1teV9zdGF0ZV9fJ107XG5cdFx0XHRpZiAoJ2NhbWVyYScgaW4gbmF0aXZlUHJvcHMpIHtcblx0XHRcdFx0ZGVsZXRlIG5hdGl2ZVByb3BzWydjYW1lcmEnXTtcblx0XHRcdH1cblx0XHRcdGlmICghT2JqZWN0LmtleXMobmF0aXZlUHJvcHMpLmxlbmd0aCkgcmV0dXJuIHRoaXMucHJldmlvdXNJbnB1dHMgfHwgbnVsbDtcblx0XHRcdHJldHVybiAodGhpcy5wcmV2aW91c0lucHV0cyA9IG5hdGl2ZVByb3BzKTtcblx0XHR9LFxuXHRcdHsgZXF1YWw6IChhLCBiKSA9PiBpcy5lcXUoYSwgYiwgeyBvYmplY3RzOiAnc2hhbGxvdycgfSkgfSxcblx0KTtcblxuXHRhcmdzID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtuYXRpdmVJbnB1dHMsIG5hdGl2ZUFyZ3NdID0gW3RoaXMubmF0aXZlSW5wdXRzKCksIHRoaXMubmF0aXZlQXJncygpXTtcblx0XHRpZiAobmF0aXZlSW5wdXRzKSB7XG5cdFx0XHRuYXRpdmVBcmdzLnB1c2gobmF0aXZlSW5wdXRzKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbmF0aXZlQXJncztcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5zZXRCbGVuZE1vZGUoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0QmxlbmRNb2RlKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbYmxlbmRGdW5jdGlvbiwgb3BhY2l0eSwgZWZmZWN0LCBpbnZhbGlkYXRlXSA9IFtcblx0XHRcdFx0dGhpcy5ibGVuZEZ1bmN0aW9uKCksXG5cdFx0XHRcdHRoaXMub3BhY2l0eSgpLFxuXHRcdFx0XHR0aGlzLmVmZmVjdFJlZi5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKSxcblx0XHRcdF07XG5cblx0XHRcdGlmICghZWZmZWN0KSByZXR1cm47XG5cdFx0XHRlZmZlY3QuYmxlbmRNb2RlLmJsZW5kRnVuY3Rpb24gPVxuXHRcdFx0XHQhYmxlbmRGdW5jdGlvbiAmJiBibGVuZEZ1bmN0aW9uICE9PSAwID8gdGhpcy5kZWZhdWx0QmxlbmRGdW5jdGlvbiA6IGJsZW5kRnVuY3Rpb247XG5cdFx0XHRpZiAob3BhY2l0eSAhPT0gdW5kZWZpbmVkKSBlZmZlY3QuYmxlbmRNb2RlLm9wYWNpdHkudmFsdWUgPSBvcGFjaXR5O1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { BlendFunction, BloomEffect } from 'postprocessing';
4
+ import { NgtpEffect } from '../../effect';
5
+ import * as i0 from "@angular/core";
6
+ extend({ BloomEffect });
7
+ export class NgtpBloom extends NgtpEffect {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.defaultBlendFunction = BlendFunction.ADD;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpBloom, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NgtpBloom, isStandalone: true, selector: "ngtp-bloom", usesInheritance: true, ngImport: i0, template: `
14
+ <ngt-bloom-effect ngtCompound *args="args()" [ref]="effectRef" [camera]="camera()">
15
+ <ng-content />
16
+ </ngt-bloom-effect>
17
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpBloom, decorators: [{
20
+ type: Component,
21
+ args: [{
22
+ selector: 'ngtp-bloom',
23
+ standalone: true,
24
+ template: `
25
+ <ngt-bloom-effect ngtCompound *args="args()" [ref]="effectRef" [camera]="camera()">
26
+ <ng-content />
27
+ </ngt-bloom-effect>
28
+ `,
29
+ imports: [NgtArgs],
30
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvb20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ibG9vbS9ibG9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUEyQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQXdCLE1BQU0sY0FBYyxDQUFDOztBQUVoRSxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBbUJ4QixNQUFNLE9BQU8sU0FBVSxTQUFRLFVBQXVCO0lBWHREOztRQVlVLHlCQUFvQixHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUM7S0FDbEQ7OEdBRlksU0FBUztrR0FBVCxTQUFTLDZGQVJYOzs7O0VBSVQsNERBQ1MsT0FBTzs7MkZBR0wsU0FBUztrQkFYckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIEJsb29tRWZmZWN0LCB0eXBlIEJsb29tRWZmZWN0T3B0aW9ucyB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIHR5cGUgTmd0cEVmZmVjdFN0YXRlIH0gZnJvbSAnLi4vLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgQmxvb21FZmZlY3QgfSk7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0J25ndHAtYmxvb20nOiBCbG9vbUVmZmVjdE9wdGlvbnMgJiBOZ3RwRWZmZWN0U3RhdGU7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1ibG9vbScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ibG9vbS1lZmZlY3Qgbmd0Q29tcG91bmQgKmFyZ3M9XCJhcmdzKClcIiBbcmVmXT1cImVmZmVjdFJlZlwiIFtjYW1lcmFdPVwiY2FtZXJhKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtYmxvb20tZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEJsb29tIGV4dGVuZHMgTmd0cEVmZmVjdDxCbG9vbUVmZmVjdD4ge1xuXHRvdmVycmlkZSBkZWZhdWx0QmxlbmRGdW5jdGlvbiA9IEJsZW5kRnVuY3Rpb24uQUREO1xufVxuIl19
@@ -0,0 +1,29 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { BrightnessContrastEffect } from 'postprocessing';
4
+ import { NgtpEffect } from '../../effect';
5
+ import * as i0 from "@angular/core";
6
+ extend({ BrightnessContrastEffect });
7
+ export class NgtpBrightnessContrast extends NgtpEffect {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpBrightnessContrast, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NgtpBrightnessContrast, isStandalone: true, selector: "ngtp-brightness-contrast", usesInheritance: true, ngImport: i0, template: `
10
+ <ngt-brightness-contrast-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
11
+ <ng-content />
12
+ </ngt-brightness-contrast-effect>
13
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpBrightnessContrast, decorators: [{
16
+ type: Component,
17
+ args: [{
18
+ selector: 'ngtp-brightness-contrast',
19
+ standalone: true,
20
+ template: `
21
+ <ngt-brightness-contrast-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
22
+ <ng-content />
23
+ </ngt-brightness-contrast-effect>
24
+ `,
25
+ imports: [NgtArgs],
26
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZ2h0bmVzcy1jb250cmFzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2JyaWdodG5lc3MtY29udHJhc3QvYnJpZ2h0bmVzcy1jb250cmFzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQXdCLE1BQU0sY0FBYyxDQUFDOztBQUVoRSxNQUFNLENBQUMsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7QUFtQnJDLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUFvQzs4R0FBbkUsc0JBQXNCO2tHQUF0QixzQkFBc0IsMkdBUnhCOzs7O0VBSVQsNERBQ1MsT0FBTzs7MkZBR0wsc0JBQXNCO2tCQVhsQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBCcmlnaHRuZXNzQ29udHJhc3RFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCB0eXBlIE5ndHBFZmZlY3RTdGF0ZSB9IGZyb20gJy4uLy4uL2VmZmVjdCc7XG5cbmV4dGVuZCh7IEJyaWdodG5lc3NDb250cmFzdEVmZmVjdCB9KTtcblxuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcblx0XHQnbmd0cC1icmlnaHRuZXNzLWNvbnRyYXN0JzogeyBicmlnaHRuZXNzPzogbnVtYmVyOyBjb250cmFzdD86IG51bWJlciB9ICYgTmd0cEVmZmVjdFN0YXRlO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtYnJpZ2h0bmVzcy1jb250cmFzdCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1icmlnaHRuZXNzLWNvbnRyYXN0LWVmZmVjdCBuZ3RDb21wb3VuZCAqYXJncz1cImFyZ3MoKVwiIFtjYW1lcmFdPVwiY2FtZXJhKClcIiBbcmVmXT1cImVmZmVjdFJlZlwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1icmlnaHRuZXNzLWNvbnRyYXN0LWVmZmVjdD5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBCcmlnaHRuZXNzQ29udHJhc3QgZXh0ZW5kcyBOZ3RwRWZmZWN0PEJyaWdodG5lc3NDb250cmFzdEVmZmVjdD4ge31cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { ColorDepthEffect } from 'postprocessing';
4
+ import { NgtpEffect } from '../../effect';
5
+ import * as i0 from "@angular/core";
6
+ extend({ ColorDepthEffect });
7
+ export class NgtpColorDepth extends NgtpEffect {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpColorDepth, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NgtpColorDepth, isStandalone: true, selector: "ngtp-color-depth", usesInheritance: true, ngImport: i0, template: `
10
+ <ngt-color-depth-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
11
+ <ng-content />
12
+ </ngt-color-depth-effect>
13
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpColorDepth, decorators: [{
16
+ type: Component,
17
+ args: [{
18
+ selector: 'ngtp-color-depth',
19
+ standalone: true,
20
+ template: `
21
+ <ngt-color-depth-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
22
+ <ng-content />
23
+ </ngt-color-depth-effect>
24
+ `,
25
+ imports: [NgtArgs],
26
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jb2xvci1kZXB0aC9jb2xvci1kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQXdCLE1BQU0sY0FBYyxDQUFDOztBQUVoRSxNQUFNLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7QUFtQjdCLE1BQU0sT0FBTyxjQUFlLFNBQVEsVUFBNEI7OEdBQW5ELGNBQWM7a0dBQWQsY0FBYyxtR0FSaEI7Ozs7RUFJVCw0REFDUyxPQUFPOzsyRkFHTCxjQUFjO2tCQVgxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBDb2xvckRlcHRoRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgdHlwZSBOZ3RwRWZmZWN0U3RhdGUgfSBmcm9tICcuLi8uLi9lZmZlY3QnO1xuXG5leHRlbmQoeyBDb2xvckRlcHRoRWZmZWN0IH0pO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdCduZ3RwLWNvbG9yLWRlcHRoJzogeyBiaXRzPzogbnVtYmVyIH0gJiBOZ3RwRWZmZWN0U3RhdGU7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1jb2xvci1kZXB0aCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1jb2xvci1kZXB0aC1lZmZlY3Qgbmd0Q29tcG91bmQgKmFyZ3M9XCJhcmdzKClcIiBbY2FtZXJhXT1cImNhbWVyYSgpXCIgW3JlZl09XCJlZmZlY3RSZWZcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtY29sb3ItZGVwdGgtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cENvbG9yRGVwdGggZXh0ZW5kcyBOZ3RwRWZmZWN0PENvbG9yRGVwdGhFZmZlY3Q+IHt9XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { DepthEffect } from 'postprocessing';
4
+ import { NgtpEffect } from '../../effect';
5
+ import * as i0 from "@angular/core";
6
+ extend({ DepthEffect });
7
+ export class NgtpDepth extends NgtpEffect {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpDepth, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NgtpDepth, isStandalone: true, selector: "ngtp-depth", usesInheritance: true, ngImport: i0, template: `
10
+ <ngt-depth-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
11
+ <ng-content />
12
+ </ngt-depth-effect>
13
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpDepth, decorators: [{
16
+ type: Component,
17
+ args: [{
18
+ selector: 'ngtp-depth',
19
+ standalone: true,
20
+ template: `
21
+ <ngt-depth-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
22
+ <ng-content />
23
+ </ngt-depth-effect>
24
+ `,
25
+ imports: [NgtArgs],
26
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC9kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUF3QixNQUFNLGNBQWMsQ0FBQzs7QUFFaEUsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztBQW1CeEIsTUFBTSxPQUFPLFNBQVUsU0FBUSxVQUF1Qjs4R0FBekMsU0FBUztrR0FBVCxTQUFTLDZGQVJYOzs7O0VBSVQsNERBQ1MsT0FBTzs7MkZBR0wsU0FBUztrQkFYckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IERlcHRoRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgdHlwZSBOZ3RwRWZmZWN0U3RhdGUgfSBmcm9tICcuLi8uLi9lZmZlY3QnO1xuXG5leHRlbmQoeyBEZXB0aEVmZmVjdCB9KTtcblxuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcblx0XHQnbmd0cC1kZXB0aCc6IHsgaW52ZXJ0ZWQ/OiBib29sZWFuIH0gJiBOZ3RwRWZmZWN0U3RhdGU7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1kZXB0aCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1kZXB0aC1lZmZlY3Qgbmd0Q29tcG91bmQgKmFyZ3M9XCJhcmdzKClcIiBbY2FtZXJhXT1cImNhbWVyYSgpXCIgW3JlZl09XCJlZmZlY3RSZWZcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZGVwdGgtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoIGV4dGVuZHMgTmd0cEVmZmVjdDxEZXB0aEVmZmVjdD4ge31cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { DotScreenEffect } from 'postprocessing';
4
+ import { NgtpEffect } from '../../effect';
5
+ import * as i0 from "@angular/core";
6
+ extend({ DotScreenEffect });
7
+ export class NgtpDotScreen extends NgtpEffect {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpDotScreen, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NgtpDotScreen, isStandalone: true, selector: "ngtp-dot-screen", usesInheritance: true, ngImport: i0, template: `
10
+ <ngt-dot-screen-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
11
+ <ng-content />
12
+ </ngt-dot-screen-effect>
13
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpDotScreen, decorators: [{
16
+ type: Component,
17
+ args: [{
18
+ selector: 'ngtp-dot-screen',
19
+ standalone: true,
20
+ template: `
21
+ <ngt-dot-screen-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
22
+ <ng-content />
23
+ </ngt-dot-screen-effect>
24
+ `,
25
+ imports: [NgtArgs],
26
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2RvdC1zY3JlZW4vZG90LXNjcmVlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUF3QixNQUFNLGNBQWMsQ0FBQzs7QUFFaEUsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQW1CNUIsTUFBTSxPQUFPLGFBQWMsU0FBUSxVQUEyQjs4R0FBakQsYUFBYTtrR0FBYixhQUFhLGtHQVJmOzs7O0VBSVQsNERBQ1MsT0FBTzs7MkZBR0wsYUFBYTtrQkFYekIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgRG90U2NyZWVuRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgdHlwZSBOZ3RwRWZmZWN0U3RhdGUgfSBmcm9tICcuLi8uLi9lZmZlY3QnO1xuXG5leHRlbmQoeyBEb3RTY3JlZW5FZmZlY3QgfSk7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0J25ndHAtZG90LXNjcmVlbic6IHsgYW5nbGU/OiBudW1iZXI7IHNjYWxlPzogbnVtYmVyIH0gJiBOZ3RwRWZmZWN0U3RhdGU7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1kb3Qtc2NyZWVuJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWRvdC1zY3JlZW4tZWZmZWN0IG5ndENvbXBvdW5kICphcmdzPVwiYXJncygpXCIgW2NhbWVyYV09XCJjYW1lcmEoKVwiIFtyZWZdPVwiZWZmZWN0UmVmXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWRvdC1zY3JlZW4tZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERvdFNjcmVlbiBleHRlbmRzIE5ndHBFZmZlY3Q8RG90U2NyZWVuRWZmZWN0PiB7fVxuIl19
@@ -0,0 +1,29 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { HueSaturationEffect } from 'postprocessing';
4
+ import { NgtpEffect } from '../../effect';
5
+ import * as i0 from "@angular/core";
6
+ extend({ HueSaturationEffect });
7
+ export class NgtpHueSaturation extends NgtpEffect {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpHueSaturation, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NgtpHueSaturation, isStandalone: true, selector: "ngtp-hue-saturation", usesInheritance: true, ngImport: i0, template: `
10
+ <ngt-hue-saturation-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
11
+ <ng-content />
12
+ </ngt-hue-saturation-effect>
13
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpHueSaturation, decorators: [{
16
+ type: Component,
17
+ args: [{
18
+ selector: 'ngtp-hue-saturation',
19
+ standalone: true,
20
+ template: `
21
+ <ngt-hue-saturation-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
22
+ <ng-content />
23
+ </ngt-hue-saturation-effect>
24
+ `,
25
+ imports: [NgtArgs],
26
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVlLXNhdHVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9odWUtc2F0dXJhdGlvbi9odWUtc2F0dXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQXdCLE1BQU0sY0FBYyxDQUFDOztBQUVoRSxNQUFNLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7QUFtQmhDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxVQUErQjs4R0FBekQsaUJBQWlCO2tHQUFqQixpQkFBaUIsc0dBUm5COzs7O0VBSVQsNERBQ1MsT0FBTzs7MkZBR0wsaUJBQWlCO2tCQVg3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBIdWVTYXR1cmF0aW9uRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgdHlwZSBOZ3RwRWZmZWN0U3RhdGUgfSBmcm9tICcuLi8uLi9lZmZlY3QnO1xuXG5leHRlbmQoeyBIdWVTYXR1cmF0aW9uRWZmZWN0IH0pO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdCduZ3RwLWh1ZS1zYXR1cmF0aW9uJzogeyBodWU/OiBudW1iZXI7IHNhdHVyYXRpb24/OiBudW1iZXIgfSAmIE5ndHBFZmZlY3RTdGF0ZTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWh1ZS1zYXR1cmF0aW9uJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWh1ZS1zYXR1cmF0aW9uLWVmZmVjdCBuZ3RDb21wb3VuZCAqYXJncz1cImFyZ3MoKVwiIFtjYW1lcmFdPVwiY2FtZXJhKClcIiBbcmVmXT1cImVmZmVjdFJlZlwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1odWUtc2F0dXJhdGlvbi1lZmZlY3Q+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwSHVlU2F0dXJhdGlvbiBleHRlbmRzIE5ndHBFZmZlY3Q8SHVlU2F0dXJhdGlvbkVmZmVjdD4ge31cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ export * from './bloom/bloom';
2
+ export * from './brightness-contrast/brightness-contrast';
3
+ export * from './color-depth/color-depth';
4
+ export * from './depth/depth';
5
+ export * from './dot-screen/dot-screen';
6
+ export * from './hue-saturation/hue-saturation';
7
+ export * from './lut/lut';
8
+ export * from './noise/noise';
9
+ export * from './pixelation/pixelation';
10
+ export * from './scanline/scanline';
11
+ export * from './sepia/sepia';
12
+ export * from './shock-wave/shock-wave';
13
+ export * from './smaa/smaa';
14
+ export * from './ssao/ssao';
15
+ export * from './tilt-shift/tilt-shift';
16
+ export * from './tone-mapping/tone-mapping';
17
+ export * from './vignette/vignette';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ibG9vbS9ibG9vbSc7XG5leHBvcnQgKiBmcm9tICcuL2JyaWdodG5lc3MtY29udHJhc3QvYnJpZ2h0bmVzcy1jb250cmFzdCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLWRlcHRoL2NvbG9yLWRlcHRoJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwdGgvZGVwdGgnO1xuZXhwb3J0ICogZnJvbSAnLi9kb3Qtc2NyZWVuL2RvdC1zY3JlZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9odWUtc2F0dXJhdGlvbi9odWUtc2F0dXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2x1dC9sdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9ub2lzZS9ub2lzZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpeGVsYXRpb24vcGl4ZWxhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NjYW5saW5lL3NjYW5saW5lJztcbmV4cG9ydCAqIGZyb20gJy4vc2VwaWEvc2VwaWEnO1xuZXhwb3J0ICogZnJvbSAnLi9zaG9jay13YXZlL3Nob2NrLXdhdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zbWFhL3NtYWEnO1xuZXhwb3J0ICogZnJvbSAnLi9zc2FvL3NzYW8nO1xuZXhwb3J0ICogZnJvbSAnLi90aWx0LXNoaWZ0L3RpbHQtc2hpZnQnO1xuZXhwb3J0ICogZnJvbSAnLi90b25lLW1hcHBpbmcvdG9uZS1tYXBwaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vdmlnbmV0dGUvdmlnbmV0dGUnO1xuIl19
@@ -0,0 +1,70 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed, effect } from '@angular/core';
2
+ import { NgtArgs, injectNgtRef, injectNgtStore, signalStore } from 'angular-three';
3
+ import { BlendFunction, LUT3DEffect } from 'postprocessing';
4
+ import * as i0 from "@angular/core";
5
+ export class NgtpLUT {
6
+ set _lut(lut) {
7
+ this.inputs.set({ lut });
8
+ }
9
+ set _blendFunction(blendFunction) {
10
+ this.inputs.set({ blendFunction });
11
+ }
12
+ set _tetrahedralInterpolation(tetrahedralInterpolation) {
13
+ this.inputs.set({ tetrahedralInterpolation });
14
+ }
15
+ constructor() {
16
+ this.inputs = signalStore({});
17
+ this.effectRef = injectNgtRef();
18
+ this.lut = this.inputs.select('lut');
19
+ this.tetrahedralInterpolation = this.inputs.select('tetrahedralInterpolation');
20
+ this.blendFunction = this.inputs.select('blendFunction');
21
+ this.store = injectNgtStore();
22
+ this.invalidate = this.store.select('invalidate');
23
+ this.effect = computed(() => new LUT3DEffect(this.lut(), {
24
+ blendFunction: this.blendFunction(),
25
+ tetrahedralInterpolation: this.tetrahedralInterpolation(),
26
+ }));
27
+ this.setState();
28
+ }
29
+ setState() {
30
+ effect(() => {
31
+ const [effect, invalidate, lut, tetrahedralInterpolation] = [
32
+ this.effect(),
33
+ this.invalidate(),
34
+ this.lut(),
35
+ this.tetrahedralInterpolation(),
36
+ ];
37
+ if (!effect)
38
+ return;
39
+ if (tetrahedralInterpolation)
40
+ effect.tetrahedralInterpolation = tetrahedralInterpolation;
41
+ if (lut)
42
+ effect.lut = lut;
43
+ invalidate();
44
+ });
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpLUT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NgtpLUT, isStandalone: true, selector: "ngtp-lut", inputs: { effectRef: "effectRef", _lut: ["lut", "_lut"], _blendFunction: ["blendFunction", "_blendFunction"], _tetrahedralInterpolation: ["tetrahedralInterpolation", "_tetrahedralInterpolation"] }, ngImport: i0, template: ` <ngt-primitive *args="[effect()]" [ref]="effectRef" /> `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpLUT, decorators: [{
50
+ type: Component,
51
+ args: [{
52
+ selector: 'ngtp-lut',
53
+ standalone: true,
54
+ template: ` <ngt-primitive *args="[effect()]" [ref]="effectRef" /> `,
55
+ imports: [NgtArgs],
56
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
57
+ }]
58
+ }], ctorParameters: function () { return []; }, propDecorators: { effectRef: [{
59
+ type: Input
60
+ }], _lut: [{
61
+ type: Input,
62
+ args: [{ required: true, alias: 'lut' }]
63
+ }], _blendFunction: [{
64
+ type: Input,
65
+ args: [{ alias: 'blendFunction' }]
66
+ }], _tetrahedralInterpolation: [{
67
+ type: Input,
68
+ args: [{ alias: 'tetrahedralInterpolation' }]
69
+ }] } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvbHV0L2x1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFxQjVELE1BQU0sT0FBTyxPQUFPO0lBS25CLElBQTZDLElBQUksQ0FBQyxHQUFrQjtRQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQXVDLGNBQWMsQ0FBQyxhQUE0QjtRQUNqRixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQWtELHlCQUF5QixDQUFDLHdCQUFpQztRQUM1RyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBaUJEO1FBL0JRLFdBQU0sR0FBRyxXQUFXLENBQWUsRUFBRSxDQUFDLENBQUM7UUFFdEMsY0FBUyxHQUFHLFlBQVksRUFBZSxDQUFDO1FBY3pDLFFBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyw2QkFBd0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzFFLGtCQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFcEQsVUFBSyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRCxXQUFNLEdBQUcsUUFBUSxDQUNoQixHQUFHLEVBQUUsQ0FDSixJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDM0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbkMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1NBQ3pELENBQUMsQ0FDSCxDQUFDO1FBR0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyxRQUFRO1FBQ2YsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxHQUFHO2dCQUMzRCxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNiLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLHdCQUF3QixFQUFFO2FBQy9CLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3BCLElBQUksd0JBQXdCO2dCQUFFLE1BQU0sQ0FBQyx3QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztZQUN6RixJQUFJLEdBQUc7Z0JBQUUsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDMUIsVUFBVSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBakRXLE9BQU87a0dBQVAsT0FBTywwUUFKVCwwREFBMEQsNERBQzFELE9BQU87OzJGQUdMLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsMERBQTBEO29CQUNwRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzswRUFJUyxTQUFTO3NCQUFqQixLQUFLO2dCQUV1QyxJQUFJO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUlBLGNBQWM7c0JBQXBELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFO2dCQUlpQix5QkFBeUI7c0JBQTFFLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIElucHV0LCBjb21wdXRlZCwgZWZmZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBpbmplY3ROZ3RSZWYsIGluamVjdE5ndFN0b3JlLCBzaWduYWxTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgTFVUM0RFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCB0eXBlIE5ndHBMVVRTdGF0ZSA9IHtcblx0bHV0OiBUSFJFRS5UZXh0dXJlO1xuXHRibGVuZEZ1bmN0aW9uPzogQmxlbmRGdW5jdGlvbjtcblx0dGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uPzogYm9vbGVhbjtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0J25ndHAtbHV0JzogTmd0cExVVFN0YXRlO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtbHV0Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGAgPG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgW3JlZl09XCJlZmZlY3RSZWZcIiAvPiBgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cExVVCB7XG5cdHByaXZhdGUgaW5wdXRzID0gc2lnbmFsU3RvcmU8Tmd0cExVVFN0YXRlPih7fSk7XG5cblx0QElucHV0KCkgZWZmZWN0UmVmID0gaW5qZWN0Tmd0UmVmPExVVDNERWZmZWN0PigpO1xuXG5cdEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlLCBhbGlhczogJ2x1dCcgfSkgc2V0IF9sdXQobHV0OiBUSFJFRS5UZXh0dXJlKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgbHV0IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdibGVuZEZ1bmN0aW9uJyB9KSBzZXQgX2JsZW5kRnVuY3Rpb24oYmxlbmRGdW5jdGlvbjogQmxlbmRGdW5jdGlvbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGJsZW5kRnVuY3Rpb24gfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3RldHJhaGVkcmFsSW50ZXJwb2xhdGlvbicgfSkgc2V0IF90ZXRyYWhlZHJhbEludGVycG9sYXRpb24odGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgdGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uIH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBsdXQgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2x1dCcpO1xuXHRwcml2YXRlIHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbiA9IHRoaXMuaW5wdXRzLnNlbGVjdCgndGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uJyk7XG5cdHByaXZhdGUgYmxlbmRGdW5jdGlvbiA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYmxlbmRGdW5jdGlvbicpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXHRwcml2YXRlIGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuXG5cdGVmZmVjdCA9IGNvbXB1dGVkKFxuXHRcdCgpID0+XG5cdFx0XHRuZXcgTFVUM0RFZmZlY3QodGhpcy5sdXQoKSwge1xuXHRcdFx0XHRibGVuZEZ1bmN0aW9uOiB0aGlzLmJsZW5kRnVuY3Rpb24oKSxcblx0XHRcdFx0dGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uOiB0aGlzLnRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbigpLFxuXHRcdFx0fSksXG5cdCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5zZXRTdGF0ZSgpO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRTdGF0ZSgpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZSwgbHV0LCB0ZXRyYWhlZHJhbEludGVycG9sYXRpb25dID0gW1xuXHRcdFx0XHR0aGlzLmVmZmVjdCgpLFxuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKSxcblx0XHRcdFx0dGhpcy5sdXQoKSxcblx0XHRcdFx0dGhpcy50ZXRyYWhlZHJhbEludGVycG9sYXRpb24oKSxcblx0XHRcdF07XG5cdFx0XHRpZiAoIWVmZmVjdCkgcmV0dXJuO1xuXHRcdFx0aWYgKHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbikgZWZmZWN0LnRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbiA9IHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbjtcblx0XHRcdGlmIChsdXQpIGVmZmVjdC5sdXQgPSBsdXQ7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { BlendFunction, NoiseEffect } from 'postprocessing';
4
+ import { NgtpEffect } from '../../effect';
5
+ import * as i0 from "@angular/core";
6
+ extend({ NoiseEffect });
7
+ export class NgtpNoise extends NgtpEffect {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.defaultBlendFunction = BlendFunction.COLOR_DODGE;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpNoise, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NgtpNoise, isStandalone: true, selector: "ngtp-noise", usesInheritance: true, ngImport: i0, template: `
14
+ <ngt-noise-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
15
+ <ng-content />
16
+ </ngt-noise-effect>
17
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpNoise, decorators: [{
20
+ type: Component,
21
+ args: [{
22
+ selector: 'ngtp-noise',
23
+ standalone: true,
24
+ template: `
25
+ <ngt-noise-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
26
+ <ng-content />
27
+ </ngt-noise-effect>
28
+ `,
29
+ imports: [NgtArgs],
30
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9pc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ub2lzZS9ub2lzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxjQUFjLENBQUM7O0FBRWhFLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFtQnhCLE1BQU0sT0FBTyxTQUFVLFNBQVEsVUFBdUI7SUFYdEQ7O1FBWVUseUJBQW9CLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztLQUMxRDs4R0FGWSxTQUFTO2tHQUFULFNBQVMsNkZBUlg7Ozs7RUFJVCw0REFDUyxPQUFPOzsyRkFHTCxTQUFTO2tCQVhyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgTm9pc2VFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCB0eXBlIE5ndHBFZmZlY3RTdGF0ZSB9IGZyb20gJy4uLy4uL2VmZmVjdCc7XG5cbmV4dGVuZCh7IE5vaXNlRWZmZWN0IH0pO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdCduZ3RwLW5vaXNlJzogeyBwcmVtdWx0aXBseT86IGJvb2xlYW4gfSAmIE5ndHBFZmZlY3RTdGF0ZTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLW5vaXNlJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW5vaXNlLWVmZmVjdCBuZ3RDb21wb3VuZCAqYXJncz1cImFyZ3MoKVwiIFtjYW1lcmFdPVwiY2FtZXJhKClcIiBbcmVmXT1cImVmZmVjdFJlZlwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ub2lzZS1lZmZlY3Q+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwTm9pc2UgZXh0ZW5kcyBOZ3RwRWZmZWN0PE5vaXNlRWZmZWN0PiB7XG5cdG92ZXJyaWRlIGRlZmF1bHRCbGVuZEZ1bmN0aW9uID0gQmxlbmRGdW5jdGlvbi5DT0xPUl9ET0RHRTtcbn1cbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';
2
+ import { NgtArgs, injectNgtRef, signalStore } from 'angular-three';
3
+ import { PixelationEffect } from 'postprocessing';
4
+ import * as i0 from "@angular/core";
5
+ export class NgtpPixelation {
6
+ constructor() {
7
+ this.inputs = signalStore({ granularity: 30 });
8
+ this.effectRef = injectNgtRef();
9
+ this.granularity = this.inputs.select('granularity');
10
+ this.effect = computed(() => new PixelationEffect(this.granularity()));
11
+ }
12
+ set _granularity(granularity) {
13
+ this.inputs.set({ granularity });
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpPixelation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NgtpPixelation, isStandalone: true, selector: "ngtp-pixelation", inputs: { effectRef: "effectRef", _granularity: ["granularity", "_granularity"] }, ngImport: i0, template: ` <ngt-primitive *args="[effect()]" [ref]="effectRef" /> `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpPixelation, decorators: [{
19
+ type: Component,
20
+ args: [{
21
+ selector: 'ngtp-pixelation',
22
+ standalone: true,
23
+ template: ` <ngt-primitive *args="[effect()]" [ref]="effectRef" /> `,
24
+ imports: [NgtArgs],
25
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
26
+ }]
27
+ }], propDecorators: { effectRef: [{
28
+ type: Input
29
+ }], _granularity: [{
30
+ type: Input,
31
+ args: [{ alias: 'granularity' }]
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4ZWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3BpeGVsYXRpb24vcGl4ZWxhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQW9CbEQsTUFBTSxPQUFPLGNBQWM7SUFQM0I7UUFRUyxXQUFNLEdBQUcsV0FBVyxDQUFzQixFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTlELGNBQVMsR0FBRyxZQUFZLEVBQW9CLENBQUM7UUFNOUMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RCxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUNsRTtJQVBBLElBQXFDLFlBQVksQ0FBQyxXQUFtQjtRQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0FQVyxjQUFjO2tHQUFkLGNBQWMsOEpBSmhCLDBEQUEwRCw0REFDMUQsT0FBTzs7MkZBR0wsY0FBYztrQkFQMUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDBEQUEwRDtvQkFDcEUsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakM7OEJBSVMsU0FBUztzQkFBakIsS0FBSztnQkFFK0IsWUFBWTtzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIElucHV0LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgaW5qZWN0Tmd0UmVmLCBzaWduYWxTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgUGl4ZWxhdGlvbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3RTdGF0ZSB9IGZyb20gJy4uLy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIE5ndHBQaXhlbGF0aW9uU3RhdGUgPSB7XG5cdGdyYW51bGFyaXR5OiBudW1iZXI7XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdCduZ3RwLXBpeGVsYXRpb24nOiBOZ3RwUGl4ZWxhdGlvblN0YXRlICYgTmd0cEVmZmVjdFN0YXRlO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtcGl4ZWxhdGlvbicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgIDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIFtyZWZdPVwiZWZmZWN0UmVmXCIgLz4gYCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBQaXhlbGF0aW9uIHtcblx0cHJpdmF0ZSBpbnB1dHMgPSBzaWduYWxTdG9yZTxOZ3RwUGl4ZWxhdGlvblN0YXRlPih7IGdyYW51bGFyaXR5OiAzMCB9KTtcblxuXHRASW5wdXQoKSBlZmZlY3RSZWYgPSBpbmplY3ROZ3RSZWY8UGl4ZWxhdGlvbkVmZmVjdD4oKTtcblxuXHRASW5wdXQoeyBhbGlhczogJ2dyYW51bGFyaXR5JyB9KSBzZXQgX2dyYW51bGFyaXR5KGdyYW51bGFyaXR5OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBncmFudWxhcml0eSB9KTtcblx0fVxuXG5cdHByaXZhdGUgZ3JhbnVsYXJpdHkgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2dyYW51bGFyaXR5Jyk7XG5cblx0ZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4gbmV3IFBpeGVsYXRpb25FZmZlY3QodGhpcy5ncmFudWxhcml0eSgpKSk7XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { BlendFunction, ScanlineEffect } from 'postprocessing';
4
+ import { NgtpEffect } from '../../effect';
5
+ import * as i0 from "@angular/core";
6
+ extend({ ScanlineEffect });
7
+ export class NgtpScanline extends NgtpEffect {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.defaultBlendFunction = BlendFunction.OVERLAY;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpScanline, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: NgtpScanline, isStandalone: true, selector: "ngtp-scanline", usesInheritance: true, ngImport: i0, template: `
14
+ <ngt-scanline-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
15
+ <ng-content />
16
+ </ngt-scanline-effect>
17
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: NgtpScanline, decorators: [{
20
+ type: Component,
21
+ args: [{
22
+ selector: 'ngtp-scanline',
23
+ standalone: true,
24
+ template: `
25
+ <ngt-scanline-effect ngtCompound *args="args()" [camera]="camera()" [ref]="effectRef">
26
+ <ng-content />
27
+ </ngt-scanline-effect>
28
+ `,
29
+ imports: [NgtArgs],
30
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbmxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9zY2FubGluZS9zY2FubGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxjQUFjLENBQUM7O0FBRWhFLE1BQU0sQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7QUFtQjNCLE1BQU0sT0FBTyxZQUFhLFNBQVEsVUFBMEI7SUFYNUQ7O1FBWVUseUJBQW9CLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztLQUN0RDs4R0FGWSxZQUFZO2tHQUFaLFlBQVksZ0dBUmQ7Ozs7RUFJVCw0REFDUyxPQUFPOzsyRkFHTCxZQUFZO2tCQVh4QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgU2NhbmxpbmVFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCB0eXBlIE5ndHBFZmZlY3RTdGF0ZSB9IGZyb20gJy4uLy4uL2VmZmVjdCc7XG5cbmV4dGVuZCh7IFNjYW5saW5lRWZmZWN0IH0pO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdCduZ3RwLXNjYW5saW5lJzogeyBkZW5zaXR5PzogbnVtYmVyIH0gJiBOZ3RwRWZmZWN0U3RhdGU7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1zY2FubGluZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1zY2FubGluZS1lZmZlY3Qgbmd0Q29tcG91bmQgKmFyZ3M9XCJhcmdzKClcIiBbY2FtZXJhXT1cImNhbWVyYSgpXCIgW3JlZl09XCJlZmZlY3RSZWZcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3Qtc2NhbmxpbmUtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFNjYW5saW5lIGV4dGVuZHMgTmd0cEVmZmVjdDxTY2FubGluZUVmZmVjdD4ge1xuXHRvdmVycmlkZSBkZWZhdWx0QmxlbmRGdW5jdGlvbiA9IEJsZW5kRnVuY3Rpb24uT1ZFUkxBWTtcbn1cbiJdfQ==