@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.
@@ -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
- EventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
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: function () { return []; } });
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
- AuthCredentialsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthCredentialsService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
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.isPhotosTab = false; // State of the Photos tabs in fiche product page
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
- 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 });
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: function () { return [{ type: i1.HttpClient }, { type: i2.ImgSelectionService }, { type: EventService }, { type: i2.CanvaService }, { type: AuthCredentialsService }]; } });
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
- ImgManagerWebElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", 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 });
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: function () { return [{ type: i1$1.TranslateService }, { type: i2.CanvaService }, { type: FicheProductService }, { type: AuthCredentialsService }, { type: EventService }, { type: i2.ImgManagerService }, { type: i2.ImgSelectionService }]; } });
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
- WebelementImageManagerApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: WebelementImageManagerApiService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
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: function () { return [{ type: i1.HttpClient }]; } });
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
- ImgManagerWebElementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerWebElementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
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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"}