raise-common-lib 0.0.132 → 0.0.134
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 +122 -19
- package/bundles/raise-common-lib.umd.js.map +1 -1
- package/bundles/raise-common-lib.umd.min.js +1 -15
- package/bundles/raise-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/layout/main-container/index.component.js +66 -5
- package/esm2015/lib/layout/multi-tab/index.component.js +37 -13
- package/esm5/lib/layout/main-container/index.component.js +82 -4
- package/esm5/lib/layout/multi-tab/index.component.js +41 -14
- package/fesm2015/raise-common-lib.js +99 -16
- package/fesm2015/raise-common-lib.js.map +1 -1
- package/fesm5/raise-common-lib.js +119 -17
- package/fesm5/raise-common-lib.js.map +1 -1
- package/lib/layout/main-container/index.component.d.ts +8 -2
- package/lib/layout/multi-tab/index.component.d.ts +2 -1
- package/package.json +1 -1
- package/raise-common-lib.metadata.json +1 -1
|
@@ -47,7 +47,7 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
47
47
|
*/
|
|
48
48
|
function (event) {
|
|
49
49
|
this.screenWidth = window.innerWidth; // 更新屏幕宽度
|
|
50
|
-
this.setEllipsisTitle();
|
|
50
|
+
// this.setEllipsisTitle(); 在最外面容器调用
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
53
53
|
* @return {?}
|
|
@@ -65,8 +65,7 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
65
65
|
* @return {?}
|
|
66
66
|
*/
|
|
67
67
|
function (ele) {
|
|
68
|
-
return _this.urlWithoutQuery(ele.url) ===
|
|
69
|
-
_this.urlWithoutQuery(_this.router.url);
|
|
68
|
+
return _this.urlWithoutQuery(ele.url) === _this.urlWithoutQuery(_this.router.url);
|
|
70
69
|
}));
|
|
71
70
|
if (isExistIdx !== -1) {
|
|
72
71
|
this.selectedTab = isExistIdx;
|
|
@@ -144,6 +143,8 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
144
143
|
* @return {?}
|
|
145
144
|
*/
|
|
146
145
|
function () {
|
|
146
|
+
this.tabList = []; // 清空 tab 列表
|
|
147
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
147
148
|
this.subscriptions.forEach((/**
|
|
148
149
|
* @param {?} sub
|
|
149
150
|
* @return {?}
|
|
@@ -184,6 +185,8 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
184
185
|
: width - _this.textGap, 12);
|
|
185
186
|
}));
|
|
186
187
|
}
|
|
188
|
+
this.ref.markForCheck();
|
|
189
|
+
this.ref.detectChanges();
|
|
187
190
|
};
|
|
188
191
|
/**
|
|
189
192
|
* @return {?}
|
|
@@ -245,15 +248,15 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
245
248
|
};
|
|
246
249
|
/**
|
|
247
250
|
* @param {?} idx
|
|
248
|
-
* @param {?=}
|
|
251
|
+
* @param {?=} noChange
|
|
249
252
|
* @return {?}
|
|
250
253
|
*/
|
|
251
254
|
MultiTabComponent.prototype.closeTab = /**
|
|
252
255
|
* @param {?} idx
|
|
253
|
-
* @param {?=}
|
|
256
|
+
* @param {?=} noChange
|
|
254
257
|
* @return {?}
|
|
255
258
|
*/
|
|
256
|
-
function (idx,
|
|
259
|
+
function (idx, noChange) {
|
|
257
260
|
/** @type {?} */
|
|
258
261
|
var tab = this.tabList[idx];
|
|
259
262
|
this.tabList = this.tabList.filter((/**
|
|
@@ -262,7 +265,7 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
262
265
|
*/
|
|
263
266
|
function (ele) { return ele.url !== tab.url; }));
|
|
264
267
|
this.clearCache(this.urlWithoutQuery(tab.url));
|
|
265
|
-
if (!
|
|
268
|
+
if (!noChange && this.selectedTab === idx) {
|
|
266
269
|
/** @type {?} */
|
|
267
270
|
var targetIdx = Math.max(0, idx - 1);
|
|
268
271
|
this.changeTab(this.tabList[targetIdx], targetIdx);
|
|
@@ -289,8 +292,8 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
289
292
|
if (tab.navigationInfo) {
|
|
290
293
|
sessionStorage.setItem("navigationInfo", JSON.stringify(tab.navigationInfo));
|
|
291
294
|
}
|
|
292
|
-
if (tab.
|
|
293
|
-
sessionStorage.setItem("
|
|
295
|
+
if (tab.fromInfo) {
|
|
296
|
+
sessionStorage.setItem("fromInfo", JSON.stringify(tab.fromInfo));
|
|
294
297
|
}
|
|
295
298
|
if (tab.permissions) {
|
|
296
299
|
sessionStorage.setItem("permissions", JSON.stringify(tab.permissions));
|
|
@@ -310,7 +313,14 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
310
313
|
*/
|
|
311
314
|
function (url, title) {
|
|
312
315
|
if (this.tabList.length >= this.maxTabs) {
|
|
313
|
-
|
|
316
|
+
/** @type {?} */
|
|
317
|
+
var secondTab_1 = this.tabList[1];
|
|
318
|
+
this.tabList = this.tabList.filter((/**
|
|
319
|
+
* @param {?} ele
|
|
320
|
+
* @return {?}
|
|
321
|
+
*/
|
|
322
|
+
function (ele) { return ele.url !== secondTab_1.url; }));
|
|
323
|
+
this.clearCache(this.urlWithoutQuery(secondTab_1.url));
|
|
314
324
|
}
|
|
315
325
|
/** @type {?} */
|
|
316
326
|
var localPermissions = sessionStorage.getItem("permissions") ||
|
|
@@ -318,7 +328,7 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
318
328
|
/** @type {?} */
|
|
319
329
|
var navigationInfo = JSON.parse(sessionStorage.getItem("navigationInfo"));
|
|
320
330
|
/** @type {?} */
|
|
321
|
-
var
|
|
331
|
+
var fromInfo = JSON.parse(sessionStorage.getItem("fromInfo"));
|
|
322
332
|
/** @type {?} */
|
|
323
333
|
var permissions = JSON.parse(localPermissions);
|
|
324
334
|
this.tabList.push({
|
|
@@ -327,7 +337,7 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
327
337
|
displayTitle: title,
|
|
328
338
|
navigationInfo: navigationInfo,
|
|
329
339
|
permissions: permissions,
|
|
330
|
-
|
|
340
|
+
fromInfo: fromInfo,
|
|
331
341
|
});
|
|
332
342
|
this.selectedTab = this.tabList.length - 1;
|
|
333
343
|
this.setEllipsisTitle();
|
|
@@ -380,7 +390,12 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
380
390
|
if (targetTabUrl !== url || noReused) {
|
|
381
391
|
// 当缓存一致时候,但是url不一致,重新按照新的url生成tab
|
|
382
392
|
this.closeTab(isExistIdx, true);
|
|
383
|
-
|
|
393
|
+
setTimeout((/**
|
|
394
|
+
* @return {?}
|
|
395
|
+
*/
|
|
396
|
+
function () {
|
|
397
|
+
_this.addTab(url, title);
|
|
398
|
+
}), 30);
|
|
384
399
|
}
|
|
385
400
|
else {
|
|
386
401
|
this.changeTab(this.tabList[isExistIdx], isExistIdx);
|
|
@@ -431,6 +446,18 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
431
446
|
this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法
|
|
432
447
|
this.drawer.deleteCache(url);
|
|
433
448
|
};
|
|
449
|
+
/**
|
|
450
|
+
* @return {?}
|
|
451
|
+
*/
|
|
452
|
+
MultiTabComponent.prototype.cleanAllCache = /**
|
|
453
|
+
* @return {?}
|
|
454
|
+
*/
|
|
455
|
+
function () {
|
|
456
|
+
sessionStorage.removeItem("TabCache"); // 清除缓存
|
|
457
|
+
this.tabList = []; // 清空 tab 列表
|
|
458
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
459
|
+
this.keepAlive.clearAllCache(); // 调用自定义策略的清除缓存方法
|
|
460
|
+
};
|
|
434
461
|
/**
|
|
435
462
|
* @private
|
|
436
463
|
* @param {?} url
|
|
@@ -527,4 +554,4 @@ if (false) {
|
|
|
527
554
|
*/
|
|
528
555
|
MultiTabComponent.prototype.routeReuseStrategy;
|
|
529
556
|
}
|
|
530
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbXVsdGktdGFiL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBRU4saUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNOLGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxHQUVOLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUk3RDtJQU1DLDJCQUNRLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFLdEMsb0JBQWUsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM1QyxzQkFBaUIsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM3QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQzNDLGNBQVMsR0FBRyxH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LDJDQUFlOzs7OztJQUF2QixVQUF3QixHQUFHO1FBQzFCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDOztnQkF0U0QsU0FBUyxTQUFDO29CQUNWLFFBQVEsRUFBRSxjQUFjO29CQUN4QixrNERBQXFDOztpQkFFckM7Ozs7Z0JBZkEsTUFBTTtnQkFNRSxxQkFBcUI7Z0JBUjdCLGNBQWM7Z0JBVmQsaUJBQWlCO2dCQW1CVCxhQUFhO2dCQUZiLGtCQUFrQjs7O2tDQXVCekIsS0FBSztvQ0FDTCxLQUFLOytCQUNMLE1BQU07MkJBYU4sWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7SUF1UTFDLHdCQUFDO0NBQUEsQUF2U0QsSUF1U0M7U0FsU1ksaUJBQWlCOzs7SUFXN0Isc0NBQTRCOztJQUM1Qiw0Q0FBd0M7O0lBQ3hDLDhDQUEwQzs7SUFDMUMseUNBQTRDOzs7OztJQUU1QywwQ0FBMkM7O0lBQzNDLHNDQUFnQjs7SUFDaEIsdUNBQWdCOztJQUNoQixzQ0FBZTs7SUFDZixvQ0FBUTs7SUFDUixnQ0FBa0I7O0lBQ2xCLG1DQUFZOztJQUNaLG9DQUFhOztJQUNiLHdDQUF3Qjs7SUFDeEIsb0NBQXFCOztJQUNyQix3Q0FBd0M7O0lBMk94QyxrQ0FBYTs7SUFuUVosbUNBQXFCOztJQUNyQiwrQkFBZ0M7O0lBQ2hDLDJDQUFxQzs7Ozs7SUFDckMsZ0NBQThCOzs7OztJQUM5QixtQ0FBNkI7Ozs7O0lBQzdCLCtDQUE4QyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG5cdEFmdGVyVmlld0luaXQsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRIb3N0TGlzdGVuZXIsXHJcblx0SW5wdXQsXHJcblx0T25EZXN0cm95LFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuXHRBY3RpdmF0ZWRSb3V0ZSxcclxuXHROYXZpZ2F0aW9uRW5kLFxyXG5cdFJvdXRlcixcclxuXHRSb3V0ZXJPdXRsZXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgUm91dGVSZXVzZVN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBDb21tb25GdW5jdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9jb21tb24tZnVuY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcmF3ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZHJhd2VyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgS2VlcEFsaXZlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2tlZXAtYWxpdmUuc2VydmljZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiBcInJzLW11bHRpLXRhYlwiLFxyXG5cdHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuXHRzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuXHRcdHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG5cdFx0cHVibGljIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuXHRcdHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRcdHByaXZhdGUgZHJhd2VyOiBEcmF3ZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByb3V0ZVJldXNlU3RyYXRlZ3k6IFJvdXRlUmV1c2VTdHJhdGVneVxyXG5cdCkge1xyXG5cdFx0dGhpcy5rZWVwQWxpdmUgPSB0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSBhcyBLZWVwQWxpdmVTZXJ2aWNlO1xyXG5cdH1cclxuXHRrZWVwQWxpdmU6IEtlZXBBbGl2ZVNlcnZpY2U7XHJcblx0QElucHV0KCkgc2luZ2xlUmV1c2VVcmxzOiBzdHJpbmdbXSA9IFtdOyAvL+WPquiDveWNleS4que8k+WtmOeahHVybFxyXG5cdEBJbnB1dCgpIG5vR2VuZXJhdGVUYWJVcmxzOiBzdHJpbmdbXSA9IFtdOyAvL+S4jeeUn+aIkHRhYueahHVybFxyXG5cdEBPdXRwdXQoKSBvblJlZnJlc2hUYWIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cdHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHRUQUJfV0lEVEggPSAxNjQ7XHJcblx0R0FQX05PUk1BTCA9IDU0O1xyXG5cdEdBUF9TTUFMTCA9IDMwO1xyXG5cdHRleHRHYXA7IC8vIOaWh+acrOS4jui+ueahhueahOaAu+mXtOi3nVxyXG5cdGZvbzogUm91dGVyT3V0bGV0O1xyXG5cdGNvbVJlZjogYW55O1xyXG5cdHRhYkxpc3QgPSBbXTtcclxuXHRzZWxlY3RlZFRhYjogbnVtYmVyID0gMDtcclxuXHRtYXhUYWJzOiBudW1iZXIgPSAxMDtcclxuXHRzY3JlZW5XaWR0aDogbnVtYmVyID0gd2luZG93LmlubmVyV2lkdGg7IC8vIOWIneWni+WMluWxj+W5leWuveW6plxyXG5cdEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIsIFtcIiRldmVudFwiXSlcclxuXHRvblJlc2l6ZShldmVudCkge1xyXG5cdFx0dGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDmm7TmlrDlsY/luZXlrr3luqZcclxuXHRcdHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLmluaXRUYWIoKTtcclxuXHRcdC8vIOino+WGs+WIt+aWsOmhtemdouWQju+8jOmAieS4reeahCB0YWIg5Lii5aSx6Zeu6aKYXHJcblx0XHRjb25zdCBpc0V4aXN0SWR4ID0gdGhpcy50YWJMaXN0LmZpbmRJbmRleChcclxuXHRcdFx0KGVsZSkgPT5cclxuXHRcdFx0XHR0aGlzLnVybFdpdGhvdXRRdWVyeShlbGUudXJsKSA9PT1cclxuXHRcdFx0XHR0aGlzLnVybFdpdGhvdXRRdWVyeSh0aGlzLnJvdXRlci51cmwpXHJcblx0XHQpO1xyXG5cdFx0aWYgKGlzRXhpc3RJZHggIT09IC0xKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSBpc0V4aXN0SWR4O1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG5cdFx0XHR0aGlzLnJvdXRlci5ldmVudHNcclxuXHRcdFx0XHQucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG5cdFx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgbmF2aWdhdGlvbiA9IHRoaXMucm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCk7IC8vIOiOt+WPluW9k+WJjeWvvOiIqlxyXG5cdFx0XHRcdFx0aWYgKG5hdmlnYXRpb24pIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgdG9vbHRpcEVsZW1lbnRzID1cclxuXHRcdFx0XHRcdFx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmUtcG9wdXAtb3BlblwiKTtcclxuXHRcdFx0XHRcdFx0Ly8g5Yig6ZmkdG9vbHRpcHNcclxuXHRcdFx0XHRcdFx0dG9vbHRpcEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBodG1sRWxlbWVudCA9IGVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcblx0XHRcdFx0XHRcdFx0aHRtbEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBuYXZpZ2F0aW9uLmV4dHJhcy5zdGF0ZTsgLy8g6I635Y+W5Lyg6YCS55qEIHN0YXRlXHJcblx0XHRcdFx0XHRcdGNvbnN0IHNraXBMb2NhdGlvbkNoYW5nZSA9XHJcblx0XHRcdFx0XHRcdFx0bmF2aWdhdGlvbi5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlOyAvLyDojrflj5bmmK/lkKbot7Pov4cgbG9jYXRpb24gY2hhbmdlXHJcblx0XHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRSb3V0ZSA9XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5yb3V0ZXIucm91dGVyU3RhdGUucm9vdC5maXJzdENoaWxkO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBuYXZpZ2F0aW9uSW5mbyA9IEpTT04ucGFyc2UoXHJcblx0XHRcdFx0XHRcdFx0c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcIm5hdmlnYXRpb25JbmZvXCIpIHx8IFwie31cIlxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHRsZXQgdGl0bGUgPVxyXG5cdFx0XHRcdFx0XHRcdChzdGF0ZSAmJiBzdGF0ZS50aXRsZSkgfHxcclxuXHRcdFx0XHRcdFx0XHRuYXZpZ2F0aW9uSW5mby50aXRsZSB8fFxyXG5cdFx0XHRcdFx0XHRcdG5hdmlnYXRpb25JbmZvLnN1YlRpdGxlIHx8XHJcblx0XHRcdFx0XHRcdFx0bmF2aWdhdGlvbkluZm8ubmFtZTtcclxuXHJcblx0XHRcdFx0XHRcdGxldCBub1JldXNlZCA9IChzdGF0ZSAmJiBzdGF0ZS5ub1JldXNlZCkgfHwgZmFsc2U7IC8vIOW9k+WJjXRhYuS4jeWkjeeUqO+8jOaWsOW8gOS4gOS4qnRhYizlvZPmnInlt7Lnu4/lrZjlnKjnmoR0YWLml7blgJnkuZ/mmK/mlrDlvIBcclxuXHRcdFx0XHRcdFx0aWYgKGN1cnJlbnRSb3V0ZSAmJiAhc2tpcExvY2F0aW9uQ2hhbmdlKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5ub0dlbmVyYXRlVGFiVXJscy5pbmNsdWRlcyhcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy51cmxXaXRob3V0UXVlcnkodGhpcy5yb3V0ZXIudXJsKVxyXG5cdFx0XHRcdFx0XHRcdFx0KVxyXG5cdFx0XHRcdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuOyAvLyDmjpLpmaTkuI3nlJ/miJB0YWLnmoR1cmxcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zZXRUYWIoXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnJvdXRlci51cmwsXHJcblx0XHRcdFx0XHRcdFx0XHRjdXJyZW50Um91dGUuc25hcHNob3Qucm91dGVDb25maWcucGF0aCxcclxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlLFxyXG5cdFx0XHRcdFx0XHRcdFx0bm9SZXVzZWRcclxuXHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdCk7XHJcblx0fVxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuXHRcdH0sIDUwKTtcclxuXHR9XHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcblx0fVxyXG5cclxuXHRzZXRFbGxpcHNpc1RpdGxlKHRpdGxlPykge1xyXG5cdFx0dGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfTk9STUFMO1xyXG5cdFx0aWYgKHRoaXMuc2NyZWVuV2lkdGggPD0gMTEwMCkge1xyXG5cdFx0XHR0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9TTUFMTDtcclxuXHRcdH1cclxuXHRcdGxldCB7IGFsbFdpZHRoLCBsZWZ0V2lkdGgsIHJpZ2h0V2lkdGggfSA9IHRoaXMuY2FsY1RhYldpZHRoKCk7XHJcblx0XHRsZXQgd2lkdGggPSBNYXRoLmZsb29yKFxyXG5cdFx0XHQoYWxsV2lkdGggLSByaWdodFdpZHRoKSAvICh0aGlzLnRhYkxpc3QgJiYgdGhpcy50YWJMaXN0Lmxlbmd0aClcclxuXHRcdCk7XHJcblx0XHRpZiAodGl0bGUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcblx0XHRcdFx0dGl0bGUsXHJcblx0XHRcdFx0d2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG5cdFx0XHRcdFx0PyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG5cdFx0XHRcdFx0OiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuXHRcdFx0XHQxMlxyXG5cdFx0XHQpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy50YWJMaXN0LmZvckVhY2goKGVsZSwgaWR4KSA9PiB7XHJcblx0XHRcdFx0ZWxlLmRpc3BsYXlUaXRsZSA9IHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcblx0XHRcdFx0XHRlbGUudGl0bGUsXHJcblx0XHRcdFx0XHR3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcblx0XHRcdFx0XHRcdD8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuXHRcdFx0XHRcdFx0OiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuXHRcdFx0XHRcdDEyXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjYWxjVGFiV2lkdGgoKSB7XHJcblx0XHRjb25zdCB3cmFwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWJcIik7XHJcblx0XHRjb25zdCB1bEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiA+IHVsXCIpO1xyXG5cdFx0Y29uc3QgcmVmcmVzaFRhYkRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFwiLnJzLW11bHRpLXRhYiAucmVmcmVzaC10YWJcIlxyXG5cdFx0KTtcclxuXHRcdGxldCBhbGxXaWR0aDtcclxuXHRcdGxldCBsZWZ0V2lkdGg7XHJcblx0XHRsZXQgcmlnaHRXaWR0aDtcclxuXHRcdGlmICh3cmFwICYmIHVsRWxlbWVudCkge1xyXG5cdFx0XHQvLyDojrflj5blhYPntKDnmoTkvY3nva7kv6Hmga9cclxuXHRcdFx0Y29uc3Qgd3JhcFJlY3QgPSB3cmFwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cdFx0XHRjb25zdCB1bFJlY3QgPSB1bEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblx0XHRcdGNvbnN0IHJlZnJlc2hUYWJSZWN0ID1cclxuXHRcdFx0XHRyZWZyZXNoVGFiRGl2ICYmIHJlZnJlc2hUYWJEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblx0XHRcdGFsbFdpZHRoID0gd3JhcFJlY3Qud2lkdGg7XHJcblx0XHRcdGxlZnRXaWR0aCA9IHVsUmVjdC53aWR0aDtcclxuXHRcdFx0cmlnaHRXaWR0aCA9IChyZWZyZXNoVGFiUmVjdCAmJiByZWZyZXNoVGFiUmVjdC53aWR0aCkgfHwgMTAwO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0YWxsV2lkdGgsXHJcblx0XHRcdGxlZnRXaWR0aCxcclxuXHRcdFx0cmlnaHRXaWR0aCxcclxuXHRcdH07XHJcblx0fVxyXG5cdGluaXRUYWIoKSB7XHJcblx0XHRsZXQgVGFiQ2FjaGUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJUYWJDYWNoZVwiKSk7XHJcblx0XHR0aGlzLnRhYkxpc3QgPSBUYWJDYWNoZSB8fCBbXTtcclxuXHRcdGlmICh0aGlzLnRhYkxpc3QubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdGNvbnN0IHRpdGxlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcblx0XHRcdGlmICh0aXRsZSkge1xyXG5cdFx0XHRcdHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJmaXJzdFRhYlRpdGxlXCIpO1xyXG5cdFx0XHRcdGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHRcdFx0XHR0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2xvc2VUYWIoaWR4LCBpc0V4dGVybmFsPykge1xyXG5cdFx0Y29uc3QgdGFiID0gdGhpcy50YWJMaXN0W2lkeF07XHJcblx0XHR0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKChlbGUpID0+IGVsZS51cmwgIT09IHRhYi51cmwpO1xyXG5cdFx0dGhpcy5jbGVhckNhY2hlKHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRhYi51cmwpKTtcclxuXHRcdGlmICghaXNFeHRlcm5hbCAmJiB0aGlzLnNlbGVjdGVkVGFiID09PSBpZHgpIHtcclxuXHRcdFx0Y29uc3QgdGFyZ2V0SWR4ID0gTWF0aC5tYXgoMCwgaWR4IC0gMSk7XHJcblx0XHRcdHRoaXMuY2hhbmdlVGFiKHRoaXMudGFiTGlzdFt0YXJnZXRJZHhdLCB0YXJnZXRJZHgpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGlkeCA8IHRoaXMuc2VsZWN0ZWRUYWIpIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMuc2VsZWN0ZWRUYWIgLSAxOyAvLyDlpoLmnpzlhbPpl63nmoR0YWLlnKjlvZPliY3pgInkuK3nmoR0YWLkuYvliY3vvIzpgInkuK10YWLntKLlvJXlh48xXHJcblx0XHR9XHJcblx0XHR0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuXHRcdHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuXHRcdHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cdH1cclxuXHJcblx0Y2hhbmdlVGFiKHRhYiwgaWR4KSB7XHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhYi51cmwpO1xyXG5cdFx0aWYgKHRhYi5uYXZpZ2F0aW9uSW5mbykge1xyXG5cdFx0XHRzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxyXG5cdFx0XHRcdFwibmF2aWdhdGlvbkluZm9cIixcclxuXHRcdFx0XHRKU09OLnN0cmluZ2lmeSh0YWIubmF2aWdhdGlvbkluZm8pXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHRpZiAodGFiLmZyb21VcmwpIHtcclxuXHRcdFx0c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcImZyb21VcmxcIiwgdGFiLmZyb21VcmwpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRhYi5wZXJtaXNzaW9ucykge1xyXG5cdFx0XHRzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxyXG5cdFx0XHRcdFwicGVybWlzc2lvbnNcIixcclxuXHRcdFx0XHRKU09OLnN0cmluZ2lmeSh0YWIucGVybWlzc2lvbnMpXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLnNlbGVjdGVkVGFiID0gaWR4O1xyXG5cdFx0dGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcblx0fVxyXG5cclxuXHRhZGRUYWIodXJsLCB0aXRsZSkge1xyXG5cdFx0aWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPj0gdGhpcy5tYXhUYWJzKSB7XHJcblx0XHRcdHRoaXMuY2xvc2VUYWIoMSk7IC8vIOWIoOmZpOesrOS6jOS4qu+8jOesrOS4gOS4quWbuuWumlxyXG5cdFx0fVxyXG5cdFx0Y29uc3QgbG9jYWxQZXJtaXNzaW9ucyA9XHJcblx0XHRcdHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJwZXJtaXNzaW9uc1wiKSB8fFxyXG5cdFx0XHRsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBlcm1pc3Npb25zXCIpO1xyXG5cdFx0Y29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKFxyXG5cdFx0XHRzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwibmF2aWdhdGlvbkluZm9cIilcclxuXHRcdCk7XHJcblx0XHRjb25zdCBmcm9tVXJsID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZyb21VcmxcIik7XHJcblx0XHRjb25zdCBwZXJtaXNzaW9ucyA9IEpTT04ucGFyc2UobG9jYWxQZXJtaXNzaW9ucyk7XHJcblxyXG5cdFx0dGhpcy50YWJMaXN0LnB1c2goe1xyXG5cdFx0XHR1cmw6IHVybCxcclxuXHRcdFx0dGl0bGU6IHRpdGxlIHx8IFwiZGVmYXVsdFwiLFxyXG5cdFx0XHRkaXNwbGF5VGl0bGU6IHRpdGxlLFxyXG5cdFx0XHRuYXZpZ2F0aW9uSW5mbzogbmF2aWdhdGlvbkluZm8sXHJcblx0XHRcdHBlcm1pc3Npb25zOiBwZXJtaXNzaW9ucyxcclxuXHRcdFx0ZnJvbVVybDogZnJvbVVybCxcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMudGFiTGlzdC5sZW5ndGggLSAxO1xyXG5cdFx0dGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcblx0XHRzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiVGFiQ2FjaGVcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJMaXN0KSk7XHJcblx0XHR0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzZXRUYWIodXJsLCBwdXJlVXJsLCB0aXRsZSwgbm9SZXVzZWQpIHtcclxuXHRcdGNvbnN0IGlzRXhpc3RJZHggPSB0aGlzLnRhYkxpc3QuZmluZEluZGV4KFxyXG5cdFx0XHQoZWxlKSA9PiB0aGlzLnVybFdpdGhvdXRRdWVyeShlbGUudXJsKSA9PT0gdGhpcy51cmxXaXRob3V0UXVlcnkodXJsKVxyXG5cdFx0KTtcclxuXHRcdGlmIChpc0V4aXN0SWR4ID09PSAtMSkge1xyXG5cdFx0XHRjb25zdCBzaW5nbGVJZHggPSB0aGlzLnNpbmdsZVJldXNlVXJscy5maW5kSW5kZXgoXHJcblx0XHRcdFx0KGVsZSkgPT4gZWxlID09PSBwdXJlVXJsXHJcblx0XHRcdCk7XHJcblx0XHRcdGlmIChzaW5nbGVJZHggIT09IC0xKSB7XHJcblx0XHRcdFx0dGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcihcclxuXHRcdFx0XHRcdChlbGUpID0+ICFlbGUudXJsLmluY2x1ZGVzKHRoaXMuc2luZ2xlUmV1c2VVcmxzW3NpbmdsZUlkeF0pXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0XHR0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHVybCk7XHJcblx0XHRcdFx0dGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodXJsKTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IHRhcmdldFRhYlVybCA9IHRoaXMudGFiTGlzdFtpc0V4aXN0SWR4XS51cmw7XHJcblx0XHRcdGlmICh0YXJnZXRUYWJVcmwgIT09IHVybCB8fCBub1JldXNlZCkge1xyXG5cdFx0XHRcdC8vIOW9k+e8k+WtmOS4gOiHtOaXtuWAme+8jOS9huaYr3VybOS4jeS4gOiHtO+8jOmHjeaWsOaMieeFp+aWsOeahHVybOeUn+aIkHRhYlxyXG5cdFx0XHRcdHRoaXMuY2xvc2VUYWIoaXNFeGlzdElkeCwgdHJ1ZSk7XHJcblx0XHRcdFx0dGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VUYWIodGhpcy50YWJMaXN0W2lzRXhpc3RJZHhdLCBpc0V4aXN0SWR4KTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdH1cclxuXHR9XHJcblx0dGltZXIgPSBudWxsO1xyXG5cdHJlZnJlc2hUYWIoKSB7XHJcblx0XHRjb25zdCBsb2FkaW5nSWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwibG9hZGluZ0ljb25cIik7XHJcblx0XHRsb2FkaW5nSWNvbi5jbGFzc0xpc3QuYWRkKFwicmVmcmVzaC10YWItbG9hZGluZ1wiKTtcclxuXHRcdGlmICh0aGlzLnRpbWVyKSB7XHJcblx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XHJcblx0XHR9XHJcblx0XHQvLyDmqKHmi5/liqDovb3ov4fnqIvvvIwx56eS5ZCO56e76Zmk5Yqo55S7XHJcblx0XHR0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdGxvYWRpbmdJY29uLmNsYXNzTGlzdC5yZW1vdmUoXCJyZWZyZXNoLXRhYi1sb2FkaW5nXCIpO1xyXG5cdFx0XHR0aGlzLnRpbWVyID0gbnVsbDtcclxuXHRcdH0sIDE1MDApO1xyXG5cdFx0Ly8gdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh0aGlzLnRhYkxpc3RbdGhpcy5zZWxlY3RlZFRhYl0udXJsKTtcclxuXHRcdC8vIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHRoaXMudGFiTGlzdFt0aGlzLnNlbGVjdGVkVGFiXS51cmwpO1xyXG5cdFx0Y29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDsgLy8g6I635Y+W5b2T5YmNIFVSTFxyXG5cdFx0dGhpcy5vblJlZnJlc2hUYWIuZW1pdChjdXJyZW50VXJsKTtcclxuXHRcdC8vIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoXCIvXCIsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xyXG5cdFx0Ly8gICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGN1cnJlbnRVcmwpOyAvLyDph43mlrDlr7zoiKrliLDlvZPliY0gVVJMXHJcblx0XHQvLyB9KTtcclxuXHR9XHJcblxyXG5cdGNsZWFyQ2FjaGUodXJsKSB7XHJcblx0XHR0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHVybCk7IC8vIOiwg+eUqOiHquWumuS5ieetlueVpeeahOa4hemZpOe8k+WtmOaWueazlVxyXG5cdFx0dGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodXJsKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgdXJsV2l0aG91dFF1ZXJ5KHVybCkge1xyXG5cdFx0cmV0dXJuIHVybC5zcGxpdChcIj9cIilbMF07XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
557
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbXVsdGktdGFiL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc3RDtJQU1FLDJCQUNTLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFLdkMsb0JBQWUsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM1QyxzQkFBaUIsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM3QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQzNDLGNBQVMsR0FBRyxH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QWE7Z0JBRmIsa0JBQWtCOzs7a0NBc0J4QixLQUFLO29DQUNMLEtBQUs7K0JBQ0wsTUFBTTsyQkFhTixZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztJQXlRM0Msd0JBQUM7Q0FBQSxBQXpTRCxJQXlTQztTQXBTWSxpQkFBaUI7OztJQVc1QixzQ0FBNEI7O0lBQzVCLDRDQUF3Qzs7SUFDeEMsOENBQTBDOztJQUMxQyx5Q0FBNEM7Ozs7O0lBRTVDLDBDQUEyQzs7SUFDM0Msc0NBQWdCOztJQUNoQix1Q0FBZ0I7O0lBQ2hCLHNDQUFlOztJQUNmLG9DQUFROztJQUNSLGdDQUFrQjs7SUFDbEIsbUNBQVk7O0lBQ1osb0NBQWE7O0lBQ2Isd0NBQXdCOztJQUN4QixvQ0FBcUI7O0lBQ3JCLHdDQUF3Qzs7SUF3T3hDLGtDQUFhOztJQWhRWCxtQ0FBcUI7O0lBQ3JCLCtCQUFnQzs7SUFDaEMsMkNBQXFDOzs7OztJQUNyQyxnQ0FBOEI7Ozs7O0lBQzlCLG1DQUE2Qjs7Ozs7SUFDN0IsK0NBQThDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlck91dGxldCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyYXdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kcmF3ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBLZWVwQWxpdmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1tdWx0aS10YWJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRyYXdlcjogRHJhd2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVSZXVzZVN0cmF0ZWd5OiBSb3V0ZVJldXNlU3RyYXRlZ3lcclxuICApIHtcclxuICAgIHRoaXMua2VlcEFsaXZlID0gdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgYXMgS2VlcEFsaXZlU2VydmljZTtcclxuICB9XHJcbiAga2VlcEFsaXZlOiBLZWVwQWxpdmVTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVJldXNlVXJsczogc3RyaW5nW10gPSBbXTsgLy/lj6rog73ljZXkuKrnvJPlrZjnmoR1cmxcclxuICBASW5wdXQoKSBub0dlbmVyYXRlVGFiVXJsczogc3RyaW5nW10gPSBbXTsgLy/kuI3nlJ/miJB0YWLnmoR1cmxcclxuICBAT3V0cHV0KCkgb25SZWZyZXNoVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgVEFCX1dJRFRIID0gMTY0O1xyXG4gIEdBUF9OT1JNQUwgPSA1NDtcclxuICBHQVBfU01BTEwgPSAzMDtcclxuICB0ZXh0R2FwOyAvLyDmlofmnKzkuI7ovrnmoYbnmoTmgLvpl7Tot51cclxuICBmb286IFJvdXRlck91dGxldDtcclxuICBjb21SZWY6IGFueTtcclxuICB0YWJMaXN0ID0gW107XHJcbiAgc2VsZWN0ZWRUYWI6IG51bWJlciA9IDA7XHJcbiAgbWF4VGFiczogbnVtYmVyID0gMTA7XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDliJ3lp4vljJblsY/luZXlrr3luqZcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25SZXNpemUoZXZlbnQpIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsgLy8g5pu05paw5bGP5bmV5a695bqmXHJcbiAgICAvLyB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTsg5Zyo5pyA5aSW6Z2i5a655Zmo6LCD55SoXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdFRhYigpO1xyXG4gICAgLy8g6Kej5Yaz5Yi35paw6aG16Z2i5ZCO77yM6YCJ5Lit55qEIHRhYiDkuKLlpLHpl67pophcclxuICAgIGNvbnN0IGlzRXhpc3RJZHggPSB0aGlzLnRhYkxpc3QuZmluZEluZGV4KFxyXG4gICAgICAoZWxlKSA9PlxyXG4gICAgICAgIHRoaXMudXJsV2l0aG91dFF1ZXJ5KGVsZS51cmwpID09PSB0aGlzLnVybFdpdGhvdXRRdWVyeSh0aGlzLnJvdXRlci51cmwpXHJcbiAgICApO1xyXG4gICAgaWYgKGlzRXhpc3RJZHggIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBpc0V4aXN0SWR4O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmF2aWdhdGlvbiA9IHRoaXMucm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCk7IC8vIOiOt+WPluW9k+WJjeWvvOiIqlxyXG4gICAgICAgICAgaWYgKG5hdmlnYXRpb24pIHtcclxuICAgICAgICAgICAgY29uc3QgdG9vbHRpcEVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5lLXBvcHVwLW9wZW5cIik7XHJcbiAgICAgICAgICAgIC8vIOWIoOmZpHRvb2x0aXBzXHJcbiAgICAgICAgICAgIHRvb2x0aXBFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBlbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICAgIGh0bWxFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gbmF2aWdhdGlvbi5leHRyYXMuc3RhdGU7IC8vIOiOt+WPluS8oOmAkueahCBzdGF0ZVxyXG4gICAgICAgICAgICBjb25zdCBza2lwTG9jYXRpb25DaGFuZ2UgPSBuYXZpZ2F0aW9uLmV4dHJhcy5za2lwTG9jYXRpb25DaGFuZ2U7IC8vIOiOt+WPluaYr+WQpui3s+i/hyBsb2NhdGlvbiBjaGFuZ2VcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUucm9vdC5maXJzdENoaWxkO1xyXG4gICAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9uSW5mbyA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcIm5hdmlnYXRpb25JbmZvXCIpIHx8IFwie31cIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBsZXQgdGl0bGUgPVxyXG4gICAgICAgICAgICAgIChzdGF0ZSAmJiBzdGF0ZS50aXRsZSkgfHxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5mby50aXRsZSB8fFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25JbmZvLnN1YlRpdGxlIHx8XHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkluZm8ubmFtZTtcclxuXHJcbiAgICAgICAgICAgIGxldCBub1JldXNlZCA9IChzdGF0ZSAmJiBzdGF0ZS5ub1JldXNlZCkgfHwgZmFsc2U7IC8vIOW9k+WJjXRhYuS4jeWkjeeUqO+8jOaWsOW8gOS4gOS4qnRhYizlvZPmnInlt7Lnu4/lrZjlnKjnmoR0YWLml7blgJnkuZ/mmK/mlrDlvIBcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRSb3V0ZSAmJiAhc2tpcExvY2F0aW9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub0dlbmVyYXRlVGFiVXJscy5pbmNsdWRlcyhcclxuICAgICAgICAgICAgICAgICAgdGhpcy51cmxXaXRob3V0UXVlcnkodGhpcy5yb3V0ZXIudXJsKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyDmjpLpmaTkuI3nlJ/miJB0YWLnmoR1cmxcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRUYWIoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci51cmwsXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50Um91dGUuc25hcHNob3Qucm91dGVDb25maWcucGF0aCxcclxuICAgICAgICAgICAgICAgIHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgbm9SZXVzZWRcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgIH0sIDUwKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnRhYkxpc3QgPSBbXTsgLy8g5riF56m6IHRhYiDliJfooahcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAwOyAvLyDph43nva7pgInkuK3nmoQgdGFiIOe0ouW8lVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2V0RWxsaXBzaXNUaXRsZSh0aXRsZT8pIHtcclxuICAgIHRoaXMudGV4dEdhcCA9IHRoaXMuR0FQX05PUk1BTDtcclxuICAgIGlmICh0aGlzLnNjcmVlbldpZHRoIDw9IDExMDApIHtcclxuICAgICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfU01BTEw7XHJcbiAgICB9XHJcbiAgICBsZXQgeyBhbGxXaWR0aCwgbGVmdFdpZHRoLCByaWdodFdpZHRoIH0gPSB0aGlzLmNhbGNUYWJXaWR0aCgpO1xyXG4gICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihcclxuICAgICAgKGFsbFdpZHRoIC0gcmlnaHRXaWR0aCkgLyAodGhpcy50YWJMaXN0ICYmIHRoaXMudGFiTGlzdC5sZW5ndGgpXHJcbiAgICApO1xyXG4gICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKFxyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIHdpZHRoID4gdGhpcy5UQUJfV0lEVEhcclxuICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgIDogd2lkdGggLSB0aGlzLnRleHRHYXAsXHJcbiAgICAgICAgMTJcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFiTGlzdC5mb3JFYWNoKChlbGUsIGlkeCkgPT4ge1xyXG4gICAgICAgIGVsZS5kaXNwbGF5VGl0bGUgPSB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKFxyXG4gICAgICAgICAgZWxlLnRpdGxlLFxyXG4gICAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgICA/IHRoaXMuVEFCX1dJRFRIIC0gdGhpcy50ZXh0R2FwXHJcbiAgICAgICAgICAgIDogd2lkdGggLSB0aGlzLnRleHRHYXAsXHJcbiAgICAgICAgICAxMlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjYWxjVGFiV2lkdGgoKSB7XHJcbiAgICBjb25zdCB3cmFwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWJcIik7XHJcbiAgICBjb25zdCB1bEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiA+IHVsXCIpO1xyXG4gICAgY29uc3QgcmVmcmVzaFRhYkRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiIC5yZWZyZXNoLXRhYlwiKTtcclxuICAgIGxldCBhbGxXaWR0aDtcclxuICAgIGxldCBsZWZ0V2lkdGg7XHJcbiAgICBsZXQgcmlnaHRXaWR0aDtcclxuICAgIGlmICh3cmFwICYmIHVsRWxlbWVudCkge1xyXG4gICAgICAvLyDojrflj5blhYPntKDnmoTkvY3nva7kv6Hmga9cclxuICAgICAgY29uc3Qgd3JhcFJlY3QgPSB3cmFwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCB1bFJlY3QgPSB1bEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IHJlZnJlc2hUYWJSZWN0ID1cclxuICAgICAgICByZWZyZXNoVGFiRGl2ICYmIHJlZnJlc2hUYWJEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGFsbFdpZHRoID0gd3JhcFJlY3Qud2lkdGg7XHJcbiAgICAgIGxlZnRXaWR0aCA9IHVsUmVjdC53aWR0aDtcclxuICAgICAgcmlnaHRXaWR0aCA9IChyZWZyZXNoVGFiUmVjdCAmJiByZWZyZXNoVGFiUmVjdC53aWR0aCkgfHwgMTAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWxsV2lkdGgsXHJcbiAgICAgIGxlZnRXaWR0aCxcclxuICAgICAgcmlnaHRXaWR0aCxcclxuICAgIH07XHJcbiAgfVxyXG4gIGluaXRUYWIoKSB7XHJcbiAgICBsZXQgVGFiQ2FjaGUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJUYWJDYWNoZVwiKSk7XHJcbiAgICB0aGlzLnRhYkxpc3QgPSBUYWJDYWNoZSB8fCBbXTtcclxuICAgIGlmICh0aGlzLnRhYkxpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IHRpdGxlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcbiAgICAgIGlmICh0aXRsZSkge1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJmaXJzdFRhYlRpdGxlXCIpO1xyXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgICAgICB0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VUYWIoaWR4LCBub0NoYW5nZT8pIHtcclxuICAgIGNvbnN0IHRhYiA9IHRoaXMudGFiTGlzdFtpZHhdO1xyXG4gICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcigoZWxlKSA9PiBlbGUudXJsICE9PSB0YWIudXJsKTtcclxuICAgIHRoaXMuY2xlYXJDYWNoZSh0aGlzLnVybFdpdGhvdXRRdWVyeSh0YWIudXJsKSk7XHJcbiAgICBpZiAoIW5vQ2hhbmdlICYmIHRoaXMuc2VsZWN0ZWRUYWIgPT09IGlkeCkge1xyXG4gICAgICBjb25zdCB0YXJnZXRJZHggPSBNYXRoLm1heCgwLCBpZHggLSAxKTtcclxuICAgICAgdGhpcy5jaGFuZ2VUYWIodGhpcy50YWJMaXN0W3RhcmdldElkeF0sIHRhcmdldElkeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaWR4IDwgdGhpcy5zZWxlY3RlZFRhYikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5zZWxlY3RlZFRhYiAtIDE7IC8vIOWmguaenOWFs+mXreeahHRhYuWcqOW9k+WJjemAieS4reeahHRhYuS5i+WJje+8jOmAieS4rXRhYue0ouW8leWHjzFcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUYWIodGFiLCBpZHgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGFiLnVybCk7XHJcbiAgICBpZiAodGFiLm5hdmlnYXRpb25JbmZvKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgXCJuYXZpZ2F0aW9uSW5mb1wiLFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRhYi5uYXZpZ2F0aW9uSW5mbylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0YWIuZnJvbUluZm8pIHtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcImZyb21JbmZvXCIsIEpTT04uc3RyaW5naWZ5KHRhYi5mcm9tSW5mbykpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRhYi5wZXJtaXNzaW9ucykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwicGVybWlzc2lvbnNcIiwgSlNPTi5zdHJpbmdpZnkodGFiLnBlcm1pc3Npb25zKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gaWR4O1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBhZGRUYWIodXJsLCB0aXRsZSkge1xyXG4gICAgaWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPj0gdGhpcy5tYXhUYWJzKSB7XHJcbiAgICAgIGNvbnN0IHNlY29uZFRhYiA9IHRoaXMudGFiTGlzdFsxXTtcclxuICAgICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcigoZWxlKSA9PiBlbGUudXJsICE9PSBzZWNvbmRUYWIudXJsKTtcclxuICAgICAgdGhpcy5jbGVhckNhY2hlKHRoaXMudXJsV2l0aG91dFF1ZXJ5KHNlY29uZFRhYi51cmwpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGxvY2FsUGVybWlzc2lvbnMgPVxyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwicGVybWlzc2lvbnNcIikgfHxcclxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwZXJtaXNzaW9uc1wiKTtcclxuICAgIGNvbnN0IG5hdmlnYXRpb25JbmZvID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwibmF2aWdhdGlvbkluZm9cIikpO1xyXG4gICAgY29uc3QgZnJvbUluZm8gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJmcm9tSW5mb1wiKSk7XHJcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IEpTT04ucGFyc2UobG9jYWxQZXJtaXNzaW9ucyk7XHJcblxyXG4gICAgdGhpcy50YWJMaXN0LnB1c2goe1xyXG4gICAgICB1cmw6IHVybCxcclxuICAgICAgdGl0bGU6IHRpdGxlIHx8IFwiZGVmYXVsdFwiLFxyXG4gICAgICBkaXNwbGF5VGl0bGU6IHRpdGxlLFxyXG4gICAgICBuYXZpZ2F0aW9uSW5mbzogbmF2aWdhdGlvbkluZm8sXHJcbiAgICAgIHBlcm1pc3Npb25zOiBwZXJtaXNzaW9ucyxcclxuICAgICAgZnJvbUluZm86IGZyb21JbmZvLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy50YWJMaXN0Lmxlbmd0aCAtIDE7XHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRhYih1cmwsIHB1cmVVcmwsIHRpdGxlLCBub1JldXNlZCkge1xyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChlbGUpID0+IHRoaXMudXJsV2l0aG91dFF1ZXJ5KGVsZS51cmwpID09PSB0aGlzLnVybFdpdGhvdXRRdWVyeSh1cmwpXHJcbiAgICApO1xyXG4gICAgaWYgKGlzRXhpc3RJZHggPT09IC0xKSB7XHJcbiAgICAgIGNvbnN0IHNpbmdsZUlkeCA9IHRoaXMuc2luZ2xlUmV1c2VVcmxzLmZpbmRJbmRleChcclxuICAgICAgICAoZWxlKSA9PiBlbGUgPT09IHB1cmVVcmxcclxuICAgICAgKTtcclxuICAgICAgaWYgKHNpbmdsZUlkeCAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgKGVsZSkgPT4gIWVsZS51cmwuaW5jbHVkZXModGhpcy5zaW5nbGVSZXVzZVVybHNbc2luZ2xlSWR4XSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodXJsKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdGFyZ2V0VGFiVXJsID0gdGhpcy50YWJMaXN0W2lzRXhpc3RJZHhdLnVybDtcclxuICAgICAgaWYgKHRhcmdldFRhYlVybCAhPT0gdXJsIHx8IG5vUmV1c2VkKSB7XHJcbiAgICAgICAgLy8g5b2T57yT5a2Y5LiA6Ie05pe25YCZ77yM5L2G5pivdXJs5LiN5LiA6Ie077yM6YeN5paw5oyJ54Wn5paw55qEdXJs55Sf5oiQdGFiXHJcbiAgICAgICAgdGhpcy5jbG9zZVRhYihpc0V4aXN0SWR4LCB0cnVlKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG4gICAgICAgIH0sIDMwKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoYW5nZVRhYih0aGlzLnRhYkxpc3RbaXNFeGlzdElkeF0sIGlzRXhpc3RJZHgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuICB0aW1lciA9IG51bGw7XHJcbiAgcmVmcmVzaFRhYigpIHtcclxuICAgIGNvbnN0IGxvYWRpbmdJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJsb2FkaW5nSWNvblwiKTtcclxuICAgIGxvYWRpbmdJY29uLmNsYXNzTGlzdC5hZGQoXCJyZWZyZXNoLXRhYi1sb2FkaW5nXCIpO1xyXG4gICAgaWYgKHRoaXMudGltZXIpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcclxuICAgIH1cclxuICAgIC8vIOaooeaLn+WKoOi9vei/h+eoi++8jDHnp5LlkI7np7vpmaTliqjnlLtcclxuICAgIHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgbG9hZGluZ0ljb24uY2xhc3NMaXN0LnJlbW92ZShcInJlZnJlc2gtdGFiLWxvYWRpbmdcIik7XHJcbiAgICAgIHRoaXMudGltZXIgPSBudWxsO1xyXG4gICAgfSwgMTUwMCk7XHJcbiAgICAvLyB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHRoaXMudGFiTGlzdFt0aGlzLnNlbGVjdGVkVGFiXS51cmwpO1xyXG4gICAgLy8gdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcbiAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsOyAvLyDojrflj5blvZPliY0gVVJMXHJcbiAgICB0aGlzLm9uUmVmcmVzaFRhYi5lbWl0KGN1cnJlbnRVcmwpO1xyXG4gICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChcIi9cIiwgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoY3VycmVudFVybCk7IC8vIOmHjeaWsOWvvOiIquWIsOW9k+WJjSBVUkxcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDYWNoZSh1cmwpIHtcclxuICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodXJsKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcbiAgICB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG4gIH1cclxuICBjbGVhbkFsbENhY2hlKCkge1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcIlRhYkNhY2hlXCIpOyAvLyDmuIXpmaTnvJPlrZhcclxuICAgIHRoaXMudGFiTGlzdCA9IFtdOyAvLyDmuIXnqbogdGFiIOWIl+ihqFxyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IDA7IC8vIOmHjee9rumAieS4reeahCB0YWIg57Si5byVXHJcbiAgICB0aGlzLmtlZXBBbGl2ZS5jbGVhckFsbENhY2hlKCk7IC8vIOiwg+eUqOiHquWumuS5ieetlueVpeeahOa4hemZpOe8k+WtmOaWueazlVxyXG4gIH1cclxuICBwcml2YXRlIHVybFdpdGhvdXRRdWVyeSh1cmwpIHtcclxuICAgIHJldHVybiB1cmwuc3BsaXQoXCI/XCIpWzBdO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter, Component, ChangeDetectorRef, ViewChild, Input, Output, HostBinding, Injectable, ɵɵdefineInjectable, Inject, ɵɵinject, ContentChild, HostListener, ComponentFactoryResolver, ViewContainerRef, ViewChildren, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
1
|
+
import { EventEmitter, Component, ChangeDetectorRef, ViewChild, Input, Output, HostBinding, Injectable, ɵɵdefineInjectable, Inject, ɵɵinject, ContentChild, HostListener, ComponentFactoryResolver, ViewContainerRef, ViewChildren, ElementRef, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
2
2
|
import { GridComponent, GridModule, PagerModule, GridAllModule, PageService, SortService, FilterService, ExcelExportService, EditService, ResizeService, ToolbarService, ColumnChooserService, AggregateService, ColumnMenuService, DetailRowService, SelectionService, GroupService } from '@syncfusion/ej2-angular-grids';
|
|
3
3
|
import { times, debounce } from 'lodash';
|
|
4
4
|
import { __awaiter, __decorate, __metadata } from 'tslib';
|
|
@@ -11,6 +11,7 @@ import { NavigationEnd, Router, ActivatedRoute, RouteReuseStrategy } from '@angu
|
|
|
11
11
|
import { filter } from 'rxjs/operators';
|
|
12
12
|
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|
13
13
|
import { setCulture, L10n } from '@syncfusion/ej2-base';
|
|
14
|
+
import ResizeObserver from 'resize-observer-polyfill';
|
|
14
15
|
import { DatePipe, CommonModule } from '@angular/common';
|
|
15
16
|
import { Query } from '@syncfusion/ej2-data';
|
|
16
17
|
import { MatIconRegistry, MatIconModule } from '@angular/material/icon';
|
|
@@ -2571,7 +2572,7 @@ class MultiTabComponent {
|
|
|
2571
2572
|
*/
|
|
2572
2573
|
onResize(event) {
|
|
2573
2574
|
this.screenWidth = window.innerWidth; // 更新屏幕宽度
|
|
2574
|
-
this.setEllipsisTitle();
|
|
2575
|
+
// this.setEllipsisTitle(); 在最外面容器调用
|
|
2575
2576
|
}
|
|
2576
2577
|
/**
|
|
2577
2578
|
* @return {?}
|
|
@@ -2584,8 +2585,7 @@ class MultiTabComponent {
|
|
|
2584
2585
|
* @param {?} ele
|
|
2585
2586
|
* @return {?}
|
|
2586
2587
|
*/
|
|
2587
|
-
(ele) => this.urlWithoutQuery(ele.url) ===
|
|
2588
|
-
this.urlWithoutQuery(this.router.url)));
|
|
2588
|
+
(ele) => this.urlWithoutQuery(ele.url) === this.urlWithoutQuery(this.router.url)));
|
|
2589
2589
|
if (isExistIdx !== -1) {
|
|
2590
2590
|
this.selectedTab = isExistIdx;
|
|
2591
2591
|
}
|
|
@@ -2655,6 +2655,8 @@ class MultiTabComponent {
|
|
|
2655
2655
|
* @return {?}
|
|
2656
2656
|
*/
|
|
2657
2657
|
ngOnDestroy() {
|
|
2658
|
+
this.tabList = []; // 清空 tab 列表
|
|
2659
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
2658
2660
|
this.subscriptions.forEach((/**
|
|
2659
2661
|
* @param {?} sub
|
|
2660
2662
|
* @return {?}
|
|
@@ -2690,6 +2692,8 @@ class MultiTabComponent {
|
|
|
2690
2692
|
: width - this.textGap, 12);
|
|
2691
2693
|
}));
|
|
2692
2694
|
}
|
|
2695
|
+
this.ref.markForCheck();
|
|
2696
|
+
this.ref.detectChanges();
|
|
2693
2697
|
}
|
|
2694
2698
|
/**
|
|
2695
2699
|
* @return {?}
|
|
@@ -2745,10 +2749,10 @@ class MultiTabComponent {
|
|
|
2745
2749
|
}
|
|
2746
2750
|
/**
|
|
2747
2751
|
* @param {?} idx
|
|
2748
|
-
* @param {?=}
|
|
2752
|
+
* @param {?=} noChange
|
|
2749
2753
|
* @return {?}
|
|
2750
2754
|
*/
|
|
2751
|
-
closeTab(idx,
|
|
2755
|
+
closeTab(idx, noChange) {
|
|
2752
2756
|
/** @type {?} */
|
|
2753
2757
|
const tab = this.tabList[idx];
|
|
2754
2758
|
this.tabList = this.tabList.filter((/**
|
|
@@ -2757,7 +2761,7 @@ class MultiTabComponent {
|
|
|
2757
2761
|
*/
|
|
2758
2762
|
(ele) => ele.url !== tab.url));
|
|
2759
2763
|
this.clearCache(this.urlWithoutQuery(tab.url));
|
|
2760
|
-
if (!
|
|
2764
|
+
if (!noChange && this.selectedTab === idx) {
|
|
2761
2765
|
/** @type {?} */
|
|
2762
2766
|
const targetIdx = Math.max(0, idx - 1);
|
|
2763
2767
|
this.changeTab(this.tabList[targetIdx], targetIdx);
|
|
@@ -2779,8 +2783,8 @@ class MultiTabComponent {
|
|
|
2779
2783
|
if (tab.navigationInfo) {
|
|
2780
2784
|
sessionStorage.setItem("navigationInfo", JSON.stringify(tab.navigationInfo));
|
|
2781
2785
|
}
|
|
2782
|
-
if (tab.
|
|
2783
|
-
sessionStorage.setItem("
|
|
2786
|
+
if (tab.fromInfo) {
|
|
2787
|
+
sessionStorage.setItem("fromInfo", JSON.stringify(tab.fromInfo));
|
|
2784
2788
|
}
|
|
2785
2789
|
if (tab.permissions) {
|
|
2786
2790
|
sessionStorage.setItem("permissions", JSON.stringify(tab.permissions));
|
|
@@ -2795,7 +2799,14 @@ class MultiTabComponent {
|
|
|
2795
2799
|
*/
|
|
2796
2800
|
addTab(url, title) {
|
|
2797
2801
|
if (this.tabList.length >= this.maxTabs) {
|
|
2798
|
-
|
|
2802
|
+
/** @type {?} */
|
|
2803
|
+
const secondTab = this.tabList[1];
|
|
2804
|
+
this.tabList = this.tabList.filter((/**
|
|
2805
|
+
* @param {?} ele
|
|
2806
|
+
* @return {?}
|
|
2807
|
+
*/
|
|
2808
|
+
(ele) => ele.url !== secondTab.url));
|
|
2809
|
+
this.clearCache(this.urlWithoutQuery(secondTab.url));
|
|
2799
2810
|
}
|
|
2800
2811
|
/** @type {?} */
|
|
2801
2812
|
const localPermissions = sessionStorage.getItem("permissions") ||
|
|
@@ -2803,7 +2814,7 @@ class MultiTabComponent {
|
|
|
2803
2814
|
/** @type {?} */
|
|
2804
2815
|
const navigationInfo = JSON.parse(sessionStorage.getItem("navigationInfo"));
|
|
2805
2816
|
/** @type {?} */
|
|
2806
|
-
const
|
|
2817
|
+
const fromInfo = JSON.parse(sessionStorage.getItem("fromInfo"));
|
|
2807
2818
|
/** @type {?} */
|
|
2808
2819
|
const permissions = JSON.parse(localPermissions);
|
|
2809
2820
|
this.tabList.push({
|
|
@@ -2812,7 +2823,7 @@ class MultiTabComponent {
|
|
|
2812
2823
|
displayTitle: title,
|
|
2813
2824
|
navigationInfo: navigationInfo,
|
|
2814
2825
|
permissions: permissions,
|
|
2815
|
-
|
|
2826
|
+
fromInfo: fromInfo,
|
|
2816
2827
|
});
|
|
2817
2828
|
this.selectedTab = this.tabList.length - 1;
|
|
2818
2829
|
this.setEllipsisTitle();
|
|
@@ -2857,7 +2868,12 @@ class MultiTabComponent {
|
|
|
2857
2868
|
if (targetTabUrl !== url || noReused) {
|
|
2858
2869
|
// 当缓存一致时候,但是url不一致,重新按照新的url生成tab
|
|
2859
2870
|
this.closeTab(isExistIdx, true);
|
|
2860
|
-
|
|
2871
|
+
setTimeout((/**
|
|
2872
|
+
* @return {?}
|
|
2873
|
+
*/
|
|
2874
|
+
() => {
|
|
2875
|
+
this.addTab(url, title);
|
|
2876
|
+
}), 30);
|
|
2861
2877
|
}
|
|
2862
2878
|
else {
|
|
2863
2879
|
this.changeTab(this.tabList[isExistIdx], isExistIdx);
|
|
@@ -2900,6 +2916,15 @@ class MultiTabComponent {
|
|
|
2900
2916
|
this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法
|
|
2901
2917
|
this.drawer.deleteCache(url);
|
|
2902
2918
|
}
|
|
2919
|
+
/**
|
|
2920
|
+
* @return {?}
|
|
2921
|
+
*/
|
|
2922
|
+
cleanAllCache() {
|
|
2923
|
+
sessionStorage.removeItem("TabCache"); // 清除缓存
|
|
2924
|
+
this.tabList = []; // 清空 tab 列表
|
|
2925
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
2926
|
+
this.keepAlive.clearAllCache(); // 调用自定义策略的清除缓存方法
|
|
2927
|
+
}
|
|
2903
2928
|
/**
|
|
2904
2929
|
* @private
|
|
2905
2930
|
* @param {?} url
|
|
@@ -20217,15 +20242,28 @@ if (false) {
|
|
|
20217
20242
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
20218
20243
|
*/
|
|
20219
20244
|
class MainContainerComponent {
|
|
20220
|
-
//只能单个缓存的url
|
|
20221
20245
|
/**
|
|
20222
20246
|
* @param {?} globalDrawer
|
|
20247
|
+
* @param {?} elementRef
|
|
20223
20248
|
*/
|
|
20224
|
-
constructor(globalDrawer) {
|
|
20249
|
+
constructor(globalDrawer, elementRef) {
|
|
20225
20250
|
this.globalDrawer = globalDrawer;
|
|
20251
|
+
this.elementRef = elementRef;
|
|
20226
20252
|
this.isCollapsed = false; // 接收输入属性
|
|
20227
20253
|
// 接收输入属性
|
|
20228
20254
|
this.singleReuseUrls = []; //只能单个缓存的url
|
|
20255
|
+
//只能单个缓存的url
|
|
20256
|
+
this.onWidthChange = new EventEmitter();
|
|
20257
|
+
this.debouncedHandleResize = debounce((/**
|
|
20258
|
+
* @param {?} width
|
|
20259
|
+
* @return {?}
|
|
20260
|
+
*/
|
|
20261
|
+
(width) => {
|
|
20262
|
+
// console.log("Debounced width change:", width);
|
|
20263
|
+
// 在这里处理防抖后的宽度变化逻辑
|
|
20264
|
+
this.multiTabRef && this.multiTabRef.setEllipsisTitle();
|
|
20265
|
+
this.onWidthChange.emit(width);
|
|
20266
|
+
}), 300);
|
|
20229
20267
|
}
|
|
20230
20268
|
/**
|
|
20231
20269
|
* @return {?}
|
|
@@ -20253,6 +20291,29 @@ class MainContainerComponent {
|
|
|
20253
20291
|
*/
|
|
20254
20292
|
ngAfterViewInit() {
|
|
20255
20293
|
this.globalDrawer.setDrawer(this.drawer); // 设置抽屉组件
|
|
20294
|
+
// 设置抽屉组件
|
|
20295
|
+
/** @type {?} */
|
|
20296
|
+
const rightAside = this.elementRef.nativeElement.querySelector(".right-aside");
|
|
20297
|
+
this.resizeObserver = new ResizeObserver((/**
|
|
20298
|
+
* @param {?} entries
|
|
20299
|
+
* @return {?}
|
|
20300
|
+
*/
|
|
20301
|
+
(entries) => {
|
|
20302
|
+
for (const entry of entries) {
|
|
20303
|
+
/** @type {?} */
|
|
20304
|
+
const width = entry.contentRect.width;
|
|
20305
|
+
this.debouncedHandleResize(width);
|
|
20306
|
+
}
|
|
20307
|
+
}));
|
|
20308
|
+
this.resizeObserver.observe(rightAside);
|
|
20309
|
+
}
|
|
20310
|
+
/**
|
|
20311
|
+
* @return {?}
|
|
20312
|
+
*/
|
|
20313
|
+
ngOnDestroy() {
|
|
20314
|
+
if (this.resizeObserver) {
|
|
20315
|
+
this.resizeObserver.disconnect();
|
|
20316
|
+
}
|
|
20256
20317
|
}
|
|
20257
20318
|
/**
|
|
20258
20319
|
* @return {?}
|
|
@@ -20274,29 +20335,51 @@ MainContainerComponent.decorators = [
|
|
|
20274
20335
|
];
|
|
20275
20336
|
/** @nocollapse */
|
|
20276
20337
|
MainContainerComponent.ctorParameters = () => [
|
|
20277
|
-
{ type: DrawerService }
|
|
20338
|
+
{ type: DrawerService },
|
|
20339
|
+
{ type: ElementRef }
|
|
20278
20340
|
];
|
|
20279
20341
|
MainContainerComponent.propDecorators = {
|
|
20280
20342
|
headerRef: [{ type: ContentChild, args: [RSHeaderComponent, { static: true },] }],
|
|
20343
|
+
multiTabRef: [{ type: ContentChild, args: [MultiTabComponent, { static: true },] }],
|
|
20281
20344
|
drawer: [{ type: ViewChild, args: ["drawer", { static: false },] }],
|
|
20282
20345
|
isCollapsed: [{ type: Input }],
|
|
20283
20346
|
singleReuseUrls: [{ type: Input }],
|
|
20347
|
+
onWidthChange: [{ type: Output }],
|
|
20284
20348
|
onResize: [{ type: HostListener, args: ["window:resize", ["$event"],] }]
|
|
20285
20349
|
};
|
|
20286
20350
|
if (false) {
|
|
20287
20351
|
/** @type {?} */
|
|
20288
20352
|
MainContainerComponent.prototype.headerRef;
|
|
20289
20353
|
/** @type {?} */
|
|
20354
|
+
MainContainerComponent.prototype.multiTabRef;
|
|
20355
|
+
/** @type {?} */
|
|
20290
20356
|
MainContainerComponent.prototype.drawer;
|
|
20291
20357
|
/** @type {?} */
|
|
20292
20358
|
MainContainerComponent.prototype.isCollapsed;
|
|
20293
20359
|
/** @type {?} */
|
|
20294
20360
|
MainContainerComponent.prototype.singleReuseUrls;
|
|
20361
|
+
/** @type {?} */
|
|
20362
|
+
MainContainerComponent.prototype.onWidthChange;
|
|
20363
|
+
/**
|
|
20364
|
+
* @type {?}
|
|
20365
|
+
* @private
|
|
20366
|
+
*/
|
|
20367
|
+
MainContainerComponent.prototype.resizeObserver;
|
|
20368
|
+
/**
|
|
20369
|
+
* @type {?}
|
|
20370
|
+
* @private
|
|
20371
|
+
*/
|
|
20372
|
+
MainContainerComponent.prototype.debouncedHandleResize;
|
|
20295
20373
|
/**
|
|
20296
20374
|
* @type {?}
|
|
20297
20375
|
* @private
|
|
20298
20376
|
*/
|
|
20299
20377
|
MainContainerComponent.prototype.globalDrawer;
|
|
20378
|
+
/**
|
|
20379
|
+
* @type {?}
|
|
20380
|
+
* @private
|
|
20381
|
+
*/
|
|
20382
|
+
MainContainerComponent.prototype.elementRef;
|
|
20300
20383
|
}
|
|
20301
20384
|
|
|
20302
20385
|
/**
|