@wizishop/img-manager-webelement 15.2.18 → 15.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/img-manager-webelement.component.mjs +11 -18
- package/esm2020/lib/services/fiche_products.service.mjs +9 -7
- package/fesm2015/wizishop-img-manager-webelement.mjs +27 -32
- package/fesm2015/wizishop-img-manager-webelement.mjs.map +1 -1
- package/fesm2020/wizishop-img-manager-webelement.mjs +27 -32
- package/fesm2020/wizishop-img-manager-webelement.mjs.map +1 -1
- package/lib/img-manager-webelement.component.d.ts +0 -1
- package/lib/services/fiche_products.service.d.ts +4 -2
- package/package.json +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
-
import { from as fromPromise } from 'rxjs';
|
|
3
2
|
import { environment } from './environments/environment';
|
|
4
3
|
import { ImgSelectionService } from '@wizishop/img-manager';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
@@ -34,18 +33,15 @@ export class ImgManagerWebElementComponent {
|
|
|
34
33
|
this.setCurrentLanguage();
|
|
35
34
|
// Search on which page is display the img manger
|
|
36
35
|
this.setDisplayedPageConfig();
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
this.subscriptions.push(subCredentials);
|
|
36
|
+
this.loading = false;
|
|
37
|
+
this.initVariables(this.authCredentialsService.getSync());
|
|
38
|
+
// Fiche product page
|
|
39
|
+
if (this.imgManagerDisplayConfig.pageficheProduct) {
|
|
40
|
+
this.setFicheProductPage();
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.setPageWithEvents();
|
|
44
|
+
}
|
|
49
45
|
}
|
|
50
46
|
initVariables(authCredentials) {
|
|
51
47
|
if (!authCredentials) {
|
|
@@ -60,7 +56,7 @@ export class ImgManagerWebElementComponent {
|
|
|
60
56
|
this.setAppVars(authCredentials.shop_id, authCredentials.token);
|
|
61
57
|
}
|
|
62
58
|
setFicheProductPage() {
|
|
63
|
-
this.ficheProductService.setApiConfig(
|
|
59
|
+
this.ficheProductService.setApiConfig();
|
|
64
60
|
this.handleFicheProductTab(); // Display different img manager config according to the tab
|
|
65
61
|
this.closeImgManagerOnSwitchingTab();
|
|
66
62
|
this.subscribePageAskForImg(); // Use for images in variations tab
|
|
@@ -115,9 +111,6 @@ export class ImgManagerWebElementComponent {
|
|
|
115
111
|
});
|
|
116
112
|
this.subscriptions.push(tabsCloseSub);
|
|
117
113
|
}
|
|
118
|
-
getCredentials() {
|
|
119
|
-
return fromPromise(this.authCredentialsService.get());
|
|
120
|
-
}
|
|
121
114
|
setAppVars(shopId, token) {
|
|
122
115
|
this.webelementImageManagerApiService.shopToken = token;
|
|
123
116
|
this.webelementImageManagerApiService.shopId = shopId;
|
|
@@ -139,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
139
132
|
ImgSelectionService
|
|
140
133
|
], 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
134
|
}], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFDLE9BQU8sRUFBZ0IsSUFBSSxJQUFJLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVc1RCxNQUFNLE9BQU8sNkJBQTZCO0lBa0J4QyxZQUNVLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsc0JBQThDLEVBQzlDLFlBQTBCLEVBQzFCLGlCQUFvQyxFQUNwQyxtQkFBd0MsRUFDeEMsZ0NBQWtFO1FBUGxFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQ0FBZ0MsR0FBaEMsZ0NBQWdDLENBQWtDO1FBckI1RSxvQkFBb0I7UUFDcEIsbUJBQWMsR0FBVyxLQUFLLENB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QUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDOzswSEF2SlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsaURBSjdCO1FBQ1QsbUJBQW1CO0tBQ3BCLDBCQ2pCSCxpbENBd0JNOzJGRExPLDZCQUE2QjtrQkFSekMsU0FBUzsrQkFDRSx3QkFBd0IsYUFHdkI7d0JBQ1QsbUJBQW1CO3FCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nTWFuYWdlckNvbmZpZ0R0bywgIENhbnZhU2VydmljZSwgSW1nTWFuYWdlckRpc3BsYXlDb25maWcsIEltZ01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnQHdpemlzaG9wL2ltZy1tYW5hZ2VyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbSBhcyBmcm9tUHJvbWlzZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmljaGVQcm9kdWN0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZmljaGVfcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoQ3JlZGVudGlhbHMsIEF1dGhDcmVkZW50aWFsc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2F1dGgtY3JlZGVudGlhbHMuc2VydmljZSc7XG5pbXBvcnQgeyBFdmVudFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnQHdpemlzaG9wL2ltZy1tYW5hZ2VyJztcbmltcG9ydCB7IFdlYmVsZW1lbnRJbWFnZU1hbmFnZXJBcGlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy93ZWJlbGVtZW50LWltYWdlLW1hbmFnZXItYXBpLmNvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgSW1nU2VsZWN0aW9uU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEltZ01hbmFnZXJXZWJFbGVtZW50Q29tcG9uZW50IHtcbiAgLy8gc2hvcCBjb25maWdcbiAgaWRfc2hvcDogbnVtYmVyO1xuICB0b2tlbl9zaG9wOiBzdHJpbmc7XG5cbiAgLy8gaW1nIG1hbmdlciBjb25maWdcbiAgb3BlbkltZ01hbmFnZXI6Ym9vbGVhbiA9IGZhbHNlO1xuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcbiAgaW1nRXh0ZXJuYWxDb25maWc6IEltZ01hbmFnZXJDb25maWdEdG87XG4gIGltZ01hbmFnZXJEaXNwbGF5Q29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZztcbiAgcGFnZUZpY2hlUHJvZHVjdENvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWc7XG4gIHBhZ2VFdmVudENvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWc7XG5cbiAgLy8gZmljaGUgcHJvZHVjdCBjb25maWdcbiAgaXNQaG90b3NUYWI6IGJvb2xlYW4gPSAhIWVudmlyb25tZW50LmlzUGhvdG9zVGFiO1xuXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FudmFTZXJ2aWNlOiBDYW52YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmaWNoZVByb2R1Y3RTZXJ2aWNlOiBGaWNoZVByb2R1Y3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aENyZWRlbnRpYWxzU2VydmljZTogQXV0aENyZWRlbnRpYWxzU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nTWFuYWdlclNlcnZpY2U6IEltZ01hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nU2VsZWN0aW9uU2VydmljZTogSW1nU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHdlYmVsZW1lbnRJbWFnZU1hbmFnZXJBcGlTZXJ2aWNlOiBXZWJlbGVtZW50SW1hZ2VNYW5hZ2VyQXBpU2VydmljZVxuICApe31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZyA9IHRoaXMuaW1nTWFuYWdlclNlcnZpY2UuZ2V0SW1nTWFuYWdlckRpc3BsYXlDb25maWcoXCJmaWNoZS1wcm9kdWN0XCIpO1xuICAgIHRoaXMucGFnZUV2ZW50Q29uZmlnID0gdGhpcy5pbWdNYW5hZ2VyU2VydmljZS5nZXRJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyhcIndpemktYmxvY2tcIik7XG4gICAgdGhpcy5zZXRDdXJyZW50TGFuZ3VhZ2UoKTtcbiAgICAvLyBTZWFyY2ggb24gd2hpY2ggcGFnZSBpcyBkaXNwbGF5IHRoZSBpbWcgbWFuZ2VyXG4gICAgdGhpcy5zZXREaXNwbGF5ZWRQYWdlQ29uZmlnKCk7XG5cbiAgICBjb25zdCBzdWJDcmVkZW50aWFscyA9XG4gICAgICB0aGlzLmdldENyZWRlbnRpYWxzKCkuc3Vic2NyaWJlKGF1dGhDcmVkZW50aWFscyA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmluaXRWYXJpYWJsZXMoYXV0aENyZWRlbnRpYWxzKTtcbiAgICAgICAgLy8gRmljaGUgcHJvZHVjdCBwYWdlXG4gICAgICAgIGlmICh0aGlzLmltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLnBhZ2VmaWNoZVByb2R1Y3QpIHtcbiAgICAgICAgICB0aGlzLnNldEZpY2hlUHJvZHVjdFBhZ2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNldFBhZ2VXaXRoRXZlbnRzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YkNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIGluaXRWYXJpYWJsZXMoYXV0aENyZWRlbnRpYWxzOiBBdXRoQ3JlZGVudGlhbHMgfCBudWxsKSB7XG4gICAgaWYgKCFhdXRoQ3JlZGVudGlhbHMpIHtcblxuICAgICAgaWYgKGVudmlyb25tZW50LmlzV2l6aXNob3Bjb20pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gUnVuIG9uIGxvY2FsIFNlcnZlclxuICAgICAgdGhpcy5zZXRBcHBWYXJzKGVudmlyb25tZW50LmxvY2FsLnNob3BJZCwgZW52aXJvbm1lbnQubG9jYWwudG9rZW4pO1xuICAgICAgdGhpcy5pbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldEFwcFZhcnMoYXV0aENyZWRlbnRpYWxzLnNob3BfaWQsIGF1dGhDcmVkZW50aWFscy50b2tlbik7XG4gIH1cblxuICBzZXRGaWNoZVByb2R1Y3RQYWdlKCkge1xuICAgIHRoaXMuZmljaGVQcm9kdWN0U2VydmljZS5zZXRBcGlDb25maWcodGhpcy5pZF9zaG9wLCB0aGlzLnRva2VuX3Nob3ApO1xuICAgIHRoaXMuaGFuZGxlRmljaGVQcm9kdWN0VGFiKCk7IC8vIERpc3BsYXkgZGlmZmVyZW50IGltZyBtYW5hZ2VyIGNvbmZpZyBhY2NvcmRpbmcgdG8gdGhlIHRhYlxuICAgIHRoaXMuY2xvc2VJbWdNYW5hZ2VyT25Td2l0Y2hpbmdUYWIoKTtcbiAgICB0aGlzLnN1YnNjcmliZVBhZ2VBc2tGb3JJbWcoKTsgLy8gVXNlIGZvciBpbWFnZXMgaW4gdmFyaWF0aW9ucyB0YWJcbiAgICB0aGlzLmZpY2hlUHJvZHVjdFNlcnZpY2UudXBkYXRlSW1nU2VsZWN0aW9uT25DaGFuZ2UoKTtcbiAgfVxuXG4gIHNldFBhZ2VXaXRoRXZlbnRzKCkge1xuICAgIHRoaXMuc3Vic2NyaWJlUGFnZUFza0ZvckltZygpO1xuXG4gICAgLy8gU2VuZCBpbWcgc2VsZWN0ZWRcbiAgICBjb25zdCBzdWJJbWdTZWxlY3Rpb24gPSB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0aW9uJC5zdWJzY3JpYmUoaW1nU2VsZWN0aW9uTGlzdCA9PiB7XG4gICAgICBpZiAoaW1nU2VsZWN0aW9uTGlzdCAmJiBpbWdTZWxlY3Rpb25MaXN0Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zZW5kSW1nU2VsZWN0ZWRUb1BhZ2UoaW1nU2VsZWN0aW9uTGlzdFswXSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3ViSW1nU2VsZWN0aW9uKTtcbiAgfVxuXG4gIHN1YnNjcmliZVBhZ2VBc2tGb3JJbWcoKSB7XG4gICAgLy8gTGlzdGVuIHRvIHBhZ2UgZWRpdG9yIGFzayBmb3IgaW1nIGV2ZW50XG4gICAgY29uc3Qgc3ViQXNrRm9ySW1nID0gdGhpcy5ldmVudFNlcnZpY2UucGFnZUFza0ZvckltZygpLnN1YnNjcmliZSggZGF0YSA9PiB7XG4gICAgICAvLyBSZXRyaWV2ZSB3aGljaCBpbWcgbWFuYWdlciBzZW5kIHRoZSBldmVudFxuICAgICAgY29uc3QgZW1pdHRlciA9IGRhdGEgJiYgZGF0YVtcImRldGFpbFwiXSA/IGRhdGFbXCJkZXRhaWxcIl1bXCJmcm9tXCJdIDogbnVsbDtcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNldEVtaXR0ZXIoZW1pdHRlcik7XG5cbiAgICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5zZXRJbWdTZWxlY3Rpb24oW10pO1xuXG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJBc2tGb3JJbWcpO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLm9wZW5JbWdNYW5hZ2VyID0gdHJ1ZTtcbiAgfVxuXG4gIG9uSW1nTWFuYWdlckNsb3NlZCgpIHtcbiAgICAvLyBDbG9zZSBpbWcgbWFuYWdlclxuICAgIHRoaXMub3BlbkltZ01hbmFnZXIgPSBmYWxzZTtcbiAgfVxuXG4gIHNldEN1cnJlbnRMYW5ndWFnZSgpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLm1hdGNoKCAvXlxcLyhcXHcrKVxcLy8pO1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobWF0Y2hlcyAmJiBtYXRjaGVzWzFdID8gbWF0Y2hlc1sxXSA6ICdmcicpO1xuICB9XG5cbiAgc2V0RGlzcGxheWVkUGFnZUNvbmZpZygpIHtcbiAgICBjb25zdCBpc0ZpY2hlUHJvZHVjdFBhZ2UgPSAvXFwvcHJvZHVjdHNcXC8oXFxkK1xcL2VkaXR8Y3JlYXRlKS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpO1xuICAgIHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSBpc0ZpY2hlUHJvZHVjdFBhZ2UgPyB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWcgOiB0aGlzLnBhZ2VFdmVudENvbmZpZztcbiAgfVxuXG4gIGhhbmRsZUZpY2hlUHJvZHVjdFRhYigpIHtcbiAgICBjb25zdCB0YWJzU3ViID1cbiAgICAgIHRoaXMuZmljaGVQcm9kdWN0U2VydmljZS5oYW5kbGVUYWJzKCkuc3Vic2NyaWJlKGlzUGhvdG9zVGFiID0+IHtcbiAgICAgICAgdGhpcy5pbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IGlzUGhvdG9zVGFiID8gdGhpcy5wYWdlRmljaGVQcm9kdWN0Q29uZmlnIDogdGhpcy5wYWdlRXZlbnRDb25maWc7XG4gICAgICAgIHRoaXMuaXNQaG90b3NUYWIgPSBpc1Bob3Rvc1RhYjtcbiAgICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRhYnNTdWIpO1xuICB9XG5cbiAgY2xvc2VJbWdNYW5hZ2VyT25Td2l0Y2hpbmdUYWIoKSB7XG4gICAgY29uc3QgdGFic0Nsb3NlU3ViID1cbiAgICAgIHRoaXMuZmljaGVQcm9kdWN0U2VydmljZS5zd2l0Y2hUYWJzKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLm9wZW5JbWdNYW5hZ2VyID0gZmFsc2U7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRhYnNDbG9zZVN1Yik7XG4gIH1cblxuICBwcml2YXRlIGdldENyZWRlbnRpYWxzPEF1dGhDcmVkZW50aWFscz4oKSB7XG4gICAgcmV0dXJuIGZyb21Qcm9taXNlKHRoaXMuYXV0aENyZWRlbnRpYWxzU2VydmljZS5nZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIHNldEFwcFZhcnMoc2hvcElkOiBudW1iZXIsIHRva2VuOiBzdHJpbmcpIHtcbiAgICB0aGlzLndlYmVsZW1lbnRJbWFnZU1hbmFnZXJBcGlTZXJ2aWNlLnNob3BUb2tlbiA9IHRva2VuO1xuICAgIHRoaXMud2ViZWxlbWVudEltYWdlTWFuYWdlckFwaVNlcnZpY2Uuc2hvcElkID0gc2hvcElkO1xuICAgIGlmIChzaG9wSWQpIHtcbiAgICAgIHRoaXMud2ViZWxlbWVudEltYWdlTWFuYWdlckFwaVNlcnZpY2Uuc2V0U2hvcENhdGVnb3J5KHNob3BJZCkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImluZm8tYnVsbGVcIj5cbiAgPHAgY2xhc3M9XCJpbmZvLWJ1bGxlLWNvbnRlbnRcIiBbaW5uZXJIVE1MXT1cIidJbWdNYW5hZ2VyLndlYkVsZW1lbnQuaW5mb0J1bGxlJyB8IHRyYW5zbGF0ZVwiPjwvcD5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcucGFnZWZpY2hlUHJvZHVjdCAmJiBpc1Bob3Rvc1RhYlwiPlxuICAgIDxoMyBjbGFzcz1cIndpemljc3Mtc291cy10aXRyZVwiPnt7J0ltZ01hbmFnZXIud2ViRWxlbWVudC5waG90b3NUaXRsZScgfCB0cmFuc2xhdGUgfX08L2gzPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmcgJiYgaWRfc2hvcCAmJiBpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZ1wiPlxuXG4gICAgPHAgY2xhc3M9XCJpbWctbWFuYWdlci1vcGVuXCIgKm5nSWY9XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5kaXNwbGF5QnRuICYmIGlzUGhvdG9zVGFiXCI+XG4gICAgICA8YSAoY2xpY2spPVwib3BlbigpXCI+e3snSW1nTWFuYWdlci53ZWJFbGVtZW50Lk9wZW5CdG4nIHwgdHJhbnNsYXRlIH19PC9hPlxuICAgIDwvcD5cblxuICAgIDxkaXYgY2xhc3M9XCJpbWdNYW5hZ2VyQm94XCI+XG4gICAgICA8d3otaW1nLW1hbmFnZXJcbiAgICAgICAgI3d6SW1nTWFuYWdlclxuICAgICAgICBbc3RhdGVEaXNwbGF5ZWRdPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcuc3RhdGVEaXNwbGF5ZWRcIlxuICAgICAgICBbbXVsdGlwbGVJbWdNb2RlXT1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLm11bHRpcGxlSW1nTW9kZVwiXG4gICAgICAgIFtzaG93SW1nTWFuYWdlck1vZHVsZV09XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5zaG93SW1nTWFuYWdlck1vZHVsZSAmJiBvcGVuSW1nTWFuYWdlclwiXG4gICAgICAgIFtzaG93U2VsZWN0aW9uXT1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLnNob3dTZWxlY3Rpb25cIlxuICAgICAgICAoaW1nTWFuYWdlckNsb3NlZCk9XCJvbkltZ01hbmFnZXJDbG9zZWQoKVwiPlxuICAgICAgPC93ei1pbWctbWFuYWdlcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj4iXX0=
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbWctbWFuYWdlci13ZWJlbGVtZW50L3NyYy9saWIvaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBVzVELE1BQU0sT0FBTyw2QkFBNkI7SUFrQnhDLFlBQ1UsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLG1CQUF3QyxFQUN4QyxzQkFBOEMsRUFDOUMsWUFBMEIsRUFDMUIsaUJBQW9DLEVBQ3BDLG1CQUF3QyxFQUN4QyxnQ0FBa0U7UUFQbEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHFDQUFnQyxHQUFoQyxnQ0FBZ0MsQ0FBa0M7UUFyQjVFLG9CQUFvQjtRQUNwQixtQkFBYyxHQUFXLEtBQUssQ0FBQztRQUMvQixZQUFPLEdBQVksSUFBSSxDQUFDO1FBTXhCLHVCQUF1QjtRQUN2QixnQkFB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YXIvY29yZSc7XG5pbXBvcnQgeyBJbWdNYW5hZ2VyQ29uZmlnRHRvLCAgQ2FudmFTZXJ2aWNlLCBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZywgSW1nTWFuYWdlclNlcnZpY2UgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWNoZVByb2R1Y3RTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9maWNoZV9wcm9kdWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhDcmVkZW50aWFscywgQXV0aENyZWRlbnRpYWxzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXV0aC1jcmVkZW50aWFscy5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuaW1wb3J0IHsgV2ViZWxlbWVudEltYWdlTWFuYWdlckFwaVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3dlYmVsZW1lbnQtaW1hZ2UtbWFuYWdlci1hcGkuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1nLW1hbmFnZXItd2ViZWxlbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWctbWFuYWdlci13ZWJlbGVtZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1nLW1hbmFnZXItd2ViZWxlbWVudC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBJbWdTZWxlY3Rpb25TZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW1nTWFuYWdlcldlYkVsZW1lbnRDb21wb25lbnQge1xuICAvLyBzaG9wIGNvbmZpZ1xuICBpZF9zaG9wOiBudW1iZXI7XG4gIHRva2VuX3Nob3A6IHN0cmluZztcblxuICAvLyBpbWcgbWFuZ2VyIGNvbmZpZ1xuICBvcGVuSW1nTWFuYWdlcjpib29sZWFuID0gZmFsc2U7XG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBpbWdFeHRlcm5hbENvbmZpZzogSW1nTWFuYWdlckNvbmZpZ0R0bztcbiAgaW1nTWFuYWdlckRpc3BsYXlDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnO1xuICBwYWdlRmljaGVQcm9kdWN0Q29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZztcbiAgcGFnZUV2ZW50Q29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZztcblxuICAvLyBmaWNoZSBwcm9kdWN0IGNvbmZpZ1xuICBpc1Bob3Rvc1RhYjogYm9vbGVhbiA9ICEhZW52aXJvbm1lbnQuaXNQaG90b3NUYWI7XG5cbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYW52YVNlcnZpY2U6IENhbnZhU2VydmljZSxcbiAgICBwcml2YXRlIGZpY2hlUHJvZHVjdFNlcnZpY2U6IEZpY2hlUHJvZHVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoQ3JlZGVudGlhbHNTZXJ2aWNlOiBBdXRoQ3JlZGVudGlhbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdNYW5hZ2VyU2VydmljZTogSW1nTWFuYWdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdTZWxlY3Rpb25TZXJ2aWNlOiBJbWdTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgd2ViZWxlbWVudEltYWdlTWFuYWdlckFwaVNlcnZpY2U6IFdlYmVsZW1lbnRJbWFnZU1hbmFnZXJBcGlTZXJ2aWNlLFxuICApe31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZyA9IHRoaXMuaW1nTWFuYWdlclNlcnZpY2UuZ2V0SW1nTWFuYWdlckRpc3BsYXlDb25maWcoXCJmaWNoZS1wcm9kdWN0XCIpO1xuICAgIHRoaXMucGFnZUV2ZW50Q29uZmlnID0gdGhpcy5pbWdNYW5hZ2VyU2VydmljZS5nZXRJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyhcIndpemktYmxvY2tcIik7XG4gICAgdGhpcy5zZXRDdXJyZW50TGFuZ3VhZ2UoKTtcbiAgICAvLyBTZWFyY2ggb24gd2hpY2ggcGFnZSBpcyBkaXNwbGF5IHRoZSBpbWcgbWFuZ2VyXG4gICAgdGhpcy5zZXREaXNwbGF5ZWRQYWdlQ29uZmlnKCk7XG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmluaXRWYXJpYWJsZXModGhpcy5hdXRoQ3JlZGVudGlhbHNTZXJ2aWNlLmdldFN5bmMoKSk7XG4gICAgLy8gRmljaGUgcHJvZHVjdCBwYWdlXG4gICAgaWYgKHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcucGFnZWZpY2hlUHJvZHVjdCkge1xuICAgICAgdGhpcy5zZXRGaWNoZVByb2R1Y3RQYWdlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0UGFnZVdpdGhFdmVudHMoKTtcbiAgICB9XG4gIH1cblxuICBpbml0VmFyaWFibGVzKGF1dGhDcmVkZW50aWFsczogQXV0aENyZWRlbnRpYWxzIHwgbnVsbCkge1xuICAgIGlmICghYXV0aENyZWRlbnRpYWxzKSB7XG5cbiAgICAgIGlmIChlbnZpcm9ubWVudC5pc1dpemlzaG9wY29tKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIFJ1biBvbiBsb2NhbCBTZXJ2ZXJcbiAgICAgIHRoaXMuc2V0QXBwVmFycyhlbnZpcm9ubWVudC5sb2NhbC5zaG9wSWQsIGVudmlyb25tZW50LmxvY2FsLnRva2VuKTtcbiAgICAgIHRoaXMuaW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRBcHBWYXJzKGF1dGhDcmVkZW50aWFscy5zaG9wX2lkLCBhdXRoQ3JlZGVudGlhbHMudG9rZW4pO1xuICB9XG5cbiAgc2V0RmljaGVQcm9kdWN0UGFnZSgpIHtcbiAgICB0aGlzLmZpY2hlUHJvZHVjdFNlcnZpY2Uuc2V0QXBpQ29uZmlnKCk7XG4gICAgdGhpcy5oYW5kbGVGaWNoZVByb2R1Y3RUYWIoKTsgLy8gRGlzcGxheSBkaWZmZXJlbnQgaW1nIG1hbmFnZXIgY29uZmlnIGFjY29yZGluZyB0byB0aGUgdGFiXG4gICAgdGhpcy5jbG9zZUltZ01hbmFnZXJPblN3aXRjaGluZ1RhYigpO1xuICAgIHRoaXMuc3Vic2NyaWJlUGFnZUFza0ZvckltZygpOyAvLyBVc2UgZm9yIGltYWdlcyBpbiB2YXJpYXRpb25zIHRhYlxuICAgIHRoaXMuZmljaGVQcm9kdWN0U2VydmljZS51cGRhdGVJbWdTZWxlY3Rpb25PbkNoYW5nZSgpO1xuICB9XG5cbiAgc2V0UGFnZVdpdGhFdmVudHMoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmVQYWdlQXNrRm9ySW1nKCk7XG5cbiAgICAvLyBTZW5kIGltZyBzZWxlY3RlZFxuICAgIGNvbnN0IHN1YkltZ1NlbGVjdGlvbiA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3Rpb24kLnN1YnNjcmliZShpbWdTZWxlY3Rpb25MaXN0ID0+IHtcbiAgICAgIGlmIChpbWdTZWxlY3Rpb25MaXN0ICYmIGltZ1NlbGVjdGlvbkxpc3QubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNlbmRJbWdTZWxlY3RlZFRvUGFnZShpbWdTZWxlY3Rpb25MaXN0WzBdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJJbWdTZWxlY3Rpb24pO1xuICB9XG5cbiAgc3Vic2NyaWJlUGFnZUFza0ZvckltZygpIHtcbiAgICAvLyBMaXN0ZW4gdG8gcGFnZSBlZGl0b3IgYXNrIGZvciBpbWcgZXZlbnRcbiAgICBjb25zdCBzdWJBc2tGb3JJbWcgPSB0aGlzLmV2ZW50U2VydmljZS5wYWdlQXNrRm9ySW1nKCkuc3Vic2NyaWJlKCBkYXRhID0+IHtcbiAgICAgIC8vIFJldHJpZXZlIHdoaWNoIGltZyBtYW5hZ2VyIHNlbmQgdGhlIGV2ZW50XG4gICAgICBjb25zdCBlbWl0dGVyID0gZGF0YSAmJiBkYXRhW1wiZGV0YWlsXCJdID8gZGF0YVtcImRldGFpbFwiXVtcImZyb21cIl0gOiBudWxsO1xuICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2V0RW1pdHRlcihlbWl0dGVyKTtcblxuICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnNldEltZ1NlbGVjdGlvbihbXSk7XG5cbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YkFza0ZvckltZyk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMub3BlbkltZ01hbmFnZXIgPSB0cnVlO1xuICB9XG5cbiAgb25JbWdNYW5hZ2VyQ2xvc2VkKCkge1xuICAgIC8vIENsb3NlIGltZyBtYW5hZ2VyXG4gICAgdGhpcy5vcGVuSW1nTWFuYWdlciA9IGZhbHNlO1xuICB9XG5cbiAgc2V0Q3VycmVudExhbmd1YWdlKCkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goIC9eXFwvKFxcdyspXFwvLyk7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShtYXRjaGVzICYmIG1hdGNoZXNbMV0gPyBtYXRjaGVzWzFdIDogJ2ZyJyk7XG4gIH1cblxuICBzZXREaXNwbGF5ZWRQYWdlQ29uZmlnKCkge1xuICAgIGNvbnN0IGlzRmljaGVQcm9kdWN0UGFnZSA9IC9cXC9wcm9kdWN0c1xcLyhcXGQrXFwvZWRpdHxjcmVhdGUpLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgdGhpcy5pbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IGlzRmljaGVQcm9kdWN0UGFnZSA/IHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZyA6IHRoaXMucGFnZUV2ZW50Q29uZmlnO1xuICB9XG5cbiAgaGFuZGxlRmljaGVQcm9kdWN0VGFiKCkge1xuICAgIGNvbnN0IHRhYnNTdWIgPVxuICAgICAgdGhpcy5maWNoZVByb2R1Y3RTZXJ2aWNlLmhhbmRsZVRhYnMoKS5zdWJzY3JpYmUoaXNQaG90b3NUYWIgPT4ge1xuICAgICAgICB0aGlzLmltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0gaXNQaG90b3NUYWIgPyB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWcgOiB0aGlzLnBhZ2VFdmVudENvbmZpZztcbiAgICAgICAgdGhpcy5pc1Bob3Rvc1RhYiA9IGlzUGhvdG9zVGFiO1xuICAgICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGFic1N1Yik7XG4gIH1cblxuICBjbG9zZUltZ01hbmFnZXJPblN3aXRjaGluZ1RhYigpIHtcbiAgICBjb25zdCB0YWJzQ2xvc2VTdWIgPVxuICAgICAgdGhpcy5maWNoZVByb2R1Y3RTZXJ2aWNlLnN3aXRjaFRhYnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMub3BlbkltZ01hbmFnZXIgPSBmYWxzZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGFic0Nsb3NlU3ViKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QXBwVmFycyhzaG9wSWQ6IG51bWJlciwgdG9rZW46IHN0cmluZykge1xuICAgIHRoaXMud2ViZWxlbWVudEltYWdlTWFuYWdlckFwaVNlcnZpY2Uuc2hvcFRva2VuID0gdG9rZW47XG4gICAgdGhpcy53ZWJlbGVtZW50SW1hZ2VNYW5hZ2VyQXBpU2VydmljZS5zaG9wSWQgPSBzaG9wSWQ7XG4gICAgaWYgKHNob3BJZCkge1xuICAgICAgdGhpcy53ZWJlbGVtZW50SW1hZ2VNYW5hZ2VyQXBpU2VydmljZS5zZXRTaG9wQ2F0ZWdvcnkoc2hvcElkKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5mby1idWxsZVwiPlxuICA8cCBjbGFzcz1cImluZm8tYnVsbGUtY29udGVudFwiIFtpbm5lckhUTUxdPVwiJ0ltZ01hbmFnZXIud2ViRWxlbWVudC5pbmZvQnVsbGUnIHwgdHJhbnNsYXRlXCI+PC9wPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5wYWdlZmljaGVQcm9kdWN0ICYmIGlzUGhvdG9zVGFiXCI+XG4gICAgPGgzIGNsYXNzPVwid2l6aWNzcy1zb3VzLXRpdHJlXCI+e3snSW1nTWFuYWdlci53ZWJFbGVtZW50LnBob3Rvc1RpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZyAmJiBpZF9zaG9wICYmIGltZ01hbmFnZXJEaXNwbGF5Q29uZmlnXCI+XG5cbiAgICA8cCBjbGFzcz1cImltZy1tYW5hZ2VyLW9wZW5cIiAqbmdJZj1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLmRpc3BsYXlCdG4gJiYgaXNQaG90b3NUYWJcIj5cbiAgICAgIDxhIChjbGljayk9XCJvcGVuKClcIj57eydJbWdNYW5hZ2VyLndlYkVsZW1lbnQuT3BlbkJ0bicgfCB0cmFuc2xhdGUgfX08L2E+XG4gICAgPC9wPlxuXG4gICAgPGRpdiBjbGFzcz1cImltZ01hbmFnZXJCb3hcIj5cbiAgICAgIDx3ei1pbWctbWFuYWdlclxuICAgICAgICAjd3pJbWdNYW5hZ2VyXG4gICAgICAgIFtzdGF0ZURpc3BsYXllZF09XCJpbWdNYW5hZ2VyRGlzcGxheUNvbmZpZy5zdGF0ZURpc3BsYXllZFwiXG4gICAgICAgIFttdWx0aXBsZUltZ01vZGVdPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcubXVsdGlwbGVJbWdNb2RlXCJcbiAgICAgICAgW3Nob3dJbWdNYW5hZ2VyTW9kdWxlXT1cImltZ01hbmFnZXJEaXNwbGF5Q29uZmlnLnNob3dJbWdNYW5hZ2VyTW9kdWxlICYmIG9wZW5JbWdNYW5hZ2VyXCJcbiAgICAgICAgW3Nob3dTZWxlY3Rpb25dPVwiaW1nTWFuYWdlckRpc3BsYXlDb25maWcuc2hvd1NlbGVjdGlvblwiXG4gICAgICAgIChpbWdNYW5hZ2VyQ2xvc2VkKT1cIm9uSW1nTWFuYWdlckNsb3NlZCgpXCI+XG4gICAgICA8L3d6LWltZy1tYW5hZ2VyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
|
|
@@ -7,13 +7,17 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
import * as i1 from "@angular/common/http";
|
|
8
8
|
import * as i2 from "@wizishop/img-manager";
|
|
9
9
|
import * as i3 from "./event.service";
|
|
10
|
+
import * as i4 from "./auth-credentials.service";
|
|
10
11
|
export class FicheProductService {
|
|
11
|
-
constructor(http, imgSelectionService, eventService, canvaService) {
|
|
12
|
+
constructor(http, imgSelectionService, eventService, canvaService, authCredentialsService) {
|
|
12
13
|
this.http = http;
|
|
13
14
|
this.imgSelectionService = imgSelectionService;
|
|
14
15
|
this.eventService = eventService;
|
|
15
16
|
this.canvaService = canvaService;
|
|
17
|
+
this.authCredentialsService = authCredentialsService;
|
|
16
18
|
this.image_manager_api = environment.wizi_api + "/image-manager/shops/";
|
|
19
|
+
this.shopToken = this.authCredentialsService.getSync().token;
|
|
20
|
+
this.shopId = this.authCredentialsService.getSync().shop_id;
|
|
17
21
|
this.isPhotosTab = false; // State of the Photos tabs in fiche product page
|
|
18
22
|
this.isPreviousTabPhotos = false;
|
|
19
23
|
this.isVariantsTab = false;
|
|
@@ -26,9 +30,7 @@ export class FicheProductService {
|
|
|
26
30
|
};
|
|
27
31
|
this.subscriptions = [];
|
|
28
32
|
}
|
|
29
|
-
setApiConfig(
|
|
30
|
-
this.shopToken = shop_token;
|
|
31
|
-
this.shopId = shop_id;
|
|
33
|
+
setApiConfig() {
|
|
32
34
|
const matches = window.location.pathname.match(/\/(\w+)\/products\/(\d+)\/edit/);
|
|
33
35
|
const lang = matches && matches[1] ? matches[1] : 'fr';
|
|
34
36
|
this.productSheetApiRoute = environment.wizi_admin_api + lang + environment.product_sheet_endpoint;
|
|
@@ -229,9 +231,9 @@ export class FicheProductService {
|
|
|
229
231
|
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
230
232
|
}
|
|
231
233
|
}
|
|
232
|
-
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 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
234
|
+
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 });
|
|
233
235
|
FicheProductService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService });
|
|
234
236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, decorators: [{
|
|
235
237
|
type: Injectable
|
|
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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QW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDYW52YVNlcnZpY2UsIEltZ1BpY3R1cmVEVE8sIEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemlCbG9ja01lZGlhRHRvIH0gZnJvbSAnQHdpemlzaG9wL2ltZy1tYW5hZ2VyL2xpYi9kdG8vd2l6aS1ibG9jay1tZWRpYS5kdG8nO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuXG5kZWNsYXJlIGNvbnN0IFdpemk6IGFueTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZpY2hlUHJvZHVjdFNlcnZpY2Uge1xuXG4gIHByb2R1Y3RTaGVldEFwaVJvdXRlOiBzdHJpbmc7XG4gIGltYWdlX21hbmFnZXJfYXBpOiBzdHJpbmcgPSBlbnZpcm9ubWVudC53aXppX2FwaSArIFwiL2ltYWdlLW1hbmFnZXIvc2hvcHMvXCI7XG4gIHNob3BUb2tlbjogc3RyaW5nO1xuICBzaG9wSWQ6IG51bWJlcjtcbiAgcHJvZHVjdElkOiBzdHJpbmc7XG4gIGlzUGhvdG9zVGFiOiBib29sZWFuID0gZmFsc2U7IC8vIFN0YXRlIG9mIHRoZSBQaG90b3MgdGFicyBpbiBmaWNoZSBwcm9kdWN0IHBhZ2VcbiAgaXNQcmV2aW91c1RhYlBob3RvczogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1ZhcmlhbnRzVGFiOiBib29sZWFuID0gZmFsc2U7XG4gIGxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uOmJvb2xlYW4gPSBmYWxzZTtcbiAgY3VycmVudFByb2R1Y3RJbWdTZWxlY3Rpb246IEltZ1BpY3R1cmVEVE9bXTtcbiAgaXNQcm9kdWN0Q3JlYXRpb246IGJvb2xlYW47XG4gIGV4cGVjdGVkTWVkaWFEdG86V2l6aUJsb2NrTWVkaWFEdG8gPSB7XG4gICAgaWQ6ICcnLFxuICAgIGltYWdlX3VybDogJycsXG4gICAgaW1hZ2Vfd2lkdGg6ICc5MDAnLFxuICAgIGltYWdlX2hlaWdodDogJzkwMCcsXG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgaW1nU2VsZWN0aW9uU2VydmljZTogSW1nU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FudmFTZXJ2aWNlOiBDYW52YVNlcnZpY2UsXG4gICAgKSB7IH1cblxuICBzZXRBcGlDb25maWcoc2hvcF9pZDogbnVtYmVyLCBzaG9wX3Rva2VuOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3BUb2tlbiA9IHNob3BfdG9rZW47XG4gICAgdGhpcy5zaG9wSWQgPSBzaG9wX2lkO1xuXG4gICAgY29uc3QgbWF0Y2hlcyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5tYXRjaCggL1xcLyhcXHcrKVxcL3Byb2R1Y3RzXFwvKFxcZCspXFwvZWRpdC8pO1xuICAgIGNvbnN0IGxhbmcgPSBtYXRjaGVzICYmIG1hdGNoZXNbMV0gPyBtYXRjaGVzWzFdIDogJ2ZyJztcbiAgICB0aGlzLnByb2R1Y3RTaGVldEFwaVJvdXRlID0gZW52aXJvbm1lbnQud2l6aV9hZG1pbl9hcGkgKyBsYW5nICsgZW52aXJvbm1lbnQucHJvZHVjdF9zaGVldF9lbmRwb2ludDtcbiAgICB0aGlzLnByb2R1Y3RJZCA9IG1hdGNoZXMgJiYgbWF0Y2hlc1syXSA/IG1hdGNoZXNbMl0gOiBcIjBcIjtcbiAgICB0aGlzLmlzUHJvZHVjdENyZWF0aW9uID0gL1xcL3Byb2R1Y3RzXFwvY3JlYXRlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlcmUgaXMgb25seSBvbmUgaW5zdGFuY2Ugb2YgdGhpcyBpbWcgbWFuYWdlci5cbiAgICogQnV0IGl0IGlzIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBjb25maWcsIGJ5IFBob3RvcyB0YWIgYW5kIFZhcmlhdGlvbiB0YWIsIG9uIGZpY2hlIHByb2R1Y3QgcGFnZS5cbiAgICogVGhlIG1ldGhvZCBoYW5kbGUgdGhlIHN3aXRjaCBjb25maWcgYmV0d2VlbiBQaG90b3MgYW5kIFZhcmlhdGlvbiB0YWIuXG4gICAqIFJldHVybiBhbiBvYnNlcnZhYmxlIDogdHJ1ZSA9PiBQaG90b3MgdGFiIC8gZmFsc2UgPT4gVmFyaWF0aW9uIHRhYi5cbiAgICogICovXG4gIGhhbmRsZVRhYnMoKTpPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuXG4gICAgICBjb25zdCBzd2l0Y2hUYWJzU3ViID1cbiAgICAgICAgdGhpcy5zd2l0Y2hUYWJzKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuXG4gICAgICAgICAgICBpZiAoIWRhdGEgfHwgIWRhdGFbXCJkZXRhaWxcIl0gfHwgIWRhdGFbXCJkZXRhaWxcIl1bXCJjdXJyZW50VGFiXCJdKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFJldHJpZXZlIGN1cnJlbnQgdGFiXG4gICAgICAgICAgY29uc3QgY3VycmVudFRhYiA9IGRhdGFbXCJkZXRhaWxcIl1bXCJjdXJyZW50VGFiXCJdO1xuICAgICAgICAgIHRoaXMuaXNQcmV2aW91c1RhYlBob3RvcyA9IHRoaXMuaXNQaG90b3NUYWI7XG4gICAgICAgICAgdGhpcy5pc1Bob3Rvc1RhYiA9IGN1cnJlbnRUYWIgPT09ICdwaG90b3MnO1xuICAgICAgICAgIHRoaXMuaXNWYXJpYW50c1RhYiA9IGN1cnJlbnRUYWIgPT09ICd2YXJpYXRpb24nO1xuXG4gICAgICAgICAgLy8gVGhlIHVzZXIgc3dpdGNoIHRvIFBob3RvcyB0YWJcbiAgICAgICAgICBpZiAodGhpcy5pc1Bob3Rvc1RhYikge1xuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudFByb2R1Y3RJbWdTZWxlY3Rpb24gfHwgIXRoaXMuY3VycmVudFByb2R1Y3RJbWdTZWxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW5pdFByb2R1Y3RJbWdTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuYXBwbHlDdXJyZW50SW1nU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICAgIHRoaXMubG9hZFByb2R1Y3RJbWdTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1ByZXZpb3VzVGFiUGhvdG9zKSB7IC8vIFRoZSB1c2VyIHN3aXRjaCB0byBhbm90aGVyIHRhYlxuICAgICAgICAgICAgLy8gU2F2ZSBjdXJyZW50IGltZyBzZWxlY3Rpb24sIGluIG9yZGVyIHRvIG5vdCBsb3NlIHRoZSBpbWcgc2VsZWN0aW9uXG4gICAgICAgICAgICB0aGlzLnNhdmVDdXJyZW50SW1nU2VsZWN0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9ic2VydmVyLm5leHQodGhpcy5pc1Bob3Rvc1RhYik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzd2l0Y2hUYWJzU3ViKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFNob3BJbWcoaWRGaWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuaW1hZ2VfbWFuYWdlcl9hcGl9JHt0aGlzLnNob3BJZH0vaW1hZ2VzLyR7aWRGaWxlfWAsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnNXaXRoQmVhcmVyKCkpO1xuICB9XG5cbiAgaW5pdFByb2R1Y3RJbWdTZWxlY3Rpb24oKSB7XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBsb2FkZXIgaW4gaW1nIGxpc3Qgc2VsZWN0aW9uXG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmltZ1NlbGVjdGVkTGlzdExvYWRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICAvLyByZXRyaWV2ZSBpbWcgc2VsZWN0aW9uXG4gICAgY29uc3QgcmV0cmlldmVJbWdTZWxlY3Rpb25TdWIgPVxuICAgICAgdGhpcy5yZXRyaWV2ZUltZ1NlbGVjdGlvbigpLnN1YnNjcmliZShkYXRhID0+IHtcblxuICAgICAgICAvLyBObyBpbWdhZ2Ugc2VsZWN0ZWRcbiAgICAgICAgaWYgKCFkYXRhIHx8ICFkYXRhW1wicGhvdG9zXCJdIHx8ICFkYXRhW1wicGhvdG9zXCJdW1wiaW5mb3NcIl0gfHwgIWRhdGFbXCJwaG90b3NcIl1bXCJpbmZvc1wiXVtcImZpbGVzXCJdIHx8ICFkYXRhW1wicGhvdG9zXCJdW1wiaW5mb3NcIl1bXCJmaWxlc1wiXS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0ZWRMaXN0TG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaWRJbWdTZWxlY3Rpb25MaXN0OiBudW1iZXJbXSA9IGRhdGFbXCJwaG90b3NcIl1bXCJpbmZvc1wiXVtcImZpbGVzXCJdO1xuICAgICAgICBjb25zdCBvYnNJbWc6IE9ic2VydmFibGU8YW55PltdID0gW107XG5cbiAgICAgICAgaWRJbWdTZWxlY3Rpb25MaXN0LmZvckVhY2goaWRGaWxlID0+XG4gICAgICAgICAgb2JzSW1nLnB1c2goXG4gICAgICAgICAgICB0aGlzLmdldFNob3BJbWcoaWRGaWxlLnRvU3RyaW5nKCkpLnBpcGUodGFrZSgxKSlcbiAgICAgICAgKSk7XG4gICAgICAgIGNvbnN0IGFsbEltZ1N1YiA9XG4gICAgICAgICAgZm9ya0pvaW4ob2JzSW1nKS5zdWJzY3JpYmUoKHBob3RvczogSW1nUGljdHVyZURUT1tdKSA9PiB7XG4gICAgICAgICAgICAvLyBUaGUgaW1nIHNlbGVjdGlvbiBtdXN0IGJlIHNhdmVkLCBvdGhlcndpc2UgaXQgaXMgbG9zdCB3aGVuIHRoZSB1c2VyIHN3aXRjaCBvbiB2YXJpYXRpb24gdGFiXG4gICAgICAgICAgICB0aGlzLnNhdmVDdXJyZW50SW1nU2VsZWN0aW9uKHBob3Rvcyk7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Q3VycmVudEltZ1NlbGVjdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgLy8gSGlkZSB0aGUgbG9hZGVyIGluIGltZyBsaXN0IHNlbGVjdGlvblxuICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IGZhbHNlO1xuXG4gICAgICAgICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0ZWRMaXN0TG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGFsbEltZ1N1Yik7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHJldHJpZXZlSW1nU2VsZWN0aW9uU3ViKTtcbiAgICB0aGlzLmNhbnZhU2VydmljZS5leHBlY3RlZEltZ1NpemVzQ2hhbmdlKHRoaXMuZXhwZWN0ZWRNZWRpYUR0byk7XG4gIH1cblxuICByZXRyaWV2ZUluZm9TZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3J1YicsIFwibWFpblwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIFwiZ2V0SW5mb3NcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kSWQnLCB0aGlzLnByb2R1Y3RJZCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfdG9rZW4nLCAnJyk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfc2hpZCcsIHRoaXMuc2hvcElkLnRvU3RyaW5nKCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMucHJvZHVjdFNoZWV0QXBpUm91dGUsIGZvcm1EYXRhLCB0aGlzLmdldE9wdGlvbnNIZWFkZXJzKCkpO1xuICB9XG5cbiAgcmV0cmlldmVJbWdTZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3J1YicsIFwibWFpblwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIFwiZ2V0QWxsSW5mb3NcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kSWQnLCB0aGlzLnByb2R1Y3RJZCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfdG9rZW4nLCAnJyk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfc2hpZCcsIHRoaXMuc2hvcElkLnRvU3RyaW5nKCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5wcm9kdWN0U2hlZXRBcGlSb3V0ZSwgZm9ybURhdGEsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICB1cGRhdGVJbWdTZWxlY3Rpb25PbkNoYW5nZSgpIHtcbiAgICAvLyBsaXN0ZW4gdG8gdGhlIGltZyBtYW5hZ2VyIGNoYW5nZVxuICAgIGNvbnN0IGltZ1NlbGVjdGlvblN1YiA9XG4gICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0aW9uJC5zdWJzY3JpYmUoaW1nU2VsZWN0aW9uTGlzdCA9PiB7XG4gICAgICAgIGlmICghaW1nU2VsZWN0aW9uTGlzdCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlbmQgdGhlIGltZyBzZWxlY3Rpb25cbiAgICAgICAgaWYgKHRoaXMuaXNQaG90b3NUYWIgJiYgIXRoaXMubG9hZFByb2R1Y3RJbWdTZWxlY3Rpb24pIHtcbiAgICAgICAgICAvLyBSZXRyaWV2ZSBvbmx5IHRoZSBpbWcgaWRcbiAgICAgICAgICBjb25zdCBpZEltZ1NlbGVjdGVkTGlzdDogbnVtYmVyW10gPSBbXTtcbiAgICAgICAgICBpbWdTZWxlY3Rpb25MaXN0LmZvckVhY2goaW1nID0+IHtcbiAgICAgICAgICAgIGlkSW1nU2VsZWN0ZWRMaXN0LnB1c2gocGFyc2VJbnQoaW1nLmlkX2ZpbGUpKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMudXBkYXRlUHJvZHVjdEltZ1NlbGVjdGlvbihpZEltZ1NlbGVjdGVkTGlzdCk7XG5cbiAgICAgICAgLy8gT24gdmFyaWF0aW9uIHRhYiwgc2VuZCBldmVudCB3aXRoIGltZyBzZWxlY3RlZFxuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmlzUGhvdG9zVGFiICYmIGltZ1NlbGVjdGlvbkxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2VuZEltZ1NlbGVjdGVkVG9QYWdlKGltZ1NlbGVjdGlvbkxpc3RbMF0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChpbWdTZWxlY3Rpb25TdWIpO1xuICB9XG5cbiAgdXBkYXRlUHJvZHVjdEltZ1NlbGVjdGlvbihpZHNJbWdMaXN0OiBudW1iZXJbXSkge1xuICAgIGlmICgoIXRoaXMucHJvZHVjdElkIHx8IHRoaXMucHJvZHVjdElkID09PSBcIjBcIikgJiYgV2l6aS5fcHJvZHVpdC5nbG9iYWwuUFJPRF9JRCkge1xuICAgICAgdGhpcy5wcm9kdWN0SWQgPSBXaXppLl9wcm9kdWl0Lmdsb2JhbC5QUk9EX0lELnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgV2l6aS5fcHJvZHVpdC5fZGF0YVRtcFsncGhvdG9zJ10uaW5mb3MgPSB7fTtcbiAgICBXaXppLl9wcm9kdWl0Ll9kYXRhVG1wWydwaG90b3MnXS5pbmZvcy5maWxlcyA9IGlkc0ltZ0xpc3Q7XG4gICAgdGhpcy5lbWl0SW1nU2VsZWN0aW9uQ2hhbmdlKGlkc0ltZ0xpc3QpO1xuXG4gICAgaWYgKHRoaXMucHJvZHVjdElkICYmIHRoaXMucHJvZHVjdElkICE9PSBcIjBcIikge1xuICAgICAgY29uc3Qgc3VibWl0UHJvZDEgPVxuICAgICAgICB0aGlzLnN1Ym1pdFByb2R1Y3RJbWcoaWRzSW1nTGlzdCkuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJtaXRQcm9kMSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNyZWF0ZVByb2R1Y3RTdWIgPVxuICAgICAgdGhpcy5jcmVhdGVQcm9kdWN0KCkuc3Vic2NyaWJlKFxuICAgICAgICAocHJvZHVjdElkOm51bWJlcikgPT4ge1xuICAgICAgICAgIGlmICghcHJvZHVjdElkKSB7XG4gICAgICAgICAgICB0aHJvdyBcIk5vIHByb2R1Y3QgaWQgY3JlYXRlZC4gQ2FuIG5vdCBsaW5rIGltYWdlKHMpIHRvIHRoZSBuZXcgcHJvZHVjdC5cIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgV2l6aS5fcHJvZHVpdC5nbG9iYWwuUFJPRF9JRCA9IHByb2R1Y3RJZDtcblxuICAgICAgICAgIHRoaXMucHJvZHVjdElkID0gcHJvZHVjdElkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgdGhpcy5zdWJtaXRQcm9kdWN0SW1nKGlkc0ltZ0xpc3QpLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGNyZWF0ZVByb2R1Y3RTdWIpO1xuXG4gIH1cblxuICBzdWJtaXRQcm9kdWN0SW1nKGlkc0ltZ0xpc3Q6IG51bWJlcltdKSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGZpbGVzIDogaWRzSW1nTGlzdCxcbiAgICAgIGNvdWxzOiBbXVxuICAgIH07XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncnViJywgXCJwaG90b3NcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCBcInNhdmVcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCduZXdQcm9kJywgdGhpcy5pc1Byb2R1Y3RDcmVhdGlvbiA/IFwiMVwiIDogXCIwXCIpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncHJvZElkJywgdGhpcy5wcm9kdWN0SWQpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnX3Rva2VuJywgdGhpcy5zaG9wVG9rZW4pO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnX3NoaWQnLCB0aGlzLnNob3BJZC50b1N0cmluZygpKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2RhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5wcm9kdWN0U2hlZXRBcGlSb3V0ZSwgZm9ybURhdGEsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICBjcmVhdGVQcm9kdWN0KCkge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdydWInLCBcIm1haW5cIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCBcImNyZWF0ZVByb2RcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfdG9rZW4nLCAnJyk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfc2hpZCcsIHRoaXMuc2hvcElkLnRvU3RyaW5nKCkpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bWJlcj4odGhpcy5wcm9kdWN0U2hlZXRBcGlSb3V0ZSwgZm9ybURhdGEsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG5cbiAgfVxuXG4gIC8qIFVzZSB0byBrbm93IHdoZXJlIHRoZSBpbWcgbWFuYWdlciBpcyBkaXNwbGF5ZWQsIGFuZCB0byBjbG9zZSBpdCB3aGVuIHN3aXRjaGluZyB0YWIgKi9cbiAgc3dpdGNoVGFicygpIHtcbiAgICByZXR1cm4gZnJvbUV2ZW50PGFueT4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZ01hbmFnZXJNb2R1bGUnKSBhcyBhbnksIFwic3dpdGNoVGFiXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW1nU2VsZWN0aW9uQ2hhbmdlKGlkc0ltZ0xpc3Q6IG51bWJlcltdKSB7XG4gICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgaWRzSW1nTGlzdFxuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnb25JbWdTZWxlY3Rpb25DaGFuZ2UnLCB2YWx1ZSk7XG4gICAgY29uc3QgaW1nTWFuYWdlck1vZHVsZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZ01hbmFnZXJNb2R1bGUnKTtcbiAgICBpbWdNYW5hZ2VyTW9kdWxlPy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZUN1cnJlbnRJbWdTZWxlY3Rpb24oaW1nU2VsZWN0aW9uPzogSW1nUGljdHVyZURUT1tdKSB7XG4gICAgdGhpcy5jdXJyZW50UHJvZHVjdEltZ1NlbGVjdGlvbiA9IGltZ1NlbGVjdGlvbiA/IGltZ1NlbGVjdGlvbiA6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmdldEltZ1NlbGVjdGlvbigpKSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q3VycmVudEltZ1NlbGVjdGlvbigpIHtcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2Uuc2V0SW1nU2VsZWN0aW9uKHRoaXMuY3VycmVudFByb2R1Y3RJbWdTZWxlY3Rpb24pO1xuICAgIC8vIEhpZGUgdGhlIGxvYWRlciBpbiBpbWcgbGlzdCBzZWxlY3Rpb25cbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0ZWRMaXN0TG9hZGluZyQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGdldE9wdGlvbnNIZWFkZXJzKCkge1xuICAgIGNvbnN0IGhlYWRlciA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nOicqJ1xuICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiBoZWFkZXI7XG4gIH1cblxuICBwcml2YXRlIGdldE9wdGlvbnNIZWFkZXJzV2l0aEJlYXJlcigpIHtcbiAgICBjb25zdCBoZWFkZXIgPSB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLnNob3BUb2tlblxuICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiBoZWFkZXI7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59Il19
|
|
238
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ImgSelectionService }, { type: i3.EventService }, { type: i2.CanvaService }, { type: i4.AuthCredentialsService }]; } });
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmljaGVfcHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltZy1tYW5hZ2VyLXdlYmVsZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9maWNoZV9wcm9kdWN0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBTTFELE1BQU0sT0FBTyxtQkFBbUI7SUFzQjlCLFlBQ1UsSUFBZ0IsRUFDaEIsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzFCLFlBQTBCLEVBQzFCLHNCQUE4QztRQUo5QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQXhCeEQsc0JBQWlCLEdBQVcsV0FBVyxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQztRQUMzRSxjQUFTLEdBQVcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNoRSxXQUFNLEdBQVcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUUvRCxnQkFBVyxHQUFZLEtBQUssQ0FBQyxDQUFDLGlEQUFpRDtRQUMvRSx3QkFBbUIsR0FBWSxL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Q0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDOztnSEF4UlUsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDYW52YVNlcnZpY2UsIEltZ1BpY3R1cmVEVE8sIEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICdAd2l6aXNob3AvaW1nLW1hbmFnZXInO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemlCbG9ja01lZGlhRHRvIH0gZnJvbSAnQHdpemlzaG9wL2ltZy1tYW5hZ2VyL2xpYi9kdG8vd2l6aS1ibG9jay1tZWRpYS5kdG8nO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQXV0aENyZWRlbnRpYWxzU2VydmljZSB9IGZyb20gJy4vYXV0aC1jcmVkZW50aWFscy5zZXJ2aWNlJztcblxuZGVjbGFyZSBjb25zdCBXaXppOiBhbnk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGaWNoZVByb2R1Y3RTZXJ2aWNlIHtcblxuICBwcm9kdWN0U2hlZXRBcGlSb3V0ZTogc3RyaW5nO1xuICBpbWFnZV9tYW5hZ2VyX2FwaTogc3RyaW5nID0gZW52aXJvbm1lbnQud2l6aV9hcGkgKyBcIi9pbWFnZS1tYW5hZ2VyL3Nob3BzL1wiO1xuICBzaG9wVG9rZW46IHN0cmluZyA9IHRoaXMuYXV0aENyZWRlbnRpYWxzU2VydmljZS5nZXRTeW5jKCkudG9rZW47XG4gIHNob3BJZDogbnVtYmVyID0gdGhpcy5hdXRoQ3JlZGVudGlhbHNTZXJ2aWNlLmdldFN5bmMoKS5zaG9wX2lkO1xuICBwcm9kdWN0SWQ6IHN0cmluZztcbiAgaXNQaG90b3NUYWI6IGJvb2xlYW4gPSBmYWxzZTsgLy8gU3RhdGUgb2YgdGhlIFBob3RvcyB0YWJzIGluIGZpY2hlIHByb2R1Y3QgcGFnZVxuICBpc1ByZXZpb3VzVGFiUGhvdG9zOiBib29sZWFuID0gZmFsc2U7XG4gIGlzVmFyaWFudHNUYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbG9hZFByb2R1Y3RJbWdTZWxlY3Rpb246Ym9vbGVhbiA9IGZhbHNlO1xuICBjdXJyZW50UHJvZHVjdEltZ1NlbGVjdGlvbjogSW1nUGljdHVyZURUT1tdO1xuICBpc1Byb2R1Y3RDcmVhdGlvbjogYm9vbGVhbjtcbiAgZXhwZWN0ZWRNZWRpYUR0bzpXaXppQmxvY2tNZWRpYUR0byA9IHtcbiAgICBpZDogJycsXG4gICAgaW1hZ2VfdXJsOiAnJyxcbiAgICBpbWFnZV93aWR0aDogJzkwMCcsXG4gICAgaW1hZ2VfaGVpZ2h0OiAnOTAwJyxcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBpbWdTZWxlY3Rpb25TZXJ2aWNlOiBJbWdTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYW52YVNlcnZpY2U6IENhbnZhU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhDcmVkZW50aWFsc1NlcnZpY2U6IEF1dGhDcmVkZW50aWFsc1NlcnZpY2VcbiAgICApIHsgfVxuXG4gIHNldEFwaUNvbmZpZygpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLm1hdGNoKCAvXFwvKFxcdyspXFwvcHJvZHVjdHNcXC8oXFxkKylcXC9lZGl0Lyk7XG4gICAgY29uc3QgbGFuZyA9IG1hdGNoZXMgJiYgbWF0Y2hlc1sxXSA/IG1hdGNoZXNbMV0gOiAnZnInO1xuICAgIHRoaXMucHJvZHVjdFNoZWV0QXBpUm91dGUgPSBlbnZpcm9ubWVudC53aXppX2FkbWluX2FwaSArIGxhbmcgKyBlbnZpcm9ubWVudC5wcm9kdWN0X3NoZWV0X2VuZHBvaW50O1xuICAgIHRoaXMucHJvZHVjdElkID0gbWF0Y2hlcyAmJiBtYXRjaGVzWzJdID8gbWF0Y2hlc1syXSA6IFwiMFwiO1xuICAgIHRoaXMuaXNQcm9kdWN0Q3JlYXRpb24gPSAvXFwvcHJvZHVjdHNcXC9jcmVhdGUvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGVyZSBpcyBvbmx5IG9uZSBpbnN0YW5jZSBvZiB0aGlzIGltZyBtYW5hZ2VyLlxuICAgKiBCdXQgaXQgaXMgY2FsbGVkIHdpdGggZGlmZmVyZW50IGNvbmZpZywgYnkgUGhvdG9zIHRhYiBhbmQgVmFyaWF0aW9uIHRhYiwgb24gZmljaGUgcHJvZHVjdCBwYWdlLlxuICAgKiBUaGUgbWV0aG9kIGhhbmRsZSB0aGUgc3dpdGNoIGNvbmZpZyBiZXR3ZWVuIFBob3RvcyBhbmQgVmFyaWF0aW9uIHRhYi5cbiAgICogUmV0dXJuIGFuIG9ic2VydmFibGUgOiB0cnVlID0+IFBob3RvcyB0YWIgLyBmYWxzZSA9PiBWYXJpYXRpb24gdGFiLlxuICAgKiAgKi9cbiAgaGFuZGxlVGFicygpOk9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG5cbiAgICAgIGNvbnN0IHN3aXRjaFRhYnNTdWIgPVxuICAgICAgICB0aGlzLnN3aXRjaFRhYnMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG5cbiAgICAgICAgICAgIGlmICghZGF0YSB8fCAhZGF0YVtcImRldGFpbFwiXSB8fCAhZGF0YVtcImRldGFpbFwiXVtcImN1cnJlbnRUYWJcIl0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gUmV0cmlldmUgY3VycmVudCB0YWJcbiAgICAgICAgICBjb25zdCBjdXJyZW50VGFiID0gZGF0YVtcImRldGFpbFwiXVtcImN1cnJlbnRUYWJcIl07XG4gICAgICAgICAgdGhpcy5pc1ByZXZpb3VzVGFiUGhvdG9zID0gdGhpcy5pc1Bob3Rvc1RhYjtcbiAgICAgICAgICB0aGlzLmlzUGhvdG9zVGFiID0gY3VycmVudFRhYiA9PT0gJ3Bob3Rvcyc7XG4gICAgICAgICAgdGhpcy5pc1ZhcmlhbnRzVGFiID0gY3VycmVudFRhYiA9PT0gJ3ZhcmlhdGlvbic7XG5cbiAgICAgICAgICAvLyBUaGUgdXNlciBzd2l0Y2ggdG8gUGhvdG9zIHRhYlxuICAgICAgICAgIGlmICh0aGlzLmlzUGhvdG9zVGFiKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICghdGhpcy5jdXJyZW50UHJvZHVjdEltZ1NlbGVjdGlvbiB8fCAhdGhpcy5jdXJyZW50UHJvZHVjdEltZ1NlbGVjdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbml0UHJvZHVjdEltZ1NlbGVjdGlvbigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5hcHBseUN1cnJlbnRJbWdTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUHJldmlvdXNUYWJQaG90b3MpIHsgLy8gVGhlIHVzZXIgc3dpdGNoIHRvIGFub3RoZXIgdGFiXG4gICAgICAgICAgICAvLyBTYXZlIGN1cnJlbnQgaW1nIHNlbGVjdGlvbiwgaW4gb3JkZXIgdG8gbm90IGxvc2UgdGhlIGltZyBzZWxlY3Rpb25cbiAgICAgICAgICAgIHRoaXMuc2F2ZUN1cnJlbnRJbWdTZWxlY3Rpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLmlzUGhvdG9zVGFiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN3aXRjaFRhYnNTdWIpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0U2hvcEltZyhpZEZpbGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5pbWFnZV9tYW5hZ2VyX2FwaX0ke3RoaXMuc2hvcElkfS9pbWFnZXMvJHtpZEZpbGV9YCwgdGhpcy5nZXRPcHRpb25zSGVhZGVyc1dpdGhCZWFyZXIoKSk7XG4gIH1cblxuICBpbml0UHJvZHVjdEltZ1NlbGVjdGlvbigpIHtcblxuICAgIC8vIERpc3BsYXkgdGhlIGxvYWRlciBpbiBpbWcgbGlzdCBzZWxlY3Rpb25cbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0ZWRMaXN0TG9hZGluZyQubmV4dCh0cnVlKTtcblxuICAgIC8vIHJldHJpZXZlIGltZyBzZWxlY3Rpb25cbiAgICBjb25zdCByZXRyaWV2ZUltZ1NlbGVjdGlvblN1YiA9XG4gICAgICB0aGlzLnJldHJpZXZlSW1nU2VsZWN0aW9uKCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuXG4gICAgICAgIC8vIE5vIGltZ2FnZSBzZWxlY3RlZFxuICAgICAgICBpZiAoIWRhdGEgfHwgIWRhdGFbXCJwaG90b3NcIl0gfHwgIWRhdGFbXCJwaG90b3NcIl1bXCJpbmZvc1wiXSB8fCAhZGF0YVtcInBob3Rvc1wiXVtcImluZm9zXCJdW1wiZmlsZXNcIl0gfHwgIWRhdGFbXCJwaG90b3NcIl1bXCJpbmZvc1wiXVtcImZpbGVzXCJdLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMubG9hZFByb2R1Y3RJbWdTZWxlY3Rpb24gPSBmYWxzZTtcblxuICAgICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3RlZExpc3RMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpZEltZ1NlbGVjdGlvbkxpc3Q6IG51bWJlcltdID0gZGF0YVtcInBob3Rvc1wiXVtcImluZm9zXCJdW1wiZmlsZXNcIl07XG4gICAgICAgIGNvbnN0IG9ic0ltZzogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcblxuICAgICAgICBpZEltZ1NlbGVjdGlvbkxpc3QuZm9yRWFjaChpZEZpbGUgPT5cbiAgICAgICAgICBvYnNJbWcucHVzaChcbiAgICAgICAgICAgIHRoaXMuZ2V0U2hvcEltZyhpZEZpbGUudG9TdHJpbmcoKSkucGlwZSh0YWtlKDEpKVxuICAgICAgICApKTtcbiAgICAgICAgY29uc3QgYWxsSW1nU3ViID1cbiAgICAgICAgICBmb3JrSm9pbihvYnNJbWcpLnN1YnNjcmliZSgocGhvdG9zOiBJbWdQaWN0dXJlRFRPW10pID0+IHtcbiAgICAgICAgICAgIC8vIFRoZSBpbWcgc2VsZWN0aW9uIG11c3QgYmUgc2F2ZWQsIG90aGVyd2lzZSBpdCBpcyBsb3N0IHdoZW4gdGhlIHVzZXIgc3dpdGNoIG9uIHZhcmlhdGlvbiB0YWJcbiAgICAgICAgICAgIHRoaXMuc2F2ZUN1cnJlbnRJbWdTZWxlY3Rpb24ocGhvdG9zKTtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlDdXJyZW50SW1nU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAvLyBIaWRlIHRoZSBsb2FkZXIgaW4gaW1nIGxpc3Qgc2VsZWN0aW9uXG4gICAgICAgICAgICB0aGlzLmxvYWRQcm9kdWN0SW1nU2VsZWN0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3RlZExpc3RMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goYWxsSW1nU3ViKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gocmV0cmlldmVJbWdTZWxlY3Rpb25TdWIpO1xuICAgIHRoaXMuY2FudmFTZXJ2aWNlLmV4cGVjdGVkSW1nU2l6ZXNDaGFuZ2UodGhpcy5leHBlY3RlZE1lZGlhRHRvKTtcbiAgfVxuXG4gIHJldHJpZXZlSW5mb1NlbGVjdGlvbigpIHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncnViJywgXCJtYWluXCIpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnYWN0aW9uJywgXCJnZXRJbmZvc1wiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2RJZCcsIHRoaXMucHJvZHVjdElkKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ190b2tlbicsICcnKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ19zaGlkJywgdGhpcy5zaG9wSWQudG9TdHJpbmcoKSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5wcm9kdWN0U2hlZXRBcGlSb3V0ZSwgZm9ybURhdGEsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICByZXRyaWV2ZUltZ1NlbGVjdGlvbigpIHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgncnViJywgXCJtYWluXCIpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnYWN0aW9uJywgXCJnZXRBbGxJbmZvc1wiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2RJZCcsIHRoaXMucHJvZHVjdElkKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ190b2tlbicsICcnKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ19zaGlkJywgdGhpcy5zaG9wSWQudG9TdHJpbmcoKSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLnByb2R1Y3RTaGVldEFwaVJvdXRlLCBmb3JtRGF0YSwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcbiAgfVxuXG4gIHVwZGF0ZUltZ1NlbGVjdGlvbk9uQ2hhbmdlKCkge1xuICAgIC8vIGxpc3RlbiB0byB0aGUgaW1nIG1hbmFnZXIgY2hhbmdlXG4gICAgY29uc3QgaW1nU2VsZWN0aW9uU3ViID1cbiAgICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3Rpb24kLnN1YnNjcmliZShpbWdTZWxlY3Rpb25MaXN0ID0+IHtcbiAgICAgICAgaWYgKCFpbWdTZWxlY3Rpb25MaXN0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VuZCB0aGUgaW1nIHNlbGVjdGlvblxuICAgICAgICBpZiAodGhpcy5pc1Bob3Rvc1RhYiAmJiAhdGhpcy5sb2FkUHJvZHVjdEltZ1NlbGVjdGlvbikge1xuICAgICAgICAgIC8vIFJldHJpZXZlIG9ubHkgdGhlIGltZyBpZFxuICAgICAgICAgIGNvbnN0IGlkSW1nU2VsZWN0ZWRMaXN0OiBudW1iZXJbXSA9IFtdO1xuICAgICAgICAgIGltZ1NlbGVjdGlvbkxpc3QuZm9yRWFjaChpbWcgPT4ge1xuICAgICAgICAgICAgaWRJbWdTZWxlY3RlZExpc3QucHVzaChwYXJzZUludChpbWcuaWRfZmlsZSkpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVQcm9kdWN0SW1nU2VsZWN0aW9uKGlkSW1nU2VsZWN0ZWRMaXN0KTtcblxuICAgICAgICAvLyBPbiB2YXJpYXRpb24gdGFiLCBzZW5kIGV2ZW50IHdpdGggaW1nIHNlbGVjdGVkXG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNQaG90b3NUYWIgJiYgaW1nU2VsZWN0aW9uTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zZW5kSW1nU2VsZWN0ZWRUb1BhZ2UoaW1nU2VsZWN0aW9uTGlzdFswXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGltZ1NlbGVjdGlvblN1Yik7XG4gIH1cblxuICB1cGRhdGVQcm9kdWN0SW1nU2VsZWN0aW9uKGlkc0ltZ0xpc3Q6IG51bWJlcltdKSB7XG4gICAgaWYgKCghdGhpcy5wcm9kdWN0SWQgfHwgdGhpcy5wcm9kdWN0SWQgPT09IFwiMFwiKSAmJiBXaXppLl9wcm9kdWl0Lmdsb2JhbC5QUk9EX0lEKSB7XG4gICAgICB0aGlzLnByb2R1Y3RJZCA9IFdpemkuX3Byb2R1aXQuZ2xvYmFsLlBST0RfSUQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBXaXppLl9wcm9kdWl0Ll9kYXRhVG1wWydwaG90b3MnXS5pbmZvcyA9IHt9O1xuICAgIFdpemkuX3Byb2R1aXQuX2RhdGFUbXBbJ3Bob3RvcyddLmluZm9zLmZpbGVzID0gaWRzSW1nTGlzdDtcbiAgICB0aGlzLmVtaXRJbWdTZWxlY3Rpb25DaGFuZ2UoaWRzSW1nTGlzdCk7XG5cbiAgICBpZiAodGhpcy5wcm9kdWN0SWQgJiYgdGhpcy5wcm9kdWN0SWQgIT09IFwiMFwiKSB7XG4gICAgICBjb25zdCBzdWJtaXRQcm9kMSA9XG4gICAgICAgIHRoaXMuc3VibWl0UHJvZHVjdEltZyhpZHNJbWdMaXN0KS5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1Ym1pdFByb2QxKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3JlYXRlUHJvZHVjdFN1YiA9XG4gICAgICB0aGlzLmNyZWF0ZVByb2R1Y3QoKS5zdWJzY3JpYmUoXG4gICAgICAgIChwcm9kdWN0SWQ6bnVtYmVyKSA9PiB7XG4gICAgICAgICAgaWYgKCFwcm9kdWN0SWQpIHtcbiAgICAgICAgICAgIHRocm93IFwiTm8gcHJvZHVjdCBpZCBjcmVhdGVkLiBDYW4gbm90IGxpbmsgaW1hZ2UocykgdG8gdGhlIG5ldyBwcm9kdWN0LlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBXaXppLl9wcm9kdWl0Lmdsb2JhbC5QUk9EX0lEID0gcHJvZHVjdElkO1xuXG4gICAgICAgICAgdGhpcy5wcm9kdWN0SWQgPSBwcm9kdWN0SWQudG9TdHJpbmcoKTtcbiAgICAgICAgICB0aGlzLnN1Ym1pdFByb2R1Y3RJbWcoaWRzSW1nTGlzdCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goY3JlYXRlUHJvZHVjdFN1Yik7XG5cbiAgfVxuXG4gIHN1Ym1pdFByb2R1Y3RJbWcoaWRzSW1nTGlzdDogbnVtYmVyW10pIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgZmlsZXMgOiBpZHNJbWdMaXN0LFxuICAgICAgY291bHM6IFtdXG4gICAgfTtcblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdydWInLCBcInBob3Rvc1wiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIFwic2F2ZVwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ25ld1Byb2QnLCB0aGlzLmlzUHJvZHVjdENyZWF0aW9uID8gXCIxXCIgOiBcIjBcIik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kSWQnLCB0aGlzLnByb2R1Y3RJZCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfdG9rZW4nLCB0aGlzLnNob3BUb2tlbik7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdfc2hpZCcsIHRoaXMuc2hvcElkLnRvU3RyaW5nKCkpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZGF0YScsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnByb2R1Y3RTaGVldEFwaVJvdXRlLCBmb3JtRGF0YSwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcbiAgfVxuXG4gIGNyZWF0ZVByb2R1Y3QoKSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3J1YicsIFwibWFpblwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIFwiY3JlYXRlUHJvZFwiKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ190b2tlbicsICcnKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ19zaGlkJywgdGhpcy5zaG9wSWQudG9TdHJpbmcoKSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVtYmVyPih0aGlzLnByb2R1Y3RTaGVldEFwaVJvdXRlLCBmb3JtRGF0YSwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcblxuICB9XG5cbiAgLyogVXNlIHRvIGtub3cgd2hlcmUgdGhlIGltZyBtYW5hZ2VyIGlzIGRpc3BsYXllZCwgYW5kIHRvIGNsb3NlIGl0IHdoZW4gc3dpdGNoaW5nIHRhYiAqL1xuICBzd2l0Y2hUYWJzKCkge1xuICAgIHJldHVybiBmcm9tRXZlbnQ8YW55Pihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nTWFuYWdlck1vZHVsZScpIGFzIGFueSwgXCJzd2l0Y2hUYWJcIik7XG4gIH1cblxuICBwcml2YXRlIGVtaXRJbWdTZWxlY3Rpb25DaGFuZ2UoaWRzSW1nTGlzdDogbnVtYmVyW10pIHtcbiAgICBjb25zdCB2YWx1ZSA9IHtcbiAgICAgIGRldGFpbDoge1xuICAgICAgICBpZHNJbWdMaXN0XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdvbkltZ1NlbGVjdGlvbkNoYW5nZScsIHZhbHVlKTtcbiAgICBjb25zdCBpbWdNYW5hZ2VyTW9kdWxlPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nTWFuYWdlck1vZHVsZScpO1xuICAgIGltZ01hbmFnZXJNb2R1bGU/LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlQ3VycmVudEltZ1NlbGVjdGlvbihpbWdTZWxlY3Rpb24/OiBJbWdQaWN0dXJlRFRPW10pIHtcbiAgICB0aGlzLmN1cnJlbnRQcm9kdWN0SW1nU2VsZWN0aW9uID0gaW1nU2VsZWN0aW9uID8gaW1nU2VsZWN0aW9uIDogSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuZ2V0SW1nU2VsZWN0aW9uKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlDdXJyZW50SW1nU2VsZWN0aW9uKCkge1xuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5zZXRJbWdTZWxlY3Rpb24odGhpcy5jdXJyZW50UHJvZHVjdEltZ1NlbGVjdGlvbik7XG4gICAgLy8gSGlkZSB0aGUgbG9hZGVyIGluIGltZyBsaXN0IHNlbGVjdGlvblxuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3RlZExpc3RMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3B0aW9uc0hlYWRlcnMoKSB7XG4gICAgY29uc3QgaGVhZGVyID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbic6JyonXG4gICAgICB9KVxuICAgIH07XG4gICAgcmV0dXJuIGhlYWRlcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3B0aW9uc0hlYWRlcnNXaXRoQmVhcmVyKCkge1xuICAgIGNvbnN0IGhlYWRlciA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIHRoaXMuc2hvcFRva2VuXG4gICAgICB9KVxuICAgIH07XG4gICAgcmV0dXJuIGhlYWRlcjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gIH1cbn0iXX0=
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Component, inject, NgModule } from '@angular/core';
|
|
3
|
-
import { fromEvent, Observable, forkJoin, tap, from } from 'rxjs';
|
|
4
3
|
import * as i2 from '@wizishop/img-manager';
|
|
5
4
|
import { ImgSelectionService, WzImgManagerModule, ApiService } from '@wizishop/img-manager';
|
|
6
5
|
import * as i1$1 from '@ngx-translate/core';
|
|
7
6
|
import { TranslateModule } from '@ngx-translate/core';
|
|
8
7
|
import * as i1 from '@angular/common/http';
|
|
9
8
|
import { HttpHeaders, HttpClientModule } from '@angular/common/http';
|
|
9
|
+
import { fromEvent, Observable, forkJoin, tap } from 'rxjs';
|
|
10
10
|
import { take } from 'rxjs/operators';
|
|
11
11
|
import { StorageByKey } from '@wizishop/ng-web-storages/shared';
|
|
12
12
|
import * as i7 from '@angular/common';
|
|
@@ -142,13 +142,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
142
142
|
type: Injectable
|
|
143
143
|
}], ctorParameters: function () { return []; } });
|
|
144
144
|
|
|
145
|
+
class AuthCredentialsService extends StorageByKey {
|
|
146
|
+
}
|
|
147
|
+
AuthCredentialsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
148
|
+
AuthCredentialsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService });
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService, decorators: [{
|
|
150
|
+
type: Injectable
|
|
151
|
+
}] });
|
|
152
|
+
;
|
|
153
|
+
|
|
145
154
|
class FicheProductService {
|
|
146
|
-
constructor(http, imgSelectionService, eventService, canvaService) {
|
|
155
|
+
constructor(http, imgSelectionService, eventService, canvaService, authCredentialsService) {
|
|
147
156
|
this.http = http;
|
|
148
157
|
this.imgSelectionService = imgSelectionService;
|
|
149
158
|
this.eventService = eventService;
|
|
150
159
|
this.canvaService = canvaService;
|
|
160
|
+
this.authCredentialsService = authCredentialsService;
|
|
151
161
|
this.image_manager_api = environment.wizi_api + "/image-manager/shops/";
|
|
162
|
+
this.shopToken = this.authCredentialsService.getSync().token;
|
|
163
|
+
this.shopId = this.authCredentialsService.getSync().shop_id;
|
|
152
164
|
this.isPhotosTab = false; // State of the Photos tabs in fiche product page
|
|
153
165
|
this.isPreviousTabPhotos = false;
|
|
154
166
|
this.isVariantsTab = false;
|
|
@@ -161,9 +173,7 @@ class FicheProductService {
|
|
|
161
173
|
};
|
|
162
174
|
this.subscriptions = [];
|
|
163
175
|
}
|
|
164
|
-
setApiConfig(
|
|
165
|
-
this.shopToken = shop_token;
|
|
166
|
-
this.shopId = shop_id;
|
|
176
|
+
setApiConfig() {
|
|
167
177
|
const matches = window.location.pathname.match(/\/(\w+)\/products\/(\d+)\/edit/);
|
|
168
178
|
const lang = matches && matches[1] ? matches[1] : 'fr';
|
|
169
179
|
this.productSheetApiRoute = environment.wizi_admin_api + lang + environment.product_sheet_endpoint;
|
|
@@ -364,20 +374,11 @@ class FicheProductService {
|
|
|
364
374
|
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
365
375
|
}
|
|
366
376
|
}
|
|
367
|
-
FicheProductService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, deps: [{ token: i1.HttpClient }, { token: i2.ImgSelectionService }, { token: EventService }, { token: i2.CanvaService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
377
|
+
FicheProductService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, deps: [{ token: i1.HttpClient }, { token: i2.ImgSelectionService }, { token: EventService }, { token: i2.CanvaService }, { token: AuthCredentialsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
368
378
|
FicheProductService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService });
|
|
369
379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, decorators: [{
|
|
370
380
|
type: Injectable
|
|
371
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ImgSelectionService }, { type: EventService }, { type: i2.CanvaService }]; } });
|
|
372
|
-
|
|
373
|
-
class AuthCredentialsService extends StorageByKey {
|
|
374
|
-
}
|
|
375
|
-
AuthCredentialsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
376
|
-
AuthCredentialsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService });
|
|
377
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService, decorators: [{
|
|
378
|
-
type: Injectable
|
|
379
|
-
}] });
|
|
380
|
-
;
|
|
381
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ImgSelectionService }, { type: EventService }, { type: i2.CanvaService }, { type: AuthCredentialsService }]; } });
|
|
381
382
|
|
|
382
383
|
class WebelementImageManagerApiService {
|
|
383
384
|
constructor(http) {
|
|
@@ -482,18 +483,15 @@ class ImgManagerWebElementComponent {
|
|
|
482
483
|
this.setCurrentLanguage();
|
|
483
484
|
// Search on which page is display the img manger
|
|
484
485
|
this.setDisplayedPageConfig();
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
}
|
|
495
|
-
});
|
|
496
|
-
this.subscriptions.push(subCredentials);
|
|
486
|
+
this.loading = false;
|
|
487
|
+
this.initVariables(this.authCredentialsService.getSync());
|
|
488
|
+
// Fiche product page
|
|
489
|
+
if (this.imgManagerDisplayConfig.pageficheProduct) {
|
|
490
|
+
this.setFicheProductPage();
|
|
491
|
+
}
|
|
492
|
+
else {
|
|
493
|
+
this.setPageWithEvents();
|
|
494
|
+
}
|
|
497
495
|
}
|
|
498
496
|
initVariables(authCredentials) {
|
|
499
497
|
if (!authCredentials) {
|
|
@@ -508,7 +506,7 @@ class ImgManagerWebElementComponent {
|
|
|
508
506
|
this.setAppVars(authCredentials.shop_id, authCredentials.token);
|
|
509
507
|
}
|
|
510
508
|
setFicheProductPage() {
|
|
511
|
-
this.ficheProductService.setApiConfig(
|
|
509
|
+
this.ficheProductService.setApiConfig();
|
|
512
510
|
this.handleFicheProductTab(); // Display different img manager config according to the tab
|
|
513
511
|
this.closeImgManagerOnSwitchingTab();
|
|
514
512
|
this.subscribePageAskForImg(); // Use for images in variations tab
|
|
@@ -563,9 +561,6 @@ class ImgManagerWebElementComponent {
|
|
|
563
561
|
});
|
|
564
562
|
this.subscriptions.push(tabsCloseSub);
|
|
565
563
|
}
|
|
566
|
-
getCredentials() {
|
|
567
|
-
return from(this.authCredentialsService.get());
|
|
568
|
-
}
|
|
569
564
|
setAppVars(shopId, token) {
|
|
570
565
|
this.webelementImageManagerApiService.shopToken = token;
|
|
571
566
|
this.webelementImageManagerApiService.shopId = shopId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizishop-img-manager-webelement.mjs","sources":["../../../../projects/img-manager-webelement/src/lib/environments/environment.ts","../../../../projects/img-manager-webelement/src/lib/services/event.service.ts","../../../../projects/img-manager-webelement/src/lib/services/fiche_products.service.ts","../../../../projects/img-manager-webelement/src/lib/services/auth-credentials.service.ts","../../../../projects/img-manager-webelement/src/lib/services/webelement-image-manager-api.config.ts","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.component.ts","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.component.html","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.module.ts","../../../../projects/img-manager-webelement/src/public-api.ts","../../../../projects/img-manager-webelement/src/wizishop-img-manager-webelement.ts"],"sourcesContent":["export interface Environment {\n isWizishopcom: boolean;\n production: boolean;\n wizi_admin_api: string;\n wizi_api: string;\n CDN_URL: string;\n assets_route: string;\n translations_route: string;\n wiziApiCredentialsKey: string;\n local: any;\n product_sheet_endpoint: string;\n isPhotosTab?: boolean;\n}\n\n// Use locally for this project\nexport const environmentWiziDevLocal: Environment = {\n isWizishopcom: false,\n production: false,\n wizi_admin_api: \"https://admin.wizilocal.com/\",\n wizi_api: \"https://api.wizilocal.com/v3\",\n CDN_URL: \"http://debugshop.wizilocal.com/_i/\",\n assets_route : \"assets/img-manager/\",\n translations_route : \"./assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: 131,\n token : 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1c2VyX2lkIjo2LCJ1c2VyX2xvY2FsZSI6ImZyX0ZSIiwiaXNVc2VyQ29ubmVjdGVkRnJvbVZwbiI6ZmFsc2UsImV4cCI6MTY3NDM3NDkxMSwiaWF0IjoxNjcxNzgyOTExfQ.DbdBTaVLzLx5pE2FHTg8K0FcMsOY7yg7hAz7bjBQt4afke2ef_MfhXZx9ajtj6BciOsY5eYRgDp3r747iLc7CSThC6cNgPYZ9oMtN3MbFRYi5bktmPUVfbs2oxfWe9sNDwdpgMtw00d8YIO3ZTFZb3XzXW1hQIS2Ooy5x0GTGRgegIDAJYrVyVs8AC3TG8ZaC8g73iSMFnCrG85TAFbgjJb8ccU0HfB-h1I9LPE2LUzI5QE2vbsd6qo1XU59belW1SPv92Wgcd9IiHwuoeO3C2S2rQGUp-L8qprT6f5IeX-rp3XVmOVhTCNM4Dc0FdPdpL6p2jMVhhhu62fOZtNEXA'\n },\n product_sheet_endpoint: \"/products/ajax\",\n isPhotosTab: true\n};\n\nexport const environmentWiziDev: Environment = {\n isWizishopcom: true,\n production: false,\n wizi_admin_api: \"https://admin.wizilocal.com/\",\n wizi_api: \"https://api.wizilocal.com/v3\",\n CDN_URL: \"https://media.wizilocal.com/_i/\",\n assets_route : \"https://js.wizilocal.com/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.wizilocal.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentProd: Environment = {\n isWizishopcom: true,\n production: true,\n wizi_admin_api: \"https://admin.wizishop.com/\",\n wizi_api: \"https://api.wizishop.com/v3\",\n CDN_URL: \"https://media.cdnws.com/_i/\",\n assets_route : \"https://js.wizishop.com/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.wizishop.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentDropiziDev: Environment = {\n isWizishopcom: true,\n production: false,\n wizi_admin_api: \"https://admin.dropilocal.com/\",\n wizi_api: \"https://api.dropilocal.com/v3\",\n CDN_URL: \"https://media.dropilocal.com/_i/\",\n assets_route : \"https://js.dropilocal.fr/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.dropilocal.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentDropiziProd: Environment = {\n isWizishopcom: true,\n production: true,\n wizi_admin_api: \"https://admin.dropizi.fr/\",\n wizi_api: \"https://api.wizishop.com/v3\",\n CDN_URL: \"https://media.cdnws.com/_i/\",\n assets_route : \"https://js.dropizi.fr/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.dropizi.fr/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nfunction getCurrentEnv() {\n const isDev = !!window.location.hostname.match(/local/);\n const isWizi = !!window.location.hostname.match(/wizi/);\n const serverLocal = !!window.location.port;\n\n if (serverLocal) {\n return environmentWiziDevLocal;\n }\n if (isDev) {\n if (isWizi) {\n return environmentWiziDev;\n }\n return environmentDropiziDev;\n } else {\n if (isWizi) {\n return environmentProd;\n }\n return environmentDropiziProd;\n }\n}\n\nexport const environment: Environment = Object.assign({}, getCurrentEnv());","import { Injectable } from '@angular/core';\nimport { ImgPictureDTO } from '@wizishop/img-manager';\nimport { fromEvent } from 'rxjs';\nimport { environment } from '../environments/environment';\n\n@Injectable()\nexport class EventService {\n\n // Sometimes, there are multiple img manager that listen at the same time at imgSelected event\n // It use by the listener, to know if the event is for him\n emitter: string;\n\n constructor() { }\n\n sendImgSelectedToPage(file : ImgPictureDTO) {\n const sendedFile = {\n ...file,\n cdn_img_src: ''\n };\n if (sendedFile) {\n sendedFile.cdn_img_src = `${environment.CDN_URL}${file.id_shop}/`;\n }\n\n const value = {\n detail: {\n \"file\": sendedFile,\n \"from\": this.emitter\n }\n };\n const event = new CustomEvent('imgSelected', value);\n const imgManagerModule= document.getElementById('imgManagerModule');\n imgManagerModule?.dispatchEvent(event);\n }\n\n pageAskForImg() {\n return fromEvent<any>(document.getElementById('imgManagerModule') as any, \"openImgManager\");\n }\n\n setEmitter(emitter: string) {\n this.emitter = emitter;\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { forkJoin, fromEvent, Observable, Subscription } from \"rxjs\";\nimport { take } from 'rxjs/operators';\nimport { CanvaService, ImgPictureDTO, ImgSelectionService } from '@wizishop/img-manager';\nimport { EventService } from './event.service';\nimport { WiziBlockMediaDto } from '@wizishop/img-manager/lib/dto/wizi-block-media.dto';\nimport { environment } from '../environments/environment';\n\ndeclare const Wizi: any;\n\n@Injectable()\nexport class FicheProductService {\n\n productSheetApiRoute: string;\n image_manager_api: string = environment.wizi_api + \"/image-manager/shops/\";\n shopToken: string;\n shopId: number;\n productId: string;\n isPhotosTab: boolean = false; // State of the Photos tabs in fiche product page\n isPreviousTabPhotos: boolean = false;\n isVariantsTab: boolean = false;\n loadProductImgSelection:boolean = false;\n currentProductImgSelection: ImgPictureDTO[];\n isProductCreation: boolean;\n expectedMediaDto:WiziBlockMediaDto = {\n id: '',\n image_url: '',\n image_width: '900',\n image_height: '900',\n }\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private http: HttpClient,\n private imgSelectionService: ImgSelectionService,\n private eventService: EventService,\n private canvaService: CanvaService,\n ) { }\n\n setApiConfig(shop_id: number, shop_token: string) {\n this.shopToken = shop_token;\n this.shopId = shop_id;\n\n const matches = window.location.pathname.match( /\\/(\\w+)\\/products\\/(\\d+)\\/edit/);\n const lang = matches && matches[1] ? matches[1] : 'fr';\n this.productSheetApiRoute = environment.wizi_admin_api + lang + environment.product_sheet_endpoint;\n this.productId = matches && matches[2] ? matches[2] : \"0\";\n this.isProductCreation = /\\/products\\/create/.test(window.location.pathname);\n }\n\n /**\n * There is only one instance of this img manager.\n * But it is called with different config, by Photos tab and Variation tab, on fiche product page.\n * The method handle the switch config between Photos and Variation tab.\n * Return an observable : true => Photos tab / false => Variation tab.\n * */\n handleTabs():Observable<boolean> {\n return new Observable(observer => {\n\n const switchTabsSub =\n this.switchTabs().subscribe(data => {\n\n if (!data || !data[\"detail\"] || !data[\"detail\"][\"currentTab\"]) {\n return;\n }\n // Retrieve current tab\n const currentTab = data[\"detail\"][\"currentTab\"];\n this.isPreviousTabPhotos = this.isPhotosTab;\n this.isPhotosTab = currentTab === 'photos';\n this.isVariantsTab = currentTab === 'variation';\n\n // The user switch to Photos tab\n if (this.isPhotosTab) {\n this.loadProductImgSelection = true;\n if (!this.currentProductImgSelection || !this.currentProductImgSelection.length) {\n this.initProductImgSelection();\n } else {\n this.applyCurrentImgSelection();\n this.loadProductImgSelection = false;\n }\n\n } else if (this.isPreviousTabPhotos) { // The user switch to another tab\n // Save current img selection, in order to not lose the img selection\n this.saveCurrentImgSelection();\n }\n observer.next(this.isPhotosTab);\n });\n this.subscriptions.push(switchTabsSub);\n });\n }\n\n getShopImg(idFile: string): Observable<any> {\n return this.http.get(`${this.image_manager_api}${this.shopId}/images/${idFile}`, this.getOptionsHeadersWithBearer());\n }\n\n initProductImgSelection() {\n\n // Display the loader in img list selection\n this.imgSelectionService.imgSelectedListLoading$.next(true);\n\n // retrieve img selection\n const retrieveImgSelectionSub =\n this.retrieveImgSelection().subscribe(data => {\n\n // No imgage selected\n if (!data || !data[\"photos\"] || !data[\"photos\"][\"infos\"] || !data[\"photos\"][\"infos\"][\"files\"] || !data[\"photos\"][\"infos\"][\"files\"].length) {\n this.loadProductImgSelection = false;\n\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n return;\n }\n\n const idImgSelectionList: number[] = data[\"photos\"][\"infos\"][\"files\"];\n const obsImg: Observable<any>[] = [];\n\n idImgSelectionList.forEach(idFile =>\n obsImg.push(\n this.getShopImg(idFile.toString()).pipe(take(1))\n ));\n const allImgSub =\n forkJoin(obsImg).subscribe((photos: ImgPictureDTO[]) => {\n // The img selection must be saved, otherwise it is lost when the user switch on variation tab\n this.saveCurrentImgSelection(photos);\n this.applyCurrentImgSelection();\n this.loadProductImgSelection = false;\n },\n error => {\n // Hide the loader in img list selection\n this.loadProductImgSelection = false;\n\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n });\n this.subscriptions.push(allImgSub);\n });\n\n this.subscriptions.push(retrieveImgSelectionSub);\n this.canvaService.expectedImgSizesChange(this.expectedMediaDto);\n }\n\n retrieveInfoSelection() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"getInfos\");\n formData.append('prodId', this.productId);\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n retrieveImgSelection() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"getAllInfos\");\n formData.append('prodId', this.productId);\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post<any>(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n updateImgSelectionOnChange() {\n // listen to the img manager change\n const imgSelectionSub =\n this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {\n if (!imgSelectionList) {\n return;\n }\n\n // Send the img selection\n if (this.isPhotosTab && !this.loadProductImgSelection) {\n // Retrieve only the img id\n const idImgSelectedList: number[] = [];\n imgSelectionList.forEach(img => {\n idImgSelectedList.push(parseInt(img.id_file));\n });\n\n this.updateProductImgSelection(idImgSelectedList);\n\n // On variation tab, send event with img selected\n } else if (!this.isPhotosTab && imgSelectionList.length) {\n this.eventService.sendImgSelectedToPage(imgSelectionList[0]);\n }\n });\n this.subscriptions.push(imgSelectionSub);\n }\n\n updateProductImgSelection(idsImgList: number[]) {\n if ((!this.productId || this.productId === \"0\") && Wizi._produit.global.PROD_ID) {\n this.productId = Wizi._produit.global.PROD_ID.toString();\n }\n\n Wizi._produit._dataTmp['photos'].infos = {};\n Wizi._produit._dataTmp['photos'].infos.files = idsImgList;\n this.emitImgSelectionChange(idsImgList);\n\n if (this.productId && this.productId !== \"0\") {\n const submitProd1 =\n this.submitProductImg(idsImgList).subscribe();\n this.subscriptions.push(submitProd1);\n return;\n }\n const createProductSub =\n this.createProduct().subscribe(\n (productId:number) => {\n if (!productId) {\n throw \"No product id created. Can not link image(s) to the new product.\";\n }\n Wizi._produit.global.PROD_ID = productId;\n\n this.productId = productId.toString();\n this.submitProductImg(idsImgList).subscribe();\n }\n );\n this.subscriptions.push(createProductSub);\n\n }\n\n submitProductImg(idsImgList: number[]) {\n const data = {\n files : idsImgList,\n couls: []\n };\n\n const formData = new FormData();\n formData.append('rub', \"photos\");\n formData.append('action', \"save\");\n formData.append('newProd', this.isProductCreation ? \"1\" : \"0\");\n formData.append('prodId', this.productId);\n formData.append('_token', this.shopToken);\n formData.append('_shid', this.shopId.toString());\n formData.append('data', JSON.stringify(data));\n\n return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n createProduct() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"createProd\");\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post<number>(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n\n }\n\n /* Use to know where the img manager is displayed, and to close it when switching tab */\n switchTabs() {\n return fromEvent<any>(document.getElementById('imgManagerModule') as any, \"switchTab\");\n }\n\n private emitImgSelectionChange(idsImgList: number[]) {\n const value = {\n detail: {\n idsImgList\n }\n };\n\n const event = new CustomEvent('onImgSelectionChange', value);\n const imgManagerModule= document.getElementById('imgManagerModule');\n imgManagerModule?.dispatchEvent(event);\n }\n\n private saveCurrentImgSelection(imgSelection?: ImgPictureDTO[]) {\n this.currentProductImgSelection = imgSelection ? imgSelection : JSON.parse(JSON.stringify(this.imgSelectionService.getImgSelection()));\n }\n\n private applyCurrentImgSelection() {\n this.imgSelectionService.setImgSelection(this.currentProductImgSelection);\n // Hide the loader in img list selection\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n }\n\n private getOptionsHeaders() {\n const header = { headers: new HttpHeaders({\n 'Access-Control-Allow-Origin':'*'\n })\n };\n return header;\n }\n\n private getOptionsHeadersWithBearer() {\n const header = { headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.shopToken\n })\n };\n return header;\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n}","import { Injectable } from '@angular/core';\n\nimport { StorageByKey } from '@wizishop/ng-web-storages/shared';\n\n@Injectable()\nexport abstract class AuthCredentialsService extends StorageByKey<AuthCredentials> {\n}\n\nexport interface AuthCredentials {\n token: string;\n user_id: number;\n account_id: number;\n shop_id: number;\n};\n","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { ImgPicturesDTO, ImgPictureDTO, ApiService } from \"@wizishop/img-manager\";\nimport { Observable, tap } from \"rxjs\";\nimport { environment } from '../environments/environment';\n\n\n@Injectable()\nexport class WebelementImageManagerApiService implements ApiService {\n\n shopId: number = null;\n shopToken: string;\n\n CONFIG = {\n image_manager_route: environment.wizi_api + \"/image-manager/shops/\" + this.shopId,\n canva_token: 'wdByHayF5v57nj2ZSLvu055O',\n canva_url: 'https://sdk.canva.com/designbutton/v2/api.js',\n pexels_token: '563492ad6f91700001000001e39215727d8b42c1b08498a9ce1e6b94',\n pexels_route: 'https://api.pexels.com/v1',\n shop_category: 'other', // The shop category is retrieve later with the setShopCategory methode\n assets_route: environment.assets_route,\n }\n\n IMG_SIZE = {\n url_raw_image: `${environment.CDN_URL}${this.shopId}/RAW-`,\n url_100_image: `${environment.CDN_URL}${this.shopId}/m100-`,\n url_200_image: `${environment.CDN_URL}${this.shopId}/cs200-`,\n url_400_image: `${environment.CDN_URL}${this.shopId}/cs400-`,\n url_800_image: `${environment.CDN_URL}${this.shopId}/cs800-`\n }\n\n constructor(private http: HttpClient) {\n }\n\n private getOptionsHeaders(params?: HttpParams) {\n const header = { headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.shopToken\n })\n };\n if (params) {\n header['params'] = params\n }\n return header;\n }\n\n getShopCategory(): string {\n return 'other';\n }\n\n getShopImgList(params?: HttpParams): Observable<ImgPicturesDTO> {\n return this.http.get<ImgPicturesDTO>(`${this.CONFIG.image_manager_route}/images`, this.getOptionsHeaders(params));\n }\n\n getShopTotalImgList(params?: HttpParams) {\n return this.http.get<number>(`${this.CONFIG.image_manager_route}/total/images`, this.getOptionsHeaders(params));\n }\n\n getShopImg(idFile: string): Observable<ImgPictureDTO> {\n return this.http.get<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${idFile}`, this.getOptionsHeaders());\n }\n\n uploadFile(formData: FormData) {\n return this.http.post<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/template`, formData, this.getOptionsHeaders());\n }\n\n uploadFileByUrl(url: string, fileName?: string) {\n return this.http.post<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/template`, { url, fileName }, this.getOptionsHeaders());\n }\n\n replaceImg(imageBase64: string, id_file: string) {\n const body = {\n imageBase64,\n type : \"RAW\"\n }\n return this.http.put<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}/replace`, body, this.getOptionsHeaders());\n }\n\n changeImgName(fileName: string, id_file: string) {\n return this.http.put<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}?file_name=${fileName}`, null, this.getOptionsHeaders());\n }\n\n removeImg(id_file: string) {\n return this.http.delete<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}`, this.getOptionsHeaders());\n }\n\n removeMultipleImg(id_array: string[]) {\n return this.http.post<ImgPictureDTO[]>(`${this.CONFIG.image_manager_route}/images-multiple-delete`, { id_array }, this.getOptionsHeaders());\n }\n\n setShopCategory(shopId: number) {\n return this.http.get<{\n category: string\n }>(`${environment.wizi_api}/shops/${shopId}`, this.getOptionsHeaders()).pipe(\n tap((shop => {\n if (shop && shop['category']) {\n this.CONFIG.shop_category = shop['category'];\n }\n }))\n );\n }\n\n}","import { Component } from '@angular/core';\nimport { ImgManagerConfigDto, CanvaService, ImgManagerDisplayConfig, ImgManagerService } from '@wizishop/img-manager';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription, from as fromPromise } from 'rxjs';\nimport { FicheProductService } from './services/fiche_products.service';\nimport { AuthCredentials, AuthCredentialsService } from './services/auth-credentials.service';\nimport { EventService } from './services/event.service';\nimport { environment } from './environments/environment';\nimport { ImgSelectionService } from '@wizishop/img-manager';\nimport { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';\n\n@Component({\n selector: 'img-manager-webelement',\n templateUrl: './img-manager-webelement.component.html',\n styleUrls: ['./img-manager-webelement.component.scss'],\n providers: [\n ImgSelectionService\n ]\n})\nexport class ImgManagerWebElementComponent {\n // shop config\n id_shop: number;\n token_shop: string;\n\n // img manger config\n openImgManager:boolean = false;\n loading: boolean = true;\n imgExternalConfig: ImgManagerConfigDto;\n imgManagerDisplayConfig: ImgManagerDisplayConfig;\n pageFicheProductConfig: ImgManagerDisplayConfig;\n pageEventConfig: ImgManagerDisplayConfig;\n\n // fiche product config\n isPhotosTab: boolean = !!environment.isPhotosTab;\n\n subscriptions: Subscription[] = [];\n\n constructor(\n private translateService: TranslateService,\n private canvaService: CanvaService,\n private ficheProductService: FicheProductService,\n private authCredentialsService: AuthCredentialsService,\n private eventService: EventService,\n private imgManagerService: ImgManagerService,\n private imgSelectionService: ImgSelectionService,\n private webelementImageManagerApiService: WebelementImageManagerApiService\n ){}\n\n ngOnInit() {\n this.loading = true;\n this.pageFicheProductConfig = this.imgManagerService.getImgManagerDisplayConfig(\"fiche-product\");\n this.pageEventConfig = this.imgManagerService.getImgManagerDisplayConfig(\"wizi-block\");\n this.setCurrentLanguage();\n // Search on which page is display the img manger\n this.setDisplayedPageConfig();\n\n const subCredentials =\n this.getCredentials().subscribe(authCredentials => {\n this.loading = false;\n this.initVariables(authCredentials);\n // Fiche product page\n if (this.imgManagerDisplayConfig.pageficheProduct) {\n this.setFicheProductPage();\n } else {\n this.setPageWithEvents();\n }\n });\n this.subscriptions.push(subCredentials);\n }\n\n initVariables(authCredentials: AuthCredentials | null) {\n if (!authCredentials) {\n\n if (environment.isWizishopcom) {\n return;\n }\n // Run on local Server\n this.setAppVars(environment.local.shopId, environment.local.token);\n this.imgManagerDisplayConfig = this.pageFicheProductConfig;\n return;\n }\n\n this.setAppVars(authCredentials.shop_id, authCredentials.token);\n }\n\n setFicheProductPage() {\n this.ficheProductService.setApiConfig(this.id_shop, this.token_shop);\n this.handleFicheProductTab(); // Display different img manager config according to the tab\n this.closeImgManagerOnSwitchingTab();\n this.subscribePageAskForImg(); // Use for images in variations tab\n this.ficheProductService.updateImgSelectionOnChange();\n }\n\n setPageWithEvents() {\n this.subscribePageAskForImg();\n\n // Send img selected\n const subImgSelection = this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {\n if (imgSelectionList && imgSelectionList.length) {\n this.eventService.sendImgSelectedToPage(imgSelectionList[0]);\n }\n });\n this.subscriptions.push(subImgSelection);\n }\n\n subscribePageAskForImg() {\n // Listen to page editor ask for img event\n const subAskForImg = this.eventService.pageAskForImg().subscribe( data => {\n // Retrieve which img manager send the event\n const emitter = data && data[\"detail\"] ? data[\"detail\"][\"from\"] : null;\n this.eventService.setEmitter(emitter);\n\n this.imgSelectionService.setImgSelection([]);\n\n this.open();\n });\n this.subscriptions.push(subAskForImg);\n }\n\n open() {\n this.openImgManager = true;\n }\n\n onImgManagerClosed() {\n // Close img manager\n this.openImgManager = false;\n }\n\n setCurrentLanguage() {\n const matches = window.location.pathname.match( /^\\/(\\w+)\\//);\n this.translateService.use(matches && matches[1] ? matches[1] : 'fr');\n }\n\n setDisplayedPageConfig() {\n const isFicheProductPage = /\\/products\\/(\\d+\\/edit|create)/.test(window.location.pathname);\n this.imgManagerDisplayConfig = isFicheProductPage ? this.pageFicheProductConfig : this.pageEventConfig;\n }\n\n handleFicheProductTab() {\n const tabsSub =\n this.ficheProductService.handleTabs().subscribe(isPhotosTab => {\n this.imgManagerDisplayConfig = isPhotosTab ? this.pageFicheProductConfig : this.pageEventConfig;\n this.isPhotosTab = isPhotosTab;\n });\n this.subscriptions.push(tabsSub);\n }\n\n closeImgManagerOnSwitchingTab() {\n const tabsCloseSub =\n this.ficheProductService.switchTabs().subscribe(data => {\n this.openImgManager = false;\n });\n\n this.subscriptions.push(tabsCloseSub);\n }\n\n private getCredentials<AuthCredentials>() {\n return fromPromise(this.authCredentialsService.get());\n }\n\n private setAppVars(shopId: number, token: string) {\n this.webelementImageManagerApiService.shopToken = token;\n this.webelementImageManagerApiService.shopId = shopId;\n if (shopId) {\n this.webelementImageManagerApiService.setShopCategory(shopId).subscribe();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n}\n","<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>","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule, inject } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ImgManagerWebElementComponent } from './img-manager-webelement.component';\nimport { AuthCredentials, AuthCredentialsService } from './services/auth-credentials.service';\nimport { EventService } from './services/event.service';\nimport { FicheProductService } from './services/fiche_products.service';\nimport { ApiService, WzImgManagerModule } from '@wizishop/img-manager';\nimport { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';\nimport { StorageByKey } from '@wizishop/ng-web-storages/shared';\nimport { environment } from './environments/environment';\nimport { LocalStorageService } from '@wizishop/ng-web-storages/local-storage';\n\n@NgModule({\n declarations: [ImgManagerWebElementComponent],\n imports: [\n CommonModule,\n HttpClientModule,\n WzImgManagerModule.withConfig({\n provide: ApiService,\n useExisting: WebelementImageManagerApiService,\n }),\n TranslateModule,\n ],\n exports: [ImgManagerWebElementComponent],\n providers: [\n {\n provide: WebelementImageManagerApiService,\n useClass: WebelementImageManagerApiService,\n },\n FicheProductService,\n EventService,\n {\n provide: AuthCredentialsService,\n useFactory: () => new StorageByKey<AuthCredentials>(inject(LocalStorageService), environment.wiziApiCredentialsKey),\n }\n ]\n})\nexport class ImgManagerWebElementModule { }\n","/*\n * Public API Surface of img-manager-webelement\n */\nexport * from './lib/img-manager-webelement.component';\nexport * from './lib/img-manager-webelement.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.EventService","fromPromise","i1","i3.FicheProductService","i4.AuthCredentialsService","i5.EventService","i6.WebelementImageManagerApiService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wizishop-img-manager-webelement.mjs","sources":["../../../../projects/img-manager-webelement/src/lib/environments/environment.ts","../../../../projects/img-manager-webelement/src/lib/services/event.service.ts","../../../../projects/img-manager-webelement/src/lib/services/auth-credentials.service.ts","../../../../projects/img-manager-webelement/src/lib/services/fiche_products.service.ts","../../../../projects/img-manager-webelement/src/lib/services/webelement-image-manager-api.config.ts","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.component.ts","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.component.html","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.module.ts","../../../../projects/img-manager-webelement/src/public-api.ts","../../../../projects/img-manager-webelement/src/wizishop-img-manager-webelement.ts"],"sourcesContent":["export interface Environment {\n isWizishopcom: boolean;\n production: boolean;\n wizi_admin_api: string;\n wizi_api: string;\n CDN_URL: string;\n assets_route: string;\n translations_route: string;\n wiziApiCredentialsKey: string;\n local: any;\n product_sheet_endpoint: string;\n isPhotosTab?: boolean;\n}\n\n// Use locally for this project\nexport const environmentWiziDevLocal: Environment = {\n isWizishopcom: false,\n production: false,\n wizi_admin_api: \"https://admin.wizilocal.com/\",\n wizi_api: \"https://api.wizilocal.com/v3\",\n CDN_URL: \"http://debugshop.wizilocal.com/_i/\",\n assets_route : \"assets/img-manager/\",\n translations_route : \"./assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: 131,\n token : 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1c2VyX2lkIjo2LCJ1c2VyX2xvY2FsZSI6ImZyX0ZSIiwiaXNVc2VyQ29ubmVjdGVkRnJvbVZwbiI6ZmFsc2UsImV4cCI6MTY3NDM3NDkxMSwiaWF0IjoxNjcxNzgyOTExfQ.DbdBTaVLzLx5pE2FHTg8K0FcMsOY7yg7hAz7bjBQt4afke2ef_MfhXZx9ajtj6BciOsY5eYRgDp3r747iLc7CSThC6cNgPYZ9oMtN3MbFRYi5bktmPUVfbs2oxfWe9sNDwdpgMtw00d8YIO3ZTFZb3XzXW1hQIS2Ooy5x0GTGRgegIDAJYrVyVs8AC3TG8ZaC8g73iSMFnCrG85TAFbgjJb8ccU0HfB-h1I9LPE2LUzI5QE2vbsd6qo1XU59belW1SPv92Wgcd9IiHwuoeO3C2S2rQGUp-L8qprT6f5IeX-rp3XVmOVhTCNM4Dc0FdPdpL6p2jMVhhhu62fOZtNEXA'\n },\n product_sheet_endpoint: \"/products/ajax\",\n isPhotosTab: true\n};\n\nexport const environmentWiziDev: Environment = {\n isWizishopcom: true,\n production: false,\n wizi_admin_api: \"https://admin.wizilocal.com/\",\n wizi_api: \"https://api.wizilocal.com/v3\",\n CDN_URL: \"https://media.wizilocal.com/_i/\",\n assets_route : \"https://js.wizilocal.com/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.wizilocal.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentProd: Environment = {\n isWizishopcom: true,\n production: true,\n wizi_admin_api: \"https://admin.wizishop.com/\",\n wizi_api: \"https://api.wizishop.com/v3\",\n CDN_URL: \"https://media.cdnws.com/_i/\",\n assets_route : \"https://js.wizishop.com/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.wizishop.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentDropiziDev: Environment = {\n isWizishopcom: true,\n production: false,\n wizi_admin_api: \"https://admin.dropilocal.com/\",\n wizi_api: \"https://api.dropilocal.com/v3\",\n CDN_URL: \"https://media.dropilocal.com/_i/\",\n assets_route : \"https://js.dropilocal.fr/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.dropilocal.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentDropiziProd: Environment = {\n isWizishopcom: true,\n production: true,\n wizi_admin_api: \"https://admin.dropizi.fr/\",\n wizi_api: \"https://api.wizishop.com/v3\",\n CDN_URL: \"https://media.cdnws.com/_i/\",\n assets_route : \"https://js.dropizi.fr/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.dropizi.fr/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nfunction getCurrentEnv() {\n const isDev = !!window.location.hostname.match(/local/);\n const isWizi = !!window.location.hostname.match(/wizi/);\n const serverLocal = !!window.location.port;\n\n if (serverLocal) {\n return environmentWiziDevLocal;\n }\n if (isDev) {\n if (isWizi) {\n return environmentWiziDev;\n }\n return environmentDropiziDev;\n } else {\n if (isWizi) {\n return environmentProd;\n }\n return environmentDropiziProd;\n }\n}\n\nexport const environment: Environment = Object.assign({}, getCurrentEnv());","import { Injectable } from '@angular/core';\nimport { ImgPictureDTO } from '@wizishop/img-manager';\nimport { fromEvent } from 'rxjs';\nimport { environment } from '../environments/environment';\n\n@Injectable()\nexport class EventService {\n\n // Sometimes, there are multiple img manager that listen at the same time at imgSelected event\n // It use by the listener, to know if the event is for him\n emitter: string;\n\n constructor() { }\n\n sendImgSelectedToPage(file : ImgPictureDTO) {\n const sendedFile = {\n ...file,\n cdn_img_src: ''\n };\n if (sendedFile) {\n sendedFile.cdn_img_src = `${environment.CDN_URL}${file.id_shop}/`;\n }\n\n const value = {\n detail: {\n \"file\": sendedFile,\n \"from\": this.emitter\n }\n };\n const event = new CustomEvent('imgSelected', value);\n const imgManagerModule= document.getElementById('imgManagerModule');\n imgManagerModule?.dispatchEvent(event);\n }\n\n pageAskForImg() {\n return fromEvent<any>(document.getElementById('imgManagerModule') as any, \"openImgManager\");\n }\n\n setEmitter(emitter: string) {\n this.emitter = emitter;\n }\n}","import { Injectable } from '@angular/core';\n\nimport { StorageByKey } from '@wizishop/ng-web-storages/shared';\n\n@Injectable()\nexport abstract class AuthCredentialsService extends StorageByKey<AuthCredentials> {\n}\n\nexport interface AuthCredentials {\n token: string;\n user_id: number;\n account_id: number;\n shop_id: number;\n};\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { forkJoin, fromEvent, Observable, Subscription } from \"rxjs\";\nimport { take } from 'rxjs/operators';\nimport { CanvaService, ImgPictureDTO, ImgSelectionService } from '@wizishop/img-manager';\nimport { EventService } from './event.service';\nimport { WiziBlockMediaDto } from '@wizishop/img-manager/lib/dto/wizi-block-media.dto';\nimport { environment } from '../environments/environment';\nimport { AuthCredentialsService } from './auth-credentials.service';\n\ndeclare const Wizi: any;\n\n@Injectable()\nexport class FicheProductService {\n\n productSheetApiRoute: string;\n image_manager_api: string = environment.wizi_api + \"/image-manager/shops/\";\n shopToken: string = this.authCredentialsService.getSync().token;\n shopId: number = this.authCredentialsService.getSync().shop_id;\n productId: string;\n isPhotosTab: boolean = false; // State of the Photos tabs in fiche product page\n isPreviousTabPhotos: boolean = false;\n isVariantsTab: boolean = false;\n loadProductImgSelection:boolean = false;\n currentProductImgSelection: ImgPictureDTO[];\n isProductCreation: boolean;\n expectedMediaDto:WiziBlockMediaDto = {\n id: '',\n image_url: '',\n image_width: '900',\n image_height: '900',\n }\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private http: HttpClient,\n private imgSelectionService: ImgSelectionService,\n private eventService: EventService,\n private canvaService: CanvaService,\n private authCredentialsService: AuthCredentialsService\n ) { }\n\n setApiConfig() {\n const matches = window.location.pathname.match( /\\/(\\w+)\\/products\\/(\\d+)\\/edit/);\n const lang = matches && matches[1] ? matches[1] : 'fr';\n this.productSheetApiRoute = environment.wizi_admin_api + lang + environment.product_sheet_endpoint;\n this.productId = matches && matches[2] ? matches[2] : \"0\";\n this.isProductCreation = /\\/products\\/create/.test(window.location.pathname);\n }\n\n /**\n * There is only one instance of this img manager.\n * But it is called with different config, by Photos tab and Variation tab, on fiche product page.\n * The method handle the switch config between Photos and Variation tab.\n * Return an observable : true => Photos tab / false => Variation tab.\n * */\n handleTabs():Observable<boolean> {\n return new Observable(observer => {\n\n const switchTabsSub =\n this.switchTabs().subscribe(data => {\n\n if (!data || !data[\"detail\"] || !data[\"detail\"][\"currentTab\"]) {\n return;\n }\n // Retrieve current tab\n const currentTab = data[\"detail\"][\"currentTab\"];\n this.isPreviousTabPhotos = this.isPhotosTab;\n this.isPhotosTab = currentTab === 'photos';\n this.isVariantsTab = currentTab === 'variation';\n\n // The user switch to Photos tab\n if (this.isPhotosTab) {\n this.loadProductImgSelection = true;\n if (!this.currentProductImgSelection || !this.currentProductImgSelection.length) {\n this.initProductImgSelection();\n } else {\n this.applyCurrentImgSelection();\n this.loadProductImgSelection = false;\n }\n\n } else if (this.isPreviousTabPhotos) { // The user switch to another tab\n // Save current img selection, in order to not lose the img selection\n this.saveCurrentImgSelection();\n }\n observer.next(this.isPhotosTab);\n });\n this.subscriptions.push(switchTabsSub);\n });\n }\n\n getShopImg(idFile: string): Observable<any> {\n return this.http.get(`${this.image_manager_api}${this.shopId}/images/${idFile}`, this.getOptionsHeadersWithBearer());\n }\n\n initProductImgSelection() {\n\n // Display the loader in img list selection\n this.imgSelectionService.imgSelectedListLoading$.next(true);\n\n // retrieve img selection\n const retrieveImgSelectionSub =\n this.retrieveImgSelection().subscribe(data => {\n\n // No imgage selected\n if (!data || !data[\"photos\"] || !data[\"photos\"][\"infos\"] || !data[\"photos\"][\"infos\"][\"files\"] || !data[\"photos\"][\"infos\"][\"files\"].length) {\n this.loadProductImgSelection = false;\n\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n return;\n }\n\n const idImgSelectionList: number[] = data[\"photos\"][\"infos\"][\"files\"];\n const obsImg: Observable<any>[] = [];\n\n idImgSelectionList.forEach(idFile =>\n obsImg.push(\n this.getShopImg(idFile.toString()).pipe(take(1))\n ));\n const allImgSub =\n forkJoin(obsImg).subscribe((photos: ImgPictureDTO[]) => {\n // The img selection must be saved, otherwise it is lost when the user switch on variation tab\n this.saveCurrentImgSelection(photos);\n this.applyCurrentImgSelection();\n this.loadProductImgSelection = false;\n },\n error => {\n // Hide the loader in img list selection\n this.loadProductImgSelection = false;\n\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n });\n this.subscriptions.push(allImgSub);\n });\n\n this.subscriptions.push(retrieveImgSelectionSub);\n this.canvaService.expectedImgSizesChange(this.expectedMediaDto);\n }\n\n retrieveInfoSelection() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"getInfos\");\n formData.append('prodId', this.productId);\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n retrieveImgSelection() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"getAllInfos\");\n formData.append('prodId', this.productId);\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post<any>(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n updateImgSelectionOnChange() {\n // listen to the img manager change\n const imgSelectionSub =\n this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {\n if (!imgSelectionList) {\n return;\n }\n\n // Send the img selection\n if (this.isPhotosTab && !this.loadProductImgSelection) {\n // Retrieve only the img id\n const idImgSelectedList: number[] = [];\n imgSelectionList.forEach(img => {\n idImgSelectedList.push(parseInt(img.id_file));\n });\n\n this.updateProductImgSelection(idImgSelectedList);\n\n // On variation tab, send event with img selected\n } else if (!this.isPhotosTab && imgSelectionList.length) {\n this.eventService.sendImgSelectedToPage(imgSelectionList[0]);\n }\n });\n this.subscriptions.push(imgSelectionSub);\n }\n\n updateProductImgSelection(idsImgList: number[]) {\n if ((!this.productId || this.productId === \"0\") && Wizi._produit.global.PROD_ID) {\n this.productId = Wizi._produit.global.PROD_ID.toString();\n }\n\n Wizi._produit._dataTmp['photos'].infos = {};\n Wizi._produit._dataTmp['photos'].infos.files = idsImgList;\n this.emitImgSelectionChange(idsImgList);\n\n if (this.productId && this.productId !== \"0\") {\n const submitProd1 =\n this.submitProductImg(idsImgList).subscribe();\n this.subscriptions.push(submitProd1);\n return;\n }\n const createProductSub =\n this.createProduct().subscribe(\n (productId:number) => {\n if (!productId) {\n throw \"No product id created. Can not link image(s) to the new product.\";\n }\n Wizi._produit.global.PROD_ID = productId;\n\n this.productId = productId.toString();\n this.submitProductImg(idsImgList).subscribe();\n }\n );\n this.subscriptions.push(createProductSub);\n\n }\n\n submitProductImg(idsImgList: number[]) {\n const data = {\n files : idsImgList,\n couls: []\n };\n\n const formData = new FormData();\n formData.append('rub', \"photos\");\n formData.append('action', \"save\");\n formData.append('newProd', this.isProductCreation ? \"1\" : \"0\");\n formData.append('prodId', this.productId);\n formData.append('_token', this.shopToken);\n formData.append('_shid', this.shopId.toString());\n formData.append('data', JSON.stringify(data));\n\n return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n createProduct() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"createProd\");\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post<number>(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n\n }\n\n /* Use to know where the img manager is displayed, and to close it when switching tab */\n switchTabs() {\n return fromEvent<any>(document.getElementById('imgManagerModule') as any, \"switchTab\");\n }\n\n private emitImgSelectionChange(idsImgList: number[]) {\n const value = {\n detail: {\n idsImgList\n }\n };\n\n const event = new CustomEvent('onImgSelectionChange', value);\n const imgManagerModule= document.getElementById('imgManagerModule');\n imgManagerModule?.dispatchEvent(event);\n }\n\n private saveCurrentImgSelection(imgSelection?: ImgPictureDTO[]) {\n this.currentProductImgSelection = imgSelection ? imgSelection : JSON.parse(JSON.stringify(this.imgSelectionService.getImgSelection()));\n }\n\n private applyCurrentImgSelection() {\n this.imgSelectionService.setImgSelection(this.currentProductImgSelection);\n // Hide the loader in img list selection\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n }\n\n private getOptionsHeaders() {\n const header = { headers: new HttpHeaders({\n 'Access-Control-Allow-Origin':'*'\n })\n };\n return header;\n }\n\n private getOptionsHeadersWithBearer() {\n const header = { headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.shopToken\n })\n };\n return header;\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n}","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { ImgPicturesDTO, ImgPictureDTO, ApiService } from \"@wizishop/img-manager\";\nimport { Observable, tap } from \"rxjs\";\nimport { environment } from '../environments/environment';\n\n\n@Injectable()\nexport class WebelementImageManagerApiService implements ApiService {\n\n shopId: number = null;\n shopToken: string;\n\n CONFIG = {\n image_manager_route: environment.wizi_api + \"/image-manager/shops/\" + this.shopId,\n canva_token: 'wdByHayF5v57nj2ZSLvu055O',\n canva_url: 'https://sdk.canva.com/designbutton/v2/api.js',\n pexels_token: '563492ad6f91700001000001e39215727d8b42c1b08498a9ce1e6b94',\n pexels_route: 'https://api.pexels.com/v1',\n shop_category: 'other', // The shop category is retrieve later with the setShopCategory methode\n assets_route: environment.assets_route,\n }\n\n IMG_SIZE = {\n url_raw_image: `${environment.CDN_URL}${this.shopId}/RAW-`,\n url_100_image: `${environment.CDN_URL}${this.shopId}/m100-`,\n url_200_image: `${environment.CDN_URL}${this.shopId}/cs200-`,\n url_400_image: `${environment.CDN_URL}${this.shopId}/cs400-`,\n url_800_image: `${environment.CDN_URL}${this.shopId}/cs800-`\n }\n\n constructor(private http: HttpClient) {\n }\n\n private getOptionsHeaders(params?: HttpParams) {\n const header = { headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.shopToken\n })\n };\n if (params) {\n header['params'] = params\n }\n return header;\n }\n\n getShopCategory(): string {\n return 'other';\n }\n\n getShopImgList(params?: HttpParams): Observable<ImgPicturesDTO> {\n return this.http.get<ImgPicturesDTO>(`${this.CONFIG.image_manager_route}/images`, this.getOptionsHeaders(params));\n }\n\n getShopTotalImgList(params?: HttpParams) {\n return this.http.get<number>(`${this.CONFIG.image_manager_route}/total/images`, this.getOptionsHeaders(params));\n }\n\n getShopImg(idFile: string): Observable<ImgPictureDTO> {\n return this.http.get<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${idFile}`, this.getOptionsHeaders());\n }\n\n uploadFile(formData: FormData) {\n return this.http.post<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/template`, formData, this.getOptionsHeaders());\n }\n\n uploadFileByUrl(url: string, fileName?: string) {\n return this.http.post<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/template`, { url, fileName }, this.getOptionsHeaders());\n }\n\n replaceImg(imageBase64: string, id_file: string) {\n const body = {\n imageBase64,\n type : \"RAW\"\n }\n return this.http.put<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}/replace`, body, this.getOptionsHeaders());\n }\n\n changeImgName(fileName: string, id_file: string) {\n return this.http.put<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}?file_name=${fileName}`, null, this.getOptionsHeaders());\n }\n\n removeImg(id_file: string) {\n return this.http.delete<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}`, this.getOptionsHeaders());\n }\n\n removeMultipleImg(id_array: string[]) {\n return this.http.post<ImgPictureDTO[]>(`${this.CONFIG.image_manager_route}/images-multiple-delete`, { id_array }, this.getOptionsHeaders());\n }\n\n setShopCategory(shopId: number) {\n return this.http.get<{\n category: string\n }>(`${environment.wizi_api}/shops/${shopId}`, this.getOptionsHeaders()).pipe(\n tap((shop => {\n if (shop && shop['category']) {\n this.CONFIG.shop_category = shop['category'];\n }\n }))\n );\n }\n\n}","import { Component } from '@angular/core';\nimport { ImgManagerConfigDto, CanvaService, ImgManagerDisplayConfig, ImgManagerService } from '@wizishop/img-manager';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { FicheProductService } from './services/fiche_products.service';\nimport { AuthCredentials, AuthCredentialsService } from './services/auth-credentials.service';\nimport { EventService } from './services/event.service';\nimport { environment } from './environments/environment';\nimport { ImgSelectionService } from '@wizishop/img-manager';\nimport { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';\n\n@Component({\n selector: 'img-manager-webelement',\n templateUrl: './img-manager-webelement.component.html',\n styleUrls: ['./img-manager-webelement.component.scss'],\n providers: [\n ImgSelectionService\n ]\n})\nexport class ImgManagerWebElementComponent {\n // shop config\n id_shop: number;\n token_shop: string;\n\n // img manger config\n openImgManager:boolean = false;\n loading: boolean = true;\n imgExternalConfig: ImgManagerConfigDto;\n imgManagerDisplayConfig: ImgManagerDisplayConfig;\n pageFicheProductConfig: ImgManagerDisplayConfig;\n pageEventConfig: ImgManagerDisplayConfig;\n\n // fiche product config\n isPhotosTab: boolean = !!environment.isPhotosTab;\n\n subscriptions: Subscription[] = [];\n\n constructor(\n private translateService: TranslateService,\n private canvaService: CanvaService,\n private ficheProductService: FicheProductService,\n private authCredentialsService: AuthCredentialsService,\n private eventService: EventService,\n private imgManagerService: ImgManagerService,\n private imgSelectionService: ImgSelectionService,\n private webelementImageManagerApiService: WebelementImageManagerApiService,\n ){}\n\n ngOnInit() {\n this.loading = true;\n this.pageFicheProductConfig = this.imgManagerService.getImgManagerDisplayConfig(\"fiche-product\");\n this.pageEventConfig = this.imgManagerService.getImgManagerDisplayConfig(\"wizi-block\");\n this.setCurrentLanguage();\n // Search on which page is display the img manger\n this.setDisplayedPageConfig();\n\n this.loading = false;\n this.initVariables(this.authCredentialsService.getSync());\n // Fiche product page\n if (this.imgManagerDisplayConfig.pageficheProduct) {\n this.setFicheProductPage();\n } else {\n this.setPageWithEvents();\n }\n }\n\n initVariables(authCredentials: AuthCredentials | null) {\n if (!authCredentials) {\n\n if (environment.isWizishopcom) {\n return;\n }\n // Run on local Server\n this.setAppVars(environment.local.shopId, environment.local.token);\n this.imgManagerDisplayConfig = this.pageFicheProductConfig;\n return;\n }\n\n this.setAppVars(authCredentials.shop_id, authCredentials.token);\n }\n\n setFicheProductPage() {\n this.ficheProductService.setApiConfig();\n this.handleFicheProductTab(); // Display different img manager config according to the tab\n this.closeImgManagerOnSwitchingTab();\n this.subscribePageAskForImg(); // Use for images in variations tab\n this.ficheProductService.updateImgSelectionOnChange();\n }\n\n setPageWithEvents() {\n this.subscribePageAskForImg();\n\n // Send img selected\n const subImgSelection = this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {\n if (imgSelectionList && imgSelectionList.length) {\n this.eventService.sendImgSelectedToPage(imgSelectionList[0]);\n }\n });\n this.subscriptions.push(subImgSelection);\n }\n\n subscribePageAskForImg() {\n // Listen to page editor ask for img event\n const subAskForImg = this.eventService.pageAskForImg().subscribe( data => {\n // Retrieve which img manager send the event\n const emitter = data && data[\"detail\"] ? data[\"detail\"][\"from\"] : null;\n this.eventService.setEmitter(emitter);\n\n this.imgSelectionService.setImgSelection([]);\n\n this.open();\n });\n this.subscriptions.push(subAskForImg);\n }\n\n open() {\n this.openImgManager = true;\n }\n\n onImgManagerClosed() {\n // Close img manager\n this.openImgManager = false;\n }\n\n setCurrentLanguage() {\n const matches = window.location.pathname.match( /^\\/(\\w+)\\//);\n this.translateService.use(matches && matches[1] ? matches[1] : 'fr');\n }\n\n setDisplayedPageConfig() {\n const isFicheProductPage = /\\/products\\/(\\d+\\/edit|create)/.test(window.location.pathname);\n this.imgManagerDisplayConfig = isFicheProductPage ? this.pageFicheProductConfig : this.pageEventConfig;\n }\n\n handleFicheProductTab() {\n const tabsSub =\n this.ficheProductService.handleTabs().subscribe(isPhotosTab => {\n this.imgManagerDisplayConfig = isPhotosTab ? this.pageFicheProductConfig : this.pageEventConfig;\n this.isPhotosTab = isPhotosTab;\n });\n this.subscriptions.push(tabsSub);\n }\n\n closeImgManagerOnSwitchingTab() {\n const tabsCloseSub =\n this.ficheProductService.switchTabs().subscribe(data => {\n this.openImgManager = false;\n });\n\n this.subscriptions.push(tabsCloseSub);\n }\n\n private setAppVars(shopId: number, token: string) {\n this.webelementImageManagerApiService.shopToken = token;\n this.webelementImageManagerApiService.shopId = shopId;\n if (shopId) {\n this.webelementImageManagerApiService.setShopCategory(shopId).subscribe();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n}\n","<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>","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule, inject } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ImgManagerWebElementComponent } from './img-manager-webelement.component';\nimport { AuthCredentials, AuthCredentialsService } from './services/auth-credentials.service';\nimport { EventService } from './services/event.service';\nimport { FicheProductService } from './services/fiche_products.service';\nimport { ApiService, WzImgManagerModule } from '@wizishop/img-manager';\nimport { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';\nimport { StorageByKey } from '@wizishop/ng-web-storages/shared';\nimport { environment } from './environments/environment';\nimport { LocalStorageService } from '@wizishop/ng-web-storages/local-storage';\n\n@NgModule({\n declarations: [ImgManagerWebElementComponent],\n imports: [\n CommonModule,\n HttpClientModule,\n WzImgManagerModule.withConfig({\n provide: ApiService,\n useExisting: WebelementImageManagerApiService,\n }),\n TranslateModule,\n ],\n exports: [ImgManagerWebElementComponent],\n providers: [\n {\n provide: WebelementImageManagerApiService,\n useClass: WebelementImageManagerApiService,\n },\n FicheProductService,\n EventService,\n {\n provide: AuthCredentialsService,\n useFactory: () => new StorageByKey<AuthCredentials>(inject(LocalStorageService), environment.wiziApiCredentialsKey),\n }\n ]\n})\nexport class ImgManagerWebElementModule { }\n","/*\n * Public API Surface of img-manager-webelement\n */\nexport * from './lib/img-manager-webelement.component';\nexport * from './lib/img-manager-webelement.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.EventService","i4.AuthCredentialsService","i1","i3.FicheProductService","i5.EventService","i6.WebelementImageManagerApiService"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Component, inject, NgModule } from '@angular/core';
|
|
3
|
-
import { fromEvent, Observable, forkJoin, tap, from } from 'rxjs';
|
|
4
3
|
import * as i2 from '@wizishop/img-manager';
|
|
5
4
|
import { ImgSelectionService, WzImgManagerModule, ApiService } from '@wizishop/img-manager';
|
|
6
5
|
import * as i1$1 from '@ngx-translate/core';
|
|
7
6
|
import { TranslateModule } from '@ngx-translate/core';
|
|
8
7
|
import * as i1 from '@angular/common/http';
|
|
9
8
|
import { HttpHeaders, HttpClientModule } from '@angular/common/http';
|
|
9
|
+
import { fromEvent, Observable, forkJoin, tap } from 'rxjs';
|
|
10
10
|
import { take } from 'rxjs/operators';
|
|
11
11
|
import { StorageByKey } from '@wizishop/ng-web-storages/shared';
|
|
12
12
|
import * as i7 from '@angular/common';
|
|
@@ -145,13 +145,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
145
145
|
type: Injectable
|
|
146
146
|
}], ctorParameters: function () { return []; } });
|
|
147
147
|
|
|
148
|
+
class AuthCredentialsService extends StorageByKey {
|
|
149
|
+
}
|
|
150
|
+
AuthCredentialsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
151
|
+
AuthCredentialsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService });
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService, decorators: [{
|
|
153
|
+
type: Injectable
|
|
154
|
+
}] });
|
|
155
|
+
;
|
|
156
|
+
|
|
148
157
|
class FicheProductService {
|
|
149
|
-
constructor(http, imgSelectionService, eventService, canvaService) {
|
|
158
|
+
constructor(http, imgSelectionService, eventService, canvaService, authCredentialsService) {
|
|
150
159
|
this.http = http;
|
|
151
160
|
this.imgSelectionService = imgSelectionService;
|
|
152
161
|
this.eventService = eventService;
|
|
153
162
|
this.canvaService = canvaService;
|
|
163
|
+
this.authCredentialsService = authCredentialsService;
|
|
154
164
|
this.image_manager_api = environment.wizi_api + "/image-manager/shops/";
|
|
165
|
+
this.shopToken = this.authCredentialsService.getSync().token;
|
|
166
|
+
this.shopId = this.authCredentialsService.getSync().shop_id;
|
|
155
167
|
this.isPhotosTab = false; // State of the Photos tabs in fiche product page
|
|
156
168
|
this.isPreviousTabPhotos = false;
|
|
157
169
|
this.isVariantsTab = false;
|
|
@@ -164,9 +176,7 @@ class FicheProductService {
|
|
|
164
176
|
};
|
|
165
177
|
this.subscriptions = [];
|
|
166
178
|
}
|
|
167
|
-
setApiConfig(
|
|
168
|
-
this.shopToken = shop_token;
|
|
169
|
-
this.shopId = shop_id;
|
|
179
|
+
setApiConfig() {
|
|
170
180
|
const matches = window.location.pathname.match(/\/(\w+)\/products\/(\d+)\/edit/);
|
|
171
181
|
const lang = matches && matches[1] ? matches[1] : 'fr';
|
|
172
182
|
this.productSheetApiRoute = environment.wizi_admin_api + lang + environment.product_sheet_endpoint;
|
|
@@ -367,20 +377,11 @@ class FicheProductService {
|
|
|
367
377
|
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
368
378
|
}
|
|
369
379
|
}
|
|
370
|
-
FicheProductService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, deps: [{ token: i1.HttpClient }, { token: i2.ImgSelectionService }, { token: EventService }, { token: i2.CanvaService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
380
|
+
FicheProductService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, deps: [{ token: i1.HttpClient }, { token: i2.ImgSelectionService }, { token: EventService }, { token: i2.CanvaService }, { token: AuthCredentialsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
371
381
|
FicheProductService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService });
|
|
372
382
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, decorators: [{
|
|
373
383
|
type: Injectable
|
|
374
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ImgSelectionService }, { type: EventService }, { type: i2.CanvaService }]; } });
|
|
375
|
-
|
|
376
|
-
class AuthCredentialsService extends StorageByKey {
|
|
377
|
-
}
|
|
378
|
-
AuthCredentialsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
379
|
-
AuthCredentialsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService });
|
|
380
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService, decorators: [{
|
|
381
|
-
type: Injectable
|
|
382
|
-
}] });
|
|
383
|
-
;
|
|
384
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ImgSelectionService }, { type: EventService }, { type: i2.CanvaService }, { type: AuthCredentialsService }]; } });
|
|
384
385
|
|
|
385
386
|
class WebelementImageManagerApiService {
|
|
386
387
|
constructor(http) {
|
|
@@ -485,18 +486,15 @@ class ImgManagerWebElementComponent {
|
|
|
485
486
|
this.setCurrentLanguage();
|
|
486
487
|
// Search on which page is display the img manger
|
|
487
488
|
this.setDisplayedPageConfig();
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
}
|
|
498
|
-
});
|
|
499
|
-
this.subscriptions.push(subCredentials);
|
|
489
|
+
this.loading = false;
|
|
490
|
+
this.initVariables(this.authCredentialsService.getSync());
|
|
491
|
+
// Fiche product page
|
|
492
|
+
if (this.imgManagerDisplayConfig.pageficheProduct) {
|
|
493
|
+
this.setFicheProductPage();
|
|
494
|
+
}
|
|
495
|
+
else {
|
|
496
|
+
this.setPageWithEvents();
|
|
497
|
+
}
|
|
500
498
|
}
|
|
501
499
|
initVariables(authCredentials) {
|
|
502
500
|
if (!authCredentials) {
|
|
@@ -511,7 +509,7 @@ class ImgManagerWebElementComponent {
|
|
|
511
509
|
this.setAppVars(authCredentials.shop_id, authCredentials.token);
|
|
512
510
|
}
|
|
513
511
|
setFicheProductPage() {
|
|
514
|
-
this.ficheProductService.setApiConfig(
|
|
512
|
+
this.ficheProductService.setApiConfig();
|
|
515
513
|
this.handleFicheProductTab(); // Display different img manager config according to the tab
|
|
516
514
|
this.closeImgManagerOnSwitchingTab();
|
|
517
515
|
this.subscribePageAskForImg(); // Use for images in variations tab
|
|
@@ -566,9 +564,6 @@ class ImgManagerWebElementComponent {
|
|
|
566
564
|
});
|
|
567
565
|
this.subscriptions.push(tabsCloseSub);
|
|
568
566
|
}
|
|
569
|
-
getCredentials() {
|
|
570
|
-
return from(this.authCredentialsService.get());
|
|
571
|
-
}
|
|
572
567
|
setAppVars(shopId, token) {
|
|
573
568
|
this.webelementImageManagerApiService.shopToken = token;
|
|
574
569
|
this.webelementImageManagerApiService.shopId = shopId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizishop-img-manager-webelement.mjs","sources":["../../../../projects/img-manager-webelement/src/lib/environments/environment.ts","../../../../projects/img-manager-webelement/src/lib/services/event.service.ts","../../../../projects/img-manager-webelement/src/lib/services/fiche_products.service.ts","../../../../projects/img-manager-webelement/src/lib/services/auth-credentials.service.ts","../../../../projects/img-manager-webelement/src/lib/services/webelement-image-manager-api.config.ts","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.component.ts","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.component.html","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.module.ts","../../../../projects/img-manager-webelement/src/public-api.ts","../../../../projects/img-manager-webelement/src/wizishop-img-manager-webelement.ts"],"sourcesContent":["export interface Environment {\n isWizishopcom: boolean;\n production: boolean;\n wizi_admin_api: string;\n wizi_api: string;\n CDN_URL: string;\n assets_route: string;\n translations_route: string;\n wiziApiCredentialsKey: string;\n local: any;\n product_sheet_endpoint: string;\n isPhotosTab?: boolean;\n}\n\n// Use locally for this project\nexport const environmentWiziDevLocal: Environment = {\n isWizishopcom: false,\n production: false,\n wizi_admin_api: \"https://admin.wizilocal.com/\",\n wizi_api: \"https://api.wizilocal.com/v3\",\n CDN_URL: \"http://debugshop.wizilocal.com/_i/\",\n assets_route : \"assets/img-manager/\",\n translations_route : \"./assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: 131,\n token : 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1c2VyX2lkIjo2LCJ1c2VyX2xvY2FsZSI6ImZyX0ZSIiwiaXNVc2VyQ29ubmVjdGVkRnJvbVZwbiI6ZmFsc2UsImV4cCI6MTY3NDM3NDkxMSwiaWF0IjoxNjcxNzgyOTExfQ.DbdBTaVLzLx5pE2FHTg8K0FcMsOY7yg7hAz7bjBQt4afke2ef_MfhXZx9ajtj6BciOsY5eYRgDp3r747iLc7CSThC6cNgPYZ9oMtN3MbFRYi5bktmPUVfbs2oxfWe9sNDwdpgMtw00d8YIO3ZTFZb3XzXW1hQIS2Ooy5x0GTGRgegIDAJYrVyVs8AC3TG8ZaC8g73iSMFnCrG85TAFbgjJb8ccU0HfB-h1I9LPE2LUzI5QE2vbsd6qo1XU59belW1SPv92Wgcd9IiHwuoeO3C2S2rQGUp-L8qprT6f5IeX-rp3XVmOVhTCNM4Dc0FdPdpL6p2jMVhhhu62fOZtNEXA'\n },\n product_sheet_endpoint: \"/products/ajax\",\n isPhotosTab: true\n};\n\nexport const environmentWiziDev: Environment = {\n isWizishopcom: true,\n production: false,\n wizi_admin_api: \"https://admin.wizilocal.com/\",\n wizi_api: \"https://api.wizilocal.com/v3\",\n CDN_URL: \"https://media.wizilocal.com/_i/\",\n assets_route : \"https://js.wizilocal.com/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.wizilocal.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentProd: Environment = {\n isWizishopcom: true,\n production: true,\n wizi_admin_api: \"https://admin.wizishop.com/\",\n wizi_api: \"https://api.wizishop.com/v3\",\n CDN_URL: \"https://media.cdnws.com/_i/\",\n assets_route : \"https://js.wizishop.com/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.wizishop.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentDropiziDev: Environment = {\n isWizishopcom: true,\n production: false,\n wizi_admin_api: \"https://admin.dropilocal.com/\",\n wizi_api: \"https://api.dropilocal.com/v3\",\n CDN_URL: \"https://media.dropilocal.com/_i/\",\n assets_route : \"https://js.dropilocal.fr/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.dropilocal.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentDropiziProd: Environment = {\n isWizishopcom: true,\n production: true,\n wizi_admin_api: \"https://admin.dropizi.fr/\",\n wizi_api: \"https://api.wizishop.com/v3\",\n CDN_URL: \"https://media.cdnws.com/_i/\",\n assets_route : \"https://js.dropizi.fr/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.dropizi.fr/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nfunction getCurrentEnv() {\n const isDev = !!window.location.hostname.match(/local/);\n const isWizi = !!window.location.hostname.match(/wizi/);\n const serverLocal = !!window.location.port;\n\n if (serverLocal) {\n return environmentWiziDevLocal;\n }\n if (isDev) {\n if (isWizi) {\n return environmentWiziDev;\n }\n return environmentDropiziDev;\n } else {\n if (isWizi) {\n return environmentProd;\n }\n return environmentDropiziProd;\n }\n}\n\nexport const environment: Environment = Object.assign({}, getCurrentEnv());","import { Injectable } from '@angular/core';\nimport { ImgPictureDTO } from '@wizishop/img-manager';\nimport { fromEvent } from 'rxjs';\nimport { environment } from '../environments/environment';\n\n@Injectable()\nexport class EventService {\n\n // Sometimes, there are multiple img manager that listen at the same time at imgSelected event\n // It use by the listener, to know if the event is for him\n emitter: string;\n\n constructor() { }\n\n sendImgSelectedToPage(file : ImgPictureDTO) {\n const sendedFile = {\n ...file,\n cdn_img_src: ''\n };\n if (sendedFile) {\n sendedFile.cdn_img_src = `${environment.CDN_URL}${file.id_shop}/`;\n }\n\n const value = {\n detail: {\n \"file\": sendedFile,\n \"from\": this.emitter\n }\n };\n const event = new CustomEvent('imgSelected', value);\n const imgManagerModule= document.getElementById('imgManagerModule');\n imgManagerModule?.dispatchEvent(event);\n }\n\n pageAskForImg() {\n return fromEvent<any>(document.getElementById('imgManagerModule') as any, \"openImgManager\");\n }\n\n setEmitter(emitter: string) {\n this.emitter = emitter;\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { forkJoin, fromEvent, Observable, Subscription } from \"rxjs\";\nimport { take } from 'rxjs/operators';\nimport { CanvaService, ImgPictureDTO, ImgSelectionService } from '@wizishop/img-manager';\nimport { EventService } from './event.service';\nimport { WiziBlockMediaDto } from '@wizishop/img-manager/lib/dto/wizi-block-media.dto';\nimport { environment } from '../environments/environment';\n\ndeclare const Wizi: any;\n\n@Injectable()\nexport class FicheProductService {\n\n productSheetApiRoute: string;\n image_manager_api: string = environment.wizi_api + \"/image-manager/shops/\";\n shopToken: string;\n shopId: number;\n productId: string;\n isPhotosTab: boolean = false; // State of the Photos tabs in fiche product page\n isPreviousTabPhotos: boolean = false;\n isVariantsTab: boolean = false;\n loadProductImgSelection:boolean = false;\n currentProductImgSelection: ImgPictureDTO[];\n isProductCreation: boolean;\n expectedMediaDto:WiziBlockMediaDto = {\n id: '',\n image_url: '',\n image_width: '900',\n image_height: '900',\n }\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private http: HttpClient,\n private imgSelectionService: ImgSelectionService,\n private eventService: EventService,\n private canvaService: CanvaService,\n ) { }\n\n setApiConfig(shop_id: number, shop_token: string) {\n this.shopToken = shop_token;\n this.shopId = shop_id;\n\n const matches = window.location.pathname.match( /\\/(\\w+)\\/products\\/(\\d+)\\/edit/);\n const lang = matches && matches[1] ? matches[1] : 'fr';\n this.productSheetApiRoute = environment.wizi_admin_api + lang + environment.product_sheet_endpoint;\n this.productId = matches && matches[2] ? matches[2] : \"0\";\n this.isProductCreation = /\\/products\\/create/.test(window.location.pathname);\n }\n\n /**\n * There is only one instance of this img manager.\n * But it is called with different config, by Photos tab and Variation tab, on fiche product page.\n * The method handle the switch config between Photos and Variation tab.\n * Return an observable : true => Photos tab / false => Variation tab.\n * */\n handleTabs():Observable<boolean> {\n return new Observable(observer => {\n\n const switchTabsSub =\n this.switchTabs().subscribe(data => {\n\n if (!data || !data[\"detail\"] || !data[\"detail\"][\"currentTab\"]) {\n return;\n }\n // Retrieve current tab\n const currentTab = data[\"detail\"][\"currentTab\"];\n this.isPreviousTabPhotos = this.isPhotosTab;\n this.isPhotosTab = currentTab === 'photos';\n this.isVariantsTab = currentTab === 'variation';\n\n // The user switch to Photos tab\n if (this.isPhotosTab) {\n this.loadProductImgSelection = true;\n if (!this.currentProductImgSelection || !this.currentProductImgSelection.length) {\n this.initProductImgSelection();\n } else {\n this.applyCurrentImgSelection();\n this.loadProductImgSelection = false;\n }\n\n } else if (this.isPreviousTabPhotos) { // The user switch to another tab\n // Save current img selection, in order to not lose the img selection\n this.saveCurrentImgSelection();\n }\n observer.next(this.isPhotosTab);\n });\n this.subscriptions.push(switchTabsSub);\n });\n }\n\n getShopImg(idFile: string): Observable<any> {\n return this.http.get(`${this.image_manager_api}${this.shopId}/images/${idFile}`, this.getOptionsHeadersWithBearer());\n }\n\n initProductImgSelection() {\n\n // Display the loader in img list selection\n this.imgSelectionService.imgSelectedListLoading$.next(true);\n\n // retrieve img selection\n const retrieveImgSelectionSub =\n this.retrieveImgSelection().subscribe(data => {\n\n // No imgage selected\n if (!data || !data[\"photos\"] || !data[\"photos\"][\"infos\"] || !data[\"photos\"][\"infos\"][\"files\"] || !data[\"photos\"][\"infos\"][\"files\"].length) {\n this.loadProductImgSelection = false;\n\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n return;\n }\n\n const idImgSelectionList: number[] = data[\"photos\"][\"infos\"][\"files\"];\n const obsImg: Observable<any>[] = [];\n\n idImgSelectionList.forEach(idFile =>\n obsImg.push(\n this.getShopImg(idFile.toString()).pipe(take(1))\n ));\n const allImgSub =\n forkJoin(obsImg).subscribe((photos: ImgPictureDTO[]) => {\n // The img selection must be saved, otherwise it is lost when the user switch on variation tab\n this.saveCurrentImgSelection(photos);\n this.applyCurrentImgSelection();\n this.loadProductImgSelection = false;\n },\n error => {\n // Hide the loader in img list selection\n this.loadProductImgSelection = false;\n\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n });\n this.subscriptions.push(allImgSub);\n });\n\n this.subscriptions.push(retrieveImgSelectionSub);\n this.canvaService.expectedImgSizesChange(this.expectedMediaDto);\n }\n\n retrieveInfoSelection() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"getInfos\");\n formData.append('prodId', this.productId);\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n retrieveImgSelection() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"getAllInfos\");\n formData.append('prodId', this.productId);\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post<any>(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n updateImgSelectionOnChange() {\n // listen to the img manager change\n const imgSelectionSub =\n this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {\n if (!imgSelectionList) {\n return;\n }\n\n // Send the img selection\n if (this.isPhotosTab && !this.loadProductImgSelection) {\n // Retrieve only the img id\n const idImgSelectedList: number[] = [];\n imgSelectionList.forEach(img => {\n idImgSelectedList.push(parseInt(img.id_file));\n });\n\n this.updateProductImgSelection(idImgSelectedList);\n\n // On variation tab, send event with img selected\n } else if (!this.isPhotosTab && imgSelectionList.length) {\n this.eventService.sendImgSelectedToPage(imgSelectionList[0]);\n }\n });\n this.subscriptions.push(imgSelectionSub);\n }\n\n updateProductImgSelection(idsImgList: number[]) {\n if ((!this.productId || this.productId === \"0\") && Wizi._produit.global.PROD_ID) {\n this.productId = Wizi._produit.global.PROD_ID.toString();\n }\n\n Wizi._produit._dataTmp['photos'].infos = {};\n Wizi._produit._dataTmp['photos'].infos.files = idsImgList;\n this.emitImgSelectionChange(idsImgList);\n\n if (this.productId && this.productId !== \"0\") {\n const submitProd1 =\n this.submitProductImg(idsImgList).subscribe();\n this.subscriptions.push(submitProd1);\n return;\n }\n const createProductSub =\n this.createProduct().subscribe(\n (productId:number) => {\n if (!productId) {\n throw \"No product id created. Can not link image(s) to the new product.\";\n }\n Wizi._produit.global.PROD_ID = productId;\n\n this.productId = productId.toString();\n this.submitProductImg(idsImgList).subscribe();\n }\n );\n this.subscriptions.push(createProductSub);\n\n }\n\n submitProductImg(idsImgList: number[]) {\n const data = {\n files : idsImgList,\n couls: []\n };\n\n const formData = new FormData();\n formData.append('rub', \"photos\");\n formData.append('action', \"save\");\n formData.append('newProd', this.isProductCreation ? \"1\" : \"0\");\n formData.append('prodId', this.productId);\n formData.append('_token', this.shopToken);\n formData.append('_shid', this.shopId.toString());\n formData.append('data', JSON.stringify(data));\n\n return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n createProduct() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"createProd\");\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post<number>(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n\n }\n\n /* Use to know where the img manager is displayed, and to close it when switching tab */\n switchTabs() {\n return fromEvent<any>(document.getElementById('imgManagerModule') as any, \"switchTab\");\n }\n\n private emitImgSelectionChange(idsImgList: number[]) {\n const value = {\n detail: {\n idsImgList\n }\n };\n\n const event = new CustomEvent('onImgSelectionChange', value);\n const imgManagerModule= document.getElementById('imgManagerModule');\n imgManagerModule?.dispatchEvent(event);\n }\n\n private saveCurrentImgSelection(imgSelection?: ImgPictureDTO[]) {\n this.currentProductImgSelection = imgSelection ? imgSelection : JSON.parse(JSON.stringify(this.imgSelectionService.getImgSelection()));\n }\n\n private applyCurrentImgSelection() {\n this.imgSelectionService.setImgSelection(this.currentProductImgSelection);\n // Hide the loader in img list selection\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n }\n\n private getOptionsHeaders() {\n const header = { headers: new HttpHeaders({\n 'Access-Control-Allow-Origin':'*'\n })\n };\n return header;\n }\n\n private getOptionsHeadersWithBearer() {\n const header = { headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.shopToken\n })\n };\n return header;\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n}","import { Injectable } from '@angular/core';\n\nimport { StorageByKey } from '@wizishop/ng-web-storages/shared';\n\n@Injectable()\nexport abstract class AuthCredentialsService extends StorageByKey<AuthCredentials> {\n}\n\nexport interface AuthCredentials {\n token: string;\n user_id: number;\n account_id: number;\n shop_id: number;\n};\n","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { ImgPicturesDTO, ImgPictureDTO, ApiService } from \"@wizishop/img-manager\";\nimport { Observable, tap } from \"rxjs\";\nimport { environment } from '../environments/environment';\n\n\n@Injectable()\nexport class WebelementImageManagerApiService implements ApiService {\n\n shopId: number = null;\n shopToken: string;\n\n CONFIG = {\n image_manager_route: environment.wizi_api + \"/image-manager/shops/\" + this.shopId,\n canva_token: 'wdByHayF5v57nj2ZSLvu055O',\n canva_url: 'https://sdk.canva.com/designbutton/v2/api.js',\n pexels_token: '563492ad6f91700001000001e39215727d8b42c1b08498a9ce1e6b94',\n pexels_route: 'https://api.pexels.com/v1',\n shop_category: 'other', // The shop category is retrieve later with the setShopCategory methode\n assets_route: environment.assets_route,\n }\n\n IMG_SIZE = {\n url_raw_image: `${environment.CDN_URL}${this.shopId}/RAW-`,\n url_100_image: `${environment.CDN_URL}${this.shopId}/m100-`,\n url_200_image: `${environment.CDN_URL}${this.shopId}/cs200-`,\n url_400_image: `${environment.CDN_URL}${this.shopId}/cs400-`,\n url_800_image: `${environment.CDN_URL}${this.shopId}/cs800-`\n }\n\n constructor(private http: HttpClient) {\n }\n\n private getOptionsHeaders(params?: HttpParams) {\n const header = { headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.shopToken\n })\n };\n if (params) {\n header['params'] = params\n }\n return header;\n }\n\n getShopCategory(): string {\n return 'other';\n }\n\n getShopImgList(params?: HttpParams): Observable<ImgPicturesDTO> {\n return this.http.get<ImgPicturesDTO>(`${this.CONFIG.image_manager_route}/images`, this.getOptionsHeaders(params));\n }\n\n getShopTotalImgList(params?: HttpParams) {\n return this.http.get<number>(`${this.CONFIG.image_manager_route}/total/images`, this.getOptionsHeaders(params));\n }\n\n getShopImg(idFile: string): Observable<ImgPictureDTO> {\n return this.http.get<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${idFile}`, this.getOptionsHeaders());\n }\n\n uploadFile(formData: FormData) {\n return this.http.post<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/template`, formData, this.getOptionsHeaders());\n }\n\n uploadFileByUrl(url: string, fileName?: string) {\n return this.http.post<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/template`, { url, fileName }, this.getOptionsHeaders());\n }\n\n replaceImg(imageBase64: string, id_file: string) {\n const body = {\n imageBase64,\n type : \"RAW\"\n }\n return this.http.put<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}/replace`, body, this.getOptionsHeaders());\n }\n\n changeImgName(fileName: string, id_file: string) {\n return this.http.put<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}?file_name=${fileName}`, null, this.getOptionsHeaders());\n }\n\n removeImg(id_file: string) {\n return this.http.delete<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}`, this.getOptionsHeaders());\n }\n\n removeMultipleImg(id_array: string[]) {\n return this.http.post<ImgPictureDTO[]>(`${this.CONFIG.image_manager_route}/images-multiple-delete`, { id_array }, this.getOptionsHeaders());\n }\n\n setShopCategory(shopId: number) {\n return this.http.get<{\n category: string\n }>(`${environment.wizi_api}/shops/${shopId}`, this.getOptionsHeaders()).pipe(\n tap((shop => {\n if (shop && shop['category']) {\n this.CONFIG.shop_category = shop['category'];\n }\n }))\n );\n }\n\n}","import { Component } from '@angular/core';\nimport { ImgManagerConfigDto, CanvaService, ImgManagerDisplayConfig, ImgManagerService } from '@wizishop/img-manager';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription, from as fromPromise } from 'rxjs';\nimport { FicheProductService } from './services/fiche_products.service';\nimport { AuthCredentials, AuthCredentialsService } from './services/auth-credentials.service';\nimport { EventService } from './services/event.service';\nimport { environment } from './environments/environment';\nimport { ImgSelectionService } from '@wizishop/img-manager';\nimport { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';\n\n@Component({\n selector: 'img-manager-webelement',\n templateUrl: './img-manager-webelement.component.html',\n styleUrls: ['./img-manager-webelement.component.scss'],\n providers: [\n ImgSelectionService\n ]\n})\nexport class ImgManagerWebElementComponent {\n // shop config\n id_shop: number;\n token_shop: string;\n\n // img manger config\n openImgManager:boolean = false;\n loading: boolean = true;\n imgExternalConfig: ImgManagerConfigDto;\n imgManagerDisplayConfig: ImgManagerDisplayConfig;\n pageFicheProductConfig: ImgManagerDisplayConfig;\n pageEventConfig: ImgManagerDisplayConfig;\n\n // fiche product config\n isPhotosTab: boolean = !!environment.isPhotosTab;\n\n subscriptions: Subscription[] = [];\n\n constructor(\n private translateService: TranslateService,\n private canvaService: CanvaService,\n private ficheProductService: FicheProductService,\n private authCredentialsService: AuthCredentialsService,\n private eventService: EventService,\n private imgManagerService: ImgManagerService,\n private imgSelectionService: ImgSelectionService,\n private webelementImageManagerApiService: WebelementImageManagerApiService\n ){}\n\n ngOnInit() {\n this.loading = true;\n this.pageFicheProductConfig = this.imgManagerService.getImgManagerDisplayConfig(\"fiche-product\");\n this.pageEventConfig = this.imgManagerService.getImgManagerDisplayConfig(\"wizi-block\");\n this.setCurrentLanguage();\n // Search on which page is display the img manger\n this.setDisplayedPageConfig();\n\n const subCredentials =\n this.getCredentials().subscribe(authCredentials => {\n this.loading = false;\n this.initVariables(authCredentials);\n // Fiche product page\n if (this.imgManagerDisplayConfig.pageficheProduct) {\n this.setFicheProductPage();\n } else {\n this.setPageWithEvents();\n }\n });\n this.subscriptions.push(subCredentials);\n }\n\n initVariables(authCredentials: AuthCredentials | null) {\n if (!authCredentials) {\n\n if (environment.isWizishopcom) {\n return;\n }\n // Run on local Server\n this.setAppVars(environment.local.shopId, environment.local.token);\n this.imgManagerDisplayConfig = this.pageFicheProductConfig;\n return;\n }\n\n this.setAppVars(authCredentials.shop_id, authCredentials.token);\n }\n\n setFicheProductPage() {\n this.ficheProductService.setApiConfig(this.id_shop, this.token_shop);\n this.handleFicheProductTab(); // Display different img manager config according to the tab\n this.closeImgManagerOnSwitchingTab();\n this.subscribePageAskForImg(); // Use for images in variations tab\n this.ficheProductService.updateImgSelectionOnChange();\n }\n\n setPageWithEvents() {\n this.subscribePageAskForImg();\n\n // Send img selected\n const subImgSelection = this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {\n if (imgSelectionList && imgSelectionList.length) {\n this.eventService.sendImgSelectedToPage(imgSelectionList[0]);\n }\n });\n this.subscriptions.push(subImgSelection);\n }\n\n subscribePageAskForImg() {\n // Listen to page editor ask for img event\n const subAskForImg = this.eventService.pageAskForImg().subscribe( data => {\n // Retrieve which img manager send the event\n const emitter = data && data[\"detail\"] ? data[\"detail\"][\"from\"] : null;\n this.eventService.setEmitter(emitter);\n\n this.imgSelectionService.setImgSelection([]);\n\n this.open();\n });\n this.subscriptions.push(subAskForImg);\n }\n\n open() {\n this.openImgManager = true;\n }\n\n onImgManagerClosed() {\n // Close img manager\n this.openImgManager = false;\n }\n\n setCurrentLanguage() {\n const matches = window.location.pathname.match( /^\\/(\\w+)\\//);\n this.translateService.use(matches && matches[1] ? matches[1] : 'fr');\n }\n\n setDisplayedPageConfig() {\n const isFicheProductPage = /\\/products\\/(\\d+\\/edit|create)/.test(window.location.pathname);\n this.imgManagerDisplayConfig = isFicheProductPage ? this.pageFicheProductConfig : this.pageEventConfig;\n }\n\n handleFicheProductTab() {\n const tabsSub =\n this.ficheProductService.handleTabs().subscribe(isPhotosTab => {\n this.imgManagerDisplayConfig = isPhotosTab ? this.pageFicheProductConfig : this.pageEventConfig;\n this.isPhotosTab = isPhotosTab;\n });\n this.subscriptions.push(tabsSub);\n }\n\n closeImgManagerOnSwitchingTab() {\n const tabsCloseSub =\n this.ficheProductService.switchTabs().subscribe(data => {\n this.openImgManager = false;\n });\n\n this.subscriptions.push(tabsCloseSub);\n }\n\n private getCredentials<AuthCredentials>() {\n return fromPromise(this.authCredentialsService.get());\n }\n\n private setAppVars(shopId: number, token: string) {\n this.webelementImageManagerApiService.shopToken = token;\n this.webelementImageManagerApiService.shopId = shopId;\n if (shopId) {\n this.webelementImageManagerApiService.setShopCategory(shopId).subscribe();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n}\n","<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>","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule, inject } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ImgManagerWebElementComponent } from './img-manager-webelement.component';\nimport { AuthCredentials, AuthCredentialsService } from './services/auth-credentials.service';\nimport { EventService } from './services/event.service';\nimport { FicheProductService } from './services/fiche_products.service';\nimport { ApiService, WzImgManagerModule } from '@wizishop/img-manager';\nimport { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';\nimport { StorageByKey } from '@wizishop/ng-web-storages/shared';\nimport { environment } from './environments/environment';\nimport { LocalStorageService } from '@wizishop/ng-web-storages/local-storage';\n\n@NgModule({\n declarations: [ImgManagerWebElementComponent],\n imports: [\n CommonModule,\n HttpClientModule,\n WzImgManagerModule.withConfig({\n provide: ApiService,\n useExisting: WebelementImageManagerApiService,\n }),\n TranslateModule,\n ],\n exports: [ImgManagerWebElementComponent],\n providers: [\n {\n provide: WebelementImageManagerApiService,\n useClass: WebelementImageManagerApiService,\n },\n FicheProductService,\n EventService,\n {\n provide: AuthCredentialsService,\n useFactory: () => new StorageByKey<AuthCredentials>(inject(LocalStorageService), environment.wiziApiCredentialsKey),\n }\n ]\n})\nexport class ImgManagerWebElementModule { }\n","/*\n * Public API Surface of img-manager-webelement\n */\nexport * from './lib/img-manager-webelement.component';\nexport * from './lib/img-manager-webelement.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.EventService","fromPromise","i1","i3.FicheProductService","i4.AuthCredentialsService","i5.EventService","i6.WebelementImageManagerApiService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wizishop-img-manager-webelement.mjs","sources":["../../../../projects/img-manager-webelement/src/lib/environments/environment.ts","../../../../projects/img-manager-webelement/src/lib/services/event.service.ts","../../../../projects/img-manager-webelement/src/lib/services/auth-credentials.service.ts","../../../../projects/img-manager-webelement/src/lib/services/fiche_products.service.ts","../../../../projects/img-manager-webelement/src/lib/services/webelement-image-manager-api.config.ts","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.component.ts","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.component.html","../../../../projects/img-manager-webelement/src/lib/img-manager-webelement.module.ts","../../../../projects/img-manager-webelement/src/public-api.ts","../../../../projects/img-manager-webelement/src/wizishop-img-manager-webelement.ts"],"sourcesContent":["export interface Environment {\n isWizishopcom: boolean;\n production: boolean;\n wizi_admin_api: string;\n wizi_api: string;\n CDN_URL: string;\n assets_route: string;\n translations_route: string;\n wiziApiCredentialsKey: string;\n local: any;\n product_sheet_endpoint: string;\n isPhotosTab?: boolean;\n}\n\n// Use locally for this project\nexport const environmentWiziDevLocal: Environment = {\n isWizishopcom: false,\n production: false,\n wizi_admin_api: \"https://admin.wizilocal.com/\",\n wizi_api: \"https://api.wizilocal.com/v3\",\n CDN_URL: \"http://debugshop.wizilocal.com/_i/\",\n assets_route : \"assets/img-manager/\",\n translations_route : \"./assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: 131,\n token : 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1c2VyX2lkIjo2LCJ1c2VyX2xvY2FsZSI6ImZyX0ZSIiwiaXNVc2VyQ29ubmVjdGVkRnJvbVZwbiI6ZmFsc2UsImV4cCI6MTY3NDM3NDkxMSwiaWF0IjoxNjcxNzgyOTExfQ.DbdBTaVLzLx5pE2FHTg8K0FcMsOY7yg7hAz7bjBQt4afke2ef_MfhXZx9ajtj6BciOsY5eYRgDp3r747iLc7CSThC6cNgPYZ9oMtN3MbFRYi5bktmPUVfbs2oxfWe9sNDwdpgMtw00d8YIO3ZTFZb3XzXW1hQIS2Ooy5x0GTGRgegIDAJYrVyVs8AC3TG8ZaC8g73iSMFnCrG85TAFbgjJb8ccU0HfB-h1I9LPE2LUzI5QE2vbsd6qo1XU59belW1SPv92Wgcd9IiHwuoeO3C2S2rQGUp-L8qprT6f5IeX-rp3XVmOVhTCNM4Dc0FdPdpL6p2jMVhhhu62fOZtNEXA'\n },\n product_sheet_endpoint: \"/products/ajax\",\n isPhotosTab: true\n};\n\nexport const environmentWiziDev: Environment = {\n isWizishopcom: true,\n production: false,\n wizi_admin_api: \"https://admin.wizilocal.com/\",\n wizi_api: \"https://api.wizilocal.com/v3\",\n CDN_URL: \"https://media.wizilocal.com/_i/\",\n assets_route : \"https://js.wizilocal.com/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.wizilocal.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentProd: Environment = {\n isWizishopcom: true,\n production: true,\n wizi_admin_api: \"https://admin.wizishop.com/\",\n wizi_api: \"https://api.wizishop.com/v3\",\n CDN_URL: \"https://media.cdnws.com/_i/\",\n assets_route : \"https://js.wizishop.com/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.wizishop.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentDropiziDev: Environment = {\n isWizishopcom: true,\n production: false,\n wizi_admin_api: \"https://admin.dropilocal.com/\",\n wizi_api: \"https://api.dropilocal.com/v3\",\n CDN_URL: \"https://media.dropilocal.com/_i/\",\n assets_route : \"https://js.dropilocal.fr/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.dropilocal.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nexport const environmentDropiziProd: Environment = {\n isWizishopcom: true,\n production: true,\n wizi_admin_api: \"https://admin.dropizi.fr/\",\n wizi_api: \"https://api.wizishop.com/v3\",\n CDN_URL: \"https://media.cdnws.com/_i/\",\n assets_route : \"https://js.dropizi.fr/a/libs/img-manager-webelement/assets/img-manager/\",\n translations_route : \"https://js.dropizi.fr/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\n local: {\n shopId: null,\n token : null\n },\n product_sheet_endpoint: \"/products/ajax\"\n};\n\nfunction getCurrentEnv() {\n const isDev = !!window.location.hostname.match(/local/);\n const isWizi = !!window.location.hostname.match(/wizi/);\n const serverLocal = !!window.location.port;\n\n if (serverLocal) {\n return environmentWiziDevLocal;\n }\n if (isDev) {\n if (isWizi) {\n return environmentWiziDev;\n }\n return environmentDropiziDev;\n } else {\n if (isWizi) {\n return environmentProd;\n }\n return environmentDropiziProd;\n }\n}\n\nexport const environment: Environment = Object.assign({}, getCurrentEnv());","import { Injectable } from '@angular/core';\nimport { ImgPictureDTO } from '@wizishop/img-manager';\nimport { fromEvent } from 'rxjs';\nimport { environment } from '../environments/environment';\n\n@Injectable()\nexport class EventService {\n\n // Sometimes, there are multiple img manager that listen at the same time at imgSelected event\n // It use by the listener, to know if the event is for him\n emitter: string;\n\n constructor() { }\n\n sendImgSelectedToPage(file : ImgPictureDTO) {\n const sendedFile = {\n ...file,\n cdn_img_src: ''\n };\n if (sendedFile) {\n sendedFile.cdn_img_src = `${environment.CDN_URL}${file.id_shop}/`;\n }\n\n const value = {\n detail: {\n \"file\": sendedFile,\n \"from\": this.emitter\n }\n };\n const event = new CustomEvent('imgSelected', value);\n const imgManagerModule= document.getElementById('imgManagerModule');\n imgManagerModule?.dispatchEvent(event);\n }\n\n pageAskForImg() {\n return fromEvent<any>(document.getElementById('imgManagerModule') as any, \"openImgManager\");\n }\n\n setEmitter(emitter: string) {\n this.emitter = emitter;\n }\n}","import { Injectable } from '@angular/core';\n\nimport { StorageByKey } from '@wizishop/ng-web-storages/shared';\n\n@Injectable()\nexport abstract class AuthCredentialsService extends StorageByKey<AuthCredentials> {\n}\n\nexport interface AuthCredentials {\n token: string;\n user_id: number;\n account_id: number;\n shop_id: number;\n};\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { forkJoin, fromEvent, Observable, Subscription } from \"rxjs\";\nimport { take } from 'rxjs/operators';\nimport { CanvaService, ImgPictureDTO, ImgSelectionService } from '@wizishop/img-manager';\nimport { EventService } from './event.service';\nimport { WiziBlockMediaDto } from '@wizishop/img-manager/lib/dto/wizi-block-media.dto';\nimport { environment } from '../environments/environment';\nimport { AuthCredentialsService } from './auth-credentials.service';\n\ndeclare const Wizi: any;\n\n@Injectable()\nexport class FicheProductService {\n\n productSheetApiRoute: string;\n image_manager_api: string = environment.wizi_api + \"/image-manager/shops/\";\n shopToken: string = this.authCredentialsService.getSync().token;\n shopId: number = this.authCredentialsService.getSync().shop_id;\n productId: string;\n isPhotosTab: boolean = false; // State of the Photos tabs in fiche product page\n isPreviousTabPhotos: boolean = false;\n isVariantsTab: boolean = false;\n loadProductImgSelection:boolean = false;\n currentProductImgSelection: ImgPictureDTO[];\n isProductCreation: boolean;\n expectedMediaDto:WiziBlockMediaDto = {\n id: '',\n image_url: '',\n image_width: '900',\n image_height: '900',\n }\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private http: HttpClient,\n private imgSelectionService: ImgSelectionService,\n private eventService: EventService,\n private canvaService: CanvaService,\n private authCredentialsService: AuthCredentialsService\n ) { }\n\n setApiConfig() {\n const matches = window.location.pathname.match( /\\/(\\w+)\\/products\\/(\\d+)\\/edit/);\n const lang = matches && matches[1] ? matches[1] : 'fr';\n this.productSheetApiRoute = environment.wizi_admin_api + lang + environment.product_sheet_endpoint;\n this.productId = matches && matches[2] ? matches[2] : \"0\";\n this.isProductCreation = /\\/products\\/create/.test(window.location.pathname);\n }\n\n /**\n * There is only one instance of this img manager.\n * But it is called with different config, by Photos tab and Variation tab, on fiche product page.\n * The method handle the switch config between Photos and Variation tab.\n * Return an observable : true => Photos tab / false => Variation tab.\n * */\n handleTabs():Observable<boolean> {\n return new Observable(observer => {\n\n const switchTabsSub =\n this.switchTabs().subscribe(data => {\n\n if (!data || !data[\"detail\"] || !data[\"detail\"][\"currentTab\"]) {\n return;\n }\n // Retrieve current tab\n const currentTab = data[\"detail\"][\"currentTab\"];\n this.isPreviousTabPhotos = this.isPhotosTab;\n this.isPhotosTab = currentTab === 'photos';\n this.isVariantsTab = currentTab === 'variation';\n\n // The user switch to Photos tab\n if (this.isPhotosTab) {\n this.loadProductImgSelection = true;\n if (!this.currentProductImgSelection || !this.currentProductImgSelection.length) {\n this.initProductImgSelection();\n } else {\n this.applyCurrentImgSelection();\n this.loadProductImgSelection = false;\n }\n\n } else if (this.isPreviousTabPhotos) { // The user switch to another tab\n // Save current img selection, in order to not lose the img selection\n this.saveCurrentImgSelection();\n }\n observer.next(this.isPhotosTab);\n });\n this.subscriptions.push(switchTabsSub);\n });\n }\n\n getShopImg(idFile: string): Observable<any> {\n return this.http.get(`${this.image_manager_api}${this.shopId}/images/${idFile}`, this.getOptionsHeadersWithBearer());\n }\n\n initProductImgSelection() {\n\n // Display the loader in img list selection\n this.imgSelectionService.imgSelectedListLoading$.next(true);\n\n // retrieve img selection\n const retrieveImgSelectionSub =\n this.retrieveImgSelection().subscribe(data => {\n\n // No imgage selected\n if (!data || !data[\"photos\"] || !data[\"photos\"][\"infos\"] || !data[\"photos\"][\"infos\"][\"files\"] || !data[\"photos\"][\"infos\"][\"files\"].length) {\n this.loadProductImgSelection = false;\n\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n return;\n }\n\n const idImgSelectionList: number[] = data[\"photos\"][\"infos\"][\"files\"];\n const obsImg: Observable<any>[] = [];\n\n idImgSelectionList.forEach(idFile =>\n obsImg.push(\n this.getShopImg(idFile.toString()).pipe(take(1))\n ));\n const allImgSub =\n forkJoin(obsImg).subscribe((photos: ImgPictureDTO[]) => {\n // The img selection must be saved, otherwise it is lost when the user switch on variation tab\n this.saveCurrentImgSelection(photos);\n this.applyCurrentImgSelection();\n this.loadProductImgSelection = false;\n },\n error => {\n // Hide the loader in img list selection\n this.loadProductImgSelection = false;\n\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n });\n this.subscriptions.push(allImgSub);\n });\n\n this.subscriptions.push(retrieveImgSelectionSub);\n this.canvaService.expectedImgSizesChange(this.expectedMediaDto);\n }\n\n retrieveInfoSelection() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"getInfos\");\n formData.append('prodId', this.productId);\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n retrieveImgSelection() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"getAllInfos\");\n formData.append('prodId', this.productId);\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post<any>(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n updateImgSelectionOnChange() {\n // listen to the img manager change\n const imgSelectionSub =\n this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {\n if (!imgSelectionList) {\n return;\n }\n\n // Send the img selection\n if (this.isPhotosTab && !this.loadProductImgSelection) {\n // Retrieve only the img id\n const idImgSelectedList: number[] = [];\n imgSelectionList.forEach(img => {\n idImgSelectedList.push(parseInt(img.id_file));\n });\n\n this.updateProductImgSelection(idImgSelectedList);\n\n // On variation tab, send event with img selected\n } else if (!this.isPhotosTab && imgSelectionList.length) {\n this.eventService.sendImgSelectedToPage(imgSelectionList[0]);\n }\n });\n this.subscriptions.push(imgSelectionSub);\n }\n\n updateProductImgSelection(idsImgList: number[]) {\n if ((!this.productId || this.productId === \"0\") && Wizi._produit.global.PROD_ID) {\n this.productId = Wizi._produit.global.PROD_ID.toString();\n }\n\n Wizi._produit._dataTmp['photos'].infos = {};\n Wizi._produit._dataTmp['photos'].infos.files = idsImgList;\n this.emitImgSelectionChange(idsImgList);\n\n if (this.productId && this.productId !== \"0\") {\n const submitProd1 =\n this.submitProductImg(idsImgList).subscribe();\n this.subscriptions.push(submitProd1);\n return;\n }\n const createProductSub =\n this.createProduct().subscribe(\n (productId:number) => {\n if (!productId) {\n throw \"No product id created. Can not link image(s) to the new product.\";\n }\n Wizi._produit.global.PROD_ID = productId;\n\n this.productId = productId.toString();\n this.submitProductImg(idsImgList).subscribe();\n }\n );\n this.subscriptions.push(createProductSub);\n\n }\n\n submitProductImg(idsImgList: number[]) {\n const data = {\n files : idsImgList,\n couls: []\n };\n\n const formData = new FormData();\n formData.append('rub', \"photos\");\n formData.append('action', \"save\");\n formData.append('newProd', this.isProductCreation ? \"1\" : \"0\");\n formData.append('prodId', this.productId);\n formData.append('_token', this.shopToken);\n formData.append('_shid', this.shopId.toString());\n formData.append('data', JSON.stringify(data));\n\n return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n }\n\n createProduct() {\n const formData = new FormData();\n formData.append('rub', \"main\");\n formData.append('action', \"createProd\");\n formData.append('_token', '');\n formData.append('_shid', this.shopId.toString());\n\n return this.http.post<number>(this.productSheetApiRoute, formData, this.getOptionsHeaders());\n\n }\n\n /* Use to know where the img manager is displayed, and to close it when switching tab */\n switchTabs() {\n return fromEvent<any>(document.getElementById('imgManagerModule') as any, \"switchTab\");\n }\n\n private emitImgSelectionChange(idsImgList: number[]) {\n const value = {\n detail: {\n idsImgList\n }\n };\n\n const event = new CustomEvent('onImgSelectionChange', value);\n const imgManagerModule= document.getElementById('imgManagerModule');\n imgManagerModule?.dispatchEvent(event);\n }\n\n private saveCurrentImgSelection(imgSelection?: ImgPictureDTO[]) {\n this.currentProductImgSelection = imgSelection ? imgSelection : JSON.parse(JSON.stringify(this.imgSelectionService.getImgSelection()));\n }\n\n private applyCurrentImgSelection() {\n this.imgSelectionService.setImgSelection(this.currentProductImgSelection);\n // Hide the loader in img list selection\n this.imgSelectionService.imgSelectedListLoading$.next(false);\n }\n\n private getOptionsHeaders() {\n const header = { headers: new HttpHeaders({\n 'Access-Control-Allow-Origin':'*'\n })\n };\n return header;\n }\n\n private getOptionsHeadersWithBearer() {\n const header = { headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.shopToken\n })\n };\n return header;\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n}","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { ImgPicturesDTO, ImgPictureDTO, ApiService } from \"@wizishop/img-manager\";\nimport { Observable, tap } from \"rxjs\";\nimport { environment } from '../environments/environment';\n\n\n@Injectable()\nexport class WebelementImageManagerApiService implements ApiService {\n\n shopId: number = null;\n shopToken: string;\n\n CONFIG = {\n image_manager_route: environment.wizi_api + \"/image-manager/shops/\" + this.shopId,\n canva_token: 'wdByHayF5v57nj2ZSLvu055O',\n canva_url: 'https://sdk.canva.com/designbutton/v2/api.js',\n pexels_token: '563492ad6f91700001000001e39215727d8b42c1b08498a9ce1e6b94',\n pexels_route: 'https://api.pexels.com/v1',\n shop_category: 'other', // The shop category is retrieve later with the setShopCategory methode\n assets_route: environment.assets_route,\n }\n\n IMG_SIZE = {\n url_raw_image: `${environment.CDN_URL}${this.shopId}/RAW-`,\n url_100_image: `${environment.CDN_URL}${this.shopId}/m100-`,\n url_200_image: `${environment.CDN_URL}${this.shopId}/cs200-`,\n url_400_image: `${environment.CDN_URL}${this.shopId}/cs400-`,\n url_800_image: `${environment.CDN_URL}${this.shopId}/cs800-`\n }\n\n constructor(private http: HttpClient) {\n }\n\n private getOptionsHeaders(params?: HttpParams) {\n const header = { headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.shopToken\n })\n };\n if (params) {\n header['params'] = params\n }\n return header;\n }\n\n getShopCategory(): string {\n return 'other';\n }\n\n getShopImgList(params?: HttpParams): Observable<ImgPicturesDTO> {\n return this.http.get<ImgPicturesDTO>(`${this.CONFIG.image_manager_route}/images`, this.getOptionsHeaders(params));\n }\n\n getShopTotalImgList(params?: HttpParams) {\n return this.http.get<number>(`${this.CONFIG.image_manager_route}/total/images`, this.getOptionsHeaders(params));\n }\n\n getShopImg(idFile: string): Observable<ImgPictureDTO> {\n return this.http.get<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${idFile}`, this.getOptionsHeaders());\n }\n\n uploadFile(formData: FormData) {\n return this.http.post<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/template`, formData, this.getOptionsHeaders());\n }\n\n uploadFileByUrl(url: string, fileName?: string) {\n return this.http.post<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/template`, { url, fileName }, this.getOptionsHeaders());\n }\n\n replaceImg(imageBase64: string, id_file: string) {\n const body = {\n imageBase64,\n type : \"RAW\"\n }\n return this.http.put<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}/replace`, body, this.getOptionsHeaders());\n }\n\n changeImgName(fileName: string, id_file: string) {\n return this.http.put<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}?file_name=${fileName}`, null, this.getOptionsHeaders());\n }\n\n removeImg(id_file: string) {\n return this.http.delete<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}`, this.getOptionsHeaders());\n }\n\n removeMultipleImg(id_array: string[]) {\n return this.http.post<ImgPictureDTO[]>(`${this.CONFIG.image_manager_route}/images-multiple-delete`, { id_array }, this.getOptionsHeaders());\n }\n\n setShopCategory(shopId: number) {\n return this.http.get<{\n category: string\n }>(`${environment.wizi_api}/shops/${shopId}`, this.getOptionsHeaders()).pipe(\n tap((shop => {\n if (shop && shop['category']) {\n this.CONFIG.shop_category = shop['category'];\n }\n }))\n );\n }\n\n}","import { Component } from '@angular/core';\nimport { ImgManagerConfigDto, CanvaService, ImgManagerDisplayConfig, ImgManagerService } from '@wizishop/img-manager';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { FicheProductService } from './services/fiche_products.service';\nimport { AuthCredentials, AuthCredentialsService } from './services/auth-credentials.service';\nimport { EventService } from './services/event.service';\nimport { environment } from './environments/environment';\nimport { ImgSelectionService } from '@wizishop/img-manager';\nimport { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';\n\n@Component({\n selector: 'img-manager-webelement',\n templateUrl: './img-manager-webelement.component.html',\n styleUrls: ['./img-manager-webelement.component.scss'],\n providers: [\n ImgSelectionService\n ]\n})\nexport class ImgManagerWebElementComponent {\n // shop config\n id_shop: number;\n token_shop: string;\n\n // img manger config\n openImgManager:boolean = false;\n loading: boolean = true;\n imgExternalConfig: ImgManagerConfigDto;\n imgManagerDisplayConfig: ImgManagerDisplayConfig;\n pageFicheProductConfig: ImgManagerDisplayConfig;\n pageEventConfig: ImgManagerDisplayConfig;\n\n // fiche product config\n isPhotosTab: boolean = !!environment.isPhotosTab;\n\n subscriptions: Subscription[] = [];\n\n constructor(\n private translateService: TranslateService,\n private canvaService: CanvaService,\n private ficheProductService: FicheProductService,\n private authCredentialsService: AuthCredentialsService,\n private eventService: EventService,\n private imgManagerService: ImgManagerService,\n private imgSelectionService: ImgSelectionService,\n private webelementImageManagerApiService: WebelementImageManagerApiService,\n ){}\n\n ngOnInit() {\n this.loading = true;\n this.pageFicheProductConfig = this.imgManagerService.getImgManagerDisplayConfig(\"fiche-product\");\n this.pageEventConfig = this.imgManagerService.getImgManagerDisplayConfig(\"wizi-block\");\n this.setCurrentLanguage();\n // Search on which page is display the img manger\n this.setDisplayedPageConfig();\n\n this.loading = false;\n this.initVariables(this.authCredentialsService.getSync());\n // Fiche product page\n if (this.imgManagerDisplayConfig.pageficheProduct) {\n this.setFicheProductPage();\n } else {\n this.setPageWithEvents();\n }\n }\n\n initVariables(authCredentials: AuthCredentials | null) {\n if (!authCredentials) {\n\n if (environment.isWizishopcom) {\n return;\n }\n // Run on local Server\n this.setAppVars(environment.local.shopId, environment.local.token);\n this.imgManagerDisplayConfig = this.pageFicheProductConfig;\n return;\n }\n\n this.setAppVars(authCredentials.shop_id, authCredentials.token);\n }\n\n setFicheProductPage() {\n this.ficheProductService.setApiConfig();\n this.handleFicheProductTab(); // Display different img manager config according to the tab\n this.closeImgManagerOnSwitchingTab();\n this.subscribePageAskForImg(); // Use for images in variations tab\n this.ficheProductService.updateImgSelectionOnChange();\n }\n\n setPageWithEvents() {\n this.subscribePageAskForImg();\n\n // Send img selected\n const subImgSelection = this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {\n if (imgSelectionList && imgSelectionList.length) {\n this.eventService.sendImgSelectedToPage(imgSelectionList[0]);\n }\n });\n this.subscriptions.push(subImgSelection);\n }\n\n subscribePageAskForImg() {\n // Listen to page editor ask for img event\n const subAskForImg = this.eventService.pageAskForImg().subscribe( data => {\n // Retrieve which img manager send the event\n const emitter = data && data[\"detail\"] ? data[\"detail\"][\"from\"] : null;\n this.eventService.setEmitter(emitter);\n\n this.imgSelectionService.setImgSelection([]);\n\n this.open();\n });\n this.subscriptions.push(subAskForImg);\n }\n\n open() {\n this.openImgManager = true;\n }\n\n onImgManagerClosed() {\n // Close img manager\n this.openImgManager = false;\n }\n\n setCurrentLanguage() {\n const matches = window.location.pathname.match( /^\\/(\\w+)\\//);\n this.translateService.use(matches && matches[1] ? matches[1] : 'fr');\n }\n\n setDisplayedPageConfig() {\n const isFicheProductPage = /\\/products\\/(\\d+\\/edit|create)/.test(window.location.pathname);\n this.imgManagerDisplayConfig = isFicheProductPage ? this.pageFicheProductConfig : this.pageEventConfig;\n }\n\n handleFicheProductTab() {\n const tabsSub =\n this.ficheProductService.handleTabs().subscribe(isPhotosTab => {\n this.imgManagerDisplayConfig = isPhotosTab ? this.pageFicheProductConfig : this.pageEventConfig;\n this.isPhotosTab = isPhotosTab;\n });\n this.subscriptions.push(tabsSub);\n }\n\n closeImgManagerOnSwitchingTab() {\n const tabsCloseSub =\n this.ficheProductService.switchTabs().subscribe(data => {\n this.openImgManager = false;\n });\n\n this.subscriptions.push(tabsCloseSub);\n }\n\n private setAppVars(shopId: number, token: string) {\n this.webelementImageManagerApiService.shopToken = token;\n this.webelementImageManagerApiService.shopId = shopId;\n if (shopId) {\n this.webelementImageManagerApiService.setShopCategory(shopId).subscribe();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n}\n","<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>","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule, inject } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ImgManagerWebElementComponent } from './img-manager-webelement.component';\nimport { AuthCredentials, AuthCredentialsService } from './services/auth-credentials.service';\nimport { EventService } from './services/event.service';\nimport { FicheProductService } from './services/fiche_products.service';\nimport { ApiService, WzImgManagerModule } from '@wizishop/img-manager';\nimport { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';\nimport { StorageByKey } from '@wizishop/ng-web-storages/shared';\nimport { environment } from './environments/environment';\nimport { LocalStorageService } from '@wizishop/ng-web-storages/local-storage';\n\n@NgModule({\n declarations: [ImgManagerWebElementComponent],\n imports: [\n CommonModule,\n HttpClientModule,\n WzImgManagerModule.withConfig({\n provide: ApiService,\n useExisting: WebelementImageManagerApiService,\n }),\n TranslateModule,\n ],\n exports: [ImgManagerWebElementComponent],\n providers: [\n {\n provide: WebelementImageManagerApiService,\n useClass: WebelementImageManagerApiService,\n },\n FicheProductService,\n EventService,\n {\n provide: AuthCredentialsService,\n useFactory: () => new StorageByKey<AuthCredentials>(inject(LocalStorageService), environment.wiziApiCredentialsKey),\n }\n ]\n})\nexport class ImgManagerWebElementModule { }\n","/*\n * Public API Surface of img-manager-webelement\n */\nexport * from './lib/img-manager-webelement.component';\nexport * from './lib/img-manager-webelement.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.EventService","i4.AuthCredentialsService","i1","i3.FicheProductService","i5.EventService","i6.WebelementImageManagerApiService"],"mappings":"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"}
|
|
@@ -38,7 +38,6 @@ export declare class ImgManagerWebElementComponent {
|
|
|
38
38
|
setDisplayedPageConfig(): void;
|
|
39
39
|
handleFicheProductTab(): void;
|
|
40
40
|
closeImgManagerOnSwitchingTab(): void;
|
|
41
|
-
private getCredentials;
|
|
42
41
|
private setAppVars;
|
|
43
42
|
ngOnDestroy(): void;
|
|
44
43
|
static ɵfac: i0.ɵɵFactoryDeclaration<ImgManagerWebElementComponent, never>;
|
|
@@ -3,12 +3,14 @@ import { Observable } from "rxjs";
|
|
|
3
3
|
import { CanvaService, ImgPictureDTO, ImgSelectionService } from '@wizishop/img-manager';
|
|
4
4
|
import { EventService } from './event.service';
|
|
5
5
|
import { WiziBlockMediaDto } from '@wizishop/img-manager/lib/dto/wizi-block-media.dto';
|
|
6
|
+
import { AuthCredentialsService } from './auth-credentials.service';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class FicheProductService {
|
|
8
9
|
private http;
|
|
9
10
|
private imgSelectionService;
|
|
10
11
|
private eventService;
|
|
11
12
|
private canvaService;
|
|
13
|
+
private authCredentialsService;
|
|
12
14
|
productSheetApiRoute: string;
|
|
13
15
|
image_manager_api: string;
|
|
14
16
|
shopToken: string;
|
|
@@ -22,8 +24,8 @@ export declare class FicheProductService {
|
|
|
22
24
|
isProductCreation: boolean;
|
|
23
25
|
expectedMediaDto: WiziBlockMediaDto;
|
|
24
26
|
private subscriptions;
|
|
25
|
-
constructor(http: HttpClient, imgSelectionService: ImgSelectionService, eventService: EventService, canvaService: CanvaService);
|
|
26
|
-
setApiConfig(
|
|
27
|
+
constructor(http: HttpClient, imgSelectionService: ImgSelectionService, eventService: EventService, canvaService: CanvaService, authCredentialsService: AuthCredentialsService);
|
|
28
|
+
setApiConfig(): void;
|
|
27
29
|
/**
|
|
28
30
|
* There is only one instance of this img manager.
|
|
29
31
|
* But it is called with different config, by Photos tab and Variation tab, on fiche product page.
|