@coolon/angular-ui-powerups 16.1.0-aplpha.146 → 16.1.0-aplpha.148
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.
- package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +14 -17
- package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +4 -4
- package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +4 -4
- package/esm2022/lib/interaction/services/interaction.service.mjs +18 -6
- package/esm2022/lib/place/navigation/session/navigation-session.mjs +2 -2
- package/fesm2022/coolon-angular-ui-powerups.mjs +33 -23
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +3 -3
- package/lib/interaction/services/interaction-service-routing-adapter.d.ts +2 -2
- package/lib/interaction/services/interaction.service.d.ts +2 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component, HostBinding, Input,
|
|
2
|
+
import { Component, HostBinding, Input, 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';
|
|
@@ -7,9 +7,8 @@ import { CommandComponent } from "../../../components/commands/command/command.c
|
|
|
7
7
|
import { DisposableComponent } from '../../../components/disposable-component';
|
|
8
8
|
import { ActivityContext } from "../../activity-context";
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "
|
|
11
|
-
import * as i2 from "
|
|
12
|
-
import * as i3 from "../../../components/commands/command/command.component";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
import * as i2 from "../../../components/commands/command/command.component";
|
|
13
12
|
/**
|
|
14
13
|
* @example
|
|
15
14
|
* <aup-activity-actions [confirmFace]="saveFace" [cancelFace]="cancelFace">
|
|
@@ -32,7 +31,6 @@ import * as i3 from "../../../components/commands/command/command.component";
|
|
|
32
31
|
* </aup-activity-actions>
|
|
33
32
|
*/
|
|
34
33
|
export class ActivityActionsComponent extends DisposableComponent {
|
|
35
|
-
activityContext;
|
|
36
34
|
confirmCommandComponent;
|
|
37
35
|
cancelCommandComponent;
|
|
38
36
|
#confirmCommand_accessor_storage = proxify((Command));
|
|
@@ -62,13 +60,14 @@ export class ActivityActionsComponent extends DisposableComponent {
|
|
|
62
60
|
layout = ActivityActionsComponent.Layout.BLOCK;
|
|
63
61
|
align = ActivityActionsComponent.Align.STRETCH;
|
|
64
62
|
alignContent = ActivityActionsComponent.AlignContent.CENTER;
|
|
65
|
-
|
|
63
|
+
activityContext = this.inject(ActivityContext, {
|
|
64
|
+
optional: true
|
|
65
|
+
});
|
|
66
|
+
constructor() {
|
|
66
67
|
super();
|
|
67
|
-
this.activityContext
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
this.confirmCommand = activityContext.confirmCommand;
|
|
71
|
-
this.cancelCommand = activityContext.cancelCommand;
|
|
68
|
+
if (this.activityContext) {
|
|
69
|
+
this.confirmCommand = this.activityContext.confirmCommand;
|
|
70
|
+
this.cancelCommand = this.activityContext.cancelCommand;
|
|
72
71
|
}
|
|
73
72
|
}
|
|
74
73
|
hasConfirmFace() {
|
|
@@ -83,8 +82,8 @@ export class ActivityActionsComponent extends DisposableComponent {
|
|
|
83
82
|
focusCancel() {
|
|
84
83
|
this.cancelCommandComponent.requestFocus();
|
|
85
84
|
}
|
|
86
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [
|
|
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:
|
|
85
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
+
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"] }] });
|
|
88
87
|
}
|
|
89
88
|
__decorate([
|
|
90
89
|
Proxify(),
|
|
@@ -97,9 +96,7 @@ __decorate([
|
|
|
97
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, decorators: [{
|
|
98
97
|
type: Component,
|
|
99
98
|
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"] }]
|
|
100
|
-
}], ctorParameters: function () { return [
|
|
101
|
-
type: Optional
|
|
102
|
-
}] }]; }, propDecorators: { confirmCommandComponent: [{
|
|
99
|
+
}], ctorParameters: function () { return []; }, propDecorators: { confirmCommandComponent: [{
|
|
103
100
|
type: ViewChild,
|
|
104
101
|
args: ["confirmCommandComponent"]
|
|
105
102
|
}], cancelCommandComponent: [{
|
|
@@ -149,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
149
146
|
END: 'end'
|
|
150
147
|
});
|
|
151
148
|
})(ActivityActionsComponent || (ActivityActionsComponent = {}));
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUV2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFNSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQW1CO0lBR3JELHVCQUF1QixDQUFrQjtJQUd6QyxzQkFBc0IsQ0FBa0I7SUFNekMsbUNBQWlCLE9BQU8sQ0FBQyxDQUFBLE9BQVksQ0FBQSxDQUFDLENBQUM7SUFKaEQ7O09BRUc7SUFFTSxJQUFBLGNBQWMsb0RB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LFFBQVE7UUFDaEIsR0FBRyxFQUFFLEtBQUs7S0FDWCxDQUFDLENBQUM7QUFRTCxDQUFDLEVBM0JnQix3QkFBd0IsS0FBeEIsd0JBQXdCLFFBMkJ4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Q29tbWFuZCwgcHJveGlmeSwgUHJveGlmeX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtFbnVtfSBmcm9tICd0eXBlc2NyaXB0LXN0cmluZy1lbnVtcyc7XG5cbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC1mYWNlJztcbmltcG9ydCB7Q29tbWFuZENvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvY29tbWFuZHMvY29tbWFuZC9jb21tYW5kLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7QWN0aXZpdHlDb250ZXh0fSBmcm9tIFwiLi4vLi4vYWN0aXZpdHktY29udGV4dFwiO1xuXG4vKipcbiAqIEBleGFtcGxlXG4gKiA8YXVwLWFjdGl2aXR5LWFjdGlvbnMgW2NvbmZpcm1GYWNlXT1cInNhdmVGYWNlXCIgW2NhbmNlbEZhY2VdPVwiY2FuY2VsRmFjZVwiPlxuICogPC9hdXAtYWN0aXZpdHktYWN0aW9ucz5cbiAqXG4gKiAgPGF1cC1hY3Rpdml0eS1hY3Rpb25zIFtmYWNlc109XCJ7Y29uZmlybTogc2F2ZUZhY2UsIGNhbmNlbDogY2FuY2VsRmFjZX1cIj5cbiAqICA8L2F1cC1hY3Rpdml0eS1hY3Rpb25zPlxuICpcbiAqIC8vIFJ1bm5pbmcgYG5nIGcgQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzOmF1cC1pMThuYCB3aWxsIGluc3RhbGwgZGVmYXVsdFxuICogLy8gc3R5bGUgZGVmaW5pdGlvbnNcbiAqIDxhdXAtYWN0aXZpdHktYWN0aW9ucyBbZmFjZXNdPVwiSTE4bi5hdXAuY29tcG9uZW50cy5hY3Rpdml0eUFjdGlvbnMuc3R5bGVzLm9rQ2FuY2VsSWNvbnNcIj5cbiAqIDwvYXVwLWFjdGl2aXR5LWFjdGlvbnM+XG4gKlxuICogLy8geW91IGNhbiBhbHNvIGFkZCBhZGRpdGlvbmFsIGNvbnRlbnQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBhbG9uZyB3aXRoIHRoZSBidXR0b25zLlxuICogLy8gVGhlIGxvY2F0aW9uIG9mIHRoZSBjb250ZW50IGRlcGVuZHMgb24gdGhlIGFsaWdubWVudCBhdHRyaWJ1dGUuXG4gKiA8YXVwLWFjdGl2aXR5LWFjdGlvbnNcbiAqICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICogICAgIFtmYWNlc109XCJJMThuLmF1cC5jb21wb25lbnRzLmFjdGl2aXR5QWN0aW9ucy5zdHlsZXMub2tDYW5jZWxJY29uc1wiPlxuICogICAgIDxzcGFuPlRoaXMgY29udGVudCB3aWxsIGJlIGJldHdlZW4gdGhlIHR3byBjb21tYW5kczwvc3Bhbj5cbiAqIDwvYXVwLWFjdGl2aXR5LWFjdGlvbnM+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1hY3Rpdml0eS1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpdml0eS1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZChcImNvbmZpcm1Db21tYW5kQ29tcG9uZW50XCIpXG4gIHByb3RlY3RlZCBjb25maXJtQ29tbWFuZENvbXBvbmVudDogQ29tbWFuZENvbXBvbmVudFxuXG4gIEBWaWV3Q2hpbGQoXCJjYW5jZWxDb21tYW5kQ29tcG9uZW50XCIpXG4gIHByb3RlY3RlZCBjYW5jZWxDb21tYW5kQ29tcG9uZW50OiBDb21tYW5kQ29tcG9uZW50XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIGFjdGl2aXR5IGFjdGlvbnMgbm93IHVzZSB0aGUgY29uZmlybSBjb21tYW5kIG9mIHRoZSBhY3Rpdml0eSBhdXRvbWF0aWNhbGx5XG4gICAqL1xuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNvbmZpcm1Db21tYW5kID0gcHJveGlmeShDb21tYW5kPGFueT4pO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBhY3Rpdml0eSBhY3Rpb25zIG5vdyB1c2UgdGhlIGNhbmNlbCBjb21tYW5kIG9mIHRoZSBhY3Rpdml0eSBhdXRvbWF0aWNhbGx5XG4gICAqL1xuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNhbmNlbENvbW1hbmQgPSBwcm94aWZ5KENvbW1hbmQ8YW55Pik7XG5cbiAgQElucHV0KClcbiAgc2V0IGZhY2VzKGZhY2VzOiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuU3R5bGUpIHtcbiAgICB0aGlzLmNvbmZpcm1GYWNlID0gZmFjZXMuY29uZmlybTtcbiAgICB0aGlzLmNhbmNlbEZhY2UgPSBmYWNlcy5jYW5jZWw7XG4gIH1cblxuICBASW5wdXQoKVxuICBjb25maXJtRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgQElucHV0KClcbiAgY2FuY2VsRmFjZTogQ29tbWFuZEZhY2U7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSAjZmFjZXMgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzdHlsZShzdHlsZTogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LlN0eWxlKSB7XG4gICAgdGhpcy5mYWNlcyA9IHN0eWxlO1xuICB9XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmxheW91dCcpXG4gIGxheW91dDogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LkxheW91dCA9IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5MYXlvdXQuQkxPQ0s7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFsaWduJylcbiAgYWxpZ246IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5BbGlnbiA9IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5BbGlnbi5TVFJFVENIO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5hbGlnbi1jb250ZW50JylcbiAgYWxpZ25Db250ZW50OiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuQWxpZ25Db250ZW50ID0gQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LkFsaWduQ29udGVudC5DRU5URVI7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFjdGl2aXR5Q29udGV4dCA9IHRoaXMuaW5qZWN0KEFjdGl2aXR5Q29udGV4dCwge1xuICAgIG9wdGlvbmFsOiB0cnVlXG4gIH0pO1xuXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAodGhpcy5hY3Rpdml0eUNvbnRleHQpIHtcbiAgICAgIHRoaXMuY29uZmlybUNvbW1hbmQgPSB0aGlzLmFjdGl2aXR5Q29udGV4dC5jb25maXJtQ29tbWFuZDtcbiAgICAgIHRoaXMuY2FuY2VsQ29tbWFuZCA9IHRoaXMuYWN0aXZpdHlDb250ZXh0LmNhbmNlbENvbW1hbmQ7XG4gICAgfVxuICB9XG5cbiAgaGFzQ29uZmlybUZhY2UoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5jb25maXJtRmFjZTtcbiAgfVxuXG4gIGhhc0NhbmNlbEZhY2UoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5jYW5jZWxGYWNlO1xuICB9XG5cbiAgZm9jdXNDb25maXJtKCkge1xuICAgIHRoaXMuY29uZmlybUNvbW1hbmRDb21wb25lbnQucmVxdWVzdEZvY3VzKCk7XG4gIH1cblxuICBmb2N1c0NhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbENvbW1hbmRDb21wb25lbnQucmVxdWVzdEZvY3VzKCk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQge1xuXG4gIGV4cG9ydCBjb25zdCBMYXlvdXQgPSBFbnVtKHtcbiAgICBJTkxJTkU6ICdpbmxpbmUnLFxuICAgIEJMT0NLOiAnYmxvY2snXG4gIH0pO1xuICBleHBvcnQgdHlwZSBMYXlvdXQgPSBFbnVtPHR5cGVvZiBMYXlvdXQ+O1xuXG4gIGV4cG9ydCBjb25zdCBBbGlnbiA9IEVudW0oe1xuICAgIFNUQVJUOiAnc3RhcnQnLFxuICAgIFNUUkVUQ0g6ICdzdHJldGNoJyxcbiAgICBFTkQ6ICdlbmQnXG4gIH0pO1xuICBleHBvcnQgdHlwZSBBbGlnbiA9IEVudW08dHlwZW9mIEFsaWduPjtcblxuICBleHBvcnQgY29uc3QgQWxpZ25Db250ZW50ID0gRW51bSh7XG4gICAgU1RBUlQ6ICdzdGFydCcsXG4gICAgQ0VOVEVSOiAnY2VudGVyJyxcbiAgICBFTkQ6ICdlbmQnXG4gIH0pO1xuICBleHBvcnQgdHlwZSBBbGlnbkNvbnRlbnQgPSBFbnVtPHR5cGVvZiBBbGlnbkNvbnRlbnQ+O1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgU3R5bGUge1xuICAgIGNvbmZpcm06IENvbW1hbmRGYWNlO1xuICAgIGNhbmNlbDogQ29tbWFuZEZhY2U7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQ2FuY2VsRmFjZSgpXCI+XG4gIDxhdXAtY29tbWFuZCAjY2FuY2VsQ29tbWFuZENvbXBvbmVudCBjbGFzcz1cImNhbmNlbFwiIFtjb21tYW5kXT1cImNhbmNlbENvbW1hbmRcIiBbZmFjZV09XCJjYW5jZWxGYWNlXCIgZGF0YS1jeT1cImNhbmNlbC1jb21tYW5kXCI+PC9hdXAtY29tbWFuZD5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0NvbmZpcm1GYWNlKClcIj5cbiAgPGF1cC1jb21tYW5kICNjb25maXJtQ29tbWFuZENvbXBvbmVudCBjbGFzcz1cImNvbmZpcm1cIiBbY29tbWFuZF09XCJjb25maXJtQ29tbWFuZFwiIFtmYWNlXT1cImNvbmZpcm1GYWNlXCIgZGF0YS1jeT1cImNvbmZpcm0tY29tbWFuZFwiPjwvYXVwLWNvbW1hbmQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -27,7 +27,7 @@ class ActivityContextImpl extends ActivityContext {
|
|
|
27
27
|
return this.activityContainer;
|
|
28
28
|
}
|
|
29
29
|
getInteractionContext() {
|
|
30
|
-
return this.
|
|
30
|
+
return this.activityContainer;
|
|
31
31
|
}
|
|
32
32
|
onActivityReady(callback) {
|
|
33
33
|
if (this.activity) {
|
|
@@ -67,12 +67,12 @@ export class ActivityOutletComponent {
|
|
|
67
67
|
}
|
|
68
68
|
loadActivity(activityRef) {
|
|
69
69
|
this.viewContainerRef.clear();
|
|
70
|
-
const activityContext = new ActivityContextImpl(this.
|
|
70
|
+
const activityContext = new ActivityContextImpl(this.nestedInteractionContext);
|
|
71
71
|
const injector = Injector.create({
|
|
72
72
|
providers: [
|
|
73
73
|
{ provide: ACTIVITY_DATA, useValue: activityRef.activityData },
|
|
74
74
|
{ provide: ActivityContext, useValue: activityContext },
|
|
75
|
-
{ provide: INTERACTION_CONTEXT, useValue: this.
|
|
75
|
+
{ provide: INTERACTION_CONTEXT, useValue: this.nestedInteractionContext },
|
|
76
76
|
{ provide: InteractionContextProvider, useValue: activityContext },
|
|
77
77
|
],
|
|
78
78
|
parent: this.injector
|
|
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
98
98
|
}], activityRef: [{
|
|
99
99
|
type: Input
|
|
100
100
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvYWN0aXZpdHktY29udGFpbmVyL2FjdGl2aXR5LW91dGxldC9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWdCLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRCxPQUFPLEVBQVcsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsbUJBQW1CLEVBQXFCLE1BQU0sOEJBQThCLENBQUM7QUFDckYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7O0FBR2pGLE1BQU0sbUJBQW9CLFNBQVEsZUFBZTtJQVNsQjtJQVByQixjQUFjLEdBQWtELEVBQUUsQ0FBQztJQUVsRSxjQUFjLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFBO0lBQ3hDLGFBQWEsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUE7SUFFeEMsUUFBUSxDQUFxQjtJQUVyQyxZQUE2QixpQkFBcUM7UUFDaEUsS0FBSyxFQUFFLENBQUM7UUFEbUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFvQjtJQUVsRSxDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQTRC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Q0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7SUFDNUMsQ0FBQzt1R0E3Q1UsdUJBQXVCLGtCQXNCZCxtQkFBbUI7MkZBdEI1Qix1QkFBdUIseUpBSHhCLEVBQUU7OzJGQUdELHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckIsRUFBRTs7MEJBeUJDLE1BQU07MkJBQUMsbUJBQW1CO2tHQWpCdkMsd0JBQXdCO3NCQUR2QixLQUFLO2dCQU1GLFdBQVc7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDb21wb25lbnRSZWYsIEluamVjdCwgSW5qZWN0b3IsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGVsZWdhdGluZ0NvbW1hbmR9IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtsYW5nfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7QWN0aXZpdHksIEFDVElWSVRZX0RBVEF9IGZyb20gJy4uLy4uLy4uL2FjdGl2aXR5JztcbmltcG9ydCB7QWN0aXZpdHlDb250ZXh0fSBmcm9tIFwiLi4vLi4vLi4vYWN0aXZpdHktY29udGV4dFwiO1xuaW1wb3J0IHtBY3Rpdml0eVJlZn0gZnJvbSAnLi4vLi4vLi4vYWN0aXZpdHktcmVmJztcbmltcG9ydCB7SU5URVJBQ1RJT05fQ09OVEVYVCwgSW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tICcuLi8uLi8uLi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmltcG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0UHJvdmlkZXJ9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmFjdGlvbi1jb250ZXh0LXByb3ZpZGVyXCI7XG5cblxuY2xhc3MgQWN0aXZpdHlDb250ZXh0SW1wbCBleHRlbmRzIEFjdGl2aXR5Q29udGV4dCB7XG5cbiAgcHJpdmF0ZSByZWFkeUxpc3RlbmVyczogQXJyYXk8KGFjdGl2aXR5OiBBY3Rpdml0eTxhbnksIGFueT4pID0+IHZvaWQ+ID0gW107XG5cbiAgcmVhZG9ubHkgY29uZmlybUNvbW1hbmQgPSBuZXcgRGVsZWdhdGluZ0NvbW1hbmQoKVxuICByZWFkb25seSBjYW5jZWxDb21tYW5kID0gbmV3IERlbGVnYXRpbmdDb21tYW5kKClcblxuICBwcml2YXRlIGFjdGl2aXR5OiBBY3Rpdml0eTxhbnksIGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eUNvbnRhaW5lcjogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGluaXQoYWN0aXZpdHk6IEFjdGl2aXR5PGFueSwgYW55Pikge1xuICAgIHRoaXMuYWN0aXZpdHkgPSBhY3Rpdml0eTtcbiAgICB0aGlzLmNvbmZpcm1Db21tYW5kLnNldERlbGVnYXRlKGFjdGl2aXR5LmNvbmZpcm1Db21tYW5kKTtcbiAgICB0aGlzLmNhbmNlbENvbW1hbmQuc2V0RGVsZWdhdGUoYWN0aXZpdHkuY2FuY2VsQ29tbWFuZCk7XG4gICAgdGhpcy5yZWFkeUxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4gbGlzdGVuZXIodGhpcy5hY3Rpdml0eSkpO1xuICB9XG5cbiAgZ2V0IGludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5Q29udGFpbmVyO1xuICB9XG5cbiAgZ2V0SW50ZXJhY3Rpb25Db250ZXh0KCk6IEludGVyYWN0aW9uQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlDb250YWluZXI7XG4gIH1cblxuICBvbkFjdGl2aXR5UmVhZHkoY2FsbGJhY2s6IChhY3Rpdml0eTogQWN0aXZpdHk8YW55LCBhbnk+KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHkpIHtcbiAgICAgIHRoaXMuYWN0aXZpdHkub25BY3Rpdml0eVJlYWR5KGNhbGxiYWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWFkeUxpc3RlbmVycy5wdXNoKGNhbGxiYWNrKTtcbiAgICB9XG4gIH1cblxufVxuXG4vKipcbiAqIEFjdGl2aXR5T3V0bGV0Q29tcG9uZW50IGNyZWF0ZXMgYW5kIGRpc3BsYXlzIGFuIGFjdGl2aXR5IGFuZCBkZWxlZ2F0ZXMgdGhlIGludGVyYWN0aW9uIGNvbnRleHQgZnVuY3Rpb25hbGl0eSB0byBhblxuICogZXh0ZXJuYWwgc2VydmljZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWFjdGl2aXR5LW91dGxldCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlPdXRsZXRDb21wb25lbnQ8RCwgUiwgRT4ge1xuXG4gIHByaXZhdGUgYWN0aXZpdHlDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxBY3Rpdml0eTxELCBSLCBFPj47XG5cbiAgQElucHV0KClcbiAgbmVzdGVkSW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQ7XG5cbiAgcHJpdmF0ZSBfYWN0aXZpdHlSZWY6IEFjdGl2aXR5UmVmPEQsIFIsIEU+O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBhY3Rpdml0eVJlZihhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8RCwgUiwgRT4pIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eVJlZiAmJiAhdGhpcy5hY3Rpdml0eVJlZi5pc0NvbXBsZXRlKCkpIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKCdjaGFuZ2luZyBhY3Rpdml0eSBiZWZvcmUgcHJldmlvdXMgb25lIGhhcyBjb21wbGV0ZWQnKTtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZpdHlSZWYgPSBhY3Rpdml0eVJlZjtcbiAgICB0aGlzLmxvYWRBY3Rpdml0eShhY3Rpdml0eVJlZik7XG4gIH07XG5cbiAgZ2V0IGFjdGl2aXR5UmVmKCk6IEFjdGl2aXR5UmVmPEQsIFIsIEU+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZpdHlSZWY7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KElOVEVSQUNUSU9OX0NPTlRFWFQpIHByaXZhdGUgaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQsIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIGxvYWRBY3Rpdml0eShhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8RCwgUiwgRT4pIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBjb25zdCBhY3Rpdml0eUNvbnRleHQgPSBuZXcgQWN0aXZpdHlDb250ZXh0SW1wbCh0aGlzLm5lc3RlZEludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBBQ1RJVklUWV9EQVRBLCB1c2VWYWx1ZTogYWN0aXZpdHlSZWYuYWN0aXZpdHlEYXRhfSxcbiAgICAgICAge3Byb3ZpZGU6IEFjdGl2aXR5Q29udGV4dCwgdXNlVmFsdWU6IGFjdGl2aXR5Q29udGV4dH0sXG4gICAgICAgIHtwcm92aWRlOiBJTlRFUkFDVElPTl9DT05URVhULCB1c2VWYWx1ZTogdGhpcy5uZXN0ZWRJbnRlcmFjdGlvbkNvbnRleHR9LFxuICAgICAgICB7cHJvdmlkZTogSW50ZXJhY3Rpb25Db250ZXh0UHJvdmlkZXIsIHVzZVZhbHVlOiBhY3Rpdml0eUNvbnRleHR9LFxuICAgICAgXSxcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvclxuICAgIH0pO1xuXG4gICAgdGhpcy5hY3Rpdml0eUNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoYWN0aXZpdHlSZWYuYWN0aXZpdHlDbGFzcywge2luZGV4OiAwLCBpbmplY3Rvcn0pO1xuICAgIGFjdGl2aXR5Q29udGV4dC5pbml0KHRoaXMuYWN0aXZpdHlDb21wb25lbnRSZWYuaW5zdGFuY2UpO1xuICAgIHRoaXMuYWN0aXZpdHlSZWYubm90aWZ5QWN0aXZpdHlDcmVhdGVkKHRoaXMuYWN0aXZpdHlDb21wb25lbnRSZWYuaW5zdGFuY2UsIHRoaXMubmVzdGVkSW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgfVxuXG4gIGdldCBjb21wb25lbnQoKTogQWN0aXZpdHk8RCwgUiwgRT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5Q29tcG9uZW50UmVmLmluc3RhbmNlO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export class InteractionServiceRoutingAdapter {
|
|
2
2
|
activeInteractionContextIds;
|
|
3
3
|
activeModalContext;
|
|
4
|
-
|
|
5
|
-
constructor(activeInteractionContextIds, activeModalContext,
|
|
4
|
+
createNavigationSessionInteractionContext;
|
|
5
|
+
constructor(activeInteractionContextIds, activeModalContext, createNavigationSessionInteractionContext) {
|
|
6
6
|
this.activeInteractionContextIds = activeInteractionContextIds;
|
|
7
7
|
this.activeModalContext = activeModalContext;
|
|
8
|
-
this.
|
|
8
|
+
this.createNavigationSessionInteractionContext = createNavigationSessionInteractionContext;
|
|
9
9
|
}
|
|
10
10
|
isActive() {
|
|
11
11
|
return this.getActiveInteractionContextIds().length > 0;
|
|
@@ -29,4 +29,4 @@ export class InteractionServiceRoutingAdapter {
|
|
|
29
29
|
return component.interactionContext.cancelActiveActivity();
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tc2VydmljZS1yb3V0aW5nLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9pbnRlcmFjdGlvbi1zZXJ2aWNlLXJvdXRpbmctYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sZ0NBQWdDO0lBRWQ7SUFDQTtJQUNSO0lBRnJCLFlBQTZCLDJCQUE4QyxFQUM5QyxrQkFBa0QsRUFDMUQseUNBQW1FO1FBRjNELGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBbUI7UUFDOUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFnQztRQUMxRCw4Q0FBeUMsR0FBekMseUNBQXlDLENBQTBCO0lBQ3hGLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVztJQUNYLHNCQUFzQixDQUFDLFNBQXlCO1FBQzlDLE9BQU8sU0FBUyxDQUFDLGtCQUFrQixJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBRUQsOEJBQThCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVztJQUNYLDZCQUE2QjtRQUMzQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsV0FBVztJQUNYLDBCQUEwQixDQUFDLFNBQXlCO1FBQ2xELE9BQU8sU0FBUyxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDN0QsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMaXN0TW9kZWwsIFZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gJy4uLy4uL3BsYWNlL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5cbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHM6IExpc3RNb2RlbDxzdHJpbmc+LFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2ZU1vZGFsQ29udGV4dDogVmFsdWVNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+LFxuICAgICAgICAgICAgICByZWFkb25seSBjcmVhdGVOYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uQ29udGV4dDogKCkgPT4gSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gIH1cblxuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHMoKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgaXNNb2RhbEFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGl2ZU1vZGFsQ29udGV4dC52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGlzQ29tcG9uZW50SW50ZXJhY3RpbmcoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0ICYmIGNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQuaXNBY3RpdmUoKTtcbiAgfVxuXG4gIGdldEFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcygpOiByZWFkb25seSBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzLnZhbHVlO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgY2FuY2VsQ3VycmVudE1vZGFsSW50ZXJhY3Rpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0LnZhbHVlLmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBjYW5jZWxDb21wb25lbnRJbnRlcmFjdGlvbihjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQuY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -15,7 +15,7 @@ export class InteractionService {
|
|
|
15
15
|
// private readonly _activeContext: ValueModelChain<InteractionContext>;
|
|
16
16
|
_navigationInProgress = new DelegatingValueModel().withDefault(false);
|
|
17
17
|
placeRouter;
|
|
18
|
-
|
|
18
|
+
navigationSessionInteractionRegistry;
|
|
19
19
|
modalInteractionRegistry;
|
|
20
20
|
inPlaceInteractionRegistry;
|
|
21
21
|
activeModalContext;
|
|
@@ -24,11 +24,11 @@ export class InteractionService {
|
|
|
24
24
|
constructor(modelInteractionContextFactory) {
|
|
25
25
|
this.modelInteractionContextFactory = modelInteractionContextFactory;
|
|
26
26
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this.garbage);
|
|
27
|
-
this.
|
|
27
|
+
this.navigationSessionInteractionRegistry = new InteractionService.ContextRegistry();
|
|
28
28
|
this.modalInteractionRegistry = new InteractionService.ContextRegistry();
|
|
29
29
|
this.inPlaceInteractionRegistry = new InteractionService.ContextRegistry();
|
|
30
|
-
this.modalInteractionRegistry.disableWhen(valueOf.any(this.
|
|
31
|
-
this.inPlaceInteractionRegistry.disableWhen(valueOf.any(this.
|
|
30
|
+
this.modalInteractionRegistry.disableWhen(valueOf.any(this.navigationSessionInteractionRegistry.active, this.modalInteractionRegistry.active).areTruthy());
|
|
31
|
+
this.inPlaceInteractionRegistry.disableWhen(valueOf.any(this.navigationSessionInteractionRegistry.active, this.modalInteractionRegistry.active, this.inPlaceInteractionRegistry.active).areTruthy());
|
|
32
32
|
this.active = valueOf.any(this.inPlaceInteractionRegistry.active, this.modalInteractionRegistry.active).areTruthy();
|
|
33
33
|
// TODO: chain.concat(listOrValueModels) would be nice.
|
|
34
34
|
this.activeInteractionContextIds = chain(this.inPlaceInteractionRegistry.interactionContextIds)
|
|
@@ -39,6 +39,18 @@ export class InteractionService {
|
|
|
39
39
|
isActive() {
|
|
40
40
|
return this.active.value;
|
|
41
41
|
}
|
|
42
|
+
cancelAllActivities() {
|
|
43
|
+
this.modalInteractionRegistry.interactionContexts.value.forEach(async (interaction) => {
|
|
44
|
+
while (interaction.isActive()) {
|
|
45
|
+
await interaction.cancelActiveActivity();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
this.inPlaceInteractionRegistry.interactionContexts.value.forEach(async (interaction) => {
|
|
49
|
+
while (interaction.isActive()) {
|
|
50
|
+
await interaction.cancelActiveActivity();
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
42
54
|
/**
|
|
43
55
|
* @deprecated use #createModalInteractionContextDisposedWith instead.
|
|
44
56
|
* @param disposable
|
|
@@ -73,7 +85,7 @@ export class InteractionService {
|
|
|
73
85
|
this._navigationInProgress.setDelegate(this.placeRouter.navigationInProgress$);
|
|
74
86
|
// const self = this;
|
|
75
87
|
return new InteractionServiceRoutingAdapter(this.activeInteractionContextIds, this.activeModalContext, () => {
|
|
76
|
-
return this.modelInteractionContextFactory.createInteractionContext("exclusive", new InteractionService.ApiAdapter(this.placeRouter, this.
|
|
88
|
+
return this.modelInteractionContextFactory.createInteractionContext("exclusive", new InteractionService.ApiAdapter(this.placeRouter, this.navigationSessionInteractionRegistry));
|
|
77
89
|
});
|
|
78
90
|
}
|
|
79
91
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InteractionService, deps: [{ token: i1.ModalInteractionContextFactory }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -154,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
154
166
|
}
|
|
155
167
|
InteractionService.ApiAdapter = ApiAdapter;
|
|
156
168
|
})(InteractionService || (InteractionService = {}));
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBRUwsb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBR2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBSXBELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXZGLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7QUFFbkYsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFLNUIsTUFBTSxPQUFPLGtCQUFrQjtJQW1CUjtJQWpCSixPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sQ0FBeUI7SUFFeEMsc0ZBQXNGO0lBQ3RGLHVGQUF1RjtJQUN2Rix3RUFBd0U7SUFDdkQscUJBQXFCLEdBQUcsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RixXQUFXLENBQWM7SUFDekIsNEJBQTRCLENBQXFDO0lBQ2pFLHdCQUF3QixDQUFxQztJQUM3RCwwQkFBMEIsQ0FBcUM7SUFDL0Qsa0JBQWtCLENBQXNDO0lBRXZELDJCQUEyQixDQUF5QjtJQUNwRCxrQkFBa0IsQ0FBeUI7SUFFcEQsWUFBcUIsOEJBQThEO1FBQTlELG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDakYsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFF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LENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUN0RCxDQUFDO1FBRUQsV0FBVztRQUNYLGNBQWMsQ0FBQyxPQUEyQjtZQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxrQkFBa0I7WUFDbEIsOEdBQThHO1lBQzlHLHdGQUF3RjtZQUN4Rix5R0FBeUc7WUFDekcsMkVBQTJFO1lBQzNFLGlHQUFpRztZQUNqRyxpRkFBaUY7WUFDakYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO1FBQzNELENBQUM7S0FDRjtJQWhDWSw2QkFBVSxhQWdDdEIsQ0FBQTtBQUVILENBQUMsRUEvRmdCLGtCQUFrQixLQUFsQixrQkFBa0IsUUErRmxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5pbXBvcnQge1BsYWNlUm91dGVyfSBmcm9tIFwiLi4vLi4vcGxhY2UvcGxhY2Utcm91dGVyXCI7XG5pbXBvcnQge0luUGxhY2VJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuLi9pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSBcIi4uL2ludGVyYWN0aW9uLWNvbnRleHRcIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXJ9IGZyb20gXCIuL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5cbmltcG9ydCB7TW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5fSBmcm9tIFwiLi9tb2RhbC1pbnRlcmFjdGlvbi1jb250ZXh0LmZhY3RvcnlcIjtcblxubGV0IGlucGxhY2VNb25pdG9yQ291bnQgPSAwO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBnYXJiYWdlID0gbmV3IEdhcmJhZ2VDb2xsZWN0b3IoKTtcbiAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuXG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZU1vZGFsQ29udGV4dCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+KCk7XG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZUlubGluZUNvbnRleHQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8SW50ZXJhY3Rpb25Db250ZXh0PigpO1xuICAvLyBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVDb250ZXh0OiBWYWx1ZU1vZGVsQ2hhaW48SW50ZXJhY3Rpb25Db250ZXh0PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkluUHJvZ3Jlc3MgPSBuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKS53aXRoRGVmYXVsdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXI7XG4gIHByaXZhdGUgZXhjbHVzaXZlSW50ZXJhY3Rpb25SZWdpc3RyeTogSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeTtcbiAgcHJpdmF0ZSBtb2RhbEludGVyYWN0aW9uUmVnaXN0cnk6IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnk7XG4gIHByaXZhdGUgaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnk6IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnk7XG4gIHByaXZhdGUgYWN0aXZlTW9kYWxDb250ZXh0OiBWYWx1ZU1vZGVsQ2hhaW48SW50ZXJhY3Rpb25Db250ZXh0PjtcblxuICByZWFkb25seSBhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHM6IExpc3RNb2RlbENoYWluPHN0cmluZz47XG4gIHJlYWRvbmx5IGluTW9kYWxJbnRlcmFjdGlvbjogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBtb2RlbEludGVyYWN0aW9uQ29udGV4dEZhY3Rvcnk6IE1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RmFjdG9yeSkge1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcy5nYXJiYWdlKTtcblxuICAgIHRoaXMuZXhjbHVzaXZlSW50ZXJhY3Rpb25SZWdpc3RyeSA9IG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQ29udGV4dFJlZ2lzdHJ5KCk7XG4gICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkgPSBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeSgpO1xuICAgIHRoaXMuaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnkgPSBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeSgpO1xuXG4gICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuZGlzYWJsZVdoZW4odmFsdWVPZi5hbnkoXG4gICAgICB0aGlzLmV4Y2x1c2l2ZUludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlLFxuICAgICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlXG4gICAgKS5hcmVUcnV0aHkoKSk7XG5cbiAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmRpc2FibGVXaGVuKHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5leGNsdXNpdmVJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZSxcbiAgICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZSxcbiAgICAgIHRoaXMuaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlXG4gICAgKS5hcmVUcnV0aHkoKSk7XG5cbiAgICB0aGlzLmFjdGl2ZSA9IHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5pblBsYWNlSW50ZXJhY3Rpb25SZWdpc3RyeS5hY3RpdmUsXG4gICAgICB0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeS5hY3RpdmVcbiAgICApLmFyZVRydXRoeSgpO1xuXG5cbiAgICAvLyBUT0RPOiBjaGFpbi5jb25jYXQobGlzdE9yVmFsdWVNb2RlbHMpIHdvdWxkIGJlIG5pY2UuXG4gICAgdGhpcy5hY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHMgPSBjaGFpbih0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmludGVyYWN0aW9uQ29udGV4dElkcylcbiAgICAgIC5jb25jYXQodGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuaW50ZXJhY3Rpb25Db250ZXh0SWRzKTtcblxuICAgIHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0ID0gY2hhaW4odGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuaW50ZXJhY3Rpb25Db250ZXh0cykuZmlyc3QoKTtcbiAgICB0aGlzLmluTW9kYWxJbnRlcmFjdGlvbiA9IGNoYWluKHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0KS5pc05vdE5pbCgpO1xuXG4gIH1cblxuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjcmVhdGVNb2RhbEludGVyYWN0aW9uQ29udGV4dERpc3Bvc2VkV2l0aCBpbnN0ZWFkLlxuICAgKiBAcGFyYW0gZGlzcG9zYWJsZVxuICAgKi9cbiAgY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGb3IoZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RGlzcG9zZWRXaXRoKGRpc3Bvc2FibGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9kZWwgaW50ZXJhY3Rpb24gY29udGV4dCB0aGF0IHdpbGwgYmUgZGlzcG9zZWQgYWxvbmcgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gZGlzcG9zYWJsZVxuICAgKi9cbiAgY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHREaXNwb3NlZFdpdGgoZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIC8vIFRPRE86IGxvb2sgYXQgbWFraW5nIHRoZSByZWdpc3RyeSB0aGUgZmFjdG9yeS4uXG4gICAgcmV0dXJuIHRoaXMubW9kZWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5LmNyZWF0ZUludGVyYWN0aW9uQ29udGV4dChcIm1vZGFsXCIsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJJbnBsYWNlSW50ZXJhY3Rpb25Db250ZXh0KGludGVyYWN0aW9uQ29udGV4dDogSW5QbGFjZUludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIC8vIFRPRE86IGxvb2sgYXQgbWFraW5nIHRoZSByZWdpc3RyeSB0aGUgZmFjdG9yeS4uXG4gICAgLy8gVG9kbzogY2hlY2sgZm9yIGRvdWJsZSByZWdpc3RyYXRpb24uXG4gICAgLy8gVG9kbzogYWxsb3cgbXVsdGlwbGUgaW5wbGFjZSBpbnRlcmFjdGlvbnMuLlxuICAgIGludGVyYWN0aW9uQ29udGV4dC5vbklucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRSZWdpc3RlcmVkKGBpcCR7KytpbnBsYWNlTW9uaXRvckNvdW50fWAsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5KSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGludGVyYWN0aW9uIGNvbnRleHQgdGhhdCB3aWxsIHByZXZlbnQgYW55IG90aGVyIGNvbnRleHRzIGZyb20gc3RhcnRpbmcgYW5cbiAgICogYWN0aXZpdHkgdW50aWwgaXQgaXMgZGlzcG9zZWQuICBUaGlzIGlzIGludGVuZGVkIGZvciB1c2UgYnkgdGhlIHJvdXRlciBmb3IgcGFzc2luZ1xuICAgKiB0byBQbGFjZUNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKGludGVyYWN0aW9uQ29udGV4dCkuICBUaGlzIGVuc3VyZXMgY29tcG9uZW50cyBkb24ndFxuICAgKiB0cnkgYW5kIGludGVyYWN0IGluIGEgd2F5IHRoYXQgd2UgY2FuJ3QgdHJhY2sgYW5kIHN5bmNocm9uaXNlIHdpdGggdGhlIGJyb3dzZXIgYmFja1xuICAgKiBidXR0b24uXG4gICAqL1xuICByZWdpc3RlclBsYWNlUm91dGVyKHJvdXRlcjogUGxhY2VSb3V0ZXIpOiBJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlciB7XG4gICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMucGxhY2VSb3V0ZXIpO1xuICAgIHRoaXMucGxhY2VSb3V0ZXIgPSByb3V0ZXI7XG4gICAgdGhpcy5fbmF2aWdhdGlvbkluUHJvZ3Jlc3Muc2V0RGVsZWdhdGUodGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzcyQpO1xuICAgIC8vIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIoXG4gICAgICB0aGlzLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcyxcbiAgICAgIHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0LFxuICAgICAgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbEludGVyYWN0aW9uQ29udGV4dEZhY3RvcnkuY3JlYXRlSW50ZXJhY3Rpb25Db250ZXh0KFwiZXhjbHVzaXZlXCIsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLmV4Y2x1c2l2ZUludGVyYWN0aW9uUmVnaXN0cnkpKTtcbiAgICAgIH0pO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBJbnRlcmFjdGlvblNlcnZpY2Uge1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXBpIHtcblxuICAgIC8qKlxuICAgICAqIE5vdGlmaWVzIHRoZSBpbnRlcmFjdGlvbiBzZXJ2aWNlIHRoYXQgYSBwYXJ0aWN1bGFyIGludGVyYWN0aW9uQ29udGV4dCBoYXMgYmVjb21lIGFjdGl2ZS4gVGhlIGludGVyYWN0aW9uXG4gICAgICogc2VydmljZXMgd2lsbCB0aGVuIHB1c2ggY2hhbmdlcyB0byB0aGUgcm91dGVyIHRvIHRyYWNrIHN0YXRlLiAgSWYgdGhlIHJvdXRlciBpcyBpZGxlLCB0aGUgcHJvbWlzZSB3aWxsXG4gICAgICogcmVzb2x2ZSB3aGVuIHRoZSByb3V0aW5nIGhhcyBmaW5pc2hlZCB1cGRhdGluZy4gIE90aGVyd2lzZSBpdCB3aWxsIHJldHVybiBpbW1lZGlhdGVseS5cbiAgICAgKiBAcGFyYW0gaW50ZXJhY3Rpb25Db250ZXh0XG4gICAgICovXG4gICAgbm90aWZ5QWN0aXZlKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTx1bmtub3duPjtcblxuICAgIC8qKlxuICAgICAqIE5vdGlmaWVzIHRoZSBpbnRlcmFjdGlvbiBzZXJ2aWNlIHRoYXQgYSBwYXJ0aWN1bGFyIGludGVyYWN0aW9uQ29udGV4dCBoYXMgYmVjb21lIGlkbGUuIFRoZSBpbnRlcmFjdGlvblxuICAgICAqIHNlcnZpY2VzIHdpbGwgdGhlbiBwdXNoIGNoYW5nZXMgdG8gdGhlIHJvdXRlciB0byB0cmFjayBzdGF0ZS4gIElmIHRoZSByb3V0ZXIgaXMgaWRsZSwgdGhlIHByb21pc2Ugd2lsbFxuICAgICAqIHJlc29sdmUgd2hlbiB0aGUgcm91dGluZyBoYXMgZmluaXNoZWQgdXBkYXRpbmcuICBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIGltbWVkaWF0ZWx5LlxuICAgICAqIEBwYXJhbSBpbnRlcmFjdGlvbkNvbnRleHRcbiAgICAgKi9cbiAgICBub3RpZnlGaW5pc2hlZChpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8dW5rbm93bj47XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIHRoZSBzZXJ2aWNlIHRvIGtlZXAgdHJhY2sgb2Ygd2hhdCB0aGUgQVBJIGFkYXB0ZXJzIGFyZSBkb2luZyB0b1xuICAgKiBlbnN1cmUgdGhlIHJ1bGVzIGFyZSBmb2xsb3dlZCwgaS5lLiBtb2RhbCBvciBpbi1wbGFjZSBpbnRlcmFjdGlvbiBhcmVuJ3Qgc3RhcnRlZCB3aGlsZVxuICAgKiBhbiBleGNsdXNpdmUgcm91dGluZyBpbnRlcmFjdGlvbiBpcyBhY3RpdmUuXG4gICAqL1xuICBleHBvcnQgY2xhc3MgQ29udGV4dFJlZ2lzdHJ5IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgICBwcml2YXRlIF9pbnRlcmFjdGlvbnMgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+KCk7XG4gICAgcHJpdmF0ZSBfZGlzYWJsZWREZWxlZ2F0ZSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KGZhbHNlKSk7XG4gICAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICAgIHJlYWRvbmx5IGludGVyYWN0aW9uQ29udGV4dElkczogTGlzdE1vZGVsQ2hhaW48c3RyaW5nPjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgICB0aGlzLmFjdGl2ZSA9IGNoYWluKHRoaXMuX2ludGVyYWN0aW9ucykuaXNOb3RFbXB0eSgpO1xuICAgICAgdGhpcy5pbnRlcmFjdGlvbkNvbnRleHRJZHMgPSBjaGFpbih0aGlzLl9pbnRlcmFjdGlvbnMpLnBsdWNrKFwiaWRlbnRpZmllclwiKTtcbiAgICB9XG5cbiAgICBnZXQgaW50ZXJhY3Rpb25Db250ZXh0cygpOiBMaXN0TW9kZWw8SW50ZXJhY3Rpb25Db250ZXh0PiB7XG4gICAgICByZXR1cm4gdGhpcy5faW50ZXJhY3Rpb25zLnJlYWRvbmx5JDtcbiAgICB9XG5cbiAgICBzdGFydChjb250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIHRoaXMuX2ludGVyYWN0aW9ucy5wdXNoKGNvbnRleHQpO1xuICAgIH1cblxuICAgIGZpbmlzaChjb250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgIHRoaXMuX2ludGVyYWN0aW9ucy5yZW1vdmUoY29udGV4dCk7XG4gICAgfVxuXG4gICAgaXNBY3RpdmUoKSB7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmUudmFsdWU7XG4gICAgfVxuXG4gICAgZGlzYWJsZVdoZW4oZGlzYWJsZWQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVkRGVsZWdhdGUuc2V0RGVsZWdhdGUoZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBBcGlBZGFwdGVyIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciBpbXBsZW1lbnRzIEFwaSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlciwgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0UmVnaXN0cnk6IENvbnRleHRSZWdpc3RyeSkge1xuICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvLyBAVHJhY2UoKVxuICAgIG5vdGlmeUFjdGl2ZShjb250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBQcm9taXNlPGFueT4ge1xuICAgICAgYXNzZXJ0LmlzVHJ1dGh5KGNvbnRleHQuaWRlbnRpZmllcik7XG4gICAgICB0aGlzLmNvbnRleHRSZWdpc3RyeS5zdGFydChjb250ZXh0KTtcbiAgICAgIHJldHVybiB0aGlzLmlzTmF2aWdhdGlvbkluUHJvZ3Jlc3MoKSA/IFByb21pc2UucmVzb2x2ZSgpIDogdGhpcy5wbGFjZVJvdXRlci5zeW5jSW50ZXJhY3Rpb25Db250ZXh0SWRzV2l0aFJvdXRlcigpO1xuICAgIH1cblxuICAgIC8vIEBUcmFjZSgpXG4gICAgcHJpdmF0ZSBpc05hdmlnYXRpb25JblByb2dyZXNzKCkge1xuICAgICAgcmV0dXJuIHRoaXMucGxhY2VSb3V0ZXIubmF2aWdhdGlvbkluUHJvZ3Jlc3MkLnZhbHVlO1xuICAgIH1cblxuICAgIC8vIEBUcmFjZSgpXG4gICAgbm90aWZ5RmluaXNoZWQoY29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgIHRoaXMuY29udGV4dFJlZ2lzdHJ5LmZpbmlzaChjb250ZXh0KTtcbiAgICAgIC8vIDo6IEltcG9ydGFudCA6OlxuICAgICAgLy8gVGhpcyBtZXRob2Qgd2lsbCBiZSB0cmF2ZXJzZWQgYnkgYm90aCB0aGUgcGxhY2Ugcm91dGVyIChkdXJpbmcgY2FuIGNhbkRlYWN0aXZhdGUgZ3VhcmRzKSBhbmQgdXNlciBsYW5kIGNvZGVcbiAgICAgIC8vIChib3RoIHdoZW4gcm91dGluZyBpcyBpZGxlIGFuZCB3aGlsZSBpdCBpcyBhY3RpdmUgaW4gUGxhY2VDb21wb25lbnQuY2FuRGVhY3RpdmF0ZSgpKS5cbiAgICAgIC8vIFRoZSByZXN1bHQgb2YgcHVzaEludGVyYWN0aW9uSWRzVG9Sb3V0ZSB3aWxsIG5vdCBzdGFydCB1bnRpbCBhZnRlciB0aGUgY3VycmVudCByb3V0ZSBmaW5pc2hlcywgYW5kIHRoZVxuICAgICAgLy8gY3VycmVudCByb3V0ZSB3b24ndCBmaW5pc2ggdW50aWwgYWZ0ZXIgdGhpcyBwcm9taXNlIHJldHVybnMuLi4gRGVhZGxvY2suXG4gICAgICAvLyBTbyBpbiBvcmRlciB0byBrZWVwIHRoaXMgbG9naWMgb3V0IG9mIHRoZSBhY3Rpdml0aWVzIHdlIHBlcmZvcm0gdGhlIGNoZWNrIGhlcmUgYW5kIGVuc3VyZSB0aGF0XG4gICAgICAvLyBhbnkgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGNvbnRleHQgd2hpbGUgcm91dGluZyBpcyBhY3RpdmUgcmV0dXJucyBpbW1lZGlhdGVseS5cbiAgICAgIHJldHVybiB0aGlzLmlzTmF2aWdhdGlvbkluUHJvZ3Jlc3MoKSA/XG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpIDpcbiAgICAgICAgdGhpcy5wbGFjZVJvdXRlci5zeW5jSW50ZXJhY3Rpb25Db250ZXh0SWRzV2l0aFJvdXRlcigpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBRUwsb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBR2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBSXBELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRXZGLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7QUFFbkYsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFLNUIsTUFBTSxPQUFPLGtCQUFrQjtJQW1CUjtJQWpCSixPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sQ0FBeUI7SUFFeEMsc0ZBQXNGO0lBQ3RGLHVGQUF1RjtJQUN2Rix3RUFBd0U7SUFDdkQscUJBQXFCLEdBQUcsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RixXQUFXLENBQWM7SUFDekIsb0NBQW9DLENBQXFDO0lBQ3pFLHdCQUF3QixDQUFxQztJQUM3RCwwQkFBMEIsQ0FBcUM7SUFDL0Qsa0JBQWtCLENBQXNDO0lBRXZELDJCQUEyQixDQUF5QjtJQUNwRCxrQkFBa0IsQ0FBeUI7SUFFcEQsWUFBcUIsOEJBQThEO1FBQTlELG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDakYsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFF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QUFnQztZQUN0RyxLQUFLLEVBQUUsQ0FBQztZQURtQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtZQUFtQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFFeEcsQ0FBQztRQUVELFdBQVc7UUFDWCxZQUFZLENBQUMsT0FBMkI7WUFDdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG1DQUFtQyxFQUFFLENBQUM7UUFDcEgsQ0FBQztRQUVELFdBQVc7UUFDSCxzQkFBc0I7WUFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUN0RCxDQUFDO1FBRUQsV0FBVztRQUNYLGNBQWMsQ0FBQyxPQUEyQjtZQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxrQkFBa0I7WUFDbEIsOEdBQThHO1lBQzlHLHdGQUF3RjtZQUN4Rix5R0FBeUc7WUFDekcsMkVBQTJFO1lBQzNFLGlHQUFpRztZQUNqRyxpRkFBaUY7WUFDakYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO1FBQzNELENBQUM7S0FDRjtJQWhDWSw2QkFBVSxhQWdDdEIsQ0FBQTtBQUVILENBQUMsRUEvRmdCLGtCQUFrQixLQUFsQixrQkFBa0IsUUErRmxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gXCJAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzXCI7XG5pbXBvcnQge1BsYWNlUm91dGVyfSBmcm9tIFwiLi4vLi4vcGxhY2UvcGxhY2Utcm91dGVyXCI7XG5pbXBvcnQge0luUGxhY2VJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gXCIuLi9pbi1wbGFjZS1pbnRlcmFjdGlvbi1jb250ZXh0XCI7XG5pbXBvcnQge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSBcIi4uL2ludGVyYWN0aW9uLWNvbnRleHRcIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXJ9IGZyb20gXCIuL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5cbmltcG9ydCB7TW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5fSBmcm9tIFwiLi9tb2RhbC1pbnRlcmFjdGlvbi1jb250ZXh0LmZhY3RvcnlcIjtcblxubGV0IGlucGxhY2VNb25pdG9yQ291bnQgPSAwO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBnYXJiYWdlID0gbmV3IEdhcmJhZ2VDb2xsZWN0b3IoKTtcbiAgcmVhZG9ubHkgYWN0aXZlOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuXG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZU1vZGFsQ29udGV4dCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+KCk7XG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZUlubGluZUNvbnRleHQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8SW50ZXJhY3Rpb25Db250ZXh0PigpO1xuICAvLyBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVDb250ZXh0OiBWYWx1ZU1vZGVsQ2hhaW48SW50ZXJhY3Rpb25Db250ZXh0PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkluUHJvZ3Jlc3MgPSBuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKS53aXRoRGVmYXVsdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXI7XG4gIHByaXZhdGUgbmF2aWdhdGlvblNlc3Npb25JbnRlcmFjdGlvblJlZ2lzdHJ5OiBJbnRlcmFjdGlvblNlcnZpY2UuQ29udGV4dFJlZ2lzdHJ5O1xuICBwcml2YXRlIG1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeTogSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeTtcbiAgcHJpdmF0ZSBpblBsYWNlSW50ZXJhY3Rpb25SZWdpc3RyeTogSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeTtcbiAgcHJpdmF0ZSBhY3RpdmVNb2RhbENvbnRleHQ6IFZhbHVlTW9kZWxDaGFpbjxJbnRlcmFjdGlvbkNvbnRleHQ+O1xuXG4gIHJlYWRvbmx5IGFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkczogTGlzdE1vZGVsQ2hhaW48c3RyaW5nPjtcbiAgcmVhZG9ubHkgaW5Nb2RhbEludGVyYWN0aW9uOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IG1vZGVsSW50ZXJhY3Rpb25Db250ZXh0RmFjdG9yeTogTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5KSB7XG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzLmdhcmJhZ2UpO1xuXG4gICAgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uUmVnaXN0cnkgPSBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlLkNvbnRleHRSZWdpc3RyeSgpO1xuICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5ID0gbmV3IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnkoKTtcbiAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5ID0gbmV3IEludGVyYWN0aW9uU2VydmljZS5Db250ZXh0UmVnaXN0cnkoKTtcblxuICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmRpc2FibGVXaGVuKHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlLFxuICAgICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlXG4gICAgKS5hcmVUcnV0aHkoKSk7XG5cbiAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmRpc2FibGVXaGVuKHZhbHVlT2YuYW55KFxuICAgICAgdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlLFxuICAgICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuYWN0aXZlLFxuICAgICAgdGhpcy5pblBsYWNlSW50ZXJhY3Rpb25SZWdpc3RyeS5hY3RpdmVcbiAgICApLmFyZVRydXRoeSgpKTtcblxuICAgIHRoaXMuYWN0aXZlID0gdmFsdWVPZi5hbnkoXG4gICAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZSxcbiAgICAgIHRoaXMubW9kYWxJbnRlcmFjdGlvblJlZ2lzdHJ5LmFjdGl2ZVxuICAgICkuYXJlVHJ1dGh5KCk7XG5cblxuICAgIC8vIFRPRE86IGNoYWluLmNvbmNhdChsaXN0T3JWYWx1ZU1vZGVscykgd291bGQgYmUgbmljZS5cbiAgICB0aGlzLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcyA9IGNoYWluKHRoaXMuaW5QbGFjZUludGVyYWN0aW9uUmVnaXN0cnkuaW50ZXJhY3Rpb25Db250ZXh0SWRzKVxuICAgICAgLmNvbmNhdCh0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeS5pbnRlcmFjdGlvbkNvbnRleHRJZHMpO1xuXG4gICAgdGhpcy5hY3RpdmVNb2RhbENvbnRleHQgPSBjaGFpbih0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeS5pbnRlcmFjdGlvbkNvbnRleHRzKS5maXJzdCgpO1xuICAgIHRoaXMuaW5Nb2RhbEludGVyYWN0aW9uID0gY2hhaW4odGhpcy5hY3RpdmVNb2RhbENvbnRleHQpLmlzTm90TmlsKCk7XG5cbiAgfVxuXG4gIGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZS52YWx1ZTtcbiAgfVxuXG4gIGNhbmNlbEFsbEFjdGl2aXRpZXMoKSB7XG4gICAgdGhpcy5tb2RhbEludGVyYWN0aW9uUmVnaXN0cnkuaW50ZXJhY3Rpb25Db250ZXh0cy52YWx1ZS5mb3JFYWNoKGFzeW5jIChpbnRlcmFjdGlvbikgPT4ge1xuICAgICAgd2hpbGUoaW50ZXJhY3Rpb24uaXNBY3RpdmUoKSkge1xuICAgICAgICBhd2FpdCBpbnRlcmFjdGlvbi5jYW5jZWxBY3RpdmVBY3Rpdml0eSgpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5LmludGVyYWN0aW9uQ29udGV4dHMudmFsdWUuZm9yRWFjaChhc3luYyAoaW50ZXJhY3Rpb24pID0+IHtcbiAgICAgIHdoaWxlKGludGVyYWN0aW9uLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgYXdhaXQgaW50ZXJhY3Rpb24uY2FuY2VsQWN0aXZlQWN0aXZpdHkoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjcmVhdGVNb2RhbEludGVyYWN0aW9uQ29udGV4dERpc3Bvc2VkV2l0aCBpbnN0ZWFkLlxuICAgKiBAcGFyYW0gZGlzcG9zYWJsZVxuICAgKi9cbiAgY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHRGb3IoZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vZGFsSW50ZXJhY3Rpb25Db250ZXh0RGlzcG9zZWRXaXRoKGRpc3Bvc2FibGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9kZWwgaW50ZXJhY3Rpb24gY29udGV4dCB0aGF0IHdpbGwgYmUgZGlzcG9zZWQgYWxvbmcgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gZGlzcG9zYWJsZVxuICAgKi9cbiAgY3JlYXRlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHREaXNwb3NlZFdpdGgoZGlzcG9zYWJsZTogRGlzcG9zYWJsZS5Db2xsZWN0b3IpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIC8vIFRPRE86IGxvb2sgYXQgbWFraW5nIHRoZSByZWdpc3RyeSB0aGUgZmFjdG9yeS4uXG4gICAgcmV0dXJuIHRoaXMubW9kZWxJbnRlcmFjdGlvbkNvbnRleHRGYWN0b3J5LmNyZWF0ZUludGVyYWN0aW9uQ29udGV4dChcIm1vZGFsXCIsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLm1vZGFsSW50ZXJhY3Rpb25SZWdpc3RyeSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJJbnBsYWNlSW50ZXJhY3Rpb25Db250ZXh0KGludGVyYWN0aW9uQ29udGV4dDogSW5QbGFjZUludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIC8vIFRPRE86IGxvb2sgYXQgbWFraW5nIHRoZSByZWdpc3RyeSB0aGUgZmFjdG9yeS4uXG4gICAgLy8gVG9kbzogY2hlY2sgZm9yIGRvdWJsZSByZWdpc3RyYXRpb24uXG4gICAgLy8gVG9kbzogYWxsb3cgbXVsdGlwbGUgaW5wbGFjZSBpbnRlcmFjdGlvbnMuLlxuICAgIGludGVyYWN0aW9uQ29udGV4dC5vbklucGxhY2VJbnRlcmFjdGlvbkNvbnRleHRSZWdpc3RlcmVkKGBpcCR7KytpbnBsYWNlTW9uaXRvckNvdW50fWAsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLmluUGxhY2VJbnRlcmFjdGlvblJlZ2lzdHJ5KSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGludGVyYWN0aW9uIGNvbnRleHQgdGhhdCB3aWxsIHByZXZlbnQgYW55IG90aGVyIGNvbnRleHRzIGZyb20gc3RhcnRpbmcgYW5cbiAgICogYWN0aXZpdHkgdW50aWwgaXQgaXMgZGlzcG9zZWQuICBUaGlzIGlzIGludGVuZGVkIGZvciB1c2UgYnkgdGhlIHJvdXRlciBmb3IgcGFzc2luZ1xuICAgKiB0byBQbGFjZUNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKGludGVyYWN0aW9uQ29udGV4dCkuICBUaGlzIGVuc3VyZXMgY29tcG9uZW50cyBkb24ndFxuICAgKiB0cnkgYW5kIGludGVyYWN0IGluIGEgd2F5IHRoYXQgd2UgY2FuJ3QgdHJhY2sgYW5kIHN5bmNocm9uaXNlIHdpdGggdGhlIGJyb3dzZXIgYmFja1xuICAgKiBidXR0b24uXG4gICAqL1xuICByZWdpc3RlclBsYWNlUm91dGVyKHJvdXRlcjogUGxhY2VSb3V0ZXIpOiBJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlciB7XG4gICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMucGxhY2VSb3V0ZXIpO1xuICAgIHRoaXMucGxhY2VSb3V0ZXIgPSByb3V0ZXI7XG4gICAgdGhpcy5fbmF2aWdhdGlvbkluUHJvZ3Jlc3Muc2V0RGVsZWdhdGUodGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzcyQpO1xuICAgIC8vIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiBuZXcgSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIoXG4gICAgICB0aGlzLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcyxcbiAgICAgIHRoaXMuYWN0aXZlTW9kYWxDb250ZXh0LFxuICAgICAgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbEludGVyYWN0aW9uQ29udGV4dEZhY3RvcnkuY3JlYXRlSW50ZXJhY3Rpb25Db250ZXh0KFwiZXhjbHVzaXZlXCIsIG5ldyBJbnRlcmFjdGlvblNlcnZpY2UuQXBpQWRhcHRlcih0aGlzLnBsYWNlUm91dGVyLCB0aGlzLm5hdmlnYXRpb25TZXNzaW9uSW50ZXJhY3Rpb25SZWdpc3RyeSkpO1xuICAgICAgfSk7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEludGVyYWN0aW9uU2VydmljZSB7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBBcGkge1xuXG4gICAgLyoqXG4gICAgICogTm90aWZpZXMgdGhlIGludGVyYWN0aW9uIHNlcnZpY2UgdGhhdCBhIHBhcnRpY3VsYXIgaW50ZXJhY3Rpb25Db250ZXh0IGhhcyBiZWNvbWUgYWN0aXZlLiBUaGUgaW50ZXJhY3Rpb25cbiAgICAgKiBzZXJ2aWNlcyB3aWxsIHRoZW4gcHVzaCBjaGFuZ2VzIHRvIHRoZSByb3V0ZXIgdG8gdHJhY2sgc3RhdGUuICBJZiB0aGUgcm91dGVyIGlzIGlkbGUsIHRoZSBwcm9taXNlIHdpbGxcbiAgICAgKiByZXNvbHZlIHdoZW4gdGhlIHJvdXRpbmcgaGFzIGZpbmlzaGVkIHVwZGF0aW5nLiAgT3RoZXJ3aXNlIGl0IHdpbGwgcmV0dXJuIGltbWVkaWF0ZWx5LlxuICAgICAqIEBwYXJhbSBpbnRlcmFjdGlvbkNvbnRleHRcbiAgICAgKi9cbiAgICBub3RpZnlBY3RpdmUoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBQcm9taXNlPHVua25vd24+O1xuXG4gICAgLyoqXG4gICAgICogTm90aWZpZXMgdGhlIGludGVyYWN0aW9uIHNlcnZpY2UgdGhhdCBhIHBhcnRpY3VsYXIgaW50ZXJhY3Rpb25Db250ZXh0IGhhcyBiZWNvbWUgaWRsZS4gVGhlIGludGVyYWN0aW9uXG4gICAgICogc2VydmljZXMgd2lsbCB0aGVuIHB1c2ggY2hhbmdlcyB0byB0aGUgcm91dGVyIHRvIHRyYWNrIHN0YXRlLiAgSWYgdGhlIHJvdXRlciBpcyBpZGxlLCB0aGUgcHJvbWlzZSB3aWxsXG4gICAgICogcmVzb2x2ZSB3aGVuIHRoZSByb3V0aW5nIGhhcyBmaW5pc2hlZCB1cGRhdGluZy4gIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gaW1tZWRpYXRlbHkuXG4gICAgICogQHBhcmFtIGludGVyYWN0aW9uQ29udGV4dFxuICAgICAqL1xuICAgIG5vdGlmeUZpbmlzaGVkKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogUHJvbWlzZTx1bmtub3duPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhIG1lY2hhbmlzbSBmb3IgdGhlIHNlcnZpY2UgdG8ga2VlcCB0cmFjayBvZiB3aGF0IHRoZSBBUEkgYWRhcHRlcnMgYXJlIGRvaW5nIHRvXG4gICAqIGVuc3VyZSB0aGUgcnVsZXMgYXJlIGZvbGxvd2VkLCBpLmUuIG1vZGFsIG9yIGluLXBsYWNlIGludGVyYWN0aW9uIGFyZW4ndCBzdGFydGVkIHdoaWxlXG4gICAqIGFuIGV4Y2x1c2l2ZSByb3V0aW5nIGludGVyYWN0aW9uIGlzIGFjdGl2ZS5cbiAgICovXG4gIGV4cG9ydCBjbGFzcyBDb250ZXh0UmVnaXN0cnkgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICAgIHByaXZhdGUgX2ludGVyYWN0aW9ucyA9IG5ldyBNdXRhYmxlTGlzdE1vZGVsPEludGVyYWN0aW9uQ29udGV4dD4oKTtcbiAgICBwcml2YXRlIF9kaXNhYmxlZERlbGVnYXRlID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpKTtcbiAgICByZWFkb25seSBhY3RpdmU6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gICAgcmVhZG9ubHkgaW50ZXJhY3Rpb25Db250ZXh0SWRzOiBMaXN0TW9kZWxDaGFpbjxzdHJpbmc+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICAgIHRoaXMuYWN0aXZlID0gY2hhaW4odGhpcy5faW50ZXJhY3Rpb25zKS5pc05vdEVtcHR5KCk7XG4gICAgICB0aGlzLmludGVyYWN0aW9uQ29udGV4dElkcyA9IGNoYWluKHRoaXMuX2ludGVyYWN0aW9ucykucGx1Y2soXCJpZGVudGlmaWVyXCIpO1xuICAgIH1cblxuICAgIGdldCBpbnRlcmFjdGlvbkNvbnRleHRzKCk6IExpc3RNb2RlbDxJbnRlcmFjdGlvbkNvbnRleHQ+IHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbnMucmVhZG9ubHkkO1xuICAgIH1cblxuICAgIHN0YXJ0KGNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgdGhpcy5faW50ZXJhY3Rpb25zLnB1c2goY29udGV4dCk7XG4gICAgfVxuXG4gICAgZmluaXNoKGNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgdGhpcy5faW50ZXJhY3Rpb25zLnJlbW92ZShjb250ZXh0KTtcbiAgICB9XG5cbiAgICBpc0FjdGl2ZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2ZS52YWx1ZTtcbiAgICB9XG5cbiAgICBkaXNhYmxlV2hlbihkaXNhYmxlZDogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAgICAgdGhpcy5fZGlzYWJsZWREZWxlZ2F0ZS5zZXREZWxlZ2F0ZShkaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIEFwaUFkYXB0ZXIgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIGltcGxlbWVudHMgQXBpIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyLCBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHRSZWdpc3RyeTogQ29udGV4dFJlZ2lzdHJ5KSB7XG4gICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8vIEBUcmFjZSgpXG4gICAgbm90aWZ5QWN0aXZlKGNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8YW55PiB7XG4gICAgICBhc3NlcnQuaXNUcnV0aHkoY29udGV4dC5pZGVudGlmaWVyKTtcbiAgICAgIHRoaXMuY29udGV4dFJlZ2lzdHJ5LnN0YXJ0KGNvbnRleHQpO1xuICAgICAgcmV0dXJuIHRoaXMuaXNOYXZpZ2F0aW9uSW5Qcm9ncmVzcygpID8gUHJvbWlzZS5yZXNvbHZlKCkgOiB0aGlzLnBsYWNlUm91dGVyLnN5bmNJbnRlcmFjdGlvbkNvbnRleHRJZHNXaXRoUm91dGVyKCk7XG4gICAgfVxuXG4gICAgLy8gQFRyYWNlKClcbiAgICBwcml2YXRlIGlzTmF2aWdhdGlvbkluUHJvZ3Jlc3MoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzcyQudmFsdWU7XG4gICAgfVxuXG4gICAgLy8gQFRyYWNlKClcbiAgICBub3RpZnlGaW5pc2hlZChjb250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBQcm9taXNlPGFueT4ge1xuICAgICAgdGhpcy5jb250ZXh0UmVnaXN0cnkuZmluaXNoKGNvbnRleHQpO1xuICAgICAgLy8gOjogSW1wb3J0YW50IDo6XG4gICAgICAvLyBUaGlzIG1ldGhvZCB3aWxsIGJlIHRyYXZlcnNlZCBieSBib3RoIHRoZSBwbGFjZSByb3V0ZXIgKGR1cmluZyBjYW4gY2FuRGVhY3RpdmF0ZSBndWFyZHMpIGFuZCB1c2VyIGxhbmQgY29kZVxuICAgICAgLy8gKGJvdGggd2hlbiByb3V0aW5nIGlzIGlkbGUgYW5kIHdoaWxlIGl0IGlzIGFjdGl2ZSBpbiBQbGFjZUNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKCkpLlxuICAgICAgLy8gVGhlIHJlc3VsdCBvZiBwdXNoSW50ZXJhY3Rpb25JZHNUb1JvdXRlIHdpbGwgbm90IHN0YXJ0IHVudGlsIGFmdGVyIHRoZSBjdXJyZW50IHJvdXRlIGZpbmlzaGVzLCBhbmQgdGhlXG4gICAgICAvLyBjdXJyZW50IHJvdXRlIHdvbid0IGZpbmlzaCB1bnRpbCBhZnRlciB0aGlzIHByb21pc2UgcmV0dXJucy4uLiBEZWFkbG9jay5cbiAgICAgIC8vIFNvIGluIG9yZGVyIHRvIGtlZXAgdGhpcyBsb2dpYyBvdXQgb2YgdGhlIGFjdGl2aXRpZXMgd2UgcGVyZm9ybSB0aGUgY2hlY2sgaGVyZSBhbmQgZW5zdXJlIHRoYXRcbiAgICAgIC8vIGFueSBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgY29udGV4dCB3aGlsZSByb3V0aW5nIGlzIGFjdGl2ZSByZXR1cm5zIGltbWVkaWF0ZWx5LlxuICAgICAgcmV0dXJuIHRoaXMuaXNOYXZpZ2F0aW9uSW5Qcm9ncmVzcygpID9cbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkgOlxuICAgICAgICB0aGlzLnBsYWNlUm91dGVyLnN5bmNJbnRlcmFjdGlvbkNvbnRleHRJZHNXaXRoUm91dGVyKCk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -17,7 +17,7 @@ export class NavigationSession extends GarbageCollector {
|
|
|
17
17
|
this.startingUrl = startingUrl;
|
|
18
18
|
// console.log(`new ${this.constructor.name}`)
|
|
19
19
|
// TODO: can I get away without creating one every time?
|
|
20
|
-
this._interactionContext = this.context.routerInteractionAdapter.
|
|
20
|
+
this._interactionContext = this.context.routerInteractionAdapter.createNavigationSessionInteractionContext();
|
|
21
21
|
this.onDispose(() => {
|
|
22
22
|
// the interaction context can be detached during the back button cancellation state transition
|
|
23
23
|
// as the transition is synchronous and activityCancellation isn't. Otherwise dispose will be
|
|
@@ -173,4 +173,4 @@ export class NavigationSession extends GarbageCollector {
|
|
|
173
173
|
return context;
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTzlELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFbEMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHMUY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGdCQUFnQjtJQVd6QztJQUFxQztJQVQxRCxpQkFBaUIsR0FBYSxFQUFFLENBQUM7SUFDekIsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBRTFELDZCQUE2QixHQUFHLElBQUksR0FBRyxFQUFxRCxDQUFDO0lBSTdGLG1CQUFtQixDQUFxQjtJQUVoRCxZQUFxQixPQUEwQixFQUFXLFdBQW1CO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFBVyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUUzRSw4Q0FBOEM7UUFDOUMsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLGlDQUFpQyxFQUFFLENBQUM7UUFDckcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsK0ZBQStGO1lBQy9GLDhGQUE4RjtZQUM5RixpR0FBaUc7WUFDakcsOEZBQThGO1lBQzlGLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENB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QU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDM0YscUdBQXFHO1FBQ3JHLG1CQUFtQjtRQUNuQixNQUFNLCtCQUErQixHQUFHLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3JGLHVGQUF1RjtRQUN2Rix1RkFBdUY7UUFDdkYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNsRSwrQkFBK0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0QsK0JBQStCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMseUNBQXlDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUlTLCtDQUErQyxDQUFDLEdBQVc7UUFDbkUsc0ZBQXNGO1FBQ3RGLHdHQUF3RztRQUN4RyxvQ0FBb0M7UUFDcEMsaUJBQWlCO1FBQ2pCLHNFQUFzRTtRQUN0RSx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxxQ0FBcUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyRXZlbnR9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7R2FyYmFnZUNvbGxlY3RvciwgbGFuZywgTG9nZ2VyfSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlcn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5pbXBvcnQge1BsYWNlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vcGxhY2UtY29tcG9uZW50XCI7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSBcIi4uLy4uL3BsYWNlLWRlZmluaXRpb25cIjtcbmltcG9ydCB7VXJsU2VydmljZX0gZnJvbSBcIi4uLy4uL3VybC1zZXJ2aWNlXCI7XG5pbXBvcnQge1VybFNuYXBzaG90fSBmcm9tIFwiLi4vLi4vdXJsLXNuYXBzaG90XCI7XG5pbXBvcnQge1Zpc2l0fSBmcm9tIFwiLi4vLi4vdmlzaXRcIjtcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tIFwiLi4vLi4vdmlzaXQtc2VnbWVudFwiO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJ9IGZyb20gXCIuLi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXJcIjtcbmltcG9ydCB7TmF2aWdhdGlvbkNvbnRleHR9IGZyb20gXCIuL25hdmlnYXRpb24tY29udGV4dFwiO1xuXG4vKipcbiAqIFRyYW5zaWVudCBzdGF0ZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5hdmlnYXRpb25TZXNzaW9uIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgZGVidWdQcm9wZXJ0eUtleXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgX3Zpc2l0U2VnbWVudHMgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXRTZWdtZW50PigpO1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMgPSBuZXcgTWFwPFBsYWNlQ29tcG9uZW50LCBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXI+KCk7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzUG9wU3RhdGU6IGJvb2xlYW47XG5cblxuICBwcml2YXRlIF9pbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb250ZXh0OiBOYXZpZ2F0aW9uQ29udGV4dCwgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gY29uc29sZS5sb2coYG5ldyAke3RoaXMuY29uc3RydWN0b3IubmFtZX1gKVxuICAgIC8vIFRPRE86IGNhbiBJIGdldCBhd2F5IHdpdGhvdXQgY3JlYXRpbmcgb25lIGV2ZXJ5IHRpbWU/XG4gICAgdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5jb250ZXh0LnJvdXRlckludGVyYWN0aW9uQWRhcHRlci5jcmVhdGVFeGNsdXNpdmVJbnRlcmFjdGlvbkNvbnRleHQoKTtcbiAgICB0aGlzLm9uRGlzcG9zZSgoKSA9PiB7XG4gICAgICAvLyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBjYW4gYmUgZGV0YWNoZWQgZHVyaW5nIHRoZSBiYWNrIGJ1dHRvbiBjYW5jZWxsYXRpb24gc3RhdGUgdHJhbnNpdGlvblxuICAgICAgLy8gYXMgdGhlIHRyYW5zaXRpb24gaXMgc3luY2hyb25vdXMgYW5kIGFjdGl2aXR5Q2FuY2VsbGF0aW9uIGlzbid0LiAgT3RoZXJ3aXNlIGRpc3Bvc2Ugd2lsbCBiZVxuICAgICAgLy8gY2FsbGVkIGJlZm9yZSB0aGUgY29udGV4dCBoYXMgYmVlbiBjYW5jZWxsZWQuICBJdCBtaWdodCBiZSB3b3JrIGhhdmluZyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dFxuICAgICAgLy8gYXV0b21hdGljYWxseSBjYW5jZWwgaWYgdGhlIGNvbnRleHQgaXMgZGlzcG9zZWQgc28gd2UgZG9uJ3QgaGF2ZSB3b3JyeSBhYm91dCBkZXRhY2hpbmcgZXRjLlxuICAgICAgaWYgKHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQuZGlzcG9zZSgpOyAvLyBvciBkbyBzb21ldGhpbmcgbGlrZSBjYW5jZWxBbmREaXNwb3NlP1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGlzSW50ZXJhY3Rpb25TeW5jKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIGdldCB1cmxTZXJ2aWNlKCk6IFVybFNlcnZpY2Uge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQudXJsU2VydmljZTtcbiAgfVxuXG4gIGdldCBpbnRlcmFjdGlvblNlcnZpY2VBZGFwdGVyKCk6IEludGVyYWN0aW9uU2VydmljZVJvdXRpbmdBZGFwdGVyIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJvdXRlckludGVyYWN0aW9uQWRhcHRlcjtcbiAgfVxuXG4gIGluaXRpYWxpc2VWaXNpdFNlZ21lbnRzKHZpc2l0OiBWaXNpdCkge1xuICAgIHZpc2l0LnNlZ21lbnRzLmZvckVhY2goaXQgPT4gdGhpcy51cGRhdGVWaXNpdFNlZ21lbnQoaXQpKVxuICB9XG5cbiAgdXBkYXRlVmlzaXRTZWdtZW50KHNlZ21lbnQ6IFZpc2l0U2VnbWVudCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGB1cGRhdGVWaXNpdFNlZ21lbnRgLCBzZWdtZW50LnRvRGVidWdTdHJpbmcoKSk7XG4gICAgdGhpcy5fdmlzaXRTZWdtZW50cy5zZXQoc2VnbWVudC5wbGFjZURlZmluaXRpb24sIHNlZ21lbnQpO1xuICB9XG5cblxuICBnZXRWaXNpdFNlZ21lbnRGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIGNvbnN0IHZpc2l0ID0gdGhpcy5fdmlzaXRTZWdtZW50cy5nZXQocGxhY2VEZWYpO1xuICAgIC8vIGNvbnNvbGUubG9nKGBHZXR0aW5nIHZpc2l0IGZvciAke3BsYWNlRGVmLmNvbXBvbmVudC5uYW1lfWAsIHt2aXNpdH0pO1xuICAgIHJldHVybiB2aXNpdDtcbiAgfVxuXG4gIGNyZWF0ZVVwZGF0ZWRWaXNpdCh1cmw6IHN0cmluZykgOlZpc2l0IHtcbiAgICAvLyBUaGUgdmlzaXQgc2VnbWVudHMgY2FuIGhhdmUgYXJiaXJhcnkgcGxhY2VzIGluIHRoZW0gYWZ0ZXIgcmVkaXJlY3RzXG4gICAgLy8gc28gd2UgaGF2ZSB0byBmaWx0ZXIgdGhlbSBiYXNlZCBvbiB0aGUgZmluYWwgdXJsLlxuICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy51cmxTZXJ2aWNlLnBhcnNlVXJsKHVybCk7XG4gICAgY29uc3QgZmlsdGVyZWRTZWdtZW50cyA9IEFycmF5LmZyb20odGhpcy5fdmlzaXRTZWdtZW50cy52YWx1ZXMoKSlcbiAgICAgIC5maWx0ZXIoaXQgPT4gc25hcHNob3QuY29udGFpbnNWaXNpdFNlZ21lbnQoaXQpKTtcbiAgICByZXR1cm4gVmlzaXQuZnJvbVNlZ21lbnRzKGZpbHRlcmVkU2VnbWVudHMpO1xuICB9XG5cbiAgZ2V0IGNhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0O1xuICB9XG5cbiAgbm90aWZ5QWN0aXZlKCkge1xuICAgIC8vIG5vb3AuXG4gIH1cblxuICBvblJvdXRlclN0YXJ0ZWQoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IHZvaWQge1xuICAgIC8vIG5hdmlnYXRpb24gc2Vzc2lvbnMgY2FuIGhhdmUgbWFueSBjYW5jZWwgc3RhcnQgY3ljbGVzIGR1ZSB0byBwbGFjZSBndWFyZCByZWRpcmVjdHNcbiAgICB0aGlzLmlnbm9yZShldmVudCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblVybENoYW5nZSh1cmw6IHN0cmluZykge1xuICAgIC8vIE5vcm1hbGx5IHdlIGp1c3QgaWdub3JlIHRoZXNlIGJ1dCB0aGV5IGFyZSB0aGUgb25seSB3YXkgb2YgZGV0ZWN0aW5nIGlmIHRoZSBiYWNrIGJ1dHRvblxuICAgIC8vIHdhcyBjbGlja2VkIGR1cmluZyBhIGNhbkRlYWN0aXZhdGUgcHJvbWlzZS5cbiAgICAvLyAxLiBhIHJvdXRlIGlzIGluIHByb2dyZXNzIGFuZCBhd2FpdGluZyBhIGNhbkRlYWN0aXZhdGVHdWFyZFxuICAgIC8vIDIuIHRoZSB1c2VyIHRoZSBjbGlja3MgdGhlIGJhY2sgYnV0dG9uLlxuICAgIC8vIFNvIHRvIGhhbmRsZSB0aGF0IHNjZW5hcmlvIHdlIG5lZWQgdG8gY2hlY2sgaWYgd2UndmUgZ290IGEgY2FuIGRlYWN0aXZhdGUgaW50ZXJhY3Rpb24gaW5cbiAgICAvLyBwcm9ncmVzcyBhbmQgdGhlIGRvIHRoZSBhcHByb3ByaWF0ZSBjbGVhbiB1cC5cbiAgICBpZiAodGhpcy5jYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0ICYmIHRoaXMuY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICB0aGlzLmNhbmNlbENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbih1cmwpO1xuICAgIH1cbiAgfVxuXG4gIG9uUG9wU3RhdGUoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJFbmQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBnZXRWaXNpdFNlZ21lbnRzKCk6IFZpc2l0U2VnbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl92aXNpdFNlZ21lbnRzLnZhbHVlcygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbGxlZ2FsVHJhbnNpdGlvbjxSPihtZXNzYWdlOiBzdHJpbmcgfCBSb3V0ZXJFdmVudCk6IFIge1xuICAgIHJldHVybiBsYW5nLmlsbGVnYWxTdGF0ZShgJHttZXNzYWdlLnRvU3RyaW5nKCl9IG5vdCBzdXBwb3J0ZWQgYnkgJHt0aGlzLnRvU3RyaW5nKCl9YCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3VycmVudFJvdXRlclVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudFJvdXRlclVybCgpO1xuICB9XG5cbiAgcmVzZXRCcm93c2VyTG9jYXRpb24odXJsLCBvcHRpb25zOiB7IHJlcGxhY2VDdXJyZW50OiBib29sZWFuIH0gPSB7IHJlcGxhY2VDdXJyZW50OiBmYWxzZSB9KSB7XG4gICAgLy8gY29uc29sZS5sb2coYC0tLT4gcmVzZXR0aW5nIGJyb3dzZXIgbG9jYXRpb24gdG86ICR7dXJsfWApO1xuICAgIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbih1cmwsIG9wdGlvbnMpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcHJvdGVjdGVkIHJlcGFpckJyb3dzZXJIaXN0b3J5QW5kVXJsQWZ0ZXJHdWFyZENhbmNlbGxhdGlvbihwb3BwZWRIaXN0b3J5VG9SZXBsYWNlOiBzdHJpbmcsIGFjdGl2ZVVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gSW1wb3J0YW50OiBJIHRyaWVkIHRvIHBlcmZvcm0gdGhpcyBmaXggYXQgYSBsYXRlciBwb2ludCBpbnQgaGUgcm91dGluZyBjeWNsZSBidXQgaXQgY3JlYXRlZCBhbGwga2luZHMgb2ZcbiAgICAvLyBzdHJhbmdlbmVzcy5cbiAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oXCJXT1JLLUFST1VORDogVXBkYXRpbmcgYnJvd3NlciBsb2NhdGlvbiBhZnRlciBwb3Agc3RhdGUgLSBzZWUgYW5ndWxhciBpc3N1ZSAjMTM1ODZcIik7XG4gICAgLy8gY29uc29sZS5sb2coYHJlcGxhY2luZyAke3RoaXMudXJsU2VydmljZS5nZXRDdXJyZW50TG9jYXRpb25VcmxTbmFwc2hvdCgpLnVybH0gd2l0aCAke3BvcHBlZEhpc3RvcnlUb1JlcGxhY2V9YCk7XG4gICAgdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHBvcHBlZEhpc3RvcnlUb1JlcGxhY2UsIHsgcmVwbGFjZUN1cnJlbnQ6IHRydWUgfSk7XG4gICAgLy8gY29uc29sZS5sb2coYHB1c2hpbmcgJHthY3RpdmVVcmx9IGJhY2sgb250byB0aGUgaGlzdG9yeS5gKTtcbiAgICB0aGlzLnVybFNlcnZpY2UucmVzZXRCcm93c2VyTG9jYXRpb24oYWN0aXZlVXJsLCB7IHJlcGxhY2VDdXJyZW50OiBmYWxzZSB9KTtcbiAgfVxuXG5cbiAgaWdub3JlKGV2ZW50OiBSb3V0ZXJFdmVudCwgcmVhc29uPzogc3RyaW5nKTogdm9pZCB7XG4gICAgcmVhc29uID0gcmVhc29uID8gYCAtPiAke3JlYXNvbn1gIDogXCJcIjtcbiAgICAvLyBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYElnbm9yaW5nIHJvdXRlciBldmVudCR7cmVhc29ufTogJHtldmVudC5jb25zdHJ1Y3Rvci5uYW1lfSAtPiAke2V2ZW50LnVybH0gOjogJHt0aGlzLnRvU3RyaW5nKCl9YCk7XG4gIH1cblxuICBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9KCR7dGhpcy5kZWJ1Z1N0YXRlKCl9KWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVidWdTdGF0ZShwcm9wZXJ0aWVzPzogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gKHByb3BlcnRpZXMgfHwgdGhpcy5kZWJ1Z1Byb3BlcnR5S2V5cykubWFwKHAgPT4ge1xuICAgICAgcmV0dXJuIGAke3B9OiAke3RoaXNbcF19YDtcbiAgICB9KS5qb2luKFwiLCBcIik7XG4gIH1cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlUGxhY2UoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFVybDogVXJsU25hcHNob3QsIG5leHRVcmw6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICAvLyBjb25zb2xlLmxvZyhgLS0tPiBjYW5EZWFjdGl2YXRlUGxhY2UoJHtjb21wb25lbnQucGxhY2VEZWZpbml0aW9uLnBhdGh9LCAke2N1cnJlbnRVcmwudXJsfSAtPiAke25leHRVcmwudXJsfSlgKTtcbiAgICAvLyBsb29rdXAgdGhlIGhhbmRsZXIgYW5kIGNyZWF0ZSBpdCBpZiB3ZSd2ZSBub3Qgc2VlbiBpdCB5ZXRcbiAgICBsZXQgaGFuZGxlciA9IHRoaXMuY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMuZ2V0KGNvbXBvbmVudCk7XG4gICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICBjb25zdCBpc1ByaW1hcnlIYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5zaXplID09PSAwOyAvLyBvbmx5IHByaW1hcnkgaGFuZGxlciBjYW5jZWxzIHRoZSBhcHAgbW9kZWwgaW50ZXJhdGlvbnNcbiAgICAgIGhhbmRsZXIgPSBuZXcgUGxhY2VDb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyKGNvbXBvbmVudCwgdGhpcywgaXNQcmltYXJ5SGFuZGxlcik7XG4gICAgICB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNldChjb21wb25lbnQsIGhhbmRsZXIpO1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlci5jYW5EZWFjdGl2YXRlKGN1cnJlbnRVcmwsIG5leHRVcmwpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGA8LS0tIGNhbkRlYWN0aXZhdGVQbGFjZSgke2NvbXBvbmVudC5wbGFjZURlZmluaXRpb24ucGF0aH0pOiAke3Jlc3VsdH1gKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBjYW5jZWxDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb24obmV3VXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYGJhY2sgYnV0dG9uIHByZXNzZWQgZHVyaW5nIG5hdmlnYXRpb24gc2Vzc2lvbiBpbnRlcmFjdGlvbiBwcm9taXNlYCk7XG4gICAgLy8gZGV0YWNoIHRoZSBpbnRlcmFjdGlvbiBmcm9tIHRoZSBzZXNzaW9uIHNvIGl0IGRvZXNuJ3QgZ2V0IGRpc3Bvc2VkIHVudGlsIHRoZSBhY3Rpdml0eSBoYXMgZmluaXNoZWRcbiAgICAvLyBhbGwgaXQncyB0aGluZ3MuXG4gICAgY29uc3QgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCA9IHRoaXMuZGV0YWNoQ2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCgpO1xuICAgIC8vIFRPRE86IEkgbmVlZCB0byBtYWtlIHRoZSBleGNsdXNpdmUgaW50ZXJhY3Rpb24gY29udGV4dCBkaXNhbGxvdyBuZXN0ZWQgYWN0aXZpdGllcyBvclxuICAgIC8vICAgICAgIHRoYXQgd291bGQgbWVzcyB0aGluZ3MgdXAgZW50aXJlbHkuIE9yLCBjYW4gSSBkbyBhIGNvbnRleHQuYWJvcnRBbGwoKS50aGVuKC4uKVxuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhcImNhbmNlbGxpbmcgY3VycmVudCBuYXZpZ2F0aW9uIGFjdGl2aXR5Li5cIik7XG4gICAgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dC5jYW5jZWxBY3RpdmVBY3Rpdml0eSgpLnRoZW4oKCkgPT4ge1xuICAgICAgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dC5kaXNwb3NlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmhhbmRsZUNhbkRlYWN0aXZhdGVDYW5jZWxsZWRFdmVudFNjZW5hcmlvKG5ld1VybCk7XG4gIH1cblxuICBhYnN0cmFjdCBoYW5kbGVDYW5EZWFjdGl2YXRlQ2FuY2VsbGVkRXZlbnRTY2VuYXJpbyhuZXdVcmw6IHN0cmluZyk6IHZvaWRcblxuICBwcm90ZWN0ZWQgcmVpbnN0YXRlVXJsQWZ0ZXJBbmd1bGFyQ2hhbmdlZEl0T25DYW5jZWxsYXRpb24odXJsOiBzdHJpbmcpIHtcbiAgICAvLyBBbmd1bGFyIGNhbGxzIF90aGlzLnJlc2V0VXJsVG9DdXJyZW50VXJsVHJlZSgpIG9uIGNhbmNlbGxpbmcgYW5kIGZ1Y2tzIG91ciBoaXN0b3J5LlxuICAgIC8vIFNvIHRoaXMgbWVhbnMgdGhhdCB0aGUgdG9wIG9mIHRoZSBzdGFjayBpcyB0aGUgdXJsIHdlIHdhbnQgdG8gZ28gYmFjayB0bywgYW5kIG5vdCB0aGUgb25lIHRoYXQgd2FzIG9uXG4gICAgLy8gaXQgYmVmb3JlIHRoZSBjYW5jZWwgZXZlbnQgZmlyZWQuXG4gICAgLy8gU28gd2UgbmVlZCB0bzpcbiAgICAvLyAtIHJlcGxhY2UgdGhlIGp1c3QgaW5zZXJ0ZWQgdXJsIHdpdGggdGhlIG9uZSB0aGF0IHVzZWQgdG8gYmUgdGhlcmUuXG4gICAgLy8gLSBwdXNoIG91ciBhY3R1YWwgdXJsIGJhY2sgb250byB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICB0aGlzLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybCwgeyByZXBsYWNlQ3VycmVudDogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXRhY2hDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0KCk6IEludGVyYWN0aW9uQ29udGV4dCB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dDtcbiAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQgPSBudWxsO1xuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG59XG4iXX0=
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTzlELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFbEMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHMUY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGdCQUFnQjtJQVd6QztJQUFxQztJQVQxRCxpQkFBaUIsR0FBYSxFQUFFLENBQUM7SUFDekIsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBRTFELDZCQUE2QixHQUFHLElBQUksR0FBRyxFQUFxRCxDQUFDO0lBSTdGLG1CQUFtQixDQUFxQjtJQUVoRCxZQUFxQixPQUEwQixFQUFXLFdBQW1CO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFBVyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUUzRSw4Q0FBOEM7UUFDOUMsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLHlDQUF5QyxFQUFFLENBQUM7UUFDN0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsK0ZBQStGO1lBQy9GLDhGQUE4RjtZQUM5RixpR0FBaUc7WUFDakcsOEZBQThGO1lBQzlGLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENB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QU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDM0YscUdBQXFHO1FBQ3JHLG1CQUFtQjtRQUNuQixNQUFNLCtCQUErQixHQUFHLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3JGLHVGQUF1RjtRQUN2Rix1RkFBdUY7UUFDdkYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNsRSwrQkFBK0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0QsK0JBQStCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMseUNBQXlDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUlTLCtDQUErQyxDQUFDLEdBQVc7UUFDbkUsc0ZBQXNGO1FBQ3RGLHdHQUF3RztRQUN4RyxvQ0FBb0M7UUFDcEMsaUJBQWlCO1FBQ2pCLHNFQUFzRTtRQUN0RSx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxxQ0FBcUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyRXZlbnR9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7R2FyYmFnZUNvbGxlY3RvciwgbGFuZywgTG9nZ2VyfSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHtJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlcn0gZnJvbSBcIi4uLy4uLy4uL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5pbXBvcnQge1BsYWNlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vcGxhY2UtY29tcG9uZW50XCI7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSBcIi4uLy4uL3BsYWNlLWRlZmluaXRpb25cIjtcbmltcG9ydCB7VXJsU2VydmljZX0gZnJvbSBcIi4uLy4uL3VybC1zZXJ2aWNlXCI7XG5pbXBvcnQge1VybFNuYXBzaG90fSBmcm9tIFwiLi4vLi4vdXJsLXNuYXBzaG90XCI7XG5pbXBvcnQge1Zpc2l0fSBmcm9tIFwiLi4vLi4vdmlzaXRcIjtcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tIFwiLi4vLi4vdmlzaXQtc2VnbWVudFwiO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJ9IGZyb20gXCIuLi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXJcIjtcbmltcG9ydCB7TmF2aWdhdGlvbkNvbnRleHR9IGZyb20gXCIuL25hdmlnYXRpb24tY29udGV4dFwiO1xuXG4vKipcbiAqIFRyYW5zaWVudCBzdGF0ZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5hdmlnYXRpb25TZXNzaW9uIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgZGVidWdQcm9wZXJ0eUtleXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgX3Zpc2l0U2VnbWVudHMgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXRTZWdtZW50PigpO1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMgPSBuZXcgTWFwPFBsYWNlQ29tcG9uZW50LCBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXI+KCk7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzUG9wU3RhdGU6IGJvb2xlYW47XG5cblxuICBwcml2YXRlIF9pbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb250ZXh0OiBOYXZpZ2F0aW9uQ29udGV4dCwgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gY29uc29sZS5sb2coYG5ldyAke3RoaXMuY29uc3RydWN0b3IubmFtZX1gKVxuICAgIC8vIFRPRE86IGNhbiBJIGdldCBhd2F5IHdpdGhvdXQgY3JlYXRpbmcgb25lIGV2ZXJ5IHRpbWU/XG4gICAgdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5jb250ZXh0LnJvdXRlckludGVyYWN0aW9uQWRhcHRlci5jcmVhdGVOYXZpZ2F0aW9uU2Vzc2lvbkludGVyYWN0aW9uQ29udGV4dCgpO1xuICAgIHRoaXMub25EaXNwb3NlKCgpID0+IHtcbiAgICAgIC8vIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGNhbiBiZSBkZXRhY2hlZCBkdXJpbmcgdGhlIGJhY2sgYnV0dG9uIGNhbmNlbGxhdGlvbiBzdGF0ZSB0cmFuc2l0aW9uXG4gICAgICAvLyBhcyB0aGUgdHJhbnNpdGlvbiBpcyBzeW5jaHJvbm91cyBhbmQgYWN0aXZpdHlDYW5jZWxsYXRpb24gaXNuJ3QuICBPdGhlcndpc2UgZGlzcG9zZSB3aWxsIGJlXG4gICAgICAvLyBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0IGhhcyBiZWVuIGNhbmNlbGxlZC4gIEl0IG1pZ2h0IGJlIHdvcmsgaGF2aW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0XG4gICAgICAvLyBhdXRvbWF0aWNhbGx5IGNhbmNlbCBpZiB0aGUgY29udGV4dCBpcyBkaXNwb3NlZCBzbyB3ZSBkb24ndCBoYXZlIHdvcnJ5IGFib3V0IGRldGFjaGluZyBldGMuXG4gICAgICBpZiAodGhpcy5faW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dC5kaXNwb3NlKCk7IC8vIG9yIGRvIHNvbWV0aGluZyBsaWtlIGNhbmNlbEFuZERpc3Bvc2U/XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXQgaXNJbnRlcmFjdGlvblN5bmMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICB9XG5cbiAgZ2V0IHVybFNlcnZpY2UoKTogVXJsU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC51cmxTZXJ2aWNlO1xuICB9XG5cbiAgZ2V0IGludGVyYWN0aW9uU2VydmljZUFkYXB0ZXIoKTogSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyO1xuICB9XG5cbiAgaW5pdGlhbGlzZVZpc2l0U2VnbWVudHModmlzaXQ6IFZpc2l0KSB7XG4gICAgdmlzaXQuc2VnbWVudHMuZm9yRWFjaChpdCA9PiB0aGlzLnVwZGF0ZVZpc2l0U2VnbWVudChpdCkpXG4gIH1cblxuICB1cGRhdGVWaXNpdFNlZ21lbnQoc2VnbWVudDogVmlzaXRTZWdtZW50KSB7XG4gICAgLy8gY29uc29sZS5sb2coYHVwZGF0ZVZpc2l0U2VnbWVudGAsIHNlZ21lbnQudG9EZWJ1Z1N0cmluZygpKTtcbiAgICB0aGlzLl92aXNpdFNlZ21lbnRzLnNldChzZWdtZW50LnBsYWNlRGVmaW5pdGlvbiwgc2VnbWVudCk7XG4gIH1cblxuXG4gIGdldFZpc2l0U2VnbWVudEZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgY29uc3QgdmlzaXQgPSB0aGlzLl92aXNpdFNlZ21lbnRzLmdldChwbGFjZURlZik7XG4gICAgLy8gY29uc29sZS5sb2coYEdldHRpbmcgdmlzaXQgZm9yICR7cGxhY2VEZWYuY29tcG9uZW50Lm5hbWV9YCwge3Zpc2l0fSk7XG4gICAgcmV0dXJuIHZpc2l0O1xuICB9XG5cbiAgY3JlYXRlVXBkYXRlZFZpc2l0KHVybDogc3RyaW5nKSA6VmlzaXQge1xuICAgIC8vIFRoZSB2aXNpdCBzZWdtZW50cyBjYW4gaGF2ZSBhcmJpcmFyeSBwbGFjZXMgaW4gdGhlbSBhZnRlciByZWRpcmVjdHNcbiAgICAvLyBzbyB3ZSBoYXZlIHRvIGZpbHRlciB0aGVtIGJhc2VkIG9uIHRoZSBmaW5hbCB1cmwuXG4gICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnVybFNlcnZpY2UucGFyc2VVcmwodXJsKTtcbiAgICBjb25zdCBmaWx0ZXJlZFNlZ21lbnRzID0gQXJyYXkuZnJvbSh0aGlzLl92aXNpdFNlZ21lbnRzLnZhbHVlcygpKVxuICAgICAgLmZpbHRlcihpdCA9PiBzbmFwc2hvdC5jb250YWluc1Zpc2l0U2VnbWVudChpdCkpO1xuICAgIHJldHVybiBWaXNpdC5mcm9tU2VnbWVudHMoZmlsdGVyZWRTZWdtZW50cyk7XG4gIH1cblxuICBnZXQgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQ7XG4gIH1cblxuICBub3RpZnlBY3RpdmUoKSB7XG4gICAgLy8gbm9vcC5cbiAgfVxuXG4gIG9uUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgLy8gbmF2aWdhdGlvbiBzZXNzaW9ucyBjYW4gaGF2ZSBtYW55IGNhbmNlbCBzdGFydCBjeWNsZXMgZHVlIHRvIHBsYWNlIGd1YXJkIHJlZGlyZWN0c1xuICAgIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgLy8gTm9ybWFsbHkgd2UganVzdCBpZ25vcmUgdGhlc2UgYnV0IHRoZXkgYXJlIHRoZSBvbmx5IHdheSBvZiBkZXRlY3RpbmcgaWYgdGhlIGJhY2sgYnV0dG9uXG4gICAgLy8gd2FzIGNsaWNrZWQgZHVyaW5nIGEgY2FuRGVhY3RpdmF0ZSBwcm9taXNlLlxuICAgIC8vIDEuIGEgcm91dGUgaXMgaW4gcHJvZ3Jlc3MgYW5kIGF3YWl0aW5nIGEgY2FuRGVhY3RpdmF0ZUd1YXJkXG4gICAgLy8gMi4gdGhlIHVzZXIgdGhlIGNsaWNrcyB0aGUgYmFjayBidXR0b24uXG4gICAgLy8gU28gdG8gaGFuZGxlIHRoYXQgc2NlbmFyaW8gd2UgbmVlZCB0byBjaGVjayBpZiB3ZSd2ZSBnb3QgYSBjYW4gZGVhY3RpdmF0ZSBpbnRlcmFjdGlvbiBpblxuICAgIC8vIHByb2dyZXNzIGFuZCB0aGUgZG8gdGhlIGFwcHJvcHJpYXRlIGNsZWFuIHVwLlxuICAgIGlmICh0aGlzLmNhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQgJiYgdGhpcy5jYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuY2FuY2VsQ2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uKHVybCk7XG4gICAgfVxuICB9XG5cbiAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJDYW5jZWxsZWQoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVuZChldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIGdldFZpc2l0U2VnbWVudHMoKTogVmlzaXRTZWdtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3Zpc2l0U2VnbWVudHMudmFsdWVzKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlsbGVnYWxUcmFuc2l0aW9uPFI+KG1lc3NhZ2U6IHN0cmluZyB8IFJvdXRlckV2ZW50KTogUiB7XG4gICAgcmV0dXJuIGxhbmcuaWxsZWdhbFN0YXRlKGAke21lc3NhZ2UudG9TdHJpbmcoKX0gbm90IHN1cHBvcnRlZCBieSAke3RoaXMudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjdXJyZW50Um91dGVyVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudXJsU2VydmljZS5nZXRDdXJyZW50Um91dGVyVXJsKCk7XG4gIH1cblxuICByZXNldEJyb3dzZXJMb2NhdGlvbih1cmwsIG9wdGlvbnM6IHsgcmVwbGFjZUN1cnJlbnQ6IGJvb2xlYW4gfSA9IHsgcmVwbGFjZUN1cnJlbnQ6IGZhbHNlIH0pIHtcbiAgICAvLyBjb25zb2xlLmxvZyhgLS0tPiByZXNldHRpbmcgYnJvd3NlciBsb2NhdGlvbiB0bzogJHt1cmx9YCk7XG4gICAgdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgcmVwYWlyQnJvd3Nlckhpc3RvcnlBbmRVcmxBZnRlckd1YXJkQ2FuY2VsbGF0aW9uKHBvcHBlZEhpc3RvcnlUb1JlcGxhY2U6IHN0cmluZywgYWN0aXZlVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBJbXBvcnRhbnQ6IEkgdHJpZWQgdG8gcGVyZm9ybSB0aGlzIGZpeCBhdCBhIGxhdGVyIHBvaW50IGludCBoZSByb3V0aW5nIGN5Y2xlIGJ1dCBpdCBjcmVhdGVkIGFsbCBraW5kcyBvZlxuICAgIC8vIHN0cmFuZ2VuZXNzLlxuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhcIldPUkstQVJPVU5EOiBVcGRhdGluZyBicm93c2VyIGxvY2F0aW9uIGFmdGVyIHBvcCBzdGF0ZSAtIHNlZSBhbmd1bGFyIGlzc3VlICMxMzU4NlwiKTtcbiAgICAvLyBjb25zb2xlLmxvZyhgcmVwbGFjaW5nICR7dGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRMb2NhdGlvblVybFNuYXBzaG90KCkudXJsfSB3aXRoICR7cG9wcGVkSGlzdG9yeVRvUmVwbGFjZX1gKTtcbiAgICB0aGlzLnVybFNlcnZpY2UucmVzZXRCcm93c2VyTG9jYXRpb24ocG9wcGVkSGlzdG9yeVRvUmVwbGFjZSwgeyByZXBsYWNlQ3VycmVudDogdHJ1ZSB9KTtcbiAgICAvLyBjb25zb2xlLmxvZyhgcHVzaGluZyAke2FjdGl2ZVVybH0gYmFjayBvbnRvIHRoZSBoaXN0b3J5LmApO1xuICAgIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbihhY3RpdmVVcmwsIHsgcmVwbGFjZUN1cnJlbnQ6IGZhbHNlIH0pO1xuICB9XG5cblxuICBpZ25vcmUoZXZlbnQ6IFJvdXRlckV2ZW50LCByZWFzb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICByZWFzb24gPSByZWFzb24gPyBgIC0+ICR7cmVhc29ufWAgOiBcIlwiO1xuICAgIC8vIExvZ2dlci5nZXQodGhpcykuaW5mbyhgSWdub3Jpbmcgcm91dGVyIGV2ZW50JHtyZWFzb259OiAke2V2ZW50LmNvbnN0cnVjdG9yLm5hbWV9IC0+ICR7ZXZlbnQudXJsfSA6OiAke3RoaXMudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0oJHt0aGlzLmRlYnVnU3RhdGUoKX0pYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWJ1Z1N0YXRlKHByb3BlcnRpZXM/OiBzdHJpbmdbXSkge1xuICAgIHJldHVybiAocHJvcGVydGllcyB8fCB0aGlzLmRlYnVnUHJvcGVydHlLZXlzKS5tYXAocCA9PiB7XG4gICAgICByZXR1cm4gYCR7cH06ICR7dGhpc1twXX1gO1xuICAgIH0pLmpvaW4oXCIsIFwiKTtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFVybDogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKGAtLS0+IGNhbkRlYWN0aXZhdGVQbGFjZSgke2NvbXBvbmVudC5wbGFjZURlZmluaXRpb24ucGF0aH0sICR7Y3VycmVudFVybC51cmx9IC0+ICR7bmV4dFVybC51cmx9KWApO1xuICAgIC8vIGxvb2t1cCB0aGUgaGFuZGxlciBhbmQgY3JlYXRlIGl0IGlmIHdlJ3ZlIG5vdCBzZWVuIGl0IHlldFxuICAgIGxldCBoYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5nZXQoY29tcG9uZW50KTtcbiAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgIGNvbnN0IGlzUHJpbWFyeUhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNpemUgPT09IDA7IC8vIG9ubHkgcHJpbWFyeSBoYW5kbGVyIGNhbmNlbHMgdGhlIGFwcCBtb2RlbCBpbnRlcmF0aW9uc1xuICAgICAgaGFuZGxlciA9IG5ldyBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXIoY29tcG9uZW50LCB0aGlzLCBpc1ByaW1hcnlIYW5kbGVyKTtcbiAgICAgIHRoaXMuY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMuc2V0KGNvbXBvbmVudCwgaGFuZGxlcik7XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyLmNhbkRlYWN0aXZhdGUoY3VycmVudFVybCwgbmV4dFVybCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coYDwtLS0gY2FuRGVhY3RpdmF0ZVBsYWNlKCR7Y29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRofSk6ICR7cmVzdWx0fWApO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KS5jYXRjaChlcnJvciA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbihuZXdVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhgYmFjayBidXR0b24gcHJlc3NlZCBkdXJpbmcgbmF2aWdhdGlvbiBzZXNzaW9uIGludGVyYWN0aW9uIHByb21pc2VgKTtcbiAgICAvLyBkZXRhY2ggdGhlIGludGVyYWN0aW9uIGZyb20gdGhlIHNlc3Npb24gc28gaXQgZG9lc24ndCBnZXQgZGlzcG9zZWQgdW50aWwgdGhlIGFjdGl2aXR5IGhhcyBmaW5pc2hlZFxuICAgIC8vIGFsbCBpdCdzIHRoaW5ncy5cbiAgICBjb25zdCBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5kZXRhY2hDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0KCk7XG4gICAgLy8gVE9ETzogSSBuZWVkIHRvIG1ha2UgdGhlIGV4Y2x1c2l2ZSBpbnRlcmFjdGlvbiBjb250ZXh0IGRpc2FsbG93IG5lc3RlZCBhY3Rpdml0aWVzIG9yXG4gICAgLy8gICAgICAgdGhhdCB3b3VsZCBtZXNzIHRoaW5ncyB1cCBlbnRpcmVseS4gT3IsIGNhbiBJIGRvIGEgY29udGV4dC5hYm9ydEFsbCgpLnRoZW4oLi4pXG4gICAgTG9nZ2VyLmdldCh0aGlzKS5pbmZvKFwiY2FuY2VsbGluZyBjdXJyZW50IG5hdmlnYXRpb24gYWN0aXZpdHkuLlwiKTtcbiAgICBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCkudGhlbigoKSA9PiB7XG4gICAgICBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmRpc3Bvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaGFuZGxlQ2FuRGVhY3RpdmF0ZUNhbmNlbGxlZEV2ZW50U2NlbmFyaW8obmV3VXJsKTtcbiAgfVxuXG4gIGFic3RyYWN0IGhhbmRsZUNhbkRlYWN0aXZhdGVDYW5jZWxsZWRFdmVudFNjZW5hcmlvKG5ld1VybDogc3RyaW5nKTogdm9pZFxuXG4gIHByb3RlY3RlZCByZWluc3RhdGVVcmxBZnRlckFuZ3VsYXJDaGFuZ2VkSXRPbkNhbmNlbGxhdGlvbih1cmw6IHN0cmluZykge1xuICAgIC8vIEFuZ3VsYXIgY2FsbHMgX3RoaXMucmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCkgb24gY2FuY2VsbGluZyBhbmQgZnVja3Mgb3VyIGhpc3RvcnkuXG4gICAgLy8gU28gdGhpcyBtZWFucyB0aGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRoZSB1cmwgd2Ugd2FudCB0byBnbyBiYWNrIHRvLCBhbmQgbm90IHRoZSBvbmUgdGhhdCB3YXMgb25cbiAgICAvLyBpdCBiZWZvcmUgdGhlIGNhbmNlbCBldmVudCBmaXJlZC5cbiAgICAvLyBTbyB3ZSBuZWVkIHRvOlxuICAgIC8vIC0gcmVwbGFjZSB0aGUganVzdCBpbnNlcnRlZCB1cmwgd2l0aCB0aGUgb25lIHRoYXQgdXNlZCB0byBiZSB0aGVyZS5cbiAgICAvLyAtIHB1c2ggb3VyIGFjdHVhbCB1cmwgYmFjayBvbnRvIHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgIHRoaXMucmVzZXRCcm93c2VyTG9jYXRpb24odXJsLCB7IHJlcGxhY2VDdXJyZW50OiB0cnVlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRldGFjaENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0O1xuICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCA9IG51bGw7XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cbn1cbiJdfQ==
|