angular-three-postprocessing 2.0.0-beta.29 → 2.0.0-beta.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  import { CUSTOM_ELEMENTS_SCHEMA, Component, Injector, Input, computed, effect, forwardRef, inject, } from '@angular/core';
2
- import { createInjectionToken, extend, injectBeforeRender, injectNgtRef, injectNgtStore, signalStore, } from 'angular-three';
2
+ import { extend, injectBeforeRender, injectNgtRef, injectNgtStore, signalStore } from 'angular-three';
3
+ import { createInjectionToken } from 'ngxtension/create-injection-token';
3
4
  import { DepthDownsamplingPass, Effect, EffectComposer, EffectPass, NormalPass, Pass, RenderPass, } from 'postprocessing';
4
5
  import * as THREE from 'three';
5
6
  import { Group } from 'three';
@@ -245,4 +246,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
245
246
  type: Input,
246
247
  args: [{ alias: 'scene' }]
247
248
  }] } });
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ04sb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGNBQWMsRUFDZCxXQUFXLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNOLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sY0FBYyxFQUNkLFVBQVUsRUFDVixVQUFVLEVBQ1YsSUFBSSxFQUNKLFVBQVUsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUVqRCxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBZ0JsQixNQUFNLENBQUMsTUFBTSxDQUFDLDJCQUEyQixFQUFFLDRCQUE0QixDQUFDLEdBQUcsb0JBQW9CLENBQzlGLENBQUMsUUFBNEIsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFDOUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FDL0QsQ0FBQztBQWFGLE1BQU0sT0FBTyxrQkFBa0I7SUFXOUIsSUFBaUMsUUFBUSxDQUFDLE9BQWdCO1FB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QUFFLGlCQUFpQixFQUFFO2dCQUlLLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSUYsT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBSUssTUFBTTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDb21wb25lbnQsXG5cdEluamVjdG9yLFxuXHRJbnB1dCxcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0Zm9yd2FyZFJlZixcblx0aW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdGNyZWF0ZUluamVjdGlvblRva2VuLFxuXHRleHRlbmQsXG5cdGluamVjdEJlZm9yZVJlbmRlcixcblx0aW5qZWN0Tmd0UmVmLFxuXHRpbmplY3ROZ3RTdG9yZSxcblx0c2lnbmFsU3RvcmUsXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHtcblx0RGVwdGhEb3duc2FtcGxpbmdQYXNzLFxuXHRFZmZlY3QsXG5cdEVmZmVjdENvbXBvc2VyLFxuXHRFZmZlY3RQYXNzLFxuXHROb3JtYWxQYXNzLFxuXHRQYXNzLFxuXHRSZW5kZXJQYXNzLFxufSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGlzV2ViR0wyQXZhaWxhYmxlIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZXh0ZW5kKHsgR3JvdXAgfSk7XG5cbmV4cG9ydCB0eXBlIE5ndHBFZmZlY3RDb21wb3NlclN0YXRlID0ge1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHRkZXB0aEJ1ZmZlcj86IGJvb2xlYW47XG5cdGRpc2FibGVOb3JtYWxQYXNzPzogYm9vbGVhbjtcblx0c3RlbmNpbEJ1ZmZlcj86IGJvb2xlYW47XG5cdGF1dG9DbGVhcjogYm9vbGVhbjtcblx0cmVzb2x1dGlvblNjYWxlPzogbnVtYmVyO1xuXHRtdWx0aXNhbXBsaW5nOiBudW1iZXI7XG5cdGZyYW1lQnVmZmVyVHlwZTogVEhSRUUuVGV4dHVyZURhdGFUeXBlO1xuXHRyZW5kZXJQcmlvcml0eTogbnVtYmVyO1xuXHRjYW1lcmE/OiBUSFJFRS5DYW1lcmE7XG5cdHNjZW5lPzogVEhSRUUuU2NlbmU7XG59O1xuXG5leHBvcnQgY29uc3QgW2luamVjdE5ndHBFZmZlY3RDb21wb3NlckFwaSwgcHJvdmlkZU5ndHBFZmZlY3RDb21wb3NlckFwaV0gPSBjcmVhdGVJbmplY3Rpb25Ub2tlbihcblx0KGNvbXBvc2VyOiBOZ3RwRWZmZWN0Q29tcG9zZXIpID0+IGNvbXBvc2VyLmFwaSxcblx0eyBpc1Jvb3Q6IGZhbHNlLCBkZXBzOiBbZm9yd2FyZFJlZigoKSA9PiBOZ3RwRWZmZWN0Q29tcG9zZXIpXSB9LFxuKTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1lZmZlY3QtY29tcG9zZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgW3JlZl09XCJjb21wb3NlclJlZlwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZU5ndHBFZmZlY3RDb21wb3NlckFwaSgpXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwRWZmZWN0Q29tcG9zZXIge1xuXHRwcml2YXRlIGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHBFZmZlY3RDb21wb3NlclN0YXRlPih7XG5cdFx0ZW5hYmxlZDogdHJ1ZSxcblx0XHRyZW5kZXJQcmlvcml0eTogMSxcblx0XHRhdXRvQ2xlYXI6IHRydWUsXG5cdFx0bXVsdGlzYW1wbGluZzogOCxcblx0XHRmcmFtZUJ1ZmZlclR5cGU6IFRIUkVFLkhhbGZGbG9hdFR5cGUsXG5cdH0pO1xuXG5cdEBJbnB1dCgpIGNvbXBvc2VyUmVmID0gaW5qZWN0Tmd0UmVmPEdyb3VwPigpO1xuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZW5hYmxlZCcgfSkgc2V0IF9lbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBlbmFibGVkIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdkZXB0aEJ1ZmZlcicgfSkgc2V0IF9kZXB0aEJ1ZmZlcihkZXB0aEJ1ZmZlcjogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGRlcHRoQnVmZmVyIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdkaXNhYmxlTm9ybWFsUGFzcycgfSkgc2V0IF9kaXNhYmxlTm9ybWFsUGFzcyhkaXNhYmxlTm9ybWFsUGFzczogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGRpc2FibGVOb3JtYWxQYXNzIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzdGVuY2lsQnVmZmVyJyB9KSBzZXQgX3N0ZW5jaWxCdWZmZXIoc3RlbmNpbEJ1ZmZlcjogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHN0ZW5jaWxCdWZmZXIgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2F1dG9DbGVhcicgfSkgc2V0IF9hdXRvQ2xlYXIoYXV0b0NsZWFyOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgYXV0b0NsZWFyIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdyZXNvbHV0aW9uU2NhbGUnIH0pIHNldCBfcmVzb2x1dGlvblNjYWxlKHJlc29sdXRpb25TY2FsZTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgcmVzb2x1dGlvblNjYWxlIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdtdWx0aXNhbXBsaW5nJyB9KSBzZXQgX211bHRpc2FtcGxpbmcobXVsdGlzYW1wbGluZzogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgbXVsdGlzYW1wbGluZyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZnJhbWVCdWZmZXJUeXBlJyB9KSBzZXQgX2ZyYW1lQnVmZmVyVHlwZShmcmFtZUJ1ZmZlclR5cGU6IFRIUkVFLlRleHR1cmVEYXRhVHlwZSkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGZyYW1lQnVmZmVyVHlwZSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAncmVuZGVyUHJpb3JpdHknIH0pIHNldCBfcmVuZGVyUHJpb3JpdHkocmVuZGVyUHJpb3JpdHk6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHJlbmRlclByaW9yaXR5IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdjYW1lcmEnIH0pIHNldCBfY2FtZXJhKGNhbWVyYTogVEhSRUUuQ2FtZXJhKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgY2FtZXJhIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzY2VuZScgfSkgc2V0IF9zY2VuZShzY2VuZTogVEhSRUUuU2NlbmUpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzY2VuZSB9KTtcblx0fVxuXG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cdHByaXZhdGUgZGVmYXVsdFNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgZGVmYXVsdENhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblx0cHJpdmF0ZSBzaXplID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKTtcblxuXHRwcml2YXRlIGRlcHRoQnVmZmVyID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdkZXB0aEJ1ZmZlcicpO1xuXHRwcml2YXRlIHN0ZW5jaWxCdWZmZXIgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3N0ZW5jaWxCdWZmZXInKTtcblx0cHJpdmF0ZSBtdWx0aXNhbXBsaW5nID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdtdWx0aXNhbXBsaW5nJyk7XG5cdHByaXZhdGUgZnJhbWVCdWZmZXJUeXBlID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdmcmFtZUJ1ZmZlclR5cGUnKTtcblx0cHJpdmF0ZSBzY2VuZSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnc2NlbmUnKTtcblx0cHJpdmF0ZSBjYW1lcmEgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIGRpc2FibGVOb3JtYWxQYXNzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdkaXNhYmxlTm9ybWFsUGFzcycpO1xuXHRwcml2YXRlIHJlc29sdXRpb25TY2FsZSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgncmVzb2x1dGlvblNjYWxlJyk7XG5cdHByaXZhdGUgYXV0b0NsZWFyID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdhdXRvQ2xlYXInKTtcblxuXHRwcml2YXRlIGFjdGl2ZVNjZW5lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zY2VuZSgpIHx8IHRoaXMuZGVmYXVsdFNjZW5lKCkpO1xuXHRwcml2YXRlIGFjdGl2ZUNhbWVyYSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY2FtZXJhKCkgfHwgdGhpcy5kZWZhdWx0Q2FtZXJhKCkpO1xuXG5cdHByaXZhdGUgY29tcG9zZXJFbnRpdGllcyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB3ZWJHTDJBdmFpbGFibGUgPSBpc1dlYkdMMkF2YWlsYWJsZSgpO1xuXHRcdGNvbnN0IFtcblx0XHRcdGdsLFxuXHRcdFx0ZGVwdGhCdWZmZXIsXG5cdFx0XHRzdGVuY2lsQnVmZmVyLFxuXHRcdFx0bXVsdGlzYW1wbGluZyxcblx0XHRcdGZyYW1lQnVmZmVyVHlwZSxcblx0XHRcdHNjZW5lLFxuXHRcdFx0Y2FtZXJhLFxuXHRcdFx0ZGlzYWJsZU5vcm1hbFBhc3MsXG5cdFx0XHRyZXNvbHV0aW9uU2NhbGUsXG5cdFx0XSA9IFtcblx0XHRcdHRoaXMuZ2woKSxcblx0XHRcdHRoaXMuZGVwdGhCdWZmZXIoKSxcblx0XHRcdHRoaXMuc3RlbmNpbEJ1ZmZlcigpLFxuXHRcdFx0dGhpcy5tdWx0aXNhbXBsaW5nKCksXG5cdFx0XHR0aGlzLmZyYW1lQnVmZmVyVHlwZSgpLFxuXHRcdFx0dGhpcy5hY3RpdmVTY2VuZSgpLFxuXHRcdFx0dGhpcy5hY3RpdmVDYW1lcmEoKSxcblx0XHRcdHRoaXMuZGlzYWJsZU5vcm1hbFBhc3MoKSxcblx0XHRcdHRoaXMucmVzb2x1dGlvblNjYWxlKCksXG5cdFx0XTtcblxuXHRcdC8vIEluaXRpYWxpemUgY29tcG9zZXJcblx0XHRjb25zdCBlZmZlY3RDb21wb3NlciA9IG5ldyBFZmZlY3RDb21wb3NlcihnbCwge1xuXHRcdFx0ZGVwdGhCdWZmZXIsXG5cdFx0XHRzdGVuY2lsQnVmZmVyLFxuXHRcdFx0bXVsdGlzYW1wbGluZzogbXVsdGlzYW1wbGluZyA+IDAgJiYgd2ViR0wyQXZhaWxhYmxlID8gbXVsdGlzYW1wbGluZyA6IDAsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0fSk7XG5cblx0XHQvLyBBZGQgcmVuZGVyIHBhc3Ncblx0XHRlZmZlY3RDb21wb3Nlci5hZGRQYXNzKG5ldyBSZW5kZXJQYXNzKHNjZW5lLCBjYW1lcmEpKTtcblxuXHRcdC8vIENyZWF0ZSBub3JtYWwgcGFzc1xuXHRcdGxldCBkb3duU2FtcGxpbmdQYXNzID0gbnVsbDtcblx0XHRsZXQgbm9ybWFsUGFzcyA9IG51bGw7XG5cdFx0aWYgKCFkaXNhYmxlTm9ybWFsUGFzcykge1xuXHRcdFx0bm9ybWFsUGFzcyA9IG5ldyBOb3JtYWxQYXNzKHNjZW5lLCBjYW1lcmEpO1xuXHRcdFx0bm9ybWFsUGFzcy5lbmFibGVkID0gZmFsc2U7XG5cdFx0XHRlZmZlY3RDb21wb3Nlci5hZGRQYXNzKG5vcm1hbFBhc3MpO1xuXHRcdFx0aWYgKHJlc29sdXRpb25TY2FsZSAhPT0gdW5kZWZpbmVkICYmIHdlYkdMMkF2YWlsYWJsZSkge1xuXHRcdFx0XHRkb3duU2FtcGxpbmdQYXNzID0gbmV3IERlcHRoRG93bnNhbXBsaW5nUGFzcyh7IG5vcm1hbEJ1ZmZlcjogbm9ybWFsUGFzcy50ZXh0dXJlLCByZXNvbHV0aW9uU2NhbGUgfSk7XG5cdFx0XHRcdGRvd25TYW1wbGluZ1Bhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0XHRlZmZlY3RDb21wb3Nlci5hZGRQYXNzKGRvd25TYW1wbGluZ1Bhc3MpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB7IGVmZmVjdENvbXBvc2VyLCBub3JtYWxQYXNzLCBkb3duU2FtcGxpbmdQYXNzIH07XG5cdH0pO1xuXG5cdHByaXZhdGUgY29tcG9zZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbXBvc2VyRW50aXRpZXMoKS5lZmZlY3RDb21wb3Nlcik7XG5cblx0YXBpID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFt7IGVmZmVjdENvbXBvc2VyOiBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9LCByZXNvbHV0aW9uU2NhbGUsIGNhbWVyYSwgc2NlbmVdID0gW1xuXHRcdFx0dGhpcy5jb21wb3NlckVudGl0aWVzKCksXG5cdFx0XHR0aGlzLnJlc29sdXRpb25TY2FsZSgpLFxuXHRcdFx0dGhpcy5hY3RpdmVDYW1lcmEoKSxcblx0XHRcdHRoaXMuYWN0aXZlU2NlbmUoKSxcblx0XHRdO1xuXHRcdHJldHVybiB7IGNvbXBvc2VyLCBub3JtYWxQYXNzLCBkb3duU2FtcGxpbmdQYXNzLCByZXNvbHV0aW9uU2NhbGUsIGNhbWVyYSwgc2NlbmUgfTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5zZXRDb21wb3NlclNpemUoKTtcblx0XHR0aGlzLnVwZGF0ZVBhc3NlcygpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5iZWZvcmVSZW5kZXIoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0Q29tcG9zZXJTaXplKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbY29tcG9zZXIsIHNpemVdID0gW3RoaXMuY29tcG9zZXIoKSwgdGhpcy5zaXplKCldO1xuXHRcdFx0Y29tcG9zZXIuc2V0U2l6ZShzaXplLndpZHRoLCBzaXplLmhlaWdodCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZVBhc3NlcygpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW3sgZWZmZWN0Q29tcG9zZXI6IGNvbXBvc2VyLCBub3JtYWxQYXNzLCBkb3duU2FtcGxpbmdQYXNzIH0sIGluc3RhbmNlLCBjaGlsZHJlbiwgY2FtZXJhXSA9IFtcblx0XHRcdFx0dGhpcy5jb21wb3NlckVudGl0aWVzKCksXG5cdFx0XHRcdHRoaXMuY29tcG9zZXJSZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdFx0dGhpcy5jb21wb3NlclJlZi5jaGlsZHJlbignbm9uT2JqZWN0cycpKCksXG5cdFx0XHRcdHRoaXMuYWN0aXZlQ2FtZXJhKCksXG5cdFx0XHRdO1xuXG5cdFx0XHRjb25zdCBwYXNzZXM6IFBhc3NbXSA9IFtdO1xuXG5cdFx0XHRpZiAoaW5zdGFuY2UgJiYgY29tcG9zZXIgJiYgY2hpbGRyZW4ubGVuZ3RoKSB7XG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2ldO1xuXHRcdFx0XHRcdGlmIChjaGlsZCBpbnN0YW5jZW9mIEVmZmVjdCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgZWZmZWN0czogRWZmZWN0W10gPSBbXTtcblxuXHRcdFx0XHRcdFx0d2hpbGUgKGNoaWxkcmVuW2ldIGluc3RhbmNlb2YgRWZmZWN0KSBlZmZlY3RzLnB1c2goY2hpbGRyZW5baSsrXSBhcyBFZmZlY3QpO1xuXHRcdFx0XHRcdFx0aS0tO1xuXG5cdFx0XHRcdFx0XHRjb25zdCBwYXNzID0gbmV3IEVmZmVjdFBhc3MoY2FtZXJhLCAuLi5lZmZlY3RzKTtcblx0XHRcdFx0XHRcdHBhc3Nlcy5wdXNoKHBhc3MpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY2hpbGQgaW5zdGFuY2VvZiBQYXNzKSB7XG5cdFx0XHRcdFx0XHRwYXNzZXMucHVzaChjaGlsZCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Zm9yIChjb25zdCBwYXNzIG9mIHBhc3NlcykgY29tcG9zZXIuYWRkUGFzcyhwYXNzKTtcblx0XHRcdFx0aWYgKG5vcm1hbFBhc3MpIG5vcm1hbFBhc3MuZW5hYmxlZCA9IHRydWU7XG5cdFx0XHRcdGlmIChkb3duU2FtcGxpbmdQYXNzKSBkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRmb3IgKGNvbnN0IHBhc3Mgb2YgcGFzc2VzKSBjb21wb3Nlcj8ucmVtb3ZlUGFzcyhwYXNzKTtcblx0XHRcdFx0aWYgKG5vcm1hbFBhc3MpIG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0XHRpZiAoZG93blNhbXBsaW5nUGFzcykgZG93blNhbXBsaW5nUGFzcy5lbmFibGVkID0gZmFsc2U7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYmVmb3JlUmVuZGVyKCkge1xuXHRcdGluamVjdEJlZm9yZVJlbmRlcihcblx0XHRcdCh7IGRlbHRhIH0pID0+IHtcblx0XHRcdFx0Y29uc3QgW2VuYWJsZWQsIGdsLCBhdXRvQ2xlYXIsIHN0ZW5jaWxCdWZmZXIsIGNvbXBvc2VyXSA9IFtcblx0XHRcdFx0XHR0aGlzLmlucHV0cy5nZXQoJ2VuYWJsZWQnKSxcblx0XHRcdFx0XHR0aGlzLmdsKCksXG5cdFx0XHRcdFx0dGhpcy5hdXRvQ2xlYXIoKSxcblx0XHRcdFx0XHR0aGlzLnN0ZW5jaWxCdWZmZXIoKSxcblx0XHRcdFx0XHR0aGlzLmNvbXBvc2VyKCksXG5cdFx0XHRcdF07XG5cdFx0XHRcdGlmIChlbmFibGVkKSB7XG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudEF1dG9DbGVhciA9IGdsLmF1dG9DbGVhcjtcblx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBhdXRvQ2xlYXI7XG5cdFx0XHRcdFx0aWYgKHN0ZW5jaWxCdWZmZXIgJiYgIWF1dG9DbGVhcikgZ2wuY2xlYXJTdGVuY2lsKCk7XG5cdFx0XHRcdFx0Y29tcG9zZXIucmVuZGVyKGRlbHRhKTtcblx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBjdXJyZW50QXV0b0NsZWFyO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRpbmplY3RvcjogdGhpcy5pbmplY3Rvcixcblx0XHRcdFx0cHJpb3JpdHk6IHRoaXMuaW5wdXRzLmdldCgnZW5hYmxlZCcpID8gdGhpcy5pbnB1dHMuZ2V0KCdyZW5kZXJQcmlvcml0eScpIDogMCxcblx0XHRcdH0sXG5cdFx0KTtcblx0fVxufVxuIl19
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxFQUNOLGNBQWMsRUFDZCxVQUFVLEVBQ1YsVUFBVSxFQUNWLElBQUksRUFDSixVQUFVLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFakQsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQWdCbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsRUFBRSw0QkFBNEIsQ0FBQyxHQUFHLG9CQUFvQixDQUM5RixDQUFDLFFBQTRCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQzlDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQy9ELENBQUM7QUFhRixNQUFNLE9BQU8sa0JBQWtC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QjtzQkFBeEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRTtnQkFJSyxlQUFlO3NCQUF0RCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO2dCQUlGLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUlLLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q29tcG9uZW50LFxuXHRJbmplY3Rvcixcblx0SW5wdXQsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGZvcndhcmRSZWYsXG5cdGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0Tmd0UmVmLCBpbmplY3ROZ3RTdG9yZSwgc2lnbmFsU3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNyZWF0ZUluamVjdGlvblRva2VuIH0gZnJvbSAnbmd4dGVuc2lvbi9jcmVhdGUtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7XG5cdERlcHRoRG93bnNhbXBsaW5nUGFzcyxcblx0RWZmZWN0LFxuXHRFZmZlY3RDb21wb3Nlcixcblx0RWZmZWN0UGFzcyxcblx0Tm9ybWFsUGFzcyxcblx0UGFzcyxcblx0UmVuZGVyUGFzcyxcbn0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgR3JvdXAgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBpc1dlYkdMMkF2YWlsYWJsZSB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4dGVuZCh7IEdyb3VwIH0pO1xuXG5leHBvcnQgdHlwZSBOZ3RwRWZmZWN0Q29tcG9zZXJTdGF0ZSA9IHtcblx0ZW5hYmxlZDogYm9vbGVhbjtcblx0ZGVwdGhCdWZmZXI/OiBib29sZWFuO1xuXHRkaXNhYmxlTm9ybWFsUGFzcz86IGJvb2xlYW47XG5cdHN0ZW5jaWxCdWZmZXI/OiBib29sZWFuO1xuXHRhdXRvQ2xlYXI6IGJvb2xlYW47XG5cdHJlc29sdXRpb25TY2FsZT86IG51bWJlcjtcblx0bXVsdGlzYW1wbGluZzogbnVtYmVyO1xuXHRmcmFtZUJ1ZmZlclR5cGU6IFRIUkVFLlRleHR1cmVEYXRhVHlwZTtcblx0cmVuZGVyUHJpb3JpdHk6IG51bWJlcjtcblx0Y2FtZXJhPzogVEhSRUUuQ2FtZXJhO1xuXHRzY2VuZT86IFRIUkVFLlNjZW5lO1xufTtcblxuZXhwb3J0IGNvbnN0IFtpbmplY3ROZ3RwRWZmZWN0Q29tcG9zZXJBcGksIHByb3ZpZGVOZ3RwRWZmZWN0Q29tcG9zZXJBcGldID0gY3JlYXRlSW5qZWN0aW9uVG9rZW4oXG5cdChjb21wb3NlcjogTmd0cEVmZmVjdENvbXBvc2VyKSA9PiBjb21wb3Nlci5hcGksXG5cdHsgaXNSb290OiBmYWxzZSwgZGVwczogW2ZvcndhcmRSZWYoKCkgPT4gTmd0cEVmZmVjdENvbXBvc2VyKV0gfSxcbik7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZWZmZWN0LWNvbXBvc2VyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwIFtyZWZdPVwiY29tcG9zZXJSZWZcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVOZ3RwRWZmZWN0Q29tcG9zZXJBcGkoKV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdENvbXBvc2VyIHtcblx0cHJpdmF0ZSBpbnB1dHMgPSBzaWduYWxTdG9yZTxOZ3RwRWZmZWN0Q29tcG9zZXJTdGF0ZT4oe1xuXHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0cmVuZGVyUHJpb3JpdHk6IDEsXG5cdFx0YXV0b0NsZWFyOiB0cnVlLFxuXHRcdG11bHRpc2FtcGxpbmc6IDgsXG5cdFx0ZnJhbWVCdWZmZXJUeXBlOiBUSFJFRS5IYWxmRmxvYXRUeXBlLFxuXHR9KTtcblxuXHRASW5wdXQoKSBjb21wb3NlclJlZiA9IGluamVjdE5ndFJlZjxHcm91cD4oKTtcblxuXHRASW5wdXQoeyBhbGlhczogJ2VuYWJsZWQnIH0pIHNldCBfZW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZW5hYmxlZCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZGVwdGhCdWZmZXInIH0pIHNldCBfZGVwdGhCdWZmZXIoZGVwdGhCdWZmZXI6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkZXB0aEJ1ZmZlciB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZGlzYWJsZU5vcm1hbFBhc3MnIH0pIHNldCBfZGlzYWJsZU5vcm1hbFBhc3MoZGlzYWJsZU5vcm1hbFBhc3M6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkaXNhYmxlTm9ybWFsUGFzcyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc3RlbmNpbEJ1ZmZlcicgfSkgc2V0IF9zdGVuY2lsQnVmZmVyKHN0ZW5jaWxCdWZmZXI6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzdGVuY2lsQnVmZmVyIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdhdXRvQ2xlYXInIH0pIHNldCBfYXV0b0NsZWFyKGF1dG9DbGVhcjogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGF1dG9DbGVhciB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAncmVzb2x1dGlvblNjYWxlJyB9KSBzZXQgX3Jlc29sdXRpb25TY2FsZShyZXNvbHV0aW9uU2NhbGU6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHJlc29sdXRpb25TY2FsZSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnbXVsdGlzYW1wbGluZycgfSkgc2V0IF9tdWx0aXNhbXBsaW5nKG11bHRpc2FtcGxpbmc6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IG11bHRpc2FtcGxpbmcgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2ZyYW1lQnVmZmVyVHlwZScgfSkgc2V0IF9mcmFtZUJ1ZmZlclR5cGUoZnJhbWVCdWZmZXJUeXBlOiBUSFJFRS5UZXh0dXJlRGF0YVR5cGUpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmcmFtZUJ1ZmZlclR5cGUgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3JlbmRlclByaW9yaXR5JyB9KSBzZXQgX3JlbmRlclByaW9yaXR5KHJlbmRlclByaW9yaXR5OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyByZW5kZXJQcmlvcml0eSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnY2FtZXJhJyB9KSBzZXQgX2NhbWVyYShjYW1lcmE6IFRIUkVFLkNhbWVyYSkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGNhbWVyYSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc2NlbmUnIH0pIHNldCBfc2NlbmUoc2NlbmU6IFRIUkVFLlNjZW5lKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgc2NlbmUgfSk7XG5cdH1cblxuXHRwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBnbCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcpO1xuXHRwcml2YXRlIGRlZmF1bHRTY2VuZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdzY2VuZScpO1xuXHRwcml2YXRlIGRlZmF1bHRDYW1lcmEgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG5cdHByaXZhdGUgc2l6ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdzaXplJyk7XG5cblx0cHJpdmF0ZSBkZXB0aEJ1ZmZlciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGVwdGhCdWZmZXInKTtcblx0cHJpdmF0ZSBzdGVuY2lsQnVmZmVyID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzdGVuY2lsQnVmZmVyJyk7XG5cdHByaXZhdGUgbXVsdGlzYW1wbGluZyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnbXVsdGlzYW1wbGluZycpO1xuXHRwcml2YXRlIGZyYW1lQnVmZmVyVHlwZSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZnJhbWVCdWZmZXJUeXBlJyk7XG5cdHByaXZhdGUgc2NlbmUgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgY2FtZXJhID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdjYW1lcmEnKTtcblx0cHJpdmF0ZSBkaXNhYmxlTm9ybWFsUGFzcyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGlzYWJsZU5vcm1hbFBhc3MnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uU2NhbGUgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3Jlc29sdXRpb25TY2FsZScpO1xuXHRwcml2YXRlIGF1dG9DbGVhciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYXV0b0NsZWFyJyk7XG5cblx0cHJpdmF0ZSBhY3RpdmVTY2VuZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2NlbmUoKSB8fCB0aGlzLmRlZmF1bHRTY2VuZSgpKTtcblx0cHJpdmF0ZSBhY3RpdmVDYW1lcmEgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNhbWVyYSgpIHx8IHRoaXMuZGVmYXVsdENhbWVyYSgpKTtcblxuXHRwcml2YXRlIGNvbXBvc2VyRW50aXRpZXMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3Qgd2ViR0wyQXZhaWxhYmxlID0gaXNXZWJHTDJBdmFpbGFibGUoKTtcblx0XHRjb25zdCBbXG5cdFx0XHRnbCxcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmcsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGRpc2FibGVOb3JtYWxQYXNzLFxuXHRcdFx0cmVzb2x1dGlvblNjYWxlLFxuXHRcdF0gPSBbXG5cdFx0XHR0aGlzLmdsKCksXG5cdFx0XHR0aGlzLmRlcHRoQnVmZmVyKCksXG5cdFx0XHR0aGlzLnN0ZW5jaWxCdWZmZXIoKSxcblx0XHRcdHRoaXMubXVsdGlzYW1wbGluZygpLFxuXHRcdFx0dGhpcy5mcmFtZUJ1ZmZlclR5cGUoKSxcblx0XHRcdHRoaXMuYWN0aXZlU2NlbmUoKSxcblx0XHRcdHRoaXMuYWN0aXZlQ2FtZXJhKCksXG5cdFx0XHR0aGlzLmRpc2FibGVOb3JtYWxQYXNzKCksXG5cdFx0XHR0aGlzLnJlc29sdXRpb25TY2FsZSgpLFxuXHRcdF07XG5cblx0XHQvLyBJbml0aWFsaXplIGNvbXBvc2VyXG5cdFx0Y29uc3QgZWZmZWN0Q29tcG9zZXIgPSBuZXcgRWZmZWN0Q29tcG9zZXIoZ2wsIHtcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmc6IG11bHRpc2FtcGxpbmcgPiAwICYmIHdlYkdMMkF2YWlsYWJsZSA/IG11bHRpc2FtcGxpbmcgOiAwLFxuXHRcdFx0ZnJhbWVCdWZmZXJUeXBlLFxuXHRcdH0pO1xuXG5cdFx0Ly8gQWRkIHJlbmRlciBwYXNzXG5cdFx0ZWZmZWN0Q29tcG9zZXIuYWRkUGFzcyhuZXcgUmVuZGVyUGFzcyhzY2VuZSwgY2FtZXJhKSk7XG5cblx0XHQvLyBDcmVhdGUgbm9ybWFsIHBhc3Ncblx0XHRsZXQgZG93blNhbXBsaW5nUGFzcyA9IG51bGw7XG5cdFx0bGV0IG5vcm1hbFBhc3MgPSBudWxsO1xuXHRcdGlmICghZGlzYWJsZU5vcm1hbFBhc3MpIHtcblx0XHRcdG5vcm1hbFBhc3MgPSBuZXcgTm9ybWFsUGFzcyhzY2VuZSwgY2FtZXJhKTtcblx0XHRcdG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0ZWZmZWN0Q29tcG9zZXIuYWRkUGFzcyhub3JtYWxQYXNzKTtcblx0XHRcdGlmIChyZXNvbHV0aW9uU2NhbGUgIT09IHVuZGVmaW5lZCAmJiB3ZWJHTDJBdmFpbGFibGUpIHtcblx0XHRcdFx0ZG93blNhbXBsaW5nUGFzcyA9IG5ldyBEZXB0aERvd25zYW1wbGluZ1Bhc3MoeyBub3JtYWxCdWZmZXI6IG5vcm1hbFBhc3MudGV4dHVyZSwgcmVzb2x1dGlvblNjYWxlIH0pO1xuXHRcdFx0XHRkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0ZWZmZWN0Q29tcG9zZXIuYWRkUGFzcyhkb3duU2FtcGxpbmdQYXNzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBlZmZlY3RDb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9O1xuXHR9KTtcblxuXHRwcml2YXRlIGNvbXBvc2VyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb21wb3NlckVudGl0aWVzKCkuZWZmZWN0Q29tcG9zZXIpO1xuXG5cdGFwaSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbeyBlZmZlY3RDb21wb3NlcjogY29tcG9zZXIsIG5vcm1hbFBhc3MsIGRvd25TYW1wbGluZ1Bhc3MgfSwgcmVzb2x1dGlvblNjYWxlLCBjYW1lcmEsIHNjZW5lXSA9IFtcblx0XHRcdHRoaXMuY29tcG9zZXJFbnRpdGllcygpLFxuXHRcdFx0dGhpcy5yZXNvbHV0aW9uU2NhbGUoKSxcblx0XHRcdHRoaXMuYWN0aXZlQ2FtZXJhKCksXG5cdFx0XHR0aGlzLmFjdGl2ZVNjZW5lKCksXG5cdFx0XTtcblx0XHRyZXR1cm4geyBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcywgcmVzb2x1dGlvblNjYWxlLCBjYW1lcmEsIHNjZW5lIH07XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuc2V0Q29tcG9zZXJTaXplKCk7XG5cdFx0dGhpcy51cGRhdGVQYXNzZXMoKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuYmVmb3JlUmVuZGVyKCk7XG5cdH1cblxuXHRwcml2YXRlIHNldENvbXBvc2VyU2l6ZSgpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2NvbXBvc2VyLCBzaXplXSA9IFt0aGlzLmNvbXBvc2VyKCksIHRoaXMuc2l6ZSgpXTtcblx0XHRcdGNvbXBvc2VyLnNldFNpemUoc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSB1cGRhdGVQYXNzZXMoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFt7IGVmZmVjdENvbXBvc2VyOiBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9LCBpbnN0YW5jZSwgY2hpbGRyZW4sIGNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMuY29tcG9zZXJFbnRpdGllcygpLFxuXHRcdFx0XHR0aGlzLmNvbXBvc2VyUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuY29tcG9zZXJSZWYuY2hpbGRyZW4oJ25vbk9iamVjdHMnKSgpLFxuXHRcdFx0XHR0aGlzLmFjdGl2ZUNhbWVyYSgpLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgcGFzc2VzOiBQYXNzW10gPSBbXTtcblxuXHRcdFx0aWYgKGluc3RhbmNlICYmIGNvbXBvc2VyICYmIGNoaWxkcmVuLmxlbmd0aCkge1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0Y29uc3QgY2hpbGQgPSBjaGlsZHJlbltpXTtcblx0XHRcdFx0XHRpZiAoY2hpbGQgaW5zdGFuY2VvZiBFZmZlY3QpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGVmZmVjdHM6IEVmZmVjdFtdID0gW107XG5cblx0XHRcdFx0XHRcdHdoaWxlIChjaGlsZHJlbltpXSBpbnN0YW5jZW9mIEVmZmVjdCkgZWZmZWN0cy5wdXNoKGNoaWxkcmVuW2krK10gYXMgRWZmZWN0KTtcblx0XHRcdFx0XHRcdGktLTtcblxuXHRcdFx0XHRcdFx0Y29uc3QgcGFzcyA9IG5ldyBFZmZlY3RQYXNzKGNhbWVyYSwgLi4uZWZmZWN0cyk7XG5cdFx0XHRcdFx0XHRwYXNzZXMucHVzaChwYXNzKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNoaWxkIGluc3RhbmNlb2YgUGFzcykge1xuXHRcdFx0XHRcdFx0cGFzc2VzLnB1c2goY2hpbGQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZvciAoY29uc3QgcGFzcyBvZiBwYXNzZXMpIGNvbXBvc2VyLmFkZFBhc3MocGFzcyk7XG5cdFx0XHRcdGlmIChub3JtYWxQYXNzKSBub3JtYWxQYXNzLmVuYWJsZWQgPSB0cnVlO1xuXHRcdFx0XHRpZiAoZG93blNhbXBsaW5nUGFzcykgZG93blNhbXBsaW5nUGFzcy5lbmFibGVkID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Zm9yIChjb25zdCBwYXNzIG9mIHBhc3NlcykgY29tcG9zZXI/LnJlbW92ZVBhc3MocGFzcyk7XG5cdFx0XHRcdGlmIChub3JtYWxQYXNzKSBub3JtYWxQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0aWYgKGRvd25TYW1wbGluZ1Bhc3MpIGRvd25TYW1wbGluZ1Bhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGJlZm9yZVJlbmRlcigpIHtcblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoXG5cdFx0XHQoeyBkZWx0YSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtlbmFibGVkLCBnbCwgYXV0b0NsZWFyLCBzdGVuY2lsQnVmZmVyLCBjb21wb3Nlcl0gPSBbXG5cdFx0XHRcdFx0dGhpcy5pbnB1dHMuZ2V0KCdlbmFibGVkJyksXG5cdFx0XHRcdFx0dGhpcy5nbCgpLFxuXHRcdFx0XHRcdHRoaXMuYXV0b0NsZWFyKCksXG5cdFx0XHRcdFx0dGhpcy5zdGVuY2lsQnVmZmVyKCksXG5cdFx0XHRcdFx0dGhpcy5jb21wb3NlcigpLFxuXHRcdFx0XHRdO1xuXHRcdFx0XHRpZiAoZW5hYmxlZCkge1xuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRBdXRvQ2xlYXIgPSBnbC5hdXRvQ2xlYXI7XG5cdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gYXV0b0NsZWFyO1xuXHRcdFx0XHRcdGlmIChzdGVuY2lsQnVmZmVyICYmICFhdXRvQ2xlYXIpIGdsLmNsZWFyU3RlbmNpbCgpO1xuXHRcdFx0XHRcdGNvbXBvc2VyLnJlbmRlcihkZWx0YSk7XG5cdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gY3VycmVudEF1dG9DbGVhcjtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0aW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG5cdFx0XHRcdHByaW9yaXR5OiB0aGlzLmlucHV0cy5nZXQoJ2VuYWJsZWQnKSA/IHRoaXMuaW5wdXRzLmdldCgncmVuZGVyUHJpb3JpdHknKSA6IDAsXG5cdFx0XHR9LFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
@@ -1,7 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { computed, effect, Directive, Input, forwardRef, inject, Injector, Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
- import { signalStore, injectNgtRef, injectNgtStore, getLocalState, is, extend, createInjectionToken, injectBeforeRender, NgtArgs } from 'angular-three';
3
+ import { signalStore, injectNgtRef, injectNgtStore, getLocalState, is, extend, injectBeforeRender, NgtArgs } from 'angular-three';
4
4
  import { BlendFunction, EffectComposer, RenderPass, NormalPass, DepthDownsamplingPass, Effect, EffectPass, Pass, BloomEffect, BrightnessContrastEffect, ColorDepthEffect, DepthEffect, DotScreenEffect, HueSaturationEffect, LUT3DEffect, NoiseEffect, PixelationEffect, ScanlineEffect, SepiaEffect, ShockWaveEffect, SMAAEffect, SSAOEffect, TiltShiftEffect, ToneMappingEffect, VignetteEffect } from 'postprocessing';
5
+ import { createInjectionToken } from 'ngxtension/create-injection-token';
5
6
  import * as THREE from 'three';
6
7
  import { Group } from 'three';
7
8
  import { isWebGL2Available } from 'three-stdlib';
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-postprocessing.mjs","sources":["../../../../libs/postprocessing/src/lib/effect.ts","../../../../libs/postprocessing/src/lib/effect-composer.ts","../../../../libs/postprocessing/src/lib/effects/bloom/bloom.ts","../../../../libs/postprocessing/src/lib/effects/brightness-contrast/brightness-contrast.ts","../../../../libs/postprocessing/src/lib/effects/color-depth/color-depth.ts","../../../../libs/postprocessing/src/lib/effects/depth/depth.ts","../../../../libs/postprocessing/src/lib/effects/dot-screen/dot-screen.ts","../../../../libs/postprocessing/src/lib/effects/hue-saturation/hue-saturation.ts","../../../../libs/postprocessing/src/lib/effects/lut/lut.ts","../../../../libs/postprocessing/src/lib/effects/noise/noise.ts","../../../../libs/postprocessing/src/lib/effects/pixelation/pixelation.ts","../../../../libs/postprocessing/src/lib/effects/scanline/scanline.ts","../../../../libs/postprocessing/src/lib/effects/sepia/sepia.ts","../../../../libs/postprocessing/src/lib/effects/shock-wave/shock-wave.ts","../../../../libs/postprocessing/src/lib/effects/smaa/smaa.ts","../../../../libs/postprocessing/src/lib/effects/ssao/ssao.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift/tilt-shift.ts","../../../../libs/postprocessing/src/lib/effects/tone-mapping/tone-mapping.ts","../../../../libs/postprocessing/src/lib/effects/vignette/vignette.ts","../../../../libs/postprocessing/src/angular-three-postprocessing.ts"],"sourcesContent":["import { Directive, Input, computed, effect } from '@angular/core';\nimport { getLocalState, injectNgtRef, injectNgtStore, is, signalStore, type NgtAnyRecord } from 'angular-three';\nimport { BlendFunction, Effect } from 'postprocessing';\n\nexport type NgtpEffectState = {\n\tblendFunction?: BlendFunction;\n\topacity?: number;\n};\n\n@Directive()\nexport abstract class NgtpEffect<TEffect extends Effect> {\n\tinputs = signalStore<NgtpEffectState>();\n\n\t@Input() effectRef = injectNgtRef<TEffect>();\n\n\t@Input({ alias: 'blendFunction' }) set _blendFunction(blendFunction: BlendFunction) {\n\t\tthis.inputs.set({ blendFunction });\n\t}\n\n\t@Input({ alias: 'opacity' }) set _opacity(opacity: number) {\n\t\tthis.inputs.set({ opacity });\n\t}\n\n\tprotected defaultBlendFunction = BlendFunction.NORMAL;\n\tprotected nativeArgs: () => NgtAnyRecord[] = () => [];\n\n\tblendFunction = this.inputs.select('blendFunction');\n\topacity = this.inputs.select('opacity');\n\n\tprotected store = injectNgtStore();\n\tprotected camera = this.store.select('camera');\n\tprivate invalidate = this.store.select('invalidate');\n\n\tprivate previousInputs?: NgtAnyRecord;\n\n\tprivate nativeInputs = computed(\n\t\t() => {\n\t\t\tconst effect = this.effectRef.nativeElement;\n\t\t\tif (!effect) return this.previousInputs || null;\n\t\t\tconst localState = getLocalState(effect);\n\t\t\tif (!localState) return this.previousInputs || null;\n\t\t\tconst nativeProps = localState.nativeProps.state();\n\t\t\tdelete nativeProps['__ngt_dummy_state__'];\n\t\t\tif ('camera' in nativeProps) {\n\t\t\t\tdelete nativeProps['camera'];\n\t\t\t}\n\t\t\tif (!Object.keys(nativeProps).length) return this.previousInputs || null;\n\t\t\treturn (this.previousInputs = nativeProps);\n\t\t},\n\t\t{ equal: (a, b) => is.equ(a, b, { objects: 'shallow' }) },\n\t);\n\n\targs = computed(() => {\n\t\tconst [nativeInputs, nativeArgs] = [this.nativeInputs(), this.nativeArgs()];\n\t\tif (nativeInputs) {\n\t\t\tnativeArgs.push(nativeInputs);\n\t\t}\n\n\t\treturn nativeArgs;\n\t});\n\n\tconstructor() {\n\t\tthis.setBlendMode();\n\t}\n\n\tprivate setBlendMode() {\n\t\teffect(() => {\n\t\t\tconst [blendFunction, opacity, effect, invalidate] = [\n\t\t\t\tthis.blendFunction(),\n\t\t\t\tthis.opacity(),\n\t\t\t\tthis.effectRef.nativeElement,\n\t\t\t\tthis.invalidate(),\n\t\t\t];\n\n\t\t\tif (!effect) return;\n\t\t\teffect.blendMode.blendFunction =\n\t\t\t\t!blendFunction && blendFunction !== 0 ? this.defaultBlendFunction : blendFunction;\n\t\t\tif (opacity !== undefined) effect.blendMode.opacity.value = opacity;\n\t\t\tinvalidate();\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tComponent,\n\tInjector,\n\tInput,\n\tcomputed,\n\teffect,\n\tforwardRef,\n\tinject,\n} from '@angular/core';\nimport {\n\tcreateInjectionToken,\n\textend,\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tinjectNgtStore,\n\tsignalStore,\n} from 'angular-three';\nimport {\n\tDepthDownsamplingPass,\n\tEffect,\n\tEffectComposer,\n\tEffectPass,\n\tNormalPass,\n\tPass,\n\tRenderPass,\n} from 'postprocessing';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\n\nextend({ Group });\n\nexport type NgtpEffectComposerState = {\n\tenabled: boolean;\n\tdepthBuffer?: boolean;\n\tdisableNormalPass?: boolean;\n\tstencilBuffer?: boolean;\n\tautoClear: boolean;\n\tresolutionScale?: number;\n\tmultisampling: number;\n\tframeBufferType: THREE.TextureDataType;\n\trenderPriority: number;\n\tcamera?: THREE.Camera;\n\tscene?: THREE.Scene;\n};\n\nexport const [injectNgtpEffectComposerApi, provideNgtpEffectComposerApi] = createInjectionToken(\n\t(composer: NgtpEffectComposer) => composer.api,\n\t{ isRoot: false, deps: [forwardRef(() => NgtpEffectComposer)] },\n);\n\n@Component({\n\tselector: 'ngtp-effect-composer',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group [ref]=\"composerRef\">\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n\tproviders: [provideNgtpEffectComposerApi()],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpEffectComposer {\n\tprivate inputs = signalStore<NgtpEffectComposerState>({\n\t\tenabled: true,\n\t\trenderPriority: 1,\n\t\tautoClear: true,\n\t\tmultisampling: 8,\n\t\tframeBufferType: THREE.HalfFloatType,\n\t});\n\n\t@Input() composerRef = injectNgtRef<Group>();\n\n\t@Input({ alias: 'enabled' }) set _enabled(enabled: boolean) {\n\t\tthis.inputs.set({ enabled });\n\t}\n\n\t@Input({ alias: 'depthBuffer' }) set _depthBuffer(depthBuffer: boolean) {\n\t\tthis.inputs.set({ depthBuffer });\n\t}\n\n\t@Input({ alias: 'disableNormalPass' }) set _disableNormalPass(disableNormalPass: boolean) {\n\t\tthis.inputs.set({ disableNormalPass });\n\t}\n\n\t@Input({ alias: 'stencilBuffer' }) set _stencilBuffer(stencilBuffer: boolean) {\n\t\tthis.inputs.set({ stencilBuffer });\n\t}\n\n\t@Input({ alias: 'autoClear' }) set _autoClear(autoClear: boolean) {\n\t\tthis.inputs.set({ autoClear });\n\t}\n\n\t@Input({ alias: 'resolutionScale' }) set _resolutionScale(resolutionScale: number) {\n\t\tthis.inputs.set({ resolutionScale });\n\t}\n\n\t@Input({ alias: 'multisampling' }) set _multisampling(multisampling: number) {\n\t\tthis.inputs.set({ multisampling });\n\t}\n\n\t@Input({ alias: 'frameBufferType' }) set _frameBufferType(frameBufferType: THREE.TextureDataType) {\n\t\tthis.inputs.set({ frameBufferType });\n\t}\n\n\t@Input({ alias: 'renderPriority' }) set _renderPriority(renderPriority: number) {\n\t\tthis.inputs.set({ renderPriority });\n\t}\n\n\t@Input({ alias: 'camera' }) set _camera(camera: THREE.Camera) {\n\t\tthis.inputs.set({ camera });\n\t}\n\n\t@Input({ alias: 'scene' }) set _scene(scene: THREE.Scene) {\n\t\tthis.inputs.set({ scene });\n\t}\n\n\tprivate injector = inject(Injector);\n\n\tprivate store = injectNgtStore();\n\tprivate gl = this.store.select('gl');\n\tprivate defaultScene = this.store.select('scene');\n\tprivate defaultCamera = this.store.select('camera');\n\tprivate size = this.store.select('size');\n\n\tprivate depthBuffer = this.inputs.select('depthBuffer');\n\tprivate stencilBuffer = this.inputs.select('stencilBuffer');\n\tprivate multisampling = this.inputs.select('multisampling');\n\tprivate frameBufferType = this.inputs.select('frameBufferType');\n\tprivate scene = this.inputs.select('scene');\n\tprivate camera = this.inputs.select('camera');\n\tprivate disableNormalPass = this.inputs.select('disableNormalPass');\n\tprivate resolutionScale = this.inputs.select('resolutionScale');\n\tprivate autoClear = this.inputs.select('autoClear');\n\n\tprivate activeScene = computed(() => this.scene() || this.defaultScene());\n\tprivate activeCamera = computed(() => this.camera() || this.defaultCamera());\n\n\tprivate composerEntities = computed(() => {\n\t\tconst webGL2Available = isWebGL2Available();\n\t\tconst [\n\t\t\tgl,\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling,\n\t\t\tframeBufferType,\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tdisableNormalPass,\n\t\t\tresolutionScale,\n\t\t] = [\n\t\t\tthis.gl(),\n\t\t\tthis.depthBuffer(),\n\t\t\tthis.stencilBuffer(),\n\t\t\tthis.multisampling(),\n\t\t\tthis.frameBufferType(),\n\t\t\tthis.activeScene(),\n\t\t\tthis.activeCamera(),\n\t\t\tthis.disableNormalPass(),\n\t\t\tthis.resolutionScale(),\n\t\t];\n\n\t\t// Initialize composer\n\t\tconst effectComposer = new EffectComposer(gl, {\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n\t\t\tframeBufferType,\n\t\t});\n\n\t\t// Add render pass\n\t\teffectComposer.addPass(new RenderPass(scene, camera));\n\n\t\t// Create normal pass\n\t\tlet downSamplingPass = null;\n\t\tlet normalPass = null;\n\t\tif (!disableNormalPass) {\n\t\t\tnormalPass = new NormalPass(scene, camera);\n\t\t\tnormalPass.enabled = false;\n\t\t\teffectComposer.addPass(normalPass);\n\t\t\tif (resolutionScale !== undefined && webGL2Available) {\n\t\t\t\tdownSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n\t\t\t\tdownSamplingPass.enabled = false;\n\t\t\t\teffectComposer.addPass(downSamplingPass);\n\t\t\t}\n\t\t}\n\n\t\treturn { effectComposer, normalPass, downSamplingPass };\n\t});\n\n\tprivate composer = computed(() => this.composerEntities().effectComposer);\n\n\tapi = computed(() => {\n\t\tconst [{ effectComposer: composer, normalPass, downSamplingPass }, resolutionScale, camera, scene] = [\n\t\t\tthis.composerEntities(),\n\t\t\tthis.resolutionScale(),\n\t\t\tthis.activeCamera(),\n\t\t\tthis.activeScene(),\n\t\t];\n\t\treturn { composer, normalPass, downSamplingPass, resolutionScale, camera, scene };\n\t});\n\n\tconstructor() {\n\t\tthis.setComposerSize();\n\t\tthis.updatePasses();\n\t}\n\n\tngOnInit() {\n\t\tthis.beforeRender();\n\t}\n\n\tprivate setComposerSize() {\n\t\teffect(() => {\n\t\t\tconst [composer, size] = [this.composer(), this.size()];\n\t\t\tcomposer.setSize(size.width, size.height);\n\t\t});\n\t}\n\n\tprivate updatePasses() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [{ effectComposer: composer, normalPass, downSamplingPass }, instance, children, camera] = [\n\t\t\t\tthis.composerEntities(),\n\t\t\t\tthis.composerRef.nativeElement,\n\t\t\t\tthis.composerRef.children('nonObjects')(),\n\t\t\t\tthis.activeCamera(),\n\t\t\t];\n\n\t\t\tconst passes: Pass[] = [];\n\n\t\t\tif (instance && composer && children.length) {\n\t\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\t\tconst child = children[i];\n\t\t\t\t\tif (child instanceof Effect) {\n\t\t\t\t\t\tconst effects: Effect[] = [];\n\n\t\t\t\t\t\twhile (children[i] instanceof Effect) effects.push(children[i++] as Effect);\n\t\t\t\t\t\ti--;\n\n\t\t\t\t\t\tconst pass = new EffectPass(camera, ...effects);\n\t\t\t\t\t\tpasses.push(pass);\n\t\t\t\t\t} else if (child instanceof Pass) {\n\t\t\t\t\t\tpasses.push(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const pass of passes) composer.addPass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = true;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = true;\n\t\t\t}\n\n\t\t\tonCleanup(() => {\n\t\t\t\tfor (const pass of passes) composer?.removePass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = false;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = false;\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate beforeRender() {\n\t\tinjectBeforeRender(\n\t\t\t({ delta }) => {\n\t\t\t\tconst [enabled, gl, autoClear, stencilBuffer, composer] = [\n\t\t\t\t\tthis.inputs.get('enabled'),\n\t\t\t\t\tthis.gl(),\n\t\t\t\t\tthis.autoClear(),\n\t\t\t\t\tthis.stencilBuffer(),\n\t\t\t\t\tthis.composer(),\n\t\t\t\t];\n\t\t\t\tif (enabled) {\n\t\t\t\t\tconst currentAutoClear = gl.autoClear;\n\t\t\t\t\tgl.autoClear = autoClear;\n\t\t\t\t\tif (stencilBuffer && !autoClear) gl.clearStencil();\n\t\t\t\t\tcomposer.render(delta);\n\t\t\t\t\tgl.autoClear = currentAutoClear;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tinjector: this.injector,\n\t\t\t\tpriority: this.inputs.get('enabled') ? this.inputs.get('renderPriority') : 0,\n\t\t\t},\n\t\t);\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect, type BloomEffectOptions } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ BloomEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-bloom': BloomEffectOptions & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-bloom',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-bloom-effect ngtCompound *args=\"args()\" [ref]=\"effectRef\" [camera]=\"camera()\">\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpBloom extends NgtpEffect<BloomEffect> {\n\toverride defaultBlendFunction = BlendFunction.ADD;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ BrightnessContrastEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-brightness-contrast': { brightness?: number; contrast?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-brightness-contrast',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-brightness-contrast-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpBrightnessContrast extends NgtpEffect<BrightnessContrastEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ColorDepthEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-color-depth': { bits?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-color-depth',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-color-depth-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpColorDepth extends NgtpEffect<ColorDepthEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ DepthEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-depth': { inverted?: boolean } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-depth',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-depth-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpDepth extends NgtpEffect<DepthEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ DotScreenEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-dot-screen': { angle?: number; scale?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-dot-screen',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-dot-screen-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpDotScreen extends NgtpEffect<DotScreenEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ HueSaturationEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-hue-saturation': { hue?: number; saturation?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-hue-saturation',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-hue-saturation-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpHueSaturation extends NgtpEffect<HueSaturationEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed, effect } from '@angular/core';\nimport { NgtArgs, injectNgtRef, injectNgtStore, signalStore } from 'angular-three';\nimport { BlendFunction, LUT3DEffect } from 'postprocessing';\n\nexport type NgtpLUTState = {\n\tlut: THREE.Texture;\n\tblendFunction?: BlendFunction;\n\ttetrahedralInterpolation?: boolean;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-lut': NgtpLUTState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-lut',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [ref]=\"effectRef\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpLUT {\n\tprivate inputs = signalStore<NgtpLUTState>({});\n\n\t@Input() effectRef = injectNgtRef<LUT3DEffect>();\n\n\t@Input({ required: true, alias: 'lut' }) set _lut(lut: THREE.Texture) {\n\t\tthis.inputs.set({ lut });\n\t}\n\n\t@Input({ alias: 'blendFunction' }) set _blendFunction(blendFunction: BlendFunction) {\n\t\tthis.inputs.set({ blendFunction });\n\t}\n\n\t@Input({ alias: 'tetrahedralInterpolation' }) set _tetrahedralInterpolation(tetrahedralInterpolation: boolean) {\n\t\tthis.inputs.set({ tetrahedralInterpolation });\n\t}\n\n\tprivate lut = this.inputs.select('lut');\n\tprivate tetrahedralInterpolation = this.inputs.select('tetrahedralInterpolation');\n\tprivate blendFunction = this.inputs.select('blendFunction');\n\n\tprivate store = injectNgtStore();\n\tprivate invalidate = this.store.select('invalidate');\n\n\teffect = computed(\n\t\t() =>\n\t\t\tnew LUT3DEffect(this.lut(), {\n\t\t\t\tblendFunction: this.blendFunction(),\n\t\t\t\ttetrahedralInterpolation: this.tetrahedralInterpolation(),\n\t\t\t}),\n\t);\n\n\tconstructor() {\n\t\tthis.setState();\n\t}\n\n\tprivate setState() {\n\t\teffect(() => {\n\t\t\tconst [effect, invalidate, lut, tetrahedralInterpolation] = [\n\t\t\t\tthis.effect(),\n\t\t\t\tthis.invalidate(),\n\t\t\t\tthis.lut(),\n\t\t\t\tthis.tetrahedralInterpolation(),\n\t\t\t];\n\t\t\tif (!effect) return;\n\t\t\tif (tetrahedralInterpolation) effect.tetrahedralInterpolation = tetrahedralInterpolation;\n\t\t\tif (lut) effect.lut = lut;\n\t\t\tinvalidate();\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ NoiseEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-noise': { premultiply?: boolean } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-noise',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-noise-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpNoise extends NgtpEffect<NoiseEffect> {\n\toverride defaultBlendFunction = BlendFunction.COLOR_DODGE;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';\nimport { NgtArgs, injectNgtRef, signalStore } from 'angular-three';\nimport { PixelationEffect } from 'postprocessing';\nimport type { NgtpEffectState } from '../../effect';\n\nexport type NgtpPixelationState = {\n\tgranularity: number;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-pixelation': NgtpPixelationState & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-pixelation',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [ref]=\"effectRef\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpPixelation {\n\tprivate inputs = signalStore<NgtpPixelationState>({ granularity: 30 });\n\n\t@Input() effectRef = injectNgtRef<PixelationEffect>();\n\n\t@Input({ alias: 'granularity' }) set _granularity(granularity: number) {\n\t\tthis.inputs.set({ granularity });\n\t}\n\n\tprivate granularity = this.inputs.select('granularity');\n\n\teffect = computed(() => new PixelationEffect(this.granularity()));\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ScanlineEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-scanline': { density?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-scanline',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-scanline-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpScanline extends NgtpEffect<ScanlineEffect> {\n\toverride defaultBlendFunction = BlendFunction.OVERLAY;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ SepiaEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-sepia': { intensity?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-sepia',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-sepia-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpSepia extends NgtpEffect<SepiaEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ShockWaveEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-shock-wave': {\n\t\t\tspeed?: number;\n\t\t\tmaxRadius?: number;\n\t\t\twaveSize?: number;\n\t\t\tamplitude?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-shock-wave',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-shock-wave-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpShockWave extends NgtpEffect<ShockWaveEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { EdgeDetectionMode, PredicationMode, SMAAEffect, SMAAPreset } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ SMAAEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-SMAA': {\n\t\t\tpreset?: SMAAPreset;\n\t\t\tedgeDetectionMode?: EdgeDetectionMode;\n\t\t\tpredicationMode?: PredicationMode;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-SMAA',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-SMAA-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-SMAA-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpSMAA extends NgtpEffect<SMAAEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';\nimport { NgtArgs, injectNgtRef, signalStore } from 'angular-three';\nimport { BlendFunction, SSAOEffect } from 'postprocessing';\nimport { injectNgtpEffectComposerApi } from '../../effect-composer';\n\n// first two args are camera and texture\nexport type NgtpSSAOState = NonNullable<ConstructorParameters<typeof SSAOEffect>[2]>;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-SSAO': NgtpSSAOState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-SSAO',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [ref]=\"effectRef\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpSSAO {\n\tprivate inputs = signalStore<NgtpSSAOState>({\n\t\tblendFunction: BlendFunction.MULTIPLY,\n\t\tsamples: 30,\n\t\trings: 4,\n\t\tdistanceThreshold: 1.0,\n\t\tdistanceFalloff: 0.0,\n\t\trangeThreshold: 0.5,\n\t\trangeFalloff: 0.1,\n\t\tluminanceInfluence: 0.9,\n\t\tradius: 20,\n\t\tbias: 0.5,\n\t\tintensity: 1.0,\n\t\tdepthAwareUpsampling: true,\n\t});\n\n\t@Input() effectRef = injectNgtRef<SSAOEffect>();\n\n\t@Input({ alias: 'blendFunction' }) set _blendFunction(blendFunction: BlendFunction) {\n\t\tthis.inputs.set({ blendFunction });\n\t}\n\n\t@Input({ alias: 'distanceScaling' }) set _distanceScaling(distanceScaling: boolean) {\n\t\tthis.inputs.set({ distanceScaling });\n\t}\n\n\t@Input({ alias: 'depthAwareUpsampling' }) set _depthAwareUpsampling(depthAwareUpsampling: boolean) {\n\t\tthis.inputs.set({ depthAwareUpsampling });\n\t}\n\n\t@Input({ alias: 'normalDepthBuffer' }) set _normalDepthBuffer(normalDepthBuffer: THREE.Texture) {\n\t\tthis.inputs.set({ normalDepthBuffer });\n\t}\n\n\t@Input({ alias: 'samples' }) set _samples(samples: number) {\n\t\tthis.inputs.set({ samples });\n\t}\n\n\t@Input({ alias: 'rings' }) set _rings(rings: number) {\n\t\tthis.inputs.set({ rings });\n\t}\n\n\t@Input({ alias: 'worldDistanceThreshold' }) set _worldDistanceThreshold(worldDistanceThreshold: number) {\n\t\tthis.inputs.set({ worldDistanceThreshold });\n\t}\n\n\t@Input({ alias: 'worldDistanceFalloff' }) set _worldDistanceFalloff(worldDistanceFalloff: number) {\n\t\tthis.inputs.set({ worldDistanceFalloff });\n\t}\n\n\t@Input({ alias: 'worldProximityThreshold' }) set _worldProximityThreshold(worldProximityThreshold: number) {\n\t\tthis.inputs.set({ worldProximityThreshold });\n\t}\n\n\t@Input({ alias: 'worldProximityFalloff' }) set _worldProximityFalloff(worldProximityFalloff: number) {\n\t\tthis.inputs.set({ worldProximityFalloff });\n\t}\n\n\t@Input({ alias: 'distanceThreshold' }) set _distanceThreshold(distanceThreshold: number) {\n\t\tthis.inputs.set({ distanceThreshold });\n\t}\n\n\t@Input({ alias: 'distanceFalloff' }) set _distanceFalloff(distanceFalloff: number) {\n\t\tthis.inputs.set({ distanceFalloff });\n\t}\n\n\t@Input({ alias: 'rangeThreshold' }) set _rangeThreshold(rangeThreshold: number) {\n\t\tthis.inputs.set({ rangeThreshold });\n\t}\n\n\t@Input({ alias: 'rangeFalloff' }) set _rangeFalloff(rangeFalloff: number) {\n\t\tthis.inputs.set({ rangeFalloff });\n\t}\n\n\t@Input({ alias: 'minRadiusScale' }) set _minRadiusScale(minRadiusScale: number) {\n\t\tthis.inputs.set({ minRadiusScale });\n\t}\n\n\t@Input({ alias: 'luminanceInfluence' }) set _luminanceInfluence(luminanceInfluence: number) {\n\t\tthis.inputs.set({ luminanceInfluence });\n\t}\n\n\t@Input({ alias: 'radius' }) set _radius(radius: number) {\n\t\tthis.inputs.set({ radius });\n\t}\n\n\t@Input({ alias: 'intensity' }) set _intensity(intensity: number) {\n\t\tthis.inputs.set({ intensity });\n\t}\n\n\t@Input({ alias: 'bias' }) set _bias(bias: number) {\n\t\tthis.inputs.set({ bias });\n\t}\n\n\t@Input({ alias: 'fade' }) set _fade(fade: number) {\n\t\tthis.inputs.set({ fade });\n\t}\n\n\t@Input({ alias: 'color' }) set _color(color: THREE.Color) {\n\t\tthis.inputs.set({ color });\n\t}\n\n\t@Input({ alias: 'resolutionScale' }) set _resolutionScale(resolutionScale: number) {\n\t\tthis.inputs.set({ resolutionScale });\n\t}\n\n\t@Input({ alias: 'resolutionX' }) set _resolutionX(resolutionX: number) {\n\t\tthis.inputs.set({ resolutionX });\n\t}\n\n\t@Input({ alias: 'resolutionY' }) set _resolutionY(resolutionY: number) {\n\t\tthis.inputs.set({ resolutionY });\n\t}\n\n\t@Input({ alias: 'width' }) set _width(width: number) {\n\t\tthis.inputs.set({ width });\n\t}\n\n\t@Input({ alias: 'height' }) set _height(height: number) {\n\t\tthis.inputs.set({ height });\n\t}\n\n\tprivate effectComposerApi = injectNgtpEffectComposerApi();\n\n\teffect = computed(() => {\n\t\tconst [state, { camera, normalPass, downSamplingPass, resolutionScale }] = [\n\t\t\tthis.inputs.state(),\n\t\t\tthis.effectComposerApi(),\n\t\t];\n\n\t\tif (normalPass === null && downSamplingPass === null) {\n\t\t\tconsole.error('Please enable the NormalPass in the NgtpEffectComposer in order to use NgtpSSAO.');\n\t\t\treturn null;\n\t\t}\n\n\t\treturn new SSAOEffect(camera, normalPass && !downSamplingPass ? (normalPass as any).texture : null, {\n\t\t\t...state,\n\t\t\t// @ts-expect-error\n\t\t\tnormalDepthBuffer: state.normalDepthBuffer || (downSamplingPass ? downSamplingPass.texture : null),\n\t\t\tresolutionScale: state.resolutionScale || (resolutionScale ?? 1),\n\t\t\tdepthAwareUpsampling: state.depthAwareUpsampling ?? true,\n\t\t});\n\t});\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, KernelSize, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ TiltShiftEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-tilt-shift': {\n\t\t\toffset?: number;\n\t\t\trotation?: number;\n\t\t\tfocusArea?: number;\n\t\t\tfeather?: number;\n\t\t\tbias?: number;\n\t\t\tkernelSize?: KernelSize;\n\t\t\tresolutionScale?: number;\n\t\t\tresolutionX?: number;\n\t\t\tresolutionY?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-tilt-shift',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-tilt-shift-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpTiltShift extends NgtpEffect<TiltShiftEffect> {\n\toverride defaultBlendFunction = BlendFunction.ADD;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ToneMappingEffect, ToneMappingMode } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ToneMappingEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-tone-mapping': {\n\t\t\tadaptive?: boolean;\n\t\t\tmode?: ToneMappingMode;\n\t\t\tresolution?: number;\n\t\t\tmaxLuminance?: number;\n\t\t\twhitePoint?: number;\n\t\t\tmiddleGrey?: number;\n\t\t\tminLuminance?: number;\n\t\t\taverageLuminance?: number;\n\t\t\tadaptationRate?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-tone-mapping',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-tone-mapping-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpToneMapping extends NgtpEffect<ToneMappingEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect, VignetteTechnique } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ VignetteEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-vignette': {\n\t\t\ttechnique?: VignetteTechnique;\n\t\t\teskil?: boolean;\n\t\t\toffset?: number;\n\t\t\tdarkness?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-vignette',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-vignette-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpVignette extends NgtpEffect<VignetteEffect> {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-postprocessing.mjs","sources":["../../../../libs/postprocessing/src/lib/effect.ts","../../../../libs/postprocessing/src/lib/effect-composer.ts","../../../../libs/postprocessing/src/lib/effects/bloom/bloom.ts","../../../../libs/postprocessing/src/lib/effects/brightness-contrast/brightness-contrast.ts","../../../../libs/postprocessing/src/lib/effects/color-depth/color-depth.ts","../../../../libs/postprocessing/src/lib/effects/depth/depth.ts","../../../../libs/postprocessing/src/lib/effects/dot-screen/dot-screen.ts","../../../../libs/postprocessing/src/lib/effects/hue-saturation/hue-saturation.ts","../../../../libs/postprocessing/src/lib/effects/lut/lut.ts","../../../../libs/postprocessing/src/lib/effects/noise/noise.ts","../../../../libs/postprocessing/src/lib/effects/pixelation/pixelation.ts","../../../../libs/postprocessing/src/lib/effects/scanline/scanline.ts","../../../../libs/postprocessing/src/lib/effects/sepia/sepia.ts","../../../../libs/postprocessing/src/lib/effects/shock-wave/shock-wave.ts","../../../../libs/postprocessing/src/lib/effects/smaa/smaa.ts","../../../../libs/postprocessing/src/lib/effects/ssao/ssao.ts","../../../../libs/postprocessing/src/lib/effects/tilt-shift/tilt-shift.ts","../../../../libs/postprocessing/src/lib/effects/tone-mapping/tone-mapping.ts","../../../../libs/postprocessing/src/lib/effects/vignette/vignette.ts","../../../../libs/postprocessing/src/angular-three-postprocessing.ts"],"sourcesContent":["import { Directive, Input, computed, effect } from '@angular/core';\nimport { getLocalState, injectNgtRef, injectNgtStore, is, signalStore, type NgtAnyRecord } from 'angular-three';\nimport { BlendFunction, Effect } from 'postprocessing';\n\nexport type NgtpEffectState = {\n\tblendFunction?: BlendFunction;\n\topacity?: number;\n};\n\n@Directive()\nexport abstract class NgtpEffect<TEffect extends Effect> {\n\tinputs = signalStore<NgtpEffectState>();\n\n\t@Input() effectRef = injectNgtRef<TEffect>();\n\n\t@Input({ alias: 'blendFunction' }) set _blendFunction(blendFunction: BlendFunction) {\n\t\tthis.inputs.set({ blendFunction });\n\t}\n\n\t@Input({ alias: 'opacity' }) set _opacity(opacity: number) {\n\t\tthis.inputs.set({ opacity });\n\t}\n\n\tprotected defaultBlendFunction = BlendFunction.NORMAL;\n\tprotected nativeArgs: () => NgtAnyRecord[] = () => [];\n\n\tblendFunction = this.inputs.select('blendFunction');\n\topacity = this.inputs.select('opacity');\n\n\tprotected store = injectNgtStore();\n\tprotected camera = this.store.select('camera');\n\tprivate invalidate = this.store.select('invalidate');\n\n\tprivate previousInputs?: NgtAnyRecord;\n\n\tprivate nativeInputs = computed(\n\t\t() => {\n\t\t\tconst effect = this.effectRef.nativeElement;\n\t\t\tif (!effect) return this.previousInputs || null;\n\t\t\tconst localState = getLocalState(effect);\n\t\t\tif (!localState) return this.previousInputs || null;\n\t\t\tconst nativeProps = localState.nativeProps.state();\n\t\t\tdelete nativeProps['__ngt_dummy_state__'];\n\t\t\tif ('camera' in nativeProps) {\n\t\t\t\tdelete nativeProps['camera'];\n\t\t\t}\n\t\t\tif (!Object.keys(nativeProps).length) return this.previousInputs || null;\n\t\t\treturn (this.previousInputs = nativeProps);\n\t\t},\n\t\t{ equal: (a, b) => is.equ(a, b, { objects: 'shallow' }) },\n\t);\n\n\targs = computed(() => {\n\t\tconst [nativeInputs, nativeArgs] = [this.nativeInputs(), this.nativeArgs()];\n\t\tif (nativeInputs) {\n\t\t\tnativeArgs.push(nativeInputs);\n\t\t}\n\n\t\treturn nativeArgs;\n\t});\n\n\tconstructor() {\n\t\tthis.setBlendMode();\n\t}\n\n\tprivate setBlendMode() {\n\t\teffect(() => {\n\t\t\tconst [blendFunction, opacity, effect, invalidate] = [\n\t\t\t\tthis.blendFunction(),\n\t\t\t\tthis.opacity(),\n\t\t\t\tthis.effectRef.nativeElement,\n\t\t\t\tthis.invalidate(),\n\t\t\t];\n\n\t\t\tif (!effect) return;\n\t\t\teffect.blendMode.blendFunction =\n\t\t\t\t!blendFunction && blendFunction !== 0 ? this.defaultBlendFunction : blendFunction;\n\t\t\tif (opacity !== undefined) effect.blendMode.opacity.value = opacity;\n\t\t\tinvalidate();\n\t\t});\n\t}\n}\n","import {\n\tCUSTOM_ELEMENTS_SCHEMA,\n\tComponent,\n\tInjector,\n\tInput,\n\tcomputed,\n\teffect,\n\tforwardRef,\n\tinject,\n} from '@angular/core';\nimport { extend, injectBeforeRender, injectNgtRef, injectNgtStore, signalStore } from 'angular-three';\nimport { createInjectionToken } from 'ngxtension/create-injection-token';\nimport {\n\tDepthDownsamplingPass,\n\tEffect,\n\tEffectComposer,\n\tEffectPass,\n\tNormalPass,\n\tPass,\n\tRenderPass,\n} from 'postprocessing';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\n\nextend({ Group });\n\nexport type NgtpEffectComposerState = {\n\tenabled: boolean;\n\tdepthBuffer?: boolean;\n\tdisableNormalPass?: boolean;\n\tstencilBuffer?: boolean;\n\tautoClear: boolean;\n\tresolutionScale?: number;\n\tmultisampling: number;\n\tframeBufferType: THREE.TextureDataType;\n\trenderPriority: number;\n\tcamera?: THREE.Camera;\n\tscene?: THREE.Scene;\n};\n\nexport const [injectNgtpEffectComposerApi, provideNgtpEffectComposerApi] = createInjectionToken(\n\t(composer: NgtpEffectComposer) => composer.api,\n\t{ isRoot: false, deps: [forwardRef(() => NgtpEffectComposer)] },\n);\n\n@Component({\n\tselector: 'ngtp-effect-composer',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-group [ref]=\"composerRef\">\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n\tproviders: [provideNgtpEffectComposerApi()],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpEffectComposer {\n\tprivate inputs = signalStore<NgtpEffectComposerState>({\n\t\tenabled: true,\n\t\trenderPriority: 1,\n\t\tautoClear: true,\n\t\tmultisampling: 8,\n\t\tframeBufferType: THREE.HalfFloatType,\n\t});\n\n\t@Input() composerRef = injectNgtRef<Group>();\n\n\t@Input({ alias: 'enabled' }) set _enabled(enabled: boolean) {\n\t\tthis.inputs.set({ enabled });\n\t}\n\n\t@Input({ alias: 'depthBuffer' }) set _depthBuffer(depthBuffer: boolean) {\n\t\tthis.inputs.set({ depthBuffer });\n\t}\n\n\t@Input({ alias: 'disableNormalPass' }) set _disableNormalPass(disableNormalPass: boolean) {\n\t\tthis.inputs.set({ disableNormalPass });\n\t}\n\n\t@Input({ alias: 'stencilBuffer' }) set _stencilBuffer(stencilBuffer: boolean) {\n\t\tthis.inputs.set({ stencilBuffer });\n\t}\n\n\t@Input({ alias: 'autoClear' }) set _autoClear(autoClear: boolean) {\n\t\tthis.inputs.set({ autoClear });\n\t}\n\n\t@Input({ alias: 'resolutionScale' }) set _resolutionScale(resolutionScale: number) {\n\t\tthis.inputs.set({ resolutionScale });\n\t}\n\n\t@Input({ alias: 'multisampling' }) set _multisampling(multisampling: number) {\n\t\tthis.inputs.set({ multisampling });\n\t}\n\n\t@Input({ alias: 'frameBufferType' }) set _frameBufferType(frameBufferType: THREE.TextureDataType) {\n\t\tthis.inputs.set({ frameBufferType });\n\t}\n\n\t@Input({ alias: 'renderPriority' }) set _renderPriority(renderPriority: number) {\n\t\tthis.inputs.set({ renderPriority });\n\t}\n\n\t@Input({ alias: 'camera' }) set _camera(camera: THREE.Camera) {\n\t\tthis.inputs.set({ camera });\n\t}\n\n\t@Input({ alias: 'scene' }) set _scene(scene: THREE.Scene) {\n\t\tthis.inputs.set({ scene });\n\t}\n\n\tprivate injector = inject(Injector);\n\n\tprivate store = injectNgtStore();\n\tprivate gl = this.store.select('gl');\n\tprivate defaultScene = this.store.select('scene');\n\tprivate defaultCamera = this.store.select('camera');\n\tprivate size = this.store.select('size');\n\n\tprivate depthBuffer = this.inputs.select('depthBuffer');\n\tprivate stencilBuffer = this.inputs.select('stencilBuffer');\n\tprivate multisampling = this.inputs.select('multisampling');\n\tprivate frameBufferType = this.inputs.select('frameBufferType');\n\tprivate scene = this.inputs.select('scene');\n\tprivate camera = this.inputs.select('camera');\n\tprivate disableNormalPass = this.inputs.select('disableNormalPass');\n\tprivate resolutionScale = this.inputs.select('resolutionScale');\n\tprivate autoClear = this.inputs.select('autoClear');\n\n\tprivate activeScene = computed(() => this.scene() || this.defaultScene());\n\tprivate activeCamera = computed(() => this.camera() || this.defaultCamera());\n\n\tprivate composerEntities = computed(() => {\n\t\tconst webGL2Available = isWebGL2Available();\n\t\tconst [\n\t\t\tgl,\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling,\n\t\t\tframeBufferType,\n\t\t\tscene,\n\t\t\tcamera,\n\t\t\tdisableNormalPass,\n\t\t\tresolutionScale,\n\t\t] = [\n\t\t\tthis.gl(),\n\t\t\tthis.depthBuffer(),\n\t\t\tthis.stencilBuffer(),\n\t\t\tthis.multisampling(),\n\t\t\tthis.frameBufferType(),\n\t\t\tthis.activeScene(),\n\t\t\tthis.activeCamera(),\n\t\t\tthis.disableNormalPass(),\n\t\t\tthis.resolutionScale(),\n\t\t];\n\n\t\t// Initialize composer\n\t\tconst effectComposer = new EffectComposer(gl, {\n\t\t\tdepthBuffer,\n\t\t\tstencilBuffer,\n\t\t\tmultisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n\t\t\tframeBufferType,\n\t\t});\n\n\t\t// Add render pass\n\t\teffectComposer.addPass(new RenderPass(scene, camera));\n\n\t\t// Create normal pass\n\t\tlet downSamplingPass = null;\n\t\tlet normalPass = null;\n\t\tif (!disableNormalPass) {\n\t\t\tnormalPass = new NormalPass(scene, camera);\n\t\t\tnormalPass.enabled = false;\n\t\t\teffectComposer.addPass(normalPass);\n\t\t\tif (resolutionScale !== undefined && webGL2Available) {\n\t\t\t\tdownSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n\t\t\t\tdownSamplingPass.enabled = false;\n\t\t\t\teffectComposer.addPass(downSamplingPass);\n\t\t\t}\n\t\t}\n\n\t\treturn { effectComposer, normalPass, downSamplingPass };\n\t});\n\n\tprivate composer = computed(() => this.composerEntities().effectComposer);\n\n\tapi = computed(() => {\n\t\tconst [{ effectComposer: composer, normalPass, downSamplingPass }, resolutionScale, camera, scene] = [\n\t\t\tthis.composerEntities(),\n\t\t\tthis.resolutionScale(),\n\t\t\tthis.activeCamera(),\n\t\t\tthis.activeScene(),\n\t\t];\n\t\treturn { composer, normalPass, downSamplingPass, resolutionScale, camera, scene };\n\t});\n\n\tconstructor() {\n\t\tthis.setComposerSize();\n\t\tthis.updatePasses();\n\t}\n\n\tngOnInit() {\n\t\tthis.beforeRender();\n\t}\n\n\tprivate setComposerSize() {\n\t\teffect(() => {\n\t\t\tconst [composer, size] = [this.composer(), this.size()];\n\t\t\tcomposer.setSize(size.width, size.height);\n\t\t});\n\t}\n\n\tprivate updatePasses() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [{ effectComposer: composer, normalPass, downSamplingPass }, instance, children, camera] = [\n\t\t\t\tthis.composerEntities(),\n\t\t\t\tthis.composerRef.nativeElement,\n\t\t\t\tthis.composerRef.children('nonObjects')(),\n\t\t\t\tthis.activeCamera(),\n\t\t\t];\n\n\t\t\tconst passes: Pass[] = [];\n\n\t\t\tif (instance && composer && children.length) {\n\t\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\t\tconst child = children[i];\n\t\t\t\t\tif (child instanceof Effect) {\n\t\t\t\t\t\tconst effects: Effect[] = [];\n\n\t\t\t\t\t\twhile (children[i] instanceof Effect) effects.push(children[i++] as Effect);\n\t\t\t\t\t\ti--;\n\n\t\t\t\t\t\tconst pass = new EffectPass(camera, ...effects);\n\t\t\t\t\t\tpasses.push(pass);\n\t\t\t\t\t} else if (child instanceof Pass) {\n\t\t\t\t\t\tpasses.push(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const pass of passes) composer.addPass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = true;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = true;\n\t\t\t}\n\n\t\t\tonCleanup(() => {\n\t\t\t\tfor (const pass of passes) composer?.removePass(pass);\n\t\t\t\tif (normalPass) normalPass.enabled = false;\n\t\t\t\tif (downSamplingPass) downSamplingPass.enabled = false;\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate beforeRender() {\n\t\tinjectBeforeRender(\n\t\t\t({ delta }) => {\n\t\t\t\tconst [enabled, gl, autoClear, stencilBuffer, composer] = [\n\t\t\t\t\tthis.inputs.get('enabled'),\n\t\t\t\t\tthis.gl(),\n\t\t\t\t\tthis.autoClear(),\n\t\t\t\t\tthis.stencilBuffer(),\n\t\t\t\t\tthis.composer(),\n\t\t\t\t];\n\t\t\t\tif (enabled) {\n\t\t\t\t\tconst currentAutoClear = gl.autoClear;\n\t\t\t\t\tgl.autoClear = autoClear;\n\t\t\t\t\tif (stencilBuffer && !autoClear) gl.clearStencil();\n\t\t\t\t\tcomposer.render(delta);\n\t\t\t\t\tgl.autoClear = currentAutoClear;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tinjector: this.injector,\n\t\t\t\tpriority: this.inputs.get('enabled') ? this.inputs.get('renderPriority') : 0,\n\t\t\t},\n\t\t);\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect, type BloomEffectOptions } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ BloomEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-bloom': BloomEffectOptions & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-bloom',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-bloom-effect ngtCompound *args=\"args()\" [ref]=\"effectRef\" [camera]=\"camera()\">\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpBloom extends NgtpEffect<BloomEffect> {\n\toverride defaultBlendFunction = BlendFunction.ADD;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ BrightnessContrastEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-brightness-contrast': { brightness?: number; contrast?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-brightness-contrast',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-brightness-contrast-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpBrightnessContrast extends NgtpEffect<BrightnessContrastEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ColorDepthEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-color-depth': { bits?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-color-depth',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-color-depth-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpColorDepth extends NgtpEffect<ColorDepthEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ DepthEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-depth': { inverted?: boolean } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-depth',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-depth-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpDepth extends NgtpEffect<DepthEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ DotScreenEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-dot-screen': { angle?: number; scale?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-dot-screen',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-dot-screen-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpDotScreen extends NgtpEffect<DotScreenEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ HueSaturationEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-hue-saturation': { hue?: number; saturation?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-hue-saturation',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-hue-saturation-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpHueSaturation extends NgtpEffect<HueSaturationEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed, effect } from '@angular/core';\nimport { NgtArgs, injectNgtRef, injectNgtStore, signalStore } from 'angular-three';\nimport { BlendFunction, LUT3DEffect } from 'postprocessing';\n\nexport type NgtpLUTState = {\n\tlut: THREE.Texture;\n\tblendFunction?: BlendFunction;\n\ttetrahedralInterpolation?: boolean;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-lut': NgtpLUTState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-lut',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [ref]=\"effectRef\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpLUT {\n\tprivate inputs = signalStore<NgtpLUTState>({});\n\n\t@Input() effectRef = injectNgtRef<LUT3DEffect>();\n\n\t@Input({ required: true, alias: 'lut' }) set _lut(lut: THREE.Texture) {\n\t\tthis.inputs.set({ lut });\n\t}\n\n\t@Input({ alias: 'blendFunction' }) set _blendFunction(blendFunction: BlendFunction) {\n\t\tthis.inputs.set({ blendFunction });\n\t}\n\n\t@Input({ alias: 'tetrahedralInterpolation' }) set _tetrahedralInterpolation(tetrahedralInterpolation: boolean) {\n\t\tthis.inputs.set({ tetrahedralInterpolation });\n\t}\n\n\tprivate lut = this.inputs.select('lut');\n\tprivate tetrahedralInterpolation = this.inputs.select('tetrahedralInterpolation');\n\tprivate blendFunction = this.inputs.select('blendFunction');\n\n\tprivate store = injectNgtStore();\n\tprivate invalidate = this.store.select('invalidate');\n\n\teffect = computed(\n\t\t() =>\n\t\t\tnew LUT3DEffect(this.lut(), {\n\t\t\t\tblendFunction: this.blendFunction(),\n\t\t\t\ttetrahedralInterpolation: this.tetrahedralInterpolation(),\n\t\t\t}),\n\t);\n\n\tconstructor() {\n\t\tthis.setState();\n\t}\n\n\tprivate setState() {\n\t\teffect(() => {\n\t\t\tconst [effect, invalidate, lut, tetrahedralInterpolation] = [\n\t\t\t\tthis.effect(),\n\t\t\t\tthis.invalidate(),\n\t\t\t\tthis.lut(),\n\t\t\t\tthis.tetrahedralInterpolation(),\n\t\t\t];\n\t\t\tif (!effect) return;\n\t\t\tif (tetrahedralInterpolation) effect.tetrahedralInterpolation = tetrahedralInterpolation;\n\t\t\tif (lut) effect.lut = lut;\n\t\t\tinvalidate();\n\t\t});\n\t}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ NoiseEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-noise': { premultiply?: boolean } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-noise',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-noise-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpNoise extends NgtpEffect<NoiseEffect> {\n\toverride defaultBlendFunction = BlendFunction.COLOR_DODGE;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';\nimport { NgtArgs, injectNgtRef, signalStore } from 'angular-three';\nimport { PixelationEffect } from 'postprocessing';\nimport type { NgtpEffectState } from '../../effect';\n\nexport type NgtpPixelationState = {\n\tgranularity: number;\n};\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-pixelation': NgtpPixelationState & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-pixelation',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [ref]=\"effectRef\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpPixelation {\n\tprivate inputs = signalStore<NgtpPixelationState>({ granularity: 30 });\n\n\t@Input() effectRef = injectNgtRef<PixelationEffect>();\n\n\t@Input({ alias: 'granularity' }) set _granularity(granularity: number) {\n\t\tthis.inputs.set({ granularity });\n\t}\n\n\tprivate granularity = this.inputs.select('granularity');\n\n\teffect = computed(() => new PixelationEffect(this.granularity()));\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ScanlineEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-scanline': { density?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-scanline',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-scanline-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpScanline extends NgtpEffect<ScanlineEffect> {\n\toverride defaultBlendFunction = BlendFunction.OVERLAY;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ SepiaEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-sepia': { intensity?: number } & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-sepia',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-sepia-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpSepia extends NgtpEffect<SepiaEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ShockWaveEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-shock-wave': {\n\t\t\tspeed?: number;\n\t\t\tmaxRadius?: number;\n\t\t\twaveSize?: number;\n\t\t\tamplitude?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-shock-wave',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-shock-wave-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpShockWave extends NgtpEffect<ShockWaveEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { EdgeDetectionMode, PredicationMode, SMAAEffect, SMAAPreset } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ SMAAEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-SMAA': {\n\t\t\tpreset?: SMAAPreset;\n\t\t\tedgeDetectionMode?: EdgeDetectionMode;\n\t\t\tpredicationMode?: PredicationMode;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-SMAA',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-SMAA-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-SMAA-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpSMAA extends NgtpEffect<SMAAEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';\nimport { NgtArgs, injectNgtRef, signalStore } from 'angular-three';\nimport { BlendFunction, SSAOEffect } from 'postprocessing';\nimport { injectNgtpEffectComposerApi } from '../../effect-composer';\n\n// first two args are camera and texture\nexport type NgtpSSAOState = NonNullable<ConstructorParameters<typeof SSAOEffect>[2]>;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-SSAO': NgtpSSAOState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-SSAO',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive *args=\"[effect()]\" [ref]=\"effectRef\" />\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpSSAO {\n\tprivate inputs = signalStore<NgtpSSAOState>({\n\t\tblendFunction: BlendFunction.MULTIPLY,\n\t\tsamples: 30,\n\t\trings: 4,\n\t\tdistanceThreshold: 1.0,\n\t\tdistanceFalloff: 0.0,\n\t\trangeThreshold: 0.5,\n\t\trangeFalloff: 0.1,\n\t\tluminanceInfluence: 0.9,\n\t\tradius: 20,\n\t\tbias: 0.5,\n\t\tintensity: 1.0,\n\t\tdepthAwareUpsampling: true,\n\t});\n\n\t@Input() effectRef = injectNgtRef<SSAOEffect>();\n\n\t@Input({ alias: 'blendFunction' }) set _blendFunction(blendFunction: BlendFunction) {\n\t\tthis.inputs.set({ blendFunction });\n\t}\n\n\t@Input({ alias: 'distanceScaling' }) set _distanceScaling(distanceScaling: boolean) {\n\t\tthis.inputs.set({ distanceScaling });\n\t}\n\n\t@Input({ alias: 'depthAwareUpsampling' }) set _depthAwareUpsampling(depthAwareUpsampling: boolean) {\n\t\tthis.inputs.set({ depthAwareUpsampling });\n\t}\n\n\t@Input({ alias: 'normalDepthBuffer' }) set _normalDepthBuffer(normalDepthBuffer: THREE.Texture) {\n\t\tthis.inputs.set({ normalDepthBuffer });\n\t}\n\n\t@Input({ alias: 'samples' }) set _samples(samples: number) {\n\t\tthis.inputs.set({ samples });\n\t}\n\n\t@Input({ alias: 'rings' }) set _rings(rings: number) {\n\t\tthis.inputs.set({ rings });\n\t}\n\n\t@Input({ alias: 'worldDistanceThreshold' }) set _worldDistanceThreshold(worldDistanceThreshold: number) {\n\t\tthis.inputs.set({ worldDistanceThreshold });\n\t}\n\n\t@Input({ alias: 'worldDistanceFalloff' }) set _worldDistanceFalloff(worldDistanceFalloff: number) {\n\t\tthis.inputs.set({ worldDistanceFalloff });\n\t}\n\n\t@Input({ alias: 'worldProximityThreshold' }) set _worldProximityThreshold(worldProximityThreshold: number) {\n\t\tthis.inputs.set({ worldProximityThreshold });\n\t}\n\n\t@Input({ alias: 'worldProximityFalloff' }) set _worldProximityFalloff(worldProximityFalloff: number) {\n\t\tthis.inputs.set({ worldProximityFalloff });\n\t}\n\n\t@Input({ alias: 'distanceThreshold' }) set _distanceThreshold(distanceThreshold: number) {\n\t\tthis.inputs.set({ distanceThreshold });\n\t}\n\n\t@Input({ alias: 'distanceFalloff' }) set _distanceFalloff(distanceFalloff: number) {\n\t\tthis.inputs.set({ distanceFalloff });\n\t}\n\n\t@Input({ alias: 'rangeThreshold' }) set _rangeThreshold(rangeThreshold: number) {\n\t\tthis.inputs.set({ rangeThreshold });\n\t}\n\n\t@Input({ alias: 'rangeFalloff' }) set _rangeFalloff(rangeFalloff: number) {\n\t\tthis.inputs.set({ rangeFalloff });\n\t}\n\n\t@Input({ alias: 'minRadiusScale' }) set _minRadiusScale(minRadiusScale: number) {\n\t\tthis.inputs.set({ minRadiusScale });\n\t}\n\n\t@Input({ alias: 'luminanceInfluence' }) set _luminanceInfluence(luminanceInfluence: number) {\n\t\tthis.inputs.set({ luminanceInfluence });\n\t}\n\n\t@Input({ alias: 'radius' }) set _radius(radius: number) {\n\t\tthis.inputs.set({ radius });\n\t}\n\n\t@Input({ alias: 'intensity' }) set _intensity(intensity: number) {\n\t\tthis.inputs.set({ intensity });\n\t}\n\n\t@Input({ alias: 'bias' }) set _bias(bias: number) {\n\t\tthis.inputs.set({ bias });\n\t}\n\n\t@Input({ alias: 'fade' }) set _fade(fade: number) {\n\t\tthis.inputs.set({ fade });\n\t}\n\n\t@Input({ alias: 'color' }) set _color(color: THREE.Color) {\n\t\tthis.inputs.set({ color });\n\t}\n\n\t@Input({ alias: 'resolutionScale' }) set _resolutionScale(resolutionScale: number) {\n\t\tthis.inputs.set({ resolutionScale });\n\t}\n\n\t@Input({ alias: 'resolutionX' }) set _resolutionX(resolutionX: number) {\n\t\tthis.inputs.set({ resolutionX });\n\t}\n\n\t@Input({ alias: 'resolutionY' }) set _resolutionY(resolutionY: number) {\n\t\tthis.inputs.set({ resolutionY });\n\t}\n\n\t@Input({ alias: 'width' }) set _width(width: number) {\n\t\tthis.inputs.set({ width });\n\t}\n\n\t@Input({ alias: 'height' }) set _height(height: number) {\n\t\tthis.inputs.set({ height });\n\t}\n\n\tprivate effectComposerApi = injectNgtpEffectComposerApi();\n\n\teffect = computed(() => {\n\t\tconst [state, { camera, normalPass, downSamplingPass, resolutionScale }] = [\n\t\t\tthis.inputs.state(),\n\t\t\tthis.effectComposerApi(),\n\t\t];\n\n\t\tif (normalPass === null && downSamplingPass === null) {\n\t\t\tconsole.error('Please enable the NormalPass in the NgtpEffectComposer in order to use NgtpSSAO.');\n\t\t\treturn null;\n\t\t}\n\n\t\treturn new SSAOEffect(camera, normalPass && !downSamplingPass ? (normalPass as any).texture : null, {\n\t\t\t...state,\n\t\t\t// @ts-expect-error\n\t\t\tnormalDepthBuffer: state.normalDepthBuffer || (downSamplingPass ? downSamplingPass.texture : null),\n\t\t\tresolutionScale: state.resolutionScale || (resolutionScale ?? 1),\n\t\t\tdepthAwareUpsampling: state.depthAwareUpsampling ?? true,\n\t\t});\n\t});\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, KernelSize, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ TiltShiftEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-tilt-shift': {\n\t\t\toffset?: number;\n\t\t\trotation?: number;\n\t\t\tfocusArea?: number;\n\t\t\tfeather?: number;\n\t\t\tbias?: number;\n\t\t\tkernelSize?: KernelSize;\n\t\t\tresolutionScale?: number;\n\t\t\tresolutionX?: number;\n\t\t\tresolutionY?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-tilt-shift',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-tilt-shift-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpTiltShift extends NgtpEffect<TiltShiftEffect> {\n\toverride defaultBlendFunction = BlendFunction.ADD;\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ToneMappingEffect, ToneMappingMode } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ ToneMappingEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-tone-mapping': {\n\t\t\tadaptive?: boolean;\n\t\t\tmode?: ToneMappingMode;\n\t\t\tresolution?: number;\n\t\t\tmaxLuminance?: number;\n\t\t\twhitePoint?: number;\n\t\t\tmiddleGrey?: number;\n\t\t\tminLuminance?: number;\n\t\t\taverageLuminance?: number;\n\t\t\tadaptationRate?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-tone-mapping',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-tone-mapping-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpToneMapping extends NgtpEffect<ToneMappingEffect> {}\n","import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect, VignetteTechnique } from 'postprocessing';\nimport { NgtpEffect, type NgtpEffectState } from '../../effect';\n\nextend({ VignetteEffect });\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'ngtp-vignette': {\n\t\t\ttechnique?: VignetteTechnique;\n\t\t\teskil?: boolean;\n\t\t\toffset?: number;\n\t\t\tdarkness?: number;\n\t\t} & NgtpEffectState;\n\t}\n}\n\n@Component({\n\tselector: 'ngtp-vignette',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-vignette-effect ngtCompound *args=\"args()\" [camera]=\"camera()\" [ref]=\"effectRef\">\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtpVignette extends NgtpEffect<VignetteEffect> {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAUsB,UAAU,CAAA;IAK/B,IAAuC,cAAc,CAAC,aAA4B,EAAA;QACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KACnC;IAED,IAAiC,QAAQ,CAAC,OAAe,EAAA;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7B;AAwCD,IAAA,WAAA,GAAA;QAlDA,IAAM,CAAA,MAAA,GAAG,WAAW,EAAmB,CAAC;QAE/B,IAAS,CAAA,SAAA,GAAG,YAAY,EAAW,CAAC;AAUnC,QAAA,IAAA,CAAA,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAyB,MAAM,EAAE,CAAC;QAEtD,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACpD,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE9B,IAAK,CAAA,KAAA,GAAG,cAAc,EAAE,CAAC;QACzB,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAI7C,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAC9B,MAAK;AACJ,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;AAC5C,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;AAChD,YAAA,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,UAAU;AAAE,gBAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;YACpD,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AACnD,YAAA,OAAO,WAAW,CAAC,qBAAqB,CAAC,CAAC;YAC1C,IAAI,QAAQ,IAAI,WAAW,EAAE;AAC5B,gBAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC7B,aAAA;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM;AAAE,gBAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;AACzE,YAAA,QAAQ,IAAI,CAAC,cAAc,GAAG,WAAW,EAAE;SAC3C,EACD,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CACzD,CAAC;AAEF,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AACpB,YAAA,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAC5E,YAAA,IAAI,YAAY,EAAE;AACjB,gBAAA,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9B,aAAA;AAED,YAAA,OAAO,UAAU,CAAC;AACnB,SAAC,CAAC,CAAC;QAGF,IAAI,CAAC,YAAY,EAAE,CAAC;KACpB;IAEO,YAAY,GAAA;QACnB,MAAM,CAAC,MAAK;YACX,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG;gBACpD,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,SAAS,CAAC,aAAa;gBAC5B,IAAI,CAAC,UAAU,EAAE;aACjB,CAAC;AAEF,YAAA,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,MAAM,CAAC,SAAS,CAAC,aAAa;AAC7B,gBAAA,CAAC,aAAa,IAAI,aAAa,KAAK,CAAC,GAAG,IAAI,CAAC,oBAAoB,GAAG,aAAa,CAAC;YACnF,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;AACpE,YAAA,UAAU,EAAE,CAAC;AACd,SAAC,CAAC,CAAC;KACH;8GAtEoB,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAV,UAAU,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;0EAIA,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEiC,cAAc,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;gBAIA,QAAQ,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;;;ACM5B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAgBL,MAAA,CAAC,2BAA2B,EAAE,4BAA4B,CAAC,GAAG,oBAAoB,CAC9F,CAAC,QAA4B,KAAK,QAAQ,CAAC,GAAG,EAC9C,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,kBAAkB,CAAC,CAAC,EAAE,EAC9D;MAaW,kBAAkB,CAAA;IAW9B,IAAiC,QAAQ,CAAC,OAAgB,EAAA;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7B;IAED,IAAqC,YAAY,CAAC,WAAoB,EAAA;QACrE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KACjC;IAED,IAA2C,kBAAkB,CAAC,iBAA0B,EAAA;QACvF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;KACvC;IAED,IAAuC,cAAc,CAAC,aAAsB,EAAA;QAC3E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KACnC;IAED,IAAmC,UAAU,CAAC,SAAkB,EAAA;QAC/D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC/B;IAED,IAAyC,gBAAgB,CAAC,eAAuB,EAAA;QAChF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;KACrC;IAED,IAAuC,cAAc,CAAC,aAAqB,EAAA;QAC1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KACnC;IAED,IAAyC,gBAAgB,CAAC,eAAsC,EAAA;QAC/F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;KACrC;IAED,IAAwC,eAAe,CAAC,cAAsB,EAAA;QAC7E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;KACpC;IAED,IAAgC,OAAO,CAAC,MAAoB,EAAA;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC5B;IAED,IAA+B,MAAM,CAAC,KAAkB,EAAA;QACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3B;AAuFD,IAAA,WAAA,GAAA;QA3IQ,IAAM,CAAA,MAAA,GAAG,WAAW,CAA0B;AACrD,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,KAAK,CAAC,aAAa;AACpC,SAAA,CAAC,CAAC;QAEM,IAAW,CAAA,WAAA,GAAG,YAAY,EAAS,CAAC;AA8CrC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAK,CAAA,KAAA,GAAG,cAAc,EAAE,CAAC;QACzB,IAAE,CAAA,EAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACpD,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACpD,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC5D,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACxD,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAE5C,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAErE,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,MAAM,eAAe,GAAG,iBAAiB,EAAE,CAAC;AAC5C,YAAA,MAAM,CACL,EAAE,EACF,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,GAAG;gBACH,IAAI,CAAC,EAAE,EAAE;gBACT,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,eAAe,EAAE;aACtB,CAAC;;AAGF,YAAA,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE;gBAC7C,WAAW;gBACX,aAAa;AACb,gBAAA,aAAa,EAAE,aAAa,GAAG,CAAC,IAAI,eAAe,GAAG,aAAa,GAAG,CAAC;gBACvE,eAAe;AACf,aAAA,CAAC,CAAC;;YAGH,cAAc,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;;YAGtD,IAAI,gBAAgB,GAAG,IAAI,CAAC;YAC5B,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,iBAAiB,EAAE;gBACvB,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3C,gBAAA,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;AAC3B,gBAAA,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACnC,gBAAA,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,EAAE;AACrD,oBAAA,gBAAgB,GAAG,IAAI,qBAAqB,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;AACpG,oBAAA,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;AACjC,oBAAA,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACzC,iBAAA;AACD,aAAA;AAED,YAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;AACzD,SAAC,CAAC,CAAC;AAEK,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,CAAC;AAE1E,QAAA,IAAA,CAAA,GAAG,GAAG,QAAQ,CAAC,MAAK;AACnB,YAAA,MAAM,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;gBACpG,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE;aAClB,CAAC;AACF,YAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACnF,SAAC,CAAC,CAAC;QAGF,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;KACpB;IAED,QAAQ,GAAA;QACP,IAAI,CAAC,YAAY,EAAE,CAAC;KACpB;IAEO,eAAe,GAAA;QACtB,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAC;KACH;IAEO,YAAY,GAAA;AACnB,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACpB,YAAA,MAAM,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG;gBAChG,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,WAAW,CAAC,aAAa;AAC9B,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBACzC,IAAI,CAAC,YAAY,EAAE;aACnB,CAAC;YAEF,MAAM,MAAM,GAAW,EAAE,CAAC;AAE1B,YAAA,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC5C,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,oBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,KAAK,YAAY,MAAM,EAAE;wBAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;AAE7B,wBAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,YAAY,MAAM;4BAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAW,CAAC,CAAC;AAC5E,wBAAA,CAAC,EAAE,CAAC;wBAEJ,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;AAChD,wBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,qBAAA;yBAAM,IAAI,KAAK,YAAY,IAAI,EAAE;AACjC,wBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnB,qBAAA;AACD,iBAAA;gBAED,KAAK,MAAM,IAAI,IAAI,MAAM;AAAE,oBAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClD,gBAAA,IAAI,UAAU;AAAE,oBAAA,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AAC1C,gBAAA,IAAI,gBAAgB;AAAE,oBAAA,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;AACtD,aAAA;YAED,SAAS,CAAC,MAAK;gBACd,KAAK,MAAM,IAAI,IAAI,MAAM;AAAE,oBAAA,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AACtD,gBAAA,IAAI,UAAU;AAAE,oBAAA,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;AAC3C,gBAAA,IAAI,gBAAgB;AAAE,oBAAA,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;AACxD,aAAC,CAAC,CAAC;AACJ,SAAC,CAAC,CAAC;KACH;IAEO,YAAY,GAAA;AACnB,QAAA,kBAAkB,CACjB,CAAC,EAAE,KAAK,EAAE,KAAI;YACb,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,GAAG;AACzD,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC1B,IAAI,CAAC,EAAE,EAAE;gBACT,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,QAAQ,EAAE;aACf,CAAC;AACF,YAAA,IAAI,OAAO,EAAE;AACZ,gBAAA,MAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS,CAAC;AACtC,gBAAA,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;gBACzB,IAAI,aAAa,IAAI,CAAC,SAAS;oBAAE,EAAE,CAAC,YAAY,EAAE,CAAC;AACnD,gBAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,gBAAA,EAAE,CAAC,SAAS,GAAG,gBAAgB,CAAC;AAChC,aAAA;AACF,SAAC,EACD;YACC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAC5E,SAAA,CACD,CAAC;KACF;8GA3NW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAHnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,YAAA,EAAA,CAAA,aAAA,EAAA,cAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,EAAA,eAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,SAAA,EAAA,CAAC,4BAA4B,EAAE,CAAC,EALjC,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAIW,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;AACD,oBAAA,SAAS,EAAE,CAAC,4BAA4B,EAAE,CAAC;oBAC3C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;0EAUS,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAE2B,QAAQ,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;gBAIU,YAAY,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;gBAIY,kBAAkB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;gBAIE,cAAc,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;gBAIE,UAAU,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;gBAIY,gBAAgB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;gBAII,cAAc,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;gBAIQ,gBAAgB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;gBAIK,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;gBAIF,OAAO,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;gBAIK,MAAM,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;;;ACvG1B,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AAmBlB,MAAO,SAAU,SAAQ,UAAuB,CAAA;AAXtD,IAAA,WAAA,GAAA;;AAYU,QAAA,IAAA,CAAA,oBAAoB,GAAG,aAAa,CAAC,GAAG,CAAC;AAClD,KAAA;8GAFY,SAAS,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EARX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,SAAS,EAAA,UAAA,EAAA,CAAA;kBAXrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;AClBD,MAAM,CAAC,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAmB/B,MAAO,sBAAuB,SAAQ,UAAoC,CAAA;8GAAnE,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EARxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAXlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;AClBD,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAmBvB,MAAO,cAAe,SAAQ,UAA4B,CAAA;8GAAnD,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EARhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,cAAc,EAAA,UAAA,EAAA,CAAA;kBAX1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;AClBD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AAmBlB,MAAO,SAAU,SAAQ,UAAuB,CAAA;8GAAzC,SAAS,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EARX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,SAAS,EAAA,UAAA,EAAA,CAAA;kBAXrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;AClBD,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;AAmBtB,MAAO,aAAc,SAAQ,UAA2B,CAAA;8GAAjD,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EARf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;AClBD,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAmB1B,MAAO,iBAAkB,SAAQ,UAA+B,CAAA;8GAAzD,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EARnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;MCEY,OAAO,CAAA;IAKnB,IAA6C,IAAI,CAAC,GAAkB,EAAA;QACnE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACzB;IAED,IAAuC,cAAc,CAAC,aAA4B,EAAA;QACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KACnC;IAED,IAAkD,yBAAyB,CAAC,wBAAiC,EAAA;QAC5G,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,wBAAwB,EAAE,CAAC,CAAC;KAC9C;AAiBD,IAAA,WAAA,GAAA;AA/BQ,QAAA,IAAA,CAAA,MAAM,GAAG,WAAW,CAAe,EAAE,CAAC,CAAC;QAEtC,IAAS,CAAA,SAAA,GAAG,YAAY,EAAe,CAAC;QAczC,IAAG,CAAA,GAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAwB,CAAA,wBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAC1E,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAEpD,IAAK,CAAA,KAAA,GAAG,cAAc,EAAE,CAAC;QACzB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAErD,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAChB,MACC,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;AAC3B,YAAA,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;AACnC,YAAA,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,EAAE;AACzD,SAAA,CAAC,CACH,CAAC;QAGD,IAAI,CAAC,QAAQ,EAAE,CAAC;KAChB;IAEO,QAAQ,GAAA;QACf,MAAM,CAAC,MAAK;YACX,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,wBAAwB,CAAC,GAAG;gBAC3D,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,GAAG,EAAE;gBACV,IAAI,CAAC,wBAAwB,EAAE;aAC/B,CAAC;AACF,YAAA,IAAI,CAAC,MAAM;gBAAE,OAAO;AACpB,YAAA,IAAI,wBAAwB;AAAE,gBAAA,MAAM,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;AACzF,YAAA,IAAI,GAAG;AAAE,gBAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;AAC1B,YAAA,UAAU,EAAE,CAAC;AACd,SAAC,CAAC,CAAC;KACH;8GAjDW,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,EANT,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EAAA,cAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,0BAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;AAET,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,OAAO,EAAA,UAAA,EAAA,CAAA;kBATnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;AAET,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;0EAIS,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEuC,IAAI,EAAA,CAAA;sBAAhD,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;gBAIA,cAAc,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;gBAIiB,yBAAyB,EAAA,CAAA;sBAA1E,KAAK;uBAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAA;;;ACjC7C,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AAmBlB,MAAO,SAAU,SAAQ,UAAuB,CAAA;AAXtD,IAAA,WAAA,GAAA;;AAYU,QAAA,IAAA,CAAA,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC;AAC1D,KAAA;8GAFY,SAAS,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EARX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,SAAS,EAAA,UAAA,EAAA,CAAA;kBAXrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;MCCY,cAAc,CAAA;AAT3B,IAAA,WAAA,GAAA;QAUS,IAAM,CAAA,MAAA,GAAG,WAAW,CAAsB,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAE9D,IAAS,CAAA,SAAA,GAAG,YAAY,EAAoB,CAAC;QAM9C,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAExD,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAClE,KAAA;IAPA,IAAqC,YAAY,CAAC,WAAmB,EAAA;QACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KACjC;8GAPW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EANhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,CAAA,aAAA,EAAA,cAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;AAET,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;AAET,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;8BAIS,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAE+B,YAAY,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;;;ACxBhC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;AAmBrB,MAAO,YAAa,SAAQ,UAA0B,CAAA;AAX5D,IAAA,WAAA,GAAA;;AAYU,QAAA,IAAA,CAAA,oBAAoB,GAAG,aAAa,CAAC,OAAO,CAAC;AACtD,KAAA;8GAFY,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EARd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,YAAY,EAAA,UAAA,EAAA,CAAA;kBAXxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;AClBD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AAmBlB,MAAO,SAAU,SAAQ,UAAuB,CAAA;8GAAzC,SAAS,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EARX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,SAAS,EAAA,UAAA,EAAA,CAAA;kBAXrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;AClBD,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;AAwBtB,MAAO,aAAc,SAAQ,UAA2B,CAAA;8GAAjD,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EARf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;ACvBD,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;AAuBjB,MAAO,QAAS,SAAQ,UAAsB,CAAA;8GAAvC,QAAQ,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EARV,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAXpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;MCJY,QAAQ,CAAA;AATrB,IAAA,WAAA,GAAA;QAUS,IAAM,CAAA,MAAA,GAAG,WAAW,CAAgB;YAC3C,aAAa,EAAE,aAAa,CAAC,QAAQ;AACrC,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,iBAAiB,EAAE,GAAG;AACtB,YAAA,eAAe,EAAE,GAAG;AACpB,YAAA,cAAc,EAAE,GAAG;AACnB,YAAA,YAAY,EAAE,GAAG;AACjB,YAAA,kBAAkB,EAAE,GAAG;AACvB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,SAAS,EAAE,GAAG;AACd,YAAA,oBAAoB,EAAE,IAAI;AAC1B,SAAA,CAAC,CAAC;QAEM,IAAS,CAAA,SAAA,GAAG,YAAY,EAAc,CAAC;QA0GxC,IAAiB,CAAA,iBAAA,GAAG,2BAA2B,EAAE,CAAC;AAE1D,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AACtB,YAAA,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC,GAAG;AAC1E,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACnB,IAAI,CAAC,iBAAiB,EAAE;aACxB,CAAC;AAEF,YAAA,IAAI,UAAU,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE;AACrD,gBAAA,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAClG,gBAAA,OAAO,IAAI,CAAC;AACZ,aAAA;AAED,YAAA,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,gBAAgB,GAAI,UAAkB,CAAC,OAAO,GAAG,IAAI,EAAE;AACnG,gBAAA,GAAG,KAAK;;AAER,gBAAA,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAClG,eAAe,EAAE,KAAK,CAAC,eAAe,KAAK,eAAe,IAAI,CAAC,CAAC;AAChE,gBAAA,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,IAAI,IAAI;AACxD,aAAA,CAAC,CAAC;AACJ,SAAC,CAAC,CAAC;AACH,KAAA;IA7HA,IAAuC,cAAc,CAAC,aAA4B,EAAA;QACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;KACnC;IAED,IAAyC,gBAAgB,CAAC,eAAwB,EAAA;QACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;KACrC;IAED,IAA8C,qBAAqB,CAAC,oBAA6B,EAAA;QAChG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC;KAC1C;IAED,IAA2C,kBAAkB,CAAC,iBAAgC,EAAA;QAC7F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;KACvC;IAED,IAAiC,QAAQ,CAAC,OAAe,EAAA;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7B;IAED,IAA+B,MAAM,CAAC,KAAa,EAAA;QAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3B;IAED,IAAgD,uBAAuB,CAAC,sBAA8B,EAAA;QACrG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAC;KAC5C;IAED,IAA8C,qBAAqB,CAAC,oBAA4B,EAAA;QAC/F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC;KAC1C;IAED,IAAiD,wBAAwB,CAAC,uBAA+B,EAAA;QACxG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,uBAAuB,EAAE,CAAC,CAAC;KAC7C;IAED,IAA+C,sBAAsB,CAAC,qBAA6B,EAAA;QAClG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC;KAC3C;IAED,IAA2C,kBAAkB,CAAC,iBAAyB,EAAA;QACtF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;KACvC;IAED,IAAyC,gBAAgB,CAAC,eAAuB,EAAA;QAChF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;KACrC;IAED,IAAwC,eAAe,CAAC,cAAsB,EAAA;QAC7E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;KACpC;IAED,IAAsC,aAAa,CAAC,YAAoB,EAAA;QACvE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAClC;IAED,IAAwC,eAAe,CAAC,cAAsB,EAAA;QAC7E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;KACpC;IAED,IAA4C,mBAAmB,CAAC,kBAA0B,EAAA;QACzF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;KACxC;IAED,IAAgC,OAAO,CAAC,MAAc,EAAA;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC5B;IAED,IAAmC,UAAU,CAAC,SAAiB,EAAA;QAC9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;KAC/B;IAED,IAA8B,KAAK,CAAC,IAAY,EAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KAC1B;IAED,IAA8B,KAAK,CAAC,IAAY,EAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KAC1B;IAED,IAA+B,MAAM,CAAC,KAAkB,EAAA;QACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3B;IAED,IAAyC,gBAAgB,CAAC,eAAuB,EAAA;QAChF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;KACrC;IAED,IAAqC,YAAY,CAAC,WAAmB,EAAA;QACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KACjC;IAED,IAAqC,YAAY,CAAC,WAAmB,EAAA;QACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;KACjC;IAED,IAA+B,MAAM,CAAC,KAAa,EAAA;QAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3B;IAED,IAAgC,OAAO,CAAC,MAAc,EAAA;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KAC5B;8GAxHW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EANV,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,sBAAA,EAAA,uBAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,wBAAA,EAAA,yBAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,sBAAA,EAAA,uBAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,yBAAA,EAAA,0BAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,uBAAA,EAAA,wBAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,EAAA,eAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,aAAA,EAAA,CAAA,cAAA,EAAA,eAAA,CAAA,EAAA,eAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,UAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,KAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,iBAAA,EAAA,kBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,aAAA,EAAA,cAAA,CAAA,EAAA,YAAA,EAAA,CAAA,aAAA,EAAA,cAAA,CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;AAET,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,QAAQ,EAAA,UAAA,EAAA,CAAA;kBATpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;AAET,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;8BAiBS,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEiC,cAAc,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;gBAIQ,gBAAgB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;gBAIW,qBAAqB,EAAA,CAAA;sBAAlE,KAAK;uBAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAA;gBAIG,kBAAkB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;gBAIJ,QAAQ,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;gBAII,MAAM,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;gBAIuB,uBAAuB,EAAA,CAAA;sBAAtE,KAAK;uBAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAA;gBAII,qBAAqB,EAAA,CAAA;sBAAlE,KAAK;uBAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAA;gBAIS,wBAAwB,EAAA,CAAA;sBAAxE,KAAK;uBAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAA;gBAII,sBAAsB,EAAA,CAAA;sBAApE,KAAK;uBAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAA;gBAIE,kBAAkB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;gBAII,gBAAgB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;gBAIK,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;gBAII,aAAa,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;gBAIQ,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;gBAIU,mBAAmB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;gBAIN,OAAO,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;gBAIS,UAAU,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;gBAIC,KAAK,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;gBAIM,KAAK,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;gBAIO,MAAM,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;gBAIgB,gBAAgB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;gBAIE,YAAY,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;gBAIM,YAAY,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;gBAIA,MAAM,EAAA,CAAA;sBAApC,KAAK;uBAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;gBAIO,OAAO,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;;;ACxI3B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;AA6BtB,MAAO,aAAc,SAAQ,UAA2B,CAAA;AAX9D,IAAA,WAAA,GAAA;;AAYU,QAAA,IAAA,CAAA,oBAAoB,GAAG,aAAa,CAAC,GAAG,CAAC;AAClD,KAAA;8GAFY,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EARf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;AC5BD,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;AA6BxB,MAAO,eAAgB,SAAQ,UAA6B,CAAA;8GAArD,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EARjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;AC5BD,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;AAwBrB,MAAO,YAAa,SAAQ,UAA0B,CAAA;8GAA/C,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EARd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACS,OAAO,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGL,YAAY,EAAA,UAAA,EAAA,CAAA;kBAXxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;oBACD,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,iBAAA,CAAA;;;AC5BD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-three-postprocessing",
3
- "version": "2.0.0-beta.29",
3
+ "version": "2.0.0-beta.30",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -25,6 +25,7 @@
25
25
  "@angular/common": "^16.0.0",
26
26
  "@angular/core": " ^16.0.0",
27
27
  "angular-three": "^2.0.0",
28
+ "ngxtension": "^0.1.0",
28
29
  "postprocessing": "^6.0.0",
29
30
  "three": ">=0.148.0"
30
31
  },