@wizishop/img-manager 18.2.0 → 18.2.2-beta
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/esm2022/lib/components/canva-btn/canva-btn.component.mjs +73 -0
- package/esm2022/lib/components/images-view/images-actions-handler.mjs +168 -0
- package/esm2022/lib/components/images-view/images-view.component.mjs +391 -0
- package/esm2022/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +70 -0
- package/esm2022/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +73 -0
- package/esm2022/lib/components/images-view/table-view/table-view.component.mjs +48 -0
- package/esm2022/lib/components/img-editor/cropper/cropper.component.mjs +313 -0
- package/esm2022/lib/components/img-editor/img-editor.component.mjs +129 -0
- package/esm2022/lib/components/img-editor/info-section/info-section.component.mjs +58 -0
- package/esm2022/lib/components/img-selection/img-selection.component.mjs +58 -0
- package/esm2022/lib/components/img-tabs/img-tabs.component.mjs +128 -0
- package/esm2022/lib/components/img-upload/img-upload.component.mjs +133 -0
- package/esm2022/lib/components/loader/loader.component.mjs +21 -0
- package/esm2022/lib/components/pexels-lib/pexels-lib.component.mjs +211 -0
- package/esm2022/lib/components/shared/alert/alert.component.mjs +26 -0
- package/esm2022/lib/components/shared/checkbox/checkbox.component.mjs +56 -0
- package/esm2022/lib/components/shared/dropdown/dropdown.component.mjs +21 -0
- package/esm2022/lib/components/shared/input-search/input-search.component.mjs +53 -0
- package/esm2022/lib/components/shared/pagination/page-selector/page-selector.component.mjs +50 -0
- package/esm2022/lib/components/shared/pagination/pagination.component.mjs +49 -0
- package/esm2022/lib/components/shared/select/select.component.mjs +117 -0
- package/esm2022/lib/components/shared/table/table.component.mjs +124 -0
- package/esm2022/lib/components/upload-list/upload-list.component.mjs +85 -0
- package/esm2022/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +41 -0
- package/{esm2020 → esm2022}/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +5 -5
- package/esm2022/lib/directives/auto-hide.directive.mjs +51 -0
- package/esm2022/lib/directives/copy-to-clipboard.directive.mjs +36 -0
- package/esm2022/lib/directives/drag-drop.directive.mjs +55 -0
- package/esm2022/lib/directives/loading.directive.mjs +43 -0
- package/esm2022/lib/directives/table/checkBoxRow.directive.mjs +130 -0
- package/esm2022/lib/directives/table/column.directive.mjs +50 -0
- package/esm2022/lib/directives/table/columnHeader.directive.mjs +215 -0
- package/esm2022/lib/directives/table/raw.directive.mjs +34 -0
- package/esm2022/lib/directives/zindex-toggle.directive.mjs +45 -0
- package/esm2022/lib/dto/canva-create-design.dto.mjs +9 -0
- package/esm2022/lib/dto/canva.dto.mjs +6 -0
- package/esm2022/lib/dto/config/apis/api.dto.mjs +11 -0
- package/esm2022/lib/dto/config/external/external-config.dto.mjs +5 -0
- package/esm2022/lib/dto/wizi-block-media.dto.mjs +7 -0
- package/esm2022/lib/pipes/images/img-src.pipe.mjs +29 -0
- package/{esm2020 → esm2022}/lib/pipes/number-to-array.pipe.mjs +4 -4
- package/esm2022/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +28 -0
- package/esm2022/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +53 -0
- package/esm2022/lib/pipes/pagination/text/custom-text.pipe.mjs +36 -0
- package/esm2022/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +25 -0
- package/{esm2020 → esm2022}/lib/pipes/select/select-filters.pipe.mjs +4 -4
- package/esm2022/lib/services/alert.service.mjs +53 -0
- package/{esm2020 → esm2022}/lib/services/api.service.mjs +4 -4
- package/esm2022/lib/services/canva.service.mjs +165 -0
- package/esm2022/lib/services/config/img-cdn.service.mjs +21 -0
- package/esm2022/lib/services/dom.service.mjs +31 -0
- package/{esm2020 → esm2022}/lib/services/icon.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/image-not-found.service.mjs +4 -4
- package/esm2022/lib/services/img-event.service.mjs +33 -0
- package/esm2022/lib/services/img-manager.service.mjs +134 -0
- package/esm2022/lib/services/img-selection.service.mjs +75 -0
- package/esm2022/lib/services/pexels.service.mjs +66 -0
- package/esm2022/lib/services/rename-picture.service.mjs +66 -0
- package/esm2022/lib/services/snackbar.service.mjs +67 -0
- package/esm2022/lib/services/table/filters-table.service.mjs +61 -0
- package/esm2022/lib/services/upload.service.mjs +20 -0
- package/esm2022/lib/services/user-settings.service.mjs +23 -0
- package/esm2022/lib/wz-img-manager.component.mjs +209 -0
- package/{esm2020 → esm2022}/lib/wz-img-manager.module.mjs +61 -61
- package/{fesm2020 → fesm2022}/wizishop-img-manager.mjs +1018 -830
- package/fesm2022/wizishop-img-manager.mjs.map +1 -0
- package/lib/components/canva-btn/canva-btn.component.d.ts +1 -1
- package/lib/components/images-view/images-actions-handler.d.ts +2 -1
- package/lib/components/images-view/images-view.component.d.ts +4 -9
- package/lib/components/images-view/mosaic-view/img-card/img-card.component.d.ts +1 -1
- package/lib/components/images-view/mosaic-view/mosaic-view.component.d.ts +1 -1
- package/lib/components/img-editor/cropper/cropper.component.d.ts +1 -1
- package/lib/components/img-editor/img-editor.component.d.ts +1 -1
- package/lib/components/img-editor/info-section/info-section.component.d.ts +1 -1
- package/lib/components/img-selection/img-selection.component.d.ts +4 -5
- package/lib/components/img-tabs/img-tabs.component.d.ts +1 -1
- package/lib/components/img-upload/img-upload.component.d.ts +1 -1
- package/lib/components/loader/loader.component.d.ts +1 -1
- package/lib/components/pexels-lib/pexels-lib.component.d.ts +1 -1
- package/lib/components/shared/alert/alert.component.d.ts +1 -1
- package/lib/components/shared/checkbox/checkbox.component.d.ts +1 -1
- package/lib/components/shared/dropdown/dropdown.component.d.ts +1 -1
- package/lib/components/shared/input-search/input-search.component.d.ts +1 -1
- package/lib/components/shared/pagination/page-selector/page-selector.component.d.ts +1 -1
- package/lib/components/shared/pagination/pagination.component.d.ts +1 -1
- package/lib/components/shared/select/select.component.d.ts +1 -1
- package/lib/components/shared/table/table.component.d.ts +1 -1
- package/lib/components/upload-list/upload-list.component.d.ts +1 -1
- package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts +1 -1
- package/lib/directives/auto-hide.directive.d.ts +1 -1
- package/lib/directives/copy-to-clipboard.directive.d.ts +1 -1
- package/lib/directives/table/checkBoxRow.directive.d.ts +1 -1
- package/lib/directives/table/column.directive.d.ts +1 -1
- package/lib/directives/table/columnHeader.directive.d.ts +1 -1
- package/lib/directives/zindex-toggle.directive.d.ts +1 -1
- package/lib/wz-img-manager.component.d.ts +3 -3
- package/package.json +6 -12
- package/wizishop-img-manager-18.2.2-beta.tgz +0 -0
- package/wz-img-manager.scss +77 -60
- package/esm2020/lib/components/canva-btn/canva-btn.component.mjs +0 -67
- package/esm2020/lib/components/images-view/images-actions-handler.mjs +0 -154
- package/esm2020/lib/components/images-view/images-view.component.mjs +0 -369
- package/esm2020/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +0 -66
- package/esm2020/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +0 -71
- package/esm2020/lib/components/images-view/table-view/table-view.component.mjs +0 -48
- package/esm2020/lib/components/img-editor/cropper/cropper.component.mjs +0 -307
- package/esm2020/lib/components/img-editor/img-editor.component.mjs +0 -124
- package/esm2020/lib/components/img-editor/info-section/info-section.component.mjs +0 -54
- package/esm2020/lib/components/img-selection/img-selection.component.mjs +0 -53
- package/esm2020/lib/components/img-tabs/img-tabs.component.mjs +0 -122
- package/esm2020/lib/components/img-upload/img-upload.component.mjs +0 -126
- package/esm2020/lib/components/loader/loader.component.mjs +0 -21
- package/esm2020/lib/components/pexels-lib/pexels-lib.component.mjs +0 -203
- package/esm2020/lib/components/shared/alert/alert.component.mjs +0 -27
- package/esm2020/lib/components/shared/checkbox/checkbox.component.mjs +0 -52
- package/esm2020/lib/components/shared/dropdown/dropdown.component.mjs +0 -21
- package/esm2020/lib/components/shared/input-search/input-search.component.mjs +0 -54
- package/esm2020/lib/components/shared/pagination/page-selector/page-selector.component.mjs +0 -49
- package/esm2020/lib/components/shared/pagination/pagination.component.mjs +0 -49
- package/esm2020/lib/components/shared/select/select.component.mjs +0 -110
- package/esm2020/lib/components/shared/table/table.component.mjs +0 -116
- package/esm2020/lib/components/upload-list/upload-list.component.mjs +0 -79
- package/esm2020/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +0 -37
- package/esm2020/lib/directives/auto-hide.directive.mjs +0 -48
- package/esm2020/lib/directives/copy-to-clipboard.directive.mjs +0 -37
- package/esm2020/lib/directives/drag-drop.directive.mjs +0 -57
- package/esm2020/lib/directives/loading.directive.mjs +0 -42
- package/esm2020/lib/directives/table/checkBoxRow.directive.mjs +0 -114
- package/esm2020/lib/directives/table/column.directive.mjs +0 -45
- package/esm2020/lib/directives/table/columnHeader.directive.mjs +0 -204
- package/esm2020/lib/directives/table/raw.directive.mjs +0 -31
- package/esm2020/lib/directives/zindex-toggle.directive.mjs +0 -42
- package/esm2020/lib/dto/canva-create-design.dto.mjs +0 -4
- package/esm2020/lib/dto/canva.dto.mjs +0 -4
- package/esm2020/lib/dto/config/apis/api.dto.mjs +0 -9
- package/esm2020/lib/dto/config/external/external-config.dto.mjs +0 -3
- package/esm2020/lib/dto/wizi-block-media.dto.mjs +0 -3
- package/esm2020/lib/pipes/images/img-src.pipe.mjs +0 -28
- package/esm2020/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +0 -28
- package/esm2020/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +0 -53
- package/esm2020/lib/pipes/pagination/text/custom-text.pipe.mjs +0 -35
- package/esm2020/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +0 -25
- package/esm2020/lib/services/alert.service.mjs +0 -50
- package/esm2020/lib/services/canva.service.mjs +0 -159
- package/esm2020/lib/services/config/img-cdn.service.mjs +0 -23
- package/esm2020/lib/services/dom.service.mjs +0 -33
- package/esm2020/lib/services/img-event.service.mjs +0 -35
- package/esm2020/lib/services/img-manager.service.mjs +0 -136
- package/esm2020/lib/services/img-selection.service.mjs +0 -76
- package/esm2020/lib/services/pexels.service.mjs +0 -62
- package/esm2020/lib/services/rename-picture.service.mjs +0 -63
- package/esm2020/lib/services/snackbar.service.mjs +0 -64
- package/esm2020/lib/services/table/filters-table.service.mjs +0 -60
- package/esm2020/lib/services/upload.service.mjs +0 -22
- package/esm2020/lib/services/user-settings.service.mjs +0 -25
- package/esm2020/lib/wz-img-manager.component.mjs +0 -192
- package/fesm2015/wizishop-img-manager.mjs +0 -4035
- package/fesm2015/wizishop-img-manager.mjs.map +0 -1
- package/fesm2020/wizishop-img-manager.mjs.map +0 -1
- package/wizishop-img-manager-18.2.0.tgz +0 -0
- /package/{esm2020 → esm2022}/lib/animations/easeInOut/ease-in-out.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/animations/insertRemove/insert-remove.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/animations/listAnnimation/list.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/shared/select/call-to-action.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/shared/select/select-items.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/ImgManagerDisplayConfig.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/config/image-cdn/image-cdn-config.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/config/img-manager.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/export-dtos.api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/img-editor-config.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/img-manager.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/pexels-img.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/picture-name-update.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/stateDisplayed.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/tabDisplayed.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/wizishop-img-manager.mjs +0 -0
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Observable, BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { AlertService } from './alert.service';
|
|
4
|
-
import { ImgEventService } from './img-event.service';
|
|
5
|
-
import { take } from 'rxjs/operators';
|
|
6
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
7
|
-
import { UploadService } from './upload.service';
|
|
8
|
-
import { ApiService } from './api.service';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "./img-event.service";
|
|
11
|
-
import * as i2 from "./alert.service";
|
|
12
|
-
import * as i3 from "@ngx-translate/core";
|
|
13
|
-
import * as i4 from "./upload.service";
|
|
14
|
-
import * as i5 from "./api.service";
|
|
15
|
-
export class CanvaService {
|
|
16
|
-
get canvaApiURL() {
|
|
17
|
-
return this.apiService.CONFIG.canva_url;
|
|
18
|
-
}
|
|
19
|
-
;
|
|
20
|
-
get canvaApiKey() {
|
|
21
|
-
return this.apiService.CONFIG.canva_token;
|
|
22
|
-
}
|
|
23
|
-
constructor(wzImgEventService, alertService, translateService, uploadService, apiService) {
|
|
24
|
-
this.wzImgEventService = wzImgEventService;
|
|
25
|
-
this.alertService = alertService;
|
|
26
|
-
this.translateService = translateService;
|
|
27
|
-
this.uploadService = uploadService;
|
|
28
|
-
this.apiService = apiService;
|
|
29
|
-
this.imgLoading = false;
|
|
30
|
-
this.uploadingImg = 'ImgManager.CanvaBtn.uploadingImg';
|
|
31
|
-
this.successUploadPhoto = 'ImgManager.CanvaBtn.successImport';
|
|
32
|
-
this.errorUploadCanvaImg = 'ImgManager.CanvaBtn.errorUploadCanvaImg';
|
|
33
|
-
this.errorRenameCanvaImg = 'ImgManager.CanvaBtn.errorRenameCanvaImg';
|
|
34
|
-
this.forceToOpenCanva = false;
|
|
35
|
-
this.bindExpectedImgSizeEvent = new BehaviorSubject(null);
|
|
36
|
-
this.bindExpectedSizeDone = this.bindExpectedImgSizeEvent.asObservable();
|
|
37
|
-
}
|
|
38
|
-
getCanvaLogo() {
|
|
39
|
-
return this.apiService.CONFIG.assets_route + "canva/icon_canva.svg";
|
|
40
|
-
}
|
|
41
|
-
bindEventExepectedImgSizeChange() {
|
|
42
|
-
return this.bindExpectedSizeDone;
|
|
43
|
-
}
|
|
44
|
-
expectedImgSizesChange(mediaDTO) {
|
|
45
|
-
this.bindExpectedImgSizeEvent.next(mediaDTO);
|
|
46
|
-
if (this.forceToOpenCanva) {
|
|
47
|
-
this.openCanva(parseInt(mediaDTO.image_width), parseInt(mediaDTO.image_height));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
getCanvaApi() {
|
|
51
|
-
return new Observable(observer => {
|
|
52
|
-
this.loadCanva().subscribe({
|
|
53
|
-
complete: () => {
|
|
54
|
-
if (this.canvaApi && Canva.DesignButton) {
|
|
55
|
-
observer.next(this.canvaApi);
|
|
56
|
-
observer.complete();
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.initializeCanva(observer);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
initializeCanva(observer) {
|
|
66
|
-
if (Canva.DesignButton) {
|
|
67
|
-
Canva.DesignButton.initialize({
|
|
68
|
-
apiKey: this.canvaApiKey
|
|
69
|
-
}).then((canvaApi) => {
|
|
70
|
-
this.canvaApi = canvaApi;
|
|
71
|
-
observer.next(this.canvaApi);
|
|
72
|
-
observer.complete();
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
loadCanva() {
|
|
77
|
-
return new Observable(observer => {
|
|
78
|
-
if (this.canvaApi) {
|
|
79
|
-
observer.complete();
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
this.loadCanvaScript(observer);
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
loadCanvaScript(observer) {
|
|
87
|
-
const node = document.createElement('script');
|
|
88
|
-
node.src = this.canvaApiURL;
|
|
89
|
-
node.type = 'text/javascript';
|
|
90
|
-
node.async = false;
|
|
91
|
-
node.charset = 'utf-8';
|
|
92
|
-
node.onload = () => {
|
|
93
|
-
observer.complete();
|
|
94
|
-
};
|
|
95
|
-
document.getElementsByTagName('head')[0].appendChild(node);
|
|
96
|
-
}
|
|
97
|
-
openCanva(width, height) {
|
|
98
|
-
if (this.imgLoading) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
this.getCanvaApi().pipe(take(1)).subscribe((api) => {
|
|
102
|
-
this.canvaApi = api;
|
|
103
|
-
this.addOverflowBody();
|
|
104
|
-
this.createDesign(width, height);
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
addOverflowBody() {
|
|
108
|
-
document.body.classList.add('ovh-canva');
|
|
109
|
-
}
|
|
110
|
-
removeOverflowBody() {
|
|
111
|
-
document.body.classList.remove('ovh-canva');
|
|
112
|
-
}
|
|
113
|
-
createDesign(width, height) {
|
|
114
|
-
const createDesign = {
|
|
115
|
-
type: 'EtsyShopIcon',
|
|
116
|
-
dimensions: {
|
|
117
|
-
units: 'px',
|
|
118
|
-
width: width ? width : undefined,
|
|
119
|
-
height: height ? height : undefined,
|
|
120
|
-
},
|
|
121
|
-
publishLabel: this.translateService.instant('ImgManager.CanvaBtn.publish'),
|
|
122
|
-
};
|
|
123
|
-
this.canvaApi.createDesign({
|
|
124
|
-
design: createDesign,
|
|
125
|
-
onDesignPublish: ({ exportUrl, designTitle }) => this.designPublished(exportUrl, designTitle),
|
|
126
|
-
onDesignClose: () => {
|
|
127
|
-
this.removeOverflowBody();
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
designPublished(exportUrl, designTitle) {
|
|
132
|
-
this.alertService.openAlert(this.uploadingImg);
|
|
133
|
-
this.imgLoading = true;
|
|
134
|
-
this.uploadService.uploadFileByUrl(exportUrl, designTitle).pipe(take(1)).subscribe({
|
|
135
|
-
next: (img) => {
|
|
136
|
-
this.imgLoading = false;
|
|
137
|
-
this.removeOverflowBody();
|
|
138
|
-
this.wzImgEventService.emitImgAdded(img.id_file);
|
|
139
|
-
this.alertService.openAlert(this.successUploadPhoto);
|
|
140
|
-
},
|
|
141
|
-
error: error => {
|
|
142
|
-
this.imgLoading = false;
|
|
143
|
-
this.removeOverflowBody();
|
|
144
|
-
if (error.error.code === 406 && error.error.message) {
|
|
145
|
-
this.alertService.openAlertWithBackendResponse(this.errorUploadCanvaImg, error.error.message);
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
this.alertService.openAlert(this.errorUploadCanvaImg);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
CanvaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CanvaService, deps: [{ token: i1.ImgEventService }, { token: i2.AlertService }, { token: i3.TranslateService }, { token: i4.UploadService }, { token: i5.ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
155
|
-
CanvaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CanvaService });
|
|
156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CanvaService, decorators: [{
|
|
157
|
-
type: Injectable
|
|
158
|
-
}], ctorParameters: function () { return [{ type: i1.ImgEventService }, { type: i2.AlertService }, { type: i3.TranslateService }, { type: i4.UploadService }, { type: i5.ApiService }]; } });
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvY2FudmEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQWMsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUzNDLE1BQU0sT0FBTyxZQUFZO0lBR3ZCLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFBQSxDQUFDO0lBQ0YsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDNUMsQ0FBQztJQWFELFlBQ1UsaUJBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixVQUFzQjtRQUp0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWlCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZUFB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QkFBa0IsRUFBRSxDQUFDO2dCQUUxQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtvQkFDbkQsSUFBSSxDQUFDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtpQkFDOUY7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQ3ZEO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OzBHQTlKVSxZQUFZOzhHQUFaLFlBQVk7NEZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENhbnZhQnV0dG9uQXBpIH0gZnJvbSAnLi4vZHRvL2NhbnZhLmR0byc7XHJcbmltcG9ydCB7IFdpemlCbG9ja01lZGlhRHRvIH0gZnJvbSAnLi4vZHRvL3dpemktYmxvY2stbWVkaWEuZHRvJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW1nRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9pbWctZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENhbnZhQ3JlYXRlRGVzaWduIH0gZnJvbSAnLi4vZHRvL2NhbnZhLWNyZWF0ZS1kZXNpZ24uZHRvJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi91cGxvYWQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcclxuXHJcbmRlY2xhcmUgbGV0IENhbnZhICA6IHtcclxuICBEZXNpZ25CdXR0b24gOiB7XHJcbiAgICBpbml0aWFsaXplOiAob3B0czogeyBhcGlLZXk6IHN0cmluZyB9KSA9PiBQcm9taXNlPENhbnZhQnV0dG9uQXBpPjtcclxuICB9XHJcbn07XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYW52YVNlcnZpY2Uge1xyXG5cclxuICBjYW52YUFwaSAvLyBPYmplY3QgdXNlIHRvIG1hbmFnZSB0aGUgY2FudmEgYXBpXHJcbiAgZ2V0IGNhbnZhQXBpVVJMKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5DT05GSUcuY2FudmFfdXJsO1xyXG4gIH07XHJcbiAgZ2V0IGNhbnZhQXBpS2V5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5DT05GSUcuY2FudmFfdG9rZW47XHJcbiAgfVxyXG5cclxuICBpbWdMb2FkaW5nID0gZmFsc2U7XHJcbiAgdXBsb2FkaW5nSW1nID0gJ0ltZ01hbmFnZXIuQ2FudmFCdG4udXBsb2FkaW5nSW1nJztcclxuICBzdWNjZXNzVXBsb2FkUGhvdG8gPSAnSW1nTWFuYWdlci5DYW52YUJ0bi5zdWNjZXNzSW1wb3J0JztcclxuICBlcnJvclVwbG9hZENhbnZhSW1nID0gJ0ltZ01hbmFnZXIuQ2FudmFCdG4uZXJyb3JVcGxvYWRDYW52YUltZyc7XHJcbiAgZXJyb3JSZW5hbWVDYW52YUltZyA9ICdJbWdNYW5hZ2VyLkNhbnZhQnRuLmVycm9yUmVuYW1lQ2FudmFJbWcnO1xyXG5cclxuICBmb3JjZVRvT3BlbkNhbnZhOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgYmluZEV4cGVjdGVkSW1nU2l6ZUV2ZW50OiBCZWhhdmlvclN1YmplY3Q8V2l6aUJsb2NrTWVkaWFEdG8+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXaXppQmxvY2tNZWRpYUR0bz4obnVsbCk7XHJcbiAgcHJpdmF0ZSBiaW5kRXhwZWN0ZWRTaXplRG9uZSA9IHRoaXMuYmluZEV4cGVjdGVkSW1nU2l6ZUV2ZW50LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgd3pJbWdFdmVudFNlcnZpY2U6IEltZ0V2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGdldENhbnZhTG9nbygpIHtcclxuICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5DT05GSUcuYXNzZXRzX3JvdXRlICsgXCJjYW52YS9pY29uX2NhbnZhLnN2Z1wiO1xyXG4gIH1cclxuXHJcbiAgYmluZEV2ZW50RXhlcGVjdGVkSW1nU2l6ZUNoYW5nZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmJpbmRFeHBlY3RlZFNpemVEb25lO1xyXG4gIH1cclxuXHJcbiAgZXhwZWN0ZWRJbWdTaXplc0NoYW5nZSAobWVkaWFEVE86IFdpemlCbG9ja01lZGlhRHRvKXtcclxuICAgIHRoaXMuYmluZEV4cGVjdGVkSW1nU2l6ZUV2ZW50Lm5leHQobWVkaWFEVE8pO1xyXG4gICAgaWYgKHRoaXMuZm9yY2VUb09wZW5DYW52YSkge1xyXG4gICAgICB0aGlzLm9wZW5DYW52YShwYXJzZUludChtZWRpYURUTy5pbWFnZV93aWR0aCksIHBhcnNlSW50KG1lZGlhRFRPLmltYWdlX2hlaWdodCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2FudmFBcGkoKTpPYnNlcnZhYmxlPENhbnZhQnV0dG9uQXBpPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xyXG4gICAgdGhpcy5sb2FkQ2FudmEoKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY2FudmFBcGkgJiYgQ2FudmEuRGVzaWduQnV0dG9uKSB7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHRoaXMuY2FudmFBcGkpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNhbnZhKG9ic2VydmVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVDYW52YShvYnNlcnZlcjogU3Vic2NyaWJlcjxDYW52YUJ1dHRvbkFwaT4pIHtcclxuICAgIGlmIChDYW52YS5EZXNpZ25CdXR0b24pIHtcclxuICAgICAgQ2FudmEuRGVzaWduQnV0dG9uLmluaXRpYWxpemUoe1xyXG4gICAgICAgIGFwaUtleTogdGhpcy5jYW52YUFwaUtleVxyXG5cclxuICAgICAgfSkudGhlbigoY2FudmFBcGkpID0+IHtcclxuICAgICAgICB0aGlzLmNhbnZhQXBpID0gIGNhbnZhQXBpO1xyXG4gICAgICAgIG9ic2VydmVyLm5leHQodGhpcy5jYW52YUFwaSk7XHJcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRDYW52YSgpOk9ic2VydmFibGU8bnVsbD4ge1xyXG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xyXG4gICAgICAgIGlmKHRoaXMuY2FudmFBcGkpIHtcclxuICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDYW52YVNjcmlwdChvYnNlcnZlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZENhbnZhU2NyaXB0KG9ic2VydmVyOiBTdWJzY3JpYmVyPG51bGw+KSB7XHJcblxyXG4gICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgbm9kZS5zcmMgPSB0aGlzLmNhbnZhQXBpVVJMO1xyXG4gICAgbm9kZS50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XHJcbiAgICBub2RlLmFzeW5jID0gZmFsc2U7XHJcbiAgICBub2RlLmNoYXJzZXQgPSAndXRmLTgnO1xyXG4gICAgbm9kZS5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNhbnZhKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5pbWdMb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q2FudmFBcGkoKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoYXBpOiBDYW52YUJ1dHRvbkFwaSkgPT4ge1xyXG4gICAgICB0aGlzLmNhbnZhQXBpID0gYXBpO1xyXG4gICAgICB0aGlzLmFkZE92ZXJmbG93Qm9keSgpO1xyXG4gICAgICB0aGlzLmNyZWF0ZURlc2lnbih3aWR0aCwgaGVpZ2h0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRPdmVyZmxvd0JvZHkoKSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ292aC1jYW52YScpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVPdmVyZmxvd0JvZHkoKSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ292aC1jYW52YScpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVEZXNpZ24od2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpIHtcclxuICAgIGNvbnN0ICBjcmVhdGVEZXNpZ246IENhbnZhQ3JlYXRlRGVzaWduID0ge1xyXG4gICAgICB0eXBlOiAnRXRzeVNob3BJY29uJyxcclxuICAgICAgZGltZW5zaW9ucyA6IHtcclxuICAgICAgICB1bml0czogJ3B4JyxcclxuICAgICAgICB3aWR0aDogd2lkdGggPyB3aWR0aCA6IHVuZGVmaW5lZCxcclxuICAgICAgICBoZWlnaHQ6IGhlaWdodCA/IGhlaWdodCA6IHVuZGVmaW5lZCxcclxuICAgICAgfSxcclxuICAgICAgcHVibGlzaExhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnSW1nTWFuYWdlci5DYW52YUJ0bi5wdWJsaXNoJyksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jYW52YUFwaS5jcmVhdGVEZXNpZ24oe1xyXG4gICAgICBkZXNpZ246IGNyZWF0ZURlc2lnbixcclxuICAgICAgb25EZXNpZ25QdWJsaXNoOiAoeyBleHBvcnRVcmwsIGRlc2lnblRpdGxlIH0pID0+IHRoaXMuZGVzaWduUHVibGlzaGVkKGV4cG9ydFVybCwgZGVzaWduVGl0bGUpLFxyXG4gICAgICBvbkRlc2lnbkNsb3NlOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVPdmVyZmxvd0JvZHkoKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZXNpZ25QdWJsaXNoZWQoZXhwb3J0VXJsOiBzdHJpbmcsIGRlc2lnblRpdGxlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLnVwbG9hZGluZ0ltZyk7XHJcbiAgICB0aGlzLmltZ0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuXHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UudXBsb2FkRmlsZUJ5VXJsKGV4cG9ydFVybCwgZGVzaWduVGl0bGUpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGltZykgPT4ge1xyXG4gICAgICAgIHRoaXMuaW1nTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlT3ZlcmZsb3dCb2R5KCk7XHJcblxyXG4gICAgICAgIHRoaXMud3pJbWdFdmVudFNlcnZpY2UuZW1pdEltZ0FkZGVkKGltZy5pZF9maWxlKTtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5zdWNjZXNzVXBsb2FkUGhvdG8pO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZXJyb3IgPT4ge1xyXG4gICAgICAgIHRoaXMuaW1nTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlT3ZlcmZsb3dCb2R5KCk7XHJcblxyXG4gICAgICAgIGlmIChlcnJvci5lcnJvci5jb2RlID09PSA0MDYgJiYgZXJyb3IuZXJyb3IubWVzc2FnZSkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0V2l0aEJhY2tlbmRSZXNwb25zZSh0aGlzLmVycm9yVXBsb2FkQ2FudmFJbWcsIGVycm9yLmVycm9yLm1lc3NhZ2UpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yVXBsb2FkQ2FudmFJbWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { ApiService } from '../api.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ImgCDNService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.imgCDNConfig = inject(ApiService).IMG_SIZE;
|
|
7
|
-
}
|
|
8
|
-
getUrlImg(size) {
|
|
9
|
-
const urlProperty = Object.keys(this.imgCDNConfig)
|
|
10
|
-
.filter(url => new RegExp(size, 'i').test(url))[0];
|
|
11
|
-
return this.imgCDNConfig[urlProperty];
|
|
12
|
-
}
|
|
13
|
-
getAllSize() {
|
|
14
|
-
return Object.keys(this.imgCDNConfig)
|
|
15
|
-
.map(elem => elem.match(/_(\w+)_/)[1]);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
ImgCDNService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgCDNService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
-
ImgCDNService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgCDNService });
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgCDNService, decorators: [{
|
|
21
|
-
type: Injectable
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLWNkbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9jb25maWcvaW1nLWNkbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHNUMsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFHRSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUM7S0FpQjVDO0lBZkMsU0FBUyxDQUFDLElBQTBDO1FBQ2xELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUMvQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDWixJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUwsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDcEMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDekIsQ0FBQztJQUNKLENBQUM7OzJHQWxCVSxhQUFhOytHQUFiLGFBQWE7NEZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSW1nQ0ROU2VydmljZSB7XHJcblxyXG4gIGltZ0NETkNvbmZpZyA9IGluamVjdChBcGlTZXJ2aWNlKS5JTUdfU0laRTtcclxuXHJcbiAgZ2V0VXJsSW1nKHNpemU6ICcxMDAnfCcyMDAnfCc0MDAnfCc4MDAnfCdyYXcnfHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsUHJvcGVydHkgPSBPYmplY3Qua2V5cyh0aGlzLmltZ0NETkNvbmZpZylcclxuICAgICAgLmZpbHRlcih1cmwgPT5cclxuICAgICAgICBuZXcgUmVnRXhwKHNpemUsICdpJykudGVzdCh1cmwpXHJcbiAgICAgIClbMF07XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5pbWdDRE5Db25maWdbdXJsUHJvcGVydHldO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU2l6ZSgpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5pbWdDRE5Db25maWcpXHJcbiAgICAubWFwKGVsZW0gPT5cclxuICAgICAgZWxlbS5tYXRjaCgvXyhcXHcrKV8vKVsxXVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DomService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.documentEventSource = new Subject();
|
|
7
|
-
this.documentEventDone = this.documentEventSource.asObservable();
|
|
8
|
-
this.documentScrollSource = new Subject();
|
|
9
|
-
this.documentScrollDone = this.documentScrollSource.asObservable();
|
|
10
|
-
}
|
|
11
|
-
documentEvent() {
|
|
12
|
-
return this.documentEventDone;
|
|
13
|
-
}
|
|
14
|
-
setDocumentEventListener() {
|
|
15
|
-
document.body.addEventListener('click', event => {
|
|
16
|
-
this.documentEventSource.next(event.target);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
documentScroll() {
|
|
20
|
-
return this.documentScrollDone;
|
|
21
|
-
}
|
|
22
|
-
setScrollEventListener() {
|
|
23
|
-
window.onscroll = () => {
|
|
24
|
-
this.documentScrollSource.next(window);
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
DomService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DomService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
-
DomService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DomService });
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DomService, decorators: [{
|
|
31
|
-
type: Injectable
|
|
32
|
-
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL2RvbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHL0IsTUFBTSxPQUFPLFVBQVU7SUFEdkI7UUFHVSx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLHNCQUFpQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU1RCx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLHVCQUFrQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQXFCdkU7SUFuQkMsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDckIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUM7SUFDSixDQUFDOzt3R0ExQlUsVUFBVTs0R0FBVixVQUFVOzRGQUFWLFVBQVU7a0JBRHRCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERvbVNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGRvY3VtZW50RXZlbnRTb3VyY2UgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgZG9jdW1lbnRFdmVudERvbmUgPSB0aGlzLmRvY3VtZW50RXZlbnRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgZG9jdW1lbnRTY3JvbGxTb3VyY2UgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgZG9jdW1lbnRTY3JvbGxEb25lID0gdGhpcy5kb2N1bWVudFNjcm9sbFNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgZG9jdW1lbnRFdmVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRvY3VtZW50RXZlbnREb25lO1xyXG4gIH1cclxuXHJcbiAgc2V0RG9jdW1lbnRFdmVudExpc3RlbmVyKCkge1xyXG4gICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGV2ZW50ID0+IHtcclxuICAgICAgdGhpcy5kb2N1bWVudEV2ZW50U291cmNlLm5leHQoZXZlbnQudGFyZ2V0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZG9jdW1lbnRTY3JvbGwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudFNjcm9sbERvbmU7XHJcbiAgfVxyXG5cclxuICBzZXRTY3JvbGxFdmVudExpc3RlbmVyKCkge1xyXG4gICAgd2luZG93Lm9uc2Nyb2xsID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmRvY3VtZW50U2Nyb2xsU291cmNlLm5leHQod2luZG93KTtcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, Subject } from "rxjs";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ImgEventService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.imgRemoved$ = new BehaviorSubject(undefined);
|
|
7
|
-
this.imgToEditEvent = new Subject();
|
|
8
|
-
this.imgAdded = new Subject();
|
|
9
|
-
this.listDisplayedChange = new Subject();
|
|
10
|
-
}
|
|
11
|
-
emitImgToEdit(imgToEdit) {
|
|
12
|
-
this.imgToEditEvent.next(imgToEdit);
|
|
13
|
-
}
|
|
14
|
-
getImgToEditEventListener() {
|
|
15
|
-
return this.imgToEditEvent.asObservable();
|
|
16
|
-
}
|
|
17
|
-
emitImgAdded(id_file) {
|
|
18
|
-
this.imgAdded.next(id_file);
|
|
19
|
-
}
|
|
20
|
-
getImgAddedEventListner() {
|
|
21
|
-
return this.imgAdded.asObservable();
|
|
22
|
-
}
|
|
23
|
-
emitlistDisplayedChange(value) {
|
|
24
|
-
this.listDisplayedChange.next(value);
|
|
25
|
-
}
|
|
26
|
-
getlistDisplayedChange() {
|
|
27
|
-
return this.listDisplayedChange.asObservable();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
ImgEventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
|
-
ImgEventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgEventService });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgEventService, decorators: [{
|
|
33
|
-
type: Injectable
|
|
34
|
-
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLWV2ZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL2ltZy1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSWhELE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBR0UsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBUyxTQUFTLENBQUMsQ0FBQztRQUM3QyxtQkFBYyxHQUEyQixJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUN0RSxhQUFRLEdBQW9CLElBQUksT0FBTyxFQUFVLENBQUM7UUFDbEQsd0JBQW1CLEdBQXFCLElBQUksT0FBTyxFQUFXLENBQUM7S0EwQnhFO0lBdkJFLGFBQWEsQ0FBQyxTQUF3QjtRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQseUJBQXlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWU7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELHVCQUF1QjtRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELHVCQUF1QixDQUFDLEtBQWM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsc0JBQXNCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7OzZHQTlCUyxlQUFlO2lIQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEltZ1BpY3R1cmVEVE8gfSBmcm9tICcuLi9kdG8vaW1nLW1hbmFnZXIuZHRvJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEltZ0V2ZW50U2VydmljZSB7XHJcblxyXG4gIGltZ1JlbW92ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZCk7XHJcbiAgcHJpdmF0ZSBpbWdUb0VkaXRFdmVudDogU3ViamVjdDxJbWdQaWN0dXJlRFRPPiA9IG5ldyBTdWJqZWN0PEltZ1BpY3R1cmVEVE8+KCk7XHJcbiAgcHJpdmF0ZSBpbWdBZGRlZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgbGlzdERpc3BsYXllZENoYW5nZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG5cclxuICAgZW1pdEltZ1RvRWRpdChpbWdUb0VkaXQ6IEltZ1BpY3R1cmVEVE8pe1xyXG4gICAgICB0aGlzLmltZ1RvRWRpdEV2ZW50Lm5leHQoaW1nVG9FZGl0KTtcclxuICAgfVxyXG5cclxuICAgZ2V0SW1nVG9FZGl0RXZlbnRMaXN0ZW5lcigpe1xyXG4gICAgICByZXR1cm4gdGhpcy5pbWdUb0VkaXRFdmVudC5hc09ic2VydmFibGUoKTtcclxuICAgfVxyXG5cclxuICAgZW1pdEltZ0FkZGVkKGlkX2ZpbGU6IHN0cmluZyl7XHJcbiAgICAgIHRoaXMuaW1nQWRkZWQubmV4dChpZF9maWxlKTtcclxuICAgfVxyXG5cclxuICAgZ2V0SW1nQWRkZWRFdmVudExpc3RuZXIoKXtcclxuICAgICAgcmV0dXJuIHRoaXMuaW1nQWRkZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgIH1cclxuXHJcbiAgIGVtaXRsaXN0RGlzcGxheWVkQ2hhbmdlKHZhbHVlOiBib29sZWFuKXtcclxuICAgICAgdGhpcy5saXN0RGlzcGxheWVkQ2hhbmdlLm5leHQodmFsdWUpO1xyXG4gICB9XHJcblxyXG4gICBnZXRsaXN0RGlzcGxheWVkQ2hhbmdlKCl7XHJcbiAgICAgIHJldHVybiB0aGlzLmxpc3REaXNwbGF5ZWRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { HttpParams } from '@angular/common/http';
|
|
3
|
-
import { BehaviorSubject, debounceTime, distinctUntilChanged, forkJoin, map, merge, shareReplay, startWith, Subject, switchMap, take, tap } from "rxjs";
|
|
4
|
-
import { ApiService } from './api.service';
|
|
5
|
-
import { UploadService } from './upload.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class ImgManagerService {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.uploadService = inject(UploadService);
|
|
10
|
-
this.params = new HttpParams().set("limit", "20").set("page", "1");
|
|
11
|
-
// Display the img selection
|
|
12
|
-
this.pageFicheProductConfig = {
|
|
13
|
-
stateDisplayed: 'closed',
|
|
14
|
-
multipleImgMode: true,
|
|
15
|
-
showImgManagerModule: true,
|
|
16
|
-
showSelection: true,
|
|
17
|
-
displayBtn: true,
|
|
18
|
-
pageficheProduct: true
|
|
19
|
-
};
|
|
20
|
-
this.angularFicheProductConfig = {
|
|
21
|
-
stateDisplayed: 'closed',
|
|
22
|
-
multipleImgMode: true,
|
|
23
|
-
showImgManagerModule: true,
|
|
24
|
-
showSelection: true,
|
|
25
|
-
displayBtn: false,
|
|
26
|
-
pageficheProduct: true
|
|
27
|
-
};
|
|
28
|
-
this.wiziblockConfig = {
|
|
29
|
-
stateDisplayed: 'closed',
|
|
30
|
-
multipleImgMode: false,
|
|
31
|
-
showImgManagerModule: true,
|
|
32
|
-
showSelection: false,
|
|
33
|
-
displayBtn: false
|
|
34
|
-
};
|
|
35
|
-
this.simpleWithButtonOpenerConfig = {
|
|
36
|
-
stateDisplayed: 'closed',
|
|
37
|
-
multipleImgMode: false,
|
|
38
|
-
showImgManagerModule: true,
|
|
39
|
-
showSelection: false,
|
|
40
|
-
displayBtn: true
|
|
41
|
-
};
|
|
42
|
-
this.fullWindowConfig = {
|
|
43
|
-
stateDisplayed: 'window',
|
|
44
|
-
multipleImgMode: false,
|
|
45
|
-
showImgManagerModule: true,
|
|
46
|
-
showSelection: false,
|
|
47
|
-
displayBtn: false
|
|
48
|
-
};
|
|
49
|
-
this.apiService = inject(ApiService);
|
|
50
|
-
this.destroy$ = new Subject();
|
|
51
|
-
this.searchImagesParameters$ = new BehaviorSubject(this.DEFAULT_SEARCH_PARAMS);
|
|
52
|
-
this.refreshImageList$ = new Subject();
|
|
53
|
-
this.resetImageList$ = merge(this.uploadService.imageUploaded$);
|
|
54
|
-
this.isLoading$ = new BehaviorSubject(true);
|
|
55
|
-
this.fetchImagesList$ = merge(this.searchImagesParameters$.pipe(debounceTime(800), distinctUntilChanged()), this.refreshImageList$.pipe(switchMap(() => this.searchImagesParameters$))).pipe(map((params) => this.getHttpParameters(params)), tap(() => this.isLoading$.next(true)), switchMap((params) => forkJoin({
|
|
56
|
-
imageList: this.apiService.getShopImgList(params).pipe(take(1)),
|
|
57
|
-
imageTotal: this.apiService.getShopTotalImgList(params).pipe(take(1))
|
|
58
|
-
})), tap(() => this.isLoading$.next(false)));
|
|
59
|
-
this.imageList$ = merge(this.fetchImagesList$, this.resetImageList$.pipe(tap(() => this.isLoading$.next(true)), tap(() => this.searchImagesParameters$.next(this.DEFAULT_SEARCH_PARAMS)), map(() => this.DEFAULT_DATA_LIST))).pipe(startWith(this.DEFAULT_DATA_LIST), shareReplay(1));
|
|
60
|
-
}
|
|
61
|
-
get DEFAULT_SEARCH_PARAMS() {
|
|
62
|
-
return {
|
|
63
|
-
limit: '30',
|
|
64
|
-
page: '1',
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
get DEFAULT_DATA_LIST() {
|
|
68
|
-
return {
|
|
69
|
-
imageList: {
|
|
70
|
-
data: [],
|
|
71
|
-
filter: [],
|
|
72
|
-
limit: 0,
|
|
73
|
-
page: 0,
|
|
74
|
-
totalRecords: 0
|
|
75
|
-
},
|
|
76
|
-
imageTotal: 0
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
getHttpParameters(params) {
|
|
80
|
-
let parameters = new HttpParams();
|
|
81
|
-
parameters = parameters.set('id_file:sort', 'desc');
|
|
82
|
-
for (const param in params) {
|
|
83
|
-
parameters = parameters.set(param, params[param]);
|
|
84
|
-
}
|
|
85
|
-
if (params?.search) {
|
|
86
|
-
parameters = parameters.set('display_name:contains', params.search);
|
|
87
|
-
}
|
|
88
|
-
return parameters;
|
|
89
|
-
}
|
|
90
|
-
getShopImg(idFile) {
|
|
91
|
-
return this.apiService.getShopImg(idFile).pipe(tap(() => this.refreshImageList$.next()));
|
|
92
|
-
}
|
|
93
|
-
replaceImg(imageBase64, id_file) {
|
|
94
|
-
return this.apiService.replaceImg(imageBase64, id_file).pipe(tap(() => this.refreshImageList$.next()));
|
|
95
|
-
}
|
|
96
|
-
removeImg(id_file) {
|
|
97
|
-
return this.apiService.removeImg(id_file).pipe(tap(() => this.refreshImageList$.next()));
|
|
98
|
-
}
|
|
99
|
-
removeMultipleImg(id_array) {
|
|
100
|
-
return this.apiService.removeMultipleImg(id_array).pipe(tap(() => this.refreshImageList$.next()));
|
|
101
|
-
}
|
|
102
|
-
getImgManagerDisplayConfig(displayName) {
|
|
103
|
-
switch (displayName) {
|
|
104
|
-
case "window":
|
|
105
|
-
return this.fullWindowConfig;
|
|
106
|
-
case "wizi-block":
|
|
107
|
-
return this.wiziblockConfig;
|
|
108
|
-
case "fiche-product":
|
|
109
|
-
return this.pageFicheProductConfig;
|
|
110
|
-
case "simple-with-button":
|
|
111
|
-
return this.simpleWithButtonOpenerConfig;
|
|
112
|
-
case 'angular-fiche-product':
|
|
113
|
-
return this.angularFicheProductConfig;
|
|
114
|
-
default:
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
getAllImgManagerDisplayConfig() {
|
|
119
|
-
return [
|
|
120
|
-
this.fullWindowConfig,
|
|
121
|
-
this.wiziblockConfig,
|
|
122
|
-
this.pageFicheProductConfig,
|
|
123
|
-
this.simpleWithButtonOpenerConfig,
|
|
124
|
-
];
|
|
125
|
-
}
|
|
126
|
-
ngOnDestroy() {
|
|
127
|
-
this.destroy$.next();
|
|
128
|
-
this.destroy$.complete();
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
ImgManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
132
|
-
ImgManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgManagerService });
|
|
133
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgManagerService, decorators: [{
|
|
134
|
-
type: Injectable
|
|
135
|
-
}] });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJeEosT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBR2pELE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFHbUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdkQsV0FBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVELDRCQUE0QjtRQUNwQiwyQkFBc0IsR0FBNEI7WUFDeEQsY0FBYyxFQUFFLFFBQVE7WUFDeEIsZUFBZSxFQUFFLElBQUk7WUFDckIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixhQUFhLEVBQUUsSUFBSTtZQUNuQixVQUFVLEVBQUUsSUFBSTtZQUNoQixnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCLENBQUE7UUFFTyw4QkFBeUIsR0FBNEI7WUFDM0QsY0FBYyxFQUFFLFFBQVE7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O1NBQ1Y7SUFDSCxDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLE9BQU87WUFDTCxJQUFJLENBQUMsZ0JBQWdCO1lBQ3JCLElBQUksQ0FBQyxlQUFlO1lBQ3BCLElBQUksQ0FBQyxzQkFBc0I7WUFDM0IsSUFBSSxDQUFDLDRCQUE0QjtTQUNsQyxDQUFBO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7K0dBMUxVLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmb3JrSm9pbiwgbWFwLCBtZXJnZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBJbWdQaWN0dXJlc0RUTywgUGFyYW1zSW1nTWFuYWdlckRUTyB9IGZyb20gJy4uL2R0by9pbWctbWFuYWdlci5kdG8nO1xyXG5pbXBvcnQgeyBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyB9IGZyb20gJy4uL2R0by9leHBvcnQtZHRvcy5hcGknO1xyXG5pbXBvcnQgeyBJbWdNYW5hZ2VyQ29uZmlnIH0gZnJvbSAnLi4vZHRvL2NvbmZpZy9pbWctbWFuYWdlcic7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4vdXBsb2FkLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSW1nTWFuYWdlclNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHVwbG9hZFNlcnZpY2UgPSBpbmplY3QoVXBsb2FkU2VydmljZSk7XHJcblxyXG4gIHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwibGltaXRcIixcIjIwXCIpLnNldChcInBhZ2VcIixcIjFcIik7XHJcblxyXG4gIC8vIERpc3BsYXkgdGhlIGltZyBzZWxlY3Rpb25cclxuICBwcml2YXRlIHBhZ2VGaWNoZVByb2R1Y3RDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0ge1xyXG4gICAgc3RhdGVEaXNwbGF5ZWQ6ICdjbG9zZWQnLFxyXG4gICAgbXVsdGlwbGVJbWdNb2RlOiB0cnVlLFxyXG4gICAgc2hvd0ltZ01hbmFnZXJNb2R1bGU6IHRydWUsXHJcbiAgICBzaG93U2VsZWN0aW9uOiB0cnVlLFxyXG4gICAgZGlzcGxheUJ0bjogdHJ1ZSxcclxuICAgIHBhZ2VmaWNoZVByb2R1Y3Q6IHRydWVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYW5ndWxhckZpY2hlUHJvZHVjdENvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XHJcbiAgICBzdGF0ZURpc3BsYXllZDogJ2Nsb3NlZCcsXHJcbiAgICBtdWx0aXBsZUltZ01vZGU6IHRydWUsXHJcbiAgICBzaG93SW1nTWFuYWdlck1vZHVsZTogdHJ1ZSxcclxuICAgIHNob3dTZWxlY3Rpb246IHRydWUsXHJcbiAgICBkaXNwbGF5QnRuOiBmYWxzZSxcclxuICAgIHBhZ2VmaWNoZVByb2R1Y3Q6IHRydWVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2l6aWJsb2NrQ29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IHtcclxuICAgIHN0YXRlRGlzcGxheWVkOiAnY2xvc2VkJyxcclxuICAgIG11bHRpcGxlSW1nTW9kZTogZmFsc2UsXHJcbiAgICBzaG93SW1nTWFuYWdlck1vZHVsZTogdHJ1ZSxcclxuICAgIHNob3dTZWxlY3Rpb246IGZhbHNlLFxyXG4gICAgZGlzcGxheUJ0bjogZmFsc2VcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2ltcGxlV2l0aEJ1dHRvbk9wZW5lckNvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XHJcbiAgICBzdGF0ZURpc3BsYXllZDogJ2Nsb3NlZCcsXHJcbiAgICBtdWx0aXBsZUltZ01vZGU6IGZhbHNlLFxyXG4gICAgc2hvd0ltZ01hbmFnZXJNb2R1bGU6IHRydWUsXHJcbiAgICBzaG93U2VsZWN0aW9uOiBmYWxzZSxcclxuICAgIGRpc3BsYXlCdG46IHRydWVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZnVsbFdpbmRvd0NvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XHJcbiAgICBzdGF0ZURpc3BsYXllZDogJ3dpbmRvdycsXHJcbiAgICBtdWx0aXBsZUltZ01vZGU6IGZhbHNlLFxyXG4gICAgc2hvd0ltZ01hbmFnZXJNb2R1bGU6IHRydWUsXHJcbiAgICBzaG93U2VsZWN0aW9uOiBmYWxzZSxcclxuICAgIGRpc3BsYXlCdG46IGZhbHNlXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgZ2V0IERFRkFVTFRfU0VBUkNIX1BBUkFNUygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbWl0OiAnMzAnLFxyXG4gICAgICBwYWdlOiAnMScsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgREVGQVVMVF9EQVRBX0xJU1QoKToge1xyXG4gICAgaW1hZ2VMaXN0OiBJbWdQaWN0dXJlc0RUTztcclxuICAgIGltYWdlVG90YWw6IG51bWJlcjtcclxuICB9IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGltYWdlTGlzdDoge1xyXG4gICAgICAgIGRhdGE6IFtdLFxyXG4gICAgICAgIGZpbHRlcjogW10sXHJcbiAgICAgICAgbGltaXQ6IDAsXHJcbiAgICAgICAgcGFnZTogMCxcclxuICAgICAgICB0b3RhbFJlY29yZHM6IDBcclxuICAgICAgfSxcclxuICAgICAgaW1hZ2VUb3RhbDogMFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWFyY2hJbWFnZXNQYXJhbWV0ZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFyYW1zSW1nTWFuYWdlckRUTz4odGhpcy5ERUZBVUxUX1NFQVJDSF9QQVJBTVMpO1xyXG4gIHB1YmxpYyByZWZyZXNoSW1hZ2VMaXN0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHVibGljIHJlc2V0SW1hZ2VMaXN0JCA9IG1lcmdlKFxyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmltYWdlVXBsb2FkZWQkXHJcbiAgKTtcclxuXHJcbiAgcHVibGljIGlzTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHByaXZhdGUgZmV0Y2hJbWFnZXNMaXN0JCA9IG1lcmdlKFxyXG4gICAgICB0aGlzLnNlYXJjaEltYWdlc1BhcmFtZXRlcnMkLnBpcGUoXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDgwMCksXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgKSxcclxuICAgICAgdGhpcy5yZWZyZXNoSW1hZ2VMaXN0JC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNlYXJjaEltYWdlc1BhcmFtZXRlcnMkKVxyXG4gICAgICApLFxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKHBhcmFtcykgPT4gdGhpcy5nZXRIdHRwUGFyYW1ldGVycyhwYXJhbXMpKSxcclxuICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nJC5uZXh0KHRydWUpKSxcclxuICAgICAgc3dpdGNoTWFwKChwYXJhbXMpID0+IGZvcmtKb2luKHtcclxuICAgICAgICBpbWFnZUxpc3Q6IHRoaXMuYXBpU2VydmljZS5nZXRTaG9wSW1nTGlzdChwYXJhbXMpLnBpcGUodGFrZSgxKSksXHJcbiAgICAgICAgaW1hZ2VUb3RhbDogdGhpcy5hcGlTZXJ2aWNlLmdldFNob3BUb3RhbEltZ0xpc3QocGFyYW1zKS5waXBlKHRha2UoMSkpXHJcbiAgICAgIH0pKSxcclxuICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nJC5uZXh0KGZhbHNlKSlcclxuICAgICk7XHJcblxyXG5cclxuICBwdWJsaWMgaW1hZ2VMaXN0JCA9IG1lcmdlKFxyXG4gICAgICB0aGlzLmZldGNoSW1hZ2VzTGlzdCQsXHJcbiAgICAgIHRoaXMucmVzZXRJbWFnZUxpc3QkLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nJC5uZXh0KHRydWUpKSxcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5zZWFyY2hJbWFnZXNQYXJhbWV0ZXJzJC5uZXh0KHRoaXMuREVGQVVMVF9TRUFSQ0hfUEFSQU1TKSksXHJcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuREVGQVVMVF9EQVRBX0xJU1QpXHJcbiAgICAgICAgKVxyXG4gICkucGlwZShcclxuICAgIHN0YXJ0V2l0aCggdGhpcy5ERUZBVUxUX0RBVEFfTElTVCksXHJcbiAgICBzaGFyZVJlcGxheSgxKVxyXG4gICk7XHJcblxyXG5cclxuICBnZXRIdHRwUGFyYW1ldGVycyhwYXJhbXM/OiBQYXJhbXNJbWdNYW5hZ2VyRFRPKSB7XHJcbiAgICBsZXQgcGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLnNldCgnaWRfZmlsZTpzb3J0JywgJ2Rlc2MnKTtcclxuICAgIGZvciAoY29uc3QgcGFyYW0gaW4gcGFyYW1zKSB7XHJcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLnNldChwYXJhbSwgcGFyYW1zW3BhcmFtXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBhcmFtcz8uc2VhcmNoKSB7XHJcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLnNldCgnZGlzcGxheV9uYW1lOmNvbnRhaW5zJywgcGFyYW1zLnNlYXJjaCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1ldGVycztcclxuICB9XHJcblxyXG4gIGdldFNob3BJbWcoaWRGaWxlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0U2hvcEltZyhpZEZpbGUpLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnJlZnJlc2hJbWFnZUxpc3QkLm5leHQoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXBsYWNlSW1nKGltYWdlQmFzZTY0OiBzdHJpbmcsIGlkX2ZpbGU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5yZXBsYWNlSW1nKGltYWdlQmFzZTY0LCBpZF9maWxlKS5waXBlKFxyXG4gICAgICB0YXAoKCkgPT4gdGhpcy5yZWZyZXNoSW1hZ2VMaXN0JC5uZXh0KCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIHJlbW92ZUltZyhpZF9maWxlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucmVtb3ZlSW1nKGlkX2ZpbGUpLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnJlZnJlc2hJbWFnZUxpc3QkLm5leHQoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdWx0aXBsZUltZyhpZF9hcnJheTogc3RyaW5nW10pe1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5yZW1vdmVNdWx0aXBsZUltZyhpZF9hcnJheSkucGlwZShcclxuICAgICAgdGFwKCgpID0+IHRoaXMucmVmcmVzaEltYWdlTGlzdCQubmV4dCgpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnKGRpc3BsYXlOYW1lOiBJbWdNYW5hZ2VyQ29uZmlnKSB7XHJcbiAgICBzd2l0Y2ggKGRpc3BsYXlOYW1lKSB7XHJcbiAgICAgIGNhc2UgXCJ3aW5kb3dcIjpcclxuICAgICAgICByZXR1cm4gdGhpcy5mdWxsV2luZG93Q29uZmlnO1xyXG5cclxuICAgICAgY2FzZSBcIndpemktYmxvY2tcIjpcclxuICAgICAgICByZXR1cm4gdGhpcy53aXppYmxvY2tDb25maWc7XHJcblxyXG4gICAgICBjYXNlIFwiZmljaGUtcHJvZHVjdFwiOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWc7XHJcblxyXG4gICAgICBjYXNlIFwic2ltcGxlLXdpdGgtYnV0dG9uXCI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2ltcGxlV2l0aEJ1dHRvbk9wZW5lckNvbmZpZztcclxuXHJcbiAgICAgIGNhc2UgJ2FuZ3VsYXItZmljaGUtcHJvZHVjdCc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5ndWxhckZpY2hlUHJvZHVjdENvbmZpZ1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBbGxJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZygpOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZ1tdIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHRoaXMuZnVsbFdpbmRvd0NvbmZpZyxcclxuICAgICAgdGhpcy53aXppYmxvY2tDb25maWcsXHJcbiAgICAgIHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZyxcclxuICAgICAgdGhpcy5zaW1wbGVXaXRoQnV0dG9uT3BlbmVyQ29uZmlnLFxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ImgSelectionService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.multipleImgMode = false;
|
|
7
|
-
this.imgSelection$ = new BehaviorSubject([]);
|
|
8
|
-
this.imgSelectedListLoading$ = new BehaviorSubject(false);
|
|
9
|
-
}
|
|
10
|
-
getImgSelection() {
|
|
11
|
-
return this.imgSelection$.getValue();
|
|
12
|
-
}
|
|
13
|
-
// Use in img manager webelement, when the product img selection is retrieved
|
|
14
|
-
setImgSelection(imgSelectedList) {
|
|
15
|
-
this.imgSelection$.next(imgSelectedList || []);
|
|
16
|
-
}
|
|
17
|
-
addImgSelected(picture) {
|
|
18
|
-
if (this.multipleImgMode) {
|
|
19
|
-
this.imgSelection$.next([...this.imgSelection$.getValue(), picture]);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
this.imgSelection$.next([picture]);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
removeImgSelectedByIndex(index) {
|
|
26
|
-
const imgSelectedList = this.imgSelection$.getValue();
|
|
27
|
-
imgSelectedList.splice(index, 1);
|
|
28
|
-
this.imgSelection$.next(imgSelectedList);
|
|
29
|
-
}
|
|
30
|
-
removeImgSelectedById(id_file) {
|
|
31
|
-
if (!this.multipleImgMode) {
|
|
32
|
-
this.imgSelection$.next([]);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
this.imgSelection$.next(this.imgSelection$.getValue().filter(img => img.id_file !== id_file));
|
|
36
|
-
}
|
|
37
|
-
removeImgSelectionByIds(id_file_list) {
|
|
38
|
-
if (!this.multipleImgMode) {
|
|
39
|
-
this.imgSelection$.next([]);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
this.imgSelection$.next(this.imgSelection$.getValue().filter(img => id_file_list.includes(img.id_file)));
|
|
43
|
-
}
|
|
44
|
-
removeAllImgSelected() {
|
|
45
|
-
this.imgSelection$.next([]);
|
|
46
|
-
}
|
|
47
|
-
setMultipleImgMode(activated) {
|
|
48
|
-
this.multipleImgMode = activated;
|
|
49
|
-
}
|
|
50
|
-
initImgSelectedList(imgSelectedList) {
|
|
51
|
-
// Retrieve the imgSelectedList from parameter
|
|
52
|
-
if (imgSelectedList) {
|
|
53
|
-
this.imgSelection$.next(imgSelectedList);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
this.imgSelection$.next([]);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Use angular cdk function
|
|
60
|
-
* Called by img selection component
|
|
61
|
-
* @param event
|
|
62
|
-
*/
|
|
63
|
-
moveImgOrder(event) {
|
|
64
|
-
const fromIndex = event.previousIndex;
|
|
65
|
-
const toIndex = event.currentIndex;
|
|
66
|
-
const imgSelectedList = this.imgSelection$.getValue();
|
|
67
|
-
imgSelectedList.splice(toIndex, 0, imgSelectedList.splice(fromIndex, 1)[0]);
|
|
68
|
-
this.imgSelection$.next(imgSelectedList);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
ImgSelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
72
|
-
ImgSelectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgSelectionService });
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImgSelectionService, decorators: [{
|
|
74
|
-
type: Injectable
|
|
75
|
-
}], ctorParameters: function () { return []; } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXNlbGVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9pbWctc2VsZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJdkMsTUFBTSxPQUFPLG1CQUFtQjtJQU01QjtRQUpBLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGtCQUFhLEdBQXFDLElBQUksZUFBZSxDQUFrQixFQUFFLENBQUMsQ0FBQztRQUMzRiw0QkFBdUIsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFekUsQ0FBQztJQUVoQixlQUFlO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsZUFBZSxDQUFDLGVBQWdDO1FBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQXVCO1FBQ2xDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3hFO2FBQU07WUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBYTtRQUNsQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RELGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRTdDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxPQUFlO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxZQUFzQjtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1QixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxTQUFrQjtRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsZUFBZ0M7UUFDaEQsOENBQThDO1FBQzlDLElBQUksZUFBZSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3pDLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLEtBQTRCO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUNuQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RELGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O2lIQTVFUSxtQkFBbUI7cUhBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEltZ1BpY3R1cmVEVE8gfSBmcm9tICcuLi9kdG8vaW1nLW1hbmFnZXIuZHRvJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJbWdTZWxlY3Rpb25TZXJ2aWNlIHtcclxuXHJcbiAgICBtdWx0aXBsZUltZ01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGltZ1NlbGVjdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxJbWdQaWN0dXJlRFRPW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJbWdQaWN0dXJlRFRPW10+KFtdKTtcclxuICAgIGltZ1NlbGVjdGVkTGlzdExvYWRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gICAgZ2V0SW1nU2VsZWN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmltZ1NlbGVjdGlvbiQuZ2V0VmFsdWUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBVc2UgaW4gaW1nIG1hbmFnZXIgd2ViZWxlbWVudCwgd2hlbiB0aGUgcHJvZHVjdCBpbWcgc2VsZWN0aW9uIGlzIHJldHJpZXZlZFxyXG4gICAgc2V0SW1nU2VsZWN0aW9uKGltZ1NlbGVjdGVkTGlzdDogSW1nUGljdHVyZURUT1tdKSB7XHJcbiAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb24kLm5leHQoaW1nU2VsZWN0ZWRMaXN0IHx8IFtdKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRJbWdTZWxlY3RlZChwaWN0dXJlIDogSW1nUGljdHVyZURUTykge1xyXG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlSW1nTW9kZSkge1xyXG4gICAgICAgICAgICB0aGlzLmltZ1NlbGVjdGlvbiQubmV4dChbLi4udGhpcy5pbWdTZWxlY3Rpb24kLmdldFZhbHVlKCksIHBpY3R1cmVdKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmltZ1NlbGVjdGlvbiQubmV4dChbcGljdHVyZV0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVJbWdTZWxlY3RlZEJ5SW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IGltZ1NlbGVjdGVkTGlzdCA9IHRoaXMuaW1nU2VsZWN0aW9uJC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgIGltZ1NlbGVjdGVkTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uJC5uZXh0KGltZ1NlbGVjdGVkTGlzdCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUltZ1NlbGVjdGVkQnlJZChpZF9maWxlOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGVJbWdNb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uJC5uZXh0KFtdKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmltZ1NlbGVjdGlvbiQubmV4dCh0aGlzLmltZ1NlbGVjdGlvbiQuZ2V0VmFsdWUoKS5maWx0ZXIoaW1nID0+IGltZy5pZF9maWxlICE9PSBpZF9maWxlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlSW1nU2VsZWN0aW9uQnlJZHMoaWRfZmlsZV9saXN0OiBzdHJpbmdbXSkge1xyXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZUltZ01vZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb24kLm5leHQoW10pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uJC5uZXh0KHRoaXMuaW1nU2VsZWN0aW9uJC5nZXRWYWx1ZSgpLmZpbHRlcihpbWcgPT4gaWRfZmlsZV9saXN0LmluY2x1ZGVzKGltZy5pZF9maWxlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUFsbEltZ1NlbGVjdGVkKCkgeyAvLyBUT0RPIHRlc3QgaXRcclxuICAgICAgICB0aGlzLmltZ1NlbGVjdGlvbiQubmV4dChbXSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TXVsdGlwbGVJbWdNb2RlKGFjdGl2YXRlZDogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVJbWdNb2RlID0gYWN0aXZhdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRJbWdTZWxlY3RlZExpc3QoaW1nU2VsZWN0ZWRMaXN0OiBJbWdQaWN0dXJlRFRPW10pIHtcclxuICAgICAgICAvLyBSZXRyaWV2ZSB0aGUgaW1nU2VsZWN0ZWRMaXN0IGZyb20gcGFyYW1ldGVyXHJcbiAgICAgICAgaWYgKGltZ1NlbGVjdGVkTGlzdCkge1xyXG4gICAgICAgICAgICB0aGlzLmltZ1NlbGVjdGlvbiQubmV4dChpbWdTZWxlY3RlZExpc3QpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uJC5uZXh0KFtdKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVzZSBhbmd1bGFyIGNkayBmdW5jdGlvblxyXG4gICAgICogQ2FsbGVkIGJ5IGltZyBzZWxlY3Rpb24gY29tcG9uZW50XHJcbiAgICAgKiBAcGFyYW0gZXZlbnRcclxuICAgICAqL1xyXG4gICAgbW92ZUltZ09yZGVyKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgICAgICBjb25zdCBmcm9tSW5kZXggPSBldmVudC5wcmV2aW91c0luZGV4O1xyXG4gICAgICAgIGNvbnN0IHRvSW5kZXggPSBldmVudC5jdXJyZW50SW5kZXg7XHJcbiAgICAgICAgY29uc3QgaW1nU2VsZWN0ZWRMaXN0ID0gdGhpcy5pbWdTZWxlY3Rpb24kLmdldFZhbHVlKCk7XHJcbiAgICAgICAgaW1nU2VsZWN0ZWRMaXN0LnNwbGljZSh0b0luZGV4LCAwLCBpbWdTZWxlY3RlZExpc3Quc3BsaWNlKGZyb21JbmRleCwgMSlbMF0pO1xyXG4gICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uJC5uZXh0KGltZ1NlbGVjdGVkTGlzdCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
3
|
-
import { map } from "rxjs/operators";
|
|
4
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
-
import { ApiService } from './api.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common/http";
|
|
8
|
-
import * as i2 from "./api.service";
|
|
9
|
-
import * as i3 from "@ngx-translate/core";
|
|
10
|
-
export class PexelsService {
|
|
11
|
-
get apiBaseUrl() {
|
|
12
|
-
return this.apiService.CONFIG.pexels_route;
|
|
13
|
-
}
|
|
14
|
-
;
|
|
15
|
-
get apiKey() {
|
|
16
|
-
return this.apiService.CONFIG.pexels_token;
|
|
17
|
-
}
|
|
18
|
-
constructor(http, apiService, translateService) {
|
|
19
|
-
this.http = http;
|
|
20
|
-
this.apiService = apiService;
|
|
21
|
-
this.translateService = translateService;
|
|
22
|
-
this.languages = { 'fr': 'fr-FR', 'en': 'en-US', 'it': 'it-IT', 'es': 'es-ES' };
|
|
23
|
-
this.setLang(this.translateService.currentLang);
|
|
24
|
-
this.translateService.onLangChange.subscribe(langData => {
|
|
25
|
-
this.setLang(langData.lang);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
setLang(lang) {
|
|
29
|
-
this.lang = this.languages[lang] ? this.languages[lang] : 'fr-FR';
|
|
30
|
-
}
|
|
31
|
-
searchOnPexels(toSearch, perPage, page) {
|
|
32
|
-
const httpOptions = {
|
|
33
|
-
headers: new HttpHeaders({
|
|
34
|
-
Authorization: this.apiKey
|
|
35
|
-
})
|
|
36
|
-
};
|
|
37
|
-
let request;
|
|
38
|
-
// If search value is not empty or blank
|
|
39
|
-
if (toSearch && !/^\s*$/.test(toSearch)) {
|
|
40
|
-
request = `/search?query=${toSearch}&per_page=${perPage}&page=${page}&locale=${this.lang}`;
|
|
41
|
-
}
|
|
42
|
-
else { // Search by category or display Pexels selection
|
|
43
|
-
const shopCategory = this.apiService.getShopCategory();
|
|
44
|
-
// Search by shop category
|
|
45
|
-
if (shopCategory && shopCategory !== 'other' && shopCategory !== 'btob' && shopCategory !== 'default') {
|
|
46
|
-
request = `/search?query=${shopCategory}&per_page=${perPage}&page=${page}&locale=en-US`;
|
|
47
|
-
}
|
|
48
|
-
else { // Display Pexels selection
|
|
49
|
-
request = `/curated?per_page=${perPage}&page=${page}`;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return this.http.get(this.apiBaseUrl + request, httpOptions).pipe(map((data) => {
|
|
53
|
-
return data;
|
|
54
|
-
}));
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
PexelsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PexelsService, deps: [{ token: i1.HttpClient }, { token: i2.ApiService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
58
|
-
PexelsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PexelsService });
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PexelsService, decorators: [{
|
|
60
|
-
type: Injectable
|
|
61
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ApiService }, { type: i3.TranslateService }]; } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGV4ZWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3BleGVscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFHM0MsTUFBTSxPQUFPLGFBQWE7SUFDeEIsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDN0MsQ0FBQztJQUFBLENBQUM7SUFDRixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUM3QyxDQUFDO0lBSUQsWUFDVSxJQUFnQixFQUNoQixVQUFzQixFQUN0QixnQkFBa0M7UUFGbEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFMNUMsY0FBUyxHQUFHLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDO1FBT3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ25FLENBQUM7SUFFRixjQUFjLENBQUMsUUFBZ0IsRUFBRSxPQUFlLEVBQUUsSUFBWTtRQUM1RCxNQUFNLFdBQVcsR0FBRztZQUNsQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3ZCLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTTthQUMzQixDQUFDO1NBQ0gsQ0FBQztRQUVGLElBQUksT0FBTyxDQUFDO1FBRVosd0NBQXdDO1FBQ3hDLElBQUksUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN2QyxPQUFPLEdBQUcsaUJBQWlCLFFBQVEsYUFBYSxPQUFPLFNBQVMsSUFBSSxXQUFXLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUU1RjthQUFNLEVBQUUsaURBQWlEO1lBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7WUFFdkQsMEJBQTBCO1lBQzFCLElBQUksWUFBWSxJQUFJLFlBQVksS0FBSyxPQUFPLElBQUksWUFBWSxLQUFLLE1BQU0sSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO2dCQUNyRyxPQUFPLEdBQUcsaUJBQWlCLFlBQVksYUFBYSxPQUFPLFNBQVMsSUFBSSxlQUFlLENBQUM7YUFDekY7aUJBQU0sRUFBRSwyQkFBMkI7Z0JBQ2xDLE9BQU8sR0FBRyxxQkFBcUIsT0FBTyxTQUFTLElBQUksRUFBRSxDQUFDO2FBQ3ZEO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDL0QsR0FBRyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OzJHQXREVSxhQUFhOytHQUFiLGFBQWE7NEZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEhlYWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgbWFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1d6SW1nTGliRHRvfSBmcm9tIFwiLi4vZHRvL3BleGVscy1pbWcuZHRvXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUGV4ZWxzU2VydmljZSB7XHJcbiAgZ2V0IGFwaUJhc2VVcmwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLkNPTkZJRy5wZXhlbHNfcm91dGU7XHJcbiAgfTtcclxuICBnZXQgYXBpS2V5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5DT05GSUcucGV4ZWxzX3Rva2VuO1xyXG4gIH1cclxuICBsYW5nOiBzdHJpbmc7XHJcbiAgbGFuZ3VhZ2VzID0geydmcic6ICdmci1GUicsICdlbic6ICdlbi1VUycsICdpdCc6ICdpdC1JVCcsICdlcyc6ICdlcy1FUyd9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5zZXRMYW5nKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZShsYW5nRGF0YSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0TGFuZyhsYW5nRGF0YS5sYW5nKTtcclxuICAgIH0pXHJcbiAgIH1cclxuXHJcbiAgIHNldExhbmcobGFuZzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmxhbmcgPSB0aGlzLmxhbmd1YWdlc1tsYW5nXSA/IHRoaXMubGFuZ3VhZ2VzW2xhbmddIDogJ2ZyLUZSJztcclxuICAgfVxyXG5cclxuICBzZWFyY2hPblBleGVscyh0b1NlYXJjaDogc3RyaW5nLCBwZXJQYWdlOiBudW1iZXIsIHBhZ2U6IG51bWJlcik6IE9ic2VydmFibGU8V3pJbWdMaWJEdG8+IHtcclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgIEF1dGhvcml6YXRpb246IHRoaXMuYXBpS2V5XHJcbiAgICAgIH0pXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCByZXF1ZXN0O1xyXG5cclxuICAgIC8vIElmIHNlYXJjaCB2YWx1ZSBpcyBub3QgZW1wdHkgb3IgYmxhbmtcclxuICAgIGlmICh0b1NlYXJjaCAmJiAhL15cXHMqJC8udGVzdCh0b1NlYXJjaCkpIHtcclxuICAgICAgcmVxdWVzdCA9IGAvc2VhcmNoP3F1ZXJ5PSR7dG9TZWFyY2h9JnBlcl9wYWdlPSR7cGVyUGFnZX0mcGFnZT0ke3BhZ2V9JmxvY2FsZT0ke3RoaXMubGFuZ31gO1xyXG5cclxuICAgIH0gZWxzZSB7IC8vIFNlYXJjaCBieSBjYXRlZ29yeSBvciBkaXNwbGF5IFBleGVscyBzZWxlY3Rpb25cclxuICAgICAgY29uc3Qgc2hvcENhdGVnb3J5ID0gdGhpcy5hcGlTZXJ2aWNlLmdldFNob3BDYXRlZ29yeSgpO1xyXG5cclxuICAgICAgLy8gU2VhcmNoIGJ5IHNob3AgY2F0ZWdvcnlcclxuICAgICAgaWYgKHNob3BDYXRlZ29yeSAmJiBzaG9wQ2F0ZWdvcnkgIT09ICdvdGhlcicgJiYgc2hvcENhdGVnb3J5ICE9PSAnYnRvYicgJiYgc2hvcENhdGVnb3J5ICE9PSAnZGVmYXVsdCcpIHtcclxuICAgICAgICByZXF1ZXN0ID0gYC9zZWFyY2g/cXVlcnk9JHtzaG9wQ2F0ZWdvcnl9JnBlcl9wYWdlPSR7cGVyUGFnZX0mcGFnZT0ke3BhZ2V9JmxvY2FsZT1lbi1VU2A7XHJcbiAgICAgIH0gZWxzZSB7IC8vIERpc3BsYXkgUGV4ZWxzIHNlbGVjdGlvblxyXG4gICAgICAgIHJlcXVlc3QgPSBgL2N1cmF0ZWQ/cGVyX3BhZ2U9JHtwZXJQYWdlfSZwYWdlPSR7cGFnZX1gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5hcGlCYXNlVXJsICsgcmVxdWVzdCwgaHR0cE9wdGlvbnMpLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogV3pJbWdMaWJEdG8pID0+IHtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|