@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,58 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { Output } from '@angular/core';
3
+ import { Component, Input } from '@angular/core';
4
+ import { AlertService } from '../../../services/alert.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../services/alert.service";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "@wizishop/ng-wizi-bulma";
9
+ import * as i4 from "../../../directives/copy-to-clipboard.directive";
10
+ import * as i5 from "../../../directives/abstract-debounce/debounce-keyup.directive";
11
+ import * as i6 from "@ngx-translate/core";
12
+ import * as i7 from "../../../pipes/images/img-src.pipe";
13
+ export class EditorInfoSectionComponent {
14
+ alertService;
15
+ imgToEdit;
16
+ set isNameModified(isNameModified) {
17
+ this._isNameModified = isNameModified;
18
+ }
19
+ get isNameModified() {
20
+ return this._isNameModified;
21
+ }
22
+ _isNameModified = false;
23
+ isNameModifiedChange = new EventEmitter();
24
+ imgName;
25
+ imgRoute;
26
+ msgCopyToClipBoard = 'ImgManager.ImgEditor.copytoClipBoard';
27
+ constructor(alertService) {
28
+ this.alertService = alertService;
29
+ }
30
+ ngOnInit() {
31
+ this.init();
32
+ }
33
+ init() {
34
+ this.imgName = this.imgToEdit.display_name;
35
+ }
36
+ getFileSize() {
37
+ return this.imgToEdit ? Math.round(parseInt(this.imgToEdit.size) / 1000) : '-';
38
+ }
39
+ copyToClipBoard(event) {
40
+ this.alertService.openAlert(this.msgCopyToClipBoard);
41
+ }
42
+ onNameChange() {
43
+ this.isNameModifiedChange.emit(true);
44
+ }
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: EditorInfoSectionComponent, deps: [{ token: i1.AlertService }], target: i0.ɵɵFactoryTarget.Component });
46
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: EditorInfoSectionComponent, selector: "info-section", inputs: { imgToEdit: "imgToEdit", isNameModified: "isNameModified" }, outputs: { isNameModifiedChange: "isNameModifiedChange" }, ngImport: i0, template: "\r\n<!-- Img properties -->\r\n<div class=\"img-editor__infoSection__propertyEditable\">\r\n <p class=\"mainColor\">\r\n {{ 'ImgManager.UploadList.properties.imgName' | translate }}\r\n <span class=\"img-editor__infoSection__propertyEditable__tooltips\" [nwbToolTip]=\"'ImgManager.ImgEditor.NameInfo' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></span>\r\n </p>\r\n <input\r\n type=\"text\"\r\n class=\"img-editor__infoSection__propertyEditable__input\"\r\n placeholder=\"{{'ImgManager.ImgEditor.nameEx' | translate}} \"\r\n [(ngModel)]=\"imgToEdit.display_name\"\r\n debounceKeyUp\r\n [debounceTime]=\"500\"\r\n (onEventChange)=\"onNameChange()\">\r\n</div>\r\n<div class=\"img-editor__infoSection__propertyEditable\">\r\n <p class=\"mainColor\">\r\n {{ 'ImgManager.UploadList.properties.imgURL' | translate }}\r\n <span class=\"img-editor__infoSection__propertyEditable__tooltips\" [nwbToolTip]=\"'ImgManager.editImg.changeName' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></span>\r\n </p>\r\n <button type=\"button\" [copy-clipboard]=\"imgToEdit.file_name | imgSrc : 'raw'\" (copied)=\"copyToClipBoard($event)\" ><span class=\"img-editor__infoSection__propertyEditable__span\">{{imgToEdit.file_name}}</span>&nbsp;&nbsp;<i class=\"far fa-copy\"></i></button>\r\n</div>\r\n<div class=\"img-editor__infoSection__property\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.properties.imgSize' | translate }}&nbsp;:</p>\r\n <p>{{imgToEdit.raw_height}}*{{imgToEdit.raw_width}}px</p>\r\n</div>\r\n<div class=\"img-editor__infoSection__property\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.properties.imgWeight' | translate }}&nbsp;:</p>\r\n <p >{{getFileSize()}}&nbsp;ko</p>\r\n</div>\r\n\r\n<!-- SEO info -->\r\n\r\n<span class=\"img-editor__infoSection__divider\"></span>\r\n\r\n<div class=\"img-editor__infoSection__titleSEO\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.seo.title' | translate }}</p>\r\n</div>\r\n\r\n<div class=\"img-editor__infoSection__propertySEO\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.seo.rezise' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i>&nbsp;100%</p>\r\n <p class=\"img-editor__infoSection__propertySEO__tooltips\" [nwbToolTip]=\"'ImgManager.UploadList.seo.reziseTooltips' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></p>\r\n</div>\r\n<div class=\"img-editor__infoSection__propertySEO\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.seo.webp' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i>&nbsp;100%</p>\r\n <p class=\"img-editor__infoSection__propertySEO__tooltips\" [nwbToolTip]=\"'ImgManager.UploadList.seo.webpTooltips' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></p>\r\n</div>\r\n<div class=\"img-editor__infoSection__propertySEO\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.seo.cdn' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i>&nbsp;100%</p>\r\n <p class=\"img-editor__infoSection__propertySEO__tooltips\" [nwbToolTip]=\"'ImgManager.UploadList.seo.cdnTooltips' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></p>\r\n\r\n</div>\r\n<div class=\"img-editor__infoSection__propertySEO\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.seo.lazyloading' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i>&nbsp;100%</p>\r\n <p class=\"img-editor__infoSection__propertySEO__tooltips\" [nwbToolTip]=\"'ImgManager.UploadList.seo.lazyloadingTooltips' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></p>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NwbToolTipDirective, selector: "[nwbToolTip]", inputs: ["nwbToolTip", "nwbToolTipPosition", "nwbToolTipIsMultiline"] }, { kind: "directive", type: i4.CopyClipboardDirective, selector: "[copy-clipboard]", inputs: ["copy-clipboard"], outputs: ["copied"] }, { kind: "directive", type: i5.DebounceKeyupDirective, selector: "input[debounceKeyUp]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.ImageSrcPipe, name: "imgSrc" }] });
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: EditorInfoSectionComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'info-section', template: "\r\n<!-- Img properties -->\r\n<div class=\"img-editor__infoSection__propertyEditable\">\r\n <p class=\"mainColor\">\r\n {{ 'ImgManager.UploadList.properties.imgName' | translate }}\r\n <span class=\"img-editor__infoSection__propertyEditable__tooltips\" [nwbToolTip]=\"'ImgManager.ImgEditor.NameInfo' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></span>\r\n </p>\r\n <input\r\n type=\"text\"\r\n class=\"img-editor__infoSection__propertyEditable__input\"\r\n placeholder=\"{{'ImgManager.ImgEditor.nameEx' | translate}} \"\r\n [(ngModel)]=\"imgToEdit.display_name\"\r\n debounceKeyUp\r\n [debounceTime]=\"500\"\r\n (onEventChange)=\"onNameChange()\">\r\n</div>\r\n<div class=\"img-editor__infoSection__propertyEditable\">\r\n <p class=\"mainColor\">\r\n {{ 'ImgManager.UploadList.properties.imgURL' | translate }}\r\n <span class=\"img-editor__infoSection__propertyEditable__tooltips\" [nwbToolTip]=\"'ImgManager.editImg.changeName' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></span>\r\n </p>\r\n <button type=\"button\" [copy-clipboard]=\"imgToEdit.file_name | imgSrc : 'raw'\" (copied)=\"copyToClipBoard($event)\" ><span class=\"img-editor__infoSection__propertyEditable__span\">{{imgToEdit.file_name}}</span>&nbsp;&nbsp;<i class=\"far fa-copy\"></i></button>\r\n</div>\r\n<div class=\"img-editor__infoSection__property\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.properties.imgSize' | translate }}&nbsp;:</p>\r\n <p>{{imgToEdit.raw_height}}*{{imgToEdit.raw_width}}px</p>\r\n</div>\r\n<div class=\"img-editor__infoSection__property\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.properties.imgWeight' | translate }}&nbsp;:</p>\r\n <p >{{getFileSize()}}&nbsp;ko</p>\r\n</div>\r\n\r\n<!-- SEO info -->\r\n\r\n<span class=\"img-editor__infoSection__divider\"></span>\r\n\r\n<div class=\"img-editor__infoSection__titleSEO\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.seo.title' | translate }}</p>\r\n</div>\r\n\r\n<div class=\"img-editor__infoSection__propertySEO\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.seo.rezise' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i>&nbsp;100%</p>\r\n <p class=\"img-editor__infoSection__propertySEO__tooltips\" [nwbToolTip]=\"'ImgManager.UploadList.seo.reziseTooltips' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></p>\r\n</div>\r\n<div class=\"img-editor__infoSection__propertySEO\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.seo.webp' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i>&nbsp;100%</p>\r\n <p class=\"img-editor__infoSection__propertySEO__tooltips\" [nwbToolTip]=\"'ImgManager.UploadList.seo.webpTooltips' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></p>\r\n</div>\r\n<div class=\"img-editor__infoSection__propertySEO\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.seo.cdn' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i>&nbsp;100%</p>\r\n <p class=\"img-editor__infoSection__propertySEO__tooltips\" [nwbToolTip]=\"'ImgManager.UploadList.seo.cdnTooltips' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></p>\r\n\r\n</div>\r\n<div class=\"img-editor__infoSection__propertySEO\">\r\n <p class=\"mainColor\">{{ 'ImgManager.UploadList.seo.lazyloading' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i>&nbsp;100%</p>\r\n <p class=\"img-editor__infoSection__propertySEO__tooltips\" [nwbToolTip]=\"'ImgManager.UploadList.seo.lazyloadingTooltips' | translate\" [nwbToolTipIsMultiline]=\"true\" nwbToolTipPosition=\"right\"><i class=\"fa-solid fa-info-circle\"></i></p>\r\n</div>\r\n" }]
51
+ }], ctorParameters: () => [{ type: i1.AlertService }], propDecorators: { imgToEdit: [{
52
+ type: Input
53
+ }], isNameModified: [{
54
+ type: Input
55
+ }], isNameModifiedChange: [{
56
+ type: Output
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWctZWRpdG9yL2luZm8tc2VjdGlvbi9pbmZvLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL2ltZy1lZGl0b3IvaW5mby1zZWN0aW9uL2luZm8tc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7QUFNL0QsTUFBTSxPQUFPLDBCQUEwQjtJQXVCM0I7SUFwQlYsU0FBUyxDQUFnQjtJQUV6QixJQUNJLGNBQWMsQ0FBQyxjQUF1QjtRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBQ08sZUFBZSxHQUFZLEtBQUssQ0FBQztJQUd6QyxvQkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRW5ELE9BQU8sQ0FBUztJQUNoQixRQUFRLENBQVM7SUFFakIsa0JBQWtCLEdBQVcsc0NBQXNDLENBQUM7SUFFcEUsWUFDVSxZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUM5QixDQUFDO0lBRVAsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztJQUM3QyxDQUFDO0lBQ0QsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQy9FLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSztRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQzt1R0EzQ1UsMEJBQTBCOzJGQUExQiwwQkFBMEIscUxDVnZDLG82SEE2REE7OzJGRG5EYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0UsY0FBYztpRkFNeEIsU0FBUztzQkFEUixLQUFLO2dCQUlGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBVU4sb0JBQW9CO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nUGljdHVyZURUTyB9IGZyb20gJy4uLy4uLy4uL2R0by9pbWctbWFuYWdlci5kdG8nO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2luZm8tc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmZvLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckluZm9TZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBpbWdUb0VkaXQ6IEltZ1BpY3R1cmVEVE87XG5cbiAgQElucHV0KClcbiAgc2V0IGlzTmFtZU1vZGlmaWVkKGlzTmFtZU1vZGlmaWVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNOYW1lTW9kaWZpZWQgPSBpc05hbWVNb2RpZmllZDtcbiAgfVxuICBnZXQgaXNOYW1lTW9kaWZpZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTmFtZU1vZGlmaWVkO1xuICB9XG4gIHByaXZhdGUgX2lzTmFtZU1vZGlmaWVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIGlzTmFtZU1vZGlmaWVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGltZ05hbWU6IHN0cmluZztcbiAgaW1nUm91dGU6IHN0cmluZztcblxuICBtc2dDb3B5VG9DbGlwQm9hcmQ6IHN0cmluZyA9ICdJbWdNYW5hZ2VyLkltZ0VkaXRvci5jb3B5dG9DbGlwQm9hcmQnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIGluaXQoKSB7XG4gICAgdGhpcy5pbWdOYW1lID0gdGhpcy5pbWdUb0VkaXQuZGlzcGxheV9uYW1lO1xuICB9XG4gIGdldEZpbGVTaXplKCkge1xuICAgIHJldHVybiB0aGlzLmltZ1RvRWRpdCA/IE1hdGgucm91bmQocGFyc2VJbnQodGhpcy5pbWdUb0VkaXQuc2l6ZSkvMTAwMCkgOiAnLSc7XG4gIH1cblxuICBjb3B5VG9DbGlwQm9hcmQoZXZlbnQpIHtcbiAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5tc2dDb3B5VG9DbGlwQm9hcmQpO1xuICB9XG5cbiAgb25OYW1lQ2hhbmdlKCkge1xuICAgIHRoaXMuaXNOYW1lTW9kaWZpZWRDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgfVxufVxuIiwiXHJcbjwhLS0gSW1nIHByb3BlcnRpZXMgLS0+XHJcbjxkaXYgY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fcHJvcGVydHlFZGl0YWJsZVwiPlxyXG4gICAgPHAgY2xhc3M9XCJtYWluQ29sb3JcIj5cclxuICAgICAgICB7eyAnSW1nTWFuYWdlci5VcGxvYWRMaXN0LnByb3BlcnRpZXMuaW1nTmFtZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImltZy1lZGl0b3JfX2luZm9TZWN0aW9uX19wcm9wZXJ0eUVkaXRhYmxlX190b29sdGlwc1wiIFtud2JUb29sVGlwXT1cIidJbWdNYW5hZ2VyLkltZ0VkaXRvci5OYW1lSW5mbycgfCB0cmFuc2xhdGVcIiBbbndiVG9vbFRpcElzTXVsdGlsaW5lXT1cInRydWVcIiBud2JUb29sVGlwUG9zaXRpb249XCJyaWdodFwiPjxpIGNsYXNzPVwiZmEtc29saWQgZmEtaW5mby1jaXJjbGVcIj48L2k+PC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fcHJvcGVydHlFZGl0YWJsZV9faW5wdXRcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cInt7J0ltZ01hbmFnZXIuSW1nRWRpdG9yLm5hbWVFeCcgfCB0cmFuc2xhdGV9fSBcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImltZ1RvRWRpdC5kaXNwbGF5X25hbWVcIlxyXG4gICAgICBkZWJvdW5jZUtleVVwXHJcbiAgICAgIFtkZWJvdW5jZVRpbWVdPVwiNTAwXCJcclxuICAgICAgKG9uRXZlbnRDaGFuZ2UpPVwib25OYW1lQ2hhbmdlKClcIj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fcHJvcGVydHlFZGl0YWJsZVwiPlxyXG4gICAgPHAgY2xhc3M9XCJtYWluQ29sb3JcIj5cclxuICAgICAge3sgJ0ltZ01hbmFnZXIuVXBsb2FkTGlzdC5wcm9wZXJ0aWVzLmltZ1VSTCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPHNwYW4gY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fcHJvcGVydHlFZGl0YWJsZV9fdG9vbHRpcHNcIiBbbndiVG9vbFRpcF09XCInSW1nTWFuYWdlci5lZGl0SW1nLmNoYW5nZU5hbWUnIHwgdHJhbnNsYXRlXCIgW253YlRvb2xUaXBJc011bHRpbGluZV09XCJ0cnVlXCIgbndiVG9vbFRpcFBvc2l0aW9uPVwicmlnaHRcIj48aSBjbGFzcz1cImZhLXNvbGlkIGZhLWluZm8tY2lyY2xlXCI+PC9pPjwvc3Bhbj5cclxuICAgIDwvcD5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtjb3B5LWNsaXBib2FyZF09XCJpbWdUb0VkaXQuZmlsZV9uYW1lIHwgaW1nU3JjIDogJ3JhdydcIiAoY29waWVkKT1cImNvcHlUb0NsaXBCb2FyZCgkZXZlbnQpXCIgPjxzcGFuICBjbGFzcz1cImltZy1lZGl0b3JfX2luZm9TZWN0aW9uX19wcm9wZXJ0eUVkaXRhYmxlX19zcGFuXCI+e3tpbWdUb0VkaXQuZmlsZV9uYW1lfX08L3NwYW4+Jm5ic3A7Jm5ic3A7PGkgY2xhc3M9XCJmYXIgZmEtY29weVwiPjwvaT48L2J1dHRvbj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fcHJvcGVydHlcIj5cclxuICAgIDxwIGNsYXNzPVwibWFpbkNvbG9yXCI+e3sgJ0ltZ01hbmFnZXIuVXBsb2FkTGlzdC5wcm9wZXJ0aWVzLmltZ1NpemUnIHwgdHJhbnNsYXRlIH19Jm5ic3A7OjwvcD5cclxuICAgIDxwPnt7aW1nVG9FZGl0LnJhd19oZWlnaHR9fSp7e2ltZ1RvRWRpdC5yYXdfd2lkdGh9fXB4PC9wPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImltZy1lZGl0b3JfX2luZm9TZWN0aW9uX19wcm9wZXJ0eVwiPlxyXG4gICAgPHAgY2xhc3M9XCJtYWluQ29sb3JcIj57eyAnSW1nTWFuYWdlci5VcGxvYWRMaXN0LnByb3BlcnRpZXMuaW1nV2VpZ2h0JyB8IHRyYW5zbGF0ZSB9fSZuYnNwOzo8L3A+XHJcbiAgICA8cCA+e3tnZXRGaWxlU2l6ZSgpfX0mbmJzcDtrbzwvcD5cclxuPC9kaXY+XHJcblxyXG48IS0tIFNFTyBpbmZvIC0tPlxyXG5cclxuPHNwYW4gY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fZGl2aWRlclwiPjwvc3Bhbj5cclxuXHJcbjxkaXYgY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fdGl0bGVTRU9cIj5cclxuICAgIDxwIGNsYXNzPVwibWFpbkNvbG9yXCI+e3sgJ0ltZ01hbmFnZXIuVXBsb2FkTGlzdC5zZW8udGl0bGUnIHwgdHJhbnNsYXRlIH19PC9wPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fcHJvcGVydHlTRU9cIj5cclxuICAgIDxwIGNsYXNzPVwibWFpbkNvbG9yXCI+e3sgJ0ltZ01hbmFnZXIuVXBsb2FkTGlzdC5zZW8ucmV6aXNlJyB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuICAgIDxwPjxpIGNsYXNzPVwiZmFsIGZhLWNoZWNrXCI+PC9pPiZuYnNwOzEwMCU8L3A+XHJcbiAgICA8cCBjbGFzcz1cImltZy1lZGl0b3JfX2luZm9TZWN0aW9uX19wcm9wZXJ0eVNFT19fdG9vbHRpcHNcIiBbbndiVG9vbFRpcF09XCInSW1nTWFuYWdlci5VcGxvYWRMaXN0LnNlby5yZXppc2VUb29sdGlwcycgfCB0cmFuc2xhdGVcIiBbbndiVG9vbFRpcElzTXVsdGlsaW5lXT1cInRydWVcIiBud2JUb29sVGlwUG9zaXRpb249XCJyaWdodFwiPjxpIGNsYXNzPVwiZmEtc29saWQgZmEtaW5mby1jaXJjbGVcIj48L2k+PC9wPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImltZy1lZGl0b3JfX2luZm9TZWN0aW9uX19wcm9wZXJ0eVNFT1wiPlxyXG4gICAgPHAgY2xhc3M9XCJtYWluQ29sb3JcIj57eyAnSW1nTWFuYWdlci5VcGxvYWRMaXN0LnNlby53ZWJwJyB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuICAgIDxwPjxpIGNsYXNzPVwiZmFsIGZhLWNoZWNrXCI+PC9pPiZuYnNwOzEwMCU8L3A+XHJcbiAgPHAgY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fcHJvcGVydHlTRU9fX3Rvb2x0aXBzXCIgW253YlRvb2xUaXBdPVwiJ0ltZ01hbmFnZXIuVXBsb2FkTGlzdC5zZW8ud2VicFRvb2x0aXBzJyB8IHRyYW5zbGF0ZVwiIFtud2JUb29sVGlwSXNNdWx0aWxpbmVdPVwidHJ1ZVwiIG53YlRvb2xUaXBQb3NpdGlvbj1cInJpZ2h0XCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1pbmZvLWNpcmNsZVwiPjwvaT48L3A+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiaW1nLWVkaXRvcl9faW5mb1NlY3Rpb25fX3Byb3BlcnR5U0VPXCI+XHJcbiAgICA8cCBjbGFzcz1cIm1haW5Db2xvclwiPnt7ICdJbWdNYW5hZ2VyLlVwbG9hZExpc3Quc2VvLmNkbicgfCB0cmFuc2xhdGUgfX08L3A+XHJcbiAgICA8cD48aSBjbGFzcz1cImZhbCBmYS1jaGVja1wiPjwvaT4mbmJzcDsxMDAlPC9wPlxyXG4gIDxwIGNsYXNzPVwiaW1nLWVkaXRvcl9faW5mb1NlY3Rpb25fX3Byb3BlcnR5U0VPX190b29sdGlwc1wiIFtud2JUb29sVGlwXT1cIidJbWdNYW5hZ2VyLlVwbG9hZExpc3Quc2VvLmNkblRvb2x0aXBzJyB8IHRyYW5zbGF0ZVwiIFtud2JUb29sVGlwSXNNdWx0aWxpbmVdPVwidHJ1ZVwiIG53YlRvb2xUaXBQb3NpdGlvbj1cInJpZ2h0XCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1pbmZvLWNpcmNsZVwiPjwvaT48L3A+XHJcblxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImltZy1lZGl0b3JfX2luZm9TZWN0aW9uX19wcm9wZXJ0eVNFT1wiPlxyXG4gICAgPHAgY2xhc3M9XCJtYWluQ29sb3JcIj57eyAnSW1nTWFuYWdlci5VcGxvYWRMaXN0LnNlby5sYXp5bG9hZGluZycgfCB0cmFuc2xhdGUgfX08L3A+XHJcbiAgICA8cD48aSBjbGFzcz1cImZhbCBmYS1jaGVja1wiPjwvaT4mbmJzcDsxMDAlPC9wPlxyXG4gICAgPHAgY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fcHJvcGVydHlTRU9fX3Rvb2x0aXBzXCIgW253YlRvb2xUaXBdPVwiJ0ltZ01hbmFnZXIuVXBsb2FkTGlzdC5zZW8ubGF6eWxvYWRpbmdUb29sdGlwcycgfCB0cmFuc2xhdGVcIiBbbndiVG9vbFRpcElzTXVsdGlsaW5lXT1cInRydWVcIiBud2JUb29sVGlwUG9zaXRpb249XCJyaWdodFwiPjxpIGNsYXNzPVwiZmEtc29saWQgZmEtaW5mby1jaXJjbGVcIj48L2k+PC9wPlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,58 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { ImgSelectionService } from '../../services/img-selection.service';
3
+ import { combineLatest } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/img-selection.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/cdk/drag-drop";
8
+ import * as i4 from "../loader/loader.component";
9
+ import * as i5 from "@ngx-translate/core";
10
+ import * as i6 from "../../pipes/images/img-src.pipe";
11
+ export class ImgSelectionComponent {
12
+ imgSelectionService;
13
+ tabDisplayed;
14
+ imgManagerClosed = new EventEmitter();
15
+ removingAll = false;
16
+ cancellingAll = false;
17
+ importingAll = false;
18
+ dragStart = false;
19
+ vm$;
20
+ trashPositionIndex = 0;
21
+ trashPositionLeft = '-5px';
22
+ constructor(imgSelectionService) {
23
+ this.imgSelectionService = imgSelectionService;
24
+ }
25
+ ngOnInit() {
26
+ this.vm$ = combineLatest({
27
+ imgSelectedList: this.imgSelectionService.imgSelection$,
28
+ isLoading: this.imgSelectionService.imgSelectedListLoading$
29
+ });
30
+ }
31
+ init() {
32
+ this.removingAll = false;
33
+ this.cancellingAll = false;
34
+ this.importingAll = false;
35
+ }
36
+ removeImg(index) {
37
+ this.imgSelectionService.removeImgSelectedByIndex(index);
38
+ }
39
+ drop(event) {
40
+ if (event.previousIndex !== event.currentIndex) {
41
+ this.imgSelectionService.moveImgOrder(event);
42
+ }
43
+ }
44
+ removeImgFromSelection(event) {
45
+ this.imgSelectionService.removeImgSelectedByIndex(event.previousIndex);
46
+ }
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ImgSelectionComponent, deps: [{ token: i1.ImgSelectionService }], target: i0.ɵɵFactoryTarget.Component });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ImgSelectionComponent, selector: "img-selection", inputs: { tabDisplayed: "tabDisplayed" }, outputs: { imgManagerClosed: "imgManagerClosed" }, ngImport: i0, template: "<div\r\n class=\"trash\"\r\n cdkDropList\r\n #unSelectList=\"cdkDropList\"\r\n (cdkDropListDropped)=\"removeImgFromSelection($event)\">\r\n <p>{{'ImgManager.ImgSelection.unselect' | translate}}</p>\r\n</div>\r\n\r\n<ng-container *ngIf=\"vm$ | async as vm\">\r\n\r\n <div\r\n class=\"img-selection\"\r\n *ngIf=\"!vm.isLoading; else Loading\"\r\n [ngClass]=\"{'img-selection--visible' : vm.imgSelectedList && vm.imgSelectedList.length}\"\r\n >\r\n\r\n <div\r\n cdkDropList\r\n #selectionList=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n class=\"list_img_selection\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n [cdkDropListConnectedTo]=\"[unSelectList]\"\r\n >\r\n\r\n <div\r\n class=\"img_box\"\r\n *ngFor=\"let picture of vm.imgSelectedList; let index = index\"\r\n cdkDrag\r\n (cdkDragStarted)=\"dragStart = true;\"\r\n (cdkDragEnded)=\"dragStart = false;\"\r\n >\r\n\r\n <img\r\n *ngIf=\"index < 1\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '400'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <img\r\n *ngIf=\"index > 0\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '200'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <div class=\"delete-btn\" (click)=\"removeImg(index)\">{{'ImgManager.ImgSelection.deleteImg' | translate}}</div>\r\n\r\n <span class=\"drag__tooltips\">{{'ImgManager.ImgSelection.tooltips' | translate}}</span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<!-- Loader -->\r\n<ng-template #Loading>\r\n <wz-loader></wz-loader>\r\n</ng-template>\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: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i4.LoaderComponent, selector: "wz-loader", inputs: ["text", "small", "position"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.ImageSrcPipe, name: "imgSrc" }] });
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ImgSelectionComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'img-selection', template: "<div\r\n class=\"trash\"\r\n cdkDropList\r\n #unSelectList=\"cdkDropList\"\r\n (cdkDropListDropped)=\"removeImgFromSelection($event)\">\r\n <p>{{'ImgManager.ImgSelection.unselect' | translate}}</p>\r\n</div>\r\n\r\n<ng-container *ngIf=\"vm$ | async as vm\">\r\n\r\n <div\r\n class=\"img-selection\"\r\n *ngIf=\"!vm.isLoading; else Loading\"\r\n [ngClass]=\"{'img-selection--visible' : vm.imgSelectedList && vm.imgSelectedList.length}\"\r\n >\r\n\r\n <div\r\n cdkDropList\r\n #selectionList=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n class=\"list_img_selection\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n [cdkDropListConnectedTo]=\"[unSelectList]\"\r\n >\r\n\r\n <div\r\n class=\"img_box\"\r\n *ngFor=\"let picture of vm.imgSelectedList; let index = index\"\r\n cdkDrag\r\n (cdkDragStarted)=\"dragStart = true;\"\r\n (cdkDragEnded)=\"dragStart = false;\"\r\n >\r\n\r\n <img\r\n *ngIf=\"index < 1\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '400'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <img\r\n *ngIf=\"index > 0\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '200'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <div class=\"delete-btn\" (click)=\"removeImg(index)\">{{'ImgManager.ImgSelection.deleteImg' | translate}}</div>\r\n\r\n <span class=\"drag__tooltips\">{{'ImgManager.ImgSelection.tooltips' | translate}}</span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<!-- Loader -->\r\n<ng-template #Loading>\r\n <wz-loader></wz-loader>\r\n</ng-template>\r\n" }]
53
+ }], ctorParameters: () => [{ type: i1.ImgSelectionService }], propDecorators: { tabDisplayed: [{
54
+ type: Input
55
+ }], imgManagerClosed: [{
56
+ type: Output
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXNlbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvaW1nLXNlbGVjdGlvbi9pbWctc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWctc2VsZWN0aW9uL2ltZy1zZWxlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU9qRCxNQUFNLE9BQU8scUJBQXFCO0lBZ0J0QjtJQWRELFlBQVksQ0FBZTtJQUMxQixnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWhELFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsYUFBYSxHQUFZLEtBQUssQ0FBQztJQUMvQixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsR0FBRyxDQUFrQjtJQUdyQixrQkFBa0IsR0FBRyxDQUFDLENBQUM7SUFDdkIsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO0lBRTNCLFlBQ1UsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFDNUMsQ0FBQztJQUVQLFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQztZQUN2QixlQUFlLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWE7WUFDdkQsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUI7U0FDNUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLENBQUMsS0FBNEI7UUFDL0IsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBNEI7UUFDakQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RSxDQUFDO3VHQTVDVSxxQkFBcUI7MkZBQXJCLHFCQUFxQixrSkNYbEMsZzJEQTJEQTs7MkZEaERhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxlQUFlO3dGQUtoQixZQUFZO3NCQUFwQixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctc2VsZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Nka0RyYWdEcm9wfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgdGFiRGlzcGxheWVkIH0gZnJvbSAnLi4vLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ltZy1zZWxlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWctc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1nU2VsZWN0aW9uQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgdGFiRGlzcGxheWVkOiB0YWJEaXNwbGF5ZWQ7XHJcbiAgQE91dHB1dCgpIGltZ01hbmFnZXJDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHJlbW92aW5nQWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2FuY2VsbGluZ0FsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGltcG9ydGluZ0FsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyYWdTdGFydCA9IGZhbHNlO1xyXG4gIHZtJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuXHJcbiAgdHJhc2hQb3NpdGlvbkluZGV4ID0gMDtcclxuICB0cmFzaFBvc2l0aW9uTGVmdCA9ICctNXB4JztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52bSQgPSBjb21iaW5lTGF0ZXN0KHtcclxuICAgICAgaW1nU2VsZWN0ZWRMaXN0OiB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0aW9uJCxcclxuICAgICAgaXNMb2FkaW5nOiB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0ZWRMaXN0TG9hZGluZyRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIHRoaXMucmVtb3ZpbmdBbGwgPSBmYWxzZTtcclxuICAgIHRoaXMuY2FuY2VsbGluZ0FsbCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbXBvcnRpbmdBbGwgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUltZyhpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UucmVtb3ZlSW1nU2VsZWN0ZWRCeUluZGV4KGluZGV4KTtcclxuICB9XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgaWYgKGV2ZW50LnByZXZpb3VzSW5kZXggIT09IGV2ZW50LmN1cnJlbnRJbmRleCkge1xyXG4gICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UubW92ZUltZ09yZGVyKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZUltZ0Zyb21TZWxlY3Rpb24oZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGVkQnlJbmRleChldmVudC5wcmV2aW91c0luZGV4KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwidHJhc2hcIlxyXG4gIGNka0Ryb3BMaXN0XHJcbiAgI3VuU2VsZWN0TGlzdD1cImNka0Ryb3BMaXN0XCJcclxuICAoY2RrRHJvcExpc3REcm9wcGVkKT1cInJlbW92ZUltZ0Zyb21TZWxlY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgPHA+e3snSW1nTWFuYWdlci5JbWdTZWxlY3Rpb24udW5zZWxlY3QnIHwgdHJhbnNsYXRlfX08L3A+XHJcbjwvZGl2PlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZtJCB8IGFzeW5jIGFzIHZtXCI+XHJcblxyXG4gIDxkaXZcclxuICBjbGFzcz1cImltZy1zZWxlY3Rpb25cIlxyXG4gICpuZ0lmPVwiIXZtLmlzTG9hZGluZzsgZWxzZSBMb2FkaW5nXCJcclxuICBbbmdDbGFzc109XCJ7J2ltZy1zZWxlY3Rpb24tLXZpc2libGUnIDogdm0uaW1nU2VsZWN0ZWRMaXN0ICYmIHZtLmltZ1NlbGVjdGVkTGlzdC5sZW5ndGh9XCJcclxuICA+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgICAjc2VsZWN0aW9uTGlzdD1cImNka0Ryb3BMaXN0XCJcclxuICAgICAgICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXHJcbiAgICAgICAgY2xhc3M9XCJsaXN0X2ltZ19zZWxlY3Rpb25cIlxyXG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcclxuICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbdW5TZWxlY3RMaXN0XVwiXHJcbiAgICAgICAgPlxyXG5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJpbWdfYm94XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBpY3R1cmUgb2Ygdm0uaW1nU2VsZWN0ZWRMaXN0OyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgIGNka0RyYWdcclxuICAgICAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cImRyYWdTdGFydCA9IHRydWU7XCJcclxuICAgICAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJkcmFnU3RhcnQgPSBmYWxzZTtcIlxyXG4gICAgICAgICAgICA+XHJcblxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpbmRleCA8IDFcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZHJhZ19faW1nXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cInBpY3R1cmUuZmlsZV9uYW1lIHwgaW1nU3JjIDogJzQwMCdcIlxyXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJwaWN0dXJlLmRpc3BsYXlfbmFtZVwiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpbmRleCA+IDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZHJhZ19faW1nXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cInBpY3R1cmUuZmlsZV9uYW1lIHwgaW1nU3JjIDogJzIwMCdcIlxyXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJwaWN0dXJlLmRpc3BsYXlfbmFtZVwiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLWJ0blwiIChjbGljayk9XCJyZW1vdmVJbWcoaW5kZXgpXCI+e3snSW1nTWFuYWdlci5JbWdTZWxlY3Rpb24uZGVsZXRlSW1nJyB8IHRyYW5zbGF0ZX19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyYWdfX3Rvb2x0aXBzXCI+e3snSW1nTWFuYWdlci5JbWdTZWxlY3Rpb24udG9vbHRpcHMnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPCEtLSBMb2FkZXIgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjTG9hZGluZz5cclxuICA8d3otbG9hZGVyPjwvd3otbG9hZGVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,128 @@
1
+ import { Component, Input, ViewChild, Output, EventEmitter } from '@angular/core';
2
+ import { UploadListComponent } from '../upload-list/upload-list.component';
3
+ import { ImgEventService } from '../../services/img-event.service';
4
+ import { AlertService } from '../../services/alert.service';
5
+ import { Router } from '@angular/router';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../services/img-event.service";
8
+ import * as i2 from "../../services/alert.service";
9
+ import * as i3 from "@angular/router";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "@angular/forms";
12
+ import * as i6 from "../img-upload/img-upload.component";
13
+ import * as i7 from "../pexels-lib/pexels-lib.component";
14
+ import * as i8 from "../upload-list/upload-list.component";
15
+ import * as i9 from "../img-editor/img-editor.component";
16
+ import * as i10 from "../canva-btn/canva-btn.component";
17
+ import * as i11 from "../images-view/images-view.component";
18
+ import * as i12 from "../shared/select/select.component";
19
+ import * as i13 from "@ngx-translate/core";
20
+ export class ImgTabsComponent {
21
+ imgEventEditService;
22
+ alertService;
23
+ route;
24
+ multipleImgMode = false;
25
+ stateDisplayed;
26
+ listDisplayed = false;
27
+ imgManagerClosed = new EventEmitter();
28
+ currentTab = new EventEmitter();
29
+ switchDisplayWindow = new EventEmitter();
30
+ tabs = [
31
+ {
32
+ name: 'ImgManager.Tabs.addImg',
33
+ value: 'img-upload',
34
+ selected: true,
35
+ id: 0
36
+ },
37
+ {
38
+ name: 'ImgManager.Tabs.imgLib',
39
+ value: 'images-view',
40
+ id: 1
41
+ },
42
+ {
43
+ name: 'ImgManager.Tabs.freeImgLib',
44
+ value: 'pexels-lib',
45
+ id: 2
46
+ },
47
+ {
48
+ name: 'ImgManager.Tabs.Editor',
49
+ value: 'img-edition',
50
+ hide: true,
51
+ id: 3
52
+ }
53
+ ];
54
+ tabActive = this.tabs[0];
55
+ /* tabActive = 'images-view';
56
+ tabs: string[] = ['img-upload', 'images-view', 'pexels-lib', 'img-edition']; */
57
+ editTab = false;
58
+ imgToEdit;
59
+ imgUpload = false;
60
+ imgUploadedComponent;
61
+ snackBarNewVersionConfig = {
62
+ message: '',
63
+ duration: 3000
64
+ };
65
+ constructor(imgEventEditService, alertService, route) {
66
+ this.imgEventEditService = imgEventEditService;
67
+ this.alertService = alertService;
68
+ this.route = route;
69
+ }
70
+ ngOnInit() {
71
+ this.imgEventEditService.getImgToEditEventListener().subscribe(imgToEdit => {
72
+ this.tabActive = this.tabs[3];
73
+ this.imgToEdit = imgToEdit;
74
+ this.editTab = true;
75
+ this.currentTab.emit(this.tabs[3]);
76
+ });
77
+ }
78
+ toggleTabs(item) {
79
+ this.imgUpload = false;
80
+ this.editTab = false;
81
+ this.tabActive = item;
82
+ }
83
+ onImgUploaded(img) {
84
+ this.imgUpload = true;
85
+ this.imgUploadedComponent.onImgUploaded(img);
86
+ }
87
+ onEditClosed(msgKey) {
88
+ this.editTab = false;
89
+ this.toggleTabs(this.tabs[1]);
90
+ if (msgKey) {
91
+ this.alertService.openAlert(msgKey);
92
+ }
93
+ this.currentTab.emit('close');
94
+ }
95
+ onShowImgUploaded() {
96
+ this.tabActive = this.tabs[1];
97
+ }
98
+ switchDisplayWindowImgView() {
99
+ this.switchDisplayWindow.emit(true);
100
+ }
101
+ switchRouterLink(event) {
102
+ }
103
+ onImgManagerClosed() {
104
+ this.imgManagerClosed.emit();
105
+ }
106
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ImgTabsComponent, deps: [{ token: i1.ImgEventService }, { token: i2.AlertService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
107
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ImgTabsComponent, selector: "img-tabs", inputs: { multipleImgMode: "multipleImgMode", stateDisplayed: "stateDisplayed", listDisplayed: "listDisplayed" }, outputs: { imgManagerClosed: "imgManagerClosed", currentTab: "currentTab", switchDisplayWindow: "switchDisplayWindow" }, viewQueries: [{ propertyName: "imgUploadedComponent", first: true, predicate: ["imgUploadedImg"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"img-tabs\" [ngClass]=\"{'small': stateDisplayed === 'small'}\">\r\n <div class=\"wrapper-tabs\">\r\n <div\r\n class=\"tabs\"\r\n [ngClass]=\"\r\n {\r\n 'tabs--notWindow': stateDisplayed !== 'window',\r\n 'tabs--notDisplayed': stateDisplayed === 'window' && tabActive.value === tabs[3].value\r\n }\">\r\n\r\n <ul>\r\n <li class=\"is-active\" [ngClass]=\"{'is-active': tabActive.value === tabs[0].value}\" (click)=\"toggleTabs(tabs[0])\"><a>{{ tabs[0].name | translate }}</a></li>\r\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[1].value}\" (click)=\"toggleTabs(tabs[1])\"><a>{{ tabs[1].name | translate }}</a></li>\r\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[2].value}\" (click)=\"toggleTabs(tabs[2])\"><a>{{ tabs[2].name | translate }}</a></li>\r\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[3].value}\" *ngIf=\"editTab\"><a>{{ tabs[3].name | translate }}</a></li>\r\n </ul>\r\n <div\r\n class=\"img-tabs__canva\"\r\n [ngClass]=\"{'img-tabs__canva--window': stateDisplayed === 'window'}\">\r\n <canva-btn\r\n (showImgUploaded)=\"onShowImgUploaded()\"\r\n [stateDisplayed]=\"stateDisplayed\">\r\n </canva-btn>\r\n </div>\r\n </div>\r\n <div class=\"select-mobile-page\">\r\n <wac-select\r\n [(ngModel)]=\"tabActive\"\r\n name=\"tabs\"\r\n [items]=\"tabs\"\r\n ></wac-select>\r\n </div>\r\n </div>\r\n\r\n <!-- Upload section -->\r\n <div\r\n class=\"columns img-tabs__tabsFirst\"\r\n [ngClass]=\"{\r\n 'img-tabs__tabsFirst--small': stateDisplayed === 'small',\r\n 'img-tabs__tabsFirst--window': stateDisplayed === 'window'\r\n }\"\r\n *ngIf=\"tabActive.value === tabs[0].value\">\r\n <div class=\"column img-tabs__tabsFirst__upload\">\r\n <img-upload\r\n [stateDisplayed]=\"stateDisplayed\"\r\n (imgUploaded)=\"onImgUploaded($event)\"\r\n ></img-upload>\r\n </div>\r\n <div class=\"column img-tabs__tabsFirst__list\" [ngClass]=\"{\r\n 'img-tabs__tabsFirst__list--upload': imgUpload\r\n }\">\r\n <images-view\r\n *ngIf=\"!imgUpload\"\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [listDisplayed]=\"false\"\r\n [multipleImgMode]=\"multipleImgMode\"\r\n [tabDisplayed]=\"tabActive.value\"\r\n [nbRowToShow]=\"2\"\r\n (switchDisplayWindow)=\"switchDisplayWindowImgView()\"\r\n [fullSize]=\"false\">\r\n </images-view>\r\n\r\n\r\n <div [hidden]=\"!imgUpload\">\r\n <upload-list\r\n #imgUploadedImg\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [tabDisplayed]=\"tabActive.value\"\r\n [multipleImgMode]=\"multipleImgMode\"\r\n (switchDisplayWindow)=\"switchDisplayWindowImgView()\"\r\n >\r\n </upload-list>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Images section -->\r\n <div class=\"columns img-tabs__tabsSecond\" *ngIf=\"tabActive.value === tabs[1].value\">\r\n <div class=\"column\">\r\n\r\n <images-view\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [listDisplayed]=\"listDisplayed\"\r\n [multipleImgMode]=\"multipleImgMode\"\r\n [tabDisplayed]=\"tabActive.value\"\r\n (switchDisplayWindow)=\"switchDisplayWindowImgView()\"\r\n [fullSize]=\"true\">\r\n </images-view>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Pexels img section -->\r\n <div class=\"columns img-tabs__tabsThird\" *ngIf=\"tabActive.value === tabs[2].value\">\r\n <div class=\"column\">\r\n <pexels-lib\r\n [stateDisplayed]=\"stateDisplayed\"\r\n (showImgUploaded)=\"onShowImgUploaded()\">\r\n </pexels-lib>\r\n </div>\r\n </div>\r\n\r\n <!--Edition section -->\r\n <div class=\"columns img-tabs__tabsEdit\" *ngIf=\"tabActive.value === tabs[3].value\">\r\n <div class=\"column\">\r\n <img-editor\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [imgToEdit]=\"imgToEdit\"\r\n (editClosed)=\"onEditClosed($event)\">\r\n </img-editor>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.ImgUploadComponent, selector: "img-upload", inputs: ["stateDisplayed"], outputs: ["imgUploaded"] }, { kind: "component", type: i7.PexelLibComponent, selector: "pexels-lib", inputs: ["stateDisplayed", "searchValue", "disableSearch"] }, { kind: "component", type: i8.UploadListComponent, selector: "upload-list", inputs: ["stateDisplayed", "tabDisplayed", "multipleImgMode"], outputs: ["switchDisplayWindow"] }, { kind: "component", type: i9.ImgEditorComponent, selector: "img-editor", inputs: ["stateDisplayed", "imgToEdit"], outputs: ["editClosed"] }, { kind: "component", type: i10.CanvaBtnComponent, selector: "canva-btn", inputs: ["stateDisplayed"], outputs: ["showImgUploaded"] }, { kind: "component", type: i11.ImagesViewComponent, selector: "images-view", inputs: ["stateDisplayed", "tabDisplayed", "fullSize", "nbRowToShow", "listDisplayed", "multipleImgMode"], outputs: ["switchDisplayWindow"] }, { kind: "component", type: i12.SelectComponent, selector: "wac-select", inputs: ["items", "placeholder", "label", "maxWidthItems", "search", "type", "callToAction", "maxWidth", "disabled"], outputs: ["selectValue", "clickOnCallToAction"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] });
108
+ }
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ImgTabsComponent, decorators: [{
110
+ type: Component,
111
+ args: [{ selector: 'img-tabs', template: "<div\r\n class=\"img-tabs\" [ngClass]=\"{'small': stateDisplayed === 'small'}\">\r\n <div class=\"wrapper-tabs\">\r\n <div\r\n class=\"tabs\"\r\n [ngClass]=\"\r\n {\r\n 'tabs--notWindow': stateDisplayed !== 'window',\r\n 'tabs--notDisplayed': stateDisplayed === 'window' && tabActive.value === tabs[3].value\r\n }\">\r\n\r\n <ul>\r\n <li class=\"is-active\" [ngClass]=\"{'is-active': tabActive.value === tabs[0].value}\" (click)=\"toggleTabs(tabs[0])\"><a>{{ tabs[0].name | translate }}</a></li>\r\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[1].value}\" (click)=\"toggleTabs(tabs[1])\"><a>{{ tabs[1].name | translate }}</a></li>\r\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[2].value}\" (click)=\"toggleTabs(tabs[2])\"><a>{{ tabs[2].name | translate }}</a></li>\r\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[3].value}\" *ngIf=\"editTab\"><a>{{ tabs[3].name | translate }}</a></li>\r\n </ul>\r\n <div\r\n class=\"img-tabs__canva\"\r\n [ngClass]=\"{'img-tabs__canva--window': stateDisplayed === 'window'}\">\r\n <canva-btn\r\n (showImgUploaded)=\"onShowImgUploaded()\"\r\n [stateDisplayed]=\"stateDisplayed\">\r\n </canva-btn>\r\n </div>\r\n </div>\r\n <div class=\"select-mobile-page\">\r\n <wac-select\r\n [(ngModel)]=\"tabActive\"\r\n name=\"tabs\"\r\n [items]=\"tabs\"\r\n ></wac-select>\r\n </div>\r\n </div>\r\n\r\n <!-- Upload section -->\r\n <div\r\n class=\"columns img-tabs__tabsFirst\"\r\n [ngClass]=\"{\r\n 'img-tabs__tabsFirst--small': stateDisplayed === 'small',\r\n 'img-tabs__tabsFirst--window': stateDisplayed === 'window'\r\n }\"\r\n *ngIf=\"tabActive.value === tabs[0].value\">\r\n <div class=\"column img-tabs__tabsFirst__upload\">\r\n <img-upload\r\n [stateDisplayed]=\"stateDisplayed\"\r\n (imgUploaded)=\"onImgUploaded($event)\"\r\n ></img-upload>\r\n </div>\r\n <div class=\"column img-tabs__tabsFirst__list\" [ngClass]=\"{\r\n 'img-tabs__tabsFirst__list--upload': imgUpload\r\n }\">\r\n <images-view\r\n *ngIf=\"!imgUpload\"\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [listDisplayed]=\"false\"\r\n [multipleImgMode]=\"multipleImgMode\"\r\n [tabDisplayed]=\"tabActive.value\"\r\n [nbRowToShow]=\"2\"\r\n (switchDisplayWindow)=\"switchDisplayWindowImgView()\"\r\n [fullSize]=\"false\">\r\n </images-view>\r\n\r\n\r\n <div [hidden]=\"!imgUpload\">\r\n <upload-list\r\n #imgUploadedImg\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [tabDisplayed]=\"tabActive.value\"\r\n [multipleImgMode]=\"multipleImgMode\"\r\n (switchDisplayWindow)=\"switchDisplayWindowImgView()\"\r\n >\r\n </upload-list>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Images section -->\r\n <div class=\"columns img-tabs__tabsSecond\" *ngIf=\"tabActive.value === tabs[1].value\">\r\n <div class=\"column\">\r\n\r\n <images-view\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [listDisplayed]=\"listDisplayed\"\r\n [multipleImgMode]=\"multipleImgMode\"\r\n [tabDisplayed]=\"tabActive.value\"\r\n (switchDisplayWindow)=\"switchDisplayWindowImgView()\"\r\n [fullSize]=\"true\">\r\n </images-view>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Pexels img section -->\r\n <div class=\"columns img-tabs__tabsThird\" *ngIf=\"tabActive.value === tabs[2].value\">\r\n <div class=\"column\">\r\n <pexels-lib\r\n [stateDisplayed]=\"stateDisplayed\"\r\n (showImgUploaded)=\"onShowImgUploaded()\">\r\n </pexels-lib>\r\n </div>\r\n </div>\r\n\r\n <!--Edition section -->\r\n <div class=\"columns img-tabs__tabsEdit\" *ngIf=\"tabActive.value === tabs[3].value\">\r\n <div class=\"column\">\r\n <img-editor\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [imgToEdit]=\"imgToEdit\"\r\n (editClosed)=\"onEditClosed($event)\">\r\n </img-editor>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n" }]
112
+ }], ctorParameters: () => [{ type: i1.ImgEventService }, { type: i2.AlertService }, { type: i3.Router }], propDecorators: { multipleImgMode: [{
113
+ type: Input
114
+ }], stateDisplayed: [{
115
+ type: Input
116
+ }], listDisplayed: [{
117
+ type: Input
118
+ }], imgManagerClosed: [{
119
+ type: Output
120
+ }], currentTab: [{
121
+ type: Output
122
+ }], switchDisplayWindow: [{
123
+ type: Output
124
+ }], imgUploadedComponent: [{
125
+ type: ViewChild,
126
+ args: ['imgUploadedImg']
127
+ }] } });
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL2ltZy10YWJzL2ltZy10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWctdGFicy9pbWctdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBT3ZDLE1BQU0sT0FBTyxnQkFBZ0I7SUE4RGpCO0lBQ0E7SUFDQTtJQTdEVixlQUFlLEdBQVksS0FBSyxDQUFDO0lBRWpDLGNBQWMsQ0FBaUI7SUFFL0IsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUd0QixnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR3RDLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR2hDLG1CQUFtQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWhFLElBQUksR0FBaUI7UUFDbkI7WUFDRSxJQUFJLEVBQUUsd0JBQXdCO1lBQzlCLEtBQUssRUFBRSxZQUFZO1lBQ25CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsRUFBRSxFQUFFLENBQUM7U0FDTjtRQUNEO1lB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ZTtzQkFEZCxLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLE1BQU07Z0JBSVAsVUFBVTtzQkFEVCxNQUFNO2dCQUlQLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkF1Q1Asb0JBQW9CO3NCQURuQixTQUFTO3VCQUFFLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW1nUGljdHVyZURUTyB9IGZyb20gJy4uLy4uL2R0by9pbWctbWFuYWdlci5kdG8nO1xyXG5pbXBvcnQgeyBVcGxvYWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdXBsb2FkLWxpc3QvdXBsb2FkLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1nRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOd2JTbmFja2JhckNvbmZpZyB9IGZyb20gJ0B3aXppc2hvcC9uZy13aXppLWJ1bG1hJztcclxuaW1wb3J0IHsgc3RhdGVEaXNwbGF5ZWQgfSBmcm9tICcuLi8uLi9kdG8vZXhwb3J0LWR0b3MuYXBpJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTZWxlY3RJdGVtIH0gZnJvbSAnLi4vc2hhcmVkL3NlbGVjdC9zZWxlY3QtaXRlbXMuZHRvJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaW1nLXRhYnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWctdGFicy5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEltZ1RhYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG11bHRpcGxlSW1nTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc3RhdGVEaXNwbGF5ZWQ6IHN0YXRlRGlzcGxheWVkO1xyXG4gIEBJbnB1dCgpXHJcbiAgbGlzdERpc3BsYXllZCA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBpbWdNYW5hZ2VyQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBjdXJyZW50VGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzd2l0Y2hEaXNwbGF5V2luZG93OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHRhYnM6IFNlbGVjdEl0ZW1bXSA9IFtcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0ltZ01hbmFnZXIuVGFicy5hZGRJbWcnLFxyXG4gICAgICB2YWx1ZTogJ2ltZy11cGxvYWQnLFxyXG4gICAgICBzZWxlY3RlZDogdHJ1ZSxcclxuICAgICAgaWQ6IDBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdJbWdNYW5hZ2VyLlRhYnMuaW1nTGliJyxcclxuICAgICAgdmFsdWU6ICdpbWFnZXMtdmlldycsXHJcbiAgICAgIGlkOiAxXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnSW1nTWFuYWdlci5UYWJzLmZyZWVJbWdMaWInLFxyXG4gICAgICB2YWx1ZTogJ3BleGVscy1saWInLFxyXG4gICAgICBpZDogMlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0ltZ01hbmFnZXIuVGFicy5FZGl0b3InLFxyXG4gICAgICB2YWx1ZTogJ2ltZy1lZGl0aW9uJyxcclxuICAgICAgaGlkZTogdHJ1ZSxcclxuICAgICAgaWQ6IDNcclxuICAgIH1cclxuICBdO1xyXG5cclxuICB0YWJBY3RpdmU6IFNlbGVjdEl0ZW0gPSB0aGlzLnRhYnNbMF07XHJcblxyXG4gIC8qIHRhYkFjdGl2ZSA9ICdpbWFnZXMtdmlldyc7XHJcbiAgdGFiczogc3RyaW5nW10gPSBbJ2ltZy11cGxvYWQnLCAnaW1hZ2VzLXZpZXcnLCAncGV4ZWxzLWxpYicsICdpbWctZWRpdGlvbiddOyAqL1xyXG4gIGVkaXRUYWIgPSBmYWxzZTtcclxuXHJcbiAgaW1nVG9FZGl0OiBJbWdQaWN0dXJlRFRPO1xyXG5cclxuICBpbWdVcGxvYWQgPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZCggJ2ltZ1VwbG9hZGVkSW1nJyApXHJcbiAgaW1nVXBsb2FkZWRDb21wb25lbnQ6IFVwbG9hZExpc3RDb21wb25lbnQgO1xyXG5cclxuICBzbmFja0Jhck5ld1ZlcnNpb25Db25maWc6IE53YlNuYWNrYmFyQ29uZmlnID0ge1xyXG4gICAgbWVzc2FnZTogJycsXHJcbiAgICBkdXJhdGlvbjogMzAwMFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpbWdFdmVudEVkaXRTZXJ2aWNlOiBJbWdFdmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogUm91dGVyXHJcbiAgICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW1nRXZlbnRFZGl0U2VydmljZS5nZXRJbWdUb0VkaXRFdmVudExpc3RlbmVyKCkuc3Vic2NyaWJlKGltZ1RvRWRpdCA9PntcclxuICAgICAgdGhpcy50YWJBY3RpdmUgPSB0aGlzLnRhYnNbM107XHJcbiAgICAgIHRoaXMuaW1nVG9FZGl0ID0gaW1nVG9FZGl0O1xyXG4gICAgICB0aGlzLmVkaXRUYWIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmN1cnJlbnRUYWIuZW1pdCh0aGlzLnRhYnNbM10pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVUYWJzKGl0ZW06IFNlbGVjdEl0ZW0pIHtcclxuICAgIHRoaXMuaW1nVXBsb2FkID0gZmFsc2U7XHJcbiAgICB0aGlzLmVkaXRUYWIgPSBmYWxzZTtcclxuICAgIHRoaXMudGFiQWN0aXZlID0gaXRlbTtcclxuICB9XHJcblxyXG4gIG9uSW1nVXBsb2FkZWQoaW1nOiBJbWdQaWN0dXJlRFRPW10pIHtcclxuICAgIHRoaXMuaW1nVXBsb2FkID0gdHJ1ZTtcclxuICAgIHRoaXMuaW1nVXBsb2FkZWRDb21wb25lbnQub25JbWdVcGxvYWRlZChpbWcpO1xyXG4gIH1cclxuXHJcbiAgb25FZGl0Q2xvc2VkKG1zZ0tleTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmVkaXRUYWIgPSBmYWxzZTtcclxuICAgIHRoaXMudG9nZ2xlVGFicyh0aGlzLnRhYnNbMV0pO1xyXG4gICAgaWYgKG1zZ0tleSkge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQobXNnS2V5KTtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFRhYi5lbWl0KCdjbG9zZScpO1xyXG4gIH1cclxuXHJcbiAgb25TaG93SW1nVXBsb2FkZWQoKSB7XHJcbiAgICB0aGlzLnRhYkFjdGl2ZSA9IHRoaXMudGFic1sxXTtcclxuICB9XHJcblxyXG4gIHN3aXRjaERpc3BsYXlXaW5kb3dJbWdWaWV3KCkge1xyXG4gICAgdGhpcy5zd2l0Y2hEaXNwbGF5V2luZG93LmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBzd2l0Y2hSb3V0ZXJMaW5rKGV2ZW50KSB7XHJcblxyXG4gIH1cclxuXHJcbiAgb25JbWdNYW5hZ2VyQ2xvc2VkKCkge1xyXG4gICAgdGhpcy5pbWdNYW5hZ2VyQ2xvc2VkLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaW1nLXRhYnNcIiBbbmdDbGFzc109XCJ7J3NtYWxsJzogc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCd9XCI+XHJcbiAgPGRpdiBjbGFzcz1cIndyYXBwZXItdGFic1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInRhYnNcIlxyXG4gICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICB7XHJcbiAgICAgICAgICAndGFicy0tbm90V2luZG93Jzogc3RhdGVEaXNwbGF5ZWQgIT09ICd3aW5kb3cnLFxyXG4gICAgICAgICAgJ3RhYnMtLW5vdERpc3BsYXllZCc6IHN0YXRlRGlzcGxheWVkID09PSAnd2luZG93JyAmJiB0YWJBY3RpdmUudmFsdWUgPT09IHRhYnNbM10udmFsdWVcclxuICAgICAgICB9XCI+XHJcblxyXG4gICAgICA8dWw+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwiaXMtYWN0aXZlXCIgW25nQ2xhc3NdPVwieydpcy1hY3RpdmUnOiB0YWJBY3RpdmUudmFsdWUgPT09IHRhYnNbMF0udmFsdWV9XCIgKGNsaWNrKT1cInRvZ2dsZVRhYnModGFic1swXSlcIj48YT57eyB0YWJzWzBdLm5hbWUgfCB0cmFuc2xhdGUgfX08L2E+PC9saT5cclxuICAgICAgICA8bGkgW25nQ2xhc3NdPVwieydpcy1hY3RpdmUnOiB0YWJBY3RpdmUudmFsdWUgPT09IHRhYnNbMV0udmFsdWV9XCIgKGNsaWNrKT1cInRvZ2dsZVRhYnModGFic1sxXSlcIj48YT57eyB0YWJzWzFdLm5hbWUgfCB0cmFuc2xhdGUgfX08L2E+PC9saT5cclxuICAgICAgICA8bGkgW25nQ2xhc3NdPVwieydpcy1hY3RpdmUnOiB0YWJBY3RpdmUudmFsdWUgPT09IHRhYnNbMl0udmFsdWV9XCIgKGNsaWNrKT1cInRvZ2dsZVRhYnModGFic1syXSlcIj48YT57eyB0YWJzWzJdLm5hbWUgfCB0cmFuc2xhdGUgfX08L2E+PC9saT5cclxuICAgICAgICA8bGkgW25nQ2xhc3NdPVwieydpcy1hY3RpdmUnOiB0YWJBY3RpdmUudmFsdWUgPT09IHRhYnNbM10udmFsdWV9XCIgKm5nSWY9XCJlZGl0VGFiXCI+PGE+e3sgdGFic1szXS5uYW1lIHwgdHJhbnNsYXRlIH19PC9hPjwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImltZy10YWJzX19jYW52YVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydpbWctdGFic19fY2FudmEtLXdpbmRvdyc6IHN0YXRlRGlzcGxheWVkID09PSAnd2luZG93J31cIj5cclxuICAgICAgICA8Y2FudmEtYnRuXHJcbiAgICAgICAgICAoc2hvd0ltZ1VwbG9hZGVkKT1cIm9uU2hvd0ltZ1VwbG9hZGVkKClcIlxyXG4gICAgICAgICAgW3N0YXRlRGlzcGxheWVkXT1cInN0YXRlRGlzcGxheWVkXCI+XHJcbiAgICAgICAgPC9jYW52YS1idG4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LW1vYmlsZS1wYWdlXCI+XHJcbiAgICAgIDx3YWMtc2VsZWN0XHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWJBY3RpdmVcIlxyXG4gICAgICAgIG5hbWU9XCJ0YWJzXCJcclxuICAgICAgICBbaXRlbXNdPVwidGFic1wiXHJcbiAgICAgID48L3dhYy1zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBVcGxvYWQgc2VjdGlvbiAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNvbHVtbnMgaW1nLXRhYnNfX3RhYnNGaXJzdFwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdpbWctdGFic19fdGFic0ZpcnN0LS1zbWFsbCc6IHN0YXRlRGlzcGxheWVkID09PSAnc21hbGwnLFxyXG4gICAgICAnaW1nLXRhYnNfX3RhYnNGaXJzdC0td2luZG93Jzogc3RhdGVEaXNwbGF5ZWQgPT09ICd3aW5kb3cnXHJcbiAgICB9XCJcclxuICAgICpuZ0lmPVwidGFiQWN0aXZlLnZhbHVlID09PSB0YWJzWzBdLnZhbHVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGltZy10YWJzX190YWJzRmlyc3RfX3VwbG9hZFwiPlxyXG4gICAgICA8aW1nLXVwbG9hZFxyXG4gICAgICAgIFtzdGF0ZURpc3BsYXllZF09XCJzdGF0ZURpc3BsYXllZFwiXHJcbiAgICAgICAgKGltZ1VwbG9hZGVkKT1cIm9uSW1nVXBsb2FkZWQoJGV2ZW50KVwiXHJcbiAgICAgID48L2ltZy11cGxvYWQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gaW1nLXRhYnNfX3RhYnNGaXJzdF9fbGlzdFwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ2ltZy10YWJzX190YWJzRmlyc3RfX2xpc3QtLXVwbG9hZCc6IGltZ1VwbG9hZFxyXG4gICAgfVwiPlxyXG4gICAgICA8aW1hZ2VzLXZpZXdcclxuICAgICAgICAqbmdJZj1cIiFpbWdVcGxvYWRcIlxyXG4gICAgICAgIFtzdGF0ZURpc3BsYXllZF09XCJzdGF0ZURpc3BsYXllZFwiXHJcbiAgICAgICAgW2xpc3REaXNwbGF5ZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgIFttdWx0aXBsZUltZ01vZGVdPVwibXVsdGlwbGVJbWdNb2RlXCJcclxuICAgICAgICBbdGFiRGlzcGxheWVkXT1cInRhYkFjdGl2ZS52YWx1ZVwiXHJcbiAgICAgICAgW25iUm93VG9TaG93XT1cIjJcIlxyXG4gICAgICAgIChzd2l0Y2hEaXNwbGF5V2luZG93KT1cInN3aXRjaERpc3BsYXlXaW5kb3dJbWdWaWV3KClcIlxyXG4gICAgICAgIFtmdWxsU2l6ZV09XCJmYWxzZVwiPlxyXG4gICAgICA8L2ltYWdlcy12aWV3PlxyXG5cclxuXHJcbiAgICAgIDxkaXYgW2hpZGRlbl09XCIhaW1nVXBsb2FkXCI+XHJcbiAgICAgICAgPHVwbG9hZC1saXN0XHJcbiAgICAgICAgICAjaW1nVXBsb2FkZWRJbWdcclxuICAgICAgICAgIFtzdGF0ZURpc3BsYXllZF09XCJzdGF0ZURpc3BsYXllZFwiXHJcbiAgICAgICAgICBbdGFiRGlzcGxheWVkXT1cInRhYkFjdGl2ZS52YWx1ZVwiXHJcbiAgICAgICAgICBbbXVsdGlwbGVJbWdNb2RlXT1cIm11bHRpcGxlSW1nTW9kZVwiXHJcbiAgICAgICAgICAoc3dpdGNoRGlzcGxheVdpbmRvdyk9XCJzd2l0Y2hEaXNwbGF5V2luZG93SW1nVmlldygpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICA8L3VwbG9hZC1saXN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIEltYWdlcyBzZWN0aW9uIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2x1bW5zIGltZy10YWJzX190YWJzU2Vjb25kXCIgKm5nSWY9XCJ0YWJBY3RpdmUudmFsdWUgPT09IHRhYnNbMV0udmFsdWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuXHJcbiAgICAgIDxpbWFnZXMtdmlld1xyXG4gICAgICAgIFtzdGF0ZURpc3BsYXllZF09XCJzdGF0ZURpc3BsYXllZFwiXHJcbiAgICAgICAgW2xpc3REaXNwbGF5ZWRdPVwibGlzdERpc3BsYXllZFwiXHJcbiAgICAgICAgW211bHRpcGxlSW1nTW9kZV09XCJtdWx0aXBsZUltZ01vZGVcIlxyXG4gICAgICAgIFt0YWJEaXNwbGF5ZWRdPVwidGFiQWN0aXZlLnZhbHVlXCJcclxuICAgICAgICAoc3dpdGNoRGlzcGxheVdpbmRvdyk9XCJzd2l0Y2hEaXNwbGF5V2luZG93SW1nVmlldygpXCJcclxuICAgICAgICBbZnVsbFNpemVdPVwidHJ1ZVwiPlxyXG4gICAgICA8L2ltYWdlcy12aWV3PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFBleGVscyBpbWcgc2VjdGlvbiAtLT5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1ucyBpbWctdGFic19fdGFic1RoaXJkXCIgKm5nSWY9XCJ0YWJBY3RpdmUudmFsdWUgPT09IHRhYnNbMl0udmFsdWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgPHBleGVscy1saWJcclxuICAgICAgICBbc3RhdGVEaXNwbGF5ZWRdPVwic3RhdGVEaXNwbGF5ZWRcIlxyXG4gICAgICAgIChzaG93SW1nVXBsb2FkZWQpPVwib25TaG93SW1nVXBsb2FkZWQoKVwiPlxyXG4gICAgICA8L3BleGVscy1saWI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLUVkaXRpb24gc2VjdGlvbiAtLT5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1ucyBpbWctdGFic19fdGFic0VkaXRcIiAqbmdJZj1cInRhYkFjdGl2ZS52YWx1ZSA9PT0gdGFic1szXS52YWx1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICA8aW1nLWVkaXRvclxyXG4gICAgICAgIFtzdGF0ZURpc3BsYXllZF09XCJzdGF0ZURpc3BsYXllZFwiXHJcbiAgICAgICAgW2ltZ1RvRWRpdF09XCJpbWdUb0VkaXRcIlxyXG4gICAgICAgIChlZGl0Q2xvc2VkKT1cIm9uRWRpdENsb3NlZCgkZXZlbnQpXCI+XHJcbiAgICAgIDwvaW1nLWVkaXRvcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,133 @@
1
+ import { Component, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';
2
+ import { forkJoin } from 'rxjs';
3
+ import { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';
4
+ import { AlertService } from '../../services/alert.service';
5
+ import { TranslateService } from '@ngx-translate/core';
6
+ import { UploadService } from '../../services/upload.service';
7
+ import { ApiService } from '../../services/api.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../services/alert.service";
10
+ import * as i2 from "../../services/api.service";
11
+ import * as i3 from "@ngx-translate/core";
12
+ import * as i4 from "../../services/upload.service";
13
+ import * as i5 from "@angular/common";
14
+ import * as i6 from "../loader/loader.component";
15
+ import * as i7 from "../../directives/drag-drop.directive";
16
+ export class ImgUploadComponent {
17
+ alertService;
18
+ apiService;
19
+ translateService;
20
+ uploadService;
21
+ files = [];
22
+ isLoading = false;
23
+ assetsIcon;
24
+ stateDisplayed;
25
+ imgUploaded = new EventEmitter();
26
+ dragAndDropBox;
27
+ loadingText = 'ImgManager.ImgUpload.loading';
28
+ errorUploadingImg = 'ImgManager.ImgUpload.errorUploadingImg';
29
+ errorNotImg = 'ImgManager.ImgUpload.errorNotImg';
30
+ MAX_IMAGE_SIZE = 10000000; // In bytes
31
+ constructor(alertService, apiService, translateService, uploadService) {
32
+ this.alertService = alertService;
33
+ this.apiService = apiService;
34
+ this.translateService = translateService;
35
+ this.uploadService = uploadService;
36
+ }
37
+ ngOnInit() {
38
+ this.assetsIcon = this.getAssets();
39
+ }
40
+ filesChangeByClick(event) {
41
+ this.uploadFile(event.target.files);
42
+ }
43
+ getAssets() {
44
+ return this.apiService.CONFIG.assets_route + "img/icon_picture.svg";
45
+ }
46
+ filesChangeByDragAndDrop(filesList) {
47
+ this.removeDragAndDropStyle();
48
+ this.uploadFile(Array.from(filesList));
49
+ }
50
+ uploadFile(files) {
51
+ if (files && !files.length) {
52
+ return;
53
+ }
54
+ this.isLoading = true;
55
+ const imgToUploadList = [];
56
+ for (const file of files) {
57
+ if (!this.isFileImage(file.type)) {
58
+ this.alertService.openAlert(this.errorNotImg);
59
+ this.isLoading = false;
60
+ continue;
61
+ }
62
+ if (!this.isSizeValid(file.size)) {
63
+ this.alertService.openAlert(this.translateService.instant('ImgManager.ImgUpload.ErrorImgSize', {
64
+ fileName: file.name,
65
+ fileSize: this.getImageSizeInKo(file.size),
66
+ maxFileSize: this.getImageSizeInKo(this.MAX_IMAGE_SIZE)
67
+ }));
68
+ this.isLoading = false;
69
+ continue;
70
+ }
71
+ const formData = new FormData();
72
+ formData.append('image', file, file.name);
73
+ imgToUploadList.push(this.uploadService.uploadFile(formData));
74
+ }
75
+ forkJoin(imgToUploadList).subscribe({
76
+ next: (img) => {
77
+ this.onImgUpload(img),
78
+ this.isLoading = false;
79
+ },
80
+ error: error => {
81
+ if (error?.error?.message && error.statusText !== 'Bad Request') {
82
+ this.alertService.openAlertWithBackendResponse(this.errorUploadingImg, error.error.message);
83
+ }
84
+ else {
85
+ this.alertService.openAlert(this.errorUploadingImg);
86
+ }
87
+ this.isLoading = false;
88
+ }
89
+ });
90
+ }
91
+ /**
92
+ * Send the img uploaded to the tabs components,
93
+ * Then the tabs components add the img to upload list by calling the method onImgUploaded of the upload-list component
94
+ * @param img
95
+ */
96
+ onImgUpload(img) {
97
+ this.imgUploaded.emit(img);
98
+ }
99
+ isFileImage(fileType) {
100
+ return fileType.split('/')[0] === 'image';
101
+ }
102
+ isSizeValid(imageBytesSize) {
103
+ return imageBytesSize < this.MAX_IMAGE_SIZE;
104
+ }
105
+ getImageSizeInKo(size) {
106
+ return Math.round(size / 1024);
107
+ }
108
+ /**
109
+ * Remove the style of the drag and drop box
110
+ * After an img is droped, the box is still grey
111
+ */
112
+ removeDragAndDropStyle() {
113
+ this.dragAndDropBox.nativeElement.style = '';
114
+ }
115
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ImgUploadComponent, deps: [{ token: i1.AlertService }, { token: i2.ApiService }, { token: i3.TranslateService }, { token: i4.UploadService }], target: i0.ɵɵFactoryTarget.Component });
116
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ImgUploadComponent, selector: "img-upload", inputs: { stateDisplayed: "stateDisplayed" }, outputs: { imgUploaded: "imgUploaded" }, viewQueries: [{ propertyName: "dragAndDropBox", first: true, predicate: ["dragAndDropBox"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"img-upload has-text-centered\"\r\n [ngClass]=\"{'img-upload--small': stateDisplayed === 'small'}\"\r\n (click)=\"fileInput.click()\"\r\n appDragDrop\r\n (onFileDropped)=\"filesChangeByDragAndDrop($any($event))\"\r\n #dragAndDropBox\r\n [@easeInOut]=\"'in'\"\r\n>\r\n <input hidden type=\"file\" #fileInput (change)=\"filesChangeByClick($event)\" accept=\"image/*\" multiple >\r\n <div class=\"img-upload__container\" [ngClass]=\"{'img-upload__container--small': stateDisplayed === 'small'}\">\r\n\r\n <div class=\"img-upload__container__wrapper\">\r\n\r\n <div class=\"img-upload__container__loader\" *ngIf=\"isLoading\">\r\n <wz-loader [small]=\"true\" [position]=\"'relative'\"></wz-loader>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!isLoading\">\r\n <div class=\"blueColor img-upload__container__dropImgIconDiv\">\r\n <img *ngIf=\"assetsIcon\" [src]=\"assetsIcon\" alt=\"icon picture\" />\r\n <p>{{ 'ImgManager.ImgUpload.dropImg' | translate }}</p>\r\n </div>\r\n\r\n <p class=\"img-upload__container__or\">{{ 'ImgManager.ImgUpload.or' | translate }}</p>\r\n\r\n <div class=\"img-upload__container__text\">\r\n <i class=\"fal fa-file-upload\"></i>{{ 'ImgManager.ImgUpload.selectImg' | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.LoaderComponent, selector: "wz-loader", inputs: ["text", "small", "position"] }, { kind: "directive", type: i7.DragDropDirective, selector: "[appDragDrop]", outputs: ["onFileDropped"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [
117
+ easeInOut
118
+ ] });
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ImgUploadComponent, decorators: [{
121
+ type: Component,
122
+ args: [{ selector: 'img-upload', animations: [
123
+ easeInOut
124
+ ], template: "<div\r\n class=\"img-upload has-text-centered\"\r\n [ngClass]=\"{'img-upload--small': stateDisplayed === 'small'}\"\r\n (click)=\"fileInput.click()\"\r\n appDragDrop\r\n (onFileDropped)=\"filesChangeByDragAndDrop($any($event))\"\r\n #dragAndDropBox\r\n [@easeInOut]=\"'in'\"\r\n>\r\n <input hidden type=\"file\" #fileInput (change)=\"filesChangeByClick($event)\" accept=\"image/*\" multiple >\r\n <div class=\"img-upload__container\" [ngClass]=\"{'img-upload__container--small': stateDisplayed === 'small'}\">\r\n\r\n <div class=\"img-upload__container__wrapper\">\r\n\r\n <div class=\"img-upload__container__loader\" *ngIf=\"isLoading\">\r\n <wz-loader [small]=\"true\" [position]=\"'relative'\"></wz-loader>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!isLoading\">\r\n <div class=\"blueColor img-upload__container__dropImgIconDiv\">\r\n <img *ngIf=\"assetsIcon\" [src]=\"assetsIcon\" alt=\"icon picture\" />\r\n <p>{{ 'ImgManager.ImgUpload.dropImg' | translate }}</p>\r\n </div>\r\n\r\n <p class=\"img-upload__container__or\">{{ 'ImgManager.ImgUpload.or' | translate }}</p>\r\n\r\n <div class=\"img-upload__container__text\">\r\n <i class=\"fal fa-file-upload\"></i>{{ 'ImgManager.ImgUpload.selectImg' | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n" }]
125
+ }], ctorParameters: () => [{ type: i1.AlertService }, { type: i2.ApiService }, { type: i3.TranslateService }, { type: i4.UploadService }], propDecorators: { stateDisplayed: [{
126
+ type: Input
127
+ }], imgUploaded: [{
128
+ type: Output
129
+ }], dragAndDropBox: [{
130
+ type: ViewChild,
131
+ args: ['dragAndDropBox']
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvaW1nLXVwbG9hZC9pbWctdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWctdXBsb2FkL2ltZy11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBYyxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7QUFTeEQsTUFBTSxPQUFPLGtCQUFrQjtJQWlCbkI7SUFDQTtJQUNBO0lBQ0E7SUFsQlYsS0FBSyxHQUFRLEVBQUUsQ0FBQztJQUNoQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFVBQVUsQ0FBUztJQUNWLGNBQWMsQ0FBaUI7SUFDOUIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFZCxjQUFjLENBQWE7SUFFeEQsV0FBVyxHQUFHLDhCQUE4QixDQUFDO0lBQzdDLGlCQUFpQixHQUFHLHdDQUF3QyxDQUFDO0lBQzdELFdBQVcsR0FBRyxrQ0FBa0MsQ0FBQztJQUVqRCxjQUFjLEdBQUcsUUFBUSxDQUFDLENBQUMsV0FBVztJQUV0QyxZQUNVLFlBQTBCLEVBQzFCLFVBQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQyxhQUE0QjtRQUg1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDakMsQ0FBQztJQUVOLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxzQkFBc0IsQ0FBQztJQUN0RSxDQUFDO0lBRUQsd0JBQXdCLENBQUMsU0FBbUI7UUFDMUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRSxJQUFJLENBQUM7UUFDckIsTUFBTSxlQUFlLEdBQXNCLEVBQUUsQ0FBQztRQUM5QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixTQUFTO1lBQ1gsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsRUFBRTtvQkFDakUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQzFDLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztpQkFDeEQsQ0FBQyxDQUFDLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLFNBQVM7WUFDWCxDQUFDO1lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNsQyxJQUFJLEVBQUUsQ0FBQyxHQUFvQixFQUFFLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO29CQUNyQixJQUFJLENBQUMsU0FBUyxHQUFFLEtBQUssQ0FBQztZQUN4QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNiLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxhQUFhLEVBQUUsQ0FBQztvQkFDaEUsSUFBSSxDQUFDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDOUYsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUN0RCxDQUFDO2dCQUNELElBQUksQ0FBQyxTQUFTLEdBQUUsS0FBSyxDQUFDO1lBQ3hCLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxHQUFvQjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUM7SUFDNUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxjQUFzQjtRQUNoQyxPQUFPLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzlDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILHNCQUFzQjtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQy9DLENBQUM7dUdBakhVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLDJQQ2pCL0IsazNDQWtDQSxzZkRyQmM7WUFDVixTQUFTO1NBQ1Y7OzJGQUVVLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxZQUFZLGNBRVY7d0JBQ1YsU0FBUztxQkFDVjtxS0FPUSxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPIH0gZnJvbSAnLi4vLi4vZHRvL2ltZy1tYW5hZ2VyLmR0byc7XHJcbmltcG9ydCB7IGVhc2VJbk91dCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvZWFzZUluT3V0L2Vhc2UtaW4tb3V0LmFuaW1hdGlvbic7XHJcbmltcG9ydCB7IHN0YXRlRGlzcGxheWVkIH0gZnJvbSAnLi4vLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcGkuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ltZy11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWctdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICBlYXNlSW5PdXRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWdVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBmaWxlczogYW55ID0gW107XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXNzZXRzSWNvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN0YXRlRGlzcGxheWVkOiBzdGF0ZURpc3BsYXllZDtcclxuICBAT3V0cHV0KCkgaW1nVXBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2RyYWdBbmREcm9wQm94JykgZHJhZ0FuZERyb3BCb3g6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGxvYWRpbmdUZXh0ID0gJ0ltZ01hbmFnZXIuSW1nVXBsb2FkLmxvYWRpbmcnO1xyXG4gIGVycm9yVXBsb2FkaW5nSW1nID0gJ0ltZ01hbmFnZXIuSW1nVXBsb2FkLmVycm9yVXBsb2FkaW5nSW1nJztcclxuICBlcnJvck5vdEltZyA9ICdJbWdNYW5hZ2VyLkltZ1VwbG9hZC5lcnJvck5vdEltZyc7XHJcblxyXG4gIE1BWF9JTUFHRV9TSVpFID0gMTAwMDAwMDA7IC8vIEluIGJ5dGVzXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZVxyXG4gICAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXNzZXRzSWNvbiA9IHRoaXMuZ2V0QXNzZXRzKCk7XHJcbiAgfVxyXG5cclxuICBmaWxlc0NoYW5nZUJ5Q2xpY2soZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy51cGxvYWRGaWxlKGV2ZW50LnRhcmdldC5maWxlcyk7XHJcbiAgfVxyXG5cclxuICBnZXRBc3NldHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLkNPTkZJRy5hc3NldHNfcm91dGUgKyBcImltZy9pY29uX3BpY3R1cmUuc3ZnXCI7XHJcbiAgfVxyXG5cclxuICBmaWxlc0NoYW5nZUJ5RHJhZ0FuZERyb3AoZmlsZXNMaXN0OiBGaWxlTGlzdCkge1xyXG4gICAgdGhpcy5yZW1vdmVEcmFnQW5kRHJvcFN0eWxlKCk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGUoQXJyYXkuZnJvbShmaWxlc0xpc3QpKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZmlsZXM6IEZpbGVbXSkge1xyXG4gICAgaWYgKGZpbGVzICYmICFmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNMb2FkaW5nID10cnVlO1xyXG4gICAgY29uc3QgaW1nVG9VcGxvYWRMaXN0OiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XHJcbiAgICAgIGlmKCF0aGlzLmlzRmlsZUltYWdlKGZpbGUudHlwZSkpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvck5vdEltZyk7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLmlzU2l6ZVZhbGlkKGZpbGUuc2l6ZSkpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQoXHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnSW1nTWFuYWdlci5JbWdVcGxvYWQuRXJyb3JJbWdTaXplJywge1xyXG4gICAgICAgICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICAgICAgICBmaWxlU2l6ZTogdGhpcy5nZXRJbWFnZVNpemVJbktvKGZpbGUuc2l6ZSksXHJcbiAgICAgICAgICAgIG1heEZpbGVTaXplOiB0aGlzLmdldEltYWdlU2l6ZUluS28odGhpcy5NQVhfSU1BR0VfU0laRSlcclxuICAgICAgICAgIH0pKTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ltYWdlJywgZmlsZSwgZmlsZS5uYW1lKTtcclxuICAgICAgaW1nVG9VcGxvYWRMaXN0LnB1c2godGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZEZpbGUoZm9ybURhdGEpKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JrSm9pbihpbWdUb1VwbG9hZExpc3QpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChpbWc6IEltZ1BpY3R1cmVEVE9bXSkgPT4ge1xyXG4gICAgICAgIHRoaXMub25JbWdVcGxvYWQoaW1nKSxcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9ZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yPy5lcnJvcj8ubWVzc2FnZSAmJiBlcnJvci5zdGF0dXNUZXh0ICE9PSAnQmFkIFJlcXVlc3QnKSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnRXaXRoQmFja2VuZFJlc3BvbnNlKHRoaXMuZXJyb3JVcGxvYWRpbmdJbWcsIGVycm9yLmVycm9yLm1lc3NhZ2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvclVwbG9hZGluZ0ltZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID1mYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmQgdGhlIGltZyB1cGxvYWRlZCB0byB0aGUgdGFicyBjb21wb25lbnRzLFxyXG4gICAqIFRoZW4gdGhlIHRhYnMgY29tcG9uZW50cyBhZGQgdGhlIGltZyB0byB1cGxvYWQgbGlzdCBieSBjYWxsaW5nIHRoZSBtZXRob2Qgb25JbWdVcGxvYWRlZCBvZiB0aGUgdXBsb2FkLWxpc3QgY29tcG9uZW50XHJcbiAgICogQHBhcmFtIGltZ1xyXG4gICAqL1xyXG4gIG9uSW1nVXBsb2FkKGltZzogSW1nUGljdHVyZURUT1tdKSB7XHJcbiAgICB0aGlzLmltZ1VwbG9hZGVkLmVtaXQoaW1nKTtcclxuICB9XHJcblxyXG4gIGlzRmlsZUltYWdlKGZpbGVUeXBlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBmaWxlVHlwZS5zcGxpdCgnLycpWzBdID09PSAnaW1hZ2UnO1xyXG4gIH1cclxuXHJcbiAgaXNTaXplVmFsaWQoaW1hZ2VCeXRlc1NpemU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGltYWdlQnl0ZXNTaXplIDwgdGhpcy5NQVhfSU1BR0VfU0laRTtcclxuICB9XHJcblxyXG4gIGdldEltYWdlU2l6ZUluS28oc2l6ZTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChzaXplIC8gMTAyNCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgdGhlIHN0eWxlIG9mIHRoZSBkcmFnIGFuZCBkcm9wIGJveFxyXG4gICAqIEFmdGVyIGFuIGltZyBpcyBkcm9wZWQsIHRoZSBib3ggaXMgc3RpbGwgZ3JleVxyXG4gICAqL1xyXG4gIHJlbW92ZURyYWdBbmREcm9wU3R5bGUoKSB7XHJcbiAgICB0aGlzLmRyYWdBbmREcm9wQm94Lm5hdGl2ZUVsZW1lbnQuc3R5bGUgPSAnJztcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaW1nLXVwbG9hZCBoYXMtdGV4dC1jZW50ZXJlZFwiXHJcbiAgW25nQ2xhc3NdPVwieydpbWctdXBsb2FkLS1zbWFsbCc6IHN0YXRlRGlzcGxheWVkID09PSAnc21hbGwnfVwiXHJcbiAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCJcclxuICBhcHBEcmFnRHJvcFxyXG4gIChvbkZpbGVEcm9wcGVkKT1cImZpbGVzQ2hhbmdlQnlEcmFnQW5kRHJvcCgkYW55KCRldmVudCkpXCJcclxuICAjZHJhZ0FuZERyb3BCb3hcclxuICBbQGVhc2VJbk91dF09XCInaW4nXCJcclxuPlxyXG4gIDxpbnB1dCBoaWRkZW4gdHlwZT1cImZpbGVcIiAjZmlsZUlucHV0IChjaGFuZ2UpPVwiZmlsZXNDaGFuZ2VCeUNsaWNrKCRldmVudClcIiBhY2NlcHQ9XCJpbWFnZS8qXCIgbXVsdGlwbGUgPlxyXG4gIDxkaXYgY2xhc3M9XCJpbWctdXBsb2FkX19jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J2ltZy11cGxvYWRfX2NvbnRhaW5lci0tc21hbGwnOiBzdGF0ZURpc3BsYXllZCA9PT0gJ3NtYWxsJ31cIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaW1nLXVwbG9hZF9fY29udGFpbmVyX193cmFwcGVyXCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW1nLXVwbG9hZF9fY29udGFpbmVyX19sb2FkZXJcIiAqbmdJZj1cImlzTG9hZGluZ1wiPlxyXG4gICAgICAgIDx3ei1sb2FkZXIgW3NtYWxsXT1cInRydWVcIiBbcG9zaXRpb25dPVwiJ3JlbGF0aXZlJ1wiPjwvd3otbG9hZGVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJsdWVDb2xvciBpbWctdXBsb2FkX19jb250YWluZXJfX2Ryb3BJbWdJY29uRGl2XCI+XHJcbiAgICAgICAgICA8aW1nICpuZ0lmPVwiYXNzZXRzSWNvblwiIFtzcmNdPVwiYXNzZXRzSWNvblwiIGFsdD1cImljb24gcGljdHVyZVwiIC8+XHJcbiAgICAgICAgICA8cD57eyAnSW1nTWFuYWdlci5JbWdVcGxvYWQuZHJvcEltZycgfCB0cmFuc2xhdGUgfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxwIGNsYXNzPVwiaW1nLXVwbG9hZF9fY29udGFpbmVyX19vclwiPnt7ICdJbWdNYW5hZ2VyLkltZ1VwbG9hZC5vcicgfCB0cmFuc2xhdGUgfX08L3A+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbWctdXBsb2FkX19jb250YWluZXJfX3RleHRcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLWZpbGUtdXBsb2FkXCI+PC9pPnt7ICdJbWdNYW5hZ2VyLkltZ1VwbG9hZC5zZWxlY3RJbWcnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,21 @@
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class LoaderComponent {
5
+ text;
6
+ small = false;
7
+ position;
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: LoaderComponent, selector: "wz-loader", inputs: { text: "text", small: "small", position: "position" }, ngImport: i0, template: "<div class=\"wz-loader\" [ngClass]=\"{'is-small': small}\" [ngStyle]=\"{'position': position}\">\n <div class='loader loader1'>\n <div>\n <div>\n <div>\n <div>\n <div>\n <div></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <p class=\"is-textcentered\" *ngIf=\"text\" [innerHTML]=\"text\"></p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LoaderComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'wz-loader', encapsulation: ViewEncapsulation.None, template: "<div class=\"wz-loader\" [ngClass]=\"{'is-small': small}\" [ngStyle]=\"{'position': position}\">\n <div class='loader loader1'>\n <div>\n <div>\n <div>\n <div>\n <div>\n <div></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <p class=\"is-textcentered\" *ngIf=\"text\" [innerHTML]=\"text\"></p>\n</div>\n" }]
14
+ }], propDecorators: { text: [{
15
+ type: Input
16
+ }], small: [{
17
+ type: Input
18
+ }], position: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPcEUsTUFBTSxPQUFPLGVBQWU7SUFFMUIsSUFBSSxDQUFTO0lBRWIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVkLFFBQVEsQ0FBUzt1R0FOTixlQUFlOzJGQUFmLGVBQWUsaUhDUDVCLHFaQWdCQTs7MkZEVGEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxXQUFXLGlCQUVOLGlCQUFpQixDQUFDLElBQUk7OEJBSXJDLElBQUk7c0JBREgsS0FBSztnQkFHTixLQUFLO3NCQURKLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3otbG9hZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTG9hZGVyQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgdGV4dDogc3RyaW5nO1xuICBASW5wdXQoKVxuICBzbWFsbCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBwb3NpdGlvbjogc3RyaW5nO1xufVxuIiwiPGRpdiBjbGFzcz1cInd6LWxvYWRlclwiIFtuZ0NsYXNzXT1cInsnaXMtc21hbGwnOiBzbWFsbH1cIiBbbmdTdHlsZV09XCJ7J3Bvc2l0aW9uJzogcG9zaXRpb259XCI+XG4gIDxkaXYgY2xhc3M9J2xvYWRlciBsb2FkZXIxJz5cbiAgICA8ZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHAgY2xhc3M9XCJpcy10ZXh0Y2VudGVyZWRcIiAqbmdJZj1cInRleHRcIiBbaW5uZXJIVE1MXT1cInRleHRcIj48L3A+XG48L2Rpdj5cbiJdfQ==