raise-common-lib 0.0.47 → 0.0.50
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/raise-common-lib.umd.js +86 -36
- package/bundles/raise-common-lib.umd.js.map +1 -1
- package/bundles/raise-common-lib.umd.min.js +1 -1
- package/bundles/raise-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/form/drawer-form/drawer-form.component.js +22 -1
- package/esm2015/lib/layout/drawer/index.component.js +37 -24
- package/esm2015/lib/layout/multi-tab/index.component.js +11 -5
- package/esm2015/lib/service/drawer.service.js +1 -1
- package/esm2015/lib/service/keep-alive.service.js +4 -7
- package/esm5/lib/form/drawer-form/drawer-form.component.js +29 -1
- package/esm5/lib/layout/drawer/index.component.js +46 -27
- package/esm5/lib/layout/multi-tab/index.component.js +11 -5
- package/esm5/lib/service/drawer.service.js +1 -1
- package/esm5/lib/service/keep-alive.service.js +4 -7
- package/fesm2015/raise-common-lib.js +70 -33
- package/fesm2015/raise-common-lib.js.map +1 -1
- package/fesm5/raise-common-lib.js +86 -36
- package/fesm5/raise-common-lib.js.map +1 -1
- package/lib/form/drawer-form/drawer-form.component.d.ts +1 -0
- package/lib/layout/drawer/index.component.d.ts +12 -4
- package/lib/service/drawer.service.d.ts +1 -0
- package/package.json +1 -1
- package/raise-common-lib.metadata.json +1 -1
|
@@ -88,9 +88,7 @@ export class KeepAliveService {
|
|
|
88
88
|
if (future.routeConfig === curr.routeConfig) {
|
|
89
89
|
if (future.children.length === 0 && curr.children.length === 0) {
|
|
90
90
|
// 无子路由时, 通过params和queryParams判断是否复用路由
|
|
91
|
-
return (JSON.stringify(future.params) === JSON.stringify(curr.params)
|
|
92
|
-
JSON.stringify(future.queryParams) ===
|
|
93
|
-
JSON.stringify(curr.queryParams));
|
|
91
|
+
return (JSON.stringify(future.params) === JSON.stringify(curr.params));
|
|
94
92
|
}
|
|
95
93
|
return true;
|
|
96
94
|
}
|
|
@@ -103,15 +101,14 @@ export class KeepAliveService {
|
|
|
103
101
|
getRoutePath(route) {
|
|
104
102
|
if (route.routeConfig) {
|
|
105
103
|
// const pathParams = JSON.stringify(route.params);
|
|
106
|
-
|
|
107
|
-
const queryParams = new URLSearchParams(route.queryParams).toString();
|
|
104
|
+
// const queryParams = new URLSearchParams(route.queryParams).toString();
|
|
108
105
|
/** @type {?} */
|
|
109
106
|
const url = route._urlSegment.segments.map((/**
|
|
110
107
|
* @param {?} v
|
|
111
108
|
* @return {?}
|
|
112
109
|
*/
|
|
113
110
|
(v) => v.path)).join("/");
|
|
114
|
-
return "/" + url
|
|
111
|
+
return "/" + url;
|
|
115
112
|
}
|
|
116
113
|
return "";
|
|
117
114
|
}
|
|
@@ -137,4 +134,4 @@ KeepAliveService.decorators = [
|
|
|
137
134
|
},] }
|
|
138
135
|
];
|
|
139
136
|
/** @nocollapse */ KeepAliveService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function KeepAliveService_Factory() { return new KeepAliveService(); }, token: KeepAliveService, providedIn: "root" });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VlcC1hbGl2ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL2tlZXAtYWxpdmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztNQU9yQyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQStCOztJQUN2RCxhQUFxQjs7SUFDckIsYUFBYSxHQUFhLEVBQUU7O0FBSWhDLE1BQU0sT0FBTyxnQkFBZ0I7Ozs7O0lBQzNCLGdCQUFnQixDQUFDLE1BQWdCO1FBQy9CLGFBQWEsR0FBRyxNQUFNLENBQUMsQ0FBQyxXQUFXO0lBQ3JDLENBQUM7Ozs7O0lBQ0QsWUFBWSxDQUFDLEtBQTZCOztZQUNwQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFdBQVc7UUFDOUIsd0VBQXdFO1FBQ3hFLElBQUksYUFBYSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMscUJBQXFCO1lBQ3JCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMvQixhQUFhLEdBQUcsRUFBRSxDQUFDO2FBQ3BCO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUksTUFBTSxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzlELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxnQ0FBZ0M7UUFDaEMsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQ3hDLENBQUM7Ozs7OztJQUVELEtBQUssQ0FBQyxLQUE2QixFQUFFLE1BQTJCOzs7O2NBR3hELEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNwQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxLQUE2Qjs7Y0FDbEMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7OztJQUVELFFBQVEsQ0FBQyxLQUE2Qjs7WUFDaEMsTUFBTSxHQUFHLEtBQUssQ0FBQyxXQUFXOztjQUN4QixHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDcEMsaUZBQWlGO1FBQ2pGLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUNsQyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN2QyxDQUFDOzs7Ozs7SUFFRCxnQkFBZ0IsQ0FDZCxNQUE4QixFQUM5QixJQUE0QjtRQUU1QixpREFBaUQ7UUFDakQsa0RBQWtEO1FBQ2xELElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDOUQsc0NBQXNDO2dCQUN0QyxPQUFPLENBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQzlELENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7O0lBRUQsWUFBWSxDQUFDLEtBQUs7UUFDaEIsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFOzs7O2tCQUdmLEdBQUcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ25FLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQztTQUNsQjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7Ozs7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixpREFBaUQ7UUFDakQsYUFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCxhQUFhO1FBQ1gsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OztZQWxGRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICBSb3V0ZVJldXNlU3RyYXRlZ3ksXHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBEZXRhY2hlZFJvdXRlSGFuZGxlLFxyXG59IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbmNvbnN0IHN0b3JlZFJvdXRlcyA9IG5ldyBNYXA8c3RyaW5nLCBEZXRhY2hlZFJvdXRlSGFuZGxlPigpO1xyXG5sZXQgdG9CZURlbGV0ZVVybDogc3RyaW5nO1xyXG5sZXQgZXhjbHVkZVJvdXRlczogc3RyaW5nW10gPSBbXTsgLy8g5LiN6ZyA6KaB57yT5a2Y55qEdXJsXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEtlZXBBbGl2ZVNlcnZpY2UgaW1wbGVtZW50cyBSb3V0ZVJldXNlU3RyYXRlZ3kge1xyXG4gIHNldEV4Y2x1ZGVSb3V0ZXMocm91dGVzOiBzdHJpbmdbXSkge1xyXG4gICAgZXhjbHVkZVJvdXRlcyA9IHJvdXRlczsgLy8g6K6+572u5LiN57yT5a2Y55qE6Lev55SxXHJcbiAgfVxyXG4gIHNob3VsZERldGFjaChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGNvbmZpZyA9IHJvdXRlLnJvdXRlQ29uZmlnO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJzaG91bGREZXRhY2hcIiwgdG9CZURlbGV0ZVVybCwgdGhpcy5nZXRSb3V0ZVBhdGgocm91dGUpKTtcclxuICAgIGlmICh0b0JlRGVsZXRlVXJsID09PSB0aGlzLmdldFJvdXRlUGF0aChyb3V0ZSkpIHtcclxuICAgICAgLy8g5a+55LqO5paw5byA55qE5Y+I5Y2z5bCG5YWz6Zet55qEdGFi77yM5LiN57yT5a2YXHJcbiAgICAgIGlmIChyb3V0ZS5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0b0JlRGVsZXRlVXJsID0gXCJcIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnICYmIGV4Y2x1ZGVSb3V0ZXMuaW5jbHVkZXModGhpcy5nZXRSb3V0ZVBhdGgocm91dGUpKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvL0Rvbid0IHN0b3JlIGxhenkgbG9hZGVkIHJvdXRlc1xyXG4gICAgcmV0dXJuIGNvbmZpZyAmJiAhY29uZmlnLmxvYWRDaGlsZHJlbjtcclxuICB9XHJcblxyXG4gIHN0b3JlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBoYW5kbGU6IERldGFjaGVkUm91dGVIYW5kbGUpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwic3RvcmVcIiwgdGhpcy5nZXRSb3V0ZVBhdGgocm91dGUpKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwic3RvcmVcIiwgc3RvcmVkUm91dGVzKTtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0Um91dGVQYXRoKHJvdXRlKTtcclxuICAgIHN0b3JlZFJvdXRlcy5zZXQoa2V5LCBoYW5kbGUpO1xyXG4gIH1cclxuXHJcbiAgc2hvdWxkQXR0YWNoKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldFJvdXRlUGF0aChyb3V0ZSk7XHJcbiAgICByZXR1cm4gISFyb3V0ZS5yb3V0ZUNvbmZpZyAmJiBzdG9yZWRSb3V0ZXMuaGFzKGtleSk7XHJcbiAgfVxyXG5cclxuICByZXRyaWV2ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IERldGFjaGVkUm91dGVIYW5kbGUge1xyXG4gICAgbGV0IGNvbmZpZyA9IHJvdXRlLnJvdXRlQ29uZmlnO1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRSb3V0ZVBhdGgocm91dGUpO1xyXG4gICAgLy9XZSBkb24ndCBzdG9yZSBsYXp5IGxvYWRlZCByb3V0ZXMsIHNvIGRvbid0IGV2ZW4gYm90aGVyIHRyeWluZyB0byByZXRyaWV2ZSB0aGVtXHJcbiAgICBpZiAoIWNvbmZpZyB8fCBjb25maWcubG9hZENoaWxkcmVuKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdG9yZWRSb3V0ZXMuZ2V0KGtleSkgfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIHNob3VsZFJldXNlUm91dGUoXHJcbiAgICBmdXR1cmU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBjdXJyOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90XHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInNob3VsZFJldXNlUm91dGVcIiwgZnV0dXJlLCBjdXJyKTtcclxuICAgIC8vIHJldHVybiBmdXR1cmUucm91dGVDb25maWcgPT09IGN1cnIucm91dGVDb25maWc7XHJcbiAgICBpZiAoZnV0dXJlLnJvdXRlQ29uZmlnID09PSBjdXJyLnJvdXRlQ29uZmlnKSB7XHJcbiAgICAgIGlmIChmdXR1cmUuY2hpbGRyZW4ubGVuZ3RoID09PSAwICYmIGN1cnIuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgLy8g5peg5a2Q6Lev55Sx5pe2LCDpgJrov4dwYXJhbXPlkoxxdWVyeVBhcmFtc+WIpOaWreaYr+WQpuWkjeeUqOi3r+eUsVxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShmdXR1cmUucGFyYW1zKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3Vyci5wYXJhbXMpXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldFJvdXRlUGF0aChyb3V0ZSk6IHN0cmluZyB7XHJcbiAgICBpZiAocm91dGUucm91dGVDb25maWcpIHtcclxuICAgICAgLy8gY29uc3QgcGF0aFBhcmFtcyA9IEpTT04uc3RyaW5naWZ5KHJvdXRlLnBhcmFtcyk7XHJcbiAgICAgIC8vIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhyb3V0ZS5xdWVyeVBhcmFtcykudG9TdHJpbmcoKTtcclxuICAgICAgY29uc3QgdXJsID0gcm91dGUuX3VybFNlZ21lbnQuc2VnbWVudHMubWFwKCh2KSA9PiB2LnBhdGgpLmpvaW4oXCIvXCIpO1xyXG4gICAgICByZXR1cm4gXCIvXCIgKyB1cmw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FjaGUocGF0aDogc3RyaW5nKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcImNsZWFyQ2FjaGVcIiwgc3RvcmVkUm91dGVzLCBwYXRoKTtcclxuICAgIHRvQmVEZWxldGVVcmwgPSBwYXRoO1xyXG4gICAgc3RvcmVkUm91dGVzLmRlbGV0ZShwYXRoKTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsQ2FjaGUoKSB7XHJcbiAgICBzdG9yZWRSb3V0ZXMuY2xlYXIoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -50,6 +50,9 @@ var DrawerFormComponent = /** @class */ (function () {
|
|
|
50
50
|
if (changes.sections) {
|
|
51
51
|
this.formatForm(changes.sections.currentValue);
|
|
52
52
|
}
|
|
53
|
+
if (changes.form && !changes.form.firstChange) {
|
|
54
|
+
this.checkFormChange(changes.form.previousValue, changes.form.currentValue);
|
|
55
|
+
}
|
|
53
56
|
};
|
|
54
57
|
/**
|
|
55
58
|
* @return {?}
|
|
@@ -154,6 +157,31 @@ var DrawerFormComponent = /** @class */ (function () {
|
|
|
154
157
|
}));
|
|
155
158
|
}
|
|
156
159
|
};
|
|
160
|
+
/**
|
|
161
|
+
* @param {?} previous
|
|
162
|
+
* @param {?} current
|
|
163
|
+
* @return {?}
|
|
164
|
+
*/
|
|
165
|
+
DrawerFormComponent.prototype.checkFormChange = /**
|
|
166
|
+
* @param {?} previous
|
|
167
|
+
* @param {?} current
|
|
168
|
+
* @return {?}
|
|
169
|
+
*/
|
|
170
|
+
function (previous, current) {
|
|
171
|
+
var _this = this;
|
|
172
|
+
Object.entries(current).forEach((/**
|
|
173
|
+
* @param {?} __0
|
|
174
|
+
* @return {?}
|
|
175
|
+
*/
|
|
176
|
+
function (_a) {
|
|
177
|
+
var _b = tslib_1.__read(_a, 2), key = _b[0], currentValue = _b[1];
|
|
178
|
+
if (previous[key] !== currentValue) {
|
|
179
|
+
/** @type {?} */
|
|
180
|
+
var field = _this.getField(key);
|
|
181
|
+
_this.formItemValidator(field);
|
|
182
|
+
}
|
|
183
|
+
}));
|
|
184
|
+
};
|
|
157
185
|
/**
|
|
158
186
|
* @param {?} sections
|
|
159
187
|
* @return {?}
|
|
@@ -631,4 +659,4 @@ if (false) {
|
|
|
631
659
|
*/
|
|
632
660
|
DrawerFormComponent.prototype.ref;
|
|
633
661
|
}
|
|
634
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2RyYXdlci1mb3JtL2RyYXdlci1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQTBCLE1BQU0sYUFBYSxDQUFDO0FBRW5FO0lBeUNFLDZCQUFvQixRQUFrQixFQUFVLEdBQXNCO1FBQWxELGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWxDbkQsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDM0IsZUFBVSxHQUEwQixFQUFFLENBQUM7UUFNekMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDbkIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNoQixpQkFBWSxHQUFHO1lBQ3BDLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsVUFBVTtZQUNwQixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUM7UUFDeUIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLFNBQUksR0FBd0IsRUFBRSxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUdqRCxDQUFDO1FBU0wscUJBQWdCLEdBQTBC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SUFDaEQsZ0RBQ3VEOztJQUV2RCwrQ0FBNkM7O0lBQzdDLDRDQUE0Qzs7SUF3TjVDLHlDQUNrRDs7SUFDbEQsMENBQWdCOztJQUNoQiw0Q0FBc0I7Ozs7O0lBek5WLHVDQUEwQjs7Ozs7SUFBRSxrQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWRhdGFcIjtcclxuaW1wb3J0IHsgRmlsdGVyaW5nRXZlbnRBcmdzIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRyb3Bkb3duc1wiO1xyXG5pbXBvcnQgeyBFbWFpbFBhdHRlcm4sIEZpZWxkSXRlbSwgU2VjdGlvbkl0ZW0gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWRyYXdlci1mb3JtXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9kcmF3ZXItZm9ybS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9kcmF3ZXItZm9ybS5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3ZXJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dChcInNlY3Rpb25zXCIpIHNlY3Rpb25zOiBTZWN0aW9uSXRlbVtdID0gW107XHJcbiAgQElucHV0KFwib3B0aW9uc01hcFwiKSBvcHRpb25zTWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnlbXT4gPSB7fTtcclxuXHJcbiAgQElucHV0KFwiY3VzdG9tVGVtcGxhdGVcIikgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KFwiY3VzdG9tU2VjdGlvblRlbXBsYXRlXCIpXHJcbiAgY3VzdG9tU2VjdGlvblRlbXBsYXRlOiBSZWNvcmQ8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PjtcclxuXHJcbiAgQElucHV0KFwiZGlzYWJsZWRcIikgZm9ybURpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KFwic2hvd0FuY2hvclwiKSBzaG93QW5jaG9yID0gdHJ1ZTtcclxuICBASW5wdXQoXCJvcHRpb25GaWVsZHNcIikgb3B0aW9uRmllbGRzID0ge1xyXG4gICAgdGV4dDogXCJ0ZXh0XCIsXHJcbiAgICB2YWx1ZTogXCJjb2RlXCIsXHJcbiAgICBkaXNhYmxlZDogXCJkaXNhYmxlZFwiLFxyXG4gICAgZ3JvdXBCeTogbnVsbCxcclxuICB9O1xyXG4gIEBJbnB1dChcInNob3dGaWx0ZXJOdW1iZXJcIikgc2hvd0ZpbHRlck51bWJlciA9IDEwO1xyXG5cclxuICBASW5wdXQoXCJmb3JtXCIpIGZvcm06IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICBAT3V0cHV0KFwiZm9ybUNoYW5nZVwiKSBmb3JtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xyXG4gIEBPdXRwdXQoXCJmaWVsZENoYW5nZVwiKSBmaWVsZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgZmllbGQ6IEZpZWxkSXRlbTtcclxuICAgIHZhbHVlOiBhbnk7XHJcbiAgfT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZChcImRyYXdlckZvcm1FbFwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICByb290RWw6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oXCJjdXN0b21UZW1wbGF0ZUNvbnRhaW5lclwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcclxuICBwcml2YXRlIGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPjtcclxuICBAVmlld0NoaWxkcmVuKFwiY3VzdG9tU2VjdGlvbkNvbnRhaW5lclwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcclxuICBwcml2YXRlIHNlY3Rpb25Db250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XHJcblxyXG4gIGZpbHRlck9wdGlvbnNNYXA6IFJlY29yZDxzdHJpbmcsIGFueVtdPiA9IHt9O1xyXG4gIGZpZWxkVmFsaWRNYXA6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLCBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMuc2VjdGlvbnMpIHtcclxuICAgICAgdGhpcy5mb3JtYXRGb3JtKGNoYW5nZXMuc2VjdGlvbnMuY3VycmVudFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVSZW5kZXIodGhpcy5jb250YWluZXJzKTtcclxuICAgIHRoaXMuY3VzdG9tU2VjdGlvblJlbmRlcih0aGlzLnNlY3Rpb25Db250YWluZXJzKTtcclxuICAgIHRoaXMuY29udGFpbmVycy5jaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgKGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPikgPT4ge1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVycyA9IGNvbnRhaW5lcnM7XHJcbiAgICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZVJlbmRlcihjb250YWluZXJzKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMuc2VjdGlvbkNvbnRhaW5lcnMuY2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgIChjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4pID0+IHtcclxuICAgICAgICB0aGlzLnNlY3Rpb25Db250YWluZXJzID0gY29udGFpbmVycztcclxuICAgICAgICB0aGlzLmN1c3RvbVNlY3Rpb25SZW5kZXIoY29udGFpbmVycyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5zaG93QW5jaG9yKSB7XHJcbiAgICAgIHRoaXMuaW5pdEFuY2hvclNjcm9sbEhhbmRsZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGN1c3RvbVRlbXBsYXRlUmVuZGVyKGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPikge1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tVGVtcGxhdGUgJiYgY29udGFpbmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGN1c3RvbUZpZWxkcyA9IFtdO1xyXG4gICAgICB0aGlzLnNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb24pID0+IHtcclxuICAgICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkRm9ybVR5cGUgPT09IFwiQ3VzdG9tXCIpIHtcclxuICAgICAgICAgICAgY3VzdG9tRmllbGRzLnB1c2goZmllbGQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgY29udGFpbmVycy5mb3JFYWNoKChjb250YWluZXIsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmN1c3RvbVRlbXBsYXRlLCB7XHJcbiAgICAgICAgICAkaW1wbGljaXQ6IGN1c3RvbUZpZWxkc1tpbmRleF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3VzdG9tU2VjdGlvblJlbmRlcihjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4pIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbVNlY3Rpb25UZW1wbGF0ZSAmJiBjb250YWluZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgY3VzdG9tU2VjdGlvbnMgPSB0aGlzLnNlY3Rpb25zLmZpbHRlcihcclxuICAgICAgICAoc2VjdGlvbikgPT4gc2VjdGlvbi5jdXN0b21LZXlcclxuICAgICAgKTtcclxuICAgICAgY29udGFpbmVycy5mb3JFYWNoKChjb250YWluZXIsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tS2V5ID0gY3VzdG9tU2VjdGlvbnNbaW5kZXhdLmN1c3RvbUtleTtcclxuICAgICAgICBjb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuY3VzdG9tU2VjdGlvblRlbXBsYXRlW2N1c3RvbUtleV0sIHtcclxuICAgICAgICAgICRpbXBsaWNpdDogY3VzdG9tU2VjdGlvbnNbaW5kZXhdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvcm1hdEZvcm0oc2VjdGlvbnM6IFNlY3Rpb25JdGVtW10pIHtcclxuICAgIHNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb246IFNlY3Rpb25JdGVtKSA9PiB7XHJcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybVtmaWVsZC5mb3JtS2V5XSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBzd2l0Y2ggKGZpZWxkLmZpZWxkRm9ybVR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBcIlRleHRcIjpcclxuICAgICAgICAgICAgY2FzZSBcIkVtYWlsXCI6XHJcbiAgICAgICAgICAgIGNhc2UgXCJUZXh0YXJlYVwiOlxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybVtmaWVsZC5mb3JtS2V5XSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiVGFnc1wiOlxyXG4gICAgICAgICAgICBjYXNlIFwiQ2hlY2tib3hcIjpcclxuICAgICAgICAgICAgY2FzZSBcIk11bHRpU2VsZWN0XCI6XHJcbiAgICAgICAgICAgICAgdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldID0gW107XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiU3dpdGNoXCI6XHJcbiAgICAgICAgICAgICAgdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybVtmaWVsZC5mb3JtS2V5XSA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g6KGo5Y2V5o+Q5Lqk5YmN5Lya6Kem5Y+R6L+Z5Liq5Ye95pWwXHJcbiAgdXBkYXRlRm9ybSh2YWx1ZTogYW55LCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBjb25zdCBuZXdGb3JtID0ge1xyXG4gICAgICAuLi50aGlzLmZvcm0sXHJcbiAgICAgIFtmaWVsZC5mb3JtS2V5XTogdmFsdWUsXHJcbiAgICB9O1xyXG4gICAgLy8g5L+u5aSN6ZSZ6K+v5o+Q56S65pi+56S6IGJ1Z++8jOS4jeiuvue9ruS4gOS4i+acieamgueOh+aLv+S4jeWIsOacgOaWsOeahOWAvFxyXG4gICAgdGhpcy5mb3JtID0gbmV3Rm9ybTtcclxuICAgIHRoaXMuZm9ybUNoYW5nZS5lbWl0KG5ld0Zvcm0pO1xyXG4gICAgdGhpcy5maWVsZENoYW5nZS5lbWl0KHsgZmllbGQsIHZhbHVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQ6IEZpZWxkSXRlbSwgaXNBdXRvID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldO1xyXG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBBcnJheS5pc0FycmF5KHZhbHVlKVxyXG4gICAgICAgID8gdmFsdWUubGVuZ3RoICE9PSAwXHJcbiAgICAgICAgOiAhW251bGwsIHVuZGVmaW5lZCwgXCJcIl0uaW5jbHVkZXModmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQuZmllbGRGb3JtVHlwZSA9PT0gXCJFbWFpbFwiICYmIHZhbHVlKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBFbWFpbFBhdHRlcm4udGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5tYXhsZW5ndGgpIHtcclxuICAgICAgaXNWYWxpZCA9IFN0cmluZyh2YWx1ZSkubGVuZ3RoIDw9IGZpZWxkLm1heGxlbmd0aDtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIGZpZWxkLm1pbmxlbmd0aCkge1xyXG4gICAgICBpc1ZhbGlkID0gU3RyaW5nKHZhbHVlKS5sZW5ndGggPj0gZmllbGQubWlubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQubWF4KSB7XHJcbiAgICAgIGlzVmFsaWQgPSB2YWx1ZSA8PSBmaWVsZC5tYXg7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5taW4pIHtcclxuICAgICAgaXNWYWxpZCA9IHZhbHVlID49IGZpZWxkLm1pbjtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIHR5cGVvZiBmaWVsZC52YWxpZGF0b3IgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBpc1ZhbGlkID0gZmllbGQudmFsaWRhdG9yLmNhbGwobnVsbCwgdmFsdWUsIGZpZWxkKTtcclxuICAgIH1cclxuICAgIGlmICghaXNBdXRvKSB7XHJcbiAgICAgIHRoaXMuZmllbGRWYWxpZE1hcFtmaWVsZC5mb3JtS2V5XSA9IGlzVmFsaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcblxyXG4gIHByZUNoZWNrRm9ybUlzVmFsaWQoKSB7XHJcbiAgICBsZXQgZm9ybUlzVmFsaWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PlxyXG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGZvcm1Jc1ZhbGlkID0gdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihmaWVsZCkgJiYgZm9ybUlzVmFsaWQ7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGZvcm1Jc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZvcm1Jc1ZhbGlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VjdGlvbnMuZXZlcnkoKHNlY3Rpb24pID0+XHJcbiAgICAgIHNlY3Rpb24uZmllbGRzLmV2ZXJ5KChmaWVsZCkgPT4gdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihmaWVsZCwgdHJ1ZSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGQoZm9ybUtleTogc3RyaW5nKSB7XHJcbiAgICBsZXQgZmllbGRJdGVtOiBGaWVsZEl0ZW0gPSBudWxsO1xyXG4gICAgdGhpcy5zZWN0aW9ucy5maW5kKChzZWN0aW9uKSA9PiB7XHJcbiAgICAgIGZpZWxkSXRlbSA9IHNlY3Rpb24uZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5mb3JtS2V5ID09PSBmb3JtS2V5KTtcclxuICAgICAgcmV0dXJuIGZpZWxkSXRlbTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZpZWxkSXRlbTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsbEZ1bmN0aW9uKGZuOiBGdW5jdGlvbiwgLi4uYXJnczogYW55W10pIHtcclxuICAgIHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoYXJnc1sxXSB8fCBhcmdzWzBdKTtcclxuICAgIGlmICh0eXBlb2YgZm4gPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBmbi5hcHBseShudWxsLCBhcmdzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXQodmFsdWU6IHN0cmluZywgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5jYWxsRnVuY3Rpb24oZmllbGQub25JbnB1dCwgdmFsdWUsIGZpZWxkKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKHZhbHVlOiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGlmIChmaWVsZC5maWVsZEZvcm1UeXBlID09PSBcIkRhdGVwaWNrZXJcIikge1xyXG4gICAgICB2YWx1ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCBcInl5eXktTU0tZGRcIik7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUZvcm0odmFsdWUsIGZpZWxkKTtcclxuICAgIHRoaXMuY2FsbEZ1bmN0aW9uKGZpZWxkLm9uQ2hhbmdlLCB2YWx1ZSwgZmllbGQpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICB0aGlzLmNhbGxGdW5jdGlvbihmaWVsZC5vbkZvY3VzLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5jYWxsRnVuY3Rpb24oZmllbGQub25CbHVyLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlcmluZyhldmVudDogRmlsdGVyaW5nRXZlbnRBcmdzLCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBjb25zdCBxdWVyeSA9IG5ldyBRdWVyeSgpO1xyXG4gICAgaWYgKGV2ZW50LnRleHQpIHtcclxuICAgICAgcXVlcnkud2hlcmUodGhpcy5vcHRpb25GaWVsZHMudGV4dCwgXCJjb250YWluc1wiLCBldmVudC50ZXh0LCB0cnVlKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnVwZGF0ZURhdGEodGhpcy5vcHRpb25zTWFwW2ZpZWxkLm9wdGlvbktleV0gfHwgW10sIHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIGdldERpc2FibGVkKGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGlmICh0aGlzLmZvcm1EaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgZmllbGQuZGlzYWJsZWQgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICByZXR1cm4gZmllbGQuZGlzYWJsZWQoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWVsZC5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIGdldE9wdGlvbkZpZWxkcyhmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBpZiAoW1wiRHJvcGRvd25cIiwgXCJBdXRvQ29tcGxldGVcIl0uaW5jbHVkZXMoZmllbGQuZmllbGRGb3JtVHlwZSkpIHtcclxuICAgICAgcmV0dXJuIHsgLi4udGhpcy5vcHRpb25GaWVsZHMsIGdyb3VwQnk6IGZpZWxkLmdyb3VwS2V5IHx8IG51bGwgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLm9wdGlvbkZpZWxkcztcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oXCJzZWN0aW9uRWxcIilcclxuICBzZWN0aW9uRWxzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+O1xyXG4gIHNjcm9sbEluZGV4ID0gMDtcclxuICBpc0NsaWNrQW5jaG9yID0gZmFsc2U7XHJcblxyXG4gIG9uQ2xpY2tBbmNob3IoaW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3Qgc2VjdGlvbkl0ZW1zID0gdGhpcy5zZWN0aW9uRWxzLnRvQXJyYXkoKTtcclxuICAgIHNlY3Rpb25JdGVtc1tpbmRleF0ubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh0cnVlKTtcclxuICAgIHRoaXMuc2Nyb2xsSW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuaXNDbGlja0FuY2hvciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmaW5kU2Nyb2xsVmlld0VsKGVsOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcclxuICAgIGlmIChlbCA9PT0gZG9jdW1lbnQuYm9keSkge1xyXG4gICAgICByZXR1cm4gZWw7XHJcbiAgICB9XHJcbiAgICBpZiAoZWwuc2Nyb2xsSGVpZ2h0ICYmIGVsLnNjcm9sbEhlaWdodCAhPT0gZWwub2Zmc2V0SGVpZ2h0KSB7XHJcbiAgICAgIHJldHVybiBlbDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZpbmRTY3JvbGxWaWV3RWwoZWwucGFyZW50RWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBpbml0QW5jaG9yU2Nyb2xsSGFuZGxlcigpIHtcclxuICAgIGNvbnN0IHNjcm9sbFZpZXdFbCA9IHRoaXMuZmluZFNjcm9sbFZpZXdFbCh0aGlzLnJvb3RFbC5uYXRpdmVFbGVtZW50KTtcclxuICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHNjcm9sbFZpZXdFbC5zY3JvbGxIZWlnaHQgLSBzY3JvbGxWaWV3RWwub2Zmc2V0SGVpZ2h0O1xyXG4gICAgY29uc3Qgc2VjdGlvblZpZXdSYXRpbyA9IHRoaXMuc2VjdGlvbkVscy50b0FycmF5KCkubWFwKChzZWN0aW9uKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJhdGlvID1cclxuICAgICAgICBzZWN0aW9uLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gc2Nyb2xsVmlld0VsLnNjcm9sbEhlaWdodDtcclxuICAgICAgcmV0dXJuIHNjcm9sbEhlaWdodCAqIHJhdGlvO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3Qgb25TY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzQ2xpY2tBbmNob3IpIHtcclxuICAgICAgICB0aGlzLmlzQ2xpY2tBbmNob3IgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgc2Nyb2xsVG9wID1cclxuICAgICAgICBzY3JvbGxWaWV3RWwuc2Nyb2xsVG9wID4gc2Nyb2xsSGVpZ2h0XHJcbiAgICAgICAgICA/IHNjcm9sbEhlaWdodFxyXG4gICAgICAgICAgOiBzY3JvbGxWaWV3RWwuc2Nyb2xsVG9wO1xyXG4gICAgICBsZXQgcmFkaW9TY3JvbGxIZWlnaHQgPSAwO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgc2VjdGlvblZpZXdSYXRpby5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICByYWRpb1Njcm9sbEhlaWdodCArPSBzZWN0aW9uVmlld1JhdGlvW2luZGV4XTtcclxuICAgICAgICBpZiAocmFkaW9TY3JvbGxIZWlnaHQgPj0gc2Nyb2xsVG9wKSB7XHJcbiAgICAgICAgICB0aGlzLnNjcm9sbEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgd2hpbGUgKFxyXG4gICAgICAgIHRoaXMuc2VjdGlvbnNbdGhpcy5zY3JvbGxJbmRleF0gJiZcclxuICAgICAgICAhdGhpcy5zZWN0aW9uc1t0aGlzLnNjcm9sbEluZGV4XS50aXRsZVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnNjcm9sbEluZGV4Kys7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIG9uU2Nyb2xsKCk7XHJcbiAgICBzY3JvbGxWaWV3RWwuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBvblNjcm9sbCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
662
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2RyYXdlci1mb3JtL2RyYXdlci1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQTBCLE1BQU0sYUFBYSxDQUFDO0FBRW5FO0lBeUNFLDZCQUFvQixRQUFrQixFQUFVLEdBQXNCO1FBQWxELGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWxDbkQsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDM0IsZUFBVSxHQUEwQixFQUFFLENBQUM7UUFNekMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDbkIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNoQixpQkFBWSxHQUFHO1lBQ3BDLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsVUFBVTtZQUNwQixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUM7UUFDeUIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLFNBQUksR0FBd0IsRUFBRSxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUdqRCxDQUFDO1FBU0wscUJBQWdCLEdBQTBC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QUFLLFNBQUMsa0JBQWtCO3VCQUV4QixLQUFLLFNBQUMsTUFBTTs2QkFDWixNQUFNLFNBQUMsWUFBWTs4QkFDbkIsTUFBTSxTQUFDLGFBQWE7eUJBS3BCLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzZCQUUzQyxZQUFZLFNBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7b0NBRWxFLFlBQVksU0FBQyx3QkFBd0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTs2QkEyT2pFLFlBQVksU0FBQyxXQUFXOztJQTREM0IsMEJBQUM7Q0FBQSxBQTFVRCxJQTBVQztTQXBVWSxtQkFBbUI7OztJQUM5Qix1Q0FBZ0Q7O0lBQ2hELHlDQUE0RDs7SUFFNUQsNkNBQTBEOztJQUMxRCxvREFDd0Q7O0lBRXhELDJDQUF3Qzs7SUFDeEMseUNBQXVDOztJQUN2QywyQ0FLRTs7SUFDRiwrQ0FBaUQ7O0lBRWpELG1DQUE4Qzs7SUFDOUMseUNBQTJFOztJQUMzRSwwQ0FHSzs7SUFFTCxxQ0FDbUM7Ozs7O0lBQ25DLHlDQUNnRDs7Ozs7SUFDaEQsZ0RBQ3VEOztJQUV2RCwrQ0FBNkM7O0lBQzdDLDRDQUE0Qzs7SUF1TzVDLHlDQUNrRDs7SUFDbEQsMENBQWdCOztJQUNoQiw0Q0FBc0I7Ozs7O0lBeE9WLHVDQUEwQjs7Ozs7SUFBRSxrQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWRhdGFcIjtcclxuaW1wb3J0IHsgRmlsdGVyaW5nRXZlbnRBcmdzIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRyb3Bkb3duc1wiO1xyXG5pbXBvcnQgeyBFbWFpbFBhdHRlcm4sIEZpZWxkSXRlbSwgU2VjdGlvbkl0ZW0gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWRyYXdlci1mb3JtXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9kcmF3ZXItZm9ybS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9kcmF3ZXItZm9ybS5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3ZXJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dChcInNlY3Rpb25zXCIpIHNlY3Rpb25zOiBTZWN0aW9uSXRlbVtdID0gW107XHJcbiAgQElucHV0KFwib3B0aW9uc01hcFwiKSBvcHRpb25zTWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnlbXT4gPSB7fTtcclxuXHJcbiAgQElucHV0KFwiY3VzdG9tVGVtcGxhdGVcIikgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KFwiY3VzdG9tU2VjdGlvblRlbXBsYXRlXCIpXHJcbiAgY3VzdG9tU2VjdGlvblRlbXBsYXRlOiBSZWNvcmQ8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PjtcclxuXHJcbiAgQElucHV0KFwiZGlzYWJsZWRcIikgZm9ybURpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KFwic2hvd0FuY2hvclwiKSBzaG93QW5jaG9yID0gdHJ1ZTtcclxuICBASW5wdXQoXCJvcHRpb25GaWVsZHNcIikgb3B0aW9uRmllbGRzID0ge1xyXG4gICAgdGV4dDogXCJ0ZXh0XCIsXHJcbiAgICB2YWx1ZTogXCJjb2RlXCIsXHJcbiAgICBkaXNhYmxlZDogXCJkaXNhYmxlZFwiLFxyXG4gICAgZ3JvdXBCeTogbnVsbCxcclxuICB9O1xyXG4gIEBJbnB1dChcInNob3dGaWx0ZXJOdW1iZXJcIikgc2hvd0ZpbHRlck51bWJlciA9IDEwO1xyXG5cclxuICBASW5wdXQoXCJmb3JtXCIpIGZvcm06IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICBAT3V0cHV0KFwiZm9ybUNoYW5nZVwiKSBmb3JtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xyXG4gIEBPdXRwdXQoXCJmaWVsZENoYW5nZVwiKSBmaWVsZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgZmllbGQ6IEZpZWxkSXRlbTtcclxuICAgIHZhbHVlOiBhbnk7XHJcbiAgfT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZChcImRyYXdlckZvcm1FbFwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICByb290RWw6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oXCJjdXN0b21UZW1wbGF0ZUNvbnRhaW5lclwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcclxuICBwcml2YXRlIGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPjtcclxuICBAVmlld0NoaWxkcmVuKFwiY3VzdG9tU2VjdGlvbkNvbnRhaW5lclwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcclxuICBwcml2YXRlIHNlY3Rpb25Db250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XHJcblxyXG4gIGZpbHRlck9wdGlvbnNNYXA6IFJlY29yZDxzdHJpbmcsIGFueVtdPiA9IHt9O1xyXG4gIGZpZWxkVmFsaWRNYXA6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLCBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMuc2VjdGlvbnMpIHtcclxuICAgICAgdGhpcy5mb3JtYXRGb3JtKGNoYW5nZXMuc2VjdGlvbnMuY3VycmVudFZhbHVlKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzLmZvcm0gJiYgIWNoYW5nZXMuZm9ybS5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLmNoZWNrRm9ybUNoYW5nZShcclxuICAgICAgICBjaGFuZ2VzLmZvcm0ucHJldmlvdXNWYWx1ZSxcclxuICAgICAgICBjaGFuZ2VzLmZvcm0uY3VycmVudFZhbHVlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmN1c3RvbVRlbXBsYXRlUmVuZGVyKHRoaXMuY29udGFpbmVycyk7XHJcbiAgICB0aGlzLmN1c3RvbVNlY3Rpb25SZW5kZXIodGhpcy5zZWN0aW9uQ29udGFpbmVycyk7XHJcbiAgICB0aGlzLmNvbnRhaW5lcnMuY2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgIChjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4pID0+IHtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lcnMgPSBjb250YWluZXJzO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVSZW5kZXIoY29udGFpbmVycyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnNlY3Rpb25Db250YWluZXJzLmNoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICAoY29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9uQ29udGFpbmVycyA9IGNvbnRhaW5lcnM7XHJcbiAgICAgICAgdGhpcy5jdXN0b21TZWN0aW9uUmVuZGVyKGNvbnRhaW5lcnMpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuc2hvd0FuY2hvcikge1xyXG4gICAgICB0aGlzLmluaXRBbmNob3JTY3JvbGxIYW5kbGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjdXN0b21UZW1wbGF0ZVJlbmRlcihjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4pIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbVRlbXBsYXRlICYmIGNvbnRhaW5lcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBjdXN0b21GaWVsZHMgPSBbXTtcclxuICAgICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICAgIGlmIChmaWVsZC5maWVsZEZvcm1UeXBlID09PSBcIkN1c3RvbVwiKSB7XHJcbiAgICAgICAgICAgIGN1c3RvbUZpZWxkcy5wdXNoKGZpZWxkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnRhaW5lcnMuZm9yRWFjaCgoY29udGFpbmVyLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGNvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICAgIGNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5jdXN0b21UZW1wbGF0ZSwge1xyXG4gICAgICAgICAgJGltcGxpY2l0OiBjdXN0b21GaWVsZHNbaW5kZXhdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGN1c3RvbVNlY3Rpb25SZW5kZXIoY29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSB7XHJcbiAgICBpZiAodGhpcy5jdXN0b21TZWN0aW9uVGVtcGxhdGUgJiYgY29udGFpbmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGN1c3RvbVNlY3Rpb25zID0gdGhpcy5zZWN0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgKHNlY3Rpb24pID0+IHNlY3Rpb24uY3VzdG9tS2V5XHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnRhaW5lcnMuZm9yRWFjaCgoY29udGFpbmVyLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGNvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICAgIGNvbnN0IGN1c3RvbUtleSA9IGN1c3RvbVNlY3Rpb25zW2luZGV4XS5jdXN0b21LZXk7XHJcbiAgICAgICAgY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmN1c3RvbVNlY3Rpb25UZW1wbGF0ZVtjdXN0b21LZXldLCB7XHJcbiAgICAgICAgICAkaW1wbGljaXQ6IGN1c3RvbVNlY3Rpb25zW2luZGV4XSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0Zvcm1DaGFuZ2UocHJldmlvdXM6IFJlY29yZDxzdHJpbmcsIGFueT4sIGN1cnJlbnQ6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIE9iamVjdC5lbnRyaWVzKGN1cnJlbnQpLmZvckVhY2goKFtrZXksIGN1cnJlbnRWYWx1ZV0pID0+IHtcclxuICAgICAgaWYgKHByZXZpb3VzW2tleV0gIT09IGN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5nZXRGaWVsZChrZXkpO1xyXG4gICAgICAgIHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvcm1hdEZvcm0oc2VjdGlvbnM6IFNlY3Rpb25JdGVtW10pIHtcclxuICAgIHNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb246IFNlY3Rpb25JdGVtKSA9PiB7XHJcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybVtmaWVsZC5mb3JtS2V5XSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBzd2l0Y2ggKGZpZWxkLmZpZWxkRm9ybVR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBcIlRleHRcIjpcclxuICAgICAgICAgICAgY2FzZSBcIkVtYWlsXCI6XHJcbiAgICAgICAgICAgIGNhc2UgXCJUZXh0YXJlYVwiOlxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybVtmaWVsZC5mb3JtS2V5XSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiVGFnc1wiOlxyXG4gICAgICAgICAgICBjYXNlIFwiQ2hlY2tib3hcIjpcclxuICAgICAgICAgICAgY2FzZSBcIk11bHRpU2VsZWN0XCI6XHJcbiAgICAgICAgICAgICAgdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldID0gW107XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiU3dpdGNoXCI6XHJcbiAgICAgICAgICAgICAgdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybVtmaWVsZC5mb3JtS2V5XSA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g6KGo5Y2V5o+Q5Lqk5YmN5Lya6Kem5Y+R6L+Z5Liq5Ye95pWwXHJcbiAgdXBkYXRlRm9ybSh2YWx1ZTogYW55LCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBjb25zdCBuZXdGb3JtID0ge1xyXG4gICAgICAuLi50aGlzLmZvcm0sXHJcbiAgICAgIFtmaWVsZC5mb3JtS2V5XTogdmFsdWUsXHJcbiAgICB9O1xyXG4gICAgLy8g5L+u5aSN6ZSZ6K+v5o+Q56S65pi+56S6IGJ1Z++8jOS4jeiuvue9ruS4gOS4i+acieamgueOh+aLv+S4jeWIsOacgOaWsOeahOWAvFxyXG4gICAgdGhpcy5mb3JtID0gbmV3Rm9ybTtcclxuICAgIHRoaXMuZm9ybUNoYW5nZS5lbWl0KG5ld0Zvcm0pO1xyXG4gICAgdGhpcy5maWVsZENoYW5nZS5lbWl0KHsgZmllbGQsIHZhbHVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQ6IEZpZWxkSXRlbSwgaXNBdXRvID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldO1xyXG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBBcnJheS5pc0FycmF5KHZhbHVlKVxyXG4gICAgICAgID8gdmFsdWUubGVuZ3RoICE9PSAwXHJcbiAgICAgICAgOiAhW251bGwsIHVuZGVmaW5lZCwgXCJcIl0uaW5jbHVkZXModmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQuZmllbGRGb3JtVHlwZSA9PT0gXCJFbWFpbFwiICYmIHZhbHVlKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBFbWFpbFBhdHRlcm4udGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5tYXhsZW5ndGgpIHtcclxuICAgICAgaXNWYWxpZCA9IFN0cmluZyh2YWx1ZSkubGVuZ3RoIDw9IGZpZWxkLm1heGxlbmd0aDtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIGZpZWxkLm1pbmxlbmd0aCkge1xyXG4gICAgICBpc1ZhbGlkID0gU3RyaW5nKHZhbHVlKS5sZW5ndGggPj0gZmllbGQubWlubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQubWF4KSB7XHJcbiAgICAgIGlzVmFsaWQgPSB2YWx1ZSA8PSBmaWVsZC5tYXg7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5taW4pIHtcclxuICAgICAgaXNWYWxpZCA9IHZhbHVlID49IGZpZWxkLm1pbjtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIHR5cGVvZiBmaWVsZC52YWxpZGF0b3IgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBpc1ZhbGlkID0gZmllbGQudmFsaWRhdG9yLmNhbGwobnVsbCwgdmFsdWUsIGZpZWxkKTtcclxuICAgIH1cclxuICAgIGlmICghaXNBdXRvKSB7XHJcbiAgICAgIHRoaXMuZmllbGRWYWxpZE1hcFtmaWVsZC5mb3JtS2V5XSA9IGlzVmFsaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcblxyXG4gIHByZUNoZWNrRm9ybUlzVmFsaWQoKSB7XHJcbiAgICBsZXQgZm9ybUlzVmFsaWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PlxyXG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGZvcm1Jc1ZhbGlkID0gdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihmaWVsZCkgJiYgZm9ybUlzVmFsaWQ7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGZvcm1Jc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZvcm1Jc1ZhbGlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VjdGlvbnMuZXZlcnkoKHNlY3Rpb24pID0+XHJcbiAgICAgIHNlY3Rpb24uZmllbGRzLmV2ZXJ5KChmaWVsZCkgPT4gdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihmaWVsZCwgdHJ1ZSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGQoZm9ybUtleTogc3RyaW5nKSB7XHJcbiAgICBsZXQgZmllbGRJdGVtOiBGaWVsZEl0ZW0gPSBudWxsO1xyXG4gICAgdGhpcy5zZWN0aW9ucy5maW5kKChzZWN0aW9uKSA9PiB7XHJcbiAgICAgIGZpZWxkSXRlbSA9IHNlY3Rpb24uZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5mb3JtS2V5ID09PSBmb3JtS2V5KTtcclxuICAgICAgcmV0dXJuIGZpZWxkSXRlbTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZpZWxkSXRlbTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsbEZ1bmN0aW9uKGZuOiBGdW5jdGlvbiwgLi4uYXJnczogYW55W10pIHtcclxuICAgIHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoYXJnc1sxXSB8fCBhcmdzWzBdKTtcclxuICAgIGlmICh0eXBlb2YgZm4gPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBmbi5hcHBseShudWxsLCBhcmdzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXQodmFsdWU6IHN0cmluZywgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5jYWxsRnVuY3Rpb24oZmllbGQub25JbnB1dCwgdmFsdWUsIGZpZWxkKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKHZhbHVlOiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGlmIChmaWVsZC5maWVsZEZvcm1UeXBlID09PSBcIkRhdGVwaWNrZXJcIikge1xyXG4gICAgICB2YWx1ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCBcInl5eXktTU0tZGRcIik7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUZvcm0odmFsdWUsIGZpZWxkKTtcclxuICAgIHRoaXMuY2FsbEZ1bmN0aW9uKGZpZWxkLm9uQ2hhbmdlLCB2YWx1ZSwgZmllbGQpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICB0aGlzLmNhbGxGdW5jdGlvbihmaWVsZC5vbkZvY3VzLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5jYWxsRnVuY3Rpb24oZmllbGQub25CbHVyLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlcmluZyhldmVudDogRmlsdGVyaW5nRXZlbnRBcmdzLCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBjb25zdCBxdWVyeSA9IG5ldyBRdWVyeSgpO1xyXG4gICAgaWYgKGV2ZW50LnRleHQpIHtcclxuICAgICAgcXVlcnkud2hlcmUodGhpcy5vcHRpb25GaWVsZHMudGV4dCwgXCJjb250YWluc1wiLCBldmVudC50ZXh0LCB0cnVlKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnVwZGF0ZURhdGEodGhpcy5vcHRpb25zTWFwW2ZpZWxkLm9wdGlvbktleV0gfHwgW10sIHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIGdldERpc2FibGVkKGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGlmICh0aGlzLmZvcm1EaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgZmllbGQuZGlzYWJsZWQgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICByZXR1cm4gZmllbGQuZGlzYWJsZWQoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWVsZC5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIGdldE9wdGlvbkZpZWxkcyhmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBpZiAoW1wiRHJvcGRvd25cIiwgXCJBdXRvQ29tcGxldGVcIl0uaW5jbHVkZXMoZmllbGQuZmllbGRGb3JtVHlwZSkpIHtcclxuICAgICAgcmV0dXJuIHsgLi4udGhpcy5vcHRpb25GaWVsZHMsIGdyb3VwQnk6IGZpZWxkLmdyb3VwS2V5IHx8IG51bGwgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLm9wdGlvbkZpZWxkcztcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oXCJzZWN0aW9uRWxcIilcclxuICBzZWN0aW9uRWxzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+O1xyXG4gIHNjcm9sbEluZGV4ID0gMDtcclxuICBpc0NsaWNrQW5jaG9yID0gZmFsc2U7XHJcblxyXG4gIG9uQ2xpY2tBbmNob3IoaW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3Qgc2VjdGlvbkl0ZW1zID0gdGhpcy5zZWN0aW9uRWxzLnRvQXJyYXkoKTtcclxuICAgIHNlY3Rpb25JdGVtc1tpbmRleF0ubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh0cnVlKTtcclxuICAgIHRoaXMuc2Nyb2xsSW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuaXNDbGlja0FuY2hvciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmaW5kU2Nyb2xsVmlld0VsKGVsOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcclxuICAgIGlmIChlbCA9PT0gZG9jdW1lbnQuYm9keSkge1xyXG4gICAgICByZXR1cm4gZWw7XHJcbiAgICB9XHJcbiAgICBpZiAoZWwuc2Nyb2xsSGVpZ2h0ICYmIGVsLnNjcm9sbEhlaWdodCAhPT0gZWwub2Zmc2V0SGVpZ2h0KSB7XHJcbiAgICAgIHJldHVybiBlbDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZpbmRTY3JvbGxWaWV3RWwoZWwucGFyZW50RWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBpbml0QW5jaG9yU2Nyb2xsSGFuZGxlcigpIHtcclxuICAgIGNvbnN0IHNjcm9sbFZpZXdFbCA9IHRoaXMuZmluZFNjcm9sbFZpZXdFbCh0aGlzLnJvb3RFbC5uYXRpdmVFbGVtZW50KTtcclxuICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHNjcm9sbFZpZXdFbC5zY3JvbGxIZWlnaHQgLSBzY3JvbGxWaWV3RWwub2Zmc2V0SGVpZ2h0O1xyXG4gICAgY29uc3Qgc2VjdGlvblZpZXdSYXRpbyA9IHRoaXMuc2VjdGlvbkVscy50b0FycmF5KCkubWFwKChzZWN0aW9uKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJhdGlvID1cclxuICAgICAgICBzZWN0aW9uLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gc2Nyb2xsVmlld0VsLnNjcm9sbEhlaWdodDtcclxuICAgICAgcmV0dXJuIHNjcm9sbEhlaWdodCAqIHJhdGlvO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3Qgb25TY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzQ2xpY2tBbmNob3IpIHtcclxuICAgICAgICB0aGlzLmlzQ2xpY2tBbmNob3IgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgc2Nyb2xsVG9wID1cclxuICAgICAgICBzY3JvbGxWaWV3RWwuc2Nyb2xsVG9wID4gc2Nyb2xsSGVpZ2h0XHJcbiAgICAgICAgICA/IHNjcm9sbEhlaWdodFxyXG4gICAgICAgICAgOiBzY3JvbGxWaWV3RWwuc2Nyb2xsVG9wO1xyXG4gICAgICBsZXQgcmFkaW9TY3JvbGxIZWlnaHQgPSAwO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgc2VjdGlvblZpZXdSYXRpby5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICByYWRpb1Njcm9sbEhlaWdodCArPSBzZWN0aW9uVmlld1JhdGlvW2luZGV4XTtcclxuICAgICAgICBpZiAocmFkaW9TY3JvbGxIZWlnaHQgPj0gc2Nyb2xsVG9wKSB7XHJcbiAgICAgICAgICB0aGlzLnNjcm9sbEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgd2hpbGUgKFxyXG4gICAgICAgIHRoaXMuc2VjdGlvbnNbdGhpcy5zY3JvbGxJbmRleF0gJiZcclxuICAgICAgICAhdGhpcy5zZWN0aW9uc1t0aGlzLnNjcm9sbEluZGV4XS50aXRsZVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnNjcm9sbEluZGV4Kys7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIG9uU2Nyb2xsKCk7XHJcbiAgICBzY3JvbGxWaWV3RWwuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBvblNjcm9sbCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -14,7 +14,6 @@ var DrawerComponent = /** @class */ (function () {
|
|
|
14
14
|
this.config = DefaultDrawerConfig;
|
|
15
15
|
this.useTransition = "yes";
|
|
16
16
|
this.$isOpened = new BehaviorSubject(false);
|
|
17
|
-
this.showToolbarContainer = true;
|
|
18
17
|
this.componentRefMap = new Map();
|
|
19
18
|
}
|
|
20
19
|
/**
|
|
@@ -79,39 +78,53 @@ var DrawerComponent = /** @class */ (function () {
|
|
|
79
78
|
/**
|
|
80
79
|
* @private
|
|
81
80
|
* @param {?} componentRef
|
|
81
|
+
* @param {?} selector
|
|
82
82
|
* @return {?}
|
|
83
83
|
*/
|
|
84
|
-
DrawerComponent.prototype.
|
|
84
|
+
DrawerComponent.prototype.getSlotElement = /**
|
|
85
85
|
* @private
|
|
86
86
|
* @param {?} componentRef
|
|
87
|
+
* @param {?} selector
|
|
87
88
|
* @return {?}
|
|
88
89
|
*/
|
|
89
|
-
function (componentRef) {
|
|
90
|
+
function (componentRef, selector) {
|
|
90
91
|
/** @type {?} */
|
|
91
92
|
var componentEl = componentRef.location.nativeElement;
|
|
92
|
-
/** @type {?} */
|
|
93
|
-
var toolbarEl = componentEl.querySelector("[drawer-toolbar]");
|
|
94
|
-
return toolbarEl;
|
|
93
|
+
return (/** @type {?} */ (componentEl.querySelector(selector)));
|
|
95
94
|
};
|
|
96
95
|
/**
|
|
97
96
|
* @private
|
|
98
|
-
* @param {?}
|
|
97
|
+
* @param {?} slotEl
|
|
98
|
+
* @param {?} containerEl
|
|
99
99
|
* @return {?}
|
|
100
100
|
*/
|
|
101
|
-
DrawerComponent.prototype.
|
|
101
|
+
DrawerComponent.prototype.setSlotElement = /**
|
|
102
102
|
* @private
|
|
103
|
-
* @param {?}
|
|
103
|
+
* @param {?} slotEl
|
|
104
|
+
* @param {?} containerEl
|
|
104
105
|
* @return {?}
|
|
105
106
|
*/
|
|
106
|
-
function (
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
this.showToolbarContainer = !!toolbarEl;
|
|
111
|
-
if (toolbarEl) {
|
|
112
|
-
toolbarContainerEl.append(toolbarEl);
|
|
107
|
+
function (slotEl, containerEl) {
|
|
108
|
+
containerEl.innerHTML = "";
|
|
109
|
+
if (slotEl) {
|
|
110
|
+
containerEl.append(slotEl);
|
|
113
111
|
}
|
|
114
112
|
};
|
|
113
|
+
/**
|
|
114
|
+
* @param {?} cache
|
|
115
|
+
* @return {?}
|
|
116
|
+
*/
|
|
117
|
+
DrawerComponent.prototype.setCache = /**
|
|
118
|
+
* @param {?} cache
|
|
119
|
+
* @return {?}
|
|
120
|
+
*/
|
|
121
|
+
function (cache) {
|
|
122
|
+
this.setSlotElement(cache.toolbarEl, this.toolbar.nativeElement);
|
|
123
|
+
this.setSlotElement(cache.headerEl, this.header.nativeElement);
|
|
124
|
+
/** @type {?} */
|
|
125
|
+
var drawerTop = cache.config.top ? cache.config.top + "px" : "";
|
|
126
|
+
this.element.nativeElement.style.setProperty("--drawer-top", drawerTop);
|
|
127
|
+
};
|
|
115
128
|
/**
|
|
116
129
|
* @template T
|
|
117
130
|
* @param {?} component
|
|
@@ -132,14 +145,19 @@ var DrawerComponent = /** @class */ (function () {
|
|
|
132
145
|
/** @type {?} */
|
|
133
146
|
var componentRef = this.createDynamicComponent(component);
|
|
134
147
|
/** @type {?} */
|
|
135
|
-
var toolbarEl = this.
|
|
136
|
-
|
|
137
|
-
this.
|
|
138
|
-
|
|
148
|
+
var toolbarEl = this.getSlotElement(componentRef, "[drawer-toolbar]");
|
|
149
|
+
/** @type {?} */
|
|
150
|
+
var headerEl = this.getSlotElement(componentRef, "[drawer-header]");
|
|
151
|
+
/** @type {?} */
|
|
152
|
+
var cache = {
|
|
139
153
|
config: showConfig,
|
|
140
154
|
ref: componentRef,
|
|
141
155
|
toolbarEl: toolbarEl,
|
|
142
|
-
|
|
156
|
+
headerEl: headerEl,
|
|
157
|
+
};
|
|
158
|
+
this.setComponentData(componentRef, data);
|
|
159
|
+
this.componentRefMap.set(this.service.cacheKey, cache);
|
|
160
|
+
this.setCache(cache);
|
|
143
161
|
this.config = showConfig;
|
|
144
162
|
this.$isOpened.next(true);
|
|
145
163
|
this.useTransition = "yes";
|
|
@@ -200,7 +218,7 @@ var DrawerComponent = /** @class */ (function () {
|
|
|
200
218
|
if (cache) {
|
|
201
219
|
cache.ref.location.nativeElement.style.display = "";
|
|
202
220
|
this.config = cache.config;
|
|
203
|
-
this.
|
|
221
|
+
this.setCache(cache);
|
|
204
222
|
this.$isOpened.next(true);
|
|
205
223
|
}
|
|
206
224
|
else {
|
|
@@ -211,8 +229,8 @@ var DrawerComponent = /** @class */ (function () {
|
|
|
211
229
|
DrawerComponent.decorators = [
|
|
212
230
|
{ type: Component, args: [{
|
|
213
231
|
selector: "rs-drawer",
|
|
214
|
-
template: "<div #element id=\"rs-drawer-container\" class=\"rs-drawer-container\">\r\n <div class=\"rs-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div\r\n class=\"rs-drawer\"\r\n [attr.data-mode]=\"config.mode\"\r\n [attr.data-opened]=\"($isOpened | async) ? 'yes' : 'no'\"\r\n [attr.data-transition]=\"useTransition\"\r\n >\r\n <div class=\"drawer-header\">\r\n <button class=\"drawer-return-button\" (click)=\"hide()\">\r\n <span class=\"drawer-sub-title\" *ngIf=\"config.subTitle\">\r\n {{ config.subTitle }}\r\n </span>\r\n </button>\r\n <div class=\"drawer-title\">{{ config.title }}</div>\r\n </div>\r\n <div class=\"drawer-content\">\r\n <div class=\"drawer-content-container\">\r\n <ng-template #dynamicComponentContainer></ng-template>\r\n </div>\r\n </div>\r\n <div
|
|
215
|
-
styles: [":host{display:block;height:100%}#rs-drawer-container{height:100%}.rs-drawer-container{height:100%;background-color:transparent;overflow:hidden;position:relative}.rs-drawer-container .rs-drawer-content{width:100%;height:100%;overflow:auto;margin-right:0!important}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar{width:5px;height:5px;background:#fff;position:static;z-index:999;border-radius:10px}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar-thumb{background:#eaedf0}.rs-drawer-container .rs-drawer{width:100%;height:100%;border-left:none;background-color:transparent;overflow:visible;pointer-events:none;opacity:0;display:flex;flex-flow:column nowrap;position:absolute;top:0;left:100%}.rs-drawer-container .rs-drawer[data-opened=yes]{left:0;opacity:1
|
|
232
|
+
template: "<div #element id=\"rs-drawer-container\" class=\"rs-drawer-container\">\r\n <div class=\"rs-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div\r\n class=\"rs-drawer\"\r\n [attr.data-mode]=\"config.mode\"\r\n [attr.data-opened]=\"($isOpened | async) ? 'yes' : 'no'\"\r\n [attr.data-transition]=\"useTransition\"\r\n >\r\n <div class=\"drawer-header\">\r\n <button class=\"drawer-return-button\" (click)=\"hide()\">\r\n <span class=\"drawer-sub-title\" *ngIf=\"config.subTitle\">\r\n {{ config.subTitle }}\r\n </span>\r\n </button>\r\n <div class=\"drawer-title\">{{ config.title }}</div>\r\n <div class=\"drawer-header-slot\" #header></div>\r\n </div>\r\n <div class=\"drawer-content\">\r\n <div class=\"drawer-content-container\">\r\n <ng-template #dynamicComponentContainer></ng-template>\r\n </div>\r\n </div>\r\n <div class=\"drawer-toolbar-slot\" #toolbar></div>\r\n </div>\r\n</div>\r\n",
|
|
233
|
+
styles: [":host{display:block;height:100%}#rs-drawer-container{height:100%}.rs-drawer-container{height:100%;background-color:transparent;overflow:hidden;position:relative}.rs-drawer-container .rs-drawer-content{width:100%;height:100%;overflow:auto;margin-right:0!important}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar{width:5px;height:5px;background:#fff;position:static;z-index:999;border-radius:10px}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar-thumb{background:#eaedf0}.rs-drawer-container .rs-drawer{width:100%;height:100%;border-left:none;background-color:transparent;overflow:visible;pointer-events:none;opacity:0;display:flex;flex-flow:column nowrap;position:absolute;top:0;left:100%}.rs-drawer-container .rs-drawer[data-opened=yes]{left:0;opacity:1}.rs-drawer-container .rs-drawer[data-transition=yes]{transition:opacity .5s ease-in-out,left .5s ease-in-out}.rs-drawer-container .rs-drawer .drawer-header{flex:none;display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;box-sizing:content-box;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button{flex:none;display:flex;flex-flow:row nowrap;align-items:center;padding:0;border:none;background-color:transparent;cursor:pointer}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button::before{content:url(../../assets/img/drawer-back.svg);width:24px;height:24px;margin-right:8px;transition:transform 125ms ease-in-out}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button:hover::before{transform:translateX(-2px)}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button .drawer-sub-title{margin-right:12px;font-family:Arial;font-style:normal;font-weight:400}.rs-drawer-container .rs-drawer .drawer-header .drawer-title{flex:none;padding:0 12px;border-left:1px solid #bdc4ca;font-family:Arial;font-style:normal;font-weight:400}.rs-drawer-container .rs-drawer .drawer-header .drawer-header-slot{margin-left:20px}.rs-drawer-container .rs-drawer .drawer-content{flex:auto;overflow:hidden;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-content .drawer-content-container{height:100%;overflow:hidden auto}.rs-drawer-container .rs-drawer .drawer-toolbar-slot{flex:none;height:32px;display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-toolbar-slot:empty{display:none}.rs-drawer-container .rs-drawer[data-mode=inner],.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content{padding:0 20px;border:1px solid #ebedf0;border-radius:15px;background-color:#fff}.rs-drawer-container .rs-drawer[data-mode=outer]{margin-top:var(--drawer-top,0);background-color:#f8fafb}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header{height:46px;padding:0 24px 0 8px;background-color:#f7fafb}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header .drawer-sub-title,.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header .drawer-title{color:#1f3f5c;font-size:15px;font-weight:700;line-height:18px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content{padding-bottom:20px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content .drawer-content-container{margin-right:-20px;padding-right:20px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-toolbar-slot{position:absolute;top:7px;right:0;z-index:1}.rs-drawer-container .rs-drawer[data-mode=inner]{height:calc(100% - var(--drawer-top,16px));margin-top:var(--drawer-top,16px);box-shadow:0 min(0,var(--drawer-top,-16px)) #f8fafb}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header{height:24px;padding:6px 0;border-bottom:1px solid #eaedf0}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-sub-title,.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-title{color:#44566c;font-size:12px;line-height:14px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-title{font-weight:700}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-content{padding:0 20px 0 8px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-content .drawer-content-container{margin-right:-20px;padding-right:20px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-toolbar-slot{padding:16px 0;box-sizing:content-box;border-top:1px solid #eaedf0}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar]{display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;gap:12px}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;gap:6px;min-width:80px;height:32px;padding:0 12px;border:1px solid #adb5bd;border-radius:4px;background-color:#fff;cursor:pointer;color:#44566c;font-size:13px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button:hover{border-color:#6c7c90}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button:disabled{opacity:1!important;border-color:#6c7c9066;color:#44566c66;cursor:unset}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary{border:none;background-color:#1364b3;color:#fff}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary:hover{background-color:#176bca}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary:disabled{background-color:#1364b366}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button img{width:16px;height:16px}::ng-deep .rs-drawer-container .rs-drawer[data-mode=outer] .drawer-toolbar-slot [drawer-toolbar] button{height:26px;font-size:12px;line-height:14px}::ng-deep .rs-drawer-container .rs-drawer[data-mode=inner] .drawer-toolbar-slot [drawer-toolbar] button img{display:none}"]
|
|
216
234
|
}] }
|
|
217
235
|
];
|
|
218
236
|
/** @nocollapse */
|
|
@@ -223,6 +241,7 @@ var DrawerComponent = /** @class */ (function () {
|
|
|
223
241
|
DrawerComponent.propDecorators = {
|
|
224
242
|
element: [{ type: ViewChild, args: ["element", { static: false },] }],
|
|
225
243
|
toolbar: [{ type: ViewChild, args: ["toolbar", { static: false },] }],
|
|
244
|
+
header: [{ type: ViewChild, args: ["header", { static: false },] }],
|
|
226
245
|
container: [{ type: ViewChild, args: ["dynamicComponentContainer", {
|
|
227
246
|
read: ViewContainerRef,
|
|
228
247
|
static: false,
|
|
@@ -236,6 +255,8 @@ if (false) {
|
|
|
236
255
|
DrawerComponent.prototype.element;
|
|
237
256
|
/** @type {?} */
|
|
238
257
|
DrawerComponent.prototype.toolbar;
|
|
258
|
+
/** @type {?} */
|
|
259
|
+
DrawerComponent.prototype.header;
|
|
239
260
|
/**
|
|
240
261
|
* @type {?}
|
|
241
262
|
* @private
|
|
@@ -247,8 +268,6 @@ if (false) {
|
|
|
247
268
|
DrawerComponent.prototype.useTransition;
|
|
248
269
|
/** @type {?} */
|
|
249
270
|
DrawerComponent.prototype.$isOpened;
|
|
250
|
-
/** @type {?} */
|
|
251
|
-
DrawerComponent.prototype.showToolbarContainer;
|
|
252
271
|
/**
|
|
253
272
|
* @type {?}
|
|
254
273
|
* @private
|
|
@@ -265,4 +284,4 @@ if (false) {
|
|
|
265
284
|
*/
|
|
266
285
|
DrawerComponent.prototype.service;
|
|
267
286
|
}
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvZHJhd2VyL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBRXhCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIsYUFBYSxHQUNkLE1BQU0sOEJBQThCLENBQUM7QUFRdEM7SUFzQkUseUJBQ1UsUUFBa0MsRUFDbEMsT0FBc0I7UUFEdEIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQVRoQyxXQUFNLEdBQWlCLG1CQUFtQixDQUFDO1FBQzNDLGtCQUFhLEdBQWlCLEtBQUssQ0FBQztRQUNwQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEQseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRXBCLG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWdDLENBQUM7SUFLL0QsQ0FBQzs7Ozs7O0lBRUksZ0RBQXNCOzs7OztJQUE5QixVQUErQixTQUFzQzs7O1lBRTdELE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQzs7WUFDMUQsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUM1RCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOzs7Ozs7SUFFTyxpREFBdUI7Ozs7O0lBQS9CLFVBQWdDLFlBQStCO1FBQzdELElBQUksWUFBWSxFQUFFO1lBQ2hCLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN4QjtJQUNI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U0F0SFksZUFBZTs7O0lBQzFCLGtDQUE2RTs7SUFDN0Usa0NBQTZFOzs7OztJQUU3RSxvQ0FJb0M7O0lBRXBDLGlDQUEyQzs7SUFDM0Msd0NBQW9DOztJQUNwQyxvQ0FBZ0Q7O0lBQ2hELCtDQUE0Qjs7Ozs7SUFFNUIsMENBQWtFOzs7OztJQUdoRSxtQ0FBMEM7Ozs7O0lBQzFDLGtDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBDb21wb25lbnRSZWYsXHJcbiAgRWxlbWVudFJlZixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1xyXG4gIERyYXdlckNvbmZpZyxcclxuICBEZWZhdWx0RHJhd2VyQ29uZmlnLFxyXG4gIERyYXdlclNlcnZpY2UsXHJcbn0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZHJhd2VyLnNlcnZpY2VcIjtcclxuXHJcbnR5cGUgRHJhd2VyQ29tcG9uZW50Q2FjaGUgPSB7XHJcbiAgcmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuICBjb25maWc6IERyYXdlckNvbmZpZztcclxuICB0b29sYmFyRWw6IEhUTUxFbGVtZW50O1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtZHJhd2VyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYXdlckNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZChcImVsZW1lbnRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoXCJ0b29sYmFyXCIsIHsgc3RhdGljOiBmYWxzZSB9KSB0b29sYmFyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZChcImR5bmFtaWNDb21wb25lbnRDb250YWluZXJcIiwge1xyXG4gICAgcmVhZDogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHN0YXRpYzogZmFsc2UsXHJcbiAgfSlcclxuICBwcml2YXRlIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgY29uZmlnOiBEcmF3ZXJDb25maWcgPSBEZWZhdWx0RHJhd2VyQ29uZmlnO1xyXG4gIHVzZVRyYW5zaXRpb246IFwieWVzXCIgfCBcIm5vXCIgPSBcInllc1wiO1xyXG4gICRpc09wZW5lZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHNob3dUb29sYmFyQ29udGFpbmVyID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWZNYXAgPSBuZXcgTWFwPHN0cmluZywgRHJhd2VyQ29tcG9uZW50Q2FjaGU+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBEcmF3ZXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUR5bmFtaWNDb21wb25lbnQoY29tcG9uZW50OiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHtcclxuICAgIC8vIOehruS/neWcqOiwg+eUqOS5i+WJjeebruagh+e7hOS7tuW3sue7j+WcqGVudHJ5Q29tcG9uZW50c+S4reWjsOaYjlxyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlc3Ryb3lEeW5hbWljQ29tcG9uZW50KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4pIHtcclxuICAgIGlmIChjb21wb25lbnRSZWYpIHtcclxuICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q29tcG9uZW50RGF0YShcclxuICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4sXHJcbiAgICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cclxuICApIHtcclxuICAgIC8vIOWmguaenOmcgOimgeS8oOmAkuaVsOaNrue7meWKqOaAgee7hOS7tu+8jOWPr+S7pei/meagt+WBmlxyXG4gICAgaWYgKGNvbXBvbmVudFJlZikge1xyXG4gICAgICBPYmplY3QuZW50cmllcyhkYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSA9IHZhbHVlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VG9vbGJhckVsZW1lbnQoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55Pikge1xyXG4gICAgY29uc3QgY29tcG9uZW50RWwgPSBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IHRvb2xiYXJFbCA9IGNvbXBvbmVudEVsLnF1ZXJ5U2VsZWN0b3IoXCJbZHJhd2VyLXRvb2xiYXJdXCIpO1xyXG4gICAgcmV0dXJuIHRvb2xiYXJFbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VG9vbGJhckVsZW1lbnQodG9vbGJhckVsOiBIVE1MRWxlbWVudCkge1xyXG4gICAgY29uc3QgdG9vbGJhckNvbnRhaW5lckVsID0gdGhpcy50b29sYmFyLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0b29sYmFyQ29udGFpbmVyRWwuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgIHRoaXMuc2hvd1Rvb2xiYXJDb250YWluZXIgPSAhIXRvb2xiYXJFbDtcclxuICAgIGlmICh0b29sYmFyRWwpIHtcclxuICAgICAgdG9vbGJhckNvbnRhaW5lckVsLmFwcGVuZCh0b29sYmFyRWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hvdzxUPihcclxuICAgIGNvbXBvbmVudDogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCxcclxuICAgIGNvbmZpZzogRHJhd2VyQ29uZmlnLFxyXG4gICAgZGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IFQge1xyXG4gICAgY29uc3Qgc2hvd0NvbmZpZyA9IHsgLi4uRGVmYXVsdERyYXdlckNvbmZpZywgLi4uY29uZmlnIH07XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNyZWF0ZUR5bmFtaWNDb21wb25lbnQoY29tcG9uZW50KTtcclxuICAgIGNvbnN0IHRvb2xiYXJFbCA9IHRoaXMuZ2V0VG9vbGJhckVsZW1lbnQoY29tcG9uZW50UmVmKTtcclxuXHJcbiAgICB0aGlzLnNldENvbXBvbmVudERhdGEoY29tcG9uZW50UmVmLCBkYXRhKTtcclxuICAgIHRoaXMuc2V0VG9vbGJhckVsZW1lbnQodG9vbGJhckVsKTtcclxuICAgIHRoaXMuY29tcG9uZW50UmVmTWFwLnNldCh0aGlzLnNlcnZpY2UuY2FjaGVLZXksIHtcclxuICAgICAgY29uZmlnOiBzaG93Q29uZmlnLFxyXG4gICAgICByZWY6IGNvbXBvbmVudFJlZixcclxuICAgICAgdG9vbGJhckVsLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jb25maWcgPSBzaG93Q29uZmlnO1xyXG4gICAgdGhpcy4kaXNPcGVuZWQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMudXNlVHJhbnNpdGlvbiA9IFwieWVzXCI7XHJcbiAgICByZXR1cm4gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgaGlkZSgpIHtcclxuICAgIHRoaXMuc2VydmljZS5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBiYWNrKCkge1xyXG4gICAgdGhpcy5kZWxldGVDYWNoZSh0aGlzLnNlcnZpY2UuY2FjaGVLZXkpO1xyXG4gICAgdGhpcy4kaXNPcGVuZWQubmV4dChmYWxzZSk7XHJcbiAgICB0aGlzLnVzZVRyYW5zaXRpb24gPSBcInllc1wiO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ2FjaGUoY2FjaGVLZXk6IHN0cmluZykge1xyXG4gICAgY29uc3QgY2FjaGUgPSB0aGlzLmNvbXBvbmVudFJlZk1hcC5nZXQoY2FjaGVLZXkpO1xyXG4gICAgaWYgKGNhY2hlKSB7XHJcbiAgICAgIHRoaXMuZGVzdHJveUR5bmFtaWNDb21wb25lbnQoY2FjaGUucmVmKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29tcG9uZW50UmVmTWFwLmRlbGV0ZShjYWNoZUtleSk7XHJcbiAgfVxyXG5cclxuICBvblJvdXRlQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRSZWZNYXAuZm9yRWFjaCgoY2FjaGUpID0+IHtcclxuICAgICAgY2FjaGUucmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBjYWNoZSA9IHRoaXMuY29tcG9uZW50UmVmTWFwLmdldCh0aGlzLnNlcnZpY2UuY2FjaGVLZXkpO1xyXG4gICAgaWYgKGNhY2hlKSB7XHJcbiAgICAgIGNhY2hlLnJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xyXG4gICAgICB0aGlzLmNvbmZpZyA9IGNhY2hlLmNvbmZpZztcclxuICAgICAgdGhpcy5zZXRUb29sYmFyRWxlbWVudChjYWNoZS50b29sYmFyRWwpO1xyXG4gICAgICB0aGlzLiRpc09wZW5lZC5uZXh0KHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy4kaXNPcGVuZWQubmV4dChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVzZVRyYW5zaXRpb24gPSBcIm5vXCI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvZHJhd2VyL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBRXhCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIsYUFBYSxHQUNkLE1BQU0sOEJBQThCLENBQUM7QUFTdEM7SUFzQkUseUJBQ1UsUUFBa0MsRUFDbEMsT0FBc0I7UUFEdEIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQVJoQyxXQUFNLEdBQWlCLG1CQUFtQixDQUFDO1FBQzNDLGtCQUFhLEdBQWlCLEtBQUssQ0FBQztRQUNwQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFeEMsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztJQUsvRCxDQUFDOzs7Ozs7SUFFSSxnREFBc0I7Ozs7O0lBQTlCLFVBQStCLFNBQXNDOzs7WUFFN0QsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDOztZQUMxRCxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQzVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7Ozs7OztJQUVPLGlEQUF1Qjs7Ozs7SUFBL0IsVUFBZ0MsWUFBK0I7UUFDN0QsSUFBSSxZQUFZLEVBQUU7WUFDaEIsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzs7Ozs7OztJQUVPLDBDQUFnQjs7Ozs7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QUFLLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7O2dCQWpJRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLHUvQkFBcUM7O2lCQUV0Qzs7OztnQkF0QkMsd0JBQXdCO2dCQVF4QixhQUFhOzs7MEJBZ0JaLFNBQVMsU0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzBCQUN0QyxTQUFTLFNBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTt5QkFDdEMsU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7NEJBRXJDLFNBQVMsU0FBQywyQkFBMkIsRUFBRTt3QkFDdEMsSUFBSSxFQUFFLGdCQUFnQjt3QkFDdEIsTUFBTSxFQUFFLEtBQUs7cUJBQ2Q7O0lBcUhILHNCQUFDO0NBQUEsQUFsSUQsSUFrSUM7U0E3SFksZUFBZTs7O0lBQzFCLGtDQUE2RTs7SUFDN0Usa0NBQTZFOztJQUM3RSxpQ0FBMkU7Ozs7O0lBRTNFLG9DQUlvQzs7SUFFcEMsaUNBQTJDOztJQUMzQyx3Q0FBb0M7O0lBQ3BDLG9DQUFnRDs7Ozs7SUFFaEQsMENBQWtFOzs7OztJQUdoRSxtQ0FBMEM7Ozs7O0lBQzFDLGtDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBDb21wb25lbnRSZWYsXHJcbiAgRWxlbWVudFJlZixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1xyXG4gIERyYXdlckNvbmZpZyxcclxuICBEZWZhdWx0RHJhd2VyQ29uZmlnLFxyXG4gIERyYXdlclNlcnZpY2UsXHJcbn0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZHJhd2VyLnNlcnZpY2VcIjtcclxuXHJcbnR5cGUgRHJhd2VyQ29tcG9uZW50Q2FjaGUgPSB7XHJcbiAgcmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuICBjb25maWc6IERyYXdlckNvbmZpZztcclxuICB0b29sYmFyRWw6IEhUTUxFbGVtZW50O1xyXG4gIGhlYWRlckVsOiBIVE1MRWxlbWVudDtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWRyYXdlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3ZXJDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoXCJlbGVtZW50XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKFwidG9vbGJhclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgdG9vbGJhcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZChcImhlYWRlclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgaGVhZGVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZChcImR5bmFtaWNDb21wb25lbnRDb250YWluZXJcIiwge1xyXG4gICAgcmVhZDogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHN0YXRpYzogZmFsc2UsXHJcbiAgfSlcclxuICBwcml2YXRlIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgY29uZmlnOiBEcmF3ZXJDb25maWcgPSBEZWZhdWx0RHJhd2VyQ29uZmlnO1xyXG4gIHVzZVRyYW5zaXRpb246IFwieWVzXCIgfCBcIm5vXCIgPSBcInllc1wiO1xyXG4gICRpc09wZW5lZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBwcml2YXRlIGNvbXBvbmVudFJlZk1hcCA9IG5ldyBNYXA8c3RyaW5nLCBEcmF3ZXJDb21wb25lbnRDYWNoZT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IERyYXdlclNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY0NvbXBvbmVudChjb21wb25lbnQ6IG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueSkge1xyXG4gICAgLy8g56Gu5L+d5Zyo6LCD55So5LmL5YmN55uu5qCH57uE5Lu25bey57uP5ZyoZW50cnlDb21wb25lbnRz5Lit5aOw5piOXHJcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveUR5bmFtaWNDb21wb25lbnQoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55Pikge1xyXG4gICAgaWYgKGNvbXBvbmVudFJlZikge1xyXG4gICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDb21wb25lbnREYXRhKFxyXG4gICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PixcclxuICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxyXG4gICkge1xyXG4gICAgLy8g5aaC5p6c6ZyA6KaB5Lyg6YCS5pWw5o2u57uZ5Yqo5oCB57uE5Lu277yM5Y+v5Lul6L+Z5qC35YGaXHJcbiAgICBpZiAoY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZVtrZXldID0gdmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTbG90RWxlbWVudChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+LCBzZWxlY3Rvcjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb21wb25lbnRFbCA9IGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudEVsLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpIGFzIEhUTUxFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRTbG90RWxlbWVudChzbG90RWw6IEhUTUxFbGVtZW50LCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcclxuICAgIGNvbnRhaW5lckVsLmlubmVySFRNTCA9IFwiXCI7XHJcbiAgICBpZiAoc2xvdEVsKSB7XHJcbiAgICAgIGNvbnRhaW5lckVsLmFwcGVuZChzbG90RWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2FjaGUoY2FjaGU6IERyYXdlckNvbXBvbmVudENhY2hlKSB7XHJcbiAgICB0aGlzLnNldFNsb3RFbGVtZW50KGNhY2hlLnRvb2xiYXJFbCwgdGhpcy50b29sYmFyLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5zZXRTbG90RWxlbWVudChjYWNoZS5oZWFkZXJFbCwgdGhpcy5oZWFkZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICBjb25zdCBkcmF3ZXJUb3AgPSBjYWNoZS5jb25maWcudG9wID8gYCR7Y2FjaGUuY29uZmlnLnRvcH1weGAgOiBcIlwiO1xyXG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCItLWRyYXdlci10b3BcIiwgZHJhd2VyVG9wKTtcclxuICB9XHJcblxyXG4gIHNob3c8VD4oXHJcbiAgICBjb21wb25lbnQ6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsXHJcbiAgICBjb25maWc6IERyYXdlckNvbmZpZyxcclxuICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT5cclxuICApOiBUIHtcclxuICAgIGNvbnN0IHNob3dDb25maWcgPSB7IC4uLkRlZmF1bHREcmF3ZXJDb25maWcsIC4uLmNvbmZpZyB9O1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jcmVhdGVEeW5hbWljQ29tcG9uZW50KGNvbXBvbmVudCk7XHJcbiAgICBjb25zdCB0b29sYmFyRWwgPSB0aGlzLmdldFNsb3RFbGVtZW50KGNvbXBvbmVudFJlZiwgXCJbZHJhd2VyLXRvb2xiYXJdXCIpO1xyXG4gICAgY29uc3QgaGVhZGVyRWwgPSB0aGlzLmdldFNsb3RFbGVtZW50KGNvbXBvbmVudFJlZiwgXCJbZHJhd2VyLWhlYWRlcl1cIik7XHJcbiAgICBjb25zdCBjYWNoZSA9IHtcclxuICAgICAgY29uZmlnOiBzaG93Q29uZmlnLFxyXG4gICAgICByZWY6IGNvbXBvbmVudFJlZixcclxuICAgICAgdG9vbGJhckVsLFxyXG4gICAgICBoZWFkZXJFbCxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5zZXRDb21wb25lbnREYXRhKGNvbXBvbmVudFJlZiwgZGF0YSk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZk1hcC5zZXQodGhpcy5zZXJ2aWNlLmNhY2hlS2V5LCBjYWNoZSk7XHJcblxyXG4gICAgdGhpcy5zZXRDYWNoZShjYWNoZSk7XHJcbiAgICB0aGlzLmNvbmZpZyA9IHNob3dDb25maWc7XHJcbiAgICB0aGlzLiRpc09wZW5lZC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy51c2VUcmFuc2l0aW9uID0gXCJ5ZXNcIjtcclxuICAgIHJldHVybiBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICBoaWRlKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIGJhY2soKSB7XHJcbiAgICB0aGlzLmRlbGV0ZUNhY2hlKHRoaXMuc2VydmljZS5jYWNoZUtleSk7XHJcbiAgICB0aGlzLiRpc09wZW5lZC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMudXNlVHJhbnNpdGlvbiA9IFwieWVzXCI7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDYWNoZShjYWNoZUtleTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjYWNoZSA9IHRoaXMuY29tcG9uZW50UmVmTWFwLmdldChjYWNoZUtleSk7XHJcbiAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgdGhpcy5kZXN0cm95RHluYW1pY0NvbXBvbmVudChjYWNoZS5yZWYpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb21wb25lbnRSZWZNYXAuZGVsZXRlKGNhY2hlS2V5KTtcclxuICB9XHJcblxyXG4gIG9uUm91dGVDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZk1hcC5mb3JFYWNoKChjYWNoZSkgPT4ge1xyXG4gICAgICBjYWNoZS5yZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGNhY2hlID0gdGhpcy5jb21wb25lbnRSZWZNYXAuZ2V0KHRoaXMuc2VydmljZS5jYWNoZUtleSk7XHJcbiAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgY2FjaGUucmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwiXCI7XHJcbiAgICAgIHRoaXMuY29uZmlnID0gY2FjaGUuY29uZmlnO1xyXG4gICAgICB0aGlzLnNldENhY2hlKGNhY2hlKTtcclxuICAgICAgdGhpcy4kaXNPcGVuZWQubmV4dCh0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuJGlzT3BlbmVkLm5leHQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51c2VUcmFuc2l0aW9uID0gXCJub1wiO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -104,10 +104,6 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
104
104
|
if (_this.noGenerateTabUrls.includes(_this.router.url)) {
|
|
105
105
|
return; // 排除不生成tab的url
|
|
106
106
|
}
|
|
107
|
-
if (_this.tabList.length === 0) {
|
|
108
|
-
title = sessionStorage.getItem("firstTabTitle");
|
|
109
|
-
sessionStorage.removeItem("firstTabTitle");
|
|
110
|
-
}
|
|
111
107
|
_this.setTab(_this.router.url, currentRoute.snapshot.routeConfig.path, title);
|
|
112
108
|
}
|
|
113
109
|
}
|
|
@@ -223,6 +219,16 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
223
219
|
/** @type {?} */
|
|
224
220
|
var TabCache = JSON.parse(sessionStorage.getItem("TabCache"));
|
|
225
221
|
this.tabList = TabCache || [];
|
|
222
|
+
if (this.tabList.length === 0) {
|
|
223
|
+
/** @type {?} */
|
|
224
|
+
var title = sessionStorage.getItem("firstTabTitle");
|
|
225
|
+
if (title) {
|
|
226
|
+
sessionStorage.removeItem("firstTabTitle");
|
|
227
|
+
/** @type {?} */
|
|
228
|
+
var url = this.router.url;
|
|
229
|
+
this.addTab(url, title);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
226
232
|
};
|
|
227
233
|
/**
|
|
228
234
|
* @param {?} idx
|
|
@@ -441,4 +447,4 @@ if (false) {
|
|
|
441
447
|
*/
|
|
442
448
|
MultiTabComponent.prototype.routeReuseStrategy;
|
|
443
449
|
}
|
|
444
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbXVsdGktdGFiL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc3RDtJQU1FLDJCQUNTLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFLdkMsb0JBQWUsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM1QyxzQkFBaUIsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM3QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQzNDLGNBQVMsR0FBRyxH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MkJBYU4sWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7SUF5TDNDLHdCQUFDO0NBQUEsQUF6TkQsSUF5TkM7U0FwTlksaUJBQWlCOzs7SUFXNUIsc0NBQTRCOztJQUM1Qiw0Q0FBd0M7O0lBQ3hDLDhDQUEwQzs7SUFDMUMseUNBQTRDOzs7OztJQUU1QywwQ0FBMkM7O0lBQzNDLHNDQUFnQjs7SUFDaEIsdUNBQWdCOztJQUNoQixzQ0FBZTs7SUFDZixvQ0FBUTs7SUFDUixnQ0FBa0I7O0lBQ2xCLG1DQUFZOztJQUNaLG9DQUFhOztJQUNiLHdDQUF3Qjs7SUFDeEIsb0NBQXFCOztJQUNyQix3Q0FBd0M7O0lBeEJ0QyxtQ0FBcUI7O0lBQ3JCLCtCQUFnQzs7SUFDaEMsMkNBQXFDOzs7OztJQUNyQyxnQ0FBOEI7Ozs7O0lBQzlCLG1DQUE2Qjs7Ozs7SUFDN0IsK0NBQThDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlck91dGxldCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyYXdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kcmF3ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBLZWVwQWxpdmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1tdWx0aS10YWJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRyYXdlcjogRHJhd2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVSZXVzZVN0cmF0ZWd5OiBSb3V0ZVJldXNlU3RyYXRlZ3lcclxuICApIHtcclxuICAgIHRoaXMua2VlcEFsaXZlID0gdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgYXMgS2VlcEFsaXZlU2VydmljZTtcclxuICB9XHJcbiAga2VlcEFsaXZlOiBLZWVwQWxpdmVTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVJldXNlVXJsczogc3RyaW5nW10gPSBbXTsgLy/lj6rog73ljZXkuKrnvJPlrZjnmoR1cmxcclxuICBASW5wdXQoKSBub0dlbmVyYXRlVGFiVXJsczogc3RyaW5nW10gPSBbXTsgLy/kuI3nlJ/miJB0YWLnmoR1cmxcclxuICBAT3V0cHV0KCkgb25SZWZyZXNoVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIFxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBUQUJfV0lEVEggPSAxNjQ7XHJcbiAgR0FQX05PUk1BTCA9IDU0O1xyXG4gIEdBUF9TTUFMTCA9IDMwO1xyXG4gIHRleHRHYXA7IC8vIOaWh+acrOS4jui+ueahhueahOaAu+mXtOi3nVxyXG4gIGZvbzogUm91dGVyT3V0bGV0O1xyXG4gIGNvbVJlZjogYW55O1xyXG4gIHRhYkxpc3QgPSBbXTtcclxuICBzZWxlY3RlZFRhYjogbnVtYmVyID0gMDtcclxuICBtYXhUYWJzOiBudW1iZXIgPSAxMDtcclxuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gd2luZG93LmlubmVyV2lkdGg7IC8vIOWIneWni+WMluWxj+W5leWuveW6plxyXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIsIFtcIiRldmVudFwiXSlcclxuICBvblJlc2l6ZShldmVudCkge1xyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDmm7TmlrDlsY/luZXlrr3luqZcclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHRcdFx0dGhpcy5jZi5jbG9zZVRhYiQuc3Vic2NyaWJlKChpZHgpID0+IHtcclxuICAgICAgICBpZihpZHggPT09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICBpZHggPSB0aGlzLnNlbGVjdGVkVGFiO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNsb3NlVGFiKGlkeCk7ICAgICAgICBcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcbiAgICB0aGlzLmluaXRUYWIoKTtcclxuICAgIC8vIOino+WGs+WIt+aWsOmhtemdouWQju+8jOmAieS4reeahCB0YWIg5Lii5aSx6Zeu6aKYXHJcbiAgICBjb25zdCBpc0V4aXN0SWR4ID0gdGhpcy50YWJMaXN0LmZpbmRJbmRleChcclxuICAgICAgKGVsZSkgPT4gZWxlLnVybCA9PT0gdGhpcy5yb3V0ZXIudXJsXHJcbiAgICApO1xyXG4gICAgaWYgKGlzRXhpc3RJZHggIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBpc0V4aXN0SWR4O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcbiAgICAgICAgaWYgKG5hdmlnYXRpb24pIHtcclxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gbmF2aWdhdGlvbi5leHRyYXMuc3RhdGU7IC8vIOiOt+WPluS8oOmAkueahCBzdGF0ZVxyXG4gICAgICAgICAgY29uc3Qgc2tpcExvY2F0aW9uQ2hhbmdlID0gbmF2aWdhdGlvbi5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlOyAvLyDojrflj5bmmK/lkKbot7Pov4cgbG9jYXRpb24gY2hhbmdlXHJcbiAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LmZpcnN0Q2hpbGQ7XHJcbiAgICAgICAgICBsZXQgdGl0bGUgPSBzdGF0ZSAmJiBzdGF0ZS50aXRsZTtcclxuICAgICAgICAgIGlmIChjdXJyZW50Um91dGUgJiYgIXNraXBMb2NhdGlvbkNoYW5nZSkge1xyXG4gICAgICAgICAgICBpZih0aGlzLm5vR2VuZXJhdGVUYWJVcmxzLmluY2x1ZGVzKCB0aGlzLnJvdXRlci51cmwpKXtcclxuICAgICAgICAgICAgICByZXR1cm47IC8vIOaOkumZpOS4jeeUn+aIkHRhYueahHVybFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYkxpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGl0bGUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiZmlyc3RUYWJUaXRsZVwiKTtcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwiZmlyc3RUYWJUaXRsZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNldFRhYihcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlci51cmwsXHJcbiAgICAgICAgICAgICAgY3VycmVudFJvdXRlLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGgsXHJcbiAgICAgICAgICAgICAgdGl0bGVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pKVxyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgICB9LCA1MCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2V0RWxsaXBzaXNUaXRsZSh0aXRsZT8pIHtcclxuICAgIHRoaXMudGV4dEdhcCA9IHRoaXMuR0FQX05PUk1BTDtcclxuICAgIGlmICh0aGlzLnNjcmVlbldpZHRoIDw9IDExMDApIHtcclxuICAgICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfU01BTEw7XHJcbiAgICB9XHJcbiAgICBsZXQgeyBhbGxXaWR0aCwgbGVmdFdpZHRoLCByaWdodFdpZHRoIH0gPSB0aGlzLmNhbGNUYWJXaWR0aCgpO1xyXG4gICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihcclxuICAgICAgKGFsbFdpZHRoIC0gcmlnaHRXaWR0aCkgLyAodGhpcy50YWJMaXN0ICYmIHRoaXMudGFiTGlzdC5sZW5ndGgpXHJcbiAgICApO1xyXG4gICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKFxyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIHdpZHRoID4gdGhpcy5UQUJfV0lEVEhcclxuICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgIDogd2lkdGggLSB0aGlzLnRleHRHYXAsXHJcbiAgICAgICAgMTJcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFiTGlzdC5mb3JFYWNoKChlbGUsIGlkeCkgPT4ge1xyXG4gICAgICAgIGVsZS5kaXNwbGF5VGl0bGUgPSB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKFxyXG4gICAgICAgICAgZWxlLnRpdGxlLFxyXG4gICAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgICA/IHRoaXMuVEFCX1dJRFRIIC0gdGhpcy50ZXh0R2FwXHJcbiAgICAgICAgICAgIDogd2lkdGggLSB0aGlzLnRleHRHYXAsXHJcbiAgICAgICAgICAxMlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsY1RhYldpZHRoKCkge1xyXG4gICAgY29uc3Qgd3JhcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiXCIpO1xyXG4gICAgY29uc3QgdWxFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWIgPiB1bFwiKTtcclxuICAgIGNvbnN0IHJlZnJlc2hUYWJEaXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiAucmVmcmVzaC10YWJcIik7XHJcbiAgICBsZXQgYWxsV2lkdGg7XHJcbiAgICBsZXQgbGVmdFdpZHRoO1xyXG4gICAgbGV0IHJpZ2h0V2lkdGg7XHJcbiAgICBpZiAod3JhcCAmJiB1bEVsZW1lbnQpIHtcclxuICAgICAgLy8g6I635Y+W5YWD57Sg55qE5L2N572u5L+h5oGvXHJcbiAgICAgIGNvbnN0IHdyYXBSZWN0ID0gd3JhcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgY29uc3QgdWxSZWN0ID0gdWxFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCByZWZyZXNoVGFiUmVjdCA9XHJcbiAgICAgICAgcmVmcmVzaFRhYkRpdiAmJiByZWZyZXNoVGFiRGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBhbGxXaWR0aCA9IHdyYXBSZWN0LndpZHRoO1xyXG4gICAgICBsZWZ0V2lkdGggPSB1bFJlY3Qud2lkdGg7XHJcbiAgICAgIHJpZ2h0V2lkdGggPSAocmVmcmVzaFRhYlJlY3QgJiYgcmVmcmVzaFRhYlJlY3Qud2lkdGgpIHx8IDEwMDtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFsbFdpZHRoLFxyXG4gICAgICBsZWZ0V2lkdGgsXHJcbiAgICAgIHJpZ2h0V2lkdGgsXHJcbiAgICB9O1xyXG4gIH1cclxuICBpbml0VGFiKCkge1xyXG4gICAgbGV0IFRhYkNhY2hlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiVGFiQ2FjaGVcIikpO1xyXG4gICAgdGhpcy50YWJMaXN0ID0gVGFiQ2FjaGUgfHwgW107XHJcbiAgfVxyXG5cclxuICBjbG9zZVRhYihpZHgpIHtcclxuICAgIGNvbnN0IHRhYiA9IHRoaXMudGFiTGlzdFtpZHhdO1xyXG4gICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcigoZWxlKSA9PiBlbGUudXJsICE9PSB0YWIudXJsKTtcclxuICAgIHRoaXMuY2xlYXJDYWNoZSh0YWIudXJsKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSBpZHgpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0SWR4ID0gTWF0aC5tYXgoMCwgaWR4IC0gMSk7XHJcbiAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMudGFiTGlzdFt0YXJnZXRJZHhdLCB0YXJnZXRJZHgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiVGFiQ2FjaGVcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJMaXN0KSk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVRhYih0YWIsIGlkeCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0YWIudXJsKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBpZHg7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGFkZFRhYih1cmwsIHRpdGxlKSB7XHJcbiAgICBpZiAodGhpcy50YWJMaXN0Lmxlbmd0aCA+PSB0aGlzLm1heFRhYnMpIHtcclxuICAgICAgdGhpcy5jbG9zZVRhYigwKTsgLy8g5Yig6Zmk56ys5LiA5LiqXHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYkxpc3QucHVzaCh7XHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICB0aXRsZTogdGl0bGUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIGRpc3BsYXlUaXRsZTogdGl0bGUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLnRhYkxpc3QubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFiKHVybCwgcHVyZVVybD8sIHRpdGxlPykge1xyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoKGVsZSkgPT4gZWxlLnVybCA9PT0gdXJsKTtcclxuICAgIGlmIChpc0V4aXN0SWR4ID09PSAtMSkge1xyXG4gICAgICBjb25zdCBzaW5nbGVJZHggPSB0aGlzLnNpbmdsZVJldXNlVXJscy5maW5kSW5kZXgoXHJcbiAgICAgICAgKGVsZSkgPT4gZWxlID09PSBwdXJlVXJsXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChzaW5nbGVJZHggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcihcclxuICAgICAgICAgIChlbGUpID0+ICFlbGUudXJsLmluY2x1ZGVzKHRoaXMuc2luZ2xlUmV1c2VVcmxzW3NpbmdsZUlkeF0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHVybCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodXJsKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBpc0V4aXN0SWR4O1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZnJlc2hUYWIoKSB7XHJcbiAgICAvLyB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHRoaXMudGFiTGlzdFt0aGlzLnNlbGVjdGVkVGFiXS51cmwpO1xyXG4gICAgLy8gdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcbiAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsOyAvLyDojrflj5blvZPliY0gVVJMXHJcbiAgICB0aGlzLm9uUmVmcmVzaFRhYi5lbWl0KGN1cnJlbnRVcmwpO1xyXG4gICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChcIi9cIiwgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoY3VycmVudFVybCk7IC8vIOmHjeaWsOWvvOiIquWIsOW9k+WJjSBVUkxcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDYWNoZSh1cmwpIHtcclxuICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodXJsKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcbiAgICB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
450
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbXVsdGktdGFiL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc3RDtJQU1FLDJCQUNTLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFLdkMsb0JBQWUsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM1QyxzQkFBaUIsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM3QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQzNDLGNBQVMsR0FBRyxH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Ozs7Z0JBZEMsTUFBTTtnQkFNQyxxQkFBcUI7Z0JBUjVCLGNBQWM7Z0JBVmQsaUJBQWlCO2dCQW1CVixhQUFhO2dCQUZiLGtCQUFrQjs7O2tDQXNCeEIsS0FBSztvQ0FDTCxLQUFLOytCQUNMLE1BQU07MkJBYU4sWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7SUE2TDNDLHdCQUFDO0NBQUEsQUE3TkQsSUE2TkM7U0F4TlksaUJBQWlCOzs7SUFXNUIsc0NBQTRCOztJQUM1Qiw0Q0FBd0M7O0lBQ3hDLDhDQUEwQzs7SUFDMUMseUNBQTRDOzs7OztJQUU1QywwQ0FBMkM7O0lBQzNDLHNDQUFnQjs7SUFDaEIsdUNBQWdCOztJQUNoQixzQ0FBZTs7SUFDZixvQ0FBUTs7SUFDUixnQ0FBa0I7O0lBQ2xCLG1DQUFZOztJQUNaLG9DQUFhOztJQUNiLHdDQUF3Qjs7SUFDeEIsb0NBQXFCOztJQUNyQix3Q0FBd0M7O0lBeEJ0QyxtQ0FBcUI7O0lBQ3JCLCtCQUFnQzs7SUFDaEMsMkNBQXFDOzs7OztJQUNyQyxnQ0FBOEI7Ozs7O0lBQzlCLG1DQUE2Qjs7Ozs7SUFDN0IsK0NBQThDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlck91dGxldCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyYXdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kcmF3ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBLZWVwQWxpdmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1tdWx0aS10YWJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRyYXdlcjogRHJhd2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVSZXVzZVN0cmF0ZWd5OiBSb3V0ZVJldXNlU3RyYXRlZ3lcclxuICApIHtcclxuICAgIHRoaXMua2VlcEFsaXZlID0gdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgYXMgS2VlcEFsaXZlU2VydmljZTtcclxuICB9XHJcbiAga2VlcEFsaXZlOiBLZWVwQWxpdmVTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVJldXNlVXJsczogc3RyaW5nW10gPSBbXTsgLy/lj6rog73ljZXkuKrnvJPlrZjnmoR1cmxcclxuICBASW5wdXQoKSBub0dlbmVyYXRlVGFiVXJsczogc3RyaW5nW10gPSBbXTsgLy/kuI3nlJ/miJB0YWLnmoR1cmxcclxuICBAT3V0cHV0KCkgb25SZWZyZXNoVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIFxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBUQUJfV0lEVEggPSAxNjQ7XHJcbiAgR0FQX05PUk1BTCA9IDU0O1xyXG4gIEdBUF9TTUFMTCA9IDMwO1xyXG4gIHRleHRHYXA7IC8vIOaWh+acrOS4jui+ueahhueahOaAu+mXtOi3nVxyXG4gIGZvbzogUm91dGVyT3V0bGV0O1xyXG4gIGNvbVJlZjogYW55O1xyXG4gIHRhYkxpc3QgPSBbXTtcclxuICBzZWxlY3RlZFRhYjogbnVtYmVyID0gMDtcclxuICBtYXhUYWJzOiBudW1iZXIgPSAxMDtcclxuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gd2luZG93LmlubmVyV2lkdGg7IC8vIOWIneWni+WMluWxj+W5leWuveW6plxyXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIsIFtcIiRldmVudFwiXSlcclxuICBvblJlc2l6ZShldmVudCkge1xyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDmm7TmlrDlsY/luZXlrr3luqZcclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHRcdFx0dGhpcy5jZi5jbG9zZVRhYiQuc3Vic2NyaWJlKChpZHgpID0+IHtcclxuICAgICAgICBpZihpZHggPT09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICBpZHggPSB0aGlzLnNlbGVjdGVkVGFiO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNsb3NlVGFiKGlkeCk7ICAgICAgICBcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcbiAgICB0aGlzLmluaXRUYWIoKTtcclxuICAgIC8vIOino+WGs+WIt+aWsOmhtemdouWQju+8jOmAieS4reeahCB0YWIg5Lii5aSx6Zeu6aKYXHJcbiAgICBjb25zdCBpc0V4aXN0SWR4ID0gdGhpcy50YWJMaXN0LmZpbmRJbmRleChcclxuICAgICAgKGVsZSkgPT4gZWxlLnVybCA9PT0gdGhpcy5yb3V0ZXIudXJsXHJcbiAgICApO1xyXG4gICAgaWYgKGlzRXhpc3RJZHggIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBpc0V4aXN0SWR4O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcbiAgICAgICAgaWYgKG5hdmlnYXRpb24pIHtcclxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gbmF2aWdhdGlvbi5leHRyYXMuc3RhdGU7IC8vIOiOt+WPluS8oOmAkueahCBzdGF0ZVxyXG4gICAgICAgICAgY29uc3Qgc2tpcExvY2F0aW9uQ2hhbmdlID0gbmF2aWdhdGlvbi5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlOyAvLyDojrflj5bmmK/lkKbot7Pov4cgbG9jYXRpb24gY2hhbmdlXHJcbiAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LmZpcnN0Q2hpbGQ7XHJcbiAgICAgICAgICBsZXQgdGl0bGUgPSBzdGF0ZSAmJiBzdGF0ZS50aXRsZTtcclxuICAgICAgICAgIGlmIChjdXJyZW50Um91dGUgJiYgIXNraXBMb2NhdGlvbkNoYW5nZSkge1xyXG4gICAgICAgICAgICBpZih0aGlzLm5vR2VuZXJhdGVUYWJVcmxzLmluY2x1ZGVzKCB0aGlzLnJvdXRlci51cmwpKXtcclxuICAgICAgICAgICAgICByZXR1cm47IC8vIOaOkumZpOS4jeeUn+aIkHRhYueahHVybFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VGFiKFxyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLnVybCxcclxuICAgICAgICAgICAgICBjdXJyZW50Um91dGUuc25hcHNob3Qucm91dGVDb25maWcucGF0aCxcclxuICAgICAgICAgICAgICB0aXRsZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpXHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgIH0sIDUwKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRFbGxpcHNpc1RpdGxlKHRpdGxlPykge1xyXG4gICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfTk9STUFMO1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuV2lkdGggPD0gMTEwMCkge1xyXG4gICAgICB0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9TTUFMTDtcclxuICAgIH1cclxuICAgIGxldCB7IGFsbFdpZHRoLCBsZWZ0V2lkdGgsIHJpZ2h0V2lkdGggfSA9IHRoaXMuY2FsY1RhYldpZHRoKCk7XHJcbiAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKFxyXG4gICAgICAoYWxsV2lkdGggLSByaWdodFdpZHRoKSAvICh0aGlzLnRhYkxpc3QgJiYgdGhpcy50YWJMaXN0Lmxlbmd0aClcclxuICAgICk7XHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgPyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG4gICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAxMlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJMaXN0LmZvckVhY2goKGVsZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgZWxlLmRpc3BsYXlUaXRsZSA9IHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgICBlbGUudGl0bGUsXHJcbiAgICAgICAgICB3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcbiAgICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAgIDEyXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxjVGFiV2lkdGgoKSB7XHJcbiAgICBjb25zdCB3cmFwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWJcIik7XHJcbiAgICBjb25zdCB1bEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiA+IHVsXCIpO1xyXG4gICAgY29uc3QgcmVmcmVzaFRhYkRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiIC5yZWZyZXNoLXRhYlwiKTtcclxuICAgIGxldCBhbGxXaWR0aDtcclxuICAgIGxldCBsZWZ0V2lkdGg7XHJcbiAgICBsZXQgcmlnaHRXaWR0aDtcclxuICAgIGlmICh3cmFwICYmIHVsRWxlbWVudCkge1xyXG4gICAgICAvLyDojrflj5blhYPntKDnmoTkvY3nva7kv6Hmga9cclxuICAgICAgY29uc3Qgd3JhcFJlY3QgPSB3cmFwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCB1bFJlY3QgPSB1bEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IHJlZnJlc2hUYWJSZWN0ID1cclxuICAgICAgICByZWZyZXNoVGFiRGl2ICYmIHJlZnJlc2hUYWJEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGFsbFdpZHRoID0gd3JhcFJlY3Qud2lkdGg7XHJcbiAgICAgIGxlZnRXaWR0aCA9IHVsUmVjdC53aWR0aDtcclxuICAgICAgcmlnaHRXaWR0aCA9IChyZWZyZXNoVGFiUmVjdCAmJiByZWZyZXNoVGFiUmVjdC53aWR0aCkgfHwgMTAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWxsV2lkdGgsXHJcbiAgICAgIGxlZnRXaWR0aCxcclxuICAgICAgcmlnaHRXaWR0aCxcclxuICAgIH07XHJcbiAgfVxyXG4gIGluaXRUYWIoKSB7XHJcbiAgICBsZXQgVGFiQ2FjaGUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJUYWJDYWNoZVwiKSk7XHJcbiAgICB0aGlzLnRhYkxpc3QgPSBUYWJDYWNoZSB8fCBbXTtcclxuICAgIGlmICh0aGlzLnRhYkxpc3QubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdGNvbnN0IHRpdGxlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcblx0XHRcdGlmICh0aXRsZSkge1xyXG5cdFx0XHRcdHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJmaXJzdFRhYlRpdGxlXCIpO1xyXG5cdFx0XHRcdGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHRcdFx0XHR0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG4gIH1cclxuXHJcbiAgY2xvc2VUYWIoaWR4KSB7XHJcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYkxpc3RbaWR4XTtcclxuICAgIHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoKGVsZSkgPT4gZWxlLnVybCAhPT0gdGFiLnVybCk7XHJcbiAgICB0aGlzLmNsZWFyQ2FjaGUodGFiLnVybCk7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gaWR4KSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldElkeCA9IE1hdGgubWF4KDAsIGlkeCAtIDEpO1xyXG4gICAgICB0aGlzLmNoYW5nZVRhYih0aGlzLnRhYkxpc3RbdGFyZ2V0SWR4XSwgdGFyZ2V0SWR4KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUYWIodGFiLCBpZHgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGFiLnVybCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gaWR4O1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBhZGRUYWIodXJsLCB0aXRsZSkge1xyXG4gICAgaWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPj0gdGhpcy5tYXhUYWJzKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VUYWIoMCk7IC8vIOWIoOmZpOesrOS4gOS4qlxyXG4gICAgfVxyXG4gICAgdGhpcy50YWJMaXN0LnB1c2goe1xyXG4gICAgICB1cmw6IHVybCxcclxuICAgICAgdGl0bGU6IHRpdGxlIHx8IFwiZGVmYXVsdFwiLFxyXG4gICAgICBkaXNwbGF5VGl0bGU6IHRpdGxlLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy50YWJMaXN0Lmxlbmd0aCAtIDE7XHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRhYih1cmwsIHB1cmVVcmw/LCB0aXRsZT8pIHtcclxuICAgIGNvbnN0IGlzRXhpc3RJZHggPSB0aGlzLnRhYkxpc3QuZmluZEluZGV4KChlbGUpID0+IGVsZS51cmwgPT09IHVybCk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCA9PT0gLTEpIHtcclxuICAgICAgY29uc3Qgc2luZ2xlSWR4ID0gdGhpcy5zaW5nbGVSZXVzZVVybHMuZmluZEluZGV4KFxyXG4gICAgICAgIChlbGUpID0+IGVsZSA9PT0gcHVyZVVybFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoc2luZ2xlSWR4ICE9PSAtMSkge1xyXG4gICAgICAgIHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAoZWxlKSA9PiAhZWxlLnVybC5pbmNsdWRlcyh0aGlzLnNpbmdsZVJldXNlVXJsc1tzaW5nbGVJZHhdKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh1cmwpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHVybCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gaXNFeGlzdElkeDtcclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWZyZXNoVGFiKCkge1xyXG4gICAgLy8gdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh0aGlzLnRhYkxpc3RbdGhpcy5zZWxlY3RlZFRhYl0udXJsKTtcclxuICAgIC8vIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHRoaXMudGFiTGlzdFt0aGlzLnNlbGVjdGVkVGFiXS51cmwpO1xyXG4gICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDsgLy8g6I635Y+W5b2T5YmNIFVSTFxyXG4gICAgdGhpcy5vblJlZnJlc2hUYWIuZW1pdChjdXJyZW50VXJsKTtcclxuICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoXCIvXCIsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGN1cnJlbnRVcmwpOyAvLyDph43mlrDlr7zoiKrliLDlvZPliY0gVVJMXHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FjaGUodXJsKSB7XHJcbiAgICB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHVybCk7IC8vIOiwg+eUqOiHquWumuS5ieetlueVpeeahOa4hemZpOe8k+WtmOaWueazlVxyXG4gICAgdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodXJsKTtcclxuICB9XHJcbn1cclxuIl19
|