@wizishop/img-manager 0.2.78 → 0.2.79
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/assets/i18n/en.json +1 -1
- package/bundles/wizishop-img-manager.umd.js.map +1 -1
- package/bundles/wizishop-img-manager.umd.min.js.map +1 -1
- package/fesm2015/wizishop-img-manager.js.map +1 -1
- package/fesm5/wizishop-img-manager.js.map +1 -1
- package/package.json +1 -1
- package/wizishop-img-manager-0.2.79.tgz +0 -0
- package/wz-img-manager.scss +2177 -2177
- package/wizishop-img-manager-0.2.78.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizishop-img-manager.js","sources":["ng://@wizishop/img-manager/lib/services/img-selection.service.ts","ng://@wizishop/img-manager/lib/dto/config/external/external-config.dto.ts","ng://@wizishop/img-manager/lib/services/img-manager.service.ts","ng://@wizishop/img-manager/lib/services/config/img-cdn.service.ts","ng://@wizishop/img-manager/lib/services/config/external-config.service.ts","ng://@wizishop/img-manager/lib/services/user-settings.service.ts","ng://@wizishop/img-manager/lib/services/canva.service.ts","ng://@wizishop/img-manager/lib/services/img-event.service.ts","ng://@wizishop/img-manager/lib/services/dom.service.ts","ng://@wizishop/img-manager/lib/wz-img-manager.component.ts","ng://@wizishop/img-manager/lib/animations/easeInOut/ease-in-out.animation.ts","ng://@wizishop/img-manager/lib/services/alert.service.ts","ng://@wizishop/img-manager/lib/components/img-upload/img-upload.component.ts","ng://@wizishop/img-manager/lib/services/rename-picture.service.ts","ng://@wizishop/img-manager/lib/components/upload-list/upload-list.component.ts","ng://@wizishop/img-manager/lib/components/img-tabs/img-tabs.component.ts","ng://@wizishop/img-manager/lib/directives/drag-drop.directive.ts","ng://@wizishop/img-manager/lib/services/pexels.service.ts","ng://@wizishop/img-manager/lib/animations/listAnnimation/list.animation.ts","ng://@wizishop/img-manager/lib/components/pexels-lib/pexels-lib.component.ts","ng://@wizishop/img-manager/lib/components/images-view/images-actions-handler.ts","ng://@wizishop/img-manager/lib/components/images-view/mosaic-view/img-card/img-card.component.ts","ng://@wizishop/img-manager/lib/components/img-editor/img-editor.component.ts","ng://@wizishop/img-manager/lib/components/canva-btn/canva-btn.component.ts","ng://@wizishop/img-manager/lib/components/img-selection/img-selection.component.ts","ng://@wizishop/img-manager/lib/directives/loading.directive.ts","ng://@wizishop/img-manager/lib/directives/auto-hide.directive.ts","ng://@wizishop/img-manager/lib/directives/copy-to-clipboard.directive.ts","ng://@wizishop/img-manager/lib/components/shared/dropdown/dropdown.component.ts","ng://@wizishop/img-manager/lib/components/img-editor/info-section/info-section.component.ts","ng://@wizishop/img-manager/lib/animations/insertRemove/insert-remove.animation.ts","ng://@wizishop/img-manager/lib/components/img-editor/cropper/cropper.component.ts","ng://@wizishop/img-manager/lib/components/images-view/images-view.component.ts","ng://@wizishop/img-manager/lib/components/images-view/mosaic-view/mosaic-view.component.ts","ng://@wizishop/img-manager/lib/components/images-view/table-view/table-view.component.ts","ng://@wizishop/img-manager/lib/services/table/filters-table.service.ts","ng://@wizishop/img-manager/lib/components/shared/table/table.component.ts","ng://@wizishop/img-manager/lib/components/shared/input-search/input-search.component.ts","ng://@wizishop/img-manager/lib/pipes/pagination/total-pages/is-last-page.pipe.ts","ng://@wizishop/img-manager/lib/components/shared/pagination/pagination.component.ts","ng://@wizishop/img-manager/lib/pipes/pagination/array-total-pages/array-pages.pipe.ts","ng://@wizishop/img-manager/lib/pipes/pagination/text/custom-text.pipe.ts","ng://@wizishop/img-manager/lib/components/shared/checkbox/checkbox.component.ts","ng://@wizishop/img-manager/lib/directives/table/checkBoxRow.directive.ts","ng://@wizishop/img-manager/lib/directives/table/column.directive.ts","ng://@wizishop/img-manager/lib/directives/table/columnHeader.directive.ts","ng://@wizishop/img-manager/lib/directives/table/raw.directive.ts","ng://@wizishop/img-manager/lib/pipes/images/img-src.pipe.ts","ng://@wizishop/img-manager/lib/directives/abstract-debounce/abstract-debounce.directive.ts","ng://@wizishop/img-manager/lib/directives/abstract-debounce/debounce-keyup.directive.ts","ng://@wizishop/img-manager/lib/components/loader/loader.component.ts","ng://@wizishop/img-manager/lib/components/shared/alert/alert.component.ts","ng://@wizishop/img-manager/lib/pipes/number-to-array.pipe.ts","ng://@wizishop/img-manager/lib/components/shared/pagination/page-selector/page-selector.component.ts","ng://@wizishop/img-manager/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.ts","ng://@wizishop/img-manager/lib/wz-img-manager.module.ts","ng://@wizishop/img-manager/lib/dto/canva.dto.ts","ng://@wizishop/img-manager/lib/dto/config/apis/api.dto.ts","ng://@wizishop/img-manager/lib/dto/config/image-cdn/image-cdn-config.dto.ts","ng://@wizishop/img-manager/public-api.ts","ng://@wizishop/img-manager/wizishop-img-manager.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ImgPictureDTO } from '../dto/img-manager.dto';\nimport { Subscriber, Observable, ReplaySubject } from 'rxjs';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImgSelectionService {\n\n imgSelectedList: ImgPictureDTO[] = [];\n multipleImgMode: boolean = false;\n private imgSelectionSubscriber: Subscriber<any>[] = [];\n private imgListLoading: ReplaySubject<boolean> = new ReplaySubject<boolean>();\n\n constructor() {}\n\n getImgSelection() {\n return this.imgSelectedList;\n }\n\n // Use in img manager webelement, when the product img selection is retrieved\n setImgSelection(imgSelectedList: ImgPictureDTO[]) {\n this.imgSelectedList.length = 0;// Remove all the elements from the array and keep the reference\n\n if (imgSelectedList && imgSelectedList.length) {\n imgSelectedList.forEach(elem => this.imgSelectedList.push(elem));\n }\n this.emitImgSelectionChange();\n }\n\n addImgSelected(picture : ImgPictureDTO) {\n if (this.multipleImgMode) {\n this.imgSelectedList.push(picture);\n } else {\n this.imgSelectedList = [picture];\n }\n this.emitImgSelectionChange();\n }\n\n getImgSelectionChange() {\n const obsImgSelection = new Observable<ImgPictureDTO[]>(subscriber => {\n this.imgSelectionSubscriber.push(subscriber);\n });\n return obsImgSelection;\n }\n\n emitImgSelectionChange() {\n this.imgSelectionSubscriber.map(obs =>\n obs.next(JSON.parse(JSON.stringify(this.imgSelectedList)))\n );\n }\n\n removeImgSelectedByIndex(index: number) {\n this.imgSelectedList.splice(index, 1);\n this.emitImgSelectionChange();\n }\n\n removeImgSelectedById(id_file: string) {\n if (!this.multipleImgMode) {\n this.imgSelectedList = [];\n return;\n }\n let index = 0;\n for (const img of this.imgSelectedList) {\n if(img.id_file === id_file) {\n this.removeImgSelectedByIndex(index);\n break;\n }\n index++;\n }\n }\n\n removeImgSelectionByIds(id_file_list: string[]) {\n if (!this.multipleImgMode) {\n this.imgSelectedList = [];\n return;\n }\n\n for (let index = this.imgSelectedList.length -1; index > -1 ; index--) {\n const id_file = this.imgSelectedList[index].id_file;\n if (id_file_list.indexOf(id_file) !== -1) {\n this.removeImgSelectedByIndex(index);\n }\n }\n }\n\n removeAllImgSelected() {\n this.imgSelectedList.length = 0;\n this.emitImgSelectionChange();\n // Remove all the elements from the array and keep the reference\n }\n\n setMultipleImgMode(activated: boolean) {\n this.multipleImgMode = activated;\n }\n\n initImgSelectedList(imgSelectedList: ImgPictureDTO[]) {\n // Retrieve the imgSelectedList from parameter\n if (imgSelectedList) {\n this.imgSelectedList = imgSelectedList;\n return;\n }\n // Remove all elements from imgSelectedList\n if (this.imgSelectedList && this.imgSelectedList.length) {\n this.imgSelectedList.splice(0, this.imgSelectedList.length);\n return;\n }\n this.imgSelectedList = [];\n }\n\n /**\n * Use to display the loader on img selection list\n * @param loading\n */\n emitImgListLoading(loading: boolean){\n this.imgListLoading.next(loading);\n }\n\n /**\n * Use to display the loader on img selection list\n * @param loading\n */\n getImgListLoadingEventListner(){\n return this.imgListLoading.asObservable();\n }\n\n /**\n * Use angular cdk function\n * Called by img selection component\n * @param event\n */\n moveImgOrder(event: CdkDragDrop<string[]>) {\n const fromIndex = event.previousIndex;\n const toIndex = event.currentIndex;\n this.imgSelectedList.splice(toIndex, 0, this.imgSelectedList.splice(fromIndex, 1)[0]);\n this.emitImgSelectionChange();\n }\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}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from \"rxjs\";\nimport { ParamsImgManagerDTO } from '../dto/img-manager.dto';\nimport { ImgManagerDisplayConfig } from '../dto/export-dtos.api';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImgManagerService {\n\n imgManagerRoute: string;\n shopToken: string;\n\n params = new HttpParams().set(\"limit\",\"20\").set(\"page\",\"1\");\n\n // Display the img selection\n private pageFicheProductConfig: ImgManagerDisplayConfig = {\n stateDisplayed: 'closed',\n multipleImgMode: true,\n showImgManagerModule: true,\n showSelection: true,\n displayBtn: true,\n pageficheProduct: true\n }\n\n private wiziblockConfig: ImgManagerDisplayConfig = {\n stateDisplayed: 'closed',\n multipleImgMode: false,\n showImgManagerModule: true,\n showSelection: false,\n displayBtn: false\n }\n\n private simpleWithButtonOpenerConfig: ImgManagerDisplayConfig = {\n stateDisplayed: 'closed',\n multipleImgMode: false,\n showImgManagerModule: true,\n showSelection: false,\n displayBtn: true\n }\n\n private fullWindowConfig: ImgManagerDisplayConfig = {\n stateDisplayed: 'window',\n multipleImgMode: false,\n showImgManagerModule: true,\n showSelection: false,\n displayBtn: false\n }\n\n constructor(private http: HttpClient) { }\n\n setApiConfig(img_manager_route: string, shop_token: string) {\n this.imgManagerRoute = img_manager_route;\n this.shopToken = shop_token;\n }\n\n private getOptionsHeaders(params?: ParamsImgManagerDTO) {\n const header = { headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.shopToken\n })\n };\n if (params) {\n this.getParams(params);\n header['params'] = this.params\n }\n return header;\n }\n\n getShopImgList(params?: ParamsImgManagerDTO): Observable<any> {\n return this.http.get(`${this.imgManagerRoute}/images`, this.getOptionsHeaders(params));\n }\n\n getShopTotalImgList(params?: ParamsImgManagerDTO): Observable<any> {\n return this.http.get(`${this.imgManagerRoute}/total/image`, this.getOptionsHeaders(params));\n }\n\n getShopImg(idFile: string): Observable<any> {\n return this.http.get(`${this.imgManagerRoute}/images/${idFile}`, this.getOptionsHeaders());\n }\n\n getParams(params: ParamsImgManagerDTO){\n this.params = new HttpParams();\n this.params = this.params.set('id_file:sort', 'desc');\n for (const param in params) {\n this.params = this.params.set(param, params[param]);\n }\n }\n\n uploadFile(formData: FormData) {\n return this.http.post(`${this.imgManagerRoute}/images/template`, formData, this.getOptionsHeaders());\n }\n\n uploadFileByUrl(url: string, fileName?: string) {\n const body = {\n url,\n fileName\n };\n return this.http.post(`${this.imgManagerRoute}/images/template`, { url, fileName }, this.getOptionsHeaders());\n }\n\n replaceImg(imageBase64: string, id_file: string) {\n const body = {\n imageBase64,\n type : \"RAW\"\n }\n return this.http.put(`${this.imgManagerRoute}/images/${id_file}/replace`, body, this.getOptionsHeaders());\n }\n\n changeImgName(fileName: string, id_file: string) {\n return this.http.put(`${this.imgManagerRoute}/images/${id_file}?file_name=${fileName}`, null, this.getOptionsHeaders());\n }\n\n removeImg(id_file: string) {\n return this.http.delete(`${this.imgManagerRoute}/images/${id_file}`, this.getOptionsHeaders());\n }\n\n removeMultipleImg(id_array: string[]){\n return this.http.post(`${this.imgManagerRoute}/images-multiple-delete`, { id_array }, this.getOptionsHeaders());\n }\n\n getImgManagerDisplayConfig(displayName: \"window\" | \"wizi-block\" | \"fiche-product\" | \"simple-with-button\") {\n switch (displayName) {\n case \"window\":\n return this.fullWindowConfig;\n\n case \"wizi-block\":\n return this.wiziblockConfig;\n\n case \"fiche-product\":\n return this.pageFicheProductConfig;\n\n case \"simple-with-button\":\n return this.simpleWithButtonOpenerConfig;\n\n default:\n return;\n }\n }\n\n getAllImgManagerDisplayConfig(): ImgManagerDisplayConfig[] {\n return [\n this.fullWindowConfig,\n this.wiziblockConfig,\n this.pageFicheProductConfig,\n this.simpleWithButtonOpenerConfig,\n ]\n }\n}","import { Injectable } from '@angular/core';\nimport { ImgCDNConfigDTO } from '../../dto/config/image-cdn/image-cdn-config.dto';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImgCDNService {\n\n imgCDNConfig: ImgCDNConfigDTO = null;\n\n constructor() {}\n\n setImgCDNConfig(imgCDNConfig: ImgCDNConfigDTO) {\n this.imgCDNConfig = imgCDNConfig;\n }\n\n getUrlImg(size: '100'|'200'|'400'|'800'|'raw'|string) {\n const urlProperty = Object.keys(this.imgCDNConfig)\n .filter(url =>\n new RegExp(size, 'i').test(url)\n )[0];\n\n return this.imgCDNConfig[urlProperty];\n }\n\n getAllSize(): string[] {\n return Object.keys(this.imgCDNConfig)\n .map(elem =>\n elem.match(/_(\\w+)_/)[1]\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ImgManagerConfigDto } from '../../dto/config/external/external-config.dto';\nimport { ImgManagerService } from '../img-manager.service';\nimport { ImgCDNService } from './img-cdn.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImgManagerConfigService {\n\n externalConfig: ImgManagerConfigDto;\n\n constructor(\n private imgManagerService: ImgManagerService,\n private imgCDNService: ImgCDNService\n ) {}\n\n /**\n * Set imgManagerService and imgCDNService\n * Canva and Pexel service retrieve the externalConfig at their initialization\n * @param externalConfig\n */\n setExternalConfig(externalConfig: ImgManagerConfigDto) {\n this.externalConfig = externalConfig;\n this.imgManagerService.setApiConfig(externalConfig.api.image_manager_route, externalConfig.api.shop_token);\n this.imgCDNService.setImgCDNConfig(externalConfig.imgCDNConfig);\n }\n\n getCanvaApiURL() {\n return this.externalConfig.api.canva_url;\n }\n\n getCanvaApiToken() {\n return this.externalConfig.api.canva_token;\n }\n\n getRouteAssets() {\n return this.externalConfig.api.assets_route;\n }\n\n getPexelsApiURL() {\n return this.externalConfig.api.pexels_route;\n }\n\n getPexelsApiToken() {\n return this.externalConfig.api.pexels_token;\n }\n\n getShopCategory() {\n return this.externalConfig.api.shop_category;\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserSettingsService {\n\n private userdisplayPreference = 'WzImgManagerListDisplayed';\n\n constructor() {\n }\n\n /**\n * true : display list\n * false : display mosaic\n * @param value\n */\n setUserDisplayPreference(value: boolean) {\n localStorage.setItem(this.userdisplayPreference, '' + value);\n }\n\n getUserDisplayPreference(): boolean {\n const value = localStorage.getItem(this.userdisplayPreference);\n return value == 'true';\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subscriber, BehaviorSubject } from 'rxjs';\nimport { CanvaButtonApi } from '../dto/canva.dto';\nimport { ImgManagerConfigService } from './config/external-config.service';\nimport { WiziBlockMediaDto } from '../dto/wizi-block-media.dto';\n\ndeclare let Canva : {\n DesignButton : {\n initialize: (opts: { apiKey: string }) => Promise<CanvaButtonApi>;\n }\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CanvaService {\n\n canvaApi; // Object use to manage the canva api\n canvaApiURL: string;\n canvaApiKey: string;\n canvaLogoRoute: string;\n\n private bindExpectedImgSizeEvent: BehaviorSubject<WiziBlockMediaDto> = new BehaviorSubject<WiziBlockMediaDto>(null);\n private bindExpectedSizeDone = this.bindExpectedImgSizeEvent.asObservable();\n\n constructor(\n private externalConfigService: ImgManagerConfigService\n ) { }\n\n private setCanvaApiConfig() {\n this.canvaApiURL = this.externalConfigService.getCanvaApiURL();\n this.canvaApiKey = this.externalConfigService.getCanvaApiToken();\n }\n\n getCanvaLogo() {\n return this.externalConfigService.getRouteAssets() + \"canva/icon_canva.svg\";\n }\n\n bindEventExepectedImgSizeChange() {\n return this.bindExpectedSizeDone;\n }\n\n expectedImgSizesChange (mediaDTO: WiziBlockMediaDto){\n this.bindExpectedImgSizeEvent.next(mediaDTO);\n }\n\n getCanvaApi():Observable<CanvaButtonApi> {\n if (!this.canvaApiURL || !this.canvaApiKey) {\n this.setCanvaApiConfig();\n }\n return new Observable(observer => {\n this.loadCanva().subscribe({\n complete: () => {\n if(this.canvaApi && Canva.DesignButton) {\n observer.next(this.canvaApi);\n observer.complete();\n } else {\n this.initializeCanva(observer);\n }\n }\n })\n });\n }\n\n private initializeCanva(observer: Subscriber<CanvaButtonApi>) {\n if (Canva.DesignButton) {\n Canva.DesignButton.initialize({\n apiKey: this.canvaApiKey\n\n }).then((canvaApi) => {\n this.canvaApi = canvaApi;\n observer.next(this.canvaApi);\n observer.complete();\n });\n }\n }\n\n private loadCanva():Observable<null> {\n return new Observable(observer => {\n if(this.canvaApi) {\n observer.complete();\n }else{\n this.loadCanvaScript(observer);\n }\n });\n }\n\n private loadCanvaScript(observer: Subscriber<null>) {\n\n const node = document.createElement('script');\n node.src = this.canvaApiURL;\n node.type = 'text/javascript';\n node.async = false;\n node.charset = 'utf-8';\n node.onload = () => {\n observer.complete();\n }\n document.getElementsByTagName('head')[0].appendChild(node);\n }\n}\n","import {Injectable} from '@angular/core';\nimport { Subject } from \"rxjs\";\nimport { ImgPictureDTO } from '../dto/img-manager.dto';\n\n@Injectable({\n providedIn: 'root'\n })\nexport class ImgEventService {\n\n constructor() { }\n\n private imgToEditEvent: Subject<ImgPictureDTO> = new Subject<ImgPictureDTO>();\n private imgRemoved: Subject<string> = new Subject<string>();\n private imgAdded: Subject<string> = new Subject<string>();\n private listDisplayedChange: Subject<boolean> = new Subject<boolean>();\n\n emitImgRemoved(id_file: string){\n this.imgRemoved.next(id_file);\n }\n\n getImgRemovedEventListner(){\n return this.imgRemoved.asObservable();\n }\n\n emitImgToEdit(imgToEdit: ImgPictureDTO){\n this.imgToEditEvent.next(imgToEdit);\n }\n\n getImgToEditEventListner(){\n return this.imgToEditEvent.asObservable();\n }\n\n emitImgAdded(id_file: string){\n this.imgAdded.next(id_file);\n }\n\n getImgAddedEventListner(){\n return this.imgAdded.asObservable();\n }\n\n emitlistDisplayedChange(value: boolean){\n this.listDisplayedChange.next(value);\n }\n\n getlistDisplayedChange(){\n return this.listDisplayedChange.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DomService {\n private documentEventSource = new Subject();\n private documentEventDone = this.documentEventSource.asObservable();\n\n private documentScrollSource = new Subject();\n private documentScrollDone = this.documentScrollSource.asObservable();\n\n documentEvent() {\n return this.documentEventDone;\n }\n\n setDocumentEventListener() {\n document.body.addEventListener('click', event => {\n this.documentEventSource.next(event.target);\n });\n }\n\n documentScroll() {\n return this.documentScrollDone;\n }\n\n setScrollEventListener() {\n window.onscroll = () => {\n this.documentScrollSource.next(window);\n };\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ImgSelectionService } from './services/img-selection.service';\nimport { ImgManagerConfigDto } from './dto/config/external/external-config.dto';\nimport { ImgManagerConfigService } from './services/config/external-config.service';\nimport { Subscription } from 'rxjs';\nimport { UserSettingsService } from './services/user-settings.service';\nimport { CanvaService } from './services/canva.service';\nimport { ImgEventService } from './services/img-event.service';\nimport { DomService } from './services/dom.service';\nimport { HostListener } from '@angular/core';\nimport { stateDisplayed } from '../public-api';\n\n@Component({\n selector: 'wz-img-manager',\n templateUrl: './wz-img-manager.component.html'\n})\nexport class WzImgManagerComponent implements OnInit {\n @Input() stateDisplayed: stateDisplayed;\n @Input() showSelection: boolean = false;\n @Input() externalConfig: ImgManagerConfigDto;\n @Output() imgManagerClosed = new EventEmitter();\n private _multipleImgMode: boolean = false;\n\n @Input() set multipleImgMode(activate: boolean) {\n this._multipleImgMode = activate;\n this.imgSelectionService.setMultipleImgMode(this._multipleImgMode);\n }\n\n get multipleImgMode(): boolean {\n return this._multipleImgMode;\n }\n\n _showImgManagerModule: boolean = false;\n @Input() set showImgManagerModule(activate: boolean) {\n this._showImgManagerModule = activate;\n if (activate) {\n this.displaySmall();\n }\n }\n\n get showImgManagerModule(): boolean {\n return this._multipleImgMode;\n }\n\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n if (this.stateDisplayed && this.stateDisplayed !== 'window') {\n this.onClose();\n }\n }\n\n close: boolean = false\n selectImgEvent: Subscription;\n listDisplayed: boolean = false;\n listDisplayedEvent: Subscription;\n hideTab: boolean = false;\n // Save the defaut overflow apply to html tag, when the module is full open\n private overflowHTML: string;\n private bodyPadding: number;\n\n constructor(\n private imgSelectionService: ImgSelectionService,\n private externalConfigService: ImgManagerConfigService,\n private userSettingsService: UserSettingsService,\n private canvaService: CanvaService,\n private imgEventService: ImgEventService,\n private domService: DomService\n ) {}\n\n ngOnInit(): void {\n this.externalConfigService.setExternalConfig(this.externalConfig);\n this.imgSelectionService.setMultipleImgMode(this._multipleImgMode);\n this.imgSelectionService.initImgSelectedList(null);\n this.selectImgEvent = this.imgSelectionService.getImgSelectionChange().subscribe(imgSlection =>{\n\n if (imgSlection && imgSlection.length && this.checkCloseImgManager()) {\n // Close the img manager\n this.onClose();\n }\n });\n this.checkUserDisplayPreference();\n // Use when the img manager is full open or open in page. This display the user preference display, mosaic or list.\n this.listDisplayedEvent = this.imgEventService.getlistDisplayedChange().subscribe(value => this.listDisplayed = value);\n // Register dom service to listen on all event on the body to avoid having multiple instance of the same thing every where\n this.domService.setDocumentEventListener();\n }\n\n checkUserDisplayPreference() {\n if (this.stateDisplayed === 'window' || this.stateDisplayed === 'full') {\n this.listDisplayed = this.userSettingsService.getUserDisplayPreference();\n }\n }\n\n setCurrentTab(event) {\n if (event === 'img-edition') {\n this.hideTab = true;\n return;\n }\n this.hideTab = false;\n }\n\n displaySmall() {\n if (this.stateDisplayed !== 'window') {\n setTimeout(() => {\n this.stateDisplayed = 'small';\n this.addBodyBottomPaddingForModule();\n }, 10);\n }\n }\n\n openSmall() {\n this.stateDisplayed = 'small';\n this.setBodyMainScroll();\n this.listDisplayed = false;\n }\n\n openFull() {\n this.stateDisplayed = 'full';\n this.checkUserDisplayPreference();\n this.hideBodyMainScroll();\n }\n\n onClose() {\n this.stateDisplayed = 'closed';\n this.hideTab = false;\n this.setBodyMainScroll();\n this.removeBodyBottomPaddingForModule();\n // Wait the end of the closing annimation\n setTimeout(() => {\n this.imgManagerClosed.emit();\n }, 250);\n }\n\n onImgManagerClosed() {\n this.onClose();\n }\n\n /**\n * Close the img manager after one img is selected, if not in multiple img to select\n */\n checkCloseImgManager() {\n return !this.multipleImgMode && this.stateDisplayed !== 'window' ? true : false;\n }\n\n hideBodyMainScroll() {\n const html = document.getElementsByTagName('html')[0];\n\n if (!this.overflowHTML) {\n this.overflowHTML = html.style.overflowY;\n }\n\n html.style.overflowY = \"hidden\";\n }\n\n setBodyMainScroll() {\n const html = document.getElementsByTagName('html')[0];\n html.style.overflowY = this.overflowHTML ? this.overflowHTML : \"scroll\";\n }\n\n addBodyBottomPaddingForModule() {\n const body = document.getElementsByTagName('body')[0];\n this.bodyPadding = this.bodyPadding ? parseInt(body.style.paddingBottom) : 0;\n body.style.paddingBottom = this.bodyPadding + 300 + 'px';\n }\n\n removeBodyBottomPaddingForModule() {\n if (typeof this.bodyPadding !== 'undefined') {\n const body = document.getElementsByTagName('body')[0];\n body.style.paddingBottom = this.bodyPadding + 'px';\n this.bodyPadding = 0;\n }\n }\n\n ngOnDestroy() {\n this.selectImgEvent.unsubscribe();\n this.canvaService.expectedImgSizesChange(null);\n this.listDisplayedEvent.unsubscribe();\n }\n}\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 } from '@angular/core';\nimport { NwbAlertConfig, NwbAlertComponent } from '@wizishop/ng-wizi-bulma';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NwbAlertService } from '@wizishop/ng-wizi-bulma';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AlertService {\n\n actionMsg = 'ImgManager.alert.action';\n\n alertConfig: NwbAlertConfig = {\n message: '',\n duration: 5000\n }\n\n private alertRefComponent: NwbAlertComponent;\n\n constructor(\n private nwbAlertService: NwbAlertService,\n private translateService: TranslateService\n ) { }\n\n openAlert(msgKey: string) {\n this.closePreviousAlert();\n this.translateService.get(msgKey).subscribe(trans => {\n this.alertConfig.message = trans;\n this.setAlertColor(msgKey);\n\n this.alertRefComponent = this.nwbAlertService.open(this.alertConfig);\n this.alertRefComponent.afterClosed().subscribe();\n });\n }\n\n openAlertWithBackendRespons(msgKey: string, msgBackend: string) {\n this.translateService.get(msgKey).subscribe(trans => {\n this.alertConfig.message = trans;\n this.alertConfig.message += '<br/>' + JSON.parse(msgBackend).message;\n\n this.closePreviousAlert();\n this.alertRefComponent = this.nwbAlertService.open(this.alertConfig);\n this.alertRefComponent.afterClosed().subscribe();\n });\n }\n\n private closePreviousAlert() {\n if (this.alertRefComponent) {\n this.alertRefComponent.dismiss();\n }\n }\n\n private setAlertColor(msgKey: string) {\n const isErrorMsg: boolean = /error/i.test(msgKey);\n this.alertConfig.color = isErrorMsg ? 'is-danger' : 'is-success';\n }\n}\n","import {Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef} from '@angular/core';\nimport { ImgManagerService } from '../../services/img-manager.service';\nimport { Observable, forkJoin } from 'rxjs';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\nimport {ImgManagerConfigService} from \"../../services/config/external-config.service\";\nimport { stateDisplayed } from '../../dto/export-dtos.api';\nimport { AlertService } from '../../services/alert.service';\n\n@Component({\n selector: 'img-upload',\n templateUrl: './img-upload.component.html',\n animations: [\n easeInOut\n ]\n})\nexport class ImgUploadComponent implements OnInit {\n\n files: any = [];\n isLoading: boolean = false;\n assetsIcon: string;\n @Input() stateDisplayed: stateDisplayed;\n @Output() imgUploaded = new EventEmitter();\n\n @ViewChild('dragAndDropBox') dragAndDropBox: ElementRef;\n\n loadingText = 'ImgManager.ImgUpload.loading';\n errorUploadingImg = 'ImgManager.ImgUpload.errorUploadingImg';\n errorNotImg = 'ImgManager.ImgUpload.errorNotImg';\n\n constructor(\n private imgManager: ImgManagerService,\n private alertService: AlertService,\n private externalConfigService: ImgManagerConfigService\n ) {}\n\n ngOnInit(): void {\n this.assetsIcon = this.getAssets();\n }\n\n filesChangeByClick(event: any) {\n this.uploadFile(event.target.files);\n }\n\n getAssets() {\n return this.externalConfigService.getRouteAssets() + \"img/icon_picture.svg\";\n }\n\n filesChangeByDragAndDrop(filesList: File[]) {\n this.removeDragAndDropStyle();\n this.uploadFile(filesList);\n }\n\n uploadFile(files: File[]) {\n if (files && !files.length) {\n return;\n }\n\n this.isLoading =true;\n const imgToUploadList: Observable<any>[] = [];\n for (const file of files) {\n\n const formData = new FormData();\n formData.append('image', file, file.name);\n\n if(!this.isFileImage(file.type)) {\n this.alertService.openAlert(this.errorNotImg);\n this.isLoading =false;\n continue;\n }\n imgToUploadList.push(this.imgManager.uploadFile(formData));\n }\n\n forkJoin(imgToUploadList).subscribe(\n (img: ImgPictureDTO[]) => {\n this.onImgUpload(img),\n this.isLoading =false;\n },\n error => {\n this.alertService.openAlert(this.errorUploadingImg);\n this.isLoading =false;\n }\n )\n }\n\n /**\n * Send the img uploaded to the tabs components,\n * Then the tabs components add the img to upload list by calling the method onImgUploaded of the upload-list component\n * @param img\n */\n onImgUpload(img: ImgPictureDTO[]) {\n this.imgUploaded.emit(img);\n }\n\n isFileImage(fileType: string) {\n return fileType.split('/')[0] === 'image';\n }\n\n /**\n * Remove the style of the drag and drop box\n * After an img is droped, the box is still grey\n */\n removeDragAndDropStyle() {\n this.dragAndDropBox.nativeElement.style = '';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { ImgManagerService } from './img-manager.service';\nimport { AlertService } from './alert.service';\nimport { ImgPictureDTO } from '../dto/img-manager.dto';\nimport { PictureNameUpdate } from '../dto/picture-name-update.dto';\n\n@Injectable({providedIn: 'root'})\nexport class RenamePictureService {\n\n private picturesList: ImgPictureDTO[] = [];\n private pictureNameChanged: Subject<PictureNameUpdate> = new Subject<PictureNameUpdate>();\n\n private errorRenameImg = 'ImgManager.ImgList.errorRenameImg';\n private msgSavingImgName = 'ImgManager.ImgLib.savingImgName';\n private msgImgNameSaved = 'ImgManager.ImgLib.imgNameSaved';\n\n constructor(\n private imgManager: ImgManagerService,\n private alertService: AlertService,\n )\n {\n this.setEvents();\n }\n\n setPicturesList(picturesList: ImgPictureDTO[]) {\n this.picturesList = picturesList;\n }\n\n onRenamePicture(pictureRenamed: PictureNameUpdate) {\n this.pictureNameChanged.next(pictureRenamed);\n }\n\n private setEvents() {\n this.pictureNameChanged\n .pipe(debounceTime(800)) // wait 0.8 sec after the last event before emitting last event\n .subscribe((pictureNameUpdate:PictureNameUpdate) => {\n this.renamePicture(pictureNameUpdate);\n });\n }\n\n private renamePicture(pictureNameUpdate: PictureNameUpdate) {\n const picture: ImgPictureDTO = this.getPictureById(pictureNameUpdate.id);\n if (!picture) {\n this.alertService.openAlert(this.errorRenameImg);\n return;\n }\n this.alertService.openAlert(this.msgSavingImgName);\n this.imgManager\n .changeImgName(picture.display_name, picture.id_file)\n .subscribe(\n (data: ImgPictureDTO) => {\n picture.display_name = data.display_name;\n this.alertService.openAlert(this.msgImgNameSaved);\n },\n (error) => {\n picture.display_name = pictureNameUpdate.previousName;\n this.alertService.openAlert(this.errorRenameImg);\n }\n );\n }\n\n private getPictureById(id_file: string): ImgPictureDTO {\n if (!this.picturesList) {\n return;\n }\n\n for (const picture of this.picturesList) {\n if(picture.id_file === id_file) {\n return picture;\n }\n }\n\n return null;\n }\n\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { Subscription } from 'rxjs';\nimport { ImgSelectionService } from '../../services/img-selection.service';\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\nimport { PictureNameUpdate, stateDisplayed, tabDisplayed } from '../../dto/export-dtos.api';\nimport { RenamePictureService } from '../../services/rename-picture.service';\n\n@Component({\n selector: 'upload-list',\n templateUrl: './upload-list.component.html',\n animations: [\n easeInOut\n ]\n})\nexport class UploadListComponent implements OnInit {\n\n picturesList: ImgPictureDTO[] = [];\n imgSelectionChange: Subscription;\n selectImgEvent: Subscription;\n\n @Input() stateDisplayed: stateDisplayed;\n @Input() tabDisplayed: tabDisplayed;\n @Input() multipleImgMode: boolean = false;\n\n constructor(\n private imgSelectionService: ImgSelectionService,\n private renamePictureService: RenamePictureService\n ) { }\n\n ngOnInit(): void {\n this.setEvents();\n }\n\n onImgUploaded(img: ImgPictureDTO[]) {\n img.forEach(picture =>\n this.picturesList.push(picture)\n );\n this.renamePictureService.setPicturesList(this.picturesList);\n }\n\n onToggleSelectImg(index: number) {\n if (this.stateDisplayed === 'window') {\n return;\n }\n if (!this.picturesList[index].selected) {\n this.imgSelectionService.addImgSelected(this.picturesList[index]);\n this.picturesList[index].selected = true;\n } else {\n this.imgSelectionService.removeImgSelectedById(this.picturesList[index].id_file);\n this.picturesList[index].selected = false;\n }\n }\n\n onRenamePicture(pictureRenamed: PictureNameUpdate) {\n this.renamePictureService.onRenamePicture(pictureRenamed);\n }\n\n private setEvents() {\n this.imgSelectionChange = this.imgSelectionService.getImgSelectionChange().subscribe(imgSelection =>{\n const idFileList = [];\n imgSelection.map(img => idFileList.push(img.id_file));\n for (const picture of this.picturesList) {\n if (idFileList.indexOf(picture.id_file) === -1) {\n picture.selected = false;\n }\n }\n });\n }\n ngOnDestroy(): void {\n this.imgSelectionChange.unsubscribe();\n }\n}\n","import {Component, Input, OnInit, ViewChild, Output, EventEmitter} from '@angular/core';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { UploadListComponent } from '../upload-list/upload-list.component';\nimport { ImgEventService } from '../../services/img-event.service';\nimport { NwbSnackbarConfig } from '@wizishop/ng-wizi-bulma';\nimport { stateDisplayed } from '../../dto/export-dtos.api';\nimport { AlertService } from '../../services/alert.service';\n\n@Component({\n selector: 'img-tabs',\n templateUrl: './img-tabs.component.html'\n})\nexport class ImgTabsComponent implements OnInit {\n\n @Input()\n multipleImgMode: boolean = false;\n @Input()\n stateDisplayed: stateDisplayed;\n @Input()\n listDisplayed = false;\n\n @Output()\n imgManagerClosed = new EventEmitter();\n\n @Output()\n currentTab = new EventEmitter();\n\n tabActive = 'images-view';\n tabs: string[] = ['img-upload', 'images-view', 'pexels-lib', 'img-edition'];\n editTab = false;\n\n imgToEdit: ImgPictureDTO;\n\n imgUpload = false;\n\n @ViewChild( 'imgUploadedImg' )\n imgUploadedComponent: UploadListComponent ;\n\n snackBarNewVersionConfig: NwbSnackbarConfig = {\n message: '',\n duration: 3000\n };\n\n constructor(\n private imgEventEditService: ImgEventService,\n private alertService: AlertService,\n ) { }\n\n ngOnInit(): void {\n this.imgEventEditService.getImgToEditEventListner().subscribe(imgToEdit =>{\n this.tabActive = this.tabs[3];\n this.imgToEdit = imgToEdit;\n this.editTab = true;\n this.currentTab.emit(this.tabs[3]);\n });\n }\n\n toggleTabs(value: string) {\n this.imgUpload = false;\n this.editTab = false;\n this.tabActive = value;\n }\n\n onImgUploaded(img: ImgPictureDTO[]) {\n this.imgUpload = true;\n this.imgUploadedComponent.onImgUploaded(img);\n }\n\n onEditClosed(msgKey: string) {\n this.editTab = false;\n this.toggleTabs(this.tabs[1]);\n if (msgKey) {\n this.alertService.openAlert(msgKey);\n }\n this.currentTab.emit('close');\n }\n\n onShowImgUploaded() {\n this.tabActive = this.tabs[1];\n }\n\n onImgManagerClosed() {\n this.imgManagerClosed.emit();\n }\n}\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 {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport { map} from \"rxjs/operators\";\nimport {Observable} from \"rxjs\";\nimport {WzImgLibDto} from \"../dto/pexels-img.dto\";\nimport { ImgManagerConfigService } from './config/external-config.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PexelsService {\n apiBaseUrl;\n apiKey;\n lang: string;\n languages = {'fr': 'fr-FR', 'en': 'en-US', 'it': 'it-IT', 'es': 'es-ES'};\n\n constructor(\n private http: HttpClient,\n private externalConfigService: ImgManagerConfigService,\n private translateService: TranslateService\n ) {\n this.setLang(this.translateService.currentLang);\n this.translateService.onLangChange.subscribe(langData => {\n this.setLang(langData.lang);\n })\n }\n\n setLang(lang: string) {\n this.lang = this.languages[lang] ? this.languages[lang] : 'fr-FR';\n }\n\n searchOnPexels(toSearch: string, perPage: number, page: number): Observable<WzImgLibDto> {\n if(!this.apiBaseUrl || this.apiKey) {\n this.apiBaseUrl = this.externalConfigService.getPexelsApiURL();\n this.apiKey = this.externalConfigService.getPexelsApiToken();\n }\n\n const httpOptions = {\n headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.apiKey\n })\n };\n\n let request;\n\n // If search value is not empty or blank\n if (toSearch && !/^\\s*$/.test(toSearch)) {\n request = `/search?query=${toSearch}&per_page=${perPage}&page=${page}&locale=${this.lang}`;\n\n } else { // Search by category or display Pexels selection\n const shopCategory = this.externalConfigService.getShopCategory();\n\n // Search by shop category\n if (shopCategory && shopCategory !== 'other' && shopCategory !== 'btob') {\n request = `/search?query=${shopCategory}&per_page=${perPage}&page=${page}&locale=en-US`;\n } else { // Display Pexels selection\n request = `/curated?per_page=${perPage}&page=${page}`;\n }\n }\n\n return this.http.get(this.apiBaseUrl + request, httpOptions).pipe(\n map((data: WzImgLibDto) => {\n return data;\n })\n );\n }\n}\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 {AfterViewInit, Component, ElementRef, OnInit, ViewChild, Input, Output, EventEmitter} from '@angular/core';\nimport {PexelsService} from '../../services/pexels.service';\nimport {Subject, Subscription} from 'rxjs';\nimport {WzImgLibDto, PhotosColumns, WzImgLibPhotoDto} from '../../dto/pexels-img.dto';\nimport { ImgManagerService } from '../../services/img-manager.service';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { TranslateService } from '@ngx-translate/core';\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\nimport { listAnnimation } from '../../animations/listAnnimation/list.animation';\nimport { stateDisplayed } from '../../dto/export-dtos.api';\nimport { AlertService } from '../../services/alert.service';\n\n@Component({\n selector: 'pexels-lib',\n templateUrl: './pexels-lib.component.html',\n animations: [\n easeInOut,\n listAnnimation\n ]\n})\nexport class PexelLibComponent implements OnInit, AfterViewInit {\n\n @Input()\n stateDisplayed: stateDisplayed;\n @Input()\n searchValue: string = '';\n /** Pass to true to hide search input */\n @Input()\n disableSearch: boolean = false;\n\n @Output()\n showImgUploaded = new EventEmitter();\n\n perPage = 30;\n searchUpdated = new Subject();\n oldSearchValue: string;\n nbResult = 0;\n wzImgLibDto: WzImgLibDto;\n currentPage = 1;\n isLoading = true;\n initComponent = true;\n photosColumns: PhotosColumns[] = [];\n nbColumuns = 6;\n responsiveColumns = [1250, 1050, 750, 500];\n outerElement = null;\n\n uploadingImg = 'ImgManager.PexelLib.uploadingImg';\n untitled = 'ImgManager.PexelLib.untitled';\n successUploadPhoto = 'ImgManager.PexelLib.successImport';\n errorUploadPhoto = 'ImgManager.PexelLib.errorUploadPhoto';\n errorRetrievePhotos = 'ImgManager.PexelLib.errorRetrievePhotos';\n\n private subs: Subscription[] = [];\n\n @ViewChild('outerElement') set content(control: ElementRef) {\n this.outerElement = control;\n }\n\n constructor(\n private wzImgLibService: PexelsService,\n private imgManager: ImgManagerService,\n private alertService: AlertService,\n private translateService: TranslateService\n ) { }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit() {\n this.oldSearchValue = this.searchValue;\n this.isLoading = false;\n\n this.setNbColumnsToDisplayPhoto();\n this.setPhotosColumns();\n this.search();\n }\n\n setNbColumnsToDisplayPhoto(): void {\n const width = this.outerElement.nativeElement.offsetWidth;\n\n if (this.stateDisplayed !== 'window') {\n this.nbColumuns = 8;\n }\n\n this.responsiveColumns.forEach(value => {\n if (width < value) {\n this.nbColumuns--;\n }\n });\n }\n\n onSearchNameChanged() {\n this.onSearchChange();\n }\n\n onBottomReached() {\n this.scrollHandler();\n }\n\n onSearchChange() {\n this.search();\n }\n\n search() {\n if (this.isLoading) {\n return;\n }\n if (this.searchValue !== this.oldSearchValue) {\n this.resetSearch();\n }\n\n // All the picture are displayed\n if (this.nbResult && this.nbResult <= (this.currentPage - 1) * this.perPage) {\n return;\n }\n\n this.isLoading = true;\n const searchSub = this.wzImgLibService.searchOnPexels(this.searchValue, this.perPage, this.currentPage).subscribe(\n (data: WzImgLibDto) => {\n this.wzImgLibDto = data;\n this.nbResult = this.wzImgLibDto.total_results;\n\n if (this.nbResult) {\n data.photos.forEach(photo => {\n const bestColumnIndex = this.getBestColumn();\n const height = (photo.height / photo.width) * 1000;\n\n this.photosColumns[bestColumnIndex].height += height;\n this.photosColumns[bestColumnIndex].photos.push(photo);\n });\n }\n\n this.isLoading = false;\n this.initComponent = false;\n },\n error => {\n this.isLoading = false;\n this.initComponent = false;\n this.alertService.openAlert(this.errorRetrievePhotos);\n }\n );\n\n this.subs.push(searchSub);\n }\n\n scrollHandler() {\n if (this.isLoading) {\n return;\n }\n const bestColumnIndex = this.getBestColumn();\n const lastPic = this.photosColumns[bestColumnIndex].photos[this.photosColumns[bestColumnIndex].photos.length - 1];\n const lastPhoto = lastPic ? document.querySelector<HTMLImageElement>('img[src=\"' + lastPic.src.medium + '\"]') : null;\n\n if (lastPhoto) {\n if (!this.isLoading) {\n this.currentPage += 1;\n this.search();\n }\n }\n }\n\n setPhotosColumns() {\n for (let indexColumn=0; indexColumn < this.nbColumuns ; indexColumn++) {\n const photosColumn: PhotosColumns = {\n height: 0,\n photos: []\n };\n this.photosColumns.push(photosColumn);\n }\n }\n\n getBestColumn(): number {\n const bestColumn = {\n index: 0,\n height: this.photosColumns[0].height\n };\n this.photosColumns.forEach((photosColumn, index) => {\n if (bestColumn.height > photosColumn.height) {\n bestColumn.index = index;\n bestColumn.height = photosColumn.height;\n }\n });\n return bestColumn.index;\n }\n\n resetSearch() {\n this.oldSearchValue = this.searchValue;\n this.photosColumns = [];\n this.currentPage = 1;\n this.setPhotosColumns();\n }\n\n uploadPhoto(photo: WzImgLibPhotoDto, url: string) {\n photo.uploading = true;\n\n const uploadSub = this.imgManager.uploadFileByUrl(url, this.translateService.instant(this.untitled)).subscribe(\n (img: ImgPictureDTO) => {\n photo.uploading = false;\n photo.uploaded = true;\n this.alertService.openAlert(this.successUploadPhoto);\n },\n error => {\n photo.uploading = false;\n if(error.error.code === 406 && error.error.message) {\n this.alertService.openAlertWithBackendRespons(this.errorUploadPhoto, error.error.message);\n } else {\n this.alertService.openAlert(this.errorUploadPhoto);\n }\n });\n\n // Display img uploading msg\n this.alertService.openAlert(this.uploadingImg);\n this.subs.push(uploadSub);\n }\n\n ngOnDestroy(): void {\n this.subs.forEach(sub => sub.unsubscribe());\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Directive, Input, Output } from \"@angular/core\";\nimport { EventEmitter } from '@angular/core';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Subscription } from \"rxjs\";\nimport { stateDisplayed } from \"../../dto/export-dtos.api\";\nimport { PictureNameUpdate } from \"../../dto/picture-name-update.dto\";\nimport { ImgPictureDTO } from \"../../dto/img-manager.dto\";\nimport { AlertService } from \"../../services/alert.service\";\nimport { ImgManagerConfigService } from \"../../services/config/external-config.service\";\nimport { ImgCDNService } from \"../../services/config/img-cdn.service\";\nimport { ImgEventService } from \"../../services/img-event.service\";\nimport { ImgManagerService } from \"../../services/img-manager.service\";\nimport { ImgSelectionService } from \"../../services/img-selection.service\";\nimport { TableFilters } from \"../../services/table/filters-table.service\";\n\n@Directive()\nexport abstract class ImagesActionHandler {\n @Input()\n picturesList: ImgPictureDTO[] = [];\n @Output()\n picturesListChange: EventEmitter<void> = new EventEmitter();\n\n @Input()\n tableFilters: TableFilters = {\n sort: undefined,\n order: undefined,\n searchValue: '',\n totalItems: 0,\n itemsPerPage: 30,\n currentPage: 1\n };\n @Input()\n displayPexelsResults: boolean = false;\n\n @Input()\n disable: boolean = false;\n @Output()\n disableChange: EventEmitter<boolean> = new EventEmitter();\n\n @Output()\n filtersChange = new EventEmitter();\n @Output()\n pictureNameChange: EventEmitter<PictureNameUpdate> = new EventEmitter();\n\n @Input() isLoading = false;\n\n @Input()\n stateDisplayed: stateDisplayed;\n\n previousName: string; // Use to save the previous picture name, when a user change his name\n fakeImgRoute: string;\n\n private getDataAPISub: Subscription;\n private errorRemoveImg = 'ImgManager.ImgList.errorRemoveImg';\n private errorAlreadyUsedImg = 'ImgManager.ImgList.errorAlreadyUsed';\n\n constructor(\n protected imgManager: ImgManagerService,\n protected imgSelectionService: ImgSelectionService,\n protected http: HttpClient,\n protected imgCDNService: ImgCDNService,\n protected imgEventCardService: ImgEventService,\n protected alertService: AlertService,\n protected translateService: TranslateService,\n protected externalService: ImgManagerConfigService\n ) {\n this.fakeImgRoute = this.externalService.getRouteAssets() + 'img/fake.png';\n }\n\n /** Event emit when the header checkbox is checked */\n onToggleAllCheckBoxRow(event) {\n this.picturesList.forEach(data => {\n data.delSelected = event;\n });\n this._pictureListeChange();\n }\n\n onToggleDelSelection(index: number) {\n if (this.disable) {\n return;\n }\n this.picturesList[index].delSelected = !this.picturesList[index].delSelected;\n this._pictureListeChange();\n }\n\n /** Event emit each time filters change */\n onFiltersChange() {\n this.filtersChange.emit();\n }\n\n onEdit(picture: ImgPictureDTO) {\n this.imgEventCardService.emitImgToEdit(picture);\n }\n\n onToggleSelectImg(index: number) {\n if (this.disable || this.stateDisplayed === 'window') {\n return;\n }\n if (!this.picturesList[index].selected) {\n this.imgSelectionService.addImgSelected(this.picturesList[index]);\n this.picturesList[index].selected = true;\n } else {\n this.imgSelectionService.removeImgSelectedById(this.picturesList[index].id_file);\n this.picturesList[index].selected = false;\n }\n }\n\n onRemoveImg(picture: ImgPictureDTO) {\n picture.deleted = true;\n this.imgManager.removeImg(picture.id_file).subscribe(\n data => {\n this.imgEventCardService.emitImgRemoved(picture.id_file);\n this.imgSelectionService.removeImgSelectedById(picture.id_file);\n },\n error => {\n const msg = error.status === 409 ? this.errorAlreadyUsedImg: this.errorRemoveImg;\n picture.deleted = false;\n this.alertService.openAlert(msg);\n });\n }\n\n onPictureNotLoading(event) {\n event.target.src = this.fakeImgRoute;\n }\n\n onDownloadImg(display_name: string, file_name: string) {\n this.http.get(this.getRAWImgRoute(file_name), { responseType: 'blob' }).subscribe(val => {\n let url = URL.createObjectURL(val);\n this.downloadUrl(url, display_name);\n URL.revokeObjectURL(url);\n });\n }\n\n onNameChange(id_file: string) {\n this.pictureNameChange.emit({id: id_file, previousName: this.previousName});\n }\n\n private getRAWImgRoute(file_name: string){\n return this.imgCDNService.getUrlImg('raw') + file_name;\n }\n\n private _pictureListeChange() {\n this.picturesListChange.emit();\n }\n\n private downloadUrl(url: string, fileName: string) {\n const a: any = document.createElement('a');\n a.href = url;\n a.download = fileName;\n a.click();\n }\n\n ngDestroy() {\n if (this.getDataAPISub) {\n this.getDataAPISub.unsubscribe();\n }\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ImgEventService } from '../../../../services/img-event.service';\nimport { ImgPictureDTO } from '../../../../dto/img-manager.dto';\nimport { HttpClient } from '@angular/common/http';\nimport { ImgManagerService } from '../../../../services/img-manager.service';\nimport { ImgSelectionService } from '../../../../services/img-selection.service';\nimport { ImgCDNService } from '../../../../services/config/img-cdn.service';\nimport { ImgManagerConfigService } from '../../../../services/config/external-config.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ImagesActionHandler } from '../../images-actions-handler';\nimport { easeInOut } from '../../../../animations/easeInOut/ease-in-out.animation'\nimport { tabDisplayed } from '../../../../dto/export-dtos.api';\nimport { AlertService } from '../../../../services/alert.service';\n\n@Component({\n selector: 'img-card',\n templateUrl: './img-card.component.html',\n animations: [\n easeInOut\n ]\n})\nexport class ImgCardComponent extends ImagesActionHandler implements OnInit {\n\n @Input()\n tabDisplayed: tabDisplayed;\n @Input()\n fullSize: boolean;\n @Input()\n picture: ImgPictureDTO;\n @Input()\n index: number;\n focusInput = false;\n\n @Output()\n toggleImgSelected: EventEmitter<void> = new EventEmitter();\n\n isUploadSection: boolean = false;\n activeConfirmDelete = false;\n\n constructor(\n imgManager: ImgManagerService,\n imgSelectionService: ImgSelectionService,\n http: HttpClient,\n imgCDNService: ImgCDNService,\n imgEventCardService: ImgEventService,\n alertService: AlertService,\n translateService: TranslateService,\n externalService: ImgManagerConfigService\n ) {\n super(\n imgManager,\n imgSelectionService,\n http,\n imgCDNService,\n imgEventCardService,\n alertService,\n translateService,\n externalService\n );\n }\n\n ngOnInit(): void {\n this.isUploadSection = this.tabDisplayed === 'img-upload';\n }\n\n onToggleImgSelected() {\n this.toggleImgSelected.next();\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter, AfterViewInit } from '@angular/core';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { Observable, forkJoin } from 'rxjs';\nimport { ImgManagerService } from '../../services/img-manager.service';\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\n\n@Component({\n selector: 'img-editor',\n templateUrl: './img-editor.component.html',\n animations: [\n easeInOut\n ]\n})\nexport class ImgEditorComponent implements OnInit {\n\n @Input()\n stateDisplayed;\n @Input()\n imgToEdit: ImgPictureDTO;\n\n @Output() editClosed = new EventEmitter();\n\n isLoading: boolean = false;\n isImgModified: boolean = false;\n isNameModified: boolean = false;\n currentCroppedImage: string = ''; // Img modified return in base64 by the cropper\n private previousName: string;\n\n msgFailSave: string = 'ImgManager.ImgEditor.msgFailSave';\n msgFailLoad: string = 'ImgManager.ImgEditor.msgFailLoad';\n msgSuccessEdit: string = \"Les modifications de l'image ont bien été enregistrées.\"\n\n constructor(\n private imgManagerService: ImgManagerService,\n ) { }\n\n ngOnInit(): void {\n this.previousName = this.imgToEdit.display_name;\n }\n\n onSave() {\n if (this.isLoading) {\n return;\n }\n this.isLoading = true;\n\n if (!this.isImgModified && !this.isNameModified) {\n this.isLoading = false;\n this.onEditClosed();\n }\n\n const obsReplaceImg: Observable<any> = this.imgManagerService.replaceImg(this.currentCroppedImage, this.imgToEdit.id_file);\n const obsChangeImgName: Observable<any> = this.imgManagerService.changeImgName(this.imgToEdit.display_name, this.imgToEdit.id_file);\n\n if(this.isImgModified && this.isNameModified) {\n this.ranameAndReplaceImg(obsChangeImgName, obsReplaceImg);\n return;\n }\n\n if(this.isImgModified){\n obsReplaceImg.subscribe(data => {\n this.isLoading = false;\n this.onEditClosed(this.msgSuccessEdit);\n },\n error => {\n this.isLoading = false;\n this.currentCroppedImage = '';\n this.onEditClosed(this.msgFailSave);\n });\n return;\n }\n\n if (this.isNameModified) {\n obsChangeImgName.subscribe(data => {\n this.isLoading = false;\n this.previousName = this.imgToEdit.display_name;\n this.onEditClosed(this.msgSuccessEdit);\n },\n error => {\n this.isLoading = false;\n this.imgToEdit.display_name = this.previousName;\n this.onEditClosed(this.msgFailSave);\n });\n }\n this.isNameModified = false;\n }\n\n onEditClosed(msgKey?: string) {\n this.editClosed.emit(msgKey);\n }\n\n onRestartEdit() {\n this.isImgModified = false;\n this.isNameModified = false;\n this.imgToEdit.display_name = this.previousName;\n }\n\n onCancel() {\n this.onEditClosed('');\n }\n\n onImgCropped(imgBase64: string) {\n this.currentCroppedImage = imgBase64;\n }\n\n private ranameAndReplaceImg(obsChangeImgName: Observable<any>, obsReplaceImg: Observable<any>) {\n // Avoid to use forkjoin, because it can create conflict and loos the img\n obsChangeImgName.subscribe(\n res1 => {\n obsReplaceImg.subscribe(\n res2 => {\n this.onEditClosed(this.msgSuccessEdit);\n },\n error => {\n this.onEditClosed(this.msgFailSave);\n }\n );\n },\n error => {\n this.onEditClosed(this.msgFailSave);\n }\n );\n }\n}\n","import {Component, OnInit, Output, EventEmitter, Input, OnDestroy, Inject, Renderer2} from '@angular/core';\nimport { CanvaService } from '../../services/canva.service';\nimport { CanvaButtonApi } from '../../dto/canva.dto';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { ImgEventService } from '../../services/img-event.service';\nimport { ImgManagerService } from '../../services/img-manager.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WiziBlockMediaDto } from '../../dto/wizi-block-media.dto';\nimport { Subscription } from 'rxjs';\nimport { ImgSelectionService } from '../../services/img-selection.service';\nimport { AlertService } from '../../services/alert.service';\nimport { stateDisplayed } from '../../dto/export-dtos.api';\nimport { CanvaCreateDesign } from '../../dto/canva-create-design.dto';\n\n@Component({\n selector: 'canva-btn',\n templateUrl: './canva-btn.component.html'\n})\nexport class CanvaBtnComponent implements OnInit, OnDestroy {\n\n @Input() stateDisplayed: stateDisplayed;\n\n @Output() showImgUploaded = new EventEmitter();\n\n canvaApi: CanvaButtonApi;\n canvaLogoRouteAssets: string;\n imgLoading = false;\n\n availableFormat = {\n 'ImgManager.CanvaBtn.smallSquare' : {\n 'width' : 500,\n 'height' : 500\n },\n 'ImgManager.CanvaBtn.mediumSquare' : {\n 'width' : 1000,\n 'height' : 1000\n },\n 'ImgManager.CanvaBtn.bigSquare' : {\n 'width' : 2500,\n 'height' : 2500\n }\n }\n\n openDropDownMenu: boolean = false;\n\n expectedHeight: number;\n expectedWidth: number;\n subs: Subscription[] = [];\n\n uploadingImg = 'ImgManager.CanvaBtn.uploadingImg';\n successUploadPhoto = 'ImgManager.CanvaBtn.successImport';\n errorUploadCanvaImg = 'ImgManager.CanvaBtn.errorUploadCanvaImg';\n errorRenameCanvaImg = 'ImgManager.CanvaBtn.errorRenameCanvaImg';\n\n constructor(\n private canvaService: CanvaService,\n private imgManager: ImgManagerService,\n private wzImgEventService: ImgEventService,\n private translateService: TranslateService,\n private alertService: AlertService,\n private renderer: Renderer2\n ) { }\n\n ngOnInit(): void {\n this.canvaLogoRouteAssets = this.canvaService.getCanvaLogo();\n this.listenCanvaExpectedSize();\n }\n\n listenCanvaExpectedSize() {\n // Subcribe to askImg from wizi-block\n const subExpectedImgSizesChange =\n this.canvaService.bindEventExepectedImgSizeChange().subscribe( (mediaDTO: WiziBlockMediaDto) => {\n if (mediaDTO) {\n this.expectedWidth = parseInt(mediaDTO.image_width, 10);\n this.expectedHeight = parseInt(mediaDTO.image_height, 10);\n } else {\n this.expectedWidth = undefined;\n this.expectedHeight = undefined;\n }\n });\n this.subs.push(subExpectedImgSizesChange);\n }\n\n onOpenCanva(width: number, height: number) {\n if (this.imgLoading) {\n return;\n }\n const subCanvaApi =\n this.canvaService.getCanvaApi().subscribe((api: CanvaButtonApi) => {\n this.canvaApi = api;\n this.addOverflowBody();\n this.createDesign(width, height);\n });\n this.subs.push(subCanvaApi);\n }\n\n private createDesign(width: number, height: number) {\n const createDesign: CanvaCreateDesign = {\n type: 'EtsyShopIcon',\n dimensions : {\n units: 'px',\n width: width ? width : undefined,\n height: height ? height : undefined,\n },\n publishLabel: this.translateService.instant('ImgManager.CanvaBtn.publish'),\n };\n this.canvaApi.createDesign({\n design: createDesign,\n onDesignPublish: ({ exportUrl, designTitle }) => this.designPublished(exportUrl, designTitle),\n onDesignClose: () => {\n this.removeOverflowBody();\n }\n\n });\n }\n\n private designPublished(exportUrl: string, designTitle: string) {\n this.alertService.openAlert(this.uploadingImg);\n this.imgLoading = true;\n\n const subUploadImg =\n this.imgManager.uploadFileByUrl(exportUrl, designTitle).subscribe(\n (img: ImgPictureDTO) => {\n this.imgLoading = false;\n this.removeOverflowBody();\n\n this.wzImgEventService.emitImgAdded(img.id_file);\n this.alertService.openAlert(this.successUploadPhoto);\n },\n error => {\n this.imgLoading = false;\n this.removeOverflowBody();\n\n if (error.error.code === 406 && error.error.message) {\n this.alertService.openAlertWithBackendRespons(this.errorUploadCanvaImg, error.error.message)\n } else {\n this.alertService.openAlert(this.errorUploadCanvaImg);\n }\n }\n );\n\n this.subs.push(subUploadImg);\n\n }\n\n private addOverflowBody() {\n this.renderer.addClass(document.body, 'ovh-canva');\n }\n\n private removeOverflowBody() {\n this.renderer.removeClass(document.body, 'ovh-canva');\n }\n\n ngOnDestroy() {\n this.subs.forEach(sub => sub.unsubscribe());\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ImgSelectionService } from '../../services/img-selection.service';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport {CdkDragDrop} from '@angular/cdk/drag-drop';\nimport { tabDisplayed } from '../../dto/export-dtos.api';\n\n\n@Component({\n selector: 'img-selection',\n templateUrl: './img-selection.component.html'\n})\nexport class ImgSelectionComponent implements OnInit {\n\n @Input() tabDisplayed: tabDisplayed;\n @Output() imgManagerClosed = new EventEmitter();\n\n imgSelectedList: ImgPictureDTO[] = [];\n removingAll: boolean = false;\n cancellingAll: boolean = false;\n importingAll: boolean = false;\n dragStart = false;\n isLoading: boolean = false;\n trashPositionIndex = 0;\n trashPositionLeft = '-5px';\n\n constructor(\n private imgSelectionService: ImgSelectionService\n ) { }\n\n ngOnInit(): void {\n this.getImgSelected();\n this.imgSelectionService.getImgListLoadingEventListner().subscribe(loading => {\n this.isLoading = loading;\n })\n }\n\n init() {\n this.removingAll = false;\n this.cancellingAll = false;\n this.importingAll = false;\n }\n\n getImgSelected() {\n this.imgSelectedList = this.imgSelectionService.getImgSelection();\n }\n\n removeImg(index: number) {\n this.imgSelectionService.removeImgSelectedByIndex(index);\n }\n\n drop(event: CdkDragDrop<string[]>) {\n if (event.previousIndex !== event.currentIndex) {\n this.imgSelectionService.moveImgOrder(event);\n }\n }\n\n removeImgFromSelection(event: CdkDragDrop<string[]>) {\n this.imgSelectionService.removeImgSelectedByIndex(event.previousIndex);\n }\n}\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 { 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 { 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 { 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","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","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, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper';\nimport { insertRemove } from '../../../animations/insertRemove/insert-remove.animation';\nimport { CropperConfigDTO, ImgCropperConfigDTO } from '../../../dto/img-editor-config.dto';\nimport { ImgPictureDTO } from '../../../dto/img-manager.dto';\nimport { ImgCDNService } from '../../../services/config/img-cdn.service';\n\n@Component({\n selector: 'cropper',\n templateUrl: './cropper.component.html',\n animations: [\n insertRemove\n ]\n})\nexport class CropperComponent implements OnInit {\n\n @Input()\n imgToEdit: ImgPictureDTO;\n\n @Input()\n set isImgModified(isImgModified: boolean) {\n this._isImgModified = isImgModified;\n if (!isImgModified) {\n this.restartEdit();\n }\n }\n get isImgModified(): boolean {\n return this._isImgModified;\n }\n private _isImgModified: boolean = false;\n\n @Output()\n isImgModifiedChange = new EventEmitter<boolean>();\n\n @Output()\n editClosed = new EventEmitter();\n\n @Output()\n currentCroppedImageChange = new EventEmitter<string>();\n\n msgFailLoad: string = 'ImgManager.ImgEditor.msgFailLoad';\n\n\n isNameModified: boolean = false;\n isCropperReady: boolean = false; // Use to not display the crop validation btn, after the img is loaded or changed\n currentCroppedImage: string = ''; // Img modified return in base64\n isCropped: boolean = false;\n isLoading: boolean = false;\n isImgCropped: boolean = false;\n isImgCroppedInitilized: boolean = false;\n\n // Image Cropper properties\n imgType: string;\n imgRoute: string;\n imageChangedEvent: any = '';\n croppedImage: any = '';\n canvasRotation = 0;\n rotation = 0;\n scale = 1;\n showCropper = false;\n containWithinAspectRatio = false;\n transform: ImageTransform = {};\n\n defaultAspectRatio: number;\n\n // dropdown list\n resolutionConfig:ImgCropperConfigDTO[] = [\n {\n label: 'ImgManager.ImgEditor.config.origin',\n config: {\n maintainAspectRatio: true\n },\n },\n {\n label: 'ImgManager.ImgEditor.config.free',\n config: {\n maintainAspectRatio: false\n },\n active: true\n },\n {\n label: 'ImgManager.ImgEditor.config.square',\n config: {\n maintainAspectRatio: true,\n aspectRatio: 1 / 1\n }\n },\n {\n label: 'ImgManager.ImgEditor.config.Portrait',\n config: {\n maintainAspectRatio: true,\n aspectRatio: 3 / 4\n }\n },\n {\n label: 'ImgManager.ImgEditor.config.landscape',\n config: {\n maintainAspectRatio: true,\n aspectRatio: 5 / 3\n }\n }\n ];\n\n rotationConfig:ImgCropperConfigDTO[] = [\n {\n label: 'ImgManager.ImgEditor.config.schedule',\n icon: \"fal fa-redo-alt\",\n method: \"rotateRight\",\n active: true\n },\n {\n label: 'ImgManager.ImgEditor.config.AntiSchedule',\n icon: \"fal fa-undo-alt\",\n method: \"rotateLeft\"\n },\n {\n label: 'ImgManager.ImgEditor.config.flipVert',\n icon: \"fal fa-sort-alt\",\n method: \"flipVertical\"\n },\n {\n label: 'ImgManager.ImgEditor.config.flipHoriz',\n icon: \"fal fa-exchange-alt\",\n method: \"flipHorizontal\"\n }\n ];\n\n zoomConfig:ImgCropperConfigDTO[] = [\n {\n label: 'ImgManager.ImgEditor.config.zoom',\n icon: \"fal fa-search-plus\",\n method: \"zoomIn\",\n active: true\n },\n {\n label: 'ImgManager.ImgEditor.config.dezoom',\n icon: \"fal fa-search-minus\",\n method: \"zoomOut\"\n }\n ];\n\n // Img cropper variables\n imgCropperConfig:CropperConfigDTO = {\n maintainAspectRatio: false,\n aspectRatio: undefined\n }\n\n constructor(\n private imgCDNService: ImgCDNService\n ) { }\n\n ngOnInit(): void {\n this.init();\n }\n\n init() {\n this.imgRoute = this.getRAWImgRoute();\n this.imgType = this.getImgType();\n this.croppedImage = null;\n this.setDefautAspectRatio();\n }\n\n getRAWImgRoute(){\n return this.imgCDNService.getUrlImg('raw') + this.imgToEdit.file_name;\n }\n\n getImgType() {\n return this.imgToEdit.file_name ? this.imgToEdit.file_name.split('.').pop() : undefined;\n }\n\n setDefautAspectRatio() {\n const height = parseInt(this.imgToEdit.raw_height);\n const width = parseInt(this.imgToEdit.raw_width);\n this.defaultAspectRatio = height / width;\n this.resolutionConfig[0].config.aspectRatio = this.defaultAspectRatio;\n this.imgCropperConfig.aspectRatio = this.defaultAspectRatio;\n }\n\n onEditClosed(msgKey?: string) {\n this.editClosed.emit(msgKey);\n }\n\n onRestart() {\n this.isImgModifiedChange.emit(false);\n }\n\n restartEdit() {\n this.init();\n this.resetConfCropper();\n }\n\n onImgModified() {\n this.isImgModified = true;\n this.isImgModifiedChange.emit(true);\n }\n\n ////// Img cropper methods ////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n /* Cropper output events */\n\n fileChangeEvent(event: any): void {\n this.imageChangedEvent = event;\n }\n\n imageCropped(event: ImageCroppedEvent) {\n this.detectImgCropperChange();\n\n this.currentCroppedImage = event.base64;\n this.currentCroppedImageChange.emit(this.currentCroppedImage);\n }\n\n imageLoaded() {\n this.showCropper = true;\n }\n\n cropperReady() {\n this.isCropperReady = true;\n }\n\n loadImageFailed() {\n this.onEditClosed(this.msgFailLoad);\n }\n\n /* Resize functions */\n\n changeResolutionSize(index: number) {\n this.setActiveItem(this.resolutionConfig, index);\n const config = this.resolutionConfig[index].config;\n this.setCropperProperties(config);\n }\n\n confirmCrop() {\n this.imgRoute = null;\n this.croppedImage = this.currentCroppedImage;\n this.isImgCropped = false;\n this.isImgCroppedInitilized = false;\n this.resetConfCropper();\n this.onImgModified();\n }\n\n resetConfCropper() {\n this.scale = 1;\n this.rotation = 0;\n this.canvasRotation = 0;\n this.transform = {};\n }\n\n private setActiveItem(array:any[], index: number) {\n // Set active-item class for the dropdown\n array.forEach((item, indexItem) => {\n item.active = indexItem === index ? true : false;\n });\n }\n\n private setCropperProperties(config: any) {\n for (const property in config) {\n this.imgCropperConfig[property] = config[property];\n }\n }\n\n private detectImgCropperChange() {\n this.isImgCropped = this.isImgCroppedInitilized;\n this.isImgCroppedInitilized = true;\n }\n\n /* Rotations functions */\n\n rotateLeft() {\n this.canvasRotation--;\n this.flipAfterRotate();\n this.onImgModified();\n }\n\n rotateRight() {\n this.canvasRotation++;\n this.flipAfterRotate();\n this.onImgModified();\n }\n\n flipHorizontal() {\n this.transform = {\n ...this.transform,\n flipH: !this.transform.flipH\n };\n this.onImgModified();\n }\n\n flipVertical() {\n this.transform = {\n ...this.transform,\n flipV: !this.transform.flipV\n };\n this.onImgModified();\n }\n\n private flipAfterRotate() {\n const flippedH = this.transform.flipH;\n const flippedV = this.transform.flipV;\n this.transform = {\n ...this.transform,\n flipH: flippedV,\n flipV: flippedH\n };\n }\n\n /* Zoom functions */\n\n zoomOut() {\n this.scale -= this.scale < 0.2? 0 : .1;\n this.transform = {\n ...this.transform,\n scale: this.scale\n };\n this.onImgModified();\n }\n\n zoomIn() {\n this.scale += .1;\n this.transform = {\n ...this.transform,\n scale: this.scale\n };\n this.onImgModified();\n }\n\n applyMethod(method: string) {\n this[method](); // call the method contains in zoomConfig or rotationConfig\n }\n}\n","import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { ImgPictureDTO, ImgPicturesDTO, ParamsImgManagerDTO } from '../../dto/img-manager.dto';\nimport { ImgManagerService } from '../../services/img-manager.service';\nimport { Subscription, Subject} from 'rxjs';\nimport { debounceTime, take } from 'rxjs/operators';\nimport { ImgEventService } from '../../services/img-event.service';\nimport { ImgSelectionService } from '../../services/img-selection.service';\nimport { UserSettingsService } from '../../services/user-settings.service';\nimport { TableFilters } from '../../services/table/filters-table.service';\nimport { PictureNameUpdate } from '../../dto/picture-name-update.dto';\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\nimport { insertRemove } from '../../animations/insertRemove/insert-remove.animation';\nimport { stateDisplayed, tabDisplayed } from '../../dto/export-dtos.api';\nimport { RenamePictureService } from '../../services/rename-picture.service';\nimport { AlertService } from '../../services/alert.service';\n\n@Component({\n selector: 'images-view',\n templateUrl: './images-view.component.html',\n animations: [\n easeInOut,\n insertRemove\n ]\n})\nexport class ImagesViewComponent implements OnInit, AfterViewInit {\n\n @Input() stateDisplayed: stateDisplayed;\n @Input() tabDisplayed: tabDisplayed;\n @Input() fullSize: boolean;\n @Input() maxLengthCardShow: number;\n @Input() listDisplayed = false; // Display format list or mosaic\n @Input() multipleImgMode = false;\n\n // Data filters\n tableFilters: TableFilters = {\n sort: undefined,\n order: undefined,\n searchValue: '',\n totalItems: 0,\n itemsPerPage: 0,\n currentPage: 1\n };\n\n @ViewChild('imgLibContainer') imgLibContainer : ElementRef;\n widthLargeCard: number = 219; // Default value of a card width 199 + margin 20\n widthSmallCard: number = 160; // Default value of a card width 140 + margin 20\n nbMinImgPerLine: number;\n nbMaxImgPerLine: number;\n nbFakeImg: number = 0;\n\n imgFullWidthConfig:any = [\n {\n max: 419,\n largeImgWidthFactor : 1,\n smallImgWidthFactor : 0.5\n },\n {\n max: 499,\n largeImgWidthFactor : 1,\n smallImgWidthFactor : 0.5\n },\n {\n max: 719, // tablet\n largeImgWidthFactor : 0.5,\n smallImgWidthFactor : 0.3333\n },\n {\n max: 1023, // deskop\n largeImgWidthFactor : 0.3333,\n smallImgWidthFactor : 0.2\n },\n {\n max: 1399,\n largeImgWidthFactor : 0.25,\n smallImgWidthFactor : 0.125\n },\n {\n max: 1599,\n largeImgWidthFactor : 0.2,\n smallImgWidthFactor : 0.1111\n },\n {\n largeImgWidthFactor : 0.1666,\n smallImgWidthFactor : 0.1\n }\n ];\n\n imgWidthConfig:any = [\n {\n max: 1024,\n largeImgWidthFactor : 0.25,\n smallImgWidthFactor : 0.125\n },\n {\n max: 1199,\n largeImgWidthFactor : 0.3333,\n smallImgWidthFactor : 0.2\n },\n {\n max: 1299,\n largeImgWidthFactor : 0.3333,\n smallImgWidthFactor : 0.1666\n },\n {\n max: 1399,\n largeImgWidthFactor : 0.25,\n smallImgWidthFactor : 0.1666\n },\n {\n max: 1599,\n largeImgWidthFactor : 0.25,\n smallImgWidthFactor : 0.14\n },\n {\n largeImgWidthFactor : 0.25,\n smallImgWidthFactor : 0.125\n }\n ];\n\n imgSubscribe: Subscription;\n imgRemovedEvent: Subscription;\n imgAddedEvent: Subscription;\n imgSelectionChange: Subscription;\n searchQueryChanged: Subject<string> = new Subject<string>();\n filtersChanged: Subject<void> = new Subject<void>();\n\n picturesList: ImgPictureDTO[] = [];\n savePictureList: ImgPictureDTO[] = [];\n imgSelectedList: ImgPictureDTO[];\n searchedValue: string; // Value from the search bar or img added by canva\n nbImgToDelSelected: number = 0;\n disable: boolean = false; // Use to disable action during server request\n isLoading: boolean = true;\n isTotalRetieved: boolean = false;\n delListImgLoader = false;\n initComponent: boolean = true;\n failLoaded: boolean = false;\n displayPexelsResults: boolean = false; // Use when no img find by name, display img from Pexels\n searchText: string;\n confirmImgSup:boolean = false;\n previousSearchValue: string;\n\n // Paginator Params\n pageIndex: number =0;\n length: number = 0;\n pageSize: number = 30; // Default value\n pageSizeOptions: number[] = [25, 50, 100, 250];\n\n // Api Img manager Params\n params:ParamsImgManagerDTO;\n\n private errorGetAllImg = 'ImgManager.ImgLib.errorGetAllImg';\n private errorGetTotalImg = 'ImgManager.ImgLib.errorGetTotalImg';\n private errorGetImg = 'ImgManager.ImgLib.errorGetCanvaImg';\n private msgNoImgFound = 'ImgManager.ImgLib.noImgFound';\n private errorRemoveImg = 'ImgManager.ImgList.errorRemoveImg';\n\n constructor(\n private imgManager: ImgManagerService,\n private imgEventService: ImgEventService,\n private imgSelectionService: ImgSelectionService,\n private alertService: AlertService,\n private userSettingsService: UserSettingsService,\n private renamePictureService: RenamePictureService) { }\n\n ngOnInit(): void {\n if (this.maxLengthCardShow) {\n this.reducePictureListMaxLength();\n }\n this.setEvents();\n this.imgSelectedList = this.imgSelectionService.getImgSelection();\n }\n\n ngAfterViewInit() {\n this.setNbImgToDisplay();\n this._getImgList();\n if (!this.savePictureList) {\n this.savePictureList = this.picturesList;\n }\n }\n\n reducePictureListMaxLength() {\n this.picturesList.splice(0, this.maxLengthCardShow);\n }\n\n getImgList() {\n this.filtersChanged.next();\n }\n\n /**\n * true : go to list display\n * false : go to mosaic display\n * @param activate\n */\n onSwitchFormatDisplayed(activate: boolean) {\n this.listDisplayed = activate;\n this.userSettingsService.setUserDisplayPreference(activate);\n this.imgEventService.emitlistDisplayedChange(activate);\n }\n\n /**\n * Calcul the number of img selected for masse deletion\n */\n onImgSelected() {\n this.setNbImgToDelSelected();\n }\n\n onShowImgUploaded() {\n this.searchText = null;\n this.searchedValue = null;\n this.getImgList();\n }\n\n onRenamePicture(pictureRenamed: PictureNameUpdate) {\n this.renamePictureService.onRenamePicture(pictureRenamed);\n }\n\n removeListImg() {\n if (this.disable) {\n return;\n }\n this.disable = true;\n this.delListImgLoader = true;\n this.confirmImgSup = false;\n\n // Get the id of the img to remove\n // And add deleted property\n const idImgToRemove: string[] = [];\n this.picturesList.forEach( img => {\n if (img.delSelected) {\n img.deleted = true;\n idImgToRemove.push(img.id_file);\n }\n });\n\n this.imgManager.removeMultipleImg(idImgToRemove).subscribe(\n () => {\n this.getImgList();\n this.imgSelectionService.removeImgSelectionByIds(idImgToRemove);\n },\n error => {\n this.getImgList();\n this.alertService.openAlert(this.errorRemoveImg);\n }\n );\n\n\n }\n\n selectImgChosen() {\n if (this.disable) {\n return;\n }\n const picturesListSelected: ImgPictureDTO[] = [];\n this.picturesList.map(img => {\n if(img.delSelected) {\n img.delSelected =false;\n img.selected = true;\n }\n if (img.selected) {\n picturesListSelected.push(img);\n }\n });\n this.setNbImgToDelSelected();\n this.imgSelectionService.setImgSelection(picturesListSelected);\n }\n\n displayConfirmImgSup(){\n if (this.disable) {\n return;\n }\n this.confirmImgSup = true;\n }\n\n cancelSup() {\n this.confirmImgSup = false;\n }\n\n /**\n * Event emit when a img selected in order to delete\n */\n onPicturesListChange() {\n this.setNbImgToDelSelected();\n }\n\n onFiltersChange() {\n this.getImgList();\n }\n\n /**\n * Set default number of img per page to display at the initialisation\n * This number is between 30 and 50\n */\n private setNbImgToDisplay() {\n const containerWidth = this.imgLibContainer.nativeElement.offsetWidth + 30; // + 30px -> left + right margin\n const scrollWidth = window.innerWidth - document.body.offsetWidth;\n\n const [maxImgWidthFactor, minImgWidthFactor] = this.getImgWidthFactors();\n\n const minImgWidth = Math.floor(containerWidth * minImgWidthFactor);\n const maxImgWidth = Math.ceil((containerWidth + scrollWidth ) * maxImgWidthFactor);\n\n this.nbMaxImgPerLine = Math.floor(containerWidth / minImgWidth);\n this.nbMinImgPerLine = Math.floor( (containerWidth + scrollWidth ) / maxImgWidth);\n\n this.pageSize = this.getTotalImgPerPage();\n }\n\n private getImgWidthFactors(): number[] {\n const screenWidth = window.innerWidth;\n let minWidth:number = 0;\n let imgSizesConfig: number[] = [];\n\n const currentImgWidthConfig = this.fullSize ? this.imgFullWidthConfig : this.imgWidthConfig;\n\n for (const widthConfig of currentImgWidthConfig) {\n if (!widthConfig.max) {\n imgSizesConfig = [widthConfig.largeImgWidthFactor, widthConfig.smallImgWidthFactor];\n break;\n }\n if (minWidth < screenWidth && screenWidth <= widthConfig.max) {\n imgSizesConfig = [widthConfig.largeImgWidthFactor, widthConfig.smallImgWidthFactor];\n break;\n }\n minWidth = widthConfig.max;\n }\n return imgSizesConfig;\n }\n\n private getTotalImgPerPage(): number {\n let total = this.nbMinImgPerLine;\n\n while (total < 30 || total % this.nbMaxImgPerLine !== 0 || total % this.nbMinImgPerLine !== 0) {\n total += this.nbMinImgPerLine;\n }\n return total;\n }\n\n private setParams() {\n this.params = {\n limit: this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage.toString() : this.pageSize.toString(),\n page: this.tableFilters.currentPage.toString()\n };\n if (this.tableFilters.searchValue) {\n this.params[\"display_name:contains\"] = this.tableFilters.searchValue.toString();\n }\n }\n\n private initVariables(loadingSuccess: boolean) {\n this.nbImgToDelSelected = 0;\n this.disable = false;\n this.isLoading = false;\n this.delListImgLoader = false;\n this.initComponent = false;\n this.displayPexelsResults = false;\n this.failLoaded = !loadingSuccess;\n this.nbFakeImg = 0;\n }\n\n private selectImgSelected () {\n if (!this.imgSelectedList || !this.imgSelectedList.length) {\n return;\n }\n\n const idImgSlectedList: string[] = [];\n\n this.imgSelectedList.forEach(img =>\n idImgSlectedList.push(img.id_file)\n );\n\n this.picturesList.forEach(picture => {\n if (idImgSlectedList.indexOf(picture.id_file) !== -1) {\n picture.selected = true;\n }\n });\n }\n\n private displayPexelsLib () {\n this.displayPexelsResults = true;\n this.alertService.openAlert(this.msgNoImgFound);\n }\n\n /**\n * Set a img list in order to fill properly all the line of images displayed in mosaic.\n * Otherwise, the space-between css will do a bad display\n */\n private calculNbImgFake(nbImgDisplayed: number) {\n const nbImgPerLine = this.stateDisplayed === 'small' || this.tabDisplayed === 'img-upload' ? this.nbMaxImgPerLine : this.nbMinImgPerLine;\n\n if (nbImgDisplayed % nbImgPerLine !== 0) {\n this.nbFakeImg = nbImgPerLine - nbImgDisplayed % nbImgPerLine;\n }\n }\n\n private getImg (id_file: string) {\n this.imgManager.getShopImg(id_file).pipe(take(1)).subscribe(\n (picture: ImgPictureDTO) => {\n\n if (!this.imgAlreadyExist(picture.id_file)) {\n // check the img is not already present\n this.picturesList.unshift(picture);\n this.length += 1;\n }\n },\n error => {\n this.alertService.openAlert(this.errorGetImg);\n }\n );\n }\n\n private imgAlreadyExist (id_file: string): boolean {\n for (const img of this.picturesList) {\n if (img.id_file === id_file) {\n return true;\n }\n }\n return false;\n }\n\n private setNbImgToDelSelected () {\n this.nbImgToDelSelected = this.picturesList.filter(img =>\n img.delSelected).length;\n\n if (!this.nbImgToDelSelected) {\n this.confirmImgSup = false;\n }\n }\n\n private setEvents() {\n // Add a timer to retrieve img when the search bar or the paginator are used\n this.searchQueryChanged\n .pipe(debounceTime(400)) // wait 0.5 sec after the last event before emitting last event\n .subscribe(data => {\n this.getImgList();\n });\n\n this.filtersChanged\n .pipe(debounceTime(800)) // wait 0.8 sec after the last event before emitting last event\n .subscribe(data => {\n this._getImgList();\n });\n\n // Reload img when img is/are removed\n this.imgRemovedEvent = this.imgEventService.getImgRemovedEventListner().subscribe(id_file =>{\n this.getImgList();\n });\n\n // Create img from Canva\n this.imgAddedEvent = this.imgEventService.getImgAddedEventListner().subscribe(id_file =>{\n if (id_file && !this.imgAlreadyExist(id_file)) {\n this.getImg(id_file);\n }\n });\n\n this.imgSelectionChange = this.imgSelectionService.getImgSelectionChange().subscribe(imgSelection =>{\n if (this.listDisplayed) {\n return;\n }\n const idFileList = [];\n imgSelection.map(img => idFileList.push(img.id_file));\n for (const picture of this.picturesList) {\n if (idFileList.indexOf(picture.id_file) === -1) {\n picture.selected = false;\n }\n }\n });\n }\n\n private _getImgList() {\n this.isLoading = true;\n this.displayPexelsResults = false;\n this.setParams();\n\n this.refreshTotalImgList();\n\n this.imgManager.getShopImgList(this.params).pipe(take(1)).subscribe((data: ImgPicturesDTO) => {\n this.initVariables(true);\n const nbImgDisplayed = data.data.length;\n this.calculNbImgFake(nbImgDisplayed);\n this.picturesList = data.data;\n this.renamePictureService.setPicturesList(this.picturesList);\n this.selectImgSelected();\n\n this.length = this.isTotalRetieved ? this.length : data.totalRecords;\n this.tableFilters.totalItems = this.isTotalRetieved ? this.tableFilters.totalItems : data.totalRecords;\n this.tableFilters.itemsPerPage = this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage : this.pageSize;\n\n if (this.maxLengthCardShow) {\n this.picturesList = this.picturesList.splice(0, 8);\n }\n\n // Display Pexels if no result\n if (data.totalRecords === 0) {\n this.displayPexelsLib();\n }\n\n },\n error => {\n this.alertService.openAlert(this.errorGetAllImg);\n this.initVariables(false);\n });\n }\n\n private refreshTotalImgList() {\n const searchValue = this.tableFilters.searchValue;\n\n if (this.isTotalRetieved && searchValue === this.previousSearchValue) {\n // Keep current total result\n return;\n }\n\n this.isTotalRetieved = false;\n\n this.imgManager.getShopTotalImgList(this.params).pipe(take(1)).subscribe(\n\n (data: ImgPicturesDTO) => {\n this.previousSearchValue = searchValue;\n this.isTotalRetieved = true;\n this.length = data.totalRecords;\n this.tableFilters.totalItems = data.totalRecords;\n },\n\n error => {\n //this.alertService.openAlert(this.errorGetTotalImg);\n this.initVariables(false);\n });\n }\n\n ngOnDestroy(): void {\n this.searchQueryChanged.unsubscribe();\n this.imgRemovedEvent.unsubscribe();\n this.imgAddedEvent.unsubscribe();\n this.imgSelectionChange.unsubscribe();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { listAnnimation } from '../../../animations/listAnnimation/list.animation';\nimport { PictureNameUpdate, tabDisplayed } from '../../../dto/export-dtos.api';\nimport { AlertService } from '../../../services/alert.service';\nimport { ImgManagerConfigService } from '../../../services/config/external-config.service';\nimport { ImgCDNService } from '../../../services/config/img-cdn.service';\nimport { ImgEventService } from '../../../services/img-event.service';\nimport { ImgManagerService } from '../../../services/img-manager.service';\nimport { ImgSelectionService } from '../../../services/img-selection.service';\nimport { ImagesActionHandler } from '../images-actions-handler';\n\n@Component({\n selector: 'mosaic-view',\n templateUrl: './mosaic-view.component.html',\n animations: [\n listAnnimation\n ]\n})\nexport class MosaicViewComponent extends ImagesActionHandler implements OnInit {\n\n @Input()\n tabDisplayed: tabDisplayed;\n @Input()\n fullSize: boolean;\n @Input()\n nbFakeImg: number= 0;\n\n constructor(\n imgManager: ImgManagerService,\n imgSelectionService: ImgSelectionService,\n http: HttpClient,\n imgCDNService: ImgCDNService,\n imgEventCardService: ImgEventService,\n alertService: AlertService,\n translateService: TranslateService,\n externalService: ImgManagerConfigService\n ) {\n super(\n imgManager,\n imgSelectionService,\n http,\n imgCDNService,\n imgEventCardService,\n alertService,\n translateService,\n externalService\n );\n }\n\n ngOnInit(): void {\n }\n\n onSearchChange(event: string) {\n // Reset table filters\n this.tableFilters.sort = undefined;\n this.tableFilters.order = undefined;\n this.tableFilters.currentPage = 1;\n this.filtersChange.emit(this.tableFilters);\n }\n\n onCardRenamePicture(pictureRenamed: PictureNameUpdate) {\n this.pictureNameChange.next(pictureRenamed);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { listAnnimation } from '../../../animations/listAnnimation/list.animation';\nimport { AlertService } from '../../../services/alert.service';\nimport { ImgManagerConfigService } from '../../../services/config/external-config.service';\nimport { ImgCDNService } from '../../../services/config/img-cdn.service';\nimport { ImgEventService } from '../../../services/img-event.service';\nimport { ImgManagerService } from '../../../services/img-manager.service';\nimport { ImgSelectionService } from '../../../services/img-selection.service';\nimport { ImagesActionHandler } from '../images-actions-handler';\n\n@Component({\n selector: 'table-view',\n templateUrl: './table-view.component.html',\n animations: [\n listAnnimation\n ]\n})\nexport class TableViewComponent extends ImagesActionHandler implements OnInit {\n dataTableName: string = 'imgagesView'; // Name of your table\n\n constructor(\n imgManager: ImgManagerService,\n imgSelectionService: ImgSelectionService,\n http: HttpClient,\n imgCDNService: ImgCDNService,\n imgEventCardService: ImgEventService,\n alertService: AlertService,\n translateService: TranslateService,\n externalService: ImgManagerConfigService\n ) {\n super(\n imgManager,\n imgSelectionService,\n http,\n imgCDNService,\n imgEventCardService,\n alertService,\n translateService,\n externalService\n );\n }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { NwbFilterGroup, NwbFilterRoutingBuilder } from '@wizishop/ng-wizi-bulma';\nimport { Subject } from 'rxjs';\nimport { PaginationFilters } from '../../components/shared/pagination/pagination.component';\n\nexport interface TableFilters extends PaginationFilters {\n sort: string;\n order: boolean;\n searchValue: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FiltersTableService {\n filterGroups = new Map<string, NwbFilterGroup>();\n dataTableFilters: TableFilters = {\n sort: undefined,\n order: undefined,\n searchValue: undefined,\n totalItems: 0,\n itemsPerPage: 0,\n currentPage: 0\n };\n\n private sortSubject: Subject<any> = new Subject<any>();\n\n constructor(private filterRoutingBuilder: NwbFilterRoutingBuilder) {}\n\n getTableFilterGroup(dataTableName: string) {\n if (this.filterGroups.has(dataTableName)) {\n return this.filterGroups.get(dataTableName);\n }\n const filterGroup: NwbFilterGroup = this.filterRoutingBuilder.group(this.dataTableFilters, dataTableName);\n this.filterGroups.set(dataTableName, filterGroup);\n return filterGroup;\n }\n\n /**\n * Use to reset the others sorts of the table\n * @param dataTableName\n * @param sortName\n * @param order\n */\n emitSortChange(dataTableName: string, sortName: string, order: boolean) {\n this.sortSubject.next({ dataTableName, sortName, order });\n }\n\n getSortChangeListner() {\n return this.sortSubject.asObservable();\n }\n\n setPaginationFilters(dataTableName: string, totalItems: number, itemsPerPage: number, currentPage: number) {\n const filterGroup = this.getTableFilterGroup(dataTableName);\n filterGroup.setValues({\n itemsPerPage,\n currentPage\n });\n }\n\n setInitialPaginationFiltersIfNotExist(dataTableName: string, itemsPerPage: number, currentPage: number) {\n const filterGroup = this.getTableFilterGroup(dataTableName);\n filterGroup.setValues({\n itemsPerPage: filterGroup.get('itemsPerPage') ? parseInt(filterGroup.get('itemsPerPage')) : itemsPerPage,\n currentPage: filterGroup.get('currentPage') ? parseInt(filterGroup.get('currentPage')) : currentPage\n });\n }\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","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","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 { 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","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';\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, 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","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 { 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 { 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';\nimport { Inject } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n // The selector has the same name as the tableRaw selector in table.component.html\n selector: '[tableRow]'\n})\nexport class TableRow {\n constructor(private currentCell: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private document) {}\n\n ngAfterViewInit() {\n this.applyCustomStylesOnCell();\n }\n\n applyCustomStylesOnCell() {\n this.renderer.addClass(this.currentCell.nativeElement, 'wz-table__body__line');\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 { 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, 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","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wz-alert',\n styleUrls: ['./alert.component.scss'],\n templateUrl: './alert.component.html'\n})\nexport class AlertComponent implements OnInit {\n @Input() icon = true;\n @Input() warning = false;\n @Input() success = false;\n @Input() iconClass = 'fas fa-info';\n constructor() {}\n ngOnInit(): void {}\n}\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 { 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","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LargeNumberOfPage'\n})\nexport class LargeNumberOfPagePipe implements PipeTransform {\n /**\n * Return an incremental array\n * Display 30 pages, from -15 to +15 of the current page\n * @param totalItems\n * @param itemsPerPage\n */\n transform(totalItems: number, itemsPerPage: number, currentPage: number): number[] {\n if (!(totalItems >= 0 && itemsPerPage >= 0)) {\n throw new Error('totalItems or itemsPerPage missing in ArrayTotalPages pipe.');\n }\n\n let arrayLength: number = 32;\n\n const startAtPage = currentPage <= 15 ? 0: currentPage - 15;\n const totalPage = Math.ceil(totalItems / itemsPerPage);\n\n\n\n const arrayWithPageNumber = Array.apply(null, { length: arrayLength })\n .map(Number.call, Number)\n .map((x: number) => {\n\n const pageIndex:any = {\n display: startAtPage + x + 1,\n value: startAtPage + x + 1\n };\n\n if (x === arrayLength - 2) {\n pageIndex.display = '...';\n }\n if (x === arrayLength - 1) {\n pageIndex.display = totalPage;\n pageIndex.value = totalPage;\n }\n\n return pageIndex;\n });\n\n\n if (startAtPage) {\n arrayWithPageNumber.unshift(\n {\n display: 1,\n value: 1\n },\n {\n display: \"...\",\n value: 2\n }\n );\n }\n\n return arrayWithPageNumber;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { WzImgManagerComponent } from './wz-img-manager.component';\nimport { ImgUploadComponent } from './components/img-upload/img-upload.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ImgTabsComponent } from './components/img-tabs/img-tabs.component';\nimport { CommonModule } from '@angular/common';\nimport { DragDropDirective } from './directives/drag-drop.directive';\nimport { PexelLibComponent } from './components/pexels-lib/pexels-lib.component';\nimport { FormsModule } from '@angular/forms';\nimport { ImgCardComponent } from './components/images-view/mosaic-view/img-card/img-card.component';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { NgScrollbarReachedModule } from 'ngx-scrollbar/reached-event';\nimport { NwbAllModule } from '@wizishop/ng-wizi-bulma';\nimport { UploadListComponent } from './components/upload-list/upload-list.component';\nimport { ImgEditorComponent } from './components/img-editor/img-editor.component';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CanvaBtnComponent } from './components/canva-btn/canva-btn.component';\nimport { ImgSelectionComponent } from './components/img-selection/img-selection.component';;\nimport { LoadingDirective } from './directives/loading.directive';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AutoHideDirective } from './directives/auto-hide.directive';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CopyClipboardDirective } from './directives/copy-to-clipboard.directive';\nimport { DropdownComponent } from './components/shared/dropdown/dropdown.component';\nimport { EditorInfoSectionComponent } from './components/img-editor/info-section/info-section.component';\nimport { CropperComponent } from './components/img-editor/cropper/cropper.component';\nimport { ImagesViewComponent } from './components/images-view/images-view.component';\nimport { MosaicViewComponent } from './components/images-view/mosaic-view/mosaic-view.component';\nimport { TableViewComponent } from './components/images-view/table-view/table-view.component';\nimport { TableComponent } from './components/shared/table/table.component';\nimport { InputSearchComponent } from './components/shared/input-search/input-search.component';\nimport { PaginationComponent } from './components/shared/pagination/pagination.component';\nimport { PagniationArrayTotalPages } from './pipes/pagination/array-total-pages/array-pages.pipe';\nimport { PagniationText } from './pipes/pagination/text/custom-text.pipe';\nimport { PagniationIsLastPage } from './pipes/pagination/total-pages/is-last-page.pipe';\nimport { CheckBoxRow } from './directives/table/checkBoxRow.directive';\nimport { TableColumn } from './directives/table/column.directive';\nimport { TableColumnHeader } from './directives/table/columnHeader.directive';\nimport { TableRow } from './directives/table/raw.directive';\nimport { CheckboxComponent } from './components/shared/checkbox/checkbox.component';\nimport { ImageSrcPipe } from './pipes/images/img-src.pipe';\nimport { AbstractDebounceDirective } from './directives/abstract-debounce/abstract-debounce.directive';\nimport { DebounceKeyupDirective } from './directives/abstract-debounce/debounce-keyup.directive';\nimport { LoaderComponent } from './components/loader/loader.component';\nimport { AlertComponent } from './components/shared/alert/alert.component';\nimport { NumberToArray } from './pipes/number-to-array.pipe';\nimport { PageSelectorComponent } from './components/shared/pagination/page-selector/page-selector.component';\nimport { LargeNumberOfPagePipe } from './pipes/pagination/large-number-of-page/large-number-of-page.pipe';\n\nconst components = [\n WzImgManagerComponent,\n ImgTabsComponent,\n ImgUploadComponent,\n PexelLibComponent,\n ImgCardComponent,\n UploadListComponent,\n ImgEditorComponent,\n EditorInfoSectionComponent,\n CanvaBtnComponent,\n ImgSelectionComponent,\n LoaderComponent,\n DropdownComponent,\n CropperComponent,\n ImagesViewComponent,\n MosaicViewComponent,\n TableViewComponent,\n TableComponent,\n InputSearchComponent,\n PaginationComponent,\n CheckboxComponent,\n AlertComponent,\n PageSelectorComponent,\n];\n\nconst directives = [\n DragDropDirective,\n LoadingDirective,\n AutoHideDirective,\n CopyClipboardDirective,\n TableColumn,\n CheckBoxRow,\n TableColumnHeader,\n TableRow,\n AbstractDebounceDirective,\n DebounceKeyupDirective,\n];\n\nconst pipes = [\n PagniationArrayTotalPages,\n PagniationIsLastPage,\n PagniationText,\n ImageSrcPipe,\n NumberToArray,\n LargeNumberOfPagePipe\n];\n\n@NgModule({\n declarations: [\n ...components,\n ...directives,\n ...pipes\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n NgScrollbarModule,\n NgScrollbarReachedModule,\n NwbAllModule,\n ImageCropperModule,\n CdkTableModule,\n DragDropModule,\n TranslateModule],\n providers: [],\n exports: [\n WzImgManagerComponent]\n})\nexport class WzImgManagerModule { }\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","export class ImgCDNConfigDTO {\n url_raw_image = '';\n url_100_image = '';\n url_200_image = '';\n url_400_image = '';\n url_800_image = '';\n}","/*\n * Public API Surface of wz-img-manager\n */\n\nexport { WzImgManagerModule } from './lib/wz-img-manager.module';\nexport { WzImgManagerComponent } from './lib/wz-img-manager.component';\nexport { ImgSelectionService } from './lib/services/img-selection.service';\nexport { ImgManagerService } from './lib/services/img-manager.service';\nexport { RenamePictureService } from './lib/services/rename-picture.service';\nexport { CanvaService } from './lib/services/canva.service';\nexport * from './lib/dto/export-dtos.api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {easeInOut as ɵi} from './lib/animations/easeInOut/ease-in-out.animation';\nexport {insertRemove as ɵw} from './lib/animations/insertRemove/insert-remove.animation';\nexport {listAnnimation as ɵk} from './lib/animations/listAnnimation/list.animation';\nexport {CanvaBtnComponent as ɵr} from './lib/components/canva-btn/canva-btn.component';\nexport {ImagesActionHandler as ɵn} from './lib/components/images-view/images-actions-handler';\nexport {ImagesViewComponent as ɵx} from './lib/components/images-view/images-view.component';\nexport {ImgCardComponent as ɵm} from './lib/components/images-view/mosaic-view/img-card/img-card.component';\nexport {MosaicViewComponent as ɵy} from './lib/components/images-view/mosaic-view/mosaic-view.component';\nexport {TableViewComponent as ɵz} from './lib/components/images-view/table-view/table-view.component';\nexport {CropperComponent as ɵv} from './lib/components/img-editor/cropper/cropper.component';\nexport {ImgEditorComponent as ɵp} from './lib/components/img-editor/img-editor.component';\nexport {EditorInfoSectionComponent as ɵq} from './lib/components/img-editor/info-section/info-section.component';\nexport {ImgSelectionComponent as ɵs} from './lib/components/img-selection/img-selection.component';\nexport {ImgTabsComponent as ɵf} from './lib/components/img-tabs/img-tabs.component';\nexport {ImgUploadComponent as ɵh} from './lib/components/img-upload/img-upload.component';\nexport {LoaderComponent as ɵt} from './lib/components/loader/loader.component';\nexport {PexelLibComponent as ɵj} from './lib/components/pexels-lib/pexels-lib.component';\nexport {AlertComponent as ɵbf} from './lib/components/shared/alert/alert.component';\nexport {CheckboxComponent as ɵbe} from './lib/components/shared/checkbox/checkbox.component';\nexport {DropdownComponent as ɵu} from './lib/components/shared/dropdown/dropdown.component';\nexport {InputSearchComponent as ɵbc} from './lib/components/shared/input-search/input-search.component';\nexport {PageSelectorComponent as ɵbg} from './lib/components/shared/pagination/page-selector/page-selector.component';\nexport {PaginationComponent as ɵbd} from './lib/components/shared/pagination/pagination.component';\nexport {TableComponent as ɵba} from './lib/components/shared/table/table.component';\nexport {UploadListComponent as ɵo} from './lib/components/upload-list/upload-list.component';\nexport {AbstractDebounceDirective as ɵbp} from './lib/directives/abstract-debounce/abstract-debounce.directive';\nexport {DebounceKeyupDirective as ɵbq} from './lib/directives/abstract-debounce/debounce-keyup.directive';\nexport {AutoHideDirective as ɵbj} from './lib/directives/auto-hide.directive';\nexport {CopyClipboardDirective as ɵbk} from './lib/directives/copy-to-clipboard.directive';\nexport {DragDropDirective as ɵbh} from './lib/directives/drag-drop.directive';\nexport {LoadingDirective as ɵbi} from './lib/directives/loading.directive';\nexport {CheckBoxRow as ɵbm} from './lib/directives/table/checkBoxRow.directive';\nexport {TableColumn as ɵbl} from './lib/directives/table/column.directive';\nexport {TableColumnHeader as ɵbn} from './lib/directives/table/columnHeader.directive';\nexport {TableRow as ɵbo} from './lib/directives/table/raw.directive';\nexport {ImageSrcPipe as ɵbu} from './lib/pipes/images/img-src.pipe';\nexport {NumberToArray as ɵbv} from './lib/pipes/number-to-array.pipe';\nexport {PagniationArrayTotalPages as ɵbr} from './lib/pipes/pagination/array-total-pages/array-pages.pipe';\nexport {LargeNumberOfPagePipe as ɵbw} from './lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe';\nexport {PagniationText as ɵbt} from './lib/pipes/pagination/text/custom-text.pipe';\nexport {PagniationIsLastPage as ɵbs} from './lib/pipes/pagination/total-pages/is-last-page.pipe';\nexport {AlertService as ɵg} from './lib/services/alert.service';\nexport {ImgManagerConfigService as ɵa} from './lib/services/config/external-config.service';\nexport {ImgCDNService as ɵb} from './lib/services/config/img-cdn.service';\nexport {DomService as ɵe} from './lib/services/dom.service';\nexport {ImgEventService as ɵd} from './lib/services/img-event.service';\nexport {PexelsService as ɵl} from './lib/services/pexels.service';\nexport {FiltersTableService as ɵbb} from './lib/services/table/filters-table.service';\nexport {UserSettingsService as ɵc} from './lib/services/user-settings.service';"],"names":["uuid"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wizishop-img-manager.js","sources":["ng://@wizishop/img-manager/lib/services/img-selection.service.ts","ng://@wizishop/img-manager/lib/dto/config/external/external-config.dto.ts","ng://@wizishop/img-manager/lib/services/img-manager.service.ts","ng://@wizishop/img-manager/lib/services/config/img-cdn.service.ts","ng://@wizishop/img-manager/lib/services/config/external-config.service.ts","ng://@wizishop/img-manager/lib/services/user-settings.service.ts","ng://@wizishop/img-manager/lib/services/canva.service.ts","ng://@wizishop/img-manager/lib/services/img-event.service.ts","ng://@wizishop/img-manager/lib/services/dom.service.ts","ng://@wizishop/img-manager/lib/wz-img-manager.component.ts","ng://@wizishop/img-manager/lib/animations/easeInOut/ease-in-out.animation.ts","ng://@wizishop/img-manager/lib/services/alert.service.ts","ng://@wizishop/img-manager/lib/components/img-upload/img-upload.component.ts","ng://@wizishop/img-manager/lib/services/rename-picture.service.ts","ng://@wizishop/img-manager/lib/components/upload-list/upload-list.component.ts","ng://@wizishop/img-manager/lib/components/img-tabs/img-tabs.component.ts","ng://@wizishop/img-manager/lib/directives/drag-drop.directive.ts","ng://@wizishop/img-manager/lib/services/pexels.service.ts","ng://@wizishop/img-manager/lib/animations/listAnnimation/list.animation.ts","ng://@wizishop/img-manager/lib/components/pexels-lib/pexels-lib.component.ts","ng://@wizishop/img-manager/lib/components/images-view/images-actions-handler.ts","ng://@wizishop/img-manager/lib/components/images-view/mosaic-view/img-card/img-card.component.ts","ng://@wizishop/img-manager/lib/components/img-editor/img-editor.component.ts","ng://@wizishop/img-manager/lib/components/canva-btn/canva-btn.component.ts","ng://@wizishop/img-manager/lib/components/img-selection/img-selection.component.ts","ng://@wizishop/img-manager/lib/directives/loading.directive.ts","ng://@wizishop/img-manager/lib/directives/auto-hide.directive.ts","ng://@wizishop/img-manager/lib/directives/copy-to-clipboard.directive.ts","ng://@wizishop/img-manager/lib/components/shared/dropdown/dropdown.component.ts","ng://@wizishop/img-manager/lib/components/img-editor/info-section/info-section.component.ts","ng://@wizishop/img-manager/lib/animations/insertRemove/insert-remove.animation.ts","ng://@wizishop/img-manager/lib/components/img-editor/cropper/cropper.component.ts","ng://@wizishop/img-manager/lib/components/images-view/images-view.component.ts","ng://@wizishop/img-manager/lib/components/images-view/mosaic-view/mosaic-view.component.ts","ng://@wizishop/img-manager/lib/components/images-view/table-view/table-view.component.ts","ng://@wizishop/img-manager/lib/services/table/filters-table.service.ts","ng://@wizishop/img-manager/lib/components/shared/table/table.component.ts","ng://@wizishop/img-manager/lib/components/shared/input-search/input-search.component.ts","ng://@wizishop/img-manager/lib/pipes/pagination/total-pages/is-last-page.pipe.ts","ng://@wizishop/img-manager/lib/components/shared/pagination/pagination.component.ts","ng://@wizishop/img-manager/lib/pipes/pagination/array-total-pages/array-pages.pipe.ts","ng://@wizishop/img-manager/lib/pipes/pagination/text/custom-text.pipe.ts","ng://@wizishop/img-manager/lib/components/shared/checkbox/checkbox.component.ts","ng://@wizishop/img-manager/lib/directives/table/checkBoxRow.directive.ts","ng://@wizishop/img-manager/lib/directives/table/column.directive.ts","ng://@wizishop/img-manager/lib/directives/table/columnHeader.directive.ts","ng://@wizishop/img-manager/lib/directives/table/raw.directive.ts","ng://@wizishop/img-manager/lib/pipes/images/img-src.pipe.ts","ng://@wizishop/img-manager/lib/directives/abstract-debounce/abstract-debounce.directive.ts","ng://@wizishop/img-manager/lib/directives/abstract-debounce/debounce-keyup.directive.ts","ng://@wizishop/img-manager/lib/components/loader/loader.component.ts","ng://@wizishop/img-manager/lib/components/shared/alert/alert.component.ts","ng://@wizishop/img-manager/lib/pipes/number-to-array.pipe.ts","ng://@wizishop/img-manager/lib/components/shared/pagination/page-selector/page-selector.component.ts","ng://@wizishop/img-manager/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.ts","ng://@wizishop/img-manager/lib/wz-img-manager.module.ts","ng://@wizishop/img-manager/lib/dto/canva.dto.ts","ng://@wizishop/img-manager/lib/dto/config/apis/api.dto.ts","ng://@wizishop/img-manager/lib/dto/config/image-cdn/image-cdn-config.dto.ts","ng://@wizishop/img-manager/public-api.ts","ng://@wizishop/img-manager/wizishop-img-manager.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ImgPictureDTO } from '../dto/img-manager.dto';\nimport { Subscriber, Observable, ReplaySubject } from 'rxjs';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImgSelectionService {\n\n imgSelectedList: ImgPictureDTO[] = [];\n multipleImgMode: boolean = false;\n private imgSelectionSubscriber: Subscriber<any>[] = [];\n private imgListLoading: ReplaySubject<boolean> = new ReplaySubject<boolean>();\n\n constructor() {}\n\n getImgSelection() {\n return this.imgSelectedList;\n }\n\n // Use in img manager webelement, when the product img selection is retrieved\n setImgSelection(imgSelectedList: ImgPictureDTO[]) {\n this.imgSelectedList.length = 0;// Remove all the elements from the array and keep the reference\n\n if (imgSelectedList && imgSelectedList.length) {\n imgSelectedList.forEach(elem => this.imgSelectedList.push(elem));\n }\n this.emitImgSelectionChange();\n }\n\n addImgSelected(picture : ImgPictureDTO) {\n if (this.multipleImgMode) {\n this.imgSelectedList.push(picture);\n } else {\n this.imgSelectedList = [picture];\n }\n this.emitImgSelectionChange();\n }\n\n getImgSelectionChange() {\n const obsImgSelection = new Observable<ImgPictureDTO[]>(subscriber => {\n this.imgSelectionSubscriber.push(subscriber);\n });\n return obsImgSelection;\n }\n\n emitImgSelectionChange() {\n this.imgSelectionSubscriber.map(obs =>\n obs.next(JSON.parse(JSON.stringify(this.imgSelectedList)))\n );\n }\n\n removeImgSelectedByIndex(index: number) {\n this.imgSelectedList.splice(index, 1);\n this.emitImgSelectionChange();\n }\n\n removeImgSelectedById(id_file: string) {\n if (!this.multipleImgMode) {\n this.imgSelectedList = [];\n return;\n }\n let index = 0;\n for (const img of this.imgSelectedList) {\n if(img.id_file === id_file) {\n this.removeImgSelectedByIndex(index);\n break;\n }\n index++;\n }\n }\n\n removeImgSelectionByIds(id_file_list: string[]) {\n if (!this.multipleImgMode) {\n this.imgSelectedList = [];\n return;\n }\n\n for (let index = this.imgSelectedList.length -1; index > -1 ; index--) {\n const id_file = this.imgSelectedList[index].id_file;\n if (id_file_list.indexOf(id_file) !== -1) {\n this.removeImgSelectedByIndex(index);\n }\n }\n }\n\n removeAllImgSelected() {\n this.imgSelectedList.length = 0;\n this.emitImgSelectionChange();\n // Remove all the elements from the array and keep the reference\n }\n\n setMultipleImgMode(activated: boolean) {\n this.multipleImgMode = activated;\n }\n\n initImgSelectedList(imgSelectedList: ImgPictureDTO[]) {\n // Retrieve the imgSelectedList from parameter\n if (imgSelectedList) {\n this.imgSelectedList = imgSelectedList;\n return;\n }\n // Remove all elements from imgSelectedList\n if (this.imgSelectedList && this.imgSelectedList.length) {\n this.imgSelectedList.splice(0, this.imgSelectedList.length);\n return;\n }\n this.imgSelectedList = [];\n }\n\n /**\n * Use to display the loader on img selection list\n * @param loading\n */\n emitImgListLoading(loading: boolean){\n this.imgListLoading.next(loading);\n }\n\n /**\n * Use to display the loader on img selection list\n * @param loading\n */\n getImgListLoadingEventListner(){\n return this.imgListLoading.asObservable();\n }\n\n /**\n * Use angular cdk function\n * Called by img selection component\n * @param event\n */\n moveImgOrder(event: CdkDragDrop<string[]>) {\n const fromIndex = event.previousIndex;\n const toIndex = event.currentIndex;\n this.imgSelectedList.splice(toIndex, 0, this.imgSelectedList.splice(fromIndex, 1)[0]);\n this.emitImgSelectionChange();\n }\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}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from \"rxjs\";\nimport { ParamsImgManagerDTO } from '../dto/img-manager.dto';\nimport { ImgManagerDisplayConfig } from '../dto/export-dtos.api';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImgManagerService {\n\n imgManagerRoute: string;\n shopToken: string;\n\n params = new HttpParams().set(\"limit\",\"20\").set(\"page\",\"1\");\n\n // Display the img selection\n private pageFicheProductConfig: ImgManagerDisplayConfig = {\n stateDisplayed: 'closed',\n multipleImgMode: true,\n showImgManagerModule: true,\n showSelection: true,\n displayBtn: true,\n pageficheProduct: true\n }\n\n private wiziblockConfig: ImgManagerDisplayConfig = {\n stateDisplayed: 'closed',\n multipleImgMode: false,\n showImgManagerModule: true,\n showSelection: false,\n displayBtn: false\n }\n\n private simpleWithButtonOpenerConfig: ImgManagerDisplayConfig = {\n stateDisplayed: 'closed',\n multipleImgMode: false,\n showImgManagerModule: true,\n showSelection: false,\n displayBtn: true\n }\n\n private fullWindowConfig: ImgManagerDisplayConfig = {\n stateDisplayed: 'window',\n multipleImgMode: false,\n showImgManagerModule: true,\n showSelection: false,\n displayBtn: false\n }\n\n constructor(private http: HttpClient) { }\n\n setApiConfig(img_manager_route: string, shop_token: string) {\n this.imgManagerRoute = img_manager_route;\n this.shopToken = shop_token;\n }\n\n private getOptionsHeaders(params?: ParamsImgManagerDTO) {\n const header = { headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.shopToken\n })\n };\n if (params) {\n this.getParams(params);\n header['params'] = this.params\n }\n return header;\n }\n\n getShopImgList(params?: ParamsImgManagerDTO): Observable<any> {\n return this.http.get(`${this.imgManagerRoute}/images`, this.getOptionsHeaders(params));\n }\n\n getShopTotalImgList(params?: ParamsImgManagerDTO): Observable<any> {\n return this.http.get(`${this.imgManagerRoute}/total/image`, this.getOptionsHeaders(params));\n }\n\n getShopImg(idFile: string): Observable<any> {\n return this.http.get(`${this.imgManagerRoute}/images/${idFile}`, this.getOptionsHeaders());\n }\n\n getParams(params: ParamsImgManagerDTO){\n this.params = new HttpParams();\n this.params = this.params.set('id_file:sort', 'desc');\n for (const param in params) {\n this.params = this.params.set(param, params[param]);\n }\n }\n\n uploadFile(formData: FormData) {\n return this.http.post(`${this.imgManagerRoute}/images/template`, formData, this.getOptionsHeaders());\n }\n\n uploadFileByUrl(url: string, fileName?: string) {\n const body = {\n url,\n fileName\n };\n return this.http.post(`${this.imgManagerRoute}/images/template`, { url, fileName }, this.getOptionsHeaders());\n }\n\n replaceImg(imageBase64: string, id_file: string) {\n const body = {\n imageBase64,\n type : \"RAW\"\n }\n return this.http.put(`${this.imgManagerRoute}/images/${id_file}/replace`, body, this.getOptionsHeaders());\n }\n\n changeImgName(fileName: string, id_file: string) {\n return this.http.put(`${this.imgManagerRoute}/images/${id_file}?file_name=${fileName}`, null, this.getOptionsHeaders());\n }\n\n removeImg(id_file: string) {\n return this.http.delete(`${this.imgManagerRoute}/images/${id_file}`, this.getOptionsHeaders());\n }\n\n removeMultipleImg(id_array: string[]){\n return this.http.post(`${this.imgManagerRoute}/images-multiple-delete`, { id_array }, this.getOptionsHeaders());\n }\n\n getImgManagerDisplayConfig(displayName: \"window\" | \"wizi-block\" | \"fiche-product\" | \"simple-with-button\") {\n switch (displayName) {\n case \"window\":\n return this.fullWindowConfig;\n\n case \"wizi-block\":\n return this.wiziblockConfig;\n\n case \"fiche-product\":\n return this.pageFicheProductConfig;\n\n case \"simple-with-button\":\n return this.simpleWithButtonOpenerConfig;\n\n default:\n return;\n }\n }\n\n getAllImgManagerDisplayConfig(): ImgManagerDisplayConfig[] {\n return [\n this.fullWindowConfig,\n this.wiziblockConfig,\n this.pageFicheProductConfig,\n this.simpleWithButtonOpenerConfig,\n ]\n }\n}","import { Injectable } from '@angular/core';\nimport { ImgCDNConfigDTO } from '../../dto/config/image-cdn/image-cdn-config.dto';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImgCDNService {\n\n imgCDNConfig: ImgCDNConfigDTO = null;\n\n constructor() {}\n\n setImgCDNConfig(imgCDNConfig: ImgCDNConfigDTO) {\n this.imgCDNConfig = imgCDNConfig;\n }\n\n getUrlImg(size: '100'|'200'|'400'|'800'|'raw'|string) {\n const urlProperty = Object.keys(this.imgCDNConfig)\n .filter(url =>\n new RegExp(size, 'i').test(url)\n )[0];\n\n return this.imgCDNConfig[urlProperty];\n }\n\n getAllSize(): string[] {\n return Object.keys(this.imgCDNConfig)\n .map(elem =>\n elem.match(/_(\\w+)_/)[1]\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ImgManagerConfigDto } from '../../dto/config/external/external-config.dto';\nimport { ImgManagerService } from '../img-manager.service';\nimport { ImgCDNService } from './img-cdn.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImgManagerConfigService {\n\n externalConfig: ImgManagerConfigDto;\n\n constructor(\n private imgManagerService: ImgManagerService,\n private imgCDNService: ImgCDNService\n ) {}\n\n /**\n * Set imgManagerService and imgCDNService\n * Canva and Pexel service retrieve the externalConfig at their initialization\n * @param externalConfig\n */\n setExternalConfig(externalConfig: ImgManagerConfigDto) {\n this.externalConfig = externalConfig;\n this.imgManagerService.setApiConfig(externalConfig.api.image_manager_route, externalConfig.api.shop_token);\n this.imgCDNService.setImgCDNConfig(externalConfig.imgCDNConfig);\n }\n\n getCanvaApiURL() {\n return this.externalConfig.api.canva_url;\n }\n\n getCanvaApiToken() {\n return this.externalConfig.api.canva_token;\n }\n\n getRouteAssets() {\n return this.externalConfig.api.assets_route;\n }\n\n getPexelsApiURL() {\n return this.externalConfig.api.pexels_route;\n }\n\n getPexelsApiToken() {\n return this.externalConfig.api.pexels_token;\n }\n\n getShopCategory() {\n return this.externalConfig.api.shop_category;\n }\n}","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserSettingsService {\n\n private userdisplayPreference = 'WzImgManagerListDisplayed';\n\n constructor() {\n }\n\n /**\n * true : display list\n * false : display mosaic\n * @param value\n */\n setUserDisplayPreference(value: boolean) {\n localStorage.setItem(this.userdisplayPreference, '' + value);\n }\n\n getUserDisplayPreference(): boolean {\n const value = localStorage.getItem(this.userdisplayPreference);\n return value == 'true';\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subscriber, BehaviorSubject } from 'rxjs';\nimport { CanvaButtonApi } from '../dto/canva.dto';\nimport { ImgManagerConfigService } from './config/external-config.service';\nimport { WiziBlockMediaDto } from '../dto/wizi-block-media.dto';\n\ndeclare let Canva : {\n DesignButton : {\n initialize: (opts: { apiKey: string }) => Promise<CanvaButtonApi>;\n }\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CanvaService {\n\n canvaApi; // Object use to manage the canva api\n canvaApiURL: string;\n canvaApiKey: string;\n canvaLogoRoute: string;\n\n private bindExpectedImgSizeEvent: BehaviorSubject<WiziBlockMediaDto> = new BehaviorSubject<WiziBlockMediaDto>(null);\n private bindExpectedSizeDone = this.bindExpectedImgSizeEvent.asObservable();\n\n constructor(\n private externalConfigService: ImgManagerConfigService\n ) { }\n\n private setCanvaApiConfig() {\n this.canvaApiURL = this.externalConfigService.getCanvaApiURL();\n this.canvaApiKey = this.externalConfigService.getCanvaApiToken();\n }\n\n getCanvaLogo() {\n return this.externalConfigService.getRouteAssets() + \"canva/icon_canva.svg\";\n }\n\n bindEventExepectedImgSizeChange() {\n return this.bindExpectedSizeDone;\n }\n\n expectedImgSizesChange (mediaDTO: WiziBlockMediaDto){\n this.bindExpectedImgSizeEvent.next(mediaDTO);\n }\n\n getCanvaApi():Observable<CanvaButtonApi> {\n if (!this.canvaApiURL || !this.canvaApiKey) {\n this.setCanvaApiConfig();\n }\n return new Observable(observer => {\n this.loadCanva().subscribe({\n complete: () => {\n if(this.canvaApi && Canva.DesignButton) {\n observer.next(this.canvaApi);\n observer.complete();\n } else {\n this.initializeCanva(observer);\n }\n }\n })\n });\n }\n\n private initializeCanva(observer: Subscriber<CanvaButtonApi>) {\n if (Canva.DesignButton) {\n Canva.DesignButton.initialize({\n apiKey: this.canvaApiKey\n\n }).then((canvaApi) => {\n this.canvaApi = canvaApi;\n observer.next(this.canvaApi);\n observer.complete();\n });\n }\n }\n\n private loadCanva():Observable<null> {\n return new Observable(observer => {\n if(this.canvaApi) {\n observer.complete();\n }else{\n this.loadCanvaScript(observer);\n }\n });\n }\n\n private loadCanvaScript(observer: Subscriber<null>) {\n\n const node = document.createElement('script');\n node.src = this.canvaApiURL;\n node.type = 'text/javascript';\n node.async = false;\n node.charset = 'utf-8';\n node.onload = () => {\n observer.complete();\n }\n document.getElementsByTagName('head')[0].appendChild(node);\n }\n}\n","import {Injectable} from '@angular/core';\nimport { Subject } from \"rxjs\";\nimport { ImgPictureDTO } from '../dto/img-manager.dto';\n\n@Injectable({\n providedIn: 'root'\n })\nexport class ImgEventService {\n\n constructor() { }\n\n private imgToEditEvent: Subject<ImgPictureDTO> = new Subject<ImgPictureDTO>();\n private imgRemoved: Subject<string> = new Subject<string>();\n private imgAdded: Subject<string> = new Subject<string>();\n private listDisplayedChange: Subject<boolean> = new Subject<boolean>();\n\n emitImgRemoved(id_file: string){\n this.imgRemoved.next(id_file);\n }\n\n getImgRemovedEventListner(){\n return this.imgRemoved.asObservable();\n }\n\n emitImgToEdit(imgToEdit: ImgPictureDTO){\n this.imgToEditEvent.next(imgToEdit);\n }\n\n getImgToEditEventListner(){\n return this.imgToEditEvent.asObservable();\n }\n\n emitImgAdded(id_file: string){\n this.imgAdded.next(id_file);\n }\n\n getImgAddedEventListner(){\n return this.imgAdded.asObservable();\n }\n\n emitlistDisplayedChange(value: boolean){\n this.listDisplayedChange.next(value);\n }\n\n getlistDisplayedChange(){\n return this.listDisplayedChange.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DomService {\n private documentEventSource = new Subject();\n private documentEventDone = this.documentEventSource.asObservable();\n\n private documentScrollSource = new Subject();\n private documentScrollDone = this.documentScrollSource.asObservable();\n\n documentEvent() {\n return this.documentEventDone;\n }\n\n setDocumentEventListener() {\n document.body.addEventListener('click', event => {\n this.documentEventSource.next(event.target);\n });\n }\n\n documentScroll() {\n return this.documentScrollDone;\n }\n\n setScrollEventListener() {\n window.onscroll = () => {\n this.documentScrollSource.next(window);\n };\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ImgSelectionService } from './services/img-selection.service';\nimport { ImgManagerConfigDto } from './dto/config/external/external-config.dto';\nimport { ImgManagerConfigService } from './services/config/external-config.service';\nimport { Subscription } from 'rxjs';\nimport { UserSettingsService } from './services/user-settings.service';\nimport { CanvaService } from './services/canva.service';\nimport { ImgEventService } from './services/img-event.service';\nimport { DomService } from './services/dom.service';\nimport { HostListener } from '@angular/core';\nimport { stateDisplayed } from '../public-api';\n\n@Component({\n selector: 'wz-img-manager',\n templateUrl: './wz-img-manager.component.html'\n})\nexport class WzImgManagerComponent implements OnInit {\n @Input() stateDisplayed: stateDisplayed;\n @Input() showSelection: boolean = false;\n @Input() externalConfig: ImgManagerConfigDto;\n @Output() imgManagerClosed = new EventEmitter();\n private _multipleImgMode: boolean = false;\n\n @Input() set multipleImgMode(activate: boolean) {\n this._multipleImgMode = activate;\n this.imgSelectionService.setMultipleImgMode(this._multipleImgMode);\n }\n\n get multipleImgMode(): boolean {\n return this._multipleImgMode;\n }\n\n _showImgManagerModule: boolean = false;\n @Input() set showImgManagerModule(activate: boolean) {\n this._showImgManagerModule = activate;\n if (activate) {\n this.displaySmall();\n }\n }\n\n get showImgManagerModule(): boolean {\n return this._multipleImgMode;\n }\n\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n if (this.stateDisplayed && this.stateDisplayed !== 'window') {\n this.onClose();\n }\n }\n\n close: boolean = false\n selectImgEvent: Subscription;\n listDisplayed: boolean = false;\n listDisplayedEvent: Subscription;\n hideTab: boolean = false;\n // Save the defaut overflow apply to html tag, when the module is full open\n private overflowHTML: string;\n private bodyPadding: number;\n\n constructor(\n private imgSelectionService: ImgSelectionService,\n private externalConfigService: ImgManagerConfigService,\n private userSettingsService: UserSettingsService,\n private canvaService: CanvaService,\n private imgEventService: ImgEventService,\n private domService: DomService\n ) {}\n\n ngOnInit(): void {\n this.externalConfigService.setExternalConfig(this.externalConfig);\n this.imgSelectionService.setMultipleImgMode(this._multipleImgMode);\n this.imgSelectionService.initImgSelectedList(null);\n this.selectImgEvent = this.imgSelectionService.getImgSelectionChange().subscribe(imgSlection =>{\n\n if (imgSlection && imgSlection.length && this.checkCloseImgManager()) {\n // Close the img manager\n this.onClose();\n }\n });\n this.checkUserDisplayPreference();\n // Use when the img manager is full open or open in page. This display the user preference display, mosaic or list.\n this.listDisplayedEvent = this.imgEventService.getlistDisplayedChange().subscribe(value => this.listDisplayed = value);\n // Register dom service to listen on all event on the body to avoid having multiple instance of the same thing every where\n this.domService.setDocumentEventListener();\n }\n\n checkUserDisplayPreference() {\n if (this.stateDisplayed === 'window' || this.stateDisplayed === 'full') {\n this.listDisplayed = this.userSettingsService.getUserDisplayPreference();\n }\n }\n\n setCurrentTab(event) {\n if (event === 'img-edition') {\n this.hideTab = true;\n return;\n }\n this.hideTab = false;\n }\n\n displaySmall() {\n if (this.stateDisplayed !== 'window') {\n setTimeout(() => {\n this.stateDisplayed = 'small';\n this.addBodyBottomPaddingForModule();\n }, 10);\n }\n }\n\n openSmall() {\n this.stateDisplayed = 'small';\n this.setBodyMainScroll();\n this.listDisplayed = false;\n }\n\n openFull() {\n this.stateDisplayed = 'full';\n this.checkUserDisplayPreference();\n this.hideBodyMainScroll();\n }\n\n onClose() {\n this.stateDisplayed = 'closed';\n this.hideTab = false;\n this.setBodyMainScroll();\n this.removeBodyBottomPaddingForModule();\n // Wait the end of the closing annimation\n setTimeout(() => {\n this.imgManagerClosed.emit();\n }, 250);\n }\n\n onImgManagerClosed() {\n this.onClose();\n }\n\n /**\n * Close the img manager after one img is selected, if not in multiple img to select\n */\n checkCloseImgManager() {\n return !this.multipleImgMode && this.stateDisplayed !== 'window' ? true : false;\n }\n\n hideBodyMainScroll() {\n const html = document.getElementsByTagName('html')[0];\n\n if (!this.overflowHTML) {\n this.overflowHTML = html.style.overflowY;\n }\n\n html.style.overflowY = \"hidden\";\n }\n\n setBodyMainScroll() {\n const html = document.getElementsByTagName('html')[0];\n html.style.overflowY = this.overflowHTML ? this.overflowHTML : \"scroll\";\n }\n\n addBodyBottomPaddingForModule() {\n const body = document.getElementsByTagName('body')[0];\n this.bodyPadding = this.bodyPadding ? parseInt(body.style.paddingBottom) : 0;\n body.style.paddingBottom = this.bodyPadding + 300 + 'px';\n }\n\n removeBodyBottomPaddingForModule() {\n if (typeof this.bodyPadding !== 'undefined') {\n const body = document.getElementsByTagName('body')[0];\n body.style.paddingBottom = this.bodyPadding + 'px';\n this.bodyPadding = 0;\n }\n }\n\n ngOnDestroy() {\n this.selectImgEvent.unsubscribe();\n this.canvaService.expectedImgSizesChange(null);\n this.listDisplayedEvent.unsubscribe();\n }\n}\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 } from '@angular/core';\nimport { NwbAlertConfig, NwbAlertComponent } from '@wizishop/ng-wizi-bulma';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NwbAlertService } from '@wizishop/ng-wizi-bulma';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AlertService {\n\n actionMsg = 'ImgManager.alert.action';\n\n alertConfig: NwbAlertConfig = {\n message: '',\n duration: 5000\n }\n\n private alertRefComponent: NwbAlertComponent;\n\n constructor(\n private nwbAlertService: NwbAlertService,\n private translateService: TranslateService\n ) { }\n\n openAlert(msgKey: string) {\n this.closePreviousAlert();\n this.translateService.get(msgKey).subscribe(trans => {\n this.alertConfig.message = trans;\n this.setAlertColor(msgKey);\n\n this.alertRefComponent = this.nwbAlertService.open(this.alertConfig);\n this.alertRefComponent.afterClosed().subscribe();\n });\n }\n\n openAlertWithBackendRespons(msgKey: string, msgBackend: string) {\n this.translateService.get(msgKey).subscribe(trans => {\n this.alertConfig.message = trans;\n this.alertConfig.message += '<br/>' + JSON.parse(msgBackend).message;\n\n this.closePreviousAlert();\n this.alertRefComponent = this.nwbAlertService.open(this.alertConfig);\n this.alertRefComponent.afterClosed().subscribe();\n });\n }\n\n private closePreviousAlert() {\n if (this.alertRefComponent) {\n this.alertRefComponent.dismiss();\n }\n }\n\n private setAlertColor(msgKey: string) {\n const isErrorMsg: boolean = /error/i.test(msgKey);\n this.alertConfig.color = isErrorMsg ? 'is-danger' : 'is-success';\n }\n}\n","import {Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef} from '@angular/core';\nimport { ImgManagerService } from '../../services/img-manager.service';\nimport { Observable, forkJoin } from 'rxjs';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\nimport {ImgManagerConfigService} from \"../../services/config/external-config.service\";\nimport { stateDisplayed } from '../../dto/export-dtos.api';\nimport { AlertService } from '../../services/alert.service';\n\n@Component({\n selector: 'img-upload',\n templateUrl: './img-upload.component.html',\n animations: [\n easeInOut\n ]\n})\nexport class ImgUploadComponent implements OnInit {\n\n files: any = [];\n isLoading: boolean = false;\n assetsIcon: string;\n @Input() stateDisplayed: stateDisplayed;\n @Output() imgUploaded = new EventEmitter();\n\n @ViewChild('dragAndDropBox') dragAndDropBox: ElementRef;\n\n loadingText = 'ImgManager.ImgUpload.loading';\n errorUploadingImg = 'ImgManager.ImgUpload.errorUploadingImg';\n errorNotImg = 'ImgManager.ImgUpload.errorNotImg';\n\n constructor(\n private imgManager: ImgManagerService,\n private alertService: AlertService,\n private externalConfigService: ImgManagerConfigService\n ) {}\n\n ngOnInit(): void {\n this.assetsIcon = this.getAssets();\n }\n\n filesChangeByClick(event: any) {\n this.uploadFile(event.target.files);\n }\n\n getAssets() {\n return this.externalConfigService.getRouteAssets() + \"img/icon_picture.svg\";\n }\n\n filesChangeByDragAndDrop(filesList: File[]) {\n this.removeDragAndDropStyle();\n this.uploadFile(filesList);\n }\n\n uploadFile(files: File[]) {\n if (files && !files.length) {\n return;\n }\n\n this.isLoading =true;\n const imgToUploadList: Observable<any>[] = [];\n for (const file of files) {\n\n const formData = new FormData();\n formData.append('image', file, file.name);\n\n if(!this.isFileImage(file.type)) {\n this.alertService.openAlert(this.errorNotImg);\n this.isLoading =false;\n continue;\n }\n imgToUploadList.push(this.imgManager.uploadFile(formData));\n }\n\n forkJoin(imgToUploadList).subscribe(\n (img: ImgPictureDTO[]) => {\n this.onImgUpload(img),\n this.isLoading =false;\n },\n error => {\n this.alertService.openAlert(this.errorUploadingImg);\n this.isLoading =false;\n }\n )\n }\n\n /**\n * Send the img uploaded to the tabs components,\n * Then the tabs components add the img to upload list by calling the method onImgUploaded of the upload-list component\n * @param img\n */\n onImgUpload(img: ImgPictureDTO[]) {\n this.imgUploaded.emit(img);\n }\n\n isFileImage(fileType: string) {\n return fileType.split('/')[0] === 'image';\n }\n\n /**\n * Remove the style of the drag and drop box\n * After an img is droped, the box is still grey\n */\n removeDragAndDropStyle() {\n this.dragAndDropBox.nativeElement.style = '';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { ImgManagerService } from './img-manager.service';\nimport { AlertService } from './alert.service';\nimport { ImgPictureDTO } from '../dto/img-manager.dto';\nimport { PictureNameUpdate } from '../dto/picture-name-update.dto';\n\n@Injectable({providedIn: 'root'})\nexport class RenamePictureService {\n\n private picturesList: ImgPictureDTO[] = [];\n private pictureNameChanged: Subject<PictureNameUpdate> = new Subject<PictureNameUpdate>();\n\n private errorRenameImg = 'ImgManager.ImgList.errorRenameImg';\n private msgSavingImgName = 'ImgManager.ImgLib.savingImgName';\n private msgImgNameSaved = 'ImgManager.ImgLib.imgNameSaved';\n\n constructor(\n private imgManager: ImgManagerService,\n private alertService: AlertService,\n )\n {\n this.setEvents();\n }\n\n setPicturesList(picturesList: ImgPictureDTO[]) {\n this.picturesList = picturesList;\n }\n\n onRenamePicture(pictureRenamed: PictureNameUpdate) {\n this.pictureNameChanged.next(pictureRenamed);\n }\n\n private setEvents() {\n this.pictureNameChanged\n .pipe(debounceTime(800)) // wait 0.8 sec after the last event before emitting last event\n .subscribe((pictureNameUpdate:PictureNameUpdate) => {\n this.renamePicture(pictureNameUpdate);\n });\n }\n\n private renamePicture(pictureNameUpdate: PictureNameUpdate) {\n const picture: ImgPictureDTO = this.getPictureById(pictureNameUpdate.id);\n if (!picture) {\n this.alertService.openAlert(this.errorRenameImg);\n return;\n }\n this.alertService.openAlert(this.msgSavingImgName);\n this.imgManager\n .changeImgName(picture.display_name, picture.id_file)\n .subscribe(\n (data: ImgPictureDTO) => {\n picture.display_name = data.display_name;\n this.alertService.openAlert(this.msgImgNameSaved);\n },\n (error) => {\n picture.display_name = pictureNameUpdate.previousName;\n this.alertService.openAlert(this.errorRenameImg);\n }\n );\n }\n\n private getPictureById(id_file: string): ImgPictureDTO {\n if (!this.picturesList) {\n return;\n }\n\n for (const picture of this.picturesList) {\n if(picture.id_file === id_file) {\n return picture;\n }\n }\n\n return null;\n }\n\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { Subscription } from 'rxjs';\nimport { ImgSelectionService } from '../../services/img-selection.service';\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\nimport { PictureNameUpdate, stateDisplayed, tabDisplayed } from '../../dto/export-dtos.api';\nimport { RenamePictureService } from '../../services/rename-picture.service';\n\n@Component({\n selector: 'upload-list',\n templateUrl: './upload-list.component.html',\n animations: [\n easeInOut\n ]\n})\nexport class UploadListComponent implements OnInit {\n\n picturesList: ImgPictureDTO[] = [];\n imgSelectionChange: Subscription;\n selectImgEvent: Subscription;\n\n @Input() stateDisplayed: stateDisplayed;\n @Input() tabDisplayed: tabDisplayed;\n @Input() multipleImgMode: boolean = false;\n\n constructor(\n private imgSelectionService: ImgSelectionService,\n private renamePictureService: RenamePictureService\n ) { }\n\n ngOnInit(): void {\n this.setEvents();\n }\n\n onImgUploaded(img: ImgPictureDTO[]) {\n img.forEach(picture =>\n this.picturesList.push(picture)\n );\n this.renamePictureService.setPicturesList(this.picturesList);\n }\n\n onToggleSelectImg(index: number) {\n if (this.stateDisplayed === 'window') {\n return;\n }\n if (!this.picturesList[index].selected) {\n this.imgSelectionService.addImgSelected(this.picturesList[index]);\n this.picturesList[index].selected = true;\n } else {\n this.imgSelectionService.removeImgSelectedById(this.picturesList[index].id_file);\n this.picturesList[index].selected = false;\n }\n }\n\n onRenamePicture(pictureRenamed: PictureNameUpdate) {\n this.renamePictureService.onRenamePicture(pictureRenamed);\n }\n\n private setEvents() {\n this.imgSelectionChange = this.imgSelectionService.getImgSelectionChange().subscribe(imgSelection =>{\n const idFileList = [];\n imgSelection.map(img => idFileList.push(img.id_file));\n for (const picture of this.picturesList) {\n if (idFileList.indexOf(picture.id_file) === -1) {\n picture.selected = false;\n }\n }\n });\n }\n ngOnDestroy(): void {\n this.imgSelectionChange.unsubscribe();\n }\n}\n","import {Component, Input, OnInit, ViewChild, Output, EventEmitter} from '@angular/core';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { UploadListComponent } from '../upload-list/upload-list.component';\nimport { ImgEventService } from '../../services/img-event.service';\nimport { NwbSnackbarConfig } from '@wizishop/ng-wizi-bulma';\nimport { stateDisplayed } from '../../dto/export-dtos.api';\nimport { AlertService } from '../../services/alert.service';\n\n@Component({\n selector: 'img-tabs',\n templateUrl: './img-tabs.component.html'\n})\nexport class ImgTabsComponent implements OnInit {\n\n @Input()\n multipleImgMode: boolean = false;\n @Input()\n stateDisplayed: stateDisplayed;\n @Input()\n listDisplayed = false;\n\n @Output()\n imgManagerClosed = new EventEmitter();\n\n @Output()\n currentTab = new EventEmitter();\n\n tabActive = 'images-view';\n tabs: string[] = ['img-upload', 'images-view', 'pexels-lib', 'img-edition'];\n editTab = false;\n\n imgToEdit: ImgPictureDTO;\n\n imgUpload = false;\n\n @ViewChild( 'imgUploadedImg' )\n imgUploadedComponent: UploadListComponent ;\n\n snackBarNewVersionConfig: NwbSnackbarConfig = {\n message: '',\n duration: 3000\n };\n\n constructor(\n private imgEventEditService: ImgEventService,\n private alertService: AlertService,\n ) { }\n\n ngOnInit(): void {\n this.imgEventEditService.getImgToEditEventListner().subscribe(imgToEdit =>{\n this.tabActive = this.tabs[3];\n this.imgToEdit = imgToEdit;\n this.editTab = true;\n this.currentTab.emit(this.tabs[3]);\n });\n }\n\n toggleTabs(value: string) {\n this.imgUpload = false;\n this.editTab = false;\n this.tabActive = value;\n }\n\n onImgUploaded(img: ImgPictureDTO[]) {\n this.imgUpload = true;\n this.imgUploadedComponent.onImgUploaded(img);\n }\n\n onEditClosed(msgKey: string) {\n this.editTab = false;\n this.toggleTabs(this.tabs[1]);\n if (msgKey) {\n this.alertService.openAlert(msgKey);\n }\n this.currentTab.emit('close');\n }\n\n onShowImgUploaded() {\n this.tabActive = this.tabs[1];\n }\n\n onImgManagerClosed() {\n this.imgManagerClosed.emit();\n }\n}\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 {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport { map} from \"rxjs/operators\";\nimport {Observable} from \"rxjs\";\nimport {WzImgLibDto} from \"../dto/pexels-img.dto\";\nimport { ImgManagerConfigService } from './config/external-config.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PexelsService {\n apiBaseUrl;\n apiKey;\n lang: string;\n languages = {'fr': 'fr-FR', 'en': 'en-US', 'it': 'it-IT', 'es': 'es-ES'};\n\n constructor(\n private http: HttpClient,\n private externalConfigService: ImgManagerConfigService,\n private translateService: TranslateService\n ) {\n this.setLang(this.translateService.currentLang);\n this.translateService.onLangChange.subscribe(langData => {\n this.setLang(langData.lang);\n })\n }\n\n setLang(lang: string) {\n this.lang = this.languages[lang] ? this.languages[lang] : 'fr-FR';\n }\n\n searchOnPexels(toSearch: string, perPage: number, page: number): Observable<WzImgLibDto> {\n if(!this.apiBaseUrl || this.apiKey) {\n this.apiBaseUrl = this.externalConfigService.getPexelsApiURL();\n this.apiKey = this.externalConfigService.getPexelsApiToken();\n }\n\n const httpOptions = {\n headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.apiKey\n })\n };\n\n let request;\n\n // If search value is not empty or blank\n if (toSearch && !/^\\s*$/.test(toSearch)) {\n request = `/search?query=${toSearch}&per_page=${perPage}&page=${page}&locale=${this.lang}`;\n\n } else { // Search by category or display Pexels selection\n const shopCategory = this.externalConfigService.getShopCategory();\n\n // Search by shop category\n if (shopCategory && shopCategory !== 'other' && shopCategory !== 'btob') {\n request = `/search?query=${shopCategory}&per_page=${perPage}&page=${page}&locale=en-US`;\n } else { // Display Pexels selection\n request = `/curated?per_page=${perPage}&page=${page}`;\n }\n }\n\n return this.http.get(this.apiBaseUrl + request, httpOptions).pipe(\n map((data: WzImgLibDto) => {\n return data;\n })\n );\n }\n}\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 {AfterViewInit, Component, ElementRef, OnInit, ViewChild, Input, Output, EventEmitter} from '@angular/core';\nimport {PexelsService} from '../../services/pexels.service';\nimport {Subject, Subscription} from 'rxjs';\nimport {WzImgLibDto, PhotosColumns, WzImgLibPhotoDto} from '../../dto/pexels-img.dto';\nimport { ImgManagerService } from '../../services/img-manager.service';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { TranslateService } from '@ngx-translate/core';\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\nimport { listAnnimation } from '../../animations/listAnnimation/list.animation';\nimport { stateDisplayed } from '../../dto/export-dtos.api';\nimport { AlertService } from '../../services/alert.service';\n\n@Component({\n selector: 'pexels-lib',\n templateUrl: './pexels-lib.component.html',\n animations: [\n easeInOut,\n listAnnimation\n ]\n})\nexport class PexelLibComponent implements OnInit, AfterViewInit {\n\n @Input()\n stateDisplayed: stateDisplayed;\n @Input()\n searchValue: string = '';\n /** Pass to true to hide search input */\n @Input()\n disableSearch: boolean = false;\n\n @Output()\n showImgUploaded = new EventEmitter();\n\n perPage = 30;\n searchUpdated = new Subject();\n oldSearchValue: string;\n nbResult = 0;\n wzImgLibDto: WzImgLibDto;\n currentPage = 1;\n isLoading = true;\n initComponent = true;\n photosColumns: PhotosColumns[] = [];\n nbColumuns = 6;\n responsiveColumns = [1250, 1050, 750, 500];\n outerElement = null;\n\n uploadingImg = 'ImgManager.PexelLib.uploadingImg';\n untitled = 'ImgManager.PexelLib.untitled';\n successUploadPhoto = 'ImgManager.PexelLib.successImport';\n errorUploadPhoto = 'ImgManager.PexelLib.errorUploadPhoto';\n errorRetrievePhotos = 'ImgManager.PexelLib.errorRetrievePhotos';\n\n private subs: Subscription[] = [];\n\n @ViewChild('outerElement') set content(control: ElementRef) {\n this.outerElement = control;\n }\n\n constructor(\n private wzImgLibService: PexelsService,\n private imgManager: ImgManagerService,\n private alertService: AlertService,\n private translateService: TranslateService\n ) { }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit() {\n this.oldSearchValue = this.searchValue;\n this.isLoading = false;\n\n this.setNbColumnsToDisplayPhoto();\n this.setPhotosColumns();\n this.search();\n }\n\n setNbColumnsToDisplayPhoto(): void {\n const width = this.outerElement.nativeElement.offsetWidth;\n\n if (this.stateDisplayed !== 'window') {\n this.nbColumuns = 8;\n }\n\n this.responsiveColumns.forEach(value => {\n if (width < value) {\n this.nbColumuns--;\n }\n });\n }\n\n onSearchNameChanged() {\n this.onSearchChange();\n }\n\n onBottomReached() {\n this.scrollHandler();\n }\n\n onSearchChange() {\n this.search();\n }\n\n search() {\n if (this.isLoading) {\n return;\n }\n if (this.searchValue !== this.oldSearchValue) {\n this.resetSearch();\n }\n\n // All the picture are displayed\n if (this.nbResult && this.nbResult <= (this.currentPage - 1) * this.perPage) {\n return;\n }\n\n this.isLoading = true;\n const searchSub = this.wzImgLibService.searchOnPexels(this.searchValue, this.perPage, this.currentPage).subscribe(\n (data: WzImgLibDto) => {\n this.wzImgLibDto = data;\n this.nbResult = this.wzImgLibDto.total_results;\n\n if (this.nbResult) {\n data.photos.forEach(photo => {\n const bestColumnIndex = this.getBestColumn();\n const height = (photo.height / photo.width) * 1000;\n\n this.photosColumns[bestColumnIndex].height += height;\n this.photosColumns[bestColumnIndex].photos.push(photo);\n });\n }\n\n this.isLoading = false;\n this.initComponent = false;\n },\n error => {\n this.isLoading = false;\n this.initComponent = false;\n this.alertService.openAlert(this.errorRetrievePhotos);\n }\n );\n\n this.subs.push(searchSub);\n }\n\n scrollHandler() {\n if (this.isLoading) {\n return;\n }\n const bestColumnIndex = this.getBestColumn();\n const lastPic = this.photosColumns[bestColumnIndex].photos[this.photosColumns[bestColumnIndex].photos.length - 1];\n const lastPhoto = lastPic ? document.querySelector<HTMLImageElement>('img[src=\"' + lastPic.src.medium + '\"]') : null;\n\n if (lastPhoto) {\n if (!this.isLoading) {\n this.currentPage += 1;\n this.search();\n }\n }\n }\n\n setPhotosColumns() {\n for (let indexColumn=0; indexColumn < this.nbColumuns ; indexColumn++) {\n const photosColumn: PhotosColumns = {\n height: 0,\n photos: []\n };\n this.photosColumns.push(photosColumn);\n }\n }\n\n getBestColumn(): number {\n const bestColumn = {\n index: 0,\n height: this.photosColumns[0].height\n };\n this.photosColumns.forEach((photosColumn, index) => {\n if (bestColumn.height > photosColumn.height) {\n bestColumn.index = index;\n bestColumn.height = photosColumn.height;\n }\n });\n return bestColumn.index;\n }\n\n resetSearch() {\n this.oldSearchValue = this.searchValue;\n this.photosColumns = [];\n this.currentPage = 1;\n this.setPhotosColumns();\n }\n\n uploadPhoto(photo: WzImgLibPhotoDto, url: string) {\n photo.uploading = true;\n\n const uploadSub = this.imgManager.uploadFileByUrl(url, this.translateService.instant(this.untitled)).subscribe(\n (img: ImgPictureDTO) => {\n photo.uploading = false;\n photo.uploaded = true;\n this.alertService.openAlert(this.successUploadPhoto);\n },\n error => {\n photo.uploading = false;\n if(error.error.code === 406 && error.error.message) {\n this.alertService.openAlertWithBackendRespons(this.errorUploadPhoto, error.error.message);\n } else {\n this.alertService.openAlert(this.errorUploadPhoto);\n }\n });\n\n // Display img uploading msg\n this.alertService.openAlert(this.uploadingImg);\n this.subs.push(uploadSub);\n }\n\n ngOnDestroy(): void {\n this.subs.forEach(sub => sub.unsubscribe());\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Directive, Input, Output } from \"@angular/core\";\nimport { EventEmitter } from '@angular/core';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Subscription } from \"rxjs\";\nimport { stateDisplayed } from \"../../dto/export-dtos.api\";\nimport { PictureNameUpdate } from \"../../dto/picture-name-update.dto\";\nimport { ImgPictureDTO } from \"../../dto/img-manager.dto\";\nimport { AlertService } from \"../../services/alert.service\";\nimport { ImgManagerConfigService } from \"../../services/config/external-config.service\";\nimport { ImgCDNService } from \"../../services/config/img-cdn.service\";\nimport { ImgEventService } from \"../../services/img-event.service\";\nimport { ImgManagerService } from \"../../services/img-manager.service\";\nimport { ImgSelectionService } from \"../../services/img-selection.service\";\nimport { TableFilters } from \"../../services/table/filters-table.service\";\n\n@Directive()\nexport abstract class ImagesActionHandler {\n @Input()\n picturesList: ImgPictureDTO[] = [];\n @Output()\n picturesListChange: EventEmitter<void> = new EventEmitter();\n\n @Input()\n tableFilters: TableFilters = {\n sort: undefined,\n order: undefined,\n searchValue: '',\n totalItems: 0,\n itemsPerPage: 30,\n currentPage: 1\n };\n @Input()\n displayPexelsResults: boolean = false;\n\n @Input()\n disable: boolean = false;\n @Output()\n disableChange: EventEmitter<boolean> = new EventEmitter();\n\n @Output()\n filtersChange = new EventEmitter();\n @Output()\n pictureNameChange: EventEmitter<PictureNameUpdate> = new EventEmitter();\n\n @Input() isLoading = false;\n\n @Input()\n stateDisplayed: stateDisplayed;\n\n previousName: string; // Use to save the previous picture name, when a user change his name\n fakeImgRoute: string;\n\n private getDataAPISub: Subscription;\n private errorRemoveImg = 'ImgManager.ImgList.errorRemoveImg';\n private errorAlreadyUsedImg = 'ImgManager.ImgList.errorAlreadyUsed';\n\n constructor(\n protected imgManager: ImgManagerService,\n protected imgSelectionService: ImgSelectionService,\n protected http: HttpClient,\n protected imgCDNService: ImgCDNService,\n protected imgEventCardService: ImgEventService,\n protected alertService: AlertService,\n protected translateService: TranslateService,\n protected externalService: ImgManagerConfigService\n ) {\n this.fakeImgRoute = this.externalService.getRouteAssets() + 'img/fake.png';\n }\n\n /** Event emit when the header checkbox is checked */\n onToggleAllCheckBoxRow(event) {\n this.picturesList.forEach(data => {\n data.delSelected = event;\n });\n this._pictureListeChange();\n }\n\n onToggleDelSelection(index: number) {\n if (this.disable) {\n return;\n }\n this.picturesList[index].delSelected = !this.picturesList[index].delSelected;\n this._pictureListeChange();\n }\n\n /** Event emit each time filters change */\n onFiltersChange() {\n this.filtersChange.emit();\n }\n\n onEdit(picture: ImgPictureDTO) {\n this.imgEventCardService.emitImgToEdit(picture);\n }\n\n onToggleSelectImg(index: number) {\n if (this.disable || this.stateDisplayed === 'window') {\n return;\n }\n if (!this.picturesList[index].selected) {\n this.imgSelectionService.addImgSelected(this.picturesList[index]);\n this.picturesList[index].selected = true;\n } else {\n this.imgSelectionService.removeImgSelectedById(this.picturesList[index].id_file);\n this.picturesList[index].selected = false;\n }\n }\n\n onRemoveImg(picture: ImgPictureDTO) {\n picture.deleted = true;\n this.imgManager.removeImg(picture.id_file).subscribe(\n data => {\n this.imgEventCardService.emitImgRemoved(picture.id_file);\n this.imgSelectionService.removeImgSelectedById(picture.id_file);\n },\n error => {\n const msg = error.status === 409 ? this.errorAlreadyUsedImg: this.errorRemoveImg;\n picture.deleted = false;\n this.alertService.openAlert(msg);\n });\n }\n\n onPictureNotLoading(event) {\n event.target.src = this.fakeImgRoute;\n }\n\n onDownloadImg(display_name: string, file_name: string) {\n this.http.get(this.getRAWImgRoute(file_name), { responseType: 'blob' }).subscribe(val => {\n let url = URL.createObjectURL(val);\n this.downloadUrl(url, display_name);\n URL.revokeObjectURL(url);\n });\n }\n\n onNameChange(id_file: string) {\n this.pictureNameChange.emit({id: id_file, previousName: this.previousName});\n }\n\n private getRAWImgRoute(file_name: string){\n return this.imgCDNService.getUrlImg('raw') + file_name;\n }\n\n private _pictureListeChange() {\n this.picturesListChange.emit();\n }\n\n private downloadUrl(url: string, fileName: string) {\n const a: any = document.createElement('a');\n a.href = url;\n a.download = fileName;\n a.click();\n }\n\n ngDestroy() {\n if (this.getDataAPISub) {\n this.getDataAPISub.unsubscribe();\n }\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ImgEventService } from '../../../../services/img-event.service';\nimport { ImgPictureDTO } from '../../../../dto/img-manager.dto';\nimport { HttpClient } from '@angular/common/http';\nimport { ImgManagerService } from '../../../../services/img-manager.service';\nimport { ImgSelectionService } from '../../../../services/img-selection.service';\nimport { ImgCDNService } from '../../../../services/config/img-cdn.service';\nimport { ImgManagerConfigService } from '../../../../services/config/external-config.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ImagesActionHandler } from '../../images-actions-handler';\nimport { easeInOut } from '../../../../animations/easeInOut/ease-in-out.animation'\nimport { tabDisplayed } from '../../../../dto/export-dtos.api';\nimport { AlertService } from '../../../../services/alert.service';\n\n@Component({\n selector: 'img-card',\n templateUrl: './img-card.component.html',\n animations: [\n easeInOut\n ]\n})\nexport class ImgCardComponent extends ImagesActionHandler implements OnInit {\n\n @Input()\n tabDisplayed: tabDisplayed;\n @Input()\n fullSize: boolean;\n @Input()\n picture: ImgPictureDTO;\n @Input()\n index: number;\n focusInput = false;\n\n @Output()\n toggleImgSelected: EventEmitter<void> = new EventEmitter();\n\n isUploadSection: boolean = false;\n activeConfirmDelete = false;\n\n constructor(\n imgManager: ImgManagerService,\n imgSelectionService: ImgSelectionService,\n http: HttpClient,\n imgCDNService: ImgCDNService,\n imgEventCardService: ImgEventService,\n alertService: AlertService,\n translateService: TranslateService,\n externalService: ImgManagerConfigService\n ) {\n super(\n imgManager,\n imgSelectionService,\n http,\n imgCDNService,\n imgEventCardService,\n alertService,\n translateService,\n externalService\n );\n }\n\n ngOnInit(): void {\n this.isUploadSection = this.tabDisplayed === 'img-upload';\n }\n\n onToggleImgSelected() {\n this.toggleImgSelected.next();\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter, AfterViewInit } from '@angular/core';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { Observable, forkJoin } from 'rxjs';\nimport { ImgManagerService } from '../../services/img-manager.service';\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\n\n@Component({\n selector: 'img-editor',\n templateUrl: './img-editor.component.html',\n animations: [\n easeInOut\n ]\n})\nexport class ImgEditorComponent implements OnInit {\n\n @Input()\n stateDisplayed;\n @Input()\n imgToEdit: ImgPictureDTO;\n\n @Output() editClosed = new EventEmitter();\n\n isLoading: boolean = false;\n isImgModified: boolean = false;\n isNameModified: boolean = false;\n currentCroppedImage: string = ''; // Img modified return in base64 by the cropper\n private previousName: string;\n\n msgFailSave: string = 'ImgManager.ImgEditor.msgFailSave';\n msgFailLoad: string = 'ImgManager.ImgEditor.msgFailLoad';\n msgSuccessEdit: string = \"Les modifications de l'image ont bien été enregistrées.\"\n\n constructor(\n private imgManagerService: ImgManagerService,\n ) { }\n\n ngOnInit(): void {\n this.previousName = this.imgToEdit.display_name;\n }\n\n onSave() {\n if (this.isLoading) {\n return;\n }\n this.isLoading = true;\n\n if (!this.isImgModified && !this.isNameModified) {\n this.isLoading = false;\n this.onEditClosed();\n }\n\n const obsReplaceImg: Observable<any> = this.imgManagerService.replaceImg(this.currentCroppedImage, this.imgToEdit.id_file);\n const obsChangeImgName: Observable<any> = this.imgManagerService.changeImgName(this.imgToEdit.display_name, this.imgToEdit.id_file);\n\n if(this.isImgModified && this.isNameModified) {\n this.ranameAndReplaceImg(obsChangeImgName, obsReplaceImg);\n return;\n }\n\n if(this.isImgModified){\n obsReplaceImg.subscribe(data => {\n this.isLoading = false;\n this.onEditClosed(this.msgSuccessEdit);\n },\n error => {\n this.isLoading = false;\n this.currentCroppedImage = '';\n this.onEditClosed(this.msgFailSave);\n });\n return;\n }\n\n if (this.isNameModified) {\n obsChangeImgName.subscribe(data => {\n this.isLoading = false;\n this.previousName = this.imgToEdit.display_name;\n this.onEditClosed(this.msgSuccessEdit);\n },\n error => {\n this.isLoading = false;\n this.imgToEdit.display_name = this.previousName;\n this.onEditClosed(this.msgFailSave);\n });\n }\n this.isNameModified = false;\n }\n\n onEditClosed(msgKey?: string) {\n this.editClosed.emit(msgKey);\n }\n\n onRestartEdit() {\n this.isImgModified = false;\n this.isNameModified = false;\n this.imgToEdit.display_name = this.previousName;\n }\n\n onCancel() {\n this.onEditClosed('');\n }\n\n onImgCropped(imgBase64: string) {\n this.currentCroppedImage = imgBase64;\n }\n\n private ranameAndReplaceImg(obsChangeImgName: Observable<any>, obsReplaceImg: Observable<any>) {\n // Avoid to use forkjoin, because it can create conflict and loos the img\n obsChangeImgName.subscribe(\n res1 => {\n obsReplaceImg.subscribe(\n res2 => {\n this.onEditClosed(this.msgSuccessEdit);\n },\n error => {\n this.onEditClosed(this.msgFailSave);\n }\n );\n },\n error => {\n this.onEditClosed(this.msgFailSave);\n }\n );\n }\n}\n","import {Component, OnInit, Output, EventEmitter, Input, OnDestroy, Inject, Renderer2} from '@angular/core';\nimport { CanvaService } from '../../services/canva.service';\nimport { CanvaButtonApi } from '../../dto/canva.dto';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport { ImgEventService } from '../../services/img-event.service';\nimport { ImgManagerService } from '../../services/img-manager.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WiziBlockMediaDto } from '../../dto/wizi-block-media.dto';\nimport { Subscription } from 'rxjs';\nimport { ImgSelectionService } from '../../services/img-selection.service';\nimport { AlertService } from '../../services/alert.service';\nimport { stateDisplayed } from '../../dto/export-dtos.api';\nimport { CanvaCreateDesign } from '../../dto/canva-create-design.dto';\n\n@Component({\n selector: 'canva-btn',\n templateUrl: './canva-btn.component.html'\n})\nexport class CanvaBtnComponent implements OnInit, OnDestroy {\n\n @Input() stateDisplayed: stateDisplayed;\n\n @Output() showImgUploaded = new EventEmitter();\n\n canvaApi: CanvaButtonApi;\n canvaLogoRouteAssets: string;\n imgLoading = false;\n\n availableFormat = {\n 'ImgManager.CanvaBtn.smallSquare' : {\n 'width' : 500,\n 'height' : 500\n },\n 'ImgManager.CanvaBtn.mediumSquare' : {\n 'width' : 1000,\n 'height' : 1000\n },\n 'ImgManager.CanvaBtn.bigSquare' : {\n 'width' : 2500,\n 'height' : 2500\n }\n }\n\n openDropDownMenu: boolean = false;\n\n expectedHeight: number;\n expectedWidth: number;\n subs: Subscription[] = [];\n\n uploadingImg = 'ImgManager.CanvaBtn.uploadingImg';\n successUploadPhoto = 'ImgManager.CanvaBtn.successImport';\n errorUploadCanvaImg = 'ImgManager.CanvaBtn.errorUploadCanvaImg';\n errorRenameCanvaImg = 'ImgManager.CanvaBtn.errorRenameCanvaImg';\n\n constructor(\n private canvaService: CanvaService,\n private imgManager: ImgManagerService,\n private wzImgEventService: ImgEventService,\n private translateService: TranslateService,\n private alertService: AlertService,\n private renderer: Renderer2\n ) { }\n\n ngOnInit(): void {\n this.canvaLogoRouteAssets = this.canvaService.getCanvaLogo();\n this.listenCanvaExpectedSize();\n }\n\n listenCanvaExpectedSize() {\n // Subcribe to askImg from wizi-block\n const subExpectedImgSizesChange =\n this.canvaService.bindEventExepectedImgSizeChange().subscribe( (mediaDTO: WiziBlockMediaDto) => {\n if (mediaDTO) {\n this.expectedWidth = parseInt(mediaDTO.image_width, 10);\n this.expectedHeight = parseInt(mediaDTO.image_height, 10);\n } else {\n this.expectedWidth = undefined;\n this.expectedHeight = undefined;\n }\n });\n this.subs.push(subExpectedImgSizesChange);\n }\n\n onOpenCanva(width: number, height: number) {\n if (this.imgLoading) {\n return;\n }\n const subCanvaApi =\n this.canvaService.getCanvaApi().subscribe((api: CanvaButtonApi) => {\n this.canvaApi = api;\n this.addOverflowBody();\n this.createDesign(width, height);\n });\n this.subs.push(subCanvaApi);\n }\n\n private createDesign(width: number, height: number) {\n const createDesign: CanvaCreateDesign = {\n type: 'EtsyShopIcon',\n dimensions : {\n units: 'px',\n width: width ? width : undefined,\n height: height ? height : undefined,\n },\n publishLabel: this.translateService.instant('ImgManager.CanvaBtn.publish'),\n };\n this.canvaApi.createDesign({\n design: createDesign,\n onDesignPublish: ({ exportUrl, designTitle }) => this.designPublished(exportUrl, designTitle),\n onDesignClose: () => {\n this.removeOverflowBody();\n }\n\n });\n }\n\n private designPublished(exportUrl: string, designTitle: string) {\n this.alertService.openAlert(this.uploadingImg);\n this.imgLoading = true;\n\n const subUploadImg =\n this.imgManager.uploadFileByUrl(exportUrl, designTitle).subscribe(\n (img: ImgPictureDTO) => {\n this.imgLoading = false;\n this.removeOverflowBody();\n\n this.wzImgEventService.emitImgAdded(img.id_file);\n this.alertService.openAlert(this.successUploadPhoto);\n },\n error => {\n this.imgLoading = false;\n this.removeOverflowBody();\n\n if (error.error.code === 406 && error.error.message) {\n this.alertService.openAlertWithBackendRespons(this.errorUploadCanvaImg, error.error.message)\n } else {\n this.alertService.openAlert(this.errorUploadCanvaImg);\n }\n }\n );\n\n this.subs.push(subUploadImg);\n\n }\n\n private addOverflowBody() {\n this.renderer.addClass(document.body, 'ovh-canva');\n }\n\n private removeOverflowBody() {\n this.renderer.removeClass(document.body, 'ovh-canva');\n }\n\n ngOnDestroy() {\n this.subs.forEach(sub => sub.unsubscribe());\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ImgSelectionService } from '../../services/img-selection.service';\nimport { ImgPictureDTO } from '../../dto/img-manager.dto';\nimport {CdkDragDrop} from '@angular/cdk/drag-drop';\nimport { tabDisplayed } from '../../dto/export-dtos.api';\n\n\n@Component({\n selector: 'img-selection',\n templateUrl: './img-selection.component.html'\n})\nexport class ImgSelectionComponent implements OnInit {\n\n @Input() tabDisplayed: tabDisplayed;\n @Output() imgManagerClosed = new EventEmitter();\n\n imgSelectedList: ImgPictureDTO[] = [];\n removingAll: boolean = false;\n cancellingAll: boolean = false;\n importingAll: boolean = false;\n dragStart = false;\n isLoading: boolean = false;\n trashPositionIndex = 0;\n trashPositionLeft = '-5px';\n\n constructor(\n private imgSelectionService: ImgSelectionService\n ) { }\n\n ngOnInit(): void {\n this.getImgSelected();\n this.imgSelectionService.getImgListLoadingEventListner().subscribe(loading => {\n this.isLoading = loading;\n })\n }\n\n init() {\n this.removingAll = false;\n this.cancellingAll = false;\n this.importingAll = false;\n }\n\n getImgSelected() {\n this.imgSelectedList = this.imgSelectionService.getImgSelection();\n }\n\n removeImg(index: number) {\n this.imgSelectionService.removeImgSelectedByIndex(index);\n }\n\n drop(event: CdkDragDrop<string[]>) {\n if (event.previousIndex !== event.currentIndex) {\n this.imgSelectionService.moveImgOrder(event);\n }\n }\n\n removeImgFromSelection(event: CdkDragDrop<string[]>) {\n this.imgSelectionService.removeImgSelectedByIndex(event.previousIndex);\n }\n}\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 { 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 { 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 { 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","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","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, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper';\nimport { insertRemove } from '../../../animations/insertRemove/insert-remove.animation';\nimport { CropperConfigDTO, ImgCropperConfigDTO } from '../../../dto/img-editor-config.dto';\nimport { ImgPictureDTO } from '../../../dto/img-manager.dto';\nimport { ImgCDNService } from '../../../services/config/img-cdn.service';\n\n@Component({\n selector: 'cropper',\n templateUrl: './cropper.component.html',\n animations: [\n insertRemove\n ]\n})\nexport class CropperComponent implements OnInit {\n\n @Input()\n imgToEdit: ImgPictureDTO;\n\n @Input()\n set isImgModified(isImgModified: boolean) {\n this._isImgModified = isImgModified;\n if (!isImgModified) {\n this.restartEdit();\n }\n }\n get isImgModified(): boolean {\n return this._isImgModified;\n }\n private _isImgModified: boolean = false;\n\n @Output()\n isImgModifiedChange = new EventEmitter<boolean>();\n\n @Output()\n editClosed = new EventEmitter();\n\n @Output()\n currentCroppedImageChange = new EventEmitter<string>();\n\n msgFailLoad: string = 'ImgManager.ImgEditor.msgFailLoad';\n\n\n isNameModified: boolean = false;\n isCropperReady: boolean = false; // Use to not display the crop validation btn, after the img is loaded or changed\n currentCroppedImage: string = ''; // Img modified return in base64\n isCropped: boolean = false;\n isLoading: boolean = false;\n isImgCropped: boolean = false;\n isImgCroppedInitilized: boolean = false;\n\n // Image Cropper properties\n imgType: string;\n imgRoute: string;\n imageChangedEvent: any = '';\n croppedImage: any = '';\n canvasRotation = 0;\n rotation = 0;\n scale = 1;\n showCropper = false;\n containWithinAspectRatio = false;\n transform: ImageTransform = {};\n\n defaultAspectRatio: number;\n\n // dropdown list\n resolutionConfig:ImgCropperConfigDTO[] = [\n {\n label: 'ImgManager.ImgEditor.config.origin',\n config: {\n maintainAspectRatio: true\n },\n },\n {\n label: 'ImgManager.ImgEditor.config.free',\n config: {\n maintainAspectRatio: false\n },\n active: true\n },\n {\n label: 'ImgManager.ImgEditor.config.square',\n config: {\n maintainAspectRatio: true,\n aspectRatio: 1 / 1\n }\n },\n {\n label: 'ImgManager.ImgEditor.config.Portrait',\n config: {\n maintainAspectRatio: true,\n aspectRatio: 3 / 4\n }\n },\n {\n label: 'ImgManager.ImgEditor.config.landscape',\n config: {\n maintainAspectRatio: true,\n aspectRatio: 5 / 3\n }\n }\n ];\n\n rotationConfig:ImgCropperConfigDTO[] = [\n {\n label: 'ImgManager.ImgEditor.config.schedule',\n icon: \"fal fa-redo-alt\",\n method: \"rotateRight\",\n active: true\n },\n {\n label: 'ImgManager.ImgEditor.config.AntiSchedule',\n icon: \"fal fa-undo-alt\",\n method: \"rotateLeft\"\n },\n {\n label: 'ImgManager.ImgEditor.config.flipVert',\n icon: \"fal fa-sort-alt\",\n method: \"flipVertical\"\n },\n {\n label: 'ImgManager.ImgEditor.config.flipHoriz',\n icon: \"fal fa-exchange-alt\",\n method: \"flipHorizontal\"\n }\n ];\n\n zoomConfig:ImgCropperConfigDTO[] = [\n {\n label: 'ImgManager.ImgEditor.config.zoom',\n icon: \"fal fa-search-plus\",\n method: \"zoomIn\",\n active: true\n },\n {\n label: 'ImgManager.ImgEditor.config.dezoom',\n icon: \"fal fa-search-minus\",\n method: \"zoomOut\"\n }\n ];\n\n // Img cropper variables\n imgCropperConfig:CropperConfigDTO = {\n maintainAspectRatio: false,\n aspectRatio: undefined\n }\n\n constructor(\n private imgCDNService: ImgCDNService\n ) { }\n\n ngOnInit(): void {\n this.init();\n }\n\n init() {\n this.imgRoute = this.getRAWImgRoute();\n this.imgType = this.getImgType();\n this.croppedImage = null;\n this.setDefautAspectRatio();\n }\n\n getRAWImgRoute(){\n return this.imgCDNService.getUrlImg('raw') + this.imgToEdit.file_name;\n }\n\n getImgType() {\n return this.imgToEdit.file_name ? this.imgToEdit.file_name.split('.').pop() : undefined;\n }\n\n setDefautAspectRatio() {\n const height = parseInt(this.imgToEdit.raw_height);\n const width = parseInt(this.imgToEdit.raw_width);\n this.defaultAspectRatio = height / width;\n this.resolutionConfig[0].config.aspectRatio = this.defaultAspectRatio;\n this.imgCropperConfig.aspectRatio = this.defaultAspectRatio;\n }\n\n onEditClosed(msgKey?: string) {\n this.editClosed.emit(msgKey);\n }\n\n onRestart() {\n this.isImgModifiedChange.emit(false);\n }\n\n restartEdit() {\n this.init();\n this.resetConfCropper();\n }\n\n onImgModified() {\n this.isImgModified = true;\n this.isImgModifiedChange.emit(true);\n }\n\n ////// Img cropper methods ////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n /* Cropper output events */\n\n fileChangeEvent(event: any): void {\n this.imageChangedEvent = event;\n }\n\n imageCropped(event: ImageCroppedEvent) {\n this.detectImgCropperChange();\n\n this.currentCroppedImage = event.base64;\n this.currentCroppedImageChange.emit(this.currentCroppedImage);\n }\n\n imageLoaded() {\n this.showCropper = true;\n }\n\n cropperReady() {\n this.isCropperReady = true;\n }\n\n loadImageFailed() {\n this.onEditClosed(this.msgFailLoad);\n }\n\n /* Resize functions */\n\n changeResolutionSize(index: number) {\n this.setActiveItem(this.resolutionConfig, index);\n const config = this.resolutionConfig[index].config;\n this.setCropperProperties(config);\n }\n\n confirmCrop() {\n this.imgRoute = null;\n this.croppedImage = this.currentCroppedImage;\n this.isImgCropped = false;\n this.isImgCroppedInitilized = false;\n this.resetConfCropper();\n this.onImgModified();\n }\n\n resetConfCropper() {\n this.scale = 1;\n this.rotation = 0;\n this.canvasRotation = 0;\n this.transform = {};\n }\n\n private setActiveItem(array:any[], index: number) {\n // Set active-item class for the dropdown\n array.forEach((item, indexItem) => {\n item.active = indexItem === index ? true : false;\n });\n }\n\n private setCropperProperties(config: any) {\n for (const property in config) {\n this.imgCropperConfig[property] = config[property];\n }\n }\n\n private detectImgCropperChange() {\n this.isImgCropped = this.isImgCroppedInitilized;\n this.isImgCroppedInitilized = true;\n }\n\n /* Rotations functions */\n\n rotateLeft() {\n this.canvasRotation--;\n this.flipAfterRotate();\n this.onImgModified();\n }\n\n rotateRight() {\n this.canvasRotation++;\n this.flipAfterRotate();\n this.onImgModified();\n }\n\n flipHorizontal() {\n this.transform = {\n ...this.transform,\n flipH: !this.transform.flipH\n };\n this.onImgModified();\n }\n\n flipVertical() {\n this.transform = {\n ...this.transform,\n flipV: !this.transform.flipV\n };\n this.onImgModified();\n }\n\n private flipAfterRotate() {\n const flippedH = this.transform.flipH;\n const flippedV = this.transform.flipV;\n this.transform = {\n ...this.transform,\n flipH: flippedV,\n flipV: flippedH\n };\n }\n\n /* Zoom functions */\n\n zoomOut() {\n this.scale -= this.scale < 0.2? 0 : .1;\n this.transform = {\n ...this.transform,\n scale: this.scale\n };\n this.onImgModified();\n }\n\n zoomIn() {\n this.scale += .1;\n this.transform = {\n ...this.transform,\n scale: this.scale\n };\n this.onImgModified();\n }\n\n applyMethod(method: string) {\n this[method](); // call the method contains in zoomConfig or rotationConfig\n }\n}\n","import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { ImgPictureDTO, ImgPicturesDTO, ParamsImgManagerDTO } from '../../dto/img-manager.dto';\nimport { ImgManagerService } from '../../services/img-manager.service';\nimport { Subscription, Subject} from 'rxjs';\nimport { debounceTime, take } from 'rxjs/operators';\nimport { ImgEventService } from '../../services/img-event.service';\nimport { ImgSelectionService } from '../../services/img-selection.service';\nimport { UserSettingsService } from '../../services/user-settings.service';\nimport { TableFilters } from '../../services/table/filters-table.service';\nimport { PictureNameUpdate } from '../../dto/picture-name-update.dto';\nimport { easeInOut } from '../../animations/easeInOut/ease-in-out.animation';\nimport { insertRemove } from '../../animations/insertRemove/insert-remove.animation';\nimport { stateDisplayed, tabDisplayed } from '../../dto/export-dtos.api';\nimport { RenamePictureService } from '../../services/rename-picture.service';\nimport { AlertService } from '../../services/alert.service';\n\n@Component({\n selector: 'images-view',\n templateUrl: './images-view.component.html',\n animations: [\n easeInOut,\n insertRemove\n ]\n})\nexport class ImagesViewComponent implements OnInit, AfterViewInit {\n\n @Input() stateDisplayed: stateDisplayed;\n @Input() tabDisplayed: tabDisplayed;\n @Input() fullSize: boolean;\n @Input() maxLengthCardShow: number;\n @Input() listDisplayed = false; // Display format list or mosaic\n @Input() multipleImgMode = false;\n\n // Data filters\n tableFilters: TableFilters = {\n sort: undefined,\n order: undefined,\n searchValue: '',\n totalItems: 0,\n itemsPerPage: 0,\n currentPage: 1\n };\n\n @ViewChild('imgLibContainer') imgLibContainer : ElementRef;\n widthLargeCard: number = 219; // Default value of a card width 199 + margin 20\n widthSmallCard: number = 160; // Default value of a card width 140 + margin 20\n nbMinImgPerLine: number;\n nbMaxImgPerLine: number;\n nbFakeImg: number = 0;\n\n imgFullWidthConfig:any = [\n {\n max: 419,\n largeImgWidthFactor : 1,\n smallImgWidthFactor : 0.5\n },\n {\n max: 499,\n largeImgWidthFactor : 1,\n smallImgWidthFactor : 0.5\n },\n {\n max: 719, // tablet\n largeImgWidthFactor : 0.5,\n smallImgWidthFactor : 0.3333\n },\n {\n max: 1023, // deskop\n largeImgWidthFactor : 0.3333,\n smallImgWidthFactor : 0.2\n },\n {\n max: 1399,\n largeImgWidthFactor : 0.25,\n smallImgWidthFactor : 0.125\n },\n {\n max: 1599,\n largeImgWidthFactor : 0.2,\n smallImgWidthFactor : 0.1111\n },\n {\n largeImgWidthFactor : 0.1666,\n smallImgWidthFactor : 0.1\n }\n ];\n\n imgWidthConfig:any = [\n {\n max: 1024,\n largeImgWidthFactor : 0.25,\n smallImgWidthFactor : 0.125\n },\n {\n max: 1199,\n largeImgWidthFactor : 0.3333,\n smallImgWidthFactor : 0.2\n },\n {\n max: 1299,\n largeImgWidthFactor : 0.3333,\n smallImgWidthFactor : 0.1666\n },\n {\n max: 1399,\n largeImgWidthFactor : 0.25,\n smallImgWidthFactor : 0.1666\n },\n {\n max: 1599,\n largeImgWidthFactor : 0.25,\n smallImgWidthFactor : 0.14\n },\n {\n largeImgWidthFactor : 0.25,\n smallImgWidthFactor : 0.125\n }\n ];\n\n imgSubscribe: Subscription;\n imgRemovedEvent: Subscription;\n imgAddedEvent: Subscription;\n imgSelectionChange: Subscription;\n searchQueryChanged: Subject<string> = new Subject<string>();\n filtersChanged: Subject<void> = new Subject<void>();\n\n picturesList: ImgPictureDTO[] = [];\n savePictureList: ImgPictureDTO[] = [];\n imgSelectedList: ImgPictureDTO[];\n searchedValue: string; // Value from the search bar or img added by canva\n nbImgToDelSelected: number = 0;\n disable: boolean = false; // Use to disable action during server request\n isLoading: boolean = true;\n isTotalRetieved: boolean = false;\n delListImgLoader = false;\n initComponent: boolean = true;\n failLoaded: boolean = false;\n displayPexelsResults: boolean = false; // Use when no img find by name, display img from Pexels\n searchText: string;\n confirmImgSup:boolean = false;\n previousSearchValue: string;\n\n // Paginator Params\n pageIndex: number =0;\n length: number = 0;\n pageSize: number = 30; // Default value\n pageSizeOptions: number[] = [25, 50, 100, 250];\n\n // Api Img manager Params\n params:ParamsImgManagerDTO;\n\n private errorGetAllImg = 'ImgManager.ImgLib.errorGetAllImg';\n private errorGetTotalImg = 'ImgManager.ImgLib.errorGetTotalImg';\n private errorGetImg = 'ImgManager.ImgLib.errorGetCanvaImg';\n private msgNoImgFound = 'ImgManager.ImgLib.noImgFound';\n private errorRemoveImg = 'ImgManager.ImgList.errorRemoveImg';\n\n constructor(\n private imgManager: ImgManagerService,\n private imgEventService: ImgEventService,\n private imgSelectionService: ImgSelectionService,\n private alertService: AlertService,\n private userSettingsService: UserSettingsService,\n private renamePictureService: RenamePictureService) { }\n\n ngOnInit(): void {\n if (this.maxLengthCardShow) {\n this.reducePictureListMaxLength();\n }\n this.setEvents();\n this.imgSelectedList = this.imgSelectionService.getImgSelection();\n }\n\n ngAfterViewInit() {\n this.setNbImgToDisplay();\n this._getImgList();\n if (!this.savePictureList) {\n this.savePictureList = this.picturesList;\n }\n }\n\n reducePictureListMaxLength() {\n this.picturesList.splice(0, this.maxLengthCardShow);\n }\n\n getImgList() {\n this.filtersChanged.next();\n }\n\n /**\n * true : go to list display\n * false : go to mosaic display\n * @param activate\n */\n onSwitchFormatDisplayed(activate: boolean) {\n this.listDisplayed = activate;\n this.userSettingsService.setUserDisplayPreference(activate);\n this.imgEventService.emitlistDisplayedChange(activate);\n }\n\n /**\n * Calcul the number of img selected for masse deletion\n */\n onImgSelected() {\n this.setNbImgToDelSelected();\n }\n\n onShowImgUploaded() {\n this.searchText = null;\n this.searchedValue = null;\n this.getImgList();\n }\n\n onRenamePicture(pictureRenamed: PictureNameUpdate) {\n this.renamePictureService.onRenamePicture(pictureRenamed);\n }\n\n removeListImg() {\n if (this.disable) {\n return;\n }\n this.disable = true;\n this.delListImgLoader = true;\n this.confirmImgSup = false;\n\n // Get the id of the img to remove\n // And add deleted property\n const idImgToRemove: string[] = [];\n this.picturesList.forEach( img => {\n if (img.delSelected) {\n img.deleted = true;\n idImgToRemove.push(img.id_file);\n }\n });\n\n this.imgManager.removeMultipleImg(idImgToRemove).subscribe(\n () => {\n this.getImgList();\n this.imgSelectionService.removeImgSelectionByIds(idImgToRemove);\n },\n error => {\n this.getImgList();\n this.alertService.openAlert(this.errorRemoveImg);\n }\n );\n\n\n }\n\n selectImgChosen() {\n if (this.disable) {\n return;\n }\n const picturesListSelected: ImgPictureDTO[] = [];\n this.picturesList.map(img => {\n if(img.delSelected) {\n img.delSelected =false;\n img.selected = true;\n }\n if (img.selected) {\n picturesListSelected.push(img);\n }\n });\n this.setNbImgToDelSelected();\n this.imgSelectionService.setImgSelection(picturesListSelected);\n }\n\n displayConfirmImgSup(){\n if (this.disable) {\n return;\n }\n this.confirmImgSup = true;\n }\n\n cancelSup() {\n this.confirmImgSup = false;\n }\n\n /**\n * Event emit when a img selected in order to delete\n */\n onPicturesListChange() {\n this.setNbImgToDelSelected();\n }\n\n onFiltersChange() {\n this.getImgList();\n }\n\n /**\n * Set default number of img per page to display at the initialisation\n * This number is between 30 and 50\n */\n private setNbImgToDisplay() {\n const containerWidth = this.imgLibContainer.nativeElement.offsetWidth + 30; // + 30px -> left + right margin\n const scrollWidth = window.innerWidth - document.body.offsetWidth;\n\n const [maxImgWidthFactor, minImgWidthFactor] = this.getImgWidthFactors();\n\n const minImgWidth = Math.floor(containerWidth * minImgWidthFactor);\n const maxImgWidth = Math.ceil((containerWidth + scrollWidth ) * maxImgWidthFactor);\n\n this.nbMaxImgPerLine = Math.floor(containerWidth / minImgWidth);\n this.nbMinImgPerLine = Math.floor( (containerWidth + scrollWidth ) / maxImgWidth);\n\n this.pageSize = this.getTotalImgPerPage();\n }\n\n private getImgWidthFactors(): number[] {\n const screenWidth = window.innerWidth;\n let minWidth:number = 0;\n let imgSizesConfig: number[] = [];\n\n const currentImgWidthConfig = this.fullSize ? this.imgFullWidthConfig : this.imgWidthConfig;\n\n for (const widthConfig of currentImgWidthConfig) {\n if (!widthConfig.max) {\n imgSizesConfig = [widthConfig.largeImgWidthFactor, widthConfig.smallImgWidthFactor];\n break;\n }\n if (minWidth < screenWidth && screenWidth <= widthConfig.max) {\n imgSizesConfig = [widthConfig.largeImgWidthFactor, widthConfig.smallImgWidthFactor];\n break;\n }\n minWidth = widthConfig.max;\n }\n return imgSizesConfig;\n }\n\n private getTotalImgPerPage(): number {\n let total = this.nbMinImgPerLine;\n\n while (total < 30 || total % this.nbMaxImgPerLine !== 0 || total % this.nbMinImgPerLine !== 0) {\n total += this.nbMinImgPerLine;\n }\n return total;\n }\n\n private setParams() {\n this.params = {\n limit: this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage.toString() : this.pageSize.toString(),\n page: this.tableFilters.currentPage.toString()\n };\n if (this.tableFilters.searchValue) {\n this.params[\"display_name:contains\"] = this.tableFilters.searchValue.toString();\n }\n }\n\n private initVariables(loadingSuccess: boolean) {\n this.nbImgToDelSelected = 0;\n this.disable = false;\n this.isLoading = false;\n this.delListImgLoader = false;\n this.initComponent = false;\n this.displayPexelsResults = false;\n this.failLoaded = !loadingSuccess;\n this.nbFakeImg = 0;\n }\n\n private selectImgSelected () {\n if (!this.imgSelectedList || !this.imgSelectedList.length) {\n return;\n }\n\n const idImgSlectedList: string[] = [];\n\n this.imgSelectedList.forEach(img =>\n idImgSlectedList.push(img.id_file)\n );\n\n this.picturesList.forEach(picture => {\n if (idImgSlectedList.indexOf(picture.id_file) !== -1) {\n picture.selected = true;\n }\n });\n }\n\n private displayPexelsLib () {\n this.displayPexelsResults = true;\n this.alertService.openAlert(this.msgNoImgFound);\n }\n\n /**\n * Set a img list in order to fill properly all the line of images displayed in mosaic.\n * Otherwise, the space-between css will do a bad display\n */\n private calculNbImgFake(nbImgDisplayed: number) {\n const nbImgPerLine = this.stateDisplayed === 'small' || this.tabDisplayed === 'img-upload' ? this.nbMaxImgPerLine : this.nbMinImgPerLine;\n\n if (nbImgDisplayed % nbImgPerLine !== 0) {\n this.nbFakeImg = nbImgPerLine - nbImgDisplayed % nbImgPerLine;\n }\n }\n\n private getImg (id_file: string) {\n this.imgManager.getShopImg(id_file).pipe(take(1)).subscribe(\n (picture: ImgPictureDTO) => {\n\n if (!this.imgAlreadyExist(picture.id_file)) {\n // check the img is not already present\n this.picturesList.unshift(picture);\n this.length += 1;\n }\n },\n error => {\n this.alertService.openAlert(this.errorGetImg);\n }\n );\n }\n\n private imgAlreadyExist (id_file: string): boolean {\n for (const img of this.picturesList) {\n if (img.id_file === id_file) {\n return true;\n }\n }\n return false;\n }\n\n private setNbImgToDelSelected () {\n this.nbImgToDelSelected = this.picturesList.filter(img =>\n img.delSelected).length;\n\n if (!this.nbImgToDelSelected) {\n this.confirmImgSup = false;\n }\n }\n\n private setEvents() {\n // Add a timer to retrieve img when the search bar or the paginator are used\n this.searchQueryChanged\n .pipe(debounceTime(400)) // wait 0.5 sec after the last event before emitting last event\n .subscribe(data => {\n this.getImgList();\n });\n\n this.filtersChanged\n .pipe(debounceTime(800)) // wait 0.8 sec after the last event before emitting last event\n .subscribe(data => {\n this._getImgList();\n });\n\n // Reload img when img is/are removed\n this.imgRemovedEvent = this.imgEventService.getImgRemovedEventListner().subscribe(id_file =>{\n this.getImgList();\n });\n\n // Create img from Canva\n this.imgAddedEvent = this.imgEventService.getImgAddedEventListner().subscribe(id_file =>{\n if (id_file && !this.imgAlreadyExist(id_file)) {\n this.getImg(id_file);\n }\n });\n\n this.imgSelectionChange = this.imgSelectionService.getImgSelectionChange().subscribe(imgSelection =>{\n if (this.listDisplayed) {\n return;\n }\n const idFileList = [];\n imgSelection.map(img => idFileList.push(img.id_file));\n for (const picture of this.picturesList) {\n if (idFileList.indexOf(picture.id_file) === -1) {\n picture.selected = false;\n }\n }\n });\n }\n\n private _getImgList() {\n this.isLoading = true;\n this.displayPexelsResults = false;\n this.setParams();\n\n this.refreshTotalImgList();\n\n this.imgManager.getShopImgList(this.params).pipe(take(1)).subscribe((data: ImgPicturesDTO) => {\n this.initVariables(true);\n const nbImgDisplayed = data.data.length;\n this.calculNbImgFake(nbImgDisplayed);\n this.picturesList = data.data;\n this.renamePictureService.setPicturesList(this.picturesList);\n this.selectImgSelected();\n\n this.length = this.isTotalRetieved ? this.length : data.totalRecords;\n this.tableFilters.totalItems = this.isTotalRetieved ? this.tableFilters.totalItems : data.totalRecords;\n this.tableFilters.itemsPerPage = this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage : this.pageSize;\n\n if (this.maxLengthCardShow) {\n this.picturesList = this.picturesList.splice(0, 8);\n }\n\n // Display Pexels if no result\n if (data.totalRecords === 0) {\n this.displayPexelsLib();\n }\n\n },\n error => {\n this.alertService.openAlert(this.errorGetAllImg);\n this.initVariables(false);\n });\n }\n\n private refreshTotalImgList() {\n const searchValue = this.tableFilters.searchValue;\n\n if (this.isTotalRetieved && searchValue === this.previousSearchValue) {\n // Keep current total result\n return;\n }\n\n this.isTotalRetieved = false;\n\n this.imgManager.getShopTotalImgList(this.params).pipe(take(1)).subscribe(\n\n (data: ImgPicturesDTO) => {\n this.previousSearchValue = searchValue;\n this.isTotalRetieved = true;\n this.length = data.totalRecords;\n this.tableFilters.totalItems = data.totalRecords;\n },\n\n error => {\n //this.alertService.openAlert(this.errorGetTotalImg);\n this.initVariables(false);\n });\n }\n\n ngOnDestroy(): void {\n this.searchQueryChanged.unsubscribe();\n this.imgRemovedEvent.unsubscribe();\n this.imgAddedEvent.unsubscribe();\n this.imgSelectionChange.unsubscribe();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { listAnnimation } from '../../../animations/listAnnimation/list.animation';\nimport { PictureNameUpdate, tabDisplayed } from '../../../dto/export-dtos.api';\nimport { AlertService } from '../../../services/alert.service';\nimport { ImgManagerConfigService } from '../../../services/config/external-config.service';\nimport { ImgCDNService } from '../../../services/config/img-cdn.service';\nimport { ImgEventService } from '../../../services/img-event.service';\nimport { ImgManagerService } from '../../../services/img-manager.service';\nimport { ImgSelectionService } from '../../../services/img-selection.service';\nimport { ImagesActionHandler } from '../images-actions-handler';\n\n@Component({\n selector: 'mosaic-view',\n templateUrl: './mosaic-view.component.html',\n animations: [\n listAnnimation\n ]\n})\nexport class MosaicViewComponent extends ImagesActionHandler implements OnInit {\n\n @Input()\n tabDisplayed: tabDisplayed;\n @Input()\n fullSize: boolean;\n @Input()\n nbFakeImg: number= 0;\n\n constructor(\n imgManager: ImgManagerService,\n imgSelectionService: ImgSelectionService,\n http: HttpClient,\n imgCDNService: ImgCDNService,\n imgEventCardService: ImgEventService,\n alertService: AlertService,\n translateService: TranslateService,\n externalService: ImgManagerConfigService\n ) {\n super(\n imgManager,\n imgSelectionService,\n http,\n imgCDNService,\n imgEventCardService,\n alertService,\n translateService,\n externalService\n );\n }\n\n ngOnInit(): void {\n }\n\n onSearchChange(event: string) {\n // Reset table filters\n this.tableFilters.sort = undefined;\n this.tableFilters.order = undefined;\n this.tableFilters.currentPage = 1;\n this.filtersChange.emit(this.tableFilters);\n }\n\n onCardRenamePicture(pictureRenamed: PictureNameUpdate) {\n this.pictureNameChange.next(pictureRenamed);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { listAnnimation } from '../../../animations/listAnnimation/list.animation';\nimport { AlertService } from '../../../services/alert.service';\nimport { ImgManagerConfigService } from '../../../services/config/external-config.service';\nimport { ImgCDNService } from '../../../services/config/img-cdn.service';\nimport { ImgEventService } from '../../../services/img-event.service';\nimport { ImgManagerService } from '../../../services/img-manager.service';\nimport { ImgSelectionService } from '../../../services/img-selection.service';\nimport { ImagesActionHandler } from '../images-actions-handler';\n\n@Component({\n selector: 'table-view',\n templateUrl: './table-view.component.html',\n animations: [\n listAnnimation\n ]\n})\nexport class TableViewComponent extends ImagesActionHandler implements OnInit {\n dataTableName: string = 'imgagesView'; // Name of your table\n\n constructor(\n imgManager: ImgManagerService,\n imgSelectionService: ImgSelectionService,\n http: HttpClient,\n imgCDNService: ImgCDNService,\n imgEventCardService: ImgEventService,\n alertService: AlertService,\n translateService: TranslateService,\n externalService: ImgManagerConfigService\n ) {\n super(\n imgManager,\n imgSelectionService,\n http,\n imgCDNService,\n imgEventCardService,\n alertService,\n translateService,\n externalService\n );\n }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { NwbFilterGroup, NwbFilterRoutingBuilder } from '@wizishop/ng-wizi-bulma';\nimport { Subject } from 'rxjs';\nimport { PaginationFilters } from '../../components/shared/pagination/pagination.component';\n\nexport interface TableFilters extends PaginationFilters {\n sort: string;\n order: boolean;\n searchValue: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FiltersTableService {\n filterGroups = new Map<string, NwbFilterGroup>();\n dataTableFilters: TableFilters = {\n sort: undefined,\n order: undefined,\n searchValue: undefined,\n totalItems: 0,\n itemsPerPage: 0,\n currentPage: 0\n };\n\n private sortSubject: Subject<any> = new Subject<any>();\n\n constructor(private filterRoutingBuilder: NwbFilterRoutingBuilder) {}\n\n getTableFilterGroup(dataTableName: string) {\n if (this.filterGroups.has(dataTableName)) {\n return this.filterGroups.get(dataTableName);\n }\n const filterGroup: NwbFilterGroup = this.filterRoutingBuilder.group(this.dataTableFilters, dataTableName);\n this.filterGroups.set(dataTableName, filterGroup);\n return filterGroup;\n }\n\n /**\n * Use to reset the others sorts of the table\n * @param dataTableName\n * @param sortName\n * @param order\n */\n emitSortChange(dataTableName: string, sortName: string, order: boolean) {\n this.sortSubject.next({ dataTableName, sortName, order });\n }\n\n getSortChangeListner() {\n return this.sortSubject.asObservable();\n }\n\n setPaginationFilters(dataTableName: string, totalItems: number, itemsPerPage: number, currentPage: number) {\n const filterGroup = this.getTableFilterGroup(dataTableName);\n filterGroup.setValues({\n itemsPerPage,\n currentPage\n });\n }\n\n setInitialPaginationFiltersIfNotExist(dataTableName: string, itemsPerPage: number, currentPage: number) {\n const filterGroup = this.getTableFilterGroup(dataTableName);\n filterGroup.setValues({\n itemsPerPage: filterGroup.get('itemsPerPage') ? parseInt(filterGroup.get('itemsPerPage')) : itemsPerPage,\n currentPage: filterGroup.get('currentPage') ? parseInt(filterGroup.get('currentPage')) : currentPage\n });\n }\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","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","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 { 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","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';\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, 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","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 { 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 { 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';\nimport { Inject } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n // The selector has the same name as the tableRaw selector in table.component.html\n selector: '[tableRow]'\n})\nexport class TableRow {\n constructor(private currentCell: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private document) {}\n\n ngAfterViewInit() {\n this.applyCustomStylesOnCell();\n }\n\n applyCustomStylesOnCell() {\n this.renderer.addClass(this.currentCell.nativeElement, 'wz-table__body__line');\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 { 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, 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","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wz-alert',\n styleUrls: ['./alert.component.scss'],\n templateUrl: './alert.component.html'\n})\nexport class AlertComponent implements OnInit {\n @Input() icon = true;\n @Input() warning = false;\n @Input() success = false;\n @Input() iconClass = 'fas fa-info';\n constructor() {}\n ngOnInit(): void {}\n}\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 { 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","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LargeNumberOfPage'\n})\nexport class LargeNumberOfPagePipe implements PipeTransform {\n /**\n * Return an incremental array\n * Display 30 pages, from -15 to +15 of the current page\n * @param totalItems\n * @param itemsPerPage\n */\n transform(totalItems: number, itemsPerPage: number, currentPage: number): number[] {\n if (!(totalItems >= 0 && itemsPerPage >= 0)) {\n throw new Error('totalItems or itemsPerPage missing in ArrayTotalPages pipe.');\n }\n\n let arrayLength: number = 32;\n\n const startAtPage = currentPage <= 15 ? 0: currentPage - 15;\n const totalPage = Math.ceil(totalItems / itemsPerPage);\n\n\n\n const arrayWithPageNumber = Array.apply(null, { length: arrayLength })\n .map(Number.call, Number)\n .map((x: number) => {\n\n const pageIndex:any = {\n display: startAtPage + x + 1,\n value: startAtPage + x + 1\n };\n\n if (x === arrayLength - 2) {\n pageIndex.display = '...';\n }\n if (x === arrayLength - 1) {\n pageIndex.display = totalPage;\n pageIndex.value = totalPage;\n }\n\n return pageIndex;\n });\n\n\n if (startAtPage) {\n arrayWithPageNumber.unshift(\n {\n display: 1,\n value: 1\n },\n {\n display: \"...\",\n value: 2\n }\n );\n }\n\n return arrayWithPageNumber;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { WzImgManagerComponent } from './wz-img-manager.component';\nimport { ImgUploadComponent } from './components/img-upload/img-upload.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ImgTabsComponent } from './components/img-tabs/img-tabs.component';\nimport { CommonModule } from '@angular/common';\nimport { DragDropDirective } from './directives/drag-drop.directive';\nimport { PexelLibComponent } from './components/pexels-lib/pexels-lib.component';\nimport { FormsModule } from '@angular/forms';\nimport { ImgCardComponent } from './components/images-view/mosaic-view/img-card/img-card.component';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { NgScrollbarReachedModule } from 'ngx-scrollbar/reached-event';\nimport { NwbAllModule } from '@wizishop/ng-wizi-bulma';\nimport { UploadListComponent } from './components/upload-list/upload-list.component';\nimport { ImgEditorComponent } from './components/img-editor/img-editor.component';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CanvaBtnComponent } from './components/canva-btn/canva-btn.component';\nimport { ImgSelectionComponent } from './components/img-selection/img-selection.component';;\nimport { LoadingDirective } from './directives/loading.directive';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AutoHideDirective } from './directives/auto-hide.directive';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CopyClipboardDirective } from './directives/copy-to-clipboard.directive';\nimport { DropdownComponent } from './components/shared/dropdown/dropdown.component';\nimport { EditorInfoSectionComponent } from './components/img-editor/info-section/info-section.component';\nimport { CropperComponent } from './components/img-editor/cropper/cropper.component';\nimport { ImagesViewComponent } from './components/images-view/images-view.component';\nimport { MosaicViewComponent } from './components/images-view/mosaic-view/mosaic-view.component';\nimport { TableViewComponent } from './components/images-view/table-view/table-view.component';\nimport { TableComponent } from './components/shared/table/table.component';\nimport { InputSearchComponent } from './components/shared/input-search/input-search.component';\nimport { PaginationComponent } from './components/shared/pagination/pagination.component';\nimport { PagniationArrayTotalPages } from './pipes/pagination/array-total-pages/array-pages.pipe';\nimport { PagniationText } from './pipes/pagination/text/custom-text.pipe';\nimport { PagniationIsLastPage } from './pipes/pagination/total-pages/is-last-page.pipe';\nimport { CheckBoxRow } from './directives/table/checkBoxRow.directive';\nimport { TableColumn } from './directives/table/column.directive';\nimport { TableColumnHeader } from './directives/table/columnHeader.directive';\nimport { TableRow } from './directives/table/raw.directive';\nimport { CheckboxComponent } from './components/shared/checkbox/checkbox.component';\nimport { ImageSrcPipe } from './pipes/images/img-src.pipe';\nimport { AbstractDebounceDirective } from './directives/abstract-debounce/abstract-debounce.directive';\nimport { DebounceKeyupDirective } from './directives/abstract-debounce/debounce-keyup.directive';\nimport { LoaderComponent } from './components/loader/loader.component';\nimport { AlertComponent } from './components/shared/alert/alert.component';\nimport { NumberToArray } from './pipes/number-to-array.pipe';\nimport { PageSelectorComponent } from './components/shared/pagination/page-selector/page-selector.component';\nimport { LargeNumberOfPagePipe } from './pipes/pagination/large-number-of-page/large-number-of-page.pipe';\n\nconst components = [\n WzImgManagerComponent,\n ImgTabsComponent,\n ImgUploadComponent,\n PexelLibComponent,\n ImgCardComponent,\n UploadListComponent,\n ImgEditorComponent,\n EditorInfoSectionComponent,\n CanvaBtnComponent,\n ImgSelectionComponent,\n LoaderComponent,\n DropdownComponent,\n CropperComponent,\n ImagesViewComponent,\n MosaicViewComponent,\n TableViewComponent,\n TableComponent,\n InputSearchComponent,\n PaginationComponent,\n CheckboxComponent,\n AlertComponent,\n PageSelectorComponent,\n];\n\nconst directives = [\n DragDropDirective,\n LoadingDirective,\n AutoHideDirective,\n CopyClipboardDirective,\n TableColumn,\n CheckBoxRow,\n TableColumnHeader,\n TableRow,\n AbstractDebounceDirective,\n DebounceKeyupDirective,\n];\n\nconst pipes = [\n PagniationArrayTotalPages,\n PagniationIsLastPage,\n PagniationText,\n ImageSrcPipe,\n NumberToArray,\n LargeNumberOfPagePipe\n];\n\n@NgModule({\n declarations: [\n ...components,\n ...directives,\n ...pipes\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n FormsModule,\n NgScrollbarModule,\n NgScrollbarReachedModule,\n NwbAllModule,\n ImageCropperModule,\n CdkTableModule,\n DragDropModule,\n TranslateModule],\n providers: [],\n exports: [\n WzImgManagerComponent]\n})\nexport class WzImgManagerModule { }\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","export class ImgCDNConfigDTO {\n url_raw_image = '';\n url_100_image = '';\n url_200_image = '';\n url_400_image = '';\n url_800_image = '';\n}","/*\n * Public API Surface of wz-img-manager\n */\n\nexport { WzImgManagerModule } from './lib/wz-img-manager.module';\nexport { WzImgManagerComponent } from './lib/wz-img-manager.component';\nexport { ImgSelectionService } from './lib/services/img-selection.service';\nexport { ImgManagerService } from './lib/services/img-manager.service';\nexport { RenamePictureService } from './lib/services/rename-picture.service';\nexport { CanvaService } from './lib/services/canva.service';\nexport * from './lib/dto/export-dtos.api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {easeInOut as ɵi} from './lib/animations/easeInOut/ease-in-out.animation';\nexport {insertRemove as ɵw} from './lib/animations/insertRemove/insert-remove.animation';\nexport {listAnnimation as ɵk} from './lib/animations/listAnnimation/list.animation';\nexport {CanvaBtnComponent as ɵr} from './lib/components/canva-btn/canva-btn.component';\nexport {ImagesActionHandler as ɵn} from './lib/components/images-view/images-actions-handler';\nexport {ImagesViewComponent as ɵx} from './lib/components/images-view/images-view.component';\nexport {ImgCardComponent as ɵm} from './lib/components/images-view/mosaic-view/img-card/img-card.component';\nexport {MosaicViewComponent as ɵy} from './lib/components/images-view/mosaic-view/mosaic-view.component';\nexport {TableViewComponent as ɵz} from './lib/components/images-view/table-view/table-view.component';\nexport {CropperComponent as ɵv} from './lib/components/img-editor/cropper/cropper.component';\nexport {ImgEditorComponent as ɵp} from './lib/components/img-editor/img-editor.component';\nexport {EditorInfoSectionComponent as ɵq} from './lib/components/img-editor/info-section/info-section.component';\nexport {ImgSelectionComponent as ɵs} from './lib/components/img-selection/img-selection.component';\nexport {ImgTabsComponent as ɵf} from './lib/components/img-tabs/img-tabs.component';\nexport {ImgUploadComponent as ɵh} from './lib/components/img-upload/img-upload.component';\nexport {LoaderComponent as ɵt} from './lib/components/loader/loader.component';\nexport {PexelLibComponent as ɵj} from './lib/components/pexels-lib/pexels-lib.component';\nexport {AlertComponent as ɵbf} from './lib/components/shared/alert/alert.component';\nexport {CheckboxComponent as ɵbe} from './lib/components/shared/checkbox/checkbox.component';\nexport {DropdownComponent as ɵu} from './lib/components/shared/dropdown/dropdown.component';\nexport {InputSearchComponent as ɵbc} from './lib/components/shared/input-search/input-search.component';\nexport {PageSelectorComponent as ɵbg} from './lib/components/shared/pagination/page-selector/page-selector.component';\nexport {PaginationComponent as ɵbd} from './lib/components/shared/pagination/pagination.component';\nexport {TableComponent as ɵba} from './lib/components/shared/table/table.component';\nexport {UploadListComponent as ɵo} from './lib/components/upload-list/upload-list.component';\nexport {AbstractDebounceDirective as ɵbp} from './lib/directives/abstract-debounce/abstract-debounce.directive';\nexport {DebounceKeyupDirective as ɵbq} from './lib/directives/abstract-debounce/debounce-keyup.directive';\nexport {AutoHideDirective as ɵbj} from './lib/directives/auto-hide.directive';\nexport {CopyClipboardDirective as ɵbk} from './lib/directives/copy-to-clipboard.directive';\nexport {DragDropDirective as ɵbh} from './lib/directives/drag-drop.directive';\nexport {LoadingDirective as ɵbi} from './lib/directives/loading.directive';\nexport {CheckBoxRow as ɵbm} from './lib/directives/table/checkBoxRow.directive';\nexport {TableColumn as ɵbl} from './lib/directives/table/column.directive';\nexport {TableColumnHeader as ɵbn} from './lib/directives/table/columnHeader.directive';\nexport {TableRow as ɵbo} from './lib/directives/table/raw.directive';\nexport {ImageSrcPipe as ɵbu} from './lib/pipes/images/img-src.pipe';\nexport {NumberToArray as ɵbv} from './lib/pipes/number-to-array.pipe';\nexport {PagniationArrayTotalPages as ɵbr} from './lib/pipes/pagination/array-total-pages/array-pages.pipe';\nexport {LargeNumberOfPagePipe as ɵbw} from './lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe';\nexport {PagniationText as ɵbt} from './lib/pipes/pagination/text/custom-text.pipe';\nexport {PagniationIsLastPage as ɵbs} from './lib/pipes/pagination/total-pages/is-last-page.pipe';\nexport {AlertService as ɵg} from './lib/services/alert.service';\nexport {ImgManagerConfigService as ɵa} from './lib/services/config/external-config.service';\nexport {ImgCDNService as ɵb} from './lib/services/config/img-cdn.service';\nexport {DomService as ɵe} from './lib/services/dom.service';\nexport {ImgEventService as ɵd} from './lib/services/img-event.service';\nexport {PexelsService as ɵl} from './lib/services/pexels.service';\nexport {FiltersTableService as ɵbb} from './lib/services/table/filters-table.service';\nexport {UserSettingsService as ɵc} from './lib/services/user-settings.service';"],"names":["uuid"],"mappings":"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"}
|