raise-common-lib-new 0.0.30 → 0.0.32
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/esm2022/lib/form/checkbox-group/index.component.mjs +2 -2
- package/esm2022/lib/layout/main-container/index.component.mjs +38 -6
- package/esm2022/lib/layout/multi-tab/index.component.mjs +7 -3
- package/fesm2022/raise-common-lib-new.mjs +41 -7
- package/fesm2022/raise-common-lib-new.mjs.map +1 -1
- package/lib/layout/main-container/index.component.d.ts +9 -3
- package/package.json +1 -1
|
@@ -17,7 +17,7 @@ export class CheckboxGroupComponent {
|
|
|
17
17
|
error = false;
|
|
18
18
|
valueChange = new EventEmitter();
|
|
19
19
|
ngOnInit() {
|
|
20
|
-
console.log('first',
|
|
20
|
+
// console.log('first',this.value)
|
|
21
21
|
}
|
|
22
22
|
onChange(event, option) {
|
|
23
23
|
const originalValue = this.value;
|
|
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
54
54
|
}], valueChange: [{
|
|
55
55
|
type: Output
|
|
56
56
|
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vY2hlY2tib3gtZ3JvdXAvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vY2hlY2tib3gtZ3JvdXAvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBT2xHLE1BQU0sT0FBTyxzQkFBc0I7SUFFdkI7SUFEVixZQUNVLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7SUFDSyxJQUFJLENBQUMsQ0FBQyxPQUFPO0lBQ2IsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIsV0FBVyxHQUE4QixZQUFZLENBQUM7SUFDdEQsTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUNoRSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFHdkIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFakMsUUFBUTtRQUNOLGtDQUFrQztJQUNwQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNO1FBQ3BCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxNQUFNLENBQUM7UUFDWCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDakIsTUFBTSxHQUFHLENBQUMsR0FBRyxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN4RDthQUFNO1lBQ0wsTUFBTSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzNFO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO3dHQTVCVSxzQkFBc0I7NEZBQXRCLHNCQUFzQiwwUENSbkMsbWZBWUE7OzRGREphLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxtQkFBbUI7d0dBUXBCLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHTixXQUFXO3NCQURWLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtY2hlY2tib3gtZ3JvdXBcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7fVxyXG4gIEBJbnB1dCgpIG5hbWU7IC8vIOWIhue7hOWHreivgVxyXG4gIEBJbnB1dCgpIHZhbHVlID0gW107XHJcbiAgQElucHV0KCkgZGF0YVNvdXJjZSA9IFtdO1xyXG4gIEBJbnB1dCgpIG9yaWVudGF0aW9uOiBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIiA9IFwiaG9yaXpvbnRhbFwiO1xyXG4gIEBJbnB1dCgpIGZpZWxkcyA9IHsgdGV4dDogXCJ0ZXh0XCIsIHZhbHVlOiBcInZhbHVlXCIsIGRpc2FibGVkOiBcImRpc2FibGVkXCIgfTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVycm9yID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdmaXJzdCcsdGhpcy52YWx1ZSlcclxuICB9XHJcbiAgb25DaGFuZ2UoZXZlbnQsIG9wdGlvbikge1xyXG4gICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcclxuICAgICAgcmVzdWx0ID0gWy4uLm9yaWdpbmFsVmFsdWUsIG9wdGlvblt0aGlzLmZpZWxkcy52YWx1ZV1dO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gb3JpZ2luYWxWYWx1ZS5maWx0ZXIoKHZhbCkgPT4gdmFsICE9PSBvcHRpb25bdGhpcy5maWVsZHMudmFsdWVdKTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChyZXN1bHQpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjaGVja2JveC1ncm91cFwiIFtuZ0NsYXNzXT1cIltvcmllbnRhdGlvbiwgZXJyb3IgPyAnZXJyb3InIDogJyddXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWl0ZW1cIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRhdGFTb3VyY2VcIj5cclxuICAgIDxlanMtY2hlY2tib3hcclxuICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgIFtsYWJlbF09XCJvcHRpb25bZmllbGRzLnRleHRdXCJcclxuICAgICAgW3ZhbHVlXT1cIm9wdGlvbltmaWVsZHMudmFsdWVdXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbltmaWVsZHMuZGlzYWJsZWRdIHx8IGRpc2FibGVkXCJcclxuICAgICAgW2NoZWNrZWRdPVwidmFsdWUuaW5jbHVkZXMob3B0aW9uW2ZpZWxkcy52YWx1ZV0pXCJcclxuICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQsIG9wdGlvbilcIlxyXG4gICAgPjwvZWpzLWNoZWNrYm94PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// 组件类
|
|
2
|
-
import { Component, ContentChild, HostListener, Input, ViewChild, } from "@angular/core";
|
|
2
|
+
import { Component, ContentChild, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
|
|
3
3
|
import { RSHeaderComponent } from "../rs-header/index.component";
|
|
4
|
+
import { MultiTabComponent } from "../multi-tab/index.component";
|
|
5
|
+
import { debounce } from "lodash";
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
7
|
import * as i1 from "../../service/drawer.service";
|
|
6
8
|
import * as i2 from "@angular/common";
|
|
@@ -8,12 +10,24 @@ import * as i3 from "../rs-footer/index.component";
|
|
|
8
10
|
import * as i4 from "../drawer/index.component";
|
|
9
11
|
export class MainContainerComponent {
|
|
10
12
|
globalDrawer;
|
|
13
|
+
elementRef;
|
|
11
14
|
headerRef;
|
|
15
|
+
multiTabRef;
|
|
12
16
|
drawer;
|
|
13
17
|
isCollapsed = false; // 接收输入属性
|
|
14
18
|
singleReuseUrls = []; //只能单个缓存的url
|
|
15
|
-
|
|
19
|
+
onWidthChange = new EventEmitter();
|
|
20
|
+
resizeObserver;
|
|
21
|
+
debouncedHandleResize;
|
|
22
|
+
constructor(globalDrawer, elementRef) {
|
|
16
23
|
this.globalDrawer = globalDrawer;
|
|
24
|
+
this.elementRef = elementRef;
|
|
25
|
+
this.debouncedHandleResize = debounce((width) => {
|
|
26
|
+
// console.log("Debounced width change:", width);
|
|
27
|
+
// 在这里处理防抖后的宽度变化逻辑
|
|
28
|
+
this.multiTabRef && this.multiTabRef.setEllipsisTitle();
|
|
29
|
+
this.onWidthChange.emit(width);
|
|
30
|
+
}, 300);
|
|
17
31
|
}
|
|
18
32
|
ngOnInit() { }
|
|
19
33
|
onResize(event) {
|
|
@@ -30,6 +44,19 @@ export class MainContainerComponent {
|
|
|
30
44
|
}
|
|
31
45
|
ngAfterViewInit() {
|
|
32
46
|
this.globalDrawer.setDrawer(this.drawer); // 设置抽屉组件
|
|
47
|
+
const rightAside = this.elementRef.nativeElement.querySelector(".right-aside");
|
|
48
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
|
49
|
+
for (const entry of entries) {
|
|
50
|
+
const width = entry.contentRect.width;
|
|
51
|
+
this.debouncedHandleResize(width);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
this.resizeObserver.observe(rightAside);
|
|
55
|
+
}
|
|
56
|
+
ngOnDestroy() {
|
|
57
|
+
if (this.resizeObserver) {
|
|
58
|
+
this.resizeObserver.disconnect();
|
|
59
|
+
}
|
|
33
60
|
}
|
|
34
61
|
onRightAsideClick() {
|
|
35
62
|
const screenWidth = window.innerWidth;
|
|
@@ -37,15 +64,18 @@ export class MainContainerComponent {
|
|
|
37
64
|
this.headerRef && this.headerRef.onToggleMenu();
|
|
38
65
|
}
|
|
39
66
|
}
|
|
40
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, deps: [{ token: i1.DrawerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MainContainerComponent, selector: "rs-main-container", inputs: { isCollapsed: "isCollapsed", singleReuseUrls: "singleReuseUrls" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "headerRef", first: true, predicate: RSHeaderComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div\r\n class=\"right-aside\"\r\n [ngClass]=\"{ isCollapsed: isCollapsed }\"\r\n (click)=\"onRightAsideClick()\"\r\n >\r\n <ng-content select=\"[multiTabSlot]\"></ng-content>\r\n <!-- <rs-multi-tab [singleReuseUrls]=\"singleReuseUrls\"></rs-multi-tab> -->\r\n <div class=\"router-content\">\r\n <rs-drawer #drawer>\r\n <ng-content select=\"[routerSlot]\"></ng-content>\r\n </rs-drawer>\r\n </div>\r\n <rs-footer></rs-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-main-container{display:flex;flex-direction:column;height:100vh}.app-main-container .main-page{flex:1;height:0;display:flex;background-color:var(--rs-container-bg)}.app-main-container .left-aside{height:100%}.app-main-container .right-aside{width:0;flex:1;display:flex;flex-direction:column;padding-right:12px}.app-main-container .right-aside .router-content{flex:1;overflow:auto;max-width:1886px;width:100%;margin:0 auto}@media (max-width: 992px){.app-main-container .right-aside.isCollapsed{position:relative}.app-main-container .right-aside.isCollapsed:after{content:\" \";position:absolute;z-index:5;inset:0;background-color:#0003}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.RSFooterComponent, selector: "rs-footer" }, { kind: "component", type: i4.DrawerComponent, selector: "rs-drawer" }] });
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, deps: [{ token: i1.DrawerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MainContainerComponent, selector: "rs-main-container", inputs: { isCollapsed: "isCollapsed", singleReuseUrls: "singleReuseUrls" }, outputs: { onWidthChange: "onWidthChange" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "headerRef", first: true, predicate: RSHeaderComponent, descendants: true, static: true }, { propertyName: "multiTabRef", first: true, predicate: MultiTabComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div\r\n class=\"right-aside\"\r\n [ngClass]=\"{ isCollapsed: isCollapsed }\"\r\n (click)=\"onRightAsideClick()\"\r\n >\r\n <ng-content select=\"[multiTabSlot]\"></ng-content>\r\n <!-- <rs-multi-tab [singleReuseUrls]=\"singleReuseUrls\"></rs-multi-tab> -->\r\n <div class=\"router-content\">\r\n <rs-drawer #drawer>\r\n <ng-content select=\"[routerSlot]\"></ng-content>\r\n </rs-drawer>\r\n </div>\r\n <rs-footer></rs-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-main-container{display:flex;flex-direction:column;height:100vh}.app-main-container .main-page{flex:1;height:0;display:flex;background-color:var(--rs-container-bg)}.app-main-container .left-aside{height:100%}.app-main-container .right-aside{width:0;flex:1;display:flex;flex-direction:column;padding-right:12px}.app-main-container .right-aside .router-content{flex:1;overflow:auto;max-width:1886px;width:100%;margin:0 auto}@media (max-width: 992px){.app-main-container .right-aside.isCollapsed{position:relative}.app-main-container .right-aside.isCollapsed:after{content:\" \";position:absolute;z-index:5;inset:0;background-color:#0003}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.RSFooterComponent, selector: "rs-footer" }, { kind: "component", type: i4.DrawerComponent, selector: "rs-drawer" }] });
|
|
42
69
|
}
|
|
43
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, decorators: [{
|
|
44
71
|
type: Component,
|
|
45
72
|
args: [{ selector: "rs-main-container", template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div\r\n class=\"right-aside\"\r\n [ngClass]=\"{ isCollapsed: isCollapsed }\"\r\n (click)=\"onRightAsideClick()\"\r\n >\r\n <ng-content select=\"[multiTabSlot]\"></ng-content>\r\n <!-- <rs-multi-tab [singleReuseUrls]=\"singleReuseUrls\"></rs-multi-tab> -->\r\n <div class=\"router-content\">\r\n <rs-drawer #drawer>\r\n <ng-content select=\"[routerSlot]\"></ng-content>\r\n </rs-drawer>\r\n </div>\r\n <rs-footer></rs-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-main-container{display:flex;flex-direction:column;height:100vh}.app-main-container .main-page{flex:1;height:0;display:flex;background-color:var(--rs-container-bg)}.app-main-container .left-aside{height:100%}.app-main-container .right-aside{width:0;flex:1;display:flex;flex-direction:column;padding-right:12px}.app-main-container .right-aside .router-content{flex:1;overflow:auto;max-width:1886px;width:100%;margin:0 auto}@media (max-width: 992px){.app-main-container .right-aside.isCollapsed{position:relative}.app-main-container .right-aside.isCollapsed:after{content:\" \";position:absolute;z-index:5;inset:0;background-color:#0003}}\n"] }]
|
|
46
|
-
}], ctorParameters: function () { return [{ type: i1.DrawerService }]; }, propDecorators: { headerRef: [{
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i1.DrawerService }, { type: i0.ElementRef }]; }, propDecorators: { headerRef: [{
|
|
47
74
|
type: ContentChild,
|
|
48
75
|
args: [RSHeaderComponent, { static: true }]
|
|
76
|
+
}], multiTabRef: [{
|
|
77
|
+
type: ContentChild,
|
|
78
|
+
args: [MultiTabComponent, { static: true }]
|
|
49
79
|
}], drawer: [{
|
|
50
80
|
type: ViewChild,
|
|
51
81
|
args: ["drawer", { static: false }]
|
|
@@ -53,8 +83,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
53
83
|
type: Input
|
|
54
84
|
}], singleReuseUrls: [{
|
|
55
85
|
type: Input
|
|
86
|
+
}], onWidthChange: [{
|
|
87
|
+
type: Output
|
|
56
88
|
}], onResize: [{
|
|
57
89
|
type: HostListener,
|
|
58
90
|
args: ["window:resize", ["$event"]]
|
|
59
91
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tYWluLWNvbnRhaW5lci9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvbGF5b3V0L21haW4tY29udGFpbmVyL2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7OztBQU9sQyxNQUFNLE9BQU8sc0JBQXNCO0lBYXZCO0lBQ0E7SUFieUMsU0FBUyxDQUFDO0lBQ1YsV0FBVyxDQUFDO0lBRXZCLE1BQU0sQ0FBa0I7SUFFdkQsV0FBVyxHQUFZLEtBQUssQ0FBQyxDQUFDLFNBQVM7SUFDdkMsZUFBZSxHQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVk7SUFDM0MsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFckMsY0FBYyxDQUFpQjtJQUMvQixxQkFBcUIsQ0FBMEI7SUFDdkQsWUFDVSxZQUEyQixFQUMzQixVQUFzQjtRQUR0QixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUMzQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRTlCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUN0RCxpREFBaUQ7WUFDakQsa0JBQWtCO1lBQ2xCLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxRQUFRLEtBQUksQ0FBQztJQUdiLFFBQVEsQ0FBQyxLQUFLO1FBQ1osTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVM7UUFDaEQsSUFBSSxXQUFXLElBQUksR0FBRyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEQ7YUFBTSxJQUFJLFdBQVcsR0FBRyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNuRCxNQUFNLFVBQVUsR0FDZCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ25ELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFO2dCQUMzQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztnQkFDdEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDdEMsSUFBSSxXQUFXLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQzt3R0E5RFUsc0JBQXNCOzRGQUF0QixzQkFBc0IsdVJBQ25CLGlCQUFpQiw0RkFDakIsaUJBQWlCLGdLQ3pCakMsbXdCQXNCQTs7NEZEQ2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQjs2SEFLc0IsU0FBUztzQkFBM0QsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsV0FBVztzQkFBN0QsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRVQsTUFBTTtzQkFBN0MsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUU3QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFtQlAsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJTSGVhZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4uL3JzLWhlYWRlci9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRHJhd2VyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2RyYXdlci9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRHJhd2VyU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RyYXdlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE11bHRpVGFiQ29tcG9uZW50IH0gZnJvbSBcIi4uL211bHRpLXRhYi9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tIFwibG9kYXNoXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1tYWluLWNvbnRhaW5lclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYWluQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAQ29udGVudENoaWxkKFJTSGVhZGVyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBoZWFkZXJSZWY7XHJcbiAgQENvbnRlbnRDaGlsZChNdWx0aVRhYkNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgbXVsdGlUYWJSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJkcmF3ZXJcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGRyYXdlcjogRHJhd2VyQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKSBpc0NvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlOyAvLyDmjqXmlLbovpPlhaXlsZ7mgKdcclxuICBASW5wdXQoKSBzaW5nbGVSZXVzZVVybHM6IHN0cmluZ1tdID0gW107IC8v5Y+q6IO95Y2V5Liq57yT5a2Y55qEdXJsXHJcbiAgQE91dHB1dCgpIG9uV2lkdGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xyXG4gIHByaXZhdGUgZGVib3VuY2VkSGFuZGxlUmVzaXplOiAod2lkdGg6IG51bWJlcikgPT4gdm9pZDtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZ2xvYmFsRHJhd2VyOiBEcmF3ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRlYm91bmNlZEhhbmRsZVJlc2l6ZSA9IGRlYm91bmNlKCh3aWR0aDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiRGVib3VuY2VkIHdpZHRoIGNoYW5nZTpcIiwgd2lkdGgpO1xyXG4gICAgICAvLyDlnKjov5nph4zlpITnkIbpmLLmipblkI7nmoTlrr3luqblj5jljJbpgLvovpFcclxuICAgICAgdGhpcy5tdWx0aVRhYlJlZiAmJiB0aGlzLm11bHRpVGFiUmVmLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgICAgdGhpcy5vbldpZHRoQ2hhbmdlLmVtaXQod2lkdGgpO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICBjb25zdCBzY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDmm7TmlrDlsY/luZXlrr3luqZcclxuICAgIGlmIChzY3JlZW5XaWR0aCA8PSA5OTIpIHtcclxuICAgICAgdGhpcy5oZWFkZXJSZWYgJiYgdGhpcy5oZWFkZXJSZWYub25Ub2dnbGVNZW51KGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoc2NyZWVuV2lkdGggPCAxMjAwKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyUmVmICYmIHRoaXMuaGVhZGVyUmVmLm9uVG9nZ2xlTWVudSh0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyUmVmICYmIHRoaXMuaGVhZGVyUmVmLm9uVG9nZ2xlTWVudShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmdsb2JhbERyYXdlci5zZXREcmF3ZXIodGhpcy5kcmF3ZXIpOyAvLyDorr7nva7mir3lsYnnu4Tku7ZcclxuICAgIGNvbnN0IHJpZ2h0QXNpZGUgPVxyXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnJpZ2h0LWFzaWRlXCIpO1xyXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xyXG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcclxuICAgICAgICBjb25zdCB3aWR0aCA9IGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoO1xyXG4gICAgICAgIHRoaXMuZGVib3VuY2VkSGFuZGxlUmVzaXplKHdpZHRoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUocmlnaHRBc2lkZSk7XHJcbiAgfVxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcclxuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblJpZ2h0QXNpZGVDbGljaygpIHtcclxuICAgIGNvbnN0IHNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICBpZiAoc2NyZWVuV2lkdGggPD0gOTkyICYmIHRoaXMuaXNDb2xsYXBzZWQpIHtcclxuICAgICAgdGhpcy5oZWFkZXJSZWYgJiYgdGhpcy5oZWFkZXJSZWYub25Ub2dnbGVNZW51KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcHAtbWFpbi1jb250YWluZXJcIj5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyU2xvdF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPGRpdiBjbGFzcz1cIm1haW4tcGFnZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnQtYXNpZGVcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xlZnRBc2lkZVNsb3RdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwicmlnaHQtYXNpZGVcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7IGlzQ29sbGFwc2VkOiBpc0NvbGxhcHNlZCB9XCJcclxuICAgICAgKGNsaWNrKT1cIm9uUmlnaHRBc2lkZUNsaWNrKClcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbXVsdGlUYWJTbG90XVwiPjwvbmctY29udGVudD5cclxuICAgICAgPCEtLSA8cnMtbXVsdGktdGFiIFtzaW5nbGVSZXVzZVVybHNdPVwic2luZ2xlUmV1c2VVcmxzXCI+PC9ycy1tdWx0aS10YWI+IC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm91dGVyLWNvbnRlbnRcIj5cclxuICAgICAgICA8cnMtZHJhd2VyICNkcmF3ZXI+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcm91dGVyU2xvdF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9ycy1kcmF3ZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8cnMtZm9vdGVyPjwvcnMtZm9vdGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -41,7 +41,7 @@ export class MultiTabComponent {
|
|
|
41
41
|
screenWidth = window.innerWidth; // 初始化屏幕宽度
|
|
42
42
|
onResize(event) {
|
|
43
43
|
this.screenWidth = window.innerWidth; // 更新屏幕宽度
|
|
44
|
-
this.setEllipsisTitle();
|
|
44
|
+
// this.setEllipsisTitle(); 在最外面容器调用
|
|
45
45
|
}
|
|
46
46
|
ngOnInit() {
|
|
47
47
|
this.initTab();
|
|
@@ -108,6 +108,8 @@ export class MultiTabComponent {
|
|
|
108
108
|
: width - this.textGap, 12);
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
+
this.ref.markForCheck();
|
|
112
|
+
this.ref.detectChanges();
|
|
111
113
|
}
|
|
112
114
|
calcTabWidth() {
|
|
113
115
|
const wrap = document.querySelector(".rs-multi-tab");
|
|
@@ -174,7 +176,9 @@ export class MultiTabComponent {
|
|
|
174
176
|
}
|
|
175
177
|
addTab(url, title) {
|
|
176
178
|
if (this.tabList.length >= this.maxTabs) {
|
|
177
|
-
this.
|
|
179
|
+
const secondTab = this.tabList[1];
|
|
180
|
+
this.tabList = this.tabList.filter((ele) => ele.url !== secondTab.url);
|
|
181
|
+
this.clearCache(this.urlWithoutQuery(secondTab.url));
|
|
178
182
|
}
|
|
179
183
|
const localPermissions = sessionStorage.getItem("permissions") ||
|
|
180
184
|
localStorage.getItem("permissions");
|
|
@@ -269,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
269
273
|
type: HostListener,
|
|
270
274
|
args: ["window:resize", ["$event"]]
|
|
271
275
|
}] } });
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEdBR2QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFZeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUVuQjtJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ0E7SUFOVixZQUNTLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFFOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQXNDLENBQUM7SUFDL0QsQ0FBQztJQUNELFNBQVMsQ0FBbUI7SUFDbkIsZUFBZSxHQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVk7SUFDNUMsaUJBQWlCLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTtJ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Ly8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlLFxyXG4gIE5hdmlnYXRpb25FbmQsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlck91dGxldCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyYXdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kcmF3ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBLZWVwQWxpdmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1tdWx0aS10YWJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRyYXdlcjogRHJhd2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVSZXVzZVN0cmF0ZWd5OiBSb3V0ZVJldXNlU3RyYXRlZ3lcclxuICApIHtcclxuICAgIHRoaXMua2VlcEFsaXZlID0gdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgYXMgS2VlcEFsaXZlU2VydmljZTtcclxuICB9XHJcbiAga2VlcEFsaXZlOiBLZWVwQWxpdmVTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVJldXNlVXJsczogc3RyaW5nW10gPSBbXTsgLy/lj6rog73ljZXkuKrnvJPlrZjnmoR1cmxcclxuICBASW5wdXQoKSBub0dlbmVyYXRlVGFiVXJsczogc3RyaW5nW10gPSBbXTsgLy/kuI3nlJ/miJB0YWLnmoR1cmxcclxuICBAT3V0cHV0KCkgb25SZWZyZXNoVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgVEFCX1dJRFRIID0gMTY0O1xyXG4gIEdBUF9OT1JNQUwgPSA1NDtcclxuICBHQVBfU01BTEwgPSAzMDtcclxuICB0ZXh0R2FwOyAvLyDmlofmnKzkuI7ovrnmoYbnmoTmgLvpl7Tot51cclxuICBmb286IFJvdXRlck91dGxldDtcclxuICBjb21SZWY6IGFueTtcclxuICB0YWJMaXN0ID0gW107XHJcbiAgc2VsZWN0ZWRUYWI6IG51bWJlciA9IDA7XHJcbiAgbWF4VGFiczogbnVtYmVyID0gMTA7XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDliJ3lp4vljJblsY/luZXlrr3luqZcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25SZXNpemUoZXZlbnQpIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsgLy8g5pu05paw5bGP5bmV5a695bqmXHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0VGFiKCk7XHJcbiAgICAvLyDop6PlhrPliLfmlrDpobXpnaLlkI7vvIzpgInkuK3nmoQgdGFiIOS4ouWksemXrumimFxyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChlbGUpID0+XHJcbiAgICAgICAgdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRoaXMucm91dGVyLnVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IGlzRXhpc3RJZHg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmUtcG9wdXAtb3BlblwiKTtcclxuICAgICAgICAgICAgLy8g5Yig6ZmkdG9vbHRpcHNcclxuICAgICAgICAgICAgdG9vbHRpcEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IGVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgaHRtbEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBuYXZpZ2F0aW9uLmV4dHJhcy5zdGF0ZTsgLy8g6I635Y+W5Lyg6YCS55qEIHN0YXRlXHJcbiAgICAgICAgICAgIGNvbnN0IHNraXBMb2NhdGlvbkNoYW5nZSA9IG5hdmlnYXRpb24uZXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZTsgLy8g6I635Y+W5piv5ZCm6Lez6L+HIGxvY2F0aW9uIGNoYW5nZVxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LmZpcnN0Q2hpbGQ7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hdmlnYXRpb25JbmZvID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwibmF2aWdhdGlvbkluZm9cIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGxldCB0aXRsZSA9XHJcbiAgICAgICAgICAgICAgKHN0YXRlICYmIHN0YXRlLnRpdGxlKSB8fFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25JbmZvLnRpdGxlIHx8XHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkluZm8uc3ViVGl0bGUgfHxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5mby5uYW1lO1xyXG5cclxuICAgICAgICAgICAgbGV0IG5vUmV1c2VkID0gKHN0YXRlICYmIHN0YXRlLm5vUmV1c2VkKSB8fCBmYWxzZTsgLy8g5b2T5YmNdGFi5LiN5aSN55So77yM5paw5byA5LiA5LiqdGFiLOW9k+acieW3sue7j+WtmOWcqOeahHRhYuaXtuWAmeS5n+aYr+aWsOW8gFxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFJvdXRlICYmICFza2lwTG9jYXRpb25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vR2VuZXJhdGVUYWJVcmxzLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVybFdpdGhvdXRRdWVyeSh0aGlzLnJvdXRlci51cmwpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47IC8vIOaOkumZpOS4jeeUn+aIkHRhYueahHVybFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNldFRhYihcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLnVybCxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZS5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRoLFxyXG4gICAgICAgICAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBub1JldXNlZFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudGFiTGlzdCA9IFtdOyAvLyDmuIXnqbogdGFiIOWIl+ihqFxyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IDA7IC8vIOmHjee9rumAieS4reeahCB0YWIg57Si5byVXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRFbGxpcHNpc1RpdGxlKHRpdGxlPykge1xyXG4gICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfTk9STUFMO1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuV2lkdGggPD0gMTEwMCkge1xyXG4gICAgICB0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9TTUFMTDtcclxuICAgIH1cclxuICAgIGxldCB7IGFsbFdpZHRoLCBsZWZ0V2lkdGgsIHJpZ2h0V2lkdGggfSA9IHRoaXMuY2FsY1RhYldpZHRoKCk7XHJcbiAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKFxyXG4gICAgICAoYWxsV2lkdGggLSByaWdodFdpZHRoKSAvICh0aGlzLnRhYkxpc3QgJiYgdGhpcy50YWJMaXN0Lmxlbmd0aClcclxuICAgICk7XHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgPyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG4gICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAxMlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJMaXN0LmZvckVhY2goKGVsZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgZWxlLmRpc3BsYXlUaXRsZSA9IHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgICBlbGUudGl0bGUsXHJcbiAgICAgICAgICB3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcbiAgICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAgIDEyXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxjVGFiV2lkdGgoKSB7XHJcbiAgICBjb25zdCB3cmFwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWJcIik7XHJcbiAgICBjb25zdCB1bEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiA+IHVsXCIpO1xyXG4gICAgY29uc3QgcmVmcmVzaFRhYkRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiIC5yZWZyZXNoLXRhYlwiKTtcclxuICAgIGxldCBhbGxXaWR0aDtcclxuICAgIGxldCBsZWZ0V2lkdGg7XHJcbiAgICBsZXQgcmlnaHRXaWR0aDtcclxuICAgIGlmICh3cmFwICYmIHVsRWxlbWVudCkge1xyXG4gICAgICAvLyDojrflj5blhYPntKDnmoTkvY3nva7kv6Hmga9cclxuICAgICAgY29uc3Qgd3JhcFJlY3QgPSB3cmFwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCB1bFJlY3QgPSB1bEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IHJlZnJlc2hUYWJSZWN0ID1cclxuICAgICAgICByZWZyZXNoVGFiRGl2ICYmIHJlZnJlc2hUYWJEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGFsbFdpZHRoID0gd3JhcFJlY3Qud2lkdGg7XHJcbiAgICAgIGxlZnRXaWR0aCA9IHVsUmVjdC53aWR0aDtcclxuICAgICAgcmlnaHRXaWR0aCA9IChyZWZyZXNoVGFiUmVjdCAmJiByZWZyZXNoVGFiUmVjdC53aWR0aCkgfHwgMTAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYWxsV2lkdGgsXHJcbiAgICAgIGxlZnRXaWR0aCxcclxuICAgICAgcmlnaHRXaWR0aCxcclxuICAgIH07XHJcbiAgfVxyXG4gIGluaXRUYWIoKSB7XHJcbiAgICBsZXQgVGFiQ2FjaGUgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJUYWJDYWNoZVwiKSk7XHJcbiAgICB0aGlzLnRhYkxpc3QgPSBUYWJDYWNoZSB8fCBbXTtcclxuICAgIGlmICh0aGlzLnRhYkxpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IHRpdGxlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcbiAgICAgIGlmICh0aXRsZSkge1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJmaXJzdFRhYlRpdGxlXCIpO1xyXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgICAgICB0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VUYWIoaWR4LCBub0NoYW5nZT8pIHtcclxuICAgIGNvbnN0IHRhYiA9IHRoaXMudGFiTGlzdFtpZHhdO1xyXG4gICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcigoZWxlKSA9PiBlbGUudXJsICE9PSB0YWIudXJsKTtcclxuICAgIHRoaXMuY2xlYXJDYWNoZSh0aGlzLnVybFdpdGhvdXRRdWVyeSh0YWIudXJsKSk7XHJcbiAgICBpZiAoIW5vQ2hhbmdlICYmIHRoaXMuc2VsZWN0ZWRUYWIgPT09IGlkeCkge1xyXG4gICAgICBjb25zdCB0YXJnZXRJZHggPSBNYXRoLm1heCgwLCBpZHggLSAxKTtcclxuICAgICAgdGhpcy5jaGFuZ2VUYWIodGhpcy50YWJMaXN0W3RhcmdldElkeF0sIHRhcmdldElkeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaWR4IDwgdGhpcy5zZWxlY3RlZFRhYikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5zZWxlY3RlZFRhYiAtIDE7IC8vIOWmguaenOWFs+mXreeahHRhYuWcqOW9k+WJjemAieS4reeahHRhYuS5i+WJje+8jOmAieS4rXRhYue0ouW8leWHjzFcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUYWIodGFiLCBpZHgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGFiLnVybCk7XHJcbiAgICBpZiAodGFiLm5hdmlnYXRpb25JbmZvKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgXCJuYXZpZ2F0aW9uSW5mb1wiLFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRhYi5uYXZpZ2F0aW9uSW5mbylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0YWIuZnJvbUluZm8pIHtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcImZyb21JbmZvXCIsIEpTT04uc3RyaW5naWZ5KHRhYi5mcm9tSW5mbykpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRhYi5wZXJtaXNzaW9ucykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwicGVybWlzc2lvbnNcIiwgSlNPTi5zdHJpbmdpZnkodGFiLnBlcm1pc3Npb25zKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gaWR4O1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBhZGRUYWIodXJsLCB0aXRsZSkge1xyXG4gICAgaWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPj0gdGhpcy5tYXhUYWJzKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VUYWIoMSk7IC8vIOWIoOmZpOesrOS6jOS4qu+8jOesrOS4gOS4quWbuuWumlxyXG4gICAgfVxyXG4gICAgY29uc3QgbG9jYWxQZXJtaXNzaW9ucyA9XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJwZXJtaXNzaW9uc1wiKSB8fFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBlcm1pc3Npb25zXCIpO1xyXG4gICAgY29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKSk7XHJcbiAgICBjb25zdCBmcm9tSW5mbyA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZyb21JbmZvXCIpKTtcclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZShsb2NhbFBlcm1pc3Npb25zKTtcclxuXHJcbiAgICB0aGlzLnRhYkxpc3QucHVzaCh7XHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICB0aXRsZTogdGl0bGUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIGRpc3BsYXlUaXRsZTogdGl0bGUsXHJcbiAgICAgIG5hdmlnYXRpb25JbmZvOiBuYXZpZ2F0aW9uSW5mbyxcclxuICAgICAgcGVybWlzc2lvbnM6IHBlcm1pc3Npb25zLFxyXG4gICAgICBmcm9tSW5mbzogZnJvbUluZm8sXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLnRhYkxpc3QubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFiKHVybCwgcHVyZVVybCwgdGl0bGUsIG5vUmV1c2VkKSB7XHJcbiAgICBjb25zdCBpc0V4aXN0SWR4ID0gdGhpcy50YWJMaXN0LmZpbmRJbmRleChcclxuICAgICAgKGVsZSkgPT4gdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCA9PT0gLTEpIHtcclxuICAgICAgY29uc3Qgc2luZ2xlSWR4ID0gdGhpcy5zaW5nbGVSZXVzZVVybHMuZmluZEluZGV4KFxyXG4gICAgICAgIChlbGUpID0+IGVsZSA9PT0gcHVyZVVybFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoc2luZ2xlSWR4ICE9PSAtMSkge1xyXG4gICAgICAgIHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAoZWxlKSA9PiAhZWxlLnVybC5pbmNsdWRlcyh0aGlzLnNpbmdsZVJldXNlVXJsc1tzaW5nbGVJZHhdKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh1cmwpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHVybCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB0YXJnZXRUYWJVcmwgPSB0aGlzLnRhYkxpc3RbaXNFeGlzdElkeF0udXJsO1xyXG4gICAgICBpZiAodGFyZ2V0VGFiVXJsICE9PSB1cmwgfHwgbm9SZXVzZWQpIHtcclxuICAgICAgICAvLyDlvZPnvJPlrZjkuIDoh7Tml7blgJnvvIzkvYbmmK91cmzkuI3kuIDoh7TvvIzph43mlrDmjInnhafmlrDnmoR1cmznlJ/miJB0YWJcclxuICAgICAgICB0aGlzLmNsb3NlVGFiKGlzRXhpc3RJZHgsIHRydWUpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICAgICAgfSwgMzApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMudGFiTGlzdFtpc0V4aXN0SWR4XSwgaXNFeGlzdElkeCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRpbWVyID0gbnVsbDtcclxuICByZWZyZXNoVGFiKCkge1xyXG4gICAgY29uc3QgbG9hZGluZ0ljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImxvYWRpbmdJY29uXCIpO1xyXG4gICAgbG9hZGluZ0ljb24uY2xhc3NMaXN0LmFkZChcInJlZnJlc2gtdGFiLWxvYWRpbmdcIik7XHJcbiAgICBpZiAodGhpcy50aW1lcikge1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xyXG4gICAgfVxyXG4gICAgLy8g5qih5ouf5Yqg6L296L+H56iL77yMMeenkuWQjuenu+mZpOWKqOeUu1xyXG4gICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBsb2FkaW5nSWNvbi5jbGFzc0xpc3QucmVtb3ZlKFwicmVmcmVzaC10YWItbG9hZGluZ1wiKTtcclxuICAgICAgdGhpcy50aW1lciA9IG51bGw7XHJcbiAgICB9LCAxNTAwKTtcclxuICAgIC8vIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcbiAgICAvLyB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh0aGlzLnRhYkxpc3RbdGhpcy5zZWxlY3RlZFRhYl0udXJsKTtcclxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7IC8vIOiOt+WPluW9k+WJjSBVUkxcclxuICAgIHRoaXMub25SZWZyZXNoVGFiLmVtaXQoY3VycmVudFVybCk7XHJcbiAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFwiL1wiLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChjdXJyZW50VXJsKTsgLy8g6YeN5paw5a+86Iiq5Yiw5b2T5YmNIFVSTFxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckNhY2hlKHVybCkge1xyXG4gICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh1cmwpOyAvLyDosIPnlKjoh6rlrprkuYnnrZbnlaXnmoTmuIXpmaTnvJPlrZjmlrnms5VcclxuICAgIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHVybCk7XHJcbiAgfVxyXG4gIGNsZWFuQWxsQ2FjaGUoKSB7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwiVGFiQ2FjaGVcIik7IC8vIOa4hemZpOe8k+WtmFxyXG4gICAgdGhpcy50YWJMaXN0ID0gW107IC8vIOa4heepuiB0YWIg5YiX6KGoXHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gMDsgLy8g6YeN572u6YCJ5Lit55qEIHRhYiDntKLlvJVcclxuICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQWxsQ2FjaGUoKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcbiAgfVxyXG4gIHByaXZhdGUgdXJsV2l0aG91dFF1ZXJ5KHVybCkge1xyXG4gICAgcmV0dXJuIHVybC5zcGxpdChcIj9cIilbMF07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJycy1tdWx0aS10YWJcIiBbbmdDbGFzc109XCJ7ICdiLWxpbmUnOiB0YWJMaXN0Lmxlbmd0aCA+IDAgfVwiPlxyXG5cdDx1bD5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0OyBsZXQgaSA9IGluZGV4XCI+XHJcblx0XHRcdDxsaVxyXG5cdFx0XHRcdFtuZ0NsYXNzXT1cInNlbGVjdGVkVGFiID09PSBpID8gJ2lzU2VsZWN0JyA6ICdub3RTZWxlY3QnXCJcclxuXHRcdFx0XHQoY2xpY2spPVwiY2hhbmdlVGFiKHRhYiwgaSlcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PGVqcy10b29sdGlwXHJcblx0XHRcdFx0XHRpZD1cIm5vdFNlbGVjdFRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0W3Nob3dUaXBQb2ludGVyXT1cImZhbHNlXCJcclxuXHRcdFx0XHRcdFtvcGVuRGVsYXldPVwiNTAwXCJcclxuXHRcdFx0XHRcdCpuZ0lmPVwidGFiLmRpc3BsYXlUaXRsZSAhPT0gdGFiLnRpdGxlOyBlbHNlIG9yaWdpblRleHRcIlxyXG5cdFx0XHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDI3cHhcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IHRhYi50aXRsZSB9fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRhYlRpdGxlXCI+e3sgdGFiLmRpc3BsYXlUaXRsZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHQ8L2Vqcy10b29sdGlwPlxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAjb3JpZ2luVGV4dD5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidGFiVGl0bGVcIj5cclxuXHRcdFx0XHRcdFx0e3sgdGFiLmRpc3BsYXlUaXRsZSB9fVxyXG5cdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PHNwYW5cclxuXHRcdFx0XHRcdGNsYXNzPVwiaW1nLWJsb2NrXCJcclxuXHRcdFx0XHRcdCpuZ0lmPVwic2VsZWN0ZWRUYWIgIT09IGkgJiYgaSAhPT0gMFwiXHJcblx0XHRcdFx0Pjwvc3Bhbj5cclxuXHRcdFx0XHQ8aW1nXHJcblx0XHRcdFx0XHQqbmdJZj1cImkgIT09IDBcIlxyXG5cdFx0XHRcdFx0c3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltZy9jbG9zZS11cmwuc3ZnXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJjbG9zZVRhYihpKVwiXHJcblx0XHRcdFx0Lz5cclxuXHRcdFx0PC9saT5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdDwvdWw+XHJcblx0PGRpdiBjbGFzcz1cInJlZnJlc2gtdGFiXCIgKGNsaWNrKT1cInJlZnJlc2hUYWIoKVwiICpuZ0lmPVwidGFiTGlzdC5sZW5ndGggPiAwXCI+XHJcblx0XHQ8ZWpzLXRvb2x0aXBcclxuXHRcdFx0aWQ9XCJub3RTZWxlY3RUb29sdGlwXCJcclxuXHRcdFx0Y3NzQ2xhc3M9XCJub3RTZWxlY3RUb29sdGlwXCJcclxuXHRcdFx0W3Nob3dUaXBQb2ludGVyXT1cImZhbHNlXCJcclxuXHRcdFx0W29wZW5EZWxheV09XCI1MDBcIlxyXG5cdFx0XHRzdHlsZT1cImhlaWdodDogMjdweFwiXHJcblx0XHQ+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+UmVmcmVzaCBDdXJyZW50IFRhYjwvZGl2PlxyXG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8aW1nXHJcblx0XHRcdFx0aWQ9XCJsb2FkaW5nSWNvblwiXHJcblx0XHRcdFx0YWx0XHJcblx0XHRcdFx0Y2xhc3M9XCJyZWZyZXNoLWJ0blwiXHJcblx0XHRcdFx0c3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltZy9kZXNrdG9wLXJlZnJlc2gtYnRuLnN2Z1wiXHJcblx0XHRcdC8+XHJcblx0XHQ8L2Vqcy10b29sdGlwPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxhQUFhLEdBR2QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFZeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUVuQjtJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ0E7SUFOVixZQUNTLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFFOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQXNDLENBQUM7SUFDL0QsQ0FBQztJQUNELFNBQVMsQ0FBbUI7SUFDbkIsZUFBZSxHQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVk7SUFDNUMsaUJBQWlCLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTtJ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LEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7d0dBblNVLGlCQUFpQjs0RkFBakIsaUJBQWlCLHFQQzlCOUIsdzNEQTBEQTs7NEZENUJhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxjQUFjOzJQQWdCZixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQWNQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgQWN0aXZhdGVkUm91dGUsXHJcbiAgTmF2aWdhdGlvbkVuZCxcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyT3V0bGV0LFxyXG59IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFJvdXRlUmV1c2VTdHJhdGVneSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRHJhd2VyU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RyYXdlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEtlZXBBbGl2ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9rZWVwLWFsaXZlLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLW11bHRpLXRhYlwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuICAgIHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZHJhd2VyOiBEcmF3ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZVJldXNlU3RyYXRlZ3k6IFJvdXRlUmV1c2VTdHJhdGVneVxyXG4gICkge1xyXG4gICAgdGhpcy5rZWVwQWxpdmUgPSB0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSBhcyBLZWVwQWxpdmVTZXJ2aWNlO1xyXG4gIH1cclxuICBrZWVwQWxpdmU6IEtlZXBBbGl2ZVNlcnZpY2U7XHJcbiAgQElucHV0KCkgc2luZ2xlUmV1c2VVcmxzOiBzdHJpbmdbXSA9IFtdOyAvL+WPquiDveWNleS4que8k+WtmOeahHVybFxyXG4gIEBJbnB1dCgpIG5vR2VuZXJhdGVUYWJVcmxzOiBzdHJpbmdbXSA9IFtdOyAvL+S4jeeUn+aIkHRhYueahHVybFxyXG4gIEBPdXRwdXQoKSBvblJlZnJlc2hUYWIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBUQUJfV0lEVEggPSAxNjQ7XHJcbiAgR0FQX05PUk1BTCA9IDU0O1xyXG4gIEdBUF9TTUFMTCA9IDMwO1xyXG4gIHRleHRHYXA7IC8vIOaWh+acrOS4jui+ueahhueahOaAu+mXtOi3nVxyXG4gIGZvbzogUm91dGVyT3V0bGV0O1xyXG4gIGNvbVJlZjogYW55O1xyXG4gIHRhYkxpc3QgPSBbXTtcclxuICBzZWxlY3RlZFRhYjogbnVtYmVyID0gMDtcclxuICBtYXhUYWJzOiBudW1iZXIgPSAxMDtcclxuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gd2luZG93LmlubmVyV2lkdGg7IC8vIOWIneWni+WMluWxj+W5leWuveW6plxyXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIsIFtcIiRldmVudFwiXSlcclxuICBvblJlc2l6ZShldmVudCkge1xyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDmm7TmlrDlsY/luZXlrr3luqZcclxuICAgIC8vIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpOyDlnKjmnIDlpJbpnaLlrrnlmajosIPnlKhcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0VGFiKCk7XHJcbiAgICAvLyDop6PlhrPliLfmlrDpobXpnaLlkI7vvIzpgInkuK3nmoQgdGFiIOS4ouWksemXrumimFxyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChlbGUpID0+XHJcbiAgICAgICAgdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRoaXMucm91dGVyLnVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IGlzRXhpc3RJZHg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCB0b29sdGlwRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmUtcG9wdXAtb3BlblwiKTtcclxuICAgICAgICAgICAgLy8g5Yig6ZmkdG9vbHRpcHNcclxuICAgICAgICAgICAgdG9vbHRpcEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IGVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgaHRtbEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBuYXZpZ2F0aW9uLmV4dHJhcy5zdGF0ZTsgLy8g6I635Y+W5Lyg6YCS55qEIHN0YXRlXHJcbiAgICAgICAgICAgIGNvbnN0IHNraXBMb2NhdGlvbkNoYW5nZSA9IG5hdmlnYXRpb24uZXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZTsgLy8g6I635Y+W5piv5ZCm6Lez6L+HIGxvY2F0aW9uIGNoYW5nZVxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5yb290LmZpcnN0Q2hpbGQ7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hdmlnYXRpb25JbmZvID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwibmF2aWdhdGlvbkluZm9cIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGxldCB0aXRsZSA9XHJcbiAgICAgICAgICAgICAgKHN0YXRlICYmIHN0YXRlLnRpdGxlKSB8fFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25JbmZvLnRpdGxlIHx8XHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkluZm8uc3ViVGl0bGUgfHxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uSW5mby5uYW1lO1xyXG5cclxuICAgICAgICAgICAgbGV0IG5vUmV1c2VkID0gKHN0YXRlICYmIHN0YXRlLm5vUmV1c2VkKSB8fCBmYWxzZTsgLy8g5b2T5YmNdGFi5LiN5aSN55So77yM5paw5byA5LiA5LiqdGFiLOW9k+acieW3sue7j+WtmOWcqOeahHRhYuaXtuWAmeS5n+aYr+aWsOW8gFxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFJvdXRlICYmICFza2lwTG9jYXRpb25DaGFuZ2UpIHtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vR2VuZXJhdGVUYWJVcmxzLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVybFdpdGhvdXRRdWVyeSh0aGlzLnJvdXRlci51cmwpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47IC8vIOaOkumZpOS4jeeUn+aIkHRhYueahHVybFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNldFRhYihcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLnVybCxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZS5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRoLFxyXG4gICAgICAgICAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBub1JldXNlZFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudGFiTGlzdCA9IFtdOyAvLyDmuIXnqbogdGFiIOWIl+ihqFxyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IDA7IC8vIOmHjee9rumAieS4reeahCB0YWIg57Si5byVXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRFbGxpcHNpc1RpdGxlKHRpdGxlPykge1xyXG4gICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfTk9STUFMO1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuV2lkdGggPD0gMTEwMCkge1xyXG4gICAgICB0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9TTUFMTDtcclxuICAgIH1cclxuICAgIGxldCB7IGFsbFdpZHRoLCBsZWZ0V2lkdGgsIHJpZ2h0V2lkdGggfSA9IHRoaXMuY2FsY1RhYldpZHRoKCk7XHJcbiAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKFxyXG4gICAgICAoYWxsV2lkdGggLSByaWdodFdpZHRoKSAvICh0aGlzLnRhYkxpc3QgJiYgdGhpcy50YWJMaXN0Lmxlbmd0aClcclxuICAgICk7XHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgPyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG4gICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAxMlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50YWJMaXN0LmZvckVhY2goKGVsZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgZWxlLmRpc3BsYXlUaXRsZSA9IHRoaXMuY2Yuc2V0TWlkZGxlRWxsaXBzaXMoXHJcbiAgICAgICAgICBlbGUudGl0bGUsXHJcbiAgICAgICAgICB3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcbiAgICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgICAgOiB3aWR0aCAtIHRoaXMudGV4dEdhcCxcclxuICAgICAgICAgIDEyXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNhbGNUYWJXaWR0aCgpIHtcclxuICAgIGNvbnN0IHdyYXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYlwiKTtcclxuICAgIGNvbnN0IHVsRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiID4gdWxcIik7XHJcbiAgICBjb25zdCByZWZyZXNoVGFiRGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWIgLnJlZnJlc2gtdGFiXCIpO1xyXG4gICAgbGV0IGFsbFdpZHRoO1xyXG4gICAgbGV0IGxlZnRXaWR0aDtcclxuICAgIGxldCByaWdodFdpZHRoO1xyXG4gICAgaWYgKHdyYXAgJiYgdWxFbGVtZW50KSB7XHJcbiAgICAgIC8vIOiOt+WPluWFg+e0oOeahOS9jee9ruS/oeaBr1xyXG4gICAgICBjb25zdCB3cmFwUmVjdCA9IHdyYXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IHVsUmVjdCA9IHVsRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgY29uc3QgcmVmcmVzaFRhYlJlY3QgPVxyXG4gICAgICAgIHJlZnJlc2hUYWJEaXYgJiYgcmVmcmVzaFRhYkRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgYWxsV2lkdGggPSB3cmFwUmVjdC53aWR0aDtcclxuICAgICAgbGVmdFdpZHRoID0gdWxSZWN0LndpZHRoO1xyXG4gICAgICByaWdodFdpZHRoID0gKHJlZnJlc2hUYWJSZWN0ICYmIHJlZnJlc2hUYWJSZWN0LndpZHRoKSB8fCAxMDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhbGxXaWR0aCxcclxuICAgICAgbGVmdFdpZHRoLFxyXG4gICAgICByaWdodFdpZHRoLFxyXG4gICAgfTtcclxuICB9XHJcbiAgaW5pdFRhYigpIHtcclxuICAgIGxldCBUYWJDYWNoZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcIlRhYkNhY2hlXCIpKTtcclxuICAgIHRoaXMudGFiTGlzdCA9IFRhYkNhY2hlIHx8IFtdO1xyXG4gICAgaWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc3QgdGl0bGUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiZmlyc3RUYWJUaXRsZVwiKTtcclxuICAgICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICAgIHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZVRhYihpZHgsIG5vQ2hhbmdlPykge1xyXG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJMaXN0W2lkeF07XHJcbiAgICB0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKChlbGUpID0+IGVsZS51cmwgIT09IHRhYi51cmwpO1xyXG4gICAgdGhpcy5jbGVhckNhY2hlKHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRhYi51cmwpKTtcclxuICAgIGlmICghbm9DaGFuZ2UgJiYgdGhpcy5zZWxlY3RlZFRhYiA9PT0gaWR4KSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldElkeCA9IE1hdGgubWF4KDAsIGlkeCAtIDEpO1xyXG4gICAgICB0aGlzLmNoYW5nZVRhYih0aGlzLnRhYkxpc3RbdGFyZ2V0SWR4XSwgdGFyZ2V0SWR4KTtcclxuICAgIH1cclxuICAgIGlmIChpZHggPCB0aGlzLnNlbGVjdGVkVGFiKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLnNlbGVjdGVkVGFiIC0gMTsgLy8g5aaC5p6c5YWz6Zet55qEdGFi5Zyo5b2T5YmN6YCJ5Lit55qEdGFi5LmL5YmN77yM6YCJ5LitdGFi57Si5byV5YePMVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiVGFiQ2FjaGVcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJMaXN0KSk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVRhYih0YWIsIGlkeCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0YWIudXJsKTtcclxuICAgIGlmICh0YWIubmF2aWdhdGlvbkluZm8pIHtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICBcIm5hdmlnYXRpb25JbmZvXCIsXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGFiLm5hdmlnYXRpb25JbmZvKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRhYi5mcm9tSW5mbykge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiZnJvbUluZm9cIiwgSlNPTi5zdHJpbmdpZnkodGFiLmZyb21JbmZvKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGFiLnBlcm1pc3Npb25zKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJwZXJtaXNzaW9uc1wiLCBKU09OLnN0cmluZ2lmeSh0YWIucGVybWlzc2lvbnMpKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBpZHg7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGFkZFRhYih1cmwsIHRpdGxlKSB7XHJcbiAgICBpZiAodGhpcy50YWJMaXN0Lmxlbmd0aCA+PSB0aGlzLm1heFRhYnMpIHtcclxuICAgICAgY29uc3Qgc2Vjb25kVGFiID0gdGhpcy50YWJMaXN0WzFdO1xyXG4gICAgICB0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKChlbGUpID0+IGVsZS51cmwgIT09IHNlY29uZFRhYi51cmwpO1xyXG4gICAgICB0aGlzLmNsZWFyQ2FjaGUodGhpcy51cmxXaXRob3V0UXVlcnkoc2Vjb25kVGFiLnVybCkpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbG9jYWxQZXJtaXNzaW9ucyA9XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJwZXJtaXNzaW9uc1wiKSB8fFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBlcm1pc3Npb25zXCIpO1xyXG4gICAgY29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKSk7XHJcbiAgICBjb25zdCBmcm9tSW5mbyA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImZyb21JbmZvXCIpKTtcclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZShsb2NhbFBlcm1pc3Npb25zKTtcclxuXHJcbiAgICB0aGlzLnRhYkxpc3QucHVzaCh7XHJcbiAgICAgIHVybDogdXJsLFxyXG4gICAgICB0aXRsZTogdGl0bGUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIGRpc3BsYXlUaXRsZTogdGl0bGUsXHJcbiAgICAgIG5hdmlnYXRpb25JbmZvOiBuYXZpZ2F0aW9uSW5mbyxcclxuICAgICAgcGVybWlzc2lvbnM6IHBlcm1pc3Npb25zLFxyXG4gICAgICBmcm9tSW5mbzogZnJvbUluZm8sXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLnRhYkxpc3QubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFiKHVybCwgcHVyZVVybCwgdGl0bGUsIG5vUmV1c2VkKSB7XHJcbiAgICBjb25zdCBpc0V4aXN0SWR4ID0gdGhpcy50YWJMaXN0LmZpbmRJbmRleChcclxuICAgICAgKGVsZSkgPT4gdGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09IHRoaXMudXJsV2l0aG91dFF1ZXJ5KHVybClcclxuICAgICk7XHJcbiAgICBpZiAoaXNFeGlzdElkeCA9PT0gLTEpIHtcclxuICAgICAgY29uc3Qgc2luZ2xlSWR4ID0gdGhpcy5zaW5nbGVSZXVzZVVybHMuZmluZEluZGV4KFxyXG4gICAgICAgIChlbGUpID0+IGVsZSA9PT0gcHVyZVVybFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoc2luZ2xlSWR4ICE9PSAtMSkge1xyXG4gICAgICAgIHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAoZWxlKSA9PiAhZWxlLnVybC5pbmNsdWRlcyh0aGlzLnNpbmdsZVJldXNlVXJsc1tzaW5nbGVJZHhdKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh1cmwpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHVybCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB0YXJnZXRUYWJVcmwgPSB0aGlzLnRhYkxpc3RbaXNFeGlzdElkeF0udXJsO1xyXG4gICAgICBpZiAodGFyZ2V0VGFiVXJsICE9PSB1cmwgfHwgbm9SZXVzZWQpIHtcclxuICAgICAgICAvLyDlvZPnvJPlrZjkuIDoh7Tml7blgJnvvIzkvYbmmK91cmzkuI3kuIDoh7TvvIzph43mlrDmjInnhafmlrDnmoR1cmznlJ/miJB0YWJcclxuICAgICAgICB0aGlzLmNsb3NlVGFiKGlzRXhpc3RJZHgsIHRydWUpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hZGRUYWIodXJsLCB0aXRsZSk7XHJcbiAgICAgICAgfSwgMzApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMudGFiTGlzdFtpc0V4aXN0SWR4XSwgaXNFeGlzdElkeCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRpbWVyID0gbnVsbDtcclxuICByZWZyZXNoVGFiKCkge1xyXG4gICAgY29uc3QgbG9hZGluZ0ljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImxvYWRpbmdJY29uXCIpO1xyXG4gICAgbG9hZGluZ0ljb24uY2xhc3NMaXN0LmFkZChcInJlZnJlc2gtdGFiLWxvYWRpbmdcIik7XHJcbiAgICBpZiAodGhpcy50aW1lcikge1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xyXG4gICAgfVxyXG4gICAgLy8g5qih5ouf5Yqg6L296L+H56iL77yMMeenkuWQjuenu+mZpOWKqOeUu1xyXG4gICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBsb2FkaW5nSWNvbi5jbGFzc0xpc3QucmVtb3ZlKFwicmVmcmVzaC10YWItbG9hZGluZ1wiKTtcclxuICAgICAgdGhpcy50aW1lciA9IG51bGw7XHJcbiAgICB9LCAxNTAwKTtcclxuICAgIC8vIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcbiAgICAvLyB0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh0aGlzLnRhYkxpc3RbdGhpcy5zZWxlY3RlZFRhYl0udXJsKTtcclxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmw7IC8vIOiOt+WPluW9k+WJjSBVUkxcclxuICAgIHRoaXMub25SZWZyZXNoVGFiLmVtaXQoY3VycmVudFVybCk7XHJcbiAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFwiL1wiLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChjdXJyZW50VXJsKTsgLy8g6YeN5paw5a+86Iiq5Yiw5b2T5YmNIFVSTFxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckNhY2hlKHVybCkge1xyXG4gICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh1cmwpOyAvLyDosIPnlKjoh6rlrprkuYnnrZbnlaXnmoTmuIXpmaTnvJPlrZjmlrnms5VcclxuICAgIHRoaXMuZHJhd2VyLmRlbGV0ZUNhY2hlKHVybCk7XHJcbiAgfVxyXG4gIGNsZWFuQWxsQ2FjaGUoKSB7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwiVGFiQ2FjaGVcIik7IC8vIOa4hemZpOe8k+WtmFxyXG4gICAgdGhpcy50YWJMaXN0ID0gW107IC8vIOa4heepuiB0YWIg5YiX6KGoXHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gMDsgLy8g6YeN572u6YCJ5Lit55qEIHRhYiDntKLlvJVcclxuICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQWxsQ2FjaGUoKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcbiAgfVxyXG4gIHByaXZhdGUgdXJsV2l0aG91dFF1ZXJ5KHVybCkge1xyXG4gICAgcmV0dXJuIHVybC5zcGxpdChcIj9cIilbMF07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJycy1tdWx0aS10YWJcIiBbbmdDbGFzc109XCJ7ICdiLWxpbmUnOiB0YWJMaXN0Lmxlbmd0aCA+IDAgfVwiPlxyXG5cdDx1bD5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0OyBsZXQgaSA9IGluZGV4XCI+XHJcblx0XHRcdDxsaVxyXG5cdFx0XHRcdFtuZ0NsYXNzXT1cInNlbGVjdGVkVGFiID09PSBpID8gJ2lzU2VsZWN0JyA6ICdub3RTZWxlY3QnXCJcclxuXHRcdFx0XHQoY2xpY2spPVwiY2hhbmdlVGFiKHRhYiwgaSlcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PGVqcy10b29sdGlwXHJcblx0XHRcdFx0XHRpZD1cIm5vdFNlbGVjdFRvb2x0aXBcIlxyXG5cdFx0XHRcdFx0W3Nob3dUaXBQb2ludGVyXT1cImZhbHNlXCJcclxuXHRcdFx0XHRcdFtvcGVuRGVsYXldPVwiNTAwXCJcclxuXHRcdFx0XHRcdCpuZ0lmPVwidGFiLmRpc3BsYXlUaXRsZSAhPT0gdGFiLnRpdGxlOyBlbHNlIG9yaWdpblRleHRcIlxyXG5cdFx0XHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDI3cHhcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IHRhYi50aXRsZSB9fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRhYlRpdGxlXCI+e3sgdGFiLmRpc3BsYXlUaXRsZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHQ8L2Vqcy10b29sdGlwPlxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAjb3JpZ2luVGV4dD5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidGFiVGl0bGVcIj5cclxuXHRcdFx0XHRcdFx0e3sgdGFiLmRpc3BsYXlUaXRsZSB9fVxyXG5cdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PHNwYW5cclxuXHRcdFx0XHRcdGNsYXNzPVwiaW1nLWJsb2NrXCJcclxuXHRcdFx0XHRcdCpuZ0lmPVwic2VsZWN0ZWRUYWIgIT09IGkgJiYgaSAhPT0gMFwiXHJcblx0XHRcdFx0Pjwvc3Bhbj5cclxuXHRcdFx0XHQ8aW1nXHJcblx0XHRcdFx0XHQqbmdJZj1cImkgIT09IDBcIlxyXG5cdFx0XHRcdFx0c3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltZy9jbG9zZS11cmwuc3ZnXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJjbG9zZVRhYihpKVwiXHJcblx0XHRcdFx0Lz5cclxuXHRcdFx0PC9saT5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cdDwvdWw+XHJcblx0PGRpdiBjbGFzcz1cInJlZnJlc2gtdGFiXCIgKGNsaWNrKT1cInJlZnJlc2hUYWIoKVwiICpuZ0lmPVwidGFiTGlzdC5sZW5ndGggPiAwXCI+XHJcblx0XHQ8ZWpzLXRvb2x0aXBcclxuXHRcdFx0aWQ9XCJub3RTZWxlY3RUb29sdGlwXCJcclxuXHRcdFx0Y3NzQ2xhc3M9XCJub3RTZWxlY3RUb29sdGlwXCJcclxuXHRcdFx0W3Nob3dUaXBQb2ludGVyXT1cImZhbHNlXCJcclxuXHRcdFx0W29wZW5EZWxheV09XCI1MDBcIlxyXG5cdFx0XHRzdHlsZT1cImhlaWdodDogMjdweFwiXHJcblx0XHQ+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+UmVmcmVzaCBDdXJyZW50IFRhYjwvZGl2PlxyXG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8aW1nXHJcblx0XHRcdFx0aWQ9XCJsb2FkaW5nSWNvblwiXHJcblx0XHRcdFx0YWx0XHJcblx0XHRcdFx0Y2xhc3M9XCJyZWZyZXNoLWJ0blwiXHJcblx0XHRcdFx0c3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltZy9kZXNrdG9wLXJlZnJlc2gtYnRuLnN2Z1wiXHJcblx0XHRcdC8+XHJcblx0XHQ8L2Vqcy10b29sdGlwPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1669,7 +1669,7 @@ class MultiTabComponent {
|
|
|
1669
1669
|
screenWidth = window.innerWidth; // 初始化屏幕宽度
|
|
1670
1670
|
onResize(event) {
|
|
1671
1671
|
this.screenWidth = window.innerWidth; // 更新屏幕宽度
|
|
1672
|
-
this.setEllipsisTitle();
|
|
1672
|
+
// this.setEllipsisTitle(); 在最外面容器调用
|
|
1673
1673
|
}
|
|
1674
1674
|
ngOnInit() {
|
|
1675
1675
|
this.initTab();
|
|
@@ -1736,6 +1736,8 @@ class MultiTabComponent {
|
|
|
1736
1736
|
: width - this.textGap, 12);
|
|
1737
1737
|
});
|
|
1738
1738
|
}
|
|
1739
|
+
this.ref.markForCheck();
|
|
1740
|
+
this.ref.detectChanges();
|
|
1739
1741
|
}
|
|
1740
1742
|
calcTabWidth() {
|
|
1741
1743
|
const wrap = document.querySelector(".rs-multi-tab");
|
|
@@ -1802,7 +1804,9 @@ class MultiTabComponent {
|
|
|
1802
1804
|
}
|
|
1803
1805
|
addTab(url, title) {
|
|
1804
1806
|
if (this.tabList.length >= this.maxTabs) {
|
|
1805
|
-
this.
|
|
1807
|
+
const secondTab = this.tabList[1];
|
|
1808
|
+
this.tabList = this.tabList.filter((ele) => ele.url !== secondTab.url);
|
|
1809
|
+
this.clearCache(this.urlWithoutQuery(secondTab.url));
|
|
1806
1810
|
}
|
|
1807
1811
|
const localPermissions = sessionStorage.getItem("permissions") ||
|
|
1808
1812
|
localStorage.getItem("permissions");
|
|
@@ -18873,12 +18877,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
18873
18877
|
// 组件类
|
|
18874
18878
|
class MainContainerComponent {
|
|
18875
18879
|
globalDrawer;
|
|
18880
|
+
elementRef;
|
|
18876
18881
|
headerRef;
|
|
18882
|
+
multiTabRef;
|
|
18877
18883
|
drawer;
|
|
18878
18884
|
isCollapsed = false; // 接收输入属性
|
|
18879
18885
|
singleReuseUrls = []; //只能单个缓存的url
|
|
18880
|
-
|
|
18886
|
+
onWidthChange = new EventEmitter();
|
|
18887
|
+
resizeObserver;
|
|
18888
|
+
debouncedHandleResize;
|
|
18889
|
+
constructor(globalDrawer, elementRef) {
|
|
18881
18890
|
this.globalDrawer = globalDrawer;
|
|
18891
|
+
this.elementRef = elementRef;
|
|
18892
|
+
this.debouncedHandleResize = debounce((width) => {
|
|
18893
|
+
// console.log("Debounced width change:", width);
|
|
18894
|
+
// 在这里处理防抖后的宽度变化逻辑
|
|
18895
|
+
this.multiTabRef && this.multiTabRef.setEllipsisTitle();
|
|
18896
|
+
this.onWidthChange.emit(width);
|
|
18897
|
+
}, 300);
|
|
18882
18898
|
}
|
|
18883
18899
|
ngOnInit() { }
|
|
18884
18900
|
onResize(event) {
|
|
@@ -18895,6 +18911,19 @@ class MainContainerComponent {
|
|
|
18895
18911
|
}
|
|
18896
18912
|
ngAfterViewInit() {
|
|
18897
18913
|
this.globalDrawer.setDrawer(this.drawer); // 设置抽屉组件
|
|
18914
|
+
const rightAside = this.elementRef.nativeElement.querySelector(".right-aside");
|
|
18915
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
|
18916
|
+
for (const entry of entries) {
|
|
18917
|
+
const width = entry.contentRect.width;
|
|
18918
|
+
this.debouncedHandleResize(width);
|
|
18919
|
+
}
|
|
18920
|
+
});
|
|
18921
|
+
this.resizeObserver.observe(rightAside);
|
|
18922
|
+
}
|
|
18923
|
+
ngOnDestroy() {
|
|
18924
|
+
if (this.resizeObserver) {
|
|
18925
|
+
this.resizeObserver.disconnect();
|
|
18926
|
+
}
|
|
18898
18927
|
}
|
|
18899
18928
|
onRightAsideClick() {
|
|
18900
18929
|
const screenWidth = window.innerWidth;
|
|
@@ -18902,15 +18931,18 @@ class MainContainerComponent {
|
|
|
18902
18931
|
this.headerRef && this.headerRef.onToggleMenu();
|
|
18903
18932
|
}
|
|
18904
18933
|
}
|
|
18905
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, deps: [{ token: DrawerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
18906
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MainContainerComponent, selector: "rs-main-container", inputs: { isCollapsed: "isCollapsed", singleReuseUrls: "singleReuseUrls" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "headerRef", first: true, predicate: RSHeaderComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div\r\n class=\"right-aside\"\r\n [ngClass]=\"{ isCollapsed: isCollapsed }\"\r\n (click)=\"onRightAsideClick()\"\r\n >\r\n <ng-content select=\"[multiTabSlot]\"></ng-content>\r\n <!-- <rs-multi-tab [singleReuseUrls]=\"singleReuseUrls\"></rs-multi-tab> -->\r\n <div class=\"router-content\">\r\n <rs-drawer #drawer>\r\n <ng-content select=\"[routerSlot]\"></ng-content>\r\n </rs-drawer>\r\n </div>\r\n <rs-footer></rs-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-main-container{display:flex;flex-direction:column;height:100vh}.app-main-container .main-page{flex:1;height:0;display:flex;background-color:var(--rs-container-bg)}.app-main-container .left-aside{height:100%}.app-main-container .right-aside{width:0;flex:1;display:flex;flex-direction:column;padding-right:12px}.app-main-container .right-aside .router-content{flex:1;overflow:auto;max-width:1886px;width:100%;margin:0 auto}@media (max-width: 992px){.app-main-container .right-aside.isCollapsed{position:relative}.app-main-container .right-aside.isCollapsed:after{content:\" \";position:absolute;z-index:5;inset:0;background-color:#0003}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RSFooterComponent, selector: "rs-footer" }, { kind: "component", type: DrawerComponent, selector: "rs-drawer" }] });
|
|
18934
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, deps: [{ token: DrawerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
18935
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MainContainerComponent, selector: "rs-main-container", inputs: { isCollapsed: "isCollapsed", singleReuseUrls: "singleReuseUrls" }, outputs: { onWidthChange: "onWidthChange" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "headerRef", first: true, predicate: RSHeaderComponent, descendants: true, static: true }, { propertyName: "multiTabRef", first: true, predicate: MultiTabComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div\r\n class=\"right-aside\"\r\n [ngClass]=\"{ isCollapsed: isCollapsed }\"\r\n (click)=\"onRightAsideClick()\"\r\n >\r\n <ng-content select=\"[multiTabSlot]\"></ng-content>\r\n <!-- <rs-multi-tab [singleReuseUrls]=\"singleReuseUrls\"></rs-multi-tab> -->\r\n <div class=\"router-content\">\r\n <rs-drawer #drawer>\r\n <ng-content select=\"[routerSlot]\"></ng-content>\r\n </rs-drawer>\r\n </div>\r\n <rs-footer></rs-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-main-container{display:flex;flex-direction:column;height:100vh}.app-main-container .main-page{flex:1;height:0;display:flex;background-color:var(--rs-container-bg)}.app-main-container .left-aside{height:100%}.app-main-container .right-aside{width:0;flex:1;display:flex;flex-direction:column;padding-right:12px}.app-main-container .right-aside .router-content{flex:1;overflow:auto;max-width:1886px;width:100%;margin:0 auto}@media (max-width: 992px){.app-main-container .right-aside.isCollapsed{position:relative}.app-main-container .right-aside.isCollapsed:after{content:\" \";position:absolute;z-index:5;inset:0;background-color:#0003}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RSFooterComponent, selector: "rs-footer" }, { kind: "component", type: DrawerComponent, selector: "rs-drawer" }] });
|
|
18907
18936
|
}
|
|
18908
18937
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, decorators: [{
|
|
18909
18938
|
type: Component,
|
|
18910
18939
|
args: [{ selector: "rs-main-container", template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div\r\n class=\"right-aside\"\r\n [ngClass]=\"{ isCollapsed: isCollapsed }\"\r\n (click)=\"onRightAsideClick()\"\r\n >\r\n <ng-content select=\"[multiTabSlot]\"></ng-content>\r\n <!-- <rs-multi-tab [singleReuseUrls]=\"singleReuseUrls\"></rs-multi-tab> -->\r\n <div class=\"router-content\">\r\n <rs-drawer #drawer>\r\n <ng-content select=\"[routerSlot]\"></ng-content>\r\n </rs-drawer>\r\n </div>\r\n <rs-footer></rs-footer>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-main-container{display:flex;flex-direction:column;height:100vh}.app-main-container .main-page{flex:1;height:0;display:flex;background-color:var(--rs-container-bg)}.app-main-container .left-aside{height:100%}.app-main-container .right-aside{width:0;flex:1;display:flex;flex-direction:column;padding-right:12px}.app-main-container .right-aside .router-content{flex:1;overflow:auto;max-width:1886px;width:100%;margin:0 auto}@media (max-width: 992px){.app-main-container .right-aside.isCollapsed{position:relative}.app-main-container .right-aside.isCollapsed:after{content:\" \";position:absolute;z-index:5;inset:0;background-color:#0003}}\n"] }]
|
|
18911
|
-
}], ctorParameters: function () { return [{ type: DrawerService }]; }, propDecorators: { headerRef: [{
|
|
18940
|
+
}], ctorParameters: function () { return [{ type: DrawerService }, { type: i0.ElementRef }]; }, propDecorators: { headerRef: [{
|
|
18912
18941
|
type: ContentChild,
|
|
18913
18942
|
args: [RSHeaderComponent, { static: true }]
|
|
18943
|
+
}], multiTabRef: [{
|
|
18944
|
+
type: ContentChild,
|
|
18945
|
+
args: [MultiTabComponent, { static: true }]
|
|
18914
18946
|
}], drawer: [{
|
|
18915
18947
|
type: ViewChild,
|
|
18916
18948
|
args: ["drawer", { static: false }]
|
|
@@ -18918,6 +18950,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
18918
18950
|
type: Input
|
|
18919
18951
|
}], singleReuseUrls: [{
|
|
18920
18952
|
type: Input
|
|
18953
|
+
}], onWidthChange: [{
|
|
18954
|
+
type: Output
|
|
18921
18955
|
}], onResize: [{
|
|
18922
18956
|
type: HostListener,
|
|
18923
18957
|
args: ["window:resize", ["$event"]]
|
|
@@ -19123,7 +19157,7 @@ class CheckboxGroupComponent {
|
|
|
19123
19157
|
error = false;
|
|
19124
19158
|
valueChange = new EventEmitter();
|
|
19125
19159
|
ngOnInit() {
|
|
19126
|
-
console.log('first',
|
|
19160
|
+
// console.log('first',this.value)
|
|
19127
19161
|
}
|
|
19128
19162
|
onChange(event, option) {
|
|
19129
19163
|
const originalValue = this.value;
|