@ngxs/router-plugin 3.7.3 → 3.7.4
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/bundles/ngxs-router-plugin.umd.js +36 -8
- package/bundles/ngxs-router-plugin.umd.js.map +1 -1
- package/bundles/ngxs-router-plugin.umd.min.js +2 -2
- package/bundles/ngxs-router-plugin.umd.min.js.map +1 -1
- package/esm2015/src/router.state.js +32 -6
- package/esm5/src/router.state.js +35 -6
- package/fesm2015/ngxs-router-plugin.js +30 -4
- package/fesm2015/ngxs-router-plugin.js.map +1 -1
- package/fesm5/ngxs-router-plugin.js +33 -4
- package/fesm5/ngxs-router-plugin.js.map +1 -1
- package/ngxs-router-plugin.metadata.json +1 -1
- package/package.json +4 -4
- package/src/router.state.d.ts +4 -2
|
@@ -4,11 +4,12 @@ var RouterState_1;
|
|
|
4
4
|
* @fileoverview added by tsickle
|
|
5
5
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
6
6
|
*/
|
|
7
|
-
import { NgZone, Injectable } from '@angular/core';
|
|
7
|
+
import { NgZone, Injectable, OnDestroy } from '@angular/core';
|
|
8
8
|
import { NavigationCancel, NavigationError, Router, RouterStateSnapshot, RoutesRecognized, ResolveEnd, UrlSerializer, NavigationStart, NavigationEnd } from '@angular/router';
|
|
9
9
|
import { LocationStrategy, Location } from '@angular/common';
|
|
10
10
|
import { Action, Selector, State, StateContext, Store } from '@ngxs/store';
|
|
11
11
|
import { isAngularInTestMode } from '@ngxs/store/internals';
|
|
12
|
+
import { Subscription } from 'rxjs';
|
|
12
13
|
import { first } from 'rxjs/operators';
|
|
13
14
|
import { Navigate, RouterCancel, RouterError, RouterNavigation, RouterDataResolved } from './router.actions';
|
|
14
15
|
import { RouterStateSerializer } from './serializer';
|
|
@@ -57,6 +58,7 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
57
58
|
*/
|
|
58
59
|
this._storeState = null;
|
|
59
60
|
this._lastRoutesRecognized = (/** @type {?} */ (null));
|
|
61
|
+
this._subscription = new Subscription();
|
|
60
62
|
this.setUpStoreListener();
|
|
61
63
|
this.setUpRouterEventsListener();
|
|
62
64
|
this.checkInitialNavigationOnce();
|
|
@@ -76,6 +78,12 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
76
78
|
static url(state) {
|
|
77
79
|
return state && state.state && state.state.url;
|
|
78
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* @return {?}
|
|
83
|
+
*/
|
|
84
|
+
ngOnDestroy() {
|
|
85
|
+
this._subscription.unsubscribe();
|
|
86
|
+
}
|
|
79
87
|
/**
|
|
80
88
|
* @param {?} _
|
|
81
89
|
* @param {?} action
|
|
@@ -100,20 +108,25 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
100
108
|
* @return {?}
|
|
101
109
|
*/
|
|
102
110
|
setUpStoreListener() {
|
|
103
|
-
|
|
111
|
+
/** @type {?} */
|
|
112
|
+
const subscription = this._store
|
|
113
|
+
.select(RouterState_1)
|
|
114
|
+
.subscribe((/**
|
|
104
115
|
* @param {?} state
|
|
105
116
|
* @return {?}
|
|
106
117
|
*/
|
|
107
118
|
(state) => {
|
|
108
119
|
this.navigateIfNeeded(state);
|
|
109
120
|
}));
|
|
121
|
+
this._subscription.add(subscription);
|
|
110
122
|
}
|
|
111
123
|
/**
|
|
112
124
|
* @private
|
|
113
125
|
* @return {?}
|
|
114
126
|
*/
|
|
115
127
|
setUpRouterEventsListener() {
|
|
116
|
-
|
|
128
|
+
/** @type {?} */
|
|
129
|
+
const subscription = this._router.events.subscribe((/**
|
|
117
130
|
* @param {?} event
|
|
118
131
|
* @return {?}
|
|
119
132
|
*/
|
|
@@ -140,6 +153,7 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
140
153
|
this.reset();
|
|
141
154
|
}
|
|
142
155
|
}));
|
|
156
|
+
this._subscription.add(subscription);
|
|
143
157
|
}
|
|
144
158
|
/**
|
|
145
159
|
* @private
|
|
@@ -259,10 +273,16 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
259
273
|
* @return {?}
|
|
260
274
|
*/
|
|
261
275
|
checkInitialNavigationOnce() {
|
|
262
|
-
|
|
276
|
+
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
277
|
+
// creating a breaking change for projects that still use the View Engine.
|
|
278
|
+
if ((typeof ngDevMode === 'undefined' || ngDevMode) &&
|
|
279
|
+
// Angular is running tests in development mode thus we can be sure that this method will be
|
|
280
|
+
// skipped in tests.
|
|
281
|
+
isAngularInTestMode()) {
|
|
263
282
|
return;
|
|
264
283
|
}
|
|
265
|
-
|
|
284
|
+
/** @type {?} */
|
|
285
|
+
const subscription = this._router.events
|
|
266
286
|
.pipe(first((/**
|
|
267
287
|
* @param {?} event
|
|
268
288
|
* @return {?}
|
|
@@ -307,6 +327,7 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
307
327
|
this._router.navigateByUrl(currentUrl);
|
|
308
328
|
}
|
|
309
329
|
}));
|
|
330
|
+
this._subscription.add(subscription);
|
|
310
331
|
}
|
|
311
332
|
};
|
|
312
333
|
RouterState.ctorParameters = () => [
|
|
@@ -398,6 +419,11 @@ if (false) {
|
|
|
398
419
|
* @private
|
|
399
420
|
*/
|
|
400
421
|
RouterState.prototype._lastRoutesRecognized;
|
|
422
|
+
/**
|
|
423
|
+
* @type {?}
|
|
424
|
+
* @private
|
|
425
|
+
*/
|
|
426
|
+
RouterState.prototype._subscription;
|
|
401
427
|
/**
|
|
402
428
|
* @type {?}
|
|
403
429
|
* @private
|
|
@@ -434,4 +460,4 @@ if (false) {
|
|
|
434
460
|
*/
|
|
435
461
|
RouterState.prototype._location;
|
|
436
462
|
}
|
|
437
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvcm91dGVyLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9yb3V0ZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsTUFBTSxFQUNOLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLGFBQWEsRUFDYixlQUFlLEVBQ2YsYUFBYSxFQUNkLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxPQUFPLEVBQ0wsUUFBUSxFQUVSLFlBQVksRUFDWixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNuQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFFckQsc0NBSUM7OztJQUhDLGlDQUFVOztJQUNWLHdDQUFzQjs7SUFDdEIsbUNBQXVCOztJQWNaLFdBQVcseUJBQVgsV0FBVzs7Ozs7Ozs7OztJQTZCdEIsWUFDVSxNQUFhLEVBQ2IsT0FBZSxFQUNmLFdBQXVELEVBQ3ZELE9BQWUsRUFDZixjQUE2QixFQUM3QixpQkFBbUMsRUFDbkMsU0FBbUI7UUFObkIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLFlBQU8sR0FBUCxPQUFPLENB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S3pDLG1DQUF3RDs7Ozs7O0lBS3hELGtDQUFvRDs7Ozs7SUFFcEQsNENBQXdEOzs7OztJQWF0RCw2QkFBcUI7Ozs7O0lBQ3JCLDhCQUF1Qjs7Ozs7SUFDdkIsa0NBQStEOzs7OztJQUMvRCw4QkFBdUI7Ozs7O0lBQ3ZCLHFDQUFxQzs7Ozs7SUFDckMsd0NBQTJDOzs7OztJQUMzQyxnQ0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1pvbmUsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOYXZpZ2F0aW9uQ2FuY2VsLFxyXG4gIE5hdmlnYXRpb25FcnJvcixcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICBSb3V0ZXNSZWNvZ25pemVkLFxyXG4gIFJlc29sdmVFbmQsXHJcbiAgVXJsU2VyaWFsaXplcixcclxuICBOYXZpZ2F0aW9uU3RhcnQsXHJcbiAgTmF2aWdhdGlvbkVuZFxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IExvY2F0aW9uU3RyYXRlZ3ksIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWN0aW9uLCBTZWxlY3RvciwgU3RhdGUsIFN0YXRlQ29udGV4dCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XHJcbmltcG9ydCB7IGlzQW5ndWxhckluVGVzdE1vZGUgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTmF2aWdhdGUsXHJcbiAgUm91dGVyQWN0aW9uLFxyXG4gIFJvdXRlckNhbmNlbCxcclxuICBSb3V0ZXJFcnJvcixcclxuICBSb3V0ZXJOYXZpZ2F0aW9uLFxyXG4gIFJvdXRlckRhdGFSZXNvbHZlZFxyXG59IGZyb20gJy4vcm91dGVyLmFjdGlvbnMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJTdGF0ZVNlcmlhbGl6ZXIgfSBmcm9tICcuL3NlcmlhbGl6ZXInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZXJTdGF0ZU1vZGVsPFQgPSBSb3V0ZXJTdGF0ZVNuYXBzaG90PiB7XHJcbiAgc3RhdGU/OiBUO1xyXG4gIG5hdmlnYXRpb25JZD86IG51bWJlcjtcclxuICB0cmlnZ2VyOiBSb3V0ZXJUcmlnZ2VyO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSb3V0ZXJUcmlnZ2VyID0gJ25vbmUnIHwgJ3JvdXRlcicgfCAnc3RvcmUnO1xyXG5cclxuQFN0YXRlPFJvdXRlclN0YXRlTW9kZWw+KHtcclxuICBuYW1lOiAncm91dGVyJyxcclxuICBkZWZhdWx0czoge1xyXG4gICAgc3RhdGU6IHVuZGVmaW5lZCxcclxuICAgIG5hdmlnYXRpb25JZDogdW5kZWZpbmVkLFxyXG4gICAgdHJpZ2dlcjogJ25vbmUnXHJcbiAgfVxyXG59KVxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXJTdGF0ZSB7XHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lcyBob3cgbmF2aWdhdGlvbiB3YXMgcGVyZm9ybWVkIGJ5IHRoZSBgUm91dGVyU3RhdGVgIGl0c2VsZlxyXG4gICAqIG9yIG91dHNpZGUgdmlhIGBuZXcgTmF2aWdhdGUoLi4uKWBcclxuICAgKi9cclxuICBwcml2YXRlIF90cmlnZ2VyOiBSb3V0ZXJUcmlnZ2VyID0gJ25vbmUnO1xyXG5cclxuICAvKipcclxuICAgKiBUaGF0J3MgdGhlIHNlcmlhbGl6ZWQgc3RhdGUgZnJvbSB0aGUgYFJvdXRlcmAgY2xhc3NcclxuICAgKi9cclxuICBwcml2YXRlIF9yb3V0ZXJTdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBUaGF0J3MgdGhlIHZhbHVlIG9mIHRoZSBgUm91dGVyU3RhdGVgIHN0YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfc3RvcmVTdGF0ZTogUm91dGVyU3RhdGVNb2RlbCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIF9sYXN0Um91dGVzUmVjb2duaXplZDogUm91dGVzUmVjb2duaXplZCA9IG51bGwhO1xyXG5cclxuICBAU2VsZWN0b3IoKVxyXG4gIHN0YXRpYyBzdGF0ZTxUID0gUm91dGVyU3RhdGVTbmFwc2hvdD4oc3RhdGU6IFJvdXRlclN0YXRlTW9kZWw8VD4pIHtcclxuICAgIHJldHVybiBzdGF0ZSAmJiBzdGF0ZS5zdGF0ZTtcclxuICB9XHJcblxyXG4gIEBTZWxlY3RvcigpXHJcbiAgc3RhdGljIHVybChzdGF0ZTogUm91dGVyU3RhdGVNb2RlbCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gc3RhdGUgJiYgc3RhdGUuc3RhdGUgJiYgc3RhdGUuc3RhdGUudXJsO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zdG9yZTogU3RvcmUsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgX3NlcmlhbGl6ZXI6IFJvdXRlclN0YXRlU2VyaWFsaXplcjxSb3V0ZXJTdGF0ZVNuYXBzaG90PixcclxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBfdXJsU2VyaWFsaXplcjogVXJsU2VyaWFsaXplcixcclxuICAgIHByaXZhdGUgX2xvY2F0aW9uU3RyYXRlZ3k6IExvY2F0aW9uU3RyYXRlZ3ksXHJcbiAgICBwcml2YXRlIF9sb2NhdGlvbjogTG9jYXRpb25cclxuICApIHtcclxuICAgIHRoaXMuc2V0VXBTdG9yZUxpc3RlbmVyKCk7XHJcbiAgICB0aGlzLnNldFVwUm91dGVyRXZlbnRzTGlzdGVuZXIoKTtcclxuICAgIHRoaXMuY2hlY2tJbml0aWFsTmF2aWdhdGlvbk9uY2UoKTtcclxuICB9XHJcblxyXG4gIEBBY3Rpb24oTmF2aWdhdGUpXHJcbiAgbmF2aWdhdGUoXzogU3RhdGVDb250ZXh0PFJvdXRlclN0YXRlTW9kZWw+LCBhY3Rpb246IE5hdmlnYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmdab25lLnJ1bigoKSA9PlxyXG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoYWN0aW9uLnBhdGgsIHtcclxuICAgICAgICBxdWVyeVBhcmFtczogYWN0aW9uLnF1ZXJ5UGFyYW1zLFxyXG4gICAgICAgIC4uLmFjdGlvbi5leHRyYXNcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAQWN0aW9uKFtSb3V0ZXJOYXZpZ2F0aW9uLCBSb3V0ZXJFcnJvciwgUm91dGVyQ2FuY2VsLCBSb3V0ZXJEYXRhUmVzb2x2ZWRdKVxyXG4gIGFuZ3VsYXJSb3V0ZXJBY3Rpb24oXHJcbiAgICBjdHg6IFN0YXRlQ29udGV4dDxSb3V0ZXJTdGF0ZU1vZGVsPixcclxuICAgIGFjdGlvbjogUm91dGVyQWN0aW9uPFJvdXRlclN0YXRlTW9kZWwsIFJvdXRlclN0YXRlU25hcHNob3Q+XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjdHguc2V0U3RhdGUoe1xyXG4gICAgICAuLi5jdHguZ2V0U3RhdGUoKSxcclxuICAgICAgdHJpZ2dlcjogYWN0aW9uLnRyaWdnZXIsXHJcbiAgICAgIHN0YXRlOiBhY3Rpb24ucm91dGVyU3RhdGUsXHJcbiAgICAgIG5hdmlnYXRpb25JZDogYWN0aW9uLmV2ZW50LmlkXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXBTdG9yZUxpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvcmUuc2VsZWN0KFJvdXRlclN0YXRlKS5zdWJzY3JpYmUoKHN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGVJZk5lZWRlZChzdGF0ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXBSb3V0ZXJFdmVudHNMaXN0ZW5lcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU3RhcnQoKTtcclxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIFJvdXRlc1JlY29nbml6ZWQpIHtcclxuICAgICAgICB0aGlzLl9sYXN0Um91dGVzUmVjb2duaXplZCA9IGV2ZW50O1xyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgUmVzb2x2ZUVuZCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJEYXRhUmVzb2x2ZWQoZXZlbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJDYW5jZWwoZXZlbnQpO1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJFcnJvcihldmVudCk7XHJcbiAgICAgICAgdGhpcy5yZXNldCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkVuZCgpO1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdmlnYXRpb25TdGFydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JvdXRlclN0YXRlID0gdGhpcy5fc2VyaWFsaXplci5zZXJpYWxpemUodGhpcy5fcm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90KTtcclxuXHJcbiAgICBpZiAodGhpcy5fdHJpZ2dlciAhPT0gJ25vbmUnKSB7XHJcbiAgICAgIHRoaXMuX3N0b3JlU3RhdGUgPSB0aGlzLl9zdG9yZS5zZWxlY3RTbmFwc2hvdChSb3V0ZXJTdGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdmlnYXRpb25FbmQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zaG91bGREaXNwYXRjaFJvdXRlck5hdmlnYXRpb24oKSkge1xyXG4gICAgICB0aGlzLmRpc3BhdGNoUm91dGVyTmF2aWdhdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG91bGREaXNwYXRjaFJvdXRlck5hdmlnYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuX3N0b3JlU3RhdGUpIHJldHVybiB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXIgIT09ICdzdG9yZSc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdmlnYXRlSWZOZWVkZWQoc3RhdGU6IFJvdXRlclN0YXRlTW9kZWwgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNhblNraXBOYXZpZ2F0aW9uID1cclxuICAgICAgIXRoaXMuX3N0b3JlU3RhdGUgfHxcclxuICAgICAgIXRoaXMuX3N0b3JlU3RhdGUuc3RhdGUgfHxcclxuICAgICAgIXN0YXRlIHx8XHJcbiAgICAgIHN0YXRlLnRyaWdnZXIgPT09ICdyb3V0ZXInIHx8XHJcbiAgICAgIHRoaXMuX3JvdXRlci51cmwgPT09IHRoaXMuX3N0b3JlU3RhdGUuc3RhdGUudXJsO1xyXG5cclxuICAgIGlmIChjYW5Ta2lwTmF2aWdhdGlvbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdHJpZ2dlciA9ICdzdG9yZSc7XHJcbiAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5fc3RvcmVTdGF0ZSEuc3RhdGUhLnVybCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0aW9uKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmV4dFJvdXRlclN0YXRlID0gdGhpcy5fc2VyaWFsaXplci5zZXJpYWxpemUodGhpcy5fbGFzdFJvdXRlc1JlY29nbml6ZWQuc3RhdGUpO1xyXG5cclxuICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJBY3Rpb24oXHJcbiAgICAgIG5ldyBSb3V0ZXJOYXZpZ2F0aW9uKFxyXG4gICAgICAgIG5leHRSb3V0ZXJTdGF0ZSxcclxuICAgICAgICBuZXcgUm91dGVzUmVjb2duaXplZChcclxuICAgICAgICAgIHRoaXMuX2xhc3RSb3V0ZXNSZWNvZ25pemVkLmlkLFxyXG4gICAgICAgICAgdGhpcy5fbGFzdFJvdXRlc1JlY29nbml6ZWQudXJsLFxyXG4gICAgICAgICAgdGhpcy5fbGFzdFJvdXRlc1JlY29nbml6ZWQudXJsQWZ0ZXJSZWRpcmVjdHMsXHJcbiAgICAgICAgICBuZXh0Um91dGVyU3RhdGVcclxuICAgICAgICApLFxyXG4gICAgICAgIHRoaXMuX3RyaWdnZXJcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlzcGF0Y2hSb3V0ZXJDYW5jZWwoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJBY3Rpb24oXHJcbiAgICAgIG5ldyBSb3V0ZXJDYW5jZWwodGhpcy5fcm91dGVyU3RhdGUhLCB0aGlzLl9zdG9yZVN0YXRlLCBldmVudCwgdGhpcy5fdHJpZ2dlcilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BhdGNoUm91dGVyRXJyb3IoZXZlbnQ6IE5hdmlnYXRpb25FcnJvcik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNwYXRjaFJvdXRlckFjdGlvbihcclxuICAgICAgbmV3IFJvdXRlckVycm9yKFxyXG4gICAgICAgIHRoaXMuX3JvdXRlclN0YXRlISxcclxuICAgICAgICB0aGlzLl9zdG9yZVN0YXRlLFxyXG4gICAgICAgIG5ldyBOYXZpZ2F0aW9uRXJyb3IoZXZlbnQuaWQsIGV2ZW50LnVybCwgYCR7ZXZlbnR9YCksXHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlclxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaFJvdXRlckFjdGlvbjxUPihhY3Rpb246IFJvdXRlckFjdGlvbjxUPik6IHZvaWQge1xyXG4gICAgdGhpcy5fdHJpZ2dlciA9ICdyb3V0ZXInO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKGFjdGlvbik7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICB0aGlzLl90cmlnZ2VyID0gJ25vbmUnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaFJvdXRlckRhdGFSZXNvbHZlZChldmVudDogUmVzb2x2ZUVuZCk6IHZvaWQge1xyXG4gICAgY29uc3Qgcm91dGVyU3RhdGUgPSB0aGlzLl9zZXJpYWxpemVyLnNlcmlhbGl6ZShldmVudC5zdGF0ZSk7XHJcbiAgICB0aGlzLmRpc3BhdGNoUm91dGVyQWN0aW9uKG5ldyBSb3V0ZXJEYXRhUmVzb2x2ZWQocm91dGVyU3RhdGUsIGV2ZW50LCB0aGlzLl90cmlnZ2VyKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHJpZ2dlciA9ICdub25lJztcclxuICAgIHRoaXMuX3N0b3JlU3RhdGUgPSBudWxsO1xyXG4gICAgdGhpcy5fcm91dGVyU3RhdGUgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTm8gc2Vuc2UgdG8gbWVzcyB1cCB0aGUgYHNldFVwUm91dGVyRXZlbnRzTGlzdGVuZXJgIG1ldGhvZCBhcyB3ZSBoYXZlXHJcbiAgICogdG8gcGVyZm9ybSB0aGlzIGNoZWNrIG9ubHkgb25jZSBhbmQgdW5zdWJzY3JpYmUgYWZ0ZXIgdGhlIGZpcnN0IGV2ZW50XHJcbiAgICogaXMgdHJpZ2dlcmVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjaGVja0luaXRpYWxOYXZpZ2F0aW9uT25jZSgpOiB2b2lkIHtcclxuICAgIGlmIChpc0FuZ3VsYXJJblRlc3RNb2RlKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3JvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoZmlyc3QoKGV2ZW50KTogZXZlbnQgaXMgUm91dGVzUmVjb2duaXplZCA9PiBldmVudCBpbnN0YW5jZW9mIFJvdXRlc1JlY29nbml6ZWQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh7IHVybCB9KSA9PiB7XHJcbiAgICAgICAgLy8gYGxvY2F0aW9uLnBhdGhuYW1lYCBhbHdheXMgZXF1YWxzIG1hbnVhbGx5IGVudGVyZWQgVVJMIGluIHRoZSBhZGRyZXNzIGJhclxyXG4gICAgICAgIC8vIGUuZy4gYGxvY2F0aW9uLnBhdGhuYW1lID09PSAnL2ZvbydgLCBidXQgdGhlIGByb3V0ZXJgIHN0YXRlIGhhcyBiZWVuIGluaXRpYWxpemVkXHJcbiAgICAgICAgLy8gd2l0aCBhbm90aGVyIFVSTCAoZS5nLiB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYE5neHNTdG9yYWdlUGx1Z2luYCksIHRodXMgdGhlXHJcbiAgICAgICAgLy8gYFJvdXRlck5hdmlnYXRpb25gIGFjdGlvbiB3aWxsIGJlIGRpc3BhdGNoZWQgYW5kIHRoZSB1c2VyIHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGVcclxuICAgICAgICAvLyBwcmV2aW91c2x5IHNhdmVkIFVSTC4gV2Ugd2FudCB0byBwcmV2ZW50IHN1Y2ggYmVoYXZpb3IsIHNvIHdlIHBlcmZvcm0gdGhpcyBjaGVja1xyXG5cclxuICAgICAgICAvLyBgdXJsYCBpcyBhIHJlY29nbml6ZWQgVVJMIGJ5IHRoZSBBbmd1bGFyJ3Mgcm91dGVyLCB3aGlsZSBgY3VycmVudFVybGAgaXMgYW4gYWN0dWFsIFVSTFxyXG4gICAgICAgIC8vIGVudGVyZWQgaW4gdGhlIGJyb3dzZXIncyBhZGRyZXNzIGJhclxyXG4gICAgICAgIC8vIGBQYXRoTG9jYXRpb25TdHJhdGVneS5wcm90b3R5cGUucGF0aCgpYCByZXR1cm5zIGEgY29uY2F0ZW5hdGlvbiBvZlxyXG4gICAgICAgIC8vIGBQbGF0Zm9ybUxvY2F0aW9uLnBhdGhuYW1lYCBhbmQgbm9ybWFsaXplZCBgUGxhdGZvcm1Mb2NhdGlvbi5zZWFyY2hgLlxyXG5cclxuICAgICAgICAvLyBgTG9jYXRpb24ucHJvdG90eXBlLm5vcm1hbGl6ZWAgc3RyaXBzIGJhc2UgaHJlZiBmcm9tIHRoZSBVUkwsXHJcbiAgICAgICAgLy8gaWYgYGJhc2VIcmVmYCAoZGVjbGFyZWQgaW4gYW5ndWxhci5qc29uKSBmb3IgZXhhbXBsZSBpcyBgL2VuYFxyXG4gICAgICAgIC8vIGFuZCB0aGUgVVJMIGlzIGAvdGVzdCNhbmNob3JgIC0gdGhlbiBgX2xvY2F0aW9uU3RyYXRlZ3kucGF0aCh0cnVlKWAgd2lsbCByZXR1cm4gYC9lbi90ZXN0I2FuY2hvcmAsXHJcbiAgICAgICAgLy8gYnV0IGAvZW4vdGVzdCNhbmNob3JgIGlzIG5vdCBrbm93biB0byB0aGUgQW5ndWxhcidzIHJvdXRlciwgc28gd2UgaGF2ZSB0byBzdHJpcCBgL2VuYFxyXG4gICAgICAgIC8vIGZyb20gdGhlIFVSTFxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLl9sb2NhdGlvbi5ub3JtYWxpemUodGhpcy5fbG9jYXRpb25TdHJhdGVneS5wYXRoKHRydWUpKTtcclxuICAgICAgICBjb25zdCBjdXJyZW50VXJsVHJlZSA9IHRoaXMuX3VybFNlcmlhbGl6ZXIucGFyc2UoY3VycmVudFVybCk7XHJcbiAgICAgICAgLy8gV2UgbmVlZCB0byBzZXJpYWxpemUgdGhlIFVSTCBiZWNhdXNlIGluIHRoYXQgZXhhbXBsZSBgL3Rlc3QvP3JlZGlyZWN0PWh0dHBzOi8vZ29vZ2xlLmNvbS9gXHJcbiAgICAgICAgLy8gQW5ndWxhciB3aWxsIHJlY29nbml6ZSBpdCBhcyBgL3Rlc3Q/cmVkaXJlY3Q9aHR0cHM6JTJGJTJGd3d3Lmdvb2dsZS5jb20lMkZgXHJcbiAgICAgICAgLy8gc28gd2UgaGF2ZSB0byBydW4gdGhlIGBjdXJyZW50VXJsYCB2aWEgdGhlIGBVcmxTZXJpYWxpemVyYCB0aGF0IHdpbGwgZW5jb2RlIGNoYXJhY3RlcnNcclxuICAgICAgICBjb25zdCBjdXJyZW50U2VyaWFsaXplZFVybCA9IHRoaXMuX3VybFNlcmlhbGl6ZXIuc2VyaWFsaXplKGN1cnJlbnRVcmxUcmVlKTtcclxuXHJcbiAgICAgICAgLy8gSWYgVVJMcyBkaWZmZXIgZnJvbSBlYWNoIG90aGVyIC0gd2UndmUgZ290IHRvIHBlcmZvcm0gYSByZWRpcmVjdCB0byB0aGUgbWFudWFsbHkgZW50ZXJlZCBVUkxcclxuICAgICAgICAvLyBpbiB0aGUgYWRkcmVzcyBiYXIsIGFzIGl0IG11c3QgaGF2ZSBhIHByaW9yaXR5XHJcbiAgICAgICAgaWYgKGN1cnJlbnRTZXJpYWxpemVkVXJsICE9PSB1cmwpIHtcclxuICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGN1cnJlbnRVcmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
463
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvcm91dGVyLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9yb3V0ZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLE1BQU0sRUFDTixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVixhQUFhLEVBQ2IsZUFBZSxFQUNmLGFBQWEsRUFDZCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxPQUFPLEVBQ0wsUUFBUSxFQUVSLFlBQVksRUFDWixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNuQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFFckQsc0NBSUM7OztJQUhDLGlDQUFVOztJQUNWLHdDQUFzQjs7SUFDdEIsbUNBQXVCOztJQW9CWixXQUFXLHlCQUFYLFdBQVc7Ozs7Ozs7Ozs7SUErQnRCLFlBQ1UsTUFBYSxFQUNiLE9BQWUsRUFDZixXQUF1RCxFQUN2RCxPQUFlLEVBQ2YsY0FBNkIsRUFDN0IsaUJBQW1DLEVBQ25DLFNB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M0Q7QUFHRDtJQURDLE1BQU0sQ0FBQyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQzs7OztzREFXekU7QUFoREQ7SUFEQyxRQUFRLEVBQUU7Ozs7OEJBR1Y7QUFHRDtJQURDLFFBQVEsRUFBRTs7Ozs0QkFHVjtBQTdCVSxXQUFXO0lBVHZCLEtBQUssQ0FBbUI7UUFDdkIsSUFBSSxFQUFFLFFBQVE7UUFDZCxRQUFRLEVBQUU7WUFDUixLQUFLLEVBQUUsU0FBUztZQUNoQixZQUFZLEVBQUUsU0FBUztZQUN2QixPQUFPLEVBQUUsTUFBTTtTQUNoQjtLQUNGLENBQUM7NkNBa0NrQixLQUFLO1FBQ0osTUFBTTtRQUNGLHFCQUFxQjtRQUN6QixNQUFNO1FBQ0MsYUFBYTtRQUNWLGdCQUFnQjtRQUN4QixRQUFRO0dBdENsQixXQUFXLENBeVB2QjtTQXpQWSxXQUFXOzs7Ozs7OztJQUt0QiwrQkFBeUM7Ozs7OztJQUt6QyxtQ0FBd0Q7Ozs7OztJQUt4RCxrQ0FBb0Q7Ozs7O0lBRXBELDRDQUF3RDs7Ozs7SUFFeEQsb0NBQTJDOzs7OztJQWF6Qyw2QkFBcUI7Ozs7O0lBQ3JCLDhCQUF1Qjs7Ozs7SUFDdkIsa0NBQStEOzs7OztJQUMvRCw4QkFBdUI7Ozs7O0lBQ3ZCLHFDQUFxQzs7Ozs7SUFDckMsd0NBQTJDOzs7OztJQUMzQyxnQ0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1pvbmUsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE5hdmlnYXRpb25DYW5jZWwsXHJcbiAgTmF2aWdhdGlvbkVycm9yLFxyXG4gIFJvdXRlcixcclxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxyXG4gIFJvdXRlc1JlY29nbml6ZWQsXHJcbiAgUmVzb2x2ZUVuZCxcclxuICBVcmxTZXJpYWxpemVyLFxyXG4gIE5hdmlnYXRpb25TdGFydCxcclxuICBOYXZpZ2F0aW9uRW5kXHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTG9jYXRpb25TdHJhdGVneSwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcclxuaW1wb3J0IHsgaXNBbmd1bGFySW5UZXN0TW9kZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTmF2aWdhdGUsXHJcbiAgUm91dGVyQWN0aW9uLFxyXG4gIFJvdXRlckNhbmNlbCxcclxuICBSb3V0ZXJFcnJvcixcclxuICBSb3V0ZXJOYXZpZ2F0aW9uLFxyXG4gIFJvdXRlckRhdGFSZXNvbHZlZFxyXG59IGZyb20gJy4vcm91dGVyLmFjdGlvbnMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJTdGF0ZVNlcmlhbGl6ZXIgfSBmcm9tICcuL3NlcmlhbGl6ZXInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZXJTdGF0ZU1vZGVsPFQgPSBSb3V0ZXJTdGF0ZVNuYXBzaG90PiB7XHJcbiAgc3RhdGU/OiBUO1xyXG4gIG5hdmlnYXRpb25JZD86IG51bWJlcjtcclxuICB0cmlnZ2VyOiBSb3V0ZXJUcmlnZ2VyO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSb3V0ZXJUcmlnZ2VyID0gJ25vbmUnIHwgJ3JvdXRlcicgfCAnc3RvcmUnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBXaWxsIGJlIHByb3ZpZGVkIHRocm91Z2ggVGVyc2VyIGdsb2JhbCBkZWZpbml0aW9ucyBieSBBbmd1bGFyIENMSVxyXG4gKiBkdXJpbmcgdGhlIHByb2R1Y3Rpb24gYnVpbGQuIFRoaXMgaXMgaG93IEFuZ3VsYXIgZG9lcyB0cmVlLXNoYWtpbmcgaW50ZXJuYWxseS5cclxuICovXHJcbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBib29sZWFuO1xyXG5cclxuQFN0YXRlPFJvdXRlclN0YXRlTW9kZWw+KHtcclxuICBuYW1lOiAncm91dGVyJyxcclxuICBkZWZhdWx0czoge1xyXG4gICAgc3RhdGU6IHVuZGVmaW5lZCxcclxuICAgIG5hdmlnYXRpb25JZDogdW5kZWZpbmVkLFxyXG4gICAgdHJpZ2dlcjogJ25vbmUnXHJcbiAgfVxyXG59KVxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXJTdGF0ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lcyBob3cgbmF2aWdhdGlvbiB3YXMgcGVyZm9ybWVkIGJ5IHRoZSBgUm91dGVyU3RhdGVgIGl0c2VsZlxyXG4gICAqIG9yIG91dHNpZGUgdmlhIGBuZXcgTmF2aWdhdGUoLi4uKWBcclxuICAgKi9cclxuICBwcml2YXRlIF90cmlnZ2VyOiBSb3V0ZXJUcmlnZ2VyID0gJ25vbmUnO1xyXG5cclxuICAvKipcclxuICAgKiBUaGF0J3MgdGhlIHNlcmlhbGl6ZWQgc3RhdGUgZnJvbSB0aGUgYFJvdXRlcmAgY2xhc3NcclxuICAgKi9cclxuICBwcml2YXRlIF9yb3V0ZXJTdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBUaGF0J3MgdGhlIHZhbHVlIG9mIHRoZSBgUm91dGVyU3RhdGVgIHN0YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfc3RvcmVTdGF0ZTogUm91dGVyU3RhdGVNb2RlbCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIF9sYXN0Um91dGVzUmVjb2duaXplZDogUm91dGVzUmVjb2duaXplZCA9IG51bGwhO1xyXG5cclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIEBTZWxlY3RvcigpXHJcbiAgc3RhdGljIHN0YXRlPFQgPSBSb3V0ZXJTdGF0ZVNuYXBzaG90PihzdGF0ZTogUm91dGVyU3RhdGVNb2RlbDxUPikge1xyXG4gICAgcmV0dXJuIHN0YXRlICYmIHN0YXRlLnN0YXRlO1xyXG4gIH1cclxuXHJcbiAgQFNlbGVjdG9yKClcclxuICBzdGF0aWMgdXJsKHN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBzdGF0ZSAmJiBzdGF0ZS5zdGF0ZSAmJiBzdGF0ZS5zdGF0ZS51cmw7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3N0b3JlOiBTdG9yZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfc2VyaWFsaXplcjogUm91dGVyU3RhdGVTZXJpYWxpemVyPFJvdXRlclN0YXRlU25hcHNob3Q+LFxyXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIF91cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyLFxyXG4gICAgcHJpdmF0ZSBfbG9jYXRpb25TdHJhdGVneTogTG9jYXRpb25TdHJhdGVneSxcclxuICAgIHByaXZhdGUgX2xvY2F0aW9uOiBMb2NhdGlvblxyXG4gICkge1xyXG4gICAgdGhpcy5zZXRVcFN0b3JlTGlzdGVuZXIoKTtcclxuICAgIHRoaXMuc2V0VXBSb3V0ZXJFdmVudHNMaXN0ZW5lcigpO1xyXG4gICAgdGhpcy5jaGVja0luaXRpYWxOYXZpZ2F0aW9uT25jZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIEBBY3Rpb24oTmF2aWdhdGUpXHJcbiAgbmF2aWdhdGUoXzogU3RhdGVDb250ZXh0PFJvdXRlclN0YXRlTW9kZWw+LCBhY3Rpb246IE5hdmlnYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmdab25lLnJ1bigoKSA9PlxyXG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoYWN0aW9uLnBhdGgsIHtcclxuICAgICAgICBxdWVyeVBhcmFtczogYWN0aW9uLnF1ZXJ5UGFyYW1zLFxyXG4gICAgICAgIC4uLmFjdGlvbi5leHRyYXNcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAQWN0aW9uKFtSb3V0ZXJOYXZpZ2F0aW9uLCBSb3V0ZXJFcnJvciwgUm91dGVyQ2FuY2VsLCBSb3V0ZXJEYXRhUmVzb2x2ZWRdKVxyXG4gIGFuZ3VsYXJSb3V0ZXJBY3Rpb24oXHJcbiAgICBjdHg6IFN0YXRlQ29udGV4dDxSb3V0ZXJTdGF0ZU1vZGVsPixcclxuICAgIGFjdGlvbjogUm91dGVyQWN0aW9uPFJvdXRlclN0YXRlTW9kZWwsIFJvdXRlclN0YXRlU25hcHNob3Q+XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjdHguc2V0U3RhdGUoe1xyXG4gICAgICAuLi5jdHguZ2V0U3RhdGUoKSxcclxuICAgICAgdHJpZ2dlcjogYWN0aW9uLnRyaWdnZXIsXHJcbiAgICAgIHN0YXRlOiBhY3Rpb24ucm91dGVyU3RhdGUsXHJcbiAgICAgIG5hdmlnYXRpb25JZDogYWN0aW9uLmV2ZW50LmlkXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXBTdG9yZUxpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5fc3RvcmVcclxuICAgICAgLnNlbGVjdChSb3V0ZXJTdGF0ZSlcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IFJvdXRlclN0YXRlTW9kZWwgfCB1bmRlZmluZWQpID0+IHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRlSWZOZWVkZWQoc3RhdGUpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVwUm91dGVyRXZlbnRzTGlzdGVuZXIoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLl9yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvblN0YXJ0KCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZXNSZWNvZ25pemVkKSB7XHJcbiAgICAgICAgdGhpcy5fbGFzdFJvdXRlc1JlY29nbml6ZWQgPSBldmVudDtcclxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIFJlc29sdmVFbmQpIHtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoUm91dGVyRGF0YVJlc29sdmVkKGV2ZW50KTtcclxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwpIHtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoUm91dGVyQ2FuY2VsKGV2ZW50KTtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoUm91dGVyRXJyb3IoZXZlbnQpO1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRpb25FbmQoKTtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGlvblN0YXJ0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcm91dGVyU3RhdGUgPSB0aGlzLl9zZXJpYWxpemVyLnNlcmlhbGl6ZSh0aGlzLl9yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QpO1xyXG5cclxuICAgIGlmICh0aGlzLl90cmlnZ2VyICE9PSAnbm9uZScpIHtcclxuICAgICAgdGhpcy5fc3RvcmVTdGF0ZSA9IHRoaXMuX3N0b3JlLnNlbGVjdFNuYXBzaG90KFJvdXRlclN0YXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGlvbkVuZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNob3VsZERpc3BhdGNoUm91dGVyTmF2aWdhdGlvbigpKSB7XHJcbiAgICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3VsZERpc3BhdGNoUm91dGVyTmF2aWdhdGlvbigpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5fc3RvcmVTdGF0ZSkgcmV0dXJuIHRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlciAhPT0gJ3N0b3JlJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVJZk5lZWRlZChzdGF0ZTogUm91dGVyU3RhdGVNb2RlbCB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgY29uc3QgY2FuU2tpcE5hdmlnYXRpb24gPVxyXG4gICAgICAhdGhpcy5fc3RvcmVTdGF0ZSB8fFxyXG4gICAgICAhdGhpcy5fc3RvcmVTdGF0ZS5zdGF0ZSB8fFxyXG4gICAgICAhc3RhdGUgfHxcclxuICAgICAgc3RhdGUudHJpZ2dlciA9PT0gJ3JvdXRlcicgfHxcclxuICAgICAgdGhpcy5fcm91dGVyLnVybCA9PT0gdGhpcy5fc3RvcmVTdGF0ZS5zdGF0ZS51cmw7XHJcblxyXG4gICAgaWYgKGNhblNraXBOYXZpZ2F0aW9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl90cmlnZ2VyID0gJ3N0b3JlJztcclxuICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLl9zdG9yZVN0YXRlIS5zdGF0ZSEudXJsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaFJvdXRlck5hdmlnYXRpb24oKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZXh0Um91dGVyU3RhdGUgPSB0aGlzLl9zZXJpYWxpemVyLnNlcmlhbGl6ZSh0aGlzLl9sYXN0Um91dGVzUmVjb2duaXplZC5zdGF0ZSk7XHJcblxyXG4gICAgdGhpcy5kaXNwYXRjaFJvdXRlckFjdGlvbihcclxuICAgICAgbmV3IFJvdXRlck5hdmlnYXRpb24oXHJcbiAgICAgICAgbmV4dFJvdXRlclN0YXRlLFxyXG4gICAgICAgIG5ldyBSb3V0ZXNSZWNvZ25pemVkKFxyXG4gICAgICAgICAgdGhpcy5fbGFzdFJvdXRlc1JlY29nbml6ZWQuaWQsXHJcbiAgICAgICAgICB0aGlzLl9sYXN0Um91dGVzUmVjb2duaXplZC51cmwsXHJcbiAgICAgICAgICB0aGlzLl9sYXN0Um91dGVzUmVjb2duaXplZC51cmxBZnRlclJlZGlyZWN0cyxcclxuICAgICAgICAgIG5leHRSb3V0ZXJTdGF0ZVxyXG4gICAgICAgICksXHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlclxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaFJvdXRlckNhbmNlbChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNwYXRjaFJvdXRlckFjdGlvbihcclxuICAgICAgbmV3IFJvdXRlckNhbmNlbCh0aGlzLl9yb3V0ZXJTdGF0ZSEsIHRoaXMuX3N0b3JlU3RhdGUsIGV2ZW50LCB0aGlzLl90cmlnZ2VyKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlzcGF0Y2hSb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3BhdGNoUm91dGVyQWN0aW9uKFxyXG4gICAgICBuZXcgUm91dGVyRXJyb3IoXHJcbiAgICAgICAgdGhpcy5fcm91dGVyU3RhdGUhLFxyXG4gICAgICAgIHRoaXMuX3N0b3JlU3RhdGUsXHJcbiAgICAgICAgbmV3IE5hdmlnYXRpb25FcnJvcihldmVudC5pZCwgZXZlbnQudXJsLCBgJHtldmVudH1gKSxcclxuICAgICAgICB0aGlzLl90cmlnZ2VyXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BhdGNoUm91dGVyQWN0aW9uPFQ+KGFjdGlvbjogUm91dGVyQWN0aW9uPFQ+KTogdm9pZCB7XHJcbiAgICB0aGlzLl90cmlnZ2VyID0gJ3JvdXRlcic7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goYWN0aW9uKTtcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHRoaXMuX3RyaWdnZXIgPSAnbm9uZSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BhdGNoUm91dGVyRGF0YVJlc29sdmVkKGV2ZW50OiBSZXNvbHZlRW5kKTogdm9pZCB7XHJcbiAgICBjb25zdCByb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKGV2ZW50LnN0YXRlKTtcclxuICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJBY3Rpb24obmV3IFJvdXRlckRhdGFSZXNvbHZlZChyb3V0ZXJTdGF0ZSwgZXZlbnQsIHRoaXMuX3RyaWdnZXIpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl90cmlnZ2VyID0gJ25vbmUnO1xyXG4gICAgdGhpcy5fc3RvcmVTdGF0ZSA9IG51bGw7XHJcbiAgICB0aGlzLl9yb3V0ZXJTdGF0ZSA9IG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBObyBzZW5zZSB0byBtZXNzIHVwIHRoZSBgc2V0VXBSb3V0ZXJFdmVudHNMaXN0ZW5lcmAgbWV0aG9kIGFzIHdlIGhhdmVcclxuICAgKiB0byBwZXJmb3JtIHRoaXMgY2hlY2sgb25seSBvbmNlIGFuZCB1bnN1YnNjcmliZSBhZnRlciB0aGUgZmlyc3QgZXZlbnRcclxuICAgKiBpcyB0cmlnZ2VyZWRcclxuICAgKi9cclxuICBwcml2YXRlIGNoZWNrSW5pdGlhbE5hdmlnYXRpb25PbmNlKCk6IHZvaWQge1xyXG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IHdlIGhhdmUgc3RpbGwgbGVmdCB0aGUgYHR5cGVvZmAgY29uZGl0aW9uIGluIG9yZGVyIHRvIGF2b2lkXHJcbiAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxyXG4gICAgaWYgKFxyXG4gICAgICAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSAmJlxyXG4gICAgICAvLyBBbmd1bGFyIGlzIHJ1bm5pbmcgdGVzdHMgaW4gZGV2ZWxvcG1lbnQgbW9kZSB0aHVzIHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhpcyBtZXRob2Qgd2lsbCBiZVxyXG4gICAgICAvLyBza2lwcGVkIGluIHRlc3RzLlxyXG4gICAgICBpc0FuZ3VsYXJJblRlc3RNb2RlKClcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5fcm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShmaXJzdCgoZXZlbnQpOiBldmVudCBpcyBSb3V0ZXNSZWNvZ25pemVkID0+IGV2ZW50IGluc3RhbmNlb2YgUm91dGVzUmVjb2duaXplZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHsgdXJsIH0pID0+IHtcclxuICAgICAgICAvLyBgbG9jYXRpb24ucGF0aG5hbWVgIGFsd2F5cyBlcXVhbHMgbWFudWFsbHkgZW50ZXJlZCBVUkwgaW4gdGhlIGFkZHJlc3MgYmFyXHJcbiAgICAgICAgLy8gZS5nLiBgbG9jYXRpb24ucGF0aG5hbWUgPT09ICcvZm9vJ2AsIGJ1dCB0aGUgYHJvdXRlcmAgc3RhdGUgaGFzIGJlZW4gaW5pdGlhbGl6ZWRcclxuICAgICAgICAvLyB3aXRoIGFub3RoZXIgVVJMIChlLmcuIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgTmd4c1N0b3JhZ2VQbHVnaW5gKSwgdGh1cyB0aGVcclxuICAgICAgICAvLyBgUm91dGVyTmF2aWdhdGlvbmAgYWN0aW9uIHdpbGwgYmUgZGlzcGF0Y2hlZCBhbmQgdGhlIHVzZXIgd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZVxyXG4gICAgICAgIC8vIHByZXZpb3VzbHkgc2F2ZWQgVVJMLiBXZSB3YW50IHRvIHByZXZlbnQgc3VjaCBiZWhhdmlvciwgc28gd2UgcGVyZm9ybSB0aGlzIGNoZWNrXHJcblxyXG4gICAgICAgIC8vIGB1cmxgIGlzIGEgcmVjb2duaXplZCBVUkwgYnkgdGhlIEFuZ3VsYXIncyByb3V0ZXIsIHdoaWxlIGBjdXJyZW50VXJsYCBpcyBhbiBhY3R1YWwgVVJMXHJcbiAgICAgICAgLy8gZW50ZXJlZCBpbiB0aGUgYnJvd3NlcidzIGFkZHJlc3MgYmFyXHJcbiAgICAgICAgLy8gYFBhdGhMb2NhdGlvblN0cmF0ZWd5LnByb3RvdHlwZS5wYXRoKClgIHJldHVybnMgYSBjb25jYXRlbmF0aW9uIG9mXHJcbiAgICAgICAgLy8gYFBsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWVgIGFuZCBub3JtYWxpemVkIGBQbGF0Zm9ybUxvY2F0aW9uLnNlYXJjaGAuXHJcblxyXG4gICAgICAgIC8vIGBMb2NhdGlvbi5wcm90b3R5cGUubm9ybWFsaXplYCBzdHJpcHMgYmFzZSBocmVmIGZyb20gdGhlIFVSTCxcclxuICAgICAgICAvLyBpZiBgYmFzZUhyZWZgIChkZWNsYXJlZCBpbiBhbmd1bGFyLmpzb24pIGZvciBleGFtcGxlIGlzIGAvZW5gXHJcbiAgICAgICAgLy8gYW5kIHRoZSBVUkwgaXMgYC90ZXN0I2FuY2hvcmAgLSB0aGVuIGBfbG9jYXRpb25TdHJhdGVneS5wYXRoKHRydWUpYCB3aWxsIHJldHVybiBgL2VuL3Rlc3QjYW5jaG9yYCxcclxuICAgICAgICAvLyBidXQgYC9lbi90ZXN0I2FuY2hvcmAgaXMgbm90IGtub3duIHRvIHRoZSBBbmd1bGFyJ3Mgcm91dGVyLCBzbyB3ZSBoYXZlIHRvIHN0cmlwIGAvZW5gXHJcbiAgICAgICAgLy8gZnJvbSB0aGUgVVJMXHJcbiAgICAgICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMuX2xvY2F0aW9uLm5vcm1hbGl6ZSh0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnBhdGgodHJ1ZSkpO1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRVcmxUcmVlID0gdGhpcy5fdXJsU2VyaWFsaXplci5wYXJzZShjdXJyZW50VXJsKTtcclxuICAgICAgICAvLyBXZSBuZWVkIHRvIHNlcmlhbGl6ZSB0aGUgVVJMIGJlY2F1c2UgaW4gdGhhdCBleGFtcGxlIGAvdGVzdC8/cmVkaXJlY3Q9aHR0cHM6Ly9nb29nbGUuY29tL2BcclxuICAgICAgICAvLyBBbmd1bGFyIHdpbGwgcmVjb2duaXplIGl0IGFzIGAvdGVzdD9yZWRpcmVjdD1odHRwczolMkYlMkZ3d3cuZ29vZ2xlLmNvbSUyRmBcclxuICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIHJ1biB0aGUgYGN1cnJlbnRVcmxgIHZpYSB0aGUgYFVybFNlcmlhbGl6ZXJgIHRoYXQgd2lsbCBlbmNvZGUgY2hhcmFjdGVyc1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRTZXJpYWxpemVkVXJsID0gdGhpcy5fdXJsU2VyaWFsaXplci5zZXJpYWxpemUoY3VycmVudFVybFRyZWUpO1xyXG5cclxuICAgICAgICAvLyBJZiBVUkxzIGRpZmZlciBmcm9tIGVhY2ggb3RoZXIgLSB3ZSd2ZSBnb3QgdG8gcGVyZm9ybSBhIHJlZGlyZWN0IHRvIHRoZSBtYW51YWxseSBlbnRlcmVkIFVSTFxyXG4gICAgICAgIC8vIGluIHRoZSBhZGRyZXNzIGJhciwgYXMgaXQgbXVzdCBoYXZlIGEgcHJpb3JpdHlcclxuICAgICAgICBpZiAoY3VycmVudFNlcmlhbGl6ZWRVcmwgIT09IHVybCkge1xyXG4gICAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoY3VycmVudFVybCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm5/src/router.state.js
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
|
-
import { NgZone, Injectable } from '@angular/core';
|
|
6
|
+
import { NgZone, Injectable, OnDestroy } from '@angular/core';
|
|
7
7
|
import { NavigationCancel, NavigationError, Router, RouterStateSnapshot, RoutesRecognized, ResolveEnd, UrlSerializer, NavigationStart, NavigationEnd } from '@angular/router';
|
|
8
8
|
import { LocationStrategy, Location } from '@angular/common';
|
|
9
9
|
import { Action, Selector, State, StateContext, Store } from '@ngxs/store';
|
|
10
10
|
import { isAngularInTestMode } from '@ngxs/store/internals';
|
|
11
|
+
import { Subscription } from 'rxjs';
|
|
11
12
|
import { first } from 'rxjs/operators';
|
|
12
13
|
import { Navigate, RouterCancel, RouterError, RouterNavigation, RouterDataResolved } from './router.actions';
|
|
13
14
|
import { RouterStateSerializer } from './serializer';
|
|
@@ -47,6 +48,7 @@ var RouterState = /** @class */ (function () {
|
|
|
47
48
|
*/
|
|
48
49
|
this._storeState = null;
|
|
49
50
|
this._lastRoutesRecognized = (/** @type {?} */ (null));
|
|
51
|
+
this._subscription = new Subscription();
|
|
50
52
|
this.setUpStoreListener();
|
|
51
53
|
this.setUpRouterEventsListener();
|
|
52
54
|
this.checkInitialNavigationOnce();
|
|
@@ -76,6 +78,15 @@ var RouterState = /** @class */ (function () {
|
|
|
76
78
|
function (state) {
|
|
77
79
|
return state && state.state && state.state.url;
|
|
78
80
|
};
|
|
81
|
+
/**
|
|
82
|
+
* @return {?}
|
|
83
|
+
*/
|
|
84
|
+
RouterState.prototype.ngOnDestroy = /**
|
|
85
|
+
* @return {?}
|
|
86
|
+
*/
|
|
87
|
+
function () {
|
|
88
|
+
this._subscription.unsubscribe();
|
|
89
|
+
};
|
|
79
90
|
/**
|
|
80
91
|
* @param {?} _
|
|
81
92
|
* @param {?} action
|
|
@@ -118,13 +129,17 @@ var RouterState = /** @class */ (function () {
|
|
|
118
129
|
*/
|
|
119
130
|
function () {
|
|
120
131
|
var _this = this;
|
|
121
|
-
|
|
132
|
+
/** @type {?} */
|
|
133
|
+
var subscription = this._store
|
|
134
|
+
.select(RouterState_1)
|
|
135
|
+
.subscribe((/**
|
|
122
136
|
* @param {?} state
|
|
123
137
|
* @return {?}
|
|
124
138
|
*/
|
|
125
139
|
function (state) {
|
|
126
140
|
_this.navigateIfNeeded(state);
|
|
127
141
|
}));
|
|
142
|
+
this._subscription.add(subscription);
|
|
128
143
|
};
|
|
129
144
|
/**
|
|
130
145
|
* @private
|
|
@@ -136,7 +151,8 @@ var RouterState = /** @class */ (function () {
|
|
|
136
151
|
*/
|
|
137
152
|
function () {
|
|
138
153
|
var _this = this;
|
|
139
|
-
|
|
154
|
+
/** @type {?} */
|
|
155
|
+
var subscription = this._router.events.subscribe((/**
|
|
140
156
|
* @param {?} event
|
|
141
157
|
* @return {?}
|
|
142
158
|
*/
|
|
@@ -163,6 +179,7 @@ var RouterState = /** @class */ (function () {
|
|
|
163
179
|
_this.reset();
|
|
164
180
|
}
|
|
165
181
|
}));
|
|
182
|
+
this._subscription.add(subscription);
|
|
166
183
|
};
|
|
167
184
|
/**
|
|
168
185
|
* @private
|
|
@@ -342,10 +359,16 @@ var RouterState = /** @class */ (function () {
|
|
|
342
359
|
*/
|
|
343
360
|
function () {
|
|
344
361
|
var _this = this;
|
|
345
|
-
|
|
362
|
+
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
363
|
+
// creating a breaking change for projects that still use the View Engine.
|
|
364
|
+
if ((typeof ngDevMode === 'undefined' || ngDevMode) &&
|
|
365
|
+
// Angular is running tests in development mode thus we can be sure that this method will be
|
|
366
|
+
// skipped in tests.
|
|
367
|
+
isAngularInTestMode()) {
|
|
346
368
|
return;
|
|
347
369
|
}
|
|
348
|
-
|
|
370
|
+
/** @type {?} */
|
|
371
|
+
var subscription = this._router.events
|
|
349
372
|
.pipe(first((/**
|
|
350
373
|
* @param {?} event
|
|
351
374
|
* @return {?}
|
|
@@ -391,6 +414,7 @@ var RouterState = /** @class */ (function () {
|
|
|
391
414
|
_this._router.navigateByUrl(currentUrl);
|
|
392
415
|
}
|
|
393
416
|
}));
|
|
417
|
+
this._subscription.add(subscription);
|
|
394
418
|
};
|
|
395
419
|
var RouterState_1;
|
|
396
420
|
RouterState.ctorParameters = function () { return [
|
|
@@ -484,6 +508,11 @@ if (false) {
|
|
|
484
508
|
* @private
|
|
485
509
|
*/
|
|
486
510
|
RouterState.prototype._lastRoutesRecognized;
|
|
511
|
+
/**
|
|
512
|
+
* @type {?}
|
|
513
|
+
* @private
|
|
514
|
+
*/
|
|
515
|
+
RouterState.prototype._subscription;
|
|
487
516
|
/**
|
|
488
517
|
* @type {?}
|
|
489
518
|
* @private
|
|
@@ -520,4 +549,4 @@ if (false) {
|
|
|
520
549
|
*/
|
|
521
550
|
RouterState.prototype._location;
|
|
522
551
|
}
|
|
523
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvcm91dGVyLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9yb3V0ZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixNQUFNLEVBQ04sbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsYUFBYSxFQUNiLGVBQWUsRUFDZixhQUFhLEVBQ2QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFDTCxRQUFRLEVBRVIsWUFBWSxFQUNaLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ25CLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQUVyRCxzQ0FJQzs7O0lBSEMsaUNBQVU7O0lBQ1Ysd0NBQXNCOztJQUN0QixtQ0FBdUI7OztJQTJDdkIscUJBQ1UsTUFBYSxFQUNiLE9BQWUsRUFDZixXQUF1RCxFQUN2RCxPQUFlLEVBQ2YsY0FBNkIsRUFDN0IsaUJBQW1DLEVBQ25DLFNBQW1CO1FBTm5CLFdBQU0sR0FBTixNQUFNLENBQU87UUFDYixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQTRD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RSxTQUFTO2dCQUN2QixPQUFPLEVBQUUsTUFBTTthQUNoQjtTQUNGLENBQUM7aURBZ0NrQixLQUFLO1lBQ0osTUFBTTtZQUNGLHFCQUFxQjtZQUN6QixNQUFNO1lBQ0MsYUFBYTtZQUNWLGdCQUFnQjtZQUN4QixRQUFRO09BcENsQixXQUFXLENBb092QjtJQUFELGtCQUFDO0NBQUEsSUFBQTtTQXBPWSxXQUFXOzs7Ozs7OztJQUt0QiwrQkFBeUM7Ozs7OztJQUt6QyxtQ0FBd0Q7Ozs7OztJQUt4RCxrQ0FBb0Q7Ozs7O0lBRXBELDRDQUF3RDs7Ozs7SUFhdEQsNkJBQXFCOzs7OztJQUNyQiw4QkFBdUI7Ozs7O0lBQ3ZCLGtDQUErRDs7Ozs7SUFDL0QsOEJBQXVCOzs7OztJQUN2QixxQ0FBcUM7Ozs7O0lBQ3JDLHdDQUEyQzs7Ozs7SUFDM0MsZ0NBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdab25lLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTmF2aWdhdGlvbkNhbmNlbCxcclxuICBOYXZpZ2F0aW9uRXJyb3IsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXHJcbiAgUm91dGVzUmVjb2duaXplZCxcclxuICBSZXNvbHZlRW5kLFxyXG4gIFVybFNlcmlhbGl6ZXIsXHJcbiAgTmF2aWdhdGlvblN0YXJ0LFxyXG4gIE5hdmlnYXRpb25FbmRcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBMb2NhdGlvblN0cmF0ZWd5LCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xyXG5pbXBvcnQgeyBpc0FuZ3VsYXJJblRlc3RNb2RlIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIE5hdmlnYXRlLFxyXG4gIFJvdXRlckFjdGlvbixcclxuICBSb3V0ZXJDYW5jZWwsXHJcbiAgUm91dGVyRXJyb3IsXHJcbiAgUm91dGVyTmF2aWdhdGlvbixcclxuICBSb3V0ZXJEYXRhUmVzb2x2ZWRcclxufSBmcm9tICcuL3JvdXRlci5hY3Rpb25zJztcclxuaW1wb3J0IHsgUm91dGVyU3RhdGVTZXJpYWxpemVyIH0gZnJvbSAnLi9zZXJpYWxpemVyJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVyU3RhdGVNb2RlbDxUID0gUm91dGVyU3RhdGVTbmFwc2hvdD4ge1xyXG4gIHN0YXRlPzogVDtcclxuICBuYXZpZ2F0aW9uSWQ/OiBudW1iZXI7XHJcbiAgdHJpZ2dlcjogUm91dGVyVHJpZ2dlcjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUm91dGVyVHJpZ2dlciA9ICdub25lJyB8ICdyb3V0ZXInIHwgJ3N0b3JlJztcclxuXHJcbkBTdGF0ZTxSb3V0ZXJTdGF0ZU1vZGVsPih7XHJcbiAgbmFtZTogJ3JvdXRlcicsXHJcbiAgZGVmYXVsdHM6IHtcclxuICAgIHN0YXRlOiB1bmRlZmluZWQsXHJcbiAgICBuYXZpZ2F0aW9uSWQ6IHVuZGVmaW5lZCxcclxuICAgIHRyaWdnZXI6ICdub25lJ1xyXG4gIH1cclxufSlcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUm91dGVyU3RhdGUge1xyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgaG93IG5hdmlnYXRpb24gd2FzIHBlcmZvcm1lZCBieSB0aGUgYFJvdXRlclN0YXRlYCBpdHNlbGZcclxuICAgKiBvciBvdXRzaWRlIHZpYSBgbmV3IE5hdmlnYXRlKC4uLilgXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfdHJpZ2dlcjogUm91dGVyVHJpZ2dlciA9ICdub25lJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhhdCdzIHRoZSBzZXJpYWxpemVkIHN0YXRlIGZyb20gdGhlIGBSb3V0ZXJgIGNsYXNzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcm91dGVyU3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhhdCdzIHRoZSB2YWx1ZSBvZiB0aGUgYFJvdXRlclN0YXRlYCBzdGF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3N0b3JlU3RhdGU6IFJvdXRlclN0YXRlTW9kZWwgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBfbGFzdFJvdXRlc1JlY29nbml6ZWQ6IFJvdXRlc1JlY29nbml6ZWQgPSBudWxsITtcclxuXHJcbiAgQFNlbGVjdG9yKClcclxuICBzdGF0aWMgc3RhdGU8VCA9IFJvdXRlclN0YXRlU25hcHNob3Q+KHN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsPFQ+KSB7XHJcbiAgICByZXR1cm4gc3RhdGUgJiYgc3RhdGUuc3RhdGU7XHJcbiAgfVxyXG5cclxuICBAU2VsZWN0b3IoKVxyXG4gIHN0YXRpYyB1cmwoc3RhdGU6IFJvdXRlclN0YXRlTW9kZWwpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHN0YXRlICYmIHN0YXRlLnN0YXRlICYmIHN0YXRlLnN0YXRlLnVybDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXJpYWxpemVyOiBSb3V0ZXJTdGF0ZVNlcmlhbGl6ZXI8Um91dGVyU3RhdGVTbmFwc2hvdD4sXHJcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgX3VybFNlcmlhbGl6ZXI6IFVybFNlcmlhbGl6ZXIsXHJcbiAgICBwcml2YXRlIF9sb2NhdGlvblN0cmF0ZWd5OiBMb2NhdGlvblN0cmF0ZWd5LFxyXG4gICAgcHJpdmF0ZSBfbG9jYXRpb246IExvY2F0aW9uXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNldFVwU3RvcmVMaXN0ZW5lcigpO1xyXG4gICAgdGhpcy5zZXRVcFJvdXRlckV2ZW50c0xpc3RlbmVyKCk7XHJcbiAgICB0aGlzLmNoZWNrSW5pdGlhbE5hdmlnYXRpb25PbmNlKCk7XHJcbiAgfVxyXG5cclxuICBAQWN0aW9uKE5hdmlnYXRlKVxyXG4gIG5hdmlnYXRlKF86IFN0YXRlQ29udGV4dDxSb3V0ZXJTdGF0ZU1vZGVsPiwgYWN0aW9uOiBOYXZpZ2F0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX25nWm9uZS5ydW4oKCkgPT5cclxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKGFjdGlvbi5wYXRoLCB7XHJcbiAgICAgICAgcXVlcnlQYXJhbXM6IGFjdGlvbi5xdWVyeVBhcmFtcyxcclxuICAgICAgICAuLi5hY3Rpb24uZXh0cmFzXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQEFjdGlvbihbUm91dGVyTmF2aWdhdGlvbiwgUm91dGVyRXJyb3IsIFJvdXRlckNhbmNlbCwgUm91dGVyRGF0YVJlc29sdmVkXSlcclxuICBhbmd1bGFyUm91dGVyQWN0aW9uKFxyXG4gICAgY3R4OiBTdGF0ZUNvbnRleHQ8Um91dGVyU3RhdGVNb2RlbD4sXHJcbiAgICBhY3Rpb246IFJvdXRlckFjdGlvbjxSb3V0ZXJTdGF0ZU1vZGVsLCBSb3V0ZXJTdGF0ZVNuYXBzaG90PlxyXG4gICk6IHZvaWQge1xyXG4gICAgY3R4LnNldFN0YXRlKHtcclxuICAgICAgLi4uY3R4LmdldFN0YXRlKCksXHJcbiAgICAgIHRyaWdnZXI6IGFjdGlvbi50cmlnZ2VyLFxyXG4gICAgICBzdGF0ZTogYWN0aW9uLnJvdXRlclN0YXRlLFxyXG4gICAgICBuYXZpZ2F0aW9uSWQ6IGFjdGlvbi5ldmVudC5pZFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVwU3RvcmVMaXN0ZW5lcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b3JlLnNlbGVjdChSb3V0ZXJTdGF0ZSkuc3Vic2NyaWJlKChzdGF0ZTogUm91dGVyU3RhdGVNb2RlbCB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gICAgICB0aGlzLm5hdmlnYXRlSWZOZWVkZWQoc3RhdGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVwUm91dGVyRXZlbnRzTGlzdGVuZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvblN0YXJ0KCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZXNSZWNvZ25pemVkKSB7XHJcbiAgICAgICAgdGhpcy5fbGFzdFJvdXRlc1JlY29nbml6ZWQgPSBldmVudDtcclxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIFJlc29sdmVFbmQpIHtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoUm91dGVyRGF0YVJlc29sdmVkKGV2ZW50KTtcclxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwpIHtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoUm91dGVyQ2FuY2VsKGV2ZW50KTtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoUm91dGVyRXJyb3IoZXZlbnQpO1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRpb25FbmQoKTtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uU3RhcnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKHRoaXMuX3JvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX3RyaWdnZXIgIT09ICdub25lJykge1xyXG4gICAgICB0aGlzLl9zdG9yZVN0YXRlID0gdGhpcy5fc3RvcmUuc2VsZWN0U25hcHNob3QoUm91dGVyU3RhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uRW5kKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2hvdWxkRGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0aW9uKCkpIHtcclxuICAgICAgdGhpcy5kaXNwYXRjaFJvdXRlck5hdmlnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvdWxkRGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLl9zdG9yZVN0YXRlKSByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyICE9PSAnc3RvcmUnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZUlmTmVlZGVkKHN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBjb25zdCBjYW5Ta2lwTmF2aWdhdGlvbiA9XHJcbiAgICAgICF0aGlzLl9zdG9yZVN0YXRlIHx8XHJcbiAgICAgICF0aGlzLl9zdG9yZVN0YXRlLnN0YXRlIHx8XHJcbiAgICAgICFzdGF0ZSB8fFxyXG4gICAgICBzdGF0ZS50cmlnZ2VyID09PSAncm91dGVyJyB8fFxyXG4gICAgICB0aGlzLl9yb3V0ZXIudXJsID09PSB0aGlzLl9zdG9yZVN0YXRlLnN0YXRlLnVybDtcclxuXHJcbiAgICBpZiAoY2FuU2tpcE5hdmlnYXRpb24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3RyaWdnZXIgPSAnc3RvcmUnO1xyXG4gICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuX3N0b3JlU3RhdGUhLnN0YXRlIS51cmwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BhdGNoUm91dGVyTmF2aWdhdGlvbigpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5leHRSb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKHRoaXMuX2xhc3RSb3V0ZXNSZWNvZ25pemVkLnN0YXRlKTtcclxuXHJcbiAgICB0aGlzLmRpc3BhdGNoUm91dGVyQWN0aW9uKFxyXG4gICAgICBuZXcgUm91dGVyTmF2aWdhdGlvbihcclxuICAgICAgICBuZXh0Um91dGVyU3RhdGUsXHJcbiAgICAgICAgbmV3IFJvdXRlc1JlY29nbml6ZWQoXHJcbiAgICAgICAgICB0aGlzLl9sYXN0Um91dGVzUmVjb2duaXplZC5pZCxcclxuICAgICAgICAgIHRoaXMuX2xhc3RSb3V0ZXNSZWNvZ25pemVkLnVybCxcclxuICAgICAgICAgIHRoaXMuX2xhc3RSb3V0ZXNSZWNvZ25pemVkLnVybEFmdGVyUmVkaXJlY3RzLFxyXG4gICAgICAgICAgbmV4dFJvdXRlclN0YXRlXHJcbiAgICAgICAgKSxcclxuICAgICAgICB0aGlzLl90cmlnZ2VyXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BhdGNoUm91dGVyQ2FuY2VsKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3BhdGNoUm91dGVyQWN0aW9uKFxyXG4gICAgICBuZXcgUm91dGVyQ2FuY2VsKHRoaXMuX3JvdXRlclN0YXRlISwgdGhpcy5fc3RvcmVTdGF0ZSwgZXZlbnQsIHRoaXMuX3RyaWdnZXIpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaFJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJBY3Rpb24oXHJcbiAgICAgIG5ldyBSb3V0ZXJFcnJvcihcclxuICAgICAgICB0aGlzLl9yb3V0ZXJTdGF0ZSEsXHJcbiAgICAgICAgdGhpcy5fc3RvcmVTdGF0ZSxcclxuICAgICAgICBuZXcgTmF2aWdhdGlvbkVycm9yKGV2ZW50LmlkLCBldmVudC51cmwsIGAke2V2ZW50fWApLFxyXG4gICAgICAgIHRoaXMuX3RyaWdnZXJcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlzcGF0Y2hSb3V0ZXJBY3Rpb248VD4oYWN0aW9uOiBSb3V0ZXJBY3Rpb248VD4pOiB2b2lkIHtcclxuICAgIHRoaXMuX3RyaWdnZXIgPSAncm91dGVyJztcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChhY3Rpb24pO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5fdHJpZ2dlciA9ICdub25lJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlzcGF0Y2hSb3V0ZXJEYXRhUmVzb2x2ZWQoZXZlbnQ6IFJlc29sdmVFbmQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJvdXRlclN0YXRlID0gdGhpcy5fc2VyaWFsaXplci5zZXJpYWxpemUoZXZlbnQuc3RhdGUpO1xyXG4gICAgdGhpcy5kaXNwYXRjaFJvdXRlckFjdGlvbihuZXcgUm91dGVyRGF0YVJlc29sdmVkKHJvdXRlclN0YXRlLCBldmVudCwgdGhpcy5fdHJpZ2dlcikpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3RyaWdnZXIgPSAnbm9uZSc7XHJcbiAgICB0aGlzLl9zdG9yZVN0YXRlID0gbnVsbDtcclxuICAgIHRoaXMuX3JvdXRlclN0YXRlID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5vIHNlbnNlIHRvIG1lc3MgdXAgdGhlIGBzZXRVcFJvdXRlckV2ZW50c0xpc3RlbmVyYCBtZXRob2QgYXMgd2UgaGF2ZVxyXG4gICAqIHRvIHBlcmZvcm0gdGhpcyBjaGVjayBvbmx5IG9uY2UgYW5kIHVuc3Vic2NyaWJlIGFmdGVyIHRoZSBmaXJzdCBldmVudFxyXG4gICAqIGlzIHRyaWdnZXJlZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgY2hlY2tJbml0aWFsTmF2aWdhdGlvbk9uY2UoKTogdm9pZCB7XHJcbiAgICBpZiAoaXNBbmd1bGFySW5UZXN0TW9kZSgpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzXHJcbiAgICAgIC5waXBlKGZpcnN0KChldmVudCk6IGV2ZW50IGlzIFJvdXRlc1JlY29nbml6ZWQgPT4gZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZXNSZWNvZ25pemVkKSlcclxuICAgICAgLnN1YnNjcmliZSgoeyB1cmwgfSkgPT4ge1xyXG4gICAgICAgIC8vIGBsb2NhdGlvbi5wYXRobmFtZWAgYWx3YXlzIGVxdWFscyBtYW51YWxseSBlbnRlcmVkIFVSTCBpbiB0aGUgYWRkcmVzcyBiYXJcclxuICAgICAgICAvLyBlLmcuIGBsb2NhdGlvbi5wYXRobmFtZSA9PT0gJy9mb28nYCwgYnV0IHRoZSBgcm91dGVyYCBzdGF0ZSBoYXMgYmVlbiBpbml0aWFsaXplZFxyXG4gICAgICAgIC8vIHdpdGggYW5vdGhlciBVUkwgKGUuZy4gdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGBOZ3hzU3RvcmFnZVBsdWdpbmApLCB0aHVzIHRoZVxyXG4gICAgICAgIC8vIGBSb3V0ZXJOYXZpZ2F0aW9uYCBhY3Rpb24gd2lsbCBiZSBkaXNwYXRjaGVkIGFuZCB0aGUgdXNlciB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gdGhlXHJcbiAgICAgICAgLy8gcHJldmlvdXNseSBzYXZlZCBVUkwuIFdlIHdhbnQgdG8gcHJldmVudCBzdWNoIGJlaGF2aW9yLCBzbyB3ZSBwZXJmb3JtIHRoaXMgY2hlY2tcclxuXHJcbiAgICAgICAgLy8gYHVybGAgaXMgYSByZWNvZ25pemVkIFVSTCBieSB0aGUgQW5ndWxhcidzIHJvdXRlciwgd2hpbGUgYGN1cnJlbnRVcmxgIGlzIGFuIGFjdHVhbCBVUkxcclxuICAgICAgICAvLyBlbnRlcmVkIGluIHRoZSBicm93c2VyJ3MgYWRkcmVzcyBiYXJcclxuICAgICAgICAvLyBgUGF0aExvY2F0aW9uU3RyYXRlZ3kucHJvdG90eXBlLnBhdGgoKWAgcmV0dXJucyBhIGNvbmNhdGVuYXRpb24gb2ZcclxuICAgICAgICAvLyBgUGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZWAgYW5kIG5vcm1hbGl6ZWQgYFBsYXRmb3JtTG9jYXRpb24uc2VhcmNoYC5cclxuXHJcbiAgICAgICAgLy8gYExvY2F0aW9uLnByb3RvdHlwZS5ub3JtYWxpemVgIHN0cmlwcyBiYXNlIGhyZWYgZnJvbSB0aGUgVVJMLFxyXG4gICAgICAgIC8vIGlmIGBiYXNlSHJlZmAgKGRlY2xhcmVkIGluIGFuZ3VsYXIuanNvbikgZm9yIGV4YW1wbGUgaXMgYC9lbmBcclxuICAgICAgICAvLyBhbmQgdGhlIFVSTCBpcyBgL3Rlc3QjYW5jaG9yYCAtIHRoZW4gYF9sb2NhdGlvblN0cmF0ZWd5LnBhdGgodHJ1ZSlgIHdpbGwgcmV0dXJuIGAvZW4vdGVzdCNhbmNob3JgLFxyXG4gICAgICAgIC8vIGJ1dCBgL2VuL3Rlc3QjYW5jaG9yYCBpcyBub3Qga25vd24gdG8gdGhlIEFuZ3VsYXIncyByb3V0ZXIsIHNvIHdlIGhhdmUgdG8gc3RyaXAgYC9lbmBcclxuICAgICAgICAvLyBmcm9tIHRoZSBVUkxcclxuICAgICAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5fbG9jYXRpb24ubm9ybWFsaXplKHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kucGF0aCh0cnVlKSk7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFVybFRyZWUgPSB0aGlzLl91cmxTZXJpYWxpemVyLnBhcnNlKGN1cnJlbnRVcmwpO1xyXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gc2VyaWFsaXplIHRoZSBVUkwgYmVjYXVzZSBpbiB0aGF0IGV4YW1wbGUgYC90ZXN0Lz9yZWRpcmVjdD1odHRwczovL2dvb2dsZS5jb20vYFxyXG4gICAgICAgIC8vIEFuZ3VsYXIgd2lsbCByZWNvZ25pemUgaXQgYXMgYC90ZXN0P3JlZGlyZWN0PWh0dHBzOiUyRiUyRnd3dy5nb29nbGUuY29tJTJGYFxyXG4gICAgICAgIC8vIHNvIHdlIGhhdmUgdG8gcnVuIHRoZSBgY3VycmVudFVybGAgdmlhIHRoZSBgVXJsU2VyaWFsaXplcmAgdGhhdCB3aWxsIGVuY29kZSBjaGFyYWN0ZXJzXHJcbiAgICAgICAgY29uc3QgY3VycmVudFNlcmlhbGl6ZWRVcmwgPSB0aGlzLl91cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShjdXJyZW50VXJsVHJlZSk7XHJcblxyXG4gICAgICAgIC8vIElmIFVSTHMgZGlmZmVyIGZyb20gZWFjaCBvdGhlciAtIHdlJ3ZlIGdvdCB0byBwZXJmb3JtIGEgcmVkaXJlY3QgdG8gdGhlIG1hbnVhbGx5IGVudGVyZWQgVVJMXHJcbiAgICAgICAgLy8gaW4gdGhlIGFkZHJlc3MgYmFyLCBhcyBpdCBtdXN0IGhhdmUgYSBwcmlvcml0eVxyXG4gICAgICAgIGlmIChjdXJyZW50U2VyaWFsaXplZFVybCAhPT0gdXJsKSB7XHJcbiAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChjdXJyZW50VXJsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
552
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvcm91dGVyLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9yb3V0ZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsTUFBTSxFQUNOLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLGFBQWEsRUFDYixlQUFlLEVBQ2YsYUFBYSxFQUNkLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFDTCxRQUFRLEVBRVIsWUFBWSxFQUNaLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ25CLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQUVyRCxzQ0FJQzs7O0lBSEMsaUNBQVU7O0lBQ1Ysd0NBQXNCOztJQUN0QixtQ0FBdUI7OztJQW1EdkIscUJBQ1UsTUFBYSxFQUNiLE9BQWUsRUFDZixXQUF1RCxFQUN2RCxPQUFlLEVBQ2YsY0FBNkIsRUFDN0IsaUJBQW1DLEVBQ25DLFNBQW1CO1FBTm5CLFdBQU0sR0FBTixNQUFNLENBQU87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QUFhO2dCQUNWLGdCQUFnQjtnQkFDeEIsUUFBUTs7O2dCQXZDOUIsVUFBVTs7OztnQkFyQ3FDLEtBQUs7Z0JBVG5ELE1BQU07Z0JBc0JDLHFCQUFxQjtnQkExQnJCLE1BQU07Z0JBUWIsYUFBYTtnQkFJTixnQkFBZ0I7Z0JBQUUsUUFBUTs7SUF5RmpDO1FBREMsTUFBTSxDQUFDLFFBQVEsQ0FBQzs7eURBQ21DLFFBQVE7OytDQU8zRDtJQUdEO1FBREMsTUFBTSxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDOzs7OzBEQVd6RTtJQWhERDtRQURDLFFBQVEsRUFBRTs7OztrQ0FHVjtJQUdEO1FBREMsUUFBUSxFQUFFOzs7O2dDQUdWO0lBN0JVLFdBQVc7UUFUdkIsS0FBSyxDQUFtQjtZQUN2QixJQUFJLEVBQUUsUUFBUTtZQUNkLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUsU0FBUztnQkFDaEIsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCO1NBQ0YsQ0FBQztpREFrQ2tCLEtBQUs7WUFDSixNQUFNO1lBQ0YscUJBQXFCO1lBQ3pCLE1BQU07WUFDQyxhQUFhO1lBQ1YsZ0JBQWdCO1lBQ3hCLFFBQVE7T0F0Q2xCLFdBQVcsQ0F5UHZCO0lBQUQsa0JBQUM7Q0FBQSxJQUFBO1NBelBZLFdBQVc7Ozs7Ozs7O0lBS3RCLCtCQUF5Qzs7Ozs7O0lBS3pDLG1DQUF3RDs7Ozs7O0lBS3hELGtDQUFvRDs7Ozs7SUFFcEQsNENBQXdEOzs7OztJQUV4RCxvQ0FBMkM7Ozs7O0lBYXpDLDZCQUFxQjs7Ozs7SUFDckIsOEJBQXVCOzs7OztJQUN2QixrQ0FBK0Q7Ozs7O0lBQy9ELDhCQUF1Qjs7Ozs7SUFDdkIscUNBQXFDOzs7OztJQUNyQyx3Q0FBMkM7Ozs7O0lBQzNDLGdDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nWm9uZSwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTmF2aWdhdGlvbkNhbmNlbCxcclxuICBOYXZpZ2F0aW9uRXJyb3IsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXHJcbiAgUm91dGVzUmVjb2duaXplZCxcclxuICBSZXNvbHZlRW5kLFxyXG4gIFVybFNlcmlhbGl6ZXIsXHJcbiAgTmF2aWdhdGlvblN0YXJ0LFxyXG4gIE5hdmlnYXRpb25FbmRcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBMb2NhdGlvblN0cmF0ZWd5LCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xyXG5pbXBvcnQgeyBpc0FuZ3VsYXJJblRlc3RNb2RlIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBOYXZpZ2F0ZSxcclxuICBSb3V0ZXJBY3Rpb24sXHJcbiAgUm91dGVyQ2FuY2VsLFxyXG4gIFJvdXRlckVycm9yLFxyXG4gIFJvdXRlck5hdmlnYXRpb24sXHJcbiAgUm91dGVyRGF0YVJlc29sdmVkXHJcbn0gZnJvbSAnLi9yb3V0ZXIuYWN0aW9ucyc7XHJcbmltcG9ydCB7IFJvdXRlclN0YXRlU2VyaWFsaXplciB9IGZyb20gJy4vc2VyaWFsaXplcic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlclN0YXRlTW9kZWw8VCA9IFJvdXRlclN0YXRlU25hcHNob3Q+IHtcclxuICBzdGF0ZT86IFQ7XHJcbiAgbmF2aWdhdGlvbklkPzogbnVtYmVyO1xyXG4gIHRyaWdnZXI6IFJvdXRlclRyaWdnZXI7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJvdXRlclRyaWdnZXIgPSAnbm9uZScgfCAncm91dGVyJyB8ICdzdG9yZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIFdpbGwgYmUgcHJvdmlkZWQgdGhyb3VnaCBUZXJzZXIgZ2xvYmFsIGRlZmluaXRpb25zIGJ5IEFuZ3VsYXIgQ0xJXHJcbiAqIGR1cmluZyB0aGUgcHJvZHVjdGlvbiBidWlsZC4gVGhpcyBpcyBob3cgQW5ndWxhciBkb2VzIHRyZWUtc2hha2luZyBpbnRlcm5hbGx5LlxyXG4gKi9cclxuZGVjbGFyZSBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW47XHJcblxyXG5AU3RhdGU8Um91dGVyU3RhdGVNb2RlbD4oe1xyXG4gIG5hbWU6ICdyb3V0ZXInLFxyXG4gIGRlZmF1bHRzOiB7XHJcbiAgICBzdGF0ZTogdW5kZWZpbmVkLFxyXG4gICAgbmF2aWdhdGlvbklkOiB1bmRlZmluZWQsXHJcbiAgICB0cmlnZ2VyOiAnbm9uZSdcclxuICB9XHJcbn0pXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFJvdXRlclN0YXRlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAvKipcclxuICAgKiBEZXRlcm1pbmVzIGhvdyBuYXZpZ2F0aW9uIHdhcyBwZXJmb3JtZWQgYnkgdGhlIGBSb3V0ZXJTdGF0ZWAgaXRzZWxmXHJcbiAgICogb3Igb3V0c2lkZSB2aWEgYG5ldyBOYXZpZ2F0ZSguLi4pYFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3RyaWdnZXI6IFJvdXRlclRyaWdnZXIgPSAnbm9uZSc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoYXQncyB0aGUgc2VyaWFsaXplZCBzdGF0ZSBmcm9tIHRoZSBgUm91dGVyYCBjbGFzc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX3JvdXRlclN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoYXQncyB0aGUgdmFsdWUgb2YgdGhlIGBSb3V0ZXJTdGF0ZWAgc3RhdGVcclxuICAgKi9cclxuICBwcml2YXRlIF9zdG9yZVN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgX2xhc3RSb3V0ZXNSZWNvZ25pemVkOiBSb3V0ZXNSZWNvZ25pemVkID0gbnVsbCE7XHJcblxyXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgQFNlbGVjdG9yKClcclxuICBzdGF0aWMgc3RhdGU8VCA9IFJvdXRlclN0YXRlU25hcHNob3Q+KHN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsPFQ+KSB7XHJcbiAgICByZXR1cm4gc3RhdGUgJiYgc3RhdGUuc3RhdGU7XHJcbiAgfVxyXG5cclxuICBAU2VsZWN0b3IoKVxyXG4gIHN0YXRpYyB1cmwoc3RhdGU6IFJvdXRlclN0YXRlTW9kZWwpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHN0YXRlICYmIHN0YXRlLnN0YXRlICYmIHN0YXRlLnN0YXRlLnVybDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXJpYWxpemVyOiBSb3V0ZXJTdGF0ZVNlcmlhbGl6ZXI8Um91dGVyU3RhdGVTbmFwc2hvdD4sXHJcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgX3VybFNlcmlhbGl6ZXI6IFVybFNlcmlhbGl6ZXIsXHJcbiAgICBwcml2YXRlIF9sb2NhdGlvblN0cmF0ZWd5OiBMb2NhdGlvblN0cmF0ZWd5LFxyXG4gICAgcHJpdmF0ZSBfbG9jYXRpb246IExvY2F0aW9uXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNldFVwU3RvcmVMaXN0ZW5lcigpO1xyXG4gICAgdGhpcy5zZXRVcFJvdXRlckV2ZW50c0xpc3RlbmVyKCk7XHJcbiAgICB0aGlzLmNoZWNrSW5pdGlhbE5hdmlnYXRpb25PbmNlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgQEFjdGlvbihOYXZpZ2F0ZSlcclxuICBuYXZpZ2F0ZShfOiBTdGF0ZUNvbnRleHQ8Um91dGVyU3RhdGVNb2RlbD4sIGFjdGlvbjogTmF2aWdhdGUpIHtcclxuICAgIHJldHVybiB0aGlzLl9uZ1pvbmUucnVuKCgpID0+XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShhY3Rpb24ucGF0aCwge1xyXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiBhY3Rpb24ucXVlcnlQYXJhbXMsXHJcbiAgICAgICAgLi4uYWN0aW9uLmV4dHJhc1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBBY3Rpb24oW1JvdXRlck5hdmlnYXRpb24sIFJvdXRlckVycm9yLCBSb3V0ZXJDYW5jZWwsIFJvdXRlckRhdGFSZXNvbHZlZF0pXHJcbiAgYW5ndWxhclJvdXRlckFjdGlvbihcclxuICAgIGN0eDogU3RhdGVDb250ZXh0PFJvdXRlclN0YXRlTW9kZWw+LFxyXG4gICAgYWN0aW9uOiBSb3V0ZXJBY3Rpb248Um91dGVyU3RhdGVNb2RlbCwgUm91dGVyU3RhdGVTbmFwc2hvdD5cclxuICApOiB2b2lkIHtcclxuICAgIGN0eC5zZXRTdGF0ZSh7XHJcbiAgICAgIC4uLmN0eC5nZXRTdGF0ZSgpLFxyXG4gICAgICB0cmlnZ2VyOiBhY3Rpb24udHJpZ2dlcixcclxuICAgICAgc3RhdGU6IGFjdGlvbi5yb3V0ZXJTdGF0ZSxcclxuICAgICAgbmF2aWdhdGlvbklkOiBhY3Rpb24uZXZlbnQuaWRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcFN0b3JlTGlzdGVuZXIoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLl9zdG9yZVxyXG4gICAgICAuc2VsZWN0KFJvdXRlclN0YXRlKVxyXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogUm91dGVyU3RhdGVNb2RlbCB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGVJZk5lZWRlZChzdGF0ZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXBSb3V0ZXJFdmVudHNMaXN0ZW5lcigpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuX3JvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU3RhcnQoKTtcclxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIFJvdXRlc1JlY29nbml6ZWQpIHtcclxuICAgICAgICB0aGlzLl9sYXN0Um91dGVzUmVjb2duaXplZCA9IGV2ZW50O1xyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgUmVzb2x2ZUVuZCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJEYXRhUmVzb2x2ZWQoZXZlbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJDYW5jZWwoZXZlbnQpO1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJFcnJvcihldmVudCk7XHJcbiAgICAgICAgdGhpcy5yZXNldCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkVuZCgpO1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uU3RhcnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKHRoaXMuX3JvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX3RyaWdnZXIgIT09ICdub25lJykge1xyXG4gICAgICB0aGlzLl9zdG9yZVN0YXRlID0gdGhpcy5fc3RvcmUuc2VsZWN0U25hcHNob3QoUm91dGVyU3RhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uRW5kKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2hvdWxkRGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0aW9uKCkpIHtcclxuICAgICAgdGhpcy5kaXNwYXRjaFJvdXRlck5hdmlnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvdWxkRGlzcGF0Y2hSb3V0ZXJOYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLl9zdG9yZVN0YXRlKSByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyICE9PSAnc3RvcmUnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZUlmTmVlZGVkKHN0YXRlOiBSb3V0ZXJTdGF0ZU1vZGVsIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBjb25zdCBjYW5Ta2lwTmF2aWdhdGlvbiA9XHJcbiAgICAgICF0aGlzLl9zdG9yZVN0YXRlIHx8XHJcbiAgICAgICF0aGlzLl9zdG9yZVN0YXRlLnN0YXRlIHx8XHJcbiAgICAgICFzdGF0ZSB8fFxyXG4gICAgICBzdGF0ZS50cmlnZ2VyID09PSAncm91dGVyJyB8fFxyXG4gICAgICB0aGlzLl9yb3V0ZXIudXJsID09PSB0aGlzLl9zdG9yZVN0YXRlLnN0YXRlLnVybDtcclxuXHJcbiAgICBpZiAoY2FuU2tpcE5hdmlnYXRpb24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3RyaWdnZXIgPSAnc3RvcmUnO1xyXG4gICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuX3N0b3JlU3RhdGUhLnN0YXRlIS51cmwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BhdGNoUm91dGVyTmF2aWdhdGlvbigpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5leHRSb3V0ZXJTdGF0ZSA9IHRoaXMuX3NlcmlhbGl6ZXIuc2VyaWFsaXplKHRoaXMuX2xhc3RSb3V0ZXNSZWNvZ25pemVkLnN0YXRlKTtcclxuXHJcbiAgICB0aGlzLmRpc3BhdGNoUm91dGVyQWN0aW9uKFxyXG4gICAgICBuZXcgUm91dGVyTmF2aWdhdGlvbihcclxuICAgICAgICBuZXh0Um91dGVyU3RhdGUsXHJcbiAgICAgICAgbmV3IFJvdXRlc1JlY29nbml6ZWQoXHJcbiAgICAgICAgICB0aGlzLl9sYXN0Um91dGVzUmVjb2duaXplZC5pZCxcclxuICAgICAgICAgIHRoaXMuX2xhc3RSb3V0ZXNSZWNvZ25pemVkLnVybCxcclxuICAgICAgICAgIHRoaXMuX2xhc3RSb3V0ZXNSZWNvZ25pemVkLnVybEFmdGVyUmVkaXJlY3RzLFxyXG4gICAgICAgICAgbmV4dFJvdXRlclN0YXRlXHJcbiAgICAgICAgKSxcclxuICAgICAgICB0aGlzLl90cmlnZ2VyXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRpc3BhdGNoUm91dGVyQ2FuY2VsKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3BhdGNoUm91dGVyQWN0aW9uKFxyXG4gICAgICBuZXcgUm91dGVyQ2FuY2VsKHRoaXMuX3JvdXRlclN0YXRlISwgdGhpcy5fc3RvcmVTdGF0ZSwgZXZlbnQsIHRoaXMuX3RyaWdnZXIpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaFJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzcGF0Y2hSb3V0ZXJBY3Rpb24oXHJcbiAgICAgIG5ldyBSb3V0ZXJFcnJvcihcclxuICAgICAgICB0aGlzLl9yb3V0ZXJTdGF0ZSEsXHJcbiAgICAgICAgdGhpcy5fc3RvcmVTdGF0ZSxcclxuICAgICAgICBuZXcgTmF2aWdhdGlvbkVycm9yKGV2ZW50LmlkLCBldmVudC51cmwsIGAke2V2ZW50fWApLFxyXG4gICAgICAgIHRoaXMuX3RyaWdnZXJcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlzcGF0Y2hSb3V0ZXJBY3Rpb248VD4oYWN0aW9uOiBSb3V0ZXJBY3Rpb248VD4pOiB2b2lkIHtcclxuICAgIHRoaXMuX3RyaWdnZXIgPSAncm91dGVyJztcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChhY3Rpb24pO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5fdHJpZ2dlciA9ICdub25lJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlzcGF0Y2hSb3V0ZXJEYXRhUmVzb2x2ZWQoZXZlbnQ6IFJlc29sdmVFbmQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJvdXRlclN0YXRlID0gdGhpcy5fc2VyaWFsaXplci5zZXJpYWxpemUoZXZlbnQuc3RhdGUpO1xyXG4gICAgdGhpcy5kaXNwYXRjaFJvdXRlckFjdGlvbihuZXcgUm91dGVyRGF0YVJlc29sdmVkKHJvdXRlclN0YXRlLCBldmVudCwgdGhpcy5fdHJpZ2dlcikpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3RyaWdnZXIgPSAnbm9uZSc7XHJcbiAgICB0aGlzLl9zdG9yZVN0YXRlID0gbnVsbDtcclxuICAgIHRoaXMuX3JvdXRlclN0YXRlID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5vIHNlbnNlIHRvIG1lc3MgdXAgdGhlIGBzZXRVcFJvdXRlckV2ZW50c0xpc3RlbmVyYCBtZXRob2QgYXMgd2UgaGF2ZVxyXG4gICAqIHRvIHBlcmZvcm0gdGhpcyBjaGVjayBvbmx5IG9uY2UgYW5kIHVuc3Vic2NyaWJlIGFmdGVyIHRoZSBmaXJzdCBldmVudFxyXG4gICAqIGlzIHRyaWdnZXJlZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgY2hlY2tJbml0aWFsTmF2aWdhdGlvbk9uY2UoKTogdm9pZCB7XHJcbiAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcclxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXHJcbiAgICBpZiAoXHJcbiAgICAgICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpICYmXHJcbiAgICAgIC8vIEFuZ3VsYXIgaXMgcnVubmluZyB0ZXN0cyBpbiBkZXZlbG9wbWVudCBtb2RlIHRodXMgd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGlzIG1ldGhvZCB3aWxsIGJlXHJcbiAgICAgIC8vIHNraXBwZWQgaW4gdGVzdHMuXHJcbiAgICAgIGlzQW5ndWxhckluVGVzdE1vZGUoKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLl9yb3V0ZXIuZXZlbnRzXHJcbiAgICAgIC5waXBlKGZpcnN0KChldmVudCk6IGV2ZW50IGlzIFJvdXRlc1JlY29nbml6ZWQgPT4gZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZXNSZWNvZ25pemVkKSlcclxuICAgICAgLnN1YnNjcmliZSgoeyB1cmwgfSkgPT4ge1xyXG4gICAgICAgIC8vIGBsb2NhdGlvbi5wYXRobmFtZWAgYWx3YXlzIGVxdWFscyBtYW51YWxseSBlbnRlcmVkIFVSTCBpbiB0aGUgYWRkcmVzcyBiYXJcclxuICAgICAgICAvLyBlLmcuIGBsb2NhdGlvbi5wYXRobmFtZSA9PT0gJy9mb28nYCwgYnV0IHRoZSBgcm91dGVyYCBzdGF0ZSBoYXMgYmVlbiBpbml0aWFsaXplZFxyXG4gICAgICAgIC8vIHdpdGggYW5vdGhlciBVUkwgKGUuZy4gdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGBOZ3hzU3RvcmFnZVBsdWdpbmApLCB0aHVzIHRoZVxyXG4gICAgICAgIC8vIGBSb3V0ZXJOYXZpZ2F0aW9uYCBhY3Rpb24gd2lsbCBiZSBkaXNwYXRjaGVkIGFuZCB0aGUgdXNlciB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gdGhlXHJcbiAgICAgICAgLy8gcHJldmlvdXNseSBzYXZlZCBVUkwuIFdlIHdhbnQgdG8gcHJldmVudCBzdWNoIGJlaGF2aW9yLCBzbyB3ZSBwZXJmb3JtIHRoaXMgY2hlY2tcclxuXHJcbiAgICAgICAgLy8gYHVybGAgaXMgYSByZWNvZ25pemVkIFVSTCBieSB0aGUgQW5ndWxhcidzIHJvdXRlciwgd2hpbGUgYGN1cnJlbnRVcmxgIGlzIGFuIGFjdHVhbCBVUkxcclxuICAgICAgICAvLyBlbnRlcmVkIGluIHRoZSBicm93c2VyJ3MgYWRkcmVzcyBiYXJcclxuICAgICAgICAvLyBgUGF0aExvY2F0aW9uU3RyYXRlZ3kucHJvdG90eXBlLnBhdGgoKWAgcmV0dXJucyBhIGNvbmNhdGVuYXRpb24gb2ZcclxuICAgICAgICAvLyBgUGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZWAgYW5kIG5vcm1hbGl6ZWQgYFBsYXRmb3JtTG9jYXRpb24uc2VhcmNoYC5cclxuXHJcbiAgICAgICAgLy8gYExvY2F0aW9uLnByb3RvdHlwZS5ub3JtYWxpemVgIHN0cmlwcyBiYXNlIGhyZWYgZnJvbSB0aGUgVVJMLFxyXG4gICAgICAgIC8vIGlmIGBiYXNlSHJlZmAgKGRlY2xhcmVkIGluIGFuZ3VsYXIuanNvbikgZm9yIGV4YW1wbGUgaXMgYC9lbmBcclxuICAgICAgICAvLyBhbmQgdGhlIFVSTCBpcyBgL3Rlc3QjYW5jaG9yYCAtIHRoZW4gYF9sb2NhdGlvblN0cmF0ZWd5LnBhdGgodHJ1ZSlgIHdpbGwgcmV0dXJuIGAvZW4vdGVzdCNhbmNob3JgLFxyXG4gICAgICAgIC8vIGJ1dCBgL2VuL3Rlc3QjYW5jaG9yYCBpcyBub3Qga25vd24gdG8gdGhlIEFuZ3VsYXIncyByb3V0ZXIsIHNvIHdlIGhhdmUgdG8gc3RyaXAgYC9lbmBcclxuICAgICAgICAvLyBmcm9tIHRoZSBVUkxcclxuICAgICAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5fbG9jYXRpb24ubm9ybWFsaXplKHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kucGF0aCh0cnVlKSk7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFVybFRyZWUgPSB0aGlzLl91cmxTZXJpYWxpemVyLnBhcnNlKGN1cnJlbnRVcmwpO1xyXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gc2VyaWFsaXplIHRoZSBVUkwgYmVjYXVzZSBpbiB0aGF0IGV4YW1wbGUgYC90ZXN0Lz9yZWRpcmVjdD1odHRwczovL2dvb2dsZS5jb20vYFxyXG4gICAgICAgIC8vIEFuZ3VsYXIgd2lsbCByZWNvZ25pemUgaXQgYXMgYC90ZXN0P3JlZGlyZWN0PWh0dHBzOiUyRiUyRnd3dy5nb29nbGUuY29tJTJGYFxyXG4gICAgICAgIC8vIHNvIHdlIGhhdmUgdG8gcnVuIHRoZSBgY3VycmVudFVybGAgdmlhIHRoZSBgVXJsU2VyaWFsaXplcmAgdGhhdCB3aWxsIGVuY29kZSBjaGFyYWN0ZXJzXHJcbiAgICAgICAgY29uc3QgY3VycmVudFNlcmlhbGl6ZWRVcmwgPSB0aGlzLl91cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShjdXJyZW50VXJsVHJlZSk7XHJcblxyXG4gICAgICAgIC8vIElmIFVSTHMgZGlmZmVyIGZyb20gZWFjaCBvdGhlciAtIHdlJ3ZlIGdvdCB0byBwZXJmb3JtIGEgcmVkaXJlY3QgdG8gdGhlIG1hbnVhbGx5IGVudGVyZWQgVVJMXHJcbiAgICAgICAgLy8gaW4gdGhlIGFkZHJlc3MgYmFyLCBhcyBpdCBtdXN0IGhhdmUgYSBwcmlvcml0eVxyXG4gICAgICAgIGlmIChjdXJyZW50U2VyaWFsaXplZFVybCAhPT0gdXJsKSB7XHJcbiAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChjdXJyZW50VXJsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -4,6 +4,7 @@ import { __decorate, __metadata } from 'tslib';
|
|
|
4
4
|
import { NavigationStart, RoutesRecognized, ResolveEnd, NavigationCancel, NavigationError, NavigationEnd, Router, UrlSerializer } from '@angular/router';
|
|
5
5
|
import { LocationStrategy, Location } from '@angular/common';
|
|
6
6
|
import { isAngularInTestMode } from '@ngxs/store/internals';
|
|
7
|
+
import { Subscription } from 'rxjs';
|
|
7
8
|
import { first } from 'rxjs/operators';
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -296,6 +297,7 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
296
297
|
*/
|
|
297
298
|
this._storeState = null;
|
|
298
299
|
this._lastRoutesRecognized = (/** @type {?} */ (null));
|
|
300
|
+
this._subscription = new Subscription();
|
|
299
301
|
this.setUpStoreListener();
|
|
300
302
|
this.setUpRouterEventsListener();
|
|
301
303
|
this.checkInitialNavigationOnce();
|
|
@@ -315,6 +317,12 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
315
317
|
static url(state) {
|
|
316
318
|
return state && state.state && state.state.url;
|
|
317
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* @return {?}
|
|
322
|
+
*/
|
|
323
|
+
ngOnDestroy() {
|
|
324
|
+
this._subscription.unsubscribe();
|
|
325
|
+
}
|
|
318
326
|
/**
|
|
319
327
|
* @param {?} _
|
|
320
328
|
* @param {?} action
|
|
@@ -339,20 +347,25 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
339
347
|
* @return {?}
|
|
340
348
|
*/
|
|
341
349
|
setUpStoreListener() {
|
|
342
|
-
|
|
350
|
+
/** @type {?} */
|
|
351
|
+
const subscription = this._store
|
|
352
|
+
.select(RouterState_1)
|
|
353
|
+
.subscribe((/**
|
|
343
354
|
* @param {?} state
|
|
344
355
|
* @return {?}
|
|
345
356
|
*/
|
|
346
357
|
(state) => {
|
|
347
358
|
this.navigateIfNeeded(state);
|
|
348
359
|
}));
|
|
360
|
+
this._subscription.add(subscription);
|
|
349
361
|
}
|
|
350
362
|
/**
|
|
351
363
|
* @private
|
|
352
364
|
* @return {?}
|
|
353
365
|
*/
|
|
354
366
|
setUpRouterEventsListener() {
|
|
355
|
-
|
|
367
|
+
/** @type {?} */
|
|
368
|
+
const subscription = this._router.events.subscribe((/**
|
|
356
369
|
* @param {?} event
|
|
357
370
|
* @return {?}
|
|
358
371
|
*/
|
|
@@ -379,6 +392,7 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
379
392
|
this.reset();
|
|
380
393
|
}
|
|
381
394
|
}));
|
|
395
|
+
this._subscription.add(subscription);
|
|
382
396
|
}
|
|
383
397
|
/**
|
|
384
398
|
* @private
|
|
@@ -498,10 +512,16 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
498
512
|
* @return {?}
|
|
499
513
|
*/
|
|
500
514
|
checkInitialNavigationOnce() {
|
|
501
|
-
|
|
515
|
+
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
516
|
+
// creating a breaking change for projects that still use the View Engine.
|
|
517
|
+
if ((typeof ngDevMode === 'undefined' || ngDevMode) &&
|
|
518
|
+
// Angular is running tests in development mode thus we can be sure that this method will be
|
|
519
|
+
// skipped in tests.
|
|
520
|
+
isAngularInTestMode()) {
|
|
502
521
|
return;
|
|
503
522
|
}
|
|
504
|
-
|
|
523
|
+
/** @type {?} */
|
|
524
|
+
const subscription = this._router.events
|
|
505
525
|
.pipe(first((/**
|
|
506
526
|
* @param {?} event
|
|
507
527
|
* @return {?}
|
|
@@ -546,6 +566,7 @@ let RouterState = RouterState_1 = class RouterState {
|
|
|
546
566
|
this._router.navigateByUrl(currentUrl);
|
|
547
567
|
}
|
|
548
568
|
}));
|
|
569
|
+
this._subscription.add(subscription);
|
|
549
570
|
}
|
|
550
571
|
};
|
|
551
572
|
RouterState.ctorParameters = () => [
|
|
@@ -636,6 +657,11 @@ if (false) {
|
|
|
636
657
|
* @private
|
|
637
658
|
*/
|
|
638
659
|
RouterState.prototype._lastRoutesRecognized;
|
|
660
|
+
/**
|
|
661
|
+
* @type {?}
|
|
662
|
+
* @private
|
|
663
|
+
*/
|
|
664
|
+
RouterState.prototype._subscription;
|
|
639
665
|
/**
|
|
640
666
|
* @type {?}
|
|
641
667
|
* @private
|