@wizishop/img-manager 18.2.0-beta → 18.2.1-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 +7 -13
  98. package/wizishop-img-manager-18.2.1-beta.tgz +0 -0
  99. package/wz-img-manager.scss +20 -3
  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-beta.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
@@ -0,0 +1,73 @@
1
+ import { Component, Output, EventEmitter, Input } from '@angular/core';
2
+ import { CanvaService } from '../../services/canva.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/canva.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "ngx-scrollbar";
7
+ import * as i4 from "../../directives/loading.directive";
8
+ import * as i5 from "../../directives/auto-hide.directive";
9
+ import * as i6 from "@ngx-translate/core";
10
+ export class CanvaBtnComponent {
11
+ canvaService;
12
+ stateDisplayed;
13
+ showImgUploaded = new EventEmitter();
14
+ canvaApi;
15
+ canvaLogoRouteAssets;
16
+ imgLoading = false;
17
+ availableFormat = {
18
+ 'ImgManager.CanvaBtn.smallSquare': {
19
+ 'width': 500,
20
+ 'height': 500
21
+ },
22
+ 'ImgManager.CanvaBtn.mediumSquare': {
23
+ 'width': 1000,
24
+ 'height': 1000
25
+ },
26
+ 'ImgManager.CanvaBtn.bigSquare': {
27
+ 'width': 2500,
28
+ 'height': 2500
29
+ }
30
+ };
31
+ openDropDownMenu = false;
32
+ expectedHeight;
33
+ expectedWidth;
34
+ subs = [];
35
+ constructor(canvaService) {
36
+ this.canvaService = canvaService;
37
+ }
38
+ ngOnInit() {
39
+ this.canvaLogoRouteAssets = this.canvaService.getCanvaLogo();
40
+ this.listenCanvaExpectedSize();
41
+ }
42
+ listenCanvaExpectedSize() {
43
+ // Subcribe to askImg from wizi-block
44
+ const subExpectedImgSizesChange = this.canvaService.bindEventExepectedImgSizeChange().subscribe((mediaDTO) => {
45
+ if (mediaDTO) {
46
+ this.expectedWidth = parseInt(mediaDTO.image_width, 10);
47
+ this.expectedHeight = parseInt(mediaDTO.image_height, 10);
48
+ }
49
+ else {
50
+ this.expectedWidth = undefined;
51
+ this.expectedHeight = undefined;
52
+ }
53
+ });
54
+ this.subs.push(subExpectedImgSizesChange);
55
+ }
56
+ onOpenCanva(width, height) {
57
+ this.canvaService.openCanva(width, height);
58
+ }
59
+ ngOnDestroy() {
60
+ this.subs.forEach(sub => sub.unsubscribe());
61
+ }
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CanvaBtnComponent, deps: [{ token: i1.CanvaService }], target: i0.ɵɵFactoryTarget.Component });
63
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: CanvaBtnComponent, selector: "canva-btn", inputs: { stateDisplayed: "stateDisplayed" }, outputs: { showImgUploaded: "showImgUploaded" }, ngImport: i0, template: "<div class=\"canva dropdown is-right is-hoverable\"\r\n wzAutoHide (clickOutside)=\"openDropDownMenu = false;\"\r\n [ngClass]=\"{'is-up': stateDisplayed === 'small', 'noTooltip': stateDisplayed !== 'small'}\"\r\n >\r\n <div class=\"dropdown-trigger\">\r\n <div\r\n class=\"button canva-btn\"\r\n aria-controls=\"dropdown-menuCanva\"\r\n (click)=\"openDropDownMenu = true;\"\r\n >\r\n <span>{{'ImgManager.CanvaBtn.createImg' | translate}}</span>\r\n <img [src]=\"canvaLogoRouteAssets\" class=\"canva-btn__logo\">\r\n\r\n <span btnLoadingAnim class=\"btnLoadingAnnimation\" *ngIf=\"imgLoading\"></span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"dropdown-menu dropDownShadow\"\r\n [ngClass]=\"{'displayDropDownMenu': openDropDownMenu }\"\r\n id=\"dropdown-menuCanva\"\r\n role=\"menu\">\r\n <ng-scrollbar\r\n class=\"smallScroll\"\r\n >\r\n <div class=\"dropdown-content\">\r\n <div class=\"dropdownTitle\">\r\n <p>{{'ImgManager.CanvaBtn.createImg.title' | translate}}</p>\r\n </div>\r\n\r\n <div class=\"infoItem\">\r\n <p>{{'ImgManager.CanvaBtn.info' | translate}}</p>\r\n </div>\r\n\r\n <ng-container >\r\n <div\r\n *ngIf=\"expectedWidth && expectedHeight\"\r\n class=\"dropdown-item-wrapper\"\r\n >\r\n <div class=\"dropdown-item expectedSizes\" (click)=\"onOpenCanva(expectedWidth, expectedHeight)\">\r\n <p>{{'ImgManager.CanvaBtn.recommanded' | translate}}</p><p>{{expectedWidth}}*{{expectedHeight}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div\r\n *ngFor=\"let format of availableFormat| keyvalue\"\r\n class=\"dropdown-item-wrapper\">\r\n <div\r\n (click)=\"onOpenCanva(format.value.width, format.value.height)\"\r\n class=\"dropdown-item\">\r\n <p>{{format.key | translate}}</p><p>{{format.value.width}}*{{format.value.height}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NgScrollbar, selector: "ng-scrollbar", inputs: ["disabled", "sensorDisabled", "pointerEventsDisabled", "viewportPropagateMouseMove", "autoHeightDisabled", "autoWidthDisabled", "viewClass", "trackClass", "thumbClass", "minThumbSize", "trackClickScrollDuration", "pointerEventsMethod", "track", "visibility", "appearance", "position", "sensorDebounce", "scrollAuditTime"], outputs: ["updated"], exportAs: ["ngScrollbar"] }, { kind: "directive", type: i4.LoadingDirective, selector: "[btnLoadingAnim]" }, { kind: "directive", type: i5.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }, { kind: "pipe", type: i2.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CanvaBtnComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'canva-btn', template: "<div class=\"canva dropdown is-right is-hoverable\"\r\n wzAutoHide (clickOutside)=\"openDropDownMenu = false;\"\r\n [ngClass]=\"{'is-up': stateDisplayed === 'small', 'noTooltip': stateDisplayed !== 'small'}\"\r\n >\r\n <div class=\"dropdown-trigger\">\r\n <div\r\n class=\"button canva-btn\"\r\n aria-controls=\"dropdown-menuCanva\"\r\n (click)=\"openDropDownMenu = true;\"\r\n >\r\n <span>{{'ImgManager.CanvaBtn.createImg' | translate}}</span>\r\n <img [src]=\"canvaLogoRouteAssets\" class=\"canva-btn__logo\">\r\n\r\n <span btnLoadingAnim class=\"btnLoadingAnnimation\" *ngIf=\"imgLoading\"></span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"dropdown-menu dropDownShadow\"\r\n [ngClass]=\"{'displayDropDownMenu': openDropDownMenu }\"\r\n id=\"dropdown-menuCanva\"\r\n role=\"menu\">\r\n <ng-scrollbar\r\n class=\"smallScroll\"\r\n >\r\n <div class=\"dropdown-content\">\r\n <div class=\"dropdownTitle\">\r\n <p>{{'ImgManager.CanvaBtn.createImg.title' | translate}}</p>\r\n </div>\r\n\r\n <div class=\"infoItem\">\r\n <p>{{'ImgManager.CanvaBtn.info' | translate}}</p>\r\n </div>\r\n\r\n <ng-container >\r\n <div\r\n *ngIf=\"expectedWidth && expectedHeight\"\r\n class=\"dropdown-item-wrapper\"\r\n >\r\n <div class=\"dropdown-item expectedSizes\" (click)=\"onOpenCanva(expectedWidth, expectedHeight)\">\r\n <p>{{'ImgManager.CanvaBtn.recommanded' | translate}}</p><p>{{expectedWidth}}*{{expectedHeight}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div\r\n *ngFor=\"let format of availableFormat| keyvalue\"\r\n class=\"dropdown-item-wrapper\">\r\n <div\r\n (click)=\"onOpenCanva(format.value.width, format.value.height)\"\r\n class=\"dropdown-item\">\r\n <p>{{format.key | translate}}</p><p>{{format.value.width}}*{{format.value.height}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n </div>\r\n</div>\r\n" }]
68
+ }], ctorParameters: () => [{ type: i1.CanvaService }], propDecorators: { stateDisplayed: [{
69
+ type: Input
70
+ }], showImgUploaded: [{
71
+ type: Output
72
+ }] } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmEtYnRuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9jYW52YS1idG4vY2FudmEtYnRuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9jYW52YS1idG4vY2FudmEtYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7OztBQVU1RCxNQUFNLE9BQU8saUJBQWlCO0lBZ0NsQjtJQTlCRCxjQUFjLENBQWlCO0lBRTlCLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRS9DLFFBQVEsQ0FBaUI7SUFDekIsb0JBQW9CLENBQVM7SUFDN0IsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVuQixlQUFlLEdBQUc7UUFDaEIsaUNBQWlDLEVBQUc7WUFDbEMsT0FBTyxFQUFHLEdBQUc7WUFDYixRQUFRLEVBQUcsR0FBRztTQUNmO1FBQ0Qsa0NBQWtDLEVBQUc7WUFDbkMsT0FBTyxFQUFHLElBQUk7WUFDZCxRQUFRLEVBQUcsSUFBSTtTQUNoQjtRQUNELCtCQUErQixFQUFHO1lBQ2hDLE9BQU8sRUFBRyxJQUFJO1lBQ2QsUUFBUSxFQUFHLElBQUk7U0FDaEI7S0FDRixDQUFBO0lBRUQsZ0JBQWdCLEdBQVksS0FBSyxDQUFDO0lBRWxDLGNBQWMsQ0FBUztJQUN2QixhQUFhLENBQVM7SUFDdEIsSUFBSSxHQUFtQixFQUFFLENBQUM7SUFFMUIsWUFDVSxZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUM5QixDQUFDO0lBRVAsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCx1QkFBdUI7UUFDckIscUNBQXFDO1FBQ3JDLE1BQU0seUJBQXlCLEdBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxTQUFTLENBQUUsQ0FBQyxRQUEyQixFQUFFLEVBQUU7WUFDN0YsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQzt1R0E3RFUsaUJBQWlCOzJGQUFqQixpQkFBaUIsZ0pDWDlCLG83RUF5REE7OzJGRDlDYSxpQkFBaUI7a0JBSjdCLFNBQVM7K0JBQ0UsV0FBVztpRkFLWixjQUFjO3NCQUF0QixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYW52YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYW52YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FudmFCdXR0b25BcGkgfSBmcm9tICcuLi8uLi9kdG8vY2FudmEuZHRvJztcclxuaW1wb3J0IHsgV2l6aUJsb2NrTWVkaWFEdG8gfSBmcm9tICcuLi8uLi9kdG8vd2l6aS1ibG9jay1tZWRpYS5kdG8nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3RhdGVEaXNwbGF5ZWQgfSBmcm9tICcuLi8uLi9kdG8vZXhwb3J0LWR0b3MuYXBpJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2FudmEtYnRuJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FudmEtYnRuLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FudmFCdG5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIHN0YXRlRGlzcGxheWVkOiBzdGF0ZURpc3BsYXllZDtcclxuXHJcbiAgQE91dHB1dCgpIHNob3dJbWdVcGxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY2FudmFBcGk6IENhbnZhQnV0dG9uQXBpO1xyXG4gIGNhbnZhTG9nb1JvdXRlQXNzZXRzOiBzdHJpbmc7XHJcbiAgaW1nTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBhdmFpbGFibGVGb3JtYXQgPSB7XHJcbiAgICAnSW1nTWFuYWdlci5DYW52YUJ0bi5zbWFsbFNxdWFyZScgOiB7XHJcbiAgICAgICd3aWR0aCcgOiA1MDAsXHJcbiAgICAgICdoZWlnaHQnIDogNTAwXHJcbiAgICB9LFxyXG4gICAgJ0ltZ01hbmFnZXIuQ2FudmFCdG4ubWVkaXVtU3F1YXJlJyA6IHtcclxuICAgICAgJ3dpZHRoJyA6IDEwMDAsXHJcbiAgICAgICdoZWlnaHQnIDogMTAwMFxyXG4gICAgfSxcclxuICAgICdJbWdNYW5hZ2VyLkNhbnZhQnRuLmJpZ1NxdWFyZScgOiB7XHJcbiAgICAgICd3aWR0aCcgOiAyNTAwLFxyXG4gICAgICAnaGVpZ2h0JyA6IDI1MDBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wRG93bk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZXhwZWN0ZWRIZWlnaHQ6IG51bWJlcjtcclxuICBleHBlY3RlZFdpZHRoOiBudW1iZXI7XHJcbiAgc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhbnZhU2VydmljZTogQ2FudmFTZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FudmFMb2dvUm91dGVBc3NldHMgPSB0aGlzLmNhbnZhU2VydmljZS5nZXRDYW52YUxvZ28oKTtcclxuICAgIHRoaXMubGlzdGVuQ2FudmFFeHBlY3RlZFNpemUoKTtcclxuICB9XHJcblxyXG4gIGxpc3RlbkNhbnZhRXhwZWN0ZWRTaXplKCkge1xyXG4gICAgLy8gU3ViY3JpYmUgdG8gYXNrSW1nIGZyb20gd2l6aS1ibG9ja1xyXG4gICAgY29uc3Qgc3ViRXhwZWN0ZWRJbWdTaXplc0NoYW5nZSA9XHJcbiAgICAgIHRoaXMuY2FudmFTZXJ2aWNlLmJpbmRFdmVudEV4ZXBlY3RlZEltZ1NpemVDaGFuZ2UoKS5zdWJzY3JpYmUoIChtZWRpYURUTzogV2l6aUJsb2NrTWVkaWFEdG8pID0+IHtcclxuICAgICAgICBpZiAobWVkaWFEVE8pIHtcclxuICAgICAgICAgIHRoaXMuZXhwZWN0ZWRXaWR0aCA9IHBhcnNlSW50KG1lZGlhRFRPLmltYWdlX3dpZHRoLCAxMCk7XHJcbiAgICAgICAgICB0aGlzLmV4cGVjdGVkSGVpZ2h0ID0gcGFyc2VJbnQobWVkaWFEVE8uaW1hZ2VfaGVpZ2h0LCAxMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZXhwZWN0ZWRXaWR0aCA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIHRoaXMuZXhwZWN0ZWRIZWlnaHQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc3Vicy5wdXNoKHN1YkV4cGVjdGVkSW1nU2l6ZXNDaGFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgb25PcGVuQ2FudmEod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY2FudmFTZXJ2aWNlLm9wZW5DYW52YSh3aWR0aCwgaGVpZ2h0KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhbnZhIGRyb3Bkb3duIGlzLXJpZ2h0IGlzLWhvdmVyYWJsZVwiXHJcbiAgICAgd3pBdXRvSGlkZSAoY2xpY2tPdXRzaWRlKT1cIm9wZW5Ecm9wRG93bk1lbnUgPSBmYWxzZTtcIlxyXG4gICAgW25nQ2xhc3NdPVwieydpcy11cCc6IHN0YXRlRGlzcGxheWVkID09PSAnc21hbGwnLCAnbm9Ub29sdGlwJzogc3RhdGVEaXNwbGF5ZWQgIT09ICdzbWFsbCd9XCJcclxuICAgID5cclxuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi10cmlnZ2VyXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJidXR0b24gY2FudmEtYnRuXCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJkcm9wZG93bi1tZW51Q2FudmFcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5Ecm9wRG93bk1lbnUgPSB0cnVlO1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7J0ltZ01hbmFnZXIuQ2FudmFCdG4uY3JlYXRlSW1nJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwiY2FudmFMb2dvUm91dGVBc3NldHNcIiBjbGFzcz1cImNhbnZhLWJ0bl9fbG9nb1wiPlxyXG5cclxuICAgICAgICAgICAgPHNwYW4gYnRuTG9hZGluZ0FuaW0gY2xhc3M9XCJidG5Mb2FkaW5nQW5uaW1hdGlvblwiICpuZ0lmPVwiaW1nTG9hZGluZ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcERvd25TaGFkb3dcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J2Rpc3BsYXlEcm9wRG93bk1lbnUnOiBvcGVuRHJvcERvd25NZW51IH1cIlxyXG4gICAgICBpZD1cImRyb3Bkb3duLW1lbnVDYW52YVwiXHJcbiAgICAgIHJvbGU9XCJtZW51XCI+XHJcbiAgICAgICAgPG5nLXNjcm9sbGJhclxyXG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsU2Nyb2xsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duVGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cD57eydJbWdNYW5hZ2VyLkNhbnZhQnRuLmNyZWF0ZUltZy50aXRsZScgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvSXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPnt7J0ltZ01hbmFnZXIuQ2FudmFCdG4uaW5mbycgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZXhwZWN0ZWRXaWR0aCAmJiBleHBlY3RlZEhlaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWl0ZW0td3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGV4cGVjdGVkU2l6ZXNcIiAoY2xpY2spPVwib25PcGVuQ2FudmEoZXhwZWN0ZWRXaWR0aCwgZXhwZWN0ZWRIZWlnaHQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eydJbWdNYW5hZ2VyLkNhbnZhQnRuLnJlY29tbWFuZGVkJyB8IHRyYW5zbGF0ZX19PC9wPjxwPnt7ZXhwZWN0ZWRXaWR0aH19Knt7ZXhwZWN0ZWRIZWlnaHR9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmb3JtYXQgb2YgYXZhaWxhYmxlRm9ybWF0fCBrZXl2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uT3BlbkNhbnZhKGZvcm1hdC52YWx1ZS53aWR0aCwgZm9ybWF0LnZhbHVlLmhlaWdodClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7Zm9ybWF0LmtleSB8IHRyYW5zbGF0ZX19PC9wPjxwPnt7Zm9ybWF0LnZhbHVlLndpZHRofX0qe3tmb3JtYXQudmFsdWUuaGVpZ2h0fX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1zY3JvbGxiYXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,168 @@
1
+ import { HttpClient } from "@angular/common/http";
2
+ import { Directive, Input, Output, inject } from "@angular/core";
3
+ import { EventEmitter } from '@angular/core';
4
+ import { TranslateService } from "@ngx-translate/core";
5
+ import { AlertService } from "../../services/alert.service";
6
+ import { ImgCDNService } from "../../services/config/img-cdn.service";
7
+ import { ImgEventService } from "../../services/img-event.service";
8
+ import { ImgManagerService } from "../../services/img-manager.service";
9
+ import { ImgSelectionService } from "../../services/img-selection.service";
10
+ import { ApiService } from "../../services/api.service";
11
+ import { ImageNotFoundService } from "../../services/image-not-found.service";
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "../../services/img-manager.service";
14
+ import * as i2 from "../../services/img-selection.service";
15
+ import * as i3 from "@angular/common/http";
16
+ import * as i4 from "../../services/config/img-cdn.service";
17
+ import * as i5 from "../../services/img-event.service";
18
+ import * as i6 from "../../services/alert.service";
19
+ import * as i7 from "@ngx-translate/core";
20
+ import * as i8 from "../../services/api.service";
21
+ export class ImagesActionHandler {
22
+ imgManager;
23
+ imgSelectionService;
24
+ http;
25
+ imgCDNService;
26
+ imgEventCardService;
27
+ alertService;
28
+ translateService;
29
+ apiService;
30
+ picturesList = [];
31
+ picturesListChange = new EventEmitter();
32
+ tableFilters = {
33
+ sort: undefined,
34
+ order: undefined,
35
+ searchValue: '',
36
+ totalItems: 0,
37
+ itemsPerPage: 30,
38
+ currentPage: 1
39
+ };
40
+ displayPexelsResults = false;
41
+ disable = false;
42
+ disableChange = new EventEmitter();
43
+ filtersChange = new EventEmitter();
44
+ pictureNameChange = new EventEmitter();
45
+ isLoading = false;
46
+ stateDisplayed;
47
+ previousName; // Use to save the previous picture name, when a user change his name
48
+ fakeImgRoute;
49
+ getDataAPISub;
50
+ errorRemoveImg = 'ImgManager.ImgList.errorRemoveImg';
51
+ errorAlreadyUsedImg = 'ImgManager.ImgList.errorAlreadyUsed';
52
+ imageNotFoundService = inject(ImageNotFoundService);
53
+ constructor(imgManager, imgSelectionService, http, imgCDNService, imgEventCardService, alertService, translateService, apiService) {
54
+ this.imgManager = imgManager;
55
+ this.imgSelectionService = imgSelectionService;
56
+ this.http = http;
57
+ this.imgCDNService = imgCDNService;
58
+ this.imgEventCardService = imgEventCardService;
59
+ this.alertService = alertService;
60
+ this.translateService = translateService;
61
+ this.apiService = apiService;
62
+ }
63
+ ngOnInit() {
64
+ this.fakeImgRoute = this.apiService.CONFIG.assets_route + 'img/fake.png';
65
+ }
66
+ /** Event emit when the header checkbox is checked */
67
+ onToggleAllCheckBoxRow(event) {
68
+ this.picturesList.forEach(data => {
69
+ data.delSelected = event;
70
+ });
71
+ this._pictureListeChange();
72
+ }
73
+ onToggleDelSelection(index) {
74
+ if (this.disable) {
75
+ return;
76
+ }
77
+ this.picturesList[index].delSelected = !this.picturesList[index].delSelected;
78
+ this._pictureListeChange();
79
+ }
80
+ /** Event emit each time filters change */
81
+ onFiltersChange() {
82
+ this.filtersChange.emit();
83
+ }
84
+ onEdit(picture) {
85
+ this.imgEventCardService.emitImgToEdit(picture);
86
+ }
87
+ onToggleSelectImg(index) {
88
+ if (this.disable || this.stateDisplayed === 'window') {
89
+ return;
90
+ }
91
+ if (!this.picturesList[index].selected) {
92
+ this.imgSelectionService.addImgSelected(this.picturesList[index]);
93
+ this.picturesList[index].selected = true;
94
+ }
95
+ else {
96
+ this.imgSelectionService.removeImgSelectedById(this.picturesList[index].id_file);
97
+ this.picturesList[index].selected = false;
98
+ }
99
+ }
100
+ onRemoveImg(picture) {
101
+ picture.deleted = true;
102
+ this.imgManager.removeImg(picture.id_file).subscribe(data => {
103
+ this.imgEventCardService.imgRemoved$.next(picture.id_file);
104
+ this.imgSelectionService.removeImgSelectedById(picture.id_file);
105
+ }, error => {
106
+ const msg = error.status === 409 ? this.errorAlreadyUsedImg : this.errorRemoveImg;
107
+ picture.deleted = false;
108
+ this.alertService.openAlert(msg);
109
+ });
110
+ }
111
+ onPictureNotLoading(event) {
112
+ this.imageNotFoundService.imageNotFound(event.target.src);
113
+ event.target.src = this.fakeImgRoute;
114
+ }
115
+ onDownloadImg(display_name, file_name) {
116
+ this.http.get(this.getRAWImgRoute(file_name), { responseType: 'blob' }).subscribe(val => {
117
+ let url = URL.createObjectURL(val);
118
+ this.downloadUrl(url, display_name);
119
+ URL.revokeObjectURL(url);
120
+ });
121
+ }
122
+ onNameChange(id_file) {
123
+ this.pictureNameChange.emit({ id: id_file, previousName: this.previousName });
124
+ }
125
+ getRAWImgRoute(file_name) {
126
+ return this.imgCDNService.getUrlImg('raw') + file_name;
127
+ }
128
+ _pictureListeChange() {
129
+ this.picturesListChange.emit();
130
+ }
131
+ downloadUrl(url, fileName) {
132
+ const a = document.createElement('a');
133
+ a.href = url;
134
+ a.download = fileName;
135
+ a.click();
136
+ }
137
+ ngDestroy() {
138
+ if (this.getDataAPISub) {
139
+ this.getDataAPISub.unsubscribe();
140
+ }
141
+ }
142
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ImagesActionHandler, deps: [{ token: i1.ImgManagerService }, { token: i2.ImgSelectionService }, { token: i3.HttpClient }, { token: i4.ImgCDNService }, { token: i5.ImgEventService }, { token: i6.AlertService }, { token: i7.TranslateService }, { token: i8.ApiService }], target: i0.ɵɵFactoryTarget.Directive });
143
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: ImagesActionHandler, inputs: { picturesList: "picturesList", tableFilters: "tableFilters", displayPexelsResults: "displayPexelsResults", disable: "disable", isLoading: "isLoading", stateDisplayed: "stateDisplayed" }, outputs: { picturesListChange: "picturesListChange", disableChange: "disableChange", filtersChange: "filtersChange", pictureNameChange: "pictureNameChange" }, ngImport: i0 });
144
+ }
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ImagesActionHandler, decorators: [{
146
+ type: Directive
147
+ }], ctorParameters: () => [{ type: i1.ImgManagerService }, { type: i2.ImgSelectionService }, { type: i3.HttpClient }, { type: i4.ImgCDNService }, { type: i5.ImgEventService }, { type: i6.AlertService }, { type: i7.TranslateService }, { type: i8.ApiService }], propDecorators: { picturesList: [{
148
+ type: Input
149
+ }], picturesListChange: [{
150
+ type: Output
151
+ }], tableFilters: [{
152
+ type: Input
153
+ }], displayPexelsResults: [{
154
+ type: Input
155
+ }], disable: [{
156
+ type: Input
157
+ }], disableChange: [{
158
+ type: Output
159
+ }], filtersChange: [{
160
+ type: Output
161
+ }], pictureNameChange: [{
162
+ type: Output
163
+ }], isLoading: [{
164
+ type: Input
165
+ }], stateDisplayed: [{
166
+ type: Input
167
+ }] } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLWFjdGlvbnMtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWFnZXMtdmlldy9pbWFnZXMtYWN0aW9ucy1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7O0FBRzlFLE1BQU0sT0FBZ0IsbUJBQW1CO0lBMkN6QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNGO0lBaERWLFlBQVksR0FBb0IsRUFBRSxDQUFDO0lBRW5DLGtCQUFrQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRzVELFlBQVksR0FBaUI7UUFDM0IsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVB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VyxFQUFFLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7dUdBbEppQixtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzs4UkFHTixZQUFZO3NCQURYLEtBQUs7Z0JBR04sa0JBQWtCO3NCQURqQixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsS0FBSztnQkFVTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUdOLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxhQUFhO3NCQURaLE1BQU07Z0JBR1AsaUJBQWlCO3NCQURoQixNQUFNO2dCQUdFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR04sY0FBYztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPdXRwdXQsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgc3RhdGVEaXNwbGF5ZWQgfSBmcm9tIFwiLi4vLi4vZHRvL2V4cG9ydC1kdG9zLmFwaVwiO1xyXG5pbXBvcnQgeyBQaWN0dXJlTmFtZVVwZGF0ZSB9IGZyb20gXCIuLi8uLi9kdG8vcGljdHVyZS1uYW1lLXVwZGF0ZS5kdG9cIjtcclxuaW1wb3J0IHsgSW1nUGljdHVyZURUTyB9IGZyb20gXCIuLi8uLi9kdG8vaW1nLW1hbmFnZXIuZHRvXCI7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hbGVydC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEltZ0NETlNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvY29uZmlnL2ltZy1jZG4uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbWdFdmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvaW1nLWV2ZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW1nTWFuYWdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2ltZy1zZWxlY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJsZUZpbHRlcnMgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdGFibGUvZmlsdGVycy10YWJsZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW1hZ2VOb3RGb3VuZFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvaW1hZ2Utbm90LWZvdW5kLnNlcnZpY2VcIjtcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW1hZ2VzQWN0aW9uSGFuZGxlciB7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcGljdHVyZXNMaXN0OiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcGljdHVyZXNMaXN0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHRhYmxlRmlsdGVyczogVGFibGVGaWx0ZXJzID0ge1xyXG4gICAgICBzb3J0OiB1bmRlZmluZWQsXHJcbiAgICAgIG9yZGVyOiB1bmRlZmluZWQsXHJcbiAgICAgIHNlYXJjaFZhbHVlOiAnJyxcclxuICAgICAgdG90YWxJdGVtczogMCxcclxuICAgICAgaXRlbXNQZXJQYWdlOiAzMCxcclxuICAgICAgY3VycmVudFBhZ2U6IDFcclxuICAgIH07XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZGlzcGxheVBleGVsc1Jlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBkaXNhYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBmaWx0ZXJzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwaWN0dXJlTmFtZUNoYW5nZTogRXZlbnRFbWl0dGVyPFBpY3R1cmVOYW1lVXBkYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc3RhdGVEaXNwbGF5ZWQ6IHN0YXRlRGlzcGxheWVkO1xyXG5cclxuICAgIHByZXZpb3VzTmFtZTogc3RyaW5nOyAvLyBVc2UgdG8gc2F2ZSB0aGUgcHJldmlvdXMgcGljdHVyZSBuYW1lLCB3aGVuIGEgdXNlciBjaGFuZ2UgaGlzIG5hbWVcclxuICAgIGZha2VJbWdSb3V0ZTogc3RyaW5nO1xyXG5cclxuICAgIHByaXZhdGUgZ2V0RGF0YUFQSVN1YjogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBlcnJvclJlbW92ZUltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpc3QuZXJyb3JSZW1vdmVJbWcnO1xyXG4gICAgcHJpdmF0ZSBlcnJvckFscmVhZHlVc2VkSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGlzdC5lcnJvckFscmVhZHlVc2VkJztcclxuXHJcbiAgICBwcml2YXRlIGltYWdlTm90Rm91bmRTZXJ2aWNlID0gaW5qZWN0KEltYWdlTm90Rm91bmRTZXJ2aWNlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJvdGVjdGVkIGltZ01hbmFnZXI6IEltZ01hbmFnZXJTZXJ2aWNlLFxyXG4gICAgICBwcm90ZWN0ZWQgaW1nU2VsZWN0aW9uU2VydmljZTogSW1nU2VsZWN0aW9uU2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgIHByb3RlY3RlZCBpbWdDRE5TZXJ2aWNlOiBJbWdDRE5TZXJ2aWNlLFxyXG4gICAgICBwcm90ZWN0ZWQgaW1nRXZlbnRDYXJkU2VydmljZTogSW1nRXZlbnRTZXJ2aWNlLFxyXG4gICAgICBwcm90ZWN0ZWQgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZha2VJbWdSb3V0ZSA9IHRoaXMuYXBpU2VydmljZS5DT05GSUcuYXNzZXRzX3JvdXRlICsgJ2ltZy9mYWtlLnBuZyc7XHJcbiAgfVxyXG5cclxuICAgIC8qKiBFdmVudCBlbWl0IHdoZW4gdGhlIGhlYWRlciBjaGVja2JveCBpcyBjaGVja2VkICovXHJcbiAgICBvblRvZ2dsZUFsbENoZWNrQm94Um93KGV2ZW50KSB7XHJcbiAgICAgIHRoaXMucGljdHVyZXNMaXN0LmZvckVhY2goZGF0YSA9PiB7XHJcbiAgICAgICAgZGF0YS5kZWxTZWxlY3RlZCA9IGV2ZW50O1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5fcGljdHVyZUxpc3RlQ2hhbmdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Ub2dnbGVEZWxTZWxlY3Rpb24oaW5kZXg6IG51bWJlcikge1xyXG4gICAgICBpZiAodGhpcy5kaXNhYmxlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucGljdHVyZXNMaXN0W2luZGV4XS5kZWxTZWxlY3RlZCA9ICF0aGlzLnBpY3R1cmVzTGlzdFtpbmRleF0uZGVsU2VsZWN0ZWQ7XHJcbiAgICAgIHRoaXMuX3BpY3R1cmVMaXN0ZUNoYW5nZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBFdmVudCBlbWl0IGVhY2ggdGltZSBmaWx0ZXJzIGNoYW5nZSAqL1xyXG4gICAgb25GaWx0ZXJzQ2hhbmdlKCkge1xyXG4gICAgICB0aGlzLmZpbHRlcnNDaGFuZ2UuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRWRpdChwaWN0dXJlOiBJbWdQaWN0dXJlRFRPKSB7XHJcbiAgICAgIHRoaXMuaW1nRXZlbnRDYXJkU2VydmljZS5lbWl0SW1nVG9FZGl0KHBpY3R1cmUpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVG9nZ2xlU2VsZWN0SW1nKGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgaWYgKHRoaXMuZGlzYWJsZSB8fCB0aGlzLnN0YXRlRGlzcGxheWVkID09PSAnd2luZG93Jykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMucGljdHVyZXNMaXN0W2luZGV4XS5zZWxlY3RlZCkge1xyXG4gICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5hZGRJbWdTZWxlY3RlZCh0aGlzLnBpY3R1cmVzTGlzdFtpbmRleF0pO1xyXG4gICAgICAgIHRoaXMucGljdHVyZXNMaXN0W2luZGV4XS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGVkQnlJZCh0aGlzLnBpY3R1cmVzTGlzdFtpbmRleF0uaWRfZmlsZSk7XHJcbiAgICAgICAgdGhpcy5waWN0dXJlc0xpc3RbaW5kZXhdLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblJlbW92ZUltZyhwaWN0dXJlOiBJbWdQaWN0dXJlRFRPKSB7XHJcbiAgICAgIHBpY3R1cmUuZGVsZXRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuaW1nTWFuYWdlci5yZW1vdmVJbWcocGljdHVyZS5pZF9maWxlKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgZGF0YSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmltZ0V2ZW50Q2FyZFNlcnZpY2UuaW1nUmVtb3ZlZCQubmV4dChwaWN0dXJlLmlkX2ZpbGUpO1xyXG4gICAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGVkQnlJZChwaWN0dXJlLmlkX2ZpbGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbXNnID0gZXJyb3Iuc3RhdHVzID09PSA0MDkgPyAgdGhpcy5lcnJvckFscmVhZHlVc2VkSW1nOiB0aGlzLmVycm9yUmVtb3ZlSW1nO1xyXG4gICAgICAgICAgcGljdHVyZS5kZWxldGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQobXNnKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblBpY3R1cmVOb3RMb2FkaW5nKGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuaW1hZ2VOb3RGb3VuZFNlcnZpY2UuaW1hZ2VOb3RGb3VuZChldmVudC50YXJnZXQuc3JjKTtcclxuICAgICAgZXZlbnQudGFyZ2V0LnNyYyA9IHRoaXMuZmFrZUltZ1JvdXRlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRG93bmxvYWRJbWcoZGlzcGxheV9uYW1lOiBzdHJpbmcsIGZpbGVfbmFtZTogc3RyaW5nKSB7XHJcbiAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy5nZXRSQVdJbWdSb3V0ZShmaWxlX25hbWUpLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICAgIGxldCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHZhbCk7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZFVybCh1cmwsIGRpc3BsYXlfbmFtZSk7XHJcbiAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbk5hbWVDaGFuZ2UoaWRfZmlsZTogc3RyaW5nKSB7XHJcbiAgICAgIHRoaXMucGljdHVyZU5hbWVDaGFuZ2UuZW1pdCh7aWQ6IGlkX2ZpbGUsIHByZXZpb3VzTmFtZTogdGhpcy5wcmV2aW91c05hbWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFJBV0ltZ1JvdXRlKGZpbGVfbmFtZTogc3RyaW5nKXtcclxuICAgICAgcmV0dXJuIHRoaXMuaW1nQ0ROU2VydmljZS5nZXRVcmxJbWcoJ3JhdycpICsgZmlsZV9uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3BpY3R1cmVMaXN0ZUNoYW5nZSgpIHtcclxuICAgICAgdGhpcy5waWN0dXJlc0xpc3RDaGFuZ2UuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZG93bmxvYWRVcmwodXJsOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgICAgY29uc3QgYTogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICBhLmhyZWYgPSB1cmw7XHJcbiAgICAgIGEuZG93bmxvYWQgPSBmaWxlTmFtZTtcclxuICAgICAgYS5jbGljaygpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nRGVzdHJveSgpIHtcclxuICAgICAgaWYgKHRoaXMuZ2V0RGF0YUFQSVN1Yikge1xyXG4gICAgICAgIHRoaXMuZ2V0RGF0YUFQSVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19