@wizishop/img-manager-webelement 15.2.54 → 18.2.0

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.
@@ -19,8 +19,8 @@ export declare class ImgManagerWebElementComponent {
19
19
  loading: boolean;
20
20
  imgExternalConfig: ImgManagerConfigDto;
21
21
  imgManagerDisplayConfig: ImgManagerDisplayConfig;
22
- pageFicheProductConfig: ImgManagerDisplayConfig;
23
- pageEventConfig: ImgManagerDisplayConfig;
22
+ pageFicheProductConfig: any;
23
+ pageEventConfig: any;
24
24
  isPhotosTab: boolean;
25
25
  subscriptions: Subscription[];
26
26
  constructor(translateService: TranslateService, canvaService: CanvaService, ficheProductService: FicheProductService, authCredentialsService: AuthCredentialsService, eventService: EventService, imgManagerService: ImgManagerService, imgSelectionService: ImgSelectionService);
package/package.json CHANGED
@@ -1,39 +1,36 @@
1
1
  {
2
2
  "name": "@wizishop/img-manager-webelement",
3
- "version": "15.2.54",
3
+ "version": "18.2.0",
4
4
  "peerDependencies": {
5
- "@angular/animations": "~15.0.4",
6
- "@angular/cdk": "^15.0.3",
7
- "@angular/common": "~15.0.4",
8
- "@angular/core": "~15.0.4",
9
- "@angular/forms": "~15.0.4",
10
- "@angular/platform-browser": "~15.0.4",
11
- "@angular/platform-browser-dynamic": "~15.0.4",
12
- "@angular/router": "~15.0.4",
5
+ "@angular/animations": "~18.2.3",
6
+ "@angular/cdk": "^18.2.3",
7
+ "@angular/common": "~18.2.3",
8
+ "@angular/core": "~18.2.3",
9
+ "@angular/forms": "~18.2.3",
10
+ "@angular/platform-browser": "~18.2.3",
11
+ "@angular/platform-browser-dynamic": "~18.2.3",
12
+ "@angular/router": "~18.2.3",
13
13
  "@ngx-translate/core": "^14.0.0",
14
14
  "@ngx-translate/http-loader": "^7.0.0",
15
- "@wizishop/img-manager": "^15.0.1",
16
- "@wizishop/ng-wizi-bulma": "^15.0.3",
15
+ "@wizishop/img-manager": "^18.2.2-beta",
17
16
  "@wizishop/ng-web-storages": "0.0.2",
17
+ "@wizishop/ng-wizi-bulma": "^17.0.0",
18
18
  "bourbon": "^7.0.0",
19
19
  "bulma": "^0.9.4",
20
20
  "bulma-checkradio": "^2.1.3",
21
21
  "bulma-extensions": "^6.2.7",
22
- "bundle-scss": "^1.4.17",
22
+ "bundle-scss": "^1.5.4",
23
23
  "include-media": "^1.4.10",
24
24
  "ngx-image-cropper": "^6.3.2",
25
- "ngx-scrollbar": "^10.0.0",
25
+ "ngx-scrollbar": "^11.0.0",
26
+ "node-sass": "^9.0.0",
26
27
  "nodemon": "^2.0.20",
27
28
  "rxjs": "^7.8.0",
28
- "sass": "^1.57.1",
29
+ "sass": "^1.79.4",
29
30
  "sass-flex-mixin": "^1.0.3",
30
- "zone.js": "^0.12.0"
31
+ "zone.js": "^0.14.10"
31
32
  },
32
- "module": "fesm2015/wizishop-img-manager-webelement.mjs",
33
- "es2020": "fesm2020/wizishop-img-manager-webelement.mjs",
34
- "esm2020": "esm2020/wizishop-img-manager-webelement.mjs",
35
- "fesm2020": "fesm2020/wizishop-img-manager-webelement.mjs",
36
- "fesm2015": "fesm2015/wizishop-img-manager-webelement.mjs",
33
+ "module": "fesm2022/wizishop-img-manager-webelement.mjs",
37
34
  "typings": "index.d.ts",
38
35
  "exports": {
39
36
  "./package.json": {
@@ -41,11 +38,9 @@
41
38
  },
42
39
  ".": {
43
40
  "types": "./index.d.ts",
44
- "esm2020": "./esm2020/wizishop-img-manager-webelement.mjs",
45
- "es2020": "./fesm2020/wizishop-img-manager-webelement.mjs",
46
- "es2015": "./fesm2015/wizishop-img-manager-webelement.mjs",
47
- "node": "./fesm2015/wizishop-img-manager-webelement.mjs",
48
- "default": "./fesm2020/wizishop-img-manager-webelement.mjs"
41
+ "esm2022": "./esm2022/wizishop-img-manager-webelement.mjs",
42
+ "esm": "./esm2022/wizishop-img-manager-webelement.mjs",
43
+ "default": "./fesm2022/wizishop-img-manager-webelement.mjs"
49
44
  }
50
45
  },
51
46
  "sideEffects": false,
@@ -1,122 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { environment } from './environments/environment';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ngx-translate/core";
5
- import * as i2 from "@wizishop/img-manager";
6
- import * as i3 from "./services/fiche_products.service";
7
- import * as i4 from "./services/auth-credentials.service";
8
- import * as i5 from "./services/event.service";
9
- import * as i6 from "@angular/common";
10
- export class ImgManagerWebElementComponent {
11
- constructor(translateService, canvaService, ficheProductService, authCredentialsService, eventService, imgManagerService, imgSelectionService) {
12
- this.translateService = translateService;
13
- this.canvaService = canvaService;
14
- this.ficheProductService = ficheProductService;
15
- this.authCredentialsService = authCredentialsService;
16
- this.eventService = eventService;
17
- this.imgManagerService = imgManagerService;
18
- this.imgSelectionService = imgSelectionService;
19
- // shop config
20
- this.id_shop = this.authCredentialsService.getSync().data.shop_id;
21
- this.token_shop = this.authCredentialsService.getSync().data.token;
22
- // img manger config
23
- this.openImgManager = false;
24
- this.loading = true;
25
- this.pageFicheProductConfig = this.imgManagerService.getImgManagerDisplayConfig("fiche-product");
26
- this.pageEventConfig = this.imgManagerService.getImgManagerDisplayConfig("wizi-block");
27
- // fiche product config
28
- this.isPhotosTab = !!environment.isPhotosTab;
29
- this.subscriptions = [];
30
- }
31
- ngOnInit() {
32
- this.loading = true;
33
- this.setCurrentLanguage();
34
- // Search on which page is display the img manger
35
- this.setDisplayedPageConfig();
36
- this.loading = false;
37
- this.initVariables(this.authCredentialsService.getSync().data);
38
- // Fiche product page
39
- if (this.imgManagerDisplayConfig.pageficheProduct) {
40
- this.setFicheProductPage();
41
- }
42
- else {
43
- this.setPageWithEvents();
44
- }
45
- }
46
- initVariables(authCredentials) {
47
- if (!authCredentials) {
48
- if (environment.isWizishopcom) {
49
- return;
50
- }
51
- // Run on local Server
52
- this.imgManagerDisplayConfig = this.pageFicheProductConfig;
53
- return;
54
- }
55
- }
56
- setFicheProductPage() {
57
- this.ficheProductService.setApiConfig();
58
- this.handleFicheProductTab(); // Display different img manager config according to the tab
59
- this.closeImgManagerOnSwitchingTab();
60
- this.subscribePageAskForImg(); // Use for images in variations tab
61
- this.ficheProductService.updateImgSelectionOnChange();
62
- }
63
- setPageWithEvents() {
64
- this.subscribePageAskForImg();
65
- // Send img selected
66
- const subImgSelection = this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {
67
- if (imgSelectionList && imgSelectionList.length) {
68
- this.eventService.sendImgSelectedToPage(imgSelectionList[0]);
69
- }
70
- });
71
- this.subscriptions.push(subImgSelection);
72
- }
73
- subscribePageAskForImg() {
74
- // Listen to page editor ask for img event
75
- const subAskForImg = this.eventService.pageAskForImg().subscribe(data => {
76
- // Retrieve which img manager send the event
77
- const emitter = data && data["detail"] ? data["detail"]["from"] : null;
78
- this.eventService.setEmitter(emitter);
79
- this.imgSelectionService.setImgSelection([]);
80
- this.open();
81
- });
82
- this.subscriptions.push(subAskForImg);
83
- }
84
- open() {
85
- this.openImgManager = true;
86
- }
87
- onImgManagerClosed() {
88
- // Close img manager
89
- this.openImgManager = false;
90
- }
91
- setCurrentLanguage() {
92
- const matches = window.location.pathname.match(/^\/(\w+)\//);
93
- this.translateService.use(matches && matches[1] ? matches[1] : 'fr');
94
- }
95
- setDisplayedPageConfig() {
96
- const isFicheProductPage = /\/products\/(\d+\/edit|create)/.test(window.location.pathname);
97
- this.imgManagerDisplayConfig = isFicheProductPage ? this.pageFicheProductConfig : this.pageEventConfig;
98
- }
99
- handleFicheProductTab() {
100
- const tabsSub = this.ficheProductService.handleTabs().subscribe(isPhotosTab => {
101
- this.imgManagerDisplayConfig = isPhotosTab ? this.pageFicheProductConfig : this.pageEventConfig;
102
- this.isPhotosTab = isPhotosTab;
103
- });
104
- this.subscriptions.push(tabsSub);
105
- }
106
- closeImgManagerOnSwitchingTab() {
107
- const tabsCloseSub = this.ficheProductService.switchTabs().subscribe(data => {
108
- this.openImgManager = false;
109
- });
110
- this.subscriptions.push(tabsCloseSub);
111
- }
112
- ngOnDestroy() {
113
- this.subscriptions.forEach(sub => sub.unsubscribe());
114
- }
115
- }
116
- 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 }], target: i0.ɵɵFactoryTarget.Component });
117
- 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 (imgManagerClosed)=\"onImgManagerClosed()\">\n </wz-img-manager>\n </div>\n </ng-container>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i6.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", "imageUploaded"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementComponent, decorators: [{
119
- type: Component,
120
- 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 (imgManagerClosed)=\"onImgManagerClosed()\">\n </wz-img-manager>\n </div>\n </ng-container>\n</div>" }]
121
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.CanvaService }, { type: i3.FicheProductService }, { type: i4.AuthCredentialsService }, { type: i5.EventService }, { type: i2.ImgManagerService }, { type: i2.ImgSelectionService }]; } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFRekQsTUFBTSxPQUFPLDZCQUE2QjtJQWtCeEMsWUFDVSxnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLHNCQUE4QyxFQUM5QyxZQUEwQixFQUMxQixpQkFBb0MsRUFDcEMsbUJBQXdDO1FBTnhDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXhCbEQsY0FBYztRQUNkLFlBQU8sR0FBVyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyRSxlQUFVLEdBQVcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFdEUsb0JBQW9CO1FBQ3BCLG1CQUFj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TCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLE1BQU0sWUFBWSxHQUNoQixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OzBIQWxJVSw2QkFBNkI7OEdBQTdCLDZCQUE2Qiw4RENkMUMsaWxDQXdCTTsyRkRWTyw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0Usd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpY2hlUHJvZHVjdFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ZpY2hlX3Byb2R1Y3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aENyZWRlbnRpYWxzLCBBdXRoQ3JlZGVudGlhbHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hdXRoLWNyZWRlbnRpYWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSW1nU2VsZWN0aW9uU2VydmljZSwgSW1nTWFuYWdlckNvbmZpZ0R0bywgSW1nTWFuYWdlckRpc3BsYXlDb25maWcsIENhbnZhU2VydmljZSwgSW1nTWFuYWdlclNlcnZpY2UgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbWctbWFuYWdlci13ZWJlbGVtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbWctbWFuYWdlci13ZWJlbGVtZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEltZ01hbmFnZXJXZWJFbGVtZW50Q29tcG9uZW50IHtcbiAgLy8gc2hvcCBjb25maWdcbiAgaWRfc2hvcDogbnVtYmVyID0gdGhpcy5hdXRoQ3JlZGVudGlhbHNTZXJ2aWNlLmdldFN5bmMoKS5kYXRhLnNob3BfaWQ7XG4gIHRva2VuX3Nob3A6IHN0cmluZyA9IHRoaXMuYXV0aENyZWRlbnRpYWxzU2VydmljZS5nZXRTeW5jKCkuZGF0YS50b2tlbjtcblxuICAvLyBpbWcgbWFuZ2VyIGNvbmZpZ1xuICBvcGVuSW1nTWFuYWdlcjpib29sZWFuID0gZmFsc2U7XG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBpbWdFeHRlcm5hbENvbmZpZzogSW1nTWFuYWdlckNvbmZpZ0R0bztcbiAgaW1nTWFuYWdlckRpc3BsYXlDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnO1xuICBwYWdlRmljaGVQcm9kdWN0Q29uZmlnID0gdGhpcy5pbWdNYW5hZ2VyU2VydmljZS5nZXRJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyhcImZpY2hlLXByb2R1Y3RcIik7XG4gIHBhZ2VFdmVudENvbmZpZyA9IHRoaXMuaW1nTWFuYWdlclNlcnZpY2UuZ2V0SW1nTWFuYWdlckRpc3BsYXlDb25maWcoXCJ3aXppLWJsb2NrXCIpO1xuXG4gIC8vIGZpY2hlIHByb2R1Y3QgY29uZmlnXG4gIGlzUGhvdG9zVGFiOiBib29sZWFuID0gISFlbnZpcm9ubWVudC5pc1Bob3Rvc1RhYjtcblxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNhbnZhU2VydmljZTogQ2FudmFTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmljaGVQcm9kdWN0U2VydmljZTogRmljaGVQcm9kdWN0U2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhDcmVkZW50aWFsc1NlcnZpY2U6IEF1dGhDcmVkZW50aWFsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGltZ01hbmFnZXJTZXJ2aWNlOiBJbWdNYW5hZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2VcbiAgKXt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRoaXMuc2V0Q3VycmVudExhbmd1YWdlKCk7XG4gICAgLy8gU2VhcmNoIG9uIHdoaWNoIHBhZ2UgaXMgZGlzcGxheSB0aGUgaW1nIG1hbmdlclxuICAgIHRoaXMuc2V0RGlzcGxheWVkUGFnZUNvbmZpZygpO1xuXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pbml0VmFyaWFibGVzKHRoaXMuYXV0aENyZWRlbnRpYWxzU2VydmljZS5nZXRTeW5jKCkuZGF0YSk7XG4gICAgLy8gRmljaGUgcHJvZHVjdCBwYWdlXG4gICAgaWYgKHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcucGFnZWZpY2hlUHJvZHVjdCkge1xuICAgICAgdGhpcy5zZXRGaWNoZVByb2R1Y3RQYWdlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0UGFnZVdpdGhFdmVudHMoKTtcbiAgICB9XG4gIH1cblxuICBpbml0VmFyaWFibGVzKGF1dGhDcmVkZW50aWFsczogQXV0aENyZWRlbnRpYWxzIHwgbnVsbCkge1xuICAgIGlmICghYXV0aENyZWRlbnRpYWxzKSB7XG5cbiAgICAgIGlmIChlbnZpcm9ubWVudC5pc1dpemlzaG9wY29tKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIFJ1biBvbiBsb2NhbCBTZXJ2ZXJcbiAgICAgIHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgc2V0RmljaGVQcm9kdWN0UGFnZSgpIHtcbiAgICB0aGlzLmZpY2hlUHJvZHVjdFNlcnZpY2Uuc2V0QXBpQ29uZmlnKCk7XG4gICAgdGhpcy5oYW5kbGVGaWNoZVByb2R1Y3RUYWIoKTsgLy8gRGlzcGxheSBkaWZmZXJlbnQgaW1nIG1hbmFnZXIgY29uZmlnIGFjY29yZGluZyB0byB0aGUgdGFiXG4gICAgdGhpcy5jbG9zZUltZ01hbmFnZXJPblN3aXRjaGluZ1RhYigpO1xuICAgIHRoaXMuc3Vic2NyaWJlUGFnZUFza0ZvckltZygpOyAvLyBVc2UgZm9yIGltYWdlcyBpbiB2YXJpYXRpb25zIHRhYlxuICAgIHRoaXMuZmljaGVQcm9kdWN0U2VydmljZS51cGRhdGVJbWdTZWxlY3Rpb25PbkNoYW5nZSgpO1xuICB9XG5cbiAgc2V0UGFnZVdpdGhFdmVudHMoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmVQYWdlQXNrRm9ySW1nKCk7XG5cbiAgICAvLyBTZW5kIGltZyBzZWxlY3RlZFxuICAgIGNvbnN0IHN1YkltZ1NlbGVjdGlvbiA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3Rpb24kLnN1YnNjcmliZShpbWdTZWxlY3Rpb25MaXN0ID0+IHtcbiAgICAgIGlmIChpbWdTZWxlY3Rpb25MaXN0ICYmIGltZ1NlbGVjdGlvbkxpc3QubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNlbmRJbWdTZWxlY3RlZFRvUGFnZShpbWdTZWxlY3Rpb25MaXN0WzBdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJJbWdTZWxlY3Rpb24pO1xuICB9XG5cbiAgc3Vic2NyaWJlUGFnZUFza0ZvckltZygpIHtcbiAgICAvLyBMaXN0ZW4gdG8gcGFnZSBlZGl0b3IgYXNrIGZvciBpbWcgZXZlbnRcbiAgICBjb25zdCBzdWJBc2tGb3JJbWcgPSB0aGlzLmV2ZW50U2VydmljZS5wYWdlQXNrRm9ySW1nKCkuc3Vic2NyaWJlKCBkYXRhID0+IHtcbiAgICAgIC8vIFJldHJpZXZlIHdoaWNoIGltZyBtYW5hZ2VyIHNlbmQgdGhlIGV2ZW50XG4gICAgICBjb25zdCBlbWl0dGVyID0gZGF0YSAmJiBkYXRhW1wiZGV0YWlsXCJdID8gZGF0YVtcImRldGFpbFwiXVtcImZyb21cIl0gOiBudWxsO1xuICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2V0RW1pdHRlcihlbWl0dGVyKTtcblxuICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnNldEltZ1NlbGVjdGlvbihbXSk7XG5cbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YkFza0ZvckltZyk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMub3BlbkltZ01hbmFnZXIgPSB0cnVlO1xuICB9XG5cbiAgb25JbWdNYW5hZ2VyQ2xvc2VkKCkge1xuICAgIC8vIENsb3NlIGltZyBtYW5hZ2VyXG4gICAgdGhpcy5vcGVuSW1nTWFuYWdlciA9IGZhbHNlO1xuICB9XG5cbiAgc2V0Q3VycmVudExhbmd1YWdlKCkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goIC9eXFwvKFxcdyspXFwvLyk7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShtYXRjaGVzICYmIG1hdGNoZXNbMV0gPyBtYXRjaGVzWzFdIDogJ2ZyJyk7XG4gIH1cblxuICBzZXREaXNwbGF5ZWRQYWdlQ29uZmlnKCkge1xuICAgIGNvbnN0IGlzRmljaGVQcm9kdWN0UGFnZSA9IC9cXC9wcm9kdWN0c1xcLyhcXGQrXFwvZWRpdHxjcmVhdGUpLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgdGhpcy5pbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IGlzRmljaGVQcm9kdWN0UGFnZSA/IHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZyA6IHRoaXMucGFnZUV2ZW50Q29uZmlnO1xuICB9XG5cbiAgaGFuZGxlRmljaGVQcm9kdWN0VGFiKCkge1xuICAgIGNvbnN0IHRhYnNTdWIgPVxuICAgICAgdGhpcy5maWNoZVByb2R1Y3RTZXJ2aWNlLmhhbmRsZVRhYnMoKS5zdWJzY3JpYmUoaXNQaG90b3NUYWIgPT4ge1xuICAgICAgICB0aGlzLmltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0gaXNQaG90b3NUYWIgPyB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWcgOiB0aGlzLnBhZ2VFdmVudENvbmZpZztcbiAgICAgICAgdGhpcy5pc1Bob3Rvc1RhYiA9IGlzUGhvdG9zVGFiO1xuICAgICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGFic1N1Yik7XG4gIH1cblxuICBjbG9zZUltZ01hbmFnZXJPblN3aXRjaGluZ1RhYigpIHtcbiAgICBjb25zdCB0YWJzQ2xvc2VTdWIgPVxuICAgICAgdGhpcy5maWNoZVByb2R1Y3RTZXJ2aWNlLnN3aXRjaFRhYnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMub3BlbkltZ01hbmFnZXIgPSBmYWxzZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGFic0Nsb3NlU3ViKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbmZvLWJ1bGxlXCI+XG4gIDxwIGNsYXNzPVwiaW5mby1idWxsZS1jb250ZW50XCIgW2lubmVySFRNTF09XCInSW1nTWFuYWdlci53ZWJFbGVtZW50LmluZm9CdWxsZScgfCB0cmFuc2xhdGVcIj48L3A+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLnBhZ2VmaWNoZVByb2R1Y3QgJiYgaXNQaG90b3NUYWJcIj5cbiAgICA8aDMgY2xhc3M9XCJ3aXppY3NzLXNvdXMtdGl0cmVcIj57eydJbWdNYW5hZ2VyLndlYkVsZW1lbnQucGhvdG9zVGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nICYmIGlkX3Nob3AgJiYgaW1nTWFuYWdlckRpc3BsYXlDb25maWdcIj5cblxuICAgIDxwIGNsYXNzPVwiaW1nLW1hbmFnZXItb3BlblwiICpuZ0lmPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcuZGlzcGxheUJ0biAmJiBpc1Bob3Rvc1RhYlwiPlxuICAgICAgPGEgKGNsaWNrKT1cIm9wZW4oKVwiPnt7J0ltZ01hbmFnZXIud2ViRWxlbWVudC5PcGVuQnRuJyB8IHRyYW5zbGF0ZSB9fTwvYT5cbiAgICA8L3A+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaW1nTWFuYWdlckJveFwiPlxuICAgICAgPHd6LWltZy1tYW5hZ2VyXG4gICAgICAgICN3ekltZ01hbmFnZXJcbiAgICAgICAgW3N0YXRlRGlzcGxheWVkXT1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLnN0YXRlRGlzcGxheWVkXCJcbiAgICAgICAgW211bHRpcGxlSW1nTW9kZV09XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5tdWx0aXBsZUltZ01vZGVcIlxuICAgICAgICBbc2hvd0ltZ01hbmFnZXJNb2R1bGVdPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcuc2hvd0ltZ01hbmFnZXJNb2R1bGUgJiYgb3BlbkltZ01hbmFnZXJcIlxuICAgICAgICBbc2hvd1NlbGVjdGlvbl09XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5zaG93U2VsZWN0aW9uXCJcbiAgICAgICAgKGltZ01hbmFnZXJDbG9zZWQpPVwib25JbWdNYW5hZ2VyQ2xvc2VkKClcIj5cbiAgICAgIDwvd3otaW1nLW1hbmFnZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
@@ -1,50 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { HttpClientModule } from '@angular/common/http';
3
- import { NgModule } from '@angular/core';
4
- import { TranslateModule } from '@ngx-translate/core';
5
- import { ImgManagerWebElementComponent } from './img-manager-webelement.component';
6
- import { provideAuthCredentialsService } from './services/auth-credentials.service';
7
- import { EventService } from './services/event.service';
8
- import { FicheProductService } from './services/fiche_products.service';
9
- import { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';
10
- import { WzImgManagerModule, ApiService } from '@wizishop/img-manager';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@wizishop/img-manager";
13
- export class ImgManagerWebElementModule {
14
- }
15
- ImgManagerWebElementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
- ImgManagerWebElementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, declarations: [ImgManagerWebElementComponent], imports: [CommonModule,
17
- HttpClientModule, i1.WzImgManagerModule, TranslateModule], exports: [ImgManagerWebElementComponent] });
18
- ImgManagerWebElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, providers: [
19
- FicheProductService,
20
- EventService,
21
- provideAuthCredentialsService()
22
- ], imports: [CommonModule,
23
- HttpClientModule,
24
- WzImgManagerModule.withConfig({
25
- provide: ApiService,
26
- useClass: WebelementImageManagerApiService,
27
- }),
28
- TranslateModule] });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, decorators: [{
30
- type: NgModule,
31
- args: [{
32
- declarations: [ImgManagerWebElementComponent],
33
- imports: [
34
- CommonModule,
35
- HttpClientModule,
36
- WzImgManagerModule.withConfig({
37
- provide: ApiService,
38
- useClass: WebelementImageManagerApiService,
39
- }),
40
- TranslateModule,
41
- ],
42
- exports: [ImgManagerWebElementComponent],
43
- providers: [
44
- FicheProductService,
45
- EventService,
46
- provideAuthCredentialsService()
47
- ]
48
- }]
49
- }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXItd2ViZWxlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25GLE9BQU8sRUFBRyw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQW9CdkUsTUFBTSxPQUFPLDBCQUEwQjs7dUhBQTFCLDBCQUEwQjt3SEFBMUIsMEJBQTBCLGlCQWpCdEIsNkJBQTZCLGFBRTFDLFlBQVk7UUFDWixnQkFBZ0IseUJBS2hCLGVBQWUsYUFFUCw2QkFBNkI7d0hBTzVCLDBCQUEwQixhQU4xQjtRQUNULG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osNkJBQTZCLEVBQUU7S0FDaEMsWUFiQyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztZQUM1QixPQUFPLEVBQUUsVUFBVTtZQUNuQixRQUFRLEVBQUUsZ0NBQWdDO1NBQzNDLENBQUM7UUFDRixlQUFlOzJGQVNOLDBCQUEwQjtrQkFsQnRDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzdDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsa0JBQWtCLENBQUMsVUFBVSxDQUFDOzRCQUM1QixPQUFPLEVBQUUsVUFBVTs0QkFDbkIsUUFBUSxFQUFFLGdDQUFnQzt5QkFDM0MsQ0FBQzt3QkFDRixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDeEMsU0FBUyxFQUFFO3dCQUNULG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWiw2QkFBNkIsRUFBRTtxQkFDaEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEltZ01hbmFnZXJXZWJFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9pbWctbWFuYWdlci13ZWJlbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyAgcHJvdmlkZUF1dGhDcmVkZW50aWFsc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2F1dGgtY3JlZGVudGlhbHMuc2VydmljZSc7XG5pbXBvcnQgeyBFdmVudFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmljaGVQcm9kdWN0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZmljaGVfcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBXZWJlbGVtZW50SW1hZ2VNYW5hZ2VyQXBpU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvd2ViZWxlbWVudC1pbWFnZS1tYW5hZ2VyLWFwaS5jb25maWcnO1xuaW1wb3J0IHsgV3pJbWdNYW5hZ2VyTW9kdWxlLCBBcGlTZXJ2aWNlIH0gZnJvbSAnQHdpemlzaG9wL2ltZy1tYW5hZ2VyJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbSW1nTWFuYWdlcldlYkVsZW1lbnRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgV3pJbWdNYW5hZ2VyTW9kdWxlLndpdGhDb25maWcoe1xuICAgICAgcHJvdmlkZTogQXBpU2VydmljZSxcbiAgICAgIHVzZUNsYXNzOiBXZWJlbGVtZW50SW1hZ2VNYW5hZ2VyQXBpU2VydmljZSxcbiAgICB9KSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtJbWdNYW5hZ2VyV2ViRWxlbWVudENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1xuICAgIEZpY2hlUHJvZHVjdFNlcnZpY2UsXG4gICAgRXZlbnRTZXJ2aWNlLFxuICAgIHByb3ZpZGVBdXRoQ3JlZGVudGlhbHNTZXJ2aWNlKClcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbWdNYW5hZ2VyV2ViRWxlbWVudE1vZHVsZSB7IH1cbiJdfQ==
@@ -1,37 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { fromEvent } from 'rxjs';
3
- import { environment } from '../environments/environment';
4
- import * as i0 from "@angular/core";
5
- export class EventService {
6
- constructor() { }
7
- sendImgSelectedToPage(file) {
8
- const sendedFile = {
9
- ...file,
10
- cdn_img_src: ''
11
- };
12
- if (sendedFile) {
13
- sendedFile.cdn_img_src = `${environment.CDN_URL}${file.id_shop}/`;
14
- }
15
- const value = {
16
- detail: {
17
- "file": sendedFile,
18
- "from": this.emitter
19
- }
20
- };
21
- const event = new CustomEvent('imgSelected', value);
22
- const imgManagerModule = document.getElementById('imgManagerModule');
23
- imgManagerModule?.dispatchEvent(event);
24
- }
25
- pageAskForImg() {
26
- return fromEvent(document.getElementById('imgManagerModule'), "openImgManager");
27
- }
28
- setEmitter(emitter) {
29
- this.emitter = emitter;
30
- }
31
- }
32
- EventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
33
- EventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EventService });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EventService, decorators: [{
35
- type: Injectable
36
- }], ctorParameters: function () { return []; } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxZQUFZO0lBTXZCLGdCQUFnQixDQUFDO0lBRWpCLHFCQUFxQixDQUFDLElBQW9CO1FBQ3hDLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEdBQUcsSUFBSTtZQUNQLFdBQVcsRUFBRSxFQUFFO1NBQ2hCLENBQUM7UUFDRixJQUFJLFVBQVUsRUFBRTtZQUNkLFVBQVUsQ0FBQyxXQUFXLEdBQUcsR0FBRyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQztTQUNuRTtRQUVELE1BQU0sS0FBSyxHQUFHO1lBQ0UsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDckI7U0FDRixDQUFDO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxNQUFNLGdCQUFnQixHQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwRSxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLFNBQVMsQ0FBTSxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWU7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQzs7eUdBbENVLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nUGljdHVyZURUTyB9IGZyb20gJ0B3aXppc2hvcC9pbWctbWFuYWdlcic7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV2ZW50U2VydmljZSB7XG5cbiAgLy8gU29tZXRpbWVzLCB0aGVyZSBhcmUgbXVsdGlwbGUgaW1nIG1hbmFnZXIgdGhhdCBsaXN0ZW4gYXQgdGhlIHNhbWUgdGltZSBhdCBpbWdTZWxlY3RlZCBldmVudFxuICAvLyBJdCB1c2UgYnkgdGhlIGxpc3RlbmVyLCB0byBrbm93IGlmIHRoZSBldmVudCBpcyBmb3IgaGltXG4gIGVtaXR0ZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHNlbmRJbWdTZWxlY3RlZFRvUGFnZShmaWxlIDogSW1nUGljdHVyZURUTykge1xuICAgIGNvbnN0IHNlbmRlZEZpbGUgPSB7XG4gICAgICAuLi5maWxlLFxuICAgICAgY2RuX2ltZ19zcmM6ICcnXG4gICAgfTtcbiAgICBpZiAoc2VuZGVkRmlsZSkge1xuICAgICAgc2VuZGVkRmlsZS5jZG5faW1nX3NyYyA9IGAke2Vudmlyb25tZW50LkNETl9VUkx9JHtmaWxlLmlkX3Nob3B9L2A7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZVwiOiBzZW5kZWRGaWxlLFxuICAgICAgICAgICAgICAgICAgICAgIFwiZnJvbVwiOiB0aGlzLmVtaXR0ZXJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfTtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnaW1nU2VsZWN0ZWQnLCB2YWx1ZSk7XG4gICAgY29uc3QgaW1nTWFuYWdlck1vZHVsZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZ01hbmFnZXJNb2R1bGUnKTtcbiAgICBpbWdNYW5hZ2VyTW9kdWxlPy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxuXG4gIHBhZ2VBc2tGb3JJbWcoKSB7XG4gICAgcmV0dXJuIGZyb21FdmVudDxhbnk+KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWdNYW5hZ2VyTW9kdWxlJykgYXMgYW55LCBcIm9wZW5JbWdNYW5hZ2VyXCIpO1xuICB9XG5cbiAgc2V0RW1pdHRlcihlbWl0dGVyOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVtaXR0ZXIgPSBlbWl0dGVyO1xuICB9XG59Il19
@@ -1,242 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpHeaders } from '@angular/common/http';
3
- import { forkJoin, fromEvent, Observable } from "rxjs";
4
- import { take } from 'rxjs/operators';
5
- import { environment } from '../environments/environment';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common/http";
8
- import * as i2 from "@wizishop/img-manager";
9
- import * as i3 from "./event.service";
10
- import * as i4 from "./auth-credentials.service";
11
- export class FicheProductService {
12
- constructor(http, imgSelectionService, eventService, canvaService, authCredentialsService) {
13
- this.http = http;
14
- this.imgSelectionService = imgSelectionService;
15
- this.eventService = eventService;
16
- this.canvaService = canvaService;
17
- this.authCredentialsService = authCredentialsService;
18
- this.image_manager_api = environment.wizi_api + "/image-manager/shops/";
19
- this.shopToken = this.authCredentialsService.getSync().data.token;
20
- this.shopId = this.authCredentialsService.getSync().data.shop_id;
21
- this.isPhotosTab = false; // State of the Photos tabs in fiche product page
22
- this.isPreviousTabPhotos = false;
23
- this.isVariantsTab = false;
24
- this.loadProductImgSelection = false;
25
- this.expectedMediaDto = {
26
- id: '',
27
- image_url: '',
28
- image_width: '900',
29
- image_height: '900',
30
- };
31
- this.subscriptions = [];
32
- }
33
- setApiConfig() {
34
- const matches = window.location.pathname.match(/\/(\w+)\/products\/(\d+)\/edit/);
35
- const lang = matches && matches[1] ? matches[1] : 'fr';
36
- this.productSheetApiRoute = environment.wizi_admin_api + lang + environment.product_sheet_endpoint;
37
- this.productId = matches && matches[2] ? matches[2] : "0";
38
- this.isProductCreation = /\/products\/create/.test(window.location.pathname);
39
- }
40
- /**
41
- * There is only one instance of this img manager.
42
- * But it is called with different config, by Photos tab and Variation tab, on fiche product page.
43
- * The method handle the switch config between Photos and Variation tab.
44
- * Return an observable : true => Photos tab / false => Variation tab.
45
- * */
46
- handleTabs() {
47
- return new Observable(observer => {
48
- const switchTabsSub = this.switchTabs().subscribe(data => {
49
- if (!data || !data["detail"] || !data["detail"]["currentTab"]) {
50
- return;
51
- }
52
- // Retrieve current tab
53
- const currentTab = data["detail"]["currentTab"];
54
- this.isPreviousTabPhotos = this.isPhotosTab;
55
- this.isPhotosTab = currentTab === 'photos';
56
- this.isVariantsTab = currentTab === 'variation';
57
- // The user switch to Photos tab
58
- if (this.isPhotosTab) {
59
- this.loadProductImgSelection = true;
60
- if (!this.currentProductImgSelection || !this.currentProductImgSelection.length) {
61
- this.initProductImgSelection();
62
- }
63
- else {
64
- this.applyCurrentImgSelection();
65
- this.loadProductImgSelection = false;
66
- }
67
- }
68
- else if (this.isPreviousTabPhotos) { // The user switch to another tab
69
- // Save current img selection, in order to not lose the img selection
70
- this.saveCurrentImgSelection();
71
- }
72
- observer.next(this.isPhotosTab);
73
- });
74
- this.subscriptions.push(switchTabsSub);
75
- });
76
- }
77
- getShopImg(idFile) {
78
- return this.http.get(`${this.image_manager_api}${this.shopId}/images/${idFile}`, this.getOptionsHeadersWithBearer());
79
- }
80
- initProductImgSelection() {
81
- // Display the loader in img list selection
82
- this.imgSelectionService.imgSelectedListLoading$.next(true);
83
- // retrieve img selection
84
- const retrieveImgSelectionSub = this.retrieveImgSelection().subscribe(data => {
85
- // No image selected
86
- if (!data || !data["photos"] || !data["photos"]["infos"] || !data["photos"]["infos"]["files"] || !data["photos"]["infos"]["files"].length) {
87
- this.loadProductImgSelection = false;
88
- this.imgSelectionService.imgSelectedListLoading$.next(false);
89
- return;
90
- }
91
- const idImgSelectionList = data["photos"]["infos"]["files"];
92
- const obsImg = [];
93
- idImgSelectionList.forEach(idFile => obsImg.push(this.getShopImg(idFile.toString()).pipe(take(1))));
94
- const allImgSub = forkJoin(obsImg).subscribe({
95
- next: (photos) => {
96
- // The img selection must be saved, otherwise it is lost when the user switch on variation tab
97
- this.saveCurrentImgSelection(photos);
98
- this.applyCurrentImgSelection();
99
- this.loadProductImgSelection = false;
100
- },
101
- error: error => {
102
- // Hide the loader in img list selection
103
- this.loadProductImgSelection = false;
104
- this.imgSelectionService.imgSelectedListLoading$.next(false);
105
- }
106
- });
107
- this.subscriptions.push(allImgSub);
108
- });
109
- this.subscriptions.push(retrieveImgSelectionSub);
110
- this.canvaService.expectedImgSizesChange(this.expectedMediaDto);
111
- }
112
- retrieveInfoSelection() {
113
- const formData = new FormData();
114
- formData.append('rub', "main");
115
- formData.append('action', "getInfos");
116
- formData.append('prodId', this.productId);
117
- formData.append('_token', '');
118
- formData.append('_shid', this.shopId.toString());
119
- return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());
120
- }
121
- retrieveImgSelection() {
122
- const formData = new FormData();
123
- formData.append('rub', "main");
124
- formData.append('action', "getAllInfos");
125
- formData.append('prodId', this.productId);
126
- formData.append('_token', '');
127
- formData.append('_shid', this.shopId.toString());
128
- return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());
129
- }
130
- updateImgSelectionOnChange() {
131
- // listen to the img manager change
132
- const imgSelectionSub = this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {
133
- if (!imgSelectionList) {
134
- return;
135
- }
136
- // Send the img selection
137
- if (this.isPhotosTab && !this.loadProductImgSelection) {
138
- // Retrieve only the img id
139
- const idImgSelectedList = [];
140
- imgSelectionList.forEach(img => {
141
- idImgSelectedList.push(parseInt(img.id_file));
142
- });
143
- this.updateProductImgSelection(idImgSelectedList);
144
- // On variation tab, send event with img selected
145
- }
146
- else if (!this.isPhotosTab && imgSelectionList.length) {
147
- this.eventService.sendImgSelectedToPage(imgSelectionList[0]);
148
- }
149
- });
150
- this.subscriptions.push(imgSelectionSub);
151
- }
152
- updateProductImgSelection(idsImgList) {
153
- if ((!this.productId || this.productId === "0") && Wizi._produit.global.PROD_ID) {
154
- this.productId = Wizi._produit.global.PROD_ID.toString();
155
- }
156
- Wizi._produit._dataTmp['photos'].infos = {};
157
- Wizi._produit._dataTmp['photos'].infos.files = idsImgList;
158
- this.emitImgSelectionChange(idsImgList);
159
- if (this.productId && this.productId !== "0") {
160
- const submitProd1 = this.submitProductImg(idsImgList).subscribe();
161
- this.subscriptions.push(submitProd1);
162
- return;
163
- }
164
- const createProductSub = this.createProduct().subscribe((productId) => {
165
- if (!productId) {
166
- throw "No product id created. Can not link image(s) to the new product.";
167
- }
168
- Wizi._produit.global.PROD_ID = productId;
169
- this.productId = productId.toString();
170
- this.submitProductImg(idsImgList).subscribe();
171
- });
172
- this.subscriptions.push(createProductSub);
173
- }
174
- submitProductImg(idsImgList) {
175
- const data = {
176
- files: idsImgList,
177
- couls: []
178
- };
179
- const formData = new FormData();
180
- formData.append('rub', "photos");
181
- formData.append('action', "save");
182
- formData.append('newProd', this.isProductCreation ? "1" : "0");
183
- formData.append('prodId', this.productId);
184
- formData.append('_token', this.shopToken);
185
- formData.append('_shid', this.shopId.toString());
186
- formData.append('data', JSON.stringify(data));
187
- return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());
188
- }
189
- createProduct() {
190
- const formData = new FormData();
191
- formData.append('rub', "main");
192
- formData.append('action', "createProd");
193
- formData.append('_token', '');
194
- formData.append('_shid', this.shopId.toString());
195
- return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());
196
- }
197
- /* Use to know where the img manager is displayed, and to close it when switching tab */
198
- switchTabs() {
199
- return fromEvent(document.getElementById('imgManagerModule'), "switchTab");
200
- }
201
- emitImgSelectionChange(idsImgList) {
202
- const value = {
203
- detail: {
204
- idsImgList
205
- }
206
- };
207
- const event = new CustomEvent('onImgSelectionChange', value);
208
- const imgManagerModule = document.getElementById('imgManagerModule');
209
- imgManagerModule?.dispatchEvent(event);
210
- }
211
- saveCurrentImgSelection(imgSelection) {
212
- this.currentProductImgSelection = imgSelection ? imgSelection : JSON.parse(JSON.stringify(this.imgSelectionService.getImgSelection()));
213
- }
214
- applyCurrentImgSelection() {
215
- this.imgSelectionService.setImgSelection(this.currentProductImgSelection);
216
- // Hide the loader in img list selection
217
- this.imgSelectionService.imgSelectedListLoading$.next(false);
218
- }
219
- getOptionsHeaders() {
220
- const header = { headers: new HttpHeaders({
221
- 'Access-Control-Allow-Origin': '*'
222
- })
223
- };
224
- return header;
225
- }
226
- getOptionsHeadersWithBearer() {
227
- const header = { headers: new HttpHeaders({
228
- Authorization: 'Bearer ' + this.shopToken
229
- })
230
- };
231
- return header;
232
- }
233
- ngOnDestroy() {
234
- this.subscriptions.forEach(subscription => subscription.unsubscribe());
235
- }
236
- }
237
- FicheProductService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, deps: [{ token: i1.HttpClient }, { token: i2.ImgSelectionService }, { token: i3.EventService }, { token: i2.CanvaService }, { token: i4.AuthCredentialsService }], target: i0.ɵɵFactoryTarget.Injectable });
238
- FicheProductService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService });
239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, decorators: [{
240
- type: Injectable
241
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ImgSelectionService }, { type: i3.EventService }, { type: i2.CanvaService }, { type: i4.AuthCredentialsService }]; } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmljaGVfcHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9maWNoZV9wcm9kdWN0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBUTFELE1BQU0sT0FBTyxtQkFBbUI7SUFzQjlCLFlBQ1UsSUFBZ0IsRUFDaEIsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzFCLFlBQTBCLEVBQzFCLHNCQUE4QztRQUo5QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQXhCeEQsc0JBQWlCLEdBQVcsV0FBVyxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQztRQUMzRSxjQUFTLEdBQVcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDckUsV0FBTSxHQUFXLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRXBFLGdCQUFXLEdBQVksS0FBSyxDQUFDLENBQUMsaURBQWlE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V0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQzs7Z0hBM1JVLG1CQUFtQjtvSEFBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGZvcmtKb2luLCBmcm9tRXZlbnQsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEF1dGhDcmVkZW50aWFsc1NlcnZpY2UgfSBmcm9tICcuL2F1dGgtY3JlZGVudGlhbHMuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPLCBJbWdTZWxlY3Rpb25TZXJ2aWNlLCBDYW52YVNlcnZpY2UgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuaW1wb3J0IHsgV2l6aUJsb2NrTWVkaWFEdG8gfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXIvbGliL2R0by93aXppLWJsb2NrLW1lZGlhLmR0byc7XG5cbmRlY2xhcmUgY29uc3QgV2l6aTogYW55O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmljaGVQcm9kdWN0U2VydmljZSB7XG5cbiAgcHJvZHVjdFNoZWV0QXBpUm91dGU6IHN0cmluZztcbiAgaW1hZ2VfbWFuYWdlcl9hcGk6IHN0cmluZyA9IGVudmlyb25tZW50LndpemlfYXBpICsgXCIvaW1hZ2UtbWFuYWdlci9zaG9wcy9cIjtcbiAgc2hvcFRva2VuOiBzdHJpbmcgPSB0aGlzLmF1dGhDcmVkZW50aWFsc1NlcnZpY2UuZ2V0U3luYygpLmRhdGEudG9rZW47XG4gIHNob3BJZDogbnVtYmVyID0gdGhpcy5hdXRoQ3JlZGVudGlhbHNTZXJ2aWNlLmdldFN5bmMoKS5kYXRhLnNob3BfaWQ7XG4gIHByb2R1Y3RJZDogc3RyaW5nO1xuICBpc1Bob3Rvc1RhYjogYm9vbGVhbiA9IGZhbHNlOyAvLyBTdGF0ZSBvZiB0aGUgUGhvdG9zIHRhYnMgaW4gZmljaGUgcHJvZHVjdCBwYWdlXG4gIGlzUHJldmlvdXNUYWJQaG90b3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNWYXJpYW50c1RhYjogYm9vbGVhbiA9IGZhbHNlO1xuICBsb2FkUHJvZHVjdEltZ1NlbGVjdGlvbjpib29sZWFuID0gZmFsc2U7XG4gIGN1cnJlbnRQcm9kdWN0SW1nU2VsZWN0aW9uOiBJbWdQaWN0dXJlRFRPW107XG4gIGlzUHJvZHVjdENyZWF0aW9uOiBib29sZWFuO1xuICBleHBlY3RlZE1lZGlhRHRvOldpemlCbG9ja01lZGlhRHRvID0ge1xuICAgIGlkOiAnJyxcbiAgICBpbWFnZV91cmw6ICcnLFxuICAgIGltYWdlX3dpZHRoOiAnOTAwJyxcbiAgICBpbWFnZV9oZWlnaHQ6ICc5MDAnLFxuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNhbnZhU2VydmljZTogQ2FudmFTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aENyZWRlbnRpYWxzU2VydmljZTogQXV0aENyZWRlbnRpYWxzU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICBzZXRBcGlDb25maWcoKSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5tYXRjaCggL1xcLyhcXHcrKVxcL3Byb2R1Y3RzXFwvKFxcZCspXFwvZWRpdC8pO1xuICAgIGNvbnN0IGxhbmcgPSBtYXRjaGVzICYmIG1hdGNoZXNbMV0gPyBtYXRjaGVzWzFdIDogJ2ZyJztcbiAgICB0aGlzLnByb2R1Y3RTaGVldEFwaVJvdXRlID0gZW52aXJvbm1lbnQud2l6aV9hZG1pbl9hcGkgKyBsYW5nICsgZW52aXJvbm1lbnQucHJvZHVjdF9zaGVldF9lbmRwb2ludDtcbiAgICB0aGlzLnByb2R1Y3RJZCA9IG1hdGNoZXMgJiYgbWF0Y2hlc1syXSA/IG1hdGNoZXNbMl0gOiBcIjBcIjtcbiAgICB0aGlzLmlzUHJvZHVjdENyZWF0aW9uID0gL1xcL3Byb2R1Y3RzXFwvY3JlYXRlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlcmUgaXMgb25seSBvbmUgaW5zdGFuY2Ugb2YgdGhpcyBpbWcgbWFuYWdlci5cbiAgICogQnV0IGl0IGlzIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBjb25maWcsIGJ5IFBob3RvcyB0YWIgYW5kIFZhcmlhdGlvbiB0YWIsIG9uIGZpY2hlIHByb2R1Y3QgcGFnZS5cbiAgICogVGhlIG1ldGhvZCBoYW5kbGUgdGhlIHN3aXRjaCBjb25maWcgYmV0d2VlbiBQaG90b3MgYW5kIFZhcmlhdGlvbiB0YWIuXG4gICAqIFJldHVybiBhbiBvYnNlcnZhYmxlIDogdHJ1ZSA9PiBQaG90b3MgdGFiIC8gZmFsc2UgPT4gVmFyaWF0aW9uIHRhYi5cbiAgICogICovXG4gIGhhbmRsZVRhYnMoKTpPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuXG4gICAgICBjb25zdCBzd2l0Y2hUYWJzU3ViID1cbiAgICAgICAgdGhpcy5zd2l0Y2hUYWJzKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuXG4gICAgICAgICAgaWYgKCFkYXRhIHx8ICFkYXRhW1wiZGV0YWlsXCJdIHx8ICFkYXRhW1wiZGV0YWlsXCJdW1wiY3VycmVudFRhYlwiXSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgLy8gUmV0cmlldmUgY3VycmVudCB0YWJcbiAgICAgICAgICBjb25zdCBjdXJyZW50VGFiID0gZGF0YVtcImRldGFpbFwiXVtcImN1cnJlbnRUYWJcIl07XG4gICAgICAgICAgdGhpcy5pc1ByZXZpb3VzVGFiUGhvdG9zID0gdGhpcy5pc1Bob3Rvc1RhYjtcbiAgICAgICAgICB0aGlzLmlzUGhvdG9zVGFiID0gY3VycmVudFRhYiA9PT0gJ3Bob3Rvcyc7XG4gICAgICAgICAgdGhpcy5pc1ZhcmlhbnRzVGFiID0gY3VycmVudFRhYiA9PT0gJ3ZhcmlhdGlvbic7XG5cbiAgICAgICAgICAvLyBUaGUgdXNlciBzd2l0Y2ggdG8gUGhvdG9zIHRhYlxuICAgICAgICAgIGlmICh0aGlzLmlzUGhvdG9zVGFiKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRQcm9kdWN0SW1nU2VsZWN0aW9uIHx8ICF0aGlzLmN1cnJlbnRQcm9kdWN0SW1nU2VsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLmluaXRQcm9kdWN0SW1nU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmFwcGx5Q3VycmVudEltZ1NlbGVjdGlvbigpO1xuICAgICAgICAgICAgICB0aGlzLmxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNQcmV2aW91c1RhYlBob3RvcykgeyAvLyBUaGUgdXNlciBzd2l0Y2ggdG8gYW5vdGhlciB0YWJcbiAgICAgICAgICAgIC8vIFNhdmUgY3VycmVudCBpbWcgc2VsZWN0aW9uLCBpbiBvcmRlciB0byBub3QgbG9zZSB0aGUgaW1nIHNlbGVjdGlvblxuICAgICAgICAgICAgdGhpcy5zYXZlQ3VycmVudEltZ1NlbGVjdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvYnNlcnZlci5uZXh0KHRoaXMuaXNQaG90b3NUYWIpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3dpdGNoVGFic1N1Yik7XG4gICAgfSk7XG4gIH1cblxuICBnZXRTaG9wSW1nKGlkRmlsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmltYWdlX21hbmFnZXJfYXBpfSR7dGhpcy5zaG9wSWR9L2ltYWdlcy8ke2lkRmlsZX1gLCB0aGlzLmdldE9wdGlvbnNIZWFkZXJzV2l0aEJlYXJlcigpKTtcbiAgfVxuXG4gIGluaXRQcm9kdWN0SW1nU2VsZWN0aW9uKCkge1xuXG4gICAgLy8gRGlzcGxheSB0aGUgbG9hZGVyIGluIGltZyBsaXN0IHNlbGVjdGlvblxuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3RlZExpc3RMb2FkaW5nJC5uZXh0KHRydWUpO1xuXG4gICAgLy8gcmV0cmlldmUgaW1nIHNlbGVjdGlvblxuICAgIGNvbnN0IHJldHJpZXZlSW1nU2VsZWN0aW9uU3ViID1cbiAgICAgIHRoaXMucmV0cmlldmVJbWdTZWxlY3Rpb24oKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG5cbiAgICAgICAgLy8gTm8gaW1hZ2Ugc2VsZWN0ZWRcbiAgICAgICAgaWYgKCFkYXRhIHx8ICFkYXRhW1wicGhvdG9zXCJdIHx8ICFkYXRhW1wicGhvdG9zXCJdW1wiaW5mb3NcIl0gfHwgIWRhdGFbXCJwaG90b3NcIl1bXCJpbmZvc1wiXVtcImZpbGVzXCJdIHx8ICFkYXRhW1wicGhvdG9zXCJdW1wiaW5mb3NcIl1bXCJmaWxlc1wiXS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0ZWRMaXN0TG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaWRJbWdTZWxlY3Rpb25MaXN0OiBudW1iZXJbXSA9IGRhdGFbXCJwaG90b3NcIl1bXCJpbmZvc1wiXVtcImZpbGVzXCJdO1xuICAgICAgICBjb25zdCBvYnNJbWc6IE9ic2VydmFibGU8YW55PltdID0gW107XG5cbiAgICAgICAgaWRJbWdTZWxlY3Rpb25MaXN0LmZvckVhY2goaWRGaWxlID0+XG4gICAgICAgICAgb2JzSW1nLnB1c2goXG4gICAgICAgICAgICB0aGlzLmdldFNob3BJbWcoaWRGaWxlLnRvU3RyaW5nKCkpLnBpcGUodGFrZSgxKSlcbiAgICAgICAgKSk7XG4gICAgICAgIGNvbnN0IGFsbEltZ1N1YiA9XG4gICAgICAgICAgZm9ya0pvaW4ob2JzSW1nKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHBob3RvczogSW1nUGljdHVyZURUT1tdKSA9PiB7XG4gICAgICAgICAgICAvLyBUaGUgaW1nIHNlbGVjdGlvbiBtdXN0IGJlIHNhdmVkLCBvdGhlcndpc2UgaXQgaXMgbG9zdCB3aGVuIHRoZSB1c2VyIHN3aXRjaCBvbiB2YXJpYXRpb24gdGFiXG4gICAgICAgICAgICB0aGlzLnNhdmVDdXJyZW50SW1nU2VsZWN0aW9uKHBob3Rvcyk7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Q3VycmVudEltZ1NlbGVjdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgICAgIC8vIEhpZGUgdGhlIGxvYWRlciBpbiBpbWcgbGlzdCBzZWxlY3Rpb25cbiAgICAgICAgICAgIHRoaXMubG9hZFByb2R1Y3RJbWdTZWxlY3Rpb24gPSBmYWxzZTtcblxuICAgICAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmltZ1NlbGVjdGVkTGlzdExvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICAgIH19KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goYWxsSW1nU3ViKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gocmV0cmlldmVJbWdTZWxlY3Rpb25TdWIpO1xuICAgIHRoaXMuY2FudmFTZXJ2aWNlLmV4cGVjdGVkSW1nU2l6ZXNDaGFuZ2UodGhpcy5leHBlY3RlZE1lZGlhRHRvKTtcbiAgfVxuXG4gIHJldHJpZXZlSW5mb1NlbGVjdGlvbigpIHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncnViJywgXCJtYWluXCIpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnYWN0aW9uJywgXCJnZXRJbmZvc1wiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2RJZCcsIHRoaXMucHJvZHVjdElkKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ190b2tlbicsICcnKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ19zaGlkJywgdGhpcy5zaG9wSWQudG9TdHJpbmcoKSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5wcm9kdWN0U2hlZXRBcGlSb3V0ZSwgZm9ybURhdGEsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICByZXRyaWV2ZUltZ1NlbGVjdGlvbigpIHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncnViJywgXCJtYWluXCIpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnYWN0aW9uJywgXCJnZXRBbGxJbmZvc1wiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2RJZCcsIHRoaXMucHJvZHVjdElkKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ190b2tlbicsICcnKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ19zaGlkJywgdGhpcy5zaG9wSWQudG9TdHJpbmcoKSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLnByb2R1Y3RTaGVldEFwaVJvdXRlLCBmb3JtRGF0YSwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcbiAgfVxuXG4gIHVwZGF0ZUltZ1NlbGVjdGlvbk9uQ2hhbmdlKCkge1xuICAgIC8vIGxpc3RlbiB0byB0aGUgaW1nIG1hbmFnZXIgY2hhbmdlXG4gICAgY29uc3QgaW1nU2VsZWN0aW9uU3ViID1cbiAgICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3Rpb24kLnN1YnNjcmliZShpbWdTZWxlY3Rpb25MaXN0ID0+IHtcbiAgICAgICAgaWYgKCFpbWdTZWxlY3Rpb25MaXN0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VuZCB0aGUgaW1nIHNlbGVjdGlvblxuICAgICAgICBpZiAodGhpcy5pc1Bob3Rvc1RhYiAmJiAhdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbikge1xuICAgICAgICAgIC8vIFJldHJpZXZlIG9ubHkgdGhlIGltZyBpZFxuICAgICAgICAgIGNvbnN0IGlkSW1nU2VsZWN0ZWRMaXN0OiBudW1iZXJbXSA9IFtdO1xuICAgICAgICAgIGltZ1NlbGVjdGlvbkxpc3QuZm9yRWFjaChpbWcgPT4ge1xuICAgICAgICAgICAgaWRJbWdTZWxlY3RlZExpc3QucHVzaChwYXJzZUludChpbWcuaWRfZmlsZSkpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVQcm9kdWN0SW1nU2VsZWN0aW9uKGlkSW1nU2VsZWN0ZWRMaXN0KTtcblxuICAgICAgICAvLyBPbiB2YXJpYXRpb24gdGFiLCBzZW5kIGV2ZW50IHdpdGggaW1nIHNlbGVjdGVkXG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNQaG90b3NUYWIgJiYgaW1nU2VsZWN0aW9uTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zZW5kSW1nU2VsZWN0ZWRUb1BhZ2UoaW1nU2VsZWN0aW9uTGlzdFswXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGltZ1NlbGVjdGlvblN1Yik7XG4gIH1cblxuICB1cGRhdGVQcm9kdWN0SW1nU2VsZWN0aW9uKGlkc0ltZ0xpc3Q6IG51bWJlcltdKSB7XG4gICAgaWYgKCghdGhpcy5wcm9kdWN0SWQgfHwgdGhpcy5wcm9kdWN0SWQgPT09IFwiMFwiKSAmJiBXaXppLl9wcm9kdWl0Lmdsb2JhbC5QUk9EX0lEKSB7XG4gICAgICB0aGlzLnByb2R1Y3RJZCA9IFdpemkuX3Byb2R1aXQuZ2xvYmFsLlBST0RfSUQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBXaXppLl9wcm9kdWl0Ll9kYXRhVG1wWydwaG90b3MnXS5pbmZvcyA9IHt9O1xuICAgIFdpemkuX3Byb2R1aXQuX2RhdGFUbXBbJ3Bob3RvcyddLmluZm9zLmZpbGVzID0gaWRzSW1nTGlzdDtcbiAgICB0aGlzLmVtaXRJbWdTZWxlY3Rpb25DaGFuZ2UoaWRzSW1nTGlzdCk7XG5cbiAgICBpZiAodGhpcy5wcm9kdWN0SWQgJiYgdGhpcy5wcm9kdWN0SWQgIT09IFwiMFwiKSB7XG4gICAgICBjb25zdCBzdWJtaXRQcm9kMSA9XG4gICAgICAgIHRoaXMuc3VibWl0UHJvZHVjdEltZyhpZHNJbWdMaXN0KS5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1Ym1pdFByb2QxKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3JlYXRlUHJvZHVjdFN1YiA9XG4gICAgICB0aGlzLmNyZWF0ZVByb2R1Y3QoKS5zdWJzY3JpYmUoXG4gICAgICAgIChwcm9kdWN0SWQ6bnVtYmVyKSA9PiB7XG4gICAgICAgICAgaWYgKCFwcm9kdWN0SWQpIHtcbiAgICAgICAgICAgIHRocm93IFwiTm8gcHJvZHVjdCBpZCBjcmVhdGVkLiBDYW4gbm90IGxpbmsgaW1hZ2UocykgdG8gdGhlIG5ldyBwcm9kdWN0LlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBXaXppLl9wcm9kdWl0Lmdsb2JhbC5QUk9EX0lEID0gcHJvZHVjdElkO1xuXG4gICAgICAgICAgdGhpcy5wcm9kdWN0SWQgPSBwcm9kdWN0SWQudG9TdHJpbmcoKTtcbiAgICAgICAgICB0aGlzLnN1Ym1pdFByb2R1Y3RJbWcoaWRzSW1nTGlzdCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goY3JlYXRlUHJvZHVjdFN1Yik7XG5cbiAgfVxuXG4gIHN1Ym1pdFByb2R1Y3RJbWcoaWRzSW1nTGlzdDogbnVtYmVyW10pIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgZmlsZXMgOiBpZHNJbWdMaXN0LFxuICAgICAgY291bHM6IFtdXG4gICAgfTtcblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdydWInLCBcInBob3Rvc1wiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIFwic2F2ZVwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ25ld1Byb2QnLCB0aGlzLmlzUHJvZHVjdENyZWF0aW9uID8gXCIxXCIgOiBcIjBcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kSWQnLCB0aGlzLnByb2R1Y3RJZCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfdG9rZW4nLCB0aGlzLnNob3BUb2tlbik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfc2hpZCcsIHRoaXMuc2hvcElkLnRvU3RyaW5nKCkpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZGF0YScsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnByb2R1Y3RTaGVldEFwaVJvdXRlLCBmb3JtRGF0YSwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcbiAgfVxuXG4gIGNyZWF0ZVByb2R1Y3QoKSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3J1YicsIFwibWFpblwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIFwiY3JlYXRlUHJvZFwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ190b2tlbicsICcnKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ19zaGlkJywgdGhpcy5zaG9wSWQudG9TdHJpbmcoKSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVtYmVyPih0aGlzLnByb2R1Y3RTaGVldEFwaVJvdXRlLCBmb3JtRGF0YSwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcblxuICB9XG5cbiAgLyogVXNlIHRvIGtub3cgd2hlcmUgdGhlIGltZyBtYW5hZ2VyIGlzIGRpc3BsYXllZCwgYW5kIHRvIGNsb3NlIGl0IHdoZW4gc3dpdGNoaW5nIHRhYiAqL1xuICBzd2l0Y2hUYWJzKCkge1xuICAgIHJldHVybiBmcm9tRXZlbnQ8YW55Pihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nTWFuYWdlck1vZHVsZScpIGFzIGFueSwgXCJzd2l0Y2hUYWJcIik7XG4gIH1cblxuICBwcml2YXRlIGVtaXRJbWdTZWxlY3Rpb25DaGFuZ2UoaWRzSW1nTGlzdDogbnVtYmVyW10pIHtcbiAgICBjb25zdCB2YWx1ZSA9IHtcbiAgICAgIGRldGFpbDoge1xuICAgICAgICBpZHNJbWdMaXN0XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdvbkltZ1NlbGVjdGlvbkNoYW5nZScsIHZhbHVlKTtcbiAgICBjb25zdCBpbWdNYW5hZ2VyTW9kdWxlPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nTWFuYWdlck1vZHVsZScpO1xuICAgIGltZ01hbmFnZXJNb2R1bGU/LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlQ3VycmVudEltZ1NlbGVjdGlvbihpbWdTZWxlY3Rpb24/OiBJbWdQaWN0dXJlRFRPW10pIHtcbiAgICB0aGlzLmN1cnJlbnRQcm9kdWN0SW1nU2VsZWN0aW9uID0gaW1nU2VsZWN0aW9uID8gaW1nU2VsZWN0aW9uIDogSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuZ2V0SW1nU2VsZWN0aW9uKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlDdXJyZW50SW1nU2VsZWN0aW9uKCkge1xuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5zZXRJbWdTZWxlY3Rpb24odGhpcy5jdXJyZW50UHJvZHVjdEltZ1NlbGVjdGlvbik7XG4gICAgLy8gSGlkZSB0aGUgbG9hZGVyIGluIGltZyBsaXN0IHNlbGVjdGlvblxuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3RlZExpc3RMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3B0aW9uc0hlYWRlcnMoKSB7XG4gICAgY29uc3QgaGVhZGVyID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbic6JyonXG4gICAgICB9KVxuICAgIH07XG4gICAgcmV0dXJuIGhlYWRlcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3B0aW9uc0hlYWRlcnNXaXRoQmVhcmVyKCkge1xuICAgIGNvbnN0IGhlYWRlciA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIHRoaXMuc2hvcFRva2VuXG4gICAgICB9KVxuICAgIH07XG4gICAgcmV0dXJuIGhlYWRlcjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gIH1cbn0iXX0=