raise-common-lib 0.0.129 → 0.0.130
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 +68 -25
- package/bundles/raise-common-lib.umd.js.map +1 -1
- package/bundles/raise-common-lib.umd.min.js +1 -1
- package/bundles/raise-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/layout/multi-tab/index.component.js +64 -23
- package/esm2015/lib/layout/toolbar/index.component.js +2 -2
- package/esm5/lib/layout/multi-tab/index.component.js +68 -25
- package/esm5/lib/layout/toolbar/index.component.js +2 -2
- package/fesm2015/raise-common-lib.js +64 -23
- package/fesm2015/raise-common-lib.js.map +1 -1
- package/fesm5/raise-common-lib.js +68 -25
- package/fesm5/raise-common-lib.js.map +1 -1
- package/lib/layout/multi-tab/index.component.d.ts +2 -2
- package/package.json +1 -1
- package/raise-common-lib.metadata.json +1 -1
|
@@ -57,16 +57,6 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
57
57
|
*/
|
|
58
58
|
function () {
|
|
59
59
|
var _this = this;
|
|
60
|
-
this.subscriptions.push(this.cf.closeTab$.subscribe((/**
|
|
61
|
-
* @param {?} idx
|
|
62
|
-
* @return {?}
|
|
63
|
-
*/
|
|
64
|
-
function (idx) {
|
|
65
|
-
if (idx === undefined) {
|
|
66
|
-
idx = _this.selectedTab;
|
|
67
|
-
}
|
|
68
|
-
_this.closeTab(idx);
|
|
69
|
-
})));
|
|
70
60
|
this.initTab();
|
|
71
61
|
// 解决刷新页面后,选中的 tab 丢失问题
|
|
72
62
|
/** @type {?} */
|
|
@@ -75,7 +65,8 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
75
65
|
* @return {?}
|
|
76
66
|
*/
|
|
77
67
|
function (ele) {
|
|
78
|
-
return _this.urlWithoutQuery(ele.url) ===
|
|
68
|
+
return _this.urlWithoutQuery(ele.url) ===
|
|
69
|
+
_this.urlWithoutQuery(_this.router.url);
|
|
79
70
|
}));
|
|
80
71
|
if (isExistIdx !== -1) {
|
|
81
72
|
this.selectedTab = isExistIdx;
|
|
@@ -93,6 +84,18 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
93
84
|
/** @type {?} */
|
|
94
85
|
var navigation = _this.router.getCurrentNavigation();
|
|
95
86
|
if (navigation) {
|
|
87
|
+
/** @type {?} */
|
|
88
|
+
var tooltipElements = document.querySelectorAll(".e-popup-open");
|
|
89
|
+
// 删除tooltips
|
|
90
|
+
tooltipElements.forEach((/**
|
|
91
|
+
* @param {?} element
|
|
92
|
+
* @return {?}
|
|
93
|
+
*/
|
|
94
|
+
function (element) {
|
|
95
|
+
/** @type {?} */
|
|
96
|
+
var htmlElement = (/** @type {?} */ (element));
|
|
97
|
+
htmlElement.style.display = "none";
|
|
98
|
+
}));
|
|
96
99
|
/** @type {?} */
|
|
97
100
|
var state = navigation.extras.state;
|
|
98
101
|
// 获取传递的 state
|
|
@@ -106,12 +109,15 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
106
109
|
/** @type {?} */
|
|
107
110
|
var title = (state && state.title) ||
|
|
108
111
|
navigationInfo.title ||
|
|
109
|
-
navigationInfo.subTitle
|
|
112
|
+
navigationInfo.subTitle ||
|
|
113
|
+
navigationInfo.name;
|
|
114
|
+
/** @type {?} */
|
|
115
|
+
var noReused = (state && state.noReused) || false;
|
|
110
116
|
if (currentRoute && !skipLocationChange) {
|
|
111
117
|
if (_this.noGenerateTabUrls.includes(_this.urlWithoutQuery(_this.router.url))) {
|
|
112
118
|
return; // 排除不生成tab的url
|
|
113
119
|
}
|
|
114
|
-
_this.setTab(_this.router.url, currentRoute.snapshot.routeConfig.path, title);
|
|
120
|
+
_this.setTab(_this.router.url, currentRoute.snapshot.routeConfig.path, title, noReused);
|
|
115
121
|
}
|
|
116
122
|
}
|
|
117
123
|
})));
|
|
@@ -239,13 +245,15 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
239
245
|
};
|
|
240
246
|
/**
|
|
241
247
|
* @param {?} idx
|
|
248
|
+
* @param {?=} isExternal
|
|
242
249
|
* @return {?}
|
|
243
250
|
*/
|
|
244
251
|
MultiTabComponent.prototype.closeTab = /**
|
|
245
252
|
* @param {?} idx
|
|
253
|
+
* @param {?=} isExternal
|
|
246
254
|
* @return {?}
|
|
247
255
|
*/
|
|
248
|
-
function (idx) {
|
|
256
|
+
function (idx, isExternal) {
|
|
249
257
|
/** @type {?} */
|
|
250
258
|
var tab = this.tabList[idx];
|
|
251
259
|
this.tabList = this.tabList.filter((/**
|
|
@@ -254,11 +262,14 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
254
262
|
*/
|
|
255
263
|
function (ele) { return ele.url !== tab.url; }));
|
|
256
264
|
this.clearCache(this.urlWithoutQuery(tab.url));
|
|
257
|
-
if (this.selectedTab === idx) {
|
|
265
|
+
if (!isExternal && this.selectedTab === idx) {
|
|
258
266
|
/** @type {?} */
|
|
259
267
|
var targetIdx = Math.max(0, idx - 1);
|
|
260
268
|
this.changeTab(this.tabList[targetIdx], targetIdx);
|
|
261
269
|
}
|
|
270
|
+
if (idx < this.selectedTab) {
|
|
271
|
+
this.selectedTab = this.selectedTab - 1; // 如果关闭的tab在当前选中的tab之前,选中tab索引减1
|
|
272
|
+
}
|
|
262
273
|
this.setEllipsisTitle();
|
|
263
274
|
sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
|
|
264
275
|
this.ref.markForCheck();
|
|
@@ -275,6 +286,15 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
275
286
|
*/
|
|
276
287
|
function (tab, idx) {
|
|
277
288
|
this.router.navigateByUrl(tab.url);
|
|
289
|
+
if (tab.navigationInfo) {
|
|
290
|
+
sessionStorage.setItem("navigationInfo", JSON.stringify(tab.navigationInfo));
|
|
291
|
+
}
|
|
292
|
+
if (tab.fromUrl) {
|
|
293
|
+
sessionStorage.setItem("fromUrl", tab.fromUrl);
|
|
294
|
+
}
|
|
295
|
+
if (tab.permissions) {
|
|
296
|
+
sessionStorage.setItem("permissions", JSON.stringify(tab.permissions));
|
|
297
|
+
}
|
|
278
298
|
this.selectedTab = idx;
|
|
279
299
|
this.ref.markForCheck();
|
|
280
300
|
};
|
|
@@ -290,12 +310,24 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
290
310
|
*/
|
|
291
311
|
function (url, title) {
|
|
292
312
|
if (this.tabList.length >= this.maxTabs) {
|
|
293
|
-
this.closeTab(
|
|
313
|
+
this.closeTab(1); // 删除第二个,第一个固定
|
|
294
314
|
}
|
|
315
|
+
/** @type {?} */
|
|
316
|
+
var localPermissions = sessionStorage.getItem("permissions") ||
|
|
317
|
+
localStorage.getItem("permissions");
|
|
318
|
+
/** @type {?} */
|
|
319
|
+
var navigationInfo = JSON.parse(sessionStorage.getItem("navigationInfo"));
|
|
320
|
+
/** @type {?} */
|
|
321
|
+
var fromUrl = sessionStorage.getItem("fromUrl");
|
|
322
|
+
/** @type {?} */
|
|
323
|
+
var permissions = JSON.parse(localPermissions);
|
|
295
324
|
this.tabList.push({
|
|
296
325
|
url: url,
|
|
297
326
|
title: title || "default",
|
|
298
327
|
displayTitle: title,
|
|
328
|
+
navigationInfo: navigationInfo,
|
|
329
|
+
permissions: permissions,
|
|
330
|
+
fromUrl: fromUrl,
|
|
299
331
|
});
|
|
300
332
|
this.selectedTab = this.tabList.length - 1;
|
|
301
333
|
this.setEllipsisTitle();
|
|
@@ -304,17 +336,19 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
304
336
|
};
|
|
305
337
|
/**
|
|
306
338
|
* @param {?} url
|
|
307
|
-
* @param {
|
|
308
|
-
* @param {
|
|
339
|
+
* @param {?} pureUrl
|
|
340
|
+
* @param {?} title
|
|
341
|
+
* @param {?} noReused
|
|
309
342
|
* @return {?}
|
|
310
343
|
*/
|
|
311
344
|
MultiTabComponent.prototype.setTab = /**
|
|
312
345
|
* @param {?} url
|
|
313
|
-
* @param {
|
|
314
|
-
* @param {
|
|
346
|
+
* @param {?} pureUrl
|
|
347
|
+
* @param {?} title
|
|
348
|
+
* @param {?} noReused
|
|
315
349
|
* @return {?}
|
|
316
350
|
*/
|
|
317
|
-
function (url, pureUrl, title) {
|
|
351
|
+
function (url, pureUrl, title, noReused) {
|
|
318
352
|
var _this = this;
|
|
319
353
|
/** @type {?} */
|
|
320
354
|
var isExistIdx = this.tabList.findIndex((/**
|
|
@@ -341,7 +375,16 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
341
375
|
this.addTab(url, title);
|
|
342
376
|
}
|
|
343
377
|
else {
|
|
344
|
-
|
|
378
|
+
/** @type {?} */
|
|
379
|
+
var targetTabUrl = this.tabList[isExistIdx].url;
|
|
380
|
+
if (targetTabUrl !== url || noReused) {
|
|
381
|
+
// 当缓存一致时候,但是url不一致,重新按照新的url生成tab
|
|
382
|
+
this.closeTab(isExistIdx, true);
|
|
383
|
+
this.addTab(url, title);
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
this.changeTab(this.tabList[isExistIdx], isExistIdx);
|
|
387
|
+
}
|
|
345
388
|
this.ref.markForCheck();
|
|
346
389
|
}
|
|
347
390
|
};
|
|
@@ -404,8 +447,8 @@ var MultiTabComponent = /** @class */ (function () {
|
|
|
404
447
|
MultiTabComponent.decorators = [
|
|
405
448
|
{ type: Component, args: [{
|
|
406
449
|
selector: "rs-multi-tab",
|
|
407
|
-
template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n
|
|
408
|
-
styles: [".rs-multi-tab{width:100%;display:flex;justify-content:space-between;margin:0 auto;max-width:1886px}.rs-multi-tab.b-line{border-bottom:1px solid #e5eaef}.rs-multi-tab ul{display:flex;margin:0 8px;padding:0;overflow:hidden;height:100%}.rs-multi-tab ul li{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.rs-multi-tab ul li .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s}.rs-multi-tab ul li img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul li img:hover{background:#dce8f6}.rs-multi-tab ul li:not(:last-child){border-right:none}.rs-multi-tab ul li:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul li:last-child{border-top-right-radius:8px}.rs-multi-tab ul .isSelect{color:#1f3f5c;background:#fff}.rs-multi-tab ul .notSelect img{display:none}.rs-multi-tab ul .notSelect .img-block{display:inline-block;width:22px}.rs-multi-tab ul .notSelect:hover{color:#1f3f5c;background-color:rgba(31,123,255,.04)}.rs-multi-tab ul .notSelect:hover .img-block{display:none}.rs-multi-tab ul .notSelect:hover img{display:inline-block}.rs-multi-tab .refresh-tab{cursor:pointer;text-align:right;color:#6c7c90;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;padding-right:12px}.rs-multi-tab .refresh-tab img{vertical-align:middle;margin-right:4px}.refresh-tab-loading{-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.tooltip-content{padding:4px;color:#f8fafb;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px}@media (max-width:1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width:1100px){.rs-multi-tab ul li img{position:absolute;right:3px;background-color:#fff}.notSelect:hover img{position:absolute;right:3px;background-color:#eff5fb}.img-block{display:none!important}}@media (max-width:600px){.rs-multi-tab ul li{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0!important}}"]
|
|
450
|
+
template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n\t<ul>\r\n\t\t<ng-container *ngFor=\"let tab of tabList; let i = index\">\r\n\t\t\t<li\r\n\t\t\t\t[ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n\t\t\t\t(click)=\"changeTab(tab, i)\"\r\n\t\t\t>\r\n\t\t\t\t<ejs-tooltip\r\n\t\t\t\t\tid=\"notSelectTooltip\"\r\n\t\t\t\t\t[showTipPointer]=\"false\"\r\n\t\t\t\t\t[openDelay]=\"500\"\r\n\t\t\t\t\t*ngIf=\"tab.displayTitle !== tab.title; else originText\"\r\n\t\t\t\t\tstyle=\"height: 27px\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ng-template #content>\r\n\t\t\t\t\t\t<div class=\"tooltip-content\">\r\n\t\t\t\t\t\t\t{{ tab.title }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<span class=\"tabTitle\">{{ tab.displayTitle }}</span>\r\n\t\t\t\t</ejs-tooltip>\r\n\t\t\t\t<ng-template #originText>\r\n\t\t\t\t\t<span class=\"tabTitle\">\r\n\t\t\t\t\t\t{{ tab.displayTitle }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<span\r\n\t\t\t\t\tclass=\"img-block\"\r\n\t\t\t\t\t*ngIf=\"selectedTab !== i && i !== 0\"\r\n\t\t\t\t></span>\r\n\t\t\t\t<img\r\n\t\t\t\t\t*ngIf=\"i !== 0\"\r\n\t\t\t\t\tsrc=\"../../../assets/img/close-url.svg\"\r\n\t\t\t\t\t(click)=\"closeTab(i)\"\r\n\t\t\t\t/>\r\n\t\t\t</li>\r\n\t\t</ng-container>\r\n\t</ul>\r\n\t<div class=\"refresh-tab\" (click)=\"refreshTab()\" *ngIf=\"tabList.length > 0\">\r\n\t\t<ejs-tooltip\r\n\t\t\tid=\"notSelectTooltip\"\r\n\t\t\tcssClass=\"notSelectTooltip\"\r\n\t\t\t[showTipPointer]=\"false\"\r\n\t\t\t[openDelay]=\"500\"\r\n\t\t\tstyle=\"height: 27px\"\r\n\t\t>\r\n\t\t\t<ng-template #content>\r\n\t\t\t\t<div class=\"tooltip-content\">Refresh Current Tab</div>\r\n\t\t\t</ng-template>\r\n\t\t\t<img\r\n\t\t\t\tid=\"loadingIcon\"\r\n\t\t\t\talt\r\n\t\t\t\tclass=\"refresh-btn\"\r\n\t\t\t\tsrc=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n\t\t\t/>\r\n\t\t</ejs-tooltip>\r\n\t</div>\r\n</div>\r\n",
|
|
451
|
+
styles: [".rs-multi-tab{width:100%;display:flex;justify-content:space-between;margin:0 auto;max-width:1886px}.rs-multi-tab.b-line{border-bottom:1px solid #e5eaef}.rs-multi-tab ul{display:flex;margin:0 8px;padding:0;overflow:hidden;height:100%}.rs-multi-tab ul li{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.rs-multi-tab ul li .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s}.rs-multi-tab ul li img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul li img:hover{background:#dce8f6}.rs-multi-tab ul li:not(:last-child){border-right:none}.rs-multi-tab ul li:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul li:last-child{border-top-right-radius:8px}.rs-multi-tab ul .isSelect{color:#1f3f5c;background:#fff}.rs-multi-tab ul .notSelect img{display:none}.rs-multi-tab ul .notSelect .img-block{display:inline-block;width:22px}.rs-multi-tab ul .notSelect:hover{color:#1f3f5c;background-color:rgba(31,123,255,.04)}.rs-multi-tab ul .notSelect:hover .img-block{display:none}.rs-multi-tab ul .notSelect:hover img{display:inline-block}.rs-multi-tab .refresh-tab{cursor:pointer;text-align:right;color:#6c7c90;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;padding-right:12px}.rs-multi-tab .refresh-tab img{vertical-align:middle;margin-right:4px}.refresh-tab-loading{-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.notSelectTooltip{transform:translateX(-12px)}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.tooltip-content{padding:4px;color:#f8fafb;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px}@media (max-width:1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width:1100px){.rs-multi-tab ul li img{position:absolute;right:3px;background-color:#fff}.notSelect:hover img{position:absolute;right:3px;background-color:#eff5fb}.img-block{display:none!important}.isSelect:not(:first-child){padding-right:20px!important}}@media (max-width:600px){.rs-multi-tab ul li{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0!important}}"]
|
|
409
452
|
}] }
|
|
410
453
|
];
|
|
411
454
|
/** @nocollapse */
|
|
@@ -484,4 +527,4 @@ if (false) {
|
|
|
484
527
|
*/
|
|
485
528
|
MultiTabComponent.prototype.routeReuseStrategy;
|
|
486
529
|
}
|
|
487
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbXVsdGktdGFiL2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc3RDtJQU1FLDJCQUNTLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFLdkMsb0JBQWUsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM1QyxzQkFBaUIsR0FBYSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUM3QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQzNDLGNBQVMsR0FBRyxH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TTsyQkFhTixZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztJQTBOM0Msd0JBQUM7Q0FBQSxBQTFQRCxJQTBQQztTQXJQWSxpQkFBaUI7OztJQVc1QixzQ0FBNEI7O0lBQzVCLDRDQUF3Qzs7SUFDeEMsOENBQTBDOztJQUMxQyx5Q0FBNEM7Ozs7O0lBRTVDLDBDQUEyQzs7SUFDM0Msc0NBQWdCOztJQUNoQix1Q0FBZ0I7O0lBQ2hCLHNDQUFlOztJQUNmLG9DQUFROztJQUNSLGdDQUFrQjs7SUFDbEIsbUNBQVk7O0lBQ1osb0NBQWE7O0lBQ2Isd0NBQXdCOztJQUN4QixvQ0FBcUI7O0lBQ3JCLHdDQUF3Qzs7SUE4THhDLGtDQUFhOztJQXROWCxtQ0FBcUI7O0lBQ3JCLCtCQUFnQzs7SUFDaEMsMkNBQXFDOzs7OztJQUNyQyxnQ0FBOEI7Ozs7O0lBQzlCLG1DQUE2Qjs7Ozs7SUFDN0IsK0NBQThDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlck91dGxldCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyYXdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kcmF3ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBLZWVwQWxpdmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1tdWx0aS10YWJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRyYXdlcjogRHJhd2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVSZXVzZVN0cmF0ZWd5OiBSb3V0ZVJldXNlU3RyYXRlZ3lcclxuICApIHtcclxuICAgIHRoaXMua2VlcEFsaXZlID0gdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgYXMgS2VlcEFsaXZlU2VydmljZTtcclxuICB9XHJcbiAga2VlcEFsaXZlOiBLZWVwQWxpdmVTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVJldXNlVXJsczogc3RyaW5nW10gPSBbXTsgLy/lj6rog73ljZXkuKrnvJPlrZjnmoR1cmxcclxuICBASW5wdXQoKSBub0dlbmVyYXRlVGFiVXJsczogc3RyaW5nW10gPSBbXTsgLy/kuI3nlJ/miJB0YWLnmoR1cmxcclxuICBAT3V0cHV0KCkgb25SZWZyZXNoVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgVEFCX1dJRFRIID0gMTY0O1xyXG4gIEdBUF9OT1JNQUwgPSA1NDtcclxuICBHQVBfU01BTEwgPSAzMDtcclxuICB0ZXh0R2FwOyAvLyDmlofmnKzkuI7ovrnmoYbnmoTmgLvpl7Tot51cclxuICBmb286IFJvdXRlck91dGxldDtcclxuICBjb21SZWY6IGFueTtcclxuICB0YWJMaXN0ID0gW107XHJcbiAgc2VsZWN0ZWRUYWI6IG51bWJlciA9IDA7XHJcbiAgbWF4VGFiczogbnVtYmVyID0gMTA7XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDliJ3lp4vljJblsY/luZXlrr3luqZcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25SZXNpemUoZXZlbnQpIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsgLy8g5pu05paw5bGP5bmV5a695bqmXHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuY2YuY2xvc2VUYWIkLnN1YnNjcmliZSgoaWR4KSA9PiB7XHJcbiAgICAgICAgaWYgKGlkeCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpZHggPSB0aGlzLnNlbGVjdGVkVGFiO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNsb3NlVGFiKGlkeCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5pbml0VGFiKCk7XHJcbiAgICAvLyDop6PlhrPliLfmlrDpobXpnaLlkI7vvIzpgInkuK3nmoQgdGFiIOS4ouWksemXrumimFxyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChlbGUpID0+XHJcbiAgICAgICAgdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRoaXMucm91dGVyLnVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IGlzRXhpc3RJZHg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IG5hdmlnYXRpb24uZXh0cmFzLnN0YXRlOyAvLyDojrflj5bkvKDpgJLnmoQgc3RhdGVcclxuICAgICAgICAgICAgY29uc3Qgc2tpcExvY2F0aW9uQ2hhbmdlID0gbmF2aWdhdGlvbi5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlOyAvLyDojrflj5bmmK/lkKbot7Pov4cgbG9jYXRpb24gY2hhbmdlXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3V0ZSA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnJvb3QuZmlyc3RDaGlsZDtcclxuICAgICAgICAgICAgY29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKSB8fCBcInt9XCJcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgbGV0IHRpdGxlID1cclxuICAgICAgICAgICAgICAoc3RhdGUgJiYgc3RhdGUudGl0bGUpIHx8XHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkluZm8udGl0bGUgfHxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5mby5zdWJUaXRsZTtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRSb3V0ZSAmJiAhc2tpcExvY2F0aW9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub0dlbmVyYXRlVGFiVXJscy5pbmNsdWRlcyhcclxuICAgICAgICAgICAgICAgICAgdGhpcy51cmxXaXRob3V0UXVlcnkodGhpcy5yb3V0ZXIudXJsKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyDmjpLpmaTkuI3nlJ/miJB0YWLnmoR1cmxcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRUYWIoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci51cmwsXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50Um91dGUuc25hcHNob3Qucm91dGVDb25maWcucGF0aCxcclxuICAgICAgICAgICAgICAgIHRpdGxlXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgICB9LCA1MCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2V0RWxsaXBzaXNUaXRsZSh0aXRsZT8pIHtcclxuICAgIHRoaXMudGV4dEdhcCA9IHRoaXMuR0FQX05PUk1BTDtcclxuICAgIGlmICh0aGlzLnNjcmVlbldpZHRoIDw9IDExMDApIHtcclxuICAgICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfU01BTEw7XHJcbiAgICB9XHJcbiAgICBsZXQgeyBhbGxXaWR0aCwgbGVmdFdpZHRoLCByaWdodFdpZHRoIH0gPSB0aGlzLmNhbGNUYWJXaWR0aCgpO1xyXG4gICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihcclxuICAgICAgKGFsbFdpZHRoIC0gcmlnaHRXaWR0aCkgLyAodGhpcy50YWJMaXN0ICYmIHRoaXMudGFiTGlzdC5sZW5ndGgpXHJcbiAgICApO1xyXG4gICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKFxyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIHdpZHRoID4gdGhpcy5UQUJfV0lEVEhcclxuICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgIDogd2lkdGggLSB0aGlzLnRleHRHYXAsXHJcbiAgICAgICAgMTJcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFiTGlzdC5mb3JFYWNoKChlbGUsIGlkeCkgPT4ge1xyXG4gICAgICAgIGVsZS5kaXNwbGF5VGl0bGUgPSB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKFxyXG4gICAgICAgICAgZWxlLnRpdGxlLFxyXG4gICAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgICA/IHRoaXMuVEFCX1dJRFRIIC0gdGhpcy50ZXh0R2FwXHJcbiAgICAgICAgICAgIDogd2lkdGggLSB0aGlzLnRleHRHYXAsXHJcbiAgICAgICAgICAxMlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsY1RhYldpZHRoKCkge1xyXG4gICAgY29uc3Qgd3JhcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiXCIpO1xyXG4gICAgY29uc3QgdWxFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWIgPiB1bFwiKTtcclxuICAgIGNvbnN0IHJlZnJlc2hUYWJEaXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiAucmVmcmVzaC10YWJcIik7XHJcbiAgICBsZXQgYWxsV2lkdGg7XHJcbiAgICBsZXQgbGVmdFdpZHRoO1xyXG4gICAgbGV0IHJpZ2h0V2lkdGg7XHJcbiAgICBpZiAod3JhcCAmJiB1bEVsZW1lbnQpIHtcclxuICAgICAgLy8g6I635Y+W5YWD57Sg55qE5L2N572u5L+h5oGvXHJcbiAgICAgIGNvbnN0IHdyYXBSZWN0ID0gd3JhcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgY29uc3QgdWxSZWN0ID0gdWxFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCByZWZyZXNoVGFiUmVjdCA9XHJcbiAgICAgICAgcmVmcmVzaFRhYkRpdiAmJiByZWZyZXNoVGFiRGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBhbGxXaWR0aCA9IHdyYXBSZWN0LndpZHRoO1xyXG4gICAgICBsZWZ0V2lkdGggPSB1bFJlY3Qud2lkdGg7XHJcbiAgICAgIHJpZ2h0V2lkdGggPSAocmVmcmVzaFRhYlJlY3QgJiYgcmVmcmVzaFRhYlJlY3Qud2lkdGgpIHx8IDEwMDtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFsbFdpZHRoLFxyXG4gICAgICBsZWZ0V2lkdGgsXHJcbiAgICAgIHJpZ2h0V2lkdGgsXHJcbiAgICB9O1xyXG4gIH1cclxuICBpbml0VGFiKCkge1xyXG4gICAgbGV0IFRhYkNhY2hlID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiVGFiQ2FjaGVcIikpO1xyXG4gICAgdGhpcy50YWJMaXN0ID0gVGFiQ2FjaGUgfHwgW107XHJcbiAgICBpZiAodGhpcy50YWJMaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBjb25zdCB0aXRsZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJmaXJzdFRhYlRpdGxlXCIpO1xyXG4gICAgICBpZiAodGl0bGUpIHtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwiZmlyc3RUYWJUaXRsZVwiKTtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlVGFiKGlkeCkge1xyXG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJMaXN0W2lkeF07XHJcbiAgICB0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKChlbGUpID0+IGVsZS51cmwgIT09IHRhYi51cmwpO1xyXG4gICAgdGhpcy5jbGVhckNhY2hlKHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRhYi51cmwpKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSBpZHgpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0SWR4ID0gTWF0aC5tYXgoMCwgaWR4IC0gMSk7XHJcbiAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMudGFiTGlzdFt0YXJnZXRJZHhdLCB0YXJnZXRJZHgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiVGFiQ2FjaGVcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJMaXN0KSk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVRhYih0YWIsIGlkeCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0YWIudXJsKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBpZHg7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGFkZFRhYih1cmwsIHRpdGxlKSB7XHJcbiAgICBpZiAodGhpcy50YWJMaXN0Lmxlbmd0aCA+PSB0aGlzLm1heFRhYnMpIHtcclxuICAgICAgdGhpcy5jbG9zZVRhYigwKTsgLy8g5Yig6Zmk56ys5LiA5LiqXHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYkxpc3QucHVzaCh7XHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICB0aXRsZTogdGl0bGUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIGRpc3BsYXlUaXRsZTogdGl0bGUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLnRhYkxpc3QubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFiKHVybCwgcHVyZVVybD8sIHRpdGxlPykge1xyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChlbGUpID0+IHRoaXMudXJsV2l0aG91dFF1ZXJ5KGVsZS51cmwpID09PSB0aGlzLnVybFdpdGhvdXRRdWVyeSh1cmwpXHJcbiAgICApO1xyXG4gICAgaWYgKGlzRXhpc3RJZHggPT09IC0xKSB7XHJcbiAgICAgIGNvbnN0IHNpbmdsZUlkeCA9IHRoaXMuc2luZ2xlUmV1c2VVcmxzLmZpbmRJbmRleChcclxuICAgICAgICAoZWxlKSA9PiBlbGUgPT09IHB1cmVVcmxcclxuICAgICAgKTtcclxuICAgICAgaWYgKHNpbmdsZUlkeCAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgKGVsZSkgPT4gIWVsZS51cmwuaW5jbHVkZXModGhpcy5zaW5nbGVSZXVzZVVybHNbc2luZ2xlSWR4XSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodXJsKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IGlzRXhpc3RJZHg7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuICB0aW1lciA9IG51bGw7XHJcbiAgcmVmcmVzaFRhYigpIHtcclxuICAgIGNvbnN0IGxvYWRpbmdJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJsb2FkaW5nSWNvblwiKTtcclxuICAgIGxvYWRpbmdJY29uLmNsYXNzTGlzdC5hZGQoXCJyZWZyZXNoLXRhYi1sb2FkaW5nXCIpO1xyXG4gICAgaWYgKHRoaXMudGltZXIpIHtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcclxuICAgIH1cclxuICAgIC8vIOaooeaLn+WKoOi9vei/h+eoi++8jDHnp5LlkI7np7vpmaTliqjnlLtcclxuICAgIHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgbG9hZGluZ0ljb24uY2xhc3NMaXN0LnJlbW92ZShcInJlZnJlc2gtdGFiLWxvYWRpbmdcIik7XHJcbiAgICAgIHRoaXMudGltZXIgPSBudWxsO1xyXG4gICAgfSwgMTUwMCk7XHJcbiAgICAvLyB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHRoaXMudGFiTGlzdFt0aGlzLnNlbGVjdGVkVGFiXS51cmwpO1xyXG4gICAgLy8gdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcbiAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsOyAvLyDojrflj5blvZPliY0gVVJMXHJcbiAgICB0aGlzLm9uUmVmcmVzaFRhYi5lbWl0KGN1cnJlbnRVcmwpO1xyXG4gICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChcIi9cIiwgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoY3VycmVudFVybCk7IC8vIOmHjeaWsOWvvOiIquWIsOW9k+WJjSBVUkxcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDYWNoZSh1cmwpIHtcclxuICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodXJsKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcbiAgICB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cmxXaXRob3V0UXVlcnkodXJsKSB7XHJcbiAgICByZXR1cm4gdXJsLnNwbGl0KFwiP1wiKVswXTtcclxuICB9XHJcbn1cclxuIl19
|
|
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==
|
|
@@ -78,7 +78,7 @@ var RSToolbarComponent = /** @class */ (function () {
|
|
|
78
78
|
RSToolbarComponent.decorators = [
|
|
79
79
|
{ type: Component, args: [{
|
|
80
80
|
selector: "rs-toolbar",
|
|
81
|
-
template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n",
|
|
81
|
+
template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n",
|
|
82
82
|
styles: [":host{display:block;width:100%}.rs-toolbar-container{width:100%;display:flex;align-items:center}.rs-toolbar-container .temp-hidden{visibility:hidden;position:absolute}.rs-toolbar-container .action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:0 0}.rs-toolbar-container .action-toggle:hover{background:rgba(214,227,245,.2)}.rs-toolbar-container .action-toggle .mat-button-wrapper{max-height:24px;height:24px}.rs-toolbar-container .action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}"]
|
|
83
83
|
}] }
|
|
84
84
|
];
|
|
@@ -118,4 +118,4 @@ if (false) {
|
|
|
118
118
|
*/
|
|
119
119
|
RSToolbarComponent.prototype.ref;
|
|
120
120
|
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvdG9vbGJhci9pbmRleC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixLQUFLLEVBR0wsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3pDO0lBY0UsNEJBQW1CLE1BQWMsRUFBVSxHQUFzQjtRQUE5QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFSeEQsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFDOUIsb0JBQWUsR0FBMkIsRUFBRSxDQUFDO1FBWXRELG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUNyQyxrQkFBYSxHQUFvQixFQUFFLENBQUM7SUFOZ0MsQ0FBQzs7OztJQUNyRSw0Q0FBZTs7O0lBQWY7UUFDRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzs7O0lBS00sbURBQXNCOzs7SUFBN0I7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPOztZQUVyRCxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7O1lBQzFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxFQUFFOzs7WUFFdkUsVUFBVSxHQUFHLENBQUM7O1lBQ1osZUFBZSxHQUFHLEVBQUU7UUFFMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFFeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7O2dCQUNwQyxXQUFXLEdBQ2YsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUs7WUFDM0QsMkNBQTJDO1lBQzNDLElBQ0UsVUFBVTtnQkFDUixDQUFDLEdBQUcsNkJBQTZCO2dCQUNqQyxXQUFXO2dCQUNYLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkQsY0FBYyxFQUNkO2dCQUNBLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM1RCxVQUFVLElBQUksV0FBVyxDQUFDO2FBQzNCO2lCQUFNO2dCQUNMLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1NBQ0Y7UUFDRCxzREFBc0Q7UUFDdEQsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7OztJQUdELDJDQUFjOzs7SUFEZDtRQUVFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7O2dCQTdERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGc3Q0FBcUM7O2lCQUV0Qzs7OztnQkFQUSxNQUFNO2dCQVpiLGlCQUFpQjs7OzBCQXFCaEIsS0FBSztrQ0FDTCxLQUFLO21DQUVMLFNBQVMsU0FBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7aUNBRy9DLFlBQVksU0FBQyxhQUFhO2lDQThDMUIsWUFBWSxTQUFDLGVBQWU7O0lBSS9CLHlCQUFDO0NBQUEsQUE5REQsSUE4REM7U0F6RFksa0JBQWtCOzs7SUFDN0IscUNBQXVDOztJQUN2Qyw2Q0FBc0Q7O0lBRXRELDhDQUM4Qjs7SUFFOUIsNENBQW9FOztJQU9wRSw0Q0FBcUM7O0lBQ3JDLDJDQUFvQzs7SUFOeEIsb0NBQXFCOzs7OztJQUFFLGlDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgVG9vbGJhckJ1dHRvbiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtdG9vbGJhclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSU1Rvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBidXR0b25zOiBUb29sYmFyQnV0dG9uW10gPSBbXTtcclxuICBASW5wdXQoKSBkaXNhYmxlZE9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuXHJcbiAgQFZpZXdDaGlsZChcInRvb2xiYXJDb250YWluZXJcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgdG9vbGJhckNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oXCJ0b29sYmFySXRlbVwiKSBidXR0b25FbGVtZW50cyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVCdXR0b25WaXNpYmlsaXR5KCk7XHJcbiAgfVxyXG5cclxuICB2aXNpYmxlQnV0dG9uczogVG9vbGJhckJ1dHRvbltdID0gW107XHJcbiAgaGlkZGVuQnV0dG9uczogVG9vbGJhckJ1dHRvbltdID0gW107XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVCdXR0b25WaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnRvb2xiYXJDb250YWluZXIgfHwgIXRoaXMuYnV0dG9uRWxlbWVudHMpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBidXR0b25SZWZzID0gdGhpcy5idXR0b25FbGVtZW50cy50b0FycmF5KCk7XHJcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMudG9vbGJhckNvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gNTA7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcImNvbnRhaW5lcldpZHRoXCIsIGNvbnRhaW5lcldpZHRoKTtcclxuICAgIGxldCB0b3RhbFdpZHRoID0gMDtcclxuICAgIGNvbnN0IG1lbnVCdXR0b25XaWR0aCA9IDYwO1xyXG5cclxuICAgIHRoaXMudmlzaWJsZUJ1dHRvbnMgPSBbXTtcclxuICAgIHRoaXMuaGlkZGVuQnV0dG9ucyA9IFtdO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnV0dG9uUmVmcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBidXR0b25XaWR0aCA9XHJcbiAgICAgICAgYnV0dG9uUmVmc1tpXS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcImJ1dHRvbldpZHRoXCIsIGJ1dHRvbldpZHRoKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRvdGFsV2lkdGggK1xyXG4gICAgICAgICAgNCArIC8vIDRweCBtYXJnaW4gYmV0d2VlbiBidXR0b25zXHJcbiAgICAgICAgICBidXR0b25XaWR0aCArXHJcbiAgICAgICAgICAoaSA8IGJ1dHRvblJlZnMubGVuZ3RoIC0gMSA/IG1lbnVCdXR0b25XaWR0aCA6IDApIDw9XHJcbiAgICAgICAgY29udGFpbmVyV2lkdGhcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQnV0dG9ucy5wdXNoKHRoaXMuYnV0dG9uc1tpXSk7XHJcbiAgICAgICAgYnV0dG9uUmVmc1tpXS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ0ZW1wLWhpZGRlblwiKTtcclxuICAgICAgICB0b3RhbFdpZHRoICs9IGJ1dHRvbldpZHRoO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGJ1dHRvblJlZnNbaV0ubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwidGVtcC1oaWRkZW5cIik7XHJcbiAgICAgICAgdGhpcy5oaWRkZW5CdXR0b25zLnB1c2godGhpcy5idXR0b25zW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gY29uc29sZS5sb2coXCJ2aXNpYmxlQnV0dG9uc1wiLCB0aGlzLnZpc2libGVCdXR0b25zKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiaGlkZGVuQnV0dG9uc1wiLCB0aGlzLmhpZGRlbkJ1dHRvbnMpO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcclxuICBvbldpbmRvd1Jlc2l6ZSgpIHtcclxuICAgIHRoaXMudXBkYXRlQnV0dG9uVmlzaWJpbGl0eSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -2577,16 +2577,6 @@ class MultiTabComponent {
|
|
|
2577
2577
|
* @return {?}
|
|
2578
2578
|
*/
|
|
2579
2579
|
ngOnInit() {
|
|
2580
|
-
this.subscriptions.push(this.cf.closeTab$.subscribe((/**
|
|
2581
|
-
* @param {?} idx
|
|
2582
|
-
* @return {?}
|
|
2583
|
-
*/
|
|
2584
|
-
(idx) => {
|
|
2585
|
-
if (idx === undefined) {
|
|
2586
|
-
idx = this.selectedTab;
|
|
2587
|
-
}
|
|
2588
|
-
this.closeTab(idx);
|
|
2589
|
-
})));
|
|
2590
2580
|
this.initTab();
|
|
2591
2581
|
// 解决刷新页面后,选中的 tab 丢失问题
|
|
2592
2582
|
/** @type {?} */
|
|
@@ -2594,7 +2584,8 @@ class MultiTabComponent {
|
|
|
2594
2584
|
* @param {?} ele
|
|
2595
2585
|
* @return {?}
|
|
2596
2586
|
*/
|
|
2597
|
-
(ele) => this.urlWithoutQuery(ele.url) ===
|
|
2587
|
+
(ele) => this.urlWithoutQuery(ele.url) ===
|
|
2588
|
+
this.urlWithoutQuery(this.router.url)));
|
|
2598
2589
|
if (isExistIdx !== -1) {
|
|
2599
2590
|
this.selectedTab = isExistIdx;
|
|
2600
2591
|
}
|
|
@@ -2611,6 +2602,18 @@ class MultiTabComponent {
|
|
|
2611
2602
|
/** @type {?} */
|
|
2612
2603
|
const navigation = this.router.getCurrentNavigation();
|
|
2613
2604
|
if (navigation) {
|
|
2605
|
+
/** @type {?} */
|
|
2606
|
+
const tooltipElements = document.querySelectorAll(".e-popup-open");
|
|
2607
|
+
// 删除tooltips
|
|
2608
|
+
tooltipElements.forEach((/**
|
|
2609
|
+
* @param {?} element
|
|
2610
|
+
* @return {?}
|
|
2611
|
+
*/
|
|
2612
|
+
(element) => {
|
|
2613
|
+
/** @type {?} */
|
|
2614
|
+
const htmlElement = (/** @type {?} */ (element));
|
|
2615
|
+
htmlElement.style.display = "none";
|
|
2616
|
+
}));
|
|
2614
2617
|
/** @type {?} */
|
|
2615
2618
|
const state = navigation.extras.state;
|
|
2616
2619
|
// 获取传递的 state
|
|
@@ -2624,12 +2627,15 @@ class MultiTabComponent {
|
|
|
2624
2627
|
/** @type {?} */
|
|
2625
2628
|
let title = (state && state.title) ||
|
|
2626
2629
|
navigationInfo.title ||
|
|
2627
|
-
navigationInfo.subTitle
|
|
2630
|
+
navigationInfo.subTitle ||
|
|
2631
|
+
navigationInfo.name;
|
|
2632
|
+
/** @type {?} */
|
|
2633
|
+
let noReused = (state && state.noReused) || false;
|
|
2628
2634
|
if (currentRoute && !skipLocationChange) {
|
|
2629
2635
|
if (this.noGenerateTabUrls.includes(this.urlWithoutQuery(this.router.url))) {
|
|
2630
2636
|
return; // 排除不生成tab的url
|
|
2631
2637
|
}
|
|
2632
|
-
this.setTab(this.router.url, currentRoute.snapshot.routeConfig.path, title);
|
|
2638
|
+
this.setTab(this.router.url, currentRoute.snapshot.routeConfig.path, title, noReused);
|
|
2633
2639
|
}
|
|
2634
2640
|
}
|
|
2635
2641
|
})));
|
|
@@ -2739,9 +2745,10 @@ class MultiTabComponent {
|
|
|
2739
2745
|
}
|
|
2740
2746
|
/**
|
|
2741
2747
|
* @param {?} idx
|
|
2748
|
+
* @param {?=} isExternal
|
|
2742
2749
|
* @return {?}
|
|
2743
2750
|
*/
|
|
2744
|
-
closeTab(idx) {
|
|
2751
|
+
closeTab(idx, isExternal) {
|
|
2745
2752
|
/** @type {?} */
|
|
2746
2753
|
const tab = this.tabList[idx];
|
|
2747
2754
|
this.tabList = this.tabList.filter((/**
|
|
@@ -2750,11 +2757,14 @@ class MultiTabComponent {
|
|
|
2750
2757
|
*/
|
|
2751
2758
|
(ele) => ele.url !== tab.url));
|
|
2752
2759
|
this.clearCache(this.urlWithoutQuery(tab.url));
|
|
2753
|
-
if (this.selectedTab === idx) {
|
|
2760
|
+
if (!isExternal && this.selectedTab === idx) {
|
|
2754
2761
|
/** @type {?} */
|
|
2755
2762
|
const targetIdx = Math.max(0, idx - 1);
|
|
2756
2763
|
this.changeTab(this.tabList[targetIdx], targetIdx);
|
|
2757
2764
|
}
|
|
2765
|
+
if (idx < this.selectedTab) {
|
|
2766
|
+
this.selectedTab = this.selectedTab - 1; // 如果关闭的tab在当前选中的tab之前,选中tab索引减1
|
|
2767
|
+
}
|
|
2758
2768
|
this.setEllipsisTitle();
|
|
2759
2769
|
sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
|
|
2760
2770
|
this.ref.markForCheck();
|
|
@@ -2766,6 +2776,15 @@ class MultiTabComponent {
|
|
|
2766
2776
|
*/
|
|
2767
2777
|
changeTab(tab, idx) {
|
|
2768
2778
|
this.router.navigateByUrl(tab.url);
|
|
2779
|
+
if (tab.navigationInfo) {
|
|
2780
|
+
sessionStorage.setItem("navigationInfo", JSON.stringify(tab.navigationInfo));
|
|
2781
|
+
}
|
|
2782
|
+
if (tab.fromUrl) {
|
|
2783
|
+
sessionStorage.setItem("fromUrl", tab.fromUrl);
|
|
2784
|
+
}
|
|
2785
|
+
if (tab.permissions) {
|
|
2786
|
+
sessionStorage.setItem("permissions", JSON.stringify(tab.permissions));
|
|
2787
|
+
}
|
|
2769
2788
|
this.selectedTab = idx;
|
|
2770
2789
|
this.ref.markForCheck();
|
|
2771
2790
|
}
|
|
@@ -2776,12 +2795,24 @@ class MultiTabComponent {
|
|
|
2776
2795
|
*/
|
|
2777
2796
|
addTab(url, title) {
|
|
2778
2797
|
if (this.tabList.length >= this.maxTabs) {
|
|
2779
|
-
this.closeTab(
|
|
2798
|
+
this.closeTab(1); // 删除第二个,第一个固定
|
|
2780
2799
|
}
|
|
2800
|
+
/** @type {?} */
|
|
2801
|
+
const localPermissions = sessionStorage.getItem("permissions") ||
|
|
2802
|
+
localStorage.getItem("permissions");
|
|
2803
|
+
/** @type {?} */
|
|
2804
|
+
const navigationInfo = JSON.parse(sessionStorage.getItem("navigationInfo"));
|
|
2805
|
+
/** @type {?} */
|
|
2806
|
+
const fromUrl = sessionStorage.getItem("fromUrl");
|
|
2807
|
+
/** @type {?} */
|
|
2808
|
+
const permissions = JSON.parse(localPermissions);
|
|
2781
2809
|
this.tabList.push({
|
|
2782
2810
|
url: url,
|
|
2783
2811
|
title: title || "default",
|
|
2784
2812
|
displayTitle: title,
|
|
2813
|
+
navigationInfo: navigationInfo,
|
|
2814
|
+
permissions: permissions,
|
|
2815
|
+
fromUrl: fromUrl,
|
|
2785
2816
|
});
|
|
2786
2817
|
this.selectedTab = this.tabList.length - 1;
|
|
2787
2818
|
this.setEllipsisTitle();
|
|
@@ -2790,11 +2821,12 @@ class MultiTabComponent {
|
|
|
2790
2821
|
}
|
|
2791
2822
|
/**
|
|
2792
2823
|
* @param {?} url
|
|
2793
|
-
* @param {
|
|
2794
|
-
* @param {
|
|
2824
|
+
* @param {?} pureUrl
|
|
2825
|
+
* @param {?} title
|
|
2826
|
+
* @param {?} noReused
|
|
2795
2827
|
* @return {?}
|
|
2796
2828
|
*/
|
|
2797
|
-
setTab(url, pureUrl, title) {
|
|
2829
|
+
setTab(url, pureUrl, title, noReused) {
|
|
2798
2830
|
/** @type {?} */
|
|
2799
2831
|
const isExistIdx = this.tabList.findIndex((/**
|
|
2800
2832
|
* @param {?} ele
|
|
@@ -2820,7 +2852,16 @@ class MultiTabComponent {
|
|
|
2820
2852
|
this.addTab(url, title);
|
|
2821
2853
|
}
|
|
2822
2854
|
else {
|
|
2823
|
-
|
|
2855
|
+
/** @type {?} */
|
|
2856
|
+
const targetTabUrl = this.tabList[isExistIdx].url;
|
|
2857
|
+
if (targetTabUrl !== url || noReused) {
|
|
2858
|
+
// 当缓存一致时候,但是url不一致,重新按照新的url生成tab
|
|
2859
|
+
this.closeTab(isExistIdx, true);
|
|
2860
|
+
this.addTab(url, title);
|
|
2861
|
+
}
|
|
2862
|
+
else {
|
|
2863
|
+
this.changeTab(this.tabList[isExistIdx], isExistIdx);
|
|
2864
|
+
}
|
|
2824
2865
|
this.ref.markForCheck();
|
|
2825
2866
|
}
|
|
2826
2867
|
}
|
|
@@ -2871,8 +2912,8 @@ class MultiTabComponent {
|
|
|
2871
2912
|
MultiTabComponent.decorators = [
|
|
2872
2913
|
{ type: Component, args: [{
|
|
2873
2914
|
selector: "rs-multi-tab",
|
|
2874
|
-
template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n
|
|
2875
|
-
styles: [".rs-multi-tab{width:100%;display:flex;justify-content:space-between;margin:0 auto;max-width:1886px}.rs-multi-tab.b-line{border-bottom:1px solid #e5eaef}.rs-multi-tab ul{display:flex;margin:0 8px;padding:0;overflow:hidden;height:100%}.rs-multi-tab ul li{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.rs-multi-tab ul li .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s}.rs-multi-tab ul li img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul li img:hover{background:#dce8f6}.rs-multi-tab ul li:not(:last-child){border-right:none}.rs-multi-tab ul li:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul li:last-child{border-top-right-radius:8px}.rs-multi-tab ul .isSelect{color:#1f3f5c;background:#fff}.rs-multi-tab ul .notSelect img{display:none}.rs-multi-tab ul .notSelect .img-block{display:inline-block;width:22px}.rs-multi-tab ul .notSelect:hover{color:#1f3f5c;background-color:rgba(31,123,255,.04)}.rs-multi-tab ul .notSelect:hover .img-block{display:none}.rs-multi-tab ul .notSelect:hover img{display:inline-block}.rs-multi-tab .refresh-tab{cursor:pointer;text-align:right;color:#6c7c90;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;padding-right:12px}.rs-multi-tab .refresh-tab img{vertical-align:middle;margin-right:4px}.refresh-tab-loading{-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.tooltip-content{padding:4px;color:#f8fafb;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px}@media (max-width:1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width:1100px){.rs-multi-tab ul li img{position:absolute;right:3px;background-color:#fff}.notSelect:hover img{position:absolute;right:3px;background-color:#eff5fb}.img-block{display:none!important}}@media (max-width:600px){.rs-multi-tab ul li{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0!important}}"]
|
|
2915
|
+
template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n\t<ul>\r\n\t\t<ng-container *ngFor=\"let tab of tabList; let i = index\">\r\n\t\t\t<li\r\n\t\t\t\t[ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n\t\t\t\t(click)=\"changeTab(tab, i)\"\r\n\t\t\t>\r\n\t\t\t\t<ejs-tooltip\r\n\t\t\t\t\tid=\"notSelectTooltip\"\r\n\t\t\t\t\t[showTipPointer]=\"false\"\r\n\t\t\t\t\t[openDelay]=\"500\"\r\n\t\t\t\t\t*ngIf=\"tab.displayTitle !== tab.title; else originText\"\r\n\t\t\t\t\tstyle=\"height: 27px\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ng-template #content>\r\n\t\t\t\t\t\t<div class=\"tooltip-content\">\r\n\t\t\t\t\t\t\t{{ tab.title }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<span class=\"tabTitle\">{{ tab.displayTitle }}</span>\r\n\t\t\t\t</ejs-tooltip>\r\n\t\t\t\t<ng-template #originText>\r\n\t\t\t\t\t<span class=\"tabTitle\">\r\n\t\t\t\t\t\t{{ tab.displayTitle }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<span\r\n\t\t\t\t\tclass=\"img-block\"\r\n\t\t\t\t\t*ngIf=\"selectedTab !== i && i !== 0\"\r\n\t\t\t\t></span>\r\n\t\t\t\t<img\r\n\t\t\t\t\t*ngIf=\"i !== 0\"\r\n\t\t\t\t\tsrc=\"../../../assets/img/close-url.svg\"\r\n\t\t\t\t\t(click)=\"closeTab(i)\"\r\n\t\t\t\t/>\r\n\t\t\t</li>\r\n\t\t</ng-container>\r\n\t</ul>\r\n\t<div class=\"refresh-tab\" (click)=\"refreshTab()\" *ngIf=\"tabList.length > 0\">\r\n\t\t<ejs-tooltip\r\n\t\t\tid=\"notSelectTooltip\"\r\n\t\t\tcssClass=\"notSelectTooltip\"\r\n\t\t\t[showTipPointer]=\"false\"\r\n\t\t\t[openDelay]=\"500\"\r\n\t\t\tstyle=\"height: 27px\"\r\n\t\t>\r\n\t\t\t<ng-template #content>\r\n\t\t\t\t<div class=\"tooltip-content\">Refresh Current Tab</div>\r\n\t\t\t</ng-template>\r\n\t\t\t<img\r\n\t\t\t\tid=\"loadingIcon\"\r\n\t\t\t\talt\r\n\t\t\t\tclass=\"refresh-btn\"\r\n\t\t\t\tsrc=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n\t\t\t/>\r\n\t\t</ejs-tooltip>\r\n\t</div>\r\n</div>\r\n",
|
|
2916
|
+
styles: [".rs-multi-tab{width:100%;display:flex;justify-content:space-between;margin:0 auto;max-width:1886px}.rs-multi-tab.b-line{border-bottom:1px solid #e5eaef}.rs-multi-tab ul{display:flex;margin:0 8px;padding:0;overflow:hidden;height:100%}.rs-multi-tab ul li{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.rs-multi-tab ul li .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s}.rs-multi-tab ul li img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul li img:hover{background:#dce8f6}.rs-multi-tab ul li:not(:last-child){border-right:none}.rs-multi-tab ul li:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul li:last-child{border-top-right-radius:8px}.rs-multi-tab ul .isSelect{color:#1f3f5c;background:#fff}.rs-multi-tab ul .notSelect img{display:none}.rs-multi-tab ul .notSelect .img-block{display:inline-block;width:22px}.rs-multi-tab ul .notSelect:hover{color:#1f3f5c;background-color:rgba(31,123,255,.04)}.rs-multi-tab ul .notSelect:hover .img-block{display:none}.rs-multi-tab ul .notSelect:hover img{display:inline-block}.rs-multi-tab .refresh-tab{cursor:pointer;text-align:right;color:#6c7c90;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;padding-right:12px}.rs-multi-tab .refresh-tab img{vertical-align:middle;margin-right:4px}.refresh-tab-loading{-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}.notSelectTooltip{transform:translateX(-12px)}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.tooltip-content{padding:4px;color:#f8fafb;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px}@media (max-width:1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width:1100px){.rs-multi-tab ul li img{position:absolute;right:3px;background-color:#fff}.notSelect:hover img{position:absolute;right:3px;background-color:#eff5fb}.img-block{display:none!important}.isSelect:not(:first-child){padding-right:20px!important}}@media (max-width:600px){.rs-multi-tab ul li{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0!important}}"]
|
|
2876
2917
|
}] }
|
|
2877
2918
|
];
|
|
2878
2919
|
/** @nocollapse */
|
|
@@ -3358,7 +3399,7 @@ class RSToolbarComponent {
|
|
|
3358
3399
|
RSToolbarComponent.decorators = [
|
|
3359
3400
|
{ type: Component, args: [{
|
|
3360
3401
|
selector: "rs-toolbar",
|
|
3361
|
-
template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n",
|
|
3402
|
+
template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n",
|
|
3362
3403
|
styles: [":host{display:block;width:100%}.rs-toolbar-container{width:100%;display:flex;align-items:center}.rs-toolbar-container .temp-hidden{visibility:hidden;position:absolute}.rs-toolbar-container .action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:0 0}.rs-toolbar-container .action-toggle:hover{background:rgba(214,227,245,.2)}.rs-toolbar-container .action-toggle .mat-button-wrapper{max-height:24px;height:24px}.rs-toolbar-container .action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}"]
|
|
3363
3404
|
}] }
|
|
3364
3405
|
];
|