angular-three 1.9.11 → 1.9.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/esm2020/lib/canvas.mjs +18 -22
  2. package/esm2020/lib/di/before-render.mjs +2 -2
  3. package/esm2020/lib/di/ref.mjs +9 -11
  4. package/esm2020/lib/di/run-in-context.mjs +6 -1
  5. package/esm2020/lib/directives/args.mjs +5 -7
  6. package/esm2020/lib/directives/common.mjs +6 -5
  7. package/esm2020/lib/directives/parent.mjs +3 -3
  8. package/esm2020/lib/directives/repeat.mjs +3 -3
  9. package/esm2020/lib/loader.mjs +10 -6
  10. package/esm2020/lib/pipes/push.mjs +16 -21
  11. package/esm2020/lib/portal.mjs +46 -50
  12. package/esm2020/lib/renderer/provider.mjs +3 -5
  13. package/esm2020/lib/renderer/renderer.mjs +9 -8
  14. package/esm2020/lib/renderer/store.mjs +376 -0
  15. package/esm2020/lib/renderer/utils.mjs +16 -27
  16. package/esm2020/lib/routed-scene.mjs +6 -5
  17. package/esm2020/lib/stores/rx-store.mjs +17 -40
  18. package/esm2020/lib/stores/store.mjs +15 -21
  19. package/esm2020/lib/utils/instance.mjs +3 -1
  20. package/esm2020/lib/utils/safe-detect-changes.mjs +4 -2
  21. package/fesm2015/angular-three.mjs +183 -238
  22. package/fesm2015/angular-three.mjs.map +1 -1
  23. package/fesm2020/angular-three.mjs +190 -246
  24. package/fesm2020/angular-three.mjs.map +1 -1
  25. package/lib/canvas.d.ts +2 -2
  26. package/lib/di/run-in-context.d.ts +5 -0
  27. package/lib/pipes/push.d.ts +1 -0
  28. package/lib/portal.d.ts +2 -2
  29. package/lib/renderer/renderer.d.ts +4 -4
  30. package/lib/renderer/{state.d.ts → store.d.ts} +2 -2
  31. package/lib/stores/rx-store.d.ts +2 -8
  32. package/lib/utils/safe-detect-changes.d.ts +1 -1
  33. package/package.json +5 -5
  34. package/plugin/package.json +2 -2
  35. package/esm2020/lib/renderer/state.mjs +0 -381
@@ -1,5 +1,6 @@
1
- import { ChangeDetectorRef, inject, Pipe } from '@angular/core';
1
+ import { ChangeDetectorRef, EnvironmentInjector, inject, Pipe } from '@angular/core';
2
2
  import { isObservable } from 'rxjs';
3
+ import { safeDetectChanges } from '../utils/safe-detect-changes';
3
4
  import * as i0 from "@angular/core";
4
5
  function isPromise(value) {
5
6
  return ((value instanceof Promise || Object.prototype.toString.call(value) === '[object Promise]') &&
@@ -9,46 +10,40 @@ export class NgtPush {
9
10
  constructor() {
10
11
  this.cdr = inject(ChangeDetectorRef);
11
12
  this.parentCdr = inject(ChangeDetectorRef, { skipSelf: true, optional: true });
13
+ this.envCdr = inject(EnvironmentInjector).get(ChangeDetectorRef, null);
12
14
  }
13
15
  transform(value, defaultValue = null) {
14
- if (this.obj === value) {
16
+ if (this.obj === value)
15
17
  return this.latestValue;
16
- }
17
18
  this.obj = value;
18
19
  this.latestValue = defaultValue;
19
- if (this.sub) {
20
+ if (this.sub)
20
21
  this.sub.unsubscribe();
21
- }
22
- if (isObservable(this.obj)) {
22
+ if (isObservable(this.obj))
23
23
  this.sub = this.obj.subscribe(this.updateValue.bind(this));
24
- }
25
- else if (isPromise(this.obj)) {
24
+ else if (isPromise(this.obj))
26
25
  this.obj.then(this.updateValue.bind(this));
27
- }
28
- else {
26
+ else
29
27
  throw new Error(`[NGT] Invalid value passed to ngtPush pipe`);
30
- }
31
28
  return this.latestValue;
32
29
  }
33
30
  updateValue(val) {
34
31
  this.latestValue = val;
35
- this.cdr.detectChanges();
36
- if (this.parentCdr) {
37
- this.parentCdr.detectChanges();
38
- }
32
+ safeDetectChanges(this.cdr);
33
+ safeDetectChanges(this.parentCdr);
34
+ safeDetectChanges(this.envCdr);
39
35
  }
40
36
  ngOnDestroy() {
41
- if (this.sub) {
37
+ if (this.sub)
42
38
  this.sub.unsubscribe();
43
- }
44
39
  this.latestValue = undefined;
45
40
  this.obj = undefined;
46
41
  }
47
42
  }
48
- NgtPush.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtPush, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
49
- NgtPush.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: NgtPush, isStandalone: true, name: "ngtPush", pure: false });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtPush, decorators: [{
43
+ NgtPush.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtPush, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
44
+ NgtPush.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.5", ngImport: i0, type: NgtPush, isStandalone: true, name: "ngtPush", pure: false });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtPush, decorators: [{
51
46
  type: Pipe,
52
47
  args: [{ name: 'ngtPush', pure: false, standalone: true }]
53
48
  }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS9zcmMvbGliL3BpcGVzL3B1c2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBYSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQWlDLE1BQU0sTUFBTSxDQUFDOztBQUVuRSxTQUFTLFNBQVMsQ0FBQyxLQUFjO0lBQzdCLE9BQU8sQ0FDSCxDQUFDLEtBQUssWUFBWSxPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGtCQUFrQixDQUFDO1FBQzFGLE9BQVEsS0FBMEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQzVELENBQUM7QUFDTixDQUFDO0FBR0QsTUFBTSxPQUFPLE9BQU87SUFEcEI7UUFFcUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBMkM5RjtJQXJDRyxTQUFTLENBQUMsS0FBeUIsRUFBRSxlQUFrQixJQUFLO1FBQ3hELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBZ0IsQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzlEO2FBQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxHQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzlEO2FBQU07WUFDSCxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7U0FDakU7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFTyxXQUFXLENBQUMsR0FBTTtRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUM7SUFDekIsQ0FBQzs7b0dBNUNRLE9BQU87a0dBQVAsT0FBTzsyRkFBUCxPQUFPO2tCQURuQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgaW5qZWN0LCBPbkRlc3Ryb3ksIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZUlucHV0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZnVuY3Rpb24gaXNQcm9taXNlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUHJvbWlzZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKHZhbHVlIGluc3RhbmNlb2YgUHJvbWlzZSB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBQcm9taXNlXScpICYmXG4gICAgICAgIHR5cGVvZiAodmFsdWUgYXMgUHJvbWlzZTx1bmtub3duPilbJ3RoZW4nXSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICk7XG59XG5cbkBQaXBlKHsgbmFtZTogJ25ndFB1c2gnLCBwdXJlOiBmYWxzZSwgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndFB1c2g8VD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudENkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZiwgeyBza2lwU2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICBwcml2YXRlIHN1Yj86IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIG9iaj86IE9ic2VydmFibGVJbnB1dDxUPjtcbiAgICBwcml2YXRlIGxhdGVzdFZhbHVlPzogVDtcblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogT2JzZXJ2YWJsZUlucHV0PFQ+LCBkZWZhdWx0VmFsdWU6IFQgPSBudWxsISk6IFQge1xuICAgICAgICBpZiAodGhpcy5vYmogPT09IHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sYXRlc3RWYWx1ZSBhcyBUO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2JqID0gdmFsdWU7XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuc3ViKSB7XG4gICAgICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZSh0aGlzLm9iaikpIHtcbiAgICAgICAgICAgIHRoaXMuc3ViID0gdGhpcy5vYmouc3Vic2NyaWJlKHRoaXMudXBkYXRlVmFsdWUuYmluZCh0aGlzKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNQcm9taXNlKHRoaXMub2JqKSkge1xuICAgICAgICAgICAgKHRoaXMub2JqIGFzIFByb21pc2U8VD4pLnRoZW4odGhpcy51cGRhdGVWYWx1ZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgW05HVF0gSW52YWxpZCB2YWx1ZSBwYXNzZWQgdG8gbmd0UHVzaCBwaXBlYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5sYXRlc3RWYWx1ZSBhcyBUO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsdWUodmFsOiBUKSB7XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWUgPSB2YWw7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50Q2RyKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudENkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3ViKSB7XG4gICAgICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMub2JqID0gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS9zcmMvbGliL3BpcGVzL3B1c2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBYSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxZQUFZLEVBQWlDLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUVqRSxTQUFTLFNBQVMsQ0FBQyxLQUFjO0lBQzdCLE9BQU8sQ0FDSCxDQUFDLEtBQUssWUFBWSxPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGtCQUFrQixDQUFDO1FBQzFGLE9BQVEsS0FBMEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQzVELENBQUM7QUFDTixDQUFDO0FBR0QsTUFBTSxPQUFPLE9BQU87SUFEcEI7UUFFcUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FpQ3RGO0lBM0JHLFNBQVMsQ0FBQyxLQUF5QixFQUFFLGVBQWtCLElBQUs7UUFDeEQsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxXQUFnQixDQUFDO1FBRXJELElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLEdBQUc7WUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXJDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDbEYsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUFHLElBQUksQ0FBQyxHQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDOztZQUNwRixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFFbkUsT0FBTyxJQUFJLENBQUMsV0FBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRU8sV0FBVyxDQUFDLEdBQU07UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDdkIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxHQUFHO1lBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztJQUN6QixDQUFDOztvR0FuQ1EsT0FBTztrR0FBUCxPQUFPOzJGQUFQLE9BQU87a0JBRG5CLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbnZpcm9ubWVudEluamVjdG9yLCBpbmplY3QsIE9uRGVzdHJveSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlSW5wdXQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2FmZURldGVjdENoYW5nZXMgfSBmcm9tICcuLi91dGlscy9zYWZlLWRldGVjdC1jaGFuZ2VzJztcblxuZnVuY3Rpb24gaXNQcm9taXNlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUHJvbWlzZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKHZhbHVlIGluc3RhbmNlb2YgUHJvbWlzZSB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBQcm9taXNlXScpICYmXG4gICAgICAgIHR5cGVvZiAodmFsdWUgYXMgUHJvbWlzZTx1bmtub3duPilbJ3RoZW4nXSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICk7XG59XG5cbkBQaXBlKHsgbmFtZTogJ25ndFB1c2gnLCBwdXJlOiBmYWxzZSwgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndFB1c2g8VD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudENkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZiwgeyBza2lwU2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnZDZHIgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3RvcikuZ2V0KENoYW5nZURldGVjdG9yUmVmLCBudWxsKTtcblxuICAgIHByaXZhdGUgc3ViPzogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgb2JqPzogT2JzZXJ2YWJsZUlucHV0PFQ+O1xuICAgIHByaXZhdGUgbGF0ZXN0VmFsdWU/OiBUO1xuXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBPYnNlcnZhYmxlSW5wdXQ8VD4sIGRlZmF1bHRWYWx1ZTogVCA9IG51bGwhKTogVCB7XG4gICAgICAgIGlmICh0aGlzLm9iaiA9PT0gdmFsdWUpIHJldHVybiB0aGlzLmxhdGVzdFZhbHVlIGFzIFQ7XG5cbiAgICAgICAgdGhpcy5vYmogPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5zdWIpIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZSh0aGlzLm9iaikpIHRoaXMuc3ViID0gdGhpcy5vYmouc3Vic2NyaWJlKHRoaXMudXBkYXRlVmFsdWUuYmluZCh0aGlzKSk7XG4gICAgICAgIGVsc2UgaWYgKGlzUHJvbWlzZSh0aGlzLm9iaikpICh0aGlzLm9iaiBhcyBQcm9taXNlPFQ+KS50aGVuKHRoaXMudXBkYXRlVmFsdWUuYmluZCh0aGlzKSk7XG4gICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKGBbTkdUXSBJbnZhbGlkIHZhbHVlIHBhc3NlZCB0byBuZ3RQdXNoIHBpcGVgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5sYXRlc3RWYWx1ZSBhcyBUO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsdWUodmFsOiBUKSB7XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWUgPSB2YWw7XG4gICAgICAgIHNhZmVEZXRlY3RDaGFuZ2VzKHRoaXMuY2RyKTtcbiAgICAgICAgc2FmZURldGVjdENoYW5nZXModGhpcy5wYXJlbnRDZHIpO1xuICAgICAgICBzYWZlRGV0ZWN0Q2hhbmdlcyh0aGlzLmVudkNkcik7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnN1YikgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5vYmogPSB1bmRlZmluZWQ7XG4gICAgfVxufVxuIl19
@@ -1,5 +1,3 @@
1
- var _NgtPortal_instances, _NgtPortal_inject;
2
- import { __classPrivateFieldGet } from "tslib";
3
1
  import { NgIf } from '@angular/common';
4
2
  import { Component, ContentChild, Directive, EventEmitter, inject, Input, Output, SkipSelf, TemplateRef, ViewChild, ViewContainerRef, } from '@angular/core';
5
3
  import * as THREE from 'three';
@@ -54,14 +52,11 @@ export class NgtPortalBeforeRender {
54
52
  this.subscription?.();
55
53
  }
56
54
  }
57
- NgtPortalBeforeRender.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtPortalBeforeRender, deps: [], target: i0.ɵɵFactoryTarget.Directive });
58
- NgtPortalBeforeRender.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtPortalBeforeRender, isStandalone: true, selector: "ngt-portal-before-render", inputs: { renderPriority: "renderPriority", parentScene: "parentScene", parentCamera: "parentCamera" }, outputs: { beforeRender: "beforeRender" }, ngImport: i0 });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtPortalBeforeRender, decorators: [{
55
+ NgtPortalBeforeRender.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtPortalBeforeRender, deps: [], target: i0.ɵɵFactoryTarget.Directive });
56
+ NgtPortalBeforeRender.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtPortalBeforeRender, isStandalone: true, selector: "[ngtPortalBeforeRender]", inputs: { renderPriority: "renderPriority", parentScene: "parentScene", parentCamera: "parentCamera" }, outputs: { beforeRender: "beforeRender" }, ngImport: i0 });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtPortalBeforeRender, decorators: [{
60
58
  type: Directive,
61
- args: [{
62
- selector: 'ngt-portal-before-render',
63
- standalone: true,
64
- }]
59
+ args: [{ selector: '[ngtPortalBeforeRender]', standalone: true }]
65
60
  }], propDecorators: { renderPriority: [{
66
61
  type: Input
67
62
  }], parentScene: [{
@@ -80,9 +75,9 @@ export class NgtPortalContent {
80
75
  }
81
76
  }
82
77
  }
83
- NgtPortalContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtPortalContent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ViewContainerRef, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
84
- NgtPortalContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgtPortalContent, isStandalone: true, selector: "ng-template[ngtPortalContent]", ngImport: i0 });
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtPortalContent, decorators: [{
78
+ NgtPortalContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtPortalContent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ViewContainerRef, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
79
+ NgtPortalContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: NgtPortalContent, isStandalone: true, selector: "ng-template[ngtPortalContent]", ngImport: i0 });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtPortalContent, decorators: [{
86
81
  type: Directive,
87
82
  args: [{ selector: 'ng-template[ngtPortalContent]', standalone: true }]
88
83
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ViewContainerRef, decorators: [{
@@ -91,7 +86,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
91
86
  export class NgtPortal extends NgtRxStore {
92
87
  constructor() {
93
88
  super(...arguments);
94
- _NgtPortal_instances.add(this);
95
89
  this.autoRender = true;
96
90
  this.autoRenderPriority = 1;
97
91
  this.beforeRender = new EventEmitter();
@@ -140,9 +134,9 @@ export class NgtPortal extends NgtRxStore {
140
134
  select: this.portalStore.select.bind(this.portalStore),
141
135
  setEvents: (events) => this.portalStore.set((state) => ({ ...state, events: { ...state.events, ...events } })),
142
136
  });
143
- this.hold(this.parentStore.select(), (previous) => this.portalStore.set((state) => __classPrivateFieldGet(this, _NgtPortal_instances, "m", _NgtPortal_inject).call(this, previous, state)));
137
+ this.hold(this.parentStore.select(), (previous) => this.portalStore.set((state) => this.inject(previous, state)));
144
138
  requestAnimationFrame(() => {
145
- this.portalStore.set((injectState) => __classPrivateFieldGet(this, _NgtPortal_instances, "m", _NgtPortal_inject).call(this, this.parentStore.get(), injectState));
139
+ this.portalStore.set((injectState) => this.inject(this.parentStore.get(), injectState));
146
140
  });
147
141
  this.portalContentView = this.portalContentAnchor.createEmbeddedView(this.portalContentTemplate);
148
142
  this.portalContentView.detectChanges();
@@ -160,57 +154,59 @@ export class NgtPortal extends NgtRxStore {
160
154
  }
161
155
  super.ngOnDestroy();
162
156
  }
163
- }
164
- _NgtPortal_instances = new WeakSet(), _NgtPortal_inject = function _NgtPortal_inject(rootState, injectState) {
165
- const intersect = { ...rootState };
166
- Object.keys(intersect).forEach((key) => {
167
- if (privateKeys.includes(key) ||
168
- rootState[key] !== injectState[key]) {
169
- delete intersect[key];
157
+ inject(rootState, injectState) {
158
+ const intersect = { ...rootState };
159
+ Object.keys(intersect).forEach((key) => {
160
+ if (privateKeys.includes(key) ||
161
+ rootState[key] !== injectState[key]) {
162
+ delete intersect[key];
163
+ }
164
+ });
165
+ const inputs = this.get();
166
+ const { size, events, ...restInputsState } = inputs.state || {};
167
+ let viewport = undefined;
168
+ if (injectState && size) {
169
+ const camera = injectState.camera;
170
+ viewport = rootState.viewport.getCurrentViewport(camera, new THREE.Vector3(), size);
171
+ if (camera !== rootState.camera)
172
+ updateCamera(camera, size);
170
173
  }
171
- });
172
- const inputs = this.get();
173
- const { size, events, ...restInputsState } = inputs.state || {};
174
- let viewport = undefined;
175
- if (injectState && size) {
176
- const camera = injectState.camera;
177
- viewport = rootState.viewport.getCurrentViewport(camera, new THREE.Vector3(), size);
178
- if (camera !== rootState.camera)
179
- updateCamera(camera, size);
174
+ return {
175
+ ...intersect,
176
+ scene: is.ref(inputs.container) ? inputs.container.nativeElement : inputs.container,
177
+ raycaster: this.raycaster,
178
+ pointer: this.pointer,
179
+ previousStore: this.parentStore,
180
+ events: { ...rootState.events, ...(injectState?.events || {}), ...events },
181
+ size: { ...rootState.size, ...size },
182
+ viewport: { ...rootState.viewport, ...(viewport || {}) },
183
+ ...restInputsState,
184
+ };
180
185
  }
181
- return {
182
- ...intersect,
183
- scene: is.ref(inputs.container) ? inputs.container.nativeElement : inputs.container,
184
- raycaster: this.raycaster,
185
- pointer: this.pointer,
186
- previousStore: this.parentStore,
187
- events: { ...rootState.events, ...(injectState?.events || {}), ...events },
188
- size: { ...rootState.size, ...size },
189
- viewport: { ...rootState.viewport, ...(viewport || {}) },
190
- ...restInputsState,
191
- };
192
- };
193
- NgtPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtPortal, deps: null, target: i0.ɵɵFactoryTarget.Component });
194
- NgtPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtPortal, isStandalone: true, selector: "ngt-portal", inputs: { container: "container", state: "state", autoRender: "autoRender", autoRenderPriority: "autoRenderPriority" }, outputs: { beforeRender: "beforeRender" }, providers: [NgtStore], queries: [{ propertyName: "portalContentTemplate", first: true, predicate: NgtPortalContent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "portalContentAnchor", first: true, predicate: ["portalContentAnchor"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
186
+ }
187
+ NgtPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtPortal, deps: null, target: i0.ɵɵFactoryTarget.Component });
188
+ NgtPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtPortal, isStandalone: true, selector: "ngt-portal", inputs: { container: "container", state: "state", autoRender: "autoRender", autoRenderPriority: "autoRenderPriority" }, outputs: { beforeRender: "beforeRender" }, providers: [NgtStore], queries: [{ propertyName: "portalContentTemplate", first: true, predicate: NgtPortalContent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "portalContentAnchor", first: true, predicate: ["portalContentAnchor"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
195
189
  <ng-container #portalContentAnchor>
196
- <ngt-portal-before-render
190
+ <ng-container
197
191
  *ngIf="autoRender && portalContentRendered"
192
+ ngtPortalBeforeRender
198
193
  [renderPriority]="autoRenderPriority"
199
194
  [parentScene]="parentScene"
200
195
  [parentCamera]="parentCamera"
201
196
  (beforeRender)="onBeforeRender($event)"
202
197
  />
203
198
  </ng-container>
204
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtPortalBeforeRender, selector: "ngt-portal-before-render", inputs: ["renderPriority", "parentScene", "parentCamera"], outputs: ["beforeRender"] }] });
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtPortal, decorators: [{
199
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtPortalBeforeRender, selector: "[ngtPortalBeforeRender]", inputs: ["renderPriority", "parentScene", "parentCamera"], outputs: ["beforeRender"] }] });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtPortal, decorators: [{
206
201
  type: Component,
207
202
  args: [{
208
203
  selector: 'ngt-portal',
209
204
  standalone: true,
210
205
  template: `
211
206
  <ng-container #portalContentAnchor>
212
- <ngt-portal-before-render
207
+ <ng-container
213
208
  *ngIf="autoRender && portalContentRendered"
209
+ ngtPortalBeforeRender
214
210
  [renderPriority]="autoRenderPriority"
215
211
  [parentScene]="parentScene"
216
212
  [parentCamera]="parentCamera"
@@ -238,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
238
234
  type: ViewChild,
239
235
  args: ['portalContentAnchor', { read: ViewContainerRef, static: true }]
240
236
  }] } });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvcG9ydGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFHVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU5QyxNQUFNLFdBQVcsR0FBRztJQUNoQixLQUFLO0lBQ0wsS0FBSztJQUNMLFFBQVE7SUFDUixTQUFTO0lBQ1QsUUFBUTtJQUNSLGNBQWM7SUFDZCxRQUFRO0lBQ1IsWUFBWTtJQUNaLFNBQVM7SUFDVCxNQUFNO0lBQ04sVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixtQkFBbUI7Q0FDYixDQUFDO0FBa0JYLE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFLcUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkMsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFJbEIsaUJB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QUFDO2lCQUN4Qjs4QkFFZ0IsU0FBUztzQkFBckIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBR0UscUJBQXFCO3NCQUQ3QixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkxRCxtQkFBbUI7c0JBRDNCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNraXBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdE5ndFJlZiB9IGZyb20gJy4vZGkvcmVmJztcbmltcG9ydCB7IE5ndFJ4U3RvcmUgfSBmcm9tICcuL3N0b3Jlcy9yeC1zdG9yZSc7XG5pbXBvcnQgeyBOZ3RTdG9yZSB9IGZyb20gJy4vc3RvcmVzL3N0b3JlJztcbmltcG9ydCB7IE5ndEV2ZW50TWFuYWdlciwgTmd0UmVuZGVyU3RhdGUsIE5ndFNpemUsIE5ndFN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRMb2NhbFN0YXRlLCBwcmVwYXJlIH0gZnJvbSAnLi91dGlscy9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgdXBkYXRlQ2FtZXJhIH0gZnJvbSAnLi91dGlscy91cGRhdGUnO1xuXG5jb25zdCBwcml2YXRlS2V5cyA9IFtcbiAgICAnZ2V0JyxcbiAgICAnc2V0JyxcbiAgICAnc2VsZWN0JyxcbiAgICAnc2V0U2l6ZScsXG4gICAgJ3NldERwcicsXG4gICAgJ3NldEZyYW1lbG9vcCcsXG4gICAgJ2V2ZW50cycsXG4gICAgJ2ludmFsaWRhdGUnLFxuICAgICdhZHZhbmNlJyxcbiAgICAnc2l6ZScsXG4gICAgJ3ZpZXdwb3J0JyxcbiAgICAnYWRkSW50ZXJhY3Rpb24nLFxuICAgICdyZW1vdmVJbnRlcmFjdGlvbicsXG5dIGFzIGNvbnN0O1xudHlwZSBQcml2YXRlS2V5cyA9ICh0eXBlb2YgcHJpdmF0ZUtleXMpW251bWJlcl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0UG9ydGFsSW5wdXRzIHtcbiAgICBjb250YWluZXI6IEVsZW1lbnRSZWY8VEhSRUUuT2JqZWN0M0Q+IHwgVEhSRUUuT2JqZWN0M0Q7XG4gICAgY2FtZXJhOiBFbGVtZW50UmVmPFRIUkVFLkNhbWVyYT4gfCBUSFJFRS5DYW1lcmE7XG4gICAgc3RhdGU6IFBhcnRpYWw8XG4gICAgICAgIE9taXQ8Tmd0U3RhdGUsIFByaXZhdGVLZXlzPiAmIHtcbiAgICAgICAgICAgIGV2ZW50czogUGFydGlhbDxQaWNrPE5ndEV2ZW50TWFuYWdlcjxhbnk+LCAnZW5hYmxlZCcgfCAncHJpb3JpdHknIHwgJ2NvbXB1dGUnIHwgJ2Nvbm5lY3RlZCc+PjtcbiAgICAgICAgICAgIHNpemU6IE5ndFNpemU7XG4gICAgICAgIH1cbiAgICA+O1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ25ndC1wb3J0YWwtYmVmb3JlLXJlbmRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0UG9ydGFsQmVmb3JlUmVuZGVyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9ydGFsU3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgQElucHV0KCkgcmVuZGVyUHJpb3JpdHkgPSAxO1xuICAgIEBJbnB1dCgpIHBhcmVudFNjZW5lITogVEhSRUUuU2NlbmU7XG4gICAgQElucHV0KCkgcGFyZW50Q2FtZXJhITogVEhSRUUuQ2FtZXJhO1xuXG4gICAgQE91dHB1dCgpIGJlZm9yZVJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Tmd0UmVuZGVyU3RhdGU+KCk7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbj86ICgpID0+IHZvaWQ7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgbGV0IG9sZENsZWFyOiBib29sZWFuO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMucG9ydGFsU3RvcmUuZ2V0KCdpbnRlcm5hbCcpLnN1YnNjcmliZShcbiAgICAgICAgICAgICh7IGRlbHRhLCBmcmFtZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5iZWZvcmVSZW5kZXIuZW1pdCh7IC4uLnRoaXMucG9ydGFsU3RvcmUuZ2V0KCksIGRlbHRhLCBmcmFtZSB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGdsLCBzY2VuZSwgY2FtZXJhIH0gPSB0aGlzLnBvcnRhbFN0b3JlLmdldCgpO1xuICAgICAgICAgICAgICAgIG9sZENsZWFyID0gZ2wuYXV0b0NsZWFyO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlbmRlclByaW9yaXR5ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIHNjZW5lIGFuZCByZW5kZXIgd2l0aCBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIGdsLmF1dG9DbGVhciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGdsLnJlbmRlcih0aGlzLnBhcmVudFNjZW5lLCB0aGlzLnBhcmVudENhbWVyYSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGRpc2FibGUgY2xlYW5pbmdcbiAgICAgICAgICAgICAgICBnbC5hdXRvQ2xlYXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBnbC5jbGVhckRlcHRoKCk7XG4gICAgICAgICAgICAgICAgZ2wucmVuZGVyKHNjZW5lLCBjYW1lcmEpO1xuICAgICAgICAgICAgICAgIC8vIHJlc3RvcmVcbiAgICAgICAgICAgICAgICBnbC5hdXRvQ2xlYXIgPSBvbGRDbGVhcjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLnJlbmRlclByaW9yaXR5LFxuICAgICAgICAgICAgdGhpcy5wb3J0YWxTdG9yZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8uKCk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtuZ3RQb3J0YWxDb250ZW50XScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RQb3J0YWxDb250ZW50IHtcbiAgICBjb25zdHJ1Y3Rvcih2Y3I6IFZpZXdDb250YWluZXJSZWYsIEBTa2lwU2VsZigpIHBhcmVudFZjcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBjb25zdCBjb21tZW50Tm9kZSA9IHZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChjb21tZW50Tm9kZVsnX19uZ3RfcmVuZGVyZXJfYWRkX2NvbW1lbnRfXyddKSB7XG4gICAgICAgICAgICBjb21tZW50Tm9kZVsnX19uZ3RfcmVuZGVyZXJfYWRkX2NvbW1lbnRfXyddKHBhcmVudFZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgZGVsZXRlIGNvbW1lbnROb2RlWydfX25ndF9yZW5kZXJlcl9hZGRfY29tbWVudF9fJ107XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LXBvcnRhbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGFpbmVyICNwb3J0YWxDb250ZW50QW5jaG9yPlxuICAgICAgICAgICAgPG5ndC1wb3J0YWwtYmVmb3JlLXJlbmRlclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYXV0b1JlbmRlciAmJiBwb3J0YWxDb250ZW50UmVuZGVyZWRcIlxuICAgICAgICAgICAgICAgIFtyZW5kZXJQcmlvcml0eV09XCJhdXRvUmVuZGVyUHJpb3JpdHlcIlxuICAgICAgICAgICAgICAgIFtwYXJlbnRTY2VuZV09XCJwYXJlbnRTY2VuZVwiXG4gICAgICAgICAgICAgICAgW3BhcmVudENhbWVyYV09XCJwYXJlbnRDYW1lcmFcIlxuICAgICAgICAgICAgICAgIChiZWZvcmVSZW5kZXIpPVwib25CZWZvcmVSZW5kZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ3RQb3J0YWxCZWZvcmVSZW5kZXJdLFxuICAgIHByb3ZpZGVyczogW05ndFN0b3JlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0UG9ydGFsIGV4dGVuZHMgTmd0UnhTdG9yZTxOZ3RQb3J0YWxJbnB1dHM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHNldCBjb250YWluZXIoY29udGFpbmVyOiBOZ3RQb3J0YWxJbnB1dHNbJ2NvbnRhaW5lciddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY29udGFpbmVyIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzdGF0ZShzdGF0ZTogTmd0UG9ydGFsSW5wdXRzWydzdGF0ZSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc3RhdGUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgYXV0b1JlbmRlciA9IHRydWU7XG4gICAgQElucHV0KCkgYXV0b1JlbmRlclByaW9yaXR5ID0gMTtcblxuICAgIEBPdXRwdXQoKSBiZWZvcmVSZW5kZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcm9vdDogTmd0UmVuZGVyU3RhdGU7IHBvcnRhbDogTmd0UmVuZGVyU3RhdGUgfT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoTmd0UG9ydGFsQ29udGVudCwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcmVhZG9ubHkgcG9ydGFsQ29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgICBAVmlld0NoaWxkKCdwb3J0YWxDb250ZW50QW5jaG9yJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICByZWFkb25seSBwb3J0YWxDb250ZW50QW5jaG9yITogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50U3RvcmUgPSBpbmplY3QoTmd0U3RvcmUsIHsgc2tpcFNlbGY6IHRydWUgfSk7XG4gICAgcmVhZG9ubHkgcGFyZW50U2NlbmUgPSB0aGlzLnBhcmVudFN0b3JlLmdldCgnc2NlbmUnKTtcbiAgICByZWFkb25seSBwYXJlbnRDYW1lcmEgPSB0aGlzLnBhcmVudFN0b3JlLmdldCgnY2FtZXJhJyk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcnRhbFN0b3JlID0gaW5qZWN0KE5ndFN0b3JlLCB7IHNlbGY6IHRydWUgfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJheWNhc3RlciA9IG5ldyBUSFJFRS5SYXljYXN0ZXIoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvaW50ZXIgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xuXG4gICAgcG9ydGFsQ29udGVudFJlbmRlcmVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBwb3J0YWxDb250ZW50Vmlldz86IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPjtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBjb250YWluZXI6IGluamVjdE5ndFJlZjxUSFJFRS5TY2VuZT4ocHJlcGFyZShuZXcgVEhSRUUuU2NlbmUoKSkpIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBwcmV2aW91c1N0YXRlID0gdGhpcy5wYXJlbnRTdG9yZS5nZXQoKTtcbiAgICAgICAgY29uc3QgaW5wdXRzU3RhdGUgPSB0aGlzLmdldCgpO1xuXG4gICAgICAgIGlmICghaW5wdXRzU3RhdGUuc3RhdGUgJiYgdGhpcy5hdXRvUmVuZGVyKSB7XG4gICAgICAgICAgICBpbnB1dHNTdGF0ZS5zdGF0ZSA9IHsgZXZlbnRzOiB7IHByaW9yaXR5OiB0aGlzLmF1dG9SZW5kZXJQcmlvcml0eSArIDEgfSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBldmVudHMsIHNpemUsIC4uLnJlc3RJbnB1dHNTdGF0ZSB9ID0gaW5wdXRzU3RhdGUuc3RhdGUgfHwge307XG5cbiAgICAgICAgY29uc3QgY29udGFpbmVyU3RhdGUgPSBpbnB1dHNTdGF0ZS5jb250YWluZXI7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGlzLnJlZihjb250YWluZXJTdGF0ZSkgPyBjb250YWluZXJTdGF0ZS5uYXRpdmVFbGVtZW50IDogY29udGFpbmVyU3RhdGU7XG5cbiAgICAgICAgY29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoY29udGFpbmVyKTtcbiAgICAgICAgaWYgKCFsb2NhbFN0YXRlLnN0b3JlKSB7XG4gICAgICAgICAgICBsb2NhbFN0YXRlLnN0b3JlID0gdGhpcy5wb3J0YWxTdG9yZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucG9ydGFsU3RvcmUuc2V0KHtcbiAgICAgICAgICAgIC4uLnByZXZpb3VzU3RhdGUsXG4gICAgICAgICAgICBzY2VuZTogY29udGFpbmVyIGFzIFRIUkVFLlNjZW5lLFxuICAgICAgICAgICAgcmF5Y2FzdGVyOiB0aGlzLnJheWNhc3RlcixcbiAgICAgICAgICAgIHBvaW50ZXI6IHRoaXMucG9pbnRlcixcbiAgICAgICAgICAgIHByZXZpb3VzU3RvcmU6IHRoaXMucGFyZW50U3RvcmUsXG4gICAgICAgICAgICBldmVudHM6IHsgLi4ucHJldmlvdXNTdGF0ZS5ldmVudHMsIC4uLihldmVudHMgfHwge30pIH0sXG4gICAgICAgICAgICBzaXplOiB7IC4uLnByZXZpb3VzU3RhdGUuc2l6ZSwgLi4uKHNpemUgfHwge30pIH0sXG4gICAgICAgICAgICAuLi5yZXN0SW5wdXRzU3RhdGUsXG4gICAgICAgICAgICBnZXQ6IHRoaXMucG9ydGFsU3RvcmUuZ2V0LmJpbmQodGhpcy5wb3J0YWxTdG9yZSksXG4gICAgICAgICAgICBzZXQ6IHRoaXMucG9ydGFsU3RvcmUuc2V0LmJpbmQodGhpcy5wb3J0YWxTdG9yZSksXG4gICAgICAgICAgICBzZWxlY3Q6IHRoaXMucG9ydGFsU3RvcmUuc2VsZWN0LmJpbmQodGhpcy5wb3J0YWxTdG9yZSksXG4gICAgICAgICAgICBzZXRFdmVudHM6IChldmVudHMpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5wb3J0YWxTdG9yZS5zZXQoKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgZXZlbnRzOiB7IC4uLnN0YXRlLmV2ZW50cywgLi4uZXZlbnRzIH0gfSkpLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmhvbGQodGhpcy5wYXJlbnRTdG9yZS5zZWxlY3QoKSwgKHByZXZpb3VzKSA9PlxuICAgICAgICAgICAgdGhpcy5wb3J0YWxTdG9yZS5zZXQoKHN0YXRlKSA9PiB0aGlzLiNpbmplY3QocHJldmlvdXMsIHN0YXRlKSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wb3J0YWxTdG9yZS5zZXQoKGluamVjdFN0YXRlKSA9PiB0aGlzLiNpbmplY3QodGhpcy5wYXJlbnRTdG9yZS5nZXQoKSwgaW5qZWN0U3RhdGUpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucG9ydGFsQ29udGVudFZpZXcgPSB0aGlzLnBvcnRhbENvbnRlbnRBbmNob3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMucG9ydGFsQ29udGVudFRlbXBsYXRlKTtcbiAgICAgICAgdGhpcy5wb3J0YWxDb250ZW50Vmlldy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMucG9ydGFsQ29udGVudFJlbmRlcmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkJlZm9yZVJlbmRlcihwb3J0YWw6IE5ndFJlbmRlclN0YXRlKSB7XG4gICAgICAgIHRoaXMuYmVmb3JlUmVuZGVyLmVtaXQoe1xuICAgICAgICAgICAgcm9vdDogeyAuLi50aGlzLnBhcmVudFN0b3JlLmdldCgpLCBkZWx0YTogcG9ydGFsLmRlbHRhLCBmcmFtZTogcG9ydGFsLmZyYW1lIH0sXG4gICAgICAgICAgICBwb3J0YWwsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5wb3J0YWxDb250ZW50VmlldyAmJiAhdGhpcy5wb3J0YWxDb250ZW50Vmlldy5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHRoaXMucG9ydGFsQ29udGVudFZpZXcuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgI2luamVjdChyb290U3RhdGU6IE5ndFN0YXRlLCBpbmplY3RTdGF0ZTogTmd0U3RhdGUpIHtcbiAgICAgICAgY29uc3QgaW50ZXJzZWN0OiBQYXJ0aWFsPE5ndFN0YXRlPiA9IHsgLi4ucm9vdFN0YXRlIH07XG5cbiAgICAgICAgT2JqZWN0LmtleXMoaW50ZXJzZWN0KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBwcml2YXRlS2V5cy5pbmNsdWRlcyhrZXkgYXMgUHJpdmF0ZUtleXMpIHx8XG4gICAgICAgICAgICAgICAgcm9vdFN0YXRlW2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV0gIT09IGluamVjdFN0YXRlW2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV1cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpbnRlcnNlY3Rba2V5IGFzIGtleW9mIE5ndFN0YXRlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXQoKTtcbiAgICAgICAgY29uc3QgeyBzaXplLCBldmVudHMsIC4uLnJlc3RJbnB1dHNTdGF0ZSB9ID0gaW5wdXRzLnN0YXRlIHx8IHt9O1xuXG4gICAgICAgIGxldCB2aWV3cG9ydCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGluamVjdFN0YXRlICYmIHNpemUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbWVyYSA9IGluamVjdFN0YXRlLmNhbWVyYTtcbiAgICAgICAgICAgIHZpZXdwb3J0ID0gcm9vdFN0YXRlLnZpZXdwb3J0LmdldEN1cnJlbnRWaWV3cG9ydChjYW1lcmEsIG5ldyBUSFJFRS5WZWN0b3IzKCksIHNpemUpO1xuICAgICAgICAgICAgaWYgKGNhbWVyYSAhPT0gcm9vdFN0YXRlLmNhbWVyYSkgdXBkYXRlQ2FtZXJhKGNhbWVyYSwgc2l6ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uaW50ZXJzZWN0LFxuICAgICAgICAgICAgc2NlbmU6IGlzLnJlZihpbnB1dHMuY29udGFpbmVyKSA/IGlucHV0cy5jb250YWluZXIubmF0aXZlRWxlbWVudCA6IGlucHV0cy5jb250YWluZXIsXG4gICAgICAgICAgICByYXljYXN0ZXI6IHRoaXMucmF5Y2FzdGVyLFxuICAgICAgICAgICAgcG9pbnRlcjogdGhpcy5wb2ludGVyLFxuICAgICAgICAgICAgcHJldmlvdXNTdG9yZTogdGhpcy5wYXJlbnRTdG9yZSxcbiAgICAgICAgICAgIGV2ZW50czogeyAuLi5yb290U3RhdGUuZXZlbnRzLCAuLi4oaW5qZWN0U3RhdGU/LmV2ZW50cyB8fCB7fSksIC4uLmV2ZW50cyB9LFxuICAgICAgICAgICAgc2l6ZTogeyAuLi5yb290U3RhdGUuc2l6ZSwgLi4uc2l6ZSB9LFxuICAgICAgICAgICAgdmlld3BvcnQ6IHsgLi4ucm9vdFN0YXRlLnZpZXdwb3J0LCAuLi4odmlld3BvcnQgfHwge30pIH0sXG4gICAgICAgICAgICAuLi5yZXN0SW5wdXRzU3RhdGUsXG4gICAgICAgIH0gYXMgTmd0U3RhdGU7XG4gICAgfVxufVxuIl19
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvcG9ydGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBR1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFOUMsTUFBTSxXQUFXLEdBQUc7SUFDaEIsS0FBSztJQUNMLEtBQUs7SUFDTCxRQUFRO0lBQ1IsU0FBUztJQUNULFFBQVE7SUFDUixjQUFjO0lBQ2QsUUFBUTtJQUNSLFlBQVk7SUFDWixTQUFTO0lBQ1QsTUFBTTtJQUNOLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsbUJBQW1CO0NBQ2IsQ0FBQztBQWVYLE1BQU0sT0FBTyxxQkFBcUI7SUFEbEM7UUFFcUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkMsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFJbEIsaUJBQVks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U0FBUztzQkFBckIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBR0UscUJBQXFCO3NCQUQ3QixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkxRCxtQkFBbUI7c0JBRDNCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNraXBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdE5ndFJlZiB9IGZyb20gJy4vZGkvcmVmJztcbmltcG9ydCB7IE5ndFJ4U3RvcmUgfSBmcm9tICcuL3N0b3Jlcy9yeC1zdG9yZSc7XG5pbXBvcnQgeyBOZ3RTdG9yZSB9IGZyb20gJy4vc3RvcmVzL3N0b3JlJztcbmltcG9ydCB7IE5ndEV2ZW50TWFuYWdlciwgTmd0UmVuZGVyU3RhdGUsIE5ndFNpemUsIE5ndFN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRMb2NhbFN0YXRlLCBwcmVwYXJlIH0gZnJvbSAnLi91dGlscy9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgdXBkYXRlQ2FtZXJhIH0gZnJvbSAnLi91dGlscy91cGRhdGUnO1xuXG5jb25zdCBwcml2YXRlS2V5cyA9IFtcbiAgICAnZ2V0JyxcbiAgICAnc2V0JyxcbiAgICAnc2VsZWN0JyxcbiAgICAnc2V0U2l6ZScsXG4gICAgJ3NldERwcicsXG4gICAgJ3NldEZyYW1lbG9vcCcsXG4gICAgJ2V2ZW50cycsXG4gICAgJ2ludmFsaWRhdGUnLFxuICAgICdhZHZhbmNlJyxcbiAgICAnc2l6ZScsXG4gICAgJ3ZpZXdwb3J0JyxcbiAgICAnYWRkSW50ZXJhY3Rpb24nLFxuICAgICdyZW1vdmVJbnRlcmFjdGlvbicsXG5dIGFzIGNvbnN0O1xudHlwZSBQcml2YXRlS2V5cyA9ICh0eXBlb2YgcHJpdmF0ZUtleXMpW251bWJlcl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0UG9ydGFsSW5wdXRzIHtcbiAgICBjb250YWluZXI6IEVsZW1lbnRSZWY8VEhSRUUuT2JqZWN0M0Q+IHwgVEhSRUUuT2JqZWN0M0Q7XG4gICAgY2FtZXJhOiBFbGVtZW50UmVmPFRIUkVFLkNhbWVyYT4gfCBUSFJFRS5DYW1lcmE7XG4gICAgc3RhdGU6IFBhcnRpYWw8XG4gICAgICAgIE9taXQ8Tmd0U3RhdGUsIFByaXZhdGVLZXlzPiAmIHtcbiAgICAgICAgICAgIGV2ZW50czogUGFydGlhbDxQaWNrPE5ndEV2ZW50TWFuYWdlcjxhbnk+LCAnZW5hYmxlZCcgfCAncHJpb3JpdHknIHwgJ2NvbXB1dGUnIHwgJ2Nvbm5lY3RlZCc+PjtcbiAgICAgICAgICAgIHNpemU6IE5ndFNpemU7XG4gICAgICAgIH1cbiAgICA+O1xufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbbmd0UG9ydGFsQmVmb3JlUmVuZGVyXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RQb3J0YWxCZWZvcmVSZW5kZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3J0YWxTdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG5cbiAgICBASW5wdXQoKSByZW5kZXJQcmlvcml0eSA9IDE7XG4gICAgQElucHV0KCkgcGFyZW50U2NlbmUhOiBUSFJFRS5TY2VuZTtcbiAgICBASW5wdXQoKSBwYXJlbnRDYW1lcmEhOiBUSFJFRS5DYW1lcmE7XG5cbiAgICBAT3V0cHV0KCkgYmVmb3JlUmVuZGVyID0gbmV3IEV2ZW50RW1pdHRlcjxOZ3RSZW5kZXJTdGF0ZT4oKTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogKCkgPT4gdm9pZDtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBsZXQgb2xkQ2xlYXI6IGJvb2xlYW47XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5wb3J0YWxTdG9yZS5nZXQoJ2ludGVybmFsJykuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHsgZGVsdGEsIGZyYW1lIH0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJlZm9yZVJlbmRlci5lbWl0KHsgLi4udGhpcy5wb3J0YWxTdG9yZS5nZXQoKSwgZGVsdGEsIGZyYW1lIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZ2wsIHNjZW5lLCBjYW1lcmEgfSA9IHRoaXMucG9ydGFsU3RvcmUuZ2V0KCk7XG4gICAgICAgICAgICAgICAgb2xkQ2xlYXIgPSBnbC5hdXRvQ2xlYXI7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVuZGVyUHJpb3JpdHkgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xlYXIgc2NlbmUgYW5kIHJlbmRlciB3aXRoIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgZ2wuYXV0b0NsZWFyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgZ2wucmVuZGVyKHRoaXMucGFyZW50U2NlbmUsIHRoaXMucGFyZW50Q2FtZXJhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZGlzYWJsZSBjbGVhbmluZ1xuICAgICAgICAgICAgICAgIGdsLmF1dG9DbGVhciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGdsLmNsZWFyRGVwdGgoKTtcbiAgICAgICAgICAgICAgICBnbC5yZW5kZXIoc2NlbmUsIGNhbWVyYSk7XG4gICAgICAgICAgICAgICAgLy8gcmVzdG9yZVxuICAgICAgICAgICAgICAgIGdsLmF1dG9DbGVhciA9IG9sZENsZWFyO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMucmVuZGVyUHJpb3JpdHksXG4gICAgICAgICAgICB0aGlzLnBvcnRhbFN0b3JlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy4oKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW25ndFBvcnRhbENvbnRlbnRdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndFBvcnRhbENvbnRlbnQge1xuICAgIGNvbnN0cnVjdG9yKHZjcjogVmlld0NvbnRhaW5lclJlZiwgQFNraXBTZWxmKCkgcGFyZW50VmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnROb2RlID0gdmNyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGNvbW1lbnROb2RlWydfX25ndF9yZW5kZXJlcl9hZGRfY29tbWVudF9fJ10pIHtcbiAgICAgICAgICAgIGNvbW1lbnROb2RlWydfX25ndF9yZW5kZXJlcl9hZGRfY29tbWVudF9fJ10ocGFyZW50VmNyLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICBkZWxldGUgY29tbWVudE5vZGVbJ19fbmd0X3JlbmRlcmVyX2FkZF9jb21tZW50X18nXTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtcG9ydGFsJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250YWluZXIgI3BvcnRhbENvbnRlbnRBbmNob3I+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhdXRvUmVuZGVyICYmIHBvcnRhbENvbnRlbnRSZW5kZXJlZFwiXG4gICAgICAgICAgICAgICAgbmd0UG9ydGFsQmVmb3JlUmVuZGVyXG4gICAgICAgICAgICAgICAgW3JlbmRlclByaW9yaXR5XT1cImF1dG9SZW5kZXJQcmlvcml0eVwiXG4gICAgICAgICAgICAgICAgW3BhcmVudFNjZW5lXT1cInBhcmVudFNjZW5lXCJcbiAgICAgICAgICAgICAgICBbcGFyZW50Q2FtZXJhXT1cInBhcmVudENhbWVyYVwiXG4gICAgICAgICAgICAgICAgKGJlZm9yZVJlbmRlcik9XCJvbkJlZm9yZVJlbmRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05nSWYsIE5ndFBvcnRhbEJlZm9yZVJlbmRlcl0sXG4gICAgcHJvdmlkZXJzOiBbTmd0U3RvcmVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RQb3J0YWwgZXh0ZW5kcyBOZ3RSeFN0b3JlPE5ndFBvcnRhbElucHV0cz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgc2V0IGNvbnRhaW5lcihjb250YWluZXI6IE5ndFBvcnRhbElucHV0c1snY29udGFpbmVyJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjb250YWluZXIgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHN0YXRlKHN0YXRlOiBOZ3RQb3J0YWxJbnB1dHNbJ3N0YXRlJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzdGF0ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBhdXRvUmVuZGVyID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBhdXRvUmVuZGVyUHJpb3JpdHkgPSAxO1xuXG4gICAgQE91dHB1dCgpIGJlZm9yZVJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8eyByb290OiBOZ3RSZW5kZXJTdGF0ZTsgcG9ydGFsOiBOZ3RSZW5kZXJTdGF0ZSB9PigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChOZ3RQb3J0YWxDb250ZW50LCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICByZWFkb25seSBwb3J0YWxDb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIEBWaWV3Q2hpbGQoJ3BvcnRhbENvbnRlbnRBbmNob3InLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHJlYWRvbmx5IHBvcnRhbENvbnRlbnRBbmNob3IhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRTdG9yZSA9IGluamVjdChOZ3RTdG9yZSwgeyBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgICByZWFkb25seSBwYXJlbnRTY2VuZSA9IHRoaXMucGFyZW50U3RvcmUuZ2V0KCdzY2VuZScpO1xuICAgIHJlYWRvbmx5IHBhcmVudENhbWVyYSA9IHRoaXMucGFyZW50U3RvcmUuZ2V0KCdjYW1lcmEnKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9ydGFsU3RvcmUgPSBpbmplY3QoTmd0U3RvcmUsIHsgc2VsZjogdHJ1ZSB9KTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmF5Y2FzdGVyID0gbmV3IFRIUkVFLlJheWNhc3RlcigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9pbnRlciA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XG5cbiAgICBwb3J0YWxDb250ZW50UmVuZGVyZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIHBvcnRhbENvbnRlbnRWaWV3PzogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+O1xuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7IGNvbnRhaW5lcjogaW5qZWN0Tmd0UmVmPFRIUkVFLlNjZW5lPihwcmVwYXJlKG5ldyBUSFJFRS5TY2VuZSgpKSkgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSB0aGlzLnBhcmVudFN0b3JlLmdldCgpO1xuICAgICAgICBjb25zdCBpbnB1dHNTdGF0ZSA9IHRoaXMuZ2V0KCk7XG5cbiAgICAgICAgaWYgKCFpbnB1dHNTdGF0ZS5zdGF0ZSAmJiB0aGlzLmF1dG9SZW5kZXIpIHtcbiAgICAgICAgICAgIGlucHV0c1N0YXRlLnN0YXRlID0geyBldmVudHM6IHsgcHJpb3JpdHk6IHRoaXMuYXV0b1JlbmRlclByaW9yaXR5ICsgMSB9IH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGV2ZW50cywgc2l6ZSwgLi4ucmVzdElucHV0c1N0YXRlIH0gPSBpbnB1dHNTdGF0ZS5zdGF0ZSB8fCB7fTtcblxuICAgICAgICBjb25zdCBjb250YWluZXJTdGF0ZSA9IGlucHV0c1N0YXRlLmNvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gaXMucmVmKGNvbnRhaW5lclN0YXRlKSA/IGNvbnRhaW5lclN0YXRlLm5hdGl2ZUVsZW1lbnQgOiBjb250YWluZXJTdGF0ZTtcblxuICAgICAgICBjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShjb250YWluZXIpO1xuICAgICAgICBpZiAoIWxvY2FsU3RhdGUuc3RvcmUpIHtcbiAgICAgICAgICAgIGxvY2FsU3RhdGUuc3RvcmUgPSB0aGlzLnBvcnRhbFN0b3JlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wb3J0YWxTdG9yZS5zZXQoe1xuICAgICAgICAgICAgLi4ucHJldmlvdXNTdGF0ZSxcbiAgICAgICAgICAgIHNjZW5lOiBjb250YWluZXIgYXMgVEhSRUUuU2NlbmUsXG4gICAgICAgICAgICByYXljYXN0ZXI6IHRoaXMucmF5Y2FzdGVyLFxuICAgICAgICAgICAgcG9pbnRlcjogdGhpcy5wb2ludGVyLFxuICAgICAgICAgICAgcHJldmlvdXNTdG9yZTogdGhpcy5wYXJlbnRTdG9yZSxcbiAgICAgICAgICAgIGV2ZW50czogeyAuLi5wcmV2aW91c1N0YXRlLmV2ZW50cywgLi4uKGV2ZW50cyB8fCB7fSkgfSxcbiAgICAgICAgICAgIHNpemU6IHsgLi4ucHJldmlvdXNTdGF0ZS5zaXplLCAuLi4oc2l6ZSB8fCB7fSkgfSxcbiAgICAgICAgICAgIC4uLnJlc3RJbnB1dHNTdGF0ZSxcbiAgICAgICAgICAgIGdldDogdGhpcy5wb3J0YWxTdG9yZS5nZXQuYmluZCh0aGlzLnBvcnRhbFN0b3JlKSxcbiAgICAgICAgICAgIHNldDogdGhpcy5wb3J0YWxTdG9yZS5zZXQuYmluZCh0aGlzLnBvcnRhbFN0b3JlKSxcbiAgICAgICAgICAgIHNlbGVjdDogdGhpcy5wb3J0YWxTdG9yZS5zZWxlY3QuYmluZCh0aGlzLnBvcnRhbFN0b3JlKSxcbiAgICAgICAgICAgIHNldEV2ZW50czogKGV2ZW50cykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnBvcnRhbFN0b3JlLnNldCgoc3RhdGUpID0+ICh7IC4uLnN0YXRlLCBldmVudHM6IHsgLi4uc3RhdGUuZXZlbnRzLCAuLi5ldmVudHMgfSB9KSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaG9sZCh0aGlzLnBhcmVudFN0b3JlLnNlbGVjdCgpLCAocHJldmlvdXMpID0+XG4gICAgICAgICAgICB0aGlzLnBvcnRhbFN0b3JlLnNldCgoc3RhdGUpID0+IHRoaXMuaW5qZWN0KHByZXZpb3VzLCBzdGF0ZSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucG9ydGFsU3RvcmUuc2V0KChpbmplY3RTdGF0ZSkgPT4gdGhpcy5pbmplY3QodGhpcy5wYXJlbnRTdG9yZS5nZXQoKSwgaW5qZWN0U3RhdGUpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucG9ydGFsQ29udGVudFZpZXcgPSB0aGlzLnBvcnRhbENvbnRlbnRBbmNob3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMucG9ydGFsQ29udGVudFRlbXBsYXRlKTtcbiAgICAgICAgdGhpcy5wb3J0YWxDb250ZW50Vmlldy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMucG9ydGFsQ29udGVudFJlbmRlcmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkJlZm9yZVJlbmRlcihwb3J0YWw6IE5ndFJlbmRlclN0YXRlKSB7XG4gICAgICAgIHRoaXMuYmVmb3JlUmVuZGVyLmVtaXQoe1xuICAgICAgICAgICAgcm9vdDogeyAuLi50aGlzLnBhcmVudFN0b3JlLmdldCgpLCBkZWx0YTogcG9ydGFsLmRlbHRhLCBmcmFtZTogcG9ydGFsLmZyYW1lIH0sXG4gICAgICAgICAgICBwb3J0YWwsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5wb3J0YWxDb250ZW50VmlldyAmJiAhdGhpcy5wb3J0YWxDb250ZW50Vmlldy5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHRoaXMucG9ydGFsQ29udGVudFZpZXcuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbmplY3Qocm9vdFN0YXRlOiBOZ3RTdGF0ZSwgaW5qZWN0U3RhdGU6IE5ndFN0YXRlKSB7XG4gICAgICAgIGNvbnN0IGludGVyc2VjdDogUGFydGlhbDxOZ3RTdGF0ZT4gPSB7IC4uLnJvb3RTdGF0ZSB9O1xuXG4gICAgICAgIE9iamVjdC5rZXlzKGludGVyc2VjdCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgcHJpdmF0ZUtleXMuaW5jbHVkZXMoa2V5IGFzIFByaXZhdGVLZXlzKSB8fFxuICAgICAgICAgICAgICAgIHJvb3RTdGF0ZVtrZXkgYXMga2V5b2YgTmd0U3RhdGVdICE9PSBpbmplY3RTdGF0ZVtrZXkgYXMga2V5b2YgTmd0U3RhdGVdXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgaW50ZXJzZWN0W2tleSBhcyBrZXlvZiBOZ3RTdGF0ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHsgc2l6ZSwgZXZlbnRzLCAuLi5yZXN0SW5wdXRzU3RhdGUgfSA9IGlucHV0cy5zdGF0ZSB8fCB7fTtcblxuICAgICAgICBsZXQgdmlld3BvcnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChpbmplY3RTdGF0ZSAmJiBzaXplKSB7XG4gICAgICAgICAgICBjb25zdCBjYW1lcmEgPSBpbmplY3RTdGF0ZS5jYW1lcmE7XG4gICAgICAgICAgICB2aWV3cG9ydCA9IHJvb3RTdGF0ZS52aWV3cG9ydC5nZXRDdXJyZW50Vmlld3BvcnQoY2FtZXJhLCBuZXcgVEhSRUUuVmVjdG9yMygpLCBzaXplKTtcbiAgICAgICAgICAgIGlmIChjYW1lcmEgIT09IHJvb3RTdGF0ZS5jYW1lcmEpIHVwZGF0ZUNhbWVyYShjYW1lcmEsIHNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmludGVyc2VjdCxcbiAgICAgICAgICAgIHNjZW5lOiBpcy5yZWYoaW5wdXRzLmNvbnRhaW5lcikgPyBpbnB1dHMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgOiBpbnB1dHMuY29udGFpbmVyLFxuICAgICAgICAgICAgcmF5Y2FzdGVyOiB0aGlzLnJheWNhc3RlcixcbiAgICAgICAgICAgIHBvaW50ZXI6IHRoaXMucG9pbnRlcixcbiAgICAgICAgICAgIHByZXZpb3VzU3RvcmU6IHRoaXMucGFyZW50U3RvcmUsXG4gICAgICAgICAgICBldmVudHM6IHsgLi4ucm9vdFN0YXRlLmV2ZW50cywgLi4uKGluamVjdFN0YXRlPy5ldmVudHMgfHwge30pLCAuLi5ldmVudHMgfSxcbiAgICAgICAgICAgIHNpemU6IHsgLi4ucm9vdFN0YXRlLnNpemUsIC4uLnNpemUgfSxcbiAgICAgICAgICAgIHZpZXdwb3J0OiB7IC4uLnJvb3RTdGF0ZS52aWV3cG9ydCwgLi4uKHZpZXdwb3J0IHx8IHt9KSB9LFxuICAgICAgICAgICAgLi4ucmVzdElucHV0c1N0YXRlLFxuICAgICAgICB9IGFzIE5ndFN0YXRlO1xuICAgIH1cbn1cbiJdfQ==
@@ -3,12 +3,10 @@ import { NgtStore } from '../stores/store';
3
3
  import { NGT_COMPOUND_PREFIXES } from './di';
4
4
  import { NgtRendererFactory } from './renderer';
5
5
  export function provideNgtRenderer({ store, changeDetectorRef, compoundPrefixes = [] }) {
6
- if (!compoundPrefixes.includes('ngts')) {
6
+ if (!compoundPrefixes.includes('ngts'))
7
7
  compoundPrefixes.push('ngts');
8
- }
9
- if (!compoundPrefixes.includes('ngtp')) {
8
+ if (!compoundPrefixes.includes('ngtp'))
10
9
  compoundPrefixes.push('ngtp');
11
- }
12
10
  return makeEnvironmentProviders([
13
11
  { provide: RendererFactory2, useClass: NgtRendererFactory },
14
12
  { provide: NgtStore, useValue: store },
@@ -16,4 +14,4 @@ export function provideNgtRenderer({ store, changeDetectorRef, compoundPrefixes
16
14
  { provide: NGT_COMPOUND_PREFIXES, useValue: compoundPrefixes },
17
15
  ]);
18
16
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi9yZW5kZXJlci9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFRaEQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixHQUFHLEVBQUUsRUFBOEI7SUFDOUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNwQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDakM7SUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3BDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNqQztJQUVELE9BQU8sd0JBQXdCLENBQUM7UUFDNUIsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO1FBQzNELEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1FBQ3RDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTtRQUMzRCxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUU7S0FDakUsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndFN0b3JlIH0gZnJvbSAnLi4vc3RvcmVzL3N0b3JlJztcbmltcG9ydCB7IE5HVF9DT01QT1VORF9QUkVGSVhFUyB9IGZyb20gJy4vZGknO1xuaW1wb3J0IHsgTmd0UmVuZGVyZXJGYWN0b3J5IH0gZnJvbSAnLi9yZW5kZXJlcic7XG5cbmV4cG9ydCB0eXBlIE5ndFJlbmRlcmVyUHJvdmlkZXJPcHRpb25zID0ge1xuICAgIHN0b3JlOiBOZ3RTdG9yZTtcbiAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgY29tcG91bmRQcmVmaXhlcz86IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVOZ3RSZW5kZXJlcih7IHN0b3JlLCBjaGFuZ2VEZXRlY3RvclJlZiwgY29tcG91bmRQcmVmaXhlcyA9IFtdIH06IE5ndFJlbmRlcmVyUHJvdmlkZXJPcHRpb25zKSB7XG4gICAgaWYgKCFjb21wb3VuZFByZWZpeGVzLmluY2x1ZGVzKCduZ3RzJykpIHtcbiAgICAgICAgY29tcG91bmRQcmVmaXhlcy5wdXNoKCduZ3RzJyk7XG4gICAgfVxuXG4gICAgaWYgKCFjb21wb3VuZFByZWZpeGVzLmluY2x1ZGVzKCduZ3RwJykpIHtcbiAgICAgICAgY29tcG91bmRQcmVmaXhlcy5wdXNoKCduZ3RwJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIHsgcHJvdmlkZTogUmVuZGVyZXJGYWN0b3J5MiwgdXNlQ2xhc3M6IE5ndFJlbmRlcmVyRmFjdG9yeSB9LFxuICAgICAgICB7IHByb3ZpZGU6IE5ndFN0b3JlLCB1c2VWYWx1ZTogc3RvcmUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBDaGFuZ2VEZXRlY3RvclJlZiwgdXNlVmFsdWU6IGNoYW5nZURldGVjdG9yUmVmIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTkdUX0NPTVBPVU5EX1BSRUZJWEVTLCB1c2VWYWx1ZTogY29tcG91bmRQcmVmaXhlcyB9LFxuICAgIF0pO1xufVxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi9yZW5kZXJlci9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFRaEQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixHQUFHLEVBQUUsRUFBOEI7SUFDOUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdEUsT0FBTyx3QkFBd0IsQ0FBQztRQUM1QixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7UUFDM0QsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7UUFDdEMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO1FBQzNELEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTtLQUNqRSxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycywgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0U3RvcmUgfSBmcm9tICcuLi9zdG9yZXMvc3RvcmUnO1xuaW1wb3J0IHsgTkdUX0NPTVBPVU5EX1BSRUZJWEVTIH0gZnJvbSAnLi9kaSc7XG5pbXBvcnQgeyBOZ3RSZW5kZXJlckZhY3RvcnkgfSBmcm9tICcuL3JlbmRlcmVyJztcblxuZXhwb3J0IHR5cGUgTmd0UmVuZGVyZXJQcm92aWRlck9wdGlvbnMgPSB7XG4gICAgc3RvcmU6IE5ndFN0b3JlO1xuICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgICBjb21wb3VuZFByZWZpeGVzPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU5ndFJlbmRlcmVyKHsgc3RvcmUsIGNoYW5nZURldGVjdG9yUmVmLCBjb21wb3VuZFByZWZpeGVzID0gW10gfTogTmd0UmVuZGVyZXJQcm92aWRlck9wdGlvbnMpIHtcbiAgICBpZiAoIWNvbXBvdW5kUHJlZml4ZXMuaW5jbHVkZXMoJ25ndHMnKSkgY29tcG91bmRQcmVmaXhlcy5wdXNoKCduZ3RzJyk7XG4gICAgaWYgKCFjb21wb3VuZFByZWZpeGVzLmluY2x1ZGVzKCduZ3RwJykpIGNvbXBvdW5kUHJlZml4ZXMucHVzaCgnbmd0cCcpO1xuXG4gICAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIHsgcHJvdmlkZTogUmVuZGVyZXJGYWN0b3J5MiwgdXNlQ2xhc3M6IE5ndFJlbmRlcmVyRmFjdG9yeSB9LFxuICAgICAgICB7IHByb3ZpZGU6IE5ndFN0b3JlLCB1c2VWYWx1ZTogc3RvcmUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBDaGFuZ2VEZXRlY3RvclJlZiwgdXNlVmFsdWU6IGNoYW5nZURldGVjdG9yUmVmIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTkdUX0NPTVBPVU5EX1BSRUZJWEVTLCB1c2VWYWx1ZTogY29tcG91bmRQcmVmaXhlcyB9LFxuICAgIF0pO1xufVxuIl19