raise-common-lib-new 0.0.20 → 0.0.22
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/assets/language/fr.d.ts +3377 -0
- package/assets/language/ja.d.ts +3351 -0
- package/assets/language/ko.d.ts +3351 -0
- package/assets/language/zh-CN.d.ts +3064 -0
- package/assets/language/zh-TW.d.ts +3354 -0
- package/esm2022/assets/language/fr.mjs +3378 -0
- package/esm2022/assets/language/ja.mjs +3352 -0
- package/esm2022/assets/language/ko.mjs +3352 -0
- package/esm2022/assets/language/zh-CN.mjs +3065 -0
- package/esm2022/assets/language/zh-TW.mjs +3355 -0
- package/esm2022/lib/commentary/constants.mjs +2 -0
- package/esm2022/lib/commentary/index.component.mjs +146 -0
- package/esm2022/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.mjs +44 -0
- package/esm2022/lib/common-grid/grid-action/grid-action.component.mjs +18 -0
- package/esm2022/lib/common-grid/index.component.mjs +52 -30
- package/esm2022/lib/dialog/common-delete-dialog/index.component.mjs +2 -2
- package/esm2022/lib/dialog/common-dialog/index.component.mjs +4 -4
- package/esm2022/lib/form/checkbox-group/index.component.mjs +2 -2
- package/esm2022/lib/form/drawer-form/constants.mjs +10 -0
- package/esm2022/lib/form/drawer-form/drawer-form.component.mjs +336 -0
- package/esm2022/lib/form/encrypted-input/index.component.mjs +35 -0
- package/esm2022/lib/form/radio-group/index.component.mjs +2 -2
- package/esm2022/lib/form/switch-input/index.component.mjs +2 -2
- package/esm2022/lib/form/tag-input/index.component.mjs +31 -11
- package/esm2022/lib/form/toolbar-item/index.component.mjs +56 -0
- package/esm2022/lib/layout/drawer/index.component.mjs +165 -0
- package/esm2022/lib/layout/grid-box/index.component.mjs +37 -12
- package/esm2022/lib/layout/main-container/index.component.mjs +47 -9
- package/esm2022/lib/layout/multi-tab/index.component.mjs +137 -30
- package/esm2022/lib/layout/nav-card-group/constants.mjs +2 -0
- package/esm2022/lib/layout/nav-card-group/index.component.mjs +37 -0
- package/esm2022/lib/layout/page-list/index.component.mjs +38 -8
- package/esm2022/lib/layout/page-tab/index.component.mjs +25 -6
- package/esm2022/lib/layout/rs-aside/index.component.mjs +54 -9
- package/esm2022/lib/layout/rs-footer/index.component.mjs +2 -2
- package/esm2022/lib/layout/rs-header/index.component.mjs +38 -29
- package/esm2022/lib/layout/toolbar/constants.mjs +2 -0
- package/esm2022/lib/layout/toolbar/index.component.mjs +79 -0
- package/esm2022/lib/raise-common-lib.module.mjs +76 -7
- package/esm2022/lib/service/common-function.service.mjs +87 -1
- package/esm2022/lib/service/dialog.service.mjs +5 -5
- package/esm2022/lib/service/drawer.service.mjs +111 -0
- package/esm2022/lib/service/keep-alive.service.mjs +51 -12
- package/esm2022/lib/service/translation.service.mjs +98 -0
- package/esm2022/lib/utils/decorator.mjs +14 -0
- package/esm2022/public-api.mjs +35 -20
- package/fesm2022/raise-common-lib-new.mjs +18751 -676
- package/fesm2022/raise-common-lib-new.mjs.map +1 -1
- package/lib/commentary/constants.d.ts +15 -0
- package/lib/commentary/index.component.d.ts +38 -0
- package/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.d.ts +10 -0
- package/lib/common-grid/grid-action/grid-action.component.d.ts +14 -0
- package/lib/common-grid/index.component.d.ts +8 -5
- package/lib/form/drawer-form/constants.d.ts +34 -0
- package/lib/form/drawer-form/drawer-form.component.d.ts +67 -0
- package/lib/form/encrypted-input/index.component.d.ts +14 -0
- package/lib/form/tag-input/index.component.d.ts +9 -3
- package/lib/form/toolbar-item/index.component.d.ts +17 -0
- package/lib/layout/drawer/index.component.d.ts +45 -0
- package/lib/layout/grid-box/index.component.d.ts +9 -5
- package/lib/layout/main-container/index.component.d.ts +10 -1
- package/lib/layout/multi-tab/index.component.d.ts +19 -6
- package/lib/layout/nav-card-group/constants.d.ts +14 -0
- package/lib/layout/nav-card-group/index.component.d.ts +16 -0
- package/lib/layout/page-list/index.component.d.ts +9 -3
- package/lib/layout/page-tab/index.component.d.ts +6 -2
- package/lib/layout/rs-aside/index.component.d.ts +8 -3
- package/lib/layout/rs-header/index.component.d.ts +12 -12
- package/lib/layout/toolbar/constants.d.ts +8 -0
- package/lib/layout/toolbar/index.component.d.ts +22 -0
- package/lib/raise-common-lib.module.d.ts +48 -37
- package/lib/service/common-function.service.d.ts +9 -0
- package/lib/service/drawer.service.d.ts +46 -0
- package/lib/service/keep-alive.service.d.ts +4 -0
- package/lib/service/translation.service.d.ts +12 -0
- package/lib/utils/decorator.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +34 -19
- package/src/assets/img/comment-cancel.svg +4 -0
- package/src/assets/img/comment-check.svg +5 -0
- package/src/assets/img/down-arrow.svg +3 -0
- package/src/assets/img/drawer-back.svg +4 -0
- package/src/assets/img/eye-close.svg +4 -0
- package/src/assets/img/eye-open.svg +4 -0
- package/src/assets/img/grid-action-copy.svg +6 -0
- package/src/assets/img/grid-action-delete.svg +14 -0
- package/src/assets/img/grid-action-detail.svg +7 -0
- package/src/assets/img/grid-action-download.svg +7 -0
- package/src/assets/img/grid-action-edit.svg +4 -0
- package/src/assets/img/grid-action-export.svg +12 -0
- package/src/assets/img/grid-action-move.svg +8 -0
- package/src/assets/img/grid-action-note.svg +10 -0
- package/src/assets/img/grid-action-send.svg +5 -0
- package/src/assets/img/grid-action-settle.svg +13 -0
- package/src/assets/img/grid-menu-arrow-right.svg +3 -0
- package/src/assets/img/grid-pager-arrow-left.svg +3 -0
- package/src/assets/img/grid-pager-arrows-left.svg +4 -0
- package/src/assets/img/more.svg +5 -0
- package/src/assets/img/table-column-menu.svg +5 -0
- package/src/assets/img/table-sort-arrow.svg +6 -0
- package/src/assets/img/toolbar-action-add.svg +4 -0
- package/src/assets/img/toolbar-action-delete.svg +14 -0
- package/src/assets/img/toolbar-action-download.svg +5 -0
- package/src/assets/img/toolbar-action-duplicate.svg +6 -0
- package/src/assets/img/toolbar-action-export.svg +5 -0
- package/src/assets/img/toolbar-action-import.svg +5 -0
- package/src/assets/img/toolbar-action-refresh.svg +14 -0
- package/src/assets/img/toolbar-action-upload.svg +5 -0
- package/src/assets/img/tooltip-icon.svg +4 -0
- package/src/assets/language/fr.ts +3603 -0
- package/src/assets/language/ja.ts +3501 -0
- package/src/assets/language/ko.ts +3478 -0
- package/src/assets/language/zh-CN.ts +3115 -0
- package/src/assets/language/zh-TW.ts +3411 -0
- package/src/assets/style/reset/button.scss +41 -8
- package/src/assets/style/reset/checkbox.scss +33 -0
- package/src/assets/style/reset/dropdown.scss +42 -10
- package/src/assets/style/reset/grid.scss +733 -132
- package/src/assets/style/reset/input.scss +45 -12
- package/src/assets/style/reset/mat-dialog.scss +6 -2
- package/src/assets/style/reset/radio.scss +37 -0
- package/src/assets/style/reset/switch.scss +32 -0
- package/src/assets/style/style.scss +6 -0
- package/src/assets/style/syncfusion.min.css +1 -1
- package/src/assets/style/variables.scss +4 -4
|
@@ -1,22 +1,60 @@
|
|
|
1
1
|
// 组件类
|
|
2
|
-
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { Component, ContentChild, HostListener, Input, ViewChild, } from "@angular/core";
|
|
3
|
+
import { RSHeaderComponent } from "../rs-header/index.component";
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
5
|
-
import * as i2 from "
|
|
6
|
-
import * as i3 from "../
|
|
5
|
+
import * as i1 from "../../service/drawer.service";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "../rs-footer/index.component";
|
|
8
|
+
import * as i4 from "../drawer/index.component";
|
|
7
9
|
export class MainContainerComponent {
|
|
10
|
+
globalDrawer;
|
|
11
|
+
headerRef;
|
|
12
|
+
drawer;
|
|
8
13
|
isCollapsed = false; // 接收输入属性
|
|
9
14
|
singleReuseUrls = []; //只能单个缓存的url
|
|
15
|
+
constructor(globalDrawer) {
|
|
16
|
+
this.globalDrawer = globalDrawer;
|
|
17
|
+
}
|
|
10
18
|
ngOnInit() { }
|
|
11
|
-
|
|
12
|
-
|
|
19
|
+
onResize(event) {
|
|
20
|
+
const screenWidth = window.innerWidth; // 更新屏幕宽度
|
|
21
|
+
if (screenWidth <= 992) {
|
|
22
|
+
this.headerRef && this.headerRef.onToggleMenu(false);
|
|
23
|
+
}
|
|
24
|
+
else if (screenWidth < 1200) {
|
|
25
|
+
this.headerRef && this.headerRef.onToggleMenu(true);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.headerRef && this.headerRef.onToggleMenu(false);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
ngAfterViewInit() {
|
|
32
|
+
this.globalDrawer.setDrawer(this.drawer); // 设置抽屉组件
|
|
33
|
+
}
|
|
34
|
+
onRightAsideClick() {
|
|
35
|
+
const screenWidth = window.innerWidth;
|
|
36
|
+
if (screenWidth <= 992 && this.isCollapsed) {
|
|
37
|
+
this.headerRef && this.headerRef.onToggleMenu();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
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" }] });
|
|
13
42
|
}
|
|
14
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, decorators: [{
|
|
15
44
|
type: Component,
|
|
16
|
-
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\"
|
|
17
|
-
}], propDecorators: {
|
|
45
|
+
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: [{
|
|
47
|
+
type: ContentChild,
|
|
48
|
+
args: [RSHeaderComponent, { static: true }]
|
|
49
|
+
}], drawer: [{
|
|
50
|
+
type: ViewChild,
|
|
51
|
+
args: ["drawer", { static: false }]
|
|
52
|
+
}], isCollapsed: [{
|
|
18
53
|
type: Input
|
|
19
54
|
}], singleReuseUrls: [{
|
|
20
55
|
type: Input
|
|
56
|
+
}], onResize: [{
|
|
57
|
+
type: HostListener,
|
|
58
|
+
args: ["window:resize", ["$event"]]
|
|
21
59
|
}] } });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tYWluLWNvbnRhaW5lci9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvbGF5b3V0L21haW4tY29udGFpbmVyL2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBU2pFLE1BQU0sT0FBTyxzQkFBc0I7SUFPYjtJQU4rQixTQUFTLENBQUM7SUFDckIsTUFBTSxDQUFrQjtJQUV2RCxXQUFXLEdBQVksS0FBSyxDQUFDLENBQUMsU0FBUztJQUN2QyxlQUFlLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTtJQUVyRCxZQUFvQixZQUEyQjtRQUEzQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtJQUFHLENBQUM7SUFFbkQsUUFBUSxLQUFJLENBQUM7SUFHYixRQUFRLENBQUMsS0FBSztRQUNaLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTO1FBQ2hELElBQUksV0FBVyxJQUFJLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3REO2FBQU0sSUFBSSxXQUFXLEdBQUcsSUFBSSxFQUFFO1lBQzdCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7SUFDckQsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDdEMsSUFBSSxXQUFXLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQzt3R0FoQ1Usc0JBQXNCOzRGQUF0QixzQkFBc0IsME9BQ25CLGlCQUFpQixnS0NuQmpDLG13QkFzQkE7OzRGREphLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxtQkFBbUI7b0dBS3NCLFNBQVM7c0JBQTNELFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNULE1BQU07c0JBQTdDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFN0IsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9OLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJTSGVhZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4uL3JzLWhlYWRlci9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRHJhd2VyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2RyYXdlci9pbmRleC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRHJhd2VyU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RyYXdlci5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1tYWluLWNvbnRhaW5lclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYWluQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAQ29udGVudENoaWxkKFJTSGVhZGVyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBoZWFkZXJSZWY7XHJcbiAgQFZpZXdDaGlsZChcImRyYXdlclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJhd2VyOiBEcmF3ZXJDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpIGlzQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7IC8vIOaOpeaUtui+k+WFpeWxnuaAp1xyXG4gIEBJbnB1dCgpIHNpbmdsZVJldXNlVXJsczogc3RyaW5nW10gPSBbXTsgLy/lj6rog73ljZXkuKrnvJPlrZjnmoR1cmxcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBnbG9iYWxEcmF3ZXI6IERyYXdlclNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICBjb25zdCBzY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDmm7TmlrDlsY/luZXlrr3luqZcclxuICAgIGlmIChzY3JlZW5XaWR0aCA8PSA5OTIpIHtcclxuICAgICAgdGhpcy5oZWFkZXJSZWYgJiYgdGhpcy5oZWFkZXJSZWYub25Ub2dnbGVNZW51KGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoc2NyZWVuV2lkdGggPCAxMjAwKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyUmVmICYmIHRoaXMuaGVhZGVyUmVmLm9uVG9nZ2xlTWVudSh0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyUmVmICYmIHRoaXMuaGVhZGVyUmVmLm9uVG9nZ2xlTWVudShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmdsb2JhbERyYXdlci5zZXREcmF3ZXIodGhpcy5kcmF3ZXIpOyAvLyDorr7nva7mir3lsYnnu4Tku7ZcclxuICB9XHJcblxyXG4gIG9uUmlnaHRBc2lkZUNsaWNrKCkge1xyXG4gICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIGlmIChzY3JlZW5XaWR0aCA8PSA5OTIgJiYgdGhpcy5pc0NvbGxhcHNlZCkge1xyXG4gICAgICB0aGlzLmhlYWRlclJlZiAmJiB0aGlzLmhlYWRlclJlZi5vblRvZ2dsZU1lbnUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFwcC1tYWluLWNvbnRhaW5lclwiPlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJTbG90XVwiPjwvbmctY29udGVudD5cclxuICA8ZGl2IGNsYXNzPVwibWFpbi1wYWdlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdC1hc2lkZVwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGVmdEFzaWRlU2xvdF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJyaWdodC1hc2lkZVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgaXNDb2xsYXBzZWQ6IGlzQ29sbGFwc2VkIH1cIlxyXG4gICAgICAoY2xpY2spPVwib25SaWdodEFzaWRlQ2xpY2soKVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttdWx0aVRhYlNsb3RdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICA8IS0tIDxycy1tdWx0aS10YWIgW3NpbmdsZVJldXNlVXJsc109XCJzaW5nbGVSZXVzZVVybHNcIj48L3JzLW11bHRpLXRhYj4gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3V0ZXItY29udGVudFwiPlxyXG4gICAgICAgIDxycy1kcmF3ZXIgI2RyYXdlcj5cclxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyb3V0ZXJTbG90XVwiPjwvbmctY29udGVudD5cclxuICAgICAgICA8L3JzLWRyYXdlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxycy1mb290ZXI+PC9ycy1mb290ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,25 +1,34 @@
|
|
|
1
1
|
// 组件类
|
|
2
|
-
import { Component, HostListener, Input, } from "@angular/core";
|
|
2
|
+
import { Component, EventEmitter, HostListener, Input, Output, } from "@angular/core";
|
|
3
3
|
import { NavigationEnd, } from "@angular/router";
|
|
4
4
|
import { filter } from "rxjs/operators";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/router";
|
|
7
7
|
import * as i2 from "../../service/common-function.service";
|
|
8
|
-
import * as i3 from "../../service/
|
|
8
|
+
import * as i3 from "../../service/drawer.service";
|
|
9
9
|
import * as i4 from "@angular/common";
|
|
10
10
|
import * as i5 from "@syncfusion/ej2-angular-popups";
|
|
11
11
|
export class MultiTabComponent {
|
|
12
12
|
router;
|
|
13
13
|
cf;
|
|
14
14
|
activatedRoute;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
ref;
|
|
16
|
+
drawer;
|
|
17
|
+
routeReuseStrategy;
|
|
18
|
+
constructor(router, cf, activatedRoute, ref, drawer, routeReuseStrategy) {
|
|
17
19
|
this.router = router;
|
|
18
20
|
this.cf = cf;
|
|
19
21
|
this.activatedRoute = activatedRoute;
|
|
20
|
-
this.
|
|
22
|
+
this.ref = ref;
|
|
23
|
+
this.drawer = drawer;
|
|
24
|
+
this.routeReuseStrategy = routeReuseStrategy;
|
|
25
|
+
this.keepAlive = this.routeReuseStrategy;
|
|
21
26
|
}
|
|
27
|
+
keepAlive;
|
|
22
28
|
singleReuseUrls = []; //只能单个缓存的url
|
|
29
|
+
noGenerateTabUrls = []; //不生成tab的url
|
|
30
|
+
onRefreshTab = new EventEmitter();
|
|
31
|
+
subscriptions = [];
|
|
23
32
|
TAB_WIDTH = 164;
|
|
24
33
|
GAP_NORMAL = 54;
|
|
25
34
|
GAP_SMALL = 30;
|
|
@@ -36,19 +45,50 @@ export class MultiTabComponent {
|
|
|
36
45
|
}
|
|
37
46
|
ngOnInit() {
|
|
38
47
|
this.initTab();
|
|
39
|
-
|
|
48
|
+
// 解决刷新页面后,选中的 tab 丢失问题
|
|
49
|
+
const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) ===
|
|
50
|
+
this.urlWithoutQuery(this.router.url));
|
|
51
|
+
if (isExistIdx !== -1) {
|
|
52
|
+
this.selectedTab = isExistIdx;
|
|
53
|
+
}
|
|
54
|
+
this.subscriptions.push(this.router.events
|
|
40
55
|
.pipe(filter((event) => event instanceof NavigationEnd))
|
|
41
56
|
.subscribe(() => {
|
|
42
57
|
const navigation = this.router.getCurrentNavigation(); // 获取当前导航
|
|
43
58
|
if (navigation) {
|
|
59
|
+
const tooltipElements = document.querySelectorAll(".e-popup-open");
|
|
60
|
+
// 删除tooltips
|
|
61
|
+
tooltipElements.forEach((element) => {
|
|
62
|
+
const htmlElement = element;
|
|
63
|
+
htmlElement.style.display = "none";
|
|
64
|
+
});
|
|
44
65
|
const state = navigation.extras.state; // 获取传递的 state
|
|
66
|
+
const skipLocationChange = navigation.extras.skipLocationChange; // 获取是否跳过 location change
|
|
45
67
|
const currentRoute = this.router.routerState.root.firstChild;
|
|
46
|
-
|
|
47
|
-
|
|
68
|
+
const navigationInfo = JSON.parse(sessionStorage.getItem("navigationInfo") || "{}");
|
|
69
|
+
let title = (state && state.title) ||
|
|
70
|
+
navigationInfo.title ||
|
|
71
|
+
navigationInfo.subTitle ||
|
|
72
|
+
navigationInfo.name;
|
|
73
|
+
let noReused = (state && state.noReused) || false; // 当前tab不复用,新开一个tab,当有已经存在的tab时候也是新开
|
|
74
|
+
if (currentRoute && !skipLocationChange) {
|
|
75
|
+
if (this.noGenerateTabUrls.includes(this.urlWithoutQuery(this.router.url))) {
|
|
76
|
+
return; // 排除不生成tab的url
|
|
77
|
+
}
|
|
78
|
+
this.setTab(this.router.url, currentRoute.snapshot.routeConfig.path, title, noReused);
|
|
48
79
|
}
|
|
49
80
|
}
|
|
50
|
-
});
|
|
51
|
-
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
83
|
+
ngAfterViewInit() {
|
|
84
|
+
setTimeout(() => {
|
|
85
|
+
this.setEllipsisTitle();
|
|
86
|
+
}, 50);
|
|
87
|
+
}
|
|
88
|
+
ngOnDestroy() {
|
|
89
|
+
this.tabList = []; // 清空 tab 列表
|
|
90
|
+
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
91
|
+
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
52
92
|
}
|
|
53
93
|
setEllipsisTitle(title) {
|
|
54
94
|
this.textGap = this.GAP_NORMAL;
|
|
@@ -77,14 +117,14 @@ export class MultiTabComponent {
|
|
|
77
117
|
let allWidth;
|
|
78
118
|
let leftWidth;
|
|
79
119
|
let rightWidth;
|
|
80
|
-
if (wrap && ulElement
|
|
120
|
+
if (wrap && ulElement) {
|
|
81
121
|
// 获取元素的位置信息
|
|
82
122
|
const wrapRect = wrap.getBoundingClientRect();
|
|
83
123
|
const ulRect = ulElement.getBoundingClientRect();
|
|
84
|
-
const refreshTabRect = refreshTabDiv.getBoundingClientRect();
|
|
124
|
+
const refreshTabRect = refreshTabDiv && refreshTabDiv.getBoundingClientRect();
|
|
85
125
|
allWidth = wrapRect.width;
|
|
86
126
|
leftWidth = ulRect.width;
|
|
87
|
-
rightWidth = refreshTabRect.width;
|
|
127
|
+
rightWidth = (refreshTabRect && refreshTabRect.width) || 100;
|
|
88
128
|
}
|
|
89
129
|
return {
|
|
90
130
|
allWidth,
|
|
@@ -95,68 +135,135 @@ export class MultiTabComponent {
|
|
|
95
135
|
initTab() {
|
|
96
136
|
let TabCache = JSON.parse(sessionStorage.getItem("TabCache"));
|
|
97
137
|
this.tabList = TabCache || [];
|
|
138
|
+
if (this.tabList.length === 0) {
|
|
139
|
+
const title = sessionStorage.getItem("firstTabTitle");
|
|
140
|
+
if (title) {
|
|
141
|
+
sessionStorage.removeItem("firstTabTitle");
|
|
142
|
+
const url = this.router.url;
|
|
143
|
+
this.addTab(url, title);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
98
146
|
}
|
|
99
|
-
closeTab(
|
|
147
|
+
closeTab(idx, isExternal) {
|
|
148
|
+
const tab = this.tabList[idx];
|
|
100
149
|
this.tabList = this.tabList.filter((ele) => ele.url !== tab.url);
|
|
101
|
-
this.clearCache(tab.url);
|
|
102
|
-
if (this.selectedTab === idx) {
|
|
150
|
+
this.clearCache(this.urlWithoutQuery(tab.url));
|
|
151
|
+
if (!isExternal && this.selectedTab === idx) {
|
|
103
152
|
const targetIdx = Math.max(0, idx - 1);
|
|
104
153
|
this.changeTab(this.tabList[targetIdx], targetIdx);
|
|
105
154
|
}
|
|
155
|
+
if (idx < this.selectedTab) {
|
|
156
|
+
this.selectedTab = this.selectedTab - 1; // 如果关闭的tab在当前选中的tab之前,选中tab索引减1
|
|
157
|
+
}
|
|
106
158
|
this.setEllipsisTitle();
|
|
107
159
|
sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
|
|
160
|
+
this.ref.markForCheck();
|
|
108
161
|
}
|
|
109
162
|
changeTab(tab, idx) {
|
|
110
163
|
this.router.navigateByUrl(tab.url);
|
|
164
|
+
if (tab.navigationInfo) {
|
|
165
|
+
sessionStorage.setItem("navigationInfo", JSON.stringify(tab.navigationInfo));
|
|
166
|
+
}
|
|
167
|
+
if (tab.fromUrl) {
|
|
168
|
+
sessionStorage.setItem("fromUrl", tab.fromUrl);
|
|
169
|
+
}
|
|
170
|
+
if (tab.permissions) {
|
|
171
|
+
sessionStorage.setItem("permissions", JSON.stringify(tab.permissions));
|
|
172
|
+
}
|
|
111
173
|
this.selectedTab = idx;
|
|
174
|
+
this.ref.markForCheck();
|
|
112
175
|
}
|
|
113
176
|
addTab(url, title) {
|
|
114
177
|
if (this.tabList.length >= this.maxTabs) {
|
|
115
|
-
this.closeTab(
|
|
178
|
+
this.closeTab(1); // 删除第二个,第一个固定
|
|
116
179
|
}
|
|
180
|
+
const localPermissions = sessionStorage.getItem("permissions") ||
|
|
181
|
+
localStorage.getItem("permissions");
|
|
182
|
+
const navigationInfo = JSON.parse(sessionStorage.getItem("navigationInfo"));
|
|
183
|
+
const fromUrl = sessionStorage.getItem("fromUrl");
|
|
184
|
+
const permissions = JSON.parse(localPermissions);
|
|
117
185
|
this.tabList.push({
|
|
118
186
|
url: url,
|
|
119
187
|
title: title || "default",
|
|
120
|
-
displayTitle:
|
|
188
|
+
displayTitle: title,
|
|
189
|
+
navigationInfo: navigationInfo,
|
|
190
|
+
permissions: permissions,
|
|
191
|
+
fromUrl: fromUrl,
|
|
121
192
|
});
|
|
122
193
|
this.selectedTab = this.tabList.length - 1;
|
|
123
194
|
this.setEllipsisTitle();
|
|
124
195
|
sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
|
|
196
|
+
this.ref.markForCheck();
|
|
125
197
|
}
|
|
126
|
-
setTab(url, pureUrl, title) {
|
|
127
|
-
const isExistIdx = this.tabList.findIndex((ele) => ele.url === url);
|
|
198
|
+
setTab(url, pureUrl, title, noReused) {
|
|
199
|
+
const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) === this.urlWithoutQuery(url));
|
|
128
200
|
if (isExistIdx === -1) {
|
|
129
201
|
const singleIdx = this.singleReuseUrls.findIndex((ele) => ele === pureUrl);
|
|
130
202
|
if (singleIdx !== -1) {
|
|
131
203
|
this.tabList = this.tabList.filter((ele) => !ele.url.includes(this.singleReuseUrls[singleIdx]));
|
|
132
204
|
this.keepAlive.clearCache(url);
|
|
205
|
+
this.drawer.deleteCache(url);
|
|
133
206
|
}
|
|
134
207
|
this.addTab(url, title);
|
|
135
208
|
}
|
|
136
209
|
else {
|
|
137
|
-
|
|
210
|
+
const targetTabUrl = this.tabList[isExistIdx].url;
|
|
211
|
+
if (targetTabUrl !== url || noReused) {
|
|
212
|
+
// 当缓存一致时候,但是url不一致,重新按照新的url生成tab
|
|
213
|
+
this.closeTab(isExistIdx, true);
|
|
214
|
+
this.addTab(url, title);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
this.changeTab(this.tabList[isExistIdx], isExistIdx);
|
|
218
|
+
}
|
|
219
|
+
this.ref.markForCheck();
|
|
138
220
|
}
|
|
139
221
|
}
|
|
222
|
+
timer = null;
|
|
140
223
|
refreshTab() {
|
|
141
|
-
|
|
224
|
+
const loadingIcon = document.getElementById("loadingIcon");
|
|
225
|
+
loadingIcon.classList.add("refresh-tab-loading");
|
|
226
|
+
if (this.timer) {
|
|
227
|
+
clearInterval(this.timer);
|
|
228
|
+
}
|
|
229
|
+
// 模拟加载过程,1秒后移除动画
|
|
230
|
+
this.timer = setTimeout(() => {
|
|
231
|
+
loadingIcon.classList.remove("refresh-tab-loading");
|
|
232
|
+
this.timer = null;
|
|
233
|
+
}, 1500);
|
|
234
|
+
// this.keepAlive.clearCache(this.tabList[this.selectedTab].url);
|
|
235
|
+
// this.drawer.deleteCache(this.tabList[this.selectedTab].url);
|
|
142
236
|
const currentUrl = this.router.url; // 获取当前 URL
|
|
143
|
-
this.
|
|
144
|
-
|
|
145
|
-
|
|
237
|
+
this.onRefreshTab.emit(currentUrl);
|
|
238
|
+
// this.router.navigateByUrl("/", { skipLocationChange: true }).then(() => {
|
|
239
|
+
// this.router.navigateByUrl(currentUrl); // 重新导航到当前 URL
|
|
240
|
+
// });
|
|
146
241
|
}
|
|
147
242
|
clearCache(url) {
|
|
148
243
|
this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法
|
|
244
|
+
this.drawer.deleteCache(url);
|
|
245
|
+
}
|
|
246
|
+
cleanAllCache() {
|
|
247
|
+
this.ngOnDestroy();
|
|
248
|
+
this.keepAlive.clearAllCache(); // 调用自定义策略的清除缓存方法
|
|
149
249
|
}
|
|
150
|
-
|
|
151
|
-
|
|
250
|
+
urlWithoutQuery(url) {
|
|
251
|
+
return url.split("?")[0];
|
|
252
|
+
}
|
|
253
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiTabComponent, deps: [{ token: i1.Router }, { token: i2.CommonFunctionService }, { token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i3.DrawerService }, { token: i1.RouteReuseStrategy }], target: i0.ɵɵFactoryTarget.Component });
|
|
254
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiTabComponent, selector: "rs-multi-tab", inputs: { singleReuseUrls: "singleReuseUrls", noGenerateTabUrls: "noGenerateTabUrls" }, outputs: { onRefreshTab: "onRefreshTab" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, 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", 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 ease}.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:#1f7bff0a}.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{animation:spin 1s linear infinite}.notSelectTooltip{transform:translate(-12px)}@keyframes spin{0%{transform:rotate(0)}to{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:0px!important}}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.TooltipComponent, selector: "ejs-tooltip", inputs: ["animation", "closeDelay", "container", "content", "cssClass", "enableHtmlParse", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "height", "htmlAttributes", "isSticky", "locale", "mouseTrail", "offsetX", "offsetY", "openDelay", "opensOn", "position", "showTipPointer", "target", "tipPointerPosition", "width", "windowCollision"], outputs: ["afterClose", "afterOpen", "beforeClose", "beforeCollision", "beforeOpen", "beforeRender", "created", "destroyed"] }] });
|
|
152
255
|
}
|
|
153
256
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiTabComponent, decorators: [{
|
|
154
257
|
type: Component,
|
|
155
|
-
args: [{ selector: "rs-multi-tab", template: "<div class=\"rs-multi-tab\">\r\n
|
|
156
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.CommonFunctionService }, { type: i1.ActivatedRoute }, { type: i3.
|
|
258
|
+
args: [{ selector: "rs-multi-tab", 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", 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 ease}.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:#1f7bff0a}.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{animation:spin 1s linear infinite}.notSelectTooltip{transform:translate(-12px)}@keyframes spin{0%{transform:rotate(0)}to{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:0px!important}}\n"] }]
|
|
259
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.CommonFunctionService }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.DrawerService }, { type: i1.RouteReuseStrategy }]; }, propDecorators: { singleReuseUrls: [{
|
|
260
|
+
type: Input
|
|
261
|
+
}], noGenerateTabUrls: [{
|
|
157
262
|
type: Input
|
|
263
|
+
}], onRefreshTab: [{
|
|
264
|
+
type: Output
|
|
158
265
|
}], onResize: [{
|
|
159
266
|
type: HostListener,
|
|
160
267
|
args: ["window:resize", ["$event"]]
|
|
161
268
|
}] } });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFDTCxTQUFTLEVBR1QsWUFBWSxFQUNaLEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsYUFBYSxHQUdkLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQU92RCxNQUFNLE9BQU8saUJBQWlCO0lBRW5CO0lBQ0E7SUFDQTtJQUNBO0lBSlQsWUFDUyxNQUFjLEVBQ2QsRUFBeUIsRUFDekIsY0FBOEIsRUFDOUIsU0FBMkI7UUFIM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUNqQyxDQUFDO0lBQ0ssZUFBZSxHQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVk7SUFFckQsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUNoQixVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixPQUFPLENBQUMsQ0FBQyxZQUFZO0lBQ3JCLEdBQUcsQ0FBZTtJQUNsQixNQUFNLENBQU07SUFDWixPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ2IsV0FBVyxHQUFXLENBQUMsQ0FBQztJQUN4QixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JC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LENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFHO1FBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7SUFDbkQsQ0FBQzt3R0FsS1UsaUJBQWlCOzRGQUFqQixpQkFBaUIsa0tDekI5QixpOUNBNkNBOzs0RkRwQmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGNBQWM7NkxBV2YsZUFBZTtzQkFBdkIsS0FBSztnQkFhTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICBBY3RpdmF0ZWRSb3V0ZSxcclxuICBOYXZpZ2F0aW9uRW5kLFxyXG4gIFJvdXRlcixcclxuICBSb3V0ZXJPdXRsZXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBDb21tb25GdW5jdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9jb21tb24tZnVuY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBLZWVwQWxpdmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZU1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtbXVsdGktdGFiXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE11bHRpVGFiQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuICAgIHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHB1YmxpYyBrZWVwQWxpdmU6IEtlZXBBbGl2ZVNlcnZpY2VcclxuICApIHt9XHJcbiAgQElucHV0KCkgc2luZ2xlUmV1c2VVcmxzOiBzdHJpbmdbXSA9IFtdOyAvL+WPquiDveWNleS4que8k+WtmOeahHVybFxyXG5cclxuICBUQUJfV0lEVEggPSAxNjQ7XHJcbiAgR0FQX05PUk1BTCA9IDU0O1xyXG4gIEdBUF9TTUFMTCA9IDMwO1xyXG4gIHRleHRHYXA7IC8vIOaWh+acrOS4jui+ueahhueahOaAu+mXtOi3nVxyXG4gIGZvbzogUm91dGVyT3V0bGV0O1xyXG4gIGNvbVJlZjogYW55O1xyXG4gIHRhYkxpc3QgPSBbXTtcclxuICBzZWxlY3RlZFRhYjogbnVtYmVyID0gMDtcclxuICBtYXhUYWJzOiBudW1iZXIgPSAxMDtcclxuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gd2luZG93LmlubmVyV2lkdGg7IC8vIOWIneWni+WMluWxj+W5leWuveW6plxyXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIsIFtcIiRldmVudFwiXSlcclxuICBvblJlc2l6ZShldmVudCkge1xyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDmm7TmlrDlsY/luZXlrr3luqZcclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRUYWIoKTtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTsgLy8g6I635Y+W5b2T5YmN5a+86IiqXHJcbiAgICAgICAgaWYgKG5hdmlnYXRpb24pIHtcclxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gbmF2aWdhdGlvbi5leHRyYXMuc3RhdGU7IC8vIOiOt+WPluS8oOmAkueahCBzdGF0ZVxyXG4gICAgICAgICAgY29uc3QgY3VycmVudFJvdXRlID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUucm9vdC5maXJzdENoaWxkO1xyXG4gICAgICAgICAgaWYgKGN1cnJlbnRSb3V0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFRhYihcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlci51cmwsXHJcbiAgICAgICAgICAgICAgY3VycmVudFJvdXRlLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGgsXHJcbiAgICAgICAgICAgICAgc3RhdGUgJiYgc3RhdGUudGl0bGVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRFbGxpcHNpc1RpdGxlKHRpdGxlPykge1xyXG4gICAgdGhpcy50ZXh0R2FwID0gdGhpcy5HQVBfTk9STUFMO1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuV2lkdGggPD0gMTEwMCkge1xyXG4gICAgICB0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9TTUFMTDtcclxuICAgIH1cclxuICAgIGxldCB7IGFsbFdpZHRoLCBsZWZ0V2lkdGgsIHJpZ2h0V2lkdGggfSA9IHRoaXMuY2FsY1RhYldpZHRoKCk7XHJcbiAgICBsZXQgd2lkdGggPSBNYXRoLmZsb29yKFxyXG4gICAgICAoYWxsV2lkdGggLSByaWdodFdpZHRoKSAvICh0aGlzLnRhYkxpc3QgJiYgdGhpcy50YWJMaXN0Lmxlbmd0aClcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKFxyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIHdpZHRoID4gdGhpcy5UQUJfV0lEVEhcclxuICAgICAgICAgID8gdGhpcy5UQUJfV0lEVEggLSB0aGlzLnRleHRHYXBcclxuICAgICAgICAgIDogd2lkdGggLSB0aGlzLnRleHRHYXAsXHJcbiAgICAgICAgMTJcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFiTGlzdC5mb3JFYWNoKChlbGUsIGlkeCkgPT4ge1xyXG4gICAgICAgIGVsZS5kaXNwbGF5VGl0bGUgPSB0aGlzLmNmLnNldE1pZGRsZUVsbGlwc2lzKFxyXG4gICAgICAgICAgZWxlLnRpdGxlLFxyXG4gICAgICAgICAgd2lkdGggPiB0aGlzLlRBQl9XSURUSFxyXG4gICAgICAgICAgICA/IHRoaXMuVEFCX1dJRFRIIC0gdGhpcy50ZXh0R2FwXHJcbiAgICAgICAgICAgIDogd2lkdGggLSB0aGlzLnRleHRHYXAsXHJcbiAgICAgICAgICAxMlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsY1RhYldpZHRoKCkge1xyXG4gICAgY29uc3Qgd3JhcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiXCIpO1xyXG4gICAgY29uc3QgdWxFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5ycy1tdWx0aS10YWIgPiB1bFwiKTtcclxuICAgIGNvbnN0IHJlZnJlc2hUYWJEaXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYiAucmVmcmVzaC10YWJcIik7XHJcbiAgICBsZXQgYWxsV2lkdGg7XHJcbiAgICBsZXQgbGVmdFdpZHRoO1xyXG4gICAgbGV0IHJpZ2h0V2lkdGg7XHJcbiAgICBpZiAod3JhcCAmJiB1bEVsZW1lbnQgJiYgcmVmcmVzaFRhYkRpdikge1xyXG4gICAgICAvLyDojrflj5blhYPntKDnmoTkvY3nva7kv6Hmga9cclxuICAgICAgY29uc3Qgd3JhcFJlY3QgPSB3cmFwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCB1bFJlY3QgPSB1bEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGNvbnN0IHJlZnJlc2hUYWJSZWN0ID0gcmVmcmVzaFRhYkRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgYWxsV2lkdGggPSB3cmFwUmVjdC53aWR0aDtcclxuICAgICAgbGVmdFdpZHRoID0gdWxSZWN0LndpZHRoO1xyXG4gICAgICByaWdodFdpZHRoID0gcmVmcmVzaFRhYlJlY3Qud2lkdGg7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhbGxXaWR0aCxcclxuICAgICAgbGVmdFdpZHRoLFxyXG4gICAgICByaWdodFdpZHRoLFxyXG4gICAgfTtcclxuICB9XHJcbiAgaW5pdFRhYigpIHtcclxuXHRcdGxldCBUYWJDYWNoZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcIlRhYkNhY2hlXCIpKTtcclxuICAgIHRoaXMudGFiTGlzdCA9IFRhYkNhY2hlIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VUYWIodGFiLCBpZHgpIHtcclxuICAgIHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoKGVsZSkgPT4gZWxlLnVybCAhPT0gdGFiLnVybCk7XHJcbiAgICB0aGlzLmNsZWFyQ2FjaGUodGFiLnVybCk7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gaWR4KSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldElkeCA9IE1hdGgubWF4KDAsIGlkeCAtIDEpO1xyXG4gICAgICB0aGlzLmNoYW5nZVRhYih0aGlzLnRhYkxpc3RbdGFyZ2V0SWR4XSwgdGFyZ2V0SWR4KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlVGFiKHRhYiwgaWR4KSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhYi51cmwpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IGlkeDtcclxuICB9XHJcblxyXG4gIGFkZFRhYih1cmwsIHRpdGxlKSB7XHJcbiAgICBpZiAodGhpcy50YWJMaXN0Lmxlbmd0aCA+PSB0aGlzLm1heFRhYnMpIHtcclxuICAgICAgdGhpcy5jbG9zZVRhYih0aGlzLnRhYkxpc3RbMF0sIDApOyAvLyDliKDpmaTnrKzkuIDkuKpcclxuICAgIH1cclxuICAgIHRoaXMudGFiTGlzdC5wdXNoKHtcclxuICAgICAgdXJsOiB1cmwsXHJcbiAgICAgIHRpdGxlOiB0aXRsZSB8fCBcImRlZmF1bHRcIixcclxuICAgICAgZGlzcGxheVRpdGxlOiB0aGlzLnNldEVsbGlwc2lzVGl0bGUodGl0bGUgfHwgXCJkZWZhdWx0XCIpLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy50YWJMaXN0Lmxlbmd0aCAtIDE7XHJcbiAgICB0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUYWIodXJsLCBwdXJlVXJsLCB0aXRsZSkge1xyXG4gICAgY29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoKGVsZSkgPT4gZWxlLnVybCA9PT0gdXJsKTtcclxuICAgIGlmIChpc0V4aXN0SWR4ID09PSAtMSkge1xyXG4gICAgICBjb25zdCBzaW5nbGVJZHggPSB0aGlzLnNpbmdsZVJldXNlVXJscy5maW5kSW5kZXgoXHJcbiAgICAgICAgKGVsZSkgPT4gZWxlID09PSBwdXJlVXJsXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChzaW5nbGVJZHggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy50YWJMaXN0ID0gdGhpcy50YWJMaXN0LmZpbHRlcigoZWxlKSA9PlxyXG4gICAgICAgICAgIWVsZS51cmwuaW5jbHVkZXModGhpcy5zaW5nbGVSZXVzZVVybHNbc2luZ2xlSWR4XSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodXJsKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBpc0V4aXN0SWR4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFRhYigpIHtcclxuICAgIHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcbiAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsOyAvLyDojrflj5blvZPliY0gVVJMXHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFwiL1wiLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChjdXJyZW50VXJsKTsgLy8g6YeN5paw5a+86Iiq5Yiw5b2T5YmNIFVSTFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckNhY2hlKHVybCkge1xyXG4gICAgdGhpcy5rZWVwQWxpdmUuY2xlYXJDYWNoZSh1cmwpOyAvLyDosIPnlKjoh6rlrprkuYnnrZbnlaXnmoTmuIXpmaTnvJPlrZjmlrnms5VcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJzLW11bHRpLXRhYlwiPlxyXG4gIDx1bD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJMaXN0OyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxsaVxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGFiID09PSBpID8gJ2lzU2VsZWN0JyA6ICdub3RTZWxlY3QnXCJcclxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlVGFiKHRhYiwgaSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGVqcy10b29sdGlwXHJcbiAgICAgICAgICBpZD1cIm5vdFNlbGVjdFRvb2x0aXBcIlxyXG4gICAgICAgICAgW3Nob3dUaXBQb2ludGVyXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtvcGVuRGVsYXldPVwiNTAwXCJcclxuICAgICAgICAgICpuZ0lmPVwidGFiLmRpc3BsYXlUaXRsZSAhPT0gdGFiLnRpdGxlOyBlbHNlIG9yaWdpblRleHRcIlxyXG4gICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDI3cHhcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgIHt7IHRhYi50aXRsZSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhYlRpdGxlXCI+e3sgdGFiLmRpc3BsYXlUaXRsZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Vqcy10b29sdGlwPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjb3JpZ2luVGV4dD5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFiVGl0bGVcIj5cclxuICAgICAgICAgICAge3sgdGFiLmRpc3BsYXlUaXRsZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWctYmxvY2tcIiAqbmdJZj1cInNlbGVjdGVkVGFiICE9PSBpXCI+PC9zcGFuPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICpuZ0lmPVwidGFiTGlzdC5sZW5ndGggIT09IDFcIlxyXG4gICAgICAgICAgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltZy9jbG9zZS11cmwuc3ZnXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbG9zZVRhYih0YWIsIGkpXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC91bD5cclxuICA8ZGl2IGNsYXNzPVwicmVmcmVzaC10YWJcIiAoY2xpY2spPVwicmVmcmVzaFRhYigpXCI+XHJcbiAgICA8aW1nXHJcbiAgICAgIGlkPVwibG9hZGluZ0ljb25cIlxyXG4gICAgICBhbHRcclxuICAgICAgY2xhc3M9XCJyZWZyZXNoLWJ0blwiXHJcbiAgICAgIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvZGVza3RvcC1yZWZyZXNoLWJ0bi5zdmdcIlxyXG4gICAgLz5cclxuICAgIDxzcGFuPlJlZnJlc2ggQ3VycmVudCBUYWI8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9tdWx0aS10YWIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFHTixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTixhQUFhLEdBR2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFZeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUVyQjtJQUNBO0lBQ0E7SUFDQztJQUNBO0lBQ0E7SUFOVCxZQUNRLE1BQWMsRUFDZCxFQUF5QixFQUN6QixjQUE4QixFQUM3QixHQUFzQixFQUN0QixNQUFxQixFQUNyQixrQkFBc0M7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFFOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQXNDLENBQUM7SUFDOUQsQ0FBQztJQUNELFNBQVMsQ0FBbUI7SUFDbkIsZUFBZSxHQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVk7SUFDNUMsaUJBQWlCLEdBQWEsRUFBRSxDQUFDLENBQUMsWUFBWTtJ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Q0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXO1FBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLDRFQUE0RTtRQUM1RSwwREFBMEQ7UUFDMUQsTUFBTTtJQUNQLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBRztRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhO1FBQ1osSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxpQkFBaUI7SUFDbEQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxHQUFHO1FBQzFCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO3dHQXhTVyxpQkFBaUI7NEZBQWpCLGlCQUFpQixxUEM5QjlCLHczREEwREE7OzRGRDVCYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0MsY0FBYzsyUEFnQmYsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFjUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcblx0QWZ0ZXJWaWV3SW5pdCxcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRDb21wb25lbnQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdEhvc3RMaXN0ZW5lcixcclxuXHRJbnB1dCxcclxuXHRPbkRlc3Ryb3ksXHJcblx0T25Jbml0LFxyXG5cdE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG5cdEFjdGl2YXRlZFJvdXRlLFxyXG5cdE5hdmlnYXRpb25FbmQsXHJcblx0Um91dGVyLFxyXG5cdFJvdXRlck91dGxldCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERyYXdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kcmF3ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBLZWVwQWxpdmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uva2VlcC1hbGl2ZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogXCJycy1tdWx0aS10YWJcIixcclxuXHR0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcblx0c3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcblx0XHRwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuXHRcdHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcblx0XHRwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0XHRwcml2YXRlIGRyYXdlcjogRHJhd2VyU2VydmljZSxcclxuXHRcdHByaXZhdGUgcm91dGVSZXVzZVN0cmF0ZWd5OiBSb3V0ZVJldXNlU3RyYXRlZ3lcclxuXHQpIHtcclxuXHRcdHRoaXMua2VlcEFsaXZlID0gdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kgYXMgS2VlcEFsaXZlU2VydmljZTtcclxuXHR9XHJcblx0a2VlcEFsaXZlOiBLZWVwQWxpdmVTZXJ2aWNlO1xyXG5cdEBJbnB1dCgpIHNpbmdsZVJldXNlVXJsczogc3RyaW5nW10gPSBbXTsgLy/lj6rog73ljZXkuKrnvJPlrZjnmoR1cmxcclxuXHRASW5wdXQoKSBub0dlbmVyYXRlVGFiVXJsczogc3RyaW5nW10gPSBbXTsgLy/kuI3nlJ/miJB0YWLnmoR1cmxcclxuXHRAT3V0cHV0KCkgb25SZWZyZXNoVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHRwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblx0VEFCX1dJRFRIID0gMTY0O1xyXG5cdEdBUF9OT1JNQUwgPSA1NDtcclxuXHRHQVBfU01BTEwgPSAzMDtcclxuXHR0ZXh0R2FwOyAvLyDmlofmnKzkuI7ovrnmoYbnmoTmgLvpl7Tot51cclxuXHRmb286IFJvdXRlck91dGxldDtcclxuXHRjb21SZWY6IGFueTtcclxuXHR0YWJMaXN0ID0gW107XHJcblx0c2VsZWN0ZWRUYWI6IG51bWJlciA9IDA7XHJcblx0bWF4VGFiczogbnVtYmVyID0gMTA7XHJcblx0c2NyZWVuV2lkdGg6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoOyAvLyDliJ3lp4vljJblsY/luZXlrr3luqZcclxuXHRASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXHJcblx0b25SZXNpemUoZXZlbnQpIHtcclxuXHRcdHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsgLy8g5pu05paw5bGP5bmV5a695bqmXHJcblx0XHR0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5pbml0VGFiKCk7XHJcblx0XHQvLyDop6PlhrPliLfmlrDpobXpnaLlkI7vvIzpgInkuK3nmoQgdGFiIOS4ouWksemXrumimFxyXG5cdFx0Y29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcblx0XHRcdChlbGUpID0+XHJcblx0XHRcdFx0dGhpcy51cmxXaXRob3V0UXVlcnkoZWxlLnVybCkgPT09XHJcblx0XHRcdFx0dGhpcy51cmxXaXRob3V0UXVlcnkodGhpcy5yb3V0ZXIudXJsKVxyXG5cdFx0KTtcclxuXHRcdGlmIChpc0V4aXN0SWR4ICE9PSAtMSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkVGFiID0gaXNFeGlzdElkeDtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHRcdFx0dGhpcy5yb3V0ZXIuZXZlbnRzXHJcblx0XHRcdFx0LnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuXHRcdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IG5hdmlnYXRpb24gPSB0aGlzLnJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpOyAvLyDojrflj5blvZPliY3lr7zoiKpcclxuXHRcdFx0XHRcdGlmIChuYXZpZ2F0aW9uKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHRvb2x0aXBFbGVtZW50cyA9XHJcblx0XHRcdFx0XHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5lLXBvcHVwLW9wZW5cIik7XHJcblx0XHRcdFx0XHRcdC8vIOWIoOmZpHRvb2x0aXBzXHJcblx0XHRcdFx0XHRcdHRvb2x0aXBFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgaHRtbEVsZW1lbnQgPSBlbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG5cdFx0XHRcdFx0XHRcdGh0bWxFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gbmF2aWdhdGlvbi5leHRyYXMuc3RhdGU7IC8vIOiOt+WPluS8oOmAkueahCBzdGF0ZVxyXG5cdFx0XHRcdFx0XHRjb25zdCBza2lwTG9jYXRpb25DaGFuZ2UgPVxyXG5cdFx0XHRcdFx0XHRcdG5hdmlnYXRpb24uZXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZTsgLy8g6I635Y+W5piv5ZCm6Lez6L+HIGxvY2F0aW9uIGNoYW5nZVxyXG5cdFx0XHRcdFx0XHRjb25zdCBjdXJyZW50Um91dGUgPVxyXG5cdFx0XHRcdFx0XHRcdHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnJvb3QuZmlyc3RDaGlsZDtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmF2aWdhdGlvbkluZm8gPSBKU09OLnBhcnNlKFxyXG5cdFx0XHRcdFx0XHRcdHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKSB8fCBcInt9XCJcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0bGV0IHRpdGxlID1cclxuXHRcdFx0XHRcdFx0XHQoc3RhdGUgJiYgc3RhdGUudGl0bGUpIHx8XHJcblx0XHRcdFx0XHRcdFx0bmF2aWdhdGlvbkluZm8udGl0bGUgfHxcclxuXHRcdFx0XHRcdFx0XHRuYXZpZ2F0aW9uSW5mby5zdWJUaXRsZSB8fFxyXG5cdFx0XHRcdFx0XHRcdG5hdmlnYXRpb25JbmZvLm5hbWU7XHJcblxyXG5cdFx0XHRcdFx0XHRsZXQgbm9SZXVzZWQgPSAoc3RhdGUgJiYgc3RhdGUubm9SZXVzZWQpIHx8IGZhbHNlOyAvLyDlvZPliY10YWLkuI3lpI3nlKjvvIzmlrDlvIDkuIDkuKp0YWIs5b2T5pyJ5bey57uP5a2Y5Zyo55qEdGFi5pe25YCZ5Lmf5piv5paw5byAXHJcblx0XHRcdFx0XHRcdGlmIChjdXJyZW50Um91dGUgJiYgIXNraXBMb2NhdGlvbkNoYW5nZSkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMubm9HZW5lcmF0ZVRhYlVybHMuaW5jbHVkZXMoXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMudXJsV2l0aG91dFF1ZXJ5KHRoaXMucm91dGVyLnVybClcclxuXHRcdFx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybjsgLy8g5o6S6Zmk5LiN55Sf5oiQdGFi55qEdXJsXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2V0VGFiKFxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5yb3V0ZXIudXJsLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y3VycmVudFJvdXRlLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGgsXHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZSxcclxuXHRcdFx0XHRcdFx0XHRcdG5vUmV1c2VkXHJcblx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5zZXRFbGxpcHNpc1RpdGxlKCk7XHJcblx0XHR9LCA1MCk7XHJcblx0fVxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy50YWJMaXN0ID0gW107IC8vIOa4heepuiB0YWIg5YiX6KGoXHJcblx0XHR0aGlzLnNlbGVjdGVkVGFiID0gMDsgLy8g6YeN572u6YCJ5Lit55qEIHRhYiDntKLlvJVcclxuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcclxuXHR9XHJcblxyXG5cdHNldEVsbGlwc2lzVGl0bGUodGl0bGU/KSB7XHJcblx0XHR0aGlzLnRleHRHYXAgPSB0aGlzLkdBUF9OT1JNQUw7XHJcblx0XHRpZiAodGhpcy5zY3JlZW5XaWR0aCA8PSAxMTAwKSB7XHJcblx0XHRcdHRoaXMudGV4dEdhcCA9IHRoaXMuR0FQX1NNQUxMO1xyXG5cdFx0fVxyXG5cdFx0bGV0IHsgYWxsV2lkdGgsIGxlZnRXaWR0aCwgcmlnaHRXaWR0aCB9ID0gdGhpcy5jYWxjVGFiV2lkdGgoKTtcclxuXHRcdGxldCB3aWR0aCA9IE1hdGguZmxvb3IoXHJcblx0XHRcdChhbGxXaWR0aCAtIHJpZ2h0V2lkdGgpIC8gKHRoaXMudGFiTGlzdCAmJiB0aGlzLnRhYkxpc3QubGVuZ3RoKVxyXG5cdFx0KTtcclxuXHRcdGlmICh0aXRsZSkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5jZi5zZXRNaWRkbGVFbGxpcHNpcyhcclxuXHRcdFx0XHR0aXRsZSxcclxuXHRcdFx0XHR3aWR0aCA+IHRoaXMuVEFCX1dJRFRIXHJcblx0XHRcdFx0XHQ/IHRoaXMuVEFCX1dJRFRIIC0gdGhpcy50ZXh0R2FwXHJcblx0XHRcdFx0XHQ6IHdpZHRoIC0gdGhpcy50ZXh0R2FwLFxyXG5cdFx0XHRcdDEyXHJcblx0XHRcdCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnRhYkxpc3QuZm9yRWFjaCgoZWxlLCBpZHgpID0+IHtcclxuXHRcdFx0XHRlbGUuZGlzcGxheVRpdGxlID0gdGhpcy5jZi5zZXRNaWRkbGVFbGxpcHNpcyhcclxuXHRcdFx0XHRcdGVsZS50aXRsZSxcclxuXHRcdFx0XHRcdHdpZHRoID4gdGhpcy5UQUJfV0lEVEhcclxuXHRcdFx0XHRcdFx0PyB0aGlzLlRBQl9XSURUSCAtIHRoaXMudGV4dEdhcFxyXG5cdFx0XHRcdFx0XHQ6IHdpZHRoIC0gdGhpcy50ZXh0R2FwLFxyXG5cdFx0XHRcdFx0MTJcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhbGNUYWJXaWR0aCgpIHtcclxuXHRcdGNvbnN0IHdyYXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnJzLW11bHRpLXRhYlwiKTtcclxuXHRcdGNvbnN0IHVsRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucnMtbXVsdGktdGFiID4gdWxcIik7XHJcblx0XHRjb25zdCByZWZyZXNoVGFiRGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XCIucnMtbXVsdGktdGFiIC5yZWZyZXNoLXRhYlwiXHJcblx0XHQpO1xyXG5cdFx0bGV0IGFsbFdpZHRoO1xyXG5cdFx0bGV0IGxlZnRXaWR0aDtcclxuXHRcdGxldCByaWdodFdpZHRoO1xyXG5cdFx0aWYgKHdyYXAgJiYgdWxFbGVtZW50KSB7XHJcblx0XHRcdC8vIOiOt+WPluWFg+e0oOeahOS9jee9ruS/oeaBr1xyXG5cdFx0XHRjb25zdCB3cmFwUmVjdCA9IHdyYXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblx0XHRcdGNvbnN0IHVsUmVjdCA9IHVsRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdFx0Y29uc3QgcmVmcmVzaFRhYlJlY3QgPVxyXG5cdFx0XHRcdHJlZnJlc2hUYWJEaXYgJiYgcmVmcmVzaFRhYkRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdFx0YWxsV2lkdGggPSB3cmFwUmVjdC53aWR0aDtcclxuXHRcdFx0bGVmdFdpZHRoID0gdWxSZWN0LndpZHRoO1xyXG5cdFx0XHRyaWdodFdpZHRoID0gKHJlZnJlc2hUYWJSZWN0ICYmIHJlZnJlc2hUYWJSZWN0LndpZHRoKSB8fCAxMDA7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRhbGxXaWR0aCxcclxuXHRcdFx0bGVmdFdpZHRoLFxyXG5cdFx0XHRyaWdodFdpZHRoLFxyXG5cdFx0fTtcclxuXHR9XHJcblx0aW5pdFRhYigpIHtcclxuXHRcdGxldCBUYWJDYWNoZSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcIlRhYkNhY2hlXCIpKTtcclxuXHRcdHRoaXMudGFiTGlzdCA9IFRhYkNhY2hlIHx8IFtdO1xyXG5cdFx0aWYgKHRoaXMudGFiTGlzdC5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0Y29uc3QgdGl0bGUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiZmlyc3RUYWJUaXRsZVwiKTtcclxuXHRcdFx0aWYgKHRpdGxlKSB7XHJcblx0XHRcdFx0c2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcImZpcnN0VGFiVGl0bGVcIik7XHJcblx0XHRcdFx0Y29uc3QgdXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG5cdFx0XHRcdHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjbG9zZVRhYihpZHgsIGlzRXh0ZXJuYWw/KSB7XHJcblx0XHRjb25zdCB0YWIgPSB0aGlzLnRhYkxpc3RbaWR4XTtcclxuXHRcdHRoaXMudGFiTGlzdCA9IHRoaXMudGFiTGlzdC5maWx0ZXIoKGVsZSkgPT4gZWxlLnVybCAhPT0gdGFiLnVybCk7XHJcblx0XHR0aGlzLmNsZWFyQ2FjaGUodGhpcy51cmxXaXRob3V0UXVlcnkodGFiLnVybCkpO1xyXG5cdFx0aWYgKCFpc0V4dGVybmFsICYmIHRoaXMuc2VsZWN0ZWRUYWIgPT09IGlkeCkge1xyXG5cdFx0XHRjb25zdCB0YXJnZXRJZHggPSBNYXRoLm1heCgwLCBpZHggLSAxKTtcclxuXHRcdFx0dGhpcy5jaGFuZ2VUYWIodGhpcy50YWJMaXN0W3RhcmdldElkeF0sIHRhcmdldElkeCk7XHJcblx0XHR9XHJcblx0XHRpZiAoaWR4IDwgdGhpcy5zZWxlY3RlZFRhYikge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5zZWxlY3RlZFRhYiAtIDE7IC8vIOWmguaenOWFs+mXreeahHRhYuWcqOW9k+WJjemAieS4reeahHRhYuS5i+WJje+8jOmAieS4rXRhYue0ouW8leWHjzFcclxuXHRcdH1cclxuXHRcdHRoaXMuc2V0RWxsaXBzaXNUaXRsZSgpO1xyXG5cdFx0c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIlRhYkNhY2hlXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMudGFiTGlzdCkpO1xyXG5cdFx0dGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcblx0fVxyXG5cclxuXHRjaGFuZ2VUYWIodGFiLCBpZHgpIHtcclxuXHRcdHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGFiLnVybCk7XHJcblx0XHRpZiAodGFiLm5hdmlnYXRpb25JbmZvKSB7XHJcblx0XHRcdHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcblx0XHRcdFx0XCJuYXZpZ2F0aW9uSW5mb1wiLFxyXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRhYi5uYXZpZ2F0aW9uSW5mbylcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdGlmICh0YWIuZnJvbVVybCkge1xyXG5cdFx0XHRzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiZnJvbVVybFwiLCB0YWIuZnJvbVVybCk7XHJcblx0XHR9XHJcblx0XHRpZiAodGFiLnBlcm1pc3Npb25zKSB7XHJcblx0XHRcdHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcblx0XHRcdFx0XCJwZXJtaXNzaW9uc1wiLFxyXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRhYi5wZXJtaXNzaW9ucylcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSBpZHg7XHJcblx0XHR0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuXHR9XHJcblxyXG5cdGFkZFRhYih1cmwsIHRpdGxlKSB7XHJcblx0XHRpZiAodGhpcy50YWJMaXN0Lmxlbmd0aCA+PSB0aGlzLm1heFRhYnMpIHtcclxuXHRcdFx0dGhpcy5jbG9zZVRhYigxKTsgLy8g5Yig6Zmk56ys5LqM5Liq77yM56ys5LiA5Liq5Zu65a6aXHJcblx0XHR9XHJcblx0XHRjb25zdCBsb2NhbFBlcm1pc3Npb25zID1cclxuXHRcdFx0c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcInBlcm1pc3Npb25zXCIpIHx8XHJcblx0XHRcdGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicGVybWlzc2lvbnNcIik7XHJcblx0XHRjb25zdCBuYXZpZ2F0aW9uSW5mbyA9IEpTT04ucGFyc2UoXHJcblx0XHRcdHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJuYXZpZ2F0aW9uSW5mb1wiKVxyXG5cdFx0KTtcclxuXHRcdGNvbnN0IGZyb21VcmwgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiZnJvbVVybFwiKTtcclxuXHRcdGNvbnN0IHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZShsb2NhbFBlcm1pc3Npb25zKTtcclxuXHJcblx0XHR0aGlzLnRhYkxpc3QucHVzaCh7XHJcblx0XHRcdHVybDogdXJsLFxyXG5cdFx0XHR0aXRsZTogdGl0bGUgfHwgXCJkZWZhdWx0XCIsXHJcblx0XHRcdGRpc3BsYXlUaXRsZTogdGl0bGUsXHJcblx0XHRcdG5hdmlnYXRpb25JbmZvOiBuYXZpZ2F0aW9uSW5mbyxcclxuXHRcdFx0cGVybWlzc2lvbnM6IHBlcm1pc3Npb25zLFxyXG5cdFx0XHRmcm9tVXJsOiBmcm9tVXJsLFxyXG5cdFx0fSk7XHJcblx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy50YWJMaXN0Lmxlbmd0aCAtIDE7XHJcblx0XHR0aGlzLnNldEVsbGlwc2lzVGl0bGUoKTtcclxuXHRcdHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJUYWJDYWNoZVwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnRhYkxpc3QpKTtcclxuXHRcdHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHNldFRhYih1cmwsIHB1cmVVcmwsIHRpdGxlLCBub1JldXNlZCkge1xyXG5cdFx0Y29uc3QgaXNFeGlzdElkeCA9IHRoaXMudGFiTGlzdC5maW5kSW5kZXgoXHJcblx0XHRcdChlbGUpID0+IHRoaXMudXJsV2l0aG91dFF1ZXJ5KGVsZS51cmwpID09PSB0aGlzLnVybFdpdGhvdXRRdWVyeSh1cmwpXHJcblx0XHQpO1xyXG5cdFx0aWYgKGlzRXhpc3RJZHggPT09IC0xKSB7XHJcblx0XHRcdGNvbnN0IHNpbmdsZUlkeCA9IHRoaXMuc2luZ2xlUmV1c2VVcmxzLmZpbmRJbmRleChcclxuXHRcdFx0XHQoZWxlKSA9PiBlbGUgPT09IHB1cmVVcmxcclxuXHRcdFx0KTtcclxuXHRcdFx0aWYgKHNpbmdsZUlkeCAhPT0gLTEpIHtcclxuXHRcdFx0XHR0aGlzLnRhYkxpc3QgPSB0aGlzLnRhYkxpc3QuZmlsdGVyKFxyXG5cdFx0XHRcdFx0KGVsZSkgPT4gIWVsZS51cmwuaW5jbHVkZXModGhpcy5zaW5nbGVSZXVzZVVybHNbc2luZ2xlSWR4XSlcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodXJsKTtcclxuXHRcdFx0XHR0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuYWRkVGFiKHVybCwgdGl0bGUpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc3QgdGFyZ2V0VGFiVXJsID0gdGhpcy50YWJMaXN0W2lzRXhpc3RJZHhdLnVybDtcclxuXHRcdFx0aWYgKHRhcmdldFRhYlVybCAhPT0gdXJsIHx8IG5vUmV1c2VkKSB7XHJcblx0XHRcdFx0Ly8g5b2T57yT5a2Y5LiA6Ie05pe25YCZ77yM5L2G5pivdXJs5LiN5LiA6Ie077yM6YeN5paw5oyJ54Wn5paw55qEdXJs55Sf5oiQdGFiXHJcblx0XHRcdFx0dGhpcy5jbG9zZVRhYihpc0V4aXN0SWR4LCB0cnVlKTtcclxuXHRcdFx0XHR0aGlzLmFkZFRhYih1cmwsIHRpdGxlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmNoYW5nZVRhYih0aGlzLnRhYkxpc3RbaXNFeGlzdElkeF0sIGlzRXhpc3RJZHgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR0aW1lciA9IG51bGw7XHJcblx0cmVmcmVzaFRhYigpIHtcclxuXHRcdGNvbnN0IGxvYWRpbmdJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJsb2FkaW5nSWNvblwiKTtcclxuXHRcdGxvYWRpbmdJY29uLmNsYXNzTGlzdC5hZGQoXCJyZWZyZXNoLXRhYi1sb2FkaW5nXCIpO1xyXG5cdFx0aWYgKHRoaXMudGltZXIpIHtcclxuXHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcclxuXHRcdH1cclxuXHRcdC8vIOaooeaLn+WKoOi9vei/h+eoi++8jDHnp5LlkI7np7vpmaTliqjnlLtcclxuXHRcdHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0bG9hZGluZ0ljb24uY2xhc3NMaXN0LnJlbW92ZShcInJlZnJlc2gtdGFiLWxvYWRpbmdcIik7XHJcblx0XHRcdHRoaXMudGltZXIgPSBudWxsO1xyXG5cdFx0fSwgMTUwMCk7XHJcblx0XHQvLyB0aGlzLmtlZXBBbGl2ZS5jbGVhckNhY2hlKHRoaXMudGFiTGlzdFt0aGlzLnNlbGVjdGVkVGFiXS51cmwpO1xyXG5cdFx0Ly8gdGhpcy5kcmF3ZXIuZGVsZXRlQ2FjaGUodGhpcy50YWJMaXN0W3RoaXMuc2VsZWN0ZWRUYWJdLnVybCk7XHJcblx0XHRjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsOyAvLyDojrflj5blvZPliY0gVVJMXHJcblx0XHR0aGlzLm9uUmVmcmVzaFRhYi5lbWl0KGN1cnJlbnRVcmwpO1xyXG5cdFx0Ly8gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChcIi9cIiwgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcblx0XHQvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoY3VycmVudFVybCk7IC8vIOmHjeaWsOWvvOiIquWIsOW9k+WJjSBVUkxcclxuXHRcdC8vIH0pO1xyXG5cdH1cclxuXHJcblx0Y2xlYXJDYWNoZSh1cmwpIHtcclxuXHRcdHRoaXMua2VlcEFsaXZlLmNsZWFyQ2FjaGUodXJsKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcblx0XHR0aGlzLmRyYXdlci5kZWxldGVDYWNoZSh1cmwpO1xyXG5cdH1cclxuXHJcblx0Y2xlYW5BbGxDYWNoZSgpIHtcclxuXHRcdHRoaXMubmdPbkRlc3Ryb3koKTtcclxuXHRcdHRoaXMua2VlcEFsaXZlLmNsZWFyQWxsQ2FjaGUoKTsgLy8g6LCD55So6Ieq5a6a5LmJ562W55Wl55qE5riF6Zmk57yT5a2Y5pa55rOVXHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHVybFdpdGhvdXRRdWVyeSh1cmwpIHtcclxuXHRcdHJldHVybiB1cmwuc3BsaXQoXCI/XCIpWzBdO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicnMtbXVsdGktdGFiXCIgW25nQ2xhc3NdPVwieyAnYi1saW5lJzogdGFiTGlzdC5sZW5ndGggPiAwIH1cIj5cclxuXHQ8dWw+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG5cdFx0XHQ8bGlcclxuXHRcdFx0XHRbbmdDbGFzc109XCJzZWxlY3RlZFRhYiA9PT0gaSA/ICdpc1NlbGVjdCcgOiAnbm90U2VsZWN0J1wiXHJcblx0XHRcdFx0KGNsaWNrKT1cImNoYW5nZVRhYih0YWIsIGkpXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdDxlanMtdG9vbHRpcFxyXG5cdFx0XHRcdFx0aWQ9XCJub3RTZWxlY3RUb29sdGlwXCJcclxuXHRcdFx0XHRcdFtzaG93VGlwUG9pbnRlcl09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbb3BlbkRlbGF5XT1cIjUwMFwiXHJcblx0XHRcdFx0XHQqbmdJZj1cInRhYi5kaXNwbGF5VGl0bGUgIT09IHRhYi50aXRsZTsgZWxzZSBvcmlnaW5UZXh0XCJcclxuXHRcdFx0XHRcdHN0eWxlPVwiaGVpZ2h0OiAyN3B4XCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWIudGl0bGUgfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJ0YWJUaXRsZVwiPnt7IHRhYi5kaXNwbGF5VGl0bGUgfX08L3NwYW4+XHJcblx0XHRcdFx0PC9lanMtdG9vbHRpcD5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI29yaWdpblRleHQ+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRhYlRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHRhYi5kaXNwbGF5VGl0bGUgfX1cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRjbGFzcz1cImltZy1ibG9ja1wiXHJcblx0XHRcdFx0XHQqbmdJZj1cInNlbGVjdGVkVGFiICE9PSBpICYmIGkgIT09IDBcIlxyXG5cdFx0XHRcdD48L3NwYW4+XHJcblx0XHRcdFx0PGltZ1xyXG5cdFx0XHRcdFx0Km5nSWY9XCJpICE9PSAwXCJcclxuXHRcdFx0XHRcdHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvY2xvc2UtdXJsLnN2Z1wiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiY2xvc2VUYWIoaSlcIlxyXG5cdFx0XHRcdC8+XHJcblx0XHRcdDwvbGk+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L3VsPlxyXG5cdDxkaXYgY2xhc3M9XCJyZWZyZXNoLXRhYlwiIChjbGljayk9XCJyZWZyZXNoVGFiKClcIiAqbmdJZj1cInRhYkxpc3QubGVuZ3RoID4gMFwiPlxyXG5cdFx0PGVqcy10b29sdGlwXHJcblx0XHRcdGlkPVwibm90U2VsZWN0VG9vbHRpcFwiXHJcblx0XHRcdGNzc0NsYXNzPVwibm90U2VsZWN0VG9vbHRpcFwiXHJcblx0XHRcdFtzaG93VGlwUG9pbnRlcl09XCJmYWxzZVwiXHJcblx0XHRcdFtvcGVuRGVsYXldPVwiNTAwXCJcclxuXHRcdFx0c3R5bGU9XCJoZWlnaHQ6IDI3cHhcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlJlZnJlc2ggQ3VycmVudCBUYWI8L2Rpdj5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PGltZ1xyXG5cdFx0XHRcdGlkPVwibG9hZGluZ0ljb25cIlxyXG5cdFx0XHRcdGFsdFxyXG5cdFx0XHRcdGNsYXNzPVwicmVmcmVzaC1idG5cIlxyXG5cdFx0XHRcdHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvZGVza3RvcC1yZWZyZXNoLWJ0bi5zdmdcIlxyXG5cdFx0XHQvPlxyXG5cdFx0PC9lanMtdG9vbHRpcD5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9uYXYtY2FyZC1ncm91cC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTmF2SXRlbSB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICB1cmw6IHN0cmluZztcclxuICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmF2R3JvdXAge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgc3ViVGl0bGU/OiBzdHJpbmc7XHJcbiAgaW1nPzogc3RyaW5nO1xyXG4gIGRlc2M/OiBzdHJpbmc7XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIHN1Ykxpc3Q/OiBOYXZJdGVtW107XHJcbiAgW2tleTogc3RyaW5nXTogYW55O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// 组件类
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
export class RSNavCardGroupComponent {
|
|
7
|
+
router;
|
|
8
|
+
constructor(router) {
|
|
9
|
+
this.router = router;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() { }
|
|
12
|
+
navClick = new EventEmitter();
|
|
13
|
+
navList = [];
|
|
14
|
+
customNavClick = false; // 接收输入属性
|
|
15
|
+
title = "";
|
|
16
|
+
onNavClick(item) {
|
|
17
|
+
if (!this.customNavClick) {
|
|
18
|
+
this.router.navigate([item.url], { state: { title: item.title } });
|
|
19
|
+
}
|
|
20
|
+
this.navClick.emit(item);
|
|
21
|
+
}
|
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSNavCardGroupComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSNavCardGroupComponent, selector: "nav-card-group", inputs: { navList: "navList", customNavClick: "customNavClick", title: "title" }, outputs: { navClick: "navClick" }, ngImport: i0, template: "<div class=\"rs-setting\">\r\n <h1 class=\"rs-page-title\">{{ title }}</h1>\r\n <div class=\"setting-content\">\r\n <div\r\n class=\"setting-group-card\"\r\n *ngFor=\"let group of navList\"\r\n [ngClass]=\"{ pointer: !group.subList }\"\r\n (click)=\"!group.subList && onNavClick(group)\"\r\n >\r\n <header class=\"setting-card-header\">\r\n <div class=\"setting-card-logo\">\r\n <img [src]=\"group.img\" alt=\"\" />\r\n </div>\r\n <h4 class=\"setting-card-title\">{{ group.title }}</h4>\r\n <div\r\n class=\"setting-card-sub-title\"\r\n *ngIf=\"!group.subList\"\r\n >\r\n {{ group.subTitle }}\r\n </div>\r\n </header>\r\n <div class=\"setting-card-desc\" *ngIf=\"!group.subList\">\r\n {{ group.desc }}\r\n </div>\r\n <div\r\n class=\"setting-item\"\r\n *ngFor=\"let item of group.subList\"\r\n (click)=\"onNavClick(item)\"\r\n >\r\n {{ item.title }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".rs-setting{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-setting .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-setting .setting-content{flex:1;height:0;overflow:auto;display:flex;flex-flow:row wrap;gap:20px;padding:4px 20px 40px}.rs-setting .setting-content .setting-group-card{width:100%;min-width:320px;padding:0 12px 16px;border-radius:10px;border:1px solid #eaedf0;background-color:#fff;display:flex;flex-flow:column nowrap}.rs-setting .setting-content .setting-group-card.pointer{cursor:pointer}.rs-setting .setting-content .setting-group-card .setting-card-header{padding:12px 8px;display:flex;flex-flow:column nowrap}.rs-setting .setting-content .setting-group-card .setting-card-header .setting-card-logo{display:flex;flex-flow:column nowrap;gap:4px}.rs-setting .setting-content .setting-group-card .setting-card-header .setting-card-logo img{width:24px;height:24px}.rs-setting .setting-content .setting-group-card .setting-card-header .setting-card-logo:after{content:\" \";width:24px;height:3px;background-color:#ff9618;border-radius:2px}.rs-setting .setting-content .setting-group-card .setting-card-header .setting-card-title{padding:0;margin:12px 0 0;color:#1f3f5c;font-family:Arial;font-size:15px;font-style:normal;font-weight:700;line-height:18px}.rs-setting .setting-content .setting-group-card .setting-card-header .setting-card-sub-title{color:#6c7c90;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;margin-top:6px}.rs-setting .setting-content .setting-group-card .setting-card-desc{padding:6px 8px;color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.rs-setting .setting-content .setting-group-card .setting-item{padding:6px 8px;border-radius:4px;cursor:pointer;color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.rs-setting .setting-content .setting-group-card .setting-item:hover{background-color:#1364b30d}@media screen and (min-width: 741px){.rs-setting .setting-content .setting-group-card{width:calc((100% - 20px)/2)}}@media screen and (min-width: 1297px){.rs-setting .setting-content .setting-group-card{width:calc((100% - 40px) / 3)}}@media screen and (min-width: 1632px){.rs-setting .setting-content .setting-group-card{width:calc((100% - 60px)/4)}}@media screen and (min-width: 1972px){.rs-setting .setting-content .setting-group-card{width:calc((100% - 80px)/5)}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSNavCardGroupComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: "nav-card-group", template: "<div class=\"rs-setting\">\r\n <h1 class=\"rs-page-title\">{{ title }}</h1>\r\n <div class=\"setting-content\">\r\n <div\r\n class=\"setting-group-card\"\r\n *ngFor=\"let group of navList\"\r\n [ngClass]=\"{ pointer: !group.subList }\"\r\n (click)=\"!group.subList && onNavClick(group)\"\r\n >\r\n <header class=\"setting-card-header\">\r\n <div class=\"setting-card-logo\">\r\n <img [src]=\"group.img\" alt=\"\" />\r\n </div>\r\n <h4 class=\"setting-card-title\">{{ group.title }}</h4>\r\n <div\r\n class=\"setting-card-sub-title\"\r\n *ngIf=\"!group.subList\"\r\n >\r\n {{ group.subTitle }}\r\n </div>\r\n </header>\r\n <div class=\"setting-card-desc\" *ngIf=\"!group.subList\">\r\n {{ group.desc }}\r\n </div>\r\n <div\r\n class=\"setting-item\"\r\n *ngFor=\"let item of group.subList\"\r\n (click)=\"onNavClick(item)\"\r\n >\r\n {{ item.title }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".rs-setting{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-setting .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-setting .setting-content{flex:1;height:0;overflow:auto;display:flex;flex-flow:row wrap;gap:20px;padding:4px 20px 40px}.rs-setting .setting-content .setting-group-card{width:100%;min-width:320px;padding:0 12px 16px;border-radius:10px;border:1px solid #eaedf0;background-color:#fff;display:flex;flex-flow:column nowrap}.rs-setting .setting-content .setting-group-card.pointer{cursor:pointer}.rs-setting .setting-content .setting-group-card .setting-card-header{padding:12px 8px;display:flex;flex-flow:column nowrap}.rs-setting .setting-content .setting-group-card .setting-card-header .setting-card-logo{display:flex;flex-flow:column nowrap;gap:4px}.rs-setting .setting-content .setting-group-card .setting-card-header .setting-card-logo img{width:24px;height:24px}.rs-setting .setting-content .setting-group-card .setting-card-header .setting-card-logo:after{content:\" \";width:24px;height:3px;background-color:#ff9618;border-radius:2px}.rs-setting .setting-content .setting-group-card .setting-card-header .setting-card-title{padding:0;margin:12px 0 0;color:#1f3f5c;font-family:Arial;font-size:15px;font-style:normal;font-weight:700;line-height:18px}.rs-setting .setting-content .setting-group-card .setting-card-header .setting-card-sub-title{color:#6c7c90;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;margin-top:6px}.rs-setting .setting-content .setting-group-card .setting-card-desc{padding:6px 8px;color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.rs-setting .setting-content .setting-group-card .setting-item{padding:6px 8px;border-radius:4px;cursor:pointer;color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.rs-setting .setting-content .setting-group-card .setting-item:hover{background-color:#1364b30d}@media screen and (min-width: 741px){.rs-setting .setting-content .setting-group-card{width:calc((100% - 20px)/2)}}@media screen and (min-width: 1297px){.rs-setting .setting-content .setting-group-card{width:calc((100% - 40px) / 3)}}@media screen and (min-width: 1632px){.rs-setting .setting-content .setting-group-card{width:calc((100% - 60px)/4)}}@media screen and (min-width: 1972px){.rs-setting .setting-content .setting-group-card{width:calc((100% - 80px)/5)}}\n"] }]
|
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { navClick: [{
|
|
29
|
+
type: Output
|
|
30
|
+
}], navList: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], customNavClick: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], title: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}] } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9uYXYtY2FyZC1ncm91cC9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvbGF5b3V0L25hdi1jYXJkLWdyb3VwL2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUy9FLE1BQU0sT0FBTyx1QkFBdUI7SUFDZjtJQUFuQixZQUFtQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFDckMsUUFBUSxLQUFVLENBQUM7SUFHbkIsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFMUIsT0FBTyxHQUFlLEVBQUUsQ0FBQztJQUN6QixjQUFjLEdBQVksS0FBSyxDQUFDLENBQUMsU0FBUztJQUMxQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXBCLFVBQVUsQ0FBQyxJQUFJO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNwRTtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7d0dBaEJVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDJLQ1ZwQyxzakNBa0NBOzs0RkR4QmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGdCQUFnQjs2RkFTMUIsUUFBUTtzQkFEUCxNQUFNO2dCQUdFLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBOYXZHcm91cCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibmF2LWNhcmQtZ3JvdXBcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUlNOYXZDYXJkR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByb3V0ZXI6IFJvdXRlcikge31cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG5hdkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBJbnB1dCgpIG5hdkxpc3Q6IE5hdkdyb3VwW10gPSBbXTtcclxuICBASW5wdXQoKSBjdXN0b21OYXZDbGljazogYm9vbGVhbiA9IGZhbHNlOyAvLyDmjqXmlLbovpPlhaXlsZ7mgKdcclxuICBASW5wdXQoKSB0aXRsZSA9IFwiXCI7XHJcblxyXG4gIG9uTmF2Q2xpY2soaXRlbSkge1xyXG4gICAgaWYgKCF0aGlzLmN1c3RvbU5hdkNsaWNrKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtpdGVtLnVybF0sIHsgc3RhdGU6IHsgdGl0bGU6IGl0ZW0udGl0bGUgfSB9KTtcclxuICAgIH1cclxuICAgIHRoaXMubmF2Q2xpY2suZW1pdChpdGVtKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJzLXNldHRpbmdcIj5cclxuICA8aDEgY2xhc3M9XCJycy1wYWdlLXRpdGxlXCI+e3sgdGl0bGUgfX08L2gxPlxyXG4gIDxkaXYgY2xhc3M9XCJzZXR0aW5nLWNvbnRlbnRcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJzZXR0aW5nLWdyb3VwLWNhcmRcIlxyXG4gICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgbmF2TGlzdFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgcG9pbnRlcjogIWdyb3VwLnN1Ykxpc3QgfVwiXHJcbiAgICAgIChjbGljayk9XCIhZ3JvdXAuc3ViTGlzdCAmJiBvbk5hdkNsaWNrKGdyb3VwKVwiXHJcbiAgICA+XHJcbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJzZXR0aW5nLWNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmctY2FyZC1sb2dvXCI+XHJcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZ3JvdXAuaW1nXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aDQgY2xhc3M9XCJzZXR0aW5nLWNhcmQtdGl0bGVcIj57eyBncm91cC50aXRsZSB9fTwvaDQ+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZXR0aW5nLWNhcmQtc3ViLXRpdGxlXCJcclxuICAgICAgICAgICpuZ0lmPVwiIWdyb3VwLnN1Ykxpc3RcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGdyb3VwLnN1YlRpdGxlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvaGVhZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZy1jYXJkLWRlc2NcIiAqbmdJZj1cIiFncm91cC5zdWJMaXN0XCI+XHJcbiAgICAgICAge3sgZ3JvdXAuZGVzYyB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwic2V0dGluZy1pdGVtXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cC5zdWJMaXN0XCJcclxuICAgICAgICAoY2xpY2spPVwib25OYXZDbGljayhpdGVtKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBpdGVtLnRpdGxlIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|