@esfaenza/core 15.2.301 → 15.2.303

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.
@@ -1,21 +1,28 @@
1
1
  import { ActivatedRoute } from "@angular/router";
2
2
  import { AccessControlService } from "@esfaenza/access-control";
3
3
  import { LocalizationService } from "@esfaenza/localizations";
4
+ import { AppEmbeddingExtensions } from "@esfaenza/extensions";
4
5
  import { HTTPService } from "@esfaenza/httpservice";
5
6
  import { AppState, TokenService } from "@esfaenza/core/services";
7
+ import { ActiveModuleView } from "@esfaenza/core/domain";
6
8
  import * as i0 from "@angular/core";
7
9
  export declare class ExternalPagesComponent {
8
10
  private aac;
9
11
  lc: LocalizationService;
10
12
  private http;
13
+ private emb;
11
14
  private _state;
12
15
  private route;
13
16
  private bts;
14
17
  private Username;
15
18
  private Password;
16
19
  private Tenant;
17
- constructor(aac: AccessControlService, lc: LocalizationService, http: HTTPService, _state: AppState, route: ActivatedRoute, bts: TokenService);
20
+ private EmbeddingSource;
21
+ private LocalhostModuleMap;
22
+ private Localhost;
23
+ constructor(aac: AccessControlService, lc: LocalizationService, http: HTTPService, emb: AppEmbeddingExtensions, _state: AppState, route: ActivatedRoute, bts: TokenService);
18
24
  ngOnInit(): void;
25
+ afterModulesRetrieve(modules: ActiveModuleView[]): Promise<void>;
19
26
  static ɵfac: i0.ɵɵFactoryDeclaration<ExternalPagesComponent, never>;
20
27
  static ɵcmp: i0.ɵɵComponentDeclaration<ExternalPagesComponent, "external-pages", never, {}, {}, never, never, true, never>;
21
28
  }
@@ -2,11 +2,13 @@ import { ChangeDetectorRef } from "@angular/core";
2
2
  import { DomSanitizer, SafeResourceUrl } from "@angular/platform-browser";
3
3
  import { AppState } from "@esfaenza/core/services";
4
4
  import { ActiveModuleView } from "@esfaenza/core/domain";
5
+ import { AppEmbeddingExtensions } from "@esfaenza/extensions";
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class JaceResourceComponent {
7
8
  private cdr;
8
9
  private _state;
9
10
  private sanitizer;
11
+ private emb;
10
12
  Module: string;
11
13
  ModuleKeyType: 'altid' | 'id';
12
14
  Page: string;
@@ -16,7 +18,7 @@ export declare class JaceResourceComponent {
16
18
  };
17
19
  Height: number;
18
20
  sanitizedSourceResource: SafeResourceUrl;
19
- constructor(cdr: ChangeDetectorRef, _state: AppState, sanitizer: DomSanitizer);
21
+ constructor(cdr: ChangeDetectorRef, _state: AppState, sanitizer: DomSanitizer, emb: AppEmbeddingExtensions);
20
22
  ngOnInit(): void;
21
23
  onResize(_: any): void;
22
24
  ngAfterViewInit(): void;
@@ -1,28 +1,53 @@
1
1
  // Angular
2
2
  import { RouterOutlet } from "@angular/router";
3
3
  import { Component } from "@angular/core";
4
+ import { firstValueFrom, map } from "rxjs";
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@esfaenza/access-control";
6
7
  import * as i2 from "@esfaenza/localizations";
7
8
  import * as i3 from "@esfaenza/httpservice";
8
- import * as i4 from "@esfaenza/core/services";
9
- import * as i5 from "@angular/router";
9
+ import * as i4 from "@esfaenza/extensions";
10
+ import * as i5 from "@esfaenza/core/services";
11
+ import * as i6 from "@angular/router";
10
12
  export class ExternalPagesComponent {
11
- constructor(aac, lc, http, _state, route, bts) {
13
+ constructor(aac, lc, http, emb, _state, route, bts) {
12
14
  this.aac = aac;
13
15
  this.lc = lc;
14
16
  this.http = http;
17
+ this.emb = emb;
15
18
  this._state = _state;
16
19
  this.route = route;
17
20
  this.bts = bts;
18
21
  this.Username = "";
19
22
  this.Password = "";
20
23
  this.Tenant = "";
24
+ this.EmbeddingSource = "";
25
+ // TODO: Automatizzare
26
+ this.LocalhostModuleMap = {
27
+ "crm": "31813",
28
+ "sii": "21645"
29
+ };
30
+ this.Localhost = "";
21
31
  this.Username = this.route.snapshot.params["user"];
22
32
  this.Password = this.route.snapshot.params["pswd"];
23
33
  this.Tenant = this.route.snapshot.params["tnt"];
34
+ this.EmbeddingSource = this.route.snapshot.params["source"];
24
35
  }
25
36
  ngOnInit() {
37
+ if (!this.emb.Embedded) {
38
+ console.log("Pagina ext richiamata in ambiente non embeddato. Sono in una nuova scheda!!");
39
+ console.log("L'embedder originale doveva essere: " + this.EmbeddingSource);
40
+ console.log("Dato che sono in una nuova scheda devo in realtà navigare a lui, con link su emb/ecc in modo da aprire una scheda embeddata su questa pagina. Se funziona già fino a qui sono a cavallo");
41
+ this.Localhost = this.LocalhostModuleMap[this.EmbeddingSource];
42
+ if (this._state.Modules?.length > 0)
43
+ this.afterModulesRetrieve(this._state.Modules);
44
+ else {
45
+ this._state.subscribe("modules.Retrieved", (modules) => {
46
+ this.afterModulesRetrieve(modules);
47
+ });
48
+ }
49
+ return;
50
+ }
26
51
  console.log("Caricamento pagina nell'IFRAME completato!");
27
52
  console.log("[" + this.Tenant + "]" + this.Username + " - " + this.Password);
28
53
  // Le info di login che ho passato sono le stesse delle info di login salvate nel token --> È un redirect da un sito esterno ma il token c'è già. Esco
@@ -38,11 +63,25 @@ export class ExternalPagesComponent {
38
63
  this.http.post(`${myconfig.AuthUrl}/api/login/dologin`, LoginDTO).subscribe(t => {
39
64
  });
40
65
  }
66
+ async afterModulesRetrieve(modules) {
67
+ // Sto navigando a {sito}/#/pages_ext/etc...
68
+ // Devo ridirezionare a {sorgente}/#/pages/embed/{thisModule}/etc...
69
+ let module = modules.find(t => t.altname == this.EmbeddingSource);
70
+ if (!module) {
71
+ console.error(`Impossibile trovare il modulo con altname uguale a ${this.EmbeddingSource}`);
72
+ }
73
+ const url = await firstValueFrom(this.route.url.pipe(map((segments) => segments.join(''))));
74
+ let afterPagesExt = url.split("pages_ext")[1].substring(1).split("/").slice(1).join("/");
75
+ let sourceModuleUrl = myconfig.AuthUrl.includes("localhost") ? `http://localhost:${this.Localhost}` : module.uiurl;
76
+ let finalUrl = `${sourceModuleUrl}/#/pages/embed/${myconfig.AppData.ModuleId}/${afterPagesExt}`;
77
+ console.log("@esfaenza/core: navigating to " + finalUrl);
78
+ location.replace(finalUrl);
79
+ }
41
80
  }
42
- ExternalPagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ExternalPagesComponent, deps: [{ token: i1.AccessControlService }, { token: i2.LocalizationService }, { token: i3.HTTPService }, { token: i4.AppState }, { token: i5.ActivatedRoute }, { token: i4.TokenService }], target: i0.ɵɵFactoryTarget.Component });
81
+ ExternalPagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ExternalPagesComponent, deps: [{ token: i1.AccessControlService }, { token: i2.LocalizationService }, { token: i3.HTTPService }, { token: i4.AppEmbeddingExtensions }, { token: i5.AppState }, { token: i6.ActivatedRoute }, { token: i5.TokenService }], target: i0.ɵɵFactoryTarget.Component });
43
82
  ExternalPagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ExternalPagesComponent, isStandalone: true, selector: "external-pages", ngImport: i0, template: "<router-outlet></router-outlet>", dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
44
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ExternalPagesComponent, decorators: [{
45
84
  type: Component,
46
85
  args: [{ selector: "external-pages", standalone: true, imports: [RouterOutlet], template: "<router-outlet></router-outlet>" }]
47
- }], ctorParameters: function () { return [{ type: i1.AccessControlService }, { type: i2.LocalizationService }, { type: i3.HTTPService }, { type: i4.AppState }, { type: i5.ActivatedRoute }, { type: i4.TokenService }]; } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWxfcGFnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NyYy9leHRlcm5hbC1wYWdlL2V4dGVybmFsX3BhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcmMvZXh0ZXJuYWwtcGFnZS9leHRlcm5hbF9wYWdlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFrQixZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBa0IxQyxNQUFNLE9BQU8sc0JBQXNCO0lBSy9CLFlBQW9CLEdBQXlCLEVBQVMsRUFBdUIsRUFBVSxJQUFpQixFQUFVLE1BQWdCLEVBQVUsS0FBcUIsRUFBVSxHQUFpQjtRQUF4SyxRQUFHLEdBQUgsR0FBRyxDQUFzQjtRQUFTLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFKcEwsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFHeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDMUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdFLHNKQUFzSjtRQUN0Six1SEFBdUg7UUFDdkgsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNqRCxJQUFJLGVBQWUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxlQUFlLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzSixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzdDLE9BQU87U0FDVjtRQUVELHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFDaEMsSUFBSSxRQUFRLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN4RyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O29IQTVCUSxzQkFBc0I7d0dBQXRCLHNCQUFzQiwwRUNwQm5DLGlDQUErQiw0Q0RrQmpCLFlBQVk7NEZBRWIsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNJLGdCQUFnQixjQUVkLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlck91dGxldCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9hY2Nlc3MtY29udHJvbFwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5cclxuaW1wb3J0IHsgQXBwU3RhdGUsIFRva2VuU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBFbnZPcHRpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5cclxuZGVjbGFyZSB2YXIgbXljb25maWc6IEVudk9wdGlvbnM7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImV4dGVybmFsLXBhZ2VzXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2V4dGVybmFsX3BhZ2VzLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1JvdXRlck91dGxldF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVybmFsUGFnZXNDb21wb25lbnQge1xyXG4gICAgcHJpdmF0ZSBVc2VybmFtZTogc3RyaW5nID0gXCJcIjtcclxuICAgIHByaXZhdGUgUGFzc3dvcmQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBwcml2YXRlIFRlbmFudDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFhYzogQWNjZXNzQ29udHJvbFNlcnZpY2UsIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSwgcHJpdmF0ZSBfc3RhdGU6IEFwcFN0YXRlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBidHM6IFRva2VuU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMuVXNlcm5hbWUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1tcInVzZXJcIl07XHJcbiAgICAgICAgdGhpcy5QYXNzd29yZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zW1wicHN3ZFwiXTtcclxuICAgICAgICB0aGlzLlRlbmFudCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zW1widG50XCJdO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ2FyaWNhbWVudG8gcGFnaW5hIG5lbGwnSUZSQU1FIGNvbXBsZXRhdG8hXCIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiW1wiICsgdGhpcy5UZW5hbnQgKyBcIl1cIiArIHRoaXMuVXNlcm5hbWUgKyBcIiAtIFwiICsgdGhpcy5QYXNzd29yZCk7XHJcblxyXG4gICAgICAgIC8vIExlIGluZm8gZGkgbG9naW4gY2hlIGhvIHBhc3NhdG8gc29ubyBsZSBzdGVzc2UgZGVsbGUgaW5mbyBkaSBsb2dpbiBzYWx2YXRlIG5lbCB0b2tlbiAtLT4gw4ggdW4gcmVkaXJlY3QgZGEgdW4gc2l0byBlc3Rlcm5vIG1hIGlsIHRva2VuIGMnw6ggZ2nDoC4gRXNjb1xyXG4gICAgICAgIC8vIEhvIHVuIHRva2VuIGRpIGxvZ2luIGUgbm9uIGhvIG5lc3N1bmEgaW5mbyBzdWxsJ3V0ZW50ZSBkYSB1c2FyZSAtLT4gw4ggdW4gcmVkaXJlY3QgZGEgSmFjZSwgcXVpbmRpIHNvbm8gYSBwb3N0by4gRXNjb1xyXG4gICAgICAgIGxldCBjdXJyZW50SWRlbnRpdHkgPSB0aGlzLmJ0cy5nZXRKYWNlSWRlbnRpdHkoKTtcclxuICAgICAgICBpZiAoY3VycmVudElkZW50aXR5ICYmICghKHRoaXMuVGVuYW50ICsgdGhpcy5Vc2VybmFtZSArIHRoaXMuUGFzc3dvcmQpIHx8IGN1cnJlbnRJZGVudGl0eS5JZHRlbmFudCA9PSB0aGlzLlRlbmFudCAmJiBjdXJyZW50SWRlbnRpdHkuRHNVc2VyID09IHRoaXMuVXNlcm5hbWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWFjLmluaXRpYWxpemVJZGVudGl0eShjdXJyZW50SWRlbnRpdHkpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBBbHRyaW1lbnRpIGRldm8gZWZmZXR0dWFyZSBpbCBsb2dpblxyXG4gICAgICAgIC8vIE5vbiDDqCB1dGlsaXp6YXRhLCBwb3Jjb2RkaW5jaVxyXG4gICAgICAgIGxldCBMb2dpbkRUTyA9IHsgdGVuYW50OiBcIkZYXCIsIHVzZXJuYW1lOiB0aGlzLlVzZXJuYW1lLCBwYXNzd29yZDogdGhpcy5QYXNzd29yZCwgY2xpZW50X2lkOiBcImphY2VkZXZcIiB9O1xyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0KGAke215Y29uZmlnLkF1dGhVcmx9L2FwaS9sb2dpbi9kb2xvZ2luYCwgTG9naW5EVE8pLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSIsIjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4iXX0=
86
+ }], ctorParameters: function () { return [{ type: i1.AccessControlService }, { type: i2.LocalizationService }, { type: i3.HTTPService }, { type: i4.AppEmbeddingExtensions }, { type: i5.AppState }, { type: i6.ActivatedRoute }, { type: i5.TokenService }]; } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWxfcGFnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NyYy9leHRlcm5hbC1wYWdlL2V4dGVybmFsX3BhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcmMvZXh0ZXJuYWwtcGFnZS9leHRlcm5hbF9wYWdlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFrQixZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVTFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVUzQyxNQUFNLE9BQU8sc0JBQXNCO0lBYy9CLFlBQW9CLEdBQXlCLEVBQVMsRUFBdUIsRUFBVSxJQUFpQixFQUFVLEdBQTJCLEVBQVUsTUFBZ0IsRUFBVSxLQUFxQixFQUFVLEdBQWlCO1FBQTdNLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFjO1FBYnpOLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBRXJDLHNCQUFzQjtRQUNkLHVCQUFrQixHQUE2QjtZQUNuRCxLQUFLLEVBQUUsT0FBTztZQUNkLEtBQUssRUFBRSxPQUFPO1NBQ2pC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QUFzQjtrQkFObEMsU0FBUzsrQkFDSSxnQkFBZ0IsY0FFZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXJPdXRsZXQgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBBcHBFbWJlZGRpbmdFeHRlbnNpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5cclxuaW1wb3J0IHsgQXBwU3RhdGUsIFRva2VuU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgeyBBY3RpdmVNb2R1bGVWaWV3LCBFbnZPcHRpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgbWFwIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiBFbnZPcHRpb25zO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJleHRlcm5hbC1wYWdlc1wiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9leHRlcm5hbF9wYWdlcy5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtSb3V0ZXJPdXRsZXRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlcm5hbFBhZ2VzQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgVXNlcm5hbWU6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBwcml2YXRlIFBhc3N3b3JkOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgcHJpdmF0ZSBUZW5hbnQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBwcml2YXRlIEVtYmVkZGluZ1NvdXJjZTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvLyBUT0RPOiBBdXRvbWF0aXp6YXJlXHJcbiAgICBwcml2YXRlIExvY2FsaG9zdE1vZHVsZU1hcDogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gICAgICAgIFwiY3JtXCI6IFwiMzE4MTNcIixcclxuICAgICAgICBcInNpaVwiOiBcIjIxNjQ1XCJcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBMb2NhbGhvc3Q6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhYWM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsIHByaXZhdGUgZW1iOiBBcHBFbWJlZGRpbmdFeHRlbnNpb25zLCBwcml2YXRlIF9zdGF0ZTogQXBwU3RhdGUsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIGJ0czogVG9rZW5TZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5Vc2VybmFtZSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zW1widXNlclwiXTtcclxuICAgICAgICB0aGlzLlBhc3N3b3JkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJwc3dkXCJdO1xyXG4gICAgICAgIHRoaXMuVGVuYW50ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJ0bnRcIl07XHJcblxyXG4gICAgICAgIHRoaXMuRW1iZWRkaW5nU291cmNlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJzb3VyY2VcIl07XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5lbWIuRW1iZWRkZWQpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJQYWdpbmEgZXh0IHJpY2hpYW1hdGEgaW4gYW1iaWVudGUgbm9uIGVtYmVkZGF0by4gU29ubyBpbiB1bmEgbnVvdmEgc2NoZWRhISFcIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTCdlbWJlZGRlciBvcmlnaW5hbGUgZG92ZXZhIGVzc2VyZTogXCIgKyB0aGlzLkVtYmVkZGluZ1NvdXJjZSk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRGF0byBjaGUgc29ubyBpbiB1bmEgbnVvdmEgc2NoZWRhIGRldm8gaW4gcmVhbHTDoCBuYXZpZ2FyZSBhIGx1aSwgY29uIGxpbmsgc3UgZW1iL2VjYyBpbiBtb2RvIGRhIGFwcmlyZSB1bmEgc2NoZWRhIGVtYmVkZGF0YSBzdSBxdWVzdGEgcGFnaW5hLiBTZSBmdW56aW9uYSBnacOgIGZpbm8gYSBxdWkgc29ubyBhIGNhdmFsbG9cIik7XHJcblxyXG4gICAgICAgICAgICB0aGlzLkxvY2FsaG9zdCA9IHRoaXMuTG9jYWxob3N0TW9kdWxlTWFwW3RoaXMuRW1iZWRkaW5nU291cmNlXTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zdGF0ZS5Nb2R1bGVzPy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5hZnRlck1vZHVsZXNSZXRyaWV2ZSh0aGlzLl9zdGF0ZS5Nb2R1bGVzKTtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZS5zdWJzY3JpYmUoXCJtb2R1bGVzLlJldHJpZXZlZFwiLCAobW9kdWxlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJNb2R1bGVzUmV0cmlldmUobW9kdWxlcyk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhcmljYW1lbnRvIHBhZ2luYSBuZWxsJ0lGUkFNRSBjb21wbGV0YXRvIVwiKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIltcIiArIHRoaXMuVGVuYW50ICsgXCJdXCIgKyB0aGlzLlVzZXJuYW1lICsgXCIgLSBcIiArIHRoaXMuUGFzc3dvcmQpO1xyXG5cclxuICAgICAgICAvLyBMZSBpbmZvIGRpIGxvZ2luIGNoZSBobyBwYXNzYXRvIHNvbm8gbGUgc3Rlc3NlIGRlbGxlIGluZm8gZGkgbG9naW4gc2FsdmF0ZSBuZWwgdG9rZW4gLS0+IMOIIHVuIHJlZGlyZWN0IGRhIHVuIHNpdG8gZXN0ZXJubyBtYSBpbCB0b2tlbiBjJ8OoIGdpw6AuIEVzY29cclxuICAgICAgICAvLyBIbyB1biB0b2tlbiBkaSBsb2dpbiBlIG5vbiBobyBuZXNzdW5hIGluZm8gc3VsbCd1dGVudGUgZGEgdXNhcmUgLS0+IMOIIHVuIHJlZGlyZWN0IGRhIEphY2UsIHF1aW5kaSBzb25vIGEgcG9zdG8uIEVzY29cclxuICAgICAgICBsZXQgY3VycmVudElkZW50aXR5ID0gdGhpcy5idHMuZ2V0SmFjZUlkZW50aXR5KCk7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRJZGVudGl0eSAmJiAoISh0aGlzLlRlbmFudCArIHRoaXMuVXNlcm5hbWUgKyB0aGlzLlBhc3N3b3JkKSB8fCBjdXJyZW50SWRlbnRpdHkuSWR0ZW5hbnQgPT0gdGhpcy5UZW5hbnQgJiYgY3VycmVudElkZW50aXR5LkRzVXNlciA9PSB0aGlzLlVzZXJuYW1lKSkge1xyXG4gICAgICAgICAgICB0aGlzLmFhYy5pbml0aWFsaXplSWRlbnRpdHkoY3VycmVudElkZW50aXR5KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQWx0cmltZW50aSBkZXZvIGVmZmV0dHVhcmUgaWwgbG9naW5cclxuICAgICAgICAvLyBOb24gw6ggdXRpbGl6emF0YSwgcG9yY29kZGluY2lcclxuICAgICAgICBsZXQgTG9naW5EVE8gPSB7IHRlbmFudDogXCJGWFwiLCB1c2VybmFtZTogdGhpcy5Vc2VybmFtZSwgcGFzc3dvcmQ6IHRoaXMuUGFzc3dvcmQsIGNsaWVudF9pZDogXCJqYWNlZGV2XCIgfTtcclxuICAgICAgICB0aGlzLmh0dHAucG9zdChgJHtteWNvbmZpZy5BdXRoVXJsfS9hcGkvbG9naW4vZG9sb2dpbmAsIExvZ2luRFRPKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgYWZ0ZXJNb2R1bGVzUmV0cmlldmUobW9kdWxlczogQWN0aXZlTW9kdWxlVmlld1tdKSB7XHJcbiAgICAgICAgLy8gU3RvIG5hdmlnYW5kbyBhIHtzaXRvfS8jL3BhZ2VzX2V4dC9ldGMuLi5cclxuICAgICAgICAvLyBEZXZvIHJpZGlyZXppb25hcmUgYSB7c29yZ2VudGV9LyMvcGFnZXMvZW1iZWQve3RoaXNNb2R1bGV9L2V0Yy4uLlxyXG4gICAgICAgIGxldCBtb2R1bGUgPSBtb2R1bGVzLmZpbmQodCA9PiB0LmFsdG5hbWUgPT0gdGhpcy5FbWJlZGRpbmdTb3VyY2UpXHJcbiAgICAgICAgaWYgKCFtb2R1bGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgSW1wb3NzaWJpbGUgdHJvdmFyZSBpbCBtb2R1bG8gY29uIGFsdG5hbWUgdWd1YWxlIGEgJHt0aGlzLkVtYmVkZGluZ1NvdXJjZX1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgdXJsOiBzdHJpbmc9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMucm91dGUudXJsLnBpcGUobWFwKChzZWdtZW50cykgPT4gc2VnbWVudHMuam9pbignJykpKSk7XHJcbiAgICAgICAgbGV0IGFmdGVyUGFnZXNFeHQgPSB1cmwuc3BsaXQoXCJwYWdlc19leHRcIilbMV0uc3Vic3RyaW5nKDEpLnNwbGl0KFwiL1wiKS5zbGljZSgxKS5qb2luKFwiL1wiKTtcclxuXHJcbiAgICAgICAgbGV0IHNvdXJjZU1vZHVsZVVybCA9IG15Y29uZmlnLkF1dGhVcmwuaW5jbHVkZXMoXCJsb2NhbGhvc3RcIikgPyBgaHR0cDovL2xvY2FsaG9zdDoke3RoaXMuTG9jYWxob3N0fWAgOiBtb2R1bGUudWl1cmw7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IGZpbmFsVXJsID0gYCR7c291cmNlTW9kdWxlVXJsfS8jL3BhZ2VzL2VtYmVkLyR7bXljb25maWcuQXBwRGF0YS5Nb2R1bGVJZH0vJHthZnRlclBhZ2VzRXh0fWA7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJAZXNmYWVuemEvY29yZTogbmF2aWdhdGluZyB0byBcIiArIGZpbmFsVXJsKTtcclxuICAgICAgICBsb2NhdGlvbi5yZXBsYWNlKGZpbmFsVXJsKTtcclxuICAgIH1cclxufSIsIjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4iXX0=
@@ -4,11 +4,13 @@ import { NgIf } from "@angular/common";
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@esfaenza/core/services";
6
6
  import * as i2 from "@angular/platform-browser";
7
+ import * as i3 from "@esfaenza/extensions";
7
8
  export class JaceResourceComponent {
8
- constructor(cdr, _state, sanitizer) {
9
+ constructor(cdr, _state, sanitizer, emb) {
9
10
  this.cdr = cdr;
10
11
  this._state = _state;
11
12
  this.sanitizer = sanitizer;
13
+ this.emb = emb;
12
14
  this.Module = "";
13
15
  this.ModuleKeyType = 'altid';
14
16
  this.Page = "";
@@ -46,17 +48,17 @@ export class JaceResourceComponent {
46
48
  }
47
49
  let moduleUrl = myconfig.AuthUrl.includes("localhost") ? `http://localhost:${this.Localhost}` : module.uiurl;
48
50
  let parameters = this.Params ? Object.keys(this.Params).map(k => `${k}=${this.Params[k]}`).join(';') : '';
49
- let finalUrl = `${moduleUrl}/#/pages_ext/${this.Page}${(parameters ? (';' + parameters) : '')}`;
51
+ let finalUrl = `${moduleUrl}/#/pages_ext/${this.emb.EmbeddingSource}/${this.Page}${(parameters ? (';' + parameters) : '')}`;
50
52
  console.log("@esfaenza/core: Jace-resource navigating to " + finalUrl);
51
53
  this.sanitizedSourceResource = this.sanitizer.bypassSecurityTrustResourceUrl(finalUrl);
52
54
  }
53
55
  }
54
- JaceResourceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JaceResourceComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AppState }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
56
+ JaceResourceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JaceResourceComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AppState }, { token: i2.DomSanitizer }, { token: i3.AppEmbeddingExtensions }], target: i0.ɵɵFactoryTarget.Component });
55
57
  JaceResourceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: JaceResourceComponent, isStandalone: true, selector: "jace-resource", inputs: { Module: "Module", ModuleKeyType: "ModuleKeyType", Page: "Page", Localhost: "Localhost", Params: "Params" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0, template: "<iframe *ngIf=\"!!sanitizedSourceResource && this.Height > 0\" id=\"externalFrame\" style=\"width: 100%; border: none;\" [style.height.px]=\"Height\"\r\n [src]=\"sanitizedSourceResource\">\r\n</iframe>", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
56
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JaceResourceComponent, decorators: [{
57
59
  type: Component,
58
60
  args: [{ selector: "jace-resource", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf], template: "<iframe *ngIf=\"!!sanitizedSourceResource && this.Height > 0\" id=\"externalFrame\" style=\"width: 100%; border: none;\" [style.height.px]=\"Height\"\r\n [src]=\"sanitizedSourceResource\">\r\n</iframe>" }]
59
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AppState }, { type: i2.DomSanitizer }]; }, propDecorators: { Module: [{
61
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AppState }, { type: i2.DomSanitizer }, { type: i3.AppEmbeddingExtensions }]; }, propDecorators: { Module: [{
60
62
  type: Input
61
63
  }], ModuleKeyType: [{
62
64
  type: Input
@@ -70,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
70
72
  type: HostListener,
71
73
  args: ['window:resize']
72
74
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamFjZS1yZXNvdXJjZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL2phY2UtcmVzb3VyY2UvamFjZS1yZXNvdXJjZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL2phY2UtcmVzb3VyY2UvamFjZS1yZXNvdXJjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5SCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFrQnZDLE1BQU0sT0FBTyxxQkFBcUI7SUFVOUIsWUFBb0IsR0FBc0IsRUFBVSxNQUFnQixFQUFVLFNBQXVCO1FBQWpGLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFUNUYsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFtQixPQUFPLENBQUM7UUFDeEMsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUlwQixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLDRCQUF1QixHQUFvQixJQUFJLENBQUM7SUFFa0QsQ0FBQztJQUUxRyxRQUFRO1FBQ0osT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsQ0FBQztZQUMvQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM5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QmxDLGtOQUVTLDRDRGlCSyxJQUFJOzRGQUVMLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDSSxlQUFlLGlCQUNWLGlCQUFpQixDQUFDLElBQUksbUJBRXBCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxDQUFDOzBKQUdOLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFxQk4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHsgTmdJZiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEFwcFN0YXRlIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL3NlcnZpY2VzXCI7XHJcblxyXG4vLyBDbGFzc2lcclxuaW1wb3J0IHsgQWN0aXZlTW9kdWxlVmlldywgRW52T3B0aW9ucyB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuXHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiBFbnZPcHRpb25zO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJqYWNlLXJlc291cmNlXCIsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9qYWNlLXJlc291cmNlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdJZl1cclxufSlcclxuZXhwb3J0IGNsYXNzIEphY2VSZXNvdXJjZUNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBNb2R1bGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBASW5wdXQoKSBNb2R1bGVLZXlUeXBlOiAnYWx0aWQnIHwgJ2lkJyA9ICdhbHRpZCc7XHJcbiAgICBASW5wdXQoKSBQYWdlOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgQElucHV0KCkgTG9jYWxob3N0OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBQYXJhbXM6IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfVxyXG5cclxuICAgIHB1YmxpYyBIZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgc2FuaXRpemVkU291cmNlUmVzb3VyY2U6IFNhZmVSZXNvdXJjZVVybCA9IG51bGw7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9zdGF0ZTogQXBwU3RhdGUsIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW5pdGlhbGl6aW5nIGphY2UgcmVzb3VyY2UgZm9yIFwiICsgdGhpcy5Nb2R1bGUpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fc3RhdGUuTW9kdWxlcz8ubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgdGhpcy5hZnRlck1vZHVsZXNSZXRyaWV2ZSh0aGlzLl9zdGF0ZS5Nb2R1bGVzKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RhdGUuc3Vic2NyaWJlKFwibW9kdWxlcy5SZXRyaWV2ZWRcIiwgKG1vZHVsZXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJNb2R1bGVzUmV0cmlldmUobW9kdWxlcyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gICAgb25SZXNpemUoXykgeyB0aGlzLnNldEhlaWdodCh3aW5kb3cuaW5uZXJIZWlnaHQpOyB9XHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7IHRoaXMuc2V0SGVpZ2h0KHdpbmRvdy5pbm5lckhlaWdodCk7IH1cclxuXHJcbiAgICBzZXRIZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkhlaWdodCA9IGhlaWdodCAtIDg2O1xyXG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGFmdGVyTW9kdWxlc1JldHJpZXZlKG1vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXSkge1xyXG4gICAgICAgIGxldCBtb2R1bGUgPSBtb2R1bGVzLmZpbmQodCA9PiAodGhpcy5Nb2R1bGVLZXlUeXBlID09ICdpZCcgPyB0LmlkbW9kdWxlIDogdGhpcy5Nb2R1bGVLZXlUeXBlID09ICdhbHRpZCcgPyB0LmFsdG5hbWUgOiBcIlwiKSA9PSB0aGlzLk1vZHVsZSlcclxuICAgICAgICBpZiAoIW1vZHVsZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBJbXBvc3NpYmlsZSB0cm92YXJlIGlsIG1vZHVsbyBjb24gJHt0aGlzLk1vZHVsZUtleVR5cGV9IHVndWFsZSBhICR7dGhpcy5Nb2R1bGV9YCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2FuaXRpemVkU291cmNlUmVzb3VyY2UgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5QYWdlLnN0YXJ0c1dpdGgoXCJwYWdlc1wiKSB8fCB0aGlzLlBhZ2Uuc3RhcnRzV2l0aChcIi9wYWdlc1wiKSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBMJ3VybCBkZWxsYSBwYWdpbmEgZGEgdmlzaXRhcmUgbm9uIGRldmUgcGFydGlyZSBjb24gJ3BhZ2VzJywgc2NyaXZlcmUgc29sbyB7bW9kdWxvfS97cGFnaW5hfWApO1xyXG4gICAgICAgICAgICB0aGlzLnNhbml0aXplZFNvdXJjZVJlc291cmNlID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBtb2R1bGVVcmwgPSBteWNvbmZpZy5BdXRoVXJsLmluY2x1ZGVzKFwibG9jYWxob3N0XCIpID8gYGh0dHA6Ly9sb2NhbGhvc3Q6JHt0aGlzLkxvY2FsaG9zdH1gIDogbW9kdWxlLnVpdXJsO1xyXG4gICAgICAgIGxldCBwYXJhbWV0ZXJzOiBzdHJpbmcgPSB0aGlzLlBhcmFtcyA/IE9iamVjdC5rZXlzKHRoaXMuUGFyYW1zKS5tYXAoayA9PiBgJHtrfT0ke3RoaXMuUGFyYW1zW2tdfWApLmpvaW4oJzsnKSA6ICcnO1xyXG4gICAgICAgIGxldCBmaW5hbFVybCA9IGAke21vZHVsZVVybH0vIy9wYWdlc19leHQvJHt0aGlzLlBhZ2V9JHsocGFyYW1ldGVycyA/ICgnOycgKyBwYXJhbWV0ZXJzKSA6ICcnKX1gO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQGVzZmFlbnphL2NvcmU6IEphY2UtcmVzb3VyY2UgbmF2aWdhdGluZyB0byBcIiArIGZpbmFsVXJsKTtcclxuICAgICAgICB0aGlzLnNhbml0aXplZFNvdXJjZVJlc291cmNlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGZpbmFsVXJsKTtcclxuICAgIH1cclxufSIsIjxpZnJhbWUgKm5nSWY9XCIhIXNhbml0aXplZFNvdXJjZVJlc291cmNlICYmIHRoaXMuSGVpZ2h0ID4gMFwiIGlkPVwiZXh0ZXJuYWxGcmFtZVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGJvcmRlcjogbm9uZTtcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIkhlaWdodFwiXHJcbiAgICAgICAgW3NyY109XCJzYW5pdGl6ZWRTb3VyY2VSZXNvdXJjZVwiPlxyXG48L2lmcmFtZT4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamFjZS1yZXNvdXJjZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL2phY2UtcmVzb3VyY2UvamFjZS1yZXNvdXJjZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL2phY2UtcmVzb3VyY2UvamFjZS1yZXNvdXJjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5SCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBbUJ2QyxNQUFNLE9BQU8scUJBQXFCO0lBVTlCLFlBQW9CLEdBQXNCLEVBQVUsTUFBZ0IsRUFBVSxTQUF1QixFQUFVLEdBQTJCO1FBQXRILFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQVRqSSxXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQW1CLE9BQU8sQ0FBQztRQUN4QyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBSXBCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsNEJBQXVCLEdBQW9CLElBQUksQ0FBQztJQUV1RixDQUFDO0lBRS9JLFFBQVE7UUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU3RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxDQUFDO1lBQy9CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJ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QThCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7bUhBcERRLHFCQUFxQjt1R0FBckIscUJBQXFCLHVQQ3RCbEMsa05BRVMsNENEa0JLLElBQUk7NEZBRUwscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNJLGVBQWUsaUJBQ1YsaUJBQWlCLENBQUMsSUFBSSxtQkFFcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUM7K0xBR04sTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQXFCTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQXBwU3RhdGUgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuXHJcbi8vIENsYXNzaVxyXG5pbXBvcnQgeyBBY3RpdmVNb2R1bGVWaWV3LCBFbnZPcHRpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5pbXBvcnQgeyBBcHBFbWJlZGRpbmdFeHRlbnNpb25zIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG5kZWNsYXJlIHZhciBteWNvbmZpZzogRW52T3B0aW9ucztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiamFjZS1yZXNvdXJjZVwiLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vamFjZS1yZXNvdXJjZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW05nSWZdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBKYWNlUmVzb3VyY2VDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgTW9kdWxlOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgQElucHV0KCkgTW9kdWxlS2V5VHlwZTogJ2FsdGlkJyB8ICdpZCcgPSAnYWx0aWQnO1xyXG4gICAgQElucHV0KCkgUGFnZTogc3RyaW5nID0gXCJcIjtcclxuICAgIEBJbnB1dCgpIExvY2FsaG9zdDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgUGFyYW1zOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH1cclxuXHJcbiAgICBwdWJsaWMgSGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIHNhbml0aXplZFNvdXJjZVJlc291cmNlOiBTYWZlUmVzb3VyY2VVcmwgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBfc3RhdGU6IEFwcFN0YXRlLCBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLCBwcml2YXRlIGVtYjogQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucykgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJJbml0aWFsaXppbmcgamFjZSByZXNvdXJjZSBmb3IgXCIgKyB0aGlzLk1vZHVsZSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9zdGF0ZS5Nb2R1bGVzPy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICB0aGlzLmFmdGVyTW9kdWxlc1JldHJpZXZlKHRoaXMuX3N0YXRlLk1vZHVsZXMpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9zdGF0ZS5zdWJzY3JpYmUoXCJtb2R1bGVzLlJldHJpZXZlZFwiLCAobW9kdWxlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZnRlck1vZHVsZXNSZXRyaWV2ZShtb2R1bGVzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgICBvblJlc2l6ZShfKSB7IHRoaXMuc2V0SGVpZ2h0KHdpbmRvdy5pbm5lckhlaWdodCk7IH1cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHsgdGhpcy5zZXRIZWlnaHQod2luZG93LmlubmVySGVpZ2h0KTsgfVxyXG5cclxuICAgIHNldEhlaWdodChoZWlnaHQ6IG51bWJlcikge1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuSGVpZ2h0ID0gaGVpZ2h0IC0gODY7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgYWZ0ZXJNb2R1bGVzUmV0cmlldmUobW9kdWxlczogQWN0aXZlTW9kdWxlVmlld1tdKSB7XHJcbiAgICAgICAgbGV0IG1vZHVsZSA9IG1vZHVsZXMuZmluZCh0ID0+ICh0aGlzLk1vZHVsZUtleVR5cGUgPT0gJ2lkJyA/IHQuaWRtb2R1bGUgOiB0aGlzLk1vZHVsZUtleVR5cGUgPT0gJ2FsdGlkJyA/IHQuYWx0bmFtZSA6IFwiXCIpID09IHRoaXMuTW9kdWxlKVxyXG4gICAgICAgIGlmICghbW9kdWxlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEltcG9zc2liaWxlIHRyb3ZhcmUgaWwgbW9kdWxvIGNvbiAke3RoaXMuTW9kdWxlS2V5VHlwZX0gdWd1YWxlIGEgJHt0aGlzLk1vZHVsZX1gKTtcclxuICAgICAgICAgICAgdGhpcy5zYW5pdGl6ZWRTb3VyY2VSZXNvdXJjZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLlBhZ2Uuc3RhcnRzV2l0aChcInBhZ2VzXCIpIHx8IHRoaXMuUGFnZS5zdGFydHNXaXRoKFwiL3BhZ2VzXCIpKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEwndXJsIGRlbGxhIHBhZ2luYSBkYSB2aXNpdGFyZSBub24gZGV2ZSBwYXJ0aXJlIGNvbiAncGFnZXMnLCBzY3JpdmVyZSBzb2xvIHttb2R1bG99L3twYWdpbmF9YCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2FuaXRpemVkU291cmNlUmVzb3VyY2UgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IG1vZHVsZVVybCA9IG15Y29uZmlnLkF1dGhVcmwuaW5jbHVkZXMoXCJsb2NhbGhvc3RcIikgPyBgaHR0cDovL2xvY2FsaG9zdDoke3RoaXMuTG9jYWxob3N0fWAgOiBtb2R1bGUudWl1cmw7XHJcbiAgICAgICAgbGV0IHBhcmFtZXRlcnM6IHN0cmluZyA9IHRoaXMuUGFyYW1zID8gT2JqZWN0LmtleXModGhpcy5QYXJhbXMpLm1hcChrID0+IGAke2t9PSR7dGhpcy5QYXJhbXNba119YCkuam9pbignOycpIDogJyc7XHJcbiAgICAgICAgbGV0IGZpbmFsVXJsID0gYCR7bW9kdWxlVXJsfS8jL3BhZ2VzX2V4dC8ke3RoaXMuZW1iLkVtYmVkZGluZ1NvdXJjZX0vJHt0aGlzLlBhZ2V9JHsocGFyYW1ldGVycyA/ICgnOycgKyBwYXJhbWV0ZXJzKSA6ICcnKX1gO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQGVzZmFlbnphL2NvcmU6IEphY2UtcmVzb3VyY2UgbmF2aWdhdGluZyB0byBcIiArIGZpbmFsVXJsKTtcclxuICAgICAgICB0aGlzLnNhbml0aXplZFNvdXJjZVJlc291cmNlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGZpbmFsVXJsKTtcclxuICAgIH1cclxufSIsIjxpZnJhbWUgKm5nSWY9XCIhIXNhbml0aXplZFNvdXJjZVJlc291cmNlICYmIHRoaXMuSGVpZ2h0ID4gMFwiIGlkPVwiZXh0ZXJuYWxGcmFtZVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGJvcmRlcjogbm9uZTtcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIkhlaWdodFwiXHJcbiAgICAgICAgW3NyY109XCJzYW5pdGl6ZWRTb3VyY2VSZXNvdXJjZVwiPlxyXG48L2lmcmFtZT4iXX0=
@@ -11,16 +11,20 @@ export class esRouterLinkWithHref extends RouterLinkWithHref {
11
11
  this.emb = emb;
12
12
  }
13
13
  set esRouterLink(commands) {
14
- let BasePath = "/" + (this.emb.Embedded ? EMBEDDED_ROUTE : ROUTE);
15
- if (commands != null) {
16
- this.commands = Array.isArray(commands) ? commands : [commands];
17
- let route = this.commands[0];
18
- if (!route.startsWith("/" + EMBEDDED_ROUTE) && !route.startsWith("/" + ROUTE))
19
- this.commands[0] = BasePath + this.commands[0];
20
- }
21
- else {
22
- this.commands = null;
23
- }
14
+ this.emb.EmbeddingSource.subscribe(s => {
15
+ if (this.emb.Embedded && !s)
16
+ console.error("Link creato in contesto di embedding ma senza embedding source!!");
17
+ let BasePath = "/" + (this.emb.Embedded ? EMBEDDED_ROUTE + (!!s ? "/" + s : "") : ROUTE);
18
+ if (commands != null) {
19
+ this.commands = Array.isArray(commands) ? commands : [commands];
20
+ let route = this.commands[0];
21
+ if (!route.startsWith("/" + EMBEDDED_ROUTE) && !route.startsWith("/" + ROUTE))
22
+ this.commands[0] = BasePath + this.commands[0];
23
+ }
24
+ else {
25
+ this.commands = null;
26
+ }
27
+ });
24
28
  }
25
29
  onClick(button, ctrlKey, shiftKey, altKey, metaKey) {
26
30
  if (this.emb.Embedded) {
@@ -52,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
52
56
  type: HostListener,
53
57
  args: ['click', ['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey']]
54
58
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtcm91dGVyTGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvc3JjL2VzLXJvdXRlckxpbmsvZXMtcm91dGVyTGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQTBCLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBYyxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFTMUUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQUV4RCxZQUNZLEdBQTJCLEVBQ25DLE1BQWMsRUFBRSxLQUFxQixFQUNkLGlCQUE0QyxFQUNuRSxRQUFtQixFQUFFLEVBQWMsRUFDbkMsZ0JBQW1DO1FBRW5DLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtRQU4vRCxRQUFHLEdBQUgsR0FBRyxDQUF3QjtJQU92QyxDQUFDO0lBRUQsSUFDSSxZQUFZLENBQUMsUUFBMkM7UUFDeEQsSUFBSSxRQUFRLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEUsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQVksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pFLElBQUksS0FBSyxHQUFLLElBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFZLENBQUM7WUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO2dCQUN4RSxJQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBSSxJQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hFO2FBQU07WUFDRixJQUFZLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUNqQztJQUNMLENBQUM7SUFHUSxPQUFPLENBQUMsTUFBYyxFQUFFLE9BQWdCLEVBQUUsUUFBaUIsRUFBRSxNQUFlLEVBQUUsT0FBZ0I7UUFDbkcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNuQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxHQUFHLFNBQVMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRyxJQUFrQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUVsSyxJQUFJLENBQUMsT0FBTztnQkFDUixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDOztnQkFFakUsT0FBTyxLQUFLLENBQUM7U0FDcEI7O1lBRUcsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDOztrSEF2Q1Esb0JBQW9CLDRHQUtkLFVBQVU7c0dBTGhCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQ0FBb0M7b0JBQzlDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBTVEsU0FBUzsyQkFBQyxVQUFVOzRIQVFyQixZQUFZO3NCQURmLEtBQUs7Z0JBZUcsT0FBTztzQkFEZixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IExvY2F0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBSZW5kZXJlcjIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJMaW5rV2l0aEhyZWYgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEVNQkVEREVEX1JPVVRFLCBFbnZPcHRpb25zLCBST1VURSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuaW1wb3J0IHsgQXBwRW1iZWRkaW5nRXh0ZW5zaW9ucyB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5cclxuZGVjbGFyZSB2YXIgbXljb25maWc6IEVudk9wdGlvbnM7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnYVtlc1JvdXRlckxpbmtdLGFyZWFbZXNSb3V0ZXJMaW5rXScsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBlc1JvdXRlckxpbmtXaXRoSHJlZiBleHRlbmRzIFJvdXRlckxpbmtXaXRoSHJlZiB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBlbWI6IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMsXHJcbiAgICAgICAgcm91dGVyOiBSb3V0ZXIsIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBAQXR0cmlidXRlKCd0YWJpbmRleCcpIHRhYkluZGV4QXR0cmlidXRlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxyXG4gICAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIGxvY2F0aW9uU3RyYXRlZ3k/OiBMb2NhdGlvblN0cmF0ZWd5KSB7XHJcblxyXG4gICAgICAgIHN1cGVyKHJvdXRlciwgcm91dGUsIHRhYkluZGV4QXR0cmlidXRlLCByZW5kZXJlciwgZWwsIGxvY2F0aW9uU3RyYXRlZ3kpXHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBlc1JvdXRlckxpbmsoY29tbWFuZHM6IGFueVtdIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGxldCBCYXNlUGF0aCA9IFwiL1wiICsgKHRoaXMuZW1iLkVtYmVkZGVkID8gRU1CRURERURfUk9VVEUgOiBST1VURSk7XHJcblxyXG4gICAgICAgIGlmIChjb21tYW5kcyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICh0aGlzIGFzIGFueSkuY29tbWFuZHMgPSBBcnJheS5pc0FycmF5KGNvbW1hbmRzKSA/IGNvbW1hbmRzIDogW2NvbW1hbmRzXTtcclxuICAgICAgICAgICAgbGV0IHJvdXRlID0gKCh0aGlzIGFzIGFueSkuY29tbWFuZHNbMF0gYXMgc3RyaW5nKTtcclxuICAgICAgICAgICAgaWYgKCFyb3V0ZS5zdGFydHNXaXRoKFwiL1wiICsgRU1CRURERURfUk9VVEUpICYmICFyb3V0ZS5zdGFydHNXaXRoKFwiL1wiICsgUk9VVEUpKVxyXG4gICAgICAgICAgICAgICAgKHRoaXMgYXMgYW55KS5jb21tYW5kc1swXSA9IEJhc2VQYXRoICsgKHRoaXMgYXMgYW55KS5jb21tYW5kc1swXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAodGhpcyBhcyBhbnkpLmNvbW1hbmRzID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC5idXR0b24nLCAnJGV2ZW50LmN0cmxLZXknLCAnJGV2ZW50LnNoaWZ0S2V5JywgJyRldmVudC5hbHRLZXknLCAnJGV2ZW50Lm1ldGFLZXknXSlcclxuICAgIG92ZXJyaWRlIG9uQ2xpY2soYnV0dG9uOiBudW1iZXIsIGN0cmxLZXk6IGJvb2xlYW4sIHNoaWZ0S2V5OiBib29sZWFuLCBhbHRLZXk6IGJvb2xlYW4sIG1ldGFLZXk6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5lbWIuRW1iZWRkZWQpIHtcclxuICAgICAgICAgICAgbGV0IHVybCA9IHRoaXMudXJsVHJlZS50b1N0cmluZygpLnJlcGxhY2UoRU1CRURERURfUk9VVEUsIFJPVVRFICsgXCIvZW1iZWQvXCIgKyBteWNvbmZpZy5BcHBEYXRhLk1vZHVsZUlkKTtcclxuICAgICAgICAgICAgdGhpcy5lbWIuTWFpbldpbmRvdy5wb3N0TWVzc2FnZSh7IHR5cGU6IFwibmF2aWdhdGVcIiwgdXJsLCBuZXdUYWI6IGN0cmxLZXksIHJlcGxhY2VTdGF0ZTogIWN0cmxLZXksIGN1cnJlbnQ6ICh0aGlzIGFzIGFueSBhcyB7IHJvdXRlcjogUm91dGVyIH0pLnJvdXRlci51cmwgfSwgXCIqXCIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFjdHJsS2V5KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLm9uQ2xpY2soYnV0dG9uLCBjdHJsS2V5LCBzaGlmdEtleSwgYWx0S2V5LCBtZXRhS2V5KTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHJldHVybiBzdXBlci5vbkNsaWNrKGJ1dHRvbiwgY3RybEtleSwgc2hpZnRLZXksIGFsdEtleSwgbWV0YUtleSk7XHJcbiAgICB9XHJcbn0iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtcm91dGVyTGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvc3JjL2VzLXJvdXRlckxpbmsvZXMtcm91dGVyTGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQTBCLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBYyxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFTMUUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQUV4RCxZQUNZLEdBQTJCLEVBQ25DLE1BQWMsRUFBRSxLQUFxQixFQUNkLGlCQUE0QyxFQUNuRSxRQUFtQixFQUFFLEVBQWMsRUFDbkMsZ0JBQW1DO1FBRW5DLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtRQU4vRCxRQUFHLEdBQUgsR0FBRyxDQUF3QjtJQU92QyxDQUFDO0lBRUQsSUFDSSxZQUFZLENBQUMsUUFBMkM7UUFFeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25DLElBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO2dCQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLGtFQUFrRSxDQUFDLENBQUM7WUFFdEYsSUFBSSxRQUFRLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4RixJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JBQ2pCLElBQVksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN6RSxJQUFJLEtBQUssR0FBSyxJQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBWSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7b0JBQ3hFLElBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFJLElBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDeEU7aUJBQU07Z0JBQ0YsSUFBWSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDakM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFHUSxPQUFPLENBQUMsTUFBYyxFQUFFLE9BQWdCLEVBQUUsUUFBaUIsRUFBRSxNQUFlLEVBQUUsT0FBZ0I7UUFDbkcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNuQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxHQUFHLFNBQVMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRyxJQUFrQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUVsSyxJQUFJLENBQUMsT0FBTztnQkFDUixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDOztnQkFFakUsT0FBTyxLQUFLLENBQUM7U0FDcEI7O1lBRUcsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDOztrSEE3Q1Esb0JBQW9CLDRHQUtkLFVBQVU7c0dBTGhCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQ0FBb0M7b0JBQzlDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBTVEsU0FBUzsyQkFBQyxVQUFVOzRIQVFyQixZQUFZO3NCQURmLEtBQUs7Z0JBcUJHLE9BQU87c0JBRGYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBMb2NhdGlvblN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBFTUJFRERFRF9ST1VURSwgRW52T3B0aW9ucywgUk9VVEUgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZG9tYWluXCI7XHJcbmltcG9ydCB7IEFwcEVtYmVkZGluZ0V4dGVuc2lvbnMgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbmRlY2xhcmUgdmFyIG15Y29uZmlnOiBFbnZPcHRpb25zO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ2FbZXNSb3V0ZXJMaW5rXSxhcmVhW2VzUm91dGVyTGlua10nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgZXNSb3V0ZXJMaW5rV2l0aEhyZWYgZXh0ZW5kcyBSb3V0ZXJMaW5rV2l0aEhyZWYge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZW1iOiBBcHBFbWJlZGRpbmdFeHRlbnNpb25zLFxyXG4gICAgICAgIHJvdXRlcjogUm91dGVyLCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgQEF0dHJpYnV0ZSgndGFiaW5kZXgnKSB0YWJJbmRleEF0dHJpYnV0ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuICAgICAgICByZW5kZXJlcjogUmVuZGVyZXIyLCBlbDogRWxlbWVudFJlZixcclxuICAgICAgICBsb2NhdGlvblN0cmF0ZWd5PzogTG9jYXRpb25TdHJhdGVneSkge1xyXG5cclxuICAgICAgICBzdXBlcihyb3V0ZXIsIHJvdXRlLCB0YWJJbmRleEF0dHJpYnV0ZSwgcmVuZGVyZXIsIGVsLCBsb2NhdGlvblN0cmF0ZWd5KVxyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZXNSb3V0ZXJMaW5rKGNvbW1hbmRzOiBhbnlbXSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuXHJcbiAgICAgICAgdGhpcy5lbWIuRW1iZWRkaW5nU291cmNlLnN1YnNjcmliZShzID0+IHtcclxuICAgICAgICAgICAgaWYodGhpcy5lbWIuRW1iZWRkZWQgJiYgIXMpXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiTGluayBjcmVhdG8gaW4gY29udGVzdG8gZGkgZW1iZWRkaW5nIG1hIHNlbnphIGVtYmVkZGluZyBzb3VyY2UhIVwiKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGxldCBCYXNlUGF0aCA9IFwiL1wiICsgKHRoaXMuZW1iLkVtYmVkZGVkID8gRU1CRURERURfUk9VVEUgKyAoISFzPyBcIi9cIiArIHMgOiBcIlwiKSA6IFJPVVRFKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChjb21tYW5kcyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAodGhpcyBhcyBhbnkpLmNvbW1hbmRzID0gQXJyYXkuaXNBcnJheShjb21tYW5kcykgPyBjb21tYW5kcyA6IFtjb21tYW5kc107XHJcbiAgICAgICAgICAgICAgICBsZXQgcm91dGUgPSAoKHRoaXMgYXMgYW55KS5jb21tYW5kc1swXSBhcyBzdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyb3V0ZS5zdGFydHNXaXRoKFwiL1wiICsgRU1CRURERURfUk9VVEUpICYmICFyb3V0ZS5zdGFydHNXaXRoKFwiL1wiICsgUk9VVEUpKVxyXG4gICAgICAgICAgICAgICAgICAgICh0aGlzIGFzIGFueSkuY29tbWFuZHNbMF0gPSBCYXNlUGF0aCArICh0aGlzIGFzIGFueSkuY29tbWFuZHNbMF07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAodGhpcyBhcyBhbnkpLmNvbW1hbmRzID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC5idXR0b24nLCAnJGV2ZW50LmN0cmxLZXknLCAnJGV2ZW50LnNoaWZ0S2V5JywgJyRldmVudC5hbHRLZXknLCAnJGV2ZW50Lm1ldGFLZXknXSlcclxuICAgIG92ZXJyaWRlIG9uQ2xpY2soYnV0dG9uOiBudW1iZXIsIGN0cmxLZXk6IGJvb2xlYW4sIHNoaWZ0S2V5OiBib29sZWFuLCBhbHRLZXk6IGJvb2xlYW4sIG1ldGFLZXk6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5lbWIuRW1iZWRkZWQpIHtcclxuICAgICAgICAgICAgbGV0IHVybCA9IHRoaXMudXJsVHJlZS50b1N0cmluZygpLnJlcGxhY2UoRU1CRURERURfUk9VVEUsIFJPVVRFICsgXCIvZW1iZWQvXCIgKyBteWNvbmZpZy5BcHBEYXRhLk1vZHVsZUlkKTtcclxuICAgICAgICAgICAgdGhpcy5lbWIuTWFpbldpbmRvdy5wb3N0TWVzc2FnZSh7IHR5cGU6IFwibmF2aWdhdGVcIiwgdXJsLCBuZXdUYWI6IGN0cmxLZXksIHJlcGxhY2VTdGF0ZTogIWN0cmxLZXksIGN1cnJlbnQ6ICh0aGlzIGFzIGFueSBhcyB7IHJvdXRlcjogUm91dGVyIH0pLnJvdXRlci51cmwgfSwgXCIqXCIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFjdHJsS2V5KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLm9uQ2xpY2soYnV0dG9uLCBjdHJsS2V5LCBzaGlmdEtleSwgYWx0S2V5LCBtZXRhS2V5KTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHJldHVybiBzdXBlci5vbkNsaWNrKGJ1dHRvbiwgY3RybEtleSwgc2hpZnRLZXksIGFsdEtleSwgbWV0YUtleSk7XHJcbiAgICB9XHJcbn0iXX0=