angular-three-postprocessing 2.0.0-beta.4 → 2.0.0-beta.40

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 (90) hide show
  1. package/esm2022/index.mjs +4 -3
  2. package/esm2022/lib/effect-composer.mjs +249 -0
  3. package/esm2022/lib/effect.mjs +78 -0
  4. package/esm2022/lib/effects/bloom/bloom.mjs +33 -0
  5. package/esm2022/lib/effects/brightness-contrast/brightness-contrast.mjs +29 -0
  6. package/esm2022/lib/effects/color-depth/color-depth.mjs +29 -0
  7. package/esm2022/lib/effects/depth/depth.mjs +29 -0
  8. package/esm2022/lib/effects/dot-screen/dot-screen.mjs +29 -0
  9. package/esm2022/lib/effects/hue-saturation/hue-saturation.mjs +29 -0
  10. package/esm2022/lib/effects/index.mjs +18 -0
  11. package/esm2022/lib/effects/lut/lut.mjs +74 -0
  12. package/esm2022/lib/effects/noise/noise.mjs +33 -0
  13. package/esm2022/lib/effects/pixelation/pixelation.mjs +37 -0
  14. package/esm2022/lib/effects/scanline/scanline.mjs +33 -0
  15. package/esm2022/lib/effects/sepia/sepia.mjs +29 -0
  16. package/esm2022/lib/effects/shock-wave/shock-wave.mjs +29 -0
  17. package/esm2022/lib/effects/smaa/smaa.mjs +29 -0
  18. package/esm2022/lib/effects/ssao/ssao.mjs +217 -0
  19. package/esm2022/lib/effects/tilt-shift/tilt-shift.mjs +33 -0
  20. package/esm2022/lib/effects/tone-mapping/tone-mapping.mjs +29 -0
  21. package/esm2022/lib/effects/vignette/vignette.mjs +29 -0
  22. package/fesm2022/angular-three-postprocessing.mjs +881 -206
  23. package/fesm2022/angular-three-postprocessing.mjs.map +1 -1
  24. package/index.d.ts +3 -2
  25. package/lib/effect-composer.d.ts +105 -0
  26. package/lib/effect.d.ts +27 -0
  27. package/{effects → lib/effects}/bloom/bloom.d.ts +7 -2
  28. package/{effects → lib/effects}/brightness-contrast/brightness-contrast.d.ts +9 -1
  29. package/{effects → lib/effects}/color-depth/color-depth.d.ts +8 -1
  30. package/{effects → lib/effects}/depth/depth.d.ts +8 -1
  31. package/{effects → lib/effects}/dot-screen/dot-screen.d.ts +9 -1
  32. package/{effects → lib/effects}/hue-saturation/hue-saturation.d.ts +9 -1
  33. package/{effects → lib/effects}/index.d.ts +1 -0
  34. package/lib/effects/lut/lut.d.ts +29 -0
  35. package/{effects → lib/effects}/noise/noise.d.ts +8 -1
  36. package/lib/effects/pixelation/pixelation.d.ts +20 -0
  37. package/{effects → lib/effects}/scanline/scanline.d.ts +8 -1
  38. package/{effects → lib/effects}/sepia/sepia.d.ts +8 -1
  39. package/lib/effects/shock-wave/shock-wave.d.ts +17 -0
  40. package/lib/effects/smaa/smaa.d.ts +16 -0
  41. package/lib/effects/ssao/ssao.d.ts +42 -0
  42. package/lib/effects/tilt-shift/tilt-shift.d.ts +23 -0
  43. package/lib/effects/tone-mapping/tone-mapping.d.ts +22 -0
  44. package/lib/effects/vignette/vignette.d.ts +17 -0
  45. package/package.json +4 -14
  46. package/effect-composer.d.ts +0 -53
  47. package/effect.d.ts +0 -24
  48. package/effects/README.md +0 -3
  49. package/effects/lut/lut.d.ts +0 -19
  50. package/effects/shock-wave/shock-wave.d.ts +0 -7
  51. package/effects/smaa/smaa.d.ts +0 -7
  52. package/effects/ssao/ssao.d.ts +0 -38
  53. package/effects/tilt-shift/tilt-shift.d.ts +0 -8
  54. package/effects/tone-mapping/tone-mapping.d.ts +0 -7
  55. package/effects/vignette/vignette.d.ts +0 -7
  56. package/esm2022/effect-composer.mjs +0 -242
  57. package/esm2022/effect.mjs +0 -79
  58. package/esm2022/effects/angular-three-postprocessing-effects.mjs +0 -5
  59. package/esm2022/effects/bloom/bloom.mjs +0 -34
  60. package/esm2022/effects/brightness-contrast/brightness-contrast.mjs +0 -30
  61. package/esm2022/effects/color-depth/color-depth.mjs +0 -30
  62. package/esm2022/effects/depth/depth.mjs +0 -30
  63. package/esm2022/effects/dot-screen/dot-screen.mjs +0 -30
  64. package/esm2022/effects/hue-saturation/hue-saturation.mjs +0 -30
  65. package/esm2022/effects/index.mjs +0 -17
  66. package/esm2022/effects/lut/lut.mjs +0 -77
  67. package/esm2022/effects/noise/noise.mjs +0 -34
  68. package/esm2022/effects/scanline/scanline.mjs +0 -34
  69. package/esm2022/effects/sepia/sepia.mjs +0 -30
  70. package/esm2022/effects/shock-wave/shock-wave.mjs +0 -30
  71. package/esm2022/effects/smaa/smaa.mjs +0 -30
  72. package/esm2022/effects/ssao/ssao.mjs +0 -187
  73. package/esm2022/effects/tilt-shift/tilt-shift.mjs +0 -34
  74. package/esm2022/effects/tone-mapping/tone-mapping.mjs +0 -30
  75. package/esm2022/effects/vignette/vignette.mjs +0 -30
  76. package/fesm2022/angular-three-postprocessing-effects.mjs +0 -617
  77. package/fesm2022/angular-three-postprocessing-effects.mjs.map +0 -1
  78. package/plugin/README.md +0 -11
  79. package/plugin/generators.json +0 -19
  80. package/plugin/package.json +0 -9
  81. package/plugin/src/generators/init/compat.d.ts +0 -2
  82. package/plugin/src/generators/init/compat.js +0 -6
  83. package/plugin/src/generators/init/compat.js.map +0 -1
  84. package/plugin/src/generators/init/init.d.ts +0 -4
  85. package/plugin/src/generators/init/init.js +0 -22
  86. package/plugin/src/generators/init/init.js.map +0 -1
  87. package/plugin/src/generators/init/schema.json +0 -6
  88. package/plugin/src/index.d.ts +0 -1
  89. package/plugin/src/index.js +0 -6
  90. package/plugin/src/index.js.map +0 -1
package/esm2022/index.mjs CHANGED
@@ -1,3 +1,4 @@
1
- export * from './effect';
2
- export * from './effect-composer';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lZmZlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9lZmZlY3QtY29tcG9zZXInO1xuIl19
1
+ export * from './lib/effect';
2
+ export * from './lib/effect-composer';
3
+ export * from './lib/effects';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZWZmZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VmZmVjdC1jb21wb3Nlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZmZlY3RzJztcbiJdfQ==
@@ -0,0 +1,249 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, Injector, Input, computed, effect, forwardRef, inject, } from '@angular/core';
2
+ import { extend, injectBeforeRender, injectNgtRef, injectNgtStore, signalStore } from 'angular-three';
3
+ import { createInjectionToken } from 'ngxtension/create-injection-token';
4
+ import { DepthDownsamplingPass, Effect, EffectComposer, EffectPass, NormalPass, Pass, RenderPass, } from 'postprocessing';
5
+ import * as THREE from 'three';
6
+ import { Group } from 'three';
7
+ import { isWebGL2Available } from 'three-stdlib';
8
+ import * as i0 from "@angular/core";
9
+ extend({ Group });
10
+ export const [injectNgtpEffectComposerApi, provideNgtpEffectComposerApi] = createInjectionToken((composer) => composer.api, { isRoot: false, deps: [forwardRef(() => NgtpEffectComposer)] });
11
+ export class NgtpEffectComposer {
12
+ set _enabled(enabled) {
13
+ this.inputs.set({ enabled });
14
+ }
15
+ set _depthBuffer(depthBuffer) {
16
+ this.inputs.set({ depthBuffer });
17
+ }
18
+ set _disableNormalPass(disableNormalPass) {
19
+ this.inputs.set({ disableNormalPass });
20
+ }
21
+ set _stencilBuffer(stencilBuffer) {
22
+ this.inputs.set({ stencilBuffer });
23
+ }
24
+ set _autoClear(autoClear) {
25
+ this.inputs.set({ autoClear });
26
+ }
27
+ set _resolutionScale(resolutionScale) {
28
+ this.inputs.set({ resolutionScale });
29
+ }
30
+ set _multisampling(multisampling) {
31
+ this.inputs.set({ multisampling });
32
+ }
33
+ set _frameBufferType(frameBufferType) {
34
+ this.inputs.set({ frameBufferType });
35
+ }
36
+ set _renderPriority(renderPriority) {
37
+ this.inputs.set({ renderPriority });
38
+ }
39
+ set _camera(camera) {
40
+ this.inputs.set({ camera });
41
+ }
42
+ set _scene(scene) {
43
+ this.inputs.set({ scene });
44
+ }
45
+ constructor() {
46
+ this.inputs = signalStore({
47
+ enabled: true,
48
+ renderPriority: 1,
49
+ autoClear: true,
50
+ multisampling: 8,
51
+ frameBufferType: THREE.HalfFloatType,
52
+ });
53
+ this.composerRef = injectNgtRef();
54
+ this.injector = inject(Injector);
55
+ this.store = injectNgtStore();
56
+ this.gl = this.store.select('gl');
57
+ this.defaultScene = this.store.select('scene');
58
+ this.defaultCamera = this.store.select('camera');
59
+ this.size = this.store.select('size');
60
+ this.depthBuffer = this.inputs.select('depthBuffer');
61
+ this.stencilBuffer = this.inputs.select('stencilBuffer');
62
+ this.multisampling = this.inputs.select('multisampling');
63
+ this.frameBufferType = this.inputs.select('frameBufferType');
64
+ this.scene = this.inputs.select('scene');
65
+ this.camera = this.inputs.select('camera');
66
+ this.disableNormalPass = this.inputs.select('disableNormalPass');
67
+ this.resolutionScale = this.inputs.select('resolutionScale');
68
+ this.autoClear = this.inputs.select('autoClear');
69
+ this.activeScene = computed(() => this.scene() || this.defaultScene());
70
+ this.activeCamera = computed(() => this.camera() || this.defaultCamera());
71
+ this.composerEntities = computed(() => {
72
+ const webGL2Available = isWebGL2Available();
73
+ const [gl, depthBuffer, stencilBuffer, multisampling, frameBufferType, scene, camera, disableNormalPass, resolutionScale,] = [
74
+ this.gl(),
75
+ this.depthBuffer(),
76
+ this.stencilBuffer(),
77
+ this.multisampling(),
78
+ this.frameBufferType(),
79
+ this.activeScene(),
80
+ this.activeCamera(),
81
+ this.disableNormalPass(),
82
+ this.resolutionScale(),
83
+ ];
84
+ // Initialize composer
85
+ const effectComposer = new EffectComposer(gl, {
86
+ depthBuffer,
87
+ stencilBuffer,
88
+ multisampling: multisampling > 0 && webGL2Available ? multisampling : 0,
89
+ frameBufferType,
90
+ });
91
+ // Add render pass
92
+ effectComposer.addPass(new RenderPass(scene, camera));
93
+ // Create normal pass
94
+ let downSamplingPass = null;
95
+ let normalPass = null;
96
+ if (!disableNormalPass) {
97
+ normalPass = new NormalPass(scene, camera);
98
+ normalPass.enabled = false;
99
+ effectComposer.addPass(normalPass);
100
+ if (resolutionScale !== undefined && webGL2Available) {
101
+ downSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });
102
+ downSamplingPass.enabled = false;
103
+ effectComposer.addPass(downSamplingPass);
104
+ }
105
+ }
106
+ return { effectComposer, normalPass, downSamplingPass };
107
+ });
108
+ this.composer = computed(() => this.composerEntities().effectComposer);
109
+ this.api = computed(() => {
110
+ const [{ effectComposer: composer, normalPass, downSamplingPass }, resolutionScale, camera, scene] = [
111
+ this.composerEntities(),
112
+ this.resolutionScale(),
113
+ this.activeCamera(),
114
+ this.activeScene(),
115
+ ];
116
+ return { composer, normalPass, downSamplingPass, resolutionScale, camera, scene };
117
+ });
118
+ this.setComposerSize();
119
+ this.updatePasses();
120
+ }
121
+ ngOnInit() {
122
+ this.beforeRender();
123
+ }
124
+ setComposerSize() {
125
+ effect(() => {
126
+ const [composer, size] = [this.composer(), this.size()];
127
+ composer.setSize(size.width, size.height);
128
+ });
129
+ }
130
+ updatePasses() {
131
+ effect((onCleanup) => {
132
+ const [{ effectComposer: composer, normalPass, downSamplingPass }, instance, children, camera] = [
133
+ this.composerEntities(),
134
+ this.composerRef.nativeElement,
135
+ this.composerRef.children('nonObjects')(),
136
+ this.activeCamera(),
137
+ ];
138
+ const passes = [];
139
+ if (instance && composer && children.length) {
140
+ for (let i = 0; i < children.length; i++) {
141
+ const child = children[i];
142
+ if (child instanceof Effect) {
143
+ const effects = [];
144
+ while (children[i] instanceof Effect)
145
+ effects.push(children[i++]);
146
+ i--;
147
+ const pass = new EffectPass(camera, ...effects);
148
+ passes.push(pass);
149
+ }
150
+ else if (child instanceof Pass) {
151
+ passes.push(child);
152
+ }
153
+ }
154
+ for (const pass of passes)
155
+ composer.addPass(pass);
156
+ if (normalPass)
157
+ normalPass.enabled = true;
158
+ if (downSamplingPass)
159
+ downSamplingPass.enabled = true;
160
+ }
161
+ onCleanup(() => {
162
+ for (const pass of passes)
163
+ composer?.removePass(pass);
164
+ if (normalPass)
165
+ normalPass.enabled = false;
166
+ if (downSamplingPass)
167
+ downSamplingPass.enabled = false;
168
+ });
169
+ });
170
+ }
171
+ beforeRender() {
172
+ injectBeforeRender(({ delta }) => {
173
+ const [enabled, gl, autoClear, stencilBuffer, composer] = [
174
+ this.inputs.get('enabled'),
175
+ this.gl(),
176
+ this.autoClear(),
177
+ this.stencilBuffer(),
178
+ this.composer(),
179
+ ];
180
+ if (enabled) {
181
+ const currentAutoClear = gl.autoClear;
182
+ gl.autoClear = autoClear;
183
+ if (stencilBuffer && !autoClear)
184
+ gl.clearStencil();
185
+ composer.render(delta);
186
+ gl.autoClear = currentAutoClear;
187
+ }
188
+ }, {
189
+ injector: this.injector,
190
+ priority: this.inputs.get('enabled') ? this.inputs.get('renderPriority') : 0,
191
+ });
192
+ }
193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtpEffectComposer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
194
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtpEffectComposer, isStandalone: true, selector: "ngtp-effect-composer", inputs: { composerRef: "composerRef", _enabled: ["enabled", "_enabled"], _depthBuffer: ["depthBuffer", "_depthBuffer"], _disableNormalPass: ["disableNormalPass", "_disableNormalPass"], _stencilBuffer: ["stencilBuffer", "_stencilBuffer"], _autoClear: ["autoClear", "_autoClear"], _resolutionScale: ["resolutionScale", "_resolutionScale"], _multisampling: ["multisampling", "_multisampling"], _frameBufferType: ["frameBufferType", "_frameBufferType"], _renderPriority: ["renderPriority", "_renderPriority"], _camera: ["camera", "_camera"], _scene: ["scene", "_scene"] }, providers: [provideNgtpEffectComposerApi()], ngImport: i0, template: `
195
+ <ngt-group [ref]="composerRef">
196
+ <ng-content />
197
+ </ngt-group>
198
+ `, isInline: true }); }
199
+ }
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtpEffectComposer, decorators: [{
201
+ type: Component,
202
+ args: [{
203
+ selector: 'ngtp-effect-composer',
204
+ standalone: true,
205
+ template: `
206
+ <ngt-group [ref]="composerRef">
207
+ <ng-content />
208
+ </ngt-group>
209
+ `,
210
+ providers: [provideNgtpEffectComposerApi()],
211
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
212
+ }]
213
+ }], ctorParameters: function () { return []; }, propDecorators: { composerRef: [{
214
+ type: Input
215
+ }], _enabled: [{
216
+ type: Input,
217
+ args: [{ alias: 'enabled' }]
218
+ }], _depthBuffer: [{
219
+ type: Input,
220
+ args: [{ alias: 'depthBuffer' }]
221
+ }], _disableNormalPass: [{
222
+ type: Input,
223
+ args: [{ alias: 'disableNormalPass' }]
224
+ }], _stencilBuffer: [{
225
+ type: Input,
226
+ args: [{ alias: 'stencilBuffer' }]
227
+ }], _autoClear: [{
228
+ type: Input,
229
+ args: [{ alias: 'autoClear' }]
230
+ }], _resolutionScale: [{
231
+ type: Input,
232
+ args: [{ alias: 'resolutionScale' }]
233
+ }], _multisampling: [{
234
+ type: Input,
235
+ args: [{ alias: 'multisampling' }]
236
+ }], _frameBufferType: [{
237
+ type: Input,
238
+ args: [{ alias: 'frameBufferType' }]
239
+ }], _renderPriority: [{
240
+ type: Input,
241
+ args: [{ alias: 'renderPriority' }]
242
+ }], _camera: [{
243
+ type: Input,
244
+ args: [{ alias: 'camera' }]
245
+ }], _scene: [{
246
+ type: Input,
247
+ args: [{ alias: 'scene' }]
248
+ }] } });
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxFQUNOLGNBQWMsRUFDZCxVQUFVLEVBQ1YsVUFBVSxFQUNWLElBQUksRUFDSixVQUFVLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFakQsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQWdCbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsRUFBRSw0QkFBNEIsQ0FBQyxHQUFHLG9CQUFvQixDQUM5RixDQUFDLFFBQTRCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQzlDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQy9ELENBQUM7QUFhRixNQUFNLE9BQU8sa0JBQWtC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QjtzQkFBeEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRTtnQkFJSyxlQUFlO3NCQUF0RCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO2dCQUlGLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUlLLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q29tcG9uZW50LFxuXHRJbmplY3Rvcixcblx0SW5wdXQsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGZvcndhcmRSZWYsXG5cdGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0Tmd0UmVmLCBpbmplY3ROZ3RTdG9yZSwgc2lnbmFsU3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNyZWF0ZUluamVjdGlvblRva2VuIH0gZnJvbSAnbmd4dGVuc2lvbi9jcmVhdGUtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7XG5cdERlcHRoRG93bnNhbXBsaW5nUGFzcyxcblx0RWZmZWN0LFxuXHRFZmZlY3RDb21wb3Nlcixcblx0RWZmZWN0UGFzcyxcblx0Tm9ybWFsUGFzcyxcblx0UGFzcyxcblx0UmVuZGVyUGFzcyxcbn0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgR3JvdXAgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBpc1dlYkdMMkF2YWlsYWJsZSB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4dGVuZCh7IEdyb3VwIH0pO1xuXG5leHBvcnQgdHlwZSBOZ3RwRWZmZWN0Q29tcG9zZXJTdGF0ZSA9IHtcblx0ZW5hYmxlZDogYm9vbGVhbjtcblx0ZGVwdGhCdWZmZXI/OiBib29sZWFuO1xuXHRkaXNhYmxlTm9ybWFsUGFzcz86IGJvb2xlYW47XG5cdHN0ZW5jaWxCdWZmZXI/OiBib29sZWFuO1xuXHRhdXRvQ2xlYXI6IGJvb2xlYW47XG5cdHJlc29sdXRpb25TY2FsZT86IG51bWJlcjtcblx0bXVsdGlzYW1wbGluZzogbnVtYmVyO1xuXHRmcmFtZUJ1ZmZlclR5cGU6IFRIUkVFLlRleHR1cmVEYXRhVHlwZTtcblx0cmVuZGVyUHJpb3JpdHk6IG51bWJlcjtcblx0Y2FtZXJhPzogVEhSRUUuQ2FtZXJhO1xuXHRzY2VuZT86IFRIUkVFLlNjZW5lO1xufTtcblxuZXhwb3J0IGNvbnN0IFtpbmplY3ROZ3RwRWZmZWN0Q29tcG9zZXJBcGksIHByb3ZpZGVOZ3RwRWZmZWN0Q29tcG9zZXJBcGldID0gY3JlYXRlSW5qZWN0aW9uVG9rZW4oXG5cdChjb21wb3NlcjogTmd0cEVmZmVjdENvbXBvc2VyKSA9PiBjb21wb3Nlci5hcGksXG5cdHsgaXNSb290OiBmYWxzZSwgZGVwczogW2ZvcndhcmRSZWYoKCkgPT4gTmd0cEVmZmVjdENvbXBvc2VyKV0gfSxcbik7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZWZmZWN0LWNvbXBvc2VyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwIFtyZWZdPVwiY29tcG9zZXJSZWZcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVOZ3RwRWZmZWN0Q29tcG9zZXJBcGkoKV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdENvbXBvc2VyIHtcblx0cHJpdmF0ZSBpbnB1dHMgPSBzaWduYWxTdG9yZTxOZ3RwRWZmZWN0Q29tcG9zZXJTdGF0ZT4oe1xuXHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0cmVuZGVyUHJpb3JpdHk6IDEsXG5cdFx0YXV0b0NsZWFyOiB0cnVlLFxuXHRcdG11bHRpc2FtcGxpbmc6IDgsXG5cdFx0ZnJhbWVCdWZmZXJUeXBlOiBUSFJFRS5IYWxmRmxvYXRUeXBlLFxuXHR9KTtcblxuXHRASW5wdXQoKSBjb21wb3NlclJlZiA9IGluamVjdE5ndFJlZjxHcm91cD4oKTtcblxuXHRASW5wdXQoeyBhbGlhczogJ2VuYWJsZWQnIH0pIHNldCBfZW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZW5hYmxlZCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZGVwdGhCdWZmZXInIH0pIHNldCBfZGVwdGhCdWZmZXIoZGVwdGhCdWZmZXI6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkZXB0aEJ1ZmZlciB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZGlzYWJsZU5vcm1hbFBhc3MnIH0pIHNldCBfZGlzYWJsZU5vcm1hbFBhc3MoZGlzYWJsZU5vcm1hbFBhc3M6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkaXNhYmxlTm9ybWFsUGFzcyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc3RlbmNpbEJ1ZmZlcicgfSkgc2V0IF9zdGVuY2lsQnVmZmVyKHN0ZW5jaWxCdWZmZXI6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzdGVuY2lsQnVmZmVyIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdhdXRvQ2xlYXInIH0pIHNldCBfYXV0b0NsZWFyKGF1dG9DbGVhcjogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGF1dG9DbGVhciB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAncmVzb2x1dGlvblNjYWxlJyB9KSBzZXQgX3Jlc29sdXRpb25TY2FsZShyZXNvbHV0aW9uU2NhbGU6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHJlc29sdXRpb25TY2FsZSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnbXVsdGlzYW1wbGluZycgfSkgc2V0IF9tdWx0aXNhbXBsaW5nKG11bHRpc2FtcGxpbmc6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IG11bHRpc2FtcGxpbmcgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2ZyYW1lQnVmZmVyVHlwZScgfSkgc2V0IF9mcmFtZUJ1ZmZlclR5cGUoZnJhbWVCdWZmZXJUeXBlOiBUSFJFRS5UZXh0dXJlRGF0YVR5cGUpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmcmFtZUJ1ZmZlclR5cGUgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3JlbmRlclByaW9yaXR5JyB9KSBzZXQgX3JlbmRlclByaW9yaXR5KHJlbmRlclByaW9yaXR5OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyByZW5kZXJQcmlvcml0eSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnY2FtZXJhJyB9KSBzZXQgX2NhbWVyYShjYW1lcmE6IFRIUkVFLkNhbWVyYSkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGNhbWVyYSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc2NlbmUnIH0pIHNldCBfc2NlbmUoc2NlbmU6IFRIUkVFLlNjZW5lKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgc2NlbmUgfSk7XG5cdH1cblxuXHRwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBnbCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcpO1xuXHRwcml2YXRlIGRlZmF1bHRTY2VuZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdzY2VuZScpO1xuXHRwcml2YXRlIGRlZmF1bHRDYW1lcmEgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG5cdHByaXZhdGUgc2l6ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdzaXplJyk7XG5cblx0cHJpdmF0ZSBkZXB0aEJ1ZmZlciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGVwdGhCdWZmZXInKTtcblx0cHJpdmF0ZSBzdGVuY2lsQnVmZmVyID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzdGVuY2lsQnVmZmVyJyk7XG5cdHByaXZhdGUgbXVsdGlzYW1wbGluZyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnbXVsdGlzYW1wbGluZycpO1xuXHRwcml2YXRlIGZyYW1lQnVmZmVyVHlwZSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZnJhbWVCdWZmZXJUeXBlJyk7XG5cdHByaXZhdGUgc2NlbmUgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgY2FtZXJhID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdjYW1lcmEnKTtcblx0cHJpdmF0ZSBkaXNhYmxlTm9ybWFsUGFzcyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGlzYWJsZU5vcm1hbFBhc3MnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uU2NhbGUgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3Jlc29sdXRpb25TY2FsZScpO1xuXHRwcml2YXRlIGF1dG9DbGVhciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYXV0b0NsZWFyJyk7XG5cblx0cHJpdmF0ZSBhY3RpdmVTY2VuZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2NlbmUoKSB8fCB0aGlzLmRlZmF1bHRTY2VuZSgpKTtcblx0cHJpdmF0ZSBhY3RpdmVDYW1lcmEgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNhbWVyYSgpIHx8IHRoaXMuZGVmYXVsdENhbWVyYSgpKTtcblxuXHRwcml2YXRlIGNvbXBvc2VyRW50aXRpZXMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3Qgd2ViR0wyQXZhaWxhYmxlID0gaXNXZWJHTDJBdmFpbGFibGUoKTtcblx0XHRjb25zdCBbXG5cdFx0XHRnbCxcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmcsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGRpc2FibGVOb3JtYWxQYXNzLFxuXHRcdFx0cmVzb2x1dGlvblNjYWxlLFxuXHRcdF0gPSBbXG5cdFx0XHR0aGlzLmdsKCksXG5cdFx0XHR0aGlzLmRlcHRoQnVmZmVyKCksXG5cdFx0XHR0aGlzLnN0ZW5jaWxCdWZmZXIoKSxcblx0XHRcdHRoaXMubXVsdGlzYW1wbGluZygpLFxuXHRcdFx0dGhpcy5mcmFtZUJ1ZmZlclR5cGUoKSxcblx0XHRcdHRoaXMuYWN0aXZlU2NlbmUoKSxcblx0XHRcdHRoaXMuYWN0aXZlQ2FtZXJhKCksXG5cdFx0XHR0aGlzLmRpc2FibGVOb3JtYWxQYXNzKCksXG5cdFx0XHR0aGlzLnJlc29sdXRpb25TY2FsZSgpLFxuXHRcdF07XG5cblx0XHQvLyBJbml0aWFsaXplIGNvbXBvc2VyXG5cdFx0Y29uc3QgZWZmZWN0Q29tcG9zZXIgPSBuZXcgRWZmZWN0Q29tcG9zZXIoZ2wsIHtcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmc6IG11bHRpc2FtcGxpbmcgPiAwICYmIHdlYkdMMkF2YWlsYWJsZSA/IG11bHRpc2FtcGxpbmcgOiAwLFxuXHRcdFx0ZnJhbWVCdWZmZXJUeXBlLFxuXHRcdH0pO1xuXG5cdFx0Ly8gQWRkIHJlbmRlciBwYXNzXG5cdFx0ZWZmZWN0Q29tcG9zZXIuYWRkUGFzcyhuZXcgUmVuZGVyUGFzcyhzY2VuZSwgY2FtZXJhKSk7XG5cblx0XHQvLyBDcmVhdGUgbm9ybWFsIHBhc3Ncblx0XHRsZXQgZG93blNhbXBsaW5nUGFzcyA9IG51bGw7XG5cdFx0bGV0IG5vcm1hbFBhc3MgPSBudWxsO1xuXHRcdGlmICghZGlzYWJsZU5vcm1hbFBhc3MpIHtcblx0XHRcdG5vcm1hbFBhc3MgPSBuZXcgTm9ybWFsUGFzcyhzY2VuZSwgY2FtZXJhKTtcblx0XHRcdG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0ZWZmZWN0Q29tcG9zZXIuYWRkUGFzcyhub3JtYWxQYXNzKTtcblx0XHRcdGlmIChyZXNvbHV0aW9uU2NhbGUgIT09IHVuZGVmaW5lZCAmJiB3ZWJHTDJBdmFpbGFibGUpIHtcblx0XHRcdFx0ZG93blNhbXBsaW5nUGFzcyA9IG5ldyBEZXB0aERvd25zYW1wbGluZ1Bhc3MoeyBub3JtYWxCdWZmZXI6IG5vcm1hbFBhc3MudGV4dHVyZSwgcmVzb2x1dGlvblNjYWxlIH0pO1xuXHRcdFx0XHRkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0ZWZmZWN0Q29tcG9zZXIuYWRkUGFzcyhkb3duU2FtcGxpbmdQYXNzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBlZmZlY3RDb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9O1xuXHR9KTtcblxuXHRwcml2YXRlIGNvbXBvc2VyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb21wb3NlckVudGl0aWVzKCkuZWZmZWN0Q29tcG9zZXIpO1xuXG5cdGFwaSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbeyBlZmZlY3RDb21wb3NlcjogY29tcG9zZXIsIG5vcm1hbFBhc3MsIGRvd25TYW1wbGluZ1Bhc3MgfSwgcmVzb2x1dGlvblNjYWxlLCBjYW1lcmEsIHNjZW5lXSA9IFtcblx0XHRcdHRoaXMuY29tcG9zZXJFbnRpdGllcygpLFxuXHRcdFx0dGhpcy5yZXNvbHV0aW9uU2NhbGUoKSxcblx0XHRcdHRoaXMuYWN0aXZlQ2FtZXJhKCksXG5cdFx0XHR0aGlzLmFjdGl2ZVNjZW5lKCksXG5cdFx0XTtcblx0XHRyZXR1cm4geyBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcywgcmVzb2x1dGlvblNjYWxlLCBjYW1lcmEsIHNjZW5lIH07XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuc2V0Q29tcG9zZXJTaXplKCk7XG5cdFx0dGhpcy51cGRhdGVQYXNzZXMoKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuYmVmb3JlUmVuZGVyKCk7XG5cdH1cblxuXHRwcml2YXRlIHNldENvbXBvc2VyU2l6ZSgpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2NvbXBvc2VyLCBzaXplXSA9IFt0aGlzLmNvbXBvc2VyKCksIHRoaXMuc2l6ZSgpXTtcblx0XHRcdGNvbXBvc2VyLnNldFNpemUoc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSB1cGRhdGVQYXNzZXMoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFt7IGVmZmVjdENvbXBvc2VyOiBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9LCBpbnN0YW5jZSwgY2hpbGRyZW4sIGNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMuY29tcG9zZXJFbnRpdGllcygpLFxuXHRcdFx0XHR0aGlzLmNvbXBvc2VyUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuY29tcG9zZXJSZWYuY2hpbGRyZW4oJ25vbk9iamVjdHMnKSgpLFxuXHRcdFx0XHR0aGlzLmFjdGl2ZUNhbWVyYSgpLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgcGFzc2VzOiBQYXNzW10gPSBbXTtcblxuXHRcdFx0aWYgKGluc3RhbmNlICYmIGNvbXBvc2VyICYmIGNoaWxkcmVuLmxlbmd0aCkge1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0Y29uc3QgY2hpbGQgPSBjaGlsZHJlbltpXTtcblx0XHRcdFx0XHRpZiAoY2hpbGQgaW5zdGFuY2VvZiBFZmZlY3QpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGVmZmVjdHM6IEVmZmVjdFtdID0gW107XG5cblx0XHRcdFx0XHRcdHdoaWxlIChjaGlsZHJlbltpXSBpbnN0YW5jZW9mIEVmZmVjdCkgZWZmZWN0cy5wdXNoKGNoaWxkcmVuW2krK10gYXMgRWZmZWN0KTtcblx0XHRcdFx0XHRcdGktLTtcblxuXHRcdFx0XHRcdFx0Y29uc3QgcGFzcyA9IG5ldyBFZmZlY3RQYXNzKGNhbWVyYSwgLi4uZWZmZWN0cyk7XG5cdFx0XHRcdFx0XHRwYXNzZXMucHVzaChwYXNzKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNoaWxkIGluc3RhbmNlb2YgUGFzcykge1xuXHRcdFx0XHRcdFx0cGFzc2VzLnB1c2goY2hpbGQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZvciAoY29uc3QgcGFzcyBvZiBwYXNzZXMpIGNvbXBvc2VyLmFkZFBhc3MocGFzcyk7XG5cdFx0XHRcdGlmIChub3JtYWxQYXNzKSBub3JtYWxQYXNzLmVuYWJsZWQgPSB0cnVlO1xuXHRcdFx0XHRpZiAoZG93blNhbXBsaW5nUGFzcykgZG93blNhbXBsaW5nUGFzcy5lbmFibGVkID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Zm9yIChjb25zdCBwYXNzIG9mIHBhc3NlcykgY29tcG9zZXI/LnJlbW92ZVBhc3MocGFzcyk7XG5cdFx0XHRcdGlmIChub3JtYWxQYXNzKSBub3JtYWxQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0aWYgKGRvd25TYW1wbGluZ1Bhc3MpIGRvd25TYW1wbGluZ1Bhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGJlZm9yZVJlbmRlcigpIHtcblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoXG5cdFx0XHQoeyBkZWx0YSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtlbmFibGVkLCBnbCwgYXV0b0NsZWFyLCBzdGVuY2lsQnVmZmVyLCBjb21wb3Nlcl0gPSBbXG5cdFx0XHRcdFx0dGhpcy5pbnB1dHMuZ2V0KCdlbmFibGVkJyksXG5cdFx0XHRcdFx0dGhpcy5nbCgpLFxuXHRcdFx0XHRcdHRoaXMuYXV0b0NsZWFyKCksXG5cdFx0XHRcdFx0dGhpcy5zdGVuY2lsQnVmZmVyKCksXG5cdFx0XHRcdFx0dGhpcy5jb21wb3NlcigpLFxuXHRcdFx0XHRdO1xuXHRcdFx0XHRpZiAoZW5hYmxlZCkge1xuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRBdXRvQ2xlYXIgPSBnbC5hdXRvQ2xlYXI7XG5cdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gYXV0b0NsZWFyO1xuXHRcdFx0XHRcdGlmIChzdGVuY2lsQnVmZmVyICYmICFhdXRvQ2xlYXIpIGdsLmNsZWFyU3RlbmNpbCgpO1xuXHRcdFx0XHRcdGNvbXBvc2VyLnJlbmRlcihkZWx0YSk7XG5cdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gY3VycmVudEF1dG9DbGVhcjtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0aW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG5cdFx0XHRcdHByaW9yaXR5OiB0aGlzLmlucHV0cy5nZXQoJ2VuYWJsZWQnKSA/IHRoaXMuaW5wdXRzLmdldCgncmVuZGVyUHJpb3JpdHknKSA6IDAsXG5cdFx0XHR9LFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { Directive, Input, computed, effect } from '@angular/core';
2
+ import { getLocalState, injectNgtRef, injectNgtStore, is, signalStore } from 'angular-three';
3
+ import { BlendFunction, Effect } from 'postprocessing';
4
+ import * as i0 from "@angular/core";
5
+ export class NgtpEffect {
6
+ set _blendFunction(blendFunction) {
7
+ this.inputs.set({ blendFunction });
8
+ }
9
+ set _opacity(opacity) {
10
+ this.inputs.set({ opacity });
11
+ }
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;
44
+ });
45
+ this.setBlendMode();
46
+ }
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;
57
+ effect.blendMode.blendFunction =
58
+ !blendFunction && blendFunction !== 0 ? this.defaultBlendFunction : blendFunction;
59
+ if (opacity !== undefined)
60
+ effect.blendMode.opacity.value = opacity;
61
+ invalidate();
62
+ });
63
+ }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtpEffect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
65
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: NgtpEffect, inputs: { effectRef: "effectRef", _blendFunction: ["blendFunction", "_blendFunction"], _opacity: ["opacity", "_opacity"] }, ngImport: i0 }); }
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtpEffect, decorators: [{
68
+ type: Directive
69
+ }], ctorParameters: function () { return []; }, propDecorators: { effectRef: [{
70
+ type: Input
71
+ }], _blendFunction: [{
72
+ type: Input,
73
+ args: [{ alias: 'blendFunction' }]
74
+ }], _opacity: [{
75
+ type: Input,
76
+ args: [{ alias: 'opacity' }]
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVF2RCxNQUFNLE9BQWdCLFVBQVU7SUFLL0IsSUFBdUMsY0FBYyxDQUFDLGFBQTRCO1FBQ2pGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBaUMsUUFBUSxDQUFDLE9BQWU7UUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUF3Q0Q7UUFsREEsV0FBTSxHQUFHLFdBQVcsRUFBbUIsQ0FBQztRQUUvQixjQUFTLEdBQUcsWUFBWSxFQUFXLENBQUM7UUFVbkMseUJBQW9CLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUM1QyxlQUFVLEdBQXlCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUV0RCxrQkFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BELFlBQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5QixVQUFLLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDekIsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENB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bnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0TG9jYWxTdGF0ZSwgaW5qZWN0Tmd0UmVmLCBpbmplY3ROZ3RTdG9yZSwgaXMsIHNpZ25hbFN0b3JlLCB0eXBlIE5ndEFueVJlY29yZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuXG5leHBvcnQgdHlwZSBOZ3RwRWZmZWN0U3RhdGUgPSB7XG5cdGJsZW5kRnVuY3Rpb24/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.3", ngImport: i0, type: NgtpBloom, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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.3", 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.3", ngImport: i0, type: NgtpBrightnessContrast, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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.3", 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.3", ngImport: i0, type: NgtpColorDepth, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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.3", 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.3", ngImport: i0, type: NgtpDepth, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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.3", 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.3", ngImport: i0, type: NgtpDotScreen, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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.3", 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.3", ngImport: i0, type: NgtpHueSaturation, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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.3", 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