@wizishop/img-manager 18.2.0 → 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.
- package/esm2022/lib/components/canva-btn/canva-btn.component.mjs +73 -0
- package/esm2022/lib/components/images-view/images-actions-handler.mjs +168 -0
- package/esm2022/lib/components/images-view/images-view.component.mjs +391 -0
- package/esm2022/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +70 -0
- package/esm2022/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +73 -0
- package/esm2022/lib/components/images-view/table-view/table-view.component.mjs +48 -0
- package/esm2022/lib/components/img-editor/cropper/cropper.component.mjs +313 -0
- package/esm2022/lib/components/img-editor/img-editor.component.mjs +129 -0
- package/esm2022/lib/components/img-editor/info-section/info-section.component.mjs +58 -0
- package/esm2022/lib/components/img-selection/img-selection.component.mjs +58 -0
- package/esm2022/lib/components/img-tabs/img-tabs.component.mjs +128 -0
- package/esm2022/lib/components/img-upload/img-upload.component.mjs +133 -0
- package/esm2022/lib/components/loader/loader.component.mjs +21 -0
- package/esm2022/lib/components/pexels-lib/pexels-lib.component.mjs +211 -0
- package/esm2022/lib/components/shared/alert/alert.component.mjs +26 -0
- package/esm2022/lib/components/shared/checkbox/checkbox.component.mjs +56 -0
- package/esm2022/lib/components/shared/dropdown/dropdown.component.mjs +21 -0
- package/esm2022/lib/components/shared/input-search/input-search.component.mjs +53 -0
- package/esm2022/lib/components/shared/pagination/page-selector/page-selector.component.mjs +50 -0
- package/esm2022/lib/components/shared/pagination/pagination.component.mjs +49 -0
- package/esm2022/lib/components/shared/select/select.component.mjs +117 -0
- package/esm2022/lib/components/shared/table/table.component.mjs +124 -0
- package/esm2022/lib/components/upload-list/upload-list.component.mjs +85 -0
- package/esm2022/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +41 -0
- package/{esm2020 → esm2022}/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +5 -5
- package/esm2022/lib/directives/auto-hide.directive.mjs +51 -0
- package/esm2022/lib/directives/copy-to-clipboard.directive.mjs +36 -0
- package/esm2022/lib/directives/drag-drop.directive.mjs +55 -0
- package/esm2022/lib/directives/loading.directive.mjs +43 -0
- package/esm2022/lib/directives/table/checkBoxRow.directive.mjs +130 -0
- package/esm2022/lib/directives/table/column.directive.mjs +50 -0
- package/esm2022/lib/directives/table/columnHeader.directive.mjs +215 -0
- package/esm2022/lib/directives/table/raw.directive.mjs +34 -0
- package/esm2022/lib/directives/zindex-toggle.directive.mjs +45 -0
- package/esm2022/lib/dto/canva-create-design.dto.mjs +9 -0
- package/esm2022/lib/dto/canva.dto.mjs +6 -0
- package/esm2022/lib/dto/config/apis/api.dto.mjs +11 -0
- package/esm2022/lib/dto/config/external/external-config.dto.mjs +5 -0
- package/esm2022/lib/dto/wizi-block-media.dto.mjs +7 -0
- package/esm2022/lib/pipes/images/img-src.pipe.mjs +29 -0
- package/{esm2020 → esm2022}/lib/pipes/number-to-array.pipe.mjs +4 -4
- package/esm2022/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +28 -0
- package/esm2022/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +53 -0
- package/esm2022/lib/pipes/pagination/text/custom-text.pipe.mjs +36 -0
- package/esm2022/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +25 -0
- package/{esm2020 → esm2022}/lib/pipes/select/select-filters.pipe.mjs +4 -4
- package/esm2022/lib/services/alert.service.mjs +53 -0
- package/{esm2020 → esm2022}/lib/services/api.service.mjs +4 -4
- package/esm2022/lib/services/canva.service.mjs +165 -0
- package/esm2022/lib/services/config/img-cdn.service.mjs +21 -0
- package/esm2022/lib/services/dom.service.mjs +31 -0
- package/{esm2020 → esm2022}/lib/services/icon.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/image-not-found.service.mjs +4 -4
- package/esm2022/lib/services/img-event.service.mjs +33 -0
- package/esm2022/lib/services/img-manager.service.mjs +134 -0
- package/esm2022/lib/services/img-selection.service.mjs +75 -0
- package/esm2022/lib/services/pexels.service.mjs +66 -0
- package/esm2022/lib/services/rename-picture.service.mjs +66 -0
- package/esm2022/lib/services/snackbar.service.mjs +67 -0
- package/esm2022/lib/services/table/filters-table.service.mjs +61 -0
- package/esm2022/lib/services/upload.service.mjs +20 -0
- package/esm2022/lib/services/user-settings.service.mjs +23 -0
- package/esm2022/lib/wz-img-manager.component.mjs +209 -0
- package/{esm2020 → esm2022}/lib/wz-img-manager.module.mjs +61 -61
- package/{fesm2020 → fesm2022}/wizishop-img-manager.mjs +1018 -830
- package/fesm2022/wizishop-img-manager.mjs.map +1 -0
- package/lib/components/canva-btn/canva-btn.component.d.ts +1 -1
- package/lib/components/images-view/images-actions-handler.d.ts +2 -1
- package/lib/components/images-view/images-view.component.d.ts +4 -9
- package/lib/components/images-view/mosaic-view/img-card/img-card.component.d.ts +1 -1
- package/lib/components/images-view/mosaic-view/mosaic-view.component.d.ts +1 -1
- package/lib/components/img-editor/cropper/cropper.component.d.ts +1 -1
- package/lib/components/img-editor/img-editor.component.d.ts +1 -1
- package/lib/components/img-editor/info-section/info-section.component.d.ts +1 -1
- package/lib/components/img-selection/img-selection.component.d.ts +4 -5
- package/lib/components/img-tabs/img-tabs.component.d.ts +1 -1
- package/lib/components/img-upload/img-upload.component.d.ts +1 -1
- package/lib/components/loader/loader.component.d.ts +1 -1
- package/lib/components/pexels-lib/pexels-lib.component.d.ts +1 -1
- package/lib/components/shared/alert/alert.component.d.ts +1 -1
- package/lib/components/shared/checkbox/checkbox.component.d.ts +1 -1
- package/lib/components/shared/dropdown/dropdown.component.d.ts +1 -1
- package/lib/components/shared/input-search/input-search.component.d.ts +1 -1
- package/lib/components/shared/pagination/page-selector/page-selector.component.d.ts +1 -1
- package/lib/components/shared/pagination/pagination.component.d.ts +1 -1
- package/lib/components/shared/select/select.component.d.ts +1 -1
- package/lib/components/shared/table/table.component.d.ts +1 -1
- package/lib/components/upload-list/upload-list.component.d.ts +1 -1
- package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts +1 -1
- package/lib/directives/auto-hide.directive.d.ts +1 -1
- package/lib/directives/copy-to-clipboard.directive.d.ts +1 -1
- package/lib/directives/table/checkBoxRow.directive.d.ts +1 -1
- package/lib/directives/table/column.directive.d.ts +1 -1
- package/lib/directives/table/columnHeader.directive.d.ts +1 -1
- package/lib/directives/zindex-toggle.directive.d.ts +1 -1
- package/lib/wz-img-manager.component.d.ts +3 -3
- package/package.json +6 -12
- package/wizishop-img-manager-18.2.1-beta.tgz +0 -0
- package/wz-img-manager.scss +77 -60
- package/esm2020/lib/components/canva-btn/canva-btn.component.mjs +0 -67
- package/esm2020/lib/components/images-view/images-actions-handler.mjs +0 -154
- package/esm2020/lib/components/images-view/images-view.component.mjs +0 -369
- package/esm2020/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +0 -66
- package/esm2020/lib/components/images-view/mosaic-view/mosaic-view.component.mjs +0 -71
- package/esm2020/lib/components/images-view/table-view/table-view.component.mjs +0 -48
- package/esm2020/lib/components/img-editor/cropper/cropper.component.mjs +0 -307
- package/esm2020/lib/components/img-editor/img-editor.component.mjs +0 -124
- package/esm2020/lib/components/img-editor/info-section/info-section.component.mjs +0 -54
- package/esm2020/lib/components/img-selection/img-selection.component.mjs +0 -53
- package/esm2020/lib/components/img-tabs/img-tabs.component.mjs +0 -122
- package/esm2020/lib/components/img-upload/img-upload.component.mjs +0 -126
- package/esm2020/lib/components/loader/loader.component.mjs +0 -21
- package/esm2020/lib/components/pexels-lib/pexels-lib.component.mjs +0 -203
- package/esm2020/lib/components/shared/alert/alert.component.mjs +0 -27
- package/esm2020/lib/components/shared/checkbox/checkbox.component.mjs +0 -52
- package/esm2020/lib/components/shared/dropdown/dropdown.component.mjs +0 -21
- package/esm2020/lib/components/shared/input-search/input-search.component.mjs +0 -54
- package/esm2020/lib/components/shared/pagination/page-selector/page-selector.component.mjs +0 -49
- package/esm2020/lib/components/shared/pagination/pagination.component.mjs +0 -49
- package/esm2020/lib/components/shared/select/select.component.mjs +0 -110
- package/esm2020/lib/components/shared/table/table.component.mjs +0 -116
- package/esm2020/lib/components/upload-list/upload-list.component.mjs +0 -79
- package/esm2020/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +0 -37
- package/esm2020/lib/directives/auto-hide.directive.mjs +0 -48
- package/esm2020/lib/directives/copy-to-clipboard.directive.mjs +0 -37
- package/esm2020/lib/directives/drag-drop.directive.mjs +0 -57
- package/esm2020/lib/directives/loading.directive.mjs +0 -42
- package/esm2020/lib/directives/table/checkBoxRow.directive.mjs +0 -114
- package/esm2020/lib/directives/table/column.directive.mjs +0 -45
- package/esm2020/lib/directives/table/columnHeader.directive.mjs +0 -204
- package/esm2020/lib/directives/table/raw.directive.mjs +0 -31
- package/esm2020/lib/directives/zindex-toggle.directive.mjs +0 -42
- package/esm2020/lib/dto/canva-create-design.dto.mjs +0 -4
- package/esm2020/lib/dto/canva.dto.mjs +0 -4
- package/esm2020/lib/dto/config/apis/api.dto.mjs +0 -9
- package/esm2020/lib/dto/config/external/external-config.dto.mjs +0 -3
- package/esm2020/lib/dto/wizi-block-media.dto.mjs +0 -3
- package/esm2020/lib/pipes/images/img-src.pipe.mjs +0 -28
- package/esm2020/lib/pipes/pagination/array-total-pages/array-pages.pipe.mjs +0 -28
- package/esm2020/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.mjs +0 -53
- package/esm2020/lib/pipes/pagination/text/custom-text.pipe.mjs +0 -35
- package/esm2020/lib/pipes/pagination/total-pages/is-last-page.pipe.mjs +0 -25
- package/esm2020/lib/services/alert.service.mjs +0 -50
- package/esm2020/lib/services/canva.service.mjs +0 -159
- package/esm2020/lib/services/config/img-cdn.service.mjs +0 -23
- package/esm2020/lib/services/dom.service.mjs +0 -33
- package/esm2020/lib/services/img-event.service.mjs +0 -35
- package/esm2020/lib/services/img-manager.service.mjs +0 -136
- package/esm2020/lib/services/img-selection.service.mjs +0 -76
- package/esm2020/lib/services/pexels.service.mjs +0 -62
- package/esm2020/lib/services/rename-picture.service.mjs +0 -63
- package/esm2020/lib/services/snackbar.service.mjs +0 -64
- package/esm2020/lib/services/table/filters-table.service.mjs +0 -60
- package/esm2020/lib/services/upload.service.mjs +0 -22
- package/esm2020/lib/services/user-settings.service.mjs +0 -25
- package/esm2020/lib/wz-img-manager.component.mjs +0 -192
- package/fesm2015/wizishop-img-manager.mjs +0 -4035
- package/fesm2015/wizishop-img-manager.mjs.map +0 -1
- package/fesm2020/wizishop-img-manager.mjs.map +0 -1
- package/wizishop-img-manager-18.2.0.tgz +0 -0
- /package/{esm2020 → esm2022}/lib/animations/easeInOut/ease-in-out.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/animations/insertRemove/insert-remove.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/animations/listAnnimation/list.animation.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/shared/select/call-to-action.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/shared/select/select-items.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/ImgManagerDisplayConfig.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/config/image-cdn/image-cdn-config.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/config/img-manager.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/export-dtos.api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/img-editor-config.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/img-manager.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/pexels-img.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/picture-name-update.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/stateDisplayed.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dto/tabDisplayed.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/wizishop-img-manager.mjs +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wizishop-img-manager.mjs","sources":["../../../../projects/wz-img-manager/src/lib/services/img-selection.service.ts","../../../../projects/wz-img-manager/src/lib/services/user-settings.service.ts","../../../../projects/wz-img-manager/src/lib/services/alert.service.ts","../../../../projects/wz-img-manager/src/lib/services/img-event.service.ts","../../../../projects/wz-img-manager/src/lib/services/api.service.ts","../../../../projects/wz-img-manager/src/lib/services/upload.service.ts","../../../../projects/wz-img-manager/src/lib/services/canva.service.ts","../../../../projects/wz-img-manager/src/lib/services/dom.service.ts","../../../../projects/wz-img-manager/src/lib/services/icon.service.ts","../../../../projects/wz-img-manager/src/lib/animations/easeInOut/ease-in-out.animation.ts","../../../../projects/wz-img-manager/src/lib/services/img-manager.service.ts","../../../../projects/wz-img-manager/src/lib/services/rename-picture.service.ts","../../../../projects/wz-img-manager/src/lib/services/config/img-cdn.service.ts","../../../../projects/wz-img-manager/src/lib/services/image-not-found.service.ts","../../../../projects/wz-img-manager/src/lib/components/images-view/images-actions-handler.ts","../../../../projects/wz-img-manager/src/lib/directives/loading.directive.ts","../../../../projects/wz-img-manager/src/lib/pipes/images/img-src.pipe.ts","../../../../projects/wz-img-manager/src/lib/components/images-view/mosaic-view/img-card/img-card.component.ts","../../../../projects/wz-img-manager/src/lib/components/images-view/mosaic-view/img-card/img-card.component.html","../../../../projects/wz-img-manager/src/lib/components/upload-list/upload-list.component.ts","../../../../projects/wz-img-manager/src/lib/components/upload-list/upload-list.component.html","../../../../projects/wz-img-manager/src/lib/components/loader/loader.component.ts","../../../../projects/wz-img-manager/src/lib/components/loader/loader.component.html","../../../../projects/wz-img-manager/src/lib/directives/drag-drop.directive.ts","../../../../projects/wz-img-manager/src/lib/components/img-upload/img-upload.component.ts","../../../../projects/wz-img-manager/src/lib/components/img-upload/img-upload.component.html","../../../../projects/wz-img-manager/src/lib/services/pexels.service.ts","../../../../projects/wz-img-manager/src/lib/animations/listAnnimation/list.animation.ts","../../../../projects/wz-img-manager/src/lib/directives/abstract-debounce/abstract-debounce.directive.ts","../../../../projects/wz-img-manager/src/lib/directives/abstract-debounce/debounce-keyup.directive.ts","../../../../projects/wz-img-manager/src/lib/components/shared/input-search/input-search.component.ts","../../../../projects/wz-img-manager/src/lib/components/shared/input-search/input-search.component.html","../../../../projects/wz-img-manager/src/lib/components/shared/alert/alert.component.ts","../../../../projects/wz-img-manager/src/lib/components/shared/alert/alert.component.html","../../../../projects/wz-img-manager/src/lib/components/pexels-lib/pexels-lib.component.ts","../../../../projects/wz-img-manager/src/lib/components/pexels-lib/pexels-lib.component.html","../../../../projects/wz-img-manager/src/lib/directives/copy-to-clipboard.directive.ts","../../../../projects/wz-img-manager/src/lib/components/img-editor/info-section/info-section.component.ts","../../../../projects/wz-img-manager/src/lib/components/img-editor/info-section/info-section.component.html","../../../../projects/wz-img-manager/src/lib/animations/insertRemove/insert-remove.animation.ts","../../../../projects/wz-img-manager/src/lib/components/shared/dropdown/dropdown.component.ts","../../../../projects/wz-img-manager/src/lib/components/shared/dropdown/dropdown.component.html","../../../../projects/wz-img-manager/src/lib/components/img-editor/cropper/cropper.component.ts","../../../../projects/wz-img-manager/src/lib/components/img-editor/cropper/cropper.component.html","../../../../projects/wz-img-manager/src/lib/components/img-editor/img-editor.component.ts","../../../../projects/wz-img-manager/src/lib/components/img-editor/img-editor.component.html","../../../../projects/wz-img-manager/src/lib/directives/auto-hide.directive.ts","../../../../projects/wz-img-manager/src/lib/components/canva-btn/canva-btn.component.ts","../../../../projects/wz-img-manager/src/lib/components/canva-btn/canva-btn.component.html","../../../../projects/wz-img-manager/src/lib/pipes/pagination/total-pages/is-last-page.pipe.ts","../../../../projects/wz-img-manager/src/lib/pipes/pagination/array-total-pages/array-pages.pipe.ts","../../../../projects/wz-img-manager/src/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.ts","../../../../projects/wz-img-manager/src/lib/components/shared/pagination/page-selector/page-selector.component.ts","../../../../projects/wz-img-manager/src/lib/components/shared/pagination/page-selector/page-selector.component.html","../../../../projects/wz-img-manager/src/lib/pipes/pagination/text/custom-text.pipe.ts","../../../../projects/wz-img-manager/src/lib/components/shared/pagination/pagination.component.ts","../../../../projects/wz-img-manager/src/lib/components/shared/pagination/pagination.component.html","../../../../projects/wz-img-manager/src/lib/pipes/number-to-array.pipe.ts","../../../../projects/wz-img-manager/src/lib/components/images-view/mosaic-view/mosaic-view.component.ts","../../../../projects/wz-img-manager/src/lib/components/images-view/mosaic-view/mosaic-view.component.html","../../../../projects/wz-img-manager/src/lib/services/table/filters-table.service.ts","../../../../projects/wz-img-manager/src/lib/components/shared/checkbox/checkbox.component.ts","../../../../projects/wz-img-manager/src/lib/components/shared/checkbox/checkbox.component.html","../../../../projects/wz-img-manager/src/lib/components/shared/table/table.component.ts","../../../../projects/wz-img-manager/src/lib/components/shared/table/table.component.html","../../../../projects/wz-img-manager/src/lib/directives/table/column.directive.ts","../../../../projects/wz-img-manager/src/lib/directives/table/checkBoxRow.directive.ts","../../../../projects/wz-img-manager/src/lib/directives/table/columnHeader.directive.ts","../../../../projects/wz-img-manager/src/lib/directives/table/raw.directive.ts","../../../../projects/wz-img-manager/src/lib/components/images-view/table-view/table-view.component.ts","../../../../projects/wz-img-manager/src/lib/components/images-view/table-view/table-view.component.html","../../../../projects/wz-img-manager/src/lib/components/images-view/images-view.component.ts","../../../../projects/wz-img-manager/src/lib/components/images-view/images-view.component.html","../../../../projects/wz-img-manager/src/lib/directives/zindex-toggle.directive.ts","../../../../projects/wz-img-manager/src/lib/pipes/select/select-filters.pipe.ts","../../../../projects/wz-img-manager/src/lib/components/shared/select/select.component.ts","../../../../projects/wz-img-manager/src/lib/components/shared/select/select.component.html","../../../../projects/wz-img-manager/src/lib/components/img-tabs/img-tabs.component.ts","../../../../projects/wz-img-manager/src/lib/components/img-tabs/img-tabs.component.html","../../../../projects/wz-img-manager/src/lib/components/img-selection/img-selection.component.ts","../../../../projects/wz-img-manager/src/lib/components/img-selection/img-selection.component.html","../../../../projects/wz-img-manager/src/lib/wz-img-manager.component.ts","../../../../projects/wz-img-manager/src/lib/wz-img-manager.component.html","../../../../projects/wz-img-manager/src/lib/services/snackbar.service.ts","../../../../projects/wz-img-manager/src/lib/wz-img-manager.module.ts","../../../../projects/wz-img-manager/src/lib/dto/canva.dto.ts","../../../../projects/wz-img-manager/src/lib/dto/config/apis/api.dto.ts","../../../../projects/wz-img-manager/src/lib/dto/config/external/external-config.dto.ts","../../../../projects/wz-img-manager/src/public-api.ts","../../../../projects/wz-img-manager/src/wizishop-img-manager.ts"],"sourcesContent":["import { Injectable, Optional, SkipSelf } from '@angular/core';\r\nimport { ImgPictureDTO } from '../dto/img-manager.dto';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\r\n\r\n@Injectable()\r\nexport class ImgSelectionService {\r\n\r\n multipleImgMode: boolean = false;\r\n imgSelection$: BehaviorSubject<ImgPictureDTO[]> = new BehaviorSubject<ImgPictureDTO[]>([]);\r\n imgSelectedListLoading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n constructor() {}\r\n\r\n getImgSelection() {\r\n return this.imgSelection$.getValue();\r\n }\r\n\r\n // Use in img manager webelement, when the product img selection is retrieved\r\n setImgSelection(imgSelectedList: ImgPictureDTO[]) {\r\n this.imgSelection$.next(imgSelectedList || []);\r\n }\r\n\r\n addImgSelected(picture : ImgPictureDTO) {\r\n if (this.multipleImgMode) {\r\n this.imgSelection$.next([...this.imgSelection$.getValue(), picture]);\r\n } else {\r\n this.imgSelection$.next([picture]);\r\n }\r\n }\r\n\r\n removeImgSelectedByIndex(index: number) {\r\n const imgSelectedList = this.imgSelection$.getValue();\r\n imgSelectedList.splice(index, 1);\r\n this.imgSelection$.next(imgSelectedList);\r\n\r\n }\r\n\r\n removeImgSelectedById(id_file: string) {\r\n if (!this.multipleImgMode) {\r\n this.imgSelection$.next([]);\r\n return;\r\n }\r\n this.imgSelection$.next(this.imgSelection$.getValue().filter(img => img.id_file !== id_file));\r\n }\r\n\r\n removeImgSelectionByIds(id_file_list: string[]) {\r\n if (!this.multipleImgMode) {\r\n this.imgSelection$.next([]);\r\n return;\r\n }\r\n this.imgSelection$.next(this.imgSelection$.getValue().filter(img => id_file_list.includes(img.id_file)));\r\n }\r\n\r\n removeAllImgSelected() { // TODO test it\r\n this.imgSelection$.next([]);\r\n }\r\n\r\n setMultipleImgMode(activated: boolean) {\r\n this.multipleImgMode = activated;\r\n }\r\n\r\n initImgSelectedList(imgSelectedList: ImgPictureDTO[]) {\r\n // Retrieve the imgSelectedList from parameter\r\n if (imgSelectedList) {\r\n this.imgSelection$.next(imgSelectedList);\r\n return;\r\n }\r\n this.imgSelection$.next([]);\r\n }\r\n\r\n /**\r\n * Use angular cdk function\r\n * Called by img selection component\r\n * @param event\r\n */\r\n moveImgOrder(event: CdkDragDrop<string[]>) {\r\n const fromIndex = event.previousIndex;\r\n const toIndex = event.currentIndex;\r\n const imgSelectedList = this.imgSelection$.getValue();\r\n imgSelectedList.splice(toIndex, 0, imgSelectedList.splice(fromIndex, 1)[0]);\r\n this.imgSelection$.next(imgSelectedList);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UserSettingsService {\r\n\r\n private userdisplayPreference = 'WzImgManagerListDisplayed';\r\n\r\n /**\r\n * true : display list\r\n * false : display mosaic\r\n * @param value\r\n */\r\n setUserDisplayPreference(value: boolean) {\r\n localStorage.setItem(this.userdisplayPreference, '' + value);\r\n }\r\n\r\n getUserDisplayPreference(): boolean {\r\n const value = localStorage.getItem(this.userdisplayPreference);\r\n return value == 'true';\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NwbAlertConfig, NwbAlertComponent } from '@wizishop/ng-wizi-bulma';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { NwbAlertService } from '@wizishop/ng-wizi-bulma';\r\n\r\n@Injectable()\r\nexport class AlertService {\r\n\r\n actionMsg = 'ImgManager.alert.action';\r\n\r\n alertConfig: NwbAlertConfig = {\r\n message: '',\r\n duration: 5000\r\n }\r\n\r\n private alertRefComponent: NwbAlertComponent;\r\n\r\n constructor(\r\n private nwbAlertService: NwbAlertService,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n openAlert(msgKey: string) {\r\n this.closePreviousAlert();\r\n this.translateService.get(msgKey).subscribe(trans => {\r\n this.alertConfig.message = trans;\r\n this.setAlertColor(msgKey);\r\n\r\n this.alertRefComponent = this.nwbAlertService.open(this.alertConfig);\r\n this.alertRefComponent.afterClosed().subscribe();\r\n });\r\n }\r\n\r\n openAlertWithBackendResponse(msgKey: string, msgBackend: string) {\r\n this.translateService.get(msgKey).subscribe(trans => {\r\n this.alertConfig.message = trans;\r\n this.alertConfig.message += '<br/>' + JSON.parse(msgBackend).message;\r\n\r\n this.closePreviousAlert();\r\n this.alertRefComponent = this.nwbAlertService.open(this.alertConfig);\r\n this.alertRefComponent.afterClosed().subscribe();\r\n });\r\n }\r\n\r\n private closePreviousAlert() {\r\n if (this.alertRefComponent) {\r\n this.alertRefComponent.dismiss();\r\n }\r\n }\r\n\r\n private setAlertColor(msgKey: string) {\r\n const isErrorMsg: boolean = /error/i.test(msgKey);\r\n this.alertConfig.color = isErrorMsg ? 'is-danger' : 'is-success';\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { BehaviorSubject, Subject } from \"rxjs\";\r\nimport { ImgPictureDTO } from '../dto/img-manager.dto';\r\n\r\n@Injectable()\r\nexport class ImgEventService {\r\n\r\n imgRemoved$ = new BehaviorSubject<string>(undefined);\r\n private imgToEditEvent: Subject<ImgPictureDTO> = new Subject<ImgPictureDTO>();\r\n private imgAdded: Subject<string> = new Subject<string>();\r\n private listDisplayedChange: Subject<boolean> = new Subject<boolean>();\r\n\r\n\r\n emitImgToEdit(imgToEdit: ImgPictureDTO){\r\n this.imgToEditEvent.next(imgToEdit);\r\n }\r\n\r\n getImgToEditEventListener(){\r\n return this.imgToEditEvent.asObservable();\r\n }\r\n\r\n emitImgAdded(id_file: string){\r\n this.imgAdded.next(id_file);\r\n }\r\n\r\n getImgAddedEventListner(){\r\n return this.imgAdded.asObservable();\r\n }\r\n\r\n emitlistDisplayedChange(value: boolean){\r\n this.listDisplayedChange.next(value);\r\n }\r\n\r\n getlistDisplayedChange(){\r\n return this.listDisplayedChange.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ImgPictureDTO, ImgPicturesDTO } from '../dto/img-manager.dto';\r\nimport { Observable } from 'rxjs';\r\nimport { ImgCDNConfigDTO } from '../dto/export-dtos.api';\r\nimport { HttpParams } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport abstract class ApiService {\r\n\r\n abstract CONFIG: {\r\n image_manager_route: string;\r\n canva_token: string;\r\n canva_url: string;\r\n pexels_token: string\r\n pexels_route: string;\r\n assets_route: string;\r\n }\r\n\r\n abstract IMG_SIZE : ImgCDNConfigDTO;\r\n\r\n abstract getShopCategory(): string;\r\n\r\n abstract getShopImgList(params?: HttpParams): Observable<ImgPicturesDTO>;\r\n\r\n abstract getShopTotalImgList(params?: HttpParams): Observable<number>;\r\n\r\n abstract getShopImg(idFile: string): Observable<ImgPictureDTO>;\r\n\r\n abstract uploadFile(formData: FormData): Observable<ImgPictureDTO>;\r\n\r\n abstract uploadFileByUrl(url: string, fileName?: string): Observable<ImgPictureDTO>;\r\n\r\n abstract replaceImg(imageBase64: string, id_file: string): Observable<ImgPictureDTO>;\r\n\r\n abstract changeImgName(fileName: string, id_file: string): Observable<ImgPictureDTO>;\r\n\r\n abstract removeImg(id_file: string): Observable<ImgPictureDTO>;\r\n\r\n abstract removeMultipleImg(id_array: string[]): Observable<ImgPictureDTO[]>;\r\n\r\n}","import { Injectable, inject } from '@angular/core';\r\nimport { ApiService } from './api.service';\r\nimport { Subject, tap } from 'rxjs';\r\nimport { ImgPictureDTO } from '../dto/img-manager.dto';\r\n\r\n@Injectable()\r\nexport class UploadService {\r\n\r\n imageUploaded$ = new Subject<ImgPictureDTO>();\r\n\r\n apiService = inject(ApiService);\r\n\r\n uploadFile(formData: FormData) {\r\n return this.apiService.uploadFile(formData).pipe(\r\n tap((img: ImgPictureDTO) => this.imageUploaded$.next(img))\r\n );\r\n }\r\n\r\n uploadFileByUrl(url: string, fileName?: string) {\r\n return this.apiService.uploadFileByUrl(url, fileName).pipe(\r\n tap((img: ImgPictureDTO) => this.imageUploaded$.next(img))\r\n );\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable, Subscriber, BehaviorSubject } from 'rxjs';\r\nimport { CanvaButtonApi } from '../dto/canva.dto';\r\nimport { WiziBlockMediaDto } from '../dto/wizi-block-media.dto';\r\nimport { AlertService } from './alert.service';\r\nimport { ImgEventService } from './img-event.service';\r\nimport { take } from 'rxjs/operators';\r\nimport { CanvaCreateDesign } from '../dto/canva-create-design.dto';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UploadService } from './upload.service';\r\nimport { ApiService } from './api.service';\r\n\r\ndeclare let Canva : {\r\n DesignButton : {\r\n initialize: (opts: { apiKey: string }) => Promise<CanvaButtonApi>;\r\n }\r\n};\r\n\r\n@Injectable()\r\nexport class CanvaService {\r\n\r\n canvaApi // Object use to manage the canva api\r\n get canvaApiURL() {\r\n return this.apiService.CONFIG.canva_url;\r\n };\r\n get canvaApiKey() {\r\n return this.apiService.CONFIG.canva_token;\r\n }\r\n\r\n imgLoading = false;\r\n uploadingImg = 'ImgManager.CanvaBtn.uploadingImg';\r\n successUploadPhoto = 'ImgManager.CanvaBtn.successImport';\r\n errorUploadCanvaImg = 'ImgManager.CanvaBtn.errorUploadCanvaImg';\r\n errorRenameCanvaImg = 'ImgManager.CanvaBtn.errorRenameCanvaImg';\r\n\r\n forceToOpenCanva: boolean = false;\r\n\r\n private bindExpectedImgSizeEvent: BehaviorSubject<WiziBlockMediaDto> = new BehaviorSubject<WiziBlockMediaDto>(null);\r\n private bindExpectedSizeDone = this.bindExpectedImgSizeEvent.asObservable();\r\n\r\n constructor(\r\n private wzImgEventService: ImgEventService,\r\n private alertService: AlertService,\r\n private translateService: TranslateService,\r\n private uploadService: UploadService,\r\n private apiService: ApiService\r\n ) {}\r\n\r\n getCanvaLogo() {\r\n return this.apiService.CONFIG.assets_route + \"canva/icon_canva.svg\";\r\n }\r\n\r\n bindEventExepectedImgSizeChange() {\r\n return this.bindExpectedSizeDone;\r\n }\r\n\r\n expectedImgSizesChange (mediaDTO: WiziBlockMediaDto){\r\n this.bindExpectedImgSizeEvent.next(mediaDTO);\r\n if (this.forceToOpenCanva) {\r\n this.openCanva(parseInt(mediaDTO.image_width), parseInt(mediaDTO.image_height));\r\n }\r\n }\r\n\r\n getCanvaApi():Observable<CanvaButtonApi> {\r\n return new Observable(observer => {\r\n this.loadCanva().subscribe({\r\n complete: () => {\r\n if(this.canvaApi && Canva.DesignButton) {\r\n observer.next(this.canvaApi);\r\n observer.complete();\r\n } else {\r\n this.initializeCanva(observer);\r\n }\r\n }\r\n })\r\n });\r\n }\r\n\r\n private initializeCanva(observer: Subscriber<CanvaButtonApi>) {\r\n if (Canva.DesignButton) {\r\n Canva.DesignButton.initialize({\r\n apiKey: this.canvaApiKey\r\n\r\n }).then((canvaApi) => {\r\n this.canvaApi = canvaApi;\r\n observer.next(this.canvaApi);\r\n observer.complete();\r\n });\r\n }\r\n }\r\n\r\n private loadCanva():Observable<null> {\r\n return new Observable(observer => {\r\n if(this.canvaApi) {\r\n observer.complete();\r\n }else{\r\n this.loadCanvaScript(observer);\r\n }\r\n });\r\n }\r\n\r\n private loadCanvaScript(observer: Subscriber<null>) {\r\n\r\n const node = document.createElement('script');\r\n node.src = this.canvaApiURL;\r\n node.type = 'text/javascript';\r\n node.async = false;\r\n node.charset = 'utf-8';\r\n node.onload = () => {\r\n observer.complete();\r\n }\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n }\r\n\r\n openCanva(width: number, height: number) {\r\n if (this.imgLoading) {\r\n return;\r\n }\r\n this.getCanvaApi().pipe(take(1)).subscribe((api: CanvaButtonApi) => {\r\n this.canvaApi = api;\r\n this.addOverflowBody();\r\n this.createDesign(width, height);\r\n });\r\n }\r\n\r\n private addOverflowBody() {\r\n document.body.classList.add('ovh-canva');\r\n }\r\n\r\n private removeOverflowBody() {\r\n document.body.classList.remove('ovh-canva');\r\n }\r\n\r\n private createDesign(width: number, height: number) {\r\n const createDesign: CanvaCreateDesign = {\r\n type: 'EtsyShopIcon',\r\n dimensions : {\r\n units: 'px',\r\n width: width ? width : undefined,\r\n height: height ? height : undefined,\r\n },\r\n publishLabel: this.translateService.instant('ImgManager.CanvaBtn.publish'),\r\n };\r\n this.canvaApi.createDesign({\r\n design: createDesign,\r\n onDesignPublish: ({ exportUrl, designTitle }) => this.designPublished(exportUrl, designTitle),\r\n onDesignClose: () => {\r\n this.removeOverflowBody();\r\n }\r\n\r\n });\r\n }\r\n\r\n private designPublished(exportUrl: string, designTitle: string) {\r\n this.alertService.openAlert(this.uploadingImg);\r\n this.imgLoading = true;\r\n\r\n\r\n this.uploadService.uploadFileByUrl(exportUrl, designTitle).pipe(take(1)).subscribe({\r\n next: (img) => {\r\n this.imgLoading = false;\r\n this.removeOverflowBody();\r\n\r\n this.wzImgEventService.emitImgAdded(img.id_file);\r\n this.alertService.openAlert(this.successUploadPhoto);\r\n },\r\n error: error => {\r\n this.imgLoading = false;\r\n this.removeOverflowBody();\r\n\r\n if (error.error.code === 406 && error.error.message) {\r\n this.alertService.openAlertWithBackendResponse(this.errorUploadCanvaImg, error.error.message)\r\n } else {\r\n this.alertService.openAlert(this.errorUploadCanvaImg);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class DomService {\r\n\r\n private documentEventSource = new Subject();\r\n private documentEventDone = this.documentEventSource.asObservable();\r\n\r\n private documentScrollSource = new Subject();\r\n private documentScrollDone = this.documentScrollSource.asObservable();\r\n\r\n documentEvent() {\r\n return this.documentEventDone;\r\n }\r\n\r\n setDocumentEventListener() {\r\n document.body.addEventListener('click', event => {\r\n this.documentEventSource.next(event.target);\r\n });\r\n }\r\n\r\n documentScroll() {\r\n return this.documentScrollDone;\r\n }\r\n\r\n setScrollEventListener() {\r\n window.onscroll = () => {\r\n this.documentScrollSource.next(window);\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class IconService {\r\n\r\n loadIconLib() {\r\n const link = document.createElement('link');\r\n link.href = 'https://media.cdnws.com/_t/_/dist/icons/fontawesome/css/all.min.css?v1.05';\r\n link.rel = 'stylesheet';\r\n link.crossOrigin = \"anonymous\";\r\n document.getElementsByTagName('head')[0].appendChild(link);\r\n }\r\n\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const easeInOut = // the fade-in/fade-out animation.\ntrigger('easeInOut', [\n\n // the \"in\" style determines the \"resting\" state of the element when it is visible.\n state('in', style({opacity: 1})),\n\n // fade in when created. this could also be written as transition('void => *')\n transition(':enter', [\n style({opacity: 0}),\n animate('0.5s ease-in-out' )\n ]),\n]);\n","import { Injectable, inject } from '@angular/core';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { BehaviorSubject, debounceTime, distinctUntilChanged, forkJoin, map, merge, shareReplay, startWith, Subject, switchMap, take, tap } from \"rxjs\";\r\nimport { ImgPicturesDTO, ParamsImgManagerDTO } from '../dto/img-manager.dto';\r\nimport { ImgManagerDisplayConfig } from '../dto/export-dtos.api';\r\nimport { ImgManagerConfig } from '../dto/config/img-manager';\r\nimport { ApiService } from './api.service';\r\nimport { UploadService } from './upload.service';\r\n\r\n@Injectable()\r\nexport class ImgManagerService {\r\n\r\n private readonly uploadService = inject(UploadService);\r\n\r\n params = new HttpParams().set(\"limit\",\"20\").set(\"page\",\"1\");\r\n\r\n // Display the img selection\r\n private pageFicheProductConfig: ImgManagerDisplayConfig = {\r\n stateDisplayed: 'closed',\r\n multipleImgMode: true,\r\n showImgManagerModule: true,\r\n showSelection: true,\r\n displayBtn: true,\r\n pageficheProduct: true\r\n }\r\n\r\n private angularFicheProductConfig: ImgManagerDisplayConfig = {\r\n stateDisplayed: 'closed',\r\n multipleImgMode: true,\r\n showImgManagerModule: true,\r\n showSelection: true,\r\n displayBtn: false,\r\n pageficheProduct: true\r\n }\r\n\r\n private wiziblockConfig: ImgManagerDisplayConfig = {\r\n stateDisplayed: 'closed',\r\n multipleImgMode: false,\r\n showImgManagerModule: true,\r\n showSelection: false,\r\n displayBtn: false\r\n }\r\n\r\n private simpleWithButtonOpenerConfig: ImgManagerDisplayConfig = {\r\n stateDisplayed: 'closed',\r\n multipleImgMode: false,\r\n showImgManagerModule: true,\r\n showSelection: false,\r\n displayBtn: true\r\n }\r\n\r\n private fullWindowConfig: ImgManagerDisplayConfig = {\r\n stateDisplayed: 'window',\r\n multipleImgMode: false,\r\n showImgManagerModule: true,\r\n showSelection: false,\r\n displayBtn: false\r\n }\r\n\r\n private apiService = inject(ApiService);\r\n private destroy$ = new Subject<void>();\r\n\r\n private get DEFAULT_SEARCH_PARAMS() {\r\n return {\r\n limit: '30',\r\n page: '1',\r\n };\r\n }\r\n\r\n private get DEFAULT_DATA_LIST(): {\r\n imageList: ImgPicturesDTO;\r\n imageTotal: number;\r\n } {\r\n return {\r\n imageList: {\r\n data: [],\r\n filter: [],\r\n limit: 0,\r\n page: 0,\r\n totalRecords: 0\r\n },\r\n imageTotal: 0\r\n };\r\n }\r\n\r\n public searchImagesParameters$ = new BehaviorSubject<ParamsImgManagerDTO>(this.DEFAULT_SEARCH_PARAMS);\r\n public refreshImageList$ = new Subject<void>();\r\n public resetImageList$ = merge(\r\n this.uploadService.imageUploaded$\r\n );\r\n\r\n public isLoading$ = new BehaviorSubject<boolean>(true);\r\n private fetchImagesList$ = merge(\r\n this.searchImagesParameters$.pipe(\r\n debounceTime(800),\r\n distinctUntilChanged(),\r\n ),\r\n this.refreshImageList$.pipe(\r\n switchMap(() => this.searchImagesParameters$)\r\n ),\r\n ).pipe(\r\n map((params) => this.getHttpParameters(params)),\r\n tap(() => this.isLoading$.next(true)),\r\n switchMap((params) => forkJoin({\r\n imageList: this.apiService.getShopImgList(params).pipe(take(1)),\r\n imageTotal: this.apiService.getShopTotalImgList(params).pipe(take(1))\r\n })),\r\n tap(() => this.isLoading$.next(false))\r\n );\r\n\r\n\r\n public imageList$ = merge(\r\n this.fetchImagesList$,\r\n this.resetImageList$.pipe(\r\n tap(() => this.isLoading$.next(true)),\r\n tap(() => this.searchImagesParameters$.next(this.DEFAULT_SEARCH_PARAMS)),\r\n map(() => this.DEFAULT_DATA_LIST)\r\n )\r\n ).pipe(\r\n startWith( this.DEFAULT_DATA_LIST),\r\n shareReplay(1)\r\n );\r\n\r\n\r\n getHttpParameters(params?: ParamsImgManagerDTO) {\r\n let parameters = new HttpParams();\r\n parameters = parameters.set('id_file:sort', 'desc');\r\n for (const param in params) {\r\n parameters = parameters.set(param, params[param]);\r\n }\r\n\r\n if (params?.search) {\r\n parameters = parameters.set('display_name:contains', params.search);\r\n }\r\n return parameters;\r\n }\r\n\r\n getShopImg(idFile: string) {\r\n return this.apiService.getShopImg(idFile).pipe(\r\n tap(() => this.refreshImageList$.next())\r\n );\r\n }\r\n\r\n replaceImg(imageBase64: string, id_file: string) {\r\n return this.apiService.replaceImg(imageBase64, id_file).pipe(\r\n tap(() => this.refreshImageList$.next())\r\n );\r\n }\r\n\r\n\r\n removeImg(id_file: string) {\r\n return this.apiService.removeImg(id_file).pipe(\r\n tap(() => this.refreshImageList$.next())\r\n );\r\n }\r\n\r\n removeMultipleImg(id_array: string[]){\r\n return this.apiService.removeMultipleImg(id_array).pipe(\r\n tap(() => this.refreshImageList$.next())\r\n );\r\n }\r\n\r\n getImgManagerDisplayConfig(displayName: ImgManagerConfig) {\r\n switch (displayName) {\r\n case \"window\":\r\n return this.fullWindowConfig;\r\n\r\n case \"wizi-block\":\r\n return this.wiziblockConfig;\r\n\r\n case \"fiche-product\":\r\n return this.pageFicheProductConfig;\r\n\r\n case \"simple-with-button\":\r\n return this.simpleWithButtonOpenerConfig;\r\n\r\n case 'angular-fiche-product':\r\n return this.angularFicheProductConfig\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n getAllImgManagerDisplayConfig(): ImgManagerDisplayConfig[] {\r\n return [\r\n this.fullWindowConfig,\r\n this.wiziblockConfig,\r\n this.pageFicheProductConfig,\r\n this.simpleWithButtonOpenerConfig,\r\n ]\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { AlertService } from './alert.service';\r\nimport { ImgPictureDTO } from '../dto/img-manager.dto';\r\nimport { PictureNameUpdate } from '../dto/picture-name-update.dto';\r\nimport { ApiService } from './api.service';\r\nimport { ImgManagerService } from './img-manager.service';\r\nimport { tap } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class RenamePictureService {\r\n\r\n private picturesList: ImgPictureDTO[] = [];\r\n private errorRenameImg = 'ImgManager.ImgList.errorRenameImg';\r\n private msgSavingImgName = 'ImgManager.ImgLib.savingImgName';\r\n private msgImgNameSaved = 'ImgManager.ImgLib.imgNameSaved';\r\n\r\n constructor(\r\n private apiService: ApiService,\r\n private alertService: AlertService,\r\n private imgManagerService: ImgManagerService\r\n )\r\n {}\r\n\r\n setPicturesList(picturesList: ImgPictureDTO[]) { // todo get from img manager service\r\n this.picturesList = picturesList;\r\n }\r\n\r\n renamePicture(pictureNameUpdate: PictureNameUpdate) {\r\n const picture: ImgPictureDTO = this.getPictureById(pictureNameUpdate.id);\r\n if (!picture) {\r\n this.alertService.openAlert(this.errorRenameImg);\r\n return;\r\n }\r\n this.alertService.openAlert(this.msgSavingImgName);\r\n this.apiService\r\n .changeImgName(picture.display_name, picture.id_file).pipe(\r\n tap(() => this.imgManagerService.refreshImageList$.next())\r\n )\r\n .subscribe({\r\n next: (data: ImgPictureDTO) => {\r\n picture.display_name = data.display_name;\r\n this.alertService.openAlert(this.msgImgNameSaved);\r\n },\r\n error: () => {\r\n picture.display_name = pictureNameUpdate.previousName;\r\n this.alertService.openAlert(this.errorRenameImg);\r\n }\r\n });\r\n }\r\n\r\n changeImageName(name: string, idFile: string) {\r\n return this.apiService.changeImgName(name, idFile).pipe(\r\n tap(() => this.imgManagerService.refreshImageList$.next())\r\n );\r\n }\r\n\r\n private getPictureById(id_file: string): ImgPictureDTO {\r\n if (!this.picturesList) {\r\n return;\r\n }\r\n\r\n for (const picture of this.picturesList) {\r\n if(picture.id_file === id_file) {\r\n return picture;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n}","import { Injectable, inject } from '@angular/core';\r\nimport { ApiService } from '../api.service';\r\n\r\n@Injectable()\r\nexport class ImgCDNService {\r\n\r\n imgCDNConfig = inject(ApiService).IMG_SIZE;\r\n\r\n getUrlImg(size: '100'|'200'|'400'|'800'|'raw'|string) {\r\n const urlProperty = Object.keys(this.imgCDNConfig)\r\n .filter(url =>\r\n new RegExp(size, 'i').test(url)\r\n )[0];\r\n\r\n return this.imgCDNConfig[urlProperty];\r\n }\r\n\r\n getAllSize(): string[] {\r\n return Object.keys(this.imgCDNConfig)\r\n .map(elem =>\r\n elem.match(/_(\\w+)_/)[1]\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ImageNotFoundService {\r\n\r\n imageNotFound($url: string) {\r\n return;\r\n }\r\n\r\n}","import { HttpClient } from \"@angular/common/http\";\r\nimport { Directive, Input, Output, inject } from \"@angular/core\";\r\nimport { EventEmitter } from '@angular/core';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { stateDisplayed } from \"../../dto/export-dtos.api\";\r\nimport { PictureNameUpdate } from \"../../dto/picture-name-update.dto\";\r\nimport { ImgPictureDTO } from \"../../dto/img-manager.dto\";\r\nimport { AlertService } from \"../../services/alert.service\";\r\nimport { ImgCDNService } from \"../../services/config/img-cdn.service\";\r\nimport { ImgEventService } from \"../../services/img-event.service\";\r\nimport { ImgManagerService } from \"../../services/img-manager.service\";\r\nimport { ImgSelectionService } from \"../../services/img-selection.service\";\r\nimport { TableFilters } from \"../../services/table/filters-table.service\";\r\nimport { ApiService } from \"../../services/api.service\";\r\nimport { ImageNotFoundService } from \"../../services/image-not-found.service\";\r\n\r\n@Directive()\r\nexport abstract class ImagesActionHandler {\r\n @Input()\r\n picturesList: ImgPictureDTO[] = [];\r\n @Output()\r\n picturesListChange: EventEmitter<void> = new EventEmitter();\r\n\r\n @Input()\r\n tableFilters: TableFilters = {\r\n sort: undefined,\r\n order: undefined,\r\n searchValue: '',\r\n totalItems: 0,\r\n itemsPerPage: 30,\r\n currentPage: 1\r\n };\r\n @Input()\r\n displayPexelsResults: boolean = false;\r\n\r\n @Input()\r\n disable: boolean = false;\r\n @Output()\r\n disableChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n @Output()\r\n filtersChange = new EventEmitter();\r\n @Output()\r\n pictureNameChange: EventEmitter<PictureNameUpdate> = new EventEmitter();\r\n\r\n @Input() isLoading = false;\r\n\r\n @Input()\r\n stateDisplayed: stateDisplayed;\r\n\r\n previousName: string; // Use to save the previous picture name, when a user change his name\r\n fakeImgRoute: string = this.apiService.CONFIG.assets_route + 'img/fake.png';\r\n\r\n private getDataAPISub: Subscription;\r\n private errorRemoveImg = 'ImgManager.ImgList.errorRemoveImg';\r\n private errorAlreadyUsedImg = 'ImgManager.ImgList.errorAlreadyUsed';\r\n\r\n private imageNotFoundService = inject(ImageNotFoundService);\r\n\r\n constructor(\r\n protected imgManager: ImgManagerService,\r\n protected imgSelectionService: ImgSelectionService,\r\n protected http: HttpClient,\r\n protected imgCDNService: ImgCDNService,\r\n protected imgEventCardService: ImgEventService,\r\n protected alertService: AlertService,\r\n protected translateService: TranslateService,\r\n private apiService: ApiService,\r\n ) {\r\n }\r\n\r\n /** Event emit when the header checkbox is checked */\r\n onToggleAllCheckBoxRow(event) {\r\n this.picturesList.forEach(data => {\r\n data.delSelected = event;\r\n });\r\n this._pictureListeChange();\r\n }\r\n\r\n onToggleDelSelection(index: number) {\r\n if (this.disable) {\r\n return;\r\n }\r\n this.picturesList[index].delSelected = !this.picturesList[index].delSelected;\r\n this._pictureListeChange();\r\n }\r\n\r\n /** Event emit each time filters change */\r\n onFiltersChange() {\r\n this.filtersChange.emit();\r\n }\r\n\r\n onEdit(picture: ImgPictureDTO) {\r\n this.imgEventCardService.emitImgToEdit(picture);\r\n }\r\n\r\n onToggleSelectImg(index: number) {\r\n if (this.disable || this.stateDisplayed === 'window') {\r\n return;\r\n }\r\n if (!this.picturesList[index].selected) {\r\n this.imgSelectionService.addImgSelected(this.picturesList[index]);\r\n this.picturesList[index].selected = true;\r\n } else {\r\n this.imgSelectionService.removeImgSelectedById(this.picturesList[index].id_file);\r\n this.picturesList[index].selected = false;\r\n }\r\n }\r\n\r\n onRemoveImg(picture: ImgPictureDTO) {\r\n picture.deleted = true;\r\n this.imgManager.removeImg(picture.id_file).subscribe(\r\n data => {\r\n this.imgEventCardService.imgRemoved$.next(picture.id_file);\r\n this.imgSelectionService.removeImgSelectedById(picture.id_file);\r\n },\r\n error => {\r\n const msg = error.status === 409 ? this.errorAlreadyUsedImg: this.errorRemoveImg;\r\n picture.deleted = false;\r\n this.alertService.openAlert(msg);\r\n });\r\n }\r\n\r\n onPictureNotLoading(event) {\r\n this.imageNotFoundService.imageNotFound(event.target.src);\r\n event.target.src = this.fakeImgRoute;\r\n }\r\n\r\n onDownloadImg(display_name: string, file_name: string) {\r\n this.http.get(this.getRAWImgRoute(file_name), { responseType: 'blob' }).subscribe(val => {\r\n let url = URL.createObjectURL(val);\r\n this.downloadUrl(url, display_name);\r\n URL.revokeObjectURL(url);\r\n });\r\n }\r\n\r\n onNameChange(id_file: string) {\r\n this.pictureNameChange.emit({id: id_file, previousName: this.previousName});\r\n }\r\n\r\n private getRAWImgRoute(file_name: string){\r\n return this.imgCDNService.getUrlImg('raw') + file_name;\r\n }\r\n\r\n private _pictureListeChange() {\r\n this.picturesListChange.emit();\r\n }\r\n\r\n private downloadUrl(url: string, fileName: string) {\r\n const a: any = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n a.click();\r\n }\r\n\r\n ngDestroy() {\r\n if (this.getDataAPISub) {\r\n this.getDataAPISub.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[btnLoadingAnim]'\n})\nexport class LoadingDirective {\n\n element: ElementRef;\n currentLoading = 0;\n interval = null;\n\n constructor(el: ElementRef) {\n this.element = el;\n this.launchLoading();\n }\n\n launchLoading() {\n if (this.interval !== null) {\n return;\n }\n this.currentLoading = 10;\n\n this.element.nativeElement.style.width = this.currentLoading + '%';\n\n this.interval = setInterval(() => {\n if (this.currentLoading < 80) {\n this.currentLoading += Math.floor(Math.random() * 15);\n this.element.nativeElement.style.width = this.currentLoading + '%';\n }\n if (this.currentLoading >= 80 && this.currentLoading < 95) {\n this.currentLoading += Math.floor(Math.random() * 2);\n this.element.nativeElement.style.width = this.currentLoading + '%';\n }\n }, 70);\n }\n\n ngOnDestroy() {\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = null;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ImgCDNService } from '../../services/config/img-cdn.service';\n\n@Pipe({\n name: 'imgSrc'\n})\nexport class ImageSrcPipe implements PipeTransform {\n\n constructor(private imgCDNService: ImgCDNService) { }\n\n transform(pictureName: string, size: string): string {\n if(!size) {\n throw \"The size is undefined in ImageSrcPipe.\";\n }\n\n const route: string = this.imgCDNService.getUrlImg(size);\n\n if (!route) {\n throw \"The expected size is not defined in ImageSrcPipe.\";\n }\n\n return route + pictureName;\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ImgEventService } from '../../../../services/img-event.service';\r\nimport { ImgPictureDTO } from '../../../../dto/img-manager.dto';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ImgManagerService } from '../../../../services/img-manager.service';\r\nimport { ImgSelectionService } from '../../../../services/img-selection.service';\r\nimport { ImgCDNService } from '../../../../services/config/img-cdn.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ImagesActionHandler } from '../../images-actions-handler';\r\nimport { easeInOut } from '../../../../animations/easeInOut/ease-in-out.animation'\r\nimport { tabDisplayed } from '../../../../dto/export-dtos.api';\r\nimport { AlertService } from '../../../../services/alert.service';\r\nimport { ApiService } from '../../../../services/api.service';\r\n\r\n@Component({\r\n selector: 'img-card',\r\n templateUrl: './img-card.component.html',\r\n animations: [\r\n easeInOut\r\n ]\r\n})\r\nexport class ImgCardComponent extends ImagesActionHandler implements OnInit {\r\n\r\n @Input()\r\n tabDisplayed: tabDisplayed;\r\n @Input()\r\n fullSize: boolean;\r\n @Input()\r\n picture: ImgPictureDTO;\r\n @Input()\r\n index: number;\r\n focusInput = false;\r\n\r\n @Output()\r\n toggleImgSelected: EventEmitter<void> = new EventEmitter();\r\n\r\n @Output()\r\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\r\n\r\n isUploadSection: boolean = false;\r\n activeConfirmDelete = false;\r\n\r\n constructor(\r\n imgManager: ImgManagerService,\r\n imgSelectionService: ImgSelectionService,\r\n http: HttpClient,\r\n imgCDNService: ImgCDNService,\r\n imgEventCardService: ImgEventService,\r\n alertService: AlertService,\r\n translateService: TranslateService,\r\n apiService: ApiService\r\n ) {\r\n super(\r\n imgManager,\r\n imgSelectionService,\r\n http,\r\n imgCDNService,\r\n imgEventCardService,\r\n alertService,\r\n translateService,\r\n apiService\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isUploadSection = this.tabDisplayed === 'img-upload';\r\n }\r\n\r\n displayLargeWindow(): void {\r\n this.switchDisplayWindow.emit(true);\r\n }\r\n\r\n onToggleImgSelected() {\r\n this.toggleImgSelected.next();\r\n }\r\n}\r\n","<div class=\"addCssPriority\" [@easeInOut]=\"'in'\" [ngClass]=\"{ 'fullSize': fullSize }\">\r\n <div class=\"img-card\">\r\n <div class=\"img-card__container\"\r\n [ngClass]=\"{\r\n 'smallDisplay': stateDisplayed === 'small' || isUploadSection,\r\n 'imgSelected': picture.selected,\r\n 'deletion': picture.deleted}\">\r\n <img\r\n class=\"img-card__container__img\"\r\n [src]=\"picture.file_name | imgSrc : '400'\"\r\n [alt]=\"picture.display_name\"\r\n (click)=\"onToggleImgSelected()\"\r\n (error)=\"picture.imgNotLoaded=true;onPictureNotLoading($event);\"\r\n />\r\n <div\r\n class=\"img-card__container__config\"\r\n *ngIf=\"!picture.deleted && stateDisplayed !== 'small'\"\r\n >\r\n <button type=\"button\" class=\"size\"><i class=\"fal fa-image-polaroid\"></i><span>{{picture.raw_height}}x{{picture.raw_width}}</span></button>\r\n <button type=\"button\" class=\"dl\" (click)=\"onDownloadImg(picture.display_name, picture.file_name)\"><i class=\"fal fa-download\"></i><span>{{ 'ImgManager.ImgCard.download' | translate }}</span></button>\r\n <button type=\"button\" class=\"edit\" (click)=\"onEdit(picture)\"><i class=\"far fa-crop-alt\"></i><span>{{ 'ImgManager.ImgCard.edit' | translate }}</span></button>\r\n <button type=\"button\" class=\"deleted\" (click)=\"activeConfirmDelete = true;\"><i class=\"fal fa-times\"></i><span>{{ 'ImgManager.ImgCard.del' | translate }}</span></button>\r\n <button type=\"button\" class=\"selected\" (click)=\"onToggleImgSelected()\" *ngIf=\"stateDisplayed !== 'window'\">\r\n <i *ngIf=\"!picture.selected\" class=\"fal fa-square\"></i>\r\n <i *ngIf=\"picture.selected\" class=\"fa-solid fa-check-square checked\"></i>\r\n <span>{{ 'ImgManager.ImgCard.select' | translate }}</span>\r\n </button>\r\n </div>\r\n <div\r\n class=\"img-card__container__config img-card__container__config--small\"\r\n *ngIf=\"!picture.deleted && stateDisplayed === 'small'\"\r\n >\r\n <button class=\"show-edit\" (click)=\"displayLargeWindow()\"><i class=\"fa-solid fa-edit\"></i></button>\r\n </div>\r\n <div class=\"img-card__container__delete\" [ngClass]=\"{ 'show' : activeConfirmDelete}\">\r\n <span>{{ 'ImgManager.ImgCard.confirmDeleteImg' | translate }}</span>\r\n <div>\r\n <button (click)=\"activeConfirmDelete = false;\">{{ 'no' | translate }}</button>\r\n <button (click)=\"onRemoveImg(picture);activeConfirmDelete = false;\">{{ 'yes' | translate }}</button>\r\n </div>\r\n </div>\r\n <div class=\"img-card__container__valid\" *ngIf=\"stateDisplayed === 'small' && tabDisplayed == 'img-upload'\">\r\n <i class=\"far fa-check\"></i>\r\n <span>{{ 'ImgManager.ImgCard.validImgSmall' | translate }}</span>\r\n </div>\r\n <div\r\n *ngIf=\"picture.imgNotLoaded\"\r\n class=\"img-card__container__overlay\"\r\n [ngClass]=\"{'img-card__container__overlay--smallDisplay': stateDisplayed === 'small' || isUploadSection}\">\r\n <i (click)=\"onToggleImgSelected()\" class=\"fad fa-folder-times\"></i>\r\n </div>\r\n <span btnLoadingAnim class=\"btnLoadingAnnimation\" *ngIf=\"picture.deleted\"></span>\r\n\r\n </div>\r\n <div\r\n class=\"img-card__nameContainer\"\r\n [ngClass]=\"{'smallNameDisplay': stateDisplayed === 'small' || isUploadSection, 'focus': focusInput}\">\r\n <input\r\n type=\"text\"\r\n class=\"wzImgMngInput img-card__nameContainer__name\"\r\n [(ngModel)]=\"picture.display_name\"\r\n (ngModelChange)=\"onNameChange(picture.id_file)\"\r\n [ngModelOptions]=\"{standalone: true, updateOn: 'blur'}\"\r\n (focus)=\"previousName=picture.display_name;focusInput = true;\"\r\n (blur)=\"focusInput = false;\"\r\n >\r\n <span>{{picture.display_name}}</span>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n","import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';\r\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\r\nimport { Subscription } from 'rxjs';\r\nimport { ImgSelectionService } from '../../services/img-selection.service';\r\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\r\nimport { PictureNameUpdate, stateDisplayed, tabDisplayed } from '../../dto/export-dtos.api';\r\nimport { RenamePictureService } from '../../services/rename-picture.service';\r\n\r\n@Component({\r\n selector: 'upload-list',\r\n templateUrl: './upload-list.component.html',\r\n animations: [\r\n easeInOut\r\n ]\r\n})\r\nexport class UploadListComponent implements OnInit {\r\n\r\n picturesList: ImgPictureDTO[] = [];\r\n imgSelectionChange: Subscription;\r\n selectImgEvent: Subscription;\r\n\r\n @Input() stateDisplayed: stateDisplayed;\r\n @Input() tabDisplayed: tabDisplayed;\r\n @Input() multipleImgMode: boolean = false;\r\n @Output()\r\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(\r\n private imgSelectionService: ImgSelectionService,\r\n private renamePictureService: RenamePictureService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.setEvents();\r\n }\r\n\r\n onImgUploaded(img: ImgPictureDTO[]) {\r\n img.forEach(picture =>\r\n this.picturesList.push(picture)\r\n );\r\n this.renamePictureService.setPicturesList(this.picturesList);\r\n }\r\n\r\n onToggleSelectImg(index: number) {\r\n if (this.stateDisplayed === 'window') {\r\n return;\r\n }\r\n if (!this.picturesList[index].selected) {\r\n this.imgSelectionService.addImgSelected(this.picturesList[index]);\r\n this.picturesList[index].selected = true;\r\n } else {\r\n this.imgSelectionService.removeImgSelectedById(this.picturesList[index].id_file);\r\n this.picturesList[index].selected = false;\r\n }\r\n }\r\n\r\n switchDisplayWindowCard() {\r\n this.switchDisplayWindow.emit(true);\r\n }\r\n\r\n onRenamePicture(pictureRenamed: PictureNameUpdate) {\r\n this.renamePictureService.renamePicture(pictureRenamed);\r\n }\r\n\r\n private setEvents() {\r\n this.imgSelectionChange = this.imgSelectionService.imgSelection$.subscribe(imgSelection =>{\r\n const idFileList = [];\r\n imgSelection.map(img => idFileList.push(img.id_file));\r\n for (const picture of this.picturesList) {\r\n if (idFileList.indexOf(picture.id_file) === -1) {\r\n picture.selected = false;\r\n }\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.imgSelectionChange.unsubscribe();\r\n }\r\n}\r\n","<div class=\"upload-list\" [ngClass]=\"{'smallDisplay': stateDisplayed === 'small'}\" [@easeInOut]=\"'in'\">\r\n\r\n <ng-scrollbar\r\n class=\"upload-list__scroll\"\r\n [ngClass]=\"{\r\n 'upload-list__scroll--smallDisplay': stateDisplayed === 'small',\r\n 'upload-list__scroll--window': stateDisplayed === 'window'}\"\r\n >\r\n <div class=\"upload-list__box\">\r\n <div class=\"upload-list__box__container\">\r\n <div>\r\n <p class=\"mainColor\">\r\n {{ picturesList? picturesList.length : '' }}\r\n <ng-container *ngIf=\"picturesList && picturesList.length > 1\">{{ 'ImgManager.UploadList.imgSuccessImport' | translate }}</ng-container>\r\n <ng-container *ngIf=\"picturesList && picturesList.length === 1\">{{ 'ImgManager.UploadList.imgSuccessImportOne' | translate }}</ng-container>\r\n </p>\r\n <div class=\"dropdown is-hoverable\">\r\n <div class=\"dropdown-trigger\">\r\n <i\r\n aria-haspopup=\"true\" aria-controls=\"dropdown-menuInfoSeo\"\r\n class=\"fa-solid fa-info-circle\">\r\n </i>\r\n </div>\r\n <div class=\"dropdown-menu dropDownShadow\" id=\"dropdown-menuInfoSeo\" role=\"menu\">\r\n <div class=\"dropdown-content\">\r\n <div class=\"dropdown-item\">\r\n <p>{{ 'ImgManager.UploadList.seo.rezise' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i> 100%</p>\r\n </div>\r\n <div class=\"dropdown-item\">\r\n <p>{{ 'ImgManager.UploadList.seo.webp' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i> 100%</p>\r\n </div>\r\n <div class=\"dropdown-item\">\r\n <p>{{ 'ImgManager.UploadList.seo.cdn' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i> 100%</p>\r\n </div>\r\n <div class=\"dropdown-item\">\r\n <p>{{ 'ImgManager.UploadList.seo.lazyloading' | translate }}</p>\r\n <p><i class=\"fal fa-check\"></i> 100%</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"upload-list__box__cards\">\r\n <div class=\"upload-list__box__cards__card\" *ngFor=\"let picture of picturesList; let index = index;\">\r\n <img-card\r\n [picture]=\"picture\"\r\n [stateDisplayed]=\"stateDisplayed\"\r\n (toggleImgSelected)=\"onToggleSelectImg(index)\"\r\n (switchDisplayWindow)=\"switchDisplayWindowCard()\"\r\n (pictureNameChange)=\"onRenamePicture($event)\"\r\n ></img-card>\r\n <div class=\"upload-list__box__cards__card__btnBox\">\r\n <button type=\"button\" class=\"button success upload-list__box__cards__card__btnBox__btn\"><i class=\"fal fa-check\"></i></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n</div>\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wz-loader',\n templateUrl: './loader.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class LoaderComponent {\n @Input()\n text: string;\n @Input()\n small = false;\n @Input()\n position: string;\n}\n","<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","import { Directive, Output, EventEmitter, HostBinding, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[appDragDrop]'\n})\nexport class DragDropDirective {\n\n @Output() onFileDropped = new EventEmitter<Event>();\n\n @HostBinding('style.background-color') background = '#fff'\n @HostBinding('style.opacity') opacity = '1'\n\n @HostListener('dragover', ['$event']) onDragOver(evt: any) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = '#f5f5f5';\n this.opacity = '0.8';\n }\n\n @HostListener('dragleave', ['$event']) public onDragLeave(evt: any) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = '#fff';\n this.opacity = '1';\n }\n\n @HostListener('drop', ['$event']) public ondrop(evt: any) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = '#f5f5f5'\n this.opacity = '1'\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.onFileDropped.emit(files);\n }\n }\n}\n","import {Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef} from '@angular/core';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\r\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\r\nimport { stateDisplayed } from '../../dto/export-dtos.api';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UploadService } from '../../services/upload.service';\r\nimport { ApiService } from '../../services/api.service';\r\n\r\n@Component({\r\n selector: 'img-upload',\r\n templateUrl: './img-upload.component.html',\r\n animations: [\r\n easeInOut\r\n ]\r\n})\r\nexport class ImgUploadComponent implements OnInit {\r\n\r\n files: any = [];\r\n isLoading: boolean = false;\r\n assetsIcon: string;\r\n @Input() stateDisplayed: stateDisplayed;\r\n @Output() imgUploaded = new EventEmitter();\r\n\r\n @ViewChild('dragAndDropBox') dragAndDropBox: ElementRef;\r\n\r\n loadingText = 'ImgManager.ImgUpload.loading';\r\n errorUploadingImg = 'ImgManager.ImgUpload.errorUploadingImg';\r\n errorNotImg = 'ImgManager.ImgUpload.errorNotImg';\r\n\r\n MAX_IMAGE_SIZE = 10000000; // In bytes\r\n\r\n constructor(\r\n private alertService: AlertService,\r\n private apiService: ApiService,\r\n private translateService: TranslateService,\r\n private uploadService: UploadService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.assetsIcon = this.getAssets();\r\n }\r\n\r\n filesChangeByClick(event: any) {\r\n this.uploadFile(event.target.files);\r\n }\r\n\r\n getAssets() {\r\n return this.apiService.CONFIG.assets_route + \"img/icon_picture.svg\";\r\n }\r\n\r\n filesChangeByDragAndDrop(filesList: FileList) {\r\n this.removeDragAndDropStyle();\r\n this.uploadFile(Array.from(filesList));\r\n }\r\n\r\n uploadFile(files: File[]) {\r\n if (files && !files.length) {\r\n return;\r\n }\r\n\r\n this.isLoading =true;\r\n const imgToUploadList: Observable<any>[] = [];\r\n for (const file of files) {\r\n if(!this.isFileImage(file.type)) {\r\n this.alertService.openAlert(this.errorNotImg);\r\n this.isLoading = false;\r\n continue;\r\n }\r\n\r\n if (!this.isSizeValid(file.size)) {\r\n this.alertService.openAlert(\r\n this.translateService.instant('ImgManager.ImgUpload.ErrorImgSize', {\r\n fileName: file.name,\r\n fileSize: this.getImageSizeInKo(file.size),\r\n maxFileSize: this.getImageSizeInKo(this.MAX_IMAGE_SIZE)\r\n }));\r\n this.isLoading = false;\r\n continue;\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append('image', file, file.name);\r\n imgToUploadList.push(this.uploadService.uploadFile(formData));\r\n }\r\n\r\n forkJoin(imgToUploadList).subscribe({\r\n next: (img: ImgPictureDTO[]) => {\r\n this.onImgUpload(img),\r\n this.isLoading =false;\r\n },\r\n error: error => {\r\n if (error?.error?.message && error.statusText !== 'Bad Request') {\r\n this.alertService.openAlertWithBackendResponse(this.errorUploadingImg, error.error.message);\r\n } else {\r\n this.alertService.openAlert(this.errorUploadingImg);\r\n }\r\n this.isLoading =false;\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Send the img uploaded to the tabs components,\r\n * Then the tabs components add the img to upload list by calling the method onImgUploaded of the upload-list component\r\n * @param img\r\n */\r\n onImgUpload(img: ImgPictureDTO[]) {\r\n this.imgUploaded.emit(img);\r\n }\r\n\r\n isFileImage(fileType: string) {\r\n return fileType.split('/')[0] === 'image';\r\n }\r\n\r\n isSizeValid(imageBytesSize: number): boolean {\r\n return imageBytesSize < this.MAX_IMAGE_SIZE;\r\n }\r\n\r\n getImageSizeInKo(size: number) {\r\n return Math.round(size / 1024);\r\n }\r\n\r\n /**\r\n * Remove the style of the drag and drop box\r\n * After an img is droped, the box is still grey\r\n */\r\n removeDragAndDropStyle() {\r\n this.dragAndDropBox.nativeElement.style = '';\r\n }\r\n}\r\n","<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","import {Injectable} from '@angular/core';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport { map} from \"rxjs/operators\";\r\nimport {Observable} from \"rxjs\";\r\nimport {WzImgLibDto} from \"../dto/pexels-img.dto\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ApiService } from './api.service';\r\n\r\n@Injectable()\r\nexport class PexelsService {\r\n get apiBaseUrl() {\r\n return this.apiService.CONFIG.pexels_route;\r\n };\r\n get apiKey() {\r\n return this.apiService.CONFIG.pexels_token;\r\n }\r\n lang: string;\r\n languages = {'fr': 'fr-FR', 'en': 'en-US', 'it': 'it-IT', 'es': 'es-ES'};\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private apiService: ApiService,\r\n private translateService: TranslateService\r\n ) {\r\n this.setLang(this.translateService.currentLang);\r\n this.translateService.onLangChange.subscribe(langData => {\r\n this.setLang(langData.lang);\r\n })\r\n }\r\n\r\n setLang(lang: string) {\r\n this.lang = this.languages[lang] ? this.languages[lang] : 'fr-FR';\r\n }\r\n\r\n searchOnPexels(toSearch: string, perPage: number, page: number): Observable<WzImgLibDto> {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: this.apiKey\r\n })\r\n };\r\n\r\n let request;\r\n\r\n // If search value is not empty or blank\r\n if (toSearch && !/^\\s*$/.test(toSearch)) {\r\n request = `/search?query=${toSearch}&per_page=${perPage}&page=${page}&locale=${this.lang}`;\r\n\r\n } else { // Search by category or display Pexels selection\r\n const shopCategory = this.apiService.getShopCategory();\r\n\r\n // Search by shop category\r\n if (shopCategory && shopCategory !== 'other' && shopCategory !== 'btob' && shopCategory !== 'default') {\r\n request = `/search?query=${shopCategory}&per_page=${perPage}&page=${page}&locale=en-US`;\r\n } else { // Display Pexels selection\r\n request = `/curated?per_page=${perPage}&page=${page}`;\r\n }\r\n }\r\n\r\n return this.http.get(this.apiBaseUrl + request, httpOptions).pipe(\r\n map((data: WzImgLibDto) => {\r\n return data;\r\n })\r\n );\r\n }\r\n}\r\n","import { stagger } from '@angular/animations';\nimport { query } from '@angular/animations';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\nexport const listAnnimation = // the fade-in/fade-out animation.\ntrigger('listAnimation', [\n transition(':enter, * => 0, * => -1', []),\n transition(':increment', [\n query(':enter', [\n style({opacity: 0, transform: 'translateY(100px)'}),\n stagger(50, [\n animate('500ms cubic-bezier(0.35, 0, 0.25, 1)', style({ opacity: 1, transform: 'none' })),\n ]),\n ], { optional: true })\n ]),\n]);\n","import { Directive, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';\n\n@Directive({\n selector: 'AbstractDebounceDirective'\n})\nexport class AbstractDebounceDirective implements OnDestroy {\n @Input()\n public debounceTime: number;\n\n @Output()\n public onEventChange: EventEmitter<any>;\n\n protected emitEvent$: Subject<any>;\n protected subscription$: Subject<void>;\n\n constructor() {\n this.debounceTime = 500;\n this.onEventChange = new EventEmitter<any>();\n this.emitEvent$ = new Subject<any>();\n this.subscription$ = new Subject<void>();\n }\n\n ngOnInit(): void {\n this.emitEvent$\n .pipe(\n takeUntil(this.subscription$),\n debounceTime(this.debounceTime),\n distinctUntilChanged(),\n tap(value => this.emitChange(value))\n )\n .subscribe();\n }\n\n public emitChange(value: any): void {\n this.onEventChange.emit(value);\n }\n\n ngOnDestroy(): void {\n this.subscription$.next();\n this.subscription$.complete();\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { AbstractDebounceDirective } from './abstract-debounce.directive';\n@Directive({\n selector: 'input[debounceKeyUp]'\n})\nexport class DebounceKeyupDirective extends AbstractDebounceDirective {\n constructor() {\n super();\n }\n\n @HostListener('keyup', ['$event'])\n public onKeyUp(event: any): void {\n event.preventDefault();\n this.emitEvent$.next(event);\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wz-input-search',\n templateUrl: './input-search.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: InputSearchComponent, multi: true }]\n})\nexport class InputSearchComponent implements ControlValueAccessor {\n @Input()\n placeholder = '';\n @Input()\n smallPadding = false;\n @Input()\n id;\n private innerValue: any = '';\n @Output() changeDebounced = new EventEmitter<any>(); // debounced\n\n private onTouchedCallback: () => void = () => {};\n private onChangeCallback: (_: any) => void = () => {};\n\n get value(): any {\n return this.innerValue;\n }\n\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n }\n }\n\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n public handleDebouncedKeyUp(event): void {\n this.changeDebounced.emit(event.target.value);\n }\n}\n","<div class=\"input-search field\" [ngClass]=\"smallPadding ? 'small-padding' : ''\">\n <p class=\"control has-icons-left has-icons-right\">\n <input\n [placeholder]=\"placeholder\"\n value=\"\"\n class=\"input\"\n type=\"text\"\n [attr.id]=\"id\"\n [(ngModel)]=\"value\"\n debounceKeyUp\n [debounceTime]=\"1000\"\n (onEventChange)=\"handleDebouncedKeyUp($event)\"\n />\n <i class=\"icon fal fa-search\"></i>\n </p>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wz-alert',\r\n styleUrls: ['./alert.component.scss'],\r\n templateUrl: './alert.component.html'\r\n})\r\nexport class AlertComponent implements OnInit {\r\n @Input() icon = true;\r\n @Input() warning = false;\r\n @Input() success = false;\r\n @Input() iconClass = 'fa-solid fa-info';\r\n constructor() {}\r\n ngOnInit(): void {}\r\n}\r\n","<div class=\"wz-alert\" [ngClass]=\"{ success: success, warning: warning }\">\n <i *ngIf=\"icon\" [ngClass]=\"iconClass\"></i>\n <p><ng-content></ng-content></p>\n</div>\n","import {AfterViewInit, Component, ElementRef, ViewChild, Input, ChangeDetectionStrategy, ChangeDetectorRef} from '@angular/core';\r\nimport {PexelsService} from '../../services/pexels.service';\r\nimport {Subject, Subscription, combineLatest} from 'rxjs';\r\nimport {WzImgLibDto, PhotosColumns, WzImgLibPhotoDto} from '../../dto/pexels-img.dto';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\r\nimport { listAnnimation } from '../../animations/listAnnimation/list.animation';\r\nimport { stateDisplayed } from '../../dto/export-dtos.api';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { UploadService } from '../../services/upload.service';\r\n\r\n@Component({\r\n selector: 'pexels-lib',\r\n templateUrl: './pexels-lib.component.html',\r\n animations: [\r\n easeInOut,\r\n listAnnimation\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PexelLibComponent implements AfterViewInit {\r\n\r\n @Input()\r\n stateDisplayed: stateDisplayed;\r\n @Input()\r\n searchValue: string = '';\r\n /** Pass to true to hide search input */\r\n @Input()\r\n disableSearch: boolean = false;\r\n\r\n perPage = 30;\r\n searchUpdated = new Subject();\r\n oldSearchValue: string;\r\n nbResult = 0;\r\n wzImgLibDto: WzImgLibDto;\r\n currentPage = 1;\r\n isLoading = true;\r\n initComponent = true;\r\n photosColumns: PhotosColumns[] = [];\r\n nbColumns = 6;\r\n responsiveColumns = [1250, 1050, 750, 500];\r\n outerElement = null;\r\n\r\n uploadingImg = 'ImgManager.PexelLib.uploadingImg';\r\n untitled = 'ImgManager.PexelLib.untitled';\r\n successUploadPhoto = 'ImgManager.PexelLib.successImport';\r\n errorUploadPhoto = 'ImgManager.PexelLib.errorUploadPhoto';\r\n errorRetrievePhotos = 'ImgManager.PexelLib.errorRetrievePhotos';\r\n\r\n private subs: Subscription[] = [];\r\n\r\n @ViewChild('outerElement') set content(control: ElementRef) {\r\n this.outerElement = control;\r\n }\r\n\r\n constructor(\r\n private wzImgLibService: PexelsService,\r\n private alertService: AlertService,\r\n private translateService: TranslateService,\r\n private uploadService: UploadService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n ngAfterViewInit() {\r\n this.oldSearchValue = this.searchValue;\r\n this.isLoading = false;\r\n\r\n this.setNbColumnsToDisplayPhoto();\r\n this.setPhotosColumns();\r\n this.search();\r\n }\r\n\r\n setNbColumnsToDisplayPhoto(): void {\r\n const width = this.outerElement.nativeElement.offsetWidth;\r\n\r\n if (this.stateDisplayed !== 'window') {\r\n this.nbColumns = 8;\r\n }\r\n\r\n this.responsiveColumns.forEach(value => {\r\n if (width < value) {\r\n this.nbColumns--;\r\n }\r\n });\r\n }\r\n\r\n onSearchNameChanged() {\r\n this.onSearchChange();\r\n }\r\n\r\n onBottomReached() {\r\n this.scrollHandler();\r\n }\r\n\r\n onSearchChange() {\r\n this.search();\r\n }\r\n\r\n search() {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n if (this.searchValue !== this.oldSearchValue) {\r\n this.resetSearch();\r\n }\r\n\r\n // All the picture are displayed\r\n if (this.nbResult && this.nbResult <= (this.currentPage - 1) * this.perPage) {\r\n return;\r\n }\r\n\r\n this.isLoading = true;\r\n const searchSub = this.wzImgLibService.searchOnPexels(this.searchValue, this.perPage, this.currentPage).subscribe({\r\n next: (data: WzImgLibDto) => {\r\n this.wzImgLibDto = data;\r\n this.nbResult = this.wzImgLibDto.total_results;\r\n\r\n if (this.nbResult) {\r\n data.photos.forEach(photo => {\r\n const bestColumnIndex = this.getBestColumn();\r\n const height = (photo.height / photo.width) * 1000;\r\n\r\n this.photosColumns[bestColumnIndex].height += height;\r\n this.photosColumns[bestColumnIndex].photos.push(photo);\r\n });\r\n }\r\n\r\n this.isLoading = false;\r\n this.initComponent = false;\r\n this.changeDetectorRef.markForCheck();\r\n },\r\n error: error => {\r\n this.isLoading = false;\r\n this.initComponent = false;\r\n this.alertService.openAlert(this.errorRetrievePhotos);\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n });\r\n\r\n this.subs.push(searchSub);\r\n }\r\n\r\n scrollHandler() {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n const bestColumnIndex = this.getBestColumn();\r\n const lastPic = this.photosColumns[bestColumnIndex].photos[this.photosColumns[bestColumnIndex].photos.length - 1];\r\n const lastPhoto = lastPic ? document.querySelector<HTMLImageElement>('img[src=\"' + lastPic.src.medium + '\"]') : null;\r\n\r\n if (lastPhoto) {\r\n if (!this.isLoading) {\r\n this.currentPage += 1;\r\n this.search();\r\n }\r\n }\r\n }\r\n\r\n setPhotosColumns() {\r\n for (let indexColumn=0; indexColumn < this.nbColumns ; indexColumn++) {\r\n const photosColumn: PhotosColumns = {\r\n height: 0,\r\n photos: []\r\n };\r\n this.photosColumns.push(photosColumn);\r\n }\r\n }\r\n\r\n getBestColumn(): number {\r\n const bestColumn = {\r\n index: 0,\r\n height: this.photosColumns[0].height\r\n };\r\n this.photosColumns.forEach((photosColumn, index) => {\r\n if (bestColumn.height > photosColumn.height) {\r\n bestColumn.index = index;\r\n bestColumn.height = photosColumn.height;\r\n }\r\n });\r\n return bestColumn.index;\r\n }\r\n\r\n resetSearch() {\r\n this.oldSearchValue = this.searchValue;\r\n this.photosColumns = [];\r\n this.currentPage = 1;\r\n this.setPhotosColumns();\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n uploadPhoto(photo: WzImgLibPhotoDto, url: string) {\r\n photo.uploading = true;\r\n\r\n const uploadSub = this.uploadService.uploadFileByUrl(url, photo.alt).subscribe(\r\n img => {\r\n photo.uploading = false;\r\n photo.uploaded = true;\r\n this.alertService.openAlert(this.successUploadPhoto);\r\n },\r\n error => {\r\n photo.uploading = false;\r\n if(error.error.code === 406 && error.error.message) {\r\n this.alertService.openAlertWithBackendResponse(this.errorUploadPhoto, error.error.message);\r\n } else {\r\n this.alertService.openAlert(this.errorUploadPhoto);\r\n }\r\n });\r\n\r\n // Display img uploading msg\r\n this.alertService.openAlert(this.uploadingImg);\r\n this.subs.push(uploadSub);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs.forEach(sub => sub.unsubscribe());\r\n }\r\n}\r\n","<div class=\"pexels-lib\" #outerElement [@easeInOut]=\"'in'\">\r\n\r\n <ng-scrollbar\r\n [reachedOffset]=\"300\"\r\n class=\"pexels-lib__scroll\"\r\n [ngClass]=\"{\r\n 'pexels-lib__scroll--smallDisplay': stateDisplayed === 'small',\r\n 'pexels-lib__scroll--noResult': !nbResult,\r\n 'pexels-lib__scroll--hide': (!nbResult && disableSearch)\r\n }\"\r\n (reachedBottom)=\"onBottomReached()\"\r\n >\r\n <div\r\n *ngIf=\"!disableSearch\"\r\n class=\"pexels-lib__search\"\r\n [ngClass]=\"{'pexels-lib__search--smallDisplay': stateDisplayed === 'small'}\"\r\n >\r\n <wz-input-search\r\n [(ngModel)]=\"searchValue\"\r\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\r\n (changeDebounced)=\"onSearchNameChanged()\"\r\n [smallPadding]=\"stateDisplayed === 'small'\">\r\n </wz-input-search>\r\n </div>\r\n\r\n <div *ngIf=\"!initComponent\" class=\"pexels-lib__wrapper\">\r\n <p *ngIf=\"nbResult\" class=\"pexels-lib__wrapper__result-nb\">{{ 'ImgManager.PexelLib.nbImgFound' | translate }} : {{ nbResult }}</p>\r\n\r\n <div class=\"pexels-lib__wrapper__result\">\r\n\r\n <div *ngFor=\"let photosColumn of photosColumns; let indexCol = index;\" class=\"pexels-lib__wrapper__result__column\" [@listAnimation]=\"photosColumn.photos.length\">\r\n <div *ngFor=\"let photo of photosColumn.photos; let indexPhoto = index;\" class=\"pexels-lib__wrapper__result__column__element\">\r\n\r\n <img [alt]=\"photo.src.medium\" [src]=\"photo.src.medium\"\r\n class=\"pexels-lib__wrapper__result__column__element__img\"/>\r\n\r\n <div class=\"pexels-lib__wrapper__result__column__element__wrapper\">\r\n <span class=\"pexels-lib__wrapper__result__column__element__wrapper__infos\">\r\n {{ photo.width }} x {{ photo.height}}\r\n </span>\r\n\r\n <div class=\"dropdown is-up\" [ngClass]=\"{'is-hoverable': !photo.uploading}\">\r\n <div class=\"dropdown-trigger\">\r\n <button\r\n type=\"button\"\r\n class=\"button pexels-lib__wrapper__result__column__element__wrapper__button\"\r\n aria-haspopup=\"true\"\r\n aria-controls=\"dropdown-menu\">\r\n\r\n <div *ngIf=\"!photo.uploading\" (click)=\"uploadPhoto(photo, photo.src.large2x)\">\r\n <span>{{ 'ImgManager.PexelLib.import' | translate }}</span>\r\n <span class=\"icon is-small\">\r\n <i class=\"fa-solid fa-angle-up\" aria-hidden=\"true\"></i>\r\n </span>\r\n <ng-container *ngIf=\"photo.uploaded\">\r\n <i class=\"fal fa-check\"></i>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"photo.uploading\">\r\n {{ 'ImgManager.PexelLib.importation' | translate }}\r\n <span btnLoadingAnim class=\"btnLoadingAnnimation\"></span>\r\n </ng-container>\r\n\r\n </button>\r\n </div>\r\n <div class=\"dropdown-menu pexels-lib__wrapper__result__column__element__wrapper__dropdown\" id=\"dropdown-menu\" role=\"menu\">\r\n <div class=\"dropdown-content\">\r\n <div class=\"dropdown-content__wrapper\">\r\n <div class=\"dropdown-item\" (click)=\"uploadPhoto(photo, photo.src.portrait)\">\r\n <p>{{ 'ImgManager.PexelLib.portrait' | translate }}</p>\r\n <i class=\"fal fa-check iPortrait\"></i>\r\n </div>\r\n <div class=\"dropdown-item\" (click)=\"uploadPhoto(photo, photo.src.landscape)\">\r\n <p>{{ 'ImgManager.PexelLib.landscape' | translate }}</p>\r\n <i class=\"fal fa-check iLandscape\"></i>\r\n </div>\r\n <div class=\"dropdown-item\" (click)=\"uploadPhoto(photo, photo.src.large2x)\">\r\n <p>{{ 'ImgManager.PexelLib.original' | translate }}</p>\r\n <i class=\"fal fa-check iOriginal\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </ng-scrollbar>\r\n\r\n <ng-container *ngIf=\"isLoading\">\r\n <wz-loader></wz-loader>\r\n </ng-container>\r\n <div\r\n *ngIf=\"!isLoading && !nbResult\"\r\n class=\"pexels-lib__alert\"\r\n [@easeInOut]=\"'in'\">\r\n <wz-alert [warning]=\"true\">\r\n {{ 'ImgManager.PexelLib.noResult' | translate }}\r\n </wz-alert>\r\n </div>\r\n</div>\r\n","import { Directive, Input, Output, EventEmitter, HostListener } from \"@angular/core\";\n\n@Directive({ selector: '[copy-clipboard]' })\nexport class CopyClipboardDirective {\n\n @Input(\"copy-clipboard\")\n public payload: string;\n\n @Output(\"copied\")\n public copied: EventEmitter<string> = new EventEmitter<string>();\n\n @HostListener(\"click\", [\"$event\"])\n public onClick(event: MouseEvent): void {\n\n event.preventDefault();\n if (!this.payload)\n return;\n\n let listener = (e: ClipboardEvent) => {\n let clipboard = e.clipboardData || window[\"clipboardData\"];\n clipboard.setData(\"text\", this.payload.toString());\n e.preventDefault();\n\n this.copied.emit(this.payload);\n };\n\n document.addEventListener(\"copy\", listener, false)\n document.execCommand(\"copy\");\n document.removeEventListener(\"copy\", listener, false);\n }\n}","import { EventEmitter } from '@angular/core';\nimport { Output } from '@angular/core';\nimport { Component, OnInit, Input } from '@angular/core';\nimport { ImgPictureDTO } from '../../../dto/img-manager.dto';\nimport { AlertService } from '../../../services/alert.service';\n\n@Component({\n selector: 'info-section',\n templateUrl: './info-section.component.html'\n})\nexport class EditorInfoSectionComponent implements OnInit {\n\n @Input()\n imgToEdit: ImgPictureDTO;\n\n @Input()\n set isNameModified(isNameModified: boolean) {\n this._isNameModified = isNameModified;\n }\n get isNameModified(): boolean {\n return this._isNameModified;\n }\n private _isNameModified: boolean = false;\n\n @Output()\n isNameModifiedChange = new EventEmitter<boolean>();\n\n imgName: string;\n imgRoute: string;\n\n msgCopyToClipBoard: string = 'ImgManager.ImgEditor.copytoClipBoard';\n\n constructor(\n private alertService: AlertService,\n ) { }\n\n ngOnInit(): void {\n this.init();\n }\n\n init() {\n this.imgName = this.imgToEdit.display_name;\n }\n getFileSize() {\n return this.imgToEdit ? Math.round(parseInt(this.imgToEdit.size)/1000) : '-';\n }\n\n copyToClipBoard(event) {\n this.alertService.openAlert(this.msgCopyToClipBoard);\n }\n\n onNameChange() {\n this.isNameModifiedChange.emit(true);\n }\n}\n","\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> <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 }} :</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 }} :</p>\r\n <p >{{getFileSize()}} 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> 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> 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> 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> 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","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const insertRemove = // the fade-in/fade-out animation.\ntrigger('insertRemoveAnnim', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('0.5s ease-in-out', style({ opacity: 1 })),\n ])\n]);\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dropdown',\n templateUrl: './dropdown.component.html'\n})\nexport class DropdownComponent implements OnInit {\n\n @Input()\n dropDownMenuClass: string;\n @Input()\n disable: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"dropdown dropdownWizi\" [ngClass]=\"{'is-hoverable': !disable}\">\n <div class=\"dropdown-trigger\">\n\n <!-- Label -->\n <ng-content select=\"[label]\"></ng-content>\n\n </div>\n <div class=\"dropdown-menu\" [ngClass]=\"dropDownMenuClass\" role=\"menu\">\n <div class=\"dropdown-content\">\n\n <!-- Content -->\n <ng-content select=\"[item]\"></ng-content>\n\n </div>\n </div>\n</div>","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { ImageCroppedEvent, ImageTransform, OutputFormat } from 'ngx-image-cropper';\r\nimport { Subject } from 'rxjs';\r\nimport { insertRemove } from '../../../animations/insertRemove/insert-remove.animation';\r\nimport { CropperConfigDTO, ImgCropperConfigDTO } from '../../../dto/img-editor-config.dto';\r\nimport { ImgPictureDTO } from '../../../dto/img-manager.dto';\r\nimport { ImgCDNService } from '../../../services/config/img-cdn.service';\r\n\r\n@Component({\r\n selector: 'cropper',\r\n templateUrl: './cropper.component.html',\r\n animations: [\r\n insertRemove\r\n ]\r\n})\r\nexport class CropperComponent implements OnInit {\r\n\r\n @Input()\r\n imgToEdit: ImgPictureDTO;\r\n\r\n @Input()\r\n set isImgModified(isImgModified: boolean) {\r\n this._isImgModified = isImgModified;\r\n if (!isImgModified) {\r\n this.restartEdit();\r\n }\r\n }\r\n get isImgModified(): boolean {\r\n return this._isImgModified;\r\n }\r\n private _isImgModified: boolean = false;\r\n\r\n @Output()\r\n isImgModifiedChange = new EventEmitter<boolean>();\r\n\r\n @Output()\r\n editClosed = new EventEmitter();\r\n\r\n @Output()\r\n currentCroppedImageChange = new EventEmitter<string>();\r\n\r\n msgFailLoad: string = 'ImgManager.ImgEditor.msgFailLoad';\r\n\r\n isNameModified: boolean = false;\r\n isCropperReady: boolean = false; // Use to not display the crop validation btn, after the img is loaded or changed\r\n currentCroppedImage: string = ''; // Img modified return in base64\r\n isCropped: boolean = false;\r\n isLoading: boolean = false;\r\n\r\n _isImgCropped: boolean = false;\r\n set isImgCropped(isImgCropped: boolean) {\r\n setTimeout(() => {\r\n this._isImgCropped = isImgCropped;\r\n }, 0);\r\n }\r\n\r\n get isImgCropped() : boolean {\r\n return this._isImgCropped;\r\n }\r\n imgCropperChange: Subject<void> = new Subject<void>();\r\n skipNextImgCropped: number = 1;\r\n\r\n // Image Cropper properties\r\n imgType: OutputFormat;\r\n imgRoute: string;\r\n imageChangedEvent: any = '';\r\n croppedImage: any = '';\r\n canvasRotation = 0;\r\n rotation = 0;\r\n scale = 1;\r\n showCropper = false;\r\n containWithinAspectRatio = false;\r\n transform: ImageTransform = {};\r\n\r\n defaultAspectRatio: number;\r\n\r\n // dropdown list\r\n resolutionConfig:ImgCropperConfigDTO[] = [\r\n {\r\n label: 'ImgManager.ImgEditor.config.origin',\r\n config: {\r\n maintainAspectRatio: true\r\n },\r\n },\r\n {\r\n label: 'ImgManager.ImgEditor.config.free',\r\n config: {\r\n maintainAspectRatio: false\r\n },\r\n active: true\r\n },\r\n {\r\n label: 'ImgManager.ImgEditor.config.square',\r\n config: {\r\n maintainAspectRatio: true,\r\n aspectRatio: 1 / 1\r\n }\r\n },\r\n {\r\n label: 'ImgManager.ImgEditor.config.Portrait',\r\n config: {\r\n maintainAspectRatio: true,\r\n aspectRatio: 3 / 4\r\n }\r\n },\r\n {\r\n label: 'ImgManager.ImgEditor.config.landscape',\r\n config: {\r\n maintainAspectRatio: true,\r\n aspectRatio: 5 / 3\r\n }\r\n }\r\n ];\r\n\r\n rotationConfig:ImgCropperConfigDTO[] = [\r\n {\r\n label: 'ImgManager.ImgEditor.config.schedule',\r\n icon: \"fal fa-redo-alt\",\r\n method: \"rotateRight\",\r\n active: true\r\n },\r\n {\r\n label: 'ImgManager.ImgEditor.config.AntiSchedule',\r\n icon: \"fal fa-undo-alt\",\r\n method: \"rotateLeft\"\r\n },\r\n {\r\n label: 'ImgManager.ImgEditor.config.flipVert',\r\n icon: \"fal fa-sort-alt\",\r\n method: \"flipVertical\"\r\n },\r\n {\r\n label: 'ImgManager.ImgEditor.config.flipHoriz',\r\n icon: \"fal fa-exchange-alt\",\r\n method: \"flipHorizontal\"\r\n }\r\n ];\r\n\r\n zoomConfig:ImgCropperConfigDTO[] = [\r\n {\r\n label: 'ImgManager.ImgEditor.config.zoom',\r\n icon: \"fal fa-search-plus\",\r\n method: \"zoomIn\",\r\n active: true\r\n },\r\n {\r\n label: 'ImgManager.ImgEditor.config.dezoom',\r\n icon: \"fal fa-search-minus\",\r\n method: \"zoomOut\"\r\n }\r\n ];\r\n\r\n // Img cropper variables\r\n imgCropperConfig:CropperConfigDTO = {\r\n maintainAspectRatio: false,\r\n aspectRatio: undefined\r\n }\r\n\r\n constructor(\r\n private imgCDNService: ImgCDNService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n this.detectImgCropperChange();\r\n }\r\n\r\n init() {\r\n this.imgRoute = this.getRAWImgRoute();\r\n this.imgType = this.getImgType();\r\n this.croppedImage = null;\r\n this.setDefautAspectRatio();\r\n }\r\n\r\n getRAWImgRoute(){\r\n return this.imgCDNService.getUrlImg('raw') + this.imgToEdit.file_name;\r\n }\r\n\r\n getImgType() {\r\n return (this.imgToEdit.file_name ? this.imgToEdit.file_name.split('.').pop() : undefined) as OutputFormat;\r\n }\r\n\r\n setDefautAspectRatio() {\r\n const height = parseInt(this.imgToEdit.raw_height);\r\n const width = parseInt(this.imgToEdit.raw_width);\r\n this.defaultAspectRatio = height / width;\r\n this.resolutionConfig[0].config.aspectRatio = this.defaultAspectRatio;\r\n this.imgCropperConfig.aspectRatio = this.defaultAspectRatio;\r\n }\r\n\r\n onEditClosed(msgKey?: string) {\r\n this.editClosed.emit(msgKey);\r\n }\r\n\r\n onRestart() {\r\n this.isImgModifiedChange.emit(false);\r\n }\r\n\r\n restartEdit() {\r\n this.init();\r\n this.resetConfCropper();\r\n }\r\n\r\n onImgModified() {\r\n this.isImgModified = true;\r\n this.isImgModifiedChange.emit(true);\r\n }\r\n\r\n ////// Img cropper methods ////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /* Cropper output events */\r\n\r\n fileChangeEvent(event: any): void {\r\n this.imageChangedEvent = event;\r\n }\r\n\r\n imageCropped(event: ImageCroppedEvent) {\r\n this.imgCropperChange.next();\r\n\r\n this.currentCroppedImage = event.base64;\r\n this.currentCroppedImageChange.emit(this.currentCroppedImage);\r\n }\r\n\r\n imageLoaded() {\r\n this.showCropper = true;\r\n }\r\n\r\n cropperReady() {\r\n this.isCropperReady = true;\r\n }\r\n\r\n loadImageFailed() {\r\n this.onEditClosed(this.msgFailLoad);\r\n }\r\n\r\n /* Resize functions */\r\n\r\n changeResolutionSize(index: number) {\r\n this.setActiveItem(this.resolutionConfig, index);\r\n const config = this.resolutionConfig[index].config;\r\n this.setCropperProperties(config);\r\n }\r\n\r\n confirmCrop() {\r\n\r\n setTimeout(() => { // Avoid image-cropper error\r\n this.imgRoute = null;\r\n this.croppedImage = this.currentCroppedImage;\r\n this.skipNextImgCropped = 2;\r\n this.isImgCropped = false;\r\n }, 0);\r\n\r\n this.resetConfCropper();\r\n this.onImgModified();\r\n }\r\n\r\n resetConfCropper() {\r\n this.scale = 1;\r\n this.rotation = 0;\r\n this.canvasRotation = 0;\r\n this.transform = {};\r\n }\r\n\r\n private setActiveItem(array:any[], index: number) {\r\n // Set active-item class for the dropdown\r\n array.forEach((item, indexItem) => {\r\n item.active = indexItem === index ? true : false;\r\n });\r\n }\r\n\r\n private setCropperProperties(config: any) {\r\n for (const property in config) {\r\n this.imgCropperConfig[property] = config[property];\r\n }\r\n }\r\n\r\n private detectImgCropperChange() {\r\n this.imgCropperChange\r\n .subscribe(() => {\r\n this.skipNextImgCropped--;\r\n if (this.skipNextImgCropped >= 0) {\r\n return;\r\n }\r\n this.skipNextImgCropped = 0;\r\n this.isImgCropped = true;\r\n })\r\n\r\n }\r\n\r\n /* Rotations functions */\r\n\r\n rotateLeft() {\r\n this.canvasRotation--;\r\n this.flipAfterRotate();\r\n this.onImgModified();\r\n }\r\n\r\n rotateRight() {\r\n this.canvasRotation++;\r\n this.flipAfterRotate();\r\n this.onImgModified();\r\n }\r\n\r\n flipHorizontal() {\r\n this.transform = {\r\n ...this.transform,\r\n flipH: !this.transform.flipH\r\n };\r\n this.onImgModified();\r\n }\r\n\r\n flipVertical() {\r\n this.transform = {\r\n ...this.transform,\r\n flipV: !this.transform.flipV\r\n };\r\n this.onImgModified();\r\n }\r\n\r\n private flipAfterRotate() {\r\n const flippedH = this.transform.flipH;\r\n const flippedV = this.transform.flipV;\r\n this.transform = {\r\n ...this.transform,\r\n flipH: flippedV,\r\n flipV: flippedH\r\n };\r\n }\r\n\r\n /* Zoom functions */\r\n\r\n zoomOut() {\r\n this.scale -= this.scale < 0.2? 0 : .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n this.onImgModified();\r\n }\r\n\r\n zoomIn() {\r\n this.scale += .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n this.onImgModified();\r\n }\r\n\r\n applyMethod(method: string) {\r\n this[method](); // call the method contains in zoomConfig or rotationConfig\r\n }\r\n}\r\n","<div class=\"img-editor__container__toolsContainer\">\r\n\r\n <div *ngIf=\"isImgCropped\">\r\n <div\r\n class=\"img-editor__container__toolsContainer__tool img-editor__container__toolsContainer__tool--button\"\r\n (click)=\"confirmCrop()\"\r\n [nwbToolTip]=\"'ImgManager.ImgEditor.ValidtToolTip' | translate\"\r\n nwbToolTipPosition=\"left\"\r\n >\r\n <i class=\"far fa-check\"></i>\r\n <p>{{ 'ImgManager.ImgEditor.Valid' | translate }}</p>\r\n </div>\r\n </div>\r\n\r\n <!-- Resolution -->\r\n <dropdown dropdownId=\"dropdown-resolution\">\r\n <ng-container label>\r\n <div\r\n class=\"img-editor__container__toolsContainer__tool\"\r\n >\r\n <i class=\"far fa-crop\"></i>\r\n <p>{{ 'ImgManager.ImgEditor.crop' | translate }}</p>\r\n </div>\r\n </ng-container>\r\n <ng-container item *ngFor=\"let item of resolutionConfig; let index = index;\">\r\n <div\r\n class=\"dropdown-item\"\r\n [ngClass]=\"{'active-item': item.active}\"\r\n (click)=\"changeResolutionSize(index)\">\r\n <p>{{item.label | translate}}</p>\r\n </div>\r\n </ng-container>\r\n </dropdown>\r\n\r\n <!-- Zoom -->\r\n <dropdown dropdownId=\"dropdown-rotation\">\r\n <ng-container label>\r\n <div class=\"img-editor__container__toolsContainer__tool\" (click)=\"zoomIn()\">\r\n <i class=\"far fa-expand-arrows-alt\"></i>\r\n <p>{{ 'ImgManager.ImgEditor.display' | translate }}</p>\r\n </div>\r\n </ng-container>\r\n <ng-container item *ngFor=\"let item of zoomConfig; let index = index;\">\r\n <div\r\n class=\"dropdown-item\"\r\n [ngClass]=\"{'active-item': item.active}\"\r\n (click)=\"applyMethod(item.method)\">\r\n <i *ngIf=\"item.icon\" [ngClass]=\"item.icon\"></i>\r\n <p>{{item.label | translate}}</p>\r\n </div>\r\n </ng-container>\r\n </dropdown>\r\n\r\n <!-- Rotation -->\r\n <dropdown dropdownId=\"dropdown-rotation\" dropDownMenuClass=\"img-editor__container__toolsContainer__RotationDropdown\">\r\n <ng-container label>\r\n <div class=\"img-editor__container__toolsContainer__tool\" (click)=\"rotateRight()\">\r\n <i class=\"far fa-redo\"></i>\r\n <p>{{ 'ImgManager.ImgEditor.rotation' | translate }}</p>\r\n </div>\r\n </ng-container>\r\n <ng-container item *ngFor=\"let item of rotationConfig; let index = index;\">\r\n <div\r\n class=\"dropdown-item\"\r\n [ngClass]=\"{'active-item': item.active}\"\r\n (click)=\"applyMethod(item.method)\">\r\n <i *ngIf=\"item.icon\" [ngClass]=\"item.icon\"></i>\r\n <p>{{item.label | translate}}</p>\r\n </div>\r\n </ng-container>\r\n </dropdown>\r\n\r\n <div\r\n class=\"img-editor__container__toolsContainer__tool\"\r\n (click)=\"onRestart()\"\r\n @insertRemoveAnnim\r\n >\r\n <i class=\"far fa-retweet-alt\"></i>\r\n <p>{{ 'ImgManager.ImgEditor.restart' | translate }}</p>\r\n </div>\r\n</div>\r\n\r\n<div class=\"img-editor__image-cropper\" >\r\n <image-cropper\r\n [imageURL]=\"imgRoute\"\r\n [imageBase64]=\"croppedImage\"\r\n [maintainAspectRatio]=\"imgCropperConfig.maintainAspectRatio\"\r\n [containWithinAspectRatio]=\"containWithinAspectRatio\"\r\n [aspectRatio]=\"imgCropperConfig.aspectRatio\"\r\n [onlyScaleDown]=\"true\"\r\n [roundCropper]=\"false\"\r\n [canvasRotation]=\"canvasRotation\"\r\n [transform]=\"transform\"\r\n [alignImage]=\"'center'\"\r\n [style.display]=\"showCropper ? null : 'none'\"\r\n [format]=\"imgType\"\r\n [backgroundColor]=\"'white'\"\r\n (imageCropped)=\"imageCropped($event)\"\r\n (imageLoaded)=\"imageLoaded()\"\r\n (cropperReady)=\"cropperReady()\"\r\n (loadImageFailed)=\"loadImageFailed()\"\r\n ></image-cropper>\r\n</div>\r\n","import { Component, OnInit, Input, Output, EventEmitter, AfterViewInit } from '@angular/core';\r\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { ImgManagerService } from '../../services/img-manager.service';\r\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\r\nimport { RenamePictureService } from '../../services/rename-picture.service';\r\n\r\n@Component({\r\n selector: 'img-editor',\r\n templateUrl: './img-editor.component.html',\r\n animations: [\r\n easeInOut\r\n ]\r\n})\r\nexport class ImgEditorComponent implements OnInit {\r\n\r\n @Input()\r\n stateDisplayed;\r\n @Input()\r\n imgToEdit: ImgPictureDTO;\r\n\r\n @Output() editClosed = new EventEmitter();\r\n\r\n isLoading: boolean = false;\r\n isImgModified: boolean = false;\r\n isNameModified: boolean = false;\r\n currentCroppedImage: string = ''; // Img modified return in base64 by the cropper\r\n private previousName: string;\r\n\r\n msgFailSave: string = 'ImgManager.ImgEditor.msgFailSave';\r\n msgFailLoad: string = 'ImgManager.ImgEditor.msgFailLoad';\r\n msgSuccessEdit: string = \"Les modifications de l'image ont bien été enregistrées.\"\r\n\r\n constructor(\r\n private imgManagerService: ImgManagerService,\r\n private renamePictureService: RenamePictureService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.previousName = this.imgToEdit.display_name;\r\n }\r\n\r\n onSave() {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n\r\n if (!this.isImgModified && !this.isNameModified) {\r\n this.isLoading = false;\r\n this.onEditClosed();\r\n }\r\n\r\n const obsReplaceImg = this.imgManagerService.replaceImg(this.currentCroppedImage, this.imgToEdit.id_file);\r\n const obsChangeImgName = this.renamePictureService.changeImageName(this.imgToEdit.display_name, this.imgToEdit.id_file);\r\n\r\n if(this.isImgModified && this.isNameModified) {\r\n this.renameAndReplaceImg(obsChangeImgName, obsReplaceImg);\r\n return;\r\n }\r\n\r\n if(this.isImgModified){\r\n obsReplaceImg.subscribe({\r\n next: data => {\r\n this.isLoading = false;\r\n this.onEditClosed(this.msgSuccessEdit);\r\n },\r\n error: error => {\r\n this.isLoading = false;\r\n this.currentCroppedImage = '';\r\n this.onEditClosed(this.msgFailSave);\r\n }});\r\n return;\r\n }\r\n\r\n if (this.isNameModified) {\r\n obsChangeImgName.subscribe({\r\n next: data => {\r\n this.isLoading = false;\r\n this.previousName = this.imgToEdit.display_name;\r\n this.onEditClosed(this.msgSuccessEdit);\r\n },\r\n error: error => {\r\n this.isLoading = false;\r\n this.imgToEdit.display_name = this.previousName;\r\n this.onEditClosed(this.msgFailSave);\r\n }\r\n });\r\n }\r\n this.isNameModified = false;\r\n }\r\n\r\n onEditClosed(msgKey?: string) {\r\n this.editClosed.emit(msgKey);\r\n }\r\n\r\n onRestartEdit() {\r\n this.isImgModified = false;\r\n this.isNameModified = false;\r\n this.imgToEdit.display_name = this.previousName;\r\n }\r\n\r\n onCancel() {\r\n this.onEditClosed('');\r\n }\r\n\r\n onImgCropped(imgBase64: string) {\r\n this.currentCroppedImage = imgBase64;\r\n }\r\n\r\n private renameAndReplaceImg(obsChangeImgName: Observable<any>, obsReplaceImg: Observable<any>) {\r\n // Avoid to use forkjoin, because it can create conflict and loose the img\r\n obsChangeImgName.subscribe({\r\n next: res1 => {\r\n obsReplaceImg.subscribe({\r\n next: res2 => {\r\n this.onEditClosed(this.msgSuccessEdit);\r\n },\r\n error: error => {\r\n this.onEditClosed(this.msgFailSave);\r\n }\r\n });\r\n },\r\n error: error => {\r\n this.onEditClosed(this.msgFailSave);\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"img-editor\" [@easeInOut]=\"'in'\">\r\n\r\n <!-- Button Action Section -->\r\n\r\n <div class=\"img-editor__infoSection__actions\">\r\n <div>\r\n <button\r\n type=\"button\"\r\n class=\"button img-editor__infoSection__actions__cancel\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"isLoading || (!isImgModified && !isNameModified)\"\r\n >\r\n {{ 'ImgManager.ImgLib.cancel' | translate }}\r\n </button>\r\n <div\r\n class=\"button danger button img-editor__infoSection__actions__save\"\r\n [ngClass]=\"{'img-editor__infoSection__actions__save--disable': isLoading}\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ 'ImgManager.ImgEditor.saveBtn' | translate }}\r\n <span btnLoadingAnim *ngIf=\"isLoading\" class=\"btnLoadingAnnimation\"></span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ng-scrollbar\r\n class=\"img-editor__scroll\"\r\n [ngClass]=\"{\r\n 'img-editor__scroll--full': stateDisplayed === 'full',\r\n 'img-editor__scroll--smallDisplay': stateDisplayed === 'small',\r\n 'img-editor__scroll--window': stateDisplayed === 'window'\r\n }\"\r\n >\r\n <div class=\"columns\">\r\n <!-- Left section -->\r\n <div class=\"column is-one-third img-editor__infoSection\">\r\n\r\n <info-section\r\n [imgToEdit]=\"imgToEdit\"\r\n [(isNameModified)]=\"isNameModified\"\r\n >\r\n </info-section>\r\n </div>\r\n\r\n\r\n <!-- Right section -->\r\n <div class=\"column img-editor__container\">\r\n <cropper\r\n [imgToEdit]=\"imgToEdit\"\r\n [(isImgModified)]=\"isImgModified\"\r\n (currentCroppedImageChange)=\"onImgCropped($event)\"\r\n (editClosed)=\"onEditClosed($event)\">\r\n </cropper>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n</div>\r\n","import { Directive, ElementRef, Input, Output, EventEmitter, AfterViewInit } from '@angular/core';\nimport { DomService } from '../services/dom.service';\n\n@Directive({\n selector: '[wzAutoHide]'\n})\nexport class AutoHideDirective implements AfterViewInit {\n @Input() triggerElement: string;\n @Input() forceOn: Array<string> = null;\n\n constructor(private _elementRef: ElementRef, private domService: DomService) {}\n\n @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\n\n ngAfterViewInit(): void {\n this.domService.documentEvent().subscribe((targetElement: Element) => {\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n const classNameFromElement = targetElement.getAttribute('class');\n\n if (!clickedInside && (classNameFromElement === null || !classNameFromElement.includes(this.triggerElement))) {\n this.clickOutside.emit(null);\n }\n\n if (this.forceOn != null && classNameFromElement !== null) {\n let needToClose = true;\n this.forceOn.forEach(v => {\n if (!classNameFromElement.includes(v)) {\n needToClose = false;\n }\n });\n if (needToClose) {\n this.clickOutside.emit(null);\n }\n }\n });\n }\n}\n","import {Component, OnInit, Output, EventEmitter, Input, OnDestroy } from '@angular/core';\r\nimport { CanvaService } from '../../services/canva.service';\r\nimport { CanvaButtonApi } from '../../dto/canva.dto';\r\nimport { WiziBlockMediaDto } from '../../dto/wizi-block-media.dto';\r\nimport { Subscription } from 'rxjs';\r\nimport { stateDisplayed } from '../../dto/export-dtos.api';\r\n\r\n@Component({\r\n selector: 'canva-btn',\r\n templateUrl: './canva-btn.component.html'\r\n})\r\nexport class CanvaBtnComponent implements OnInit, OnDestroy {\r\n\r\n @Input() stateDisplayed: stateDisplayed;\r\n\r\n @Output() showImgUploaded = new EventEmitter();\r\n\r\n canvaApi: CanvaButtonApi;\r\n canvaLogoRouteAssets: string;\r\n imgLoading = false;\r\n\r\n availableFormat = {\r\n 'ImgManager.CanvaBtn.smallSquare' : {\r\n 'width' : 500,\r\n 'height' : 500\r\n },\r\n 'ImgManager.CanvaBtn.mediumSquare' : {\r\n 'width' : 1000,\r\n 'height' : 1000\r\n },\r\n 'ImgManager.CanvaBtn.bigSquare' : {\r\n 'width' : 2500,\r\n 'height' : 2500\r\n }\r\n }\r\n\r\n openDropDownMenu: boolean = false;\r\n\r\n expectedHeight: number;\r\n expectedWidth: number;\r\n subs: Subscription[] = [];\r\n\r\n constructor(\r\n private canvaService: CanvaService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.canvaLogoRouteAssets = this.canvaService.getCanvaLogo();\r\n this.listenCanvaExpectedSize();\r\n }\r\n\r\n listenCanvaExpectedSize() {\r\n // Subcribe to askImg from wizi-block\r\n const subExpectedImgSizesChange =\r\n this.canvaService.bindEventExepectedImgSizeChange().subscribe( (mediaDTO: WiziBlockMediaDto) => {\r\n if (mediaDTO) {\r\n this.expectedWidth = parseInt(mediaDTO.image_width, 10);\r\n this.expectedHeight = parseInt(mediaDTO.image_height, 10);\r\n } else {\r\n this.expectedWidth = undefined;\r\n this.expectedHeight = undefined;\r\n }\r\n });\r\n this.subs.push(subExpectedImgSizesChange);\r\n }\r\n\r\n onOpenCanva(width: number, height: number) {\r\n this.canvaService.openCanva(width, height);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.forEach(sub => sub.unsubscribe());\r\n }\r\n}\r\n","<div class=\"canva dropdown is-right is-hoverable\"\r\n wzAutoHide (clickOutside)=\"openDropDownMenu = false;\"\r\n [ngClass]=\"{'is-up': stateDisplayed === 'small', 'noTooltip': stateDisplayed !== 'small'}\"\r\n >\r\n <div class=\"dropdown-trigger\">\r\n <div\r\n class=\"button canva-btn\"\r\n aria-controls=\"dropdown-menuCanva\"\r\n (click)=\"openDropDownMenu = true;\"\r\n >\r\n <span>{{'ImgManager.CanvaBtn.createImg' | translate}}</span>\r\n <img [src]=\"canvaLogoRouteAssets\" class=\"canva-btn__logo\">\r\n\r\n <span btnLoadingAnim class=\"btnLoadingAnnimation\" *ngIf=\"imgLoading\"></span>\r\n </div>\r\n </div>\r\n <div\r\n class=\"dropdown-menu dropDownShadow\"\r\n [ngClass]=\"{'displayDropDownMenu': openDropDownMenu }\"\r\n id=\"dropdown-menuCanva\"\r\n role=\"menu\">\r\n <ng-scrollbar\r\n class=\"smallScroll\"\r\n >\r\n <div class=\"dropdown-content\">\r\n <div class=\"dropdownTitle\">\r\n <p>{{'ImgManager.CanvaBtn.createImg.title' | translate}}</p>\r\n </div>\r\n\r\n <div class=\"infoItem\">\r\n <p>{{'ImgManager.CanvaBtn.info' | translate}}</p>\r\n </div>\r\n\r\n <ng-container >\r\n <div\r\n *ngIf=\"expectedWidth && expectedHeight\"\r\n class=\"dropdown-item-wrapper\"\r\n >\r\n <div class=\"dropdown-item expectedSizes\" (click)=\"onOpenCanva(expectedWidth, expectedHeight)\">\r\n <p>{{'ImgManager.CanvaBtn.recommanded' | translate}}</p><p>{{expectedWidth}}*{{expectedHeight}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div\r\n *ngFor=\"let format of availableFormat| keyvalue\"\r\n class=\"dropdown-item-wrapper\">\r\n <div\r\n (click)=\"onOpenCanva(format.value.width, format.value.height)\"\r\n class=\"dropdown-item\">\r\n <p>{{format.key | translate}}</p><p>{{format.value.width}}*{{format.value.height}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n </div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'IsLastPage'\n})\nexport class PagniationIsLastPage implements PipeTransform {\n /**\n * Return true, if the current page is the last page. Otherwise, return false.\n * @param currentPage\n * @param totalItems\n * @param itemsPerPage\n */\n transform(currentPage: number, totalItems: number, itemsPerPage: number): boolean {\n if (!(currentPage >= 0 && totalItems >= 0 && itemsPerPage >= 0)) {\n throw new Error('currentPage or totalItems or itemsPerPage is/are missing in PagniationIsLastPage pipe.');\n }\n return currentPage === Math.ceil(totalItems / itemsPerPage);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ArrayTotalPages'\n})\nexport class PagniationArrayTotalPages implements PipeTransform {\n /**\n * Return an incremental array corresponding with the number page\n * [ 1, 2, 3 ..., last page number ]\n * @param totalItems\n * @param itemsPerPage\n */\n transform(totalItems: number, itemsPerPage: number): number[] {\n if (!(totalItems >= 0 && itemsPerPage >= 0)) {\n throw new Error('totalItems or itemsPerPage missing in ArrayTotalPages pipe.');\n }\n const arrayLength: number = Math.ceil(totalItems / itemsPerPage);\n return Array.apply(null, { length: arrayLength })\n .map(Number.call, Number)\n .map((x: number) => x + 1);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'LargeNumberOfPage'\r\n})\r\nexport class LargeNumberOfPagePipe implements PipeTransform {\r\n /**\r\n * Return an incremental array\r\n * Display 30 pages, from -15 to +15 of the current page\r\n * @param totalItems\r\n * @param itemsPerPage\r\n */\r\n transform(totalItems: number, itemsPerPage: number, currentPage: number): Array<{value: number, display:number}> {\r\n if (!(totalItems >= 0 && itemsPerPage >= 0)) {\r\n throw new Error('totalItems or itemsPerPage missing in ArrayTotalPages pipe.');\r\n }\r\n\r\n let arrayLength: number = 32;\r\n\r\n const startAtPage = currentPage <= 15 ? 0: currentPage - 15;\r\n const totalPage = Math.ceil(totalItems / itemsPerPage);\r\n\r\n\r\n\r\n const arrayWithPageNumber = Array.apply(null, { length: arrayLength })\r\n .map(Number.call, Number)\r\n .map((x: number) => {\r\n\r\n const pageIndex:any = {\r\n display: startAtPage + x + 1,\r\n value: startAtPage + x + 1\r\n };\r\n\r\n if (x === arrayLength - 2) {\r\n pageIndex.display = '...';\r\n }\r\n if (x === arrayLength - 1) {\r\n pageIndex.display = totalPage;\r\n pageIndex.value = totalPage;\r\n }\r\n return pageIndex;\r\n });\r\n\r\n\r\n if (startAtPage) {\r\n arrayWithPageNumber.unshift(\r\n {\r\n display: 1,\r\n value: 1\r\n },\r\n {\r\n display: \"...\",\r\n value: 2\r\n }\r\n );\r\n }\r\n return arrayWithPageNumber;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface PaginationFilters {\n totalItems: number;\n itemsPerPage: number;\n currentPage: number;\n}\n\n@Component({\n selector: 'wz-page-selector',\n templateUrl: './page-selector.component.html'\n})\nexport class PageSelectorComponent {\n\n @Input() set pagination(pagination: PaginationFilters) {\n this._pagination = pagination;\n }\n get pagination(): PaginationFilters {\n return this._pagination;\n }\n private _pagination: PaginationFilters;\n\n @Input() set totalItems(totalItems: number) {\n this.numberOfPage = Math.ceil(totalItems / this.pagination.itemsPerPage);\n this.largeNumberOfPage = this.numberOfPage > 30;\n }\n get totalItems(): number {\n return this._totalItems;\n }\n private _totalItems: number;\n openAbsoluteSelect:boolean = false;\n\n largeNumberOfPage: boolean = false;\n numberOfPage: number = 0;\n\n @Output() pageChange: EventEmitter<number> = new EventEmitter();\n\n constructor() {}\n\n onGotoPageChange(event, directValue) {\n if (directValue) {\n this.pageChange.emit(event);\n this.openAbsoluteSelect = false;\n } else {\n this.pageChange.emit(parseInt(event.target.value));\n }\n }\n}\n","<div class=\"wz-selector\">\r\n\r\n <div class=\"wz-selector__default\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\">\r\n <div class=\"wz-selector__default__base\" *ngIf=\"largeNumberOfPage;\" (click)=\"openAbsoluteSelect = !openAbsoluteSelect\">\r\n <input name=\"page-input\" [value]=\"pagination.currentPage\" (change)=\"onGotoPageChange($event, false);openAbsoluteSelect = false;\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\" />\r\n <i class=\"fa-solid fa-sort-down\"></i>\r\n </div>\r\n <div class=\"wz-selector__default__absolute\" *ngIf=\"openAbsoluteSelect\">\r\n <div class=\"wz-selector__default__absolute__wrapper\" *ngFor=\"let pageIndex of (pagination.totalItems | LargeNumberOfPage: pagination.itemsPerPage : pagination.currentPage).slice().reverse() as result\">\r\n <div class=\"wz-selector__default__absolute__wrapper__item\" [ngClass]=\"{'selected': pageIndex.value === pagination.currentPage}\" (click)=\"onGotoPageChange(pageIndex.value, true)\">\r\n <span>{{ pageIndex.display }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!largeNumberOfPage\">\r\n <select name=\"page\" (change)=\"onGotoPageChange($event, false)\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\">\r\n <ng-container *ngFor=\"let pageIndex of pagination.totalItems | ArrayTotalPages: pagination.itemsPerPage\">\r\n <option [selected]=\"pageIndex === pagination.currentPage\" [value]=\"pageIndex\">\r\n {{ pageIndex }}\r\n </option>\r\n </ng-container>\r\n </select>\r\n </ng-container>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'customPagniationText'\n})\nexport class PagniationText implements PipeTransform {\n constructor(private translateService: TranslateService) {}\n\n /**\n * Update pagination text if at least one entrie change\n * @param currentPage\n * @param totalItems\n * @param itemsPerPage\n */\n transform(currentPage: number, totalItems: number, itemsPerPage: number): any {\n let currentItemsLow = 0,\n currentItemsHigh = 0;\n\n if (totalItems) {\n currentItemsLow = (currentPage - 1) * itemsPerPage + 1;\n currentItemsHigh = currentPage * itemsPerPage;\n }\n\n if (currentItemsHigh > totalItems) {\n currentItemsHigh = totalItems;\n }\n\n return this.translateService.instant('PaginationComponent.on', { low: currentItemsLow, high: currentItemsHigh, total: totalItems });\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PagniationIsLastPage } from '../../../pipes/pagination/total-pages/is-last-page.pipe';\n\nexport interface PaginationFilters {\n totalItems: number;\n itemsPerPage: number;\n currentPage: number;\n}\n\n@Component({\n selector: 'wz-pagination',\n templateUrl: './pagination.component.html'\n})\nexport class PaginationComponent {\n @Input() set pagination(pagination: PaginationFilters) {\n this._pagination = pagination;\n }\n get pagination(): PaginationFilters {\n return this._pagination;\n }\n private _pagination: PaginationFilters;\n\n @Output() pageChange: EventEmitter<PaginationFilters> = new EventEmitter();\n\n constructor() {}\n\n decrementPage() {\n if (this.pagination.currentPage <= 1) {\n return;\n }\n this.pagination.currentPage--;\n this.pageChange.emit(this.pagination);\n }\n\n incrementPage() {\n const isLastPage = new PagniationIsLastPage().transform(\n this.pagination.currentPage,\n this.pagination.totalItems,\n this.pagination.itemsPerPage\n );\n if (isLastPage) {\n return;\n }\n this.pagination.currentPage++;\n this.pageChange.emit(this.pagination);\n }\n\n onGotoPageChange(pageNumber) {\n this.pagination.currentPage = parseInt(pageNumber);\n this.pageChange.emit(this.pagination);\n }\n}\n","<div class=\"wz-pagination\" *ngIf=\"pagination && pagination.itemsPerPage\">\n <div class=\"wz-pagination__wrapper\">\n <div class=\"wz-pagination__wrapper__page\">\n <p>{{ 'PaginationComponent.page' | translate }}</p>\n\n <wz-page-selector [pagination]=\"pagination\" [totalItems]=\"pagination.totalItems\" (pageChange)=\"onGotoPageChange($event)\"></wz-page-selector>\n </div>\n\n <div class=\"wz-pagination__wrapper__elements\">\n <p>{{ pagination.currentPage | customPagniationText: pagination.totalItems:pagination.itemsPerPage }}</p>\n </div>\n\n <div class=\"wz-pagination__wrapper__arrows\">\n <div\n (click)=\"decrementPage()\"\n class=\"wz-pagination__wrapper__arrows__arrow wz-pagination__wrapper__arrows__arrow--left\"\n [ngClass]=\"{ 'wz-pagination__wrapper__arrows__arrow--disabled': pagination.currentPage === 1 }\"\n >\n <span class=\"wz-pagination__wrapper__arrows__arrow__icon\"></span>\n </div>\n <div\n (click)=\"incrementPage()\"\n class=\"wz-pagination__wrapper__arrows__arrow wz-pagination__wrapper__arrows__arrow--right\"\n [ngClass]=\"{\n 'wz-pagination__wrapper__arrows__arrow--disabled':\n pagination.currentPage | IsLastPage: pagination.totalItems:pagination.itemsPerPage\n }\"\n >\n <span class=\"wz-pagination__wrapper__arrows__arrow__icon\"></span>\n </div>\n </div>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'numberToArray'\n})\nexport class NumberToArray implements PipeTransform {\n\n transform(number: number): any[] {\n return Array.from('x'.repeat(number));\n }\n}\n","import { HttpClient } from '@angular/common/http';\r\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { listAnnimation } from '../../../animations/listAnnimation/list.animation';\r\nimport { PictureNameUpdate, tabDisplayed } from '../../../dto/export-dtos.api';\r\nimport { AlertService } from '../../../services/alert.service';\r\nimport { ImgCDNService } from '../../../services/config/img-cdn.service';\r\nimport { ImgEventService } from '../../../services/img-event.service';\r\nimport { ImgManagerService } from '../../../services/img-manager.service';\r\nimport { ImgSelectionService } from '../../../services/img-selection.service';\r\nimport { ImagesActionHandler } from '../images-actions-handler';\r\nimport { ApiService } from '../../../services/api.service';\r\n\r\n@Component({\r\n selector: 'mosaic-view',\r\n templateUrl: './mosaic-view.component.html',\r\n animations: [\r\n listAnnimation\r\n ]\r\n})\r\nexport class MosaicViewComponent extends ImagesActionHandler implements OnInit {\r\n\r\n @Input()\r\n tabDisplayed: tabDisplayed;\r\n @Input()\r\n fullSize: boolean;\r\n @Input()\r\n nbFakeImg: number = 0;\r\n @Output()\r\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(\r\n imgManager: ImgManagerService,\r\n imgSelectionService: ImgSelectionService,\r\n http: HttpClient,\r\n imgCDNService: ImgCDNService,\r\n imgEventCardService: ImgEventService,\r\n alertService: AlertService,\r\n translateService: TranslateService,\r\n apiService: ApiService\r\n ) {\r\n super(\r\n imgManager,\r\n imgSelectionService,\r\n http,\r\n imgCDNService,\r\n imgEventCardService,\r\n alertService,\r\n translateService,\r\n apiService\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onSearchChange(event: string) {\r\n // Reset table filters\r\n this.tableFilters.sort = undefined;\r\n this.tableFilters.order = undefined;\r\n this.tableFilters.currentPage = 1;\r\n this.filtersChange.emit(this.tableFilters);\r\n }\r\n\r\n onCardRenamePicture(pictureRenamed: PictureNameUpdate) {\r\n this.pictureNameChange.next(pictureRenamed);\r\n }\r\n\r\n switchDisplayWindowCard() {\r\n this.switchDisplayWindow.emit(true);\r\n }\r\n\r\n trackById(index: number, picture: any) {\r\n return picture.id;\r\n }\r\n}\r\n","<div class=\"mosaic\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small', 'mosaic--displayPexelsImg': displayPexelsResults}\">\r\n <!-- Search section -->\r\n <div\r\n class=\"mosaic__search\"\r\n [ngClass]=\"{'mosaic__search--small': stateDisplayed === 'small'}\"\r\n *ngIf=\"tabDisplayed !== 'img-upload'\">\r\n <wz-input-search\r\n [(ngModel)]=\"tableFilters.searchValue\"\r\n (changeDebounced)=\"onSearchChange($event)\"\r\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\r\n [smallPadding]=\"stateDisplayed === 'small'\"\r\n ></wz-input-search>\r\n </div>\r\n\r\n <!-- Cards section -->\r\n <div\r\n class=\"mosaic__container__cards\"\r\n [ngClass]=\"{'mosaic__container__cards--padding': stateDisplayed !== 'window'}\"\r\n [@listAnimation]=\"picturesList.length\"\r\n *ngIf=\"!isLoading && !displayPexelsResults\"\r\n >\r\n <img-card\r\n *ngFor=\"let picture of picturesList; let index = index; trackBy: trackById \"\r\n [picture]=\"picture\"\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [tabDisplayed]=\"tabDisplayed\"\r\n [disable]=\"disable\"\r\n (toggleImgSelected)=\"onToggleSelectImg(index)\"\r\n (pictureNameChange)=\"onCardRenamePicture($event)\"\r\n (switchDisplayWindow)=\"switchDisplayWindowCard()\"\r\n [fullSize]=\"fullSize\"\r\n ></img-card>\r\n <div\r\n *ngFor=\"let fakeImg of nbFakeImg | numberToArray\"\r\n class=\"mosaic__container__cards__fakeImg\"\r\n [ngClass]=\"{'mosaic__container__cards__fakeImg--smallFakeImg': stateDisplayed === 'small' || tabDisplayed === 'img-upload'}\">\r\n </div>\r\n </div>\r\n\r\n <!-- Loader section -->\r\n <div class=\"mosaic__container__loader\" *ngIf=\"isLoading\">\r\n <wz-loader [small]=\"true\"></wz-loader>\r\n </div>\r\n\r\n <!-- Pagination section -->\r\n <div class=\"mosaic__pagination\" *ngIf=\"picturesList.length && tabDisplayed !== 'img-upload' && !displayPexelsResults\" >\r\n <wz-pagination\r\n [pagination]=\"tableFilters\"\r\n (pageChange)=\"onFiltersChange()\"\r\n >\r\n </wz-pagination>\r\n </div>\r\n\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { NwbFilterGroup, NwbFilterRoutingBuilder } from '@wizishop/ng-wizi-bulma';\r\nimport { Subject } from 'rxjs';\r\nimport { PaginationFilters } from '../../components/shared/pagination/pagination.component';\r\n\r\nexport interface TableFilters extends PaginationFilters {\r\n sort: string;\r\n order: boolean;\r\n searchValue: string;\r\n}\r\n\r\n@Injectable()\r\nexport class FiltersTableService {\r\n filterGroups = new Map<string, NwbFilterGroup>();\r\n dataTableFilters: TableFilters = {\r\n sort: undefined,\r\n order: undefined,\r\n searchValue: undefined,\r\n totalItems: 0,\r\n itemsPerPage: 0,\r\n currentPage: 0\r\n };\r\n\r\n private sortSubject: Subject<any> = new Subject<any>();\r\n\r\n constructor(private filterRoutingBuilder: NwbFilterRoutingBuilder) {}\r\n\r\n getTableFilterGroup(dataTableName: string) {\r\n if (this.filterGroups.has(dataTableName)) {\r\n return this.filterGroups.get(dataTableName);\r\n }\r\n const filterGroup: NwbFilterGroup = this.filterRoutingBuilder.group(this.dataTableFilters, dataTableName);\r\n this.filterGroups.set(dataTableName, filterGroup);\r\n return filterGroup;\r\n }\r\n\r\n /**\r\n * Use to reset the others sorts of the table\r\n * @param dataTableName\r\n * @param sortName\r\n * @param order\r\n */\r\n emitSortChange(dataTableName: string, sortName: string, order: boolean) {\r\n this.sortSubject.next({ dataTableName, sortName, order });\r\n }\r\n\r\n getSortChangeListner() {\r\n return this.sortSubject.asObservable();\r\n }\r\n\r\n setPaginationFilters(dataTableName: string, totalItems: number, itemsPerPage: number, currentPage: number) {\r\n const filterGroup = this.getTableFilterGroup(dataTableName);\r\n filterGroup.setValues({\r\n itemsPerPage,\r\n currentPage\r\n });\r\n }\r\n\r\n setInitialPaginationFiltersIfNotExist(dataTableName: string, itemsPerPage: number, currentPage: number) {\r\n const filterGroup = this.getTableFilterGroup(dataTableName);\r\n filterGroup.setValues({\r\n itemsPerPage: filterGroup.get('itemsPerPage') ? parseInt(filterGroup.get('itemsPerPage')) : itemsPerPage,\r\n currentPage: filterGroup.get('currentPage') ? parseInt(filterGroup.get('currentPage')) : currentPage\r\n });\r\n }\r\n}","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wz-checkbox',\n templateUrl: './checkbox.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }]\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input()\n label = '';\n @Input()\n value: any;\n @Input()\n type: string;\n @Input()\n alone = false;\n @Input()\n checked = false;\n @Input()\n id = '';\n @Input()\n name: string;\n disabled = false;\n constructor() {}\n private _onChange: Function;\n private _onTouched: Function;\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(obj: any): void {\n this.value = obj;\n }\n\n onChange(value) {\n if (this._onChange) {\n this._onChange(value);\n }\n }\n}\n","<div class=\"checkBoxField field\" [ngClass]=\"{ 'field--nowrap': type === 'column', alone: alone }\">\n <div class=\"field__row\">\n <input\n type=\"checkbox\"\n [id]=\"id\"\n class=\"is-checkradio\"\n [name]=\"name\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [checked]=\"checked\"\n (ngModelChange)=\"onChange($event)\"\n />\n <label [attr.for]=\"id\">{{ label }}</label>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { NwbFilterGroup } from '@wizishop/ng-wizi-bulma';\nimport { Subscription } from 'rxjs';\nimport { TableFilters, FiltersTableService } from '../../../services/table/filters-table.service';\n\n@Component({\n selector: 'wz-table',\n templateUrl: './table.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class TableComponent implements OnInit {\n /// Input/Output of table filters ///\n\n @Input() tableFilters: TableFilters;\n @Output() tableFiltersChange: EventEmitter<TableFilters> = new EventEmitter();\n\n @Input() tableRoutingName: string; // Name of the table\n @Input() placeholder: string = '';\n\n private _filterGroup: NwbFilterGroup;\n\n /// Input/Output of checkbox ///\n\n /** Pass to true to display checkbox in the header table */\n @Input() checkbox = false;\n /** Emit new header checboxValue */\n @Output() toggleAllCheckBox: EventEmitter<boolean> = new EventEmitter();\n\n /// Input to disable section ///\n\n /** Pass to true to hide search input */\n @Input() disableSearch: boolean = false;\n /** Pass to true to hide the pagniator */\n @Input() disablePagniation: boolean = false;\n\n /// Input for loader on table body ///\n @Input() isLoading = false;\n\n /// Private variables ///\n headerCheckBoxId: string;\n private filterGroupChangeSub: Subscription;\n\n constructor(private filtersTableService: FiltersTableService) {}\n\n ngOnInit(): void {\n this.headerCheckBoxId = uuid(); // Create checkbox unique id\n\n /* Handle routing filters */\n if (this.tableRoutingName) {\n this._filterGroup = this.filtersTableService.getTableFilterGroup(this.tableRoutingName);\n\n // Performe initial fetch data\n this._filterGroup.valuesChange$.next([]);\n\n this.setTablesFilters();\n\n // Listen to filters changes with debounced time to limit multiple api calls\n this.filterGroupChangeSub = this._filterGroup.valuesChange$.subscribe(filters => {\n this.setTablesFilters();\n });\n }\n }\n\n onToggleAllCheckBox(event) {\n this.toggleAllCheckBox.emit(event.target.checked);\n }\n\n searchChange(event: string) {\n // Reset table filters\n this.tableFilters.sort = undefined;\n this.tableFilters.order = undefined;\n this.tableFilters.currentPage = 1;\n this.tableFiltersChange.emit(this.tableFilters);\n\n // Reset routing filters\n if (this._filterGroup) {\n this._filterGroup.setValues({\n searchValue: this.tableFilters.searchValue,\n sort: undefined,\n order: undefined,\n currentPage: 1\n });\n }\n }\n\n pageChange() {\n this.tableFiltersChange.emit(this.tableFilters);\n if (this._filterGroup) {\n this._filterGroup.setValues({\n itemsPerPage: this.tableFilters.itemsPerPage,\n currentPage: this.tableFilters.currentPage\n });\n }\n }\n\n /**\n * Set tableFilters from routing data existing in the url\n * */\n private setTablesFilters() {\n this.tableFilters = {\n sort: this._filterGroup.get('sort'),\n order: this._filterGroup.get('order'),\n searchValue: this._filterGroup.get('searchValue'),\n itemsPerPage: this._filterGroup.get('itemsPerPage') ? parseInt(this._filterGroup.get('itemsPerPage')) : 0,\n currentPage: this._filterGroup.get('currentPage') ? parseInt(this._filterGroup.get('currentPage')) : 0,\n totalItems: this.tableFilters.totalItems\n };\n this.tableFiltersChange.emit(this.tableFilters);\n }\n\n ngDestroy() {\n if (this.filterGroupChangeSub) {\n this.filterGroupChangeSub.unsubscribe();\n }\n }\n}\n","<div class=\"wz-table\">\n <!-- Header section -->\n <div class=\"wz-table__head\" id=\"headerTable\">\n <div *ngIf=\"checkbox\" class=\"wz-table__head__cell wz-table__head__cell--checkbox\">\n <wz-checkbox [id]=\"headerCheckBoxId\" (change)=\"onToggleAllCheckBox($event)\" [alone]=\"true\"></wz-checkbox>\n </div>\n\n <!-- Header contents are added with the headerCell directive -->\n <ng-content select=\"[headerCell]\"></ng-content>\n </div>\n\n <!-- Search section -->\n <div *ngIf=\"!disableSearch\" class=\"wz-table__search\">\n <wz-input-search\n [(ngModel)]=\"tableFilters.searchValue\"\n (changeDebounced)=\"searchChange($event)\"\n [placeholder]=\"placeholder\"\n [smallPadding]=\"true\"\n ></wz-input-search>\n </div>\n\n <!-- Body section -->\n <div class=\"wz-table__body\">\n <!-- Loader on body -->\n <div class=\"wz-table__body__loader\" *ngIf=\"isLoading\">\n <wz-loader [small]=\"true\"></wz-loader>\n </div>\n <!-- Body contents are added with the tableRow directive -->\n <ng-content select=\"[tableRow]\" *ngIf=\"!isLoading\"></ng-content>\n </div>\n\n <!-- Pagination section -->\n <wz-pagination *ngIf=\"!disablePagniation\" [pagination]=\"tableFilters\" (pageChange)=\"pageChange()\"></wz-pagination>\n</div>\n","import { DOCUMENT } from '@angular/common';\nimport { Inject } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[tableColumn]'\n})\nexport class TableColumn {\n @Input('columnSize') columnSize: string; // Optional.\n @Input('centerCell') centerCell: string; // Optional. left|center|right\n\n private centerCellValue: string[] = ['left', 'center', 'right'];\n\n constructor(private currentCell: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private document) {}\n\n ngAfterViewInit() {\n this.applyCustomStylesOnCell();\n }\n\n applyCustomStylesOnCell() {\n this.currentCell.nativeElement.style.flexGrow = typeof this.columnSize !== 'undefined' ? this.columnSize : '1';\n this.renderer.addClass(this.currentCell.nativeElement, 'wz-table__body__line__cell');\n\n if (this.centerCell) {\n if (this.centerCellValue.indexOf(this.centerCell) === -1) {\n throw 'Error : The centerCell directive has no matched value. The value must be one of the following : left, center, right.';\n }\n\n let className = 'wz-table__body__line__cell--center' + '--' + this.centerCell;\n this.renderer.addClass(this.currentCell.nativeElement, className);\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ComponentFactoryResolver,\n EventEmitter,\n Inject,\n Output,\n Renderer2,\n Directive,\n ElementRef,\n Input,\n ComponentRef,\n ApplicationRef,\n EmbeddedViewRef,\n Injector,\n Type\n} from '@angular/core';\n\nimport { v4 as uuid } from 'uuid';\nimport { CheckboxComponent } from '../../components/shared/checkbox/checkbox.component';\n\n@Directive({\n selector: '[checkBoxRow]'\n})\nexport class CheckBoxRow {\n @Input('checkBoxId') checkBoxId: string | number;\n @Input('checkBoxName') checkBoxName: string;\n\n @Input('checkBoxValue') set checkBoxValue(value: boolean) {\n this._value = value;\n if (this.checkboxComponentRef) {\n this.setCheckBoxValue();\n }\n }\n _value: boolean;\n get checkBoxValue(): boolean {\n return this._value;\n }\n\n @Output() checkBoxValueChange: EventEmitter<boolean> = new EventEmitter();\n\n private checkboxComponentRef: ComponentRef<CheckboxComponent>;\n private htmlContainer: HtmlContainer;\n\n constructor(\n private currentRow: ElementRef,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document,\n private resolver: ComponentFactoryResolver,\n private injector: Injector\n ) {}\n\n ngOnInit() {\n this.createCheckBoxComponent();\n this.handleChecboxInputs();\n this.handleCheckboxOutputs();\n }\n\n createCheckBoxComponent() {\n // Create the container\n const checkBoxContainer = document.createElement('div');\n checkBoxContainer.className = 'wz-table__body__line__cell wz-table__body__line__cell--checkbox';\n\n // Insert divCheckBox in the DOM as the first child of the row\n this.renderer.insertBefore(this.currentRow.nativeElement, checkBoxContainer, this.currentRow.nativeElement.firstChild);\n\n // Insert the CheckBoxComponent inside the container (DOM and Angular DOM)\n this.htmlContainer = new HtmlContainer(checkBoxContainer, this.appRef, this.resolver, this.injector);\n this.checkboxComponentRef = this.htmlContainer.attach(CheckboxComponent);\n }\n\n private handleChecboxInputs() {\n this.checkboxComponentRef.instance.id = this.checkBoxId ? this.checkBoxId : uuid();\n this.checkboxComponentRef.instance.name = this.checkBoxName ? this.checkBoxName : undefined;\n this.checkboxComponentRef.instance.alone = true;\n this.setCheckBoxValue();\n }\n\n private setCheckBoxValue() {\n this.checkboxComponentRef.instance.value = this.checkBoxValue;\n }\n\n private handleCheckboxOutputs() {\n // Detect checkbox changes\n this.checkboxComponentRef.instance.registerOnChange(() => {\n this._toggleCheckbox();\n });\n }\n\n private _toggleCheckbox() {\n this.checkBoxValue = !this.checkBoxValue;\n this.checkBoxValueChange.emit(this.checkBoxValue);\n }\n\n ngOnDestroy() {\n this.htmlContainer.dispose();\n }\n}\n\nexport class HtmlContainer {\n private attached: boolean = false;\n\n private disposeFn: () => void;\n\n constructor(\n private hostElement: Element,\n private appRef: ApplicationRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector\n ) {}\n\n attach(component: Type<any>): ComponentRef<any> {\n if (this.attached) {\n throw new Error('component has already been attached');\n }\n\n this.attached = true;\n const childComponentFactory = this.componentFactoryResolver.resolveComponentFactory(component);\n\n let componentRef = childComponentFactory.create(this.injector);\n\n this.appRef.attachView(componentRef.hostView);\n this.disposeFn = () => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n };\n\n this.hostElement.appendChild((componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n\n return componentRef;\n }\n\n dispose() {\n if (this.attached) {\n this.disposeFn();\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { EventEmitter, Inject, Output } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Directive, ElementRef, Input } from '@angular/core';\nimport { NwbFilterGroup } from '@wizishop/ng-wizi-bulma';\nimport { Subscription } from 'rxjs';\nimport { FiltersTableService, TableFilters } from '../../services/table/filters-table.service';\n\n@Directive({\n // The selector has the same name as the headerCell selector in table.component.html\n selector: '[headerCell]'\n})\nexport class TableColumnHeader {\n @Input('headerName') // Optional.\n set headerName(value: string) {\n this._headerName = value;\n this.setHeaderName();\n }\n _headerName: string = '';\n get headerName(): string {\n return this._headerName;\n }\n @Input('columnSize') columnSize: string; // Optional.\n @Input('filterRouting') filterRouting: boolean = false; // Optional. Set to true to use Filter Routing.\n @Input('tableName') tableName: string; // Optional, but mandatory to handle sorting\n @Input('sortName') sortName: string; // Optional, but mandatory to handle sorting\n @Input('centerCell') centerCell: string; // Optional. left|center|right\n @Output() onSortChange: EventEmitter<boolean> = new EventEmitter(); // Emit the sort value (true, false, undefuned) of the current sort icon when clicking\n @Input() tableFilters: TableFilters;\n @Output() tableFiltersChange: EventEmitter<TableFilters> = new EventEmitter();\n\n private centerCellValue: string[] = ['left', 'center', 'right'];\n\n private contentHeader: HTMLAnchorElement;\n private filterGroup: NwbFilterGroup;\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private currentCell: ElementRef,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document,\n private filtersTableService: FiltersTableService\n ) {}\n\n ngOnInit() {\n if (this.tableName && this.sortName) {\n if (this.filterRouting) {\n this.handleSortRouting();\n } else {\n this.handleSortBasic();\n }\n }\n }\n\n ngAfterViewInit() {\n this.applyCustomStylesOnCell();\n this.renderHeaderColumn();\n }\n\n handleSortRouting() {\n this.filterGroup = this.filtersTableService.getTableFilterGroup(this.tableName);\n\n const filterGroupChangeSub = this.filterGroup.valuesChange$.subscribe(filters => {\n const filterSort = filters.filter(filter => filter.key === 'sort')[0];\n if (this.sortName !== filterSort.value) {\n this.resetSortIcon();\n }\n });\n this.subscriptions.push(filterGroupChangeSub);\n }\n\n handleSortBasic() {\n const sortChangeSub = this.filtersTableService.getSortChangeListner().subscribe(sort => {\n if (this.tableName === sort.dataTableName && this.sortName !== sort.sortName) {\n // Reset the current sort icon\n this.resetSortIcon();\n }\n });\n this.subscriptions.push(sortChangeSub);\n }\n\n resetSortIcon() {\n // Replace current icon with default icon\n this.contentHeader.className = this.contentHeader.className.replace(this.getCurrentSortIcon(), 'idle');\n }\n\n applyCustomStylesOnCell() {\n this.currentCell.nativeElement.style.flexGrow = typeof this.columnSize !== 'undefined' ? this.columnSize : '1';\n this.renderer.addClass(this.currentCell.nativeElement, 'wz-table__head__cell');\n\n if (this.centerCell) {\n if (this.centerCellValue.indexOf(this.centerCell) === -1) {\n throw 'Error : The centerCell directive has no matched value. The value must be one of the following : left, center, right.';\n }\n\n let className = 'wz-table__head__cell--center' + '--' + this.centerCell;\n this.renderer.addClass(this.currentCell.nativeElement, className);\n }\n }\n\n renderHeaderColumn() {\n this.createHeaderContent();\n this.renderer.appendChild(this.currentCell.nativeElement, this.contentHeader);\n }\n\n createHeaderContent() {\n this.contentHeader = document.createElement('a');\n this.contentHeader.className = 'wz-table__head__cell__search';\n this.setHeaderName();\n if (this.tableName && this.sortName) {\n this.handleSort();\n }\n }\n\n private setHeaderName() {\n if (!this.contentHeader) {\n return;\n }\n this.contentHeader.innerHTML = this.headerName;\n }\n\n handleSort() {\n // Set icon in the header column cell\n this.contentHeader.className += ' wz-table__head__cell__search--' + this.getInitialSortIcon();\n\n // On click on the content header, change the icon and emit event\n this.renderer.listen(this.contentHeader, 'click', () => {\n const currentIcon = this.getCurrentSortIcon();\n let newIcon: string;\n let newSort: string, newOrder: boolean;\n\n switch (currentIcon) {\n case 'idle':\n newIcon = 'up';\n newSort = this.sortName;\n newOrder = true;\n break;\n\n case 'up':\n newIcon = 'down';\n newSort = this.sortName;\n newOrder = false;\n break;\n\n case 'down':\n newIcon = 'idle';\n break;\n\n default:\n newIcon = 'idle';\n break;\n }\n // Replace the icon\n this.contentHeader.className = this.contentHeader.className.replace(currentIcon, newIcon);\n\n this.emitEvents(newSort, newOrder);\n });\n }\n\n getInitialSortIcon() {\n if (!this.filterRouting) {\n return 'idle';\n }\n // Get Initial Sort Icon for Routing Filter\n let initialSortIcon = 'idle';\n if (this.filterGroup.get('sort') === this.sortName) {\n initialSortIcon = this.filterGroup.get('order') == 'true' ? 'up' : 'down';\n }\n return initialSortIcon;\n }\n\n getCurrentSortIcon() {\n const regexp = /wz-table__head__cell__search--(?<icon>\\w+)/;\n const { groups } = regexp.exec(this.contentHeader.className);\n return groups.icon;\n }\n\n emitEvents(newSort, newOrder) {\n if (this.filterRouting) {\n // Will send the filter routing value has changes event\n this.filterGroup.setValues({\n sort: newSort,\n order: newOrder,\n currentPage: 1\n });\n } else {\n // Send the event sort change\n this.filtersTableService.emitSortChange(this.tableName, this.sortName, newOrder);\n }\n if (this.tableFilters) {\n this.tableFilters.sort = this.sortName;\n this.tableFilters.order = newOrder;\n this.tableFilters.currentPage = 1;\n this.tableFiltersChange.emit(this.tableFilters);\n }\n this.onSortChange.emit(newOrder);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => {\n subscription.unsubscribe();\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject } from '@angular/core';\r\nimport { Renderer2 } from '@angular/core';\r\nimport { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n // The selector has the same name as the tableRaw selector in table.component.html\r\n selector: '[tableRow]',\r\n})\r\nexport class TableRow {\r\n constructor(private currentCell: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private document) {}\r\n\r\n ngAfterViewInit() {\r\n this.applyCustomStylesOnCell();\r\n }\r\n\r\n applyCustomStylesOnCell() {\r\n this.renderer.addClass(this.currentCell.nativeElement, 'wz-table__body__line');\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { listAnnimation } from '../../../animations/listAnnimation/list.animation';\r\nimport { AlertService } from '../../../services/alert.service';\r\nimport { ImgCDNService } from '../../../services/config/img-cdn.service';\r\nimport { ImgEventService } from '../../../services/img-event.service';\r\nimport { ImgManagerService } from '../../../services/img-manager.service';\r\nimport { ImgSelectionService } from '../../../services/img-selection.service';\r\nimport { ImagesActionHandler } from '../images-actions-handler';\r\nimport { ApiService } from '../../../services/api.service';\r\n\r\n@Component({\r\n selector: 'table-view',\r\n templateUrl: './table-view.component.html',\r\n animations: [\r\n listAnnimation\r\n ]\r\n})\r\nexport class TableViewComponent extends ImagesActionHandler implements OnInit {\r\n dataTableName: string = 'imgagesView'; // Name of your table\r\n\r\n constructor(\r\n imgManager: ImgManagerService,\r\n imgSelectionService: ImgSelectionService,\r\n http: HttpClient,\r\n imgCDNService: ImgCDNService,\r\n imgEventCardService: ImgEventService,\r\n alertService: AlertService,\r\n translateService: TranslateService,\r\n apiService: ApiService\r\n ) {\r\n super(\r\n imgManager,\r\n imgSelectionService,\r\n http,\r\n imgCDNService,\r\n imgEventCardService,\r\n alertService,\r\n translateService,\r\n apiService\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","<div class=\"table-view\" [@listAnimation]=\"picturesList.length\">\n <wz-table\n [checkbox]=\"true\"\n (toggleAllCheckBox)=\"onToggleAllCheckBoxRow($event)\"\n [(tableFilters)]=\"tableFilters\"\n (tableFiltersChange)=\"onFiltersChange()\"\n [placeholder]=\"'ImgManager.SearchBar.placeholder' | translate\"\n [disablePagniation]=\"displayPexelsResults\"\n [isLoading]=\"isLoading\"\n >\n <!-- Header Section -->\n <div\n headerCell\n [headerName]=\"'ImgManager.ImgList.titleImgName' | translate\"\n columnSize=\"2\"\n sortName=\"name\"\n ></div>\n <div\n headerCell\n centerCell=\"center\"\n [headerName]=\"'ImgManager.ImgList.titleResolution' | translate\"\n ></div>\n <div headerCell columnSize=\"0\"></div>\n\n <!-- Body Section -->\n <div\n tableRow\n checkBoxRow\n [checkBoxValue]=\"picture.delSelected\"\n (checkBoxValueChange)=\"onToggleDelSelection(index)\"\n *ngFor=\"let picture of picturesList; let index = index\"\n >\n\n <div tableColumn columnSize=\"2\">\n <div class=\"table-view__row__container\">\n <div\n class=\"table-view__row__container__imgContainer\"\n [ngClass]=\"{'imgSelected': picture.selected}\"\n (click)=\"onToggleSelectImg(index)\">\n <img\n class=\"table-view__row__container__imgContainer__img\"\n [src]=\"picture.file_name | imgSrc : '100'\"\n alt=\"picture.display_name\"\n [ngClass]=\"{'pictureDeletion': picture.deleted}\"\n (error)=\"picture.imgNotLoaded=true;onPictureNotLoading($event);\"\n />\n <!-- If the img is not loaded, or the link is broken, an icon is displayed -->\n <div\n *ngIf=\"picture.imgNotLoaded\"\n class=\"table-view__row__container__imgContainer__overlay\"\n >\n <i class=\"fad fa-folder-times\"></i>\n </div>\n </div>\n <input\n type=\"text\"\n class=\"wzImgMngInput table-view__row__container__name\"\n [(ngModel)]=\"picture.display_name\"\n (focus)=\"previousName=picture.display_name\"\n (blur)=\"onNameChange(picture.id_file)\"\n (click)=\"onToggleDelSelection(index)\"\n [ngClass]=\"{'desabled': picture.deleted}\"\n [disabled]=\"picture.deleted\"\n >\n </div>\n </div>\n\n <div\n tableColumn\n centerCell=\"center\"\n (click)=\"onToggleDelSelection(index)\"\n >\n <p class=\"grey\">{{picture.raw_height}}x{{picture.raw_width}}</p>\n </div>\n\n <div tableColumn centerCell=\"center\" columnSize=\"0\" class=\"table-view__dropdown-options\">\n <!-- Dropdown -->\n <dropdown dropdownId=\"dropdown-options\" [disable]=\"picture.deleted\">\n <ng-container label>\n <div class=\"table-view__dropdown-options__label rotate\">\n <span> <i class=\"far fa-ellipsis-h is-size-4\" aria-haspopup=\"true\" aria-controls=\"dropdown-menu\"> </i> </span>\n </div>\n </ng-container>\n <ng-container item>\n <div\n class=\"dropdown-item\"\n (click)=\"onDownloadImg(picture.display_name, picture.file_name)\"\n >\n <i class=\"far fa-download download\"></i> \n <p>{{ 'ImgManager.ImgList.download' | translate }}</p>\n </div>\n </ng-container>\n <ng-container item>\n <div\n class=\"dropdown-item\"\n (click)=\"onEdit(picture)\"\n >\n <i class=\"far fa-crop-alt edit\"></i> \n <p>{{ 'ImgManager.ImgList.edit' | translate }}</p>\n </div>\n </ng-container>\n <ng-container item>\n <div\n class=\"dropdown-item\"\n (click)=\"onRemoveImg(picture)\"\n >\n <i class=\"fal fa-times deleted\"></i> \n <p>{{ 'ImgManager.ImgList.remove' | translate }}</p>\n </div>\n </ng-container>\n </dropdown>\n </div>\n </div>\n </wz-table>\n</div>\n","import {Component, Input, ViewChild, ElementRef, AfterViewInit, Output, EventEmitter, ChangeDetectorRef} from '@angular/core';\r\nimport { ImgPictureDTO, ParamsImgManagerDTO } from '../../dto/img-manager.dto';\r\nimport { ImgManagerService } from '../../services/img-manager.service';\r\nimport { Subject, combineLatest} from 'rxjs';\r\nimport { filter, map, take, tap } from 'rxjs/operators';\r\nimport { ImgEventService } from '../../services/img-event.service';\r\nimport { ImgSelectionService } from '../../services/img-selection.service';\r\nimport { UserSettingsService } from '../../services/user-settings.service';\r\nimport { TableFilters } from '../../services/table/filters-table.service';\r\nimport { PictureNameUpdate } from '../../dto/picture-name-update.dto';\r\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\r\nimport { insertRemove } from '../../animations/insertRemove/insert-remove.animation';\r\nimport { stateDisplayed, tabDisplayed } from '../../dto/export-dtos.api';\r\nimport { RenamePictureService } from '../../services/rename-picture.service';\r\nimport { AlertService } from '../../services/alert.service';\r\n\r\n@Component({\r\n selector: 'images-view',\r\n templateUrl: './images-view.component.html',\r\n animations: [\r\n easeInOut,\r\n insertRemove\r\n ]\r\n})\r\nexport class ImagesViewComponent implements AfterViewInit {\r\n\r\n @Input() stateDisplayed: stateDisplayed;\r\n @Input() tabDisplayed: tabDisplayed;\r\n @Input() fullSize: boolean;\r\n @Input() nbRowToShow: number;\r\n @Input() listDisplayed = false; // Display format list or mosaic\r\n @Input() multipleImgMode = false;\r\n @Output()\r\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\r\n\r\n @ViewChild('imgLibContainer') imgLibContainer: ElementRef;\r\n widthLargeCard: number = 219; // Default value of a card width 199 + margin 20\r\n widthSmallCard: number = 160; // Default value of a card width 140 + margin 20\r\n nbMinImgPerLine: number;\r\n nbMaxImgPerLine: number;\r\n nbFakeImg: number = 0;\r\n\r\n imgFullWidthConfig:any = [\r\n {\r\n max: 419,\r\n largeImgWidthFactor : 1,\r\n smallImgWidthFactor : 0.5\r\n },\r\n {\r\n max: 499,\r\n largeImgWidthFactor : 1,\r\n smallImgWidthFactor : 0.5\r\n },\r\n {\r\n max: 719, // tablet\r\n largeImgWidthFactor : 0.5,\r\n smallImgWidthFactor : 0.3333\r\n },\r\n {\r\n max: 1023, // deskop\r\n largeImgWidthFactor : 0.3333,\r\n smallImgWidthFactor : 0.2\r\n },\r\n {\r\n max: 1399,\r\n largeImgWidthFactor : 0.25,\r\n smallImgWidthFactor : 0.125\r\n },\r\n {\r\n max: 1599,\r\n largeImgWidthFactor : 0.2,\r\n smallImgWidthFactor : 0.1111\r\n },\r\n {\r\n largeImgWidthFactor : 0.1666,\r\n smallImgWidthFactor : 0.1\r\n }\r\n ];\r\n\r\n imgWidthConfig:any = [\r\n {\r\n max: 1024,\r\n largeImgWidthFactor : 0.25,\r\n smallImgWidthFactor : 0.125\r\n },\r\n {\r\n max: 1199,\r\n largeImgWidthFactor : 0.3333,\r\n smallImgWidthFactor : 0.2\r\n },\r\n {\r\n max: 1299,\r\n largeImgWidthFactor : 0.3333,\r\n smallImgWidthFactor : 0.1666\r\n },\r\n {\r\n max: 1399,\r\n largeImgWidthFactor : 0.25,\r\n smallImgWidthFactor : 0.1666\r\n },\r\n {\r\n max: 1599,\r\n largeImgWidthFactor : 0.25,\r\n smallImgWidthFactor : 0.14\r\n },\r\n {\r\n largeImgWidthFactor : 0.25,\r\n smallImgWidthFactor : 0.125\r\n }\r\n ];\r\n\r\n nbImgToDelSelected: number = 0;\r\n disable: boolean = false; // Use to disable action during server request\r\n delListImgLoader = false;\r\n initComponent: boolean = true;\r\n failLoaded: boolean = false;\r\n confirmImgSup:boolean = false;\r\n previousSearchValue: string;\r\n\r\n get searchImagesParameters$() {\r\n return this.imgManager.searchImagesParameters$;\r\n }\r\n\r\n // Api Img manager Params\r\n params:ParamsImgManagerDTO;\r\n\r\n private errorGetAllImg = 'ImgManager.ImgLib.errorGetAllImg';\r\n private errorGetTotalImg = 'ImgManager.ImgLib.errorGetTotalImg';\r\n private errorGetImg = 'ImgManager.ImgLib.errorGetCanvaImg';\r\n private errorRemoveImg = 'ImgManager.ImgList.errorRemoveImg';\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n vm$ = combineLatest({\r\n imageSelection: this.imgSelectionService.imgSelection$,\r\n imageListData: this.imgManager.imageList$,\r\n isLoading: this.imgManager.isLoading$,\r\n searchImagesParameters: this.imgManager.searchImagesParameters$,\r\n }).pipe(\r\n map(({imageSelection, imageListData: {imageList, imageTotal}, isLoading, searchImagesParameters}) => {\r\n this.initVariables(true);\r\n this.calculateNbImgFake(imageList.data.length);\r\n const picturesList = this.setSelectedProperty(imageSelection, imageList.data);\r\n this.renamePictureService.setPicturesList(picturesList);\r\n\r\n const tableFilters : TableFilters = this.getTableFilters(searchImagesParameters, imageTotal);\r\n const keepImagesDisplayed = (this.tabDisplayed === 'img-upload' && searchImagesParameters.page === '1') || (this.tabDisplayed === 'images-view' && imageList.data.length && searchImagesParameters.page === '1');\r\n\r\n const skipSetImagesToDisplay = !!picturesList?.length && this.tabDisplayed === 'img-upload' && searchImagesParameters.page === '1';\r\n const hideUntilFetchedFirstPageImagesForTabUpload = this.tabDisplayed === 'img-upload' && (searchImagesParameters.page !== '1' || imageList?.page !== 1);\r\n\r\n return {\r\n isLoading: hideUntilFetchedFirstPageImagesForTabUpload || !keepImagesDisplayed && isLoading,\r\n displayPexelsResults: !isLoading && imageTotal === 0,\r\n picturesList,\r\n imageTotal,\r\n tableFilters,\r\n skipSetImagesToDisplay\r\n }\r\n })\r\n );\r\n\r\n constructor(\r\n private imgManager: ImgManagerService,\r\n private imgEventService: ImgEventService,\r\n private imgSelectionService: ImgSelectionService,\r\n private alertService: AlertService,\r\n private userSettingsService: UserSettingsService,\r\n private renamePictureService: RenamePictureService,\r\n private changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n private getTableFilters(searchImagesParameters: any, imageTotal: any): TableFilters {\r\n return {\r\n sort: undefined,\r\n order: undefined,\r\n searchValue: searchImagesParameters.search,\r\n totalItems: imageTotal,\r\n itemsPerPage: parseInt(searchImagesParameters.limit),\r\n currentPage: parseInt(searchImagesParameters.page)\r\n };\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.vm$.pipe(\r\n take(1),\r\n filter(({skipSetImagesToDisplay}) => !skipSetImagesToDisplay)\r\n ).subscribe(({tableFilters}) =>{\r\n this.setNbImgToDisplay(tableFilters)\r\n });\r\n }\r\n\r\n /**\r\n * true : go to list display\r\n * false : go to mosaic display\r\n * @param activate\r\n */\r\n onSwitchFormatDisplayed(activate: boolean) {\r\n this.listDisplayed = activate;\r\n this.userSettingsService.setUserDisplayPreference(activate);\r\n this.imgEventService.emitlistDisplayedChange(activate);\r\n }\r\n\r\n /**\r\n * Calcul the number of img selected for masse deletion\r\n */\r\n onImgSelected(picturesList: ImgPictureDTO[]) {\r\n this.setNbImgToDelSelected(picturesList);\r\n }\r\n\r\n onRenamePicture(pictureRenamed: PictureNameUpdate) {\r\n this.renamePictureService.renamePicture(pictureRenamed);\r\n }\r\n\r\n removeListImg(picturesList: ImgPictureDTO[]) {\r\n if (this.disable) {\r\n return;\r\n }\r\n this.disable = true;\r\n this.delListImgLoader = true;\r\n this.confirmImgSup = false;\r\n\r\n // Get the id of the img to remove\r\n // And add deleted property\r\n const idImgToRemove: string[] = [];\r\n picturesList.forEach( img => {\r\n if (img.delSelected) {\r\n img.deleted = true;\r\n idImgToRemove.push(img.id_file);\r\n }\r\n });\r\n\r\n this.imgManager.removeMultipleImg(idImgToRemove).subscribe({\r\n next: () => {\r\n this.imgSelectionService.removeImgSelectionByIds(idImgToRemove);\r\n },\r\n error: error => {\r\n this.imgManager.refreshImageList$.next();\r\n this.alertService.openAlert(this.errorRemoveImg);\r\n }\r\n });\r\n }\r\n\r\n selectImgChosen(picturesList: ImgPictureDTO[]) {\r\n if (this.disable) {\r\n return;\r\n }\r\n const picturesListSelected: ImgPictureDTO[] = [];\r\n picturesList.map(img => {\r\n if(img.delSelected) {\r\n img.delSelected =false;\r\n img.selected = true;\r\n }\r\n if (img.selected) {\r\n picturesListSelected.push(img);\r\n }\r\n });\r\n this.setNbImgToDelSelected(picturesList);\r\n this.imgSelectionService.setImgSelection(picturesListSelected);\r\n }\r\n\r\n displayConfirmImgSup(){\r\n if (this.disable) {\r\n return;\r\n }\r\n this.confirmImgSup = true;\r\n }\r\n\r\n cancelSup() {\r\n this.confirmImgSup = false;\r\n }\r\n\r\n /**\r\n * Event emit when a img selected in order to delete\r\n */\r\n onPicturesListChange(picturesList: ImgPictureDTO[]) {\r\n this.setNbImgToDelSelected(picturesList);\r\n }\r\n\r\n /**\r\n * Set default number of img per page to display at the initialisation\r\n * This number is between 30 and 50\r\n */\r\n private setNbImgToDisplay(tableFilters: TableFilters) {\r\n const containerWidth = this.imgLibContainer.nativeElement.offsetWidth + 30; // + 30px -> left + right margin\r\n const scrollWidth = window.innerWidth - document.body.offsetWidth;\r\n\r\n const [maxImgWidthFactor, minImgWidthFactor] = this.getImgWidthFactors();\r\n\r\n const minImgWidth = Math.floor(containerWidth * minImgWidthFactor);\r\n const maxImgWidth = Math.ceil((containerWidth + scrollWidth ) * maxImgWidthFactor);\r\n\r\n this.nbMaxImgPerLine = Math.floor(containerWidth / minImgWidth);\r\n this.nbMinImgPerLine = Math.floor( (containerWidth + scrollWidth ) / maxImgWidth);\r\n\r\n this.searchImagesParameters$.next(this.getParams({\r\n ...tableFilters,\r\n itemsPerPage: this.getTotalImgPerPage(),\r\n currentPage: 1\r\n }));\r\n }\r\n\r\n private getImgWidthFactors(): number[] {\r\n const screenWidth = window.innerWidth;\r\n let minWidth:number = 0;\r\n let imgSizesConfig: number[] = [];\r\n\r\n const currentImgWidthConfig = this.fullSize ? this.imgFullWidthConfig : this.imgWidthConfig;\r\n\r\n for (const widthConfig of currentImgWidthConfig) {\r\n if (!widthConfig.max) {\r\n imgSizesConfig = [widthConfig.largeImgWidthFactor, widthConfig.smallImgWidthFactor];\r\n break;\r\n }\r\n if (minWidth < screenWidth && screenWidth <= widthConfig.max) {\r\n imgSizesConfig = [widthConfig.largeImgWidthFactor, widthConfig.smallImgWidthFactor];\r\n break;\r\n }\r\n minWidth = widthConfig.max;\r\n }\r\n return imgSizesConfig;\r\n }\r\n\r\n private getTotalImgPerPage(): number {\r\n if (this.nbRowToShow) {\r\n const nbImgPerLine = this.stateDisplayed === 'full' ? this.nbMinImgPerLine : this.nbMaxImgPerLine;\r\n return nbImgPerLine * this.nbRowToShow;\r\n }\r\n\r\n let total = this.nbMinImgPerLine;\r\n\r\n while (total < 30 || total % this.nbMaxImgPerLine !== 0 || total % this.nbMinImgPerLine !== 0) {\r\n total += this.nbMinImgPerLine;\r\n }\r\n\r\n return total;\r\n }\r\n\r\n getParams(tableFilters: TableFilters) {\r\n return {\r\n limit: tableFilters.itemsPerPage.toString(),\r\n page: tableFilters.currentPage.toString(),\r\n ...(tableFilters.searchValue && { search: tableFilters.searchValue.toString() }),\r\n };\r\n }\r\n\r\n private initVariables(loadingSuccess: boolean) {\r\n this.nbImgToDelSelected = 0;\r\n this.disable = false;\r\n this.delListImgLoader = false;\r\n this.initComponent = false;\r\n this.failLoaded = !loadingSuccess;\r\n this.nbFakeImg = 0;\r\n }\r\n\r\n private setSelectedProperty(imgSelectedList: ImgPictureDTO[], picturesList: ImgPictureDTO[]) {\r\n const picturesListSelected: ImgPictureDTO[] = JSON.parse(JSON.stringify(picturesList));\r\n imgSelectedList.forEach(img => {\r\n const selectedImg = picturesListSelected.find(picture => picture.id_file === img.id_file);\r\n if (selectedImg) {\r\n selectedImg.selected = true;\r\n }\r\n });\r\n return picturesListSelected;\r\n }\r\n\r\n /**\r\n * Set a img list in order to fill properly all the line of images displayed in mosaic.\r\n * Otherwise, the space-between css will do a bad display\r\n */\r\n private calculateNbImgFake(nbImgDisplayed: number) {\r\n const nbImgPerLine = this.stateDisplayed === 'small' || this.tabDisplayed === 'img-upload' ? this.nbMaxImgPerLine : this.nbMinImgPerLine;\r\n\r\n if (isNaN(nbImgDisplayed % nbImgPerLine)) {\r\n this.nbFakeImg = 0;\r\n return;\r\n }\r\n\r\n if (nbImgDisplayed % nbImgPerLine !== 0) {\r\n setTimeout(() => {\r\n this.nbFakeImg = nbImgPerLine - nbImgDisplayed % nbImgPerLine;\r\n }, 0);\r\n }\r\n }\r\n\r\n private setNbImgToDelSelected (picturesList: ImgPictureDTO[]) {\r\n this.nbImgToDelSelected = picturesList.filter(img => img.delSelected).length;\r\n\r\n if (!this.nbImgToDelSelected) {\r\n this.confirmImgSup = false;\r\n }\r\n }\r\n\r\n switchDisplayWindowMosaic() {\r\n this.switchDisplayWindow.emit(true);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<ng-container *ngIf=\"vm$ | async as vm\">\r\n\r\n <div class=\"images-view\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small'}\" [@easeInOut]=\"'in'\">\r\n <!-- Subheader : Img number and actions btn (sup img list, switch forma display) -->\r\n <div\r\n *ngIf=\"(stateDisplayed !== 'small' || tabDisplayed === 'img-upload')\"\r\n class=\"images-view__container\"\r\n [ngClass]=\"{'images-view__container--uploadTab': tabDisplayed === 'img-upload', 'images-view__container--window': stateDisplayed === 'window'}\"\r\n >\r\n\r\n <div *ngIf=\"tabDisplayed !== 'img-upload'\">\r\n <p class=\"mainColor\" [ngClass]=\"{'images-view__container__total--hide': vm.displayPexelsResults}\">{{ 'ImgManager.ImgLib.nbImg' | translate }} : {{vm.imageTotal}}</p>\r\n </div>\r\n <div *ngIf=\"tabDisplayed === 'img-upload'\">\r\n <p class=\"mainColor\">{{ 'ImgManager.ImgLib.lastImgs' | translate }}</p>\r\n </div>\r\n\r\n <div class=\"field has-addons subHeaderActions\" *ngIf=\"tabDisplayed !== 'img-upload'\">\r\n\r\n <!-- For listforma : Display btn del multiple img & Confirm action -->\r\n <div class=\"images-view__container__boxAction\">\r\n\r\n\r\n <!-- Select -->\r\n <button\r\n class=\"button success images-view__container__boxAction__import\"\r\n @insertRemoveAnnim\r\n *ngIf=\"listDisplayed && nbImgToDelSelected && !confirmImgSup && !delListImgLoader && multipleImgMode\"\r\n (click)=\"selectImgChosen(vm.picturesList)\"\r\n type=\"button\"\r\n >\r\n <i class=\"fal fa-check\"></i>\r\n {{ 'ImgManager.ImgLib.select' | translate }} ({{nbImgToDelSelected}})\r\n </button>\r\n\r\n <!-- Display btn del multiple img -->\r\n <button\r\n *ngIf=\"listDisplayed && nbImgToDelSelected && !confirmImgSup\"\r\n (click)=\"displayConfirmImgSup()\"\r\n class=\"button images-view__container__boxAction__delBtn danger\"\r\n @insertRemoveAnnim\r\n type=\"button\"\r\n >\r\n <i class=\"fal fa-times\"></i>{{ 'ImgManager.ImgLib.delMlt' | translate }} ({{nbImgToDelSelected}})\r\n <span btnLoadingAnim *ngIf=\"delListImgLoader\" class=\"btnLoadingAnnimation\"></span>\r\n </button>\r\n\r\n <!-- Confirm action -->\r\n <div\r\n class=\"images-view__container__boxAction__confirmSup\"\r\n [ngClass]=\"{'images-view__container__boxAction__confirmSup--visible': confirmImgSup}\">\r\n <p *ngIf=\"nbImgToDelSelected > 1\" class=\"images-view__container__boxAction__confirmSup__text\">{{ 'ImgManager.ImgLib.confirmSupQuestions' | translate:{nbImage: nbImgToDelSelected} }}</p>\r\n <p *ngIf=\"nbImgToDelSelected === 1\" class=\"images-view__container__boxAction__confirmSup__text\">{{ 'ImgManager.ImgLib.confirmSupQuestion' | translate:{nbImage: nbImgToDelSelected} }}</p>\r\n <div>\r\n <button\r\n class=\"button images-view__container__boxAction__confirmSup__cancel\"\r\n (click)=\"cancelSup()\"\r\n type=\"button\"\r\n >\r\n {{ 'ImgManager.ImgLib.cancel' | translate }}\r\n </button>\r\n <button\r\n (click)=\"removeListImg(vm.picturesList)\"\r\n class=\"button images-view__container__delBtn danger\"\r\n type=\"button\"\r\n >\r\n {{ 'ImgManager.ImgLib.confirm' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- Swith mosaic/list forma -->\r\n <div class=\"field has-addons images-view__container__buttonBox\">\r\n <div class=\"control\">\r\n <div\r\n class=\"button is-lighted images-view__container__buttonBox__btn\"\r\n [ngClass]=\"{'actifDisplayed': !listDisplayed}\"\r\n (click)=\"onSwitchFormatDisplayed(false)\"\r\n >\r\n <span class=\"icon is-small\">\r\n <i class=\"fa-solid fa-th\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"control\">\r\n <div class=\"button is-lighted images-view__container__buttonBox__btn\"\r\n [ngClass]=\"{'actifDisplayed': listDisplayed}\"\r\n (click)=\"onSwitchFormatDisplayed(true)\"\r\n >\r\n <span class=\"icon is-small\">\r\n <i class=\"fa-solid fa-bars\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Images section -->\r\n <ng-scrollbar\r\n class=\"images-view__scroll\"\r\n [ngClass]=\"{\r\n 'images-view__scroll--hide--mosaic': vm.displayPexelsResults && !listDisplayed,\r\n 'images-view__scroll--hide--table': vm.displayPexelsResults && listDisplayed,\r\n 'images-view__scroll--full': stateDisplayed === 'full',\r\n 'images-view__scroll--smallDisplay' : stateDisplayed === 'small' && tabDisplayed !== 'img-upload',\r\n 'images-view__scroll--smallUploadDisplay' : stateDisplayed === 'small' && tabDisplayed === 'img-upload',\r\n 'images-view__scroll--window': stateDisplayed === 'window'\r\n }\"\r\n >\r\n <div #imgLibContainer class=\"images-view__wrapper\">\r\n\r\n <div *ngIf=\"!listDisplayed || stateDisplayed === 'small'\" [@easeInOut]=\"'in'\">\r\n <mosaic-view\r\n [picturesList]=\"vm.picturesList\"\r\n (picturesListChange)=\"onPicturesListChange(vm.picturesList)\"\r\n [tableFilters]=\"vm.tableFilters\"\r\n (filtersChange)=\"searchImagesParameters$.next(getParams(vm.tableFilters));\"\r\n [(disable)]=\"disable\"\r\n (pictureNameChange)=\"onRenamePicture($event)\"\r\n (switchDisplayWindow)=\"switchDisplayWindowMosaic()\"\r\n [nbFakeImg]=\"nbFakeImg\"\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [tabDisplayed]=\"tabDisplayed\"\r\n [displayPexelsResults]=\"vm.displayPexelsResults\"\r\n [isLoading]=\"vm.isLoading\"\r\n [fullSize]=\"fullSize\"\r\n >\r\n </mosaic-view>\r\n </div>\r\n\r\n <div *ngIf=\"listDisplayed && stateDisplayed !== 'small'\" [@easeInOut]=\"'in'\">\r\n <table-view\r\n [picturesList]=\"vm.picturesList\"\r\n (picturesListChange)=\"onPicturesListChange(vm.picturesList)\"\r\n [tableFilters]=\"vm.tableFilters\"\r\n (filtersChange)=\"searchImagesParameters$.next(getParams(vm.tableFilters));\"\r\n [(disable)]=\"disable\"\r\n (pictureNameChange)=\"onRenamePicture($event)\"\r\n [displayPexelsResults]=\"vm.displayPexelsResults\"\r\n [stateDisplayed]=\"stateDisplayed\"\r\n [isLoading]=\"vm.isLoading\"\r\n >\r\n </table-view>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n\r\n <!-- Pexels Section - When no img found -->\r\n <div\r\n *ngIf=\"vm.displayPexelsResults\"\r\n class=\"images-view--pexels\"\r\n [@easeInOut]=\"'in'\">\r\n <pexels-lib\r\n [searchValue]=\"vm.tableFilters.searchValue\"\r\n [disableSearch]=\"true\"\r\n >\r\n </pexels-lib>\r\n </div>\r\n</ng-container>\r\n","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2} from '@angular/core';\n\n@Directive({\n selector: '[zIndexToggle]'\n})\nexport class ZindexToggleDirective implements OnInit, OnDestroy {\n isActived = false;\n\n @Output()\n public onEventChange: EventEmitter<any>;\n\n @Input('zIndexToggle')\n set isActive(value: boolean) {\n this.isActived = value;\n this.switchToggle();\n }\n get isActive(): boolean {\n return this.isActived;\n }\n\n constructor(private currentElement: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n }\n\n switchToggle() {\n if (this.isActived) {\n this.renderer.addClass(this.currentElement.nativeElement.parentElement.parentNode, 'zindexToggle');\n } else {\n this.renderer.removeClass(this.currentElement.nativeElement.parentElement.parentNode, 'zindexToggle');\n }\n }\n\n ngOnDestroy(): void {\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SelectItem } from '../../components/shared/select/select-items.dto';\n\n@Pipe({\n name: 'selectFilters'\n})\n\nexport class SelectFiltersPipe implements PipeTransform {\n transform(items: SelectItem[], filterName: string): any {\n return items.filter(item => {\n const regexp = new RegExp(filterName, 'i');\n return regexp.test(item.name);\n });\n }\n}","import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectItem } from './select-items.dto';\nimport { CalllToAction } from './call-to-action.model';\n\n@Component({\n selector: 'wac-select',\n templateUrl: './select.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }]\n})\nexport class SelectComponent implements OnInit, ControlValueAccessor {\n @Input()\n items: SelectItem[];\n\n @Input()\n placeholder: string;\n\n @Input()\n label: string;\n\n @Input()\n maxWidthItems: string;\n\n @Input()\n search = false;\n\n @Input()\n type = 'default';\n\n @Input()\n callToAction: CalllToAction;\n\n @Input() maxWidth = '100%';\n\n @Input()\n disabled = false;\n\n @Output() selectValue = new EventEmitter<number>();\n\n @Output() clickOnCallToAction = new EventEmitter<any>();\n\n @ViewChild('search') searchElement: ElementRef;\n\n openCategories = false;\n searchValue = '';\n\n indexItemSelected: number = -1;\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit(): void {\n this.indexItemSelected = this.items.findIndex(item => item.selected);\n }\n\n onClose() {\n this.openCategories = false;\n }\n\n customTB(item: SelectItem, index: number) {\n return `${item.id}-${index}`;\n }\n\n onSelectItem(id: number) {\n this.unselectAll();\n this.setIndexItemSelected(id);\n const itemSelected: SelectItem = this.getItemSelected();\n itemSelected.selected = true;\n this.selectValue.emit(this.indexItemSelected);\n this.onChange(itemSelected);\n }\n\n onClickCallToAction() {\n this.onClose();\n this.clickOnCallToAction.emit(this.callToAction.value);\n }\n\n private getItemSelected(): SelectItem {\n return this.items[this.indexItemSelected];\n }\n\n showCategories() {\n this.openCategories = true;\n setTimeout(() => { // this will make the execution after the above boolean has changed\n this.searchElement.nativeElement.focus();\n }, 0);\n }\n\n private unselectAll() {\n this.items.forEach(item => item.selected = false);\n }\n\n private setIndexItemSelected(id: number) {\n this.indexItemSelected = this.items.findIndex(item => item.id === id);\n }\n\n // ControlValueAccessor methods\n\n onChange: (selectItem: SelectItem) => void = () => {};\n onTouch: any = () => {}\n\n writeValue(selectItem: any){\n if (!selectItem) {\n return;\n }\n this.unselectAll();\n selectItem.selected = true;\n this.setIndexItemSelected(selectItem.id);\n }\n\n registerOnChange(fn: any){\n this.onChange = fn;\n }\n registerOnTouched(fn: any){\n this.onTouch = fn;\n }\n}\n","<p *ngIf=\"label\" [innerHTML]=\"label\" class=\"wac-select__label\"></p>\r\n\r\n<div class=\"wac-select\" wzAutoHide (clickOutside)=\"onClose()\" [ngStyle]=\"{ 'max-width': maxWidth }\" [zIndexToggle]=\"openCategories\">\r\n\r\n <div class=\"wac-select__current\" [ngClass]=\"{ 'select-disabled' : disabled }\" (click)=\"!disabled && openCategories = !openCategories\" *ngIf=\"!search\">\r\n <span *ngIf=\"indexItemSelected !== -1\" class=\"icon\" [innerHTML]=\"items[indexItemSelected].icon\"></span>\r\n <span [innerHTML]=\"(indexItemSelected !== -1 ? items[indexItemSelected].name : placeholder) | translate\"></span><span><i class=\"fa-solid fa-chevron-down\"></i></span>\r\n </div>\r\n\r\n <div class=\"wac-select__current wac-select__current--withSearch\" [ngClass]=\"{ 'select-disabled' : disabled, 'open-search': openCategories }\" *ngIf=\"search\">\r\n <div class=\"wac-select__current__search\" *ngIf=\"openCategories && !disabled\">\r\n <i class=\"far fa-search\"></i>\r\n <input #search type=\"text\" [(ngModel)]=\"searchValue\" />\r\n </div>\r\n <span (click)=\"openCategories = !openCategories;\" *ngIf=\"items[indexItemSelected]?.icon && !openCategories\" class=\"icon\" [innerHTML]=\"items[indexItemSelected].icon\"></span>\r\n <span (click)=\"showCategories()\" [innerHTML]=\"items[indexItemSelected]?.name ? items[indexItemSelected].name : placeholder\"></span>\r\n <span (click)=\"openCategories = !openCategories;\"><i class=\"fa-solid fa-chevron-down\"></i></span>\r\n </div>\r\n\r\n <div class=\"wac-select__content\" *ngIf=\"!disabled\" [ngClass]=\"{ hidden: !openCategories, open: type === 'open' }\" [ngStyle]=\"{ 'max-width': maxWidthItems }\">\r\n <ng-scrollbar *ngIf=\"items.length\" style=\"height: 110px; width: 100%;\">\r\n\r\n <div *ngIf=\"callToAction\" class=\"wac-select__content__cta\">\r\n <div (click)=\"onClickCallToAction()\">\r\n <i *ngIf=\"callToAction.icon\" [classList]=\"callToAction.icon\"></i><strong *ngIf=\"callToAction.boldText\">{{ callToAction.boldText }}</strong\r\n ><span>{{ callToAction?.name }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngFor=\"let item of items | selectFilters: searchValue; let index = index;\"\r\n (click)=\"onClose()\"\r\n class=\"wac-select__content__item\"\r\n >\r\n <div *ngIf=\"!item.hide\" [ngClass]=\"{ selected: item.selected }\" (click)=\"onSelectItem(item.id)\">\r\n <span class=\"icon\" [innerHTML]=\"item.icon\" *ngIf=\"item.icon\"></span>{{ item.name | translate }}\r\n </div>\r\n </div>\r\n\r\n </ng-scrollbar>\r\n\r\n <div *ngIf=\"!(items | selectFilters: searchValue)?.length\" class=\"wac-select__content__empty\">\r\n <span>{{'wac.datatable.noresult' | translate}}</span>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n","import {Component, Input, OnInit, ViewChild, Output, EventEmitter} from '@angular/core';\r\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\r\nimport { UploadListComponent } from '../upload-list/upload-list.component';\r\nimport { ImgEventService } from '../../services/img-event.service';\r\nimport { NwbSnackbarConfig } from '@wizishop/ng-wizi-bulma';\r\nimport { stateDisplayed } from '../../dto/export-dtos.api';\r\nimport { AlertService } from '../../services/alert.service';\r\nimport {Router} from '@angular/router';\r\nimport { SelectItem } from '../shared/select/select-items.dto';\r\n\r\n@Component({\r\n selector: 'img-tabs',\r\n templateUrl: './img-tabs.component.html'\r\n})\r\nexport class ImgTabsComponent implements OnInit {\r\n\r\n @Input()\r\n multipleImgMode: boolean = false;\r\n @Input()\r\n stateDisplayed: stateDisplayed;\r\n @Input()\r\n listDisplayed = false;\r\n\r\n @Output()\r\n imgManagerClosed = new EventEmitter();\r\n\r\n @Output()\r\n currentTab = new EventEmitter();\r\n\r\n @Output()\r\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\r\n\r\n tabs: SelectItem[] = [\r\n {\r\n name: 'ImgManager.Tabs.addImg',\r\n value: 'img-upload',\r\n selected: true,\r\n id: 0\r\n },\r\n {\r\n name: 'ImgManager.Tabs.imgLib',\r\n value: 'images-view',\r\n id: 1\r\n },\r\n {\r\n name: 'ImgManager.Tabs.freeImgLib',\r\n value: 'pexels-lib',\r\n id: 2\r\n },\r\n {\r\n name: 'ImgManager.Tabs.Editor',\r\n value: 'img-edition',\r\n hide: true,\r\n id: 3\r\n }\r\n ];\r\n\r\n tabActive: SelectItem = this.tabs[0];\r\n\r\n /* tabActive = 'images-view';\r\n tabs: string[] = ['img-upload', 'images-view', 'pexels-lib', 'img-edition']; */\r\n editTab = false;\r\n\r\n imgToEdit: ImgPictureDTO;\r\n\r\n imgUpload = false;\r\n\r\n @ViewChild( 'imgUploadedImg' )\r\n imgUploadedComponent: UploadListComponent ;\r\n\r\n snackBarNewVersionConfig: NwbSnackbarConfig = {\r\n message: '',\r\n duration: 3000\r\n };\r\n\r\n constructor(\r\n private imgEventEditService: ImgEventService,\r\n private alertService: AlertService,\r\n private route: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.imgEventEditService.getImgToEditEventListener().subscribe(imgToEdit =>{\r\n this.tabActive = this.tabs[3];\r\n this.imgToEdit = imgToEdit;\r\n this.editTab = true;\r\n this.currentTab.emit(this.tabs[3]);\r\n });\r\n }\r\n\r\n toggleTabs(item: SelectItem) {\r\n this.imgUpload = false;\r\n this.editTab = false;\r\n this.tabActive = item;\r\n }\r\n\r\n onImgUploaded(img: ImgPictureDTO[]) {\r\n this.imgUpload = true;\r\n this.imgUploadedComponent.onImgUploaded(img);\r\n }\r\n\r\n onEditClosed(msgKey: string) {\r\n this.editTab = false;\r\n this.toggleTabs(this.tabs[1]);\r\n if (msgKey) {\r\n this.alertService.openAlert(msgKey);\r\n }\r\n this.currentTab.emit('close');\r\n }\r\n\r\n onShowImgUploaded() {\r\n this.tabActive = this.tabs[1];\r\n }\r\n\r\n switchDisplayWindowImgView() {\r\n this.switchDisplayWindow.emit(true);\r\n }\r\n\r\n switchRouterLink(event) {\r\n\r\n }\r\n\r\n onImgManagerClosed() {\r\n this.imgManagerClosed.emit();\r\n }\r\n}\r\n","<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","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ImgSelectionService } from '../../services/img-selection.service';\r\nimport {CdkDragDrop} from '@angular/cdk/drag-drop';\r\nimport { tabDisplayed } from '../../dto/export-dtos.api';\r\nimport { combineLatest } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'img-selection',\r\n templateUrl: './img-selection.component.html'\r\n})\r\nexport class ImgSelectionComponent {\r\n\r\n @Input() tabDisplayed: tabDisplayed;\r\n @Output() imgManagerClosed = new EventEmitter();\r\n\r\n removingAll: boolean = false;\r\n cancellingAll: boolean = false;\r\n importingAll: boolean = false;\r\n dragStart = false;\r\n vm$ = combineLatest({\r\n imgSelectedList: this.imgSelectionService.imgSelection$,\r\n isLoading: this.imgSelectionService.imgSelectedListLoading$\r\n });\r\n\r\n\r\n trashPositionIndex = 0;\r\n trashPositionLeft = '-5px';\r\n\r\n constructor(\r\n private imgSelectionService: ImgSelectionService\r\n ) { }\r\n\r\n init() {\r\n this.removingAll = false;\r\n this.cancellingAll = false;\r\n this.importingAll = false;\r\n }\r\n\r\n removeImg(index: number) {\r\n this.imgSelectionService.removeImgSelectedByIndex(index);\r\n }\r\n\r\n drop(event: CdkDragDrop<string[]>) {\r\n if (event.previousIndex !== event.currentIndex) {\r\n this.imgSelectionService.moveImgOrder(event);\r\n }\r\n }\r\n\r\n removeImgFromSelection(event: CdkDragDrop<string[]>) {\r\n this.imgSelectionService.removeImgSelectedByIndex(event.previousIndex);\r\n }\r\n}\r\n","<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","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ImgSelectionService } from './services/img-selection.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { UserSettingsService } from './services/user-settings.service';\r\nimport { CanvaService } from './services/canva.service';\r\nimport { ImgEventService } from './services/img-event.service';\r\nimport { DomService } from './services/dom.service';\r\nimport { HostListener } from '@angular/core';\r\nimport { WiziBlockMediaDto } from './dto/wizi-block-media.dto';\r\nimport { stateDisplayed } from './dto/stateDisplayed.dto';\r\nimport { UploadService } from './services/upload.service';\r\nimport { IconService } from './services/icon.service';\r\n@Component({\r\n selector: 'wz-img-manager',\r\n templateUrl: './wz-img-manager.component.html'\r\n})\r\nexport class WzImgManagerComponent implements OnInit {\r\n @Input() stateDisplayed: stateDisplayed;\r\n @Input() showSelection: boolean = false;\r\n\r\n // If forceToOpenCanva is true : Canva will open with the canvaService.expectedImgSizesChange\r\n // If forceToOpenCanva is a WiziBlockMediaDto, Canva open immediatly\r\n @Input() set forceToOpenCanva(forceToOpenCanva: boolean|WiziBlockMediaDto) {\r\n this.canvaService.forceToOpenCanva = !!forceToOpenCanva;\r\n\r\n if (typeof forceToOpenCanva === 'boolean') {\r\n return;\r\n }\r\n\r\n this.canvaService.expectedImgSizesChange(forceToOpenCanva);\r\n }\r\n\r\n @Output() imgManagerClosed = new EventEmitter();\r\n private _multipleImgMode: boolean = false;\r\n\r\n @Input() set multipleImgMode(activate: boolean) {\r\n this._multipleImgMode = activate;\r\n this.imgSelectionService.setMultipleImgMode(this._multipleImgMode);\r\n }\r\n\r\n get multipleImgMode(): boolean {\r\n return this._multipleImgMode;\r\n }\r\n\r\n _showImgManagerModule: boolean = false;\r\n @Input() set showImgManagerModule(activate: boolean) {\r\n this._showImgManagerModule = activate;\r\n if (activate) {\r\n this.displaySmall();\r\n }\r\n }\r\n\r\n get showImgManagerModule(): boolean {\r\n return this._multipleImgMode;\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n if (this.stateDisplayed && this.stateDisplayed !== 'window') {\r\n this.onClose();\r\n }\r\n }\r\n\r\n @Output() imgSelectionChange = this.imgSelectionService.imgSelection$;\r\n\r\n @Output() imageUploaded = this.uploadService.imageUploaded$;\r\n\r\n close: boolean = false\r\n selectImgEvent: Subscription;\r\n listDisplayed: boolean = false;\r\n listDisplayedEvent: Subscription;\r\n hideTab: boolean = false;\r\n // Save the default overflow apply to html tag, when the module is full open\r\n private overflowHTML: string;\r\n private bodyPadding: number;\r\n\r\n constructor(\r\n private imgSelectionService: ImgSelectionService,\r\n private userSettingsService: UserSettingsService,\r\n private canvaService: CanvaService,\r\n private imgEventService: ImgEventService,\r\n private domService: DomService,\r\n private uploadService: UploadService,\r\n private iconService: IconService\r\n ) {\r\n this.iconService.loadIconLib();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.imgSelectionService.setMultipleImgMode(this._multipleImgMode);\r\n this.imgSelectionService.initImgSelectedList(null);\r\n this.selectImgEvent = this.imgSelectionService.imgSelection$.subscribe(imgSelection =>{\r\n\r\n if (imgSelection && imgSelection.length && this.checkCloseImgManager()) {\r\n // Close the img manager\r\n this.onClose();\r\n }\r\n });\r\n this.checkUserDisplayPreference();\r\n // Use when the img manager is full open or open in page. This display the user preference display, mosaic or list.\r\n this.listDisplayedEvent = this.imgEventService.getlistDisplayedChange().subscribe(value => this.listDisplayed = value);\r\n // Register dom service to listen on all event on the body to avoid having multiple instance of the same thing every where\r\n this.domService.setDocumentEventListener();\r\n }\r\n\r\n checkUserDisplayPreference() {\r\n if (this.stateDisplayed === 'window' || this.stateDisplayed === 'full') {\r\n this.listDisplayed = this.userSettingsService.getUserDisplayPreference();\r\n }\r\n }\r\n\r\n setCurrentTab(event) {\r\n if (event === 'img-edition') {\r\n this.hideTab = true;\r\n return;\r\n }\r\n this.hideTab = false;\r\n }\r\n\r\n displaySmall() {\r\n if (this.stateDisplayed !== 'window') {\r\n setTimeout(() => {\r\n this.stateDisplayed = 'small';\r\n this.addBodyBottomPaddingForModule();\r\n }, 10);\r\n }\r\n }\r\n\r\n openSmall() {\r\n this.stateDisplayed = 'small';\r\n this.setBodyMainScroll();\r\n this.listDisplayed = false;\r\n }\r\n\r\n openFull() {\r\n this.stateDisplayed = 'full';\r\n this.checkUserDisplayPreference();\r\n this.hideBodyMainScroll();\r\n }\r\n\r\n onClose() {\r\n this.stateDisplayed = 'closed';\r\n this.hideTab = false;\r\n this.setBodyMainScroll();\r\n this.removeBodyBottomPaddingForModule();\r\n // Wait the end of the closing annimation\r\n setTimeout(() => {\r\n this.imgManagerClosed.emit();\r\n }, 250);\r\n }\r\n\r\n onImgManagerClosed() {\r\n this.onClose();\r\n }\r\n\r\n /**\r\n * Close the img manager after one img is selected, if not in multiple img to select\r\n */\r\n checkCloseImgManager() {\r\n return !this.multipleImgMode && this.stateDisplayed !== 'window' ? true : false;\r\n }\r\n\r\n hideBodyMainScroll() {\r\n const html = document.getElementsByTagName('html')[0];\r\n\r\n if (!this.overflowHTML) {\r\n this.overflowHTML = html.style.overflowY;\r\n }\r\n\r\n html.style.overflowY = \"hidden\";\r\n }\r\n\r\n setBodyMainScroll() {\r\n const html = document.getElementsByTagName('html')[0];\r\n html.style.overflowY = this.overflowHTML ? this.overflowHTML : \"scroll\";\r\n }\r\n\r\n addBodyBottomPaddingForModule() {\r\n const body = document.getElementsByTagName('body')[0];\r\n this.bodyPadding = this.bodyPadding ? parseInt(body.style.paddingBottom) : 0;\r\n body.style.paddingBottom = this.bodyPadding + 300 + 'px';\r\n }\r\n\r\n removeBodyBottomPaddingForModule() {\r\n if (typeof this.bodyPadding !== 'undefined') {\r\n const body = document.getElementsByTagName('body')[0];\r\n body.style.paddingBottom = this.bodyPadding + 'px';\r\n this.bodyPadding = 0;\r\n }\r\n }\r\n\r\n changeDisplayTab() {\r\n this.stateDisplayed = 'full';\r\n }\r\n\r\n ngOnDestroy() {\r\n this.selectImgEvent.unsubscribe();\r\n this.canvaService.expectedImgSizesChange(null);\r\n this.listDisplayedEvent.unsubscribe();\r\n }\r\n}\r\n","<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","import { Injectable } from '@angular/core';\r\nimport { NwbSnackbarService, NwbSnackbarConfig, NwbSnackbarComponent } from '@wizishop/ng-wizi-bulma';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SnackBarService {\r\n\r\n actionMsg = 'ImgManager.snackBar.action';\r\n\r\n snackBarConfigAction: NwbSnackbarConfig = {\r\n message: '',\r\n duration: 5000\r\n };\r\n\r\n snackBarConfig: NwbSnackbarConfig = {\r\n message: '',\r\n duration: 5000\r\n };\r\n\r\n private snackBarRefComponent: NwbSnackbarComponent;\r\n\r\n constructor(\r\n private nwbSnackbar: NwbSnackbarService,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n openSnackBar(msgKey: string) {\r\n this.closePreviousSnackbar();\r\n this.translateService.get(msgKey).subscribe(trans => {\r\n this.snackBarConfig.message = trans;\r\n this.snackBarRefComponent = this.nwbSnackbar.open(this.snackBarConfig);\r\n this.snackBarRefComponent.afterClosed().subscribe();\r\n });\r\n }\r\n\r\n openSnackBarWithAction(msgKey: string) {\r\n return new Observable(observer => {\r\n\r\n this.translateService.get([msgKey, this.actionMsg]).subscribe((trans) => {\r\n\r\n this.snackBarConfigAction.message = trans[msgKey];\r\n this.snackBarConfigAction.action = trans[this.actionMsg];\r\n\r\n this.closePreviousSnackbar();\r\n this.snackBarRefComponent = this.nwbSnackbar.open(this.snackBarConfigAction);\r\n this.snackBarRefComponent.afterClosed().subscribe(manualClose => {\r\n observer.next(manualClose);\r\n observer.complete();\r\n });\r\n });\r\n });\r\n }\r\n\r\n openSnackBarWithBackendRespons(msgKey: string, msgBackend: string) {\r\n this.translateService.get(msgKey).subscribe(trans => {\r\n this.snackBarConfig.message = trans;\r\n this.snackBarConfig.message += '<br/>' + JSON.parse(msgBackend).message;\r\n\r\n this.closePreviousSnackbar();\r\n this.snackBarRefComponent = this.nwbSnackbar.open(this.snackBarConfig);\r\n this.snackBarRefComponent.afterClosed().subscribe();\r\n });\r\n }\r\n\r\n private closePreviousSnackbar() {\r\n if (this.snackBarRefComponent) {\r\n this.snackBarRefComponent.dismiss(false);\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule, Provider } from '@angular/core';\r\nimport { WzImgManagerComponent } from './wz-img-manager.component';\r\nimport { ImgUploadComponent } from './components/img-upload/img-upload.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ImgTabsComponent } from './components/img-tabs/img-tabs.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DragDropDirective } from './directives/drag-drop.directive';\r\nimport { PexelLibComponent } from './components/pexels-lib/pexels-lib.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ImgCardComponent } from './components/images-view/mosaic-view/img-card/img-card.component';\r\nimport { NgScrollbarModule } from 'ngx-scrollbar';\r\nimport { NgScrollbarReachedModule } from 'ngx-scrollbar/reached-event';\r\nimport { NwbAllModule } from '@wizishop/ng-wizi-bulma';\r\nimport { UploadListComponent } from './components/upload-list/upload-list.component';\r\nimport { ImgEditorComponent } from './components/img-editor/img-editor.component';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CanvaBtnComponent } from './components/canva-btn/canva-btn.component';\r\nimport { ImgSelectionComponent } from './components/img-selection/img-selection.component';;\r\nimport { LoadingDirective } from './directives/loading.directive';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AutoHideDirective } from './directives/auto-hide.directive';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { CopyClipboardDirective } from './directives/copy-to-clipboard.directive';\r\nimport { DropdownComponent } from './components/shared/dropdown/dropdown.component';\r\nimport { EditorInfoSectionComponent } from './components/img-editor/info-section/info-section.component';\r\nimport { CropperComponent } from './components/img-editor/cropper/cropper.component';\r\nimport { ImagesViewComponent } from './components/images-view/images-view.component';\r\nimport { MosaicViewComponent } from './components/images-view/mosaic-view/mosaic-view.component';\r\nimport { TableViewComponent } from './components/images-view/table-view/table-view.component';\r\nimport { TableComponent } from './components/shared/table/table.component';\r\nimport { InputSearchComponent } from './components/shared/input-search/input-search.component';\r\nimport { PaginationComponent } from './components/shared/pagination/pagination.component';\r\nimport { PagniationArrayTotalPages } from './pipes/pagination/array-total-pages/array-pages.pipe';\r\nimport { PagniationText } from './pipes/pagination/text/custom-text.pipe';\r\nimport { PagniationIsLastPage } from './pipes/pagination/total-pages/is-last-page.pipe';\r\nimport { CheckBoxRow } from './directives/table/checkBoxRow.directive';\r\nimport { TableColumn } from './directives/table/column.directive';\r\nimport { TableColumnHeader } from './directives/table/columnHeader.directive';\r\nimport { TableRow } from './directives/table/raw.directive';\r\nimport { CheckboxComponent } from './components/shared/checkbox/checkbox.component';\r\nimport { ImageSrcPipe } from './pipes/images/img-src.pipe';\r\nimport { AbstractDebounceDirective } from './directives/abstract-debounce/abstract-debounce.directive';\r\nimport { DebounceKeyupDirective } from './directives/abstract-debounce/debounce-keyup.directive';\r\nimport { LoaderComponent } from './components/loader/loader.component';\r\nimport { AlertComponent } from './components/shared/alert/alert.component';\r\nimport { NumberToArray } from './pipes/number-to-array.pipe';\r\nimport { PageSelectorComponent } from './components/shared/pagination/page-selector/page-selector.component';\r\nimport { LargeNumberOfPagePipe } from './pipes/pagination/large-number-of-page/large-number-of-page.pipe';\r\nimport { SelectComponent } from './components/shared/select/select.component';\r\nimport { SelectFiltersPipe } from './pipes/select/select-filters.pipe';\r\nimport { ZindexToggleDirective } from './directives/zindex-toggle.directive';\r\nimport { ImgCDNService } from './services/config/img-cdn.service';\r\nimport { FiltersTableService } from './services/table/filters-table.service';\r\nimport { AlertService } from './services/alert.service';\r\nimport { CanvaService } from './services/canva.service';\r\nimport { DomService } from './services/dom.service';\r\nimport { ImgEventService } from './services/img-event.service';\r\nimport { ImgManagerService } from './services/img-manager.service';\r\nimport { ImgSelectionService } from './services/img-selection.service';\r\nimport { PexelsService } from './services/pexels.service';\r\nimport { RenamePictureService } from './services/rename-picture.service';\r\nimport { SnackBarService } from './services/snackbar.service';\r\nimport { UploadService } from './services/upload.service';\r\nimport { UserSettingsService } from './services/user-settings.service';\r\nimport { ImageNotFoundService } from './services/image-not-found.service';\r\n\r\nconst components = [\r\n WzImgManagerComponent,\r\n ImgTabsComponent,\r\n ImgUploadComponent,\r\n PexelLibComponent,\r\n ImgCardComponent,\r\n UploadListComponent,\r\n ImgEditorComponent,\r\n EditorInfoSectionComponent,\r\n CanvaBtnComponent,\r\n ImgSelectionComponent,\r\n LoaderComponent,\r\n DropdownComponent,\r\n CropperComponent,\r\n ImagesViewComponent,\r\n MosaicViewComponent,\r\n TableViewComponent,\r\n TableComponent,\r\n InputSearchComponent,\r\n PaginationComponent,\r\n CheckboxComponent,\r\n AlertComponent,\r\n PageSelectorComponent,\r\n SelectComponent\r\n];\r\n\r\nconst directives = [\r\n DragDropDirective,\r\n LoadingDirective,\r\n AutoHideDirective,\r\n CopyClipboardDirective,\r\n TableColumn,\r\n CheckBoxRow,\r\n TableColumnHeader,\r\n TableRow,\r\n AbstractDebounceDirective,\r\n DebounceKeyupDirective,\r\n ZindexToggleDirective\r\n];\r\n\r\nconst pipes = [\r\n PagniationArrayTotalPages,\r\n PagniationIsLastPage,\r\n PagniationText,\r\n ImageSrcPipe,\r\n NumberToArray,\r\n LargeNumberOfPagePipe,\r\n SelectFiltersPipe\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n ...components,\r\n ...directives,\r\n ...pipes\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n FormsModule,\r\n NgScrollbarModule,\r\n NgScrollbarReachedModule,\r\n NwbAllModule,\r\n ImageCropperModule,\r\n CdkTableModule,\r\n DragDropModule,\r\n TranslateModule,\r\n ],\r\n providers: [],\r\n exports: [\r\n WzImgManagerComponent]\r\n})\r\nexport class WzImgManagerModule {\r\n static withConfig(ApiService: Provider, ImageNotFoundProvider?: Provider): ModuleWithProviders<WzImgManagerModule> {\r\n return {\r\n ngModule: WzImgManagerModule,\r\n providers: [\r\n CanvaService,\r\n ImgManagerService,\r\n ApiService,\r\n ImgCDNService,\r\n FiltersTableService,\r\n AlertService,\r\n DomService,\r\n ImgEventService,\r\n ImgSelectionService,\r\n PexelsService,\r\n RenamePictureService,\r\n SnackBarService,\r\n UploadService,\r\n UserSettingsService,\r\n ImageNotFoundProvider ? ImageNotFoundProvider : ImageNotFoundService\r\n ]\r\n };\r\n }\r\n }\r\n","import { CanvaCreateDesign } from \"./canva-create-design.dto\";\n\nexport class CanvaButtonApi {\n createDesign: (\n opts: {\n design: CanvaCreateDesign,\n editor?: {\n publishLabel: string,\n fileType: string\n }\n onDesignOpen?: (\n opts: { designId: string, designTitle: string }\n ) => void,\n onDesignPublish?: (\n opts: { exportUrl: string, designId: string, designTitle: string }\n ) => void,\n onDesignClose?: () => void\n }\n ) => void;\n editDesign: (opts: {\n opts: {\n design: {\n id: any\n },\n editor?: {\n publishLabel: string,\n fileType: string\n }\n onDesignOpen?: (\n opts: { designId: string, designTitle: string }\n ) => void,\n onDesignPublish?: (\n opts: { exportUrl: string, designId: string, designTitle: string }\n ) => void,\n onDesignClose?: () => void\n }\n }) => void;\n};","export class ImgApiDto {\n shop_token: string;\n image_manager_route = '';\n pexels_token: string;\n pexels_route = '';\n shop_category: string;\n canva_token: string;\n canva_url = '';\n assets_route: string = 'assets/img-manager/';\n}\n","import { ImgApiDto } from '../apis/api.dto';\nimport { ImgCDNConfigDTO } from '../image-cdn/image-cdn-config.dto';\n\nexport class ImgManagerConfigDto {\n api: ImgApiDto;\n imgCDNConfig : ImgCDNConfigDTO;\n}","/*\r\n * Public API Surface of wz-img-manager\r\n */\r\n\r\nexport { WzImgManagerModule } from './lib/wz-img-manager.module';\r\nexport { WzImgManagerComponent } from './lib/wz-img-manager.component';\r\nexport { ImgSelectionService } from './lib/services/img-selection.service';\r\nexport { ImgManagerService } from './lib/services/img-manager.service';\r\nexport { RenamePictureService } from './lib/services/rename-picture.service';\r\nexport { ApiService } from './lib/services/api.service';\r\nexport { ImageNotFoundService } from './lib/services/image-not-found.service';\r\nexport { CanvaService } from './lib/services/canva.service';\r\nexport * from './lib/dto/ImgManagerDisplayConfig.dto';\r\nexport * from './lib/dto/export-dtos.api';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.ImgEventService","i2.AlertService","i4.UploadService","i5.ApiService","take","i1.ApiService","i3.ImgManagerService","i1.ImgManagerService","i2.ImgSelectionService","i3","i4.ImgCDNService","i5.ImgEventService","i6.AlertService","i7","i8.ApiService","i1.ImgCDNService","i9","i10","i11.LoadingDirective","i12.ImageSrcPipe","i1.ImgSelectionService","i2.RenamePictureService","i5.ImgCardComponent","i6","i1","i1.AlertService","i2.ApiService","i5","i6.LoaderComponent","i7.DragDropDirective","map","debounceTime","distinctUntilChanged","tap","i3.DebounceKeyupDirective","i1.PexelsService","i9.LoaderComponent","i10.InputSearchComponent","i11.AlertComponent","i12.LoadingDirective","i4.CopyClipboardDirective","i5.DebounceKeyupDirective","i7.ImageSrcPipe","i4","i5.DropdownComponent","i5.EditorInfoSectionComponent","i6.CropperComponent","i7.LoadingDirective","i8","i1.DomService","i1.CanvaService","i4.LoadingDirective","i5.AutoHideDirective","i3.PagniationArrayTotalPages","i4.LargeNumberOfPagePipe","i2.PageSelectorComponent","i4.PagniationIsLastPage","i5.PagniationText","i11.ImgCardComponent","i12.LoaderComponent","i13.InputSearchComponent","i14.PaginationComponent","i15.NumberToArray","uuid","i1.FiltersTableService","i4.LoaderComponent","i5.InputSearchComponent","i6.PaginationComponent","i7.CheckboxComponent","i11.DropdownComponent","i12.TableComponent","i13.TableColumn","i14.CheckBoxRow","i15.TableColumnHeader","i16.TableRow","i17.ImageSrcPipe","i2.ImgEventService","i3.ImgSelectionService","i4.AlertService","i5.UserSettingsService","i6.RenamePictureService","i9.PexelLibComponent","i10.MosaicViewComponent","i11.TableViewComponent","i13","i6.ZindexToggleDirective","i7.SelectFiltersPipe","i6.ImgUploadComponent","i7.PexelLibComponent","i8.UploadListComponent","i9.ImgEditorComponent","i10.CanvaBtnComponent","i11.ImagesViewComponent","i12.SelectComponent","i6.ImageSrcPipe","i2.UserSettingsService","i3.CanvaService","i4.ImgEventService","i5.DomService","i6.UploadService","i7.IconService","i9.ImgTabsComponent","i10.ImgSelectionComponent"],"mappings":"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"}
|