@dereekb/dbx-core 12.0.4 → 12.0.6

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 (41) hide show
  1. package/esm2022/lib/action/directive/map/action.map.key.directive.mjs +9 -19
  2. package/esm2022/lib/action/directive/map/action.map.source.directive.mjs +17 -18
  3. package/esm2022/lib/action/directive/state/action.disabled.directive.mjs +10 -19
  4. package/esm2022/lib/action/directive/state/action.disableonsuccess.directive.mjs +12 -20
  5. package/esm2022/lib/action/directive/state/action.enforce.modified.directive.mjs +9 -17
  6. package/esm2022/lib/action/directive/state/action.presuccess.directive.mjs +8 -10
  7. package/esm2022/lib/action/directive/state/action.success.directive.mjs +8 -10
  8. package/esm2022/lib/action/directive/state/action.working.directive.mjs +10 -11
  9. package/esm2022/lib/auth/auth.role.any.directive.mjs +6 -12
  10. package/esm2022/lib/auth/auth.role.has.directive.mjs +6 -12
  11. package/esm2022/lib/auth/auth.role.not.directive.mjs +6 -12
  12. package/esm2022/lib/button/router/button.segue.directive.mjs +14 -28
  13. package/esm2022/lib/context/context.directive.mjs +11 -26
  14. package/esm2022/lib/injection/injection.context.directive.mjs +31 -27
  15. package/esm2022/lib/injection/injection.directive.mjs +1 -1
  16. package/esm2022/lib/injection/injection.instance.mjs +5 -5
  17. package/esm2022/lib/router/anchor/anchor.directive.mjs +41 -51
  18. package/esm2022/lib/router/anchor/anchor.mjs +1 -1
  19. package/esm2022/lib/router/model/id.param.redirect.mjs +1 -1
  20. package/fesm2022/dereekb-dbx-core.mjs +165 -255
  21. package/fesm2022/dereekb-dbx-core.mjs.map +1 -1
  22. package/lib/action/directive/map/action.map.key.directive.d.ts +4 -8
  23. package/lib/action/directive/map/action.map.source.directive.d.ts +5 -4
  24. package/lib/action/directive/state/action.disabled.directive.d.ts +5 -7
  25. package/lib/action/directive/state/action.disableonsuccess.directive.d.ts +6 -8
  26. package/lib/action/directive/state/action.enforce.modified.directive.d.ts +3 -4
  27. package/lib/action/directive/state/action.presuccess.directive.d.ts +3 -2
  28. package/lib/action/directive/state/action.success.directive.d.ts +3 -2
  29. package/lib/action/directive/state/action.working.directive.d.ts +4 -4
  30. package/lib/auth/auth.role.any.directive.d.ts +3 -4
  31. package/lib/auth/auth.role.has.directive.d.ts +3 -4
  32. package/lib/auth/auth.role.not.directive.d.ts +3 -4
  33. package/lib/button/router/button.segue.directive.d.ts +4 -9
  34. package/lib/context/context.directive.d.ts +4 -10
  35. package/lib/injection/injection.context.directive.d.ts +4 -2
  36. package/lib/injection/injection.directive.d.ts +1 -1
  37. package/lib/injection/injection.instance.d.ts +5 -5
  38. package/lib/router/anchor/anchor.d.ts +0 -3
  39. package/lib/router/anchor/anchor.directive.d.ts +15 -23
  40. package/lib/router/model/id.param.redirect.d.ts +1 -1
  41. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { Directive, Input, inject, signal } from '@angular/core';
1
+ import { Directive, inject, input } from '@angular/core';
2
2
  import { toObservable } from '@angular/core/rxjs-interop';
3
3
  import { authRolesSetContainsAllRolesFrom, DbxAuthService } from './service';
4
4
  import { AbstractIfDirective } from '../view/if.directive';
@@ -7,15 +7,12 @@ import * as i0 from "@angular/core";
7
7
  * Structural decorator directive similar to ngIf that embeds content if the current auth user has all of the target role(s).
8
8
  */
9
9
  export class DbxAuthHasRolesDirective extends AbstractIfDirective {
10
- _targetRoles = signal(undefined);
11
10
  _authService = inject(DbxAuthService);
12
- targetRoles$ = toObservable(this._targetRoles);
11
+ targetRoles = input(undefined, { alias: 'dbxAuthHasRoles' });
12
+ targetRoles$ = toObservable(this.targetRoles);
13
13
  show$ = this._authService.authRoles$.pipe(authRolesSetContainsAllRolesFrom(this.targetRoles$));
14
- set targetRoles(roles) {
15
- this._targetRoles.set(roles);
16
- }
17
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAuthHasRolesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
18
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxAuthHasRolesDirective, isStandalone: true, selector: "[dbxAuthHasRoles]", inputs: { targetRoles: ["dbxAuthHasRoles", "targetRoles"] }, usesInheritance: true, ngImport: i0 });
15
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxAuthHasRolesDirective, isStandalone: true, selector: "[dbxAuthHasRoles]", inputs: { targetRoles: { classPropertyName: "targetRoles", publicName: "dbxAuthHasRoles", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
19
16
  }
20
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAuthHasRolesDirective, decorators: [{
21
18
  type: Directive,
@@ -23,8 +20,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
23
20
  selector: '[dbxAuthHasRoles]',
24
21
  standalone: true
25
22
  }]
26
- }], propDecorators: { targetRoles: [{
27
- type: Input,
28
- args: ['dbxAuthHasRoles']
29
- }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yb2xlLmhhcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvYXV0aC5yb2xlLmhhcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFM0Q7O0dBRUc7QUFLSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQW1CO0lBQzlDLFlBQVksR0FBRyxNQUFNLENBQWdDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLFlBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFOUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFL0MsS0FBSyxHQUF3QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFFN0gsSUFDSSxXQUFXLENBQUMsS0FBb0M7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzt3R0FYVSx3QkFBd0I7NEZBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBVUssV0FBVztzQkFEZCxLQUFLO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1heWJlLCBBdXRoUm9sZSwgQXJyYXlPclZhbHVlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgYXV0aFJvbGVzU2V0Q29udGFpbnNBbGxSb2xlc0Zyb20sIERieEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0SWZEaXJlY3RpdmUgfSBmcm9tICcuLi92aWV3L2lmLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogU3RydWN0dXJhbCBkZWNvcmF0b3IgZGlyZWN0aXZlIHNpbWlsYXIgdG8gbmdJZiB0aGF0IGVtYmVkcyBjb250ZW50IGlmIHRoZSBjdXJyZW50IGF1dGggdXNlciBoYXMgYWxsIG9mIHRoZSB0YXJnZXQgcm9sZShzKS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEF1dGhIYXNSb2xlc10nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEF1dGhIYXNSb2xlc0RpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0SWZEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IF90YXJnZXRSb2xlcyA9IHNpZ25hbDxNYXliZTxBcnJheU9yVmFsdWU8QXV0aFJvbGU+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0aFNlcnZpY2UgPSBpbmplY3QoRGJ4QXV0aFNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHRhcmdldFJvbGVzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLl90YXJnZXRSb2xlcyk7XG5cbiAgcmVhZG9ubHkgc2hvdyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9hdXRoU2VydmljZS5hdXRoUm9sZXMkLnBpcGUoYXV0aFJvbGVzU2V0Q29udGFpbnNBbGxSb2xlc0Zyb20odGhpcy50YXJnZXRSb2xlcyQpKTtcblxuICBASW5wdXQoJ2RieEF1dGhIYXNSb2xlcycpXG4gIHNldCB0YXJnZXRSb2xlcyhyb2xlczogTWF5YmU8QXJyYXlPclZhbHVlPEF1dGhSb2xlPj4pIHtcbiAgICB0aGlzLl90YXJnZXRSb2xlcy5zZXQocm9sZXMpO1xuICB9XG59XG4iXX0=
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yb2xlLmhhcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvYXV0aC5yb2xlLmhhcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUUzRDs7R0FFRztBQUtILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxtQkFBbUI7SUFDOUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUU5QyxXQUFXLEdBQUcsS0FBSyxDQUFnQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLFlBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTlDLEtBQUssR0FBd0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO3dHQU5sSCx3QkFBd0I7NEZBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXliZSwgQXV0aFJvbGUsIEFycmF5T3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBhdXRoUm9sZXNTZXRDb250YWluc0FsbFJvbGVzRnJvbSwgRGJ4QXV0aFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RJZkRpcmVjdGl2ZSB9IGZyb20gJy4uL3ZpZXcvaWYuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBTdHJ1Y3R1cmFsIGRlY29yYXRvciBkaXJlY3RpdmUgc2ltaWxhciB0byBuZ0lmIHRoYXQgZW1iZWRzIGNvbnRlbnQgaWYgdGhlIGN1cnJlbnQgYXV0aCB1c2VyIGhhcyBhbGwgb2YgdGhlIHRhcmdldCByb2xlKHMpLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QXV0aEhhc1JvbGVzXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4QXV0aEhhc1JvbGVzRGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RJZkRpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2F1dGhTZXJ2aWNlID0gaW5qZWN0KERieEF1dGhTZXJ2aWNlKTtcblxuICByZWFkb25seSB0YXJnZXRSb2xlcyA9IGlucHV0PE1heWJlPEFycmF5T3JWYWx1ZTxBdXRoUm9sZT4+Pih1bmRlZmluZWQsIHsgYWxpYXM6ICdkYnhBdXRoSGFzUm9sZXMnIH0pO1xuICByZWFkb25seSB0YXJnZXRSb2xlcyQgPSB0b09ic2VydmFibGUodGhpcy50YXJnZXRSb2xlcyk7XG5cbiAgcmVhZG9ubHkgc2hvdyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9hdXRoU2VydmljZS5hdXRoUm9sZXMkLnBpcGUoYXV0aFJvbGVzU2V0Q29udGFpbnNBbGxSb2xlc0Zyb20odGhpcy50YXJnZXRSb2xlcyQpKTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Directive, Input, inject, signal } from '@angular/core';
1
+ import { Directive, inject, input } from '@angular/core';
2
2
  import { toObservable } from '@angular/core/rxjs-interop';
3
3
  import { authRolesSetContainsNoRolesFrom, DbxAuthService } from './service';
4
4
  import { AbstractIfDirective } from '../view/if.directive';
@@ -7,15 +7,12 @@ import * as i0 from "@angular/core";
7
7
  * Structural decorator directive similar to ngIf that embeds content if the current auth user has none of the target role(s).
8
8
  */
9
9
  export class DbxAuthNotAnyRoleDirective extends AbstractIfDirective {
10
- _targetRoles = signal(undefined);
11
10
  _authService = inject(DbxAuthService);
12
- targetRoles$ = toObservable(this._targetRoles);
11
+ targetRoles = input(undefined, { alias: 'dbxAuthNotAnyRole' });
12
+ targetRoles$ = toObservable(this.targetRoles);
13
13
  show$ = this._authService.authRoles$.pipe(authRolesSetContainsNoRolesFrom(this.targetRoles$));
14
- set targetRoles(roles) {
15
- this._targetRoles.set(roles);
16
- }
17
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAuthNotAnyRoleDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
18
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxAuthNotAnyRoleDirective, isStandalone: true, selector: "[dbxAuthNotAnyRole]", inputs: { targetRoles: ["dbxAuthNotAnyRole", "targetRoles"] }, usesInheritance: true, ngImport: i0 });
15
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxAuthNotAnyRoleDirective, isStandalone: true, selector: "[dbxAuthNotAnyRole]", inputs: { targetRoles: { classPropertyName: "targetRoles", publicName: "dbxAuthNotAnyRole", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
19
16
  }
20
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAuthNotAnyRoleDirective, decorators: [{
21
18
  type: Directive,
@@ -23,8 +20,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
23
20
  selector: '[dbxAuthNotAnyRole]',
24
21
  standalone: true
25
22
  }]
26
- }], propDecorators: { targetRoles: [{
27
- type: Input,
28
- args: ['dbxAuthNotAnyRole']
29
- }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yb2xlLm5vdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvYXV0aC5yb2xlLm5vdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFM0Q7O0dBRUc7QUFLSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsbUJBQW1CO0lBQ2hELFlBQVksR0FBRyxNQUFNLENBQWdDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLFlBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFOUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFL0MsS0FBSyxHQUF3QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFFNUgsSUFDSSxXQUFXLENBQUMsS0FBb0M7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzt3R0FYVSwwQkFBMEI7NEZBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBVUssV0FBVztzQkFEZCxLQUFLO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1heWJlLCBBdXRoUm9sZSwgQXJyYXlPclZhbHVlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgYXV0aFJvbGVzU2V0Q29udGFpbnNOb1JvbGVzRnJvbSwgRGJ4QXV0aFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RJZkRpcmVjdGl2ZSB9IGZyb20gJy4uL3ZpZXcvaWYuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBTdHJ1Y3R1cmFsIGRlY29yYXRvciBkaXJlY3RpdmUgc2ltaWxhciB0byBuZ0lmIHRoYXQgZW1iZWRzIGNvbnRlbnQgaWYgdGhlIGN1cnJlbnQgYXV0aCB1c2VyIGhhcyBub25lIG9mIHRoZSB0YXJnZXQgcm9sZShzKS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEF1dGhOb3RBbnlSb2xlXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4QXV0aE5vdEFueVJvbGVEaXJlY3RpdmUgZXh0ZW5kcyBBYnN0cmFjdElmRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdGFyZ2V0Um9sZXMgPSBzaWduYWw8TWF5YmU8QXJyYXlPclZhbHVlPEF1dGhSb2xlPj4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2F1dGhTZXJ2aWNlID0gaW5qZWN0KERieEF1dGhTZXJ2aWNlKTtcblxuICByZWFkb25seSB0YXJnZXRSb2xlcyQgPSB0b09ic2VydmFibGUodGhpcy5fdGFyZ2V0Um9sZXMpO1xuXG4gIHJlYWRvbmx5IHNob3ckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fYXV0aFNlcnZpY2UuYXV0aFJvbGVzJC5waXBlKGF1dGhSb2xlc1NldENvbnRhaW5zTm9Sb2xlc0Zyb20odGhpcy50YXJnZXRSb2xlcyQpKTtcblxuICBASW5wdXQoJ2RieEF1dGhOb3RBbnlSb2xlJylcbiAgc2V0IHRhcmdldFJvbGVzKHJvbGVzOiBNYXliZTxBcnJheU9yVmFsdWU8QXV0aFJvbGU+Pikge1xuICAgIHRoaXMuX3RhcmdldFJvbGVzLnNldChyb2xlcyk7XG4gIH1cbn1cbiJdfQ==
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yb2xlLm5vdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2F1dGgvYXV0aC5yb2xlLm5vdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUUzRDs7R0FFRztBQUtILE1BQU0sT0FBTywwQkFBMkIsU0FBUSxtQkFBbUI7SUFDaEQsWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUU5QyxXQUFXLEdBQUcsS0FBSyxDQUFnQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLFlBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTlDLEtBQUssR0FBd0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO3dHQU5qSCwwQkFBMEI7NEZBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXliZSwgQXV0aFJvbGUsIEFycmF5T3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBhdXRoUm9sZXNTZXRDb250YWluc05vUm9sZXNGcm9tLCBEYnhBdXRoU2VydmljZSB9IGZyb20gJy4vc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdElmRGlyZWN0aXZlIH0gZnJvbSAnLi4vdmlldy9pZi5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIFN0cnVjdHVyYWwgZGVjb3JhdG9yIGRpcmVjdGl2ZSBzaW1pbGFyIHRvIG5nSWYgdGhhdCBlbWJlZHMgY29udGVudCBpZiB0aGUgY3VycmVudCBhdXRoIHVzZXIgaGFzIG5vbmUgb2YgdGhlIHRhcmdldCByb2xlKHMpLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QXV0aE5vdEFueVJvbGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhBdXRoTm90QW55Um9sZURpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0SWZEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoU2VydmljZSA9IGluamVjdChEYnhBdXRoU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgdGFyZ2V0Um9sZXMgPSBpbnB1dDxNYXliZTxBcnJheU9yVmFsdWU8QXV0aFJvbGU+Pj4odW5kZWZpbmVkLCB7IGFsaWFzOiAnZGJ4QXV0aE5vdEFueVJvbGUnIH0pO1xuICByZWFkb25seSB0YXJnZXRSb2xlcyQgPSB0b09ic2VydmFibGUodGhpcy50YXJnZXRSb2xlcyk7XG5cbiAgcmVhZG9ubHkgc2hvdyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9hdXRoU2VydmljZS5hdXRoUm9sZXMkLnBpcGUoYXV0aFJvbGVzU2V0Q29udGFpbnNOb1JvbGVzRnJvbSh0aGlzLnRhcmdldFJvbGVzJCkpO1xufVxuIl19
@@ -1,7 +1,5 @@
1
- import { filterMaybe } from '@dereekb/rxjs';
2
- import { Directive, Input, inject } from '@angular/core';
1
+ import { Directive, inject, input } from '@angular/core';
3
2
  import { AbstractSubscriptionDirective } from '../../subscription/subscription.directive';
4
- import { shareReplay, distinctUntilChanged, switchMap, tap, BehaviorSubject } from 'rxjs';
5
3
  import { DbxButton } from '../button';
6
4
  import { DbxRouterService } from '../../router/router/service/router.service';
7
5
  import * as i0 from "@angular/core";
@@ -9,27 +7,18 @@ import * as i0 from "@angular/core";
9
7
  export class DbxButtonSegueDirective extends AbstractSubscriptionDirective {
10
8
  dbxButton = inject(DbxButton);
11
9
  dbxRouterService = inject(DbxRouterService);
12
- _segueRef = new BehaviorSubject(undefined);
13
- segueRef$ = this._segueRef.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
14
- get segueRef() {
15
- return this._segueRef.value;
10
+ segueRef = input(undefined, { alias: 'dbxButtonSegue' });
11
+ constructor() {
12
+ super();
13
+ this.sub = this.dbxButton.clicked$.subscribe(() => {
14
+ const segueRef = this.segueRef();
15
+ if (segueRef) {
16
+ this.dbxRouterService.go(segueRef);
17
+ }
18
+ });
16
19
  }
17
- set segueRef(segueRef) {
18
- this._segueRef.next(segueRef);
19
- }
20
- ngOnInit() {
21
- this.sub = this.segueRef$
22
- .pipe(switchMap((segueRef) => this.dbxButton.clicked$.pipe(tap(() => {
23
- this.dbxRouterService.go(segueRef);
24
- }))))
25
- .subscribe();
26
- }
27
- ngOnDestroy() {
28
- super.ngOnDestroy();
29
- this._segueRef.complete();
30
- }
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxButtonSegueDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
32
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxButtonSegueDirective, isStandalone: true, selector: "[dbxButtonSegue]", inputs: { segueRef: ["dbxButtonSegue", "segueRef"] }, usesInheritance: true, ngImport: i0 });
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxButtonSegueDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
21
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxButtonSegueDirective, isStandalone: true, selector: "[dbxButtonSegue]", inputs: { segueRef: { classPropertyName: "segueRef", publicName: "dbxButtonSegue", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
33
22
  }
34
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxButtonSegueDirective, decorators: [{
35
24
  type: Directive,
@@ -37,8 +26,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
37
26
  selector: '[dbxButtonSegue]',
38
27
  standalone: true
39
28
  }]
40
- }], propDecorators: { segueRef: [{
41
- type: Input,
42
- args: ['dbxButtonSegue']
43
- }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLnNlZ3VlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYnV0dG9uL3JvdXRlci9idXR0b24uc2VndWUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBRzlFLDBCQUEwQjtBQUsxQixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsNkJBQTZCO0lBQy9ELFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFcEMsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFrQixTQUFTLENBQUMsQ0FBQztJQUNwRSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRyxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUF5QjtRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVM7YUFDdEIsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNGO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzt3R0FqQ1UsdUJBQXVCOzRGQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQVNLLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXJNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgdGFwLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEJ1dHRvbiB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBEYnhSb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcm91dGVyL3JvdXRlci9zZXJ2aWNlL3JvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlZ3VlUmVmIH0gZnJvbSAnLi4vLi4vcm91dGVyL3NlZ3VlJztcblxuLy8gTUFSSzogQnV0dG9uIERpcmVjdGl2ZXNcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhCdXR0b25TZWd1ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEJ1dHRvblNlZ3VlRGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGRieEJ1dHRvbiA9IGluamVjdChEYnhCdXR0b24pO1xuICByZWFkb25seSBkYnhSb3V0ZXJTZXJ2aWNlID0gaW5qZWN0KERieFJvdXRlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlZ3VlUmVmID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxTZWd1ZVJlZj4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHNlZ3VlUmVmJCA9IHRoaXMuX3NlZ3VlUmVmLnBpcGUoZmlsdGVyTWF5YmUoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIEBJbnB1dCgnZGJ4QnV0dG9uU2VndWUnKVxuICBnZXQgc2VndWVSZWYoKTogTWF5YmU8U2VndWVSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5fc2VndWVSZWYudmFsdWU7XG4gIH1cblxuICBzZXQgc2VndWVSZWYoc2VndWVSZWY6IE1heWJlPFNlZ3VlUmVmPikge1xuICAgIHRoaXMuX3NlZ3VlUmVmLm5leHQoc2VndWVSZWYpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWIgPSB0aGlzLnNlZ3VlUmVmJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoc2VndWVSZWYpID0+XG4gICAgICAgICAgdGhpcy5kYnhCdXR0b24uY2xpY2tlZCQucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZGJ4Um91dGVyU2VydmljZS5nbyhzZWd1ZVJlZik7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9zZWd1ZVJlZi5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
29
+ }], ctorParameters: () => [] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLnNlZ3VlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvYnV0dG9uL3JvdXRlci9idXR0b24uc2VndWUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQUc5RSwwQkFBMEI7QUFLMUIsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDZCQUE2QjtJQUMvRCxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVDLFFBQVEsR0FBRyxLQUFLLENBQWtCLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFbkY7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNoRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFakMsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBZlUsdUJBQXVCOzRGQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3N1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IERieEJ1dHRvbiB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBEYnhSb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcm91dGVyL3JvdXRlci9zZXJ2aWNlL3JvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlZ3VlUmVmIH0gZnJvbSAnLi4vLi4vcm91dGVyL3NlZ3VlJztcblxuLy8gTUFSSzogQnV0dG9uIERpcmVjdGl2ZXNcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhCdXR0b25TZWd1ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEJ1dHRvblNlZ3VlRGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUge1xuICByZWFkb25seSBkYnhCdXR0b24gPSBpbmplY3QoRGJ4QnV0dG9uKTtcbiAgcmVhZG9ubHkgZGJ4Um91dGVyU2VydmljZSA9IGluamVjdChEYnhSb3V0ZXJTZXJ2aWNlKTtcblxuICByZWFkb25seSBzZWd1ZVJlZiA9IGlucHV0PE1heWJlPFNlZ3VlUmVmPj4odW5kZWZpbmVkLCB7IGFsaWFzOiAnZGJ4QnV0dG9uU2VndWUnIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdWIgPSB0aGlzLmRieEJ1dHRvbi5jbGlja2VkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VndWVSZWYgPSB0aGlzLnNlZ3VlUmVmKCk7XG5cbiAgICAgIGlmIChzZWd1ZVJlZikge1xuICAgICAgICB0aGlzLmRieFJvdXRlclNlcnZpY2UuZ28oc2VndWVSZWYpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,32 +1,20 @@
1
- import { filterMaybe } from '@dereekb/rxjs';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { Directive, Input, inject } from '@angular/core';
1
+ import { Directive, effect, inject, input } from '@angular/core';
4
2
  import { DbxAppContextService } from './context.service';
5
- import { AbstractSubscriptionDirective } from '../subscription';
6
3
  import * as i0 from "@angular/core";
7
4
  /**
8
5
  * Used to set the DbxAppContextState for an app to the input state using the DbxAppContextService.
9
6
  */
10
- export class DbxAppContextStateDirective extends AbstractSubscriptionDirective {
7
+ export class DbxAppContextStateDirective {
11
8
  dbxAppContextStateService = inject(DbxAppContextService);
12
- _state = new BehaviorSubject(undefined);
13
- constructor() {
14
- super();
15
- }
16
- ngOnInit() {
17
- this.sub = this._state.pipe(filterMaybe()).subscribe((state) => {
9
+ state = input(undefined, { alias: 'dbxAppContextState' });
10
+ _stateEffect = effect(() => {
11
+ const state = this.state();
12
+ if (state != null) {
18
13
  this.dbxAppContextStateService.setState(state);
19
- });
20
- }
21
- ngOnDestroy() {
22
- super.ngOnDestroy();
23
- this._state.complete();
24
- }
25
- set state(state) {
26
- this._state.next(state);
27
- }
14
+ }
15
+ }, { allowSignalWrites: true });
28
16
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAppContextStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
29
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxAppContextStateDirective, isStandalone: true, selector: "[dbxAppContextState]", inputs: { state: ["dbxAppContextState", "state"] }, usesInheritance: true, ngImport: i0 });
17
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxAppContextStateDirective, isStandalone: true, selector: "[dbxAppContextState]", inputs: { state: { classPropertyName: "state", publicName: "dbxAppContextState", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
30
18
  }
31
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAppContextStateDirective, decorators: [{
32
20
  type: Directive,
@@ -34,8 +22,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
34
22
  selector: '[dbxAppContextState]',
35
23
  standalone: true
36
24
  }]
37
- }], ctorParameters: () => [], propDecorators: { state: [{
38
- type: Input,
39
- args: ['dbxAppContextState']
40
- }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2NvbnRleHQvY29udGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSWhFOztHQUVHO0FBS0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDZCQUE2QjtJQUNuRSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUVqRCxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQTRCLFNBQVMsQ0FBQyxDQUFDO0lBRXBGO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM3RCxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQ0ksS0FBSyxDQUFDLEtBQWdDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7d0dBdkJVLDJCQUEyQjs0RkFBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjt3REFzQkssS0FBSztzQkFEUixLQUFLO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEFwcENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi9zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgRGJ4QXBwQ29udGV4dFN0YXRlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBVc2VkIHRvIHNldCB0aGUgRGJ4QXBwQ29udGV4dFN0YXRlIGZvciBhbiBhcHAgdG8gdGhlIGlucHV0IHN0YXRlIHVzaW5nIHRoZSBEYnhBcHBDb250ZXh0U2VydmljZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEFwcENvbnRleHRTdGF0ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEFwcENvbnRleHRTdGF0ZURpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICByZWFkb25seSBkYnhBcHBDb250ZXh0U3RhdGVTZXJ2aWNlID0gaW5qZWN0KERieEFwcENvbnRleHRTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8RGJ4QXBwQ29udGV4dFN0YXRlPj4odW5kZWZpbmVkKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWIgPSB0aGlzLl9zdGF0ZS5waXBlKGZpbHRlck1heWJlKCkpLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgIHRoaXMuZGJ4QXBwQ29udGV4dFN0YXRlU2VydmljZS5zZXRTdGF0ZShzdGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX3N0YXRlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBASW5wdXQoJ2RieEFwcENvbnRleHRTdGF0ZScpXG4gIHNldCBzdGF0ZShzdGF0ZTogTWF5YmU8RGJ4QXBwQ29udGV4dFN0YXRlPikge1xuICAgIHRoaXMuX3N0YXRlLm5leHQoc3RhdGUpO1xuICB9XG59XG4iXX0=
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtY29yZS9zcmMvbGliL2NvbnRleHQvY29udGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFJekQ7O0dBRUc7QUFLSCxNQUFNLE9BQU8sMkJBQTJCO0lBQzdCLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRXpELEtBQUssR0FBRyxLQUFLLENBQTRCLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFFM0UsWUFBWSxHQUFHLE1BQU0sQ0FDdEMsR0FBRyxFQUFFO1FBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTNCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFDO3dHQWRTLDJCQUEyQjs0RkFBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhBcHBDb250ZXh0U2VydmljZSB9IGZyb20gJy4vY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IERieEFwcENvbnRleHRTdGF0ZSB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbi8qKlxuICogVXNlZCB0byBzZXQgdGhlIERieEFwcENvbnRleHRTdGF0ZSBmb3IgYW4gYXBwIHRvIHRoZSBpbnB1dCBzdGF0ZSB1c2luZyB0aGUgRGJ4QXBwQ29udGV4dFNlcnZpY2UuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhBcHBDb250ZXh0U3RhdGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhBcHBDb250ZXh0U3RhdGVEaXJlY3RpdmUge1xuICByZWFkb25seSBkYnhBcHBDb250ZXh0U3RhdGVTZXJ2aWNlID0gaW5qZWN0KERieEFwcENvbnRleHRTZXJ2aWNlKTtcblxuICByZWFkb25seSBzdGF0ZSA9IGlucHV0PE1heWJlPERieEFwcENvbnRleHRTdGF0ZT4+KHVuZGVmaW5lZCwgeyBhbGlhczogJ2RieEFwcENvbnRleHRTdGF0ZScgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zdGF0ZUVmZmVjdCA9IGVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUoKTtcblxuICAgICAgaWYgKHN0YXRlICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5kYnhBcHBDb250ZXh0U3RhdGVTZXJ2aWNlLnNldFN0YXRlKHN0YXRlKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICApO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { Directive, Injector, Input, TemplateRef, ViewContainerRef, inject } from '@angular/core';
1
+ import { Directive, Injector, TemplateRef, ViewContainerRef, inject, effect, input } from '@angular/core';
2
2
  import { provideDbxInjectionContext } from './injection.context';
3
3
  import { DbxInjectionInstance } from './injection.instance';
4
4
  import { promiseReference } from '@dereekb/util';
@@ -14,24 +14,12 @@ export class DbxInjectionContextDirective {
14
14
  _currentPromise;
15
15
  _embeddedView;
16
16
  _isDetached = false;
17
- set config(config) {
18
- let reattach = false;
19
- if (config) {
20
- if (!this._isDetached) {
21
- // detach the original view before setting config.
22
- this._viewContainer.detach();
23
- this._isDetached = true;
24
- }
25
- }
26
- else if (this._isDetached) {
27
- reattach = true;
28
- }
29
- this._instance.config = config;
30
- if (reattach) {
31
- this._viewContainer.insert(this._embeddedView);
32
- this._isDetached = false;
33
- }
34
- }
17
+ config = input();
18
+ _configEffect = effect(() => {
19
+ this.setConfig(this.config());
20
+ // NOTE: we have/call setConfig() because the effect() may not respond to all value changes,
21
+ // especially when setConfig() ends up being called twice quickly in quick succession.
22
+ });
35
23
  ngOnInit() {
36
24
  this._instance.content = this._viewContainer;
37
25
  this._instance.init();
@@ -73,7 +61,7 @@ export class DbxInjectionContextDirective {
73
61
  }
74
62
  }
75
63
  };
76
- this.config = injectionConfig;
64
+ this.setConfig(injectionConfig);
77
65
  });
78
66
  this._currentPromise = promiseRef;
79
67
  // await the promise
@@ -85,7 +73,7 @@ export class DbxInjectionContextDirective {
85
73
  // if we're still using the same promiseRef
86
74
  if (promiseRef && promiseRef === this._currentPromise) {
87
75
  // clear the config to reshow the view
88
- this.config = undefined;
76
+ this.setConfig(undefined);
89
77
  // clear the current promise
90
78
  this._currentPromise = undefined;
91
79
  }
@@ -103,15 +91,33 @@ export class DbxInjectionContextDirective {
103
91
  // clear the current promise too
104
92
  this._currentPromise = undefined;
105
93
  // clear the config.
106
- this.config = undefined;
94
+ this.setConfig(undefined);
107
95
  // send a rejection signal to bail out.
108
96
  promise.reject(new Error('dbxInjectionContext bailout'));
109
97
  clearedValue = true;
110
98
  }
111
99
  return clearedValue;
112
100
  }
101
+ setConfig(config) {
102
+ let reattach = false;
103
+ if (config) {
104
+ if (!this._isDetached) {
105
+ // detach the original view before setting config.
106
+ this._viewContainer.detach();
107
+ this._isDetached = true;
108
+ }
109
+ }
110
+ else if (this._isDetached) {
111
+ reattach = true;
112
+ }
113
+ this._instance.config = config;
114
+ if (reattach) {
115
+ this._viewContainer.insert(this._embeddedView);
116
+ this._isDetached = false;
117
+ }
118
+ }
113
119
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxInjectionContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
114
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxInjectionContextDirective, isStandalone: true, selector: "[dbxInjectionContext]", inputs: { config: "config" }, providers: provideDbxInjectionContext(DbxInjectionContextDirective), ngImport: i0 });
120
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxInjectionContextDirective, isStandalone: true, selector: "[dbxInjectionContext]", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, providers: provideDbxInjectionContext(DbxInjectionContextDirective), ngImport: i0 });
115
121
  }
116
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxInjectionContextDirective, decorators: [{
117
123
  type: Directive,
@@ -120,7 +126,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
120
126
  providers: provideDbxInjectionContext(DbxInjectionContextDirective),
121
127
  standalone: true
122
128
  }]
123
- }], propDecorators: { config: [{
124
- type: Input
125
- }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9pbmplY3Rpb24vaW5qZWN0aW9uLmNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW1CLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEksT0FBTyxFQUFrRCwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTVELE9BQU8sRUFBb0MsZ0JBQWdCLEVBQWMsTUFBTSxlQUFlLENBQUM7O0FBRS9GOztHQUVHO0FBTUgsTUFBTSxPQUFPLDRCQUE0QjtJQUN0QixTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQSxXQUFjLENBQUEsQ0FBQyxDQUFDO0lBQ3RDLGNBQWMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUUxQyxTQUFTLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFOUQsZUFBZSxDQUFtQztJQUNsRCxhQUFhLENBQXNCO0lBQ25DLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFNUIsSUFDSSxNQUFNLENBQUMsTUFBbUQ7UUFDNUQsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXJCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN0QixrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRS9CLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0UsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFN0Isa0RBQWtEO1FBQ2xELGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRztZQUN4QixPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsaUNBQWlDO0lBQ2xFLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFPLE1BQW9DO1FBQzFELDBEQUEwRDtRQUMxRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSSxVQUFzQyxDQUFDO1FBRTNDLElBQUksTUFBZ0IsQ0FBQztRQUNyQixJQUFJLEtBQWMsQ0FBQztRQUVuQix5RUFBeUU7UUFDekUsSUFBSSxDQUFDO1lBQ0gsVUFBVSxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3RELE1BQU0sZUFBZSxHQUFtQztvQkFDdEQsR0FBRyxNQUFNLENBQUMsTUFBTTtvQkFDaEIsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFXLEVBQUUsRUFBRTt3QkFDMUIsd0NBQXdDO3dCQUN4QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7NEJBQ3ZCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUMvQixDQUFDO3dCQUVELElBQUksQ0FBQzs0QkFDSCxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBc0IsQ0FBQzs0QkFDakUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNsQixDQUFDO3dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7NEJBQ1gsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNaLENBQUM7b0JBQ0gsQ0FBQztpQkFDRixDQUFDO2dCQUVGLElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBdUQsQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBdUMsQ0FBQztZQUUvRCxvQkFBb0I7WUFDcEIsTUFBTSxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQzNCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNaLENBQUM7UUFFRCwyQ0FBMkM7UUFDM0MsSUFBSSxVQUFVLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0RCxzQ0FBc0M7WUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7WUFFeEIsNEJBQTRCO1lBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ25DLENBQUM7UUFFRCxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQVcsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUVyQyxnQ0FBZ0M7WUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7WUFFakMsb0JBQW9CO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBRXhCLHVDQUF1QztZQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQztZQUV6RCxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUM7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO3dHQWhJVSw0QkFBNEI7NEZBQTVCLDRCQUE0QixrR0FINUIsMEJBQTBCLENBQUMsNEJBQTRCLENBQUM7OzRGQUd4RCw0QkFBNEI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsU0FBUyxFQUFFLDBCQUEwQiw4QkFBOEI7b0JBQ25FLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFhSyxNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgSW5qZWN0b3IsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiwgT25EZXN0cm95LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29udGV4dCwgRGJ4SW5qZWN0aW9uQ29udGV4dENvbmZpZywgcHJvdmlkZURieEluamVjdGlvbkNvbnRleHQgfSBmcm9tICcuL2luamVjdGlvbi5jb250ZXh0JztcbmltcG9ydCB7IERieEluamVjdGlvbkluc3RhbmNlIH0gZnJvbSAnLi9pbmplY3Rpb24uaW5zdGFuY2UnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi9pbmplY3Rpb24nO1xuaW1wb3J0IHsgUHJvbWlzZU9yVmFsdWUsIFByb21pc2VSZWZlcmVuY2UsIHByb21pc2VSZWZlcmVuY2UsIHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBEYnhJbmplY3RlZFZpZXdDb250ZXh0IGltcGxlbWVudGF0aW9uLiBBY3RzIHNpbWlsYXIgdG8gKm5nSWYsIGJ1dCBpbnN0ZWFkIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IHZpZXcgd2l0aG91dCBkZXN0cm95aW5nIHRoZSBvcmlnaW5hbCBjaGlsZCB2aWV3LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4SW5qZWN0aW9uQ29udGV4dF0nLFxuICBwcm92aWRlcnM6IHByb3ZpZGVEYnhJbmplY3Rpb25Db250ZXh0KERieEluamVjdGlvbkNvbnRleHREaXJlY3RpdmUpLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEluamVjdGlvbkNvbnRleHREaXJlY3RpdmU8TyA9IHVua25vd24+IGltcGxlbWVudHMgRGJ4SW5qZWN0aW9uQ29udGV4dCwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPE8+KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld0NvbnRhaW5lciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnN0YW5jZSA9IG5ldyBEYnhJbmplY3Rpb25JbnN0YW5jZSh0aGlzLl9pbmplY3Rvcik7XG5cbiAgcHJpdmF0ZSBfY3VycmVudFByb21pc2U6IE1heWJlPFByb21pc2VSZWZlcmVuY2U8dW5rbm93bj4+O1xuICBwcml2YXRlIF9lbWJlZGRlZFZpZXchOiBFbWJlZGRlZFZpZXdSZWY8Tz47XG4gIHByaXZhdGUgX2lzRGV0YWNoZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgY29uZmlnKGNvbmZpZzogTWF5YmU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPHVua25vd24+Pikge1xuICAgIGxldCByZWF0dGFjaCA9IGZhbHNlO1xuXG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgaWYgKCF0aGlzLl9pc0RldGFjaGVkKSB7XG4gICAgICAgIC8vIGRldGFjaCB0aGUgb3JpZ2luYWwgdmlldyBiZWZvcmUgc2V0dGluZyBjb25maWcuXG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuZGV0YWNoKCk7XG4gICAgICAgIHRoaXMuX2lzRGV0YWNoZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5faXNEZXRhY2hlZCkge1xuICAgICAgcmVhdHRhY2ggPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuX2luc3RhbmNlLmNvbmZpZyA9IGNvbmZpZztcblxuICAgIGlmIChyZWF0dGFjaCkge1xuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5pbnNlcnQodGhpcy5fZW1iZWRkZWRWaWV3KTtcbiAgICAgIHRoaXMuX2lzRGV0YWNoZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9pbnN0YW5jZS5jb250ZW50ID0gdGhpcy5fdmlld0NvbnRhaW5lcjtcbiAgICB0aGlzLl9pbnN0YW5jZS5pbml0KCk7XG4gICAgdGhpcy5fZW1iZWRkZWRWaWV3ID0gdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGVtcGxhdGVSZWYpO1xuXG4gICAgLy8gZGV0YWNoIHRoZSBlbWJlZGRlZCB2aWV3XG4gICAgdGhpcy5fdmlld0NvbnRhaW5lci5kZXRhY2goKTtcblxuICAgIC8vIHJlYXR0YWNoIGl0IHRocm91Z2ggdGhlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24uXG4gICAgLy8gdGhlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24gYWN0cyBhcyB0aGUgZGVmYXVsdC5cbiAgICB0aGlzLl9pbnN0YW5jZS50ZW1wbGF0ZSA9IHtcbiAgICAgIHZpZXdSZWY6IHRoaXMuX2VtYmVkZGVkVmlld1xuICAgIH07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgdGhpcy5fZW1iZWRkZWRWaWV3Py5kZXN0cm95KCk7IC8vIGRlc3Ryb3kgb3VyIGVtYmVkZGVkIHZpZXcgdG9vLlxuICB9XG5cbiAgYXN5bmMgc2hvd0NvbnRleHQ8VCwgTz4oY29uZmlnOiBEYnhJbmplY3Rpb25Db250ZXh0Q29uZmlnPFQ+KTogUHJvbWlzZTxPPiB7XG4gICAgLy8gY2xlYXIgdGhlIGN1cnJlbnQgY29udGV4dCBiZWZvcmUgc2hvd2luZyBzb21ldGhpbmcgbmV3LlxuICAgIHRoaXMucmVzZXRDb250ZXh0KCk7XG5cbiAgICBsZXQgcHJvbWlzZVJlZjogTWF5YmU8UHJvbWlzZVJlZmVyZW5jZTxPPj47XG5cbiAgICBsZXQgcmVzdWx0OiBNYXliZTxPPjtcbiAgICBsZXQgZXJyb3I6IHVua25vd247XG5cbiAgICAvLyB3YWl0IGZvciB0aGUgcHJvbWlzZSB0byByZXNvbHZlIGFuZCB1c2UgdG8gZmluaXNoIHVzaW5nIHRoYXQgaW5zdGFuY2UuXG4gICAgdHJ5IHtcbiAgICAgIHByb21pc2VSZWYgPSBwcm9taXNlUmVmZXJlbmNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgaW5qZWN0aW9uQ29uZmlnOiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8VD4gPSB7XG4gICAgICAgICAgLi4uY29uZmlnLmNvbmZpZyxcbiAgICAgICAgICBpbml0OiBhc3luYyAoaW5zdGFuY2U6IFQpID0+IHtcbiAgICAgICAgICAgIC8vIGluaXQgaWYgYXZhaWxhYmxlIGluIHRoZSBiYXNlIGNvbmZpZy5cbiAgICAgICAgICAgIGlmIChjb25maWcuY29uZmlnLmluaXQpIHtcbiAgICAgICAgICAgICAgY29uZmlnLmNvbmZpZy5pbml0KGluc3RhbmNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gKGF3YWl0IGNvbmZpZy51c2UoaW5zdGFuY2UpKSBhcyBQcm9taXNlT3JWYWx1ZTxPPjtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuY29uZmlnID0gaW5qZWN0aW9uQ29uZmlnIGFzIERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzx1bmtub3duPjtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9jdXJyZW50UHJvbWlzZSA9IHByb21pc2VSZWYgYXMgUHJvbWlzZVJlZmVyZW5jZTx1bmtub3duPjtcblxuICAgICAgLy8gYXdhaXQgdGhlIHByb21pc2VcbiAgICAgIGF3YWl0IHByb21pc2VSZWYucHJvbWlzZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnJvciA9IGU7XG4gICAgfVxuXG4gICAgLy8gaWYgd2UncmUgc3RpbGwgdXNpbmcgdGhlIHNhbWUgcHJvbWlzZVJlZlxuICAgIGlmIChwcm9taXNlUmVmICYmIHByb21pc2VSZWYgPT09IHRoaXMuX2N1cnJlbnRQcm9taXNlKSB7XG4gICAgICAvLyBjbGVhciB0aGUgY29uZmlnIHRvIHJlc2hvdyB0aGUgdmlld1xuICAgICAgdGhpcy5jb25maWcgPSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIGNsZWFyIHRoZSBjdXJyZW50IHByb21pc2VcbiAgICAgIHRoaXMuX2N1cnJlbnRQcm9taXNlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChlcnJvciAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVzdWx0IGFzIE87XG4gICAgfVxuICB9XG5cbiAgcmVzZXRDb250ZXh0KCk6IGJvb2xlYW4ge1xuICAgIGxldCBjbGVhcmVkVmFsdWUgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLl9jdXJyZW50UHJvbWlzZSkge1xuICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2N1cnJlbnRQcm9taXNlO1xuXG4gICAgICAvLyBjbGVhciB0aGUgY3VycmVudCBwcm9taXNlIHRvb1xuICAgICAgdGhpcy5fY3VycmVudFByb21pc2UgPSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIGNsZWFyIHRoZSBjb25maWcuXG4gICAgICB0aGlzLmNvbmZpZyA9IHVuZGVmaW5lZDtcblxuICAgICAgLy8gc2VuZCBhIHJlamVjdGlvbiBzaWduYWwgdG8gYmFpbCBvdXQuXG4gICAgICBwcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ2RieEluamVjdGlvbkNvbnRleHQgYmFpbG91dCcpKTtcblxuICAgICAgY2xlYXJlZFZhbHVlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xlYXJlZFZhbHVlO1xuICB9XG59XG4iXX0=
129
+ }] });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9pbmplY3Rpb24vaW5qZWN0aW9uLmNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW1CLFFBQVEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBa0QsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxPQUFPLEVBQW9DLGdCQUFnQixFQUFjLE1BQU0sZUFBZSxDQUFDOztBQUUvRjs7R0FFRztBQU1ILE1BQU0sT0FBTyw0QkFBNEI7SUFDdEIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBYyxDQUFBLENBQUMsQ0FBQztJQUN0QyxjQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFMUMsU0FBUyxHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlELGVBQWUsQ0FBbUM7SUFDbEQsYUFBYSxDQUFzQjtJQUNuQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRW5CLE1BQU0sR0FBRyxLQUFLLEVBQStDLENBQUM7SUFFcEQsYUFBYSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUU5Qiw0RkFBNEY7UUFDNUYsc0ZBQXNGO0lBQ3hGLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRS9FLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTdCLGtEQUFrRDtRQUNsRCxrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUc7WUFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLGlDQUFpQztJQUNsRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBTyxNQUFvQztRQUMxRCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLElBQUksVUFBc0MsQ0FBQztRQUUzQyxJQUFJLE1BQWdCLENBQUM7UUFDckIsSUFBSSxLQUFjLENBQUM7UUFFbkIseUVBQXlFO1FBQ3pFLElBQUksQ0FBQztZQUNILFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN0RCxNQUFNLGVBQWUsR0FBbUM7b0JBQ3RELEdBQUcsTUFBTSxDQUFDLE1BQU07b0JBQ2hCLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBVyxFQUFFLEVBQUU7d0JBQzFCLHdDQUF3Qzt3QkFDeEMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDOzRCQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDL0IsQ0FBQzt3QkFFRCxJQUFJLENBQUM7NEJBQ0gsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQXNCLENBQUM7NEJBQ2pFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDbEIsQ0FBQzt3QkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDOzRCQUNYLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDWixDQUFDO29CQUNILENBQUM7aUJBQ0YsQ0FBQztnQkFFRixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQXVELENBQUMsQ0FBQztZQUMxRSxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBdUMsQ0FBQztZQUUvRCxvQkFBb0I7WUFDcEIsTUFBTSxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQzNCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNaLENBQUM7UUFFRCwyQ0FBMkM7UUFDM0MsSUFBSSxVQUFVLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0RCxzQ0FBc0M7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUxQiw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7UUFDbkMsQ0FBQztRQUVELElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBVyxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBRXJDLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztZQUVqQyxvQkFBb0I7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUxQix1Q0FBdUM7WUFDdkMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7WUFFekQsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFtRDtRQUMzRCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFckIsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3RCLGtEQUFrRDtnQkFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFL0IsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzt3R0F4SVUsNEJBQTRCOzRGQUE1Qiw0QkFBNEIsMk1BSDVCLDBCQUEwQixDQUFDLDRCQUE0QixDQUFDOzs0RkFHeEQsNEJBQTRCO2tCQUx4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFNBQVMsRUFBRSwwQkFBMEIsOEJBQThCO29CQUNuRSxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgSW5qZWN0b3IsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgaW5qZWN0LCBlZmZlY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db250ZXh0LCBEYnhJbmplY3Rpb25Db250ZXh0Q29uZmlnLCBwcm92aWRlRGJ4SW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJy4vaW5qZWN0aW9uLmNvbnRleHQnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uSW5zdGFuY2UgfSBmcm9tICcuL2luamVjdGlvbi5pbnN0YW5jZSc7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgfSBmcm9tICcuL2luamVjdGlvbic7XG5pbXBvcnQgeyBQcm9taXNlT3JWYWx1ZSwgUHJvbWlzZVJlZmVyZW5jZSwgcHJvbWlzZVJlZmVyZW5jZSwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG4vKipcbiAqIERieEluamVjdGVkVmlld0NvbnRleHQgaW1wbGVtZW50YXRpb24uIEFjdHMgc2ltaWxhciB0byAqbmdJZiwgYnV0IGluc3RlYWQgc3dpdGNoZXMgdG8gYSBkaWZmZXJlbnQgdmlldyB3aXRob3V0IGRlc3Ryb3lpbmcgdGhlIG9yaWdpbmFsIGNoaWxkIHZpZXcuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhJbmplY3Rpb25Db250ZXh0XScsXG4gIHByb3ZpZGVyczogcHJvdmlkZURieEluamVjdGlvbkNvbnRleHQoRGJ4SW5qZWN0aW9uQ29udGV4dERpcmVjdGl2ZSksXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4SW5qZWN0aW9uQ29udGV4dERpcmVjdGl2ZTxPID0gdW5rbm93bj4gaW1wbGVtZW50cyBEYnhJbmplY3Rpb25Db250ZXh0LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8Tz4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luc3RhbmNlID0gbmV3IERieEluamVjdGlvbkluc3RhbmNlKHRoaXMuX2luamVjdG9yKTtcblxuICBwcml2YXRlIF9jdXJyZW50UHJvbWlzZTogTWF5YmU8UHJvbWlzZVJlZmVyZW5jZTx1bmtub3duPj47XG4gIHByaXZhdGUgX2VtYmVkZGVkVmlldyE6IEVtYmVkZGVkVmlld1JlZjxPPjtcbiAgcHJpdmF0ZSBfaXNEZXRhY2hlZCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0PE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzx1bmtub3duPj4+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jb25maWdFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuc2V0Q29uZmlnKHRoaXMuY29uZmlnKCkpO1xuXG4gICAgLy8gTk9URTogd2UgaGF2ZS9jYWxsIHNldENvbmZpZygpIGJlY2F1c2UgdGhlIGVmZmVjdCgpIG1heSBub3QgcmVzcG9uZCB0byBhbGwgdmFsdWUgY2hhbmdlcyxcbiAgICAvLyBlc3BlY2lhbGx5IHdoZW4gc2V0Q29uZmlnKCkgZW5kcyB1cCBiZWluZyBjYWxsZWQgdHdpY2UgcXVpY2tseSBpbiBxdWljayBzdWNjZXNzaW9uLlxuICB9KTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9pbnN0YW5jZS5jb250ZW50ID0gdGhpcy5fdmlld0NvbnRhaW5lcjtcbiAgICB0aGlzLl9pbnN0YW5jZS5pbml0KCk7XG4gICAgdGhpcy5fZW1iZWRkZWRWaWV3ID0gdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGVtcGxhdGVSZWYpO1xuXG4gICAgLy8gZGV0YWNoIHRoZSBlbWJlZGRlZCB2aWV3XG4gICAgdGhpcy5fdmlld0NvbnRhaW5lci5kZXRhY2goKTtcblxuICAgIC8vIHJlYXR0YWNoIGl0IHRocm91Z2ggdGhlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24uXG4gICAgLy8gdGhlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24gYWN0cyBhcyB0aGUgZGVmYXVsdC5cbiAgICB0aGlzLl9pbnN0YW5jZS50ZW1wbGF0ZSA9IHtcbiAgICAgIHZpZXdSZWY6IHRoaXMuX2VtYmVkZGVkVmlld1xuICAgIH07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgdGhpcy5fZW1iZWRkZWRWaWV3Py5kZXN0cm95KCk7IC8vIGRlc3Ryb3kgb3VyIGVtYmVkZGVkIHZpZXcgdG9vLlxuICB9XG5cbiAgYXN5bmMgc2hvd0NvbnRleHQ8VCwgTz4oY29uZmlnOiBEYnhJbmplY3Rpb25Db250ZXh0Q29uZmlnPFQ+KTogUHJvbWlzZTxPPiB7XG4gICAgLy8gY2xlYXIgdGhlIGN1cnJlbnQgY29udGV4dCBiZWZvcmUgc2hvd2luZyBzb21ldGhpbmcgbmV3LlxuICAgIHRoaXMucmVzZXRDb250ZXh0KCk7XG5cbiAgICBsZXQgcHJvbWlzZVJlZjogTWF5YmU8UHJvbWlzZVJlZmVyZW5jZTxPPj47XG5cbiAgICBsZXQgcmVzdWx0OiBNYXliZTxPPjtcbiAgICBsZXQgZXJyb3I6IHVua25vd247XG5cbiAgICAvLyB3YWl0IGZvciB0aGUgcHJvbWlzZSB0byByZXNvbHZlIGFuZCB1c2UgdG8gZmluaXNoIHVzaW5nIHRoYXQgaW5zdGFuY2UuXG4gICAgdHJ5IHtcbiAgICAgIHByb21pc2VSZWYgPSBwcm9taXNlUmVmZXJlbmNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgaW5qZWN0aW9uQ29uZmlnOiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8VD4gPSB7XG4gICAgICAgICAgLi4uY29uZmlnLmNvbmZpZyxcbiAgICAgICAgICBpbml0OiBhc3luYyAoaW5zdGFuY2U6IFQpID0+IHtcbiAgICAgICAgICAgIC8vIGluaXQgaWYgYXZhaWxhYmxlIGluIHRoZSBiYXNlIGNvbmZpZy5cbiAgICAgICAgICAgIGlmIChjb25maWcuY29uZmlnLmluaXQpIHtcbiAgICAgICAgICAgICAgY29uZmlnLmNvbmZpZy5pbml0KGluc3RhbmNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gKGF3YWl0IGNvbmZpZy51c2UoaW5zdGFuY2UpKSBhcyBQcm9taXNlT3JWYWx1ZTxPPjtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc2V0Q29uZmlnKGluamVjdGlvbkNvbmZpZyBhcyBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8dW5rbm93bj4pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2N1cnJlbnRQcm9taXNlID0gcHJvbWlzZVJlZiBhcyBQcm9taXNlUmVmZXJlbmNlPHVua25vd24+O1xuXG4gICAgICAvLyBhd2FpdCB0aGUgcHJvbWlzZVxuICAgICAgYXdhaXQgcHJvbWlzZVJlZi5wcm9taXNlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGVycm9yID0gZTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSdyZSBzdGlsbCB1c2luZyB0aGUgc2FtZSBwcm9taXNlUmVmXG4gICAgaWYgKHByb21pc2VSZWYgJiYgcHJvbWlzZVJlZiA9PT0gdGhpcy5fY3VycmVudFByb21pc2UpIHtcbiAgICAgIC8vIGNsZWFyIHRoZSBjb25maWcgdG8gcmVzaG93IHRoZSB2aWV3XG4gICAgICB0aGlzLnNldENvbmZpZyh1bmRlZmluZWQpO1xuXG4gICAgICAvLyBjbGVhciB0aGUgY3VycmVudCBwcm9taXNlXG4gICAgICB0aGlzLl9jdXJyZW50UHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3IgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc3VsdCBhcyBPO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0Q29udGV4dCgpOiBib29sZWFuIHtcbiAgICBsZXQgY2xlYXJlZFZhbHVlID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5fY3VycmVudFByb21pc2UpIHtcbiAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9jdXJyZW50UHJvbWlzZTtcblxuICAgICAgLy8gY2xlYXIgdGhlIGN1cnJlbnQgcHJvbWlzZSB0b29cbiAgICAgIHRoaXMuX2N1cnJlbnRQcm9taXNlID0gdW5kZWZpbmVkO1xuXG4gICAgICAvLyBjbGVhciB0aGUgY29uZmlnLlxuICAgICAgdGhpcy5zZXRDb25maWcodW5kZWZpbmVkKTtcblxuICAgICAgLy8gc2VuZCBhIHJlamVjdGlvbiBzaWduYWwgdG8gYmFpbCBvdXQuXG4gICAgICBwcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ2RieEluamVjdGlvbkNvbnRleHQgYmFpbG91dCcpKTtcblxuICAgICAgY2xlYXJlZFZhbHVlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xlYXJlZFZhbHVlO1xuICB9XG5cbiAgc2V0Q29uZmlnKGNvbmZpZzogTWF5YmU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPHVua25vd24+Pikge1xuICAgIGxldCByZWF0dGFjaCA9IGZhbHNlO1xuXG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgaWYgKCF0aGlzLl9pc0RldGFjaGVkKSB7XG4gICAgICAgIC8vIGRldGFjaCB0aGUgb3JpZ2luYWwgdmlldyBiZWZvcmUgc2V0dGluZyBjb25maWcuXG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuZGV0YWNoKCk7XG4gICAgICAgIHRoaXMuX2lzRGV0YWNoZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5faXNEZXRhY2hlZCkge1xuICAgICAgcmVhdHRhY2ggPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuX2luc3RhbmNlLmNvbmZpZyA9IGNvbmZpZztcblxuICAgIGlmIChyZWF0dGFjaCkge1xuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5pbnNlcnQodGhpcy5fZW1iZWRkZWRWaWV3KTtcbiAgICAgIHRoaXMuX2lzRGV0YWNoZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -27,4 +27,4 @@ export class AbstractDbxInjectionDirective {
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxInjectionDirective, decorators: [{
28
28
  type: Directive
29
29
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvaW5qZWN0aW9uL2luamVjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRyxPQUFPLEVBQUUsb0JBQW9CLElBQUksb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHcEY7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLDZCQUE2QjtJQUNoQyxTQUFTLEdBQUcsSUFBSSxvQkFBb0IsQ0FBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUUzRSxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFzRTtRQUM5RSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUF1RTtRQUNqRixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFnQztRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDbkMsQ0FBQzt3R0FyQm1CLDZCQUE2Qjs0RkFBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQURsRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIERpcmVjdGl2ZSwgSW5qZWN0b3IsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnLCBEYnhJbmplY3Rpb25UZW1wbGF0ZUNvbmZpZyB9IGZyb20gJy4vaW5qZWN0aW9uJztcbmltcG9ydCB7IERieEluamVjdGlvbkluc3RhbmNlIGFzIERieEluamVjdGlvbkluc3RhbmNlIH0gZnJvbSAnLi9pbmplY3Rpb24uaW5zdGFuY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXIgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBpbmplY3RzIGNvbnRlbnQgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gaW50byB0aGUgdmlldy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REYnhJbmplY3Rpb25EaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2luc3RhbmNlID0gbmV3IERieEluamVjdGlvbkluc3RhbmNlPFQ+KGluamVjdChJbmplY3RvcikpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2luc3RhbmNlLmluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2luc3RhbmNlLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHNldENvbmZpZyhjb25maWc6IE1heWJlPE9ic2VydmFibGVPclZhbHVlR2V0dGVyPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxUPj4+KSB7XG4gICAgdGhpcy5faW5zdGFuY2UuY29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgc2V0VGVtcGxhdGUodGVtcGxhdGU6IE1heWJlPE9ic2VydmFibGVPclZhbHVlR2V0dGVyPERieEluamVjdGlvblRlbXBsYXRlQ29uZmlnPFQ+Pj4pIHtcbiAgICB0aGlzLl9pbnN0YW5jZS50ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgc2V0Q29udGVudChjb250ZW50OiBNYXliZTxWaWV3Q29udGFpbmVyUmVmPikge1xuICAgIHRoaXMuX2luc3RhbmNlLmNvbnRlbnQgPSBjb250ZW50O1xuICB9XG59XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1jb3JlL3NyYy9saWIvaW5qZWN0aW9uL2luamVjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRyxPQUFPLEVBQUUsb0JBQW9CLElBQUksb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHcEY7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLDZCQUE2QjtJQUNoQyxTQUFTLEdBQUcsSUFBSSxvQkFBb0IsQ0FBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUUzRSxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUE2RTtRQUNyRixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUF1RTtRQUNqRixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFnQztRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDbkMsQ0FBQzt3R0FyQm1CLDZCQUE2Qjs0RkFBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQURsRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIERpcmVjdGl2ZSwgSW5qZWN0b3IsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnLCBEYnhJbmplY3Rpb25UZW1wbGF0ZUNvbmZpZyB9IGZyb20gJy4vaW5qZWN0aW9uJztcbmltcG9ydCB7IERieEluamVjdGlvbkluc3RhbmNlIGFzIERieEluamVjdGlvbkluc3RhbmNlIH0gZnJvbSAnLi9pbmplY3Rpb24uaW5zdGFuY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXIgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBpbmplY3RzIGNvbnRlbnQgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gaW50byB0aGUgdmlldy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REYnhJbmplY3Rpb25EaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2luc3RhbmNlID0gbmV3IERieEluamVjdGlvbkluc3RhbmNlPFQ+KGluamVjdChJbmplY3RvcikpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2luc3RhbmNlLmluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2luc3RhbmNlLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHNldENvbmZpZyhjb25maWc6IE1heWJlPE9ic2VydmFibGVPclZhbHVlR2V0dGVyPE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxUPj4+Pikge1xuICAgIHRoaXMuX2luc3RhbmNlLmNvbmZpZyA9IGNvbmZpZztcbiAgfVxuXG4gIHNldFRlbXBsYXRlKHRlbXBsYXRlOiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZUdldHRlcjxEYnhJbmplY3Rpb25UZW1wbGF0ZUNvbmZpZzxUPj4+KSB7XG4gICAgdGhpcy5faW5zdGFuY2UudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudDogTWF5YmU8Vmlld0NvbnRhaW5lclJlZj4pIHtcbiAgICB0aGlzLl9pbnN0YW5jZS5jb250ZW50ID0gY29udGVudDtcbiAgfVxufVxuIl19
@@ -2,7 +2,7 @@ import { Injector } from '@angular/core';
2
2
  import { distinctUntilChanged, map, shareReplay, BehaviorSubject, combineLatest } from 'rxjs';
3
3
  import { DBX_INJECTION_COMPONENT_DATA } from './injection';
4
4
  import { pushItemOrArrayItemsIntoArray } from '@dereekb/util';
5
- import { SubscriptionObject, filterMaybe, maybeValueFromObservableOrValueGetter, skipFirstMaybe } from '@dereekb/rxjs';
5
+ import { SubscriptionObject, filterMaybe, maybeValueFromObservableOrValueGetter, skipAllInitialMaybe } from '@dereekb/rxjs';
6
6
  /**
7
7
  * Instance used by components to inject content based on the configuration into the view.
8
8
  */
@@ -13,8 +13,8 @@ export class DbxInjectionInstance {
13
13
  _content = new BehaviorSubject(undefined);
14
14
  _componentRef = new BehaviorSubject(undefined);
15
15
  _injector;
16
- config$ = this._config.pipe(maybeValueFromObservableOrValueGetter(), distinctUntilChanged());
17
- template$ = this._template.pipe(maybeValueFromObservableOrValueGetter(), distinctUntilChanged());
16
+ config$ = this._config.pipe(maybeValueFromObservableOrValueGetter(), distinctUntilChanged(), shareReplay(1));
17
+ template$ = this._template.pipe(maybeValueFromObservableOrValueGetter(), distinctUntilChanged(), shareReplay(1));
18
18
  content$ = this._content.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
19
19
  get config() {
20
20
  return this._config.value;
@@ -56,7 +56,7 @@ export class DbxInjectionInstance {
56
56
  else {
57
57
  return undefined;
58
58
  }
59
- }), skipFirstMaybe());
59
+ }), skipAllInitialMaybe());
60
60
  this._subscriptionObject.subscription = combineLatest([configTemplateObs, this.content$]).subscribe(([inputConfig, content]) => {
61
61
  const { config, template } = inputConfig ?? {};
62
62
  this._reset(content);
@@ -119,4 +119,4 @@ export class DbxInjectionInstance {
119
119
  }
120
120
  }
121
121
  }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9pbmplY3Rpb24vaW5qZWN0aW9uLmluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsUUFBUSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlGLE9BQU8sRUFBMkQsNEJBQTRCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEgsT0FBTyxFQUFtQyw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQTJCLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxxQ0FBcUMsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEo7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBQ2QsbUJBQW1CLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBRS9DLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBaUUsU0FBUyxDQUFDLENBQUM7SUFDekcsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFnRSxTQUFTLENBQUMsQ0FBQztJQUUxRyxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQTBCLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBeUIsU0FBUyxDQUFDLENBQUM7SUFFdkUsU0FBUyxDQUFXO0lBRTVCLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUM3RixTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUNBQXFDLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxD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QUUsQ0FBQztRQUVoQixNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUV4QyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV4QyxrSUFBa0k7UUFDcEksQ0FBQzthQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxPQUF5QjtRQUN0QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgSW5qZWN0b3IsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZywgRGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWcsIERCWF9JTkpFQ1RJT05fQ09NUE9ORU5UX0RBVEEgfSBmcm9tICcuL2luamVjdGlvbic7XG5pbXBvcnQgeyBJbml0aWFsaXplZCwgRGVzdHJveWFibGUsIE1heWJlLCBwdXNoSXRlbU9yQXJyYXlJdGVtc0ludG9BcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXIsIFN1YnNjcmlwdGlvbk9iamVjdCwgZmlsdGVyTWF5YmUsIG1heWJlVmFsdWVGcm9tT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXIsIHNraXBGaXJzdE1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5cbi8qKlxuICogSW5zdGFuY2UgdXNlZCBieSBjb21wb25lbnRzIHRvIGluamVjdCBjb250ZW50IGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uIGludG8gdGhlIHZpZXcuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYnhJbmplY3Rpb25JbnN0YW5jZTxUPiBpbXBsZW1lbnRzIEluaXRpYWxpemVkLCBEZXN0cm95YWJsZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbk9iamVjdCA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPE9ic2VydmFibGVPclZhbHVlR2V0dGVyPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxUPj4+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF90ZW1wbGF0ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8RGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWc8VD4+Pj4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxWaWV3Q29udGFpbmVyUmVmPj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29tcG9uZW50UmVmID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxDb21wb25lbnRSZWY8VD4+Pih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcjtcblxuICByZWFkb25seSBjb25maWckID0gdGhpcy5fY29uZmlnLnBpcGUobWF5YmVWYWx1ZUZyb21PYnNlcnZhYmxlT3JWYWx1ZUdldHRlcigpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkgdGVtcGxhdGUkID0gdGhpcy5fdGVtcGxhdGUucGlwZShtYXliZVZhbHVlRnJvbU9ic2VydmFibGVPclZhbHVlR2V0dGVyKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSBjb250ZW50JCA9IHRoaXMuX2NvbnRlbnQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgZ2V0IGNvbmZpZygpOiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZUdldHRlcjxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8VD4+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy52YWx1ZTtcbiAgfVxuXG4gIHNldCBjb25maWcoY29uZmlnOiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZUdldHRlcjxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8VD4+Pikge1xuICAgIHRoaXMuX2NvbmZpZy5uZXh0KGNvbmZpZyk7XG4gIH1cblxuICBnZXQgdGVtcGxhdGUoKTogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8RGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWc8VD4+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlLnZhbHVlO1xuICB9XG5cbiAgc2V0IHRlbXBsYXRlKHRlbXBsYXRlOiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZUdldHRlcjxEYnhJbmplY3Rpb25UZW1wbGF0ZUNvbmZpZzxUPj4+KSB7XG4gICAgdGhpcy5fdGVtcGxhdGUubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBnZXQgY29udGVudCgpOiBNYXliZTxNYXliZTxWaWV3Q29udGFpbmVyUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50LnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbnRlbnQoY29udGVudDogTWF5YmU8TWF5YmU8Vmlld0NvbnRhaW5lclJlZj4+KSB7XG4gICAgdGhpcy5fY29udGVudC5uZXh0KGNvbnRlbnQpO1xuICB9XG5cbiAgZ2V0IGNvbXBvbmVudFJlZigpOiBNYXliZTxDb21wb25lbnRSZWY8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50UmVmLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbXBvbmVudFJlZihjb21wb25lbnRSZWY6IE1heWJlPENvbXBvbmVudFJlZjxUPj4pIHtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYubmV4dChjb21wb25lbnRSZWYpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5faW5qZWN0b3IgPSBpbmplY3RvcjtcbiAgfVxuXG4gIGluaXQoKTogdm9pZCB7XG4gICAgLy8gV2FpdCB1bnRpbCB0aGUgZmlyc3Qgb2YgZWl0aGVyIG9mIHRoZSB0d28gaW5wdXRzIGNvbWVzIGluIGFzIG5vdCBkZWZpbmVkLCBhbmQgdGhlbiBlbWl0LlxuICAgIC8vIFdlIGZpbHRlciB0aGUgZmlyc3QgbWF5YmUgaGVyZSBiZXR3ZWVuIHRoZSB0d28gaXRlbXMuXG4gICAgY29uc3QgY29uZmlnVGVtcGxhdGVPYnMgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbmZpZyQsIHRoaXMudGVtcGxhdGUkXSkucGlwZShcbiAgICAgIG1hcCgoW2NvbmZpZywgdGVtcGxhdGVdKSA9PiB7XG4gICAgICAgIGlmIChjb25maWcgfHwgdGVtcGxhdGUpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgdGVtcGxhdGVcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgc2tpcEZpcnN0TWF5YmUoKVxuICAgICk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25PYmplY3Quc3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbY29uZmlnVGVtcGxhdGVPYnMsIHRoaXMuY29udGVudCRdKS5zdWJzY3JpYmUoKFtpbnB1dENvbmZpZywgY29udGVudF0pID0+IHtcbiAgICAgIGNvbnN0IHsgY29uZmlnLCB0ZW1wbGF0ZSB9ID0gaW5wdXRDb25maWcgPz8ge307XG4gICAgICB0aGlzLl9yZXNldChjb250ZW50KTtcblxuICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICB0aGlzLl9pbml0Q29tcG9uZW50KGNvbmZpZywgY29udGVudCk7XG4gICAgICB9IGVsc2UgaWYgKHRlbXBsYXRlKSB7XG4gICAgICAgIHRoaXMuX2luaXRUZW1wbGF0ZSh0ZW1wbGF0ZSwgY29udGVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbk9iamVjdC5kZXN0cm95KCk7XG4gICAgdGhpcy5fY29uZmlnLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fdGVtcGxhdGUuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jb250ZW50LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q29tcG9uZW50KGNvbmZpZzogRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPFQ+LCBjb250ZW50OiBWaWV3Q29udGFpbmVyUmVmKTogdm9pZCB7XG4gICAgY29udGVudC5jbGVhcigpO1xuXG4gICAgY29uc3QgeyBpbml0LCBpbmplY3RvcjogaW5wdXRJbmplY3RvciwgcHJvdmlkZXJzLCBuZ01vZHVsZVJlZiwgY29tcG9uZW50Q2xhc3MsIGRhdGEgfSA9IGNvbmZpZztcblxuICAgIGlmICghY29tcG9uZW50Q2xhc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGJ4SW5qZWN0aW9uSW5zdGFuY2U6IGNvbXBvbmVudENsYXNzIHdhcyBleHBlY3RlZCBpbiB0aGUgY29uZmlnIGJ1dCBpdCB3YXMgdW5hdmFpbGFibGUuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50SW5qZWN0b3IgPSBpbnB1dEluamVjdG9yID8/IHRoaXMuX2luamVjdG9yO1xuICAgIGxldCBpbmplY3RvcjogSW5qZWN0b3IgfCB1bmRlZmluZWQgPSBwYXJlbnRJbmplY3RvcjtcblxuICAgIGlmIChwcm92aWRlcnMgfHwgZGF0YSkge1xuICAgICAgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwYXJlbnQ6IHBhcmVudEluamVjdG9yLFxuICAgICAgICBwcm92aWRlcnM6IHB1c2hJdGVtT3JBcnJheUl0ZW1zSW50b0FycmF5KFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvdmlkZTogREJYX0lOSkVDVElPTl9DT01QT05FTlRfREFUQSxcbiAgICAgICAgICAgICAgdXNlVmFsdWU6IGRhdGFcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIHByb3ZpZGVycyA/PyBbXVxuICAgICAgICApXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiA9IGNvbnRlbnQuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudENsYXNzLCB7IGluamVjdG9yLCBuZ01vZHVsZVJlZiB9KTtcblxuICAgIGNvbnN0IGluc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuXG4gICAgaWYgKGluaXQpIHtcbiAgICAgIGluaXQoaW5zdGFuY2UpO1xuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gY29tcG9uZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdFRlbXBsYXRlKGNvbmZpZzogRGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWc8VD4sIGNvbnRlbnQ6IFZpZXdDb250YWluZXJSZWYpOiB2b2lkIHtcbiAgICBjb250ZW50LmNsZWFyKCk7XG5cbiAgICBjb25zdCB7IHRlbXBsYXRlUmVmLCB2aWV3UmVmIH0gPSBjb25maWc7XG5cbiAgICBpZiAodGVtcGxhdGVSZWYpIHtcbiAgICAgIGNvbnRlbnQuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlUmVmKTtcblxuICAgICAgLy8gVE9ETzogRmlndXJlIG91dCBpZiB0aGVzZSBpdGVtcyBuZWVkIHRvIGJlIGRlc3Ryb3llZCBvciBub3Qgd2hlbiB0aGlzIGl0ZW0gaXMgZGVzdHJveWVkLiBJZiBzbywgd2UgbmVlZCBhIHJlZmVyZW5jZSB0byBkZXN0cm95LlxuICAgIH0gZWxzZSBpZiAodmlld1JlZikge1xuICAgICAgY29udGVudC5pbnNlcnQodmlld1JlZik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXQoY29udGVudDogVmlld0NvbnRhaW5lclJlZik6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgY29udGVudC5jbGVhcigpO1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLmluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWNvcmUvc3JjL2xpYi9pbmplY3Rpb24vaW5qZWN0aW9uLmluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsUUFBUSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlGLE9BQU8sRUFBMkQsNEJBQTRCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEgsT0FBTyxFQUFtQyw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQWdDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxxQ0FBcUMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxSjs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFDZCxtQkFBbUIsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFL0MsT0FBTyxHQUFHLElBQUksZUFBZSxDQUErRCxTQUFTLENBQUMsQ0FBQztJQUN2RyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQThELFNBQVMsQ0FBQyxDQUFDO0lBRXhHLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBMEIsU0FBUyxDQUFDLENBQUM7SUFDbkUsYUFBYSxHQUFHLElBQUksZUFBZSxDQUF5QixTQUFTLENBQUMsQ0FBQztJQUV2RSxTQUFTLENBQVc7SUFFNUIsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUNB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QUVPLGFBQWEsQ0FBQyxNQUFxQyxFQUFFLE9BQXlCO1FBQ3BGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVoQixNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUV4QyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV4QyxrSUFBa0k7UUFDcEksQ0FBQzthQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxPQUF5QjtRQUN0QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgSW5qZWN0b3IsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZywgRGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWcsIERCWF9JTkpFQ1RJT05fQ09NUE9ORU5UX0RBVEEgfSBmcm9tICcuL2luamVjdGlvbic7XG5pbXBvcnQgeyBJbml0aWFsaXplZCwgRGVzdHJveWFibGUsIE1heWJlLCBwdXNoSXRlbU9yQXJyYXlJdGVtc0ludG9BcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgTWF5YmVPYnNlcnZhYmxlT3JWYWx1ZUdldHRlciwgU3Vic2NyaXB0aW9uT2JqZWN0LCBmaWx0ZXJNYXliZSwgbWF5YmVWYWx1ZUZyb21PYnNlcnZhYmxlT3JWYWx1ZUdldHRlciwgc2tpcEFsbEluaXRpYWxNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuXG4vKipcbiAqIEluc3RhbmNlIHVzZWQgYnkgY29tcG9uZW50cyB0byBpbmplY3QgY29udGVudCBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvbiBpbnRvIHRoZSB2aWV3LlxuICovXG5leHBvcnQgY2xhc3MgRGJ4SW5qZWN0aW9uSW5zdGFuY2U8VD4gaW1wbGVtZW50cyBJbml0aWFsaXplZCwgRGVzdHJveWFibGUge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25PYmplY3QgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxUPj4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RlbXBsYXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyPERieEluamVjdGlvblRlbXBsYXRlQ29uZmlnPFQ+Pj4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxWaWV3Q29udGFpbmVyUmVmPj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29tcG9uZW50UmVmID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxDb21wb25lbnRSZWY8VD4+Pih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcjtcblxuICByZWFkb25seSBjb25maWckID0gdGhpcy5fY29uZmlnLnBpcGUobWF5YmVWYWx1ZUZyb21PYnNlcnZhYmxlT3JWYWx1ZUdldHRlcigpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IHRlbXBsYXRlJCA9IHRoaXMuX3RlbXBsYXRlLnBpcGUobWF5YmVWYWx1ZUZyb21PYnNlcnZhYmxlT3JWYWx1ZUdldHRlcigpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IGNvbnRlbnQkID0gdGhpcy5fY29udGVudC5waXBlKGZpbHRlck1heWJlKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICBnZXQgY29uZmlnKCk6IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy52YWx1ZTtcbiAgfVxuXG4gIHNldCBjb25maWcoY29uZmlnOiBNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxUPj4pIHtcbiAgICB0aGlzLl9jb25maWcubmV4dChjb25maWcpO1xuICB9XG5cbiAgZ2V0IHRlbXBsYXRlKCk6IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8RGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWc8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGUudmFsdWU7XG4gIH1cblxuICBzZXQgdGVtcGxhdGUodGVtcGxhdGU6IE1heWJlT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8RGJ4SW5qZWN0aW9uVGVtcGxhdGVDb25maWc8VD4+KSB7XG4gICAgdGhpcy5fdGVtcGxhdGUubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBnZXQgY29udGVudCgpOiBNYXliZTxNYXliZTxWaWV3Q29udGFpbmVyUmVmPj4ge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50LnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbnRlbnQoY29udGVudDogTWF5YmU8TWF5YmU8Vmlld0NvbnRhaW5lclJlZj4+KSB7XG4gICAgdGhpcy5fY29udGVudC5uZXh0KGNvbnRlbnQpO1xuICB9XG5cbiAgZ2V0IGNvbXBvbmVudFJlZigpOiBNYXliZTxDb21wb25lbnRSZWY8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50UmVmLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbXBvbmVudFJlZihjb21wb25lbnRSZWY6IE1heWJlPENvbXBvbmVudFJlZjxUPj4pIHtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYubmV4dChjb21wb25lbnRSZWYpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5faW5qZWN0b3IgPSBpbmplY3RvcjtcbiAgfVxuXG4gIGluaXQoKTogdm9pZCB7XG4gICAgLy8gV2FpdCB1bnRpbCB0aGUgZmlyc3Qgb2YgZWl0aGVyIG9mIHRoZSB0d28gaW5wdXRzIGNvbWVzIGluIGFzIG5vdCBkZWZpbmVkLCBhbmQgdGhlbiBlbWl0LlxuICAgIC8vIFdlIGZpbHRlciB0aGUgZmlyc3QgbWF5YmUgaGVyZSBiZXR3ZWVuIHRoZSB0d28gaXRlbXMuXG4gICAgY29uc3QgY29uZmlnVGVtcGxhdGVPYnMgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbmZpZyQsIHRoaXMudGVtcGxhdGUkXSkucGlwZShcbiAgICAgIG1hcCgoW2NvbmZpZywgdGVtcGxhdGVdKSA9PiB7XG4gICAgICAgIGlmIChjb25maWcgfHwgdGVtcGxhdGUpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgdGVtcGxhdGVcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgc2tpcEFsbEluaXRpYWxNYXliZSgpXG4gICAgKTtcblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbk9iamVjdC5zdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtjb25maWdUZW1wbGF0ZU9icywgdGhpcy5jb250ZW50JF0pLnN1YnNjcmliZSgoW2lucHV0Q29uZmlnLCBjb250ZW50XSkgPT4ge1xuICAgICAgY29uc3QgeyBjb25maWcsIHRlbXBsYXRlIH0gPSBpbnB1dENvbmZpZyA/PyB7fTtcbiAgICAgIHRoaXMuX3Jlc2V0KGNvbnRlbnQpO1xuXG4gICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgIHRoaXMuX2luaXRDb21wb25lbnQoY29uZmlnLCBjb250ZW50KTtcbiAgICAgIH0gZWxzZSBpZiAodGVtcGxhdGUpIHtcbiAgICAgICAgdGhpcy5faW5pdFRlbXBsYXRlKHRlbXBsYXRlLCBjb250ZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uT2JqZWN0LmRlc3Ryb3koKTtcbiAgICB0aGlzLl9jb25maWcuY29tcGxldGUoKTtcbiAgICB0aGlzLl90ZW1wbGF0ZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2NvbnRlbnQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRDb21wb25lbnQoY29uZmlnOiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8VD4sIGNvbnRlbnQ6IFZpZXdDb250YWluZXJSZWYpOiB2b2lkIHtcbiAgICBjb250ZW50LmNsZWFyKCk7XG5cbiAgICBjb25zdCB7IGluaXQsIGluamVjdG9yOiBpbnB1dEluamVjdG9yLCBwcm92aWRlcnMsIG5nTW9kdWxlUmVmLCBjb21wb25lbnRDbGFzcywgZGF0YSB9ID0gY29uZmlnO1xuXG4gICAgaWYgKCFjb21wb25lbnRDbGFzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYnhJbmplY3Rpb25JbnN0YW5jZTogY29tcG9uZW50Q2xhc3Mgd2FzIGV4cGVjdGVkIGluIHRoZSBjb25maWcgYnV0IGl0IHdhcyB1bmF2YWlsYWJsZS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnRJbmplY3RvciA9IGlucHV0SW5qZWN0b3IgPz8gdGhpcy5faW5qZWN0b3I7XG4gICAgbGV0IGluamVjdG9yOiBJbmplY3RvciB8IHVuZGVmaW5lZCA9IHBhcmVudEluamVjdG9yO1xuXG4gICAgaWYgKHByb3ZpZGVycyB8fCBkYXRhKSB7XG4gICAgICBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHBhcmVudDogcGFyZW50SW5qZWN0b3IsXG4gICAgICAgIHByb3ZpZGVyczogcHVzaEl0ZW1PckFycmF5SXRlbXNJbnRvQXJyYXkoXG4gICAgICAgICAgW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwcm92aWRlOiBEQlhfSU5KRUNUSU9OX0NPTVBPTkVOVF9EQVRBLFxuICAgICAgICAgICAgICB1c2VWYWx1ZTogZGF0YVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgcHJvdmlkZXJzID8/IFtdXG4gICAgICAgIClcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+ID0gY29udGVudC5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50Q2xhc3MsIHsgaW5qZWN0b3IsIG5nTW9kdWxlUmVmIH0pO1xuXG4gICAgY29uc3QgaW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG5cbiAgICBpZiAoaW5pdCkge1xuICAgICAgaW5pdChpbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSBjb21wb25lbnRSZWY7XG4gIH1cblxuICBwcml2YXRlIF9pbml0VGVtcGxhdGUoY29uZmlnOiBEYnhJbmplY3Rpb25UZW1wbGF0ZUNvbmZpZzxUPiwgY29udGVudDogVmlld0NvbnRhaW5lclJlZik6IHZvaWQge1xuICAgIGNvbnRlbnQuY2xlYXIoKTtcblxuICAgIGNvbnN0IHsgdGVtcGxhdGVSZWYsIHZpZXdSZWYgfSA9IGNvbmZpZztcblxuICAgIGlmICh0ZW1wbGF0ZVJlZikge1xuICAgICAgY29udGVudC5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGVSZWYpO1xuXG4gICAgICAvLyBUT0RPOiBGaWd1cmUgb3V0IGlmIHRoZXNlIGl0ZW1zIG5lZWQgdG8gYmUgZGVzdHJveWVkIG9yIG5vdCB3aGVuIHRoaXMgaXRlbSBpcyBkZXN0cm95ZWQuIElmIHNvLCB3ZSBuZWVkIGEgcmVmZXJlbmNlIHRvIGRlc3Ryb3kuXG4gICAgfSBlbHNlIGlmICh2aWV3UmVmKSB7XG4gICAgICBjb250ZW50Lmluc2VydCh2aWV3UmVmKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXNldChjb250ZW50OiBWaWV3Q29udGFpbmVyUmVmKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICBjb250ZW50LmNsZWFyKCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==