angular-three-postprocessing 2.0.0-beta.3 → 2.0.0-beta.300

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 (121) hide show
  1. package/README.md +56 -4
  2. package/esm2022/index.mjs +4 -3
  3. package/esm2022/lib/effect-composer.mjs +188 -0
  4. package/esm2022/lib/effect.mjs +50 -0
  5. package/esm2022/lib/effects/ascii.mjs +120 -0
  6. package/esm2022/lib/effects/bloom.mjs +39 -0
  7. package/esm2022/lib/effects/brightness-contrast.mjs +38 -0
  8. package/esm2022/lib/effects/chromatic-abberation.mjs +38 -0
  9. package/esm2022/lib/effects/color-average.mjs +33 -0
  10. package/esm2022/lib/effects/color-depth.mjs +38 -0
  11. package/esm2022/lib/effects/depth-of-field.mjs +56 -0
  12. package/esm2022/lib/effects/depth.mjs +38 -0
  13. package/esm2022/lib/effects/dot-screen.mjs +38 -0
  14. package/esm2022/lib/effects/fxaa.mjs +38 -0
  15. package/esm2022/lib/effects/glitch.mjs +63 -0
  16. package/esm2022/lib/effects/god-rays.mjs +41 -0
  17. package/esm2022/lib/effects/grid.mjs +42 -0
  18. package/esm2022/lib/effects/hue-saturation.mjs +38 -0
  19. package/esm2022/lib/effects/index.mjs +28 -0
  20. package/esm2022/lib/effects/lens-flare.mjs +195 -0
  21. package/esm2022/lib/effects/lut.mjs +50 -0
  22. package/esm2022/lib/effects/noise.mjs +39 -0
  23. package/esm2022/lib/effects/outline.mjs +143 -0
  24. package/esm2022/lib/effects/pixelation.mjs +30 -0
  25. package/esm2022/lib/effects/scanline.mjs +43 -0
  26. package/esm2022/lib/effects/sepia.mjs +38 -0
  27. package/esm2022/lib/effects/shock-wave.mjs +38 -0
  28. package/esm2022/lib/effects/smaa.mjs +38 -0
  29. package/esm2022/lib/effects/tilt-shift-2.mjs +121 -0
  30. package/esm2022/lib/effects/tilt-shift.mjs +39 -0
  31. package/esm2022/lib/effects/vignette.mjs +38 -0
  32. package/esm2022/lib/effects/water.mjs +64 -0
  33. package/fesm2022/angular-three-postprocessing.mjs +1557 -266
  34. package/fesm2022/angular-three-postprocessing.mjs.map +1 -1
  35. package/index.d.ts +3 -2
  36. package/lib/effect-composer.d.ts +48 -0
  37. package/lib/effect.d.ts +56 -0
  38. package/lib/effects/ascii.d.ts +23 -0
  39. package/lib/effects/bloom.d.ts +10 -0
  40. package/lib/effects/brightness-contrast.d.ts +15 -0
  41. package/lib/effects/chromatic-abberation.d.ts +16 -0
  42. package/lib/effects/color-average.d.ts +11 -0
  43. package/lib/effects/color-depth.d.ts +14 -0
  44. package/lib/effects/depth-of-field.d.ts +22 -0
  45. package/lib/effects/depth.d.ts +14 -0
  46. package/lib/effects/dot-screen.d.ts +15 -0
  47. package/lib/effects/fxaa.d.ts +13 -0
  48. package/lib/effects/glitch.d.ts +29 -0
  49. package/lib/effects/god-rays.d.ts +30 -0
  50. package/lib/effects/grid.d.ts +18 -0
  51. package/lib/effects/hue-saturation.d.ts +15 -0
  52. package/lib/effects/index.d.ts +27 -0
  53. package/lib/effects/lens-flare.d.ts +96 -0
  54. package/lib/effects/lut.d.ts +19 -0
  55. package/lib/effects/noise.d.ts +14 -0
  56. package/lib/effects/outline.d.ts +74 -0
  57. package/lib/effects/pixelation.d.ts +16 -0
  58. package/lib/effects/scanline.d.ts +17 -0
  59. package/lib/effects/sepia.d.ts +14 -0
  60. package/lib/effects/shock-wave.d.ts +11 -0
  61. package/lib/effects/smaa.d.ts +15 -0
  62. package/lib/effects/tilt-shift-2.d.ts +35 -0
  63. package/lib/effects/tilt-shift.d.ts +22 -0
  64. package/lib/effects/vignette.d.ts +17 -0
  65. package/lib/effects/water.d.ts +20 -0
  66. package/package.json +13 -19
  67. package/effect-composer.d.ts +0 -53
  68. package/effect.d.ts +0 -24
  69. package/effects/README.md +0 -3
  70. package/effects/bloom/bloom.d.ts +0 -8
  71. package/effects/brightness-contrast/brightness-contrast.d.ts +0 -7
  72. package/effects/color-depth/color-depth.d.ts +0 -7
  73. package/effects/depth/depth.d.ts +0 -7
  74. package/effects/dot-screen/dot-screen.d.ts +0 -7
  75. package/effects/hue-saturation/hue-saturation.d.ts +0 -7
  76. package/effects/index.d.ts +0 -16
  77. package/effects/lut/lut.d.ts +0 -19
  78. package/effects/noise/noise.d.ts +0 -8
  79. package/effects/scanline/scanline.d.ts +0 -8
  80. package/effects/sepia/sepia.d.ts +0 -7
  81. package/effects/shock-wave/shock-wave.d.ts +0 -7
  82. package/effects/smaa/smaa.d.ts +0 -7
  83. package/effects/ssao/ssao.d.ts +0 -38
  84. package/effects/tilt-shift/tilt-shift.d.ts +0 -8
  85. package/effects/tone-mapping/tone-mapping.d.ts +0 -7
  86. package/effects/vignette/vignette.d.ts +0 -7
  87. package/esm2022/effect-composer.mjs +0 -242
  88. package/esm2022/effect.mjs +0 -79
  89. package/esm2022/effects/angular-three-postprocessing-effects.mjs +0 -5
  90. package/esm2022/effects/bloom/bloom.mjs +0 -34
  91. package/esm2022/effects/brightness-contrast/brightness-contrast.mjs +0 -30
  92. package/esm2022/effects/color-depth/color-depth.mjs +0 -30
  93. package/esm2022/effects/depth/depth.mjs +0 -30
  94. package/esm2022/effects/dot-screen/dot-screen.mjs +0 -30
  95. package/esm2022/effects/hue-saturation/hue-saturation.mjs +0 -30
  96. package/esm2022/effects/index.mjs +0 -17
  97. package/esm2022/effects/lut/lut.mjs +0 -77
  98. package/esm2022/effects/noise/noise.mjs +0 -34
  99. package/esm2022/effects/scanline/scanline.mjs +0 -34
  100. package/esm2022/effects/sepia/sepia.mjs +0 -30
  101. package/esm2022/effects/shock-wave/shock-wave.mjs +0 -30
  102. package/esm2022/effects/smaa/smaa.mjs +0 -30
  103. package/esm2022/effects/ssao/ssao.mjs +0 -189
  104. package/esm2022/effects/tilt-shift/tilt-shift.mjs +0 -34
  105. package/esm2022/effects/tone-mapping/tone-mapping.mjs +0 -30
  106. package/esm2022/effects/vignette/vignette.mjs +0 -30
  107. package/fesm2022/angular-three-postprocessing-effects.mjs +0 -619
  108. package/fesm2022/angular-three-postprocessing-effects.mjs.map +0 -1
  109. package/plugin/README.md +0 -11
  110. package/plugin/generators.json +0 -19
  111. package/plugin/package.json +0 -9
  112. package/plugin/src/generators/init/compat.d.ts +0 -2
  113. package/plugin/src/generators/init/compat.js +0 -6
  114. package/plugin/src/generators/init/compat.js.map +0 -1
  115. package/plugin/src/generators/init/init.d.ts +0 -4
  116. package/plugin/src/generators/init/init.js +0 -22
  117. package/plugin/src/generators/init/init.js.map +0 -1
  118. package/plugin/src/generators/init/schema.json +0 -6
  119. package/plugin/src/index.d.ts +0 -1
  120. package/plugin/src/index.js +0 -6
  121. package/plugin/src/index.js.map +0 -1
@@ -0,0 +1,33 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { mergeInputs } from 'ngxtension/inject-inputs';
4
+ import { BlendFunction, ColorAverageEffect } from 'postprocessing';
5
+ import * as i0 from "@angular/core";
6
+ extend({ ColorAverageEffect });
7
+ export class NgtpColorAverage {
8
+ constructor() {
9
+ this.options = input({ blendFunction: BlendFunction.NORMAL }, { transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) });
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpColorAverage, isStandalone: true, selector: "ngtp-color-average", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
13
+ <ngt-color-average-effect *args="[options().blendFunction]">
14
+ <ng-content />
15
+ </ngt-color-average-effect>
16
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpColorAverage, decorators: [{
19
+ type: Component,
20
+ args: [{
21
+ selector: 'ngtp-color-average',
22
+ standalone: true,
23
+ template: `
24
+ <ngt-color-average-effect *args="[options().blendFunction]">
25
+ <ng-content />
26
+ </ngt-color-average-effect>
27
+ `,
28
+ imports: [NgtArgs],
29
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
30
+ changeDetection: ChangeDetectionStrategy.OnPush,
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYXZlcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2NvbG9yLWF2ZXJhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbkUsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0FBYy9CLE1BQU0sT0FBTyxnQkFBZ0I7SUFaN0I7UUFhQyxZQUFPLEdBQUcsS0FBSyxDQUNkLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsRUFDdkMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQ25FLENBQUM7S0FDRjs4R0FMWSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix3TkFUbEI7Ozs7RUFJVCw0REFDUyxPQUFPOzsyRkFJTCxnQkFBZ0I7a0JBWjVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIENvbG9yQXZlcmFnZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcblxuZXh0ZW5kKHsgQ29sb3JBdmVyYWdlRWZmZWN0IH0pO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNvbG9yLWF2ZXJhZ2UnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtY29sb3ItYXZlcmFnZS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpLmJsZW5kRnVuY3Rpb25dXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNvbG9yLWF2ZXJhZ2UtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckF2ZXJhZ2Uge1xuXHRvcHRpb25zID0gaW5wdXQoXG5cdFx0eyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9LFxuXHRcdHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uTk9STUFMIH0pIH0sXG5cdCk7XG59XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { ColorDepthEffect } from 'postprocessing';
4
+ import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../effect";
7
+ extend({ ColorDepthEffect });
8
+ export class NgtpColorDepth {
9
+ constructor() {
10
+ this.effect = inject(NgtpEffect, { host: true });
11
+ this.options = input({});
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpColorDepth, isStandalone: true, selector: "ngtp-color-depth", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
15
+ <ngt-color-depth-effect *args="[options()]" [camera]="effect.camera()">
16
+ <ngtp-effect-blend-mode />
17
+ <ng-content />
18
+ </ngt-color-depth-effect>
19
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpColorDepth, decorators: [{
22
+ type: Component,
23
+ args: [{
24
+ selector: 'ngtp-color-depth',
25
+ template: `
26
+ <ngt-color-depth-effect *args="[options()]" [camera]="effect.camera()">
27
+ <ngtp-effect-blend-mode />
28
+ <ng-content />
29
+ </ngt-color-depth-effect>
30
+ `,
31
+ standalone: true,
32
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ imports: [NgtArgs, NgtpEffectBlendMode],
35
+ hostDirectives: [NgtpEffectHostDirective],
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jb2xvci1kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXJGLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQWtCN0IsTUFBTSxPQUFPLGNBQWM7SUFkM0I7UUFlQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsQ0FBQyxDQUFDO0tBQ3RFOzhHQUhZLGNBQWM7a0dBQWQsY0FBYyx3VUFaaEI7Ozs7O0VBS1QsNERBSVMsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQixjQUFjO2tCQWQxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ29sb3JEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgQ29sb3JEZXB0aEVmZmVjdCB9KTtcblxuZXhwb3J0IHR5cGUgQ29sb3JEZXB0aEVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQ29sb3JEZXB0aEVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1jb2xvci1kZXB0aCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1jb2xvci1kZXB0aC1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1jb2xvci1kZXB0aC1lZmZlY3Q+XG5cdGAsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckRlcHRoIHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Q29sb3JEZXB0aEVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xufVxuIl19
@@ -0,0 +1,56 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, inject, input, } from '@angular/core';
2
+ import { NgtArgs } from 'angular-three';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import { DepthOfFieldEffect, MaskFunction } from 'postprocessing';
5
+ import { Vector3 } from 'three';
6
+ import { NgtpEffectComposer } from '../effect-composer';
7
+ import * as i0 from "@angular/core";
8
+ export class NgtpDepthOfField {
9
+ constructor() {
10
+ this.autoEffect = injectAutoEffect();
11
+ this.effectComposer = inject(NgtpEffectComposer);
12
+ this.options = input({});
13
+ this.autoFocus = computed(() => this.options().target != null);
14
+ this.effect = computed(() => {
15
+ const [camera, options, autoFocus] = [this.effectComposer.camera(), this.options(), this.autoFocus()];
16
+ const effect = new DepthOfFieldEffect(camera, options);
17
+ // Creating a target enables autofocus, R3F will set via props
18
+ if (autoFocus)
19
+ effect.target = new Vector3();
20
+ // Depth texture for depth picking with optional packing strategy
21
+ if (options.depthTexture) {
22
+ effect.setDepthTexture(options.depthTexture.texture, options.depthTexture.packing);
23
+ }
24
+ // Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur
25
+ const maskPass = effect['maskPass'];
26
+ maskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;
27
+ return effect;
28
+ });
29
+ afterNextRender(() => {
30
+ this.autoEffect(() => {
31
+ const effect = this.effect();
32
+ return () => {
33
+ effect.dispose();
34
+ };
35
+ });
36
+ });
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpDepthOfField, isStandalone: true, selector: "ngtp-depth-of-field", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
40
+ <ngt-primitive *args="[effect()]" />
41
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpDepthOfField, decorators: [{
44
+ type: Component,
45
+ args: [{
46
+ selector: 'ngtp-depth-of-field',
47
+ standalone: true,
48
+ template: `
49
+ <ngt-primitive *args="[effect()]" />
50
+ `,
51
+ imports: [NgtArgs],
52
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
53
+ changeDetection: ChangeDetectionStrategy.OnPush,
54
+ }]
55
+ }], ctorParameters: () => [] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGgtb2YtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC1vZi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsT0FBTyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQW1DLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFleEQsTUFBTSxPQUFPLGdCQUFnQjtJQTBCNUI7UUF6QlEsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVwRCxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQWdCLENBQUMsQ0FBQztRQUUxQixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUM7UUFFbEUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUV0RyxNQUFNLE1BQU0sR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV2RCw4REFBOEQ7WUFDOUQsSUFBSSxTQUFTO2dCQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QyxpRUFBaUU7WUFDakUsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFpQyxDQUFDLENBQUM7WUFDOUcsQ0FBQztZQUNELDJHQUEyRztZQUMzRyxNQUFNLFFBQVEsR0FBSSxNQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RELFFBQVEsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLHNCQUFzQixDQUFDO1lBRTVELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7UUFHRixlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sR0FBRyxFQUFFO29CQUNYLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbkNXLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHlOQVBsQjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxnQkFBZ0I7a0JBVjVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbmplY3QsXG5cdGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCwgTmd0QXJncywgTmd0VmVjdG9yMyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgRGVwdGhPZkZpZWxkRWZmZWN0LCBNYXNrRnVuY3Rpb24gfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBEZXB0aFBhY2tpbmdTdHJhdGVnaWVzLCBUZXh0dXJlLCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxudHlwZSBET0ZPcHRpb25zID0gTm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEZXB0aE9mRmllbGRFZmZlY3Q+WzFdPiAmXG5cdFBhcnRpYWw8eyB0YXJnZXQ6IE5ndFZlY3RvcjM7IGRlcHRoVGV4dHVyZTogeyB0ZXh0dXJlOiBUZXh0dXJlOyBwYWNraW5nOiBEZXB0aFBhY2tpbmdTdHJhdGVnaWVzIH0gfT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZGVwdGgtb2YtZmllbGQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoT2ZGaWVsZCB7XG5cdHByaXZhdGUgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0cHJpdmF0ZSBlZmZlY3RDb21wb3NlciA9IGluamVjdChOZ3RwRWZmZWN0Q29tcG9zZXIpO1xuXG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBET0ZPcHRpb25zKTtcblxuXHRwcml2YXRlIGF1dG9Gb2N1cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLnRhcmdldCAhPSBudWxsKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW2NhbWVyYSwgb3B0aW9ucywgYXV0b0ZvY3VzXSA9IFt0aGlzLmVmZmVjdENvbXBvc2VyLmNhbWVyYSgpLCB0aGlzLm9wdGlvbnMoKSwgdGhpcy5hdXRvRm9jdXMoKV07XG5cblx0XHRjb25zdCBlZmZlY3QgPSBuZXcgRGVwdGhPZkZpZWxkRWZmZWN0KGNhbWVyYSwgb3B0aW9ucyk7XG5cblx0XHQvLyBDcmVhdGluZyBhIHRhcmdldCBlbmFibGVzIGF1dG9mb2N1cywgUjNGIHdpbGwgc2V0IHZpYSBwcm9wc1xuXHRcdGlmIChhdXRvRm9jdXMpIGVmZmVjdC50YXJnZXQgPSBuZXcgVmVjdG9yMygpO1xuXHRcdC8vIERlcHRoIHRleHR1cmUgZm9yIGRlcHRoIHBpY2tpbmcgd2l0aCBvcHRpb25hbCBwYWNraW5nIHN0cmF0ZWd5XG5cdFx0aWYgKG9wdGlvbnMuZGVwdGhUZXh0dXJlKSB7XG5cdFx0XHRlZmZlY3Quc2V0RGVwdGhUZXh0dXJlKG9wdGlvbnMuZGVwdGhUZXh0dXJlLnRleHR1cmUsIG9wdGlvbnMuZGVwdGhUZXh0dXJlLnBhY2tpbmcgYXMgRGVwdGhQYWNraW5nU3RyYXRlZ2llcyk7XG5cdFx0fVxuXHRcdC8vIFRlbXBvcmFyeSBmaXggdGhhdCByZXN0b3JlcyBET0YgNi4yMS4zIGJlaGF2aW9yLCBldmVyeXRoaW5nIHNpbmNlIHRoZW4gbGV0cyBzaGFwZXMgbGVhayB0aHJvdWdoIHRoZSBibHVyXG5cdFx0Y29uc3QgbWFza1Bhc3MgPSAoZWZmZWN0IGFzIE5ndEFueVJlY29yZClbJ21hc2tQYXNzJ107XG5cdFx0bWFza1Bhc3MubWFza0Z1bmN0aW9uID0gTWFza0Z1bmN0aW9uLk1VTFRJUExZX1JHQl9TRVRfQUxQSEE7XG5cblx0XHRyZXR1cm4gZWZmZWN0O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0XHRlZmZlY3QuZGlzcG9zZSgpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { DepthEffect } from 'postprocessing';
4
+ import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../effect";
7
+ extend({ DepthEffect });
8
+ export class NgtpDepth {
9
+ constructor() {
10
+ this.effect = inject(NgtpEffect, { host: true });
11
+ this.options = input({});
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpDepth, isStandalone: true, selector: "ngtp-depth", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
15
+ <ngt-depth-effect *args="[options()]" [camera]="effect.camera()">
16
+ <ngtp-effect-blend-mode />
17
+ <ng-content />
18
+ </ngt-depth-effect>
19
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpDepth, decorators: [{
22
+ type: Component,
23
+ args: [{
24
+ selector: 'ngtp-depth',
25
+ template: `
26
+ <ngt-depth-effect *args="[options()]" [camera]="effect.camera()">
27
+ <ngtp-effect-blend-mode />
28
+ <ng-content />
29
+ </ngt-depth-effect>
30
+ `,
31
+ standalone: true,
32
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ imports: [NgtArgs, NgtpEffectBlendMode],
35
+ hostDirectives: [NgtpEffectHostDirective],
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUVyRixNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBa0J4QixNQUFNLE9BQU8sU0FBUztJQWR0QjtRQWVDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxDQUFDLENBQUM7S0FDakU7OEdBSFksU0FBUztrR0FBVCxTQUFTLGtVQVpYOzs7OztFQUtULDREQUlTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsU0FBUztrQkFkckIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgRGVwdGhFZmZlY3QgfSk7XG5cbmV4cG9ydCB0eXBlIERlcHRoRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEZXB0aEVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1kZXB0aCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1kZXB0aC1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1kZXB0aC1lZmZlY3Q+XG5cdGAsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBEZXB0aCB7XG5cdGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PERlcHRoRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG59XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { DotScreenEffect } from 'postprocessing';
4
+ import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../effect";
7
+ extend({ DotScreenEffect });
8
+ export class NgtpDotScreen {
9
+ constructor() {
10
+ this.effect = inject(NgtpEffect, { host: true });
11
+ this.options = input({});
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpDotScreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpDotScreen, isStandalone: true, selector: "ngtp-dot-screen", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
15
+ <ngt-dot-screen-effect *args="[options()]" [camera]="effect.camera()">
16
+ <ngtp-effect-blend-mode />
17
+ <ng-content />
18
+ </ngt-dot-screen-effect>
19
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpDotScreen, decorators: [{
22
+ type: Component,
23
+ args: [{
24
+ selector: 'ngtp-dot-screen',
25
+ template: `
26
+ <ngt-dot-screen-effect *args="[options()]" [camera]="effect.camera()">
27
+ <ngtp-effect-blend-mode />
28
+ <ng-content />
29
+ </ngt-dot-screen-effect>
30
+ `,
31
+ standalone: true,
32
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ imports: [NgtArgs, NgtpEffectBlendMode],
35
+ hostDirectives: [NgtpEffectHostDirective],
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2RvdC1zY3JlZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFckYsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQWtCNUIsTUFBTSxPQUFPLGFBQWE7SUFkMUI7UUFlQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBbUQsQ0FBQyxDQUFDO0tBQ3JFOzhHQUhZLGFBQWE7a0dBQWIsYUFBYSx1VUFaZjs7Ozs7RUFLVCw0REFJUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLGFBQWE7a0JBZHpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEb3RTY3JlZW5FZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlLCBOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZSB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4dGVuZCh7IERvdFNjcmVlbkVmZmVjdCB9KTtcblxuZXhwb3J0IHR5cGUgRG90U2NyZWVuRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEb3RTY3JlZW5FZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZG90LXNjcmVlbicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1kb3Qtc2NyZWVuLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWRvdC1zY3JlZW4tZWZmZWN0PlxuXHRgLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbTmd0cEVmZmVjdEhvc3REaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwRG90U2NyZWVuIHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8RG90U2NyZWVuRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG59XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { FXAAEffect } from 'postprocessing';
4
+ import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../effect";
7
+ extend({ FXAAEffect });
8
+ export class NgtpFXAA {
9
+ constructor() {
10
+ this.effect = inject(NgtpEffect, { host: true });
11
+ this.options = input({});
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpFXAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpFXAA, isStandalone: true, selector: "ngtp-fxaa", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
15
+ <ngt-fXAA-effect *args="[options()]" [camera]="effect.camera()">
16
+ <ngtp-effect-blend-mode />
17
+ <ng-content />
18
+ </ngt-fXAA-effect>
19
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpFXAA, decorators: [{
22
+ type: Component,
23
+ args: [{
24
+ selector: 'ngtp-fxaa',
25
+ template: `
26
+ <ngt-fXAA-effect *args="[options()]" [camera]="effect.camera()">
27
+ <ngtp-effect-blend-mode />
28
+ <ng-content />
29
+ </ngt-fXAA-effect>
30
+ `,
31
+ standalone: true,
32
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ imports: [NgtArgs, NgtpEffectBlendMode],
35
+ hostDirectives: [NgtpEffectHostDirective],
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnhhYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2Z4YWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFckYsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQWtCdkIsTUFBTSxPQUFPLFFBQVE7SUFkckI7UUFlQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBOEMsQ0FBQyxDQUFDO0tBQ2hFOzhHQUhZLFFBQVE7a0dBQVIsUUFBUSxpVUFaVjs7Ozs7RUFLVCw0REFJUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLFFBQVE7a0JBZHBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgRlhBQUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgRlhBQUVmZmVjdCB9KTtcblxuZXhwb3J0IHR5cGUgRlhBQUVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRlhBQUVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1meGFhJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWZYQUEtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZlhBQS1lZmZlY3Q+XG5cdGAsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBGWEFBIHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8RlhBQUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xufVxuIl19
@@ -0,0 +1,63 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, input, } from '@angular/core';
2
+ import { NgtArgs, injectStore, pick, vector2 } from 'angular-three';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import { mergeInputs } from 'ngxtension/inject-inputs';
5
+ import { GlitchEffect, GlitchMode } from 'postprocessing';
6
+ import * as i0 from "@angular/core";
7
+ export class NgtpGlitch {
8
+ constructor() {
9
+ this.autoEffect = injectAutoEffect();
10
+ this.store = injectStore();
11
+ this.invalidate = this.store.select('invalidate');
12
+ this.options = input({ active: true }, { transform: mergeInputs({ active: true }) });
13
+ this.active = pick(this.options, 'active');
14
+ this.mode = pick(this.options, 'mode');
15
+ this.delay = vector2(this.options, 'delay');
16
+ this.duration = vector2(this.options, 'duration');
17
+ this.chromaticAberrationOffset = vector2(this.options, 'chromaticAberrationOffset');
18
+ this.strength = vector2(this.options, 'strength');
19
+ this.effect = computed(() => {
20
+ const [{ ratio, dtSize, columns, blendFunction, perturbationMap }, delay, duration, chromaticAberrationOffset, strength,] = [this.options(), this.delay(), this.duration(), this.chromaticAberrationOffset(), this.strength()];
21
+ return new GlitchEffect({
22
+ ratio,
23
+ dtSize,
24
+ columns,
25
+ blendFunction,
26
+ perturbationMap,
27
+ delay,
28
+ duration,
29
+ chromaticAberrationOffset,
30
+ strength,
31
+ });
32
+ });
33
+ afterNextRender(() => {
34
+ this.autoEffect(() => {
35
+ const effect = this.effect();
36
+ return () => effect.dispose();
37
+ });
38
+ this.autoEffect(() => {
39
+ const [effect, invalidate, mode, active] = [this.effect(), this.invalidate(), this.mode(), this.active()];
40
+ effect.mode = active ? mode || GlitchMode.SPORADIC : GlitchMode.DISABLED;
41
+ invalidate();
42
+ });
43
+ });
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpGlitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpGlitch, isStandalone: true, selector: "ngtp-glitch", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
47
+ <ngt-primitive *args="[effect()]" />
48
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpGlitch, decorators: [{
51
+ type: Component,
52
+ args: [{
53
+ selector: 'ngtp-glitch',
54
+ standalone: true,
55
+ template: `
56
+ <ngt-primitive *args="[effect()]" />
57
+ `,
58
+ imports: [NgtArgs],
59
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
60
+ changeDetection: ChangeDetectionStrategy.OnPush,
61
+ }]
62
+ }], ctorParameters: () => [] });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvZ2xpdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsUUFBUSxFQUNSLEtBQUssR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFjLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQXNCMUQsTUFBTSxPQUFPLFVBQVU7SUFvQ3RCO1FBbkNRLGVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hDLFVBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckQsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQW1CLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpGLFdBQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN0QyxTQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbEMsVUFBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3Qyw4QkFBeUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBQy9FLGFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVyRCxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QixNQUFNLENBQ0wsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLEVBQzFELEtBQUssRUFDTCxRQUFRLEVBQ1IseUJBQXlCLEVBQ3pCLFFBQVEsRUFDUixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdkcsT0FBTyxJQUFJLFlBQVksQ0FBQztnQkFDdkIsS0FBSztnQkFDTCxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2dCQUNmLEtBQUs7Z0JBQ0wsUUFBUTtnQkFDUix5QkFBeUI7Z0JBQ3pCLFFBQVE7YUFDUixDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUdGLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQzFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDekUsVUFBVSxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FqRFcsVUFBVTtrR0FBVixVQUFVLGlOQVBaOztFQUVULDREQUNTLE9BQU87OzJGQUlMLFVBQVU7a0JBVnRCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0VmVjdG9yMiwgaW5qZWN0U3RvcmUsIHBpY2ssIHZlY3RvcjIgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEdsaXRjaEVmZmVjdCwgR2xpdGNoTW9kZSB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcblxuZXhwb3J0IHR5cGUgR2xpdGNoT3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgR2xpdGNoRWZmZWN0PlswXT4gJlxuXHRQYXJ0aWFsPHtcblx0XHRtb2RlOiBHbGl0Y2hNb2RlO1xuXHRcdGFjdGl2ZTogYm9vbGVhbjtcblx0XHRkZWxheTogTmd0VmVjdG9yMjtcblx0XHRkdXJhdGlvbjogTmd0VmVjdG9yMjtcblx0XHRjaHJvbWF0aWNBYmVycmF0aW9uT2Zmc2V0OiBOZ3RWZWN0b3IyO1xuXHRcdHN0cmVuZ3RoOiBOZ3RWZWN0b3IyO1xuXHR9PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1nbGl0Y2gnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEdsaXRjaCB7XG5cdHByaXZhdGUgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG5cblx0b3B0aW9ucyA9IGlucHV0KHsgYWN0aXZlOiB0cnVlIH0gYXMgR2xpdGNoT3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKHsgYWN0aXZlOiB0cnVlIH0pIH0pO1xuXG5cdHByaXZhdGUgYWN0aXZlID0gcGljayh0aGlzLm9wdGlvbnMsICdhY3RpdmUnKTtcblx0cHJpdmF0ZSBtb2RlID0gcGljayh0aGlzLm9wdGlvbnMsICdtb2RlJyk7XG5cblx0cHJpdmF0ZSBkZWxheSA9IHZlY3RvcjIodGhpcy5vcHRpb25zLCAnZGVsYXknKTtcblx0cHJpdmF0ZSBkdXJhdGlvbiA9IHZlY3RvcjIodGhpcy5vcHRpb25zLCAnZHVyYXRpb24nKTtcblx0cHJpdmF0ZSBjaHJvbWF0aWNBYmVycmF0aW9uT2Zmc2V0ID0gdmVjdG9yMih0aGlzLm9wdGlvbnMsICdjaHJvbWF0aWNBYmVycmF0aW9uT2Zmc2V0Jyk7XG5cdHByaXZhdGUgc3RyZW5ndGggPSB2ZWN0b3IyKHRoaXMub3B0aW9ucywgJ3N0cmVuZ3RoJyk7XG5cblx0ZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtcblx0XHRcdHsgcmF0aW8sIGR0U2l6ZSwgY29sdW1ucywgYmxlbmRGdW5jdGlvbiwgcGVydHVyYmF0aW9uTWFwIH0sXG5cdFx0XHRkZWxheSxcblx0XHRcdGR1cmF0aW9uLFxuXHRcdFx0Y2hyb21hdGljQWJlcnJhdGlvbk9mZnNldCxcblx0XHRcdHN0cmVuZ3RoLFxuXHRcdF0gPSBbdGhpcy5vcHRpb25zKCksIHRoaXMuZGVsYXkoKSwgdGhpcy5kdXJhdGlvbigpLCB0aGlzLmNocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQoKSwgdGhpcy5zdHJlbmd0aCgpXTtcblx0XHRyZXR1cm4gbmV3IEdsaXRjaEVmZmVjdCh7XG5cdFx0XHRyYXRpbyxcblx0XHRcdGR0U2l6ZSxcblx0XHRcdGNvbHVtbnMsXG5cdFx0XHRibGVuZEZ1bmN0aW9uLFxuXHRcdFx0cGVydHVyYmF0aW9uTWFwLFxuXHRcdFx0ZGVsYXksXG5cdFx0XHRkdXJhdGlvbixcblx0XHRcdGNocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQsXG5cdFx0XHRzdHJlbmd0aCxcblx0XHR9KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRcdHJldHVybiAoKSA9PiBlZmZlY3QuZGlzcG9zZSgpO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGUsIG1vZGUsIGFjdGl2ZV0gPSBbdGhpcy5lZmZlY3QoKSwgdGhpcy5pbnZhbGlkYXRlKCksIHRoaXMubW9kZSgpLCB0aGlzLmFjdGl2ZSgpXTtcblx0XHRcdFx0ZWZmZWN0Lm1vZGUgPSBhY3RpdmUgPyBtb2RlIHx8IEdsaXRjaE1vZGUuU1BPUkFESUMgOiBHbGl0Y2hNb2RlLkRJU0FCTEVEO1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -0,0 +1,41 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, inject, input, } from '@angular/core';
2
+ import { NgtArgs, is } from 'angular-three';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import { GodRaysEffect } from 'postprocessing';
5
+ import { NgtpEffectComposer } from '../effect-composer';
6
+ import * as i0 from "@angular/core";
7
+ export class NgtpGodRays {
8
+ constructor() {
9
+ this.autoEffect = injectAutoEffect();
10
+ this.effectComposer = inject(NgtpEffectComposer);
11
+ this.options = input({});
12
+ this.effect = computed(() => {
13
+ const [camera, { sun, ...options }] = [this.effectComposer.camera(), this.options()];
14
+ return new GodRaysEffect(camera, is.ref(sun) ? sun.nativeElement : sun, options);
15
+ });
16
+ afterNextRender(() => {
17
+ this.autoEffect(() => {
18
+ const [sun, effect] = [this.options().sun, this.effect()];
19
+ effect.lightSource = is.ref(sun) ? sun.nativeElement : sun;
20
+ });
21
+ });
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpGodRays, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpGodRays, isStandalone: true, selector: "ngtp-god-rays", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
25
+ <ngt-primitive *args="[effect()]" />
26
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpGodRays, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'ngtp-god-rays',
32
+ standalone: true,
33
+ template: `
34
+ <ngt-primitive *args="[effect()]" />
35
+ `,
36
+ imports: [NgtArgs],
37
+ changeDetection: ChangeDetectionStrategy.OnPush,
38
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
39
+ }]
40
+ }], ctorParameters: () => [] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29kLXJheXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9nb2QtcmF5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFnQnhELE1BQU0sT0FBTyxXQUFXO0lBV3ZCO1FBVlEsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVwRCxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQW9CLENBQUMsQ0FBQztRQUV0QyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QixNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDckYsT0FBTyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxDQUFDO1FBR0YsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQWxCVyxXQUFXO2tHQUFYLFdBQVcsbU5BUGI7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsV0FBVztrQkFWdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbmplY3QsXG5cdGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGlzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBHb2RSYXlzRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTWVzaCwgUG9pbnRzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxudHlwZSBHb2RSYXlzT3B0aW9ucyA9IENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgR29kUmF5c0VmZmVjdD5bMl0gJiB7XG5cdHN1bjogTWVzaCB8IFBvaW50cyB8IEVsZW1lbnRSZWY8TWVzaCB8IFBvaW50cz47XG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWdvZC1yYXlzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBHb2RSYXlzIHtcblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIEdvZFJheXNPcHRpb25zKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW2NhbWVyYSwgeyBzdW4sIC4uLm9wdGlvbnMgfV0gPSBbdGhpcy5lZmZlY3RDb21wb3Nlci5jYW1lcmEoKSwgdGhpcy5vcHRpb25zKCldO1xuXHRcdHJldHVybiBuZXcgR29kUmF5c0VmZmVjdChjYW1lcmEsIGlzLnJlZihzdW4pID8gc3VuLm5hdGl2ZUVsZW1lbnQgOiBzdW4sIG9wdGlvbnMpO1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgW3N1biwgZWZmZWN0XSA9IFt0aGlzLm9wdGlvbnMoKS5zdW4sIHRoaXMuZWZmZWN0KCldO1xuXHRcdFx0XHRlZmZlY3QubGlnaHRTb3VyY2UgPSBpcy5yZWYoc3VuKSA/IHN1bi5uYXRpdmVFbGVtZW50IDogc3VuO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, input, } from '@angular/core';
2
+ import { NgtArgs, pick } from 'angular-three';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import { GridEffect } from 'postprocessing';
5
+ import * as i0 from "@angular/core";
6
+ export class NgtpGrid {
7
+ constructor() {
8
+ this.autoEffect = injectAutoEffect();
9
+ this.options = input({});
10
+ this.size = pick(this.options, 'size');
11
+ this.effect = computed(() => {
12
+ const { size: _, ...options } = this.options();
13
+ return new GridEffect(options);
14
+ });
15
+ afterNextRender(() => {
16
+ this.autoEffect(() => {
17
+ const [size, effect] = [this.size(), this.effect()];
18
+ if (size) {
19
+ effect.setSize(size.width, size.height);
20
+ }
21
+ });
22
+ });
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpGrid, isStandalone: true, selector: "ngtp-grid", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
26
+ <ngt-primitive *args="[effect()]" />
27
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpGrid, decorators: [{
30
+ type: Component,
31
+ args: [{
32
+ selector: 'ngtp-grid',
33
+ standalone: true,
34
+ template: `
35
+ <ngt-primitive *args="[effect()]" />
36
+ `,
37
+ imports: [NgtArgs],
38
+ changeDetection: ChangeDetectionStrategy.OnPush,
39
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
40
+ }]
41
+ }], ctorParameters: () => [] });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2dyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixRQUFRLEVBQ1IsS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFlNUMsTUFBTSxPQUFPLFFBQVE7SUFXcEI7UUFWUSxlQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QyxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQWlCLENBQUMsQ0FBQztRQUMzQixTQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFMUMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0MsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUdGLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ3BELElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekMsQ0FBQztZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQXBCVyxRQUFRO2tHQUFSLFFBQVEsK01BUFY7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsUUFBUTtrQkFWcEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBwaWNrIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBHcmlkRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuXG50eXBlIEdyaWRPcHRpb25zID0gTm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBHcmlkRWZmZWN0PlswXT4gJlxuXHRQYXJ0aWFsPHsgc2l6ZTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IH0+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWdyaWQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEdyaWQge1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIEdyaWRPcHRpb25zKTtcblx0cHJpdmF0ZSBzaXplID0gcGljayh0aGlzLm9wdGlvbnMsICdzaXplJyk7XG5cblx0ZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHsgc2l6ZTogXywgLi4ub3B0aW9ucyB9ID0gdGhpcy5vcHRpb25zKCk7XG5cdFx0cmV0dXJuIG5ldyBHcmlkRWZmZWN0KG9wdGlvbnMpO1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgW3NpemUsIGVmZmVjdF0gPSBbdGhpcy5zaXplKCksIHRoaXMuZWZmZWN0KCldO1xuXHRcdFx0XHRpZiAoc2l6ZSkge1xuXHRcdFx0XHRcdGVmZmVjdC5zZXRTaXplKHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
2
+ import { NgtArgs, extend } from 'angular-three';
3
+ import { HueSaturationEffect } from 'postprocessing';
4
+ import { NgtpEffect, NgtpEffectBlendMode, NgtpEffectHostDirective } from '../effect';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../effect";
7
+ extend({ HueSaturationEffect });
8
+ export class NgtpHueSaturation {
9
+ constructor() {
10
+ this.effect = inject(NgtpEffect, { host: true });
11
+ this.options = input({});
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpHueSaturation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpHueSaturation, isStandalone: true, selector: "ngtp-hue-saturation", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: ["blendFunction", "blendFunction", "opacity", "opacity"] }], ngImport: i0, template: `
15
+ <ngt-hue-saturation-effect *args="[options()]" [camera]="effect.camera()">
16
+ <ngtp-effect-blend-mode />
17
+ <ng-content />
18
+ </ngt-hue-saturation-effect>
19
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }, { kind: "component", type: NgtpEffectBlendMode, selector: "ngtp-effect-blend-mode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpHueSaturation, decorators: [{
22
+ type: Component,
23
+ args: [{
24
+ selector: 'ngtp-hue-saturation',
25
+ template: `
26
+ <ngt-hue-saturation-effect *args="[options()]" [camera]="effect.camera()">
27
+ <ngtp-effect-blend-mode />
28
+ <ng-content />
29
+ </ngt-hue-saturation-effect>
30
+ `,
31
+ standalone: true,
32
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ imports: [NgtArgs, NgtpEffectBlendMode],
35
+ hostDirectives: [NgtpEffectHostDirective],
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVlLXNhdHVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9odWUtc2F0dXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXJGLE1BQU0sQ0FBQyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztBQWtCaEMsTUFBTSxPQUFPLGlCQUFpQjtJQWQ5QjtRQWVDLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUF1RCxDQUFDLENBQUM7S0FDekU7OEdBSFksaUJBQWlCO2tHQUFqQixpQkFBaUIsMlVBWm5COzs7OztFQUtULDREQUlTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsaUJBQWlCO2tCQWQ3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgSHVlU2F0dXJhdGlvbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIE5ndHBFZmZlY3RIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXh0ZW5kKHsgSHVlU2F0dXJhdGlvbkVmZmVjdCB9KTtcblxuZXhwb3J0IHR5cGUgSHVlU2F0dXJhdGlvbkVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgSHVlU2F0dXJhdGlvbkVmZmVjdD5bMF0+PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1odWUtc2F0dXJhdGlvbicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1odWUtc2F0dXJhdGlvbi1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1odWUtc2F0dXJhdGlvbi1lZmZlY3Q+XG5cdGAsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFtOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBIdWVTYXR1cmF0aW9uIHtcblx0ZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8SHVlU2F0dXJhdGlvbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xufVxuIl19
@@ -0,0 +1,28 @@
1
+ export * from './ascii';
2
+ export * from './bloom';
3
+ export * from './brightness-contrast';
4
+ export * from './chromatic-abberation';
5
+ export * from './color-average';
6
+ export * from './color-depth';
7
+ export * from './depth';
8
+ export * from './depth-of-field';
9
+ export * from './dot-screen';
10
+ export * from './fxaa';
11
+ export * from './glitch';
12
+ export * from './god-rays';
13
+ export * from './grid';
14
+ export * from './hue-saturation';
15
+ export * from './lens-flare';
16
+ export * from './lut';
17
+ export * from './noise';
18
+ export * from './outline';
19
+ export * from './pixelation';
20
+ export * from './scanline';
21
+ export * from './sepia';
22
+ export * from './shock-wave';
23
+ export * from './smaa';
24
+ export * from './tilt-shift';
25
+ export * from './tilt-shift-2';
26
+ export * from './vignette';
27
+ export * from './water';
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXNjaWknO1xuZXhwb3J0ICogZnJvbSAnLi9ibG9vbSc7XG5leHBvcnQgKiBmcm9tICcuL2JyaWdodG5lc3MtY29udHJhc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jaHJvbWF0aWMtYWJiZXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLWF2ZXJhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1kZXB0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RlcHRoJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwdGgtb2YtZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9kb3Qtc2NyZWVuJztcbmV4cG9ydCAqIGZyb20gJy4vZnhhYSc7XG5leHBvcnQgKiBmcm9tICcuL2dsaXRjaCc7XG5leHBvcnQgKiBmcm9tICcuL2dvZC1yYXlzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZCc7XG5leHBvcnQgKiBmcm9tICcuL2h1ZS1zYXR1cmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGVucy1mbGFyZSc7XG5leHBvcnQgKiBmcm9tICcuL2x1dCc7XG5leHBvcnQgKiBmcm9tICcuL25vaXNlJztcbmV4cG9ydCAqIGZyb20gJy4vb3V0bGluZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpeGVsYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zY2FubGluZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcGlhJztcbmV4cG9ydCAqIGZyb20gJy4vc2hvY2std2F2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NtYWEnO1xuZXhwb3J0ICogZnJvbSAnLi90aWx0LXNoaWZ0JztcbmV4cG9ydCAqIGZyb20gJy4vdGlsdC1zaGlmdC0yJztcbmV4cG9ydCAqIGZyb20gJy4vdmlnbmV0dGUnO1xuZXhwb3J0ICogZnJvbSAnLi93YXRlcic7XG4iXX0=