@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.
Files changed (177) hide show
  1. package/esm2022/lib/components/canva-btn/canva-btn.component.mjs +73 -0
  2. package/esm2022/lib/components/images-view/images-actions-handler.mjs +168 -0
  3. package/esm2022/lib/components/images-view/images-view.component.mjs +391 -0
  4. package/esm2022/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +70 -0
  5. package/esm2022/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +73 -0
  6. package/esm2022/lib/components/images-view/table-view/table-view.component.mjs +48 -0
  7. package/esm2022/lib/components/img-editor/cropper/cropper.component.mjs +313 -0
  8. package/esm2022/lib/components/img-editor/img-editor.component.mjs +129 -0
  9. package/esm2022/lib/components/img-editor/info-section/info-section.component.mjs +58 -0
  10. package/esm2022/lib/components/img-selection/img-selection.component.mjs +58 -0
  11. package/esm2022/lib/components/img-tabs/img-tabs.component.mjs +128 -0
  12. package/esm2022/lib/components/img-upload/img-upload.component.mjs +133 -0
  13. package/esm2022/lib/components/loader/loader.component.mjs +21 -0
  14. package/esm2022/lib/components/pexels-lib/pexels-lib.component.mjs +211 -0
  15. package/esm2022/lib/components/shared/alert/alert.component.mjs +26 -0
  16. package/esm2022/lib/components/shared/checkbox/checkbox.component.mjs +56 -0
  17. package/esm2022/lib/components/shared/dropdown/dropdown.component.mjs +21 -0
  18. package/esm2022/lib/components/shared/input-search/input-search.component.mjs +53 -0
  19. package/esm2022/lib/components/shared/pagination/page-selector/page-selector.component.mjs +50 -0
  20. package/esm2022/lib/components/shared/pagination/pagination.component.mjs +49 -0
  21. package/esm2022/lib/components/shared/select/select.component.mjs +117 -0
  22. package/esm2022/lib/components/shared/table/table.component.mjs +124 -0
  23. package/esm2022/lib/components/upload-list/upload-list.component.mjs +85 -0
  24. package/esm2022/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +41 -0
  25. package/{esm2020 → esm2022}/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +5 -5
  26. package/esm2022/lib/directives/auto-hide.directive.mjs +51 -0
  27. package/esm2022/lib/directives/copy-to-clipboard.directive.mjs +36 -0
  28. package/esm2022/lib/directives/drag-drop.directive.mjs +55 -0
  29. package/esm2022/lib/directives/loading.directive.mjs +43 -0
  30. package/esm2022/lib/directives/table/checkBoxRow.directive.mjs +130 -0
  31. package/esm2022/lib/directives/table/column.directive.mjs +50 -0
  32. package/esm2022/lib/directives/table/columnHeader.directive.mjs +215 -0
  33. package/esm2022/lib/directives/table/raw.directive.mjs +34 -0
  34. package/esm2022/lib/directives/zindex-toggle.directive.mjs +45 -0
  35. package/esm2022/lib/dto/canva-create-design.dto.mjs +9 -0
  36. package/esm2022/lib/dto/canva.dto.mjs +6 -0
  37. package/esm2022/lib/dto/config/apis/api.dto.mjs +11 -0
  38. package/esm2022/lib/dto/config/external/external-config.dto.mjs +5 -0
  39. package/esm2022/lib/dto/wizi-block-media.dto.mjs +7 -0
  40. package/esm2022/lib/pipes/images/img-src.pipe.mjs +29 -0
  41. package/{esm2020 → esm2022}/lib/pipes/number-to-array.pipe.mjs +4 -4
  42. package/esm2022/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +28 -0
  43. package/esm2022/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +53 -0
  44. package/esm2022/lib/pipes/pagination/text/custom-text.pipe.mjs +36 -0
  45. package/esm2022/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +25 -0
  46. package/{esm2020 → esm2022}/lib/pipes/select/select-filters.pipe.mjs +4 -4
  47. package/esm2022/lib/services/alert.service.mjs +53 -0
  48. package/{esm2020 → esm2022}/lib/services/api.service.mjs +4 -4
  49. package/esm2022/lib/services/canva.service.mjs +165 -0
  50. package/esm2022/lib/services/config/img-cdn.service.mjs +21 -0
  51. package/esm2022/lib/services/dom.service.mjs +31 -0
  52. package/{esm2020 → esm2022}/lib/services/icon.service.mjs +4 -4
  53. package/{esm2020 → esm2022}/lib/services/image-not-found.service.mjs +4 -4
  54. package/esm2022/lib/services/img-event.service.mjs +33 -0
  55. package/esm2022/lib/services/img-manager.service.mjs +134 -0
  56. package/esm2022/lib/services/img-selection.service.mjs +75 -0
  57. package/esm2022/lib/services/pexels.service.mjs +66 -0
  58. package/esm2022/lib/services/rename-picture.service.mjs +66 -0
  59. package/esm2022/lib/services/snackbar.service.mjs +67 -0
  60. package/esm2022/lib/services/table/filters-table.service.mjs +61 -0
  61. package/esm2022/lib/services/upload.service.mjs +20 -0
  62. package/esm2022/lib/services/user-settings.service.mjs +23 -0
  63. package/esm2022/lib/wz-img-manager.component.mjs +209 -0
  64. package/{esm2020 → esm2022}/lib/wz-img-manager.module.mjs +61 -61
  65. package/{fesm2020 → fesm2022}/wizishop-img-manager.mjs +1018 -830
  66. package/fesm2022/wizishop-img-manager.mjs.map +1 -0
  67. package/lib/components/canva-btn/canva-btn.component.d.ts +1 -1
  68. package/lib/components/images-view/images-actions-handler.d.ts +2 -1
  69. package/lib/components/images-view/images-view.component.d.ts +4 -9
  70. package/lib/components/images-view/mosaic-view/img-card/img-card.component.d.ts +1 -1
  71. package/lib/components/images-view/mosaic-view/mosaic-view.component.d.ts +1 -1
  72. package/lib/components/img-editor/cropper/cropper.component.d.ts +1 -1
  73. package/lib/components/img-editor/img-editor.component.d.ts +1 -1
  74. package/lib/components/img-editor/info-section/info-section.component.d.ts +1 -1
  75. package/lib/components/img-selection/img-selection.component.d.ts +4 -5
  76. package/lib/components/img-tabs/img-tabs.component.d.ts +1 -1
  77. package/lib/components/img-upload/img-upload.component.d.ts +1 -1
  78. package/lib/components/loader/loader.component.d.ts +1 -1
  79. package/lib/components/pexels-lib/pexels-lib.component.d.ts +1 -1
  80. package/lib/components/shared/alert/alert.component.d.ts +1 -1
  81. package/lib/components/shared/checkbox/checkbox.component.d.ts +1 -1
  82. package/lib/components/shared/dropdown/dropdown.component.d.ts +1 -1
  83. package/lib/components/shared/input-search/input-search.component.d.ts +1 -1
  84. package/lib/components/shared/pagination/page-selector/page-selector.component.d.ts +1 -1
  85. package/lib/components/shared/pagination/pagination.component.d.ts +1 -1
  86. package/lib/components/shared/select/select.component.d.ts +1 -1
  87. package/lib/components/shared/table/table.component.d.ts +1 -1
  88. package/lib/components/upload-list/upload-list.component.d.ts +1 -1
  89. package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts +1 -1
  90. package/lib/directives/auto-hide.directive.d.ts +1 -1
  91. package/lib/directives/copy-to-clipboard.directive.d.ts +1 -1
  92. package/lib/directives/table/checkBoxRow.directive.d.ts +1 -1
  93. package/lib/directives/table/column.directive.d.ts +1 -1
  94. package/lib/directives/table/columnHeader.directive.d.ts +1 -1
  95. package/lib/directives/zindex-toggle.directive.d.ts +1 -1
  96. package/lib/wz-img-manager.component.d.ts +3 -3
  97. package/package.json +6 -12
  98. package/wizishop-img-manager-18.2.2-beta.tgz +0 -0
  99. package/wz-img-manager.scss +77 -60
  100. package/esm2020/lib/components/canva-btn/canva-btn.component.mjs +0 -67
  101. package/esm2020/lib/components/images-view/images-actions-handler.mjs +0 -154
  102. package/esm2020/lib/components/images-view/images-view.component.mjs +0 -369
  103. package/esm2020/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +0 -66
  104. package/esm2020/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +0 -71
  105. package/esm2020/lib/components/images-view/table-view/table-view.component.mjs +0 -48
  106. package/esm2020/lib/components/img-editor/cropper/cropper.component.mjs +0 -307
  107. package/esm2020/lib/components/img-editor/img-editor.component.mjs +0 -124
  108. package/esm2020/lib/components/img-editor/info-section/info-section.component.mjs +0 -54
  109. package/esm2020/lib/components/img-selection/img-selection.component.mjs +0 -53
  110. package/esm2020/lib/components/img-tabs/img-tabs.component.mjs +0 -122
  111. package/esm2020/lib/components/img-upload/img-upload.component.mjs +0 -126
  112. package/esm2020/lib/components/loader/loader.component.mjs +0 -21
  113. package/esm2020/lib/components/pexels-lib/pexels-lib.component.mjs +0 -203
  114. package/esm2020/lib/components/shared/alert/alert.component.mjs +0 -27
  115. package/esm2020/lib/components/shared/checkbox/checkbox.component.mjs +0 -52
  116. package/esm2020/lib/components/shared/dropdown/dropdown.component.mjs +0 -21
  117. package/esm2020/lib/components/shared/input-search/input-search.component.mjs +0 -54
  118. package/esm2020/lib/components/shared/pagination/page-selector/page-selector.component.mjs +0 -49
  119. package/esm2020/lib/components/shared/pagination/pagination.component.mjs +0 -49
  120. package/esm2020/lib/components/shared/select/select.component.mjs +0 -110
  121. package/esm2020/lib/components/shared/table/table.component.mjs +0 -116
  122. package/esm2020/lib/components/upload-list/upload-list.component.mjs +0 -79
  123. package/esm2020/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +0 -37
  124. package/esm2020/lib/directives/auto-hide.directive.mjs +0 -48
  125. package/esm2020/lib/directives/copy-to-clipboard.directive.mjs +0 -37
  126. package/esm2020/lib/directives/drag-drop.directive.mjs +0 -57
  127. package/esm2020/lib/directives/loading.directive.mjs +0 -42
  128. package/esm2020/lib/directives/table/checkBoxRow.directive.mjs +0 -114
  129. package/esm2020/lib/directives/table/column.directive.mjs +0 -45
  130. package/esm2020/lib/directives/table/columnHeader.directive.mjs +0 -204
  131. package/esm2020/lib/directives/table/raw.directive.mjs +0 -31
  132. package/esm2020/lib/directives/zindex-toggle.directive.mjs +0 -42
  133. package/esm2020/lib/dto/canva-create-design.dto.mjs +0 -4
  134. package/esm2020/lib/dto/canva.dto.mjs +0 -4
  135. package/esm2020/lib/dto/config/apis/api.dto.mjs +0 -9
  136. package/esm2020/lib/dto/config/external/external-config.dto.mjs +0 -3
  137. package/esm2020/lib/dto/wizi-block-media.dto.mjs +0 -3
  138. package/esm2020/lib/pipes/images/img-src.pipe.mjs +0 -28
  139. package/esm2020/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +0 -28
  140. package/esm2020/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +0 -53
  141. package/esm2020/lib/pipes/pagination/text/custom-text.pipe.mjs +0 -35
  142. package/esm2020/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +0 -25
  143. package/esm2020/lib/services/alert.service.mjs +0 -50
  144. package/esm2020/lib/services/canva.service.mjs +0 -159
  145. package/esm2020/lib/services/config/img-cdn.service.mjs +0 -23
  146. package/esm2020/lib/services/dom.service.mjs +0 -33
  147. package/esm2020/lib/services/img-event.service.mjs +0 -35
  148. package/esm2020/lib/services/img-manager.service.mjs +0 -136
  149. package/esm2020/lib/services/img-selection.service.mjs +0 -76
  150. package/esm2020/lib/services/pexels.service.mjs +0 -62
  151. package/esm2020/lib/services/rename-picture.service.mjs +0 -63
  152. package/esm2020/lib/services/snackbar.service.mjs +0 -64
  153. package/esm2020/lib/services/table/filters-table.service.mjs +0 -60
  154. package/esm2020/lib/services/upload.service.mjs +0 -22
  155. package/esm2020/lib/services/user-settings.service.mjs +0 -25
  156. package/esm2020/lib/wz-img-manager.component.mjs +0 -192
  157. package/fesm2015/wizishop-img-manager.mjs +0 -4035
  158. package/fesm2015/wizishop-img-manager.mjs.map +0 -1
  159. package/fesm2020/wizishop-img-manager.mjs.map +0 -1
  160. package/wizishop-img-manager-18.2.0.tgz +0 -0
  161. /package/{esm2020 → esm2022}/lib/animations/easeInOut/ease-in-out.animation.mjs +0 -0
  162. /package/{esm2020 → esm2022}/lib/animations/insertRemove/insert-remove.animation.mjs +0 -0
  163. /package/{esm2020 → esm2022}/lib/animations/listAnnimation/list.animation.mjs +0 -0
  164. /package/{esm2020 → esm2022}/lib/components/shared/select/call-to-action.model.mjs +0 -0
  165. /package/{esm2020 → esm2022}/lib/components/shared/select/select-items.dto.mjs +0 -0
  166. /package/{esm2020 → esm2022}/lib/dto/ImgManagerDisplayConfig.dto.mjs +0 -0
  167. /package/{esm2020 → esm2022}/lib/dto/config/image-cdn/image-cdn-config.dto.mjs +0 -0
  168. /package/{esm2020 → esm2022}/lib/dto/config/img-manager.mjs +0 -0
  169. /package/{esm2020 → esm2022}/lib/dto/export-dtos.api.mjs +0 -0
  170. /package/{esm2020 → esm2022}/lib/dto/img-editor-config.dto.mjs +0 -0
  171. /package/{esm2020 → esm2022}/lib/dto/img-manager.dto.mjs +0 -0
  172. /package/{esm2020 → esm2022}/lib/dto/pexels-img.dto.mjs +0 -0
  173. /package/{esm2020 → esm2022}/lib/dto/picture-name-update.dto.mjs +0 -0
  174. /package/{esm2020 → esm2022}/lib/dto/stateDisplayed.dto.mjs +0 -0
  175. /package/{esm2020 → esm2022}/lib/dto/tabDisplayed.dto.mjs +0 -0
  176. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  177. /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==