@wizishop/img-manager 18.2.0 → 18.2.2-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/esm2022/lib/components/canva-btn/canva-btn.component.mjs +73 -0
  2. package/esm2022/lib/components/images-view/images-actions-handler.mjs +168 -0
  3. package/esm2022/lib/components/images-view/images-view.component.mjs +391 -0
  4. package/esm2022/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +70 -0
  5. package/esm2022/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +73 -0
  6. package/esm2022/lib/components/images-view/table-view/table-view.component.mjs +48 -0
  7. package/esm2022/lib/components/img-editor/cropper/cropper.component.mjs +313 -0
  8. package/esm2022/lib/components/img-editor/img-editor.component.mjs +129 -0
  9. package/esm2022/lib/components/img-editor/info-section/info-section.component.mjs +58 -0
  10. package/esm2022/lib/components/img-selection/img-selection.component.mjs +58 -0
  11. package/esm2022/lib/components/img-tabs/img-tabs.component.mjs +128 -0
  12. package/esm2022/lib/components/img-upload/img-upload.component.mjs +133 -0
  13. package/esm2022/lib/components/loader/loader.component.mjs +21 -0
  14. package/esm2022/lib/components/pexels-lib/pexels-lib.component.mjs +211 -0
  15. package/esm2022/lib/components/shared/alert/alert.component.mjs +26 -0
  16. package/esm2022/lib/components/shared/checkbox/checkbox.component.mjs +56 -0
  17. package/esm2022/lib/components/shared/dropdown/dropdown.component.mjs +21 -0
  18. package/esm2022/lib/components/shared/input-search/input-search.component.mjs +53 -0
  19. package/esm2022/lib/components/shared/pagination/page-selector/page-selector.component.mjs +50 -0
  20. package/esm2022/lib/components/shared/pagination/pagination.component.mjs +49 -0
  21. package/esm2022/lib/components/shared/select/select.component.mjs +117 -0
  22. package/esm2022/lib/components/shared/table/table.component.mjs +124 -0
  23. package/esm2022/lib/components/upload-list/upload-list.component.mjs +85 -0
  24. package/esm2022/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +41 -0
  25. package/{esm2020 → esm2022}/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +5 -5
  26. package/esm2022/lib/directives/auto-hide.directive.mjs +51 -0
  27. package/esm2022/lib/directives/copy-to-clipboard.directive.mjs +36 -0
  28. package/esm2022/lib/directives/drag-drop.directive.mjs +55 -0
  29. package/esm2022/lib/directives/loading.directive.mjs +43 -0
  30. package/esm2022/lib/directives/table/checkBoxRow.directive.mjs +130 -0
  31. package/esm2022/lib/directives/table/column.directive.mjs +50 -0
  32. package/esm2022/lib/directives/table/columnHeader.directive.mjs +215 -0
  33. package/esm2022/lib/directives/table/raw.directive.mjs +34 -0
  34. package/esm2022/lib/directives/zindex-toggle.directive.mjs +45 -0
  35. package/esm2022/lib/dto/canva-create-design.dto.mjs +9 -0
  36. package/esm2022/lib/dto/canva.dto.mjs +6 -0
  37. package/esm2022/lib/dto/config/apis/api.dto.mjs +11 -0
  38. package/esm2022/lib/dto/config/external/external-config.dto.mjs +5 -0
  39. package/esm2022/lib/dto/wizi-block-media.dto.mjs +7 -0
  40. package/esm2022/lib/pipes/images/img-src.pipe.mjs +29 -0
  41. package/{esm2020 → esm2022}/lib/pipes/number-to-array.pipe.mjs +4 -4
  42. package/esm2022/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +28 -0
  43. package/esm2022/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +53 -0
  44. package/esm2022/lib/pipes/pagination/text/custom-text.pipe.mjs +36 -0
  45. package/esm2022/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +25 -0
  46. package/{esm2020 → esm2022}/lib/pipes/select/select-filters.pipe.mjs +4 -4
  47. package/esm2022/lib/services/alert.service.mjs +53 -0
  48. package/{esm2020 → esm2022}/lib/services/api.service.mjs +4 -4
  49. package/esm2022/lib/services/canva.service.mjs +165 -0
  50. package/esm2022/lib/services/config/img-cdn.service.mjs +21 -0
  51. package/esm2022/lib/services/dom.service.mjs +31 -0
  52. package/{esm2020 → esm2022}/lib/services/icon.service.mjs +4 -4
  53. package/{esm2020 → esm2022}/lib/services/image-not-found.service.mjs +4 -4
  54. package/esm2022/lib/services/img-event.service.mjs +33 -0
  55. package/esm2022/lib/services/img-manager.service.mjs +134 -0
  56. package/esm2022/lib/services/img-selection.service.mjs +75 -0
  57. package/esm2022/lib/services/pexels.service.mjs +66 -0
  58. package/esm2022/lib/services/rename-picture.service.mjs +66 -0
  59. package/esm2022/lib/services/snackbar.service.mjs +67 -0
  60. package/esm2022/lib/services/table/filters-table.service.mjs +61 -0
  61. package/esm2022/lib/services/upload.service.mjs +20 -0
  62. package/esm2022/lib/services/user-settings.service.mjs +23 -0
  63. package/esm2022/lib/wz-img-manager.component.mjs +209 -0
  64. package/{esm2020 → esm2022}/lib/wz-img-manager.module.mjs +61 -61
  65. package/{fesm2020 → fesm2022}/wizishop-img-manager.mjs +1018 -830
  66. package/fesm2022/wizishop-img-manager.mjs.map +1 -0
  67. package/lib/components/canva-btn/canva-btn.component.d.ts +1 -1
  68. package/lib/components/images-view/images-actions-handler.d.ts +2 -1
  69. package/lib/components/images-view/images-view.component.d.ts +4 -9
  70. package/lib/components/images-view/mosaic-view/img-card/img-card.component.d.ts +1 -1
  71. package/lib/components/images-view/mosaic-view/mosaic-view.component.d.ts +1 -1
  72. package/lib/components/img-editor/cropper/cropper.component.d.ts +1 -1
  73. package/lib/components/img-editor/img-editor.component.d.ts +1 -1
  74. package/lib/components/img-editor/info-section/info-section.component.d.ts +1 -1
  75. package/lib/components/img-selection/img-selection.component.d.ts +4 -5
  76. package/lib/components/img-tabs/img-tabs.component.d.ts +1 -1
  77. package/lib/components/img-upload/img-upload.component.d.ts +1 -1
  78. package/lib/components/loader/loader.component.d.ts +1 -1
  79. package/lib/components/pexels-lib/pexels-lib.component.d.ts +1 -1
  80. package/lib/components/shared/alert/alert.component.d.ts +1 -1
  81. package/lib/components/shared/checkbox/checkbox.component.d.ts +1 -1
  82. package/lib/components/shared/dropdown/dropdown.component.d.ts +1 -1
  83. package/lib/components/shared/input-search/input-search.component.d.ts +1 -1
  84. package/lib/components/shared/pagination/page-selector/page-selector.component.d.ts +1 -1
  85. package/lib/components/shared/pagination/pagination.component.d.ts +1 -1
  86. package/lib/components/shared/select/select.component.d.ts +1 -1
  87. package/lib/components/shared/table/table.component.d.ts +1 -1
  88. package/lib/components/upload-list/upload-list.component.d.ts +1 -1
  89. package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts +1 -1
  90. package/lib/directives/auto-hide.directive.d.ts +1 -1
  91. package/lib/directives/copy-to-clipboard.directive.d.ts +1 -1
  92. package/lib/directives/table/checkBoxRow.directive.d.ts +1 -1
  93. package/lib/directives/table/column.directive.d.ts +1 -1
  94. package/lib/directives/table/columnHeader.directive.d.ts +1 -1
  95. package/lib/directives/zindex-toggle.directive.d.ts +1 -1
  96. package/lib/wz-img-manager.component.d.ts +3 -3
  97. package/package.json +6 -12
  98. package/wizishop-img-manager-18.2.2-beta.tgz +0 -0
  99. package/wz-img-manager.scss +77 -60
  100. package/esm2020/lib/components/canva-btn/canva-btn.component.mjs +0 -67
  101. package/esm2020/lib/components/images-view/images-actions-handler.mjs +0 -154
  102. package/esm2020/lib/components/images-view/images-view.component.mjs +0 -369
  103. package/esm2020/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +0 -66
  104. package/esm2020/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +0 -71
  105. package/esm2020/lib/components/images-view/table-view/table-view.component.mjs +0 -48
  106. package/esm2020/lib/components/img-editor/cropper/cropper.component.mjs +0 -307
  107. package/esm2020/lib/components/img-editor/img-editor.component.mjs +0 -124
  108. package/esm2020/lib/components/img-editor/info-section/info-section.component.mjs +0 -54
  109. package/esm2020/lib/components/img-selection/img-selection.component.mjs +0 -53
  110. package/esm2020/lib/components/img-tabs/img-tabs.component.mjs +0 -122
  111. package/esm2020/lib/components/img-upload/img-upload.component.mjs +0 -126
  112. package/esm2020/lib/components/loader/loader.component.mjs +0 -21
  113. package/esm2020/lib/components/pexels-lib/pexels-lib.component.mjs +0 -203
  114. package/esm2020/lib/components/shared/alert/alert.component.mjs +0 -27
  115. package/esm2020/lib/components/shared/checkbox/checkbox.component.mjs +0 -52
  116. package/esm2020/lib/components/shared/dropdown/dropdown.component.mjs +0 -21
  117. package/esm2020/lib/components/shared/input-search/input-search.component.mjs +0 -54
  118. package/esm2020/lib/components/shared/pagination/page-selector/page-selector.component.mjs +0 -49
  119. package/esm2020/lib/components/shared/pagination/pagination.component.mjs +0 -49
  120. package/esm2020/lib/components/shared/select/select.component.mjs +0 -110
  121. package/esm2020/lib/components/shared/table/table.component.mjs +0 -116
  122. package/esm2020/lib/components/upload-list/upload-list.component.mjs +0 -79
  123. package/esm2020/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +0 -37
  124. package/esm2020/lib/directives/auto-hide.directive.mjs +0 -48
  125. package/esm2020/lib/directives/copy-to-clipboard.directive.mjs +0 -37
  126. package/esm2020/lib/directives/drag-drop.directive.mjs +0 -57
  127. package/esm2020/lib/directives/loading.directive.mjs +0 -42
  128. package/esm2020/lib/directives/table/checkBoxRow.directive.mjs +0 -114
  129. package/esm2020/lib/directives/table/column.directive.mjs +0 -45
  130. package/esm2020/lib/directives/table/columnHeader.directive.mjs +0 -204
  131. package/esm2020/lib/directives/table/raw.directive.mjs +0 -31
  132. package/esm2020/lib/directives/zindex-toggle.directive.mjs +0 -42
  133. package/esm2020/lib/dto/canva-create-design.dto.mjs +0 -4
  134. package/esm2020/lib/dto/canva.dto.mjs +0 -4
  135. package/esm2020/lib/dto/config/apis/api.dto.mjs +0 -9
  136. package/esm2020/lib/dto/config/external/external-config.dto.mjs +0 -3
  137. package/esm2020/lib/dto/wizi-block-media.dto.mjs +0 -3
  138. package/esm2020/lib/pipes/images/img-src.pipe.mjs +0 -28
  139. package/esm2020/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +0 -28
  140. package/esm2020/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +0 -53
  141. package/esm2020/lib/pipes/pagination/text/custom-text.pipe.mjs +0 -35
  142. package/esm2020/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +0 -25
  143. package/esm2020/lib/services/alert.service.mjs +0 -50
  144. package/esm2020/lib/services/canva.service.mjs +0 -159
  145. package/esm2020/lib/services/config/img-cdn.service.mjs +0 -23
  146. package/esm2020/lib/services/dom.service.mjs +0 -33
  147. package/esm2020/lib/services/img-event.service.mjs +0 -35
  148. package/esm2020/lib/services/img-manager.service.mjs +0 -136
  149. package/esm2020/lib/services/img-selection.service.mjs +0 -76
  150. package/esm2020/lib/services/pexels.service.mjs +0 -62
  151. package/esm2020/lib/services/rename-picture.service.mjs +0 -63
  152. package/esm2020/lib/services/snackbar.service.mjs +0 -64
  153. package/esm2020/lib/services/table/filters-table.service.mjs +0 -60
  154. package/esm2020/lib/services/upload.service.mjs +0 -22
  155. package/esm2020/lib/services/user-settings.service.mjs +0 -25
  156. package/esm2020/lib/wz-img-manager.component.mjs +0 -192
  157. package/fesm2015/wizishop-img-manager.mjs +0 -4035
  158. package/fesm2015/wizishop-img-manager.mjs.map +0 -1
  159. package/fesm2020/wizishop-img-manager.mjs.map +0 -1
  160. package/wizishop-img-manager-18.2.0.tgz +0 -0
  161. /package/{esm2020 → esm2022}/lib/animations/easeInOut/ease-in-out.animation.mjs +0 -0
  162. /package/{esm2020 → esm2022}/lib/animations/insertRemove/insert-remove.animation.mjs +0 -0
  163. /package/{esm2020 → esm2022}/lib/animations/listAnnimation/list.animation.mjs +0 -0
  164. /package/{esm2020 → esm2022}/lib/components/shared/select/call-to-action.model.mjs +0 -0
  165. /package/{esm2020 → esm2022}/lib/components/shared/select/select-items.dto.mjs +0 -0
  166. /package/{esm2020 → esm2022}/lib/dto/ImgManagerDisplayConfig.dto.mjs +0 -0
  167. /package/{esm2020 → esm2022}/lib/dto/config/image-cdn/image-cdn-config.dto.mjs +0 -0
  168. /package/{esm2020 → esm2022}/lib/dto/config/img-manager.mjs +0 -0
  169. /package/{esm2020 → esm2022}/lib/dto/export-dtos.api.mjs +0 -0
  170. /package/{esm2020 → esm2022}/lib/dto/img-editor-config.dto.mjs +0 -0
  171. /package/{esm2020 → esm2022}/lib/dto/img-manager.dto.mjs +0 -0
  172. /package/{esm2020 → esm2022}/lib/dto/pexels-img.dto.mjs +0 -0
  173. /package/{esm2020 → esm2022}/lib/dto/picture-name-update.dto.mjs +0 -0
  174. /package/{esm2020 → esm2022}/lib/dto/stateDisplayed.dto.mjs +0 -0
  175. /package/{esm2020 → esm2022}/lib/dto/tabDisplayed.dto.mjs +0 -0
  176. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  177. /package/{esm2020 → esm2022}/wizishop-img-manager.mjs +0 -0
@@ -1,63 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { AlertService } from './alert.service';
3
- import { ApiService } from './api.service';
4
- import { ImgManagerService } from './img-manager.service';
5
- import { tap } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./api.service";
8
- import * as i2 from "./alert.service";
9
- import * as i3 from "./img-manager.service";
10
- export class RenamePictureService {
11
- constructor(apiService, alertService, imgManagerService) {
12
- this.apiService = apiService;
13
- this.alertService = alertService;
14
- this.imgManagerService = imgManagerService;
15
- this.picturesList = [];
16
- this.errorRenameImg = 'ImgManager.ImgList.errorRenameImg';
17
- this.msgSavingImgName = 'ImgManager.ImgLib.savingImgName';
18
- this.msgImgNameSaved = 'ImgManager.ImgLib.imgNameSaved';
19
- }
20
- setPicturesList(picturesList) {
21
- this.picturesList = picturesList;
22
- }
23
- renamePicture(pictureNameUpdate) {
24
- const picture = this.getPictureById(pictureNameUpdate.id);
25
- if (!picture) {
26
- this.alertService.openAlert(this.errorRenameImg);
27
- return;
28
- }
29
- this.alertService.openAlert(this.msgSavingImgName);
30
- this.apiService
31
- .changeImgName(picture.display_name, picture.id_file).pipe(tap(() => this.imgManagerService.refreshImageList$.next()))
32
- .subscribe({
33
- next: (data) => {
34
- picture.display_name = data.display_name;
35
- this.alertService.openAlert(this.msgImgNameSaved);
36
- },
37
- error: () => {
38
- picture.display_name = pictureNameUpdate.previousName;
39
- this.alertService.openAlert(this.errorRenameImg);
40
- }
41
- });
42
- }
43
- changeImageName(name, idFile) {
44
- return this.apiService.changeImgName(name, idFile).pipe(tap(() => this.imgManagerService.refreshImageList$.next()));
45
- }
46
- getPictureById(id_file) {
47
- if (!this.picturesList) {
48
- return;
49
- }
50
- for (const picture of this.picturesList) {
51
- if (picture.id_file === id_file) {
52
- return picture;
53
- }
54
- }
55
- return null;
56
- }
57
- }
58
- RenamePictureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RenamePictureService, deps: [{ token: i1.ApiService }, { token: i2.AlertService }, { token: i3.ImgManagerService }], target: i0.ɵɵFactoryTarget.Injectable });
59
- RenamePictureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RenamePictureService });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RenamePictureService, decorators: [{
61
- type: Injectable
62
- }], ctorParameters: function () { return [{ type: i1.ApiService }, { type: i2.AlertService }, { type: i3.ImgManagerService }]; } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuYW1lLXBpY3R1cmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvcmVuYW1lLXBpY3R1cmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBRzNCLE1BQU0sT0FBTyxvQkFBb0I7SUFPN0IsWUFDVSxVQUFzQixFQUN0QixZQUEwQixFQUMxQixpQkFBb0M7UUFGcEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBUnRDLGlCQUFZLEdBQW9CLEVBQUUsQ0FBQztRQUNuQyxtQkFBYyxHQUFHLG1DQUFtQyxDQUFDO1FBQ3JELHFCQUFnQixHQUFHLGlDQUFpQyxDQUFDO1FBQ3JELG9CQUFlLEdBQUcsZ0NBQWdDLENBQUM7SUFPMUQsQ0FBQztJQUVGLGVBQWUsQ0FBQyxZQUE2QjtRQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNyQyxDQUFDO0lBRUQsYUFBYSxDQUFDLGlCQUFvQztRQUM5QyxNQUFNLE9BQU8sR0FBa0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxVQUFVO2FBQ1osYUFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDeEQsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUMzRDthQUNBLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLElBQW1CLEVBQUUsRUFBRTtnQkFDNUIsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFJLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNuRCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZLEVBQUUsTUFBYztRQUMxQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3JELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDM0QsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQUMsT0FBZTtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixPQUFPO1NBQ1I7UUFFRCxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdkMsSUFBRyxPQUFPLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRTtnQkFDOUIsT0FBTyxPQUFPLENBQUM7YUFDaEI7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O2tIQTNEUSxvQkFBb0I7c0hBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPIH0gZnJvbSAnLi4vZHRvL2ltZy1tYW5hZ2VyLmR0byc7XHJcbmltcG9ydCB7IFBpY3R1cmVOYW1lVXBkYXRlIH0gZnJvbSAnLi4vZHRvL3BpY3R1cmUtbmFtZS11cGRhdGUuZHRvJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbWdNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vaW1nLW1hbmFnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUmVuYW1lUGljdHVyZVNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgcGljdHVyZXNMaXN0OiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcclxuICAgIHByaXZhdGUgZXJyb3JSZW5hbWVJbWcgPSAnSW1nTWFuYWdlci5JbWdMaXN0LmVycm9yUmVuYW1lSW1nJztcclxuICAgIHByaXZhdGUgbXNnU2F2aW5nSW1nTmFtZSA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5zYXZpbmdJbWdOYW1lJztcclxuICAgIHByaXZhdGUgbXNnSW1nTmFtZVNhdmVkID0gJ0ltZ01hbmFnZXIuSW1nTGliLmltZ05hbWVTYXZlZCc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBpbWdNYW5hZ2VyU2VydmljZTogSW1nTWFuYWdlclNlcnZpY2VcclxuICAgIClcclxuICAgIHt9XHJcblxyXG4gICAgc2V0UGljdHVyZXNMaXN0KHBpY3R1cmVzTGlzdDogSW1nUGljdHVyZURUT1tdKSB7IC8vIHRvZG8gZ2V0IGZyb20gaW1nIG1hbmFnZXIgc2VydmljZVxyXG4gICAgICAgIHRoaXMucGljdHVyZXNMaXN0ID0gcGljdHVyZXNMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmFtZVBpY3R1cmUocGljdHVyZU5hbWVVcGRhdGU6IFBpY3R1cmVOYW1lVXBkYXRlKSB7XHJcbiAgICAgICAgY29uc3QgcGljdHVyZTogSW1nUGljdHVyZURUTyA9IHRoaXMuZ2V0UGljdHVyZUJ5SWQocGljdHVyZU5hbWVVcGRhdGUuaWQpO1xyXG4gICAgICAgIGlmICghcGljdHVyZSkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JSZW5hbWVJbWcpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5tc2dTYXZpbmdJbWdOYW1lKTtcclxuICAgICAgICB0aGlzLmFwaVNlcnZpY2VcclxuICAgICAgICAgIC5jaGFuZ2VJbWdOYW1lKHBpY3R1cmUuZGlzcGxheV9uYW1lLCBwaWN0dXJlLmlkX2ZpbGUpLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmltZ01hbmFnZXJTZXJ2aWNlLnJlZnJlc2hJbWFnZUxpc3QkLm5leHQoKSlcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAoZGF0YTogSW1nUGljdHVyZURUTykgPT4ge1xyXG4gICAgICAgICAgICAgIHBpY3R1cmUuZGlzcGxheV9uYW1lID0gZGF0YS5kaXNwbGF5X25hbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMubXNnSW1nTmFtZVNhdmVkKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6ICgpICA9PiB7XHJcbiAgICAgICAgICAgICAgcGljdHVyZS5kaXNwbGF5X25hbWUgPSBwaWN0dXJlTmFtZVVwZGF0ZS5wcmV2aW91c05hbWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JSZW5hbWVJbWcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VJbWFnZU5hbWUobmFtZTogc3RyaW5nLCBpZEZpbGU6IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmNoYW5nZUltZ05hbWUobmFtZSwgaWRGaWxlKS5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmltZ01hbmFnZXJTZXJ2aWNlLnJlZnJlc2hJbWFnZUxpc3QkLm5leHQoKSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFBpY3R1cmVCeUlkKGlkX2ZpbGU6IHN0cmluZyk6IEltZ1BpY3R1cmVEVE8ge1xyXG4gICAgICAgIGlmICghdGhpcy5waWN0dXJlc0xpc3QpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgcGljdHVyZSBvZiB0aGlzLnBpY3R1cmVzTGlzdCkge1xyXG4gICAgICAgICAgaWYocGljdHVyZS5pZF9maWxlID09PSBpZF9maWxlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwaWN0dXJlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG59Il19
@@ -1,64 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { NwbSnackbarService } from '@wizishop/ng-wizi-bulma';
3
- import { TranslateService } from '@ngx-translate/core';
4
- import { Observable } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@wizishop/ng-wizi-bulma";
7
- import * as i2 from "@ngx-translate/core";
8
- export class SnackBarService {
9
- constructor(nwbSnackbar, translateService) {
10
- this.nwbSnackbar = nwbSnackbar;
11
- this.translateService = translateService;
12
- this.actionMsg = 'ImgManager.snackBar.action';
13
- this.snackBarConfigAction = {
14
- message: '',
15
- duration: 5000
16
- };
17
- this.snackBarConfig = {
18
- message: '',
19
- duration: 5000
20
- };
21
- }
22
- openSnackBar(msgKey) {
23
- this.closePreviousSnackbar();
24
- this.translateService.get(msgKey).subscribe(trans => {
25
- this.snackBarConfig.message = trans;
26
- this.snackBarRefComponent = this.nwbSnackbar.open(this.snackBarConfig);
27
- this.snackBarRefComponent.afterClosed().subscribe();
28
- });
29
- }
30
- openSnackBarWithAction(msgKey) {
31
- return new Observable(observer => {
32
- this.translateService.get([msgKey, this.actionMsg]).subscribe((trans) => {
33
- this.snackBarConfigAction.message = trans[msgKey];
34
- this.snackBarConfigAction.action = trans[this.actionMsg];
35
- this.closePreviousSnackbar();
36
- this.snackBarRefComponent = this.nwbSnackbar.open(this.snackBarConfigAction);
37
- this.snackBarRefComponent.afterClosed().subscribe(manualClose => {
38
- observer.next(manualClose);
39
- observer.complete();
40
- });
41
- });
42
- });
43
- }
44
- openSnackBarWithBackendRespons(msgKey, msgBackend) {
45
- this.translateService.get(msgKey).subscribe(trans => {
46
- this.snackBarConfig.message = trans;
47
- this.snackBarConfig.message += '<br/>' + JSON.parse(msgBackend).message;
48
- this.closePreviousSnackbar();
49
- this.snackBarRefComponent = this.nwbSnackbar.open(this.snackBarConfig);
50
- this.snackBarRefComponent.afterClosed().subscribe();
51
- });
52
- }
53
- closePreviousSnackbar() {
54
- if (this.snackBarRefComponent) {
55
- this.snackBarRefComponent.dismiss(false);
56
- }
57
- }
58
- }
59
- SnackBarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SnackBarService, deps: [{ token: i1.NwbSnackbarService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
60
- SnackBarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SnackBarService });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SnackBarService, decorators: [{
62
- type: Injectable
63
- }], ctorParameters: function () { return [{ type: i1.NwbSnackbarService }, { type: i2.TranslateService }]; } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBMkMsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBR2xDLE1BQU0sT0FBTyxlQUFlO0lBZ0J4QixZQUNZLFdBQStCLEVBQy9CLGdCQUFrQztRQURsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWhCOUMsY0FBUyxHQUFHLDRCQUE0QixDQUFDO1FBRXpDLHlCQUFvQixHQUFzQjtZQUN4QyxPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztRQUVGLG1CQUFjLEdBQXNCO1lBQ2xDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0lBT0ssQ0FBQztJQUVSLFlBQVksQ0FBQyxNQUFjO1FBQ3pCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFjO1FBQ25DLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFFL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFFcEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFekQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDOUQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDM0IsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsOEJBQThCLENBQUMsTUFBYyxFQUFFLFVBQWtCO1FBQy9ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFFeEUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDOzs2R0EvRFEsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE53YlNuYWNrYmFyU2VydmljZSwgTndiU25hY2tiYXJDb25maWcsIE53YlNuYWNrYmFyQ29tcG9uZW50IH0gZnJvbSAnQHdpemlzaG9wL25nLXdpemktYnVsbWEnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNuYWNrQmFyU2VydmljZSB7XHJcblxyXG4gICAgYWN0aW9uTXNnID0gJ0ltZ01hbmFnZXIuc25hY2tCYXIuYWN0aW9uJztcclxuXHJcbiAgICBzbmFja0JhckNvbmZpZ0FjdGlvbjogTndiU25hY2tiYXJDb25maWcgPSB7XHJcbiAgICAgIG1lc3NhZ2U6ICcnLFxyXG4gICAgICBkdXJhdGlvbjogNTAwMFxyXG4gICAgfTtcclxuXHJcbiAgICBzbmFja0JhckNvbmZpZzogTndiU25hY2tiYXJDb25maWcgPSB7XHJcbiAgICAgIG1lc3NhZ2U6ICcnLFxyXG4gICAgICBkdXJhdGlvbjogNTAwMFxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyUmVmQ29tcG9uZW50OiBOd2JTbmFja2JhckNvbXBvbmVudDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIG53YlNuYWNrYmFyOiBOd2JTbmFja2JhclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgICAgICAgKSB7fVxyXG5cclxuICAgIG9wZW5TbmFja0Jhcihtc2dLZXk6IHN0cmluZykge1xyXG4gICAgICB0aGlzLmNsb3NlUHJldmlvdXNTbmFja2JhcigpO1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KG1zZ0tleSkuc3Vic2NyaWJlKHRyYW5zID0+IHtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXJDb25maWcubWVzc2FnZSA9IHRyYW5zO1xyXG4gICAgICAgICAgdGhpcy5zbmFja0JhclJlZkNvbXBvbmVudCA9IHRoaXMubndiU25hY2tiYXIub3Blbih0aGlzLnNuYWNrQmFyQ29uZmlnKTtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXJSZWZDb21wb25lbnQuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblNuYWNrQmFyV2l0aEFjdGlvbihtc2dLZXk6IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xyXG5cclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KFttc2dLZXksIHRoaXMuYWN0aW9uTXNnXSkuc3Vic2NyaWJlKCh0cmFucykgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zbmFja0JhckNvbmZpZ0FjdGlvbi5tZXNzYWdlID0gdHJhbnNbbXNnS2V5XTtcclxuICAgICAgICAgICAgdGhpcy5zbmFja0JhckNvbmZpZ0FjdGlvbi5hY3Rpb24gPSB0cmFuc1t0aGlzLmFjdGlvbk1zZ107XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNsb3NlUHJldmlvdXNTbmFja2JhcigpO1xyXG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyUmVmQ29tcG9uZW50ID0gdGhpcy5ud2JTbmFja2Jhci5vcGVuKHRoaXMuc25hY2tCYXJDb25maWdBY3Rpb24pO1xyXG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyUmVmQ29tcG9uZW50LmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKG1hbnVhbENsb3NlID0+IHtcclxuICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KG1hbnVhbENsb3NlKTtcclxuICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblNuYWNrQmFyV2l0aEJhY2tlbmRSZXNwb25zKG1zZ0tleTogc3RyaW5nLCBtc2dCYWNrZW5kOiBzdHJpbmcpIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChtc2dLZXkpLnN1YnNjcmliZSh0cmFucyA9PiB7XHJcbiAgICAgICAgdGhpcy5zbmFja0JhckNvbmZpZy5tZXNzYWdlID0gdHJhbnM7XHJcbiAgICAgICAgdGhpcy5zbmFja0JhckNvbmZpZy5tZXNzYWdlICs9ICc8YnIvPicgKyBKU09OLnBhcnNlKG1zZ0JhY2tlbmQpLm1lc3NhZ2U7XHJcblxyXG4gICAgICAgIHRoaXMuY2xvc2VQcmV2aW91c1NuYWNrYmFyKCk7XHJcbiAgICAgICAgdGhpcy5zbmFja0JhclJlZkNvbXBvbmVudCA9IHRoaXMubndiU25hY2tiYXIub3Blbih0aGlzLnNuYWNrQmFyQ29uZmlnKTtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyUmVmQ29tcG9uZW50LmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2xvc2VQcmV2aW91c1NuYWNrYmFyKCkge1xyXG4gICAgICBpZiAodGhpcy5zbmFja0JhclJlZkNvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXJSZWZDb21wb25lbnQuZGlzbWlzcyhmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,60 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { NwbFilterRoutingBuilder } from '@wizishop/ng-wizi-bulma';
3
- import { Subject } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@wizishop/ng-wizi-bulma";
6
- export class FiltersTableService {
7
- constructor(filterRoutingBuilder) {
8
- this.filterRoutingBuilder = filterRoutingBuilder;
9
- this.filterGroups = new Map();
10
- this.dataTableFilters = {
11
- sort: undefined,
12
- order: undefined,
13
- searchValue: undefined,
14
- totalItems: 0,
15
- itemsPerPage: 0,
16
- currentPage: 0
17
- };
18
- this.sortSubject = new Subject();
19
- }
20
- getTableFilterGroup(dataTableName) {
21
- if (this.filterGroups.has(dataTableName)) {
22
- return this.filterGroups.get(dataTableName);
23
- }
24
- const filterGroup = this.filterRoutingBuilder.group(this.dataTableFilters, dataTableName);
25
- this.filterGroups.set(dataTableName, filterGroup);
26
- return filterGroup;
27
- }
28
- /**
29
- * Use to reset the others sorts of the table
30
- * @param dataTableName
31
- * @param sortName
32
- * @param order
33
- */
34
- emitSortChange(dataTableName, sortName, order) {
35
- this.sortSubject.next({ dataTableName, sortName, order });
36
- }
37
- getSortChangeListner() {
38
- return this.sortSubject.asObservable();
39
- }
40
- setPaginationFilters(dataTableName, totalItems, itemsPerPage, currentPage) {
41
- const filterGroup = this.getTableFilterGroup(dataTableName);
42
- filterGroup.setValues({
43
- itemsPerPage,
44
- currentPage
45
- });
46
- }
47
- setInitialPaginationFiltersIfNotExist(dataTableName, itemsPerPage, currentPage) {
48
- const filterGroup = this.getTableFilterGroup(dataTableName);
49
- filterGroup.setValues({
50
- itemsPerPage: filterGroup.get('itemsPerPage') ? parseInt(filterGroup.get('itemsPerPage')) : itemsPerPage,
51
- currentPage: filterGroup.get('currentPage') ? parseInt(filterGroup.get('currentPage')) : currentPage
52
- });
53
- }
54
- }
55
- FiltersTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FiltersTableService, deps: [{ token: i1.NwbFilterRoutingBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
56
- FiltersTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FiltersTableService });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FiltersTableService, decorators: [{
58
- type: Injectable
59
- }], ctorParameters: function () { return [{ type: i1.NwbFilterRoutingBuilder }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy10YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy90YWJsZS9maWx0ZXJzLXRhYmxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWtCLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBVS9CLE1BQU0sT0FBTyxtQkFBbUI7SUFhOUIsWUFBb0Isb0JBQTZDO1FBQTdDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFaakUsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztRQUNqRCxxQkFBZ0IsR0FBaUI7WUFDL0IsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsU0FBUztZQUNoQixXQUFXLEVBQUUsU0FBUztZQUN0QixVQUFVLEVBQUUsQ0FBQztZQUNiLFlBQVksRUFBRSxDQUFDO1lBQ2YsV0FBVyxFQUFFLENBQUM7U0FDZixDQUFDO1FBRU0sZ0JBQVcsR0FBaUIsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUVhLENBQUM7SUFFckUsbUJBQW1CLENBQUMsYUFBcUI7UUFDdkMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN4QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsTUFBTSxXQUFXLEdBQW1CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsYUFBcUIsRUFBRSxRQUFnQixFQUFFLEtBQWM7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELG9CQUFvQixDQUFDLGFBQXFCLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLFdBQW1CO1FBQ3ZHLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3BCLFlBQVk7WUFDWixXQUFXO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFDQUFxQyxDQUFDLGFBQXFCLEVBQUUsWUFBb0IsRUFBRSxXQUFtQjtRQUNwRyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUQsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUNwQixZQUFZLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWTtZQUN4RyxXQUFXLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztTQUNyRyxDQUFDLENBQUM7SUFDTCxDQUFDOztpSEFwRFUsbUJBQW1CO3FIQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTndiRmlsdGVyR3JvdXAsIE53YkZpbHRlclJvdXRpbmdCdWlsZGVyIH0gZnJvbSAnQHdpemlzaG9wL25nLXdpemktYnVsbWEnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25GaWx0ZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRmlsdGVycyBleHRlbmRzIFBhZ2luYXRpb25GaWx0ZXJzIHtcclxuICBzb3J0OiBzdHJpbmc7XHJcbiAgb3JkZXI6IGJvb2xlYW47XHJcbiAgc2VhcmNoVmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc1RhYmxlU2VydmljZSB7XHJcbiAgZmlsdGVyR3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIE53YkZpbHRlckdyb3VwPigpO1xyXG4gIGRhdGFUYWJsZUZpbHRlcnM6IFRhYmxlRmlsdGVycyA9IHtcclxuICAgIHNvcnQ6IHVuZGVmaW5lZCxcclxuICAgIG9yZGVyOiB1bmRlZmluZWQsXHJcbiAgICBzZWFyY2hWYWx1ZTogdW5kZWZpbmVkLFxyXG4gICAgdG90YWxJdGVtczogMCxcclxuICAgIGl0ZW1zUGVyUGFnZTogMCxcclxuICAgIGN1cnJlbnRQYWdlOiAwXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBzb3J0U3ViamVjdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpbHRlclJvdXRpbmdCdWlsZGVyOiBOd2JGaWx0ZXJSb3V0aW5nQnVpbGRlcikge31cclxuXHJcbiAgZ2V0VGFibGVGaWx0ZXJHcm91cChkYXRhVGFibGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlckdyb3Vwcy5oYXMoZGF0YVRhYmxlTmFtZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR3JvdXBzLmdldChkYXRhVGFibGVOYW1lKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZpbHRlckdyb3VwOiBOd2JGaWx0ZXJHcm91cCA9IHRoaXMuZmlsdGVyUm91dGluZ0J1aWxkZXIuZ3JvdXAodGhpcy5kYXRhVGFibGVGaWx0ZXJzLCBkYXRhVGFibGVOYW1lKTtcclxuICAgIHRoaXMuZmlsdGVyR3JvdXBzLnNldChkYXRhVGFibGVOYW1lLCBmaWx0ZXJHcm91cCk7XHJcbiAgICByZXR1cm4gZmlsdGVyR3JvdXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVc2UgdG8gcmVzZXQgdGhlIG90aGVycyBzb3J0cyBvZiB0aGUgdGFibGVcclxuICAgKiBAcGFyYW0gZGF0YVRhYmxlTmFtZVxyXG4gICAqIEBwYXJhbSBzb3J0TmFtZVxyXG4gICAqIEBwYXJhbSBvcmRlclxyXG4gICAqL1xyXG4gIGVtaXRTb3J0Q2hhbmdlKGRhdGFUYWJsZU5hbWU6IHN0cmluZywgc29ydE5hbWU6IHN0cmluZywgb3JkZXI6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc29ydFN1YmplY3QubmV4dCh7IGRhdGFUYWJsZU5hbWUsIHNvcnROYW1lLCBvcmRlciB9KTtcclxuICB9XHJcblxyXG4gIGdldFNvcnRDaGFuZ2VMaXN0bmVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc29ydFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdpbmF0aW9uRmlsdGVycyhkYXRhVGFibGVOYW1lOiBzdHJpbmcsIHRvdGFsSXRlbXM6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIsIGN1cnJlbnRQYWdlOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZpbHRlckdyb3VwID0gdGhpcy5nZXRUYWJsZUZpbHRlckdyb3VwKGRhdGFUYWJsZU5hbWUpO1xyXG4gICAgZmlsdGVyR3JvdXAuc2V0VmFsdWVzKHtcclxuICAgICAgaXRlbXNQZXJQYWdlLFxyXG4gICAgICBjdXJyZW50UGFnZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsUGFnaW5hdGlvbkZpbHRlcnNJZk5vdEV4aXN0KGRhdGFUYWJsZU5hbWU6IHN0cmluZywgaXRlbXNQZXJQYWdlOiBudW1iZXIsIGN1cnJlbnRQYWdlOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZpbHRlckdyb3VwID0gdGhpcy5nZXRUYWJsZUZpbHRlckdyb3VwKGRhdGFUYWJsZU5hbWUpO1xyXG4gICAgZmlsdGVyR3JvdXAuc2V0VmFsdWVzKHtcclxuICAgICAgaXRlbXNQZXJQYWdlOiBmaWx0ZXJHcm91cC5nZXQoJ2l0ZW1zUGVyUGFnZScpID8gcGFyc2VJbnQoZmlsdGVyR3JvdXAuZ2V0KCdpdGVtc1BlclBhZ2UnKSkgOiBpdGVtc1BlclBhZ2UsXHJcbiAgICAgIGN1cnJlbnRQYWdlOiBmaWx0ZXJHcm91cC5nZXQoJ2N1cnJlbnRQYWdlJykgPyBwYXJzZUludChmaWx0ZXJHcm91cC5nZXQoJ2N1cnJlbnRQYWdlJykpIDogY3VycmVudFBhZ2VcclxuICAgIH0pO1xyXG4gIH1cclxufSJdfQ==
@@ -1,22 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import { ApiService } from './api.service';
3
- import { Subject, tap } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export class UploadService {
6
- constructor() {
7
- this.imageUploaded$ = new Subject();
8
- this.apiService = inject(ApiService);
9
- }
10
- uploadFile(formData) {
11
- return this.apiService.uploadFile(formData).pipe(tap((img) => this.imageUploaded$.next(img)));
12
- }
13
- uploadFileByUrl(url, fileName) {
14
- return this.apiService.uploadFileByUrl(url, fileName).pipe(tap((img) => this.imageUploaded$.next(img)));
15
- }
16
- }
17
- UploadService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18
- UploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadService });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UploadService, decorators: [{
20
- type: Injectable
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSXBDLE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBR0ksbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUU5QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBY25DO0lBWkcsVUFBVSxDQUFDLFFBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUM1QyxHQUFHLENBQUMsQ0FBQyxHQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM3RCxDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFXLEVBQUUsUUFBaUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUN0RCxHQUFHLENBQUMsQ0FBQyxHQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM3RCxDQUFDO0lBQ04sQ0FBQzs7MkdBaEJRLGFBQWE7K0dBQWIsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEltZ1BpY3R1cmVEVE8gfSBmcm9tICcuLi9kdG8vaW1nLW1hbmFnZXIuZHRvJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFVwbG9hZFNlcnZpY2Uge1xyXG5cclxuICAgIGltYWdlVXBsb2FkZWQkID0gbmV3IFN1YmplY3Q8SW1nUGljdHVyZURUTz4oKTtcclxuXHJcbiAgICBhcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xyXG5cclxuICAgIHVwbG9hZEZpbGUoZm9ybURhdGE6IEZvcm1EYXRhKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS51cGxvYWRGaWxlKGZvcm1EYXRhKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKGltZzogSW1nUGljdHVyZURUTykgPT4gdGhpcy5pbWFnZVVwbG9hZGVkJC5uZXh0KGltZykpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGxvYWRGaWxlQnlVcmwodXJsOiBzdHJpbmcsIGZpbGVOYW1lPzogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS51cGxvYWRGaWxlQnlVcmwodXJsLCBmaWxlTmFtZSkucGlwZShcclxuICAgICAgICAgICAgdGFwKChpbWc6IEltZ1BpY3R1cmVEVE8pID0+IHRoaXMuaW1hZ2VVcGxvYWRlZCQubmV4dChpbWcpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG59Il19
@@ -1,25 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class UserSettingsService {
4
- constructor() {
5
- this.userdisplayPreference = 'WzImgManagerListDisplayed';
6
- }
7
- /**
8
- * true : display list
9
- * false : display mosaic
10
- * @param value
11
- */
12
- setUserDisplayPreference(value) {
13
- localStorage.setItem(this.userdisplayPreference, '' + value);
14
- }
15
- getUserDisplayPreference() {
16
- const value = localStorage.getItem(this.userdisplayPreference);
17
- return value == 'true';
18
- }
19
- }
20
- UserSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
- UserSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserSettingsService });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserSettingsService, decorators: [{
23
- type: Injectable
24
- }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLXNldHRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQUdZLDBCQUFxQixHQUFHLDJCQUEyQixDQUFDO0tBZ0IvRDtJQWRHOzs7O09BSUc7SUFDSCx3QkFBd0IsQ0FBQyxLQUFjO1FBQ25DLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsd0JBQXdCO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDL0QsT0FBTyxLQUFLLElBQUksTUFBTSxDQUFDO0lBQzNCLENBQUM7O2lIQWhCUSxtQkFBbUI7cUhBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVXNlclNldHRpbmdzU2VydmljZSB7XHJcblxyXG4gICAgcHJpdmF0ZSB1c2VyZGlzcGxheVByZWZlcmVuY2UgPSAnV3pJbWdNYW5hZ2VyTGlzdERpc3BsYXllZCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cnVlIDogZGlzcGxheSBsaXN0XHJcbiAgICAgKiBmYWxzZSA6IGRpc3BsYXkgbW9zYWljXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVcclxuICAgICAqL1xyXG4gICAgc2V0VXNlckRpc3BsYXlQcmVmZXJlbmNlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy51c2VyZGlzcGxheVByZWZlcmVuY2UsICcnICsgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzZXJEaXNwbGF5UHJlZmVyZW5jZSgpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMudXNlcmRpc3BsYXlQcmVmZXJlbmNlKTtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT0gJ3RydWUnO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,192 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { ImgSelectionService } from './services/img-selection.service';
3
- import { UserSettingsService } from './services/user-settings.service';
4
- import { CanvaService } from './services/canva.service';
5
- import { ImgEventService } from './services/img-event.service';
6
- import { DomService } from './services/dom.service';
7
- import { HostListener } from '@angular/core';
8
- import { UploadService } from './services/upload.service';
9
- import { IconService } from './services/icon.service';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "./services/img-selection.service";
12
- import * as i2 from "./services/user-settings.service";
13
- import * as i3 from "./services/canva.service";
14
- import * as i4 from "./services/img-event.service";
15
- import * as i5 from "./services/dom.service";
16
- import * as i6 from "./services/upload.service";
17
- import * as i7 from "./services/icon.service";
18
- import * as i8 from "@angular/common";
19
- import * as i9 from "./components/img-tabs/img-tabs.component";
20
- import * as i10 from "./components/img-selection/img-selection.component";
21
- export class WzImgManagerComponent {
22
- // If forceToOpenCanva is true : Canva will open with the canvaService.expectedImgSizesChange
23
- // If forceToOpenCanva is a WiziBlockMediaDto, Canva open immediatly
24
- set forceToOpenCanva(forceToOpenCanva) {
25
- this.canvaService.forceToOpenCanva = !!forceToOpenCanva;
26
- if (typeof forceToOpenCanva === 'boolean') {
27
- return;
28
- }
29
- this.canvaService.expectedImgSizesChange(forceToOpenCanva);
30
- }
31
- set multipleImgMode(activate) {
32
- this._multipleImgMode = activate;
33
- this.imgSelectionService.setMultipleImgMode(this._multipleImgMode);
34
- }
35
- get multipleImgMode() {
36
- return this._multipleImgMode;
37
- }
38
- set showImgManagerModule(activate) {
39
- this._showImgManagerModule = activate;
40
- if (activate) {
41
- this.displaySmall();
42
- }
43
- }
44
- get showImgManagerModule() {
45
- return this._multipleImgMode;
46
- }
47
- onKeydownHandler(event) {
48
- if (this.stateDisplayed && this.stateDisplayed !== 'window') {
49
- this.onClose();
50
- }
51
- }
52
- constructor(imgSelectionService, userSettingsService, canvaService, imgEventService, domService, uploadService, iconService) {
53
- this.imgSelectionService = imgSelectionService;
54
- this.userSettingsService = userSettingsService;
55
- this.canvaService = canvaService;
56
- this.imgEventService = imgEventService;
57
- this.domService = domService;
58
- this.uploadService = uploadService;
59
- this.iconService = iconService;
60
- this.showSelection = false;
61
- this.imgManagerClosed = new EventEmitter();
62
- this._multipleImgMode = false;
63
- this._showImgManagerModule = false;
64
- this.imgSelectionChange = this.imgSelectionService.imgSelection$;
65
- this.imageUploaded = this.uploadService.imageUploaded$;
66
- this.close = false;
67
- this.listDisplayed = false;
68
- this.hideTab = false;
69
- this.iconService.loadIconLib();
70
- }
71
- ngOnInit() {
72
- this.imgSelectionService.setMultipleImgMode(this._multipleImgMode);
73
- this.imgSelectionService.initImgSelectedList(null);
74
- this.selectImgEvent = this.imgSelectionService.imgSelection$.subscribe(imgSelection => {
75
- if (imgSelection && imgSelection.length && this.checkCloseImgManager()) {
76
- // Close the img manager
77
- this.onClose();
78
- }
79
- });
80
- this.checkUserDisplayPreference();
81
- // Use when the img manager is full open or open in page. This display the user preference display, mosaic or list.
82
- this.listDisplayedEvent = this.imgEventService.getlistDisplayedChange().subscribe(value => this.listDisplayed = value);
83
- // Register dom service to listen on all event on the body to avoid having multiple instance of the same thing every where
84
- this.domService.setDocumentEventListener();
85
- }
86
- checkUserDisplayPreference() {
87
- if (this.stateDisplayed === 'window' || this.stateDisplayed === 'full') {
88
- this.listDisplayed = this.userSettingsService.getUserDisplayPreference();
89
- }
90
- }
91
- setCurrentTab(event) {
92
- if (event === 'img-edition') {
93
- this.hideTab = true;
94
- return;
95
- }
96
- this.hideTab = false;
97
- }
98
- displaySmall() {
99
- if (this.stateDisplayed !== 'window') {
100
- setTimeout(() => {
101
- this.stateDisplayed = 'small';
102
- this.addBodyBottomPaddingForModule();
103
- }, 10);
104
- }
105
- }
106
- openSmall() {
107
- this.stateDisplayed = 'small';
108
- this.setBodyMainScroll();
109
- this.listDisplayed = false;
110
- }
111
- openFull() {
112
- this.stateDisplayed = 'full';
113
- this.checkUserDisplayPreference();
114
- this.hideBodyMainScroll();
115
- }
116
- onClose() {
117
- this.stateDisplayed = 'closed';
118
- this.hideTab = false;
119
- this.setBodyMainScroll();
120
- this.removeBodyBottomPaddingForModule();
121
- // Wait the end of the closing annimation
122
- setTimeout(() => {
123
- this.imgManagerClosed.emit();
124
- }, 250);
125
- }
126
- onImgManagerClosed() {
127
- this.onClose();
128
- }
129
- /**
130
- * Close the img manager after one img is selected, if not in multiple img to select
131
- */
132
- checkCloseImgManager() {
133
- return !this.multipleImgMode && this.stateDisplayed !== 'window' ? true : false;
134
- }
135
- hideBodyMainScroll() {
136
- const html = document.getElementsByTagName('html')[0];
137
- if (!this.overflowHTML) {
138
- this.overflowHTML = html.style.overflowY;
139
- }
140
- html.style.overflowY = "hidden";
141
- }
142
- setBodyMainScroll() {
143
- const html = document.getElementsByTagName('html')[0];
144
- html.style.overflowY = this.overflowHTML ? this.overflowHTML : "scroll";
145
- }
146
- addBodyBottomPaddingForModule() {
147
- const body = document.getElementsByTagName('body')[0];
148
- this.bodyPadding = this.bodyPadding ? parseInt(body.style.paddingBottom) : 0;
149
- body.style.paddingBottom = this.bodyPadding + 300 + 'px';
150
- }
151
- removeBodyBottomPaddingForModule() {
152
- if (typeof this.bodyPadding !== 'undefined') {
153
- const body = document.getElementsByTagName('body')[0];
154
- body.style.paddingBottom = this.bodyPadding + 'px';
155
- this.bodyPadding = 0;
156
- }
157
- }
158
- changeDisplayTab() {
159
- this.stateDisplayed = 'full';
160
- }
161
- ngOnDestroy() {
162
- this.selectImgEvent.unsubscribe();
163
- this.canvaService.expectedImgSizesChange(null);
164
- this.listDisplayedEvent.unsubscribe();
165
- }
166
- }
167
- WzImgManagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WzImgManagerComponent, deps: [{ token: i1.ImgSelectionService }, { token: i2.UserSettingsService }, { token: i3.CanvaService }, { token: i4.ImgEventService }, { token: i5.DomService }, { token: i6.UploadService }, { token: i7.IconService }], target: i0.ɵɵFactoryTarget.Component });
168
- WzImgManagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WzImgManagerComponent, selector: "wz-img-manager", inputs: { stateDisplayed: "stateDisplayed", showSelection: "showSelection", forceToOpenCanva: "forceToOpenCanva", multipleImgMode: "multipleImgMode", showImgManagerModule: "showImgManagerModule" }, outputs: { imgManagerClosed: "imgManagerClosed", imgSelectionChange: "imgSelectionChange", imageUploaded: "imageUploaded" }, host: { listeners: { "document:keydown.escape": "onKeydownHandler($event)" } }, ngImport: i0, template: "<div class=\"wz-img-manager\">\r\n <!-- Img selection handler -->\r\n <div class=\"wz-img-manager__selectionHandler\" *ngIf=\"showSelection\">\r\n <img-selection></img-selection>\r\n </div>\r\n\r\n <!-- Img manager module -->\r\n <div\r\n *ngIf=\"_showImgManagerModule\"\r\n class=\"wz-img-manager__module\"\r\n [ngClass]=\"{\r\n 'wz-img-manager__module--small': stateDisplayed === 'small',\r\n 'wz-img-manager__module--full': stateDisplayed === 'full',\r\n 'wz-img-manager__module--window': stateDisplayed === 'window',\r\n 'wz-img-manager__module--edit': hideTab}\"\r\n >\r\n\r\n <div class=\"wz-img-manager__module__header\" *ngIf=\"stateDisplayed !== 'window'\">\r\n <button (click)=\"openSmall()\" *ngIf=\"stateDisplayed === 'full'\" type=\"button\"><span>Expand</span><i class=\"fal fa-compress-alt\"></i></button>\r\n <button (click)=\"openSmall()\" *ngIf=\"stateDisplayed === 'closed'\" type=\"button\"><span>Expand</span><i class=\"fal fa-expand-alt\"></i></button>\r\n <button (click)=\"openFull()\" *ngIf=\"stateDisplayed === 'small'\" type=\"button\"><span>Expand</span><i class=\"fal fa-expand-alt\"></i></button>\r\n <button (click)=\"onClose()\" *ngIf=\"stateDisplayed !== 'closed'\" type=\"button\"><span>Close</span><i class=\"fal fa-times\"></i></button>\r\n </div>\r\n\r\n <div\r\n class=\"wz-img-manager__module__content wz-block\"\r\n [ngClass]=\"{'wz-block--window': stateDisplayed === 'window'}\">\r\n <img-tabs\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [multipleImgMode]=\"multipleImgMode\"\r\n [listDisplayed]=\"listDisplayed\"\r\n (imgManagerClosed)=\"onImgManagerClosed()\"\r\n (switchDisplayWindow)=\"changeDisplayTab()\"\r\n (currentTab)=\"setCurrentTab($event)\">\r\n </img-tabs>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i9.ImgTabsComponent, selector: "img-tabs", inputs: ["multipleImgMode", "stateDisplayed", "listDisplayed"], outputs: ["imgManagerClosed", "currentTab", "switchDisplayWindow"] }, { kind: "component", type: i10.ImgSelectionComponent, selector: "img-selection", inputs: ["tabDisplayed"], outputs: ["imgManagerClosed"] }] });
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WzImgManagerComponent, decorators: [{
170
- type: Component,
171
- args: [{ selector: 'wz-img-manager', template: "<div class=\"wz-img-manager\">\r\n <!-- Img selection handler -->\r\n <div class=\"wz-img-manager__selectionHandler\" *ngIf=\"showSelection\">\r\n <img-selection></img-selection>\r\n </div>\r\n\r\n <!-- Img manager module -->\r\n <div\r\n *ngIf=\"_showImgManagerModule\"\r\n class=\"wz-img-manager__module\"\r\n [ngClass]=\"{\r\n 'wz-img-manager__module--small': stateDisplayed === 'small',\r\n 'wz-img-manager__module--full': stateDisplayed === 'full',\r\n 'wz-img-manager__module--window': stateDisplayed === 'window',\r\n 'wz-img-manager__module--edit': hideTab}\"\r\n >\r\n\r\n <div class=\"wz-img-manager__module__header\" *ngIf=\"stateDisplayed !== 'window'\">\r\n <button (click)=\"openSmall()\" *ngIf=\"stateDisplayed === 'full'\" type=\"button\"><span>Expand</span><i class=\"fal fa-compress-alt\"></i></button>\r\n <button (click)=\"openSmall()\" *ngIf=\"stateDisplayed === 'closed'\" type=\"button\"><span>Expand</span><i class=\"fal fa-expand-alt\"></i></button>\r\n <button (click)=\"openFull()\" *ngIf=\"stateDisplayed === 'small'\" type=\"button\"><span>Expand</span><i class=\"fal fa-expand-alt\"></i></button>\r\n <button (click)=\"onClose()\" *ngIf=\"stateDisplayed !== 'closed'\" type=\"button\"><span>Close</span><i class=\"fal fa-times\"></i></button>\r\n </div>\r\n\r\n <div\r\n class=\"wz-img-manager__module__content wz-block\"\r\n [ngClass]=\"{'wz-block--window': stateDisplayed === 'window'}\">\r\n <img-tabs\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [multipleImgMode]=\"multipleImgMode\"\r\n [listDisplayed]=\"listDisplayed\"\r\n (imgManagerClosed)=\"onImgManagerClosed()\"\r\n (switchDisplayWindow)=\"changeDisplayTab()\"\r\n (currentTab)=\"setCurrentTab($event)\">\r\n </img-tabs>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n" }]
172
- }], ctorParameters: function () { return [{ type: i1.ImgSelectionService }, { type: i2.UserSettingsService }, { type: i3.CanvaService }, { type: i4.ImgEventService }, { type: i5.DomService }, { type: i6.UploadService }, { type: i7.IconService }]; }, propDecorators: { stateDisplayed: [{
173
- type: Input
174
- }], showSelection: [{
175
- type: Input
176
- }], forceToOpenCanva: [{
177
- type: Input
178
- }], imgManagerClosed: [{
179
- type: Output
180
- }], multipleImgMode: [{
181
- type: Input
182
- }], showImgManagerModule: [{
183
- type: Input
184
- }], onKeydownHandler: [{
185
- type: HostListener,
186
- args: ['document:keydown.escape', ['$event']]
187
- }], imgSelectionChange: [{
188
- type: Output
189
- }], imageUploaded: [{
190
- type: Output
191
- }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3otaW1nLW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi93ei1pbWctbWFuYWdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL3d6LWltZy1tYW5hZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7QUFLdEQsTUFBTSxPQUFPLHFCQUFxQjtJQUloQyw2RkFBNkY7SUFDN0Ysb0VBQW9FO0lBQ3BFLElBQWEsZ0JBQWdCLENBQUMsZ0JBQTJDO1FBQ3ZFLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1FBRXhELElBQUksT0FBTyxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7WUFDekMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FB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Q0FBQztnQkFNekMsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ltZy1zZWxlY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVc2VyU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYW52YVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NhbnZhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbWdFdmVudFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ltZy1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9tU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZG9tLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgV2l6aUJsb2NrTWVkaWFEdG8gfSBmcm9tICcuL2R0by93aXppLWJsb2NrLW1lZGlhLmR0byc7XHJcbmltcG9ydCB7IHN0YXRlRGlzcGxheWVkIH0gZnJvbSAnLi9kdG8vc3RhdGVEaXNwbGF5ZWQuZHRvJztcclxuaW1wb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaWNvbi5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3ei1pbWctbWFuYWdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3d6LWltZy1tYW5hZ2VyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV3pJbWdNYW5hZ2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBzdGF0ZURpc3BsYXllZDogc3RhdGVEaXNwbGF5ZWQ7XHJcbiAgQElucHV0KCkgc2hvd1NlbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBJZiBmb3JjZVRvT3BlbkNhbnZhIGlzIHRydWUgOiBDYW52YSB3aWxsIG9wZW4gd2l0aCB0aGUgY2FudmFTZXJ2aWNlLmV4cGVjdGVkSW1nU2l6ZXNDaGFuZ2VcclxuICAvLyBJZiBmb3JjZVRvT3BlbkNhbnZhIGlzIGEgV2l6aUJsb2NrTWVkaWFEdG8sIENhbnZhIG9wZW4gaW1tZWRpYXRseVxyXG4gIEBJbnB1dCgpIHNldCBmb3JjZVRvT3BlbkNhbnZhKGZvcmNlVG9PcGVuQ2FudmE6IGJvb2xlYW58V2l6aUJsb2NrTWVkaWFEdG8pIHtcclxuICAgIHRoaXMuY2FudmFTZXJ2aWNlLmZvcmNlVG9PcGVuQ2FudmEgPSAhIWZvcmNlVG9PcGVuQ2FudmE7XHJcblxyXG4gICAgaWYgKHR5cGVvZiBmb3JjZVRvT3BlbkNhbnZhID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2FudmFTZXJ2aWNlLmV4cGVjdGVkSW1nU2l6ZXNDaGFuZ2UoZm9yY2VUb09wZW5DYW52YSk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgaW1nTWFuYWdlckNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBwcml2YXRlIF9tdWx0aXBsZUltZ01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IG11bHRpcGxlSW1nTW9kZShhY3RpdmF0ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fbXVsdGlwbGVJbWdNb2RlID0gYWN0aXZhdGU7XHJcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2Uuc2V0TXVsdGlwbGVJbWdNb2RlKHRoaXMuX211bHRpcGxlSW1nTW9kZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgbXVsdGlwbGVJbWdNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlSW1nTW9kZTtcclxuICB9XHJcblxyXG4gIF9zaG93SW1nTWFuYWdlck1vZHVsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCBzaG93SW1nTWFuYWdlck1vZHVsZShhY3RpdmF0ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2hvd0ltZ01hbmFnZXJNb2R1bGUgPSBhY3RpdmF0ZTtcclxuICAgIGlmIChhY3RpdmF0ZSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXlTbWFsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dJbWdNYW5hZ2VyTW9kdWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlSW1nTW9kZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuc3RhdGVEaXNwbGF5ZWQgJiYgdGhpcy5zdGF0ZURpc3BsYXllZCAhPT0gJ3dpbmRvdycpIHtcclxuICAgICAgdGhpcy5vbkNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgaW1nU2VsZWN0aW9uQ2hhbmdlID0gdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmltZ1NlbGVjdGlvbiQ7XHJcblxyXG4gIEBPdXRwdXQoKSBpbWFnZVVwbG9hZGVkID0gdGhpcy51cGxvYWRTZXJ2aWNlLmltYWdlVXBsb2FkZWQkO1xyXG5cclxuICBjbG9zZTogYm9vbGVhbiA9IGZhbHNlXHJcbiAgc2VsZWN0SW1nRXZlbnQ6IFN1YnNjcmlwdGlvbjtcclxuICBsaXN0RGlzcGxheWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbGlzdERpc3BsYXllZEV2ZW50OiBTdWJzY3JpcHRpb247XHJcbiAgaGlkZVRhYjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIFNhdmUgdGhlIGRlZmF1bHQgb3ZlcmZsb3cgYXBwbHkgdG8gaHRtbCB0YWcsIHdoZW4gdGhlIG1vZHVsZSBpcyBmdWxsIG9wZW5cclxuICBwcml2YXRlIG92ZXJmbG93SFRNTDogc3RyaW5nO1xyXG4gIHByaXZhdGUgYm9keVBhZGRpbmc6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVzZXJTZXR0aW5nc1NlcnZpY2U6IFVzZXJTZXR0aW5nc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNhbnZhU2VydmljZTogQ2FudmFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbWdFdmVudFNlcnZpY2U6IEltZ0V2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgZG9tU2VydmljZTogRG9tU2VydmljZSxcclxuICAgIHByaXZhdGUgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSxcclxuICAgIHByaXZhdGUgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmljb25TZXJ2aWNlLmxvYWRJY29uTGliKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5zZXRNdWx0aXBsZUltZ01vZGUodGhpcy5fbXVsdGlwbGVJbWdNb2RlKTtcclxuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbml0SW1nU2VsZWN0ZWRMaXN0KG51bGwpO1xyXG4gICAgdGhpcy5zZWxlY3RJbWdFdmVudCA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3Rpb24kLnN1YnNjcmliZShpbWdTZWxlY3Rpb24gPT57XHJcblxyXG4gICAgICBpZiAoaW1nU2VsZWN0aW9uICYmIGltZ1NlbGVjdGlvbi5sZW5ndGggJiYgdGhpcy5jaGVja0Nsb3NlSW1nTWFuYWdlcigpKSB7XHJcbiAgICAgICAgLy8gQ2xvc2UgdGhlIGltZyBtYW5hZ2VyXHJcbiAgICAgICAgdGhpcy5vbkNsb3NlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jaGVja1VzZXJEaXNwbGF5UHJlZmVyZW5jZSgpO1xyXG4gICAgLy8gVXNlIHdoZW4gdGhlIGltZyBtYW5hZ2VyIGlzIGZ1bGwgb3BlbiBvciBvcGVuIGluIHBhZ2UuIFRoaXMgZGlzcGxheSB0aGUgdXNlciBwcmVmZXJlbmNlIGRpc3BsYXksIG1vc2FpYyBvciBsaXN0LlxyXG4gICAgdGhpcy5saXN0RGlzcGxheWVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5nZXRsaXN0RGlzcGxheWVkQ2hhbmdlKCkuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMubGlzdERpc3BsYXllZCA9IHZhbHVlKTtcclxuICAgIC8vIFJlZ2lzdGVyIGRvbSBzZXJ2aWNlIHRvIGxpc3RlbiBvbiBhbGwgZXZlbnQgb24gdGhlIGJvZHkgdG8gYXZvaWQgaGF2aW5nIG11bHRpcGxlIGluc3RhbmNlIG9mIHRoZSBzYW1lIHRoaW5nIGV2ZXJ5IHdoZXJlXHJcbiAgICB0aGlzLmRvbVNlcnZpY2Uuc2V0RG9jdW1lbnRFdmVudExpc3RlbmVyKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja1VzZXJEaXNwbGF5UHJlZmVyZW5jZSgpIHtcclxuICAgIGlmICh0aGlzLnN0YXRlRGlzcGxheWVkID09PSAnd2luZG93JyB8fCB0aGlzLnN0YXRlRGlzcGxheWVkID09PSAnZnVsbCcpIHtcclxuICAgICAgdGhpcy5saXN0RGlzcGxheWVkID0gdGhpcy51c2VyU2V0dGluZ3NTZXJ2aWNlLmdldFVzZXJEaXNwbGF5UHJlZmVyZW5jZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q3VycmVudFRhYihldmVudCkge1xyXG4gICAgaWYgKGV2ZW50ID09PSAnaW1nLWVkaXRpb24nKSB7XHJcbiAgICAgIHRoaXMuaGlkZVRhYiA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaGlkZVRhYiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheVNtYWxsKCkge1xyXG4gICAgaWYgKHRoaXMuc3RhdGVEaXNwbGF5ZWQgIT09ICd3aW5kb3cnKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhdGVEaXNwbGF5ZWQgPSAnc21hbGwnO1xyXG4gICAgICAgIHRoaXMuYWRkQm9keUJvdHRvbVBhZGRpbmdGb3JNb2R1bGUoKTtcclxuICAgICAgfSwgMTApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlblNtYWxsKCkge1xyXG4gICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdzbWFsbCc7XHJcbiAgICB0aGlzLnNldEJvZHlNYWluU2Nyb2xsKCk7XHJcbiAgICB0aGlzLmxpc3REaXNwbGF5ZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9wZW5GdWxsKCkge1xyXG4gICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdmdWxsJztcclxuICAgIHRoaXMuY2hlY2tVc2VyRGlzcGxheVByZWZlcmVuY2UoKTtcclxuICAgIHRoaXMuaGlkZUJvZHlNYWluU2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdjbG9zZWQnO1xyXG4gICAgdGhpcy5oaWRlVGFiID0gZmFsc2U7XHJcbiAgICB0aGlzLnNldEJvZHlNYWluU2Nyb2xsKCk7XHJcbiAgICB0aGlzLnJlbW92ZUJvZHlCb3R0b21QYWRkaW5nRm9yTW9kdWxlKCk7XHJcbiAgICAvLyBXYWl0IHRoZSBlbmQgb2YgdGhlIGNsb3NpbmcgYW5uaW1hdGlvblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW1nTWFuYWdlckNsb3NlZC5lbWl0KCk7XHJcbiAgICB9LCAyNTApO1xyXG4gIH1cclxuXHJcbiAgb25JbWdNYW5hZ2VyQ2xvc2VkKCkge1xyXG4gICAgdGhpcy5vbkNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZSB0aGUgaW1nIG1hbmFnZXIgYWZ0ZXIgb25lIGltZyBpcyBzZWxlY3RlZCwgaWYgbm90IGluIG11bHRpcGxlIGltZyB0byBzZWxlY3RcclxuICAgKi9cclxuICBjaGVja0Nsb3NlSW1nTWFuYWdlcigpIHtcclxuICAgIHJldHVybiAhdGhpcy5tdWx0aXBsZUltZ01vZGUgJiYgdGhpcy5zdGF0ZURpc3BsYXllZCAhPT0gJ3dpbmRvdycgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBoaWRlQm9keU1haW5TY3JvbGwoKSB7XHJcbiAgICBjb25zdCBodG1sID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2h0bWwnKVswXTtcclxuXHJcbiAgICBpZiAoIXRoaXMub3ZlcmZsb3dIVE1MKSB7XHJcbiAgICAgIHRoaXMub3ZlcmZsb3dIVE1MID0gaHRtbC5zdHlsZS5vdmVyZmxvd1k7XHJcbiAgICB9XHJcblxyXG4gICAgaHRtbC5zdHlsZS5vdmVyZmxvd1kgPSBcImhpZGRlblwiO1xyXG4gIH1cclxuXHJcbiAgc2V0Qm9keU1haW5TY3JvbGwoKSB7XHJcbiAgICBjb25zdCBodG1sID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2h0bWwnKVswXTtcclxuICAgIGh0bWwuc3R5bGUub3ZlcmZsb3dZID0gdGhpcy5vdmVyZmxvd0hUTUwgPyB0aGlzLm92ZXJmbG93SFRNTCA6IFwic2Nyb2xsXCI7XHJcbiAgfVxyXG5cclxuICBhZGRCb2R5Qm90dG9tUGFkZGluZ0Zvck1vZHVsZSgpIHtcclxuICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdO1xyXG4gICAgdGhpcy5ib2R5UGFkZGluZyA9IHRoaXMuYm9keVBhZGRpbmcgPyBwYXJzZUludChib2R5LnN0eWxlLnBhZGRpbmdCb3R0b20pIDogMDtcclxuICAgIGJvZHkuc3R5bGUucGFkZGluZ0JvdHRvbSA9IHRoaXMuYm9keVBhZGRpbmcgKyAzMDAgKyAncHgnO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQm9keUJvdHRvbVBhZGRpbmdGb3JNb2R1bGUoKSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuYm9keVBhZGRpbmcgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdO1xyXG4gICAgICBib2R5LnN0eWxlLnBhZGRpbmdCb3R0b20gPSB0aGlzLmJvZHlQYWRkaW5nICsgJ3B4JztcclxuICAgICAgdGhpcy5ib2R5UGFkZGluZyA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VEaXNwbGF5VGFiKCkge1xyXG4gICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdmdWxsJztcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zZWxlY3RJbWdFdmVudC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5jYW52YVNlcnZpY2UuZXhwZWN0ZWRJbWdTaXplc0NoYW5nZShudWxsKTtcclxuICAgIHRoaXMubGlzdERpc3BsYXllZEV2ZW50LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ3ei1pbWctbWFuYWdlclwiPlxyXG4gIDwhLS0gSW1nIHNlbGVjdGlvbiBoYW5kbGVyIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ3ei1pbWctbWFuYWdlcl9fc2VsZWN0aW9uSGFuZGxlclwiICpuZ0lmPVwic2hvd1NlbGVjdGlvblwiPlxyXG4gICAgPGltZy1zZWxlY3Rpb24+PC9pbWctc2VsZWN0aW9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIEltZyBtYW5hZ2VyIG1vZHVsZSAtLT5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cIl9zaG93SW1nTWFuYWdlck1vZHVsZVwiXHJcbiAgICBjbGFzcz1cInd6LWltZy1tYW5hZ2VyX19tb2R1bGVcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAnd3otaW1nLW1hbmFnZXJfX21vZHVsZS0tc21hbGwnOiBzdGF0ZURpc3BsYXllZCA9PT0gJ3NtYWxsJyxcclxuICAgICAgJ3d6LWltZy1tYW5hZ2VyX19tb2R1bGUtLWZ1bGwnOiBzdGF0ZURpc3BsYXllZCA9PT0gJ2Z1bGwnLFxyXG4gICAgICAnd3otaW1nLW1hbmFnZXJfX21vZHVsZS0td2luZG93Jzogc3RhdGVEaXNwbGF5ZWQgPT09ICd3aW5kb3cnLFxyXG4gICAgICAnd3otaW1nLW1hbmFnZXJfX21vZHVsZS0tZWRpdCc6IGhpZGVUYWJ9XCJcclxuICA+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInd6LWltZy1tYW5hZ2VyX19tb2R1bGVfX2hlYWRlclwiICpuZ0lmPVwic3RhdGVEaXNwbGF5ZWQgIT09ICd3aW5kb3cnXCI+XHJcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9wZW5TbWFsbCgpXCIgKm5nSWY9XCJzdGF0ZURpc3BsYXllZCA9PT0gJ2Z1bGwnXCIgdHlwZT1cImJ1dHRvblwiPjxzcGFuPkV4cGFuZDwvc3Bhbj48aSBjbGFzcz1cImZhbCBmYS1jb21wcmVzcy1hbHRcIj48L2k+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9wZW5TbWFsbCgpXCIgKm5nSWY9XCJzdGF0ZURpc3BsYXllZCA9PT0gJ2Nsb3NlZCdcIiB0eXBlPVwiYnV0dG9uXCI+PHNwYW4+RXhwYW5kPC9zcGFuPjxpIGNsYXNzPVwiZmFsIGZhLWV4cGFuZC1hbHRcIj48L2k+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9wZW5GdWxsKClcIiAqbmdJZj1cInN0YXRlRGlzcGxheWVkID09PSAnc21hbGwnXCIgdHlwZT1cImJ1dHRvblwiPjxzcGFuPkV4cGFuZDwvc3Bhbj48aSBjbGFzcz1cImZhbCBmYS1leHBhbmQtYWx0XCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIChjbGljayk9XCJvbkNsb3NlKClcIiAqbmdJZj1cInN0YXRlRGlzcGxheWVkICE9PSAnY2xvc2VkJ1wiIHR5cGU9XCJidXR0b25cIj48c3Bhbj5DbG9zZTwvc3Bhbj48aSBjbGFzcz1cImZhbCBmYS10aW1lc1wiPjwvaT48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ3ei1pbWctbWFuYWdlcl9fbW9kdWxlX19jb250ZW50IHd6LWJsb2NrXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyd3ei1ibG9jay0td2luZG93Jzogc3RhdGVEaXNwbGF5ZWQgPT09ICd3aW5kb3cnfVwiPlxyXG4gICAgICA8aW1nLXRhYnNcclxuICAgICAgICBbc3RhdGVEaXNwbGF5ZWRdPVwic3RhdGVEaXNwbGF5ZWRcIlxyXG4gICAgICAgIFttdWx0aXBsZUltZ01vZGVdPVwibXVsdGlwbGVJbWdNb2RlXCJcclxuICAgICAgICBbbGlzdERpc3BsYXllZF09XCJsaXN0RGlzcGxheWVkXCJcclxuICAgICAgICAoaW1nTWFuYWdlckNsb3NlZCk9XCJvbkltZ01hbmFnZXJDbG9zZWQoKVwiXHJcbiAgICAgICAgKHN3aXRjaERpc3BsYXlXaW5kb3cpPVwiY2hhbmdlRGlzcGxheVRhYigpXCJcclxuICAgICAgICAoY3VycmVudFRhYik9XCJzZXRDdXJyZW50VGFiKCRldmVudClcIj5cclxuICAgICAgPC9pbWctdGFicz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==