raise-common-lib-new 0.0.21 → 0.0.23
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.
|
@@ -46,8 +46,7 @@ export class MultiTabComponent {
|
|
|
46
46
|
ngOnInit() {
|
|
47
47
|
this.initTab();
|
|
48
48
|
// 解决刷新页面后,选中的 tab 丢失问题
|
|
49
|
-
const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) ===
|
|
50
|
-
this.urlWithoutQuery(this.router.url));
|
|
49
|
+
const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) === this.urlWithoutQuery(this.router.url));
|
|
51
50
|
if (isExistIdx !== -1) {
|
|
52
51
|
this.selectedTab = isExistIdx;
|
|
53
52
|
}
|
|
@@ -86,6 +85,8 @@ export class MultiTabComponent {
|
|
|
86
85
|
}, 50);
|
|
87
86
|
}
|
|
88
87
|
ngOnDestroy() {
|
|
88
|
+
this.tabList = []; // 清空 tab 列表
|
|
89
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
89
90
|
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
90
91
|
}
|
|
91
92
|
setEllipsisTitle(title) {
|
|
@@ -242,7 +243,9 @@ export class MultiTabComponent {
|
|
|
242
243
|
this.drawer.deleteCache(url);
|
|
243
244
|
}
|
|
244
245
|
cleanAllCache() {
|
|
245
|
-
|
|
246
|
+
sessionStorage.removeItem("TabCache"); // 清除缓存
|
|
247
|
+
this.tabList = []; // 清空 tab 列表
|
|
248
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
246
249
|
this.keepAlive.clearAllCache(); // 调用自定义策略的清除缓存方法
|
|
247
250
|
}
|
|
248
251
|
urlWithoutQuery(url) {
|
|
@@ -264,4 +267,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
264
267
|
type: HostListener,
|
|
265
268
|
args: ["window:resize", ["$event"]]
|
|
266
269
|
}] } });
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFHTixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTixhQUFhLEdBR2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFZeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUVyQjtJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ0E7SUFOVCxZQUNRLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFFOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQXNDLENBQUM7SUFDOUQsQ0FBQztJQUNELFNBQVMsQ0FBbUI7SUFDbkIsZUFBZSxHQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVk7SUFDNUMsaUJBQWlCLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTtJ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NUUsMERBQTBEO1FBQzFELE1BQU07SUFDUCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQUc7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsYUFBYTtRQUNaLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsaUJBQWlCO0lBQ2xELENBQUM7SUFFTyxlQUFlLENBQUMsR0FBRztRQUMxQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt3R0F0U1csaUJBQWlCOzRGQUFqQixpQkFBaUIscVBDOUI5Qix3M0RBMERBOzs0RkQ1QmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNDLGNBQWM7MlBBZ0JmLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBY1AsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG5cdEFmdGVyVmlld0luaXQsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRIb3N0TGlzdGVuZXIsXHJcblx0SW5wdXQsXHJcblx0T25EZXN0cm95LFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuXHRBY3RpdmF0ZWRSb3V0ZSxcclxuXHROYXZpZ2F0aW9uRW5kLFxyXG5cdFJvdXRlcixcclxuXHRSb3V0ZXJPdXRsZXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgUm91dGVSZXVzZVN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBDb21tb25GdW5jdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9jb21tb24tZnVuY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcmF3ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZHJhd2VyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgS2VlcEFsaXZlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2tlZXAtYWxpdmUuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6IFwicnMtbXVsdGktdGFiXCIsXHJcblx0dGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG5cdHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE11bHRpVGFiQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIHJvdXRlcjogUm91dGVyLFxyXG5cdFx0cHVibGljIGNmOiBDb21tb25GdW5jdGlvblNlcnZpY2UsXHJcblx0XHRwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG5cdFx0cHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cdFx0cHJpdmF0ZSBkcmF3ZXI6IERyYXdlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJvdXRlUmV1c2VTdHJhdGVneTogUm91dGVSZXVzZVN0cmF0ZWd5XHJcblx0KSB7XHJcblx0XHR0aGlzLmtlZXBBbGl2ZSA9IHRoaXMucm91dGVSZXVzZVN0cmF0ZWd5IGFzIEtlZXBBbGl2ZVNlcnZpY2U7XHJcblx0fVxyXG5cdGtlZXBBbGl2ZTogS2VlcEFsaXZlU2VydmljZTtcclxuXHRASW5wdXQoKSBzaW5nbGVSZXVzZVVybHM6IHN0cmluZ1tdID0gW107IC8v5Y+q6IO95Y2V5Liq57yT5a2Y55qEdXJsXHJcblx0QElucHV0KCkgbm9HZW5lcmF0ZVRhYlVybHM6IHN0cmluZ1tdID0gW107IC8v5LiN55Sf5oiQdGFi55qEdXJsXHJcblx0QE91dHB1dCgpIG9uUmVmcmVzaFRhYiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0cHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cdFRBQl9XSURUSCA9IDE2NDtcclxuXHRHQVBfTk9STUFMID0gNTQ7XHJcblx0R0FQX1NNQUxMID0gMzA7XHJcblx0dGV4dEdhcDsgLy8g5paH5pys5LiO6L655qGG55qE5oC76Ze06LedXHJcblx0Zm9vOiBSb3V0ZXJPdXRsZXQ7XHJcblx0Y29tUmVmOiBhbnk7XHJcblx0dGFiTGlzdCA9IFtdO1xyXG5cdHNlbGVjdGVkVGFiOiBudW1iZXIgPSAwO1xyXG5cdG1heFRhYnM6IG51bWJlciA9IDEwO1xyXG5cdHNjcmVlbldpZHRoOiBudW1iZXIgPSB3aW5kb3cuaW5uZXJXaWR0aDsgLy8g5Yid5aeL5YyW5bGP5bmV5a695bqmXHJcblx0QEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG5cdG9uUmVzaXplKGV2ZW50KSB7XHJcblx0XHR0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7IC8vIOabtOaWsOWxj+W5leWuveW6plxyXG5cdFx0dGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMuaW5pdFRhYigpO1xyXG5cdFx0Ly8g6Kej5Yaz5Yi35paw6aG16Z2i5ZCO77yM6YCJ5Lit55qEIHRhYiDkuKLlpLHpl67pophcclxuXHRcdGNvbnN0IGlzRXhpc3RJZHggPSB0aGlzLnRhYkxpc3QuZmluZEluZGV4KFxyXG5cdFx0XHQoZWxlKSA9PlxyXG5cdFx0XHRcdHRoaXMudXJsV2l0aG91dFF1ZXJ5KGVsZS51cmwpID09PVxyXG5cdFx0XHRcdHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRoaXMucm91dGVyLnVybClcclxuXHRcdCk7XHJcblx0XHRpZiAoaXNFeGlzdElkeCAhPT0gLTEpIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZFRhYiA9IGlzRXhpc3RJZHg7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcblx0XHRcdHRoaXMucm91dGVyLmV2ZW50c1xyXG5cdFx0XHRcdC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcblx0XHRcdFx0LnN1YnNjcmliZSgoKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcblx0XHRcdFx0XHRpZiAobmF2aWdhdGlvbikge1xyXG5cdFx0XHRcdFx0XHRjb25zdCB0b29sdGlwRWxlbWVudHMgPVxyXG5cdFx0XHRcdFx0XHRcdGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZS1wb3B1cC1vcGVuXCIpO1xyXG5cdFx0XHRcdFx0XHQvLyDliKDpmaR0b29sdGlwc1xyXG5cdFx0XHRcdFx0XHR0b29sdGlwRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGh0bWxFbGVtZW50ID0gZWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuXHRcdFx0XHRcdFx0XHRodG1sRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IG5hdmlnYXRpb24uZXh0cmFzLnN0YXRlOyAvLyDojrflj5bkvKDpgJLnmoQgc3RhdGVcclxuXHRcdFx0XHRcdFx0Y29uc3Qgc2tpcExvY2F0aW9uQ2hhbmdlID1cclxuXHRcdFx0XHRcdFx0XHRuYXZpZ2F0aW9uLmV4dHJhcy5za2lwTG9jYXRpb25DaGFuZ2U7IC8vIOiOt+WPluaYr+WQpui3s+i/hyBsb2NhdGlvbiBjaGFuZ2VcclxuXHRcdFx0XHRcdFx0Y29uc3QgY3VycmVudFJvdXRlID1cclxuXHRcdFx0XHRcdFx0XHR0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LmZpcnN0Q2hpbGQ7XHJcblx0XHRcdFx0XHRcdGNvbnN0IG5hdmlnYXRpb25JbmZvID0gSlNPTi5wYXJzZShcclxuXHRcdFx0XHRcdFx0XHRzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwibmF2aWdhdGlvbkluZm9cIikgfHwgXCJ7fVwiXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdGxldCB0aXRsZSA9XHJcblx0XHRcdFx0XHRcdFx0KHN0YXRlICYmIHN0YXRlLnRpdGxlKSB8fFxyXG5cdFx0XHRcdFx0XHRcdG5hdmlnYXRpb25JbmZvLnRpdGxlIHx8XHJcblx0XHRcdFx0XHRcdFx0bmF2aWdhdGlvbkluZm8uc3ViVGl0bGUgfHxcclxuXHRcdFx0XHRcdFx0XHRuYXZpZ2F0aW9uSW5mby5uYW1lO1xyXG5cclxuXHRcdFx0XHRcdFx0bGV0IG5vUmV1c2VkID0gKHN0YXRlICYmIHN0YXRlLm5vUmV1c2VkKSB8fCBmYWxzZTsgLy8g5b2T5YmNdGFi5LiN5aSN55So77yM5paw5byA5LiA5LiqdGFiLOW9k+acieW3sue7j+WtmOWcqOeahHRhYuaXtuWAmeS5n+aYr+aWsOW8gFxyXG5cdFx0XHRcdFx0XHRpZiAoY3VycmVudFJvdXRlICYmICFza2lwTG9jYXRpb25DaGFuZ2UpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLm5vR2VuZXJhdGVUYWJVcmxzLmluY2x1ZGVzKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnVybFdpdGhvdXRRdWVyeSh0aGlzLnJvdXRlci51cmwpXHJcblx0XHRcdFx0XHRcdFx0XHQpXHJcblx0XHRcdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47IC8vIOaOkumZpOS4jeeUn+aIkHRhYueahHVybFxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNldFRhYihcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMucm91dGVyLnVybCxcclxuXHRcdFx0XHRcdFx0XHRcdGN1cnJlbnRSb3V0ZS5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRoLFxyXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGUsXHJcblx0XHRcdFx0XHRcdFx0XHRub1JldXNlZFxyXG5cdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblx0bmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG5cdFx0fSwgNTApO1xyXG5cdH1cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcclxuXHR9XHJcblxyXG5cdHNldEVsbGlwc2lzVGl0bGUodGl0bGU/KSB7XHJcblx0XHR0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9OT1JNQUw7XHJcblx0XHRpZiAodGhpcy5zY3JlZW5XaWR0aCA8PSAxMTAwKSB7XHJcblx0XHRcdHRoaXMudGV4dEdhcCA9IHRoaXMuR0FQX1NNQUxMO1xyXG5cdFx0fVxyXG5cdFx0bGV0IHsgYWxsV2lkdGgsIGxlZnRXaWR0aCwgcmlnaHRXaWR0aCB9ID0gdGhpcy5jYWxjVGFiV2lkdGgoKTtcclxuXHRcdGxldCB3aWR0aCA9IE1hdGguZmxvb3IoXHJcblx0XHRcdChhbGxXaWR0aCAtIHJpZ2h0V2lkdGgpIC8gKHRoaXMudGFiTGlzdCAmJiB0aGlzLnRhYkxpc3QubGVuZ3RoKVxyXG5cdFx0KTtcclxuXHRcdGlmICh0aXRsZSkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5jZi5zZXRNaWRkbGVFbGxpcHNpcyhcclxuXHRcdFx0XHR0aXRsZSxcclxuXHRcdFx0XHR3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcblx0XHRcdFx0XHQ/IHRoaXMuVEFCX1dJRFRIIC0gdGhpcy50ZXh0R2FwXHJcblx0XHRcdFx0XHQ6IHdpZHRoIC0gdGhpcy50ZXh0R2FwLFxyXG5cdFx0XHRcdDEyXHJcblx0XHRcdCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnRhYkxpc3QuZm9yRWFjaCgoZWxlLCBpZHgpID0+IHtcclxuXHRcdFx0XHRlbGUuZGlzcGxheVRpdGxlID0gdGhpcy5jZi5zZXRNaWRkbGVFbGxpcHNpcyhcclxuXHRcdFx0XHRcdGVsZS50aXRsZSxcclxuXHRcdFx0XHRcdHdpZHRoID4gdGhpcy5UQUJfV0lEVEhcclxuXHRcdFx0XHRcdFx0PyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG5cdFx0XHRcdFx0XHQ6IHdpZHRoIC0gdGhpcy50ZXh0R2FwLFxyXG5cdFx0XHRcdFx0MTJcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGNUYWJXaWR0aCgpIHtcclxuXHRcdGNvbnN0IHdyYXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYlwiKTtcclxuXHRcdGNvbnN0IHVsRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiID4gdWxcIik7XHJcblx0XHRjb25zdCByZWZyZXNoVGFiRGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XCIucnMtbXVsdGktdGFiIC5yZWZyZXNoLXRhYlwiXHJcblx0XHQpO1xyXG5cdFx0bGV0IGFsbFdpZHRoO1xyXG5cdFx0bGV0IGxlZnRXaWR0aDtcclxuXHRcdGxldCByaWdodFdpZHRoO1xyXG5cdFx0aWYgKHdyYXAgJiYgdWxFbGVtZW50KSB7XHJcblx0XHRcdC8vIOiOt+WPluWFg+e0oOeahOS9jee9ruS/oeaBr1xyXG5cdFx0XHRjb25zdCB3cmFwUmVjdCA9IHdyYXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblx0XHRcdGNvbnN0IHVsUmVjdCA9IHVsRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdFx0Y29uc3QgcmVmcmVzaFRhYlJlY3QgPVxyXG5cdFx0XHRcdHJlZnJlc2hUYWJEaXYgJiYgcmVmcmVzaFRhYkRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdFx0YWxsV2lkdGggPSB3cmFwUmVjdC53aWR0aDtcclxuXHRcdFx0bGVmdFdpZHRoID0gdWxSZWN0LndpZHRoO1xyXG5cdFx0XHRyaWdodFdpZHRoID0gKHJlZnJlc2hUYWJSZWN0ICYmIHJlZnJlc2hUYWJSZWN0LndpZHRoKSB8fCAxMDA7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRhbGxXaWR0aCxcclxuXHRcdFx0bGVmdFdpZHRoLFxyXG5cdFx0XHRyaWdodFdpZHRoLFxyXG5cdFx0fTtcclxuXHR9XHJcblx0aW5pdFRhYigpIHtcclxuXHRcdGxldCBUYWJDYWNoZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcIlRhYkNhY2hlXCIpKTtcclxuXHRcdHRoaXMudGFiTGlzdCA9IFRhYkNhY2hlIHx8IFtdO1xyXG5cdFx0aWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0Y29uc3QgdGl0bGUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiZmlyc3RUYWJUaXRsZVwiKTtcclxuXHRcdFx0aWYgKHRpdGxlKSB7XHJcblx0XHRcdFx0c2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcblx0XHRcdFx0Y29uc3QgdXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG5cdFx0XHRcdHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjbG9zZVRhYihpZHgsIGlzRXh0ZXJuYWw/KSB7XHJcblx0XHRjb25zdCB0YWIgPSB0aGlzLnRhYkxpc3RbaWR4XTtcclxuXHRcdHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoKGVsZSkgPT4gZWxlLnVybCAhPT0gdGFiLnVybCk7XHJcblx0XHR0aGlzLmNsZWFyQ2FjaGUodGhpcy51cmxXaXRob3V0UXVlcnkodGFiLnVybCkpO1xyXG5cdFx0aWYgKCFpc0V4dGVybmFsICYmIHRoaXMuc2VsZWN0ZWRUYWIgPT09IGlkeCkge1xyXG5cdFx0XHRjb25zdCB0YXJnZXRJZHggPSBNYXRoLm1heCgwLCBpZHggLSAxKTtcclxuXHRcdFx0dGhpcy5jaGFuZ2VUYWIodGhpcy50YWJMaXN0W3RhcmdldElkeF0sIHRhcmdldElkeCk7XHJcblx0XHR9XHJcblx0XHRpZiAoaWR4IDwgdGhpcy5zZWxlY3RlZFRhYikge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5zZWxlY3RlZFRhYiAtIDE7IC8vIOWmguaenOWFs+mXreeahHRhYuWcqOW9k+WJjemAieS4reeahHRhYuS5i+WJje+8jOmAieS4rXRhYue0ouW8leWHjzFcclxuXHRcdH1cclxuXHRcdHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG5cdFx0c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG5cdFx0dGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcblx0fVxyXG5cclxuXHRjaGFuZ2VUYWIodGFiLCBpZHgpIHtcclxuXHRcdHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGFiLnVybCk7XHJcblx0XHRpZiAodGFiLm5hdmlnYXRpb25JbmZvKSB7XHJcblx0XHRcdHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcblx0XHRcdFx0XCJuYXZpZ2F0aW9uSW5mb1wiLFxyXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRhYi5uYXZpZ2F0aW9uSW5mbylcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdGlmICh0YWIuZnJvbVVybCkge1xyXG5cdFx0XHRzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiZnJvbVVybFwiLCB0YWIuZnJvbVVybCk7XHJcblx0XHR9XHJcblx0XHRpZiAodGFiLnBlcm1pc3Npb25zKSB7XHJcblx0XHRcdHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcblx0XHRcdFx0XCJwZXJtaXNzaW9uc1wiLFxyXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRhYi5wZXJtaXNzaW9ucylcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSBpZHg7XHJcblx0XHR0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuXHR9XHJcblxyXG5cdGFkZFRhYih1cmwsIHRpdGxlKSB7XHJcblx0XHRpZiAodGhpcy50YWJMaXN0Lmxlbmd0aCA+PSB0aGlzLm1heFRhYnMpIHtcclxuXHRcdFx0dGhpcy5jbG9zZVRhYigxKTsgLy8g5Yig6Zmk56ys5LqM5Liq77yM56ys5LiA5Liq5Zu65a6aXHJcblx0XHR9XHJcblx0XHRjb25zdCBsb2NhbFBlcm1pc3Npb25zID1cclxuXHRcdFx0c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcInBlcm1pc3Npb25zXCIpIHx8XHJcblx0XHRcdGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicGVybWlzc2lvbnNcIik7XHJcblx0XHRjb25zdCBuYXZpZ2F0aW9uSW5mbyA9IEpTT04ucGFyc2UoXHJcblx0XHRcdHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKVxyXG5cdFx0KTtcclxuXHRcdGNvbnN0IGZyb21VcmwgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiZnJvbVVybFwiKTtcclxuXHRcdGNvbnN0IHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZShsb2NhbFBlcm1pc3Npb25zKTtcclxuXHJcblx0XHR0aGlzLnRhYkxpc3QucHVzaCh7XHJcblx0XHRcdHVybDogdXJsLFxyXG5cdFx0XHR0aXRsZTogdGl0bGUgfHwgXCJkZWZhdWx0XCIsXHJcblx0XHRcdGRpc3BsYXlUaXRsZTogdGl0bGUsXHJcblx0XHRcdG5hdmlnYXRpb25JbmZvOiBuYXZpZ2F0aW9uSW5mbyxcclxuXHRcdFx0cGVybWlzc2lvbnM6IHBlcm1pc3Npb25zLFxyXG5cdFx0XHRmcm9tVXJsOiBmcm9tVXJsLFxyXG5cdFx0fSk7XHJcblx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy50YWJMaXN0Lmxlbmd0aCAtIDE7XHJcblx0XHR0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuXHRcdHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuXHRcdHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHNldFRhYih1cmwsIHB1cmVVcmwsIHRpdGxlLCBub1JldXNlZCkge1xyXG5cdFx0Y29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcblx0XHRcdChlbGUpID0+IHRoaXMudXJsV2l0aG91dFF1ZXJ5KGVsZS51cmwpID09PSB0aGlzLnVybFdpdGhvdXRRdWVyeSh1cmwpXHJcblx0XHQpO1xyXG5cdFx0aWYgKGlzRXhpc3RJZHggPT09IC0xKSB7XHJcblx0XHRcdGNvbnN0IHNpbmdsZUlkeCA9IHRoaXMuc2luZ2xlUmV1c2VVcmxzLmZpbmRJbmRleChcclxuXHRcdFx0XHQoZWxlKSA9PiBlbGUgPT09IHB1cmVVcmxcclxuXHRcdFx0KTtcclxuXHRcdFx0aWYgKHNpbmdsZUlkeCAhPT0gLTEpIHtcclxuXHRcdFx0XHR0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKFxyXG5cdFx0XHRcdFx0KGVsZSkgPT4gIWVsZS51cmwuaW5jbHVkZXModGhpcy5zaW5nbGVSZXVzZVVybHNbc2luZ2xlSWR4XSlcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodXJsKTtcclxuXHRcdFx0XHR0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc3QgdGFyZ2V0VGFiVXJsID0gdGhpcy50YWJMaXN0W2lzRXhpc3RJZHhdLnVybDtcclxuXHRcdFx0aWYgKHRhcmdldFRhYlVybCAhPT0gdXJsIHx8IG5vUmV1c2VkKSB7XHJcblx0XHRcdFx0Ly8g5b2T57yT5a2Y5LiA6Ie05pe25YCZ77yM5L2G5pivdXJs5LiN5LiA6Ie077yM6YeN5paw5oyJ54Wn5paw55qEdXJs55Sf5oiQdGFiXHJcblx0XHRcdFx0dGhpcy5jbG9zZVRhYihpc0V4aXN0SWR4LCB0cnVlKTtcclxuXHRcdFx0XHR0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmNoYW5nZVRhYih0aGlzLnRhYkxpc3RbaXNFeGlzdElkeF0sIGlzRXhpc3RJZHgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR0aW1lciA9IG51bGw7XHJcblx0cmVmcmVzaFRhYigpIHtcclxuXHRcdGNvbnN0IGxvYWRpbmdJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJsb2FkaW5nSWNvblwiKTtcclxuXHRcdGxvYWRpbmdJY29uLmNsYXNzTGlzdC5hZGQoXCJyZWZyZXNoLXRhYi1sb2FkaW5nXCIpO1xyXG5cdFx0aWYgKHRoaXMudGltZXIpIHtcclxuXHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcclxuXHRcdH1cclxuXHRcdC8vIOaooeaLn+WKoOi9vei/h+eoi++8jDHnp5LlkI7np7vpmaTliqjnlLtcclxuXHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0bG9hZGluZ0ljb24uY2xhc3NMaXN0LnJlbW92ZShcInJlZnJlc2gtdGFiLWxvYWRpbmdcIik7XHJcblx0XHRcdHRoaXMudGltZXIgPSBudWxsO1xyXG5cdFx0fSwgMTUwMCk7XHJcblx0XHQvLyB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHRoaXMudGFiTGlzdFt0aGlzLnNlbGVjdGVkVGFiXS51cmwpO1xyXG5cdFx0Ly8gdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcblx0XHRjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsOyAvLyDojrflj5blvZPliY0gVVJMXHJcblx0XHR0aGlzLm9uUmVmcmVzaFRhYi5lbWl0KGN1cnJlbnRVcmwpO1xyXG5cdFx0Ly8gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChcIi9cIiwgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcblx0XHQvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoY3VycmVudFVybCk7IC8vIOmHjeaWsOWvvOiIquWIsOW9k+WJjSBVUkxcclxuXHRcdC8vIH0pO1xyXG5cdH1cclxuXHJcblx0Y2xlYXJDYWNoZSh1cmwpIHtcclxuXHRcdHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodXJsKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcblx0XHR0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG5cdH1cclxuXHJcblx0Y2xlYW5BbGxDYWNoZSgpIHtcclxuXHRcdHRoaXMubmdPbkRlc3Ryb3koKTtcclxuXHRcdHRoaXMua2VlcEFsaXZlLmNsZWFyQWxsQ2FjaGUoKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHVybFdpdGhvdXRRdWVyeSh1cmwpIHtcclxuXHRcdHJldHVybiB1cmwuc3BsaXQoXCI/XCIpWzBdO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicnMtbXVsdGktdGFiXCIgW25nQ2xhc3NdPVwieyAnYi1saW5lJzogdGFiTGlzdC5sZW5ndGggPiAwIH1cIj5cclxuXHQ8dWw+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG5cdFx0XHQ8bGlcclxuXHRcdFx0XHRbbmdDbGFzc109XCJzZWxlY3RlZFRhYiA9PT0gaSA/ICdpc1NlbGVjdCcgOiAnbm90U2VsZWN0J1wiXHJcblx0XHRcdFx0KGNsaWNrKT1cImNoYW5nZVRhYih0YWIsIGkpXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdDxlanMtdG9vbHRpcFxyXG5cdFx0XHRcdFx0aWQ9XCJub3RTZWxlY3RUb29sdGlwXCJcclxuXHRcdFx0XHRcdFtzaG93VGlwUG9pbnRlcl09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbb3BlbkRlbGF5XT1cIjUwMFwiXHJcblx0XHRcdFx0XHQqbmdJZj1cInRhYi5kaXNwbGF5VGl0bGUgIT09IHRhYi50aXRsZTsgZWxzZSBvcmlnaW5UZXh0XCJcclxuXHRcdFx0XHRcdHN0eWxlPVwiaGVpZ2h0OiAyN3B4XCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWIudGl0bGUgfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJ0YWJUaXRsZVwiPnt7IHRhYi5kaXNwbGF5VGl0bGUgfX08L3NwYW4+XHJcblx0XHRcdFx0PC9lanMtdG9vbHRpcD5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI29yaWdpblRleHQ+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRhYlRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHRhYi5kaXNwbGF5VGl0bGUgfX1cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRjbGFzcz1cImltZy1ibG9ja1wiXHJcblx0XHRcdFx0XHQqbmdJZj1cInNlbGVjdGVkVGFiICE9PSBpICYmIGkgIT09IDBcIlxyXG5cdFx0XHRcdD48L3NwYW4+XHJcblx0XHRcdFx0PGltZ1xyXG5cdFx0XHRcdFx0Km5nSWY9XCJpICE9PSAwXCJcclxuXHRcdFx0XHRcdHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvY2xvc2UtdXJsLnN2Z1wiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiY2xvc2VUYWIoaSlcIlxyXG5cdFx0XHRcdC8+XHJcblx0XHRcdDwvbGk+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L3VsPlxyXG5cdDxkaXYgY2xhc3M9XCJyZWZyZXNoLXRhYlwiIChjbGljayk9XCJyZWZyZXNoVGFiKClcIiAqbmdJZj1cInRhYkxpc3QubGVuZ3RoID4gMFwiPlxyXG5cdFx0PGVqcy10b29sdGlwXHJcblx0XHRcdGlkPVwibm90U2VsZWN0VG9vbHRpcFwiXHJcblx0XHRcdGNzc0NsYXNzPVwibm90U2VsZWN0VG9vbHRpcFwiXHJcblx0XHRcdFtzaG93VGlwUG9pbnRlcl09XCJmYWxzZVwiXHJcblx0XHRcdFtvcGVuRGVsYXldPVwiNTAwXCJcclxuXHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDI3cHhcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlJlZnJlc2ggQ3VycmVudCBUYWI8L2Rpdj5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PGltZ1xyXG5cdFx0XHRcdGlkPVwibG9hZGluZ0ljb25cIlxyXG5cdFx0XHRcdGFsdFxyXG5cdFx0XHRcdGNsYXNzPVwicmVmcmVzaC1idG5cIlxyXG5cdFx0XHRcdHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvZGVza3RvcC1yZWZyZXNoLWJ0bi5zdmdcIlxyXG5cdFx0XHQvPlxyXG5cdFx0PC9lanMtdG9vbHRpcD5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEdBR2QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFZeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUVuQjtJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ0E7SUFOVixZQUNTLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFFOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQXNDLENBQUM7SUFDL0QsQ0FBQztJQUNELFNBQVMsQ0FBbUI7SUFDbkIsZUFBZSxHQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVk7SUFDNUMsaUJBQWlCLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTtJ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Q0FBQyxDQUFDLFdBQVc7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsNEVBQTRFO1FBQzVFLDBEQUEwRDtRQUMxRCxNQUFNO0lBQ1IsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFHO1FBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWE7UUFDWCxjQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFlBQVk7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxpQkFBaUI7SUFDbkQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxHQUFHO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO3dHQS9SVSxpQkFBaUI7NEZBQWpCLGlCQUFpQixxUEM5QjlCLHczREEwREE7OzRGRDVCYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYzsyUEFnQmYsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFjUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlck91dGxldCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyYXdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kcmF3ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBLZWVwQWxpdmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1tdWx0aS10YWJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRyYXdlcjogRHJhd2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVSZXVzZVN0cmF0ZWd5OiBSb3V0ZVJldXNlU3RyYXRlZ3lcclxuICApIHtcclxuICAgIHRoaXMua2VlcEFsaXZlID0gdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgYXMgS2VlcEFsaXZlU2VydmljZTtcclxuICB9XHJcbiAga2VlcEFsaXZlOiBLZWVwQWxpdmVTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVJldXNlVXJsczogc3RyaW5nW10gPSBbXTsgLy/lj6rog73ljZXkuKrnvJPlrZjnmoR1cmxcclxuICBASW5wdXQoKSBub0dlbmVyYXRlVGFiVXJsczogc3RyaW5nW10gPSBbXTsgLy/kuI3nlJ/miJB0YWLnmoR1cmxcclxuICBAT3V0cHV0KCkgb25SZWZyZXNoVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgVEFCX1dJRFRIID0gMTY0O1xyXG4gIEdBUF9OT1JNQUwgPSA1NDtcclxuICBHQVBfU01BTEwgPSAzMDtcclxuICB0ZXh0R2FwOyAvLyDmlofmnKzkuI7ovrnmoYbnmoTmgLvpl7Tot51cclxuICBmb286IFJvdXRlck91dGxldDtcclxuICBjb21SZWY6IGFueTtcclxuICB0YWJMaXN0ID0gW107XHJcbiAgc2VsZWN0ZWRUYWI6IG51bWJlciA9IDA7XHJcbiAgbWF4VGFiczogbnVtYmVyID0gMTA7XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDliJ3lp4vljJblsY/luZXlrr3luqZcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25SZXNpemUoZXZlbnQpIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsgLy8g5pu05paw5bGP5bmV5a695bqmXHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0VGFiKCk7XHJcbiAgICAvLyDop6PlhrPliLfmlrDpobXpnaLlkI7vvIzpgInkuK3nmoQgdGFiIOS4ouWksemXrumimFxyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChlbGUpID0+XHJcbiAgICAgICAgdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRoaXMucm91dGVyLnVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IGlzRXhpc3RJZHg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmUtcG9wdXAtb3BlblwiKTtcclxuICAgICAgICAgICAgLy8g5Yig6ZmkdG9vbHRpcHNcclxuICAgICAgICAgICAgdG9vbHRpcEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IGVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgaHRtbEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBuYXZpZ2F0aW9uLmV4dHJhcy5zdGF0ZTsgLy8g6I635Y+W5Lyg6YCS55qEIHN0YXRlXHJcbiAgICAgICAgICAgIGNvbnN0IHNraXBMb2NhdGlvbkNoYW5nZSA9IG5hdmlnYXRpb24uZXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZTsgLy8g6I635Y+W5piv5ZCm6Lez6L+HIGxvY2F0aW9uIGNoYW5nZVxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LmZpcnN0Q2hpbGQ7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hdmlnYXRpb25JbmZvID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwibmF2aWdhdGlvbkluZm9cIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGxldCB0aXRsZSA9XHJcbiAgICAgICAgICAgICAgKHN0YXRlICYmIHN0YXRlLnRpdGxlKSB8fFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25JbmZvLnRpdGxlIHx8XHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkluZm8uc3ViVGl0bGUgfHxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5mby5uYW1lO1xyXG5cclxuICAgICAgICAgICAgbGV0IG5vUmV1c2VkID0gKHN0YXRlICYmIHN0YXRlLm5vUmV1c2VkKSB8fCBmYWxzZTsgLy8g5b2T5YmNdGFi5LiN5aSN55So77yM5paw5byA5LiA5LiqdGFiLOW9k+acieW3sue7j+WtmOWcqOeahHRhYuaXtuWAmeS5n+aYr+aWsOW8gFxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFJvdXRlICYmICFza2lwTG9jYXRpb25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vR2VuZXJhdGVUYWJVcmxzLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVybFdpdGhvdXRRdWVyeSh0aGlzLnJvdXRlci51cmwpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47IC8vIOaOkumZpOS4jeeUn+aIkHRhYueahHVybFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNldFRhYihcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLnVybCxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZS5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRoLFxyXG4gICAgICAgICAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBub1JldXNlZFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudGFiTGlzdCA9IFtdOyAvLyDmuIXnqbogdGFiIOWIl+ihqFxyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IDA7IC8vIOmHjee9rumAieS4reeahCB0YWIg57Si5byVXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRFbGxpcHNpc1RpdGxlKHRpdGxlPykge1xyXG4gICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfTk9STUFMO1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuV2lkdGggPD0gMTEwMCkge1xyXG4gICAgICB0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9TTUFMTDtcclxuICAgIH1cclxuICAgIGxldCB7IGFsbFdpZHRoLCBsZWZ0V2lkdGgsIHJpZ2h0V2lkdGggfSA9IHRoaXMuY2FsY1RhYldpZHRoKCk7XHJcbiAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKFxyXG4gICAgICAoYWxsV2lkdGggLSByaWdodFdpZHRoKSAvICh0aGlzLnRhYkxpc3QgJiYgdGhpcy50YWJMaXN0Lmxlbmd0aClcclxuICAgICk7XHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgPyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG4gICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAxMlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJMaXN0LmZvckVhY2goKGVsZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgZWxlLmRpc3BsYXlUaXRsZSA9IHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgICBlbGUudGl0bGUsXHJcbiAgICAgICAgICB3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcbiAgICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAgIDEyXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxjVGFiV2lkdGgoKSB7XHJcbiAgICBjb25zdCB3cmFwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWJcIik7XHJcbiAgICBjb25zdCB1bEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiA+IHVsXCIpO1xyXG4gICAgY29uc3QgcmVmcmVzaFRhYkRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiIC5yZWZyZXNoLXRhYlwiKTtcclxuICAgIGxldCBhbGxXaWR0aDtcclxuICAgIGxldCBsZWZ0V2lkdGg7XHJcbiAgICBsZXQgcmlnaHRXaWR0aDtcclxuICAgIGlmICh3cmFwICYmIHVsRWxlbWVudCkge1xyXG4gICAgICAvLyDojrflj5blhYPntKDnmoTkvY3nva7kv6Hmga9cclxuICAgICAgY29uc3Qgd3JhcFJlY3QgPSB3cmFwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCB1bFJlY3QgPSB1bEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IHJlZnJlc2hUYWJSZWN0ID1cclxuICAgICAgICByZWZyZXNoVGFiRGl2ICYmIHJlZnJlc2hUYWJEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGFsbFdpZHRoID0gd3JhcFJlY3Qud2lkdGg7XHJcbiAgICAgIGxlZnRXaWR0aCA9IHVsUmVjdC53aWR0aDtcclxuICAgICAgcmlnaHRXaWR0aCA9IChyZWZyZXNoVGFiUmVjdCAmJiByZWZyZXNoVGFiUmVjdC53aWR0aCkgfHwgMTAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWxsV2lkdGgsXHJcbiAgICAgIGxlZnRXaWR0aCxcclxuICAgICAgcmlnaHRXaWR0aCxcclxuICAgIH07XHJcbiAgfVxyXG4gIGluaXRUYWIoKSB7XHJcbiAgICBsZXQgVGFiQ2FjaGUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJUYWJDYWNoZVwiKSk7XHJcbiAgICB0aGlzLnRhYkxpc3QgPSBUYWJDYWNoZSB8fCBbXTtcclxuICAgIGlmICh0aGlzLnRhYkxpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IHRpdGxlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcbiAgICAgIGlmICh0aXRsZSkge1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJmaXJzdFRhYlRpdGxlXCIpO1xyXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgICAgICB0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VUYWIoaWR4LCBpc0V4dGVybmFsPykge1xyXG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJMaXN0W2lkeF07XHJcbiAgICB0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKChlbGUpID0+IGVsZS51cmwgIT09IHRhYi51cmwpO1xyXG4gICAgdGhpcy5jbGVhckNhY2hlKHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRhYi51cmwpKTtcclxuICAgIGlmICghaXNFeHRlcm5hbCAmJiB0aGlzLnNlbGVjdGVkVGFiID09PSBpZHgpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0SWR4ID0gTWF0aC5tYXgoMCwgaWR4IC0gMSk7XHJcbiAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMudGFiTGlzdFt0YXJnZXRJZHhdLCB0YXJnZXRJZHgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlkeCA8IHRoaXMuc2VsZWN0ZWRUYWIpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMuc2VsZWN0ZWRUYWIgLSAxOyAvLyDlpoLmnpzlhbPpl63nmoR0YWLlnKjlvZPliY3pgInkuK3nmoR0YWLkuYvliY3vvIzpgInkuK10YWLntKLlvJXlh48xXHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlVGFiKHRhYiwgaWR4KSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhYi51cmwpO1xyXG4gICAgaWYgKHRhYi5uYXZpZ2F0aW9uSW5mbykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgIFwibmF2aWdhdGlvbkluZm9cIixcclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0YWIubmF2aWdhdGlvbkluZm8pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGFiLmZyb21VcmwpIHtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcImZyb21VcmxcIiwgdGFiLmZyb21VcmwpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRhYi5wZXJtaXNzaW9ucykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwicGVybWlzc2lvbnNcIiwgSlNPTi5zdHJpbmdpZnkodGFiLnBlcm1pc3Npb25zKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gaWR4O1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBhZGRUYWIodXJsLCB0aXRsZSkge1xyXG4gICAgaWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPj0gdGhpcy5tYXhUYWJzKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VUYWIoMSk7IC8vIOWIoOmZpOesrOS6jOS4qu+8jOesrOS4gOS4quWbuuWumlxyXG4gICAgfVxyXG4gICAgY29uc3QgbG9jYWxQZXJtaXNzaW9ucyA9XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJwZXJtaXNzaW9uc1wiKSB8fFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBlcm1pc3Npb25zXCIpO1xyXG4gICAgY29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKSk7XHJcbiAgICBjb25zdCBmcm9tVXJsID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZyb21VcmxcIik7XHJcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IEpTT04ucGFyc2UobG9jYWxQZXJtaXNzaW9ucyk7XHJcblxyXG4gICAgdGhpcy50YWJMaXN0LnB1c2goe1xyXG4gICAgICB1cmw6IHVybCxcclxuICAgICAgdGl0bGU6IHRpdGxlIHx8IFwiZGVmYXVsdFwiLFxyXG4gICAgICBkaXNwbGF5VGl0bGU6IHRpdGxlLFxyXG4gICAgICBuYXZpZ2F0aW9uSW5mbzogbmF2aWdhdGlvbkluZm8sXHJcbiAgICAgIHBlcm1pc3Npb25zOiBwZXJtaXNzaW9ucyxcclxuICAgICAgZnJvbVVybDogZnJvbVVybCxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMudGFiTGlzdC5sZW5ndGggLSAxO1xyXG4gICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiVGFiQ2FjaGVcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJMaXN0KSk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUYWIodXJsLCBwdXJlVXJsLCB0aXRsZSwgbm9SZXVzZWQpIHtcclxuICAgIGNvbnN0IGlzRXhpc3RJZHggPSB0aGlzLnRhYkxpc3QuZmluZEluZGV4KFxyXG4gICAgICAoZWxlKSA9PiB0aGlzLnVybFdpdGhvdXRRdWVyeShlbGUudXJsKSA9PT0gdGhpcy51cmxXaXRob3V0UXVlcnkodXJsKVxyXG4gICAgKTtcclxuICAgIGlmIChpc0V4aXN0SWR4ID09PSAtMSkge1xyXG4gICAgICBjb25zdCBzaW5nbGVJZHggPSB0aGlzLnNpbmdsZVJldXNlVXJscy5maW5kSW5kZXgoXHJcbiAgICAgICAgKGVsZSkgPT4gZWxlID09PSBwdXJlVXJsXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChzaW5nbGVJZHggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcihcclxuICAgICAgICAgIChlbGUpID0+ICFlbGUudXJsLmluY2x1ZGVzKHRoaXMuc2luZ2xlUmV1c2VVcmxzW3NpbmdsZUlkeF0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHVybCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodXJsKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldFRhYlVybCA9IHRoaXMudGFiTGlzdFtpc0V4aXN0SWR4XS51cmw7XHJcbiAgICAgIGlmICh0YXJnZXRUYWJVcmwgIT09IHVybCB8fCBub1JldXNlZCkge1xyXG4gICAgICAgIC8vIOW9k+e8k+WtmOS4gOiHtOaXtuWAme+8jOS9huaYr3VybOS4jeS4gOiHtO+8jOmHjeaWsOaMieeFp+aWsOeahHVybOeUn+aIkHRhYlxyXG4gICAgICAgIHRoaXMuY2xvc2VUYWIoaXNFeGlzdElkeCwgdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VUYWIodGhpcy50YWJMaXN0W2lzRXhpc3RJZHhdLCBpc0V4aXN0SWR4KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcbiAgdGltZXIgPSBudWxsO1xyXG4gIHJlZnJlc2hUYWIoKSB7XHJcbiAgICBjb25zdCBsb2FkaW5nSWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwibG9hZGluZ0ljb25cIik7XHJcbiAgICBsb2FkaW5nSWNvbi5jbGFzc0xpc3QuYWRkKFwicmVmcmVzaC10YWItbG9hZGluZ1wiKTtcclxuICAgIGlmICh0aGlzLnRpbWVyKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XHJcbiAgICB9XHJcbiAgICAvLyDmqKHmi5/liqDovb3ov4fnqIvvvIwx56eS5ZCO56e76Zmk5Yqo55S7XHJcbiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGxvYWRpbmdJY29uLmNsYXNzTGlzdC5yZW1vdmUoXCJyZWZyZXNoLXRhYi1sb2FkaW5nXCIpO1xyXG4gICAgICB0aGlzLnRpbWVyID0gbnVsbDtcclxuICAgIH0sIDE1MDApO1xyXG4gICAgLy8gdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh0aGlzLnRhYkxpc3RbdGhpcy5zZWxlY3RlZFRhYl0udXJsKTtcclxuICAgIC8vIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHRoaXMudGFiTGlzdFt0aGlzLnNlbGVjdGVkVGFiXS51cmwpO1xyXG4gICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDsgLy8g6I635Y+W5b2T5YmNIFVSTFxyXG4gICAgdGhpcy5vblJlZnJlc2hUYWIuZW1pdChjdXJyZW50VXJsKTtcclxuICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoXCIvXCIsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGN1cnJlbnRVcmwpOyAvLyDph43mlrDlr7zoiKrliLDlvZPliY0gVVJMXHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FjaGUodXJsKSB7XHJcbiAgICB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHVybCk7IC8vIOiwg+eUqOiHquWumuS5ieetlueVpeeahOa4hemZpOe8k+WtmOaWueazlVxyXG4gICAgdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodXJsKTtcclxuICB9XHJcblxyXG4gIGNsZWFuQWxsQ2FjaGUoKSB7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwiVGFiQ2FjaGVcIik7IC8vIOa4hemZpOe8k+WtmFxyXG4gICAgdGhpcy50YWJMaXN0ID0gW107IC8vIOa4heepuiB0YWIg5YiX6KGoXHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gMDsgLy8g6YeN572u6YCJ5Lit55qEIHRhYiDntKLlvJVcclxuICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQWxsQ2FjaGUoKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVybFdpdGhvdXRRdWVyeSh1cmwpIHtcclxuICAgIHJldHVybiB1cmwuc3BsaXQoXCI/XCIpWzBdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicnMtbXVsdGktdGFiXCIgW25nQ2xhc3NdPVwieyAnYi1saW5lJzogdGFiTGlzdC5sZW5ndGggPiAwIH1cIj5cclxuXHQ8dWw+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG5cdFx0XHQ8bGlcclxuXHRcdFx0XHRbbmdDbGFzc109XCJzZWxlY3RlZFRhYiA9PT0gaSA/ICdpc1NlbGVjdCcgOiAnbm90U2VsZWN0J1wiXHJcblx0XHRcdFx0KGNsaWNrKT1cImNoYW5nZVRhYih0YWIsIGkpXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdDxlanMtdG9vbHRpcFxyXG5cdFx0XHRcdFx0aWQ9XCJub3RTZWxlY3RUb29sdGlwXCJcclxuXHRcdFx0XHRcdFtzaG93VGlwUG9pbnRlcl09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbb3BlbkRlbGF5XT1cIjUwMFwiXHJcblx0XHRcdFx0XHQqbmdJZj1cInRhYi5kaXNwbGF5VGl0bGUgIT09IHRhYi50aXRsZTsgZWxzZSBvcmlnaW5UZXh0XCJcclxuXHRcdFx0XHRcdHN0eWxlPVwiaGVpZ2h0OiAyN3B4XCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWIudGl0bGUgfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJ0YWJUaXRsZVwiPnt7IHRhYi5kaXNwbGF5VGl0bGUgfX08L3NwYW4+XHJcblx0XHRcdFx0PC9lanMtdG9vbHRpcD5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI29yaWdpblRleHQ+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRhYlRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHRhYi5kaXNwbGF5VGl0bGUgfX1cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRjbGFzcz1cImltZy1ibG9ja1wiXHJcblx0XHRcdFx0XHQqbmdJZj1cInNlbGVjdGVkVGFiICE9PSBpICYmIGkgIT09IDBcIlxyXG5cdFx0XHRcdD48L3NwYW4+XHJcblx0XHRcdFx0PGltZ1xyXG5cdFx0XHRcdFx0Km5nSWY9XCJpICE9PSAwXCJcclxuXHRcdFx0XHRcdHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvY2xvc2UtdXJsLnN2Z1wiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiY2xvc2VUYWIoaSlcIlxyXG5cdFx0XHRcdC8+XHJcblx0XHRcdDwvbGk+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L3VsPlxyXG5cdDxkaXYgY2xhc3M9XCJyZWZyZXNoLXRhYlwiIChjbGljayk9XCJyZWZyZXNoVGFiKClcIiAqbmdJZj1cInRhYkxpc3QubGVuZ3RoID4gMFwiPlxyXG5cdFx0PGVqcy10b29sdGlwXHJcblx0XHRcdGlkPVwibm90U2VsZWN0VG9vbHRpcFwiXHJcblx0XHRcdGNzc0NsYXNzPVwibm90U2VsZWN0VG9vbHRpcFwiXHJcblx0XHRcdFtzaG93VGlwUG9pbnRlcl09XCJmYWxzZVwiXHJcblx0XHRcdFtvcGVuRGVsYXldPVwiNTAwXCJcclxuXHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDI3cHhcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlJlZnJlc2ggQ3VycmVudCBUYWI8L2Rpdj5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PGltZ1xyXG5cdFx0XHRcdGlkPVwibG9hZGluZ0ljb25cIlxyXG5cdFx0XHRcdGFsdFxyXG5cdFx0XHRcdGNsYXNzPVwicmVmcmVzaC1idG5cIlxyXG5cdFx0XHRcdHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvZGVza3RvcC1yZWZyZXNoLWJ0bi5zdmdcIlxyXG5cdFx0XHQvPlxyXG5cdFx0PC9lanMtdG9vbHRpcD5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1674,8 +1674,7 @@ class MultiTabComponent {
|
|
|
1674
1674
|
ngOnInit() {
|
|
1675
1675
|
this.initTab();
|
|
1676
1676
|
// 解决刷新页面后,选中的 tab 丢失问题
|
|
1677
|
-
const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) ===
|
|
1678
|
-
this.urlWithoutQuery(this.router.url));
|
|
1677
|
+
const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) === this.urlWithoutQuery(this.router.url));
|
|
1679
1678
|
if (isExistIdx !== -1) {
|
|
1680
1679
|
this.selectedTab = isExistIdx;
|
|
1681
1680
|
}
|
|
@@ -1714,6 +1713,8 @@ class MultiTabComponent {
|
|
|
1714
1713
|
}, 50);
|
|
1715
1714
|
}
|
|
1716
1715
|
ngOnDestroy() {
|
|
1716
|
+
this.tabList = []; // 清空 tab 列表
|
|
1717
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
1717
1718
|
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
1718
1719
|
}
|
|
1719
1720
|
setEllipsisTitle(title) {
|
|
@@ -1870,7 +1871,9 @@ class MultiTabComponent {
|
|
|
1870
1871
|
this.drawer.deleteCache(url);
|
|
1871
1872
|
}
|
|
1872
1873
|
cleanAllCache() {
|
|
1873
|
-
|
|
1874
|
+
sessionStorage.removeItem("TabCache"); // 清除缓存
|
|
1875
|
+
this.tabList = []; // 清空 tab 列表
|
|
1876
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
1874
1877
|
this.keepAlive.clearAllCache(); // 调用自定义策略的清除缓存方法
|
|
1875
1878
|
}
|
|
1876
1879
|
urlWithoutQuery(url) {
|