@posiwise/shared-components 0.0.104 → 0.0.105
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/header/header.component.mjs +21 -9
- package/esm2022/lib/privacy-and-tos/privacy-and-tos.component.mjs +26 -13
- package/fesm2022/posiwise-shared-components.mjs +49 -26
- package/fesm2022/posiwise-shared-components.mjs.map +1 -1
- package/lib/header/header.component.d.ts +5 -1
- package/package.json +1 -1
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
import { Component, Injector, Input } from '@angular/core';
|
|
2
2
|
import { AppBaseComponent } from '@posiwise/app-base-component';
|
|
3
|
+
import { AuthService } from '@posiwise/common-services';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@posiwise/
|
|
5
|
-
import * as i2 from "@
|
|
6
|
-
import * as i3 from "@
|
|
5
|
+
import * as i1 from "@posiwise/common-services";
|
|
6
|
+
import * as i2 from "@posiwise/directives";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@jsverse/transloco";
|
|
7
9
|
export class HeaderComponent extends AppBaseComponent {
|
|
8
|
-
constructor(injector) {
|
|
10
|
+
constructor(injector, authService) {
|
|
9
11
|
super(injector);
|
|
12
|
+
this.authService = authService;
|
|
10
13
|
this.landing = false;
|
|
11
14
|
this.logo = this.appConfig?.company?.logos?.main_contrast?.url;
|
|
15
|
+
this.authService
|
|
16
|
+
.getToken$()
|
|
17
|
+
.pipe()
|
|
18
|
+
.subscribe(res => {
|
|
19
|
+
this.loggedIn = res ? true : false;
|
|
20
|
+
});
|
|
12
21
|
}
|
|
13
|
-
|
|
14
|
-
|
|
22
|
+
navigateToLogin() {
|
|
23
|
+
window.location.href = '/login';
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: HeaderComponent, deps: [{ token: i0.Injector }, { token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: HeaderComponent, selector: "pw-header", inputs: { landing: "landing" }, usesInheritance: true, ngImport: i0, template: "<div class=\"navbar navbar-expand-lg fixed-top-nav fixed-top\"\n [ngClass]=\"{ 'navbar-blue': !landing }\">\n <div class=\"container d-block\">\n <div class=\"row m-0\">\n <div class=\"col-lg-2 float-start\">\n <a href=\"/\">\n <img [src]=\"logo\"\n class=\"header-logo\"\n alt=\"site-logo\" />\n </a>\n <button type=\"button\"\n class=\"navbar-toggle\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#myNavbar\">\n <span class=\"icon-bar\"></span> <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n </button>\n </div>\n <div class=\"col-lg-10 nav-outer mt-2\">\n <div class=\"collapse navbar-collapse float-end\"\n id=\"myNavbar\">\n <nav class=\"navbar navbar-expand-sm bg-light\">\n <ul class=\"navbar-nav\">\n <li class=\"nav-item contact-button\">\n <a href=\"/\"\n class=\"\">{{ 'Button.Home' | transloco }}</a>\n </li>\n <li *ngIf=\"!loggedIn\" class=\"nav-item login-button\">\n <a class=\"\"\n (click)=\"navigateToLogin()\"> log in</a>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}.navbar-blue{background-color:var(--first);box-shadow:2px 2px 15px 2px #0000001f;transition:width 2s,height 2s,transform 2s background-color .5s ease;z-index:9999}.fixed-top-nav{display:block!important;height:60px}.navbar-toggle{display:none}.navbar-toggle .icon-bar{color:#fff}.nav-outer{text-align:right}.nav-outer nav{background:none!important;display:inline-block;float:none;width:auto}.nav-outer li a{color:#fff;font-size:18px;margin:0 0 0 30px;text-transform:capitalize}.nav-outer li a:hover{color:#fff;text-decoration:none}.nav-outer li a:focus{color:#fff}.navbar-nav li{display:inline-block}@media screen and (max-width: 1199px){.nav-outer li a{margin:0 10px}}@media screen and (max-width: 991px){.icon-bar{background-color:#fff;border-radius:1px;display:block;height:2px;margin-top:4px;width:22px}.navbar-toggle{background-color:#ffb92b!important;background-image:none;border:1px solid rgb(255,255,255);border-radius:4px;display:block!important;float:right;margin-top:4px;padding:9px 10px;position:relative}.collapse{display:none!important}.collapse.show{display:block!important}.nav-outer nav{background:#ffb92b!important;display:inline-block;float:left;padding:20px;width:100%}.nav-outer li a{margin:0;padding:0 16px}.navbar-expand-sm,.navbar-nav{-webkit-box-direction:inherit;flex-direction:inherit}li.nav-item{float:left;margin-bottom:12px;text-align:left;width:100%}.nav-outer li a{margin:0;padding:0}.navbar-expand-sm{-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-box-pack:start;flex-flow:column nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-nav{-webkit-box-direction:normal;-webkit-box-orient:horizontal;flex-direction:column}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .dropdown-menu-right{left:auto;right:0}.nav-outer li a:hover{color:#0a56d3}.contact-button a,.login-button a,.nav-item{background:none;color:#fff!important;font-weight:600}.contact-button a:hover,.login-button a:hover,.nav-item a:hover{color:#0a56d3!important}}@media screen and (max-width: 767px){.fixed-top{padding:10px;top:0!important}}@media screen and (max-width: 575px){.fixed-top{padding:10px;top:0!important}}@media screen and (max-width: 375px){.navbar .container{padding:0!important}}@media (min-width: 641px) and (max-width: 991px){.navbar-toggle{margin-top:6px}}.header-logo{height:45px;width:205px}.login-button a{background-color:var(--second);color:#fff}.login-button a:hover{background-color:#fff;color:var(--second)!important}.fixed-top{position:fixed!important}\n"], dependencies: [{ kind: "directive", type: i2.LazyImgDirective, selector: "img" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.TranslocoPipe, name: "transloco" }] }); }
|
|
15
27
|
}
|
|
16
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
17
29
|
type: Component,
|
|
18
|
-
args: [{ selector: 'pw-header', template: "<div class=\"navbar navbar-expand-lg fixed-top-nav fixed-top\"\n [ngClass]=\"{ 'navbar-blue': !landing }\">\n <div class=\"container d-block\">\n <div class=\"row m-0\">\n <div class=\"col-lg-2 float-start\">\n <a href=\"/\">\n <img [src]=\"logo\"\n class=\"header-logo\"\n alt=\"site-logo\" />\n </a>\n <button type=\"button\"\n class=\"navbar-toggle\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#myNavbar\">\n <span class=\"icon-bar\"></span> <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n </button>\n </div>\n <div class=\"col-lg-10 nav-outer mt-2\">\n <div class=\"collapse navbar-collapse float-end\"\n id=\"myNavbar\">\n <nav class=\"navbar navbar-expand-sm bg-light\">\n <ul class=\"navbar-nav\">\n <li class=\"nav-item
|
|
19
|
-
}], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { landing: [{
|
|
30
|
+
args: [{ selector: 'pw-header', template: "<div class=\"navbar navbar-expand-lg fixed-top-nav fixed-top\"\n [ngClass]=\"{ 'navbar-blue': !landing }\">\n <div class=\"container d-block\">\n <div class=\"row m-0\">\n <div class=\"col-lg-2 float-start\">\n <a href=\"/\">\n <img [src]=\"logo\"\n class=\"header-logo\"\n alt=\"site-logo\" />\n </a>\n <button type=\"button\"\n class=\"navbar-toggle\"\n data-bs-toggle=\"collapse\"\n data-bs-target=\"#myNavbar\">\n <span class=\"icon-bar\"></span> <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n </button>\n </div>\n <div class=\"col-lg-10 nav-outer mt-2\">\n <div class=\"collapse navbar-collapse float-end\"\n id=\"myNavbar\">\n <nav class=\"navbar navbar-expand-sm bg-light\">\n <ul class=\"navbar-nav\">\n <li class=\"nav-item contact-button\">\n <a href=\"/\"\n class=\"\">{{ 'Button.Home' | transloco }}</a>\n </li>\n <li *ngIf=\"!loggedIn\" class=\"nav-item login-button\">\n <a class=\"\"\n (click)=\"navigateToLogin()\"> log in</a>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}.navbar-blue{background-color:var(--first);box-shadow:2px 2px 15px 2px #0000001f;transition:width 2s,height 2s,transform 2s background-color .5s ease;z-index:9999}.fixed-top-nav{display:block!important;height:60px}.navbar-toggle{display:none}.navbar-toggle .icon-bar{color:#fff}.nav-outer{text-align:right}.nav-outer nav{background:none!important;display:inline-block;float:none;width:auto}.nav-outer li a{color:#fff;font-size:18px;margin:0 0 0 30px;text-transform:capitalize}.nav-outer li a:hover{color:#fff;text-decoration:none}.nav-outer li a:focus{color:#fff}.navbar-nav li{display:inline-block}@media screen and (max-width: 1199px){.nav-outer li a{margin:0 10px}}@media screen and (max-width: 991px){.icon-bar{background-color:#fff;border-radius:1px;display:block;height:2px;margin-top:4px;width:22px}.navbar-toggle{background-color:#ffb92b!important;background-image:none;border:1px solid rgb(255,255,255);border-radius:4px;display:block!important;float:right;margin-top:4px;padding:9px 10px;position:relative}.collapse{display:none!important}.collapse.show{display:block!important}.nav-outer nav{background:#ffb92b!important;display:inline-block;float:left;padding:20px;width:100%}.nav-outer li a{margin:0;padding:0 16px}.navbar-expand-sm,.navbar-nav{-webkit-box-direction:inherit;flex-direction:inherit}li.nav-item{float:left;margin-bottom:12px;text-align:left;width:100%}.nav-outer li a{margin:0;padding:0}.navbar-expand-sm{-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-box-pack:start;flex-flow:column nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm,.navbar-nav{-webkit-box-direction:normal;-webkit-box-orient:horizontal;flex-direction:column}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .dropdown-menu-right{left:auto;right:0}.nav-outer li a:hover{color:#0a56d3}.contact-button a,.login-button a,.nav-item{background:none;color:#fff!important;font-weight:600}.contact-button a:hover,.login-button a:hover,.nav-item a:hover{color:#0a56d3!important}}@media screen and (max-width: 767px){.fixed-top{padding:10px;top:0!important}}@media screen and (max-width: 575px){.fixed-top{padding:10px;top:0!important}}@media screen and (max-width: 375px){.navbar .container{padding:0!important}}@media (min-width: 641px) and (max-width: 991px){.navbar-toggle{margin-top:6px}}.header-logo{height:45px;width:205px}.login-button a{background-color:var(--second);color:#fff}.login-button a:hover{background-color:#fff;color:var(--second)!important}.fixed-top{position:fixed!important}\n"] }]
|
|
31
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AuthService }], propDecorators: { landing: [{
|
|
20
32
|
type: Input
|
|
21
33
|
}] } });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7OztBQU94RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxnQkFBZ0I7SUFFakQsWUFDSSxRQUFrQixFQUNWLFdBQXdCO1FBRWhDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZSLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBVzNCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFNekIsU0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsR0FBRyxDQUFDO1FBZHRELElBQUksQ0FBQyxXQUFXO2FBQ1gsU0FBUyxFQUFFO2FBQ1gsSUFBSSxFQUFFO2FBQ04sU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUlELGVBQWU7UUFDWCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7SUFDcEMsQ0FBQzsrR0FuQlEsZUFBZTttR0FBZixlQUFlLHdHQ1Y1QixzMENBc0NBOzs0RkQ1QmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDSSxXQUFXO3VHQW1CWixPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCB7XG4gICAgbG9nZ2VkSW46IGJvb2xlYW47XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0VG9rZW4kKClcbiAgICAgICAgICAgIC5waXBlKClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlZEluID0gcmVzID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgbGFuZGluZyA9IGZhbHNlO1xuXG4gICAgbmF2aWdhdGVUb0xvZ2luKCkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvbG9naW4nO1xuICAgIH1cblxuICAgIGxvZ28gPSB0aGlzLmFwcENvbmZpZz8uY29tcGFueT8ubG9nb3M/Lm1haW5fY29udHJhc3Q/LnVybDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1sZyBmaXhlZC10b3AtbmF2IGZpeGVkLXRvcFwiXG4gIFtuZ0NsYXNzXT1cInsgJ25hdmJhci1ibHVlJzogIWxhbmRpbmcgfVwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGQtYmxvY2tcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IG0tMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGZsb2F0LXN0YXJ0XCI+XG4gICAgICAgIDxhIGhyZWY9XCIvXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImxvZ29cIlxuICAgICAgICAgICAgY2xhc3M9XCJoZWFkZXItbG9nb1wiXG4gICAgICAgICAgICBhbHQ9XCJzaXRlLWxvZ29cIiAvPlxuICAgICAgICA8L2E+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJuYXZiYXItdG9nZ2xlXCJcbiAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcbiAgICAgICAgICBkYXRhLWJzLXRhcmdldD1cIiNteU5hdmJhclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1iYXJcIj48L3NwYW4+IDxzcGFuIGNsYXNzPVwiaWNvbi1iYXJcIj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLWJhclwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTAgbmF2LW91dGVyIG10LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZSBmbG9hdC1lbmRcIlxuICAgICAgICAgIGlkPVwibXlOYXZiYXJcIj5cbiAgICAgICAgICA8bmF2IGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtc20gYmctbGlnaHRcIj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdmJhci1uYXZcIj5cbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY29udGFjdC1idXR0b25cIj5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiL1wiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIlwiPnt7ICdCdXR0b24uSG9tZScgfCB0cmFuc2xvY28gfX08L2E+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaSAqbmdJZj1cIiFsb2dnZWRJblwiIGNsYXNzPVwibmF2LWl0ZW0gbG9naW4tYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9Mb2dpbigpXCI+IGxvZyBpbjwvYT5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9uYXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -65,33 +65,46 @@ export class PrivacyAndTosComponent extends AppBaseComponent {
|
|
|
65
65
|
this.adminService
|
|
66
66
|
.getTosDetails(id)
|
|
67
67
|
.subscribe(response => {
|
|
68
|
-
|
|
68
|
+
const parser = new DOMParser();
|
|
69
69
|
let privacyData;
|
|
70
|
-
if (response
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
privacyData = this.sanitizer.bypassSecurityTrustHtml(doc.body.innerHTML);
|
|
70
|
+
if (response?.privacy) {
|
|
71
|
+
const privacyDoc = parser.parseFromString(response?.privacy, 'text/html');
|
|
72
|
+
// Remove all button elements in privacy
|
|
73
|
+
const privacyButtons = privacyDoc.querySelectorAll('button');
|
|
74
|
+
privacyButtons.forEach(button => button.remove());
|
|
75
|
+
// Sanitize and store privacy HTML
|
|
76
|
+
privacyData = this.sanitizer.bypassSecurityTrustHtml(privacyDoc.body.innerHTML);
|
|
78
77
|
}
|
|
79
|
-
|
|
78
|
+
let tosData;
|
|
79
|
+
if (response?.tos) {
|
|
80
|
+
const tosDoc = parser.parseFromString(response?.tos, 'text/html');
|
|
81
|
+
// Remove all button elements in tos
|
|
82
|
+
const tosButtons = tosDoc.querySelectorAll('button');
|
|
83
|
+
tosButtons.forEach(button => button.remove());
|
|
84
|
+
// Sanitize and store tos HTML
|
|
85
|
+
tosData = this.sanitizer.bypassSecurityTrustHtml(tosDoc.body.innerHTML);
|
|
86
|
+
}
|
|
87
|
+
// Assign sanitized data back
|
|
88
|
+
this.data = {
|
|
89
|
+
...response,
|
|
90
|
+
privacy: privacyData,
|
|
91
|
+
tos: tosData
|
|
92
|
+
};
|
|
80
93
|
})
|
|
81
94
|
.add(() => {
|
|
82
95
|
this.isLoaded = true;
|
|
83
96
|
});
|
|
84
97
|
}
|
|
85
98
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PrivacyAndTosComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }, { token: DOCUMENT }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PrivacyAndTosComponent, selector: "pw-privacy-and-tos", inputs: { productId: "productId" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"isPublic\">\n <pw-header [landing]=\"false\"></pw-header>\n</ng-container>\n\n<div class=\"col-12 d-flex\"\n *ngIf=\"!isPublic\">\n <a href=\"javascript:void(0)\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">{{ productName }}</h3>\n</div>\n\n\n\n\n<div [ngClass]=\"{ 'container pw-tab overflow-hidden': isPublic }\" >\n <div [ngClass]=\"{ dashboard: isPublic }\">\n <div [ngClass]=\"{ 'dashboard-body': isPublic }\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <h3 *ngIf=\"isPublic\">{{ product }}</h3>\n <div>\n\n <ul ngbNav\n #nav=\"ngbNav\"\n [(activeId)]=\"tabId\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"'privacy-policy'\">\n <a ngbNavLink>Privacy policy</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Privacy policy</h3>\n <div class=\"clearfix\"></div>\n <
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PrivacyAndTosComponent, selector: "pw-privacy-and-tos", inputs: { productId: "productId" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"isPublic\">\n <pw-header [landing]=\"false\"></pw-header>\n</ng-container>\n\n<div class=\"col-12 d-flex\"\n *ngIf=\"!isPublic\">\n <a href=\"javascript:void(0)\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">{{ productName }}</h3>\n</div>\n\n\n\n\n<div [ngClass]=\"{ 'container pw-tab overflow-hidden': isPublic }\" >\n <div [ngClass]=\"{ dashboard: isPublic }\">\n <div [ngClass]=\"{ 'dashboard-body': isPublic }\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <h3 *ngIf=\"isPublic\">{{ product }}</h3>\n <div>\n\n <ul ngbNav\n #nav=\"ngbNav\"\n [(activeId)]=\"tabId\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"'privacy-policy'\">\n <a ngbNavLink>Privacy policy</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Privacy policy</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.privacy\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'terms-of-service'\">\n <a ngbNavLink>Terms of Services</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Terms of Services</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.tos\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n </ul>\n </div>\n <div class=\"w-100 text-center p-2 mt-5\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"></p-progressSpinner>\n </div>\n <div [ngbNavOutlet]=\"nav\" *ngIf=\"isLoaded\"></div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["::ng-deep .terms-of-service ul{list-style:disc!important;padding-left:40px!important}\n"], dependencies: [{ kind: "component", type: i3.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i5.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i5.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i5.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i5.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i5.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i5.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "component", type: i6.HeaderComponent, selector: "pw-header", inputs: ["landing"] }] }); }
|
|
87
100
|
}
|
|
88
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PrivacyAndTosComponent, decorators: [{
|
|
89
102
|
type: Component,
|
|
90
|
-
args: [{ selector: 'pw-privacy-and-tos', template: "<ng-container *ngIf=\"isPublic\">\n <pw-header [landing]=\"false\"></pw-header>\n</ng-container>\n\n<div class=\"col-12 d-flex\"\n *ngIf=\"!isPublic\">\n <a href=\"javascript:void(0)\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">{{ productName }}</h3>\n</div>\n\n\n\n\n<div [ngClass]=\"{ 'container pw-tab overflow-hidden': isPublic }\" >\n <div [ngClass]=\"{ dashboard: isPublic }\">\n <div [ngClass]=\"{ 'dashboard-body': isPublic }\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <h3 *ngIf=\"isPublic\">{{ product }}</h3>\n <div>\n\n <ul ngbNav\n #nav=\"ngbNav\"\n [(activeId)]=\"tabId\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"'privacy-policy'\">\n <a ngbNavLink>Privacy policy</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Privacy policy</h3>\n <div class=\"clearfix\"></div>\n <
|
|
103
|
+
args: [{ selector: 'pw-privacy-and-tos', template: "<ng-container *ngIf=\"isPublic\">\n <pw-header [landing]=\"false\"></pw-header>\n</ng-container>\n\n<div class=\"col-12 d-flex\"\n *ngIf=\"!isPublic\">\n <a href=\"javascript:void(0)\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">{{ productName }}</h3>\n</div>\n\n\n\n\n<div [ngClass]=\"{ 'container pw-tab overflow-hidden': isPublic }\" >\n <div [ngClass]=\"{ dashboard: isPublic }\">\n <div [ngClass]=\"{ 'dashboard-body': isPublic }\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <h3 *ngIf=\"isPublic\">{{ product }}</h3>\n <div>\n\n <ul ngbNav\n #nav=\"ngbNav\"\n [(activeId)]=\"tabId\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"'privacy-policy'\">\n <a ngbNavLink>Privacy policy</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Privacy policy</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.privacy\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'terms-of-service'\">\n <a ngbNavLink>Terms of Services</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Terms of Services</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.tos\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n </ul>\n </div>\n <div class=\"w-100 text-center p-2 mt-5\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"></p-progressSpinner>\n </div>\n <div [ngbNavOutlet]=\"nav\" *ngIf=\"isLoaded\"></div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["::ng-deep .terms-of-service ul{list-style:disc!important;padding-left:40px!important}\n"] }]
|
|
91
104
|
}], ctorParameters: () => [{ type: i1.AdminService }, { type: i0.Injector }, { type: Document, decorators: [{
|
|
92
105
|
type: Inject,
|
|
93
106
|
args: [DOCUMENT]
|
|
94
107
|
}] }, { type: i2.DomSanitizer }], propDecorators: { productId: [{
|
|
95
108
|
type: Input
|
|
96
109
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wcml2YWN5LWFuZC10b3MvcHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wcml2YWN5LWFuZC10b3MvcHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBT3pELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFzQnhELFlBQ1ksWUFBMEIsRUFDbEMsUUFBa0IsRUFDUSxRQUFrQixFQUNwQyxTQUF1QjtRQUUvQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFMUixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUVSLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQVhuQyxVQUFLLEdBQUcsZ0JBQWdCLENBQUM7SUFjekIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQ2pELElB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Q2hCLElBQUksUUFBUSxJQUFJLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUVuRSw2QkFBNkI7Z0JBQzdCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDL0MsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUUzQyx3QkFBd0I7Z0JBQ3hCLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0UsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdEQsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsrR0FoR1Esc0JBQXNCLHNFQXlCbkIsUUFBUTttR0F6Qlgsc0JBQXNCLHFIQ2RuQyxrbUZBd0VBOzs0RkQxRGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG9CQUFvQjs7MEJBNkJ6QixNQUFNOzJCQUFDLFFBQVE7b0VBeEJYLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXByaXZhY3ktYW5kLXRvcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ByaXZhY3ktYW5kLXRvcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJpdmFjeUFuZFRvc0NvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHByb2R1Y3RJZDogbnVtYmVyO1xuXG4gICAgaXNQdWJsaWM6IGJvb2xlYW47XG5cbiAgICBpZDogc3RyaW5nO1xuXG4gICAgZGF0YTogeyBwcml2YWN5OiAnJyB9O1xuXG4gICAgdXNlcjogVXNlcjtcblxuICAgIHN1YnNjcmliZWRTdWJzY3JpcHRpb25zOiB7IHByb2R1Y3RzOiB7IGlkOiBudW1iZXIgfVtdIH1bXTtcblxuICAgIHByb2R1Y3Q6IHN0cmluZztcblxuICAgIHRhYklkID0gJ3ByaXZhY3ktcG9saWN5JztcblxuICAgIHByb2R1Y3ROYW1lOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHByaXZhY3lBbmRUb3M6IG51bWJlcjtcbiAgICBpc0xvYWRlZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFkbWluU2VydmljZTogQWRtaW5TZXJ2aWNlLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5wcml2YWN5QW5kVG9zID0gdGhpcy5hcHBDb25maWc/Lm1haW5fdG9zX2lkO1xuICAgICAgICB0aGlzLnByb2R1Y3QgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdwcm9kdWN0Jyk7XG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgdGhpcy5pZCA9IGRhdGFbJ0lkJ107XG4gICAgICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gdGhpcy5pZCA9PT0gJ2RldGFpbHMnID8gdGhpcy5wcml2YWN5QW5kVG9zIDogdGhpcy5pZDtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFRvc0RldGFpbHMoTnVtYmVyKGlkKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1B1YmxpYyA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJvZHVjdElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTdWJzY3JpYmVkUHJvZHVjdCh0aGlzLnByb2R1Y3RJZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShpZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiSWQgPSBpZFsnZGF0YSddIHx8ICdwcml2YWN5LXBvbGljeSc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3Vic2NyaWJlZFByb2R1Y3QoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdWJzY3JpYmVkUHJvZHVjdChpZD8pIHtcbiAgICAgICAgdGhpcy51c2VyU3RvcmUoKS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgICAgICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmdldFVzZXJTdWJzY3JpcHRpb25zKHVzZXIuaWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlZFN1YnNjcmlwdGlvbnMgPSByZXNwb25zZS5zdWJzY3JpcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWN0SWQgPSBpZCB8fCBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFByb2R1Y3QuaWQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RzID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlZFN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpYmUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWlyZWRQcm9kdWN0ID0gc3Vic2NyaWJlPy5wcm9kdWN0cy5maW5kKHggPT4geD8uaWQgPT09IHByb2R1Y3RJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWlyZWRQcm9kdWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHMucHVzaChyZXF1aXJlZFByb2R1Y3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0TmFtZSA9IHByb2R1Y3RzWzBdPy5uYW1lO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRvc0RldGFpbHMocHJvZHVjdHNbMF0ucHJvZHVjdF9wcml2YWN5X3NlcnZpY2VfaWQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRvc0RldGFpbHMoaWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLmdldFRvc0RldGFpbHMoaWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICBsZXQgcHJpdmFjeURhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlPy5wcml2YWN5KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9jID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhyZXNwb25zZT8ucHJpdmFjeSwgJ3RleHQvaHRtbCcpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBhbGwgYnV0dG9uIGVsZW1lbnRzXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ1dHRvbnMgPSBkb2MucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uJyk7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4gYnV0dG9uLnJlbW92ZSgpKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBSZXR1cm4gc2FuaXRpemVkIEhUTUxcbiAgICAgICAgICAgICAgICAgICAgcHJpdmFjeURhdGEgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChkb2MuYm9keS5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHsgLi4ucmVzcG9uc2UsIHByaXZhY3k6IHByaXZhY3lEYXRhIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQdWJsaWNcIj5cbiAgPHB3LWhlYWRlciBbbGFuZGluZ109XCJmYWxzZVwiPjwvcHctaGVhZGVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXYgY2xhc3M9XCJjb2wtMTIgZC1mbGV4XCJcbiAgKm5nSWY9XCIhaXNQdWJsaWNcIj5cbiAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgY2xhc3M9XCJwcmV2aW91c1wiPjxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbiAgPGgzIGNsYXNzPVwibXQtM1wiPnt7IHByb2R1Y3ROYW1lIH19PC9oMz5cbjwvZGl2PlxuXG5cblxuXG48ZGl2IFtuZ0NsYXNzXT1cInsgJ2NvbnRhaW5lciBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuJzogaXNQdWJsaWMgfVwiID5cbiAgPGRpdiBbbmdDbGFzc109XCJ7IGRhc2hib2FyZDogaXNQdWJsaWMgfVwiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnZGFzaGJvYXJkLWJvZHknOiBpc1B1YmxpYyB9XCI+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ210LTUnOiBpc1B1YmxpYyB9XCI+XG4gICAgICAgIDxoMyAqbmdJZj1cImlzUHVibGljXCI+e3sgcHJvZHVjdCB9fTwvaDM+XG4gICAgICAgIDxkaXY+XG5cbiAgICAgICAgICA8dWwgbmdiTmF2XG4gICAgICAgICAgICAjbmF2PVwibmdiTmF2XCJcbiAgICAgICAgICAgIFsoYWN0aXZlSWQpXT1cInRhYklkXCJcbiAgICAgICAgICAgIGNsYXNzPVwibmF2LXRhYnNcIj5cbiAgICAgICAgICAgIDxsaSBbbmdiTmF2SXRlbV09XCIncHJpdmFjeS1wb2xpY3knXCI+XG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbms+UHJpdmFjeSBwb2xpY3k8L2E+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcHctdGFiIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhc2hib2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHkgcHQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGVybXMtb2Ytc2VydmljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+UHJpdmFjeSBwb2xpY3k8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgW2lubmVySFRNTF09XCJkYXRhPy5wcml2YWN5XCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpIFtuZ2JOYXZJdGVtXT1cIid0ZXJtcy1vZi1zZXJ2aWNlJ1wiPlxuICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rPlRlcm1zIG9mIFNlcnZpY2VzPC9hPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIHB3LXRhYiBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhc2hib2FyZC1ib2R5IHB0LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHRlcm1zLW9mLXNlcnZpY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPlRlcm1zIG9mIFNlcnZpY2VzPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwIFtpbm5lckhUTUxdPVwiZGF0YT8udG9zXCI+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgcC0yIG10LTVcIiAqbmdJZj1cIiFpc0xvYWRlZFwiPlxuICAgICAgICAgIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj48L3AtcHJvZ3Jlc3NTcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiICpuZ0lmPVwiaXNMb2FkZWRcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wcml2YWN5LWFuZC10b3MvcHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wcml2YWN5LWFuZC10b3MvcHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBT3pELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFzQnhELFlBQ1ksWUFBMEIsRUFDbEMsUUFBa0IsRUFDUSxRQUFrQixFQUNwQyxTQUF1QjtRQUUvQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFMUixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUVSLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQVhuQyxVQUFLLEdBQUcsZ0JBQWdCLENBQUM7SUFjekIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQ2pELElB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QUMsR0FBRyxFQUFFO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOytHQWpIUSxzQkFBc0Isc0VBeUJuQixRQUFRO21HQXpCWCxzQkFBc0IscUhDZG5DLHMrRkFnRkE7OzRGRGxFYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksb0JBQW9COzswQkE2QnpCLE1BQU07MkJBQUMsUUFBUTtvRUF4QlgsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctcHJpdmFjeS1hbmQtdG9zJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJpdmFjeS1hbmQtdG9zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcml2YWN5LWFuZC10b3MuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcml2YWN5QW5kVG9zQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgcHJvZHVjdElkOiBudW1iZXI7XG5cbiAgICBpc1B1YmxpYzogYm9vbGVhbjtcblxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBkYXRhOiB7IHByaXZhY3k6ICcnIH07XG5cbiAgICB1c2VyOiBVc2VyO1xuXG4gICAgc3Vic2NyaWJlZFN1YnNjcmlwdGlvbnM6IHsgcHJvZHVjdHM6IHsgaWQ6IG51bWJlciB9W10gfVtdO1xuXG4gICAgcHJvZHVjdDogc3RyaW5nO1xuXG4gICAgdGFiSWQgPSAncHJpdmFjeS1wb2xpY3knO1xuXG4gICAgcHJvZHVjdE5hbWU6IHN0cmluZztcblxuICAgIHByaXZhdGUgcHJpdmFjeUFuZFRvczogbnVtYmVyO1xuICAgIGlzTG9hZGVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnByaXZhY3lBbmRUb3MgPSB0aGlzLmFwcENvbmZpZz8ubWFpbl90b3NfaWQ7XG4gICAgICAgIHRoaXMucHJvZHVjdCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3Byb2R1Y3QnKTtcbiAgICAgICAgdGhpcy5pc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlkID0gZGF0YVsnSWQnXTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaWQgPSB0aGlzLmlkID09PSAnZGV0YWlscycgPyB0aGlzLnByaXZhY3lBbmRUb3MgOiB0aGlzLmlkO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VG9zRGV0YWlscyhOdW1iZXIoaWQpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzUHVibGljID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9kdWN0SWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFN1YnNjcmliZWRQcm9kdWN0KHRoaXMucHJvZHVjdElkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKGlkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJJZCA9IGlkWydkYXRhJ10gfHwgJ3ByaXZhY3ktcG9saWN5JztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdWJzY3JpYmVkUHJvZHVjdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFN1YnNjcmliZWRQcm9kdWN0KGlkPykge1xuICAgICAgICB0aGlzLnVzZXJTdG9yZSgpLnN1YnNjcmliZSh1c2VyID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlclN1YnNjcmlwdGlvbnModXNlci5pZCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVkU3Vic2NyaXB0aW9ucyA9IHJlc3BvbnNlLnN1YnNjcmlwdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RJZCA9IGlkIHx8IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkUHJvZHVjdC5pZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjdHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVkU3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmliZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXF1aXJlZFByb2R1Y3QgPSBzdWJzY3JpYmU/LnByb2R1Y3RzLmZpbmQoeCA9PiB4Py5pZCA9PT0gcHJvZHVjdElkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXF1aXJlZFByb2R1Y3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0cy5wdXNoKHJlcXVpcmVkUHJvZHVjdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3ROYW1lID0gcHJvZHVjdHNbMF0/Lm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VG9zRGV0YWlscyhwcm9kdWN0c1swXS5wcm9kdWN0X3ByaXZhY3lfc2VydmljZV9pZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VG9zRGV0YWlscyhpZDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0VG9zRGV0YWlscyhpZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcblxuICAgICAgICAgICAgICAgIGxldCBwcml2YWN5RGF0YTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2U/LnByaXZhY3kpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpdmFjeURvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcocmVzcG9uc2U/LnByaXZhY3ksICd0ZXh0L2h0bWwnKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgYWxsIGJ1dHRvbiBlbGVtZW50cyBpbiBwcml2YWN5XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaXZhY3lCdXR0b25zID0gcHJpdmFjeURvYy5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24nKTtcbiAgICAgICAgICAgICAgICAgICAgcHJpdmFjeUJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4gYnV0dG9uLnJlbW92ZSgpKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBTYW5pdGl6ZSBhbmQgc3RvcmUgcHJpdmFjeSBIVE1MXG4gICAgICAgICAgICAgICAgICAgIHByaXZhY3lEYXRhID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocHJpdmFjeURvYy5ib2R5LmlubmVySFRNTCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IHRvc0RhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlPy50b3MpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9zRG9jID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhyZXNwb25zZT8udG9zLCAndGV4dC9odG1sJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGFsbCBidXR0b24gZWxlbWVudHMgaW4gdG9zXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvc0J1dHRvbnMgPSB0b3NEb2MucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uJyk7XG4gICAgICAgICAgICAgICAgICAgIHRvc0J1dHRvbnMuZm9yRWFjaChidXR0b24gPT4gYnV0dG9uLnJlbW92ZSgpKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBTYW5pdGl6ZSBhbmQgc3RvcmUgdG9zIEhUTUxcbiAgICAgICAgICAgICAgICAgICAgdG9zRGF0YSA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRvc0RvYy5ib2R5LmlubmVySFRNTCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gQXNzaWduIHNhbml0aXplZCBkYXRhIGJhY2tcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICBwcml2YWN5OiBwcml2YWN5RGF0YSxcbiAgICAgICAgICAgICAgICAgICAgdG9zOiB0b3NEYXRhXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1B1YmxpY1wiPlxuICA8cHctaGVhZGVyIFtsYW5kaW5nXT1cImZhbHNlXCI+PC9wdy1oZWFkZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXhcIlxuICAqbmdJZj1cIiFpc1B1YmxpY1wiPlxuICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAoY2xpY2spPVwiYmFjaygpXCJcbiAgICBjbGFzcz1cInByZXZpb3VzXCI+PGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1hbHQtY2lyY2xlLWxlZnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9hPlxuICA8aDMgY2xhc3M9XCJtdC0zXCI+e3sgcHJvZHVjdE5hbWUgfX08L2gzPlxuPC9kaXY+XG5cblxuXG5cbjxkaXYgW25nQ2xhc3NdPVwieyAnY29udGFpbmVyIHB3LXRhYiBvdmVyZmxvdy1oaWRkZW4nOiBpc1B1YmxpYyB9XCIgPlxuICA8ZGl2IFtuZ0NsYXNzXT1cInsgZGFzaGJvYXJkOiBpc1B1YmxpYyB9XCI+XG4gICAgPGRpdiBbbmdDbGFzc109XCJ7ICdkYXNoYm9hcmQtYm9keSc6IGlzUHVibGljIH1cIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnbXQtNSc6IGlzUHVibGljIH1cIj5cbiAgICAgICAgPGgzICpuZ0lmPVwiaXNQdWJsaWNcIj57eyBwcm9kdWN0IH19PC9oMz5cbiAgICAgICAgPGRpdj5cblxuICAgICAgICAgIDx1bCBuZ2JOYXZcbiAgICAgICAgICAgICNuYXY9XCJuZ2JOYXZcIlxuICAgICAgICAgICAgWyhhY3RpdmVJZCldPVwidGFiSWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJuYXYtdGFic1wiPlxuICAgICAgICAgICAgPGxpIFtuZ2JOYXZJdGVtXT1cIidwcml2YWN5LXBvbGljeSdcIj5cbiAgICAgICAgICAgICAgPGEgbmdiTmF2TGluaz5Qcml2YWN5IHBvbGljeTwvYT5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtYm9keSBwdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXJtcy1vZi1zZXJ2aWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5Qcml2YWN5IHBvbGljeTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicWwtY29udGFpbmVyIHFsLXNub3cgYm9keS1xdWlsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxbC1lZGl0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZGF0YT8ucHJpdmFjeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBbbmdiTmF2SXRlbV09XCIndGVybXMtb2Ytc2VydmljZSdcIj5cbiAgICAgICAgICAgICAgPGEgbmdiTmF2TGluaz5UZXJtcyBvZiBTZXJ2aWNlczwvYT5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtYm9keSBwdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXJtcy1vZi1zZXJ2aWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5UZXJtcyBvZiBTZXJ2aWNlczwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicWwtY29udGFpbmVyIHFsLXNub3cgYm9keS1xdWlsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxbC1lZGl0b3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZGF0YT8udG9zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgcC0yIG10LTVcIiAqbmdJZj1cIiFpc0xvYWRlZFwiPlxuICAgICAgICAgIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj48L3AtcHJvZ3Jlc3NTcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiICpuZ0lmPVwiaXNMb2FkZWRcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|