raise-common-lib 0.0.132 → 0.0.133
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 +114 -18
- 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 +29 -12
- package/esm5/lib/layout/main-container/index.component.js +82 -4
- package/esm5/lib/layout/multi-tab/index.component.js +33 -13
- package/fesm2015/raise-common-lib.js +91 -15
- package/fesm2015/raise-common-lib.js.map +1 -1
- package/fesm5/raise-common-lib.js +111 -16
- 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));
|
|
@@ -318,7 +321,7 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
318
321
|
/** @type {?} */
|
|
319
322
|
var navigationInfo = JSON.parse(sessionStorage.getItem("navigationInfo"));
|
|
320
323
|
/** @type {?} */
|
|
321
|
-
var
|
|
324
|
+
var fromInfo = JSON.parse(sessionStorage.getItem("fromInfo"));
|
|
322
325
|
/** @type {?} */
|
|
323
326
|
var permissions = JSON.parse(localPermissions);
|
|
324
327
|
this.tabList.push({
|
|
@@ -327,7 +330,7 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
327
330
|
displayTitle: title,
|
|
328
331
|
navigationInfo: navigationInfo,
|
|
329
332
|
permissions: permissions,
|
|
330
|
-
|
|
333
|
+
fromInfo: fromInfo,
|
|
331
334
|
});
|
|
332
335
|
this.selectedTab = this.tabList.length - 1;
|
|
333
336
|
this.setEllipsisTitle();
|
|
@@ -380,7 +383,12 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
380
383
|
if (targetTabUrl !== url || noReused) {
|
|
381
384
|
// 当缓存一致时候,但是url不一致,重新按照新的url生成tab
|
|
382
385
|
this.closeTab(isExistIdx, true);
|
|
383
|
-
|
|
386
|
+
setTimeout((/**
|
|
387
|
+
* @return {?}
|
|
388
|
+
*/
|
|
389
|
+
function () {
|
|
390
|
+
_this.addTab(url, title);
|
|
391
|
+
}), 30);
|
|
384
392
|
}
|
|
385
393
|
else {
|
|
386
394
|
this.changeTab(this.tabList[isExistIdx], isExistIdx);
|
|
@@ -431,6 +439,18 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
431
439
|
this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法
|
|
432
440
|
this.drawer.deleteCache(url);
|
|
433
441
|
};
|
|
442
|
+
/**
|
|
443
|
+
* @return {?}
|
|
444
|
+
*/
|
|
445
|
+
MultiTabComponent.prototype.cleanAllCache = /**
|
|
446
|
+
* @return {?}
|
|
447
|
+
*/
|
|
448
|
+
function () {
|
|
449
|
+
sessionStorage.removeItem("TabCache"); // 清除缓存
|
|
450
|
+
this.tabList = []; // 清空 tab 列表
|
|
451
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
452
|
+
this.keepAlive.clearAllCache(); // 调用自定义策略的清除缓存方法
|
|
453
|
+
};
|
|
434
454
|
/**
|
|
435
455
|
* @private
|
|
436
456
|
* @param {?} url
|
|
@@ -527,4 +547,4 @@ if (false) {
|
|
|
527
547
|
*/
|
|
528
548
|
MultiTabComponent.prototype.routeReuseStrategy;
|
|
529
549
|
}
|
|
530
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbXVsdGktdGFiL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBRU4saUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNOLGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxHQUVOLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUk3RDtJQU1DLDJCQUNRLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFLdEMsb0JBQWUsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM1QyxzQkFBaUIsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM3QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQzNDLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFDaEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBSWYsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsZ0JBQVcsR0FBVyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVTtRQTJPbkQsVUFBSyxHQUFHLElBQUksQ0FBQztRQTVQWixJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFBLElBQUksQ0FBQyxrQkFBa0IsRUFBb0IsQ0FBQztJQUM5RCxDQUFDOzs7Ozs7SUFrQkQsb0NBQVE7Ozs7OztJQURSLFVBQ1MsS0FBSztRQUNiLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVM7UUFDL0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDekIsQ0FBQzs7OztJQUVELG9DQUFROzs7SUFBUjtRQUFBLGlCQTBEQztRQXpEQSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7OztZQUVULFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7Ozs7UUFDeEMsVUFBQyxHQUFHO1lBQ0gsT0FBQSxLQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQzdCLEtBQUksQ0FBQyxlQUFlLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFEckMsQ0FDcUMsRUFDdEM7UUFDRCxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztTQUM5QjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDaEIsSUFBSSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFDLEtBQUssSUFBSyxPQUFBLEtBQUssWUFBWSxhQUFhLEVBQTlCLENBQThCLEVBQUMsQ0FBQzthQUN2RCxTQUFTOzs7UUFBQzs7Z0JBQ0osVUFBVSxHQUFHLEtBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUU7WUFDckQsSUFBSSxVQUFVLEVBQUU7O29CQUNULGVBQWUsR0FDcEIsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztnQkFDM0MsYUFBYTtnQkFDYixlQUFlLENBQUMsT0FBTzs7OztnQkFBQyxVQUFDLE9BQU87O3dCQUN6QixXQUFXLEdBQUcsbUJBQUEsT0FBTyxFQUFlO29CQUMxQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQ3BDLENBQUMsRUFBQyxDQUFDOztvQkFDRyxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLOzs7b0JBQy9CLGtCQUFrQixHQUN2QixVQUFVLENBQUMsTUFBTSxDQUFDLGtCQUFrQjs7O29CQUMvQixZQUFZLEdBQ2pCLEtBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVOztvQkFDbEMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ2hDLGNBQWMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQ2hEOztvQkFDRyxLQUFLLEdBQ1IsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztvQkFDdEIsY0FBYyxDQUFDLEtBQUs7b0JBQ3BCLGNBQWMsQ0FBQyxRQUFRO29CQUN2QixjQUFjLENBQUMsSUFBSTs7b0JBRWhCLFFBQVEsR0FBRyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSztnQkFDakQsSUFBSSxZQUFZLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtvQkFDeEMsSUFDQyxLQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUM5QixLQUFJLENBQUMsZUFBZSxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQ3JDLEVBQ0E7d0JBQ0QsT0FBTyxDQUFDLGVBQWU7cUJBQ3ZCO29CQUNELEtBQUksQ0FBQyxNQUFNLENBQ1YsS0FBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQ2YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUN0QyxLQUFLLEVBQ0wsUUFBUSxDQUNSLENBQUM7aUJBQ0Y7YUFDRDtRQUNGLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSCxDQUFDOzs7O0lBQ0QsMkNBQWU7OztJQUFmO1FBQUEsaUJBSUM7UUFIQSxVQUFVOzs7UUFBQztZQUNWLEtBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3pCLENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQztJQUNSLENBQUM7Ozs7SUFDRCx1Q0FBVzs7O0lBQVg7UUFDQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU87Ozs7UUFBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBakIsQ0FBaUIsRUFBQyxDQUFDO0lBQ3hELENBQUM7Ozs7O0lBRUQsNENBQWdCOzs7O0lBQWhCLFVBQWlCLEtBQU07UUFBdkIsaUJBNEJDO1FBM0JBLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFO1lBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUM5QjtRQUNHLElBQUEsd0JBQXlELEVBQXZELHNCQUFRLEVBQUUsd0JBQVMsRUFBRSwwQkFBa0M7O1lBQ3pELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNyQixDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FDL0Q7UUFDRCxJQUFJLEtBQUssRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FDL0IsS0FBSyxFQUNMLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUztnQkFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU87Z0JBQy9CLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFDdkIsRUFBRSxDQUNGLENBQUM7U0FDRjthQUFNO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7OztZQUFDLFVBQUMsR0FBRyxFQUFFLEdBQUc7Z0JBQzdCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsS0FBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FDM0MsR0FBRyxDQUFDLEtBQUssRUFDVCxLQUFLLEdBQUcsS0FBSSxDQUFDLFNBQVM7b0JBQ3JCLENBQUMsQ0FBQyxLQUFJLENBQUMsU0FBUyxHQUFHLEtBQUksQ0FBQyxPQUFPO29CQUMvQixDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUksQ0FBQyxPQUFPLEVBQ3ZCLEVBQUUsQ0FDRixDQUFDO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSDtJQUNGLENBQUM7Ozs7SUFFRCx3Q0FBWTs7O0lBQVo7O1lBQ08sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDOztZQUM5QyxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQzs7WUFDeEQsYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQzNDLDRCQUE0QixDQUM1Qjs7WUFDRyxRQUFROztZQUNSLFNBQVM7O1lBQ1QsVUFBVTtRQUNkLElBQUksSUFBSSxJQUFJLFNBQVMsRUFBRTs7O2dCQUVoQixRQUFRLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFOztnQkFDdkMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRTs7Z0JBQzFDLGNBQWMsR0FDbkIsYUFBYSxJQUFJLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRTtZQUN2RCxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUMxQixTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN6QixVQUFVLEdBQUcsQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztTQUM3RDtRQUNELE9BQU87WUFDTixRQUFRLFVBQUE7WUFDUixTQUFTLFdBQUE7WUFDVCxVQUFVLFlBQUE7U0FDVixDQUFDO0lBQ0gsQ0FBQzs7OztJQUNELG1DQUFPOzs7SUFBUDs7WUFDSyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTs7Z0JBQ3hCLEtBQUssR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUNyRCxJQUFJLEtBQUssRUFBRTtnQkFDVixjQUFjLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDOztvQkFDckMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDeEI7U0FDRDtJQUNGLENBQUM7Ozs7OztJQUVELG9DQUFROzs7OztJQUFSLFVBQVMsR0FBRyxFQUFFLFVBQVc7O1lBQ2xCLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTs7OztRQUFDLFVBQUMsR0FBRyxJQUFLLE9BQUEsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFuQixDQUFtQixFQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxHQUFHLEVBQUU7O2dCQUN0QyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0M7U0FDekU7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7Ozs7O0lBRUQscUNBQVM7Ozs7O0lBQVQsVUFBVSxHQUFHLEVBQUUsR0FBRztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLGNBQWMsQ0FBQyxPQUFPLENBQ3JCLGdCQUFnQixFQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FDbEMsQ0FBQztTQUNGO1FBQ0QsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQ2hCLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvQztRQUNELElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRTtZQUNwQixjQUFjLENBQUMsT0FBTyxDQUNyQixhQUFhLEVBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQy9CLENBQUM7U0FDRjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7Ozs7O0lBRUQsa0NBQU07Ozs7O0lBQU4sVUFBTyxHQUFHLEVBQUUsS0FBSztRQUNoQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWM7U0FDaEM7O1lBQ0ssZ0JBQWdCLEdBQ3JCLGNBQWMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3JDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDOztZQUM5QixjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDaEMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUN4Qzs7WUFDSyxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7O1lBQzNDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1FBRWhELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2pCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsS0FBSyxFQUFFLEtBQUssSUFBSSxTQUFTO1lBQ3pCLFlBQVksRUFBRSxLQUFLO1lBQ25CLGNBQWMsRUFBRSxjQUFjO1lBQzlCLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLE9BQU8sRUFBRSxPQUFPO1NBQ2hCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7Ozs7OztJQUVNLGtDQUFNOzs7Ozs7O0lBQWIsVUFBYyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRO1FBQTNDLGlCQTJCQzs7WUExQk0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUzs7OztRQUN4QyxVQUFDLEdBQUcsSUFBSyxPQUFBLEtBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQTNELENBQTJELEVBQ3BFO1FBQ0QsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUU7O2dCQUNoQixXQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTOzs7O1lBQy9DLFVBQUMsR0FBRyxJQUFLLE9BQUEsR0FBRyxLQUFLLE9BQU8sRUFBZixDQUFlLEVBQ3hCO1lBQ0QsSUFBSSxXQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNOzs7O2dCQUNqQyxVQUFDLEdBQUcsSUFBSyxPQUFBLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSSxDQUFDLGVBQWUsQ0FBQyxXQUFTLENBQUMsQ0FBQyxFQUFsRCxDQUFrRCxFQUMzRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM3QjtZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO2FBQU07O2dCQUNBLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUc7WUFDakQsSUFBSSxZQUFZLEtBQUssR0FBRyxJQUFJLFFBQVEsRUFBRTtnQkFDckMsa0NBQWtDO2dCQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDeEI7aUJBQU07Z0JBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ3JEO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN4QjtJQUNGLENBQUM7Ozs7SUFFRCxzQ0FBVTs7O0lBQVY7UUFBQSxpQkFrQkM7O1lBakJNLFdBQVcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQztRQUMxRCxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7UUFDRCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVOzs7UUFBQztZQUN2QixXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3BELEtBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUMsR0FBRSxJQUFJLENBQUMsQ0FBQzs7OztZQUdILFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUc7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsNEVBQTRFO1FBQzVFLDBEQUEwRDtRQUMxRCxNQUFNO0lBQ1AsQ0FBQzs7Ozs7SUFFRCxzQ0FBVTs7OztJQUFWLFVBQVcsR0FBRztRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7Ozs7OztJQUVPLDJDQUFlOzs7OztJQUF2QixVQUF3QixHQUFHO1FBQzFCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDOztnQkF0U0QsU0FBUyxTQUFDO29CQUNWLFFBQVEsRUFBRSxjQUFjO29CQUN4QixrNERBQXFDOztpQkFFckM7Ozs7Z0JBZkEsTUFBTTtnQkFNRSxxQkFBcUI7Z0JBUjdCLGNBQWM7Z0JBVmQsaUJBQWlCO2dCQW1CVCxhQUFhO2dCQUZiLGtCQUFrQjs7O2tDQXVCekIsS0FBSztvQ0FDTCxLQUFLOytCQUNMLE1BQU07MkJBYU4sWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7SUF1UTFDLHdCQUFDO0NBQUEsQUF2U0QsSUF1U0M7U0FsU1ksaUJBQWlCOzs7SUFXN0Isc0NBQTRCOztJQUM1Qiw0Q0FBd0M7O0lBQ3hDLDhDQUEwQzs7SUFDMUMseUNBQTRDOzs7OztJQUU1QywwQ0FBMkM7O0lBQzNDLHNDQUFnQjs7SUFDaEIsdUNBQWdCOztJQUNoQixzQ0FBZTs7SUFDZixvQ0FBUTs7SUFDUixnQ0FBa0I7O0lBQ2xCLG1DQUFZOztJQUNaLG9DQUFhOztJQUNiLHdDQUF3Qjs7SUFDeEIsb0NBQXFCOztJQUNyQix3Q0FBd0M7O0lBMk94QyxrQ0FBYTs7SUFuUVosbUNBQXFCOztJQUNyQiwrQkFBZ0M7O0lBQ2hDLDJDQUFxQzs7Ozs7SUFDckMsZ0NBQThCOzs7OztJQUM5QixtQ0FBNkI7Ozs7O0lBQzdCLCtDQUE4QyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG5cdEFmdGVyVmlld0luaXQsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRIb3N0TGlzdGVuZXIsXHJcblx0SW5wdXQsXHJcblx0T25EZXN0cm95LFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuXHRBY3RpdmF0ZWRSb3V0ZSxcclxuXHROYXZpZ2F0aW9uRW5kLFxyXG5cdFJvdXRlcixcclxuXHRSb3V0ZXJPdXRsZXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgUm91dGVSZXVzZVN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBDb21tb25GdW5jdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9jb21tb24tZnVuY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcmF3ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZHJhd2VyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgS2VlcEFsaXZlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2tlZXAtYWxpdmUuc2VydmljZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiBcInJzLW11bHRpLXRhYlwiLFxyXG5cdHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuXHRzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuXHRcdHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG5cdFx0cHVibGljIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuXHRcdHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRcdHByaXZhdGUgZHJhd2VyOiBEcmF3ZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByb3V0ZVJldXNlU3RyYXRlZ3k6IFJvdXRlUmV1c2VTdHJhdGVneVxyXG5cdCkge1xyXG5cdFx0dGhpcy5rZWVwQWxpdmUgPSB0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSBhcyBLZWVwQWxpdmVTZXJ2aWNlO1xyXG5cdH1cclxuXHRrZWVwQWxpdmU6IEtlZXBBbGl2ZVNlcnZpY2U7XHJcblx0QElucHV0KCkgc2luZ2xlUmV1c2VVcmxzOiBzdHJpbmdbXSA9IFtdOyAvL+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==
|
|
550
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbXVsdGktdGFiL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc3RDtJQU1FLDJCQUNTLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFLdkMsb0JBQWUsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM1QyxzQkFBaUIsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM3QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQzNDLGNBQVMsR0FBRyxH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MkM7O0lBQzNDLHNDQUFnQjs7SUFDaEIsdUNBQWdCOztJQUNoQixzQ0FBZTs7SUFDZixvQ0FBUTs7SUFDUixnQ0FBa0I7O0lBQ2xCLG1DQUFZOztJQUNaLG9DQUFhOztJQUNiLHdDQUF3Qjs7SUFDeEIsb0NBQXFCOztJQUNyQix3Q0FBd0M7O0lBc094QyxrQ0FBYTs7SUE5UFgsbUNBQXFCOztJQUNyQiwrQkFBZ0M7O0lBQ2hDLDJDQUFxQzs7Ozs7SUFDckMsZ0NBQThCOzs7OztJQUM5QixtQ0FBNkI7Ozs7O0lBQzdCLCtDQUE4QyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICBBY3RpdmF0ZWRSb3V0ZSxcclxuICBOYXZpZ2F0aW9uRW5kLFxyXG4gIFJvdXRlcixcclxuICBSb3V0ZXJPdXRsZXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgUm91dGVSZXVzZVN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBDb21tb25GdW5jdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9jb21tb24tZnVuY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcmF3ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZHJhd2VyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgS2VlcEFsaXZlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2tlZXAtYWxpdmUuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtbXVsdGktdGFiXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE11bHRpVGFiQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIGNmOiBDb21tb25GdW5jdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBkcmF3ZXI6IERyYXdlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlUmV1c2VTdHJhdGVneTogUm91dGVSZXVzZVN0cmF0ZWd5XHJcbiAgKSB7XHJcbiAgICB0aGlzLmtlZXBBbGl2ZSA9IHRoaXMucm91dGVSZXVzZVN0cmF0ZWd5IGFzIEtlZXBBbGl2ZVNlcnZpY2U7XHJcbiAgfVxyXG4gIGtlZXBBbGl2ZTogS2VlcEFsaXZlU2VydmljZTtcclxuICBASW5wdXQoKSBzaW5nbGVSZXVzZVVybHM6IHN0cmluZ1tdID0gW107IC8v5Y+q6IO95Y2V5Liq57yT5a2Y55qEdXJsXHJcbiAgQElucHV0KCkgbm9HZW5lcmF0ZVRhYlVybHM6IHN0cmluZ1tdID0gW107IC8v5LiN55Sf5oiQdGFi55qEdXJsXHJcbiAgQE91dHB1dCgpIG9uUmVmcmVzaFRhYiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIFRBQl9XSURUSCA9IDE2NDtcclxuICBHQVBfTk9STUFMID0gNTQ7XHJcbiAgR0FQX1NNQUxMID0gMzA7XHJcbiAgdGV4dEdhcDsgLy8g5paH5pys5LiO6L655qGG55qE5oC76Ze06LedXHJcbiAgZm9vOiBSb3V0ZXJPdXRsZXQ7XHJcbiAgY29tUmVmOiBhbnk7XHJcbiAgdGFiTGlzdCA9IFtdO1xyXG4gIHNlbGVjdGVkVGFiOiBudW1iZXIgPSAwO1xyXG4gIG1heFRhYnM6IG51bWJlciA9IDEwO1xyXG4gIHNjcmVlbldpZHRoOiBudW1iZXIgPSB3aW5kb3cuaW5uZXJXaWR0aDsgLy8g5Yid5aeL5YyW5bGP5bmV5a695bqmXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7IC8vIOabtOaWsOWxj+W5leWuveW6plxyXG4gICAgLy8gdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7IOWcqOacgOWklumdouWuueWZqOiwg+eUqFxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRUYWIoKTtcclxuICAgIC8vIOino+WGs+WIt+aWsOmhtemdouWQju+8jOmAieS4reeahCB0YWIg5Lii5aSx6Zeu6aKYXHJcbiAgICBjb25zdCBpc0V4aXN0SWR4ID0gdGhpcy50YWJMaXN0LmZpbmRJbmRleChcclxuICAgICAgKGVsZSkgPT5cclxuICAgICAgICB0aGlzLnVybFdpdGhvdXRRdWVyeShlbGUudXJsKSA9PT0gdGhpcy51cmxXaXRob3V0UXVlcnkodGhpcy5yb3V0ZXIudXJsKVxyXG4gICAgKTtcclxuICAgIGlmIChpc0V4aXN0SWR4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gaXNFeGlzdElkeDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hdmlnYXRpb24gPSB0aGlzLnJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpOyAvLyDojrflj5blvZPliY3lr7zoiKpcclxuICAgICAgICAgIGlmIChuYXZpZ2F0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZS1wb3B1cC1vcGVuXCIpO1xyXG4gICAgICAgICAgICAvLyDliKDpmaR0b29sdGlwc1xyXG4gICAgICAgICAgICB0b29sdGlwRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgICAgICBodG1sRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IG5hdmlnYXRpb24uZXh0cmFzLnN0YXRlOyAvLyDojrflj5bkvKDpgJLnmoQgc3RhdGVcclxuICAgICAgICAgICAgY29uc3Qgc2tpcExvY2F0aW9uQ2hhbmdlID0gbmF2aWdhdGlvbi5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlOyAvLyDojrflj5bmmK/lkKbot7Pov4cgbG9jYXRpb24gY2hhbmdlXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3V0ZSA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnJvb3QuZmlyc3RDaGlsZDtcclxuICAgICAgICAgICAgY29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKSB8fCBcInt9XCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgbGV0IHRpdGxlID1cclxuICAgICAgICAgICAgICAoc3RhdGUgJiYgc3RhdGUudGl0bGUpIHx8XHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkluZm8udGl0bGUgfHxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5mby5zdWJUaXRsZSB8fFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25JbmZvLm5hbWU7XHJcblxyXG4gICAgICAgICAgICBsZXQgbm9SZXVzZWQgPSAoc3RhdGUgJiYgc3RhdGUubm9SZXVzZWQpIHx8IGZhbHNlOyAvLyDlvZPliY10YWLkuI3lpI3nlKjvvIzmlrDlvIDkuIDkuKp0YWIs5b2T5pyJ5bey57uP5a2Y5Zyo55qEdGFi5pe25YCZ5Lmf5piv5paw5byAXHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50Um91dGUgJiYgIXNraXBMb2NhdGlvbkNoYW5nZSkge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHRoaXMubm9HZW5lcmF0ZVRhYlVybHMuaW5jbHVkZXMoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRoaXMucm91dGVyLnVybClcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjsgLy8g5o6S6Zmk5LiN55Sf5oiQdGFi55qEdXJsXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2V0VGFiKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgY3VycmVudFJvdXRlLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGgsXHJcbiAgICAgICAgICAgICAgICB0aXRsZSxcclxuICAgICAgICAgICAgICAgIG5vUmV1c2VkXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgICB9LCA1MCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy50YWJMaXN0ID0gW107IC8vIOa4heepuiB0YWIg5YiX6KGoXHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gMDsgLy8g6YeN572u6YCJ5Lit55qEIHRhYiDntKLlvJVcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHNldEVsbGlwc2lzVGl0bGUodGl0bGU/KSB7XHJcbiAgICB0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9OT1JNQUw7XHJcbiAgICBpZiAodGhpcy5zY3JlZW5XaWR0aCA8PSAxMTAwKSB7XHJcbiAgICAgIHRoaXMudGV4dEdhcCA9IHRoaXMuR0FQX1NNQUxMO1xyXG4gICAgfVxyXG4gICAgbGV0IHsgYWxsV2lkdGgsIGxlZnRXaWR0aCwgcmlnaHRXaWR0aCB9ID0gdGhpcy5jYWxjVGFiV2lkdGgoKTtcclxuICAgIGxldCB3aWR0aCA9IE1hdGguZmxvb3IoXHJcbiAgICAgIChhbGxXaWR0aCAtIHJpZ2h0V2lkdGgpIC8gKHRoaXMudGFiTGlzdCAmJiB0aGlzLnRhYkxpc3QubGVuZ3RoKVxyXG4gICAgKTtcclxuICAgIGlmICh0aXRsZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jZi5zZXRNaWRkbGVFbGxpcHNpcyhcclxuICAgICAgICB0aXRsZSxcclxuICAgICAgICB3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcbiAgICAgICAgICA/IHRoaXMuVEFCX1dJRFRIIC0gdGhpcy50ZXh0R2FwXHJcbiAgICAgICAgICA6IHdpZHRoIC0gdGhpcy50ZXh0R2FwLFxyXG4gICAgICAgIDEyXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYkxpc3QuZm9yRWFjaCgoZWxlLCBpZHgpID0+IHtcclxuICAgICAgICBlbGUuZGlzcGxheVRpdGxlID0gdGhpcy5jZi5zZXRNaWRkbGVFbGxpcHNpcyhcclxuICAgICAgICAgIGVsZS50aXRsZSxcclxuICAgICAgICAgIHdpZHRoID4gdGhpcy5UQUJfV0lEVEhcclxuICAgICAgICAgICAgPyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG4gICAgICAgICAgICA6IHdpZHRoIC0gdGhpcy50ZXh0R2FwLFxyXG4gICAgICAgICAgMTJcclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2FsY1RhYldpZHRoKCkge1xyXG4gICAgY29uc3Qgd3JhcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiXCIpO1xyXG4gICAgY29uc3QgdWxFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWIgPiB1bFwiKTtcclxuICAgIGNvbnN0IHJlZnJlc2hUYWJEaXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiAucmVmcmVzaC10YWJcIik7XHJcbiAgICBsZXQgYWxsV2lkdGg7XHJcbiAgICBsZXQgbGVmdFdpZHRoO1xyXG4gICAgbGV0IHJpZ2h0V2lkdGg7XHJcbiAgICBpZiAod3JhcCAmJiB1bEVsZW1lbnQpIHtcclxuICAgICAgLy8g6I635Y+W5YWD57Sg55qE5L2N572u5L+h5oGvXHJcbiAgICAgIGNvbnN0IHdyYXBSZWN0ID0gd3JhcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgY29uc3QgdWxSZWN0ID0gdWxFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCByZWZyZXNoVGFiUmVjdCA9XHJcbiAgICAgICAgcmVmcmVzaFRhYkRpdiAmJiByZWZyZXNoVGFiRGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBhbGxXaWR0aCA9IHdyYXBSZWN0LndpZHRoO1xyXG4gICAgICBsZWZ0V2lkdGggPSB1bFJlY3Qud2lkdGg7XHJcbiAgICAgIHJpZ2h0V2lkdGggPSAocmVmcmVzaFRhYlJlY3QgJiYgcmVmcmVzaFRhYlJlY3Qud2lkdGgpIHx8IDEwMDtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFsbFdpZHRoLFxyXG4gICAgICBsZWZ0V2lkdGgsXHJcbiAgICAgIHJpZ2h0V2lkdGgsXHJcbiAgICB9O1xyXG4gIH1cclxuICBpbml0VGFiKCkge1xyXG4gICAgbGV0IFRhYkNhY2hlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiVGFiQ2FjaGVcIikpO1xyXG4gICAgdGhpcy50YWJMaXN0ID0gVGFiQ2FjaGUgfHwgW107XHJcbiAgICBpZiAodGhpcy50YWJMaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBjb25zdCB0aXRsZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJmaXJzdFRhYlRpdGxlXCIpO1xyXG4gICAgICBpZiAodGl0bGUpIHtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwiZmlyc3RUYWJUaXRsZVwiKTtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlVGFiKGlkeCwgbm9DaGFuZ2U/KSB7XHJcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYkxpc3RbaWR4XTtcclxuICAgIHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoKGVsZSkgPT4gZWxlLnVybCAhPT0gdGFiLnVybCk7XHJcbiAgICB0aGlzLmNsZWFyQ2FjaGUodGhpcy51cmxXaXRob3V0UXVlcnkodGFiLnVybCkpO1xyXG4gICAgaWYgKCFub0NoYW5nZSAmJiB0aGlzLnNlbGVjdGVkVGFiID09PSBpZHgpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0SWR4ID0gTWF0aC5tYXgoMCwgaWR4IC0gMSk7XHJcbiAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMudGFiTGlzdFt0YXJnZXRJZHhdLCB0YXJnZXRJZHgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlkeCA8IHRoaXMuc2VsZWN0ZWRUYWIpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMuc2VsZWN0ZWRUYWIgLSAxOyAvLyDlpoLmnpzlhbPpl63nmoR0YWLlnKjlvZPliY3pgInkuK3nmoR0YWLkuYvliY3vvIzpgInkuK10YWLntKLlvJXlh48xXHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlVGFiKHRhYiwgaWR4KSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhYi51cmwpO1xyXG4gICAgaWYgKHRhYi5uYXZpZ2F0aW9uSW5mbykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgIFwibmF2aWdhdGlvbkluZm9cIixcclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0YWIubmF2aWdhdGlvbkluZm8pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGFiLmZyb21JbmZvKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJmcm9tSW5mb1wiLCBKU09OLnN0cmluZ2lmeSh0YWIuZnJvbUluZm8pKTtcclxuICAgIH1cclxuICAgIGlmICh0YWIucGVybWlzc2lvbnMpIHtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcInBlcm1pc3Npb25zXCIsIEpTT04uc3RyaW5naWZ5KHRhYi5wZXJtaXNzaW9ucykpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IGlkeDtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgYWRkVGFiKHVybCwgdGl0bGUpIHtcclxuICAgIGlmICh0aGlzLnRhYkxpc3QubGVuZ3RoID49IHRoaXMubWF4VGFicykge1xyXG4gICAgICB0aGlzLmNsb3NlVGFiKDEpOyAvLyDliKDpmaTnrKzkuozkuKrvvIznrKzkuIDkuKrlm7rlrppcclxuICAgIH1cclxuICAgIGNvbnN0IGxvY2FsUGVybWlzc2lvbnMgPVxyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwicGVybWlzc2lvbnNcIikgfHxcclxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwZXJtaXNzaW9uc1wiKTtcclxuICAgIGNvbnN0IG5hdmlnYXRpb25JbmZvID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwibmF2aWdhdGlvbkluZm9cIikpO1xyXG4gICAgY29uc3QgZnJvbUluZm8gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJmcm9tSW5mb1wiKSk7XHJcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IEpTT04ucGFyc2UobG9jYWxQZXJtaXNzaW9ucyk7XHJcblxyXG4gICAgdGhpcy50YWJMaXN0LnB1c2goe1xyXG4gICAgICB1cmw6IHVybCxcclxuICAgICAgdGl0bGU6IHRpdGxlIHx8IFwiZGVmYXVsdFwiLFxyXG4gICAgICBkaXNwbGF5VGl0bGU6IHRpdGxlLFxyXG4gICAgICBuYXZpZ2F0aW9uSW5mbzogbmF2aWdhdGlvbkluZm8sXHJcbiAgICAgIHBlcm1pc3Npb25zOiBwZXJtaXNzaW9ucyxcclxuICAgICAgZnJvbUluZm86IGZyb21JbmZvLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy50YWJMaXN0Lmxlbmd0aCAtIDE7XHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRhYih1cmwsIHB1cmVVcmwsIHRpdGxlLCBub1JldXNlZCkge1xyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChlbGUpID0+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));
|
|
@@ -2803,7 +2807,7 @@ class MultiTabComponent {
|
|
|
2803
2807
|
/** @type {?} */
|
|
2804
2808
|
const navigationInfo = JSON.parse(sessionStorage.getItem("navigationInfo"));
|
|
2805
2809
|
/** @type {?} */
|
|
2806
|
-
const
|
|
2810
|
+
const fromInfo = JSON.parse(sessionStorage.getItem("fromInfo"));
|
|
2807
2811
|
/** @type {?} */
|
|
2808
2812
|
const permissions = JSON.parse(localPermissions);
|
|
2809
2813
|
this.tabList.push({
|
|
@@ -2812,7 +2816,7 @@ class MultiTabComponent {
|
|
|
2812
2816
|
displayTitle: title,
|
|
2813
2817
|
navigationInfo: navigationInfo,
|
|
2814
2818
|
permissions: permissions,
|
|
2815
|
-
|
|
2819
|
+
fromInfo: fromInfo,
|
|
2816
2820
|
});
|
|
2817
2821
|
this.selectedTab = this.tabList.length - 1;
|
|
2818
2822
|
this.setEllipsisTitle();
|
|
@@ -2857,7 +2861,12 @@ class MultiTabComponent {
|
|
|
2857
2861
|
if (targetTabUrl !== url || noReused) {
|
|
2858
2862
|
// 当缓存一致时候,但是url不一致,重新按照新的url生成tab
|
|
2859
2863
|
this.closeTab(isExistIdx, true);
|
|
2860
|
-
|
|
2864
|
+
setTimeout((/**
|
|
2865
|
+
* @return {?}
|
|
2866
|
+
*/
|
|
2867
|
+
() => {
|
|
2868
|
+
this.addTab(url, title);
|
|
2869
|
+
}), 30);
|
|
2861
2870
|
}
|
|
2862
2871
|
else {
|
|
2863
2872
|
this.changeTab(this.tabList[isExistIdx], isExistIdx);
|
|
@@ -2900,6 +2909,15 @@ class MultiTabComponent {
|
|
|
2900
2909
|
this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法
|
|
2901
2910
|
this.drawer.deleteCache(url);
|
|
2902
2911
|
}
|
|
2912
|
+
/**
|
|
2913
|
+
* @return {?}
|
|
2914
|
+
*/
|
|
2915
|
+
cleanAllCache() {
|
|
2916
|
+
sessionStorage.removeItem("TabCache"); // 清除缓存
|
|
2917
|
+
this.tabList = []; // 清空 tab 列表
|
|
2918
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
2919
|
+
this.keepAlive.clearAllCache(); // 调用自定义策略的清除缓存方法
|
|
2920
|
+
}
|
|
2903
2921
|
/**
|
|
2904
2922
|
* @private
|
|
2905
2923
|
* @param {?} url
|
|
@@ -20217,15 +20235,28 @@ if (false) {
|
|
|
20217
20235
|
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
20218
20236
|
*/
|
|
20219
20237
|
class MainContainerComponent {
|
|
20220
|
-
//只能单个缓存的url
|
|
20221
20238
|
/**
|
|
20222
20239
|
* @param {?} globalDrawer
|
|
20240
|
+
* @param {?} elementRef
|
|
20223
20241
|
*/
|
|
20224
|
-
constructor(globalDrawer) {
|
|
20242
|
+
constructor(globalDrawer, elementRef) {
|
|
20225
20243
|
this.globalDrawer = globalDrawer;
|
|
20244
|
+
this.elementRef = elementRef;
|
|
20226
20245
|
this.isCollapsed = false; // 接收输入属性
|
|
20227
20246
|
// 接收输入属性
|
|
20228
20247
|
this.singleReuseUrls = []; //只能单个缓存的url
|
|
20248
|
+
//只能单个缓存的url
|
|
20249
|
+
this.onWidthChange = new EventEmitter();
|
|
20250
|
+
this.debouncedHandleResize = debounce((/**
|
|
20251
|
+
* @param {?} width
|
|
20252
|
+
* @return {?}
|
|
20253
|
+
*/
|
|
20254
|
+
(width) => {
|
|
20255
|
+
// console.log("Debounced width change:", width);
|
|
20256
|
+
// 在这里处理防抖后的宽度变化逻辑
|
|
20257
|
+
this.multiTabRef && this.multiTabRef.setEllipsisTitle();
|
|
20258
|
+
this.onWidthChange.emit(width);
|
|
20259
|
+
}), 300);
|
|
20229
20260
|
}
|
|
20230
20261
|
/**
|
|
20231
20262
|
* @return {?}
|
|
@@ -20253,6 +20284,29 @@ class MainContainerComponent {
|
|
|
20253
20284
|
*/
|
|
20254
20285
|
ngAfterViewInit() {
|
|
20255
20286
|
this.globalDrawer.setDrawer(this.drawer); // 设置抽屉组件
|
|
20287
|
+
// 设置抽屉组件
|
|
20288
|
+
/** @type {?} */
|
|
20289
|
+
const rightAside = this.elementRef.nativeElement.querySelector(".right-aside");
|
|
20290
|
+
this.resizeObserver = new ResizeObserver((/**
|
|
20291
|
+
* @param {?} entries
|
|
20292
|
+
* @return {?}
|
|
20293
|
+
*/
|
|
20294
|
+
(entries) => {
|
|
20295
|
+
for (const entry of entries) {
|
|
20296
|
+
/** @type {?} */
|
|
20297
|
+
const width = entry.contentRect.width;
|
|
20298
|
+
this.debouncedHandleResize(width);
|
|
20299
|
+
}
|
|
20300
|
+
}));
|
|
20301
|
+
this.resizeObserver.observe(rightAside);
|
|
20302
|
+
}
|
|
20303
|
+
/**
|
|
20304
|
+
* @return {?}
|
|
20305
|
+
*/
|
|
20306
|
+
ngOnDestroy() {
|
|
20307
|
+
if (this.resizeObserver) {
|
|
20308
|
+
this.resizeObserver.disconnect();
|
|
20309
|
+
}
|
|
20256
20310
|
}
|
|
20257
20311
|
/**
|
|
20258
20312
|
* @return {?}
|
|
@@ -20274,29 +20328,51 @@ MainContainerComponent.decorators = [
|
|
|
20274
20328
|
];
|
|
20275
20329
|
/** @nocollapse */
|
|
20276
20330
|
MainContainerComponent.ctorParameters = () => [
|
|
20277
|
-
{ type: DrawerService }
|
|
20331
|
+
{ type: DrawerService },
|
|
20332
|
+
{ type: ElementRef }
|
|
20278
20333
|
];
|
|
20279
20334
|
MainContainerComponent.propDecorators = {
|
|
20280
20335
|
headerRef: [{ type: ContentChild, args: [RSHeaderComponent, { static: true },] }],
|
|
20336
|
+
multiTabRef: [{ type: ContentChild, args: [MultiTabComponent, { static: true },] }],
|
|
20281
20337
|
drawer: [{ type: ViewChild, args: ["drawer", { static: false },] }],
|
|
20282
20338
|
isCollapsed: [{ type: Input }],
|
|
20283
20339
|
singleReuseUrls: [{ type: Input }],
|
|
20340
|
+
onWidthChange: [{ type: Output }],
|
|
20284
20341
|
onResize: [{ type: HostListener, args: ["window:resize", ["$event"],] }]
|
|
20285
20342
|
};
|
|
20286
20343
|
if (false) {
|
|
20287
20344
|
/** @type {?} */
|
|
20288
20345
|
MainContainerComponent.prototype.headerRef;
|
|
20289
20346
|
/** @type {?} */
|
|
20347
|
+
MainContainerComponent.prototype.multiTabRef;
|
|
20348
|
+
/** @type {?} */
|
|
20290
20349
|
MainContainerComponent.prototype.drawer;
|
|
20291
20350
|
/** @type {?} */
|
|
20292
20351
|
MainContainerComponent.prototype.isCollapsed;
|
|
20293
20352
|
/** @type {?} */
|
|
20294
20353
|
MainContainerComponent.prototype.singleReuseUrls;
|
|
20354
|
+
/** @type {?} */
|
|
20355
|
+
MainContainerComponent.prototype.onWidthChange;
|
|
20356
|
+
/**
|
|
20357
|
+
* @type {?}
|
|
20358
|
+
* @private
|
|
20359
|
+
*/
|
|
20360
|
+
MainContainerComponent.prototype.resizeObserver;
|
|
20361
|
+
/**
|
|
20362
|
+
* @type {?}
|
|
20363
|
+
* @private
|
|
20364
|
+
*/
|
|
20365
|
+
MainContainerComponent.prototype.debouncedHandleResize;
|
|
20295
20366
|
/**
|
|
20296
20367
|
* @type {?}
|
|
20297
20368
|
* @private
|
|
20298
20369
|
*/
|
|
20299
20370
|
MainContainerComponent.prototype.globalDrawer;
|
|
20371
|
+
/**
|
|
20372
|
+
* @type {?}
|
|
20373
|
+
* @private
|
|
20374
|
+
*/
|
|
20375
|
+
MainContainerComponent.prototype.elementRef;
|
|
20300
20376
|
}
|
|
20301
20377
|
|
|
20302
20378
|
/**
|