angular-three-postprocessing 2.0.0-beta.286 → 2.0.0-beta.288

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.
@@ -6,7 +6,6 @@ import { DepthDownsamplingPass, Effect, EffectAttribute, EffectComposer, EffectP
6
6
  import { Group, HalfFloatType, NoToneMapping } from 'three';
7
7
  import { isWebGL2Available } from 'three-stdlib';
8
8
  import * as i0 from "@angular/core";
9
- extend({ Group });
10
9
  const defaultOptions = {
11
10
  enabled: true,
12
11
  renderPriority: 1,
@@ -73,6 +72,7 @@ export class NgtpEffectComposer {
73
72
  }
74
73
  return { composer, normalPass, downSamplingPass };
75
74
  });
75
+ extend({ Group });
76
76
  afterNextRender(() => {
77
77
  this.disableToneMapping();
78
78
  this.setComposerSize();
@@ -185,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImpor
185
185
  changeDetection: ChangeDetectionStrategy.OnPush,
186
186
  }]
187
187
  }], ctorParameters: () => [] });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLGVBQWUsRUFDZixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUNOLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sZUFBZSxFQUNmLGNBQWMsRUFDZCxVQUFVLEVBQ1YsVUFBVSxFQUNWLElBQUksRUFDSixVQUFVLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQVUsS0FBSyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQTBCLE1BQU0sT0FBTyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFakQsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQWlCbEIsTUFBTSxjQUFjLEdBQThCO0lBQ2pELE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLENBQUM7SUFDakIsU0FBUyxFQUFFLElBQUk7SUFDZixhQUFhLEVBQUUsQ0FBQztJQUNoQixlQUFlLEVBQUUsYUFBYTtDQUM5QixDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNwQyxPQUFPLENBQUMsTUFBTSxD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QixDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDeEQsQ0FBQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQTVLVyxrQkFBa0I7a0dBQWxCLGtCQUFrQiw2VUFScEI7Ozs7RUFJVDs7MkZBSVcsa0JBQWtCO2tCQVg5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0SW5qZWN0b3IsXG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Y29tcHV0ZWQsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGdldExvY2FsU3RhdGUsIGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0U3RvcmUsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7XG5cdERlcHRoRG93bnNhbXBsaW5nUGFzcyxcblx0RWZmZWN0LFxuXHRFZmZlY3RBdHRyaWJ1dGUsXG5cdEVmZmVjdENvbXBvc2VyLFxuXHRFZmZlY3RQYXNzLFxuXHROb3JtYWxQYXNzLFxuXHRQYXNzLFxuXHRSZW5kZXJQYXNzLFxufSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBDYW1lcmEsIEdyb3VwLCBIYWxmRmxvYXRUeXBlLCBOb1RvbmVNYXBwaW5nLCBTY2VuZSwgVGV4dHVyZURhdGFUeXBlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgaXNXZWJHTDJBdmFpbGFibGUgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHRlbmQoeyBHcm91cCB9KTtcblxuaW50ZXJmYWNlIE5ndHBFZmZlY3RDb21wb3Nlck9wdGlvbnMge1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHRkZXB0aEJ1ZmZlcj86IGJvb2xlYW47XG5cdC8qKiBPbmx5IHVzZWQgZm9yIFNTR0kgY3VycmVudGx5LCBsZWF2ZSBpdCBkaXNhYmxlZCBmb3IgZXZlcnl0aGluZyBlbHNlIHVubGVzcyBpdCdzIG5lZWRlZCAqL1xuXHRlbmFibGVOb3JtYWxQYXNzPzogYm9vbGVhbjtcblx0c3RlbmNpbEJ1ZmZlcj86IGJvb2xlYW47XG5cdGF1dG9DbGVhcjogYm9vbGVhbjtcblx0cmVzb2x1dGlvblNjYWxlPzogbnVtYmVyO1xuXHRtdWx0aXNhbXBsaW5nOiBudW1iZXI7XG5cdGZyYW1lQnVmZmVyVHlwZTogVGV4dHVyZURhdGFUeXBlO1xuXHRyZW5kZXJQcmlvcml0eTogbnVtYmVyO1xuXHRjYW1lcmE/OiBDYW1lcmE7XG5cdHNjZW5lPzogU2NlbmU7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RwRWZmZWN0Q29tcG9zZXJPcHRpb25zID0ge1xuXHRlbmFibGVkOiB0cnVlLFxuXHRyZW5kZXJQcmlvcml0eTogMSxcblx0YXV0b0NsZWFyOiB0cnVlLFxuXHRtdWx0aXNhbXBsaW5nOiA4LFxuXHRmcmFtZUJ1ZmZlclR5cGU6IEhhbGZGbG9hdFR5cGUsXG59O1xuXG5mdW5jdGlvbiBpc0NvbnZvbHV0aW9uKGVmZmVjdDogRWZmZWN0KSB7XG5cdHJldHVybiAoZWZmZWN0LmdldEF0dHJpYnV0ZXMoKSAmIEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTikgPT09IEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTjtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1lZmZlY3QtY29tcG9zZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgI2dyb3VwPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdENvbXBvc2VyIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIHNpemUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cdHByaXZhdGUgZGVmYXVsdFNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgZGVmYXVsdENhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblxuXHRkZXB0aEJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnZGVwdGhCdWZmZXInKTtcblx0c3RlbmNpbEJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3RlbmNpbEJ1ZmZlcicpO1xuXHRtdWx0aXNhbXBsaW5nID0gcGljayh0aGlzLm9wdGlvbnMsICdtdWx0aXNhbXBsaW5nJyk7XG5cdGZyYW1lQnVmZmVyVHlwZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnZnJhbWVCdWZmZXJUeXBlJyk7XG5cdHNjZW5lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkuc2NlbmUgPz8gdGhpcy5kZWZhdWx0U2NlbmUoKSk7XG5cdGNhbWVyYSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmNhbWVyYSA/PyB0aGlzLmRlZmF1bHRDYW1lcmEoKSk7XG5cdGVuYWJsZU5vcm1hbFBhc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VuYWJsZU5vcm1hbFBhc3MnKTtcblx0cmVzb2x1dGlvblNjYWxlID0gcGljayh0aGlzLm9wdGlvbnMsICdyZXNvbHV0aW9uU2NhbGUnKTtcblxuXHRncm91cFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2dyb3VwJyk7XG5cblx0Y29tcG9zZXJEYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHdlYkdMMkF2YWlsYWJsZSA9IGlzV2ViR0wyQXZhaWxhYmxlKCk7XG5cdFx0Y29uc3QgW1xuXHRcdFx0Z2wsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmcsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0XHRlbmFibGVOb3JtYWxQYXNzLFxuXHRcdFx0cmVzb2x1dGlvblNjYWxlLFxuXHRcdF0gPSBbXG5cdFx0XHR0aGlzLmdsKCksXG5cdFx0XHR0aGlzLnNjZW5lKCksXG5cdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0dGhpcy5kZXB0aEJ1ZmZlcigpLFxuXHRcdFx0dGhpcy5zdGVuY2lsQnVmZmVyKCksXG5cdFx0XHR0aGlzLm11bHRpc2FtcGxpbmcoKSxcblx0XHRcdHRoaXMuZnJhbWVCdWZmZXJUeXBlKCksXG5cdFx0XHR0aGlzLmVuYWJsZU5vcm1hbFBhc3MoKSxcblx0XHRcdHRoaXMucmVzb2x1dGlvblNjYWxlKCksXG5cdFx0XTtcblxuXHRcdC8vIGluaXRpYWxpemUgY29tcG9zZXJcblx0XHRjb25zdCBjb21wb3NlciA9IG5ldyBFZmZlY3RDb21wb3NlcihnbCwge1xuXHRcdFx0ZGVwdGhCdWZmZXIsXG5cdFx0XHRzdGVuY2lsQnVmZmVyLFxuXHRcdFx0bXVsdGlzYW1wbGluZzogbXVsdGlzYW1wbGluZyA+IDAgJiYgd2ViR0wyQXZhaWxhYmxlID8gbXVsdGlzYW1wbGluZyA6IDAsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0fSk7XG5cblx0XHQvLyBhZGQgcmVuZGVyIHBhc3Ncblx0XHRjb21wb3Nlci5hZGRQYXNzKG5ldyBSZW5kZXJQYXNzKHNjZW5lLCBjYW1lcmEpKTtcblxuXHRcdC8vIGNyZWF0ZSBub3JtYWwgcGFzc1xuXHRcdGxldCBkb3duU2FtcGxpbmdQYXNzID0gbnVsbDtcblx0XHRsZXQgbm9ybWFsUGFzcyA9IG51bGw7XG5cdFx0aWYgKGVuYWJsZU5vcm1hbFBhc3MpIHtcblx0XHRcdG5vcm1hbFBhc3MgPSBuZXcgTm9ybWFsUGFzcyhzY2VuZSwgY2FtZXJhKTtcblx0XHRcdG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhub3JtYWxQYXNzKTtcblx0XHRcdGlmIChyZXNvbHV0aW9uU2NhbGUgIT09IHVuZGVmaW5lZCAmJiB3ZWJHTDJBdmFpbGFibGUpIHtcblx0XHRcdFx0ZG93blNhbXBsaW5nUGFzcyA9IG5ldyBEZXB0aERvd25zYW1wbGluZ1Bhc3MoeyBub3JtYWxCdWZmZXI6IG5vcm1hbFBhc3MudGV4dHVyZSwgcmVzb2x1dGlvblNjYWxlIH0pO1xuXHRcdFx0XHRkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhkb3duU2FtcGxpbmdQYXNzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5kaXNhYmxlVG9uZU1hcHBpbmcoKTtcblx0XHRcdHRoaXMuc2V0Q29tcG9zZXJTaXplKCk7XG5cdFx0XHR0aGlzLnVwZGF0ZVBhc3NlcygpO1xuXG5cdFx0XHRpbmplY3RCZWZvcmVSZW5kZXIoXG5cdFx0XHRcdCh7IGRlbHRhIH0pID0+IHtcblx0XHRcdFx0XHRjb25zdCBbeyBjb21wb3NlciB9LCB7IGVuYWJsZWQsIGF1dG9DbGVhciwgc3RlbmNpbEJ1ZmZlciB9LCBnbF0gPSBbXG5cdFx0XHRcdFx0XHR0aGlzLmNvbXBvc2VyRGF0YSgpLFxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb25zKCksXG5cdFx0XHRcdFx0XHR0aGlzLmdsKCksXG5cdFx0XHRcdFx0XTtcblxuXHRcdFx0XHRcdGlmIChlbmFibGVkKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBjdXJyZW50QXV0b0NsZWFyID0gZ2wuYXV0b0NsZWFyO1xuXHRcdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gYXV0b0NsZWFyO1xuXHRcdFx0XHRcdFx0aWYgKHN0ZW5jaWxCdWZmZXIgJiYgIWF1dG9DbGVhcikgZ2wuY2xlYXJTdGVuY2lsKCk7XG5cdFx0XHRcdFx0XHRjb21wb3Nlci5yZW5kZXIoZGVsdGEpO1xuXHRcdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gY3VycmVudEF1dG9DbGVhcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsIHByaW9yaXR5OiB0aGlzLm9wdGlvbnMoKS5lbmFibGVkID8gdGhpcy5vcHRpb25zKCkucmVuZGVyUHJpb3JpdHkgOiAwIH0sXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0Ly8gTk9URTogRGlzYWJsZSB0b25lIG1hcHBpbmcgYmVjYXVzZSB0aHJlZWpzIGRpc2FsbG93cyB0b25lbWFwcGluZyBvbiByZW5kZXIgdGFyZ2V0c1xuXHRwcml2YXRlIGRpc2FibGVUb25lTWFwcGluZygpIHtcblx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgZ2wgPSB0aGlzLmdsKCk7XG5cdFx0XHRjb25zdCBjdXJyZW50VG9uZW1hcHBpbmcgPSBnbC50b25lTWFwcGluZztcblx0XHRcdGdsLnRvbmVNYXBwaW5nID0gTm9Ub25lTWFwcGluZztcblx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdGdsLnRvbmVNYXBwaW5nID0gY3VycmVudFRvbmVtYXBwaW5nO1xuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0Q29tcG9zZXJTaXplKCkge1xuXHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbeyBjb21wb3NlciB9LCB7IHdpZHRoLCBoZWlnaHQgfV0gPSBbdGhpcy5jb21wb3NlckRhdGEoKSwgdGhpcy5zaXplKCldO1xuXHRcdFx0aWYgKGNvbXBvc2VyKSB7XG5cdFx0XHRcdGNvbXBvc2VyLnNldFNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZVBhc3NlcygpIHtcblx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2dyb3VwLCB7IGNvbXBvc2VyLCBub3JtYWxQYXNzLCBkb3duU2FtcGxpbmdQYXNzIH0sIGNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMuZ3JvdXBSZWYoKSxcblx0XHRcdFx0dGhpcy5jb21wb3NlckRhdGEoKSxcblx0XHRcdFx0dGhpcy5jYW1lcmEoKSxcblx0XHRcdF07XG5cblx0XHRcdGNvbnN0IHBhc3NlczogUGFzc1tdID0gW107XG5cblx0XHRcdGlmIChncm91cC5uYXRpdmVFbGVtZW50ICYmIGNvbXBvc2VyKSB7XG5cdFx0XHRcdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGdyb3VwLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0XHRpZiAoIWxvY2FsU3RhdGUpIHJldHVybjtcblxuXHRcdFx0XHRjb25zdCBjaGlsZHJlbiA9IGxvY2FsU3RhdGUubm9uT2JqZWN0cygpO1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0Y29uc3QgY2hpbGQgPSBjaGlsZHJlbltpXTtcblx0XHRcdFx0XHRpZiAoY2hpbGQgaW5zdGFuY2VvZiBFZmZlY3QpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGVmZmVjdHM6IEVmZmVjdFtdID0gW2NoaWxkXTtcblxuXHRcdFx0XHRcdFx0aWYgKCFpc0NvbnZvbHV0aW9uKGNoaWxkKSkge1xuXHRcdFx0XHRcdFx0XHRsZXQgbmV4dDogdW5rbm93biA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHdoaWxlICgobmV4dCA9IGNoaWxkcmVuW2kgKyAxXSkgaW5zdGFuY2VvZiBFZmZlY3QpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoaXNDb252b2x1dGlvbihuZXh0KSkgYnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0ZWZmZWN0cy5wdXNoKG5leHQgYXMgRWZmZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRpKys7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Y29uc3QgcGFzcyA9IG5ldyBFZmZlY3RQYXNzKGNhbWVyYSwgLi4uZWZmZWN0cyk7XG5cdFx0XHRcdFx0XHRwYXNzZXMucHVzaChwYXNzKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNoaWxkIGluc3RhbmNlb2YgUGFzcykge1xuXHRcdFx0XHRcdFx0cGFzc2VzLnB1c2goY2hpbGQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZvciAoY29uc3QgcGFzcyBvZiBwYXNzZXMpIHtcblx0XHRcdFx0XHRjb21wb3Nlci5hZGRQYXNzKHBhc3MpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKG5vcm1hbFBhc3MpIG5vcm1hbFBhc3MuZW5hYmxlZCA9IHRydWU7XG5cdFx0XHRcdGlmIChkb3duU2FtcGxpbmdQYXNzKSBkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRmb3IgKGNvbnN0IHBhc3Mgb2YgcGFzc2VzKSBjb21wb3Nlcj8ucmVtb3ZlUGFzcyhwYXNzKTtcblx0XHRcdFx0aWYgKG5vcm1hbFBhc3MpIG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0XHRpZiAoZG93blNhbXBsaW5nUGFzcykgZG93blNhbXBsaW5nUGFzcy5lbmFibGVkID0gZmFsc2U7XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLGVBQWUsRUFDZixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUNOLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sZUFBZSxFQUNmLGNBQWMsRUFDZCxVQUFVLEVBQ1YsVUFBVSxFQUNWLElBQUksRUFDSixVQUFVLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQVUsS0FBSyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQTBCLE1BQU0sT0FBTyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFpQmpELE1BQU0sY0FBYyxHQUE4QjtJQUNqRCxPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsYUFBYSxFQUFFLENBQUM7SUFDaEIsZUFBZSxFQUFFLGFBQWE7Q0FDOUIsQ0FBQztBQUVGLFNBQVMsYUFBYSxDQUFDLE1BQWM7SUFDcEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDLEtB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QixDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDeEQsQ0FBQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQTlLVyxrQkFBa0I7a0dBQWxCLGtCQUFrQiw2VUFScEI7Ozs7RUFJVDs7MkZBSVcsa0JBQWtCO2tCQVg5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0SW5qZWN0b3IsXG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Y29tcHV0ZWQsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGdldExvY2FsU3RhdGUsIGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0U3RvcmUsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7XG5cdERlcHRoRG93bnNhbXBsaW5nUGFzcyxcblx0RWZmZWN0LFxuXHRFZmZlY3RBdHRyaWJ1dGUsXG5cdEVmZmVjdENvbXBvc2VyLFxuXHRFZmZlY3RQYXNzLFxuXHROb3JtYWxQYXNzLFxuXHRQYXNzLFxuXHRSZW5kZXJQYXNzLFxufSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBDYW1lcmEsIEdyb3VwLCBIYWxmRmxvYXRUeXBlLCBOb1RvbmVNYXBwaW5nLCBTY2VuZSwgVGV4dHVyZURhdGFUeXBlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgaXNXZWJHTDJBdmFpbGFibGUgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHBFZmZlY3RDb21wb3Nlck9wdGlvbnMge1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHRkZXB0aEJ1ZmZlcj86IGJvb2xlYW47XG5cdC8qKiBPbmx5IHVzZWQgZm9yIFNTR0kgY3VycmVudGx5LCBsZWF2ZSBpdCBkaXNhYmxlZCBmb3IgZXZlcnl0aGluZyBlbHNlIHVubGVzcyBpdCdzIG5lZWRlZCAqL1xuXHRlbmFibGVOb3JtYWxQYXNzPzogYm9vbGVhbjtcblx0c3RlbmNpbEJ1ZmZlcj86IGJvb2xlYW47XG5cdGF1dG9DbGVhcjogYm9vbGVhbjtcblx0cmVzb2x1dGlvblNjYWxlPzogbnVtYmVyO1xuXHRtdWx0aXNhbXBsaW5nOiBudW1iZXI7XG5cdGZyYW1lQnVmZmVyVHlwZTogVGV4dHVyZURhdGFUeXBlO1xuXHRyZW5kZXJQcmlvcml0eTogbnVtYmVyO1xuXHRjYW1lcmE/OiBDYW1lcmE7XG5cdHNjZW5lPzogU2NlbmU7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RwRWZmZWN0Q29tcG9zZXJPcHRpb25zID0ge1xuXHRlbmFibGVkOiB0cnVlLFxuXHRyZW5kZXJQcmlvcml0eTogMSxcblx0YXV0b0NsZWFyOiB0cnVlLFxuXHRtdWx0aXNhbXBsaW5nOiA4LFxuXHRmcmFtZUJ1ZmZlclR5cGU6IEhhbGZGbG9hdFR5cGUsXG59O1xuXG5mdW5jdGlvbiBpc0NvbnZvbHV0aW9uKGVmZmVjdDogRWZmZWN0KSB7XG5cdHJldHVybiAoZWZmZWN0LmdldEF0dHJpYnV0ZXMoKSAmIEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTikgPT09IEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTjtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1lZmZlY3QtY29tcG9zZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgI2dyb3VwPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdENvbXBvc2VyIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIHNpemUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cdHByaXZhdGUgZGVmYXVsdFNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgZGVmYXVsdENhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblxuXHRkZXB0aEJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnZGVwdGhCdWZmZXInKTtcblx0c3RlbmNpbEJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3RlbmNpbEJ1ZmZlcicpO1xuXHRtdWx0aXNhbXBsaW5nID0gcGljayh0aGlzLm9wdGlvbnMsICdtdWx0aXNhbXBsaW5nJyk7XG5cdGZyYW1lQnVmZmVyVHlwZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnZnJhbWVCdWZmZXJUeXBlJyk7XG5cdHNjZW5lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkuc2NlbmUgPz8gdGhpcy5kZWZhdWx0U2NlbmUoKSk7XG5cdGNhbWVyYSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmNhbWVyYSA/PyB0aGlzLmRlZmF1bHRDYW1lcmEoKSk7XG5cdGVuYWJsZU5vcm1hbFBhc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VuYWJsZU5vcm1hbFBhc3MnKTtcblx0cmVzb2x1dGlvblNjYWxlID0gcGljayh0aGlzLm9wdGlvbnMsICdyZXNvbHV0aW9uU2NhbGUnKTtcblxuXHRncm91cFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2dyb3VwJyk7XG5cblx0Y29tcG9zZXJEYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHdlYkdMMkF2YWlsYWJsZSA9IGlzV2ViR0wyQXZhaWxhYmxlKCk7XG5cdFx0Y29uc3QgW1xuXHRcdFx0Z2wsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmcsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0XHRlbmFibGVOb3JtYWxQYXNzLFxuXHRcdFx0cmVzb2x1dGlvblNjYWxlLFxuXHRcdF0gPSBbXG5cdFx0XHR0aGlzLmdsKCksXG5cdFx0XHR0aGlzLnNjZW5lKCksXG5cdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0dGhpcy5kZXB0aEJ1ZmZlcigpLFxuXHRcdFx0dGhpcy5zdGVuY2lsQnVmZmVyKCksXG5cdFx0XHR0aGlzLm11bHRpc2FtcGxpbmcoKSxcblx0XHRcdHRoaXMuZnJhbWVCdWZmZXJUeXBlKCksXG5cdFx0XHR0aGlzLmVuYWJsZU5vcm1hbFBhc3MoKSxcblx0XHRcdHRoaXMucmVzb2x1dGlvblNjYWxlKCksXG5cdFx0XTtcblxuXHRcdC8vIGluaXRpYWxpemUgY29tcG9zZXJcblx0XHRjb25zdCBjb21wb3NlciA9IG5ldyBFZmZlY3RDb21wb3NlcihnbCwge1xuXHRcdFx0ZGVwdGhCdWZmZXIsXG5cdFx0XHRzdGVuY2lsQnVmZmVyLFxuXHRcdFx0bXVsdGlzYW1wbGluZzogbXVsdGlzYW1wbGluZyA+IDAgJiYgd2ViR0wyQXZhaWxhYmxlID8gbXVsdGlzYW1wbGluZyA6IDAsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0fSk7XG5cblx0XHQvLyBhZGQgcmVuZGVyIHBhc3Ncblx0XHRjb21wb3Nlci5hZGRQYXNzKG5ldyBSZW5kZXJQYXNzKHNjZW5lLCBjYW1lcmEpKTtcblxuXHRcdC8vIGNyZWF0ZSBub3JtYWwgcGFzc1xuXHRcdGxldCBkb3duU2FtcGxpbmdQYXNzID0gbnVsbDtcblx0XHRsZXQgbm9ybWFsUGFzcyA9IG51bGw7XG5cdFx0aWYgKGVuYWJsZU5vcm1hbFBhc3MpIHtcblx0XHRcdG5vcm1hbFBhc3MgPSBuZXcgTm9ybWFsUGFzcyhzY2VuZSwgY2FtZXJhKTtcblx0XHRcdG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhub3JtYWxQYXNzKTtcblx0XHRcdGlmIChyZXNvbHV0aW9uU2NhbGUgIT09IHVuZGVmaW5lZCAmJiB3ZWJHTDJBdmFpbGFibGUpIHtcblx0XHRcdFx0ZG93blNhbXBsaW5nUGFzcyA9IG5ldyBEZXB0aERvd25zYW1wbGluZ1Bhc3MoeyBub3JtYWxCdWZmZXI6IG5vcm1hbFBhc3MudGV4dHVyZSwgcmVzb2x1dGlvblNjYWxlIH0pO1xuXHRcdFx0XHRkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhkb3duU2FtcGxpbmdQYXNzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBHcm91cCB9KTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmRpc2FibGVUb25lTWFwcGluZygpO1xuXHRcdFx0dGhpcy5zZXRDb21wb3NlclNpemUoKTtcblx0XHRcdHRoaXMudXBkYXRlUGFzc2VzKCk7XG5cblx0XHRcdGluamVjdEJlZm9yZVJlbmRlcihcblx0XHRcdFx0KHsgZGVsdGEgfSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IFt7IGNvbXBvc2VyIH0sIHsgZW5hYmxlZCwgYXV0b0NsZWFyLCBzdGVuY2lsQnVmZmVyIH0sIGdsXSA9IFtcblx0XHRcdFx0XHRcdHRoaXMuY29tcG9zZXJEYXRhKCksXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbnMoKSxcblx0XHRcdFx0XHRcdHRoaXMuZ2woKSxcblx0XHRcdFx0XHRdO1xuXG5cdFx0XHRcdFx0aWYgKGVuYWJsZWQpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRBdXRvQ2xlYXIgPSBnbC5hdXRvQ2xlYXI7XG5cdFx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBhdXRvQ2xlYXI7XG5cdFx0XHRcdFx0XHRpZiAoc3RlbmNpbEJ1ZmZlciAmJiAhYXV0b0NsZWFyKSBnbC5jbGVhclN0ZW5jaWwoKTtcblx0XHRcdFx0XHRcdGNvbXBvc2VyLnJlbmRlcihkZWx0YSk7XG5cdFx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBjdXJyZW50QXV0b0NsZWFyO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0eyBpbmplY3RvcjogdGhpcy5pbmplY3RvciwgcHJpb3JpdHk6IHRoaXMub3B0aW9ucygpLmVuYWJsZWQgPyB0aGlzLm9wdGlvbnMoKS5yZW5kZXJQcmlvcml0eSA6IDAgfSxcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvLyBOT1RFOiBEaXNhYmxlIHRvbmUgbWFwcGluZyBiZWNhdXNlIHRocmVlanMgZGlzYWxsb3dzIHRvbmVtYXBwaW5nIG9uIHJlbmRlciB0YXJnZXRzXG5cdHByaXZhdGUgZGlzYWJsZVRvbmVNYXBwaW5nKCkge1xuXHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBnbCA9IHRoaXMuZ2woKTtcblx0XHRcdGNvbnN0IGN1cnJlbnRUb25lbWFwcGluZyA9IGdsLnRvbmVNYXBwaW5nO1xuXHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBOb1RvbmVNYXBwaW5nO1xuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBjdXJyZW50VG9uZW1hcHBpbmc7XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRDb21wb3NlclNpemUoKSB7XG5cdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFt7IGNvbXBvc2VyIH0sIHsgd2lkdGgsIGhlaWdodCB9XSA9IFt0aGlzLmNvbXBvc2VyRGF0YSgpLCB0aGlzLnNpemUoKV07XG5cdFx0XHRpZiAoY29tcG9zZXIpIHtcblx0XHRcdFx0Y29tcG9zZXIuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgdXBkYXRlUGFzc2VzKCkge1xuXHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbZ3JvdXAsIHsgY29tcG9zZXIsIG5vcm1hbFBhc3MsIGRvd25TYW1wbGluZ1Bhc3MgfSwgY2FtZXJhXSA9IFtcblx0XHRcdFx0dGhpcy5ncm91cFJlZigpLFxuXHRcdFx0XHR0aGlzLmNvbXBvc2VyRGF0YSgpLFxuXHRcdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgcGFzc2VzOiBQYXNzW10gPSBbXTtcblxuXHRcdFx0aWYgKGdyb3VwLm5hdGl2ZUVsZW1lbnQgJiYgY29tcG9zZXIpIHtcblx0XHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoZ3JvdXAubmF0aXZlRWxlbWVudCk7XG5cdFx0XHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0XHRcdGNvbnN0IGNoaWxkcmVuID0gbG9jYWxTdGF0ZS5ub25PYmplY3RzKCk7XG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2ldO1xuXHRcdFx0XHRcdGlmIChjaGlsZCBpbnN0YW5jZW9mIEVmZmVjdCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgZWZmZWN0czogRWZmZWN0W10gPSBbY2hpbGRdO1xuXG5cdFx0XHRcdFx0XHRpZiAoIWlzQ29udm9sdXRpb24oY2hpbGQpKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBuZXh0OiB1bmtub3duID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0d2hpbGUgKChuZXh0ID0gY2hpbGRyZW5baSArIDFdKSBpbnN0YW5jZW9mIEVmZmVjdCkge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChpc0NvbnZvbHV0aW9uKG5leHQpKSBicmVhaztcblx0XHRcdFx0XHRcdFx0XHRlZmZlY3RzLnB1c2gobmV4dCBhcyBFZmZlY3QpO1xuXHRcdFx0XHRcdFx0XHRcdGkrKztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRjb25zdCBwYXNzID0gbmV3IEVmZmVjdFBhc3MoY2FtZXJhLCAuLi5lZmZlY3RzKTtcblx0XHRcdFx0XHRcdHBhc3Nlcy5wdXNoKHBhc3MpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY2hpbGQgaW5zdGFuY2VvZiBQYXNzKSB7XG5cdFx0XHRcdFx0XHRwYXNzZXMucHVzaChjaGlsZCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Zm9yIChjb25zdCBwYXNzIG9mIHBhc3Nlcykge1xuXHRcdFx0XHRcdGNvbXBvc2VyLmFkZFBhc3MocGFzcyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAobm9ybWFsUGFzcykgbm9ybWFsUGFzcy5lbmFibGVkID0gdHJ1ZTtcblx0XHRcdFx0aWYgKGRvd25TYW1wbGluZ1Bhc3MpIGRvd25TYW1wbGluZ1Bhc3MuZW5hYmxlZCA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdGZvciAoY29uc3QgcGFzcyBvZiBwYXNzZXMpIGNvbXBvc2VyPy5yZW1vdmVQYXNzKHBhc3MpO1xuXHRcdFx0XHRpZiAobm9ybWFsUGFzcykgbm9ybWFsUGFzcy5lbmFibGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmIChkb3duU2FtcGxpbmdQYXNzKSBkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdH07XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -15,6 +15,7 @@ export * from './hue-saturation';
15
15
  export * from './lens-flare';
16
16
  export * from './lut';
17
17
  export * from './noise';
18
+ export * from './outline';
18
19
  export * from './pixelation';
19
20
  export * from './scanline';
20
21
  export * from './sepia';
@@ -24,4 +25,4 @@ export * from './tilt-shift';
24
25
  export * from './tilt-shift-2';
25
26
  export * from './vignette';
26
27
  export * from './water';
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXNjaWknO1xuZXhwb3J0ICogZnJvbSAnLi9ibG9vbSc7XG5leHBvcnQgKiBmcm9tICcuL2JyaWdodG5lc3MtY29udHJhc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jaHJvbWF0aWMtYWJiZXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLWF2ZXJhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1kZXB0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RlcHRoJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwdGgtb2YtZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9kb3Qtc2NyZWVuJztcbmV4cG9ydCAqIGZyb20gJy4vZnhhYSc7XG5leHBvcnQgKiBmcm9tICcuL2dsaXRjaCc7XG5leHBvcnQgKiBmcm9tICcuL2dvZC1yYXlzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZCc7XG5leHBvcnQgKiBmcm9tICcuL2h1ZS1zYXR1cmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGVucy1mbGFyZSc7XG5leHBvcnQgKiBmcm9tICcuL2x1dCc7XG5leHBvcnQgKiBmcm9tICcuL25vaXNlJztcbmV4cG9ydCAqIGZyb20gJy4vcGl4ZWxhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NjYW5saW5lJztcbmV4cG9ydCAqIGZyb20gJy4vc2VwaWEnO1xuZXhwb3J0ICogZnJvbSAnLi9zaG9jay13YXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc21hYSc7XG5leHBvcnQgKiBmcm9tICcuL3RpbHQtc2hpZnQnO1xuZXhwb3J0ICogZnJvbSAnLi90aWx0LXNoaWZ0LTInO1xuZXhwb3J0ICogZnJvbSAnLi92aWduZXR0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3dhdGVyJztcbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXNjaWknO1xuZXhwb3J0ICogZnJvbSAnLi9ibG9vbSc7XG5leHBvcnQgKiBmcm9tICcuL2JyaWdodG5lc3MtY29udHJhc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jaHJvbWF0aWMtYWJiZXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLWF2ZXJhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1kZXB0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RlcHRoJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwdGgtb2YtZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9kb3Qtc2NyZWVuJztcbmV4cG9ydCAqIGZyb20gJy4vZnhhYSc7XG5leHBvcnQgKiBmcm9tICcuL2dsaXRjaCc7XG5leHBvcnQgKiBmcm9tICcuL2dvZC1yYXlzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZCc7XG5leHBvcnQgKiBmcm9tICcuL2h1ZS1zYXR1cmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGVucy1mbGFyZSc7XG5leHBvcnQgKiBmcm9tICcuL2x1dCc7XG5leHBvcnQgKiBmcm9tICcuL25vaXNlJztcbmV4cG9ydCAqIGZyb20gJy4vb3V0bGluZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpeGVsYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zY2FubGluZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcGlhJztcbmV4cG9ydCAqIGZyb20gJy4vc2hvY2std2F2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NtYWEnO1xuZXhwb3J0ICogZnJvbSAnLi90aWx0LXNoaWZ0JztcbmV4cG9ydCAqIGZyb20gJy4vdGlsdC1zaGlmdC0yJztcbmV4cG9ydCAqIGZyb20gJy4vdmlnbmV0dGUnO1xuZXhwb3J0ICogZnJvbSAnLi93YXRlcic7XG4iXX0=
@@ -0,0 +1,143 @@
1
+ import { afterNextRender, ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, inject, input, untracked, } from '@angular/core';
2
+ import { injectStore, NgtArgs, NgtSelection, omit, pick, resolveRef } from 'angular-three';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import { mergeInputs } from 'ngxtension/inject-inputs';
5
+ import { OutlineEffect } from 'postprocessing';
6
+ import { NgtpEffectComposer } from '../effect-composer';
7
+ import * as i0 from "@angular/core";
8
+ const defaultOptions = {
9
+ selectionLayer: 10,
10
+ };
11
+ export class NgtpOutline {
12
+ constructor() {
13
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
14
+ this.ngtSelection = inject(NgtSelection, { optional: true });
15
+ this.effectComposer = inject(NgtpEffectComposer);
16
+ this.store = injectStore();
17
+ this.invalidate = this.store.select('invalidate');
18
+ this.selection = pick(this.options, 'selection');
19
+ this.selectionLayer = pick(this.options, 'selectionLayer');
20
+ this.blendFunction = pick(this.options, 'blendFunction');
21
+ this.patternTexture = pick(this.options, 'patternTexture');
22
+ this.edgeStrength = pick(this.options, 'edgeStrength');
23
+ this.pulseSpeed = pick(this.options, 'pulseSpeed');
24
+ this.visibleEdgeColor = pick(this.options, 'visibleEdgeColor');
25
+ this.hiddenEdgeColor = pick(this.options, 'hiddenEdgeColor');
26
+ this.width = pick(this.options, 'width');
27
+ this.height = pick(this.options, 'height');
28
+ this.kernelSize = pick(this.options, 'kernelSize');
29
+ this.blur = pick(this.options, 'blur');
30
+ this.xRay = pick(this.options, 'xRay');
31
+ this.restOptions = omit(this.options, [
32
+ 'blendFunction',
33
+ 'patternTexture',
34
+ 'edgeStrength',
35
+ 'pulseSpeed',
36
+ 'visibleEdgeColor',
37
+ 'hiddenEdgeColor',
38
+ 'width',
39
+ 'height',
40
+ 'kernelSize',
41
+ 'blur',
42
+ 'xRay',
43
+ ]);
44
+ this.effect = computed(() => {
45
+ const [scene, camera, blendFunction, patternTexture, edgeStrength, pulseSpeed, visibleEdgeColor, hiddenEdgeColor, width, height, kernelSize, blur, xRay, restOptions,] = [
46
+ this.effectComposer.scene(),
47
+ this.effectComposer.camera(),
48
+ this.blendFunction(),
49
+ this.patternTexture(),
50
+ this.edgeStrength(),
51
+ this.pulseSpeed(),
52
+ this.visibleEdgeColor(),
53
+ this.hiddenEdgeColor(),
54
+ this.width(),
55
+ this.height(),
56
+ this.kernelSize(),
57
+ this.blur(),
58
+ this.xRay(),
59
+ untracked(this.restOptions),
60
+ ];
61
+ return new OutlineEffect(scene, camera, {
62
+ blendFunction,
63
+ patternTexture,
64
+ edgeStrength,
65
+ pulseSpeed,
66
+ visibleEdgeColor,
67
+ hiddenEdgeColor,
68
+ width,
69
+ height,
70
+ kernelSize,
71
+ blur,
72
+ xRay,
73
+ ...restOptions,
74
+ });
75
+ });
76
+ const autoEffect = injectAutoEffect();
77
+ afterNextRender(() => {
78
+ autoEffect(() => {
79
+ const effect = this.effect();
80
+ return () => effect.dispose();
81
+ });
82
+ autoEffect(() => {
83
+ const [effect, invalidate, selectionLayer] = [this.effect(), this.invalidate(), this.selectionLayer()];
84
+ effect.selectionLayer = selectionLayer;
85
+ invalidate();
86
+ });
87
+ autoEffect(() => {
88
+ // NOTE: we run this effect if declarative NgtSelection is not enabled
89
+ if (!this.ngtSelection) {
90
+ // NOTE: if NgtSelection is not used and selection is not provided, we throw
91
+ if (this.selection() === undefined) {
92
+ throw new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');
93
+ }
94
+ return this.handleSelectionChangeEffect(this.selection, this.effect, this.invalidate);
95
+ }
96
+ // NOTE: we run this effect if declarative NgtSelection is enabled
97
+ const selectionEnabled = this.ngtSelection.enabled();
98
+ if (!selectionEnabled)
99
+ return;
100
+ return this.handleSelectionChangeEffect(this.ngtSelection.collection, this.effect, this.invalidate);
101
+ });
102
+ });
103
+ }
104
+ handleSelectionChangeEffect(collection, _effect, _invalidate) {
105
+ const selection = collection();
106
+ if (!selection || selection.length === 0)
107
+ return;
108
+ const [effect, invalidate] = [_effect(), _invalidate()];
109
+ const objects = [];
110
+ for (const el of selection) {
111
+ const obj = resolveRef(el);
112
+ if (!obj)
113
+ continue;
114
+ objects.push(obj);
115
+ }
116
+ if (objects.length === 0)
117
+ return;
118
+ effect.selection.set(objects);
119
+ invalidate();
120
+ return () => {
121
+ effect.selection.clear();
122
+ invalidate();
123
+ };
124
+ }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpOutline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpOutline, isStandalone: true, selector: "ngtp-outline", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
127
+ <ngt-primitive *args="[effect()]" />
128
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
+ }
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpOutline, decorators: [{
131
+ type: Component,
132
+ args: [{
133
+ selector: 'ngtp-outline',
134
+ standalone: true,
135
+ template: `
136
+ <ngt-primitive *args="[effect()]" />
137
+ `,
138
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
139
+ changeDetection: ChangeDetectionStrategy.OnPush,
140
+ imports: [NgtArgs],
141
+ }]
142
+ }], ctorParameters: () => [] });
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0bGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL291dGxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFFdEIsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBT3hELE1BQU0sY0FBYyxHQUF1QjtJQUMxQyxjQUFjLEVBQUUsRUFBRTtDQUNsQixDQUFDO0FBWUYsTUFBTSxPQUFPLFdBQVc7SUFxRnZCO1FBcEZBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEUsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEQsbUJBQWMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM1QyxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVks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LEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRhZnRlck5leHRSZW5kZXIsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0U3RvcmUsIE5ndEFyZ3MsIE5ndFNlbGVjdGlvbiwgb21pdCwgcGljaywgcmVzb2x2ZVJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgT3V0bGluZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE9iamVjdDNEIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxuZXhwb3J0IHR5cGUgTmd0cE91dGxpbmVPcHRpb25zID0gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBPdXRsaW5lRWZmZWN0PlsyXSAmIHtcblx0c2VsZWN0aW9uPzogQXJyYXk8T2JqZWN0M0QgfCBFbGVtZW50UmVmPE9iamVjdDNEPj47XG5cdHNlbGVjdGlvbkxheWVyOiBudW1iZXI7XG59O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0cE91dGxpbmVPcHRpb25zID0ge1xuXHRzZWxlY3Rpb25MYXllcjogMTAsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLW91dGxpbmUnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cE91dGxpbmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJpdmF0ZSBuZ3RTZWxlY3Rpb24gPSBpbmplY3QoTmd0U2VsZWN0aW9uLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuXG5cdHByaXZhdGUgc2VsZWN0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdzZWxlY3Rpb24nKTtcblx0cHJpdmF0ZSBzZWxlY3Rpb25MYXllciA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2VsZWN0aW9uTGF5ZXInKTtcblxuXHRwcml2YXRlIGJsZW5kRnVuY3Rpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nKTtcblx0cHJpdmF0ZSBwYXR0ZXJuVGV4dHVyZSA9IHBpY2sodGhpcy5vcHRpb25zLCAncGF0dGVyblRleHR1cmUnKTtcblx0cHJpdmF0ZSBlZGdlU3RyZW5ndGggPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VkZ2VTdHJlbmd0aCcpO1xuXHRwcml2YXRlIHB1bHNlU3BlZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3B1bHNlU3BlZWQnKTtcblx0cHJpdmF0ZSB2aXNpYmxlRWRnZUNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICd2aXNpYmxlRWRnZUNvbG9yJyk7XG5cdHByaXZhdGUgaGlkZGVuRWRnZUNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdoaWRkZW5FZGdlQ29sb3InKTtcblx0cHJpdmF0ZSB3aWR0aCA9IHBpY2sodGhpcy5vcHRpb25zLCAnd2lkdGgnKTtcblx0cHJpdmF0ZSBoZWlnaHQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2hlaWdodCcpO1xuXHRwcml2YXRlIGtlcm5lbFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2tlcm5lbFNpemUnKTtcblx0cHJpdmF0ZSBibHVyID0gcGljayh0aGlzLm9wdGlvbnMsICdibHVyJyk7XG5cdHByaXZhdGUgeFJheSA9IHBpY2sodGhpcy5vcHRpb25zLCAneFJheScpO1xuXHRwcml2YXRlIHJlc3RPcHRpb25zID0gb21pdCh0aGlzLm9wdGlvbnMsIFtcblx0XHQnYmxlbmRGdW5jdGlvbicsXG5cdFx0J3BhdHRlcm5UZXh0dXJlJyxcblx0XHQnZWRnZVN0cmVuZ3RoJyxcblx0XHQncHVsc2VTcGVlZCcsXG5cdFx0J3Zpc2libGVFZGdlQ29sb3InLFxuXHRcdCdoaWRkZW5FZGdlQ29sb3InLFxuXHRcdCd3aWR0aCcsXG5cdFx0J2hlaWdodCcsXG5cdFx0J2tlcm5lbFNpemUnLFxuXHRcdCdibHVyJyxcblx0XHQneFJheScsXG5cdF0pO1xuXG5cdGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRwYXR0ZXJuVGV4dHVyZSxcblx0XHRcdGVkZ2VTdHJlbmd0aCxcblx0XHRcdHB1bHNlU3BlZWQsXG5cdFx0XHR2aXNpYmxlRWRnZUNvbG9yLFxuXHRcdFx0aGlkZGVuRWRnZUNvbG9yLFxuXHRcdFx0d2lkdGgsXG5cdFx0XHRoZWlnaHQsXG5cdFx0XHRrZXJuZWxTaXplLFxuXHRcdFx0Ymx1cixcblx0XHRcdHhSYXksXG5cdFx0XHRyZXN0T3B0aW9ucyxcblx0XHRdID0gW1xuXHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5zY2VuZSgpLFxuXHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5jYW1lcmEoKSxcblx0XHRcdHRoaXMuYmxlbmRGdW5jdGlvbigpLFxuXHRcdFx0dGhpcy5wYXR0ZXJuVGV4dHVyZSgpLFxuXHRcdFx0dGhpcy5lZGdlU3RyZW5ndGgoKSxcblx0XHRcdHRoaXMucHVsc2VTcGVlZCgpLFxuXHRcdFx0dGhpcy52aXNpYmxlRWRnZUNvbG9yKCksXG5cdFx0XHR0aGlzLmhpZGRlbkVkZ2VDb2xvcigpLFxuXHRcdFx0dGhpcy53aWR0aCgpLFxuXHRcdFx0dGhpcy5oZWlnaHQoKSxcblx0XHRcdHRoaXMua2VybmVsU2l6ZSgpLFxuXHRcdFx0dGhpcy5ibHVyKCksXG5cdFx0XHR0aGlzLnhSYXkoKSxcblx0XHRcdHVudHJhY2tlZCh0aGlzLnJlc3RPcHRpb25zKSxcblx0XHRdO1xuXG5cdFx0cmV0dXJuIG5ldyBPdXRsaW5lRWZmZWN0KHNjZW5lLCBjYW1lcmEsIHtcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRwYXR0ZXJuVGV4dHVyZSxcblx0XHRcdGVkZ2VTdHJlbmd0aCxcblx0XHRcdHB1bHNlU3BlZWQsXG5cdFx0XHR2aXNpYmxlRWRnZUNvbG9yLFxuXHRcdFx0aGlkZGVuRWRnZUNvbG9yLFxuXHRcdFx0d2lkdGgsXG5cdFx0XHRoZWlnaHQsXG5cdFx0XHRrZXJuZWxTaXplLFxuXHRcdFx0Ymx1cixcblx0XHRcdHhSYXksXG5cdFx0XHQuLi5yZXN0T3B0aW9ucyxcblx0XHR9KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRhdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IGVmZmVjdC5kaXNwb3NlKCk7XG5cdFx0XHR9KTtcblxuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGUsIHNlbGVjdGlvbkxheWVyXSA9IFt0aGlzLmVmZmVjdCgpLCB0aGlzLmludmFsaWRhdGUoKSwgdGhpcy5zZWxlY3Rpb25MYXllcigpXTtcblx0XHRcdFx0ZWZmZWN0LnNlbGVjdGlvbkxheWVyID0gc2VsZWN0aW9uTGF5ZXI7XG5cdFx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdH0pO1xuXG5cdFx0XHRhdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Ly8gTk9URTogd2UgcnVuIHRoaXMgZWZmZWN0IGlmIGRlY2xhcmF0aXZlIE5ndFNlbGVjdGlvbiBpcyBub3QgZW5hYmxlZFxuXHRcdFx0XHRpZiAoIXRoaXMubmd0U2VsZWN0aW9uKSB7XG5cdFx0XHRcdFx0Ly8gTk9URTogaWYgTmd0U2VsZWN0aW9uIGlzIG5vdCB1c2VkIGFuZCBzZWxlY3Rpb24gaXMgbm90IHByb3ZpZGVkLCB3ZSB0aHJvd1xuXHRcdFx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbigpID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignW05HVCBQb3N0UHJvY2Vzc2luZ106IG5ndHAtb3V0bGluZSByZXF1aXJlcyBzZWxlY3Rpb24gaW5wdXQgb3IgdXNlIE5ndFNlbGVjdGlvbicpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZUVmZmVjdCh0aGlzLnNlbGVjdGlvbiwgdGhpcy5lZmZlY3QsIHRoaXMuaW52YWxpZGF0ZSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBOT1RFOiB3ZSBydW4gdGhpcyBlZmZlY3QgaWYgZGVjbGFyYXRpdmUgTmd0U2VsZWN0aW9uIGlzIGVuYWJsZWRcblx0XHRcdFx0Y29uc3Qgc2VsZWN0aW9uRW5hYmxlZCA9IHRoaXMubmd0U2VsZWN0aW9uLmVuYWJsZWQoKTtcblx0XHRcdFx0aWYgKCFzZWxlY3Rpb25FbmFibGVkKSByZXR1cm47XG5cdFx0XHRcdHJldHVybiB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZUVmZmVjdCh0aGlzLm5ndFNlbGVjdGlvbi5jb2xsZWN0aW9uLCB0aGlzLmVmZmVjdCwgdGhpcy5pbnZhbGlkYXRlKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBoYW5kbGVTZWxlY3Rpb25DaGFuZ2VFZmZlY3QoXG5cdFx0Y29sbGVjdGlvbjogKCkgPT4gQXJyYXk8T2JqZWN0M0QgfCBFbGVtZW50UmVmPE9iamVjdDNEPj4gfCB1bmRlZmluZWQsXG5cdFx0X2VmZmVjdDogKCkgPT4gT3V0bGluZUVmZmVjdCxcblx0XHRfaW52YWxpZGF0ZTogKCkgPT4gKCkgPT4gdm9pZCxcblx0KSB7XG5cdFx0Y29uc3Qgc2VsZWN0aW9uID0gY29sbGVjdGlvbigpO1xuXHRcdGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5sZW5ndGggPT09IDApIHJldHVybjtcblxuXHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGVdID0gW19lZmZlY3QoKSwgX2ludmFsaWRhdGUoKV07XG5cblx0XHRjb25zdCBvYmplY3RzOiBPYmplY3QzRFtdID0gW107XG5cdFx0Zm9yIChjb25zdCBlbCBvZiBzZWxlY3Rpb24pIHtcblx0XHRcdGNvbnN0IG9iaiA9IHJlc29sdmVSZWYoZWwpO1xuXHRcdFx0aWYgKCFvYmopIGNvbnRpbnVlO1xuXHRcdFx0b2JqZWN0cy5wdXNoKG9iaik7XG5cdFx0fVxuXG5cdFx0aWYgKG9iamVjdHMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cblx0XHRlZmZlY3Quc2VsZWN0aW9uLnNldChvYmplY3RzKTtcblx0XHRpbnZhbGlkYXRlKCk7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0ZWZmZWN0LnNlbGVjdGlvbi5jbGVhcigpO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH07XG5cdH1cbn1cbiJdfQ==
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, input, Directive, Injector, computed, viewChild, afterNextRender } from '@angular/core';
3
- import { injectStore, extend, pick, injectBeforeRender, getLocalState, NgtArgs, vector2, is } from 'angular-three';
2
+ import { inject, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, input, Directive, Injector, computed, viewChild, afterNextRender, untracked } from '@angular/core';
3
+ import { injectStore, pick, extend, injectBeforeRender, getLocalState, NgtArgs, vector2, is, NgtSelection, omit, resolveRef } from 'angular-three';
4
4
  import { createNoopInjectionToken } from 'ngxtension/create-injection-token';
5
5
  import { injectAutoEffect } from 'ngxtension/auto-effect';
6
6
  import { mergeInputs } from 'ngxtension/inject-inputs';
7
- import { EffectAttribute, EffectComposer, RenderPass, NormalPass, DepthDownsamplingPass, Effect, EffectPass, Pass, BloomEffect, BlendFunction, BrightnessContrastEffect, ChromaticAberrationEffect, ColorAverageEffect, ColorDepthEffect, DepthEffect, DepthOfFieldEffect, MaskFunction, DotScreenEffect, FXAAEffect, GlitchEffect, GlitchMode, GodRaysEffect, GridEffect, HueSaturationEffect, LUT3DEffect, NoiseEffect, PixelationEffect, ScanlineEffect, SepiaEffect, ShockWaveEffect, SMAAEffect, TiltShiftEffect, VignetteEffect } from 'postprocessing';
8
- import { Group, HalfFloatType, NoToneMapping, Uniform, Texture, Color, CanvasTexture, RepeatWrapping, NearestFilter, Vector3, Vector2, Mesh } from 'three';
7
+ import { EffectAttribute, EffectComposer, RenderPass, NormalPass, DepthDownsamplingPass, Effect, EffectPass, Pass, BloomEffect, BlendFunction, BrightnessContrastEffect, ChromaticAberrationEffect, ColorAverageEffect, ColorDepthEffect, DepthEffect, DepthOfFieldEffect, MaskFunction, DotScreenEffect, FXAAEffect, GlitchEffect, GlitchMode, GodRaysEffect, GridEffect, HueSaturationEffect, LUT3DEffect, NoiseEffect, OutlineEffect, PixelationEffect, ScanlineEffect, SepiaEffect, ShockWaveEffect, SMAAEffect, TiltShiftEffect, VignetteEffect } from 'postprocessing';
8
+ import { HalfFloatType, Group, NoToneMapping, Uniform, Texture, Color, CanvasTexture, RepeatWrapping, NearestFilter, Vector3, Vector2, Mesh } from 'three';
9
9
  import { isWebGL2Available } from 'three-stdlib';
10
10
  import { easing } from 'maath';
11
11
 
@@ -55,8 +55,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImpor
55
55
  }] });
56
56
  const NgtpEffectHostDirective = { directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] };
57
57
 
58
- extend({ Group });
59
- const defaultOptions$3 = {
58
+ const defaultOptions$4 = {
60
59
  enabled: true,
61
60
  renderPriority: 1,
62
61
  autoClear: true,
@@ -68,7 +67,7 @@ function isConvolution(effect) {
68
67
  }
69
68
  class NgtpEffectComposer {
70
69
  constructor() {
71
- this.options = input(defaultOptions$3, { transform: mergeInputs(defaultOptions$3) });
70
+ this.options = input(defaultOptions$4, { transform: mergeInputs(defaultOptions$4) });
72
71
  this.injector = inject(Injector);
73
72
  this.autoEffect = injectAutoEffect();
74
73
  this.store = injectStore();
@@ -122,6 +121,7 @@ class NgtpEffectComposer {
122
121
  }
123
122
  return { composer, normalPass, downSamplingPass };
124
123
  });
124
+ extend({ Group });
125
125
  afterNextRender(() => {
126
126
  this.disableToneMapping();
127
127
  this.setComposerSize();
@@ -317,7 +317,7 @@ class ASCIIEffect extends Effect {
317
317
  return texture;
318
318
  }
319
319
  }
320
- const defaultOptions$2 = {
320
+ const defaultOptions$3 = {
321
321
  font: 'arial',
322
322
  characters: ` .:,'-^=*+?!|0#X%WM@`,
323
323
  fontSize: 54,
@@ -327,7 +327,7 @@ const defaultOptions$2 = {
327
327
  };
328
328
  class NgtpASCII {
329
329
  constructor() {
330
- this.options = input(defaultOptions$2, { transform: mergeInputs(defaultOptions$2) });
330
+ this.options = input(defaultOptions$3, { transform: mergeInputs(defaultOptions$3) });
331
331
  this.effect = computed(() => new ASCIIEffect(this.options()));
332
332
  }
333
333
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -895,7 +895,7 @@ class LensFlareEffect extends Effect {
895
895
  }
896
896
  }
897
897
  }
898
- const defaultOptions$1 = {
898
+ const defaultOptions$2 = {
899
899
  position: new Vector3(-25, 6, -60),
900
900
  followMouse: false,
901
901
  smoothTime: 0.7,
@@ -908,7 +908,7 @@ class NgtpLensFlare {
908
908
  this.raycaster = this.store.select('raycaster');
909
909
  this.pointer = this.store.select('pointer');
910
910
  this.effectComposer = inject(NgtpEffectComposer);
911
- this.options = input(defaultOptions$1, { transform: mergeInputs(defaultOptions$1) });
911
+ this.options = input(defaultOptions$2, { transform: mergeInputs(defaultOptions$2) });
912
912
  this.projectedPosition = new Vector3();
913
913
  this.mouse2d = new Vector2();
914
914
  this.effect = computed(() => {
@@ -1076,6 +1076,142 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImpor
1076
1076
  }]
1077
1077
  }] });
1078
1078
 
1079
+ const defaultOptions$1 = {
1080
+ selectionLayer: 10,
1081
+ };
1082
+ class NgtpOutline {
1083
+ constructor() {
1084
+ this.options = input(defaultOptions$1, { transform: mergeInputs(defaultOptions$1) });
1085
+ this.ngtSelection = inject(NgtSelection, { optional: true });
1086
+ this.effectComposer = inject(NgtpEffectComposer);
1087
+ this.store = injectStore();
1088
+ this.invalidate = this.store.select('invalidate');
1089
+ this.selection = pick(this.options, 'selection');
1090
+ this.selectionLayer = pick(this.options, 'selectionLayer');
1091
+ this.blendFunction = pick(this.options, 'blendFunction');
1092
+ this.patternTexture = pick(this.options, 'patternTexture');
1093
+ this.edgeStrength = pick(this.options, 'edgeStrength');
1094
+ this.pulseSpeed = pick(this.options, 'pulseSpeed');
1095
+ this.visibleEdgeColor = pick(this.options, 'visibleEdgeColor');
1096
+ this.hiddenEdgeColor = pick(this.options, 'hiddenEdgeColor');
1097
+ this.width = pick(this.options, 'width');
1098
+ this.height = pick(this.options, 'height');
1099
+ this.kernelSize = pick(this.options, 'kernelSize');
1100
+ this.blur = pick(this.options, 'blur');
1101
+ this.xRay = pick(this.options, 'xRay');
1102
+ this.restOptions = omit(this.options, [
1103
+ 'blendFunction',
1104
+ 'patternTexture',
1105
+ 'edgeStrength',
1106
+ 'pulseSpeed',
1107
+ 'visibleEdgeColor',
1108
+ 'hiddenEdgeColor',
1109
+ 'width',
1110
+ 'height',
1111
+ 'kernelSize',
1112
+ 'blur',
1113
+ 'xRay',
1114
+ ]);
1115
+ this.effect = computed(() => {
1116
+ const [scene, camera, blendFunction, patternTexture, edgeStrength, pulseSpeed, visibleEdgeColor, hiddenEdgeColor, width, height, kernelSize, blur, xRay, restOptions,] = [
1117
+ this.effectComposer.scene(),
1118
+ this.effectComposer.camera(),
1119
+ this.blendFunction(),
1120
+ this.patternTexture(),
1121
+ this.edgeStrength(),
1122
+ this.pulseSpeed(),
1123
+ this.visibleEdgeColor(),
1124
+ this.hiddenEdgeColor(),
1125
+ this.width(),
1126
+ this.height(),
1127
+ this.kernelSize(),
1128
+ this.blur(),
1129
+ this.xRay(),
1130
+ untracked(this.restOptions),
1131
+ ];
1132
+ return new OutlineEffect(scene, camera, {
1133
+ blendFunction,
1134
+ patternTexture,
1135
+ edgeStrength,
1136
+ pulseSpeed,
1137
+ visibleEdgeColor,
1138
+ hiddenEdgeColor,
1139
+ width,
1140
+ height,
1141
+ kernelSize,
1142
+ blur,
1143
+ xRay,
1144
+ ...restOptions,
1145
+ });
1146
+ });
1147
+ const autoEffect = injectAutoEffect();
1148
+ afterNextRender(() => {
1149
+ autoEffect(() => {
1150
+ const effect = this.effect();
1151
+ return () => effect.dispose();
1152
+ });
1153
+ autoEffect(() => {
1154
+ const [effect, invalidate, selectionLayer] = [this.effect(), this.invalidate(), this.selectionLayer()];
1155
+ effect.selectionLayer = selectionLayer;
1156
+ invalidate();
1157
+ });
1158
+ autoEffect(() => {
1159
+ // NOTE: we run this effect if declarative NgtSelection is not enabled
1160
+ if (!this.ngtSelection) {
1161
+ // NOTE: if NgtSelection is not used and selection is not provided, we throw
1162
+ if (this.selection() === undefined) {
1163
+ throw new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');
1164
+ }
1165
+ return this.handleSelectionChangeEffect(this.selection, this.effect, this.invalidate);
1166
+ }
1167
+ // NOTE: we run this effect if declarative NgtSelection is enabled
1168
+ const selectionEnabled = this.ngtSelection.enabled();
1169
+ if (!selectionEnabled)
1170
+ return;
1171
+ return this.handleSelectionChangeEffect(this.ngtSelection.collection, this.effect, this.invalidate);
1172
+ });
1173
+ });
1174
+ }
1175
+ handleSelectionChangeEffect(collection, _effect, _invalidate) {
1176
+ const selection = collection();
1177
+ if (!selection || selection.length === 0)
1178
+ return;
1179
+ const [effect, invalidate] = [_effect(), _invalidate()];
1180
+ const objects = [];
1181
+ for (const el of selection) {
1182
+ const obj = resolveRef(el);
1183
+ if (!obj)
1184
+ continue;
1185
+ objects.push(obj);
1186
+ }
1187
+ if (objects.length === 0)
1188
+ return;
1189
+ effect.selection.set(objects);
1190
+ invalidate();
1191
+ return () => {
1192
+ effect.selection.clear();
1193
+ invalidate();
1194
+ };
1195
+ }
1196
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpOutline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1197
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.3", type: NgtpOutline, isStandalone: true, selector: "ngtp-outline", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1198
+ <ngt-primitive *args="[effect()]" />
1199
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1200
+ }
1201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtpOutline, decorators: [{
1202
+ type: Component,
1203
+ args: [{
1204
+ selector: 'ngtp-outline',
1205
+ standalone: true,
1206
+ template: `
1207
+ <ngt-primitive *args="[effect()]" />
1208
+ `,
1209
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
1210
+ changeDetection: ChangeDetectionStrategy.OnPush,
1211
+ imports: [NgtArgs],
1212
+ }]
1213
+ }], ctorParameters: () => [] });
1214
+
1079
1215
  class NgtpPixelation {
1080
1216
  constructor() {
1081
1217
  this.options = input({ granularity: 5 }, { transform: mergeInputs({ granularity: 5 }) });
@@ -1473,5 +1609,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImpor
1473
1609
  * Generated bundle index. Do not edit.
1474
1610
  */
1475
1611
 
1476
- export { ASCIIEffect, LensFlareEffect, NgtpASCII, NgtpBloom, NgtpBrightnessContrast, NgtpChromaticAberration, NgtpColorAverage, NgtpColorDepth, NgtpDepth, NgtpDepthOfField, NgtpDotScreen, NgtpEffect, NgtpEffectBlendMode, NgtpEffectComposer, NgtpEffectHostDirective, NgtpFXAA, NgtpGlitch, NgtpGodRays, NgtpGrid, NgtpHueSaturation, NgtpLUT, NgtpLensFlare, NgtpNoise, NgtpPixelation, NgtpSMAA, NgtpScanline, NgtpSepia, NgtpShockWave, NgtpTiltShift, NgtpTiltShift2, NgtpVignette, NgtpWater, TiltShift2Effect, WaterEffect, injectDefaultEffectOptions, provideDefaultEffectOptions };
1612
+ export { ASCIIEffect, LensFlareEffect, NgtpASCII, NgtpBloom, NgtpBrightnessContrast, NgtpChromaticAberration, NgtpColorAverage, NgtpColorDepth, NgtpDepth, NgtpDepthOfField, NgtpDotScreen, NgtpEffect, NgtpEffectBlendMode, NgtpEffectComposer, NgtpEffectHostDirective, NgtpFXAA, NgtpGlitch, NgtpGodRays, NgtpGrid, NgtpHueSaturation, NgtpLUT, NgtpLensFlare, NgtpNoise, NgtpOutline, NgtpPixelation, NgtpSMAA, NgtpScanline, NgtpSepia, NgtpShockWave, NgtpTiltShift, NgtpTiltShift2, NgtpVignette, NgtpWater, TiltShift2Effect, WaterEffect, injectDefaultEffectOptions, provideDefaultEffectOptions };
1477
1613
  //# sourceMappingURL=angular-three-postprocessing.mjs.map