@wizishop/img-manager-webelement 15.0.10 → 15.2.1

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,36 +1,35 @@
1
1
  import { Component } from '@angular/core';
2
- import { ImgManagerConfigDto, ImgApiDto, ImgCDNConfigDTO } from '@wizishop/img-manager';
3
2
  import { from as fromPromise } from 'rxjs';
4
- import { HttpHeaders } from '@angular/common/http';
5
3
  import { environment } from './environments/environment';
4
+ import { ImgSelectionService } from '@wizishop/img-manager';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "@ngx-translate/core";
8
7
  import * as i2 from "@wizishop/img-manager";
9
8
  import * as i3 from "./services/fiche_products.service";
10
9
  import * as i4 from "./services/auth-credentials.service";
11
- import * as i5 from "@angular/common/http";
12
- import * as i6 from "./services/event.service";
10
+ import * as i5 from "./services/event.service";
11
+ import * as i6 from "./services/webelement-image-manager-api.config";
13
12
  import * as i7 from "@angular/common";
14
13
  export class ImgManagerWebElementComponent {
15
- constructor(translateService, imgSelectionService, canvaService, ficheProductService, authCredentialsService, http, eventService, imgManagerService) {
14
+ constructor(translateService, canvaService, ficheProductService, authCredentialsService, eventService, imgManagerService, imgSelectionService, webelementImageManagerApiService) {
16
15
  this.translateService = translateService;
17
- this.imgSelectionService = imgSelectionService;
18
16
  this.canvaService = canvaService;
19
17
  this.ficheProductService = ficheProductService;
20
18
  this.authCredentialsService = authCredentialsService;
21
- this.http = http;
22
19
  this.eventService = eventService;
23
20
  this.imgManagerService = imgManagerService;
21
+ this.imgSelectionService = imgSelectionService;
22
+ this.webelementImageManagerApiService = webelementImageManagerApiService;
24
23
  // img manger config
25
24
  this.openImgManager = false;
26
25
  this.loading = true;
27
- // fiche roduct config
26
+ // fiche product config
28
27
  this.isPhotosTab = !!environment.isPhotosTab;
29
28
  this.subscriptions = [];
30
29
  }
31
30
  ngOnInit() {
32
31
  this.loading = true;
33
- this.pageficheProductConfig = this.imgManagerService.getImgManagerDisplayConfig("fiche-product");
32
+ this.pageFicheProductConfig = this.imgManagerService.getImgManagerDisplayConfig("fiche-product");
34
33
  this.pageEventConfig = this.imgManagerService.getImgManagerDisplayConfig("wizi-block");
35
34
  this.setCurrentLanguage();
36
35
  // Search on which page is display the img manger
@@ -54,13 +53,11 @@ export class ImgManagerWebElementComponent {
54
53
  return;
55
54
  }
56
55
  // Run on local Server
57
- this.setAppVars(null, environment.local.shopId, null, environment.local.token);
58
- this.setImgManagerExtraConfig();
59
- this.imgManagerDisplayConfig = this.pageficheProductConfig;
56
+ this.setAppVars(environment.local.shopId, environment.local.token);
57
+ this.imgManagerDisplayConfig = this.pageFicheProductConfig;
60
58
  return;
61
59
  }
62
- this.setAppVars(authCredentials.user_id, authCredentials.shop_id, authCredentials.account_id, authCredentials.token);
63
- this.setImgManagerExtraConfig();
60
+ this.setAppVars(authCredentials.shop_id, authCredentials.token);
64
61
  }
65
62
  setFicheProductPage() {
66
63
  this.ficheProductService.setApiConfig(this.id_shop, this.token_shop);
@@ -72,7 +69,7 @@ export class ImgManagerWebElementComponent {
72
69
  setPageWithEvents() {
73
70
  this.subscribePageAskForImg();
74
71
  // Send img selected
75
- const subImgSelection = this.imgSelectionService.getImgSelectionChange().subscribe(imgSelectionList => {
72
+ const subImgSelection = this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {
76
73
  if (imgSelectionList && imgSelectionList.length) {
77
74
  this.eventService.sendImgSelectedToPage(imgSelectionList[0]);
78
75
  }
@@ -103,11 +100,11 @@ export class ImgManagerWebElementComponent {
103
100
  }
104
101
  setDisplayedPageConfig() {
105
102
  const isFicheProductPage = /\/products\/(\d+\/edit|create)/.test(window.location.pathname);
106
- this.imgManagerDisplayConfig = isFicheProductPage ? this.pageficheProductConfig : this.pageEventConfig;
103
+ this.imgManagerDisplayConfig = isFicheProductPage ? this.pageFicheProductConfig : this.pageEventConfig;
107
104
  }
108
105
  handleFicheProductTab() {
109
106
  const tabsSub = this.ficheProductService.handleTabs().subscribe(isPhotosTab => {
110
- this.imgManagerDisplayConfig = isPhotosTab ? this.pageficheProductConfig : this.pageEventConfig;
107
+ this.imgManagerDisplayConfig = isPhotosTab ? this.pageFicheProductConfig : this.pageEventConfig;
111
108
  this.isPhotosTab = isPhotosTab;
112
109
  });
113
110
  this.subscriptions.push(tabsSub);
@@ -121,56 +118,25 @@ export class ImgManagerWebElementComponent {
121
118
  getCredentials() {
122
119
  return fromPromise(this.authCredentialsService.get());
123
120
  }
124
- setAppVars(userId, shopId, accountId, token) {
125
- this.userId = userId;
126
- this.id_shop = shopId;
127
- this.accountId = accountId;
128
- this.token_shop = token;
129
- }
130
- setImgManagerExtraConfig() {
131
- const apiDto = new ImgApiDto();
132
- apiDto.shop_token = this.token_shop;
133
- apiDto.image_manager_route = environment.wizi_api + "/image-manager/shops/" + this.id_shop;
134
- apiDto.canva_token = 'wdByHayF5v57nj2ZSLvu055O';
135
- apiDto.canva_url = 'https://sdk.canva.com/designbutton/v2/api.js';
136
- apiDto.pexels_token = '563492ad6f91700001000001e39215727d8b42c1b08498a9ce1e6b94';
137
- apiDto.pexels_route = 'https://api.pexels.com/v1';
138
- apiDto.shop_category = 'other'; // The shop categorie is retrieve later with the getShopCategory methode
139
- apiDto.assets_route = environment.assets_route;
140
- const imgCDNConfigDTO = new ImgCDNConfigDTO();
141
- imgCDNConfigDTO.url_raw_image = `${environment.CDN_URL}${this.id_shop}/RAW-`;
142
- imgCDNConfigDTO.url_100_image = `${environment.CDN_URL}${this.id_shop}/m100-`;
143
- imgCDNConfigDTO.url_200_image = `${environment.CDN_URL}${this.id_shop}/cs200-`;
144
- imgCDNConfigDTO.url_400_image = `${environment.CDN_URL}${this.id_shop}/cs400-`;
145
- imgCDNConfigDTO.url_800_image = `${environment.CDN_URL}${this.id_shop}/cs800-`;
146
- this.imgExternalConfig = new ImgManagerConfigDto();
147
- this.imgExternalConfig.api = apiDto;
148
- this.imgExternalConfig.imgCDNConfig = imgCDNConfigDTO;
149
- const subShopCategory = this.getShopCategory().subscribe(shop => {
150
- if (shop && shop['category']) {
151
- this.imgExternalConfig.api.shop_category = shop['category'];
152
- }
153
- });
154
- this.subscriptions.push(subShopCategory);
155
- }
156
- getShopCategory() {
157
- return this.http.get(`${environment.wizi_api}/shops/${this.id_shop}`, this.getOptionsHeadersWithBearer());
158
- }
159
- getOptionsHeadersWithBearer() {
160
- const header = { headers: new HttpHeaders({
161
- Authorization: 'Bearer ' + this.token_shop
162
- })
163
- };
164
- return header;
121
+ setAppVars(shopId, token) {
122
+ this.webelementImageManagerApiService.shopToken = token;
123
+ this.webelementImageManagerApiService.shopId = shopId;
124
+ if (shopId) {
125
+ this.webelementImageManagerApiService.setShopCategory(shopId).subscribe();
126
+ }
165
127
  }
166
128
  ngOnDestroy() {
167
129
  this.subscriptions.forEach(sub => sub.unsubscribe());
168
130
  }
169
131
  }
170
- ImgManagerWebElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementComponent, deps: [{ token: i1.TranslateService }, { token: i2.ImgSelectionService }, { token: i2.CanvaService }, { token: i3.FicheProductService }, { token: i4.AuthCredentialsService }, { token: i5.HttpClient }, { token: i6.EventService }, { token: i2.ImgManagerService }], target: i0.ɵɵFactoryTarget.Component });
171
- ImgManagerWebElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ImgManagerWebElementComponent, selector: "img-manager-webelement", ngImport: i0, template: "<div class=\"info-bulle\">\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\n\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\n\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\n </p>\n\n <div class=\"imgManagerBox\">\n <wz-img-manager\n #wzImgManager\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\n [externalConfig]=\"imgExternalConfig\"\n (imgManagerClosed)=\"onImgManagerClosed()\">\n </wz-img-manager>\n </div>\n </ng-container>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.WzImgManagerComponent, selector: "wz-img-manager", inputs: ["stateDisplayed", "showSelection", "externalConfig", "forceToOpenCanva", "multipleImgMode", "showImgManagerModule"], outputs: ["imgManagerClosed"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
132
+ ImgManagerWebElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementComponent, deps: [{ token: i1.TranslateService }, { token: i2.CanvaService }, { token: i3.FicheProductService }, { token: i4.AuthCredentialsService }, { token: i5.EventService }, { token: i2.ImgManagerService }, { token: i2.ImgSelectionService }, { token: i6.WebelementImageManagerApiService }], target: i0.ɵɵFactoryTarget.Component });
133
+ ImgManagerWebElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ImgManagerWebElementComponent, selector: "img-manager-webelement", providers: [
134
+ ImgSelectionService
135
+ ], ngImport: i0, template: "<div class=\"info-bulle\">\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\n\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\n\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\n </p>\n\n <div class=\"imgManagerBox\">\n <wz-img-manager\n #wzImgManager\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\n (imgManagerClosed)=\"onImgManagerClosed()\">\n </wz-img-manager>\n </div>\n </ng-container>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.WzImgManagerComponent, selector: "wz-img-manager", inputs: ["stateDisplayed", "showSelection", "forceToOpenCanva", "multipleImgMode", "showImgManagerModule"], outputs: ["imgManagerClosed", "imgSelectionChange"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
172
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementComponent, decorators: [{
173
137
  type: Component,
174
- args: [{ selector: 'img-manager-webelement', template: "<div class=\"info-bulle\">\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\n\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\n\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\n </p>\n\n <div class=\"imgManagerBox\">\n <wz-img-manager\n #wzImgManager\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\n [externalConfig]=\"imgExternalConfig\"\n (imgManagerClosed)=\"onImgManagerClosed()\">\n </wz-img-manager>\n </div>\n </ng-container>\n</div>" }]
175
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.ImgSelectionService }, { type: i2.CanvaService }, { type: i3.FicheProductService }, { type: i4.AuthCredentialsService }, { type: i5.HttpClient }, { type: i6.EventService }, { type: i2.ImgManagerService }]; } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFpRixNQUFNLHVCQUF1QixDQUFDO0FBRXZLLE9BQU8sRUFBZ0IsSUFBSSxJQUFJLFdBQVcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUdyRSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLDZCQUE2QjtJQW9CeEMsWUFDVSxnQkFBa0MsRUFDbEMsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzFCLG1CQUF3QyxFQUN4QyxzQkFBOEMsRUFDOUMsSUFBZ0IsRUFDaEIsWUFBMEIsRUFDMUIsaUJBQW9DO1FBUHBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixzQkFBaUIs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LENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7MEhBcE1VLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLDhEQ2YxQyxpb0NBeUJNOzJGRFZPLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltZ01hbmFnZXJDb25maWdEdG8sIEltZ0FwaUR0bywgSW1nQ0ROQ29uZmlnRFRPLCBJbWdTZWxlY3Rpb25TZXJ2aWNlLCBDYW52YVNlcnZpY2UsIEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLCBJbWdNYW5hZ2VyU2VydmljZSB9IGZyb20gJ0B3aXppc2hvcC9pbWctbWFuYWdlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb20gYXMgZnJvbVByb21pc2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpY2hlUHJvZHVjdFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ZpY2hlX3Byb2R1Y3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aENyZWRlbnRpYWxzLCBBdXRoQ3JlZGVudGlhbHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hdXRoLWNyZWRlbnRpYWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbWdNYW5hZ2VyV2ViRWxlbWVudENvbXBvbmVudCB7XG4gIC8vIHNob3AgY29uZmlnXG4gIGlkX3Nob3A6IG51bWJlcjtcbiAgdG9rZW5fc2hvcDogc3RyaW5nO1xuICB1c2VySWQ6IG51bWJlciB8IG51bGw7XG4gIGFjY291bnRJZDogbnVtYmVyIHwgbnVsbDtcblxuICAvLyBpbWcgbWFuZ2VyIGNvbmZpZ1xuICBvcGVuSW1nTWFuYWdlcjpib29sZWFuID0gZmFsc2U7XG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBpbWdFeHRlcm5hbENvbmZpZzogSW1nTWFuYWdlckNvbmZpZ0R0bztcbiAgaW1nTWFuYWdlckRpc3BsYXlDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnO1xuICBwYWdlZmljaGVQcm9kdWN0Q29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZztcbiAgcGFnZUV2ZW50Q29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZztcblxuICAvLyBmaWNoZSByb2R1Y3QgY29uZmlnXG4gIGlzUGhvdG9zVGFiOiBib29sZWFuID0gISFlbnZpcm9ubWVudC5pc1Bob3Rvc1RhYjtcblxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYW52YVNlcnZpY2U6IENhbnZhU2VydmljZSxcbiAgICBwcml2YXRlIGZpY2hlUHJvZHVjdFNlcnZpY2U6IEZpY2hlUHJvZHVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoQ3JlZGVudGlhbHNTZXJ2aWNlOiBBdXRoQ3JlZGVudGlhbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nTWFuYWdlclNlcnZpY2U6IEltZ01hbmFnZXJTZXJ2aWNlXG4gICl7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5wYWdlZmljaGVQcm9kdWN0Q29uZmlnID0gdGhpcy5pbWdNYW5hZ2VyU2VydmljZS5nZXRJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyhcImZpY2hlLXByb2R1Y3RcIik7XG4gICAgdGhpcy5wYWdlRXZlbnRDb25maWcgPSB0aGlzLmltZ01hbmFnZXJTZXJ2aWNlLmdldEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnKFwid2l6aS1ibG9ja1wiKTtcbiAgICB0aGlzLnNldEN1cnJlbnRMYW5ndWFnZSgpO1xuICAgIC8vIFNlYXJjaCBvbiB3aGljaCBwYWdlIGlzIGRpc3BsYXkgdGhlIGltZyBtYW5nZXJcbiAgICB0aGlzLnNldERpc3BsYXllZFBhZ2VDb25maWcoKTtcblxuICAgIGNvbnN0IHN1YkNyZWRlbnRpYWxzID1cbiAgICAgIHRoaXMuZ2V0Q3JlZGVudGlhbHMoKS5zdWJzY3JpYmUoYXV0aENyZWRlbnRpYWxzID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyhhdXRoQ3JlZGVudGlhbHMpO1xuICAgICAgICAvLyBGaWNoZSBwcm9kdWN0IHBhZ2VcbiAgICAgICAgaWYgKHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcucGFnZWZpY2hlUHJvZHVjdCkge1xuICAgICAgICAgIHRoaXMuc2V0RmljaGVQcm9kdWN0UGFnZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2V0UGFnZVdpdGhFdmVudHMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3ViQ3JlZGVudGlhbHMpO1xuICB9XG5cbiAgaW5pdFZhcmlhYmxlcyhhdXRoQ3JlZGVudGlhbHM6IEF1dGhDcmVkZW50aWFscyB8IG51bGwpIHtcbiAgICBpZiAoIWF1dGhDcmVkZW50aWFscykge1xuXG4gICAgICBpZiAoZW52aXJvbm1lbnQuaXNXaXppc2hvcGNvbSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBSdW4gb24gbG9jYWwgU2VydmVyXG4gICAgICB0aGlzLnNldEFwcFZhcnMobnVsbCwgZW52aXJvbm1lbnQubG9jYWwuc2hvcElkLCBudWxsLCAgZW52aXJvbm1lbnQubG9jYWwudG9rZW4pO1xuICAgICAgdGhpcy5zZXRJbWdNYW5hZ2VyRXh0cmFDb25maWcoKTtcbiAgICAgIHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB0aGlzLnBhZ2VmaWNoZVByb2R1Y3RDb25maWc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRBcHBWYXJzKGF1dGhDcmVkZW50aWFscy51c2VyX2lkLCBhdXRoQ3JlZGVudGlhbHMuc2hvcF9pZCwgYXV0aENyZWRlbnRpYWxzLmFjY291bnRfaWQsIGF1dGhDcmVkZW50aWFscy50b2tlbik7XG4gICAgdGhpcy5zZXRJbWdNYW5hZ2VyRXh0cmFDb25maWcoKTtcbiAgfVxuXG4gIHNldEZpY2hlUHJvZHVjdFBhZ2UoKSB7XG4gICAgdGhpcy5maWNoZVByb2R1Y3RTZXJ2aWNlLnNldEFwaUNvbmZpZyh0aGlzLmlkX3Nob3AsIHRoaXMudG9rZW5fc2hvcCk7XG4gICAgdGhpcy5oYW5kbGVGaWNoZVByb2R1Y3RUYWIoKTsgLy8gRGlzcGxheSBkaWZmZXJlbnQgaW1nIG1hbmFnZXIgY29uZmlnIGFjY29yZGluZyB0byB0aGUgdGFiXG4gICAgdGhpcy5jbG9zZUltZ01hbmFnZXJPblN3aXRjaGluZ1RhYigpO1xuICAgIHRoaXMuc3Vic2NyaWJlUGFnZUFza0ZvckltZygpOyAvLyBVc2UgZm9yIGltYWdlcyBpbiB2YXJpYXRpb25zIHRhYlxuICAgIHRoaXMuZmljaGVQcm9kdWN0U2VydmljZS51cGRhdGVJbWdTZWxlY3Rpb25PbkNoYW5nZSgpO1xuICB9XG5cbiAgc2V0UGFnZVdpdGhFdmVudHMoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmVQYWdlQXNrRm9ySW1nKCk7XG5cbiAgICAvLyBTZW5kIGltZyBzZWxlY3RlZFxuICAgIGNvbnN0IHN1YkltZ1NlbGVjdGlvbiA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5nZXRJbWdTZWxlY3Rpb25DaGFuZ2UoKS5zdWJzY3JpYmUoaW1nU2VsZWN0aW9uTGlzdCA9PiB7XG4gICAgICBpZiAoaW1nU2VsZWN0aW9uTGlzdCAmJiBpbWdTZWxlY3Rpb25MaXN0Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zZW5kSW1nU2VsZWN0ZWRUb1BhZ2UoaW1nU2VsZWN0aW9uTGlzdFswXSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3ViSW1nU2VsZWN0aW9uKTtcbiAgfVxuXG4gIHN1YnNjcmliZVBhZ2VBc2tGb3JJbWcoKSB7XG4gICAgLy8gTGlzdGVuIHRvIHBhZ2UgZWRpdG9yIGFzayBmb3IgaW1nIGV2ZW50XG4gICAgY29uc3Qgc3ViQXNrRm9ySW1nID0gdGhpcy5ldmVudFNlcnZpY2UucGFnZUFza0ZvckltZygpLnN1YnNjcmliZSggZGF0YSA9PiB7XG4gICAgICAvLyBSZXRyaWV2ZSB3aGljaCBpbWcgbWFuYWdlciBzZW5kIHRoZSBldmVudFxuICAgICAgY29uc3QgZW1pdHRlciA9IGRhdGEgJiYgZGF0YVtcImRldGFpbFwiXSA/IGRhdGFbXCJkZXRhaWxcIl1bXCJmcm9tXCJdIDogbnVsbDtcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNldEVtaXR0ZXIoZW1pdHRlcik7XG5cbiAgICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5zZXRJbWdTZWxlY3Rpb24oW10pO1xuXG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJBc2tGb3JJbWcpO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLm9wZW5JbWdNYW5hZ2VyID0gdHJ1ZTtcbiAgfVxuXG4gIG9uSW1nTWFuYWdlckNsb3NlZCgpIHtcbiAgICAvLyBDbG9zZSBpbWcgbWFuYWdlclxuICAgIHRoaXMub3BlbkltZ01hbmFnZXIgPSBmYWxzZTtcbiAgfVxuXG4gIHNldEN1cnJlbnRMYW5ndWFnZSgpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLm1hdGNoKCAvXlxcLyhcXHcrKVxcLy8pO1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobWF0Y2hlcyAmJiBtYXRjaGVzWzFdID8gbWF0Y2hlc1sxXSA6ICdmcicpO1xuICB9XG5cbiAgc2V0RGlzcGxheWVkUGFnZUNvbmZpZygpIHtcbiAgICBjb25zdCBpc0ZpY2hlUHJvZHVjdFBhZ2UgPSAvXFwvcHJvZHVjdHNcXC8oXFxkK1xcL2VkaXR8Y3JlYXRlKS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpO1xuICAgIHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSBpc0ZpY2hlUHJvZHVjdFBhZ2UgPyB0aGlzLnBhZ2VmaWNoZVByb2R1Y3RDb25maWcgOiB0aGlzLnBhZ2VFdmVudENvbmZpZztcbiAgfVxuXG4gIGhhbmRsZUZpY2hlUHJvZHVjdFRhYigpIHtcbiAgICBjb25zdCB0YWJzU3ViID1cbiAgICAgIHRoaXMuZmljaGVQcm9kdWN0U2VydmljZS5oYW5kbGVUYWJzKCkuc3Vic2NyaWJlKGlzUGhvdG9zVGFiID0+IHtcbiAgICAgICAgdGhpcy5pbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IGlzUGhvdG9zVGFiID8gdGhpcy5wYWdlZmljaGVQcm9kdWN0Q29uZmlnIDogdGhpcy5wYWdlRXZlbnRDb25maWc7XG4gICAgICAgIHRoaXMuaXNQaG90b3NUYWIgPSBpc1Bob3Rvc1RhYjtcbiAgICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRhYnNTdWIpO1xuICB9XG5cbiAgY2xvc2VJbWdNYW5hZ2VyT25Td2l0Y2hpbmdUYWIoKSB7XG4gICAgY29uc3QgdGFic0Nsb3NlU3ViID1cbiAgICAgIHRoaXMuZmljaGVQcm9kdWN0U2VydmljZS5zd2l0Y2hUYWJzKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLm9wZW5JbWdNYW5hZ2VyID0gZmFsc2U7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRhYnNDbG9zZVN1Yik7XG4gIH1cblxuICBwcml2YXRlIGdldENyZWRlbnRpYWxzPEF1dGhDcmVkZW50aWFscz4oKSB7XG4gICAgcmV0dXJuIGZyb21Qcm9taXNlKHRoaXMuYXV0aENyZWRlbnRpYWxzU2VydmljZS5nZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIHNldEFwcFZhcnModXNlcklkOiBudW1iZXIgfCBudWxsLCBzaG9wSWQ6IG51bWJlciwgYWNjb3VudElkOiBudW1iZXJ8IG51bGwsIHRva2VuOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDtcbiAgICB0aGlzLmlkX3Nob3AgPSBzaG9wSWQ7XG4gICAgdGhpcy5hY2NvdW50SWQgPSBhY2NvdW50SWQ7XG4gICAgdGhpcy50b2tlbl9zaG9wID0gdG9rZW47XG4gIH1cblxuICBwcml2YXRlIHNldEltZ01hbmFnZXJFeHRyYUNvbmZpZygpIHtcbiAgICBjb25zdCBhcGlEdG8gPSBuZXcgSW1nQXBpRHRvKCk7XG4gICAgYXBpRHRvLnNob3BfdG9rZW4gPSB0aGlzLnRva2VuX3Nob3A7XG4gICAgYXBpRHRvLmltYWdlX21hbmFnZXJfcm91dGUgPSBlbnZpcm9ubWVudC53aXppX2FwaSsgXCIvaW1hZ2UtbWFuYWdlci9zaG9wcy9cIiArIHRoaXMuaWRfc2hvcDtcbiAgICBhcGlEdG8uY2FudmFfdG9rZW4gPSAnd2RCeUhheUY1djU3bmoyWlNMdnUwNTVPJztcbiAgICBhcGlEdG8uY2FudmFfdXJsID0gJ2h0dHBzOi8vc2RrLmNhbnZhLmNvbS9kZXNpZ25idXR0b24vdjIvYXBpLmpzJztcbiAgICBhcGlEdG8ucGV4ZWxzX3Rva2VuID0gJzU2MzQ5MmFkNmY5MTcwMDAwMTAwMDAwMWUzOTIxNTcyN2Q4YjQyYzFiMDg0OThhOWNlMWU2Yjk0JztcbiAgICBhcGlEdG8ucGV4ZWxzX3JvdXRlID0gJ2h0dHBzOi8vYXBpLnBleGVscy5jb20vdjEnO1xuICAgIGFwaUR0by5zaG9wX2NhdGVnb3J5ID0gJ290aGVyJzsgLy8gVGhlIHNob3AgY2F0ZWdvcmllIGlzIHJldHJpZXZlIGxhdGVyIHdpdGggdGhlIGdldFNob3BDYXRlZ29yeSBtZXRob2RlXG4gICAgYXBpRHRvLmFzc2V0c19yb3V0ZSA9IGVudmlyb25tZW50LmFzc2V0c19yb3V0ZTtcblxuICAgIGNvbnN0IGltZ0NETkNvbmZpZ0RUTyA9IG5ldyBJbWdDRE5Db25maWdEVE8oKTtcbiAgICBpbWdDRE5Db25maWdEVE8udXJsX3Jhd19pbWFnZSA9IGAke2Vudmlyb25tZW50LkNETl9VUkx9JHt0aGlzLmlkX3Nob3B9L1JBVy1gO1xuICAgIGltZ0NETkNvbmZpZ0RUTy51cmxfMTAwX2ltYWdlID0gYCR7ZW52aXJvbm1lbnQuQ0ROX1VSTH0ke3RoaXMuaWRfc2hvcH0vbTEwMC1gO1xuICAgIGltZ0NETkNvbmZpZ0RUTy51cmxfMjAwX2ltYWdlID0gYCR7ZW52aXJvbm1lbnQuQ0ROX1VSTH0ke3RoaXMuaWRfc2hvcH0vY3MyMDAtYDtcbiAgICBpbWdDRE5Db25maWdEVE8udXJsXzQwMF9pbWFnZSA9IGAke2Vudmlyb25tZW50LkNETl9VUkx9JHt0aGlzLmlkX3Nob3B9L2NzNDAwLWA7XG4gICAgaW1nQ0ROQ29uZmlnRFRPLnVybF84MDBfaW1hZ2UgPSBgJHtlbnZpcm9ubWVudC5DRE5fVVJMfSR7dGhpcy5pZF9zaG9wfS9jczgwMC1gO1xuXG4gICAgdGhpcy5pbWdFeHRlcm5hbENvbmZpZyA9IG5ldyBJbWdNYW5hZ2VyQ29uZmlnRHRvKCk7XG4gICAgdGhpcy5pbWdFeHRlcm5hbENvbmZpZy5hcGkgPSBhcGlEdG87XG4gICAgdGhpcy5pbWdFeHRlcm5hbENvbmZpZy5pbWdDRE5Db25maWcgPSBpbWdDRE5Db25maWdEVE87XG5cbiAgICBjb25zdCBzdWJTaG9wQ2F0ZWdvcnkgPSB0aGlzLmdldFNob3BDYXRlZ29yeSgpLnN1YnNjcmliZShzaG9wID0+IHtcbiAgICAgIGlmIChzaG9wICYmIHNob3BbJ2NhdGVnb3J5J10pIHtcbiAgICAgICAgdGhpcy5pbWdFeHRlcm5hbENvbmZpZy5hcGkuc2hvcF9jYXRlZ29yeSA9IHNob3BbJ2NhdGVnb3J5J107XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3ViU2hvcENhdGVnb3J5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2hvcENhdGVnb3J5KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7ZW52aXJvbm1lbnQud2l6aV9hcGl9L3Nob3BzLyR7dGhpcy5pZF9zaG9wfWAsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnNXaXRoQmVhcmVyKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcHRpb25zSGVhZGVyc1dpdGhCZWFyZXIoKSB7XG4gICAgY29uc3QgaGVhZGVyID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgdGhpcy50b2tlbl9zaG9wXG4gICAgICB9KVxuICAgIH07XG4gICAgcmV0dXJuIGhlYWRlcjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbmZvLWJ1bGxlXCI+XG4gIDxwIGNsYXNzPVwiaW5mby1idWxsZS1jb250ZW50XCIgW2lubmVySFRNTF09XCInSW1nTWFuYWdlci53ZWJFbGVtZW50LmluZm9CdWxsZScgfCB0cmFuc2xhdGVcIj48L3A+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLnBhZ2VmaWNoZVByb2R1Y3QgJiYgaXNQaG90b3NUYWJcIj5cbiAgICA8aDMgY2xhc3M9XCJ3aXppY3NzLXNvdXMtdGl0cmVcIj57eydJbWdNYW5hZ2VyLndlYkVsZW1lbnQucGhvdG9zVGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nICYmIGlkX3Nob3AgJiYgaW1nTWFuYWdlckRpc3BsYXlDb25maWdcIj5cblxuICAgIDxwIGNsYXNzPVwiaW1nLW1hbmFnZXItb3BlblwiICpuZ0lmPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcuZGlzcGxheUJ0biAmJiBpc1Bob3Rvc1RhYlwiPlxuICAgICAgPGEgKGNsaWNrKT1cIm9wZW4oKVwiPnt7J0ltZ01hbmFnZXIud2ViRWxlbWVudC5PcGVuQnRuJyB8IHRyYW5zbGF0ZSB9fTwvYT5cbiAgICA8L3A+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaW1nTWFuYWdlckJveFwiPlxuICAgICAgPHd6LWltZy1tYW5hZ2VyXG4gICAgICAgICN3ekltZ01hbmFnZXJcbiAgICAgICAgW3N0YXRlRGlzcGxheWVkXT1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLnN0YXRlRGlzcGxheWVkXCJcbiAgICAgICAgW211bHRpcGxlSW1nTW9kZV09XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5tdWx0aXBsZUltZ01vZGVcIlxuICAgICAgICBbc2hvd0ltZ01hbmFnZXJNb2R1bGVdPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcuc2hvd0ltZ01hbmFnZXJNb2R1bGUgJiYgb3BlbkltZ01hbmFnZXJcIlxuICAgICAgICBbc2hvd1NlbGVjdGlvbl09XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5zaG93U2VsZWN0aW9uXCJcbiAgICAgICAgW2V4dGVybmFsQ29uZmlnXT1cImltZ0V4dGVybmFsQ29uZmlnXCJcbiAgICAgICAgKGltZ01hbmFnZXJDbG9zZWQpPVwib25JbWdNYW5hZ2VyQ2xvc2VkKClcIj5cbiAgICAgIDwvd3otaW1nLW1hbmFnZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
138
+ args: [{ selector: 'img-manager-webelement', providers: [
139
+ ImgSelectionService
140
+ ], template: "<div class=\"info-bulle\">\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\n\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\n\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\n </p>\n\n <div class=\"imgManagerBox\">\n <wz-img-manager\n #wzImgManager\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\n (imgManagerClosed)=\"onImgManagerClosed()\">\n </wz-img-manager>\n </div>\n </ng-container>\n</div>" }]
141
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.CanvaService }, { type: i3.FicheProductService }, { type: i4.AuthCredentialsService }, { type: i5.EventService }, { type: i2.ImgManagerService }, { type: i2.ImgSelectionService }, { type: i6.WebelementImageManagerApiService }]; } });
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFDLE9BQU8sRUFBZ0IsSUFBSSxJQUFJLFdBQVcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUtyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVc1RCxNQUFNLE9BQU8sNkJBQTZCO0lBa0J4QyxZQUNVLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsc0JBQThDLEVBQzlDLFlBQTBCLEVBQzFCLGlCQUFvQyxFQUNwQyxtQkFBd0MsRUFDeEMsZ0NBQWtFO1FBUGxFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQ0FBZ0MsR0FBaEMsZ0NBQWdDLENBQWtDO1FBckI1RSxvQkFBb0I7UUFDcEIsbUJBQWMsR0FBVyxLQUFLLENB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QUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDOzswSEF2SlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsaURBSjdCO1FBQ1QsbUJBQW1CO0tBQ3BCLDBCQ2xCSCxpbENBd0JNOzJGREpPLDZCQUE2QjtrQkFSekMsU0FBUzsrQkFDRSx3QkFBd0IsYUFHdkI7d0JBQ1QsbUJBQW1CO3FCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nTWFuYWdlckNvbmZpZ0R0bywgSW1nQXBpRHRvLCBJbWdDRE5Db25maWdEVE8sIENhbnZhU2VydmljZSwgSW1nTWFuYWdlckRpc3BsYXlDb25maWcsIEltZ01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnQHdpemlzaG9wL2ltZy1tYW5hZ2VyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbSBhcyBmcm9tUHJvbWlzZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmljaGVQcm9kdWN0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZmljaGVfcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoQ3JlZGVudGlhbHMsIEF1dGhDcmVkZW50aWFsc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2F1dGgtY3JlZGVudGlhbHMuc2VydmljZSc7XG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuaW1wb3J0IHsgV2ViZWxlbWVudEltYWdlTWFuYWdlckFwaVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3dlYmVsZW1lbnQtaW1hZ2UtbWFuYWdlci1hcGkuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1nLW1hbmFnZXItd2ViZWxlbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWctbWFuYWdlci13ZWJlbGVtZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBJbWdTZWxlY3Rpb25TZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW1nTWFuYWdlcldlYkVsZW1lbnRDb21wb25lbnQge1xuICAvLyBzaG9wIGNvbmZpZ1xuICBpZF9zaG9wOiBudW1iZXI7XG4gIHRva2VuX3Nob3A6IHN0cmluZztcblxuICAvLyBpbWcgbWFuZ2VyIGNvbmZpZ1xuICBvcGVuSW1nTWFuYWdlcjpib29sZWFuID0gZmFsc2U7XG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBpbWdFeHRlcm5hbENvbmZpZzogSW1nTWFuYWdlckNvbmZpZ0R0bztcbiAgaW1nTWFuYWdlckRpc3BsYXlDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnO1xuICBwYWdlRmljaGVQcm9kdWN0Q29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZztcbiAgcGFnZUV2ZW50Q29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZztcblxuICAvLyBmaWNoZSBwcm9kdWN0IGNvbmZpZ1xuICBpc1Bob3Rvc1RhYjogYm9vbGVhbiA9ICEhZW52aXJvbm1lbnQuaXNQaG90b3NUYWI7XG5cbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYW52YVNlcnZpY2U6IENhbnZhU2VydmljZSxcbiAgICBwcml2YXRlIGZpY2hlUHJvZHVjdFNlcnZpY2U6IEZpY2hlUHJvZHVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoQ3JlZGVudGlhbHNTZXJ2aWNlOiBBdXRoQ3JlZGVudGlhbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdNYW5hZ2VyU2VydmljZTogSW1nTWFuYWdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdTZWxlY3Rpb25TZXJ2aWNlOiBJbWdTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgd2ViZWxlbWVudEltYWdlTWFuYWdlckFwaVNlcnZpY2U6IFdlYmVsZW1lbnRJbWFnZU1hbmFnZXJBcGlTZXJ2aWNlXG4gICl7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5wYWdlRmljaGVQcm9kdWN0Q29uZmlnID0gdGhpcy5pbWdNYW5hZ2VyU2VydmljZS5nZXRJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyhcImZpY2hlLXByb2R1Y3RcIik7XG4gICAgdGhpcy5wYWdlRXZlbnRDb25maWcgPSB0aGlzLmltZ01hbmFnZXJTZXJ2aWNlLmdldEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnKFwid2l6aS1ibG9ja1wiKTtcbiAgICB0aGlzLnNldEN1cnJlbnRMYW5ndWFnZSgpO1xuICAgIC8vIFNlYXJjaCBvbiB3aGljaCBwYWdlIGlzIGRpc3BsYXkgdGhlIGltZyBtYW5nZXJcbiAgICB0aGlzLnNldERpc3BsYXllZFBhZ2VDb25maWcoKTtcblxuICAgIGNvbnN0IHN1YkNyZWRlbnRpYWxzID1cbiAgICAgIHRoaXMuZ2V0Q3JlZGVudGlhbHMoKS5zdWJzY3JpYmUoYXV0aENyZWRlbnRpYWxzID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyhhdXRoQ3JlZGVudGlhbHMpO1xuICAgICAgICAvLyBGaWNoZSBwcm9kdWN0IHBhZ2VcbiAgICAgICAgaWYgKHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcucGFnZWZpY2hlUHJvZHVjdCkge1xuICAgICAgICAgIHRoaXMuc2V0RmljaGVQcm9kdWN0UGFnZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2V0UGFnZVdpdGhFdmVudHMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3ViQ3JlZGVudGlhbHMpO1xuICB9XG5cbiAgaW5pdFZhcmlhYmxlcyhhdXRoQ3JlZGVudGlhbHM6IEF1dGhDcmVkZW50aWFscyB8IG51bGwpIHtcbiAgICBpZiAoIWF1dGhDcmVkZW50aWFscykge1xuXG4gICAgICBpZiAoZW52aXJvbm1lbnQuaXNXaXppc2hvcGNvbSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBSdW4gb24gbG9jYWwgU2VydmVyXG4gICAgICB0aGlzLnNldEFwcFZhcnMoZW52aXJvbm1lbnQubG9jYWwuc2hvcElkLCBlbnZpcm9ubWVudC5sb2NhbC50b2tlbik7XG4gICAgICB0aGlzLmltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0gdGhpcy5wYWdlRmljaGVQcm9kdWN0Q29uZmlnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0QXBwVmFycyhhdXRoQ3JlZGVudGlhbHMuc2hvcF9pZCwgYXV0aENyZWRlbnRpYWxzLnRva2VuKTtcbiAgfVxuXG4gIHNldEZpY2hlUHJvZHVjdFBhZ2UoKSB7XG4gICAgdGhpcy5maWNoZVByb2R1Y3RTZXJ2aWNlLnNldEFwaUNvbmZpZyh0aGlzLmlkX3Nob3AsIHRoaXMudG9rZW5fc2hvcCk7XG4gICAgdGhpcy5oYW5kbGVGaWNoZVByb2R1Y3RUYWIoKTsgLy8gRGlzcGxheSBkaWZmZXJlbnQgaW1nIG1hbmFnZXIgY29uZmlnIGFjY29yZGluZyB0byB0aGUgdGFiXG4gICAgdGhpcy5jbG9zZUltZ01hbmFnZXJPblN3aXRjaGluZ1RhYigpO1xuICAgIHRoaXMuc3Vic2NyaWJlUGFnZUFza0ZvckltZygpOyAvLyBVc2UgZm9yIGltYWdlcyBpbiB2YXJpYXRpb25zIHRhYlxuICAgIHRoaXMuZmljaGVQcm9kdWN0U2VydmljZS51cGRhdGVJbWdTZWxlY3Rpb25PbkNoYW5nZSgpO1xuICB9XG5cbiAgc2V0UGFnZVdpdGhFdmVudHMoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmVQYWdlQXNrRm9ySW1nKCk7XG5cbiAgICAvLyBTZW5kIGltZyBzZWxlY3RlZFxuICAgIGNvbnN0IHN1YkltZ1NlbGVjdGlvbiA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3Rpb24kLnN1YnNjcmliZShpbWdTZWxlY3Rpb25MaXN0ID0+IHtcbiAgICAgIGlmIChpbWdTZWxlY3Rpb25MaXN0ICYmIGltZ1NlbGVjdGlvbkxpc3QubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNlbmRJbWdTZWxlY3RlZFRvUGFnZShpbWdTZWxlY3Rpb25MaXN0WzBdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJJbWdTZWxlY3Rpb24pO1xuICB9XG5cbiAgc3Vic2NyaWJlUGFnZUFza0ZvckltZygpIHtcbiAgICAvLyBMaXN0ZW4gdG8gcGFnZSBlZGl0b3IgYXNrIGZvciBpbWcgZXZlbnRcbiAgICBjb25zdCBzdWJBc2tGb3JJbWcgPSB0aGlzLmV2ZW50U2VydmljZS5wYWdlQXNrRm9ySW1nKCkuc3Vic2NyaWJlKCBkYXRhID0+IHtcbiAgICAgIC8vIFJldHJpZXZlIHdoaWNoIGltZyBtYW5hZ2VyIHNlbmQgdGhlIGV2ZW50XG4gICAgICBjb25zdCBlbWl0dGVyID0gZGF0YSAmJiBkYXRhW1wiZGV0YWlsXCJdID8gZGF0YVtcImRldGFpbFwiXVtcImZyb21cIl0gOiBudWxsO1xuICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2V0RW1pdHRlcihlbWl0dGVyKTtcblxuICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnNldEltZ1NlbGVjdGlvbihbXSk7XG5cbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YkFza0ZvckltZyk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMub3BlbkltZ01hbmFnZXIgPSB0cnVlO1xuICB9XG5cbiAgb25JbWdNYW5hZ2VyQ2xvc2VkKCkge1xuICAgIC8vIENsb3NlIGltZyBtYW5hZ2VyXG4gICAgdGhpcy5vcGVuSW1nTWFuYWdlciA9IGZhbHNlO1xuICB9XG5cbiAgc2V0Q3VycmVudExhbmd1YWdlKCkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goIC9eXFwvKFxcdyspXFwvLyk7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShtYXRjaGVzICYmIG1hdGNoZXNbMV0gPyBtYXRjaGVzWzFdIDogJ2ZyJyk7XG4gIH1cblxuICBzZXREaXNwbGF5ZWRQYWdlQ29uZmlnKCkge1xuICAgIGNvbnN0IGlzRmljaGVQcm9kdWN0UGFnZSA9IC9cXC9wcm9kdWN0c1xcLyhcXGQrXFwvZWRpdHxjcmVhdGUpLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgdGhpcy5pbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IGlzRmljaGVQcm9kdWN0UGFnZSA/IHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZyA6IHRoaXMucGFnZUV2ZW50Q29uZmlnO1xuICB9XG5cbiAgaGFuZGxlRmljaGVQcm9kdWN0VGFiKCkge1xuICAgIGNvbnN0IHRhYnNTdWIgPVxuICAgICAgdGhpcy5maWNoZVByb2R1Y3RTZXJ2aWNlLmhhbmRsZVRhYnMoKS5zdWJzY3JpYmUoaXNQaG90b3NUYWIgPT4ge1xuICAgICAgICB0aGlzLmltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0gaXNQaG90b3NUYWIgPyB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWcgOiB0aGlzLnBhZ2VFdmVudENvbmZpZztcbiAgICAgICAgdGhpcy5pc1Bob3Rvc1RhYiA9IGlzUGhvdG9zVGFiO1xuICAgICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGFic1N1Yik7XG4gIH1cblxuICBjbG9zZUltZ01hbmFnZXJPblN3aXRjaGluZ1RhYigpIHtcbiAgICBjb25zdCB0YWJzQ2xvc2VTdWIgPVxuICAgICAgdGhpcy5maWNoZVByb2R1Y3RTZXJ2aWNlLnN3aXRjaFRhYnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMub3BlbkltZ01hbmFnZXIgPSBmYWxzZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGFic0Nsb3NlU3ViKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3JlZGVudGlhbHM8QXV0aENyZWRlbnRpYWxzPigpIHtcbiAgICByZXR1cm4gZnJvbVByb21pc2UodGhpcy5hdXRoQ3JlZGVudGlhbHNTZXJ2aWNlLmdldCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QXBwVmFycyhzaG9wSWQ6IG51bWJlciwgdG9rZW46IHN0cmluZykge1xuICAgIHRoaXMud2ViZWxlbWVudEltYWdlTWFuYWdlckFwaVNlcnZpY2Uuc2hvcFRva2VuID0gdG9rZW47XG4gICAgdGhpcy53ZWJlbGVtZW50SW1hZ2VNYW5hZ2VyQXBpU2VydmljZS5zaG9wSWQgPSBzaG9wSWQ7XG4gICAgaWYgKHNob3BJZCkge1xuICAgICAgdGhpcy53ZWJlbGVtZW50SW1hZ2VNYW5hZ2VyQXBpU2VydmljZS5zZXRTaG9wQ2F0ZWdvcnkoc2hvcElkKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5mby1idWxsZVwiPlxuICA8cCBjbGFzcz1cImluZm8tYnVsbGUtY29udGVudFwiIFtpbm5lckhUTUxdPVwiJ0ltZ01hbmFnZXIud2ViRWxlbWVudC5pbmZvQnVsbGUnIHwgdHJhbnNsYXRlXCI+PC9wPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5wYWdlZmljaGVQcm9kdWN0ICYmIGlzUGhvdG9zVGFiXCI+XG4gICAgPGgzIGNsYXNzPVwid2l6aWNzcy1zb3VzLXRpdHJlXCI+e3snSW1nTWFuYWdlci53ZWJFbGVtZW50LnBob3Rvc1RpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZyAmJiBpZF9zaG9wICYmIGltZ01hbmFnZXJEaXNwbGF5Q29uZmlnXCI+XG5cbiAgICA8cCBjbGFzcz1cImltZy1tYW5hZ2VyLW9wZW5cIiAqbmdJZj1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLmRpc3BsYXlCdG4gJiYgaXNQaG90b3NUYWJcIj5cbiAgICAgIDxhIChjbGljayk9XCJvcGVuKClcIj57eydJbWdNYW5hZ2VyLndlYkVsZW1lbnQuT3BlbkJ0bicgfCB0cmFuc2xhdGUgfX08L2E+XG4gICAgPC9wPlxuXG4gICAgPGRpdiBjbGFzcz1cImltZ01hbmFnZXJCb3hcIj5cbiAgICAgIDx3ei1pbWctbWFuYWdlclxuICAgICAgICAjd3pJbWdNYW5hZ2VyXG4gICAgICAgIFtzdGF0ZURpc3BsYXllZF09XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5zdGF0ZURpc3BsYXllZFwiXG4gICAgICAgIFttdWx0aXBsZUltZ01vZGVdPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcubXVsdGlwbGVJbWdNb2RlXCJcbiAgICAgICAgW3Nob3dJbWdNYW5hZ2VyTW9kdWxlXT1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLnNob3dJbWdNYW5hZ2VyTW9kdWxlICYmIG9wZW5JbWdNYW5hZ2VyXCJcbiAgICAgICAgW3Nob3dTZWxlY3Rpb25dPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcuc2hvd1NlbGVjdGlvblwiXG4gICAgICAgIChpbWdNYW5hZ2VyQ2xvc2VkKT1cIm9uSW1nTWFuYWdlckNsb3NlZCgpXCI+XG4gICAgICA8L3d6LWltZy1tYW5hZ2VyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
@@ -2,28 +2,35 @@ import { CommonModule } from '@angular/common';
2
2
  import { HttpClientModule } from '@angular/common/http';
3
3
  import { NgModule } from '@angular/core';
4
4
  import { TranslateModule } from '@ngx-translate/core';
5
- import { WzImgManagerModule } from '@wizishop/img-manager';
6
5
  import { ImgManagerWebElementComponent } from './img-manager-webelement.component';
7
6
  import { AuthCredentialsService } from './services/auth-credentials.service';
8
7
  import { EventService } from './services/event.service';
9
8
  import { FicheProductService } from './services/fiche_products.service';
10
9
  import { StorageService } from './services/storage.service';
10
+ import { ApiService, WzImgManagerModule } from '@wizishop/img-manager';
11
+ import { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';
11
12
  import * as i0 from "@angular/core";
13
+ import * as i1 from "@wizishop/img-manager";
12
14
  export class ImgManagerWebElementModule {
13
15
  }
14
16
  ImgManagerWebElementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
17
  ImgManagerWebElementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, declarations: [ImgManagerWebElementComponent], imports: [CommonModule,
16
- HttpClientModule,
17
- WzImgManagerModule,
18
- TranslateModule], exports: [ImgManagerWebElementComponent] });
18
+ HttpClientModule, i1.WzImgManagerModule, TranslateModule], exports: [ImgManagerWebElementComponent] });
19
19
  ImgManagerWebElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, providers: [
20
+ {
21
+ provide: WebelementImageManagerApiService,
22
+ useClass: WebelementImageManagerApiService,
23
+ },
20
24
  StorageService,
21
25
  FicheProductService,
22
26
  EventService,
23
27
  AuthCredentialsService
24
28
  ], imports: [CommonModule,
25
29
  HttpClientModule,
26
- WzImgManagerModule,
30
+ WzImgManagerModule.withConfig({
31
+ provide: ApiService,
32
+ useExisting: WebelementImageManagerApiService,
33
+ }),
27
34
  TranslateModule] });
28
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, decorators: [{
29
36
  type: NgModule,
@@ -32,11 +39,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
32
39
  imports: [
33
40
  CommonModule,
34
41
  HttpClientModule,
35
- WzImgManagerModule,
42
+ WzImgManagerModule.withConfig({
43
+ provide: ApiService,
44
+ useExisting: WebelementImageManagerApiService,
45
+ }),
36
46
  TranslateModule,
37
47
  ],
38
48
  exports: [ImgManagerWebElementComponent],
39
49
  providers: [
50
+ {
51
+ provide: WebelementImageManagerApiService,
52
+ useClass: WebelementImageManagerApiService,
53
+ },
40
54
  StorageService,
41
55
  FicheProductService,
42
56
  EventService,
@@ -44,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
44
58
  ]
45
59
  }]
46
60
  }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXItd2ViZWxlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBb0I1RCxNQUFNLE9BQU8sMEJBQTBCOzt1SEFBMUIsMEJBQTBCO3dIQUExQiwwQkFBMEIsaUJBZnRCLDZCQUE2QixhQUUxQyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGtCQUFrQjtRQUNsQixlQUFlLGFBRVAsNkJBQTZCO3dIQVE1QiwwQkFBMEIsYUFQMUI7UUFDVCxjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixzQkFBc0I7S0FDdkIsWUFYQyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGtCQUFrQjtRQUNsQixlQUFlOzJGQVVOLDBCQUEwQjtrQkFoQnRDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzdDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDeEMsU0FBUyxFQUFFO3dCQUNULGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFd6SW1nTWFuYWdlck1vZHVsZSB9IGZyb20gJ0B3aXppc2hvcC9pbWctbWFuYWdlcic7XG5pbXBvcnQgeyBJbWdNYW5hZ2VyV2ViRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aENyZWRlbnRpYWxzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXV0aC1jcmVkZW50aWFscy5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBGaWNoZVByb2R1Y3RTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9maWNoZV9wcm9kdWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbSW1nTWFuYWdlcldlYkVsZW1lbnRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgV3pJbWdNYW5hZ2VyTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0ltZ01hbmFnZXJXZWJFbGVtZW50Q29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU3RvcmFnZVNlcnZpY2UsXG4gICAgRmljaGVQcm9kdWN0U2VydmljZSxcbiAgICBFdmVudFNlcnZpY2UsXG4gICAgQXV0aENyZWRlbnRpYWxzU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEltZ01hbmFnZXJXZWJFbGVtZW50TW9kdWxlIHsgfVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXItd2ViZWxlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7QUF5QmxHLE1BQU0sT0FBTywwQkFBMEI7O3VIQUExQiwwQkFBMEI7d0hBQTFCLDBCQUEwQixpQkF0QnRCLDZCQUE2QixhQUUxQyxZQUFZO1FBQ1osZ0JBQWdCLHlCQUtoQixlQUFlLGFBRVAsNkJBQTZCO3dIQVk1QiwwQkFBMEIsYUFYMUI7UUFDVDtZQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsUUFBUSxFQUFFLGdDQUFnQztTQUMzQztRQUNELGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsWUFBWTtRQUNaLHNCQUFzQjtLQUN2QixZQWxCQyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztZQUM1QixPQUFPLEVBQUUsVUFBVTtZQUNuQixXQUFXLEVBQUUsZ0NBQWdDO1NBQzlDLENBQUM7UUFDRixlQUFlOzJGQWNOLDBCQUEwQjtrQkF2QnRDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzdDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsa0JBQWtCLENBQUMsVUFBVSxDQUFDOzRCQUM1QixPQUFPLEVBQUUsVUFBVTs0QkFDbkIsV0FBVyxFQUFFLGdDQUFnQzt5QkFDOUMsQ0FBQzt3QkFDRixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDeEMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEsRUFBRSxnQ0FBZ0M7eUJBQzNDO3dCQUNELGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEltZ01hbmFnZXJXZWJFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9pbWctbWFuYWdlci13ZWJlbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRoQ3JlZGVudGlhbHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hdXRoLWNyZWRlbnRpYWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpY2hlUHJvZHVjdFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ZpY2hlX3Byb2R1Y3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlLCBXekltZ01hbmFnZXJNb2R1bGUgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuaW1wb3J0IHsgV2ViZWxlbWVudEltYWdlTWFuYWdlckFwaVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3dlYmVsZW1lbnQtaW1hZ2UtbWFuYWdlci1hcGkuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbSW1nTWFuYWdlcldlYkVsZW1lbnRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgV3pJbWdNYW5hZ2VyTW9kdWxlLndpdGhDb25maWcoe1xuICAgICAgcHJvdmlkZTogQXBpU2VydmljZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBXZWJlbGVtZW50SW1hZ2VNYW5hZ2VyQXBpU2VydmljZSxcbiAgICB9KSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtJbWdNYW5hZ2VyV2ViRWxlbWVudENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdlYmVsZW1lbnRJbWFnZU1hbmFnZXJBcGlTZXJ2aWNlLFxuICAgICAgdXNlQ2xhc3M6IFdlYmVsZW1lbnRJbWFnZU1hbmFnZXJBcGlTZXJ2aWNlLFxuICAgIH0sXG4gICAgU3RvcmFnZVNlcnZpY2UsXG4gICAgRmljaGVQcm9kdWN0U2VydmljZSxcbiAgICBFdmVudFNlcnZpY2UsXG4gICAgQXV0aENyZWRlbnRpYWxzU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEltZ01hbmFnZXJXZWJFbGVtZW50TW9kdWxlIHsgfVxuIl19
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
40
40
  type: Injectable
41
41
  }], ctorParameters: function () { return [{ type: i1.StorageService }]; } });
42
42
  ;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jcmVkZW50aWFscy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1nLW1hbmFnZXItd2ViZWxlbWVudC9zcmMvbGliL3NlcnZpY2VzL2F1dGgtY3JlZGVudGlhbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBSTFELE1BQU0sT0FBTyxzQkFBc0I7SUFLakMsWUFBb0IsT0FBdUI7UUFBdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFKbkMsZ0JBQVcsR0FBMkIsSUFBSSxDQUFDO1FBS2pELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQWtCLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxHQUFHO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDMUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFTLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5RSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUV6QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsR0FBRyxDQUFDLFdBQTRCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqRixJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQzthQUNoQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNFLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzttSEFwQ1Usc0JBQXNCO3VIQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVTs7QUE2Q1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKCkgLy8gdG9kb1xuZXhwb3J0IGNsYXNzIEF1dGhDcmVkZW50aWFsc1NlcnZpY2Uge1xuICBwcml2YXRlIGNyZWRlbnRpYWxzOiBBdXRoQ3JlZGVudGlhbHMgfCBudWxsID0gbnVsbDtcblxuICBjcmVkZW50aWFscyQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yYWdlOiBTdG9yYWdlU2VydmljZSkge1xuICAgIHRoaXMuY3JlZGVudGlhbHMkID0gdGhpcy5zdG9yYWdlLnN1YnNjcmliZTxBdXRoQ3JlZGVudGlhbHM+KGVudmlyb25tZW50LndpemlBcGlDcmVkZW50aWFsc0tleSk7XG4gIH1cblxuICBnZXQoKTogUHJvbWlzZTxBdXRoQ3JlZGVudGlhbHMgfCBudWxsPiB7XG4gICAgaWYgKHRoaXMuY3JlZGVudGlhbHMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5jcmVkZW50aWFscyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0PHN0cmluZz4oZW52aXJvbm1lbnQud2l6aUFwaUNyZWRlbnRpYWxzS2V5KS50aGVuKHRva2VuID0+IHtcbiAgICAgIHRoaXMuY3JlZGVudGlhbHMgPSB0b2tlbjtcblxuICAgICAgcmV0dXJuIHRoaXMuY3JlZGVudGlhbHM7XG4gICAgfSk7XG4gIH1cblxuICBzZXQoY3JlZGVudGlhbHM6IEF1dGhDcmVkZW50aWFscyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2Uuc2V0KGVudmlyb25tZW50LndpemlBcGlDcmVkZW50aWFsc0tleSwgY3JlZGVudGlhbHMpLnRoZW4oc2V0ID0+IHtcbiAgICAgIGlmIChzZXQpIHtcbiAgICAgICAgdGhpcy5jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNldDtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnJlbW92ZShlbnZpcm9ubWVudC53aXppQXBpQ3JlZGVudGlhbHNLZXkpLnRoZW4ocmVtb3ZlZCA9PiB7XG4gICAgICBpZiAocmVtb3ZlZCkge1xuICAgICAgICB0aGlzLmNyZWRlbnRpYWxzID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZW1vdmVkO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aENyZWRlbnRpYWxzIHtcbiAgdG9rZW46IHN0cmluZztcbiAgdXNlcl9pZDogbnVtYmVyO1xuICBhY2NvdW50X2lkOiBudW1iZXI7XG4gIHNob3BfaWQ6IG51bWJlcjtcbn07XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jcmVkZW50aWFscy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1nLW1hbmFnZXItd2ViZWxlbWVudC9zcmMvbGliL3NlcnZpY2VzL2F1dGgtY3JlZGVudGlhbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBSTFELE1BQU0sT0FBTyxzQkFBc0I7SUFLakMsWUFBb0IsT0FBdUI7UUFBdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFKbkMsZ0JBQVcsR0FBMkIsSUFBSSxDQUFDO1FBS2pELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQWtCLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxHQUFHO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDMUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFTLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5RSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUV6QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsR0FBRyxDQUFDLFdBQTRCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqRixJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQzthQUNoQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNFLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzttSEFwQ1Usc0JBQXNCO3VIQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVTs7QUE2Q1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoQ3JlZGVudGlhbHNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjcmVkZW50aWFsczogQXV0aENyZWRlbnRpYWxzIHwgbnVsbCA9IG51bGw7XG5cbiAgY3JlZGVudGlhbHMkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZVNlcnZpY2UpIHtcbiAgICB0aGlzLmNyZWRlbnRpYWxzJCA9IHRoaXMuc3RvcmFnZS5zdWJzY3JpYmU8QXV0aENyZWRlbnRpYWxzPihlbnZpcm9ubWVudC53aXppQXBpQ3JlZGVudGlhbHNLZXkpO1xuICB9XG5cbiAgZ2V0KCk6IFByb21pc2U8QXV0aENyZWRlbnRpYWxzIHwgbnVsbD4ge1xuICAgIGlmICh0aGlzLmNyZWRlbnRpYWxzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuY3JlZGVudGlhbHMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmdldDxzdHJpbmc+KGVudmlyb25tZW50LndpemlBcGlDcmVkZW50aWFsc0tleSkudGhlbih0b2tlbiA9PiB7XG4gICAgICB0aGlzLmNyZWRlbnRpYWxzID0gdG9rZW47XG5cbiAgICAgIHJldHVybiB0aGlzLmNyZWRlbnRpYWxzO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0KGNyZWRlbnRpYWxzOiBBdXRoQ3JlZGVudGlhbHMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnNldChlbnZpcm9ubWVudC53aXppQXBpQ3JlZGVudGlhbHNLZXksIGNyZWRlbnRpYWxzKS50aGVuKHNldCA9PiB7XG4gICAgICBpZiAoc2V0KSB7XG4gICAgICAgIHRoaXMuY3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZXQ7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5yZW1vdmUoZW52aXJvbm1lbnQud2l6aUFwaUNyZWRlbnRpYWxzS2V5KS50aGVuKHJlbW92ZWQgPT4ge1xuICAgICAgaWYgKHJlbW92ZWQpIHtcbiAgICAgICAgdGhpcy5jcmVkZW50aWFscyA9IG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVtb3ZlZDtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhDcmVkZW50aWFscyB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHVzZXJfaWQ6IG51bWJlcjtcbiAgYWNjb3VudF9pZDogbnVtYmVyO1xuICBzaG9wX2lkOiBudW1iZXI7XG59O1xuIl19
@@ -34,4 +34,4 @@ EventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EventService, decorators: [{
35
35
  type: Injectable
36
36
  }], ctorParameters: function () { return []; } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxZQUFZO0lBTXZCLGdCQUFnQixDQUFDO0lBRWpCLHFCQUFxQixDQUFDLElBQW9CO1FBQ3hDLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEdBQUcsSUFBSTtZQUNQLFdBQVcsRUFBRSxFQUFFO1NBQ2hCLENBQUM7UUFDRixJQUFJLFVBQVUsRUFBRTtZQUNkLFVBQVUsQ0FBQyxXQUFXLEdBQUcsR0FBRyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQztTQUNuRTtRQUVELE1BQU0sS0FBSyxHQUFHO1lBQ0UsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDckI7U0FDRixDQUFDO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxNQUFNLGdCQUFnQixHQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwRSxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLFNBQVMsQ0FBTSxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWU7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQzs7eUdBbENVLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nUGljdHVyZURUTyB9IGZyb20gJ0B3aXppc2hvcC9pbWctbWFuYWdlcic7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcblxuQEluamVjdGFibGUoKSAvLyB0b2RvXG5leHBvcnQgY2xhc3MgRXZlbnRTZXJ2aWNlIHtcblxuICAvLyBTb21ldGltZXMsIHRoZXJlIGFyZSBtdWx0aXBsZSBpbWcgbWFuYWdlciB0aGF0IGxpc3RlbiBhdCB0aGUgc2FtZSB0aW1lIGF0IGltZ1NlbGVjdGVkIGV2ZW50XG4gIC8vIEl0IHVzZSBieSB0aGUgbGlzdGVuZXIsIHRvIGtub3cgaWYgdGhlIGV2ZW50IGlzIGZvciBoaW1cbiAgZW1pdHRlcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgc2VuZEltZ1NlbGVjdGVkVG9QYWdlKGZpbGUgOiBJbWdQaWN0dXJlRFRPKSB7XG4gICAgY29uc3Qgc2VuZGVkRmlsZSA9IHtcbiAgICAgIC4uLmZpbGUsXG4gICAgICBjZG5faW1nX3NyYzogJydcbiAgICB9O1xuICAgIGlmIChzZW5kZWRGaWxlKSB7XG4gICAgICBzZW5kZWRGaWxlLmNkbl9pbWdfc3JjID0gYCR7ZW52aXJvbm1lbnQuQ0ROX1VSTH0ke2ZpbGUuaWRfc2hvcH0vYDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJmaWxlXCI6IHNlbmRlZEZpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgXCJmcm9tXCI6IHRoaXMuZW1pdHRlclxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9O1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdpbWdTZWxlY3RlZCcsIHZhbHVlKTtcbiAgICBjb25zdCBpbWdNYW5hZ2VyTW9kdWxlPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nTWFuYWdlck1vZHVsZScpO1xuICAgIGltZ01hbmFnZXJNb2R1bGU/LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgcGFnZUFza0ZvckltZygpIHtcbiAgICByZXR1cm4gZnJvbUV2ZW50PGFueT4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZ01hbmFnZXJNb2R1bGUnKSBhcyBhbnksIFwib3BlbkltZ01hbmFnZXJcIik7XG4gIH1cblxuICBzZXRFbWl0dGVyKGVtaXR0ZXI6IHN0cmluZykge1xuICAgIHRoaXMuZW1pdHRlciA9IGVtaXR0ZXI7XG4gIH1cbn0iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxZQUFZO0lBTXZCLGdCQUFnQixDQUFDO0lBRWpCLHFCQUFxQixDQUFDLElBQW9CO1FBQ3hDLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEdBQUcsSUFBSTtZQUNQLFdBQVcsRUFBRSxFQUFFO1NBQ2hCLENBQUM7UUFDRixJQUFJLFVBQVUsRUFBRTtZQUNkLFVBQVUsQ0FBQyxXQUFXLEdBQUcsR0FBRyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQztTQUNuRTtRQUVELE1BQU0sS0FBSyxHQUFHO1lBQ0UsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDckI7U0FDRixDQUFDO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxNQUFNLGdCQUFnQixHQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwRSxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLFNBQVMsQ0FBTSxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWU7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQzs7eUdBbENVLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nUGljdHVyZURUTyB9IGZyb20gJ0B3aXppc2hvcC9pbWctbWFuYWdlcic7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV2ZW50U2VydmljZSB7XG5cbiAgLy8gU29tZXRpbWVzLCB0aGVyZSBhcmUgbXVsdGlwbGUgaW1nIG1hbmFnZXIgdGhhdCBsaXN0ZW4gYXQgdGhlIHNhbWUgdGltZSBhdCBpbWdTZWxlY3RlZCBldmVudFxuICAvLyBJdCB1c2UgYnkgdGhlIGxpc3RlbmVyLCB0byBrbm93IGlmIHRoZSBldmVudCBpcyBmb3IgaGltXG4gIGVtaXR0ZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHNlbmRJbWdTZWxlY3RlZFRvUGFnZShmaWxlIDogSW1nUGljdHVyZURUTykge1xuICAgIGNvbnN0IHNlbmRlZEZpbGUgPSB7XG4gICAgICAuLi5maWxlLFxuICAgICAgY2RuX2ltZ19zcmM6ICcnXG4gICAgfTtcbiAgICBpZiAoc2VuZGVkRmlsZSkge1xuICAgICAgc2VuZGVkRmlsZS5jZG5faW1nX3NyYyA9IGAke2Vudmlyb25tZW50LkNETl9VUkx9JHtmaWxlLmlkX3Nob3B9L2A7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZVwiOiBzZW5kZWRGaWxlLFxuICAgICAgICAgICAgICAgICAgICAgIFwiZnJvbVwiOiB0aGlzLmVtaXR0ZXJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfTtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnaW1nU2VsZWN0ZWQnLCB2YWx1ZSk7XG4gICAgY29uc3QgaW1nTWFuYWdlck1vZHVsZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZ01hbmFnZXJNb2R1bGUnKTtcbiAgICBpbWdNYW5hZ2VyTW9kdWxlPy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxuXG4gIHBhZ2VBc2tGb3JJbWcoKSB7XG4gICAgcmV0dXJuIGZyb21FdmVudDxhbnk+KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWdNYW5hZ2VyTW9kdWxlJykgYXMgYW55LCBcIm9wZW5JbWdNYW5hZ2VyXCIpO1xuICB9XG5cbiAgc2V0RW1pdHRlcihlbWl0dGVyOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVtaXR0ZXIgPSBlbWl0dGVyO1xuICB9XG59Il19
@@ -77,13 +77,13 @@ export class FicheProductService {
77
77
  }
78
78
  initProductImgSelection() {
79
79
  // Display the loader in img list selection
80
- this.imgSelectionService.emitImgListLoading(true);
80
+ this.imgSelectionService.imgSelectedListLoading$.next(true);
81
81
  // retrieve img selection
82
82
  const retrieveImgSelectionSub = this.retrieveImgSelection().subscribe(data => {
83
83
  // No imgage selected
84
84
  if (!data || !data["photos"] || !data["photos"]["infos"] || !data["photos"]["infos"]["files"] || !data["photos"]["infos"]["files"].length) {
85
85
  this.loadProductImgSelection = false;
86
- this.imgSelectionService.emitImgListLoading(false);
86
+ this.imgSelectionService.imgSelectedListLoading$.next(false);
87
87
  return;
88
88
  }
89
89
  const idImgSelectionList = data["photos"]["infos"]["files"];
@@ -97,7 +97,7 @@ export class FicheProductService {
97
97
  }, error => {
98
98
  // Hide the loader in img list selection
99
99
  this.loadProductImgSelection = false;
100
- this.imgSelectionService.emitImgListLoading(false);
100
+ this.imgSelectionService.imgSelectedListLoading$.next(false);
101
101
  });
102
102
  this.subscriptions.push(allImgSub);
103
103
  });
@@ -124,7 +124,7 @@ export class FicheProductService {
124
124
  }
125
125
  updateImgSelectionOnChange() {
126
126
  // listen to the img manager change
127
- const imgSelectionSub = this.imgSelectionService.getImgSelectionChange().subscribe(imgSelectionList => {
127
+ const imgSelectionSub = this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {
128
128
  if (!imgSelectionList) {
129
129
  return;
130
130
  }
@@ -209,7 +209,7 @@ export class FicheProductService {
209
209
  applyCurrentImgSelection() {
210
210
  this.imgSelectionService.setImgSelection(this.currentProductImgSelection);
211
211
  // Hide the loader in img list selection
212
- this.imgSelectionService.emitImgListLoading(false);
212
+ this.imgSelectionService.imgSelectedListLoading$.next(false);
213
213
  }
214
214
  getOptionsHeaders() {
215
215
  const header = { headers: new HttpHeaders({
@@ -234,4 +234,4 @@ FicheProductService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
234
234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, decorators: [{
235
235
  type: Injectable
236
236
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ImgSelectionService }, { type: i3.EventService }, { type: i2.CanvaService }]; } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmljaGVfcHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9maWNoZV9wcm9kdWN0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFLMUQsTUFBTSxPQUFPLG1CQUFtQjtJQXNCOUIsWUFDVSxJQUFnQixFQUNoQixtQkFBd0MsRUFDeEMsWUFBMEIsRUFDMUIsWUFBMEI7UUFIMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBdkJwQyxzQkFBaUIsR0FBVyxXQUFXLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFDO1FBSTNFLGdCQUFXLEdBQVksS0FBSyxDQUFDLENBQUMsaURBQWlEO1FBQy9FLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUNyQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQiw0QkFBdUIsR0FBVyxLQUFLLENBQUM7UUFHeEMscUJBQWdCLEdBQXFCO1lBQ25DLEVBQUUsRUFBRSxFQUFFO1lBQ04sU0FBUyxFQUFFLEVBQUU7WUFDYixXQUFXLEVBQUUsS0FBSztZQUNsQixZQUFZLEVBQUUsS0FBSztTQUNwQixD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b250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDYW52YVNlcnZpY2UsIEltZ1BpY3R1cmVEVE8sIEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemlCbG9ja01lZGlhRHRvIH0gZnJvbSAnQHdpemlzaG9wL2ltZy1tYW5hZ2VyL2xpYi9kdG8vd2l6aS1ibG9jay1tZWRpYS5kdG8nO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuXG5kZWNsYXJlIGNvbnN0IFdpemk6IGFueTtcblxuQEluamVjdGFibGUoKSAvLyB0b2RvXG5leHBvcnQgY2xhc3MgRmljaGVQcm9kdWN0U2VydmljZSB7XG5cbiAgcHJvZHVjdFNoZWV0QXBpUm91dGU6IHN0cmluZztcbiAgaW1hZ2VfbWFuYWdlcl9hcGk6IHN0cmluZyA9IGVudmlyb25tZW50LndpemlfYXBpICsgXCIvaW1hZ2UtbWFuYWdlci9zaG9wcy9cIjtcbiAgc2hvcFRva2VuOiBzdHJpbmc7XG4gIHNob3BJZDogbnVtYmVyO1xuICBwcm9kdWN0SWQ6IHN0cmluZztcbiAgaXNQaG90b3NUYWI6IGJvb2xlYW4gPSBmYWxzZTsgLy8gU3RhdGUgb2YgdGhlIFBob3RvcyB0YWJzIGluIGZpY2hlIHByb2R1Y3QgcGFnZVxuICBpc1ByZXZpb3VzVGFiUGhvdG9zOiBib29sZWFuID0gZmFsc2U7XG4gIGlzVmFyaWFudHNUYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbG9hZFByb2R1Y3RJbWdTZWxlY3Rpb246Ym9vbGVhbiA9IGZhbHNlO1xuICBjdXJyZW50UHJvZHVjdEltZ1NlbGVjdGlvbjogSW1nUGljdHVyZURUT1tdO1xuICBpc1Byb2R1Y3RDcmVhdGlvbjogYm9vbGVhbjtcbiAgZXhwZWN0ZWRNZWRpYUR0bzpXaXppQmxvY2tNZWRpYUR0byA9IHtcbiAgICBpZDogJycsXG4gICAgaW1hZ2VfdXJsOiAnJyxcbiAgICBpbWFnZV93aWR0aDogJzkwMCcsXG4gICAgaW1hZ2VfaGVpZ2h0OiAnOTAwJyxcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBpbWdTZWxlY3Rpb25TZXJ2aWNlOiBJbWdTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYW52YVNlcnZpY2U6IENhbnZhU2VydmljZSxcbiAgICApIHsgfVxuXG4gIHNldEFwaUNvbmZpZyhzaG9wX2lkOiBudW1iZXIsIHNob3BfdG9rZW46IHN0cmluZykge1xuICAgIHRoaXMuc2hvcFRva2VuID0gc2hvcF90b2tlbjtcbiAgICB0aGlzLnNob3BJZCA9IHNob3BfaWQ7XG5cbiAgICBjb25zdCBtYXRjaGVzID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLm1hdGNoKCAvXFwvKFxcdyspXFwvcHJvZHVjdHNcXC8oXFxkKylcXC9lZGl0Lyk7XG4gICAgY29uc3QgbGFuZyA9IG1hdGNoZXMgJiYgbWF0Y2hlc1sxXSA/IG1hdGNoZXNbMV0gOiAnZnInO1xuICAgIHRoaXMucHJvZHVjdFNoZWV0QXBpUm91dGUgPSBlbnZpcm9ubWVudC53aXppX2FkbWluX2FwaSArIGxhbmcgKyBlbnZpcm9ubWVudC5wcm9kdWN0X3NoZWV0X2VuZHBvaW50O1xuICAgIHRoaXMucHJvZHVjdElkID0gbWF0Y2hlcyAmJiBtYXRjaGVzWzJdID8gbWF0Y2hlc1syXSA6IFwiMFwiO1xuICAgIHRoaXMuaXNQcm9kdWN0Q3JlYXRpb24gPSAvXFwvcHJvZHVjdHNcXC9jcmVhdGUvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGVyZSBpcyBvbmx5IG9uZSBpbnN0YW5jZSBvZiB0aGlzIGltZyBtYW5hZ2VyLlxuICAgKiBCdXQgaXQgaXMgY2FsbGVkIHdpdGggZGlmZmVyZW50IGNvbmZpZywgYnkgUGhvdG9zIHRhYiBhbmQgVmFyaWF0aW9uIHRhYiwgb24gZmljaGUgcHJvZHVjdCBwYWdlLlxuICAgKiBUaGUgbWV0aG9kIGhhbmRsZSB0aGUgc3dpdGNoIGNvbmZpZyBiZXR3ZWVuIFBob3RvcyBhbmQgVmFyaWF0aW9uIHRhYi5cbiAgICogUmV0dXJuIGFuIG9ic2VydmFibGUgOiB0cnVlID0+IFBob3RvcyB0YWIgLyBmYWxzZSA9PiBWYXJpYXRpb24gdGFiLlxuICAgKiAgKi9cbiAgaGFuZGxlVGFicygpOk9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG5cbiAgICAgIGNvbnN0IHN3aXRjaFRhYnNTdWIgPVxuICAgICAgICB0aGlzLnN3aXRjaFRhYnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG5cbiAgICAgICAgICAgIGlmICghZGF0YSB8fCAhZGF0YVtcImRldGFpbFwiXSB8fCAhZGF0YVtcImRldGFpbFwiXVtcImN1cnJlbnRUYWJcIl0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gUmV0cmlldmUgY3VycmVudCB0YWJcbiAgICAgICAgICBjb25zdCBjdXJyZW50VGFiID0gZGF0YVtcImRldGFpbFwiXVtcImN1cnJlbnRUYWJcIl07XG4gICAgICAgICAgdGhpcy5pc1ByZXZpb3VzVGFiUGhvdG9zID0gdGhpcy5pc1Bob3Rvc1RhYjtcbiAgICAgICAgICB0aGlzLmlzUGhvdG9zVGFiID0gY3VycmVudFRhYiA9PT0gJ3Bob3Rvcyc7XG4gICAgICAgICAgdGhpcy5pc1ZhcmlhbnRzVGFiID0gY3VycmVudFRhYiA9PT0gJ3ZhcmlhdGlvbic7XG5cbiAgICAgICAgICAvLyBUaGUgdXNlciBzd2l0Y2ggdG8gUGhvdG9zIHRhYlxuICAgICAgICAgIGlmICh0aGlzLmlzUGhvdG9zVGFiKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICghdGhpcy5jdXJyZW50UHJvZHVjdEltZ1NlbGVjdGlvbiB8fCAhdGhpcy5jdXJyZW50UHJvZHVjdEltZ1NlbGVjdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbml0UHJvZHVjdEltZ1NlbGVjdGlvbigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5hcHBseUN1cnJlbnRJbWdTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUHJldmlvdXNUYWJQaG90b3MpIHsgLy8gVGhlIHVzZXIgc3dpdGNoIHRvIGFub3RoZXIgdGFiXG4gICAgICAgICAgICAvLyBTYXZlIGN1cnJlbnQgaW1nIHNlbGVjdGlvbiwgaW4gb3JkZXIgdG8gbm90IGxvc2UgdGhlIGltZyBzZWxlY3Rpb25cbiAgICAgICAgICAgIHRoaXMuc2F2ZUN1cnJlbnRJbWdTZWxlY3Rpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLmlzUGhvdG9zVGFiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN3aXRjaFRhYnNTdWIpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0U2hvcEltZyhpZEZpbGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5pbWFnZV9tYW5hZ2VyX2FwaX0ke3RoaXMuc2hvcElkfS9pbWFnZXMvJHtpZEZpbGV9YCwgdGhpcy5nZXRPcHRpb25zSGVhZGVyc1dpdGhCZWFyZXIoKSk7XG4gIH1cblxuICBpbml0UHJvZHVjdEltZ1NlbGVjdGlvbigpIHtcblxuICAgIC8vIERpc3BsYXkgdGhlIGxvYWRlciBpbiBpbWcgbGlzdCBzZWxlY3Rpb25cbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuZW1pdEltZ0xpc3RMb2FkaW5nKHRydWUpO1xuXG4gICAgLy8gcmV0cmlldmUgaW1nIHNlbGVjdGlvblxuICAgIGNvbnN0IHJldHJpZXZlSW1nU2VsZWN0aW9uU3ViID1cbiAgICAgIHRoaXMucmV0cmlldmVJbWdTZWxlY3Rpb24oKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG5cbiAgICAgICAgLy8gTm8gaW1nYWdlIHNlbGVjdGVkXG4gICAgICAgIGlmICghZGF0YSB8fCAhZGF0YVtcInBob3Rvc1wiXSB8fCAhZGF0YVtcInBob3Rvc1wiXVtcImluZm9zXCJdIHx8ICFkYXRhW1wicGhvdG9zXCJdW1wiaW5mb3NcIl1bXCJmaWxlc1wiXSB8fCAhZGF0YVtcInBob3Rvc1wiXVtcImluZm9zXCJdW1wiZmlsZXNcIl0ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IGZhbHNlO1xuXG4gICAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmVtaXRJbWdMaXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaWRJbWdTZWxlY3Rpb25MaXN0OiBudW1iZXJbXSA9IGRhdGFbXCJwaG90b3NcIl1bXCJpbmZvc1wiXVtcImZpbGVzXCJdO1xuICAgICAgICBjb25zdCBvYnNJbWc6IE9ic2VydmFibGU8YW55PltdID0gW107XG5cbiAgICAgICAgaWRJbWdTZWxlY3Rpb25MaXN0LmZvckVhY2goaWRGaWxlID0+XG4gICAgICAgICAgb2JzSW1nLnB1c2goXG4gICAgICAgICAgICB0aGlzLmdldFNob3BJbWcoaWRGaWxlLnRvU3RyaW5nKCkpLnBpcGUodGFrZSgxKSlcbiAgICAgICAgKSk7XG4gICAgICAgIGNvbnN0IGFsbEltZ1N1YiA9XG4gICAgICAgICAgZm9ya0pvaW4ob2JzSW1nKS5zdWJzY3JpYmUoKHBob3RvczogSW1nUGljdHVyZURUT1tdKSA9PiB7XG4gICAgICAgICAgICAvLyBUaGUgaW1nIHNlbGVjdGlvbiBtdXN0IGJlIHNhdmVkLCBvdGhlcndpc2UgaXQgaXMgbG9zdCB3aGVuIHRoZSB1c2VyIHN3aXRjaCBvbiB2YXJpYXRpb24gdGFiXG4gICAgICAgICAgICB0aGlzLnNhdmVDdXJyZW50SW1nU2VsZWN0aW9uKHBob3Rvcyk7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Q3VycmVudEltZ1NlbGVjdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgLy8gSGlkZSB0aGUgbG9hZGVyIGluIGltZyBsaXN0IHNlbGVjdGlvblxuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmVtaXRJbWdMaXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGFsbEltZ1N1Yik7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHJldHJpZXZlSW1nU2VsZWN0aW9uU3ViKTtcbiAgICB0aGlzLmNhbnZhU2VydmljZS5leHBlY3RlZEltZ1NpemVzQ2hhbmdlKHRoaXMuZXhwZWN0ZWRNZWRpYUR0byk7XG4gIH1cblxuICByZXRyaWV2ZUluZm9TZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3J1YicsIFwibWFpblwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIFwiZ2V0SW5mb3NcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kSWQnLCB0aGlzLnByb2R1Y3RJZCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfdG9rZW4nLCAnJyk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfc2hpZCcsIHRoaXMuc2hvcElkLnRvU3RyaW5nKCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMucHJvZHVjdFNoZWV0QXBpUm91dGUsIGZvcm1EYXRhLCB0aGlzLmdldE9wdGlvbnNIZWFkZXJzKCkpO1xuICB9XG5cbiAgcmV0cmlldmVJbWdTZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3J1YicsIFwibWFpblwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIFwiZ2V0QWxsSW5mb3NcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kSWQnLCB0aGlzLnByb2R1Y3RJZCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfdG9rZW4nLCAnJyk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfc2hpZCcsIHRoaXMuc2hvcElkLnRvU3RyaW5nKCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5wcm9kdWN0U2hlZXRBcGlSb3V0ZSwgZm9ybURhdGEsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICB1cGRhdGVJbWdTZWxlY3Rpb25PbkNoYW5nZSgpIHtcbiAgICAvLyBsaXN0ZW4gdG8gdGhlIGltZyBtYW5hZ2VyIGNoYW5nZVxuICAgIGNvbnN0IGltZ1NlbGVjdGlvblN1YiA9XG4gICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuZ2V0SW1nU2VsZWN0aW9uQ2hhbmdlKCkuc3Vic2NyaWJlKGltZ1NlbGVjdGlvbkxpc3QgPT4ge1xuICAgICAgICBpZiAoIWltZ1NlbGVjdGlvbkxpc3QpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZW5kIHRoZSBpbWcgc2VsZWN0aW9uXG4gICAgICAgIGlmICh0aGlzLmlzUGhvdG9zVGFiICYmICF0aGlzLmxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uKSB7XG4gICAgICAgICAgLy8gUmV0cmlldmUgb25seSB0aGUgaW1nIGlkXG4gICAgICAgICAgY29uc3QgaWRJbWdTZWxlY3RlZExpc3Q6IG51bWJlcltdID0gW107XG4gICAgICAgICAgaW1nU2VsZWN0aW9uTGlzdC5mb3JFYWNoKGltZyA9PiB7XG4gICAgICAgICAgICBpZEltZ1NlbGVjdGVkTGlzdC5wdXNoKHBhcnNlSW50KGltZy5pZF9maWxlKSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZVByb2R1Y3RJbWdTZWxlY3Rpb24oaWRJbWdTZWxlY3RlZExpc3QpO1xuXG4gICAgICAgIC8vIE9uIHZhcmlhdGlvbiB0YWIsIHNlbmQgZXZlbnQgd2l0aCBpbWcgc2VsZWN0ZWRcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5pc1Bob3Rvc1RhYiAmJiBpbWdTZWxlY3Rpb25MaXN0Lmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNlbmRJbWdTZWxlY3RlZFRvUGFnZShpbWdTZWxlY3Rpb25MaXN0WzBdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goaW1nU2VsZWN0aW9uU3ViKTtcbiAgfVxuXG4gIHVwZGF0ZVByb2R1Y3RJbWdTZWxlY3Rpb24oaWRzSW1nTGlzdDogbnVtYmVyW10pIHtcbiAgICBpZiAoKCF0aGlzLnByb2R1Y3RJZCB8fCB0aGlzLnByb2R1Y3RJZCA9PT0gXCIwXCIpICYmIFdpemkuX3Byb2R1aXQuZ2xvYmFsLlBST0RfSUQpIHtcbiAgICAgIHRoaXMucHJvZHVjdElkID0gV2l6aS5fcHJvZHVpdC5nbG9iYWwuUFJPRF9JRC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIFdpemkuX3Byb2R1aXQuX2RhdGFUbXBbJ3Bob3RvcyddLmluZm9zID0ge307XG4gICAgV2l6aS5fcHJvZHVpdC5fZGF0YVRtcFsncGhvdG9zJ10uaW5mb3MuZmlsZXMgPSBpZHNJbWdMaXN0O1xuICAgIHRoaXMuZW1pdEltZ1NlbGVjdGlvbkNoYW5nZShpZHNJbWdMaXN0KTtcblxuICAgIGlmICh0aGlzLnByb2R1Y3RJZCAmJiB0aGlzLnByb2R1Y3RJZCAhPT0gXCIwXCIpIHtcbiAgICAgIGNvbnN0IHN1Ym1pdFByb2QxID1cbiAgICAgICAgdGhpcy5zdWJtaXRQcm9kdWN0SW1nKGlkc0ltZ0xpc3QpLnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3VibWl0UHJvZDEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjcmVhdGVQcm9kdWN0U3ViID1cbiAgICAgIHRoaXMuY3JlYXRlUHJvZHVjdCgpLnN1YnNjcmliZShcbiAgICAgICAgKHByb2R1Y3RJZDpudW1iZXIpID0+IHtcbiAgICAgICAgICBpZiAoIXByb2R1Y3RJZCkge1xuICAgICAgICAgICAgdGhyb3cgXCJObyBwcm9kdWN0IGlkIGNyZWF0ZWQuIENhbiBub3QgbGluayBpbWFnZShzKSB0byB0aGUgbmV3IHByb2R1Y3QuXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIFdpemkuX3Byb2R1aXQuZ2xvYmFsLlBST0RfSUQgPSBwcm9kdWN0SWQ7XG5cbiAgICAgICAgICB0aGlzLnByb2R1Y3RJZCA9IHByb2R1Y3RJZC50b1N0cmluZygpO1xuICAgICAgICAgIHRoaXMuc3VibWl0UHJvZHVjdEltZyhpZHNJbWdMaXN0KS5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChjcmVhdGVQcm9kdWN0U3ViKTtcblxuICB9XG5cbiAgc3VibWl0UHJvZHVjdEltZyhpZHNJbWdMaXN0OiBudW1iZXJbXSkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBmaWxlcyA6IGlkc0ltZ0xpc3QsXG4gICAgICBjb3VsczogW11cbiAgICB9O1xuXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3J1YicsIFwicGhvdG9zXCIpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnYWN0aW9uJywgXCJzYXZlXCIpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnbmV3UHJvZCcsIHRoaXMuaXNQcm9kdWN0Q3JlYXRpb24gPyBcIjFcIiA6IFwiMFwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2RJZCcsIHRoaXMucHJvZHVjdElkKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ190b2tlbicsIHRoaXMuc2hvcFRva2VuKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ19zaGlkJywgdGhpcy5zaG9wSWQudG9TdHJpbmcoKSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdkYXRhJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMucHJvZHVjdFNoZWV0QXBpUm91dGUsIGZvcm1EYXRhLCB0aGlzLmdldE9wdGlvbnNIZWFkZXJzKCkpO1xuICB9XG5cbiAgY3JlYXRlUHJvZHVjdCgpIHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncnViJywgXCJtYWluXCIpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnYWN0aW9uJywgXCJjcmVhdGVQcm9kXCIpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnX3Rva2VuJywgJycpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnX3NoaWQnLCB0aGlzLnNob3BJZC50b1N0cmluZygpKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudW1iZXI+KHRoaXMucHJvZHVjdFNoZWV0QXBpUm91dGUsIGZvcm1EYXRhLCB0aGlzLmdldE9wdGlvbnNIZWFkZXJzKCkpO1xuXG4gIH1cblxuICAvKiBVc2UgdG8ga25vdyB3aGVyZSB0aGUgaW1nIG1hbmFnZXIgaXMgZGlzcGxheWVkLCBhbmQgdG8gY2xvc2UgaXQgd2hlbiBzd2l0Y2hpbmcgdGFiICovXG4gIHN3aXRjaFRhYnMoKSB7XG4gICAgcmV0dXJuIGZyb21FdmVudDxhbnk+KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWdNYW5hZ2VyTW9kdWxlJykgYXMgYW55LCBcInN3aXRjaFRhYlwiKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEltZ1NlbGVjdGlvbkNoYW5nZShpZHNJbWdMaXN0OiBudW1iZXJbXSkge1xuICAgIGNvbnN0IHZhbHVlID0ge1xuICAgICAgZGV0YWlsOiB7XG4gICAgICAgIGlkc0ltZ0xpc3RcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ29uSW1nU2VsZWN0aW9uQ2hhbmdlJywgdmFsdWUpO1xuICAgIGNvbnN0IGltZ01hbmFnZXJNb2R1bGU9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWdNYW5hZ2VyTW9kdWxlJyk7XG4gICAgaW1nTWFuYWdlck1vZHVsZT8uZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHNhdmVDdXJyZW50SW1nU2VsZWN0aW9uKGltZ1NlbGVjdGlvbj86IEltZ1BpY3R1cmVEVE9bXSkge1xuICAgIHRoaXMuY3VycmVudFByb2R1Y3RJbWdTZWxlY3Rpb24gPSBpbWdTZWxlY3Rpb24gPyBpbWdTZWxlY3Rpb24gOiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5nZXRJbWdTZWxlY3Rpb24oKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUN1cnJlbnRJbWdTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnNldEltZ1NlbGVjdGlvbih0aGlzLmN1cnJlbnRQcm9kdWN0SW1nU2VsZWN0aW9uKTtcbiAgICAvLyBIaWRlIHRoZSBsb2FkZXIgaW4gaW1nIGxpc3Qgc2VsZWN0aW9uXG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmVtaXRJbWdMaXN0TG9hZGluZyhmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGdldE9wdGlvbnNIZWFkZXJzKCkge1xuICAgIGNvbnN0IGhlYWRlciA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nOicqJ1xuICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiBoZWFkZXI7XG4gIH1cblxuICBwcml2YXRlIGdldE9wdGlvbnNIZWFkZXJzV2l0aEJlYXJlcigpIHtcbiAgICBjb25zdCBoZWFkZXIgPSB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLnNob3BUb2tlblxuICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiBoZWFkZXI7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59Il19
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmljaGVfcHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9maWNoZV9wcm9kdWN0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFLMUQsTUFBTSxPQUFPLG1CQUFtQjtJQXNCOUIsWUFDVSxJQUFnQixFQUNoQixtQkFBd0MsRUFDeEMsWUFBMEIsRUFDMUIsWUFBMEI7UUFIMUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBdkJwQyxzQkFBaUIsR0FBVyxXQUFXLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFDO1FBSTNFLGdCQUFXLEdBQVksS0FBSyxDQUFDLENBQUMsaURBQWlEO1FBQy9FLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUNyQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQiw0QkFBdUIsR0FBVyxLQUFLLENBQUM7UUFHeEMscUJBQWdCLEdBQXFCO1lBQ25DLEVBQUUsRUFBRSxFQUFFO1lBQ04sU0FBUyxFQUFFLEVBQUU7WUFDYixXQUFXLEVBQUUsS0FBSztZQUNsQixZQUFZLEVBQUUsS0FBSztTQUNwQixD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QW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDYW52YVNlcnZpY2UsIEltZ1BpY3R1cmVEVE8sIEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemlCbG9ja01lZGlhRHRvIH0gZnJvbSAnQHdpemlzaG9wL2ltZy1tYW5hZ2VyL2xpYi9kdG8vd2l6aS1ibG9jay1tZWRpYS5kdG8nO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuXG5kZWNsYXJlIGNvbnN0IFdpemk6IGFueTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZpY2hlUHJvZHVjdFNlcnZpY2Uge1xuXG4gIHByb2R1Y3RTaGVldEFwaVJvdXRlOiBzdHJpbmc7XG4gIGltYWdlX21hbmFnZXJfYXBpOiBzdHJpbmcgPSBlbnZpcm9ubWVudC53aXppX2FwaSArIFwiL2ltYWdlLW1hbmFnZXIvc2hvcHMvXCI7XG4gIHNob3BUb2tlbjogc3RyaW5nO1xuICBzaG9wSWQ6IG51bWJlcjtcbiAgcHJvZHVjdElkOiBzdHJpbmc7XG4gIGlzUGhvdG9zVGFiOiBib29sZWFuID0gZmFsc2U7IC8vIFN0YXRlIG9mIHRoZSBQaG90b3MgdGFicyBpbiBmaWNoZSBwcm9kdWN0IHBhZ2VcbiAgaXNQcmV2aW91c1RhYlBob3RvczogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1ZhcmlhbnRzVGFiOiBib29sZWFuID0gZmFsc2U7XG4gIGxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uOmJvb2xlYW4gPSBmYWxzZTtcbiAgY3VycmVudFByb2R1Y3RJbWdTZWxlY3Rpb246IEltZ1BpY3R1cmVEVE9bXTtcbiAgaXNQcm9kdWN0Q3JlYXRpb246IGJvb2xlYW47XG4gIGV4cGVjdGVkTWVkaWFEdG86V2l6aUJsb2NrTWVkaWFEdG8gPSB7XG4gICAgaWQ6ICcnLFxuICAgIGltYWdlX3VybDogJycsXG4gICAgaW1hZ2Vfd2lkdGg6ICc5MDAnLFxuICAgIGltYWdlX2hlaWdodDogJzkwMCcsXG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgaW1nU2VsZWN0aW9uU2VydmljZTogSW1nU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FudmFTZXJ2aWNlOiBDYW52YVNlcnZpY2UsXG4gICAgKSB7IH1cblxuICBzZXRBcGlDb25maWcoc2hvcF9pZDogbnVtYmVyLCBzaG9wX3Rva2VuOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3BUb2tlbiA9IHNob3BfdG9rZW47XG4gICAgdGhpcy5zaG9wSWQgPSBzaG9wX2lkO1xuXG4gICAgY29uc3QgbWF0Y2hlcyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5tYXRjaCggL1xcLyhcXHcrKVxcL3Byb2R1Y3RzXFwvKFxcZCspXFwvZWRpdC8pO1xuICAgIGNvbnN0IGxhbmcgPSBtYXRjaGVzICYmIG1hdGNoZXNbMV0gPyBtYXRjaGVzWzFdIDogJ2ZyJztcbiAgICB0aGlzLnByb2R1Y3RTaGVldEFwaVJvdXRlID0gZW52aXJvbm1lbnQud2l6aV9hZG1pbl9hcGkgKyBsYW5nICsgZW52aXJvbm1lbnQucHJvZHVjdF9zaGVldF9lbmRwb2ludDtcbiAgICB0aGlzLnByb2R1Y3RJZCA9IG1hdGNoZXMgJiYgbWF0Y2hlc1syXSA/IG1hdGNoZXNbMl0gOiBcIjBcIjtcbiAgICB0aGlzLmlzUHJvZHVjdENyZWF0aW9uID0gL1xcL3Byb2R1Y3RzXFwvY3JlYXRlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlcmUgaXMgb25seSBvbmUgaW5zdGFuY2Ugb2YgdGhpcyBpbWcgbWFuYWdlci5cbiAgICogQnV0IGl0IGlzIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBjb25maWcsIGJ5IFBob3RvcyB0YWIgYW5kIFZhcmlhdGlvbiB0YWIsIG9uIGZpY2hlIHByb2R1Y3QgcGFnZS5cbiAgICogVGhlIG1ldGhvZCBoYW5kbGUgdGhlIHN3aXRjaCBjb25maWcgYmV0d2VlbiBQaG90b3MgYW5kIFZhcmlhdGlvbiB0YWIuXG4gICAqIFJldHVybiBhbiBvYnNlcnZhYmxlIDogdHJ1ZSA9PiBQaG90b3MgdGFiIC8gZmFsc2UgPT4gVmFyaWF0aW9uIHRhYi5cbiAgICogICovXG4gIGhhbmRsZVRhYnMoKTpPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuXG4gICAgICBjb25zdCBzd2l0Y2hUYWJzU3ViID1cbiAgICAgICAgdGhpcy5zd2l0Y2hUYWJzKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuXG4gICAgICAgICAgICBpZiAoIWRhdGEgfHwgIWRhdGFbXCJkZXRhaWxcIl0gfHwgIWRhdGFbXCJkZXRhaWxcIl1bXCJjdXJyZW50VGFiXCJdKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFJldHJpZXZlIGN1cnJlbnQgdGFiXG4gICAgICAgICAgY29uc3QgY3VycmVudFRhYiA9IGRhdGFbXCJkZXRhaWxcIl1bXCJjdXJyZW50VGFiXCJdO1xuICAgICAgICAgIHRoaXMuaXNQcmV2aW91c1RhYlBob3RvcyA9IHRoaXMuaXNQaG90b3NUYWI7XG4gICAgICAgICAgdGhpcy5pc1Bob3Rvc1RhYiA9IGN1cnJlbnRUYWIgPT09ICdwaG90b3MnO1xuICAgICAgICAgIHRoaXMuaXNWYXJpYW50c1RhYiA9IGN1cnJlbnRUYWIgPT09ICd2YXJpYXRpb24nO1xuXG4gICAgICAgICAgLy8gVGhlIHVzZXIgc3dpdGNoIHRvIFBob3RvcyB0YWJcbiAgICAgICAgICBpZiAodGhpcy5pc1Bob3Rvc1RhYikge1xuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudFByb2R1Y3RJbWdTZWxlY3Rpb24gfHwgIXRoaXMuY3VycmVudFByb2R1Y3RJbWdTZWxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW5pdFByb2R1Y3RJbWdTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuYXBwbHlDdXJyZW50SW1nU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICAgIHRoaXMubG9hZFByb2R1Y3RJbWdTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1ByZXZpb3VzVGFiUGhvdG9zKSB7IC8vIFRoZSB1c2VyIHN3aXRjaCB0byBhbm90aGVyIHRhYlxuICAgICAgICAgICAgLy8gU2F2ZSBjdXJyZW50IGltZyBzZWxlY3Rpb24sIGluIG9yZGVyIHRvIG5vdCBsb3NlIHRoZSBpbWcgc2VsZWN0aW9uXG4gICAgICAgICAgICB0aGlzLnNhdmVDdXJyZW50SW1nU2VsZWN0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9ic2VydmVyLm5leHQodGhpcy5pc1Bob3Rvc1RhYik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzd2l0Y2hUYWJzU3ViKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFNob3BJbWcoaWRGaWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuaW1hZ2VfbWFuYWdlcl9hcGl9JHt0aGlzLnNob3BJZH0vaW1hZ2VzLyR7aWRGaWxlfWAsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnNXaXRoQmVhcmVyKCkpO1xuICB9XG5cbiAgaW5pdFByb2R1Y3RJbWdTZWxlY3Rpb24oKSB7XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBsb2FkZXIgaW4gaW1nIGxpc3Qgc2VsZWN0aW9uXG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmltZ1NlbGVjdGVkTGlzdExvYWRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICAvLyByZXRyaWV2ZSBpbWcgc2VsZWN0aW9uXG4gICAgY29uc3QgcmV0cmlldmVJbWdTZWxlY3Rpb25TdWIgPVxuICAgICAgdGhpcy5yZXRyaWV2ZUltZ1NlbGVjdGlvbigpLnN1YnNjcmliZShkYXRhID0+IHtcblxuICAgICAgICAvLyBObyBpbWdhZ2Ugc2VsZWN0ZWRcbiAgICAgICAgaWYgKCFkYXRhIHx8ICFkYXRhW1wicGhvdG9zXCJdIHx8ICFkYXRhW1wicGhvdG9zXCJdW1wiaW5mb3NcIl0gfHwgIWRhdGFbXCJwaG90b3NcIl1bXCJpbmZvc1wiXVtcImZpbGVzXCJdIHx8ICFkYXRhW1wicGhvdG9zXCJdW1wiaW5mb3NcIl1bXCJmaWxlc1wiXS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0ZWRMaXN0TG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaWRJbWdTZWxlY3Rpb25MaXN0OiBudW1iZXJbXSA9IGRhdGFbXCJwaG90b3NcIl1bXCJpbmZvc1wiXVtcImZpbGVzXCJdO1xuICAgICAgICBjb25zdCBvYnNJbWc6IE9ic2VydmFibGU8YW55PltdID0gW107XG5cbiAgICAgICAgaWRJbWdTZWxlY3Rpb25MaXN0LmZvckVhY2goaWRGaWxlID0+XG4gICAgICAgICAgb2JzSW1nLnB1c2goXG4gICAgICAgICAgICB0aGlzLmdldFNob3BJbWcoaWRGaWxlLnRvU3RyaW5nKCkpLnBpcGUodGFrZSgxKSlcbiAgICAgICAgKSk7XG4gICAgICAgIGNvbnN0IGFsbEltZ1N1YiA9XG4gICAgICAgICAgZm9ya0pvaW4ob2JzSW1nKS5zdWJzY3JpYmUoKHBob3RvczogSW1nUGljdHVyZURUT1tdKSA9PiB7XG4gICAgICAgICAgICAvLyBUaGUgaW1nIHNlbGVjdGlvbiBtdXN0IGJlIHNhdmVkLCBvdGhlcndpc2UgaXQgaXMgbG9zdCB3aGVuIHRoZSB1c2VyIHN3aXRjaCBvbiB2YXJpYXRpb24gdGFiXG4gICAgICAgICAgICB0aGlzLnNhdmVDdXJyZW50SW1nU2VsZWN0aW9uKHBob3Rvcyk7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Q3VycmVudEltZ1NlbGVjdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgLy8gSGlkZSB0aGUgbG9hZGVyIGluIGltZyBsaXN0IHNlbGVjdGlvblxuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IGZhbHNlO1xuXG4gICAgICAgICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0ZWRMaXN0TG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGFsbEltZ1N1Yik7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHJldHJpZXZlSW1nU2VsZWN0aW9uU3ViKTtcbiAgICB0aGlzLmNhbnZhU2VydmljZS5leHBlY3RlZEltZ1NpemVzQ2hhbmdlKHRoaXMuZXhwZWN0ZWRNZWRpYUR0byk7XG4gIH1cblxuICByZXRyaWV2ZUluZm9TZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3J1YicsIFwibWFpblwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIFwiZ2V0SW5mb3NcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kSWQnLCB0aGlzLnByb2R1Y3RJZCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfdG9rZW4nLCAnJyk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfc2hpZCcsIHRoaXMuc2hvcElkLnRvU3RyaW5nKCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMucHJvZHVjdFNoZWV0QXBpUm91dGUsIGZvcm1EYXRhLCB0aGlzLmdldE9wdGlvbnNIZWFkZXJzKCkpO1xuICB9XG5cbiAgcmV0cmlldmVJbWdTZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3J1YicsIFwibWFpblwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIFwiZ2V0QWxsSW5mb3NcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kSWQnLCB0aGlzLnByb2R1Y3RJZCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfdG9rZW4nLCAnJyk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfc2hpZCcsIHRoaXMuc2hvcElkLnRvU3RyaW5nKCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5wcm9kdWN0U2hlZXRBcGlSb3V0ZSwgZm9ybURhdGEsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICB1cGRhdGVJbWdTZWxlY3Rpb25PbkNoYW5nZSgpIHtcbiAgICAvLyBsaXN0ZW4gdG8gdGhlIGltZyBtYW5hZ2VyIGNoYW5nZVxuICAgIGNvbnN0IGltZ1NlbGVjdGlvblN1YiA9XG4gICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0aW9uJC5zdWJzY3JpYmUoaW1nU2VsZWN0aW9uTGlzdCA9PiB7XG4gICAgICAgIGlmICghaW1nU2VsZWN0aW9uTGlzdCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlbmQgdGhlIGltZyBzZWxlY3Rpb25cbiAgICAgICAgaWYgKHRoaXMuaXNQaG90b3NUYWIgJiYgIXRoaXMubG9hZFByb2R1Y3RJbWdTZWxlY3Rpb24pIHtcbiAgICAgICAgICAvLyBSZXRyaWV2ZSBvbmx5IHRoZSBpbWcgaWRcbiAgICAgICAgICBjb25zdCBpZEltZ1NlbGVjdGVkTGlzdDogbnVtYmVyW10gPSBbXTtcbiAgICAgICAgICBpbWdTZWxlY3Rpb25MaXN0LmZvckVhY2goaW1nID0+IHtcbiAgICAgICAgICAgIGlkSW1nU2VsZWN0ZWRMaXN0LnB1c2gocGFyc2VJbnQoaW1nLmlkX2ZpbGUpKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMudXBkYXRlUHJvZHVjdEltZ1NlbGVjdGlvbihpZEltZ1NlbGVjdGVkTGlzdCk7XG5cbiAgICAgICAgLy8gT24gdmFyaWF0aW9uIHRhYiwgc2VuZCBldmVudCB3aXRoIGltZyBzZWxlY3RlZFxuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmlzUGhvdG9zVGFiICYmIGltZ1NlbGVjdGlvbkxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2VuZEltZ1NlbGVjdGVkVG9QYWdlKGltZ1NlbGVjdGlvbkxpc3RbMF0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChpbWdTZWxlY3Rpb25TdWIpO1xuICB9XG5cbiAgdXBkYXRlUHJvZHVjdEltZ1NlbGVjdGlvbihpZHNJbWdMaXN0OiBudW1iZXJbXSkge1xuICAgIGlmICgoIXRoaXMucHJvZHVjdElkIHx8IHRoaXMucHJvZHVjdElkID09PSBcIjBcIikgJiYgV2l6aS5fcHJvZHVpdC5nbG9iYWwuUFJPRF9JRCkge1xuICAgICAgdGhpcy5wcm9kdWN0SWQgPSBXaXppLl9wcm9kdWl0Lmdsb2JhbC5QUk9EX0lELnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgV2l6aS5fcHJvZHVpdC5fZGF0YVRtcFsncGhvdG9zJ10uaW5mb3MgPSB7fTtcbiAgICBXaXppLl9wcm9kdWl0Ll9kYXRhVG1wWydwaG90b3MnXS5pbmZvcy5maWxlcyA9IGlkc0ltZ0xpc3Q7XG4gICAgdGhpcy5lbWl0SW1nU2VsZWN0aW9uQ2hhbmdlKGlkc0ltZ0xpc3QpO1xuXG4gICAgaWYgKHRoaXMucHJvZHVjdElkICYmIHRoaXMucHJvZHVjdElkICE9PSBcIjBcIikge1xuICAgICAgY29uc3Qgc3VibWl0UHJvZDEgPVxuICAgICAgICB0aGlzLnN1Ym1pdFByb2R1Y3RJbWcoaWRzSW1nTGlzdCkuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJtaXRQcm9kMSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNyZWF0ZVByb2R1Y3RTdWIgPVxuICAgICAgdGhpcy5jcmVhdGVQcm9kdWN0KCkuc3Vic2NyaWJlKFxuICAgICAgICAocHJvZHVjdElkOm51bWJlcikgPT4ge1xuICAgICAgICAgIGlmICghcHJvZHVjdElkKSB7XG4gICAgICAgICAgICB0aHJvdyBcIk5vIHByb2R1Y3QgaWQgY3JlYXRlZC4gQ2FuIG5vdCBsaW5rIGltYWdlKHMpIHRvIHRoZSBuZXcgcHJvZHVjdC5cIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgV2l6aS5fcHJvZHVpdC5nbG9iYWwuUFJPRF9JRCA9IHByb2R1Y3RJZDtcblxuICAgICAgICAgIHRoaXMucHJvZHVjdElkID0gcHJvZHVjdElkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgdGhpcy5zdWJtaXRQcm9kdWN0SW1nKGlkc0ltZ0xpc3QpLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGNyZWF0ZVByb2R1Y3RTdWIpO1xuXG4gIH1cblxuICBzdWJtaXRQcm9kdWN0SW1nKGlkc0ltZ0xpc3Q6IG51bWJlcltdKSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGZpbGVzIDogaWRzSW1nTGlzdCxcbiAgICAgIGNvdWxzOiBbXVxuICAgIH07XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncnViJywgXCJwaG90b3NcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCBcInNhdmVcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCduZXdQcm9kJywgdGhpcy5pc1Byb2R1Y3RDcmVhdGlvbiA/IFwiMVwiIDogXCIwXCIpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncHJvZElkJywgdGhpcy5wcm9kdWN0SWQpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnX3Rva2VuJywgdGhpcy5zaG9wVG9rZW4pO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnX3NoaWQnLCB0aGlzLnNob3BJZC50b1N0cmluZygpKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2RhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5wcm9kdWN0U2hlZXRBcGlSb3V0ZSwgZm9ybURhdGEsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICBjcmVhdGVQcm9kdWN0KCkge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdydWInLCBcIm1haW5cIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCBcImNyZWF0ZVByb2RcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfdG9rZW4nLCAnJyk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfc2hpZCcsIHRoaXMuc2hvcElkLnRvU3RyaW5nKCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bWJlcj4odGhpcy5wcm9kdWN0U2hlZXRBcGlSb3V0ZSwgZm9ybURhdGEsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG5cbiAgfVxuXG4gIC8qIFVzZSB0byBrbm93IHdoZXJlIHRoZSBpbWcgbWFuYWdlciBpcyBkaXNwbGF5ZWQsIGFuZCB0byBjbG9zZSBpdCB3aGVuIHN3aXRjaGluZyB0YWIgKi9cbiAgc3dpdGNoVGFicygpIHtcbiAgICByZXR1cm4gZnJvbUV2ZW50PGFueT4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZ01hbmFnZXJNb2R1bGUnKSBhcyBhbnksIFwic3dpdGNoVGFiXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW1nU2VsZWN0aW9uQ2hhbmdlKGlkc0ltZ0xpc3Q6IG51bWJlcltdKSB7XG4gICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgaWRzSW1nTGlzdFxuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnb25JbWdTZWxlY3Rpb25DaGFuZ2UnLCB2YWx1ZSk7XG4gICAgY29uc3QgaW1nTWFuYWdlck1vZHVsZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZ01hbmFnZXJNb2R1bGUnKTtcbiAgICBpbWdNYW5hZ2VyTW9kdWxlPy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZUN1cnJlbnRJbWdTZWxlY3Rpb24oaW1nU2VsZWN0aW9uPzogSW1nUGljdHVyZURUT1tdKSB7XG4gICAgdGhpcy5jdXJyZW50UHJvZHVjdEltZ1NlbGVjdGlvbiA9IGltZ1NlbGVjdGlvbiA/IGltZ1NlbGVjdGlvbiA6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmdldEltZ1NlbGVjdGlvbigpKSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q3VycmVudEltZ1NlbGVjdGlvbigpIHtcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2Uuc2V0SW1nU2VsZWN0aW9uKHRoaXMuY3VycmVudFByb2R1Y3RJbWdTZWxlY3Rpb24pO1xuICAgIC8vIEhpZGUgdGhlIGxvYWRlciBpbiBpbWcgbGlzdCBzZWxlY3Rpb25cbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0ZWRMaXN0TG9hZGluZyQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGdldE9wdGlvbnNIZWFkZXJzKCkge1xuICAgIGNvbnN0IGhlYWRlciA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nOicqJ1xuICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiBoZWFkZXI7XG4gIH1cblxuICBwcml2YXRlIGdldE9wdGlvbnNIZWFkZXJzV2l0aEJlYXJlcigpIHtcbiAgICBjb25zdCBoZWFkZXIgPSB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLnNob3BUb2tlblxuICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiBoZWFkZXI7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59Il19
@@ -50,4 +50,4 @@ StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versi
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: StorageService, decorators: [{
51
51
  type: Injectable
52
52
  }], ctorParameters: function () { return []; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1nLW1hbmFnZXItd2ViZWxlbWVudC9zcmMvbGliL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRy9CLE1BQU0sT0FBTyxjQUFjO0lBR3pCO1FBRlEsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztRQUd0RCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ3JDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUN6RTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFvQjtRQUN0QyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFYixJQUFJLElBQUksRUFBRTtZQUNSLElBQUk7Z0JBQ0YsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO2FBQzNCO1lBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtTQUNmO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sU0FBUyxDQUFDLElBQVk7UUFDNUIsTUFBTSxDQUFDLEdBQUc7WUFDUixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFNBQVMsQ0FBSSxHQUFXO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxPQUFPLEVBQUssQ0FBQyxDQUFDO1NBQy9DO1FBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsR0FBRyxDQUFJLEdBQVc7UUFDaEIsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLElBQVM7UUFDeEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRWhELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDaEIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7MkdBdERVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpIC8vIHRvZG9cbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBTdWJqZWN0PGFueT4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3N0b3JhZ2UnLCBlID0+IHtcbiAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMuaGFzKGUua2V5IHx8ICcnKSkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZ2V0KGUua2V5IHx8ICcnKT8ubmV4dCh0aGlzLnVuc2VyaWFsaXplKGUubmV3VmFsdWUpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zZXJpYWxpemUoZGF0YT86IHN0cmluZyB8IG51bGwpIHtcbiAgICBsZXQgZCA9IG51bGw7XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZCA9IEpTT04ucGFyc2UoZGF0YSkuZGF0YTtcbiAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgfVxuICAgIHJldHVybiBkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXJpYWxpemUoZGF0YTogc3RyaW5nKSB7XG4gICAgY29uc3QgZCA9IHtcbiAgICAgIGRhdGE6IGRhdGFcbiAgICB9O1xuXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGQpO1xuICB9XG5cbiAgc3Vic2NyaWJlPFQ+KGtleTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbnMuaGFzKGtleSkpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5zZXQoa2V5LCBuZXcgU3ViamVjdDxUPigpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25zLmdldChrZXkpO1xuICB9XG5cbiAgZ2V0PFQ+KGtleTogc3RyaW5nKTogUHJvbWlzZTxUIHwgYW55PiB7XG4gICAgY29uc3QgZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMudW5zZXJpYWxpemUoZCkpO1xuICB9XG5cbiAgc2V0KGtleTogc3RyaW5nLCBkYXRhOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHRoaXMuc2VyaWFsaXplKGRhdGEpKTtcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG4gIH1cblxuICByZW1vdmUoa2V5OiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgfVxufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1nLW1hbmFnZXItd2ViZWxlbWVudC9zcmMvbGliL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRy9CLE1BQU0sT0FBTyxjQUFjO0lBR3pCO1FBRlEsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztRQUd0RCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ3JDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUN6RTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFvQjtRQUN0QyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFYixJQUFJLElBQUksRUFBRTtZQUNSLElBQUk7Z0JBQ0YsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO2FBQzNCO1lBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtTQUNmO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sU0FBUyxDQUFDLElBQVk7UUFDNUIsTUFBTSxDQUFDLEdBQUc7WUFDUixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFNBQVMsQ0FBSSxHQUFXO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxPQUFPLEVBQUssQ0FBQyxDQUFDO1NBQy9DO1FBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsR0FBRyxDQUFJLEdBQVc7UUFDaEIsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLElBQVM7UUFDeEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRWhELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVc7UUFDaEIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7MkdBdERVLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgTWFwPHN0cmluZywgU3ViamVjdDxhbnk+PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgZSA9PiB7XG4gICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zLmhhcyhlLmtleSB8fCAnJykpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmdldChlLmtleSB8fCAnJyk/Lm5leHQodGhpcy51bnNlcmlhbGl6ZShlLm5ld1ZhbHVlKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVuc2VyaWFsaXplKGRhdGE/OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgbGV0IGQgPSBudWxsO1xuXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGQgPSBKU09OLnBhcnNlKGRhdGEpLmRhdGE7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuICAgIH1cbiAgICByZXR1cm4gZDtcbiAgfVxuXG4gIHByaXZhdGUgc2VyaWFsaXplKGRhdGE6IHN0cmluZykge1xuICAgIGNvbnN0IGQgPSB7XG4gICAgICBkYXRhOiBkYXRhXG4gICAgfTtcblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkKTtcbiAgfVxuXG4gIHN1YnNjcmliZTxUPihrZXk6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5zdWJzY3JpcHRpb25zLmhhcyhrZXkpKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuc2V0KGtleSwgbmV3IFN1YmplY3Q8VD4oKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9ucy5nZXQoa2V5KTtcbiAgfVxuXG4gIGdldDxUPihrZXk6IHN0cmluZyk6IFByb21pc2U8VCB8IGFueT4ge1xuICAgIGNvbnN0IGQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnVuc2VyaWFsaXplKGQpKTtcbiAgfVxuXG4gIHNldChrZXk6IHN0cmluZywgZGF0YTogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0aGlzLnNlcmlhbGl6ZShkYXRhKSk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuICB9XG5cbiAgcmVtb3ZlKGtleTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG4gIH1cbn1cbiJdfQ==