@wizishop/img-manager-webelement 15.2.54 → 18.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/{esm2020 → esm2022}/lib/environments/environment.mjs +1 -1
- package/esm2022/lib/img-manager-webelement.component.mjs +135 -0
- package/esm2022/lib/img-manager-webelement.module.mjs +50 -0
- package/{esm2020 → esm2022}/lib/services/auth-credentials.service.mjs +4 -4
- package/esm2022/lib/services/event.service.mjs +40 -0
- package/esm2022/lib/services/fiche_products.service.mjs +253 -0
- package/esm2022/lib/services/webelement-image-manager-api.config.mjs +89 -0
- package/{esm2020 → esm2022}/public-api.mjs +1 -1
- package/{fesm2020 → fesm2022}/wizishop-img-manager-webelement.mjs +102 -74
- package/fesm2022/wizishop-img-manager-webelement.mjs.map +1 -0
- package/img-manager-webelement.scss +1 -0
- package/lib/img-manager-webelement.component.d.ts +2 -2
- package/package.json +20 -25
- package/esm2020/lib/img-manager-webelement.component.mjs +0 -122
- package/esm2020/lib/img-manager-webelement.module.mjs +0 -50
- package/esm2020/lib/services/event.service.mjs +0 -37
- package/esm2020/lib/services/fiche_products.service.mjs +0 -242
- package/esm2020/lib/services/webelement-image-manager-api.config.mjs +0 -88
- package/fesm2015/wizishop-img-manager-webelement.mjs +0 -639
- package/fesm2015/wizishop-img-manager-webelement.mjs.map +0 -1
- package/fesm2020/wizishop-img-manager-webelement.mjs.map +0 -1
- package/img-manager-webelement.css +0 -1
- /package/{esm2020 → esm2022}/wizishop-img-manager-webelement.mjs +0 -0
|
@@ -124,6 +124,9 @@ function getCurrentEnv() {
|
|
|
124
124
|
const environment = Object.assign({}, getCurrentEnv());
|
|
125
125
|
|
|
126
126
|
class EventService {
|
|
127
|
+
// Sometimes, there are multiple img manager that listen at the same time at imgSelected event
|
|
128
|
+
// It use by the listener, to know if the event is for him
|
|
129
|
+
emitter;
|
|
127
130
|
constructor() { }
|
|
128
131
|
sendImgSelectedToPage(file) {
|
|
129
132
|
const sendedFile = {
|
|
@@ -149,18 +152,18 @@ class EventService {
|
|
|
149
152
|
setEmitter(emitter) {
|
|
150
153
|
this.emitter = emitter;
|
|
151
154
|
}
|
|
155
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
156
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EventService });
|
|
152
157
|
}
|
|
153
|
-
|
|
154
|
-
EventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EventService });
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EventService, decorators: [{
|
|
158
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EventService, decorators: [{
|
|
156
159
|
type: Injectable
|
|
157
|
-
}], ctorParameters:
|
|
160
|
+
}], ctorParameters: () => [] });
|
|
158
161
|
|
|
159
162
|
class AuthCredentialsService extends StorageByKey {
|
|
163
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthCredentialsService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
164
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthCredentialsService });
|
|
160
165
|
}
|
|
161
|
-
|
|
162
|
-
AuthCredentialsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService });
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService, decorators: [{
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthCredentialsService, decorators: [{
|
|
164
167
|
type: Injectable
|
|
165
168
|
}] });
|
|
166
169
|
const provideAuthCredentialsService = () => ({
|
|
@@ -170,26 +173,37 @@ const provideAuthCredentialsService = () => ({
|
|
|
170
173
|
;
|
|
171
174
|
|
|
172
175
|
class FicheProductService {
|
|
176
|
+
http;
|
|
177
|
+
imgSelectionService;
|
|
178
|
+
eventService;
|
|
179
|
+
canvaService;
|
|
180
|
+
authCredentialsService;
|
|
181
|
+
productSheetApiRoute;
|
|
182
|
+
image_manager_api = environment.wizi_api + "/image-manager/shops/";
|
|
183
|
+
shopToken;
|
|
184
|
+
shopId;
|
|
185
|
+
productId;
|
|
186
|
+
isPhotosTab = false; // State of the Photos tabs in fiche product page
|
|
187
|
+
isPreviousTabPhotos = false;
|
|
188
|
+
isVariantsTab = false;
|
|
189
|
+
loadProductImgSelection = false;
|
|
190
|
+
currentProductImgSelection;
|
|
191
|
+
isProductCreation;
|
|
192
|
+
expectedMediaDto = {
|
|
193
|
+
id: '',
|
|
194
|
+
image_url: '',
|
|
195
|
+
image_width: '900',
|
|
196
|
+
image_height: '900',
|
|
197
|
+
};
|
|
198
|
+
subscriptions = [];
|
|
173
199
|
constructor(http, imgSelectionService, eventService, canvaService, authCredentialsService) {
|
|
174
200
|
this.http = http;
|
|
175
201
|
this.imgSelectionService = imgSelectionService;
|
|
176
202
|
this.eventService = eventService;
|
|
177
203
|
this.canvaService = canvaService;
|
|
178
204
|
this.authCredentialsService = authCredentialsService;
|
|
179
|
-
this.image_manager_api = environment.wizi_api + "/image-manager/shops/";
|
|
180
|
-
this.shopToken = this.authCredentialsService.getSync().data.token;
|
|
181
205
|
this.shopId = this.authCredentialsService.getSync().data.shop_id;
|
|
182
|
-
this.
|
|
183
|
-
this.isPreviousTabPhotos = false;
|
|
184
|
-
this.isVariantsTab = false;
|
|
185
|
-
this.loadProductImgSelection = false;
|
|
186
|
-
this.expectedMediaDto = {
|
|
187
|
-
id: '',
|
|
188
|
-
image_url: '',
|
|
189
|
-
image_width: '900',
|
|
190
|
-
image_height: '900',
|
|
191
|
-
};
|
|
192
|
-
this.subscriptions = [];
|
|
206
|
+
this.shopToken = this.authCredentialsService.getSync().data.token;
|
|
193
207
|
}
|
|
194
208
|
setApiConfig() {
|
|
195
209
|
const matches = window.location.pathname.match(/\/(\w+)\/products\/(\d+)\/edit/);
|
|
@@ -394,14 +408,34 @@ class FicheProductService {
|
|
|
394
408
|
ngOnDestroy() {
|
|
395
409
|
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
396
410
|
}
|
|
411
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FicheProductService, deps: [{ token: i1.HttpClient }, { token: i2.ImgSelectionService }, { token: EventService }, { token: i2.CanvaService }, { token: AuthCredentialsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
412
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FicheProductService });
|
|
397
413
|
}
|
|
398
|
-
|
|
399
|
-
FicheProductService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService });
|
|
400
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FicheProductService, decorators: [{
|
|
414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FicheProductService, decorators: [{
|
|
401
415
|
type: Injectable
|
|
402
|
-
}], ctorParameters:
|
|
416
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ImgSelectionService }, { type: EventService }, { type: i2.CanvaService }, { type: AuthCredentialsService }] });
|
|
403
417
|
|
|
404
418
|
class ImgManagerWebElementComponent {
|
|
419
|
+
translateService;
|
|
420
|
+
canvaService;
|
|
421
|
+
ficheProductService;
|
|
422
|
+
authCredentialsService;
|
|
423
|
+
eventService;
|
|
424
|
+
imgManagerService;
|
|
425
|
+
imgSelectionService;
|
|
426
|
+
// shop config
|
|
427
|
+
id_shop;
|
|
428
|
+
token_shop;
|
|
429
|
+
// img manger config
|
|
430
|
+
openImgManager = false;
|
|
431
|
+
loading = true;
|
|
432
|
+
imgExternalConfig;
|
|
433
|
+
imgManagerDisplayConfig;
|
|
434
|
+
pageFicheProductConfig;
|
|
435
|
+
pageEventConfig;
|
|
436
|
+
// fiche product config
|
|
437
|
+
isPhotosTab = !!environment.isPhotosTab;
|
|
438
|
+
subscriptions = [];
|
|
405
439
|
constructor(translateService, canvaService, ficheProductService, authCredentialsService, eventService, imgManagerService, imgSelectionService) {
|
|
406
440
|
this.translateService = translateService;
|
|
407
441
|
this.canvaService = canvaService;
|
|
@@ -410,17 +444,10 @@ class ImgManagerWebElementComponent {
|
|
|
410
444
|
this.eventService = eventService;
|
|
411
445
|
this.imgManagerService = imgManagerService;
|
|
412
446
|
this.imgSelectionService = imgSelectionService;
|
|
413
|
-
// shop config
|
|
414
447
|
this.id_shop = this.authCredentialsService.getSync().data.shop_id;
|
|
415
448
|
this.token_shop = this.authCredentialsService.getSync().data.token;
|
|
416
|
-
// img manger config
|
|
417
|
-
this.openImgManager = false;
|
|
418
|
-
this.loading = true;
|
|
419
449
|
this.pageFicheProductConfig = this.imgManagerService.getImgManagerDisplayConfig("fiche-product");
|
|
420
450
|
this.pageEventConfig = this.imgManagerService.getImgManagerDisplayConfig("wizi-block");
|
|
421
|
-
// fiche product config
|
|
422
|
-
this.isPhotosTab = !!environment.isPhotosTab;
|
|
423
|
-
this.subscriptions = [];
|
|
424
451
|
}
|
|
425
452
|
ngOnInit() {
|
|
426
453
|
this.loading = true;
|
|
@@ -506,36 +533,37 @@ class ImgManagerWebElementComponent {
|
|
|
506
533
|
ngOnDestroy() {
|
|
507
534
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
508
535
|
}
|
|
536
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImgManagerWebElementComponent, deps: [{ token: i1$1.TranslateService }, { token: i2.CanvaService }, { token: FicheProductService }, { token: AuthCredentialsService }, { token: EventService }, { token: i2.ImgManagerService }, { token: i2.ImgSelectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
537
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ImgManagerWebElementComponent, selector: "img-manager-webelement", ngImport: i0, template: "<div class=\"info-bulle\">\r\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\r\n\r\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\r\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\r\n\r\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\r\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\r\n </p>\r\n\r\n <div class=\"imgManagerBox\">\r\n <wz-img-manager\r\n #wzImgManager\r\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\r\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\r\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\r\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\r\n (imgManagerClosed)=\"onImgManagerClosed()\">\r\n </wz-img-manager>\r\n </div>\r\n </ng-container>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.WzImgManagerComponent, selector: "wz-img-manager", inputs: ["stateDisplayed", "showSelection", "forceToOpenCanva", "multipleImgMode", "showImgManagerModule"], outputs: ["imgManagerClosed", "imgSelectionChange", "imageUploaded"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
|
|
509
538
|
}
|
|
510
|
-
|
|
511
|
-
ImgManagerWebElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ImgManagerWebElementComponent, selector: "img-manager-webelement", ngImport: i0, template: "<div class=\"info-bulle\">\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\n\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\n\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\n </p>\n\n <div class=\"imgManagerBox\">\n <wz-img-manager\n #wzImgManager\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\n (imgManagerClosed)=\"onImgManagerClosed()\">\n </wz-img-manager>\n </div>\n </ng-container>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.WzImgManagerComponent, selector: "wz-img-manager", inputs: ["stateDisplayed", "showSelection", "forceToOpenCanva", "multipleImgMode", "showImgManagerModule"], outputs: ["imgManagerClosed", "imgSelectionChange", "imageUploaded"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
|
|
512
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementComponent, decorators: [{
|
|
539
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImgManagerWebElementComponent, decorators: [{
|
|
513
540
|
type: Component,
|
|
514
|
-
args: [{ selector: 'img-manager-webelement', template: "<div class=\"info-bulle\">\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\n\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\n\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\n </p>\n\n <div class=\"imgManagerBox\">\n <wz-img-manager\n #wzImgManager\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\n (imgManagerClosed)=\"onImgManagerClosed()\">\n </wz-img-manager>\n </div>\n </ng-container>\n</div>" }]
|
|
515
|
-
}], ctorParameters:
|
|
541
|
+
args: [{ selector: 'img-manager-webelement', template: "<div class=\"info-bulle\">\r\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\r\n\r\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\r\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\r\n\r\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\r\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\r\n </p>\r\n\r\n <div class=\"imgManagerBox\">\r\n <wz-img-manager\r\n #wzImgManager\r\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\r\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\r\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\r\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\r\n (imgManagerClosed)=\"onImgManagerClosed()\">\r\n </wz-img-manager>\r\n </div>\r\n </ng-container>\r\n</div>" }]
|
|
542
|
+
}], ctorParameters: () => [{ type: i1$1.TranslateService }, { type: i2.CanvaService }, { type: FicheProductService }, { type: AuthCredentialsService }, { type: EventService }, { type: i2.ImgManagerService }, { type: i2.ImgSelectionService }] });
|
|
516
543
|
|
|
517
544
|
class WebelementImageManagerApiService {
|
|
545
|
+
http;
|
|
546
|
+
authCredentialsService = inject(AuthCredentialsService);
|
|
547
|
+
shopId = this.authCredentialsService.getSync().data.shop_id;
|
|
548
|
+
shopToken = this.authCredentialsService.getSync().data.token;
|
|
549
|
+
CONFIG = {
|
|
550
|
+
image_manager_route: environment.wizi_api + "/image-manager/shops/" + this.shopId,
|
|
551
|
+
canva_token: 'wdByHayF5v57nj2ZSLvu055O',
|
|
552
|
+
canva_url: 'https://sdk.canva.com/designbutton/v2/api.js',
|
|
553
|
+
pexels_token: environment.pexels_token,
|
|
554
|
+
pexels_route: 'https://api.pexels.com/v1',
|
|
555
|
+
shop_category: 'other', // The shop category is retrieve later with the setShopCategory methode
|
|
556
|
+
assets_route: environment.assets_route,
|
|
557
|
+
};
|
|
558
|
+
IMG_SIZE = {
|
|
559
|
+
url_raw_image: `${environment.CDN_URL}${this.shopId}/RAW-`,
|
|
560
|
+
url_100_image: `${environment.CDN_URL}${this.shopId}/m100-`,
|
|
561
|
+
url_200_image: `${environment.CDN_URL}${this.shopId}/cs200-`,
|
|
562
|
+
url_400_image: `${environment.CDN_URL}${this.shopId}/cs400-`,
|
|
563
|
+
url_800_image: `${environment.CDN_URL}${this.shopId}/cs800-`
|
|
564
|
+
};
|
|
518
565
|
constructor(http) {
|
|
519
566
|
this.http = http;
|
|
520
|
-
this.authCredentialsService = inject(AuthCredentialsService);
|
|
521
|
-
this.shopId = this.authCredentialsService.getSync().data.shop_id;
|
|
522
|
-
this.shopToken = this.authCredentialsService.getSync().data.token;
|
|
523
|
-
this.CONFIG = {
|
|
524
|
-
image_manager_route: environment.wizi_api + "/image-manager/shops/" + this.shopId,
|
|
525
|
-
canva_token: 'wdByHayF5v57nj2ZSLvu055O',
|
|
526
|
-
canva_url: 'https://sdk.canva.com/designbutton/v2/api.js',
|
|
527
|
-
pexels_token: environment.pexels_token,
|
|
528
|
-
pexels_route: 'https://api.pexels.com/v1',
|
|
529
|
-
shop_category: 'other',
|
|
530
|
-
assets_route: environment.assets_route,
|
|
531
|
-
};
|
|
532
|
-
this.IMG_SIZE = {
|
|
533
|
-
url_raw_image: `${environment.CDN_URL}${this.shopId}/RAW-`,
|
|
534
|
-
url_100_image: `${environment.CDN_URL}${this.shopId}/m100-`,
|
|
535
|
-
url_200_image: `${environment.CDN_URL}${this.shopId}/cs200-`,
|
|
536
|
-
url_400_image: `${environment.CDN_URL}${this.shopId}/cs400-`,
|
|
537
|
-
url_800_image: `${environment.CDN_URL}${this.shopId}/cs800-`
|
|
538
|
-
};
|
|
539
567
|
}
|
|
540
568
|
getOptionsHeaders(params) {
|
|
541
569
|
const header = { headers: new HttpHeaders({
|
|
@@ -588,30 +616,30 @@ class WebelementImageManagerApiService {
|
|
|
588
616
|
}
|
|
589
617
|
})));
|
|
590
618
|
}
|
|
619
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WebelementImageManagerApiService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
620
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WebelementImageManagerApiService });
|
|
591
621
|
}
|
|
592
|
-
|
|
593
|
-
WebelementImageManagerApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: WebelementImageManagerApiService });
|
|
594
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: WebelementImageManagerApiService, decorators: [{
|
|
622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WebelementImageManagerApiService, decorators: [{
|
|
595
623
|
type: Injectable
|
|
596
|
-
}], ctorParameters:
|
|
624
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
597
625
|
|
|
598
626
|
class ImgManagerWebElementModule {
|
|
627
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImgManagerWebElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
628
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: ImgManagerWebElementModule, declarations: [ImgManagerWebElementComponent], imports: [CommonModule,
|
|
629
|
+
HttpClientModule, i2.WzImgManagerModule, TranslateModule], exports: [ImgManagerWebElementComponent] });
|
|
630
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImgManagerWebElementModule, providers: [
|
|
631
|
+
FicheProductService,
|
|
632
|
+
EventService,
|
|
633
|
+
provideAuthCredentialsService()
|
|
634
|
+
], imports: [CommonModule,
|
|
635
|
+
HttpClientModule,
|
|
636
|
+
WzImgManagerModule.withConfig({
|
|
637
|
+
provide: ApiService,
|
|
638
|
+
useClass: WebelementImageManagerApiService,
|
|
639
|
+
}),
|
|
640
|
+
TranslateModule] });
|
|
599
641
|
}
|
|
600
|
-
|
|
601
|
-
ImgManagerWebElementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, declarations: [ImgManagerWebElementComponent], imports: [CommonModule,
|
|
602
|
-
HttpClientModule, i2.WzImgManagerModule, TranslateModule], exports: [ImgManagerWebElementComponent] });
|
|
603
|
-
ImgManagerWebElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, providers: [
|
|
604
|
-
FicheProductService,
|
|
605
|
-
EventService,
|
|
606
|
-
provideAuthCredentialsService()
|
|
607
|
-
], imports: [CommonModule,
|
|
608
|
-
HttpClientModule,
|
|
609
|
-
WzImgManagerModule.withConfig({
|
|
610
|
-
provide: ApiService,
|
|
611
|
-
useClass: WebelementImageManagerApiService,
|
|
612
|
-
}),
|
|
613
|
-
TranslateModule] });
|
|
614
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, decorators: [{
|
|
642
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ImgManagerWebElementModule, decorators: [{
|
|
615
643
|
type: NgModule,
|
|
616
644
|
args: [{
|
|
617
645
|
declarations: [ImgManagerWebElementComponent],
|
|
@@ -0,0 +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/auth-credentials.service.ts","../../../../projects/img-manager-webelement/src/lib/services/fiche_products.service.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/services/webelement-image-manager-api.config.ts","../../../../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 {\r\n isWizishopcom: boolean;\r\n production: boolean;\r\n wizi_admin_api: string;\r\n wizi_api: string;\r\n CDN_URL: string;\r\n assets_route: string;\r\n translations_route: string;\r\n wiziApiCredentialsKey: string;\r\n local: any;\r\n product_sheet_endpoint: string;\r\n isPhotosTab?: boolean;\r\n pexels_token: string;\r\n}\r\n\r\n// Use locally for this project\r\nexport const environmentWiziDevLocal: Environment = {\r\n isWizishopcom: false,\r\n production: false,\r\n wizi_admin_api: \"https://admin.wizilocal.com/\",\r\n wizi_api: \"https://api.wizilocal.com/v3\",\r\n CDN_URL: \"http://debugshop.wizilocal.com/_i/\",\r\n assets_route : \"assets/img-manager/\",\r\n translations_route : \"./assets/img-manager/i18n/\",\r\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\r\n local: {\r\n shopId: 131,\r\n token : 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1c2VyX2lkIjo2LCJ1c2VyX2xvY2FsZSI6ImZyX0ZSIiwiaXNVc2VyQ29ubmVjdGVkRnJvbVZwbiI6ZmFsc2UsImV4cCI6MTY3NDM3NDkxMSwiaWF0IjoxNjcxNzgyOTExfQ.DbdBTaVLzLx5pE2FHTg8K0FcMsOY7yg7hAz7bjBQt4afke2ef_MfhXZx9ajtj6BciOsY5eYRgDp3r747iLc7CSThC6cNgPYZ9oMtN3MbFRYi5bktmPUVfbs2oxfWe9sNDwdpgMtw00d8YIO3ZTFZb3XzXW1hQIS2Ooy5x0GTGRgegIDAJYrVyVs8AC3TG8ZaC8g73iSMFnCrG85TAFbgjJb8ccU0HfB-h1I9LPE2LUzI5QE2vbsd6qo1XU59belW1SPv92Wgcd9IiHwuoeO3C2S2rQGUp-L8qprT6f5IeX-rp3XVmOVhTCNM4Dc0FdPdpL6p2jMVhhhu62fOZtNEXA'\r\n },\r\n product_sheet_endpoint: \"/products/ajax\",\r\n isPhotosTab: true,\r\n pexels_token: '563492ad6f91700001000001e39215727d8b42c1b08498a9ce1e6b94'\r\n};\r\n\r\nexport const environmentWiziDev: Environment = {\r\n isWizishopcom: true,\r\n production: false,\r\n wizi_admin_api: \"https://admin.wizilocal.com/\",\r\n wizi_api: \"https://api.wizilocal.com/v3\",\r\n CDN_URL: \"https://media.wizilocal.com/_i/\",\r\n assets_route : \"https://js.wizilocal.com/a/libs/img-manager-webelement/assets/img-manager/\",\r\n translations_route : \"https://js.wizilocal.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\r\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\r\n local: {\r\n shopId: null,\r\n token : null\r\n },\r\n product_sheet_endpoint: \"/products/ajax\",\r\n pexels_token: '563492ad6f91700001000001e39215727d8b42c1b08498a9ce1e6b94'\r\n};\r\n\r\nexport const environmentWizishopProd: Environment = {\r\n isWizishopcom: true,\r\n production: true,\r\n wizi_admin_api: \"https://admin.wizishop.com/\",\r\n wizi_api: \"https://api.wizishop.com/v3\",\r\n CDN_URL: \"https://media.cdnws.com/_i/\",\r\n assets_route : \"https://js.wizishop.com/a/libs/img-manager-webelement/assets/img-manager/\",\r\n translations_route : \"https://js.wizishop.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\r\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\r\n local: {\r\n shopId: null,\r\n token : null\r\n },\r\n product_sheet_endpoint: \"/products/ajax\",\r\n pexels_token: '563492ad6f91700001000001e39215727d8b42c1b08498a9ce1e6b94'\r\n};\r\n\r\nexport const environmentEvolupProd: Environment = {\r\n ...environmentWizishopProd,\r\n pexels_token: 'Q3qRBpJpomRu9AOFc2bOzRPfhIUou2LxZkqYYyKCZm2kGY19DxYdTMpE'\r\n};\r\n\r\nexport const environmentDropiziDev: Environment = {\r\n isWizishopcom: true,\r\n production: false,\r\n wizi_admin_api: \"https://admin.dropilocal.com/\",\r\n wizi_api: \"https://api.dropilocal.com/v3\",\r\n CDN_URL: \"https://media.dropilocal.com/_i/\",\r\n assets_route : \"https://js.dropilocal.fr/a/libs/img-manager-webelement/assets/img-manager/\",\r\n translations_route : \"https://js.dropilocal.com/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\r\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\r\n local: {\r\n shopId: null,\r\n token : null\r\n },\r\n product_sheet_endpoint: \"/products/ajax\",\r\n pexels_token: 'QWTAGfv4wb14tTP62xxBE2DDnzdGxsBaTr4NXh1te2qDZ9lVPLDSWx0U'\r\n};\r\n\r\nexport const environmentDropiziProd: Environment = {\r\n isWizishopcom: true,\r\n production: true,\r\n wizi_admin_api: \"https://admin.dropizi.fr/\",\r\n wizi_api: \"https://api.wizishop.com/v3\",\r\n CDN_URL: \"https://media.cdnws.com/_i/\",\r\n assets_route : \"https://js.dropizi.fr/a/libs/img-manager-webelement/assets/img-manager/\",\r\n translations_route : \"https://js.dropizi.fr/a/libs/img-manager-webelement/assets/img-manager/i18n/\",\r\n wiziApiCredentialsKey: 'wizi_api_credentials_key',\r\n local: {\r\n shopId: null,\r\n token : null\r\n },\r\n product_sheet_endpoint: \"/products/ajax\",\r\n pexels_token: 'QWTAGfv4wb14tTP62xxBE2DDnzdGxsBaTr4NXh1te2qDZ9lVPLDSWx0U'\r\n};\r\n\r\nfunction getCurrentEnv() {\r\n const isDev = !!window.location.hostname.match(/local/);\r\n const isWizi = !!window.location.hostname.match(/wizi/);\r\n const isEvolup = !!window.location.hostname.match(/evolup/);\r\n const serverLocal = !!window.location.port;\r\n\r\n if (serverLocal) {\r\n return environmentWiziDevLocal;\r\n }\r\n if (isDev) {\r\n if (isWizi) {\r\n return environmentWiziDev;\r\n }\r\n return environmentDropiziDev;\r\n }\r\n\r\n if (isEvolup) {\r\n return environmentEvolupProd;\r\n }\r\n\r\n if (isWizi) {\r\n return environmentWizishopProd;\r\n }\r\n\r\n return environmentDropiziProd;\r\n}\r\n\r\nexport const environment: Environment = Object.assign({}, getCurrentEnv());","import { Injectable } from '@angular/core';\r\nimport { ImgPictureDTO } from '@wizishop/img-manager';\r\nimport { fromEvent } from 'rxjs';\r\nimport { environment } from '../environments/environment';\r\n\r\n@Injectable()\r\nexport class EventService {\r\n\r\n // Sometimes, there are multiple img manager that listen at the same time at imgSelected event\r\n // It use by the listener, to know if the event is for him\r\n emitter: string;\r\n\r\n constructor() { }\r\n\r\n sendImgSelectedToPage(file : ImgPictureDTO) {\r\n const sendedFile = {\r\n ...file,\r\n cdn_img_src: ''\r\n };\r\n if (sendedFile) {\r\n sendedFile.cdn_img_src = `${environment.CDN_URL}${file.id_shop}/`;\r\n }\r\n\r\n const value = {\r\n detail: {\r\n \"file\": sendedFile,\r\n \"from\": this.emitter\r\n }\r\n };\r\n const event = new CustomEvent('imgSelected', value);\r\n const imgManagerModule= document.getElementById('imgManagerModule');\r\n imgManagerModule?.dispatchEvent(event);\r\n }\r\n\r\n pageAskForImg() {\r\n return fromEvent<any>(document.getElementById('imgManagerModule') as any, \"openImgManager\");\r\n }\r\n\r\n setEmitter(emitter: string) {\r\n this.emitter = emitter;\r\n }\r\n}","import { Injectable, inject } from '@angular/core';\r\nimport { StorageByKey } from '@wizishop/ng-web-storages/shared';\r\nimport { environment } from './../environments/environment';\r\nimport { LocalStorageService } from '@wizishop/ng-web-storages/local-storage';\r\n\r\n@Injectable()\r\nexport abstract class AuthCredentialsService extends StorageByKey<{data:AuthCredentials}> {\r\n}\r\n\r\nexport const provideAuthCredentialsService = () => ({\r\n provide: AuthCredentialsService,\r\n useFactory: () => new StorageByKey<{data: AuthCredentials}>(inject(LocalStorageService), environment.wiziApiCredentialsKey),\r\n})\r\n\r\nexport interface AuthCredentials {\r\n token: string;\r\n user_id: number;\r\n account_id: number;\r\n shop_id: number;\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { forkJoin, fromEvent, Observable, Subscription } from \"rxjs\";\r\nimport { take } from 'rxjs/operators';\r\nimport { EventService } from './event.service';\r\nimport { environment } from '../environments/environment';\r\nimport { AuthCredentialsService } from './auth-credentials.service';\r\nimport { ImgPictureDTO, ImgSelectionService, CanvaService } from '@wizishop/img-manager';\r\nimport { WiziBlockMediaDto } from '@wizishop/img-manager/lib/dto/wizi-block-media.dto';\r\n\r\ndeclare const Wizi: any;\r\n\r\n@Injectable()\r\nexport class FicheProductService {\r\n\r\n productSheetApiRoute: string;\r\n image_manager_api: string = environment.wizi_api + \"/image-manager/shops/\";\r\n shopToken: string;\r\n shopId: number;\r\n productId: string;\r\n isPhotosTab: boolean = false; // State of the Photos tabs in fiche product page\r\n isPreviousTabPhotos: boolean = false;\r\n isVariantsTab: boolean = false;\r\n loadProductImgSelection:boolean = false;\r\n currentProductImgSelection: ImgPictureDTO[];\r\n isProductCreation: boolean;\r\n expectedMediaDto:WiziBlockMediaDto = {\r\n id: '',\r\n image_url: '',\r\n image_width: '900',\r\n image_height: '900',\r\n }\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private imgSelectionService: ImgSelectionService,\r\n private eventService: EventService,\r\n private canvaService: CanvaService,\r\n private authCredentialsService: AuthCredentialsService\r\n ) {\r\n this.shopId = this.authCredentialsService.getSync().data.shop_id;\r\n this.shopToken = this.authCredentialsService.getSync().data.token;\r\n }\r\n\r\n setApiConfig() {\r\n const matches = window.location.pathname.match( /\\/(\\w+)\\/products\\/(\\d+)\\/edit/);\r\n const lang = matches && matches[1] ? matches[1] : 'fr';\r\n this.productSheetApiRoute = environment.wizi_admin_api + lang + environment.product_sheet_endpoint;\r\n this.productId = matches && matches[2] ? matches[2] : \"0\";\r\n this.isProductCreation = /\\/products\\/create/.test(window.location.pathname);\r\n }\r\n\r\n /**\r\n * There is only one instance of this img manager.\r\n * But it is called with different config, by Photos tab and Variation tab, on fiche product page.\r\n * The method handle the switch config between Photos and Variation tab.\r\n * Return an observable : true => Photos tab / false => Variation tab.\r\n * */\r\n handleTabs():Observable<boolean> {\r\n return new Observable(observer => {\r\n\r\n const switchTabsSub =\r\n this.switchTabs().subscribe(data => {\r\n\r\n if (!data || !data[\"detail\"] || !data[\"detail\"][\"currentTab\"]) {\r\n return;\r\n }\r\n // Retrieve current tab\r\n const currentTab = data[\"detail\"][\"currentTab\"];\r\n this.isPreviousTabPhotos = this.isPhotosTab;\r\n this.isPhotosTab = currentTab === 'photos';\r\n this.isVariantsTab = currentTab === 'variation';\r\n\r\n // The user switch to Photos tab\r\n if (this.isPhotosTab) {\r\n this.loadProductImgSelection = true;\r\n\r\n if (!this.currentProductImgSelection || !this.currentProductImgSelection.length) {\r\n this.initProductImgSelection();\r\n } else {\r\n this.applyCurrentImgSelection();\r\n this.loadProductImgSelection = false;\r\n }\r\n\r\n } else if (this.isPreviousTabPhotos) { // The user switch to another tab\r\n // Save current img selection, in order to not lose the img selection\r\n this.saveCurrentImgSelection();\r\n }\r\n observer.next(this.isPhotosTab);\r\n });\r\n this.subscriptions.push(switchTabsSub);\r\n });\r\n }\r\n\r\n getShopImg(idFile: string): Observable<any> {\r\n return this.http.get(`${this.image_manager_api}${this.shopId}/images/${idFile}`, this.getOptionsHeadersWithBearer());\r\n }\r\n\r\n initProductImgSelection() {\r\n\r\n // Display the loader in img list selection\r\n this.imgSelectionService.imgSelectedListLoading$.next(true);\r\n\r\n // retrieve img selection\r\n const retrieveImgSelectionSub =\r\n this.retrieveImgSelection().subscribe(data => {\r\n\r\n // No image selected\r\n if (!data || !data[\"photos\"] || !data[\"photos\"][\"infos\"] || !data[\"photos\"][\"infos\"][\"files\"] || !data[\"photos\"][\"infos\"][\"files\"].length) {\r\n this.loadProductImgSelection = false;\r\n\r\n this.imgSelectionService.imgSelectedListLoading$.next(false);\r\n return;\r\n }\r\n\r\n const idImgSelectionList: number[] = data[\"photos\"][\"infos\"][\"files\"];\r\n const obsImg: Observable<any>[] = [];\r\n\r\n idImgSelectionList.forEach(idFile =>\r\n obsImg.push(\r\n this.getShopImg(idFile.toString()).pipe(take(1))\r\n ));\r\n const allImgSub =\r\n forkJoin(obsImg).subscribe({\r\n next: (photos: ImgPictureDTO[]) => {\r\n // The img selection must be saved, otherwise it is lost when the user switch on variation tab\r\n this.saveCurrentImgSelection(photos);\r\n this.applyCurrentImgSelection();\r\n this.loadProductImgSelection = false;\r\n },\r\n error: error => {\r\n // Hide the loader in img list selection\r\n this.loadProductImgSelection = false;\r\n\r\n this.imgSelectionService.imgSelectedListLoading$.next(false);\r\n }});\r\n this.subscriptions.push(allImgSub);\r\n });\r\n\r\n this.subscriptions.push(retrieveImgSelectionSub);\r\n this.canvaService.expectedImgSizesChange(this.expectedMediaDto);\r\n }\r\n\r\n retrieveInfoSelection() {\r\n const formData = new FormData();\r\n formData.append('rub', \"main\");\r\n formData.append('action', \"getInfos\");\r\n formData.append('prodId', this.productId);\r\n formData.append('_token', '');\r\n formData.append('_shid', this.shopId.toString());\r\n\r\n return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());\r\n }\r\n\r\n retrieveImgSelection() {\r\n const formData = new FormData();\r\n formData.append('rub', \"main\");\r\n formData.append('action', \"getAllInfos\");\r\n formData.append('prodId', this.productId);\r\n formData.append('_token', '');\r\n formData.append('_shid', this.shopId.toString());\r\n\r\n return this.http.post<any>(this.productSheetApiRoute, formData, this.getOptionsHeaders());\r\n }\r\n\r\n updateImgSelectionOnChange() {\r\n // listen to the img manager change\r\n const imgSelectionSub =\r\n this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {\r\n if (!imgSelectionList) {\r\n return;\r\n }\r\n\r\n // Send the img selection\r\n if (this.isPhotosTab && !this.loadProductImgSelection) {\r\n // Retrieve only the img id\r\n const idImgSelectedList: number[] = [];\r\n imgSelectionList.forEach(img => {\r\n idImgSelectedList.push(parseInt(img.id_file));\r\n });\r\n\r\n this.updateProductImgSelection(idImgSelectedList);\r\n\r\n // On variation tab, send event with img selected\r\n } else if (!this.isPhotosTab && imgSelectionList.length) {\r\n this.eventService.sendImgSelectedToPage(imgSelectionList[0]);\r\n }\r\n });\r\n this.subscriptions.push(imgSelectionSub);\r\n }\r\n\r\n updateProductImgSelection(idsImgList: number[]) {\r\n if ((!this.productId || this.productId === \"0\") && Wizi._produit.global.PROD_ID) {\r\n this.productId = Wizi._produit.global.PROD_ID.toString();\r\n }\r\n\r\n Wizi._produit._dataTmp['photos'].infos = {};\r\n Wizi._produit._dataTmp['photos'].infos.files = idsImgList;\r\n this.emitImgSelectionChange(idsImgList);\r\n\r\n if (this.productId && this.productId !== \"0\") {\r\n const submitProd1 =\r\n this.submitProductImg(idsImgList).subscribe();\r\n this.subscriptions.push(submitProd1);\r\n return;\r\n }\r\n const createProductSub =\r\n this.createProduct().subscribe(\r\n (productId:number) => {\r\n if (!productId) {\r\n throw \"No product id created. Can not link image(s) to the new product.\";\r\n }\r\n Wizi._produit.global.PROD_ID = productId;\r\n\r\n this.productId = productId.toString();\r\n this.submitProductImg(idsImgList).subscribe();\r\n }\r\n );\r\n this.subscriptions.push(createProductSub);\r\n\r\n }\r\n\r\n submitProductImg(idsImgList: number[]) {\r\n const data = {\r\n files : idsImgList,\r\n couls: []\r\n };\r\n\r\n const formData = new FormData();\r\n formData.append('rub', \"photos\");\r\n formData.append('action', \"save\");\r\n formData.append('newProd', this.isProductCreation ? \"1\" : \"0\");\r\n formData.append('prodId', this.productId);\r\n formData.append('_token', this.shopToken);\r\n formData.append('_shid', this.shopId.toString());\r\n formData.append('data', JSON.stringify(data));\r\n\r\n return this.http.post(this.productSheetApiRoute, formData, this.getOptionsHeaders());\r\n }\r\n\r\n createProduct() {\r\n const formData = new FormData();\r\n formData.append('rub', \"main\");\r\n formData.append('action', \"createProd\");\r\n formData.append('_token', '');\r\n formData.append('_shid', this.shopId.toString());\r\n\r\n return this.http.post<number>(this.productSheetApiRoute, formData, this.getOptionsHeaders());\r\n\r\n }\r\n\r\n /* Use to know where the img manager is displayed, and to close it when switching tab */\r\n switchTabs() {\r\n return fromEvent<any>(document.getElementById('imgManagerModule') as any, \"switchTab\");\r\n }\r\n\r\n private emitImgSelectionChange(idsImgList: number[]) {\r\n const value = {\r\n detail: {\r\n idsImgList\r\n }\r\n };\r\n\r\n const event = new CustomEvent('onImgSelectionChange', value);\r\n const imgManagerModule= document.getElementById('imgManagerModule');\r\n imgManagerModule?.dispatchEvent(event);\r\n }\r\n\r\n private saveCurrentImgSelection(imgSelection?: ImgPictureDTO[]) {\r\n this.currentProductImgSelection = imgSelection ? imgSelection : JSON.parse(JSON.stringify(this.imgSelectionService.getImgSelection()));\r\n }\r\n\r\n private applyCurrentImgSelection() {\r\n this.imgSelectionService.setImgSelection(this.currentProductImgSelection);\r\n // Hide the loader in img list selection\r\n this.imgSelectionService.imgSelectedListLoading$.next(false);\r\n }\r\n\r\n private getOptionsHeaders() {\r\n const header = { headers: new HttpHeaders({\r\n 'Access-Control-Allow-Origin':'*'\r\n })\r\n };\r\n return header;\r\n }\r\n\r\n private getOptionsHeadersWithBearer() {\r\n const header = { headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + this.shopToken\r\n })\r\n };\r\n return header;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { FicheProductService } from './services/fiche_products.service';\r\nimport { AuthCredentials, AuthCredentialsService } from './services/auth-credentials.service';\r\nimport { EventService } from './services/event.service';\r\nimport { environment } from './environments/environment';\r\nimport { ImgSelectionService, ImgManagerConfigDto, ImgManagerDisplayConfig, CanvaService, ImgManagerService } from '@wizishop/img-manager';\r\n\r\n@Component({\r\n selector: 'img-manager-webelement',\r\n templateUrl: './img-manager-webelement.component.html',\r\n styleUrls: ['./img-manager-webelement.component.scss'],\r\n})\r\nexport class ImgManagerWebElementComponent {\r\n // shop config\r\n id_shop: number;\r\n token_shop: string;\r\n\r\n // img manger config\r\n openImgManager:boolean = false;\r\n loading: boolean = true;\r\n imgExternalConfig: ImgManagerConfigDto;\r\n imgManagerDisplayConfig: ImgManagerDisplayConfig;\r\n pageFicheProductConfig ;\r\n pageEventConfig;\r\n\r\n // fiche product config\r\n isPhotosTab: boolean = !!environment.isPhotosTab;\r\n\r\n subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private canvaService: CanvaService,\r\n private ficheProductService: FicheProductService,\r\n private authCredentialsService: AuthCredentialsService,\r\n private eventService: EventService,\r\n private imgManagerService: ImgManagerService,\r\n private imgSelectionService: ImgSelectionService\r\n ){\r\n this.id_shop = this.authCredentialsService.getSync().data.shop_id;\r\n this.token_shop = this.authCredentialsService.getSync().data.token;\r\n this.pageFicheProductConfig = this.imgManagerService.getImgManagerDisplayConfig(\"fiche-product\");\r\n this.pageEventConfig = this.imgManagerService.getImgManagerDisplayConfig(\"wizi-block\");\r\n }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n\r\n this.setCurrentLanguage();\r\n // Search on which page is display the img manger\r\n this.setDisplayedPageConfig();\r\n\r\n this.loading = false;\r\n this.initVariables(this.authCredentialsService.getSync().data);\r\n // Fiche product page\r\n if (this.imgManagerDisplayConfig.pageficheProduct) {\r\n this.setFicheProductPage();\r\n } else {\r\n this.setPageWithEvents();\r\n }\r\n }\r\n\r\n initVariables(authCredentials: AuthCredentials | null) {\r\n if (!authCredentials) {\r\n\r\n if (environment.isWizishopcom) {\r\n return;\r\n }\r\n // Run on local Server\r\n this.imgManagerDisplayConfig = this.pageFicheProductConfig;\r\n return;\r\n }\r\n }\r\n\r\n setFicheProductPage() {\r\n this.ficheProductService.setApiConfig();\r\n this.handleFicheProductTab(); // Display different img manager config according to the tab\r\n this.closeImgManagerOnSwitchingTab();\r\n this.subscribePageAskForImg(); // Use for images in variations tab\r\n this.ficheProductService.updateImgSelectionOnChange();\r\n }\r\n\r\n setPageWithEvents() {\r\n this.subscribePageAskForImg();\r\n\r\n // Send img selected\r\n const subImgSelection = this.imgSelectionService.imgSelection$.subscribe(imgSelectionList => {\r\n if (imgSelectionList && imgSelectionList.length) {\r\n this.eventService.sendImgSelectedToPage(imgSelectionList[0]);\r\n }\r\n });\r\n this.subscriptions.push(subImgSelection);\r\n }\r\n\r\n subscribePageAskForImg() {\r\n // Listen to page editor ask for img event\r\n const subAskForImg = this.eventService.pageAskForImg().subscribe( data => {\r\n // Retrieve which img manager send the event\r\n const emitter = data && data[\"detail\"] ? data[\"detail\"][\"from\"] : null;\r\n this.eventService.setEmitter(emitter);\r\n\r\n this.imgSelectionService.setImgSelection([]);\r\n\r\n this.open();\r\n });\r\n this.subscriptions.push(subAskForImg);\r\n }\r\n\r\n open() {\r\n this.openImgManager = true;\r\n }\r\n\r\n onImgManagerClosed() {\r\n // Close img manager\r\n this.openImgManager = false;\r\n }\r\n\r\n setCurrentLanguage() {\r\n const matches = window.location.pathname.match( /^\\/(\\w+)\\//);\r\n this.translateService.use(matches && matches[1] ? matches[1] : 'fr');\r\n }\r\n\r\n setDisplayedPageConfig() {\r\n const isFicheProductPage = /\\/products\\/(\\d+\\/edit|create)/.test(window.location.pathname);\r\n this.imgManagerDisplayConfig = isFicheProductPage ? this.pageFicheProductConfig : this.pageEventConfig;\r\n }\r\n\r\n handleFicheProductTab() {\r\n const tabsSub =\r\n this.ficheProductService.handleTabs().subscribe(isPhotosTab => {\r\n this.imgManagerDisplayConfig = isPhotosTab ? this.pageFicheProductConfig : this.pageEventConfig;\r\n this.isPhotosTab = isPhotosTab;\r\n });\r\n this.subscriptions.push(tabsSub);\r\n }\r\n\r\n closeImgManagerOnSwitchingTab() {\r\n const tabsCloseSub =\r\n this.ficheProductService.switchTabs().subscribe(data => {\r\n this.openImgManager = false;\r\n });\r\n\r\n this.subscriptions.push(tabsCloseSub);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n}\r\n","<div class=\"info-bulle\">\r\n <p class=\"info-bulle-content\" [innerHTML]=\"'ImgManager.webElement.infoBulle' | translate\"></p>\r\n\r\n <ng-container *ngIf=\"imgManagerDisplayConfig.pageficheProduct && isPhotosTab\">\r\n <h3 class=\"wizicss-sous-titre\">{{'ImgManager.webElement.photosTitle' | translate }}</h3>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!loading && id_shop && imgManagerDisplayConfig\">\r\n\r\n <p class=\"img-manager-open\" *ngIf=\"imgManagerDisplayConfig.displayBtn && isPhotosTab\">\r\n <a (click)=\"open()\">{{'ImgManager.webElement.OpenBtn' | translate }}</a>\r\n </p>\r\n\r\n <div class=\"imgManagerBox\">\r\n <wz-img-manager\r\n #wzImgManager\r\n [stateDisplayed]=\"imgManagerDisplayConfig.stateDisplayed\"\r\n [multipleImgMode]=\"imgManagerDisplayConfig.multipleImgMode\"\r\n [showImgManagerModule]=\"imgManagerDisplayConfig.showImgManagerModule && openImgManager\"\r\n [showSelection]=\"imgManagerDisplayConfig.showSelection\"\r\n (imgManagerClosed)=\"onImgManagerClosed()\">\r\n </wz-img-manager>\r\n </div>\r\n </ng-container>\r\n</div>","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { Observable, map, tap } from \"rxjs\";\r\nimport { environment } from '../environments/environment';\r\nimport { ApiService, ImgPicturesDTO, ImgPictureDTO } from \"@wizishop/img-manager\";\r\nimport { AuthCredentialsService } from \"./auth-credentials.service\";\r\n\r\n@Injectable()\r\nexport class WebelementImageManagerApiService implements ApiService {\r\n\r\n private readonly authCredentialsService = inject(AuthCredentialsService);\r\n shopId = this.authCredentialsService.getSync().data.shop_id;\r\n shopToken = this.authCredentialsService.getSync().data.token;\r\n\r\n CONFIG = {\r\n image_manager_route: environment.wizi_api + \"/image-manager/shops/\" + this.shopId,\r\n canva_token: 'wdByHayF5v57nj2ZSLvu055O',\r\n canva_url: 'https://sdk.canva.com/designbutton/v2/api.js',\r\n pexels_token: environment.pexels_token,\r\n pexels_route: 'https://api.pexels.com/v1',\r\n shop_category: 'other', // The shop category is retrieve later with the setShopCategory methode\r\n assets_route: environment.assets_route,\r\n }\r\n\r\n IMG_SIZE = {\r\n url_raw_image: `${environment.CDN_URL}${this.shopId}/RAW-`,\r\n url_100_image: `${environment.CDN_URL}${this.shopId}/m100-`,\r\n url_200_image: `${environment.CDN_URL}${this.shopId}/cs200-`,\r\n url_400_image: `${environment.CDN_URL}${this.shopId}/cs400-`,\r\n url_800_image: `${environment.CDN_URL}${this.shopId}/cs800-`\r\n }\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n private getOptionsHeaders(params?: HttpParams) {\r\n const header = { headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + this.shopToken\r\n })\r\n };\r\n if (params) {\r\n header['params'] = params\r\n }\r\n return header;\r\n }\r\n\r\n getShopCategory(): string {\r\n return 'other';\r\n }\r\n\r\n getShopImgList(params?: HttpParams): Observable<ImgPicturesDTO> {\r\n return this.http.get<ImgPicturesDTO>(`${this.CONFIG.image_manager_route}/images`, this.getOptionsHeaders(params));\r\n }\r\n\r\n getShopTotalImgList(params?: HttpParams) {\r\n return this.http.get<{totalRecords: number}>(`${this.CONFIG.image_manager_route}/total/images`, this.getOptionsHeaders(params)).pipe(map(res => res.totalRecords));\r\n }\r\n\r\n getShopImg(idFile: string): Observable<ImgPictureDTO> {\r\n return this.http.get<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${idFile}`, this.getOptionsHeaders());\r\n }\r\n\r\n uploadFile(formData: FormData) {\r\n return this.http.post<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/template`, formData, this.getOptionsHeaders());\r\n }\r\n\r\n uploadFileByUrl(url: string, fileName?: string) {\r\n return this.http.post<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/template`, { url, fileName }, this.getOptionsHeaders());\r\n }\r\n\r\n replaceImg(imageBase64: string, id_file: string) {\r\n const body = {\r\n imageBase64,\r\n type : \"RAW\"\r\n }\r\n return this.http.put<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}/replace`, body, this.getOptionsHeaders());\r\n }\r\n\r\n changeImgName(fileName: string, id_file: string) {\r\n return this.http.put<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}?file_name=${fileName}`, null, this.getOptionsHeaders());\r\n }\r\n\r\n removeImg(id_file: string) {\r\n return this.http.delete<ImgPictureDTO>(`${this.CONFIG.image_manager_route}/images/${id_file}`, this.getOptionsHeaders());\r\n }\r\n\r\n removeMultipleImg(id_array: string[]) {\r\n return this.http.post<ImgPictureDTO[]>(`${this.CONFIG.image_manager_route}/images-multiple-delete`, { id_array }, this.getOptionsHeaders());\r\n }\r\n\r\n setShopCategory(shopId: number) {\r\n return this.http.get<{\r\n category: string\r\n }>(`${environment.wizi_api}/shops/${shopId}`, this.getOptionsHeaders()).pipe(\r\n tap((shop => {\r\n if (shop && shop['category']) {\r\n this.CONFIG.shop_category = shop['category'];\r\n }\r\n }))\r\n );\r\n }\r\n\r\n}","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ImgManagerWebElementComponent } from './img-manager-webelement.component';\r\nimport { provideAuthCredentialsService } from './services/auth-credentials.service';\r\nimport { EventService } from './services/event.service';\r\nimport { FicheProductService } from './services/fiche_products.service';\r\nimport { WebelementImageManagerApiService } from './services/webelement-image-manager-api.config';\r\nimport { WzImgManagerModule, ApiService } from '@wizishop/img-manager';\r\n\r\n@NgModule({\r\n declarations: [ImgManagerWebElementComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n WzImgManagerModule.withConfig({\r\n provide: ApiService,\r\n useClass: WebelementImageManagerApiService,\r\n }),\r\n TranslateModule,\r\n ],\r\n exports: [ImgManagerWebElementComponent],\r\n providers: [\r\n FicheProductService,\r\n EventService,\r\n provideAuthCredentialsService()\r\n ]\r\n})\r\nexport class ImgManagerWebElementModule { }\r\n","/*\r\n * Public API Surface of img-manager-webelement\r\n */\r\nexport * from './lib/img-manager-webelement.component';\r\nexport * from './lib/img-manager-webelement.module';\r\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"],"mappings":"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"}
|