@coolon/angular-ui-powerups 16.1.0-aplpha.142 → 16.1.0-aplpha.144

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 (37) hide show
  1. package/esm2022/lib/interaction/activity-context.mjs +3 -0
  2. package/esm2022/lib/interaction/activity.mjs +20 -17
  3. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +4 -5
  4. package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +1 -41
  5. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +19 -13
  6. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +11 -3
  7. package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +48 -15
  8. package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +10 -10
  9. package/esm2022/lib/interaction/components/alert-renderer/alert-renderer.component.mjs +55 -0
  10. package/esm2022/lib/interaction/components/confirm-renderer/confirm-renderer.component.mjs +54 -0
  11. package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +4 -8
  12. package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +4 -8
  13. package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +7 -9
  14. package/esm2022/lib/interaction/confirm.mjs +26 -2
  15. package/esm2022/lib/interaction/exports.mjs +4 -1
  16. package/esm2022/lib/interaction/interaction-context-provider.mjs +4 -1
  17. package/esm2022/lib/interaction/interaction-context.mjs +1 -1
  18. package/esm2022/lib/interaction/interaction.module.mjs +18 -8
  19. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +7 -2
  20. package/fesm2022/coolon-angular-ui-powerups.mjs +351 -218
  21. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  22. package/lib/interaction/activity-context.d.ts +8 -0
  23. package/lib/interaction/activity.d.ts +9 -6
  24. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +1 -1
  25. package/lib/interaction/components/abstract-dialog.component.d.ts +5 -14
  26. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +4 -6
  27. package/lib/interaction/components/activity-container/activity-container.component.d.ts +1 -0
  28. package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +3 -3
  29. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +6 -1
  30. package/lib/interaction/components/alert-renderer/alert-renderer.component.d.ts +17 -0
  31. package/lib/interaction/components/confirm-renderer/confirm-renderer.component.d.ts +15 -0
  32. package/lib/interaction/confirm.d.ts +4 -0
  33. package/lib/interaction/exports.d.ts +3 -0
  34. package/lib/interaction/interaction-context-provider.d.ts +6 -0
  35. package/lib/interaction/interaction-context.d.ts +3 -0
  36. package/lib/interaction/interaction.module.d.ts +16 -14
  37. package/package.json +2 -2
@@ -0,0 +1,3 @@
1
+ export class ActivityContext {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2FjdGl2aXR5LWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixlQUFlO0NBTXBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tYW5kfSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi9pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBY3Rpdml0eUNvbnRleHQge1xuICBhYnN0cmFjdCByZWFkb25seSBpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dFxuICBhYnN0cmFjdCByZWFkb25seSBjb25maXJtQ29tbWFuZDogQ29tbWFuZDtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgY2FuY2VsQ29tbWFuZDogQ29tbWFuZDtcblxuICBhYnN0cmFjdCBvbkFjdGl2aXR5UmVhZHkoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkO1xufVxuIl19
@@ -1,14 +1,16 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { Component, HostBinding, inject, InjectionToken, ViewChild } from "@angular/core";
2
+ import { Component, HostBinding, inject, InjectionToken } from "@angular/core";
3
3
  import { Command, DelegatingValueModel, Dsl, EventListenerList, MutableValueModel, Proxify, proxify } from "@coolon/pectin";
4
4
  import { assert } from "@coolon/typescript-utilities";
5
5
  import { LoadableComponent } from "../components/loadable-component";
6
- import { ActivityActionsComponent } from "./components/activity-actions/activity-actions.component";
7
6
  import { INTERACTION_CONTEXT_PROVIDER } from "./interaction-context-provider";
8
7
  import * as i0 from "@angular/core";
9
8
  export const ACTIVITY_DATA = new InjectionToken("InteractionActivityData");
10
9
  // eslint-disable-next-line @angular-eslint/component-class-suffix
11
10
  export class Activity extends LoadableComponent {
11
+ /**
12
+ * @deprecated, inject ActivityContext instead
13
+ */
12
14
  static asInteractionContextProvider() {
13
15
  return {
14
16
  provide: INTERACTION_CONTEXT_PROVIDER, useExisting: this
@@ -17,10 +19,10 @@ export class Activity extends LoadableComponent {
17
19
  activityData = inject(ACTIVITY_DATA);
18
20
  activityReadyListeners = new EventListenerList();
19
21
  _busy$ = this.registerDisposable(new DelegatingValueModel().withDefault(false));
22
+ #disableClose$ = this.registerDisposable(new DelegatingValueModel().withDefault(false));
20
23
  _focused$ = this.registerDisposable(new DelegatingValueModel());
21
24
  _activityContext;
22
25
  _ready$ = new MutableValueModel(false);
23
- activityActions;
24
26
  #confirmCommand_accessor_storage = proxify((Command));
25
27
  get confirmCommand() { return this.#confirmCommand_accessor_storage; }
26
28
  set confirmCommand(value) { this.#confirmCommand_accessor_storage = value; }
@@ -47,14 +49,6 @@ export class Activity extends LoadableComponent {
47
49
  this.notifyActivityReady();
48
50
  });
49
51
  }
50
- ngAfterViewInit() {
51
- if (this.activityActions) {
52
- this.initialiseActivityAction(this.activityActions);
53
- }
54
- }
55
- initialiseActivityAction(activityActions) {
56
- activityActions.initCommands(this);
57
- }
58
52
  get interactionContext() {
59
53
  assert.isTruthy(this.isInitialised());
60
54
  return this._interactionContext;
@@ -70,6 +64,9 @@ export class Activity extends LoadableComponent {
70
64
  this._ready$.value = true;
71
65
  }
72
66
  onActivityReady(callback) {
67
+ if (this.ready$.value) {
68
+ callback(this);
69
+ }
73
70
  return this.activityReadyListeners.add(callback);
74
71
  }
75
72
  autoFocus(focusable) {
@@ -88,6 +85,9 @@ export class Activity extends LoadableComponent {
88
85
  get busy$() {
89
86
  return this._busy$.readonly$;
90
87
  }
88
+ get disableClose$() {
89
+ return this.#disableClose$.readonly$;
90
+ }
91
91
  get focused$() {
92
92
  return this._focused$.readonly$;
93
93
  }
@@ -97,6 +97,12 @@ export class Activity extends LoadableComponent {
97
97
  isBusy() {
98
98
  return this._busy$.value;
99
99
  }
100
+ get disableClose() {
101
+ return this.#disableClose$.value;
102
+ }
103
+ disableCloseWhile(condition) {
104
+ this.#disableClose$.setDelegate(condition);
105
+ }
100
106
  isInitialised() {
101
107
  return !!this._activityContext;
102
108
  }
@@ -104,7 +110,7 @@ export class Activity extends LoadableComponent {
104
110
  return this.interactionContext;
105
111
  }
106
112
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: Activity, deps: [], target: i0.ɵɵFactoryTarget.Component });
107
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: Activity, selector: "ng-component", host: { properties: { "class": "this.class", "attr.focused": "this.isFocused" } }, viewQueries: [{ propertyName: "activityActions", first: true, predicate: ActivityActionsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "", isInline: true });
113
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: Activity, selector: "ng-component", host: { properties: { "class": "this.class", "attr.focused": "this.isFocused" } }, usesInheritance: true, ngImport: i0, template: "", isInline: true });
108
114
  }
109
115
  __decorate([
110
116
  Proxify(),
@@ -119,14 +125,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
119
125
  args: [{
120
126
  template: "",
121
127
  }]
122
- }], ctorParameters: function () { return []; }, propDecorators: { activityActions: [{
123
- type: ViewChild,
124
- args: [ActivityActionsComponent]
125
- }], confirmCommand: [], cancelCommand: [], class: [{
128
+ }], ctorParameters: function () { return []; }, propDecorators: { confirmCommand: [], cancelCommand: [], class: [{
126
129
  type: HostBinding,
127
130
  args: ["class"]
128
131
  }], isFocused: [{
129
132
  type: HostBinding,
130
133
  args: ["attr.focused"]
131
134
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFDTCxPQUFPLEVBQ1Asb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxPQUFPLEVBRVIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFFbEcsT0FBTyxFQUFDLDRCQUE0QixFQUE2QixNQUFNLGdDQUFnQyxDQUFDOztBQUV4RyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQU0seUJBQXlCLENBQUMsQ0FBQztBQU9oRixrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLFFBQXdCLFNBQVEsaUJBQWlCO0lBRTVELE1BQU0sQ0FBQyw0QkFBNEI7UUFDakMsT0FBTztZQUNMLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLEVBQUUsSUFBSTtTQUN6RCxDQUFBO0lBQ0gsQ0FBQztJQUVRLFlBQVksR0FBTSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFaEMsc0JBQXNCLEdBQUcsSUFBSSxpQkFBaUIsRUFBa0MsQ0FBQztJQUNqRixNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksb0JBQW9CLEVBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxD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dGVyVmlld0luaXQsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIENvbW1hbmQsIENvbnN0cnVjdGFibGUsXG4gIERlbGVnYXRpbmdWYWx1ZU1vZGVsLFxuICBEaXNwb3NhYmxlLFxuICBEc2wsXG4gIEV2ZW50TGlzdGVuZXJMaXN0LFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgUHJveGlmeSxcbiAgcHJveGlmeSxcbiAgVmFsdWVNb2RlbFxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7YXNzZXJ0fSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuaW1wb3J0IHtMb2FkYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvbG9hZGFibGUtY29tcG9uZW50XCI7XG5pbXBvcnQge0FjdGl2aXR5QWN0aW9uc0NvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9hY3Rpdml0eS1hY3Rpb25zL2FjdGl2aXR5LWFjdGlvbnMuY29tcG9uZW50XCI7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSBcIi4vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJTlRFUkFDVElPTl9DT05URVhUX1BST1ZJREVSLCBJbnRlcmFjdGlvbkNvbnRleHRQcm92aWRlcn0gZnJvbSBcIi4vaW50ZXJhY3Rpb24tY29udGV4dC1wcm92aWRlclwiO1xuXG5leHBvcnQgY29uc3QgQUNUSVZJVFlfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KFwiSW50ZXJhY3Rpb25BY3Rpdml0eURhdGFcIik7XG5cbnR5cGUgT25BY3Rpdml0eVJlYWR5UGFyYW1zPEQsIFIsIEUgPSBhbnk+ID0gKGFjdGl2aXR5OiBBY3Rpdml0eTxELCBSLCBFPikgPT4gdm9pZDtcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBcIlwiLFxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5PEQsIFIsIEUgPSBhbnk+IGV4dGVuZHMgTG9hZGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBJbnRlcmFjdGlvbkNvbnRleHRQcm92aWRlciB7XG5cbiAgc3RhdGljIGFzSW50ZXJhY3Rpb25Db250ZXh0UHJvdmlkZXI8QSBleHRlbmRzIEFjdGl2aXR5PGFueSwgYW55Pj4odGhpczogQ29uc3RydWN0YWJsZTxBPikge1xuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlOiBJTlRFUkFDVElPTl9DT05URVhUX1BST1ZJREVSLCB1c2VFeGlzdGluZzogdGhpc1xuICAgIH1cbiAgfVxuXG4gIHJlYWRvbmx5IGFjdGl2aXR5RGF0YTogRCA9IGluamVjdChBQ1RJVklUWV9EQVRBKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2aXR5UmVhZHlMaXN0ZW5lcnMgPSBuZXcgRXZlbnRMaXN0ZW5lckxpc3Q8T25BY3Rpdml0eVJlYWR5UGFyYW1zPEQsIFIsIEU+PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9idXN5JCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KGZhbHNlKSk7XG4gIHByaXZhdGUgX2ZvY3VzZWQkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkpO1xuICBwcml2YXRlIF9hY3Rpdml0eUNvbnRleHQ6IEFjdGl2aXR5LkNvbnRleHQ8UiwgRT47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlYWR5JCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgQFZpZXdDaGlsZChBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQpXG4gIHByb3RlY3RlZCBhY3Rpdml0eUFjdGlvbnM6IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudDtcblxuICBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNvbmZpcm1Db21tYW5kID0gcHJveGlmeShDb21tYW5kPHVua25vd24+KTtcblxuICBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNhbmNlbENvbW1hbmQgPSBwcm94aWZ5KENvbW1hbmQ8dW5rbm93bj4pO1xuXG4gIC8vIEBUcmFjZSgpXG4gIHByaXZhdGUgX2ludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0O1xuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzXCIpIGNsYXNzID0gXCJhdXAtYWN0aXZpdHlcIjtcblxuICBASG9zdEJpbmRpbmcoXCJhdHRyLmZvY3VzZWRcIilcbiAgZ2V0IGlzRm9jdXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNlZCQudmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYnVzeVdoaWxlKHRoaXMuY29uZmlybUNvbW1hbmQuYnVzeSQpO1xuICB9XG5cbiAgaW5pdGlhbGlzZShuZXN0ZWRJbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCwgYWN0aXZpdHlDb250ZXh0OiBBY3Rpdml0eS5Db250ZXh0PFIsIEU+KTogdm9pZCB7XG4gICAgY29uc3Qge2NoYWluLCB3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICBhc3NlcnQuaXNOaWwodGhpcy5fYWN0aXZpdHlDb250ZXh0KTtcbiAgICB0aGlzLl9hY3Rpdml0eUNvbnRleHQgPSBhY3Rpdml0eUNvbnRleHQ7XG4gICAgdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0ID0gbmVzdGVkSW50ZXJhY3Rpb25Db250ZXh0O1xuICAgIHRoaXMuX2ZvY3VzZWQkLnNldERlbGVnYXRlKGFjdGl2aXR5Q29udGV4dC5mb2N1c2VkKTtcbiAgICB3aGVuKHRoaXMuX2ZvY3VzZWQkKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHtcbiAgICAgIHRoaXMubm90aWZ5QWN0aXZpdHlSZWFkeSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5QWN0aW9ucykge1xuICAgICAgdGhpcy5pbml0aWFsaXNlQWN0aXZpdHlBY3Rpb24odGhpcy5hY3Rpdml0eUFjdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0aWFsaXNlQWN0aXZpdHlBY3Rpb24oYWN0aXZpdHlBY3Rpb25zOiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQpIHtcbiAgICBhY3Rpdml0eUFjdGlvbnMuaW5pdENvbW1hbmRzKHRoaXMpO1xuICB9XG5cbiAgZ2V0IGludGVyYWN0aW9uQ29udGV4dCgpIHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0luaXRpYWxpc2VkKCkpO1xuICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQ7XG4gIH1cblxuICBkb25lKHJlc3VsdD86IFIpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZpdHlDb250ZXh0Lm9uRG9uZShyZXN1bHQpO1xuICB9XG5cbiAgY2FuY2VsKGVycm9yPzogRSk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGl2aXR5Q29udGV4dC5vbkNhbmNlbChlcnJvcik7XG4gIH1cblxuICBub3RpZnlBY3Rpdml0eVJlYWR5KCkge1xuICAgIHRoaXMuYWN0aXZpdHlSZWFkeUxpc3RlbmVycy5maXJlKGwgPT4gbCh0aGlzKSk7XG4gICAgdGhpcy5fcmVhZHkkLnZhbHVlID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQWN0aXZpdHlSZWFkeShjYWxsYmFjazogT25BY3Rpdml0eVJlYWR5UGFyYW1zPEQsIFIsIEU+KTogRGlzcG9zYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlSZWFkeUxpc3RlbmVycy5hZGQoY2FsbGJhY2spO1xuICB9XG5cbiAgYXV0b0ZvY3VzKGZvY3VzYWJsZTogeyByZXF1ZXN0Rm9jdXMoKTogdm9pZCB9KSB7XG4gICAgcmV0dXJuIHRoaXMub25BY3Rpdml0eVJlYWR5KCgpID0+IGZvY3VzYWJsZS5yZXF1ZXN0Rm9jdXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNhdXRvRm9jdXMgaW5zdGVhZFxuICAgKiBAcGFyYW0gZm9jdXNhYmxlXG4gICAqL1xuICBhdXRvRm9jdXNPbkFjdGl2aXR5UmVhZHkoZm9jdXNhYmxlOiB7IHJlcXVlc3RGb2N1cygpOiB2b2lkIH0pIHtcbiAgICByZXR1cm4gdGhpcy5hdXRvRm9jdXMoZm9jdXNhYmxlKTtcbiAgfVxuXG4gIGdldCByZWFkeSQoKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5JC5yZWFkb25seSQ7XG4gIH1cblxuICBnZXQgYnVzeSQoKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2J1c3kkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIGdldCBmb2N1c2VkJCgpOiBWYWx1ZU1vZGVsPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNlZCQucmVhZG9ubHkkO1xuICB9XG5cbiAgYnVzeVdoaWxlKGJ1c3lNb2RlbDogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAgIHRoaXMuX2J1c3kkLnNldERlbGVnYXRlKGJ1c3lNb2RlbCk7XG4gIH1cblxuICBpc0J1c3koKSB7XG4gICAgcmV0dXJuIHRoaXMuX2J1c3kkLnZhbHVlO1xuICB9XG5cbiAgaXNJbml0aWFsaXNlZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9hY3Rpdml0eUNvbnRleHQ7XG4gIH1cblxuICBnZXRJbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQ7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEFjdGl2aXR5IHtcblxuICBleHBvcnQgaW50ZXJmYWNlIENvbnRleHQ8UiwgRT4ge1xuICAgIG9uRG9uZTogKHJlc3VsdDogUikgPT4gdm9pZCxcbiAgICBvbkNhbmNlbDogKGVycm9yOiBFKSA9PiB2b2lkLFxuICAgIGZvY3VzZWQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj5cbiAgfVxufVxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsT0FBTyxFQUVQLG9CQUFvQixFQUVwQixHQUFHLEVBQ0gsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsT0FBTyxFQUVSLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyw0QkFBNEIsRUFBNkIsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFeEcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFNLHlCQUF5QixDQUFDLENBQUM7QUFNaEYsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxRQUF3QixTQUFRLGlCQUFpQjtJQUU1RDs7T0FFRztJQUNILE1BQU0sQ0FBQyw0QkFBNEI7UUFDakMsT0FBTztZQUNMLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLEVBQUUsSUFBSTtTQUN6RCxDQUFBO0lBQ0gsQ0FBQztJQUVRLFlBQVksR0FBTSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFaEMsc0JBQXNCLEdBQUcsSUFBSSxpQkFBaUIsRUFBa0MsQ0FBQztJQUNqRixNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksb0JBQW9CLEVBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFr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QTFCLFdBQVc7dUJBQUMsT0FBTztnQkFHaEIsU0FBUztzQkFEWixXQUFXO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBDb21tYW5kLFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRGlzcG9zYWJsZSxcbiAgRHNsLFxuICBFdmVudExpc3RlbmVyTGlzdCxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFByb3hpZnksXG4gIHByb3hpZnksXG4gIFZhbHVlTW9kZWxcbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge2Fzc2VydH0gZnJvbSBcIkBjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXNcIjtcbmltcG9ydCB7TG9hZGFibGVDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnRzL2xvYWRhYmxlLWNvbXBvbmVudFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuL2ludGVyYWN0aW9uLWNvbnRleHRcIjtcbmltcG9ydCB7SU5URVJBQ1RJT05fQ09OVEVYVF9QUk9WSURFUiwgSW50ZXJhY3Rpb25Db250ZXh0UHJvdmlkZXJ9IGZyb20gXCIuL2ludGVyYWN0aW9uLWNvbnRleHQtcHJvdmlkZXJcIjtcblxuZXhwb3J0IGNvbnN0IEFDVElWSVRZX0RBVEEgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PihcIkludGVyYWN0aW9uQWN0aXZpdHlEYXRhXCIpO1xudHlwZSBPbkFjdGl2aXR5UmVhZHlQYXJhbXM8RCwgUiwgRSA9IGFueT4gPSAoYWN0aXZpdHk6IEFjdGl2aXR5PEQsIFIsIEU+KSA9PiB2b2lkO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IFwiXCIsXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgQWN0aXZpdHk8RCwgUiwgRSA9IGFueT4gZXh0ZW5kcyBMb2FkYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEludGVyYWN0aW9uQ29udGV4dFByb3ZpZGVyIHtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQsIGluamVjdCBBY3Rpdml0eUNvbnRleHQgaW5zdGVhZFxuICAgKi9cbiAgc3RhdGljIGFzSW50ZXJhY3Rpb25Db250ZXh0UHJvdmlkZXI8QSBleHRlbmRzIEFjdGl2aXR5PGFueSwgYW55Pj4odGhpczogQ29uc3RydWN0YWJsZTxBPikge1xuICAgIHJldHVybiB7XG4gICAgICBwcm92aWRlOiBJTlRFUkFDVElPTl9DT05URVhUX1BST1ZJREVSLCB1c2VFeGlzdGluZzogdGhpc1xuICAgIH1cbiAgfVxuXG4gIHJlYWRvbmx5IGFjdGl2aXR5RGF0YTogRCA9IGluamVjdChBQ1RJVklUWV9EQVRBKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2aXR5UmVhZHlMaXN0ZW5lcnMgPSBuZXcgRXZlbnRMaXN0ZW5lckxpc3Q8T25BY3Rpdml0eVJlYWR5UGFyYW1zPEQsIFIsIEU+PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9idXN5JCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KGZhbHNlKSk7XG4gIHJlYWRvbmx5ICNkaXNhYmxlQ2xvc2UkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpKVxuICBwcml2YXRlIF9mb2N1c2VkJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpKTtcbiAgcHJpdmF0ZSBfYWN0aXZpdHlDb250ZXh0OiBBY3Rpdml0eS5Db250ZXh0PFIsIEU+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZWFkeSQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgY29uZmlybUNvbW1hbmQgPSBwcm94aWZ5KENvbW1hbmQ8dW5rbm93bj4pO1xuXG4gIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgY2FuY2VsQ29tbWFuZCA9IHByb3hpZnkoQ29tbWFuZDx1bmtub3duPik7XG5cbiAgLy8gQFRyYWNlKClcbiAgcHJpdmF0ZSBfaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQ7XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIikgY2xhc3MgPSBcImF1cC1hY3Rpdml0eVwiO1xuXG4gIEBIb3N0QmluZGluZyhcImF0dHIuZm9jdXNlZFwiKVxuICBnZXQgaXNGb2N1c2VkKCkge1xuICAgIHJldHVybiB0aGlzLl9mb2N1c2VkJC52YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5idXN5V2hpbGUodGhpcy5jb25maXJtQ29tbWFuZC5idXN5JCk7XG4gIH1cblxuICBpbml0aWFsaXNlKG5lc3RlZEludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0LCBhY3Rpdml0eUNvbnRleHQ6IEFjdGl2aXR5LkNvbnRleHQ8UiwgRT4pOiB2b2lkIHtcbiAgICBjb25zdCB7Y2hhaW4sIHdoZW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIGFzc2VydC5pc05pbCh0aGlzLl9hY3Rpdml0eUNvbnRleHQpO1xuICAgIHRoaXMuX2FjdGl2aXR5Q29udGV4dCA9IGFjdGl2aXR5Q29udGV4dDtcbiAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQgPSBuZXN0ZWRJbnRlcmFjdGlvbkNvbnRleHQ7XG4gICAgdGhpcy5fZm9jdXNlZCQuc2V0RGVsZWdhdGUoYWN0aXZpdHlDb250ZXh0LmZvY3VzZWQpO1xuICAgIHdoZW4odGhpcy5fZm9jdXNlZCQpLmJlY29tZXNUcnV0aHkoKCkgPT4ge1xuICAgICAgdGhpcy5ub3RpZnlBY3Rpdml0eVJlYWR5KCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgaW50ZXJhY3Rpb25Db250ZXh0KCkge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmlzSW5pdGlhbGlzZWQoKSk7XG4gICAgcmV0dXJuIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dDtcbiAgfVxuXG4gIGRvbmUocmVzdWx0PzogUik6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpdml0eUNvbnRleHQub25Eb25lKHJlc3VsdCk7XG4gIH1cblxuICBjYW5jZWwoZXJyb3I/OiBFKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aXZpdHlDb250ZXh0Lm9uQ2FuY2VsKGVycm9yKTtcbiAgfVxuXG4gIG5vdGlmeUFjdGl2aXR5UmVhZHkoKSB7XG4gICAgdGhpcy5hY3Rpdml0eVJlYWR5TGlzdGVuZXJzLmZpcmUobCA9PiBsKHRoaXMpKTtcbiAgICB0aGlzLl9yZWFkeSQudmFsdWUgPSB0cnVlO1xuICB9XG5cbiAgb25BY3Rpdml0eVJlYWR5KGNhbGxiYWNrOiBPbkFjdGl2aXR5UmVhZHlQYXJhbXM8RCwgUiwgRT4pOiBEaXNwb3NhYmxlIHtcbiAgICBpZiAodGhpcy5yZWFkeSQudmFsdWUpIHtcbiAgICAgIGNhbGxiYWNrKHRoaXMpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5UmVhZHlMaXN0ZW5lcnMuYWRkKGNhbGxiYWNrKTtcbiAgfVxuXG4gIGF1dG9Gb2N1cyhmb2N1c2FibGU6IHsgcmVxdWVzdEZvY3VzKCk6IHZvaWQgfSkge1xuICAgIHJldHVybiB0aGlzLm9uQWN0aXZpdHlSZWFkeSgoKSA9PiBmb2N1c2FibGUucmVxdWVzdEZvY3VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSAjYXV0b0ZvY3VzIGluc3RlYWRcbiAgICogQHBhcmFtIGZvY3VzYWJsZVxuICAgKi9cbiAgYXV0b0ZvY3VzT25BY3Rpdml0eVJlYWR5KGZvY3VzYWJsZTogeyByZXF1ZXN0Rm9jdXMoKTogdm9pZCB9KSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0b0ZvY3VzKGZvY3VzYWJsZSk7XG4gIH1cblxuICBnZXQgcmVhZHkkKCk6IFZhbHVlTW9kZWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkeSQucmVhZG9ubHkkO1xuICB9XG5cbiAgZ2V0IGJ1c3kkKCk6IFZhbHVlTW9kZWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9idXN5JC5yZWFkb25seSQ7XG4gIH1cblxuICBnZXQgZGlzYWJsZUNsb3NlJCgpOiBWYWx1ZU1vZGVsPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy4jZGlzYWJsZUNsb3NlJC5yZWFkb25seSQ7XG4gIH1cblxuICBnZXQgZm9jdXNlZCQoKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWQkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIGJ1c3lXaGlsZShidXN5TW9kZWw6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgICB0aGlzLl9idXN5JC5zZXREZWxlZ2F0ZShidXN5TW9kZWwpO1xuICB9XG5cbiAgaXNCdXN5KCkge1xuICAgIHJldHVybiB0aGlzLl9idXN5JC52YWx1ZTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlQ2xvc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2Rpc2FibGVDbG9zZSQudmFsdWU7XG4gIH1cblxuICBkaXNhYmxlQ2xvc2VXaGlsZShjb25kaXRpb246IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgICB0aGlzLiNkaXNhYmxlQ2xvc2UkLnNldERlbGVnYXRlKGNvbmRpdGlvbik7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMuX2FjdGl2aXR5Q29udGV4dDtcbiAgfVxuXG4gIGdldEludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmludGVyYWN0aW9uQ29udGV4dDtcbiAgfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQWN0aXZpdHkge1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dDxSLCBFPiB7XG4gICAgb25Eb25lOiAocmVzdWx0OiBSKSA9PiB2b2lkLFxuICAgIG9uQ2FuY2VsOiAoZXJyb3I6IEUpID0+IHZvaWQsXG4gICAgZm9jdXNlZDogVmFsdWVNb2RlbDxib29sZWFuPlxuICB9XG59XG4iXX0=
@@ -1,15 +1,14 @@
1
1
  import { Component, HostBinding, Inject } from '@angular/core';
2
2
  import { Command } from '@coolon/pectin';
3
+ import { Confirm } from '../confirm';
3
4
  import { AbstractDialogComponent, ALERT_CONFIG } from './abstract-dialog.component';
4
5
  import * as i0 from "@angular/core";
6
+ import * as i1 from "../confirm";
5
7
  export class AbstractConfirmDialogComponent extends AbstractDialogComponent {
6
8
  cancelFace;
7
9
  confirmClass = "aup-confirm-activity";
8
10
  constructor(config) {
9
11
  super(config);
10
- this.cancelFace = {
11
- text: () => config.cancel()
12
- };
13
12
  this.cancelCommand = Command.create(() => {
14
13
  return this.cancel();
15
14
  });
@@ -22,11 +21,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
22
21
  args: [{
23
22
  template: ''
24
23
  }]
25
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
24
+ }], ctorParameters: function () { return [{ type: i1.Confirm, decorators: [{
26
25
  type: Inject,
27
26
  args: [ALERT_CONFIG]
28
27
  }] }]; }, propDecorators: { confirmClass: [{
29
28
  type: HostBinding,
30
29
  args: ["class"]
31
30
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hYnN0cmFjdC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7O0FBS2xGLE1BQU0sT0FBTyw4QkFBOEMsU0FBUSx1QkFBZ0M7SUFFeEYsVUFBVSxDQUFjO0lBRVgsWUFBWSxHQUFHLHNCQUFzQixDQUFDO0lBRTVELFlBQWtDLE1BQWU7UUFDL0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtTQUM1QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBZFUsOEJBQThCLGtCQU1yQixZQUFZOzJGQU5yQiw4QkFBOEIsbUlBRi9CLEVBQUU7OzJGQUVELDhCQUE4QjtrQkFIMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYjs7MEJBT2MsTUFBTTsyQkFBQyxZQUFZOzRDQUZWLFlBQVk7c0JBQWpDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbWFuZH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtDb21tYW5kRmFjZX0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb21tYW5kcy9jb21tYW5kLWZhY2UnO1xuaW1wb3J0IHtDb25maXJtfSBmcm9tICcuLi9jb25maXJtJztcbmltcG9ydCB7QWJzdHJhY3REaWFsb2dDb21wb25lbnQsIEFMRVJUX0NPTkZJR30gZnJvbSAnLi9hYnN0cmFjdC1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdENvbmZpcm1EaWFsb2dDb21wb25lbnQ8RCwgUiwgRSA9IGFueT4gZXh0ZW5kcyBBYnN0cmFjdERpYWxvZ0NvbXBvbmVudDxELCBSLCBFPiB7XG5cbiAgcmVhZG9ubHkgY2FuY2VsRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIikgY29uZmlybUNsYXNzID0gXCJhdXAtY29uZmlybS1hY3Rpdml0eVwiO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQUxFUlRfQ09ORklHKSBjb25maWc6IENvbmZpcm0pIHtcbiAgICBzdXBlcihjb25maWcpO1xuICAgIHRoaXMuY2FuY2VsRmFjZSA9IHtcbiAgICAgIHRleHQ6ICgpID0+IGNvbmZpZy5jYW5jZWwoKVxuICAgIH07XG4gICAgdGhpcy5jYW5jZWxDb21tYW5kID0gQ29tbWFuZC5jcmVhdGUoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY2FuY2VsKCk7XG4gICAgfSk7XG4gIH1cblxuXG4vLyBub3RpZnlBY3Rpdml0eVJlYWR5KCkge1xuICAvLyAgIHN1cGVyLm5vdGlmeUFjdGl2aXR5UmVhZHkoKTtcbiAgLy8gICBjb25zdCBmb2N1c1RhcmdldCA9IHRoaXMuaXNEZXN0cnVjdGl2ZSgpID8gdGhpcy5jYW5jZWxDb21tYW5kIDogdGhpcy5jb25maXJtQ29tbWFuZDtcbiAgLy8gICBmb2N1c1RhcmdldC5cbiAgLy8gfVxuXG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hYnN0cmFjdC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBS2xGLE1BQU0sT0FBTyw4QkFBOEMsU0FBUSx1QkFBeUM7SUFFakcsVUFBVSxDQUFjO0lBRVgsWUFBWSxHQUFHLHNCQUFzQixDQUFDO0lBRTVELFlBQWtDLE1BQWU7UUFDL0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBWFUsOEJBQThCLGtCQU1yQixZQUFZOzJGQU5yQiw4QkFBOEIsbUlBRi9CLEVBQUU7OzJGQUVELDhCQUE4QjtrQkFIMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYjs7MEJBT2MsTUFBTTsyQkFBQyxZQUFZOzRDQUZWLFlBQVk7c0JBQWpDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbWFuZH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtDb21tYW5kRmFjZX0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb21tYW5kcy9jb21tYW5kLWZhY2UnO1xuaW1wb3J0IHtDb25maXJtfSBmcm9tICcuLi9jb25maXJtJztcbmltcG9ydCB7QWJzdHJhY3REaWFsb2dDb21wb25lbnQsIEFMRVJUX0NPTkZJR30gZnJvbSAnLi9hYnN0cmFjdC1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdENvbmZpcm1EaWFsb2dDb21wb25lbnQ8RCwgUiwgRSA9IGFueT4gZXh0ZW5kcyBBYnN0cmFjdERpYWxvZ0NvbXBvbmVudDxDb25maXJtLCBELCBSLCBFPiB7XG5cbiAgcmVhZG9ubHkgY2FuY2VsRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIikgY29uZmlybUNsYXNzID0gXCJhdXAtY29uZmlybS1hY3Rpdml0eVwiO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQUxFUlRfQ09ORklHKSBjb25maWc6IENvbmZpcm0pIHtcbiAgICBzdXBlcihjb25maWcpO1xuICAgIHRoaXMuY2FuY2VsQ29tbWFuZCA9IENvbW1hbmQuY3JlYXRlKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNhbmNlbCgpO1xuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
@@ -1,54 +1,14 @@
1
1
  import { Component, Inject, InjectionToken } from '@angular/core';
2
2
  import { assert } from '@coolon/pectin';
3
- import { lang } from '@coolon/typescript-utilities';
4
- import { isFunction } from "lodash-es";
5
3
  import { Activity } from '../activity';
6
- import { Alert } from '../alert';
7
4
  import * as i0 from "@angular/core";
8
5
  export const ALERT_CONFIG = new InjectionToken('AlertConfig');
9
6
  export class AbstractDialogComponent extends Activity {
10
7
  config;
11
- confirmFace;
12
- title;
13
- content;
14
- color;
15
8
  constructor(config) {
16
9
  super();
17
10
  this.config = config;
18
11
  assert.notNil(config);
19
- this.title = Alert.getTitle(config);
20
- this.color = this.checkColor(Alert.getColor(config));
21
- this.content = Alert.getContent(config);
22
- this.confirmFace = {
23
- text: () => config.ok(),
24
- color: () => this.color || 'primary',
25
- style: () => 'raised'
26
- };
27
- this.onActivityReady(() => {
28
- if (this.activityActions) {
29
- this.isDestructive() ? this.activityActions.focusCancel() : this.activityActions.focusConfirm();
30
- }
31
- });
32
- }
33
- getConfig() {
34
- return lang.abstractMethod(this.constructor);
35
- }
36
- checkColor(rawColor) {
37
- if (this.isDestructive()) {
38
- return 'warn';
39
- }
40
- else {
41
- if (['primary', 'accent', 'warn'].includes(rawColor)) {
42
- return rawColor;
43
- }
44
- else {
45
- console.warn(`Invalid color string ${rawColor}`);
46
- return undefined;
47
- }
48
- }
49
- }
50
- isDestructive() {
51
- return isFunction(this.config['destructive']) && this.config["destructive"]();
52
12
  }
53
13
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractDialogComponent, deps: [{ token: ALERT_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
54
14
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractDialogComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
@@ -62,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
62
22
  type: Inject,
63
23
  args: [ALERT_CONFIG]
64
24
  }] }]; } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWJzdHJhY3QtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFVBQVUsQ0FBQzs7QUFHL0IsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFNLGFBQWEsQ0FBQyxDQUFDO0FBSW5FLE1BQU0sT0FBTyx1QkFBdUMsU0FBUSxRQUFpQjtJQU90QjtJQUw1QyxXQUFXLENBQWM7SUFDekIsS0FBSyxDQUFTO0lBQ2QsT0FBTyxDQUFXO0lBQ2xCLEtBQUssQ0FBaUM7SUFFL0MsWUFBcUQsTUFBdUI7UUFDMUUsS0FBSyxFQUFFLENBQUM7UUFEMkMsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFFMUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNqQixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUN2QixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxTQUFTO1lBQ3BDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRO1NBQ3RCLENBQUM7UUFFRixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUN4QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQTthQUNoRztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFUyxVQUFVLENBQUMsUUFBZ0I7UUFDbkMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDeEIsT0FBTyxNQUFNLENBQUM7U0FDZjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNwRCxPQUFPLFFBQXlDLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDakQsT0FBTyxTQUFTLENBQUM7YUFDbEI7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztJQUNoRixDQUFDO3VHQTlDVSx1QkFBdUIsa0JBT2QsWUFBWTsyRkFQckIsdUJBQXVCLDJFQUZ4QixFQUFFOzsyRkFFRCx1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7OzBCQVFjLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YXNzZXJ0fSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge2xhbmd9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHtpc0Z1bmN0aW9ufSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQge0NvbW1hbmRGYWNlfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2NvbW1hbmRzL2NvbW1hbmQtZmFjZSc7XG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tICcuLi9hY3Rpdml0eSc7XG5pbXBvcnQge0FsZXJ0fSBmcm9tICcuLi9hbGVydCc7XG5pbXBvcnQge0NvbmZpcm19IGZyb20gJy4uL2NvbmZpcm0nO1xuXG5leHBvcnQgY29uc3QgQUxFUlRfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ0FsZXJ0Q29uZmlnJyk7XG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGlhbG9nQ29tcG9uZW50PEQsIFIsIEUgPSBhbnk+IGV4dGVuZHMgQWN0aXZpdHk8RCwgUiwgRT4ge1xuXG4gIHJlYWRvbmx5IGNvbmZpcm1GYWNlOiBDb21tYW5kRmFjZTtcbiAgcmVhZG9ubHkgdGl0bGU6IHN0cmluZztcbiAgcmVhZG9ubHkgY29udGVudDogc3RyaW5nW107XG4gIHJlYWRvbmx5IGNvbG9yPzogJ3ByaW1hcnknIHwgJ2FjY2VudCcgfCAnd2Fybic7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChBTEVSVF9DT05GSUcpIHByb3RlY3RlZCByZWFkb25seSBjb25maWc6IEFsZXJ0IHwgQ29uZmlybSkge1xuICAgIHN1cGVyKCk7XG4gICAgYXNzZXJ0Lm5vdE5pbChjb25maWcpO1xuICAgIHRoaXMudGl0bGUgPSBBbGVydC5nZXRUaXRsZShjb25maWcpO1xuICAgIHRoaXMuY29sb3IgPSB0aGlzLmNoZWNrQ29sb3IoQWxlcnQuZ2V0Q29sb3IoY29uZmlnKSk7XG4gICAgdGhpcy5jb250ZW50ID0gQWxlcnQuZ2V0Q29udGVudChjb25maWcpO1xuXG4gICAgdGhpcy5jb25maXJtRmFjZSA9IHtcbiAgICAgIHRleHQ6ICgpID0+IGNvbmZpZy5vaygpLFxuICAgICAgY29sb3I6ICgpID0+IHRoaXMuY29sb3IgfHwgJ3ByaW1hcnknLFxuICAgICAgc3R5bGU6ICgpID0+ICdyYWlzZWQnXG4gICAgfTtcblxuICAgIHRoaXMub25BY3Rpdml0eVJlYWR5KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmFjdGl2aXR5QWN0aW9ucykge1xuICAgICAgICB0aGlzLmlzRGVzdHJ1Y3RpdmUoKSA/IHRoaXMuYWN0aXZpdHlBY3Rpb25zLmZvY3VzQ2FuY2VsKCkgOiB0aGlzLmFjdGl2aXR5QWN0aW9ucy5mb2N1c0NvbmZpcm0oKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q29uZmlnKCk6QWxlcnQgfCBDb25maXJtIHtcbiAgICByZXR1cm4gbGFuZy5hYnN0cmFjdE1ldGhvZCh0aGlzLmNvbnN0cnVjdG9yKVxuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrQ29sb3IocmF3Q29sb3I6IHN0cmluZyk6ICdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ3dhcm4nIHtcbiAgICBpZiAodGhpcy5pc0Rlc3RydWN0aXZlKCkpIHtcbiAgICAgIHJldHVybiAnd2Fybic7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChbJ3ByaW1hcnknLCAnYWNjZW50JywgJ3dhcm4nXS5pbmNsdWRlcyhyYXdDb2xvcikpIHtcbiAgICAgICAgcmV0dXJuIHJhd0NvbG9yIGFzICdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ3dhcm4nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBJbnZhbGlkIGNvbG9yIHN0cmluZyAke3Jhd0NvbG9yfWApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzRGVzdHJ1Y3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24odGhpcy5jb25maWdbJ2Rlc3RydWN0aXZlJ10pICYmIHRoaXMuY29uZmlnW1wiZGVzdHJ1Y3RpdmVcIl0oKTtcbiAgfVxuXG59XG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWJzdHJhY3QtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3RDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7O0FBSXJDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBTSxhQUFhLENBQUMsQ0FBQztBQUtuRSxNQUFNLE9BQU8sdUJBQXdELFNBQVEsUUFBaUI7SUFFdkM7SUFBckQsWUFBcUQsTUFBUztRQUM1RCxLQUFLLEVBQUUsQ0FBQztRQUQyQyxXQUFNLEdBQU4sTUFBTSxDQUFHO1FBRTVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsQ0FBQzt1R0FMVSx1QkFBdUIsa0JBRWQsWUFBWTsyRkFGckIsdUJBQXVCLDJFQUZ4QixFQUFFOzsyRkFFRCx1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7OzBCQUdjLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YXNzZXJ0fSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge2xhbmd9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHtDb21tYW5kRmFjZX0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb21tYW5kcy9jb21tYW5kLWZhY2UnO1xuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSAnLi4vYWN0aXZpdHknO1xuaW1wb3J0IHtBbGVydH0gZnJvbSAnLi4vYWxlcnQnO1xuaW1wb3J0IHtDb25maXJtfSBmcm9tICcuLi9jb25maXJtJztcblxuZXhwb3J0IGNvbnN0IEFMRVJUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdBbGVydENvbmZpZycpO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGlhbG9nQ29tcG9uZW50PEMgZXh0ZW5kcyBBbGVydCwgRCwgUiwgRSA9IGFueT4gZXh0ZW5kcyBBY3Rpdml0eTxELCBSLCBFPiB7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChBTEVSVF9DT05GSUcpIHByb3RlY3RlZCByZWFkb25seSBjb25maWc6IEMpIHtcbiAgICBzdXBlcigpO1xuICAgIGFzc2VydC5ub3ROaWwoY29uZmlnKTtcbiAgfVxufVxuIl19
@@ -1,13 +1,15 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { Component, HostBinding, Input, ViewChild } from "@angular/core";
2
+ import { Component, HostBinding, Input, Optional, ViewChild } from "@angular/core";
3
3
  import { Command, proxify, Proxify } from '@coolon/pectin';
4
4
  import { Enum } from 'typescript-string-enums';
5
5
  import { CommandFace } from '../../../components/commands/command-face';
6
6
  import { CommandComponent } from "../../../components/commands/command/command.component";
7
7
  import { DisposableComponent } from '../../../components/disposable-component';
8
+ import { ActivityContext } from "../../activity-context";
8
9
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "../../../components/commands/command/command.component";
10
+ import * as i1 from "../../activity-context";
11
+ import * as i2 from "@angular/common";
12
+ import * as i3 from "../../../components/commands/command/command.component";
11
13
  /**
12
14
  * @example
13
15
  * <aup-activity-actions [confirmFace]="saveFace" [cancelFace]="cancelFace">
@@ -30,6 +32,7 @@ import * as i2 from "../../../components/commands/command/command.component";
30
32
  * </aup-activity-actions>
31
33
  */
32
34
  export class ActivityActionsComponent extends DisposableComponent {
35
+ activityContext;
33
36
  confirmCommandComponent;
34
37
  cancelCommandComponent;
35
38
  #confirmCommand_accessor_storage = proxify((Command));
@@ -59,8 +62,14 @@ export class ActivityActionsComponent extends DisposableComponent {
59
62
  layout = ActivityActionsComponent.Layout.BLOCK;
60
63
  align = ActivityActionsComponent.Align.STRETCH;
61
64
  alignContent = ActivityActionsComponent.AlignContent.CENTER;
62
- constructor() {
65
+ constructor(activityContext) {
63
66
  super();
67
+ this.activityContext = activityContext;
68
+ console.log(activityContext);
69
+ if (activityContext) {
70
+ this.confirmCommand = activityContext.confirmCommand;
71
+ this.cancelCommand = activityContext.cancelCommand;
72
+ }
64
73
  }
65
74
  hasConfirmFace() {
66
75
  return !!this.confirmFace;
@@ -68,19 +77,14 @@ export class ActivityActionsComponent extends DisposableComponent {
68
77
  hasCancelFace() {
69
78
  return !!this.cancelFace;
70
79
  }
71
- initCommands(activity) {
72
- this.confirmCommand = activity.confirmCommand;
73
- this.cancelCommand = activity.cancelCommand;
74
- this.cdr.detectChanges();
75
- }
76
80
  focusConfirm() {
77
81
  this.confirmCommandComponent.requestFocus();
78
82
  }
79
83
  focusCancel() {
80
84
  this.cancelCommandComponent.requestFocus();
81
85
  }
82
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
83
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: { confirmCommand: "confirmCommand", cancelCommand: "cancelCommand", faces: "faces", confirmFace: "confirmFace", cancelFace: "cancelFace", style: "style", layout: "layout", align: "align", alignContent: "alignContent" }, host: { properties: { "attr.layout": "this.layout", "attr.align": "this.align", "attr.align-content": "this.alignContent" } }, viewQueries: [{ propertyName: "confirmCommandComponent", first: true, predicate: ["confirmCommandComponent"], descendants: true }, { propertyName: "cancelCommandComponent", first: true, predicate: ["cancelCommandComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px);grid-gap:var(--resolved-activity-actions-gap)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}:host .cancel{grid-area:cancel}:host .confirm{grid-area:confirm}:host .content{display:flex;flex-direction:row;align-items:center}:host[align-content=start] .content{justify-items:start}:host[align-content=end]{justify-items:end}:host[align-content=center]{justify-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }] });
86
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [{ token: i1.ActivityContext, optional: true }], target: i0.ɵɵFactoryTarget.Component });
87
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: { confirmCommand: "confirmCommand", cancelCommand: "cancelCommand", faces: "faces", confirmFace: "confirmFace", cancelFace: "cancelFace", style: "style", layout: "layout", align: "align", alignContent: "alignContent" }, host: { properties: { "attr.layout": "this.layout", "attr.align": "this.align", "attr.align-content": "this.alignContent" } }, viewQueries: [{ propertyName: "confirmCommandComponent", first: true, predicate: ["confirmCommandComponent"], descendants: true }, { propertyName: "cancelCommandComponent", first: true, predicate: ["cancelCommandComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px);grid-gap:var(--resolved-activity-actions-gap)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}:host .cancel{grid-area:cancel}:host .confirm{grid-area:confirm}:host .content{display:flex;flex-direction:row;align-items:center}:host[align-content=start] .content{justify-items:start}:host[align-content=end]{justify-items:end}:host[align-content=center]{justify-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }] });
84
88
  }
85
89
  __decorate([
86
90
  Proxify(),
@@ -93,7 +97,9 @@ __decorate([
93
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, decorators: [{
94
98
  type: Component,
95
99
  args: [{ selector: 'aup-activity-actions', template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px);grid-gap:var(--resolved-activity-actions-gap)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}:host .cancel{grid-area:cancel}:host .confirm{grid-area:confirm}:host .content{display:flex;flex-direction:row;align-items:center}:host[align-content=start] .content{justify-items:start}:host[align-content=end]{justify-items:end}:host[align-content=center]{justify-items:center}\n"] }]
96
- }], ctorParameters: function () { return []; }, propDecorators: { confirmCommandComponent: [{
100
+ }], ctorParameters: function () { return [{ type: i1.ActivityContext, decorators: [{
101
+ type: Optional
102
+ }] }]; }, propDecorators: { confirmCommandComponent: [{
97
103
  type: ViewChild,
98
104
  args: ["confirmCommandComponent"]
99
105
  }], cancelCommandComponent: [{
@@ -143,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
143
149
  END: 'end'
144
150
  });
145
151
  })(ActivityActionsComponent || (ActivityActionsComponent = {}));
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUN4RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQUU3RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFNSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQW1CO0lBR3JELHVCQUF1QixDQUFrQjtJQUd6QyxzQkFBc0IsQ0FBa0I7SUFNekMsbUNBQWlCLE9BQU8sQ0FBQyxDQUFBLE9BQVksQ0FBQSxDQUFDLENBQUM7SUFKaEQ7O09BRUc7SUFFTSxJQUFBLGNBQWMsb0RBQXlCO0lBQXZDLElBQUEsY0FBYywwREFBeUI7SUFNdkMsa0NBQWUsT0FB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bXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtDb21tYW5kLCBwcm94aWZ5LCBQcm94aWZ5fSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0VudW19IGZyb20gJ3R5cGVzY3JpcHQtc3RyaW5nLWVudW1zJztcbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC1mYWNlJztcbmltcG9ydCB7Q29tbWFuZENvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC9jb21tYW5kLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcblxuLyoqXG4gKiBAZXhhbXBsZVxuICogPGF1cC1hY3Rpdml0eS1hY3Rpb25zIFtjb25maXJtRmFjZV09XCJzYXZlRmFjZVwiIFtjYW5jZWxGYWNlXT1cImNhbmNlbEZhY2VcIj5cbiAqIDwvYXVwLWFjdGl2aXR5LWFjdGlvbnM+XG4gKlxuICogIDxhdXAtYWN0aXZpdHktYWN0aW9ucyBbZmFjZXNdPVwie2NvbmZpcm06IHNhdmVGYWNlLCBjYW5jZWw6IGNhbmNlbEZhY2V9XCI+XG4gKiAgPC9hdXAtYWN0aXZpdHktYWN0aW9ucz5cbiAqXG4gKiAvLyBSdW5uaW5nIGBuZyBnIEBjb29sb24vYW5ndWxhci11aS1wb3dlcnVwczphdXAtaTE4bmAgd2lsbCBpbnN0YWxsIGRlZmF1bHRcbiAqIC8vIHN0eWxlIGRlZmluaXRpb25zXG4gKiA8YXVwLWFjdGl2aXR5LWFjdGlvbnMgW2ZhY2VzXT1cIkkxOG4uYXVwLmNvbXBvbmVudHMuYWN0aXZpdHlBY3Rpb25zLnN0eWxlcy5va0NhbmNlbEljb25zXCI+XG4gKiA8L2F1cC1hY3Rpdml0eS1hY3Rpb25zPlxuICpcbiAqIC8vIHlvdSBjYW4gYWxzbyBhZGQgYWRkaXRpb25hbCBjb250ZW50IHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgYWxvbmcgd2l0aCB0aGUgYnV0dG9ucy5cbiAqIC8vIFRoZSBsb2NhdGlvbiBvZiB0aGUgY29udGVudCBkZXBlbmRzIG9uIHRoZSBhbGlnbm1lbnQgYXR0cmlidXRlLlxuICogPGF1cC1hY3Rpdml0eS1hY3Rpb25zXG4gKiAgICAgYWxpZ249XCJzdHJldGNoXCJcbiAqICAgICBbZmFjZXNdPVwiSTE4bi5hdXAuY29tcG9uZW50cy5hY3Rpdml0eUFjdGlvbnMuc3R5bGVzLm9rQ2FuY2VsSWNvbnNcIj5cbiAqICAgICA8c3Bhbj5UaGlzIGNvbnRlbnQgd2lsbCBiZSBiZXR3ZWVuIHRoZSB0d28gY29tbWFuZHM8L3NwYW4+XG4gKiA8L2F1cC1hY3Rpdml0eS1hY3Rpb25zPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtYWN0aXZpdHktYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpdml0eS1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQge1xuXG4gIEBWaWV3Q2hpbGQoXCJjb25maXJtQ29tbWFuZENvbXBvbmVudFwiKVxuICBwcm90ZWN0ZWQgY29uZmlybUNvbW1hbmRDb21wb25lbnQ6IENvbW1hbmRDb21wb25lbnRcblxuICBAVmlld0NoaWxkKFwiY2FuY2VsQ29tbWFuZENvbXBvbmVudFwiKVxuICBwcm90ZWN0ZWQgY2FuY2VsQ29tbWFuZENvbXBvbmVudDogQ29tbWFuZENvbXBvbmVudFxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBhY3Rpdml0eSBhY3Rpb25zIG5vdyB1c2UgdGhlIGNvbmZpcm0gY29tbWFuZCBvZiB0aGUgYWN0aXZpdHkgYXV0b21hdGljYWxseVxuICAgKi9cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBjb25maXJtQ29tbWFuZCA9IHByb3hpZnkoQ29tbWFuZDxhbnk+KTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgYWN0aXZpdHkgYWN0aW9ucyBub3cgdXNlIHRoZSBjYW5jZWwgY29tbWFuZCBvZiB0aGUgYWN0aXZpdHkgYXV0b21hdGljYWxseVxuICAgKi9cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBjYW5jZWxDb21tYW5kPSBwcm94aWZ5KENvbW1hbmQ8YW55Pik7XG5cbiAgQElucHV0KClcbiAgc2V0IGZhY2VzKGZhY2VzOiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuU3R5bGUpIHtcbiAgICB0aGlzLmNvbmZpcm1GYWNlID0gZmFjZXMuY29uZmlybTtcbiAgICB0aGlzLmNhbmNlbEZhY2UgPSBmYWNlcy5jYW5jZWw7XG4gIH1cblxuICBASW5wdXQoKVxuICBjb25maXJtRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgQElucHV0KClcbiAgY2FuY2VsRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSAjZmFjZXMgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzdHlsZShzdHlsZTogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LlN0eWxlKSB7XG4gICAgdGhpcy5mYWNlcyA9IHN0eWxlO1xuICB9XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmxheW91dCcpXG4gIGxheW91dDogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LkxheW91dCA9IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5MYXlvdXQuQkxPQ0s7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFsaWduJylcbiAgYWxpZ246IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5BbGlnbiA9IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5BbGlnbi5TVFJFVENIO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5hbGlnbi1jb250ZW50JylcbiAgYWxpZ25Db250ZW50OiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuQWxpZ25Db250ZW50ID0gQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LkFsaWduQ29udGVudC5DRU5URVI7XG5cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgaGFzQ29uZmlybUZhY2UoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5jb25maXJtRmFjZTtcbiAgfVxuXG4gIGhhc0NhbmNlbEZhY2UoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5jYW5jZWxGYWNlO1xuICB9XG5cbiAgaW5pdENvbW1hbmRzKGFjdGl2aXR5OiB7IGNvbmZpcm1Db21tYW5kOiBDb21tYW5kPHVua25vd24+LCBjYW5jZWxDb21tYW5kOiBDb21tYW5kPHVua25vd24+IH0pIHtcbiAgICB0aGlzLmNvbmZpcm1Db21tYW5kID0gYWN0aXZpdHkuY29uZmlybUNvbW1hbmQ7XG4gICAgdGhpcy5jYW5jZWxDb21tYW5kID0gYWN0aXZpdHkuY2FuY2VsQ29tbWFuZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBmb2N1c0NvbmZpcm0oKSB7XG4gICAgdGhpcy5jb25maXJtQ29tbWFuZENvbXBvbmVudC5yZXF1ZXN0Rm9jdXMoKTtcbiAgfVxuXG4gIGZvY3VzQ2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsQ29tbWFuZENvbXBvbmVudC5yZXF1ZXN0Rm9jdXMoKTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGNvbnN0IExheW91dCA9IEVudW0oe1xuICAgIElOTElORTogJ2lubGluZScsXG4gICAgQkxPQ0s6ICdibG9jaydcbiAgfSk7XG4gIGV4cG9ydCB0eXBlIExheW91dCA9IEVudW08dHlwZW9mIExheW91dD47XG5cbiAgZXhwb3J0IGNvbnN0IEFsaWduID0gRW51bSh7XG4gICAgU1RBUlQ6ICdzdGFydCcsXG4gICAgU1RSRVRDSDogJ3N0cmV0Y2gnLFxuICAgIEVORDogJ2VuZCdcbiAgfSk7XG4gIGV4cG9ydCB0eXBlIEFsaWduID0gRW51bTx0eXBlb2YgQWxpZ24+O1xuXG4gIGV4cG9ydCBjb25zdCBBbGlnbkNvbnRlbnQgPSBFbnVtKHtcbiAgICBTVEFSVDogJ3N0YXJ0JyxcbiAgICBDRU5URVI6ICdjZW50ZXInLFxuICAgIEVORDogJ2VuZCdcbiAgfSk7XG4gIGV4cG9ydCB0eXBlIEFsaWduQ29udGVudCA9IEVudW08dHlwZW9mIEFsaWduQ29udGVudD47XG5cbiAgZXhwb3J0IGludGVyZmFjZSBTdHlsZSB7XG4gICAgY29uZmlybTogQ29tbWFuZEZhY2U7XG4gICAgY2FuY2VsOiBDb21tYW5kRmFjZTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNDYW5jZWxGYWNlKClcIj5cbiAgPGF1cC1jb21tYW5kICNjYW5jZWxDb21tYW5kQ29tcG9uZW50IGNsYXNzPVwiY2FuY2VsXCIgW2NvbW1hbmRdPVwiY2FuY2VsQ29tbWFuZFwiIFtmYWNlXT1cImNhbmNlbEZhY2VcIiBkYXRhLWN5PVwiY2FuY2VsLWNvbW1hbmRcIj48L2F1cC1jb21tYW5kPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQ29uZmlybUZhY2UoKVwiPlxuICA8YXVwLWNvbW1hbmQgI2NvbmZpcm1Db21tYW5kQ29tcG9uZW50IGNsYXNzPVwiY29uZmlybVwiIFtjb21tYW5kXT1cImNvbmZpcm1Db21tYW5kXCIgW2ZhY2VdPVwiY29uZmlybUZhY2VcIiBkYXRhLWN5PVwiY29uZmlybS1jb21tYW5kXCI+PC9hdXAtY29tbWFuZD5cbjwvbmctY29udGFpbmVyPlxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUN4RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBRXZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQU1ILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxtQkFBbUI7SUFxRHBCO0lBbERqQyx1QkFBdUIsQ0FBa0I7SUFHekMsc0JBQXNCLENBQWtCO0lBTXpDLG1DQUFpQixPQUFPLENBQUMsQ0FBQSxPQUFZLENBQUEsQ0FBQyxDQUFDO0lBSmhEOztPQUVH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LEVBQUUsUUFBUTtRQUNoQixHQUFHLEVBQUUsS0FBSztLQUNYLENBQUMsQ0FBQztBQVFMLENBQUMsRUEzQmdCLHdCQUF3QixLQUF4Qix3QkFBd0IsUUEyQnhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3B0aW9uYWwsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Q29tbWFuZCwgcHJveGlmeSwgUHJveGlmeX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtFbnVtfSBmcm9tICd0eXBlc2NyaXB0LXN0cmluZy1lbnVtcyc7XG5cbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC1mYWNlJztcbmltcG9ydCB7Q29tbWFuZENvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC9jb21tYW5kLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7QWN0aXZpdHlDb250ZXh0fSBmcm9tIFwiLi4vLi4vYWN0aXZpdHktY29udGV4dFwiO1xuXG4vKipcbiAqIEBleGFtcGxlXG4gKiA8YXVwLWFjdGl2aXR5LWFjdGlvbnMgW2NvbmZpcm1GYWNlXT1cInNhdmVGYWNlXCIgW2NhbmNlbEZhY2VdPVwiY2FuY2VsRmFjZVwiPlxuICogPC9hdXAtYWN0aXZpdHktYWN0aW9ucz5cbiAqXG4gKiAgPGF1cC1hY3Rpdml0eS1hY3Rpb25zIFtmYWNlc109XCJ7Y29uZmlybTogc2F2ZUZhY2UsIGNhbmNlbDogY2FuY2VsRmFjZX1cIj5cbiAqICA8L2F1cC1hY3Rpdml0eS1hY3Rpb25zPlxuICpcbiAqIC8vIFJ1bm5pbmcgYG5nIGcgQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzOmF1cC1pMThuYCB3aWxsIGluc3RhbGwgZGVmYXVsdFxuICogLy8gc3R5bGUgZGVmaW5pdGlvbnNcbiAqIDxhdXAtYWN0aXZpdHktYWN0aW9ucyBbZmFjZXNdPVwiSTE4bi5hdXAuY29tcG9uZW50cy5hY3Rpdml0eUFjdGlvbnMuc3R5bGVzLm9rQ2FuY2VsSWNvbnNcIj5cbiAqIDwvYXVwLWFjdGl2aXR5LWFjdGlvbnM+XG4gKlxuICogLy8geW91IGNhbiBhbHNvIGFkZCBhZGRpdGlvbmFsIGNvbnRlbnQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBhbG9uZyB3aXRoIHRoZSBidXR0b25zLlxuICogLy8gVGhlIGxvY2F0aW9uIG9mIHRoZSBjb250ZW50IGRlcGVuZHMgb24gdGhlIGFsaWdubWVudCBhdHRyaWJ1dGUuXG4gKiA8YXVwLWFjdGl2aXR5LWFjdGlvbnNcbiAqICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICogICAgIFtmYWNlc109XCJJMThuLmF1cC5jb21wb25lbnRzLmFjdGl2aXR5QWN0aW9ucy5zdHlsZXMub2tDYW5jZWxJY29uc1wiPlxuICogICAgIDxzcGFuPlRoaXMgY29udGVudCB3aWxsIGJlIGJldHdlZW4gdGhlIHR3byBjb21tYW5kczwvc3Bhbj5cbiAqIDwvYXVwLWFjdGl2aXR5LWFjdGlvbnM+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1hY3Rpdml0eS1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpdml0eS1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZChcImNvbmZpcm1Db21tYW5kQ29tcG9uZW50XCIpXG4gIHByb3RlY3RlZCBjb25maXJtQ29tbWFuZENvbXBvbmVudDogQ29tbWFuZENvbXBvbmVudFxuXG4gIEBWaWV3Q2hpbGQoXCJjYW5jZWxDb21tYW5kQ29tcG9uZW50XCIpXG4gIHByb3RlY3RlZCBjYW5jZWxDb21tYW5kQ29tcG9uZW50OiBDb21tYW5kQ29tcG9uZW50XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIGFjdGl2aXR5IGFjdGlvbnMgbm93IHVzZSB0aGUgY29uZmlybSBjb21tYW5kIG9mIHRoZSBhY3Rpdml0eSBhdXRvbWF0aWNhbGx5XG4gICAqL1xuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNvbmZpcm1Db21tYW5kID0gcHJveGlmeShDb21tYW5kPGFueT4pO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBhY3Rpdml0eSBhY3Rpb25zIG5vdyB1c2UgdGhlIGNhbmNlbCBjb21tYW5kIG9mIHRoZSBhY3Rpdml0eSBhdXRvbWF0aWNhbGx5XG4gICAqL1xuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNhbmNlbENvbW1hbmQgPSBwcm94aWZ5KENvbW1hbmQ8YW55Pik7XG5cbiAgQElucHV0KClcbiAgc2V0IGZhY2VzKGZhY2VzOiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuU3R5bGUpIHtcbiAgICB0aGlzLmNvbmZpcm1GYWNlID0gZmFjZXMuY29uZmlybTtcbiAgICB0aGlzLmNhbmNlbEZhY2UgPSBmYWNlcy5jYW5jZWw7XG4gIH1cblxuICBASW5wdXQoKVxuICBjb25maXJtRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgQElucHV0KClcbiAgY2FuY2VsRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSAjZmFjZXMgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzdHlsZShzdHlsZTogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LlN0eWxlKSB7XG4gICAgdGhpcy5mYWNlcyA9IHN0eWxlO1xuICB9XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmxheW91dCcpXG4gIGxheW91dDogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LkxheW91dCA9IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5MYXlvdXQuQkxPQ0s7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFsaWduJylcbiAgYWxpZ246IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5BbGlnbiA9IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5BbGlnbi5TVFJFVENIO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5hbGlnbi1jb250ZW50JylcbiAgYWxpZ25Db250ZW50OiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuQWxpZ25Db250ZW50ID0gQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LkFsaWduQ29udGVudC5DRU5URVI7XG5cblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aXZpdHlDb250ZXh0OiBBY3Rpdml0eUNvbnRleHQpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnNvbGUubG9nKGFjdGl2aXR5Q29udGV4dCk7XG4gICAgaWYgKGFjdGl2aXR5Q29udGV4dCkge1xuICAgICAgdGhpcy5jb25maXJtQ29tbWFuZCA9IGFjdGl2aXR5Q29udGV4dC5jb25maXJtQ29tbWFuZDtcbiAgICAgIHRoaXMuY2FuY2VsQ29tbWFuZCA9IGFjdGl2aXR5Q29udGV4dC5jYW5jZWxDb21tYW5kO1xuICAgIH1cbiAgfVxuXG4gIGhhc0NvbmZpcm1GYWNlKCkge1xuICAgIHJldHVybiAhIXRoaXMuY29uZmlybUZhY2U7XG4gIH1cblxuICBoYXNDYW5jZWxGYWNlKCkge1xuICAgIHJldHVybiAhIXRoaXMuY2FuY2VsRmFjZTtcbiAgfVxuXG4gIGZvY3VzQ29uZmlybSgpIHtcbiAgICB0aGlzLmNvbmZpcm1Db21tYW5kQ29tcG9uZW50LnJlcXVlc3RGb2N1cygpO1xuICB9XG5cbiAgZm9jdXNDYW5jZWwoKSB7XG4gICAgdGhpcy5jYW5jZWxDb21tYW5kQ29tcG9uZW50LnJlcXVlc3RGb2N1cygpO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50IHtcblxuICBleHBvcnQgY29uc3QgTGF5b3V0ID0gRW51bSh7XG4gICAgSU5MSU5FOiAnaW5saW5lJyxcbiAgICBCTE9DSzogJ2Jsb2NrJ1xuICB9KTtcbiAgZXhwb3J0IHR5cGUgTGF5b3V0ID0gRW51bTx0eXBlb2YgTGF5b3V0PjtcblxuICBleHBvcnQgY29uc3QgQWxpZ24gPSBFbnVtKHtcbiAgICBTVEFSVDogJ3N0YXJ0JyxcbiAgICBTVFJFVENIOiAnc3RyZXRjaCcsXG4gICAgRU5EOiAnZW5kJ1xuICB9KTtcbiAgZXhwb3J0IHR5cGUgQWxpZ24gPSBFbnVtPHR5cGVvZiBBbGlnbj47XG5cbiAgZXhwb3J0IGNvbnN0IEFsaWduQ29udGVudCA9IEVudW0oe1xuICAgIFNUQVJUOiAnc3RhcnQnLFxuICAgIENFTlRFUjogJ2NlbnRlcicsXG4gICAgRU5EOiAnZW5kJ1xuICB9KTtcbiAgZXhwb3J0IHR5cGUgQWxpZ25Db250ZW50ID0gRW51bTx0eXBlb2YgQWxpZ25Db250ZW50PjtcblxuICBleHBvcnQgaW50ZXJmYWNlIFN0eWxlIHtcbiAgICBjb25maXJtOiBDb21tYW5kRmFjZTtcbiAgICBjYW5jZWw6IENvbW1hbmRGYWNlO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0NhbmNlbEZhY2UoKVwiPlxuICA8YXVwLWNvbW1hbmQgI2NhbmNlbENvbW1hbmRDb21wb25lbnQgY2xhc3M9XCJjYW5jZWxcIiBbY29tbWFuZF09XCJjYW5jZWxDb21tYW5kXCIgW2ZhY2VdPVwiY2FuY2VsRmFjZVwiIGRhdGEtY3k9XCJjYW5jZWwtY29tbWFuZFwiPjwvYXVwLWNvbW1hbmQ+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNDb25maXJtRmFjZSgpXCI+XG4gIDxhdXAtY29tbWFuZCAjY29uZmlybUNvbW1hbmRDb21wb25lbnQgY2xhc3M9XCJjb25maXJtXCIgW2NvbW1hbmRdPVwiY29uZmlybUNvbW1hbmRcIiBbZmFjZV09XCJjb25maXJtRmFjZVwiIGRhdGEtY3k9XCJjb25maXJtLWNvbW1hbmRcIj48L2F1cC1jb21tYW5kPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -6,6 +6,7 @@ import { findLast } from "lodash-es";
6
6
  import { PlaceRouter } from "../../../place/place-router";
7
7
  import { AbstractInteractionContext } from "../../abstract-interaction-context";
8
8
  import { ActivityRef } from "../../activity-ref";
9
+ import { INTERACTION_CONTEXT } from "../../interaction-context";
9
10
  import { ActivityOutletComponent } from "./activity-outlet/activity-outlet.component";
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "../../../place/place-router";
@@ -93,6 +94,9 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
93
94
  }
94
95
  return findLast(this.activityRefs, tab => !tab.isComplete());
95
96
  }
97
+ get disableClose() {
98
+ return this.getActiveActivityRef().activity.disableClose;
99
+ }
96
100
  /**
97
101
  * Cancels the current activity and returns true the context is no longer active, false if
98
102
  * there is still another activity running.
@@ -248,11 +252,15 @@ export class ActivityContainerComponent extends AbstractInteractionContext {
248
252
  this.finaliseActivityStates();
249
253
  }
250
254
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, deps: [{ token: i1.PlaceRouter }], target: i0.ɵɵFactoryTarget.Component });
251
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityContainerComponent, selector: "aup-activity-container", inputs: { dynamicHeight: "dynamicHeight", animationDuration: "animationDuration" }, viewQueries: [{ propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true, static: true }, { propertyName: "activityOutlets", predicate: ActivityOutletComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\"\n [animationDuration]=\"getTabAnimationDuration()\"\n (animationDone)=\"onAnimationDone()\"\n>\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: i4.BusyOverlayComponent, selector: "aup-busy-overlay", inputs: ["busy$", "busy"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i6.ActivityOutletComponent, selector: "aup-activity-outlet", inputs: ["nestedInteractionContext", "activityRef"] }] });
255
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityContainerComponent, selector: "aup-activity-container", inputs: { dynamicHeight: "dynamicHeight", animationDuration: "animationDuration" }, providers: [
256
+ { provide: INTERACTION_CONTEXT, useClass: ActivityContainerComponent },
257
+ ], viewQueries: [{ propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true, static: true }, { propertyName: "activityOutlets", predicate: ActivityOutletComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\"\n [animationDuration]=\"getTabAnimationDuration()\"\n (animationDone)=\"onAnimationDone()\"\n>\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: i4.BusyOverlayComponent, selector: "aup-busy-overlay", inputs: ["busy$", "busy"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i6.ActivityOutletComponent, selector: "aup-activity-outlet", inputs: ["nestedInteractionContext", "activityRef"] }] });
252
258
  }
253
259
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, decorators: [{
254
260
  type: Component,
255
- args: [{ selector: "aup-activity-container", template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\"\n [animationDuration]=\"getTabAnimationDuration()\"\n (animationDone)=\"onAnimationDone()\"\n>\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"] }]
261
+ args: [{ selector: "aup-activity-container", providers: [
262
+ { provide: INTERACTION_CONTEXT, useClass: ActivityContainerComponent },
263
+ ], template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\"\n [animationDuration]=\"getTabAnimationDuration()\"\n (animationDone)=\"onAnimationDone()\"\n>\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"] }]
256
264
  }], ctorParameters: function () { return [{ type: i1.PlaceRouter }]; }, propDecorators: { dynamicHeight: [{
257
265
  type: Input
258
266
  }], tabs: [{
@@ -264,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
264
272
  }], animationDuration: [{
265
273
  type: Input
266
274
  }] } });
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBZSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxNQUFNLEVBR04sb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRWxELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7QUFPcEYsTUFBTSxPQUFPLDBCQUFvQyxTQUFRLDBCQUEwQjtJQW9DNUQ7SUFq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Q0FBQTtJQUMvQixDQUFDO3VHQW5SVSwwQkFBMEI7MkZBQTFCLDBCQUEwQixtUkFRdkIsdUJBQXVCLHVFQ25DdkMseWdDQW9CQTs7MkZET2EsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3QjtrR0FPbEMsYUFBYTtzQkFEWixLQUFLO2dCQUlOLElBQUk7c0JBREgsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUlqQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsdUJBQXVCO2dCQU1yQyxpQkFBaUI7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtNYXRUYWJHcm91cH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYnNcIjtcbmltcG9ydCB7XG4gIGFzc2VydCxcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgQ29uc3RydWN0YWJsZSxcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTXV0YWJsZVZhbHVlTW9kZWwsIFRyYWNlXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtsYW5nfSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuXG5pbXBvcnQge2ZpbmRMYXN0fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQge1BsYWNlUm91dGVyfSBmcm9tIFwiLi4vLi4vLi4vcGxhY2UvcGxhY2Utcm91dGVyXCI7XG5pbXBvcnQge0Fic3RyYWN0SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vYWJzdHJhY3QtaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSBcIi4uLy4uL2FjdGl2aXR5XCI7XG5pbXBvcnQge0FjdGl2aXR5UmVmfSBmcm9tIFwiLi4vLi4vYWN0aXZpdHktcmVmXCI7XG5pbXBvcnQge0ludGVyYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7QWN0aXZpdHlPdXRsZXRDb21wb25lbnR9IGZyb20gXCIuL2FjdGl2aXR5LW91dGxldC9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhdXAtYWN0aXZpdHktY29udGFpbmVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlDb250YWluZXJDb21wb25lbnQ8RCwgUiwgRT4gZXh0ZW5kcyBBYnN0cmFjdEludGVyYWN0aW9uQ29udGV4dCB7XG5cbiAgQElucHV0KClcbiAgZHluYW1pY0hlaWdodCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoXCJ0YWJzXCIsIHtzdGF0aWM6IHRydWV9KVxuICB0YWJzOiBNYXRUYWJHcm91cDtcblxuICBAVmlld0NoaWxkcmVuKEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50KVxuICBhY3Rpdml0eU91dGxldHM6IFF1ZXJ5TGlzdDxBY3Rpdml0eU91dGxldENvbXBvbmVudDxhbnksIGFueSwgYW55Pj47XG5cbiAgYWN0aXZpdHlSZWZzOiBBY3Rpdml0eVJlZjxhbnksIGFueSwgYW55PltdID0gW107XG5cbiAgQElucHV0KClcbiAgYW5pbWF0aW9uRHVyYXRpb24gPSBcIjUwMG1zXCJcblxuICBwcml2YXRlIF9pZGVudGlmaWVyOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlZmVycmVkQ2xlYW5VcDogUHJvbWlzZTxhbnk+O1xuXG4gIHByaXZhdGUgaW50ZXJhY3Rpb25TZXJ2aWNlQXBpOiBJbnRlcmFjdGlvblNlcnZpY2UuQXBpO1xuXG4gIHByaXZhdGUgZ2FyYmFnZSA9IG5ldyBHYXJiYWdlQ29sbGVjdG9yKCk7XG4gIHByaXZhdGUgc3luY1NlbGVjdGVkVGFiVGltZW91dDogYW55O1xuICBwcml2YXRlIG9uQW5pbWF0aW9uRmluaXNoZWRKb2I6ICgpID0+IHZvaWQ7XG5cbiAgcmVhZG9ubHkgX3N0YXJ0ZWQkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgX3JlYWR5JCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IF9hbmltYXRpbmckID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBidXN5ID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpKTtcblxuICByZWFkb25seSBzeW5jVGFic0pvYjogKCkgPT4gdm9pZCA9IHVuZGVmaW5lZDtcblxuICByZWFkb25seSBzdGFibGUkOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICBwcml2YXRlIHdhc0FjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlcikge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB2YWx1ZU9mLCB3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuKHRoaXMucmVhZHkkKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHRoaXMuZmluYWxpc2VBY3Rpdml0eVN0YXRlcygpKVxuICAgIHRoaXMuc3RhYmxlJCA9IHZhbHVlT2YuYWxsKFxuICAgICAgdGhpcy5yZWFkeSQsXG4gICAgICB0aGlzLl9zdGFydGVkJCxcbiAgICAgIGNoYWluKHRoaXMuYW5pbWF0aW5nJCkuaXNGYWxzZXkoKVxuICAgICkuYXJlVHJ1dGh5KCk7XG4gIH1cblxuICBnZXQgc3RhcnRlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIGdldCByZWFkeSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5JC5yZWFkb25seSQ7XG4gIH1cblxuICBnZXQgYW5pbWF0aW5nJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW5nJC5yZWFkb25seSQ7XG4gIH1cblxuICBpbml0aWFsaXNlKGlkZW50aWZpZXI6IHN0cmluZywgYXBpOiBJbnRlcmFjdGlvblNlcnZpY2UuQXBpKSB7XG4gICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMuaXNJbml0aWFsaXNlZCgpKTtcbiAgICBhc3NlcnQubm90TmlsKGlkZW50aWZpZXIpO1xuICAgIGFzc2VydC5ub3ROaWwoYXBpKTtcbiAgICB0aGlzLl9pZGVudGlmaWVyID0gaWRlbnRpZmllcjtcbiAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZUFwaSA9IGFwaTtcbiAgfVxuXG4gIG5vdGlmeVJlYWR5KHJlYWR5OiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVhZHkkLnZhbHVlID0gcmVhZHk7XG4gIH1cblxuICBnZXQgaWRlbnRpZmllcigpIHtcbiAgICByZXR1cm4gdGhpcy5faWRlbnRpZmllcjtcbiAgfVxuXG4gIGlzSW5pdGlhbGlzZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pZGVudGlmaWVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhbiBhY3Rpdml0eSBpcyBjdXJyZW50bHkgcnVubmluZy5cbiAgICovXG4gIGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eUNvdW50KCkgPiAwO1xuICAgIC8vIGlmICh0aGlzLndhc0FjdGl2ZSAhPT0gaXNBY3RpdmUpIHtcbiAgICAvLyAgIGNvbnNvbGUubG9nKHt3YXM6IHRoaXMud2FzQWN0aXZlLCBpczogaXNBY3RpdmV9KTtcbiAgICAvLyB9XG4gICAgLy8gdGhpcy53YXNBY3RpdmUgPSBpc0FjdGl2ZVxuICAgIHJldHVybiBpc0FjdGl2ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyRGlzcG9zYWJsZTxUIGV4dGVuZHMgRGlzcG9zYWJsZT4oZGlzcG9zYWJsZTogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLmdhcmJhZ2UucmVnaXN0ZXJEaXNwb3NhYmxlKGRpc3Bvc2FibGUpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiB0aGluayBhYm91dCBhdXRvIGNhbmNlbGxpbmcgYW55IG91dHN0YW5kaW5nIGFjdGl2aXR5IG9uIGRpc3Bvc2UuXG4gICAgLy8gICAgICAgU2VlIE5hdmlnYXRpb25TdGF0ZS5OYXZpZ2F0aW5nIGZvciBhIHVzZS1jYXNlLlxuICAgIGFzc2VydC5pc0ZhbHNleSh0aGlzLmlzQWN0aXZlKCkpO1xuICAgIHRoaXMuZ2FyYmFnZS5kaXNwb3NlKCk7XG4gIH1cblxuICBnZXRBY3RpdmVBY3Rpdml0eVJlZigpOiBBY3Rpdml0eVJlZjxhbnksIGFueSwgYW55PiB7XG4gICAgaWYgKCF0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKFwibm8gYWN0aXZpdHkgaW4gcHJvZ3Jlc3NcIik7XG4gICAgfVxuICAgIHJldHVybiBmaW5kTGFzdCh0aGlzLmFjdGl2aXR5UmVmcywgdGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIHRoZSBjdXJyZW50IGFjdGl2aXR5IGFuZCByZXR1cm5zIHRydWUgdGhlIGNvbnRleHQgaXMgbm8gbG9uZ2VyIGFjdGl2ZSwgZmFsc2UgaWZcbiAgICogdGhlcmUgaXMgc3RpbGwgYW5vdGhlciBhY3Rpdml0eSBydW5uaW5nLlxuICAgKi9cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYWN0aXZpdHkgPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5UmVmKCk7XG4gICAgYWN0aXZpdHkuY2FuY2VsKCk7XG4gICAgaWYgKHRoaXMuaXNDbGVhbmluZ1VwKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLndhaXRGb3JJbnRlcmFjdGlvbkNvbnRleHRDbGVhbnVwVG9GaW5pc2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICF0aGlzLmlzQWN0aXZlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETzogdGhpcyBoYW5kbGluZyBvZiBtdWx0aXBsZSBuZXN0ZWQgYWN0aXZpdGllcyBpcyBvbmx5IHVzZWQgYnkgdGhlIGFjdGl2aXR5IGNvbXBvbmVudCBhbmQgaXMgbm90IGEgZ2VuZXJhbCBjYXNlLlxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlQW5kTGF1bmNoQWN0aXZpdHk8RDEsIFIxLCBFMT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQxLCBSMSwgRTE+PiwgZGF0YTogRDEsIGRpc2FibGVDbG9zZTogYm9vbGVhbik6IFByb21pc2U8UjE+IHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0luaXRpYWxpc2VkKCkpOyAvLyBtYWtlIHN1cmUgd2UndmUgYmVlbiBpbml0aWFsaXNlZFxuICAgIGNvbnN0IGFjdGl2aXR5UmVmID0gbmV3IEFjdGl2aXR5UmVmPEQxLCBSMSwgRTE+KGFjdGl2aXR5VHlwZSwgZGF0YSwgKCkgPT4ge1xuICAgICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5Q291bnQoKSA+IDA7XG4gICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyVGFiU3luY2hyb25pc2F0aW9uKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbmlzaEFuZFN0YXJ0Q2xlYW51cCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubGF1bmNoQWN0aXZpdHkoYWN0aXZpdHlSZWYpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBhY3Rpdml0eVJlZi5hY3Rpdml0eVJlc3VsdDtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gY29uc29sZS5sb2coXCJjbG9zaW5nIGFjdGl2aXR5XCIsIGFjdGl2aXR5VHlwZS5uYW1lLCB0aGlzLmFjdGl2aXR5UmVmcylcbiAgICAgIGlmICghdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICAgIC8vIHdhaXQgdW50aWwgdGhlIGFjdGl2aXR5IHJvdXRlIHN5bmNpbmcgaGFzIGZpbmlzaGVkXG4gICAgICAgIGF3YWl0IHRoaXMucGxhY2VSb3V0ZXIud2FpdEFjdGl2aXRpZXNTeW5jaHJvbmlzZWQoKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJhY3Rpdml0eSBzeW5jaW5nIGZpbmlzaGVkXCIpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVBY3Rpdml0eUNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlSZWZzLmZpbHRlcihyZWYgPT4gIXJlZi5pc0NvbXBsZXRlKCkpLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcmFjdGlvbiBjb250ZXh0IGhhcyBmaW5pc2hlZCBhbiBpcyBpbiB0aGUgcHJvY2VzcyBvZiB3YWl0aW5nXG4gICAqIGZvciBhbGwgdGhlIGluZnJhc3RydWN0dXJlIChpbmNsdWRpbmcgcm91dGUgdXBkYXRlcykgdG8gYmUgY29tcGxldGVkLlxuICAgKi9cbiAgaXNDbGVhbmluZ1VwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX2RlZmVycmVkQ2xlYW5VcDtcbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JJbnRlcmFjdGlvbkNvbnRleHRDbGVhbnVwVG9GaW5pc2goKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVmZXJyZWRDbGVhblVwID9cbiAgICAgIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA6XG4gICAgICB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5pc2hBbmRTdGFydENsZWFudXAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9kZWZlcnJlZENsZWFuVXApIHtcbiAgICAgIC8vIEltcG9ydGFudDpcbiAgICAgIC8vIENsZWFyIG91ciB0YWJzIHNvIHRoZSBuZXh0IGFjdGl2aXR5IHRyaWdnZXJzIGEgdGFiIGNoYW5nZS5cbiAgICAgIC8vIFdpdGhvdXQgdGhpcyBvdXIgYW5pbWF0aW9uIGRvbmUgd2Fzbid0IGNhbGxlZCB3aGVuIGEgc2luZ2xlXG4gICAgICAvLyBuZXcgYWN0aXZpdHkgZm9sbG93ZWQgYSBzaW5nbGUgdGFiIGFjdGl2aXR5IChzaW5jZSB3ZSdyZSB0cmFja2luZ1xuICAgICAgLy8gYnkgYWN0aXZpdHkgaW5kZXgpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpdml0eVJlZnMgPSBbXTsgLy8gd2UgaGF2ZSB0byBkbyBpdCBhZnRlciB0aGUgYW5pbWF0aW9uIHRpbWVvdXQgb3IgdGhlIGFjdGl2aXR5IGRpc2FwcGVhcnMgYmVmb3JlIHRoZSBhbmltYXRpbiBmaW5zaWhlc1xuICAgICAgfSwgdGhpcy5nZXRUYWJBbmltYXRpb25EdXJhdGlvbkluTWlsbGlzKCkpO1xuICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlQXBpLm5vdGlmeUZpbmlzaGVkKHRoaXMpO1xuICAgICAgdGhpcy5fZGVmZXJyZWRDbGVhblVwID0gcHJvbWlzZVxuICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZGVmZXJyZWRDbGVhblVwID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbi8vIEBUcmFjZSgpXG4gIGxhdW5jaEFjdGl2aXR5PEQxLCBSMSwgRTE+KGFjdGl2aXR5UmVmOiBBY3Rpdml0eVJlZjxEMSwgUjEsIEUxPikge1xuICAgIC8vIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFjdGl2aXR5IGxldCB0aGUgaW50ZXJhY3Rpb24gc2VydmljZSBrbm93LlxuICAgIGNvbnN0IGNsZWFuZWRUYWJzID0gdGhpcy5hY3Rpdml0eVJlZnMuZmlsdGVyKHRhYiA9PiAhdGFiLmlzQ29tcGxldGUoKSk7XG4gICAgdGhpcy5hY3Rpdml0eVJlZnMgPSBjbGVhbmVkVGFicy5jb25jYXQoYWN0aXZpdHlSZWYpO1xuICAgIGNvbnN0IGZpcnN0VGltZSA9IHRoaXMuYWN0aXZpdHlSZWZzLmxlbmd0aCA9PT0gMTtcbiAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZUFwaS5ub3RpZnlBY3RpdmUodGhpcyk7XG4gICAgfVxuICAgIHRoaXMuc3luY2hyb25pc2VTZWxlY3RlZFRhYkluZGV4KCk7XG4gIH1cblxuICBhY3Rpdml0eUluZGV4KGluZGV4OiBudW1iZXIsIGFjdGl2aXR5UmVmOiBBY3Rpdml0eVJlZjxhbnksIGFueSwgYW55Pikge1xuICAgIHJldHVybiBpbmRleDtcbiAgfTtcblxuICAvKipcbiAgICogU3luY2hyb25pc2VzIHRoZSBzZWxlY3RlZCB0YWIgaW5kZXguXG4gICAqL1xuICBwcml2YXRlIHN5bmNocm9uaXNlU2VsZWN0ZWRUYWJJbmRleCgpOiB2b2lkIHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0FjdGl2ZSgpKTtcbiAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXg7XG4gICAgY29uc3QgbmV3SW5kZXggPSB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5Q291bnQoKSAtIDE7XG4gICAgY29uc3QgYW5pbWF0ZSA9IHRoaXMuYWN0aXZpdHlSZWZzLmxlbmd0aCA+IDE7XG4gICAgaWYgKHByZXZpb3VzSW5kZXggIT09IG5ld0luZGV4KSB7XG4gICAgICB0aGlzLl9hbmltYXRpbmckLnZhbHVlID0gYW5pbWF0ZTtcbiAgICAgIGNvbnN0IGFjdGl2aXR5UmVmID0gdGhpcy5hY3Rpdml0eVJlZnNbbmV3SW5kZXhdO1xuICAgICAgYWN0aXZpdHlSZWYuc2V0Rm9jdXNlZChmYWxzZSk7XG4gICAgICB0aGlzLmJ1c3kuc2V0RGVsZWdhdGUoYWN0aXZpdHlSZWYuYWN0aXZpdHlCdXN5KTtcbiAgICAgIHRoaXMudGFicy5zZWxlY3RlZEluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAvLyBpZiAodGhpcy5yZWFkeSQudmFsdWUpIHtcbiAgICAgIC8vICAgLy8gTm90ZTogV2UncmUgbm90IHVzaW5nIHRoZSBhbmltYXRpb24gZG9uZSBldmVudCBhcyBpdCdzIGZpcmluZyBhbG1vc3QgaW1tZWFkaWF0ZWx5LlxuICAgICAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZmluYWxpc2VBY3Rpdml0eVN0YXRlcygpLCBhbmltYXRlID8gdGhpcy5nZXRUYWJBbmltYXRpb25EdXJhdGlvbkluTWlsbGlzKCkgOiAwKTtcbiAgICAgIC8vIH1cbiAgICB9XG4gIH1cblxuICBmaW5hbGlzZUFjdGl2aXR5U3RhdGVzKCkge1xuICAgIHRoaXMuX2FuaW1hdGluZyQudmFsdWUgPSBmYWxzZTtcbiAgICB0aGlzLmFjdGl2aXR5UmVmcyA9IHRoaXMuYWN0aXZpdHlSZWZzLmZpbHRlcih0YWIgPT4gIXRhYi5pc0NvbXBsZXRlKCkpO1xuICAgIHRoaXMuYWN0aXZpdHlSZWZzLmZvckVhY2goKHJlZiwgaW5kZXgpID0+IHtcbiAgICAgIHJlZi5zZXRGb2N1c2VkKGluZGV4ID09PSB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGVjdGVkT3V0bGV0KCkge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5T3V0bGV0cy50b0FycmF5KClbdGhpcy50YWJzLnNlbGVjdGVkSW5kZXhdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRhYkFuaW1hdGlvbkR1cmF0aW9uKCk6IHN0cmluZyB7XG4gICAgLy8gY29uc3QgcyA9IHRoaXMuX3N0YXJ0ZWQkLnZhbHVlID8gdGhpcy5hbmltYXRpb25EdXJhdGlvbiA6IFwiMFwiO1xuICAgIC8vIHJldHVybiBzXG4gICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uRHVyYXRpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb25Jbk1pbGxpcygpOiBudW1iZXIge1xuICAgIGNvbnN0IG1hdGNoID0gdGhpcy5hbmltYXRpb25EdXJhdGlvbi5tYXRjaCgvKFxcZCspKC4qKS8pO1xuICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IHBhcnNlRmxvYXQobWF0Y2hbMV0pO1xuICAgIHN3aXRjaCAobWF0Y2hbMl0udHJpbSgpKSB7XG4gICAgICBjYXNlIFwibXNcIjpcbiAgICAgICAgcmV0dXJuIG51bWVyaWNWYWx1ZTtcbiAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgIHJldHVybiAxMDAwICogbnVtZXJpY1ZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYHVuc3VwcG9ydGVkIGR1cmF0aW9uIHN0cmluZzogJHt0aGlzLnRhYnMuYW5pbWF0aW9uRHVyYXRpb259YCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBnZXRTZWxlY3RlZFRhYkluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleDtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHByaXZhdGUgdHJpZ2dlclRhYlN5bmNocm9uaXNhdGlvbigpIHtcbiAgICBpZiAodGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0KTtcbiAgICB9XG4gICAgdGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNTZWxlY3RlZFRhYlRpbWVvdXQgPSBudWxsO1xuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICB0aGlzLnN5bmNocm9uaXNlU2VsZWN0ZWRUYWJJbmRleCgpO1xuICAgICAgfVxuICAgIH0sIDc1KTtcbiAgfVxuXG4gIG9uQW5pbWF0aW9uRG9uZSgpIHtcbiAgICB0aGlzLl9zdGFydGVkJC52YWx1ZSA9IHRydWVcbiAgICB0aGlzLmZpbmFsaXNlQWN0aXZpdHlTdGF0ZXMoKVxuICB9XG59XG4iLCI8bWF0LXRhYi1ncm91cCAjdGFicyBuby10YWItaGVhZGVyXG4gICAgICAgICAgICAgICBbZHluYW1pY0hlaWdodF09XCJkeW5hbWljSGVpZ2h0XCJcbiAgICAgICAgICAgICAgIFtjbGFzcy5mdWxsLWhlaWdodC10YWJzXT1cIiFkeW5hbWljSGVpZ2h0XCJcbiAgICAgICAgICAgICAgIFthbmltYXRpb25EdXJhdGlvbl09XCJnZXRUYWJBbmltYXRpb25EdXJhdGlvbigpXCJcbiAgICAgICAgICAgICAgIChhbmltYXRpb25Eb25lKT1cIm9uQW5pbWF0aW9uRG9uZSgpXCJcbj5cbiAgPG1hdC10YWIgKm5nRm9yPVwibGV0IGFjdGl2aXR5UmVmIG9mIGFjdGl2aXR5UmVmczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogYWN0aXZpdHlJbmRleFwiPlxuICAgIDxhdXAtYnVzeS1vdmVybGF5IFtidXN5JF09XCJidXN5XCIgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlPlxuICAgICAgPCEtLVxuICAgICAgV2UgaGF2ZSBpc3N1ZXMgd2hlcmUgYW5ndWxhciBpcyB0cmlnZ2VyaW5nIGEgbGVhdmUgYW5pbWF0aW9uIHdoZW4gYW5cbiAgICAgIG5ldyBhY3Rpdml0eSBpcyBzdGFydGVkLCBidXQgaXMgbm90IHJ1bm5pbmcgdGhlIGVudGVyIGFuaW1hdGlvblxuICAgICAgd2hlbiBpdCBpcyBzY3JvbGxlZCBiYWNrIGludG8gdmlldy4gIFNvIHdlIHRyYWNrIHRoZSB0YWIgY2hhbmdlcyBhbmRcbiAgICAgIGRpc2FibGUgYWxsIGFuaW1hdGlvbnMgaW5zaWRlIHRoZSB0YWIgd2hpbGUgd2UncmUgYW5pbWF0aW5nLlxuICAgICAgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktb3V0bGV0LXdyYXBwZXJcIiBbQC5kaXNhYmxlZF09XCIhYWN0aXZpdHlSZWYuZm9jdXNlZFwiPlxuICAgICAgICA8YXVwLWFjdGl2aXR5LW91dGxldCBbbmVzdGVkSW50ZXJhY3Rpb25Db250ZXh0XT1cInRoaXNcIiBbYWN0aXZpdHlSZWZdPVwiYWN0aXZpdHlSZWZcIj48L2F1cC1hY3Rpdml0eS1vdXRsZXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2F1cC1idXN5LW92ZXJsYXk+XG4gIDwvbWF0LXRhYj5cbjwvbWF0LXRhYi1ncm91cD5cbiJdfQ==
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBZSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxNQUFNLEVBR04sb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRWxELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQXFCLE1BQU0sMkJBQTJCLENBQUM7QUFFbEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7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YUFDcEM7UUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtRQUMzQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtJQUMvQixDQUFDO3VHQXZSVSwwQkFBMEI7MkZBQTFCLDBCQUEwQixxSUFKM0I7WUFDUixFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUM7U0FDckUsMkpBVWEsdUJBQXVCLHVFQ3ZDdkMseWdDQW9CQTs7MkZEV2EsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNFLHdCQUF3QixhQUd4Qjt3QkFDUixFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLDRCQUE0QixFQUFDO3FCQUNyRTtrR0FLRCxhQUFhO3NCQURaLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSWpDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBTXJDLGlCQUFpQjtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge01hdFRhYkdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFic1wiO1xuaW1wb3J0IHtcbiAgYXNzZXJ0LFxuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRGlzcG9zYWJsZSxcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBNdXRhYmxlVmFsdWVNb2RlbCwgVHJhY2Vcbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge2xhbmd9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5cbmltcG9ydCB7ZmluZExhc3R9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7UGxhY2VSb3V0ZXJ9IGZyb20gXCIuLi8uLi8uLi9wbGFjZS9wbGFjZS1yb3V0ZXJcIjtcbmltcG9ydCB7QWJzdHJhY3RJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuLi8uLi9hYnN0cmFjdC1pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiLi4vLi4vYWN0aXZpdHlcIjtcbmltcG9ydCB7QWN0aXZpdHlSZWZ9IGZyb20gXCIuLi8uLi9hY3Rpdml0eS1yZWZcIjtcbmltcG9ydCB7SU5URVJBQ1RJT05fQ09OVEVYVCwgSW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9pbnRlcmFjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge0FjdGl2aXR5T3V0bGV0Q29tcG9uZW50fSBmcm9tIFwiLi9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXVwLWFjdGl2aXR5LWNvbnRhaW5lclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2FjdGl2aXR5LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudC5zY3NzXCJdLFxuICBwcm92aWRlcnM6W1xuICAgIHtwcm92aWRlOiBJTlRFUkFDVElPTl9DT05URVhULCB1c2VDbGFzczogQWN0aXZpdHlDb250YWluZXJDb21wb25lbnR9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50PEQsIFIsIEU+IGV4dGVuZHMgQWJzdHJhY3RJbnRlcmFjdGlvbkNvbnRleHQge1xuXG4gIEBJbnB1dCgpXG4gIGR5bmFtaWNIZWlnaHQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKFwidGFic1wiLCB7c3RhdGljOiB0cnVlfSlcbiAgdGFiczogTWF0VGFiR3JvdXA7XG5cbiAgQFZpZXdDaGlsZHJlbihBY3Rpdml0eU91dGxldENvbXBvbmVudClcbiAgYWN0aXZpdHlPdXRsZXRzOiBRdWVyeUxpc3Q8QWN0aXZpdHlPdXRsZXRDb21wb25lbnQ8YW55LCBhbnksIGFueT4+O1xuXG4gIGFjdGl2aXR5UmVmczogQWN0aXZpdHlSZWY8YW55LCBhbnksIGFueT5bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGFuaW1hdGlvbkR1cmF0aW9uID0gXCI1MDBtc1wiXG5cbiAgcHJpdmF0ZSBfaWRlbnRpZmllcjogc3RyaW5nO1xuICBwcml2YXRlIF9kZWZlcnJlZENsZWFuVXA6IFByb21pc2U8YW55PjtcblxuICBwcml2YXRlIGludGVyYWN0aW9uU2VydmljZUFwaTogSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaTtcblxuICBwcml2YXRlIGdhcmJhZ2UgPSBuZXcgR2FyYmFnZUNvbGxlY3RvcigpO1xuICBwcml2YXRlIHN5bmNTZWxlY3RlZFRhYlRpbWVvdXQ6IGFueTtcbiAgcHJpdmF0ZSBvbkFuaW1hdGlvbkZpbmlzaGVkSm9iOiAoKSA9PiB2b2lkO1xuXG4gIHJlYWRvbmx5IF9zdGFydGVkJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IF9yZWFkeSQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBfYW5pbWF0aW5nJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgYnVzeSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KGZhbHNlKSk7XG5cbiAgcmVhZG9ubHkgc3luY1RhYnNKb2I6ICgpID0+IHZvaWQgPSB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgc3RhYmxlJDogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgcHJpdmF0ZSB3YXNBY3RpdmUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbiwgdmFsdWVPZiwgd2hlbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgd2hlbih0aGlzLnJlYWR5JCkuYmVjb21lc1RydXRoeSgoKSA9PiB0aGlzLmZpbmFsaXNlQWN0aXZpdHlTdGF0ZXMoKSlcbiAgICB0aGlzLnN0YWJsZSQgPSB2YWx1ZU9mLmFsbChcbiAgICAgIHRoaXMucmVhZHkkLFxuICAgICAgdGhpcy5fc3RhcnRlZCQsXG4gICAgICBjaGFpbih0aGlzLmFuaW1hdGluZyQpLmlzRmFsc2V5KClcbiAgICApLmFyZVRydXRoeSgpO1xuICB9XG5cbiAgZ2V0IHN0YXJ0ZWQkKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGFydGVkJC5yZWFkb25seSQ7XG4gIH1cblxuICBnZXQgcmVhZHkkKCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFkeSQucmVhZG9ubHkkO1xuICB9XG5cbiAgZ2V0IGFuaW1hdGluZyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FuaW1hdGluZyQucmVhZG9ubHkkO1xuICB9XG5cbiAgaW5pdGlhbGlzZShpZGVudGlmaWVyOiBzdHJpbmcsIGFwaTogSW50ZXJhY3Rpb25TZXJ2aWNlLkFwaSkge1xuICAgIGFzc2VydC5pc0ZhbHNleSh0aGlzLmlzSW5pdGlhbGlzZWQoKSk7XG4gICAgYXNzZXJ0Lm5vdE5pbChpZGVudGlmaWVyKTtcbiAgICBhc3NlcnQubm90TmlsKGFwaSk7XG4gICAgdGhpcy5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7XG4gICAgdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBcGkgPSBhcGk7XG4gIH1cblxuICBub3RpZnlSZWFkeShyZWFkeTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWR5JC52YWx1ZSA9IHJlYWR5O1xuICB9XG5cbiAgZ2V0IGlkZW50aWZpZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lkZW50aWZpZXI7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMuaWRlbnRpZmllcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYW4gYWN0aXZpdHkgaXMgY3VycmVudGx5IHJ1bm5pbmcuXG4gICAqL1xuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0FjdGl2ZSA9IHRoaXMuZ2V0QWN0aXZlQWN0aXZpdHlDb3VudCgpID4gMDtcbiAgICAvLyBpZiAodGhpcy53YXNBY3RpdmUgIT09IGlzQWN0aXZlKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZyh7d2FzOiB0aGlzLndhc0FjdGl2ZSwgaXM6IGlzQWN0aXZlfSk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMud2FzQWN0aXZlID0gaXNBY3RpdmVcbiAgICByZXR1cm4gaXNBY3RpdmU7XG4gIH1cblxuICByZWdpc3RlckRpc3Bvc2FibGU8VCBleHRlbmRzIERpc3Bvc2FibGU+KGRpc3Bvc2FibGU6IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5nYXJiYWdlLnJlZ2lzdGVyRGlzcG9zYWJsZShkaXNwb3NhYmxlKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgLy8gVE9ETzogdGhpbmsgYWJvdXQgYXV0byBjYW5jZWxsaW5nIGFueSBvdXRzdGFuZGluZyBhY3Rpdml0eSBvbiBkaXNwb3NlLlxuICAgIC8vICAgICAgIFNlZSBOYXZpZ2F0aW9uU3RhdGUuTmF2aWdhdGluZyBmb3IgYSB1c2UtY2FzZS5cbiAgICBhc3NlcnQuaXNGYWxzZXkodGhpcy5pc0FjdGl2ZSgpKTtcbiAgICB0aGlzLmdhcmJhZ2UuZGlzcG9zZSgpO1xuICB9XG5cbiAgZ2V0QWN0aXZlQWN0aXZpdHlSZWYoKTogQWN0aXZpdHlSZWY8YW55LCBhbnksIGFueT4ge1xuICAgIGlmICghdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShcIm5vIGFjdGl2aXR5IGluIHByb2dyZXNzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gZmluZExhc3QodGhpcy5hY3Rpdml0eVJlZnMsIHRhYiA9PiAhdGFiLmlzQ29tcGxldGUoKSk7XG4gIH1cblxuICBnZXQgZGlzYWJsZUNsb3NlKCkge1xuICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZUFjdGl2aXR5UmVmKCkuYWN0aXZpdHkuZGlzYWJsZUNsb3NlXG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VscyB0aGUgY3VycmVudCBhY3Rpdml0eSBhbmQgcmV0dXJucyB0cnVlIHRoZSBjb250ZXh0IGlzIG5vIGxvbmdlciBhY3RpdmUsIGZhbHNlIGlmXG4gICAqIHRoZXJlIGlzIHN0aWxsIGFub3RoZXIgYWN0aXZpdHkgcnVubmluZy5cbiAgICovXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGFjdGl2aXR5ID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eVJlZigpO1xuICAgIGFjdGl2aXR5LmNhbmNlbCgpO1xuICAgIGlmICh0aGlzLmlzQ2xlYW5pbmdVcCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy53YWl0Rm9ySW50ZXJhY3Rpb25Db250ZXh0Q2xlYW51cFRvRmluaXNoKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc0FjdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IHRoaXMgaGFuZGxpbmcgb2YgbXVsdGlwbGUgbmVzdGVkIGFjdGl2aXRpZXMgaXMgb25seSB1c2VkIGJ5IHRoZSBhY3Rpdml0eSBjb21wb25lbnQgYW5kIGlzIG5vdCBhIGdlbmVyYWwgY2FzZS5cbiAgLy8gQFRyYWNlKClcbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZUFuZExhdW5jaEFjdGl2aXR5PEQxLCBSMSwgRTE+KGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxEMSwgUjEsIEUxPj4sIGRhdGE6IEQxLCBkaXNhYmxlQ2xvc2U6IGJvb2xlYW4pOiBQcm9taXNlPFIxPiB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuaXNJbml0aWFsaXNlZCgpKTsgLy8gbWFrZSBzdXJlIHdlJ3ZlIGJlZW4gaW5pdGlhbGlzZWRcbiAgICBjb25zdCBhY3Rpdml0eVJlZiA9IG5ldyBBY3Rpdml0eVJlZjxEMSwgUjEsIEUxPihhY3Rpdml0eVR5cGUsIGRhdGEsICgpID0+IHtcbiAgICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eUNvdW50KCkgPiAwO1xuICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlclRhYlN5bmNocm9uaXNhdGlvbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maW5pc2hBbmRTdGFydENsZWFudXAoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmxhdW5jaEFjdGl2aXR5KGFjdGl2aXR5UmVmKTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgYWN0aXZpdHlSZWYuYWN0aXZpdHlSZXN1bHQ7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiY2xvc2luZyBhY3Rpdml0eVwiLCBhY3Rpdml0eVR5cGUubmFtZSwgdGhpcy5hY3Rpdml0eVJlZnMpXG4gICAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICAvLyB3YWl0IHVudGlsIHRoZSBhY3Rpdml0eSByb3V0ZSBzeW5jaW5nIGhhcyBmaW5pc2hlZFxuICAgICAgICBhd2FpdCB0aGlzLnBsYWNlUm91dGVyLndhaXRBY3Rpdml0aWVzU3luY2hyb25pc2VkKCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWN0aXZpdHkgc3luY2luZyBmaW5pc2hlZFwiKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aXZlQWN0aXZpdHlDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIocmVmID0+ICFyZWYuaXNDb21wbGV0ZSgpKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJhY3Rpb24gY29udGV4dCBoYXMgZmluaXNoZWQgYW4gaXMgaW4gdGhlIHByb2Nlc3Mgb2Ygd2FpdGluZ1xuICAgKiBmb3IgYWxsIHRoZSBpbmZyYXN0cnVjdHVyZSAoaW5jbHVkaW5nIHJvdXRlIHVwZGF0ZXMpIHRvIGJlIGNvbXBsZXRlZC5cbiAgICovXG4gIGlzQ2xlYW5pbmdVcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9kZWZlcnJlZENsZWFuVXA7XG4gIH1cblxuICBhc3luYyB3YWl0Rm9ySW50ZXJhY3Rpb25Db250ZXh0Q2xlYW51cFRvRmluaXNoKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA/XG4gICAgICB0aGlzLl9kZWZlcnJlZENsZWFuVXAgOlxuICAgICAgdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoQW5kU3RhcnRDbGVhbnVwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZGVmZXJyZWRDbGVhblVwKSB7XG4gICAgICAvLyBJbXBvcnRhbnQ6XG4gICAgICAvLyBDbGVhciBvdXIgdGFicyBzbyB0aGUgbmV4dCBhY3Rpdml0eSB0cmlnZ2VycyBhIHRhYiBjaGFuZ2UuXG4gICAgICAvLyBXaXRob3V0IHRoaXMgb3VyIGFuaW1hdGlvbiBkb25lIHdhc24ndCBjYWxsZWQgd2hlbiBhIHNpbmdsZVxuICAgICAgLy8gbmV3IGFjdGl2aXR5IGZvbGxvd2VkIGEgc2luZ2xlIHRhYiBhY3Rpdml0eSAoc2luY2Ugd2UncmUgdHJhY2tpbmdcbiAgICAgIC8vIGJ5IGFjdGl2aXR5IGluZGV4KVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gW107IC8vIHdlIGhhdmUgdG8gZG8gaXQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiB0aW1lb3V0IG9yIHRoZSBhY3Rpdml0eSBkaXNhcHBlYXJzIGJlZm9yZSB0aGUgYW5pbWF0aW4gZmluc2loZXNcbiAgICAgIH0sIHRoaXMuZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb25Jbk1pbGxpcygpKTtcbiAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmludGVyYWN0aW9uU2VydmljZUFwaS5ub3RpZnlGaW5pc2hlZCh0aGlzKTtcbiAgICAgIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA9IHByb21pc2VcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2RlZmVycmVkQ2xlYW5VcCA9IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4vLyBAVHJhY2UoKVxuICBsYXVuY2hBY3Rpdml0eTxEMSwgUjEsIEUxPihhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8RDEsIFIxLCBFMT4pIHtcbiAgICAvLyBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhY3Rpdml0eSBsZXQgdGhlIGludGVyYWN0aW9uIHNlcnZpY2Uga25vdy5cbiAgICBjb25zdCBjbGVhbmVkVGFicyA9IHRoaXMuYWN0aXZpdHlSZWZzLmZpbHRlcih0YWIgPT4gIXRhYi5pc0NvbXBsZXRlKCkpO1xuICAgIHRoaXMuYWN0aXZpdHlSZWZzID0gY2xlYW5lZFRhYnMuY29uY2F0KGFjdGl2aXR5UmVmKTtcbiAgICBjb25zdCBmaXJzdFRpbWUgPSB0aGlzLmFjdGl2aXR5UmVmcy5sZW5ndGggPT09IDE7XG4gICAgaWYgKGZpcnN0VGltZSkge1xuICAgICAgdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBcGkubm90aWZ5QWN0aXZlKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLnN5bmNocm9uaXNlU2VsZWN0ZWRUYWJJbmRleCgpO1xuICB9XG5cbiAgYWN0aXZpdHlJbmRleChpbmRleDogbnVtYmVyLCBhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8YW55LCBhbnksIGFueT4pIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH07XG5cbiAgLyoqXG4gICAqIFN5bmNocm9uaXNlcyB0aGUgc2VsZWN0ZWQgdGFiIGluZGV4LlxuICAgKi9cbiAgcHJpdmF0ZSBzeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTogdm9pZCB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuaXNBY3RpdmUoKSk7XG4gICAgY29uc3QgcHJldmlvdXNJbmRleCA9IHRoaXMudGFicy5zZWxlY3RlZEluZGV4O1xuICAgIGNvbnN0IG5ld0luZGV4ID0gdGhpcy5nZXRBY3RpdmVBY3Rpdml0eUNvdW50KCkgLSAxO1xuICAgIGNvbnN0IGFuaW1hdGUgPSB0aGlzLmFjdGl2aXR5UmVmcy5sZW5ndGggPiAxO1xuICAgIGlmIChwcmV2aW91c0luZGV4ICE9PSBuZXdJbmRleCkge1xuICAgICAgdGhpcy5fYW5pbWF0aW5nJC52YWx1ZSA9IGFuaW1hdGU7XG4gICAgICBjb25zdCBhY3Rpdml0eVJlZiA9IHRoaXMuYWN0aXZpdHlSZWZzW25ld0luZGV4XTtcbiAgICAgIGFjdGl2aXR5UmVmLnNldEZvY3VzZWQoZmFsc2UpO1xuICAgICAgdGhpcy5idXN5LnNldERlbGVnYXRlKGFjdGl2aXR5UmVmLmFjdGl2aXR5QnVzeSk7XG4gICAgICB0aGlzLnRhYnMuc2VsZWN0ZWRJbmRleCA9IG5ld0luZGV4O1xuICAgICAgLy8gaWYgKHRoaXMucmVhZHkkLnZhbHVlKSB7XG4gICAgICAvLyAgIC8vIE5vdGU6IFdlJ3JlIG5vdCB1c2luZyB0aGUgYW5pbWF0aW9uIGRvbmUgZXZlbnQgYXMgaXQncyBmaXJpbmcgYWxtb3N0IGltbWVhZGlhdGVseS5cbiAgICAgIC8vICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpbmFsaXNlQWN0aXZpdHlTdGF0ZXMoKSwgYW5pbWF0ZSA/IHRoaXMuZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb25Jbk1pbGxpcygpIDogMCk7XG4gICAgICAvLyB9XG4gICAgfVxuICB9XG5cbiAgZmluYWxpc2VBY3Rpdml0eVN0YXRlcygpIHtcbiAgICB0aGlzLl9hbmltYXRpbmckLnZhbHVlID0gZmFsc2U7XG4gICAgdGhpcy5hY3Rpdml0eVJlZnMgPSB0aGlzLmFjdGl2aXR5UmVmcy5maWx0ZXIodGFiID0+ICF0YWIuaXNDb21wbGV0ZSgpKTtcbiAgICB0aGlzLmFjdGl2aXR5UmVmcy5mb3JFYWNoKChyZWYsIGluZGV4KSA9PiB7XG4gICAgICByZWYuc2V0Rm9jdXNlZChpbmRleCA9PT0gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWxlY3RlZE91dGxldCgpIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eU91dGxldHMudG9BcnJheSgpW3RoaXMudGFicy5zZWxlY3RlZEluZGV4XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUYWJBbmltYXRpb25EdXJhdGlvbigpOiBzdHJpbmcge1xuICAgIC8vIGNvbnN0IHMgPSB0aGlzLl9zdGFydGVkJC52YWx1ZSA/IHRoaXMuYW5pbWF0aW9uRHVyYXRpb24gOiBcIjBcIjtcbiAgICAvLyByZXR1cm4gc1xuICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbkR1cmF0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRhYkFuaW1hdGlvbkR1cmF0aW9uSW5NaWxsaXMoKTogbnVtYmVyIHtcbiAgICBjb25zdCBtYXRjaCA9IHRoaXMuYW5pbWF0aW9uRHVyYXRpb24ubWF0Y2goLyhcXGQrKSguKikvKTtcbiAgICBjb25zdCBudW1lcmljVmFsdWUgPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTtcbiAgICBzd2l0Y2ggKG1hdGNoWzJdLnRyaW0oKSkge1xuICAgICAgY2FzZSBcIm1zXCI6XG4gICAgICAgIHJldHVybiBudW1lcmljVmFsdWU7XG4gICAgICBjYXNlIFwic1wiOlxuICAgICAgICByZXR1cm4gMTAwMCAqIG51bWVyaWNWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGxhbmcuaWxsZWdhbFN0YXRlKGB1bnN1cHBvcnRlZCBkdXJhdGlvbiBzdHJpbmc6ICR7dGhpcy50YWJzLmFuaW1hdGlvbkR1cmF0aW9ufWApO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0U2VsZWN0ZWRUYWJJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnNlbGVjdGVkSW5kZXg7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcml2YXRlIHRyaWdnZXJUYWJTeW5jaHJvbmlzYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NlbGVjdGVkVGFiVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zeW5jU2VsZWN0ZWRUYWJUaW1lb3V0ID0gbnVsbDtcbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgdGhpcy5zeW5jaHJvbmlzZVNlbGVjdGVkVGFiSW5kZXgoKTtcbiAgICAgIH1cbiAgICB9LCA3NSk7XG4gIH1cblxuICBvbkFuaW1hdGlvbkRvbmUoKSB7XG4gICAgdGhpcy5fc3RhcnRlZCQudmFsdWUgPSB0cnVlXG4gICAgdGhpcy5maW5hbGlzZUFjdGl2aXR5U3RhdGVzKClcbiAgfVxufVxuIiwiPG1hdC10YWItZ3JvdXAgI3RhYnMgbm8tdGFiLWhlYWRlclxuICAgICAgICAgICAgICAgW2R5bmFtaWNIZWlnaHRdPVwiZHluYW1pY0hlaWdodFwiXG4gICAgICAgICAgICAgICBbY2xhc3MuZnVsbC1oZWlnaHQtdGFic109XCIhZHluYW1pY0hlaWdodFwiXG4gICAgICAgICAgICAgICBbYW5pbWF0aW9uRHVyYXRpb25dPVwiZ2V0VGFiQW5pbWF0aW9uRHVyYXRpb24oKVwiXG4gICAgICAgICAgICAgICAoYW5pbWF0aW9uRG9uZSk9XCJvbkFuaW1hdGlvbkRvbmUoKVwiXG4+XG4gIDxtYXQtdGFiICpuZ0Zvcj1cImxldCBhY3Rpdml0eVJlZiBvZiBhY3Rpdml0eVJlZnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IGFjdGl2aXR5SW5kZXhcIj5cbiAgICA8YXVwLWJ1c3ktb3ZlcmxheSBbYnVzeSRdPVwiYnVzeVwiIGNka1RyYXBGb2N1cyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZT5cbiAgICAgIDwhLS1cbiAgICAgIFdlIGhhdmUgaXNzdWVzIHdoZXJlIGFuZ3VsYXIgaXMgdHJpZ2dlcmluZyBhIGxlYXZlIGFuaW1hdGlvbiB3aGVuIGFuXG4gICAgICBuZXcgYWN0aXZpdHkgaXMgc3RhcnRlZCwgYnV0IGlzIG5vdCBydW5uaW5nIHRoZSBlbnRlciBhbmltYXRpb25cbiAgICAgIHdoZW4gaXQgaXMgc2Nyb2xsZWQgYmFjayBpbnRvIHZpZXcuICBTbyB3ZSB0cmFjayB0aGUgdGFiIGNoYW5nZXMgYW5kXG4gICAgICBkaXNhYmxlIGFsbCBhbmltYXRpb25zIGluc2lkZSB0aGUgdGFiIHdoaWxlIHdlJ3JlIGFuaW1hdGluZy5cbiAgICAgIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LW91dGxldC13cmFwcGVyXCIgW0AuZGlzYWJsZWRdPVwiIWFjdGl2aXR5UmVmLmZvY3VzZWRcIj5cbiAgICAgICAgPGF1cC1hY3Rpdml0eS1vdXRsZXQgW25lc3RlZEludGVyYWN0aW9uQ29udGV4dF09XCJ0aGlzXCIgW2FjdGl2aXR5UmVmXT1cImFjdGl2aXR5UmVmXCI+PC9hdXAtYWN0aXZpdHktb3V0bGV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9hdXAtYnVzeS1vdmVybGF5PlxuICA8L21hdC10YWI+XG48L21hdC10YWItZ3JvdXA+XG4iXX0=