@wizishop/img-manager 0.2.91 → 0.2.95
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/bundles/wizishop-img-manager.umd.js +2 -2
- package/bundles/wizishop-img-manager.umd.js.map +1 -1
- package/bundles/wizishop-img-manager.umd.min.js +1 -1
- package/bundles/wizishop-img-manager.umd.min.js.map +1 -1
- package/esm2015/lib/components/img-tabs/img-tabs.component.js +3 -3
- package/esm5/lib/components/img-tabs/img-tabs.component.js +3 -3
- package/fesm2015/wizishop-img-manager.js +2 -2
- package/fesm2015/wizishop-img-manager.js.map +1 -1
- package/fesm5/wizishop-img-manager.js +2 -2
- package/fesm5/wizishop-img-manager.js.map +1 -1
- package/package.json +1 -1
- package/wizishop-img-manager-0.2.95.tgz +0 -0
- package/wz-img-manager.scss +2 -2
- package/wizishop-img-manager-0.2.91.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/components/shared/select/select.component.ts","ng://@wizishop/img-manager/lib/pipes/select/select-filters.pipe.ts","ng://@wizishop/img-manager/lib/directives/zindex-toggle.directive.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 angularFicheProductConfig: ImgManagerDisplayConfig = {\n stateDisplayed: 'closed',\n multipleImgMode: true,\n showImgManagerModule: true,\n showSelection: true,\n displayBtn: false,\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\" | 'angular-fiche-product') {\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 case 'angular-fiche-product':\n return this.angularFicheProductConfig\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 changeDisplayTab() {\n this.stateDisplayed = 'full';\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, Output, EventEmitter} 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 @Output()\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\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 switchDisplayWindowCard() {\n this.switchDisplayWindow.emit(true);\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';\nimport {Router} from '@angular/router';\nimport { SelectItem } from '../shared/select/select-items.dto';\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 @Output()\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\n\n tabs: SelectItem[] = [\n {\n name: 'ImgManager.Tabs.addImg',\n value: 'img-upload',\n id: 0\n },\n {\n name: 'ImgManager.Tabs.imgLib',\n value: 'images-view',\n selected: true,\n id: 1\n },\n {\n name: 'ImgManager.Tabs.freeImgLib',\n value: 'pexels-lib',\n id: 2\n },\n {\n name: 'ImgManager.Tabs.Editor',\n value: 'img-edition',\n hide: true,\n id: 3\n }\n ];\n\n tabActive: SelectItem = this.tabs[1];\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 private route: Router\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(item: SelectItem) {\n this.imgUpload = false;\n this.editTab = false;\n this.tabActive = item;\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 switchDisplayWindowImgView() {\n this.switchDisplayWindow.emit(true);\n }\n\n switchRouterLink(event) {\n\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 @Output()\n switchDisplayWindow: EventEmitter<boolean> = 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 displayLargeWindow(): void {\n this.switchDisplayWindow.emit(true);\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, Output, EventEmitter} 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 @Output()\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\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 switchDisplayWindowMosaic() {\n this.switchDisplayWindow.emit(true);\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, EventEmitter, Input, OnInit, Output} 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 @Output()\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\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 switchDisplayWindowCard() {\n this.switchDisplayWindow.emit(true);\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 {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectItem } from './select-items.dto';\nimport { CalllToAction } from './call-to-action.model';\n\n@Component({\n selector: 'wac-select',\n templateUrl: './select.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }]\n})\nexport class SelectComponent implements OnInit, ControlValueAccessor {\n @Input()\n items: SelectItem[];\n\n @Input()\n placeholder: string;\n\n @Input()\n label: string;\n\n @Input()\n maxWidthItems: string;\n\n @Input()\n search = false;\n\n @Input()\n type = 'default';\n\n @Input()\n callToAction: CalllToAction;\n\n @Input() maxWidth = '100%';\n\n @Input()\n disabled = false;\n\n @Output() selectValue = new EventEmitter<number>();\n\n @Output() clickOnCallToAction = new EventEmitter<any>();\n\n @ViewChild('search') searchElement: ElementRef;\n\n openCategories = false;\n searchValue = '';\n\n indexItemSelected: number = -1;\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit(): void {\n this.indexItemSelected = this.items.findIndex(item => item.selected);\n }\n\n onClose() {\n this.openCategories = false;\n }\n\n customTB(item: SelectItem, index: number) {\n return `${item.id}-${index}`;\n }\n\n onSelectItem(id: number) {\n this.unselectAll();\n this.setIndexItemSelected(id);\n const itemSelected: SelectItem = this.getItemSelected();\n itemSelected.selected = true;\n this.selectValue.emit(this.indexItemSelected);\n this.onChange(itemSelected);\n }\n\n onClickCallToAction() {\n this.onClose();\n this.clickOnCallToAction.emit(this.callToAction.value);\n }\n\n private getItemSelected(): SelectItem {\n return this.items[this.indexItemSelected];\n }\n\n showCategories() {\n this.openCategories = true;\n setTimeout(() => { // this will make the execution after the above boolean has changed\n this.searchElement.nativeElement.focus();\n }, 0);\n }\n\n private unselectAll() {\n this.items.forEach(item => item.selected = false);\n }\n\n private setIndexItemSelected(id: number) {\n this.indexItemSelected = this.items.findIndex(item => item.id === id);\n }\n\n // ControlValueAccessor methods\n\n onChange: (selectItem: SelectItem) => void = () => {};\n onTouch: any = () => {}\n\n writeValue(selectItem: any){\n if (!selectItem) {\n return;\n }\n this.unselectAll();\n selectItem.selected = true;\n this.setIndexItemSelected(selectItem.id);\n }\n\n registerOnChange(fn: any){\n this.onChange = fn;\n }\n registerOnTouched(fn: any){\n this.onTouch = fn;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SelectItem } from '../../components/shared/select/select-items.dto';\n\n@Pipe({\n name: 'selectFilters'\n})\n\nexport class SelectFiltersPipe implements PipeTransform {\n transform(items: SelectItem[], filterName: string): any {\n return items.filter(item => {\n const regexp = new RegExp(filterName, 'i');\n return regexp.test(item.name);\n });\n }\n}","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2} from '@angular/core';\n\n@Directive({\n selector: '[zIndexToggle]'\n})\nexport class ZindexToggleDirective implements OnInit, OnDestroy {\n isActived = false;\n\n @Output()\n public onEventChange: EventEmitter<any>;\n\n @Input('zIndexToggle')\n set isActive(value: boolean) {\n this.isActived = value;\n this.switchToggle();\n }\n get isActive(): boolean {\n return this.isActived;\n }\n\n constructor(private currentElement: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n }\n\n switchToggle() {\n if (this.isActived) {\n this.renderer.addClass(this.currentElement.nativeElement.parentElement.parentNode, 'zindexToggle');\n } else {\n this.renderer.removeClass(this.currentElement.nativeElement.parentElement.parentNode, 'zindexToggle');\n }\n }\n\n ngOnDestroy(): void {\n }\n}\n","import { 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';\nimport { SelectComponent } from './components/shared/select/select.component';\nimport { SelectFiltersPipe } from './pipes/select/select-filters.pipe';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\nimport { ZindexToggleDirective } from './directives/zindex-toggle.directive';\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 SelectComponent\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 ZindexToggleDirective\n];\n\nconst pipes = [\n PagniationArrayTotalPages,\n PagniationIsLastPage,\n PagniationText,\n ImageSrcPipe,\n NumberToArray,\n LargeNumberOfPagePipe,\n SelectFiltersPipe\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 PerfectScrollbarModule\n ],\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 {SelectComponent as ɵbh} from './lib/components/shared/select/select.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 ɵbq} from './lib/directives/abstract-debounce/abstract-debounce.directive';\nexport {DebounceKeyupDirective as ɵbr} from './lib/directives/abstract-debounce/debounce-keyup.directive';\nexport {AutoHideDirective as ɵbk} from './lib/directives/auto-hide.directive';\nexport {CopyClipboardDirective as ɵbl} from './lib/directives/copy-to-clipboard.directive';\nexport {DragDropDirective as ɵbi} from './lib/directives/drag-drop.directive';\nexport {LoadingDirective as ɵbj} from './lib/directives/loading.directive';\nexport {CheckBoxRow as ɵbn} from './lib/directives/table/checkBoxRow.directive';\nexport {TableColumn as ɵbm} from './lib/directives/table/column.directive';\nexport {TableColumnHeader as ɵbo} from './lib/directives/table/columnHeader.directive';\nexport {TableRow as ɵbp} from './lib/directives/table/raw.directive';\nexport {ZindexToggleDirective as ɵbs} from './lib/directives/zindex-toggle.directive';\nexport {ImageSrcPipe as ɵbw} from './lib/pipes/images/img-src.pipe';\nexport {NumberToArray as ɵbx} from './lib/pipes/number-to-array.pipe';\nexport {PagniationArrayTotalPages as ɵbt} from './lib/pipes/pagination/array-total-pages/array-pages.pipe';\nexport {LargeNumberOfPagePipe as ɵby} from './lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe';\nexport {PagniationText as ɵbv} from './lib/pipes/pagination/text/custom-text.pipe';\nexport {PagniationIsLastPage as ɵbu} from './lib/pipes/pagination/total-pages/is-last-page.pipe';\nexport {SelectFiltersPipe as ɵbz} from './lib/pipes/select/select-filters.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/components/shared/select/select.component.ts","ng://@wizishop/img-manager/lib/pipes/select/select-filters.pipe.ts","ng://@wizishop/img-manager/lib/directives/zindex-toggle.directive.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 angularFicheProductConfig: ImgManagerDisplayConfig = {\n stateDisplayed: 'closed',\n multipleImgMode: true,\n showImgManagerModule: true,\n showSelection: true,\n displayBtn: false,\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\" | 'angular-fiche-product') {\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 case 'angular-fiche-product':\n return this.angularFicheProductConfig\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 changeDisplayTab() {\n this.stateDisplayed = 'full';\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, Output, EventEmitter} 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 @Output()\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\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 switchDisplayWindowCard() {\n this.switchDisplayWindow.emit(true);\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';\nimport {Router} from '@angular/router';\nimport { SelectItem } from '../shared/select/select-items.dto';\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 @Output()\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\n\n tabs: SelectItem[] = [\n {\n name: 'ImgManager.Tabs.addImg',\n value: 'img-upload',\n selected: true,\n id: 0\n },\n {\n name: 'ImgManager.Tabs.imgLib',\n value: 'images-view',\n id: 1\n },\n {\n name: 'ImgManager.Tabs.freeImgLib',\n value: 'pexels-lib',\n id: 2\n },\n {\n name: 'ImgManager.Tabs.Editor',\n value: 'img-edition',\n hide: true,\n id: 3\n }\n ];\n\n tabActive: SelectItem = this.tabs[0];\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 private route: Router\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(item: SelectItem) {\n this.imgUpload = false;\n this.editTab = false;\n this.tabActive = item;\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 switchDisplayWindowImgView() {\n this.switchDisplayWindow.emit(true);\n }\n\n switchRouterLink(event) {\n\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 @Output()\n switchDisplayWindow: EventEmitter<boolean> = 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 displayLargeWindow(): void {\n this.switchDisplayWindow.emit(true);\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, Output, EventEmitter} 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 @Output()\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\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 switchDisplayWindowMosaic() {\n this.switchDisplayWindow.emit(true);\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, EventEmitter, Input, OnInit, Output} 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 @Output()\n switchDisplayWindow: EventEmitter<boolean> = new EventEmitter();\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 switchDisplayWindowCard() {\n this.switchDisplayWindow.emit(true);\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 {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectItem } from './select-items.dto';\nimport { CalllToAction } from './call-to-action.model';\n\n@Component({\n selector: 'wac-select',\n templateUrl: './select.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }]\n})\nexport class SelectComponent implements OnInit, ControlValueAccessor {\n @Input()\n items: SelectItem[];\n\n @Input()\n placeholder: string;\n\n @Input()\n label: string;\n\n @Input()\n maxWidthItems: string;\n\n @Input()\n search = false;\n\n @Input()\n type = 'default';\n\n @Input()\n callToAction: CalllToAction;\n\n @Input() maxWidth = '100%';\n\n @Input()\n disabled = false;\n\n @Output() selectValue = new EventEmitter<number>();\n\n @Output() clickOnCallToAction = new EventEmitter<any>();\n\n @ViewChild('search') searchElement: ElementRef;\n\n openCategories = false;\n searchValue = '';\n\n indexItemSelected: number = -1;\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit(): void {\n this.indexItemSelected = this.items.findIndex(item => item.selected);\n }\n\n onClose() {\n this.openCategories = false;\n }\n\n customTB(item: SelectItem, index: number) {\n return `${item.id}-${index}`;\n }\n\n onSelectItem(id: number) {\n this.unselectAll();\n this.setIndexItemSelected(id);\n const itemSelected: SelectItem = this.getItemSelected();\n itemSelected.selected = true;\n this.selectValue.emit(this.indexItemSelected);\n this.onChange(itemSelected);\n }\n\n onClickCallToAction() {\n this.onClose();\n this.clickOnCallToAction.emit(this.callToAction.value);\n }\n\n private getItemSelected(): SelectItem {\n return this.items[this.indexItemSelected];\n }\n\n showCategories() {\n this.openCategories = true;\n setTimeout(() => { // this will make the execution after the above boolean has changed\n this.searchElement.nativeElement.focus();\n }, 0);\n }\n\n private unselectAll() {\n this.items.forEach(item => item.selected = false);\n }\n\n private setIndexItemSelected(id: number) {\n this.indexItemSelected = this.items.findIndex(item => item.id === id);\n }\n\n // ControlValueAccessor methods\n\n onChange: (selectItem: SelectItem) => void = () => {};\n onTouch: any = () => {}\n\n writeValue(selectItem: any){\n if (!selectItem) {\n return;\n }\n this.unselectAll();\n selectItem.selected = true;\n this.setIndexItemSelected(selectItem.id);\n }\n\n registerOnChange(fn: any){\n this.onChange = fn;\n }\n registerOnTouched(fn: any){\n this.onTouch = fn;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SelectItem } from '../../components/shared/select/select-items.dto';\n\n@Pipe({\n name: 'selectFilters'\n})\n\nexport class SelectFiltersPipe implements PipeTransform {\n transform(items: SelectItem[], filterName: string): any {\n return items.filter(item => {\n const regexp = new RegExp(filterName, 'i');\n return regexp.test(item.name);\n });\n }\n}","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2} from '@angular/core';\n\n@Directive({\n selector: '[zIndexToggle]'\n})\nexport class ZindexToggleDirective implements OnInit, OnDestroy {\n isActived = false;\n\n @Output()\n public onEventChange: EventEmitter<any>;\n\n @Input('zIndexToggle')\n set isActive(value: boolean) {\n this.isActived = value;\n this.switchToggle();\n }\n get isActive(): boolean {\n return this.isActived;\n }\n\n constructor(private currentElement: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n }\n\n switchToggle() {\n if (this.isActived) {\n this.renderer.addClass(this.currentElement.nativeElement.parentElement.parentNode, 'zindexToggle');\n } else {\n this.renderer.removeClass(this.currentElement.nativeElement.parentElement.parentNode, 'zindexToggle');\n }\n }\n\n ngOnDestroy(): void {\n }\n}\n","import { 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';\nimport { SelectComponent } from './components/shared/select/select.component';\nimport { SelectFiltersPipe } from './pipes/select/select-filters.pipe';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\nimport { ZindexToggleDirective } from './directives/zindex-toggle.directive';\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 SelectComponent\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 ZindexToggleDirective\n];\n\nconst pipes = [\n PagniationArrayTotalPages,\n PagniationIsLastPage,\n PagniationText,\n ImageSrcPipe,\n NumberToArray,\n LargeNumberOfPagePipe,\n SelectFiltersPipe\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 PerfectScrollbarModule\n ],\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 {SelectComponent as ɵbh} from './lib/components/shared/select/select.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 ɵbq} from './lib/directives/abstract-debounce/abstract-debounce.directive';\nexport {DebounceKeyupDirective as ɵbr} from './lib/directives/abstract-debounce/debounce-keyup.directive';\nexport {AutoHideDirective as ɵbk} from './lib/directives/auto-hide.directive';\nexport {CopyClipboardDirective as ɵbl} from './lib/directives/copy-to-clipboard.directive';\nexport {DragDropDirective as ɵbi} from './lib/directives/drag-drop.directive';\nexport {LoadingDirective as ɵbj} from './lib/directives/loading.directive';\nexport {CheckBoxRow as ɵbn} from './lib/directives/table/checkBoxRow.directive';\nexport {TableColumn as ɵbm} from './lib/directives/table/column.directive';\nexport {TableColumnHeader as ɵbo} from './lib/directives/table/columnHeader.directive';\nexport {TableRow as ɵbp} from './lib/directives/table/raw.directive';\nexport {ZindexToggleDirective as ɵbs} from './lib/directives/zindex-toggle.directive';\nexport {ImageSrcPipe as ɵbw} from './lib/pipes/images/img-src.pipe';\nexport {NumberToArray as ɵbx} from './lib/pipes/number-to-array.pipe';\nexport {PagniationArrayTotalPages as ɵbt} from './lib/pipes/pagination/array-total-pages/array-pages.pipe';\nexport {LargeNumberOfPagePipe as ɵby} from './lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe';\nexport {PagniationText as ɵbv} from './lib/pipes/pagination/text/custom-text.pipe';\nexport {PagniationIsLastPage as ɵbu} from './lib/pipes/pagination/total-pages/is-last-page.pipe';\nexport {SelectFiltersPipe as ɵbz} from './lib/pipes/select/select-filters.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":";;;;;;;;;;;;;;;;;;;IAQa,mBAAmB,GAAhC,MAAa,mBAAmB;IAO5B;QALA,oBAAe,GAAoB,EAAE,CAAC;QACtC,oBAAe,GAAY,KAAK,CAAC;QACzB,2BAAsB,GAAsB,EAAE,CAAC;QAC/C,mBAAc,GAA2B,IAAI,aAAa,EAAW,CAAC;KAE9D;IAEhB,eAAe;QACX,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;;IAGD,eAAe,CAAC,eAAgC;QAC5C,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhC,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,EAAE;YAC3C,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACpE;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;IAED,cAAc,CAAC,OAAuB;QAClC,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACtC;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,CAAC,OAAO,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;IAED,qBAAqB;QACjB,MAAM,eAAe,GAAG,IAAI,UAAU,CAAkB,UAAU;YAC9D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAChD,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;KAC1B;IAED,sBAAsB;QAClB,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,IAC/B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAC7D,CAAC;KACL;IAED,wBAAwB,CAAC,KAAa;QAClC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;IAED,qBAAqB,CAAC,OAAe;QACjC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,OAAO;SACV;QACD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,GAAG,IAAK,IAAI,CAAC,eAAe,EAAE;YACrC,IAAG,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE;gBACxB,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBACrC,MAAM;aACT;YACD,KAAK,EAAE,CAAC;SACX;KACJ;IAED,uBAAuB,CAAC,YAAsB;QAC1C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,OAAO;SACV;QAED,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAG,KAAK,EAAE,EAAE;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpD,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBACtC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;aACxC;SACJ;KACJ;IAED,oBAAoB;QAChB,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;;KAEjC;IAED,kBAAkB,CAAC,SAAkB;QACjC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;KACpC;IAED,mBAAmB,CAAC,eAAgC;;QAEhD,IAAI,eAAe,EAAE;YACjB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACvC,OAAO;SACV;;QAED,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACrD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC5D,OAAO;SACV;QACD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC7B;;;;;IAMD,kBAAkB,CAAC,OAAgB;QAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACrC;;;;;IAMD,6BAA6B;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAC7C;;;;;;IAOD,YAAY,CAAC,KAA4B;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;EACJ;;AAlIY,mBAAmB;IAH/B,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;;GACW,mBAAmB,CAkI/B;;MCvIY,mBAAmB;CAG/B;;ICGY,iBAAiB,GAA9B,MAAa,iBAAiB;IAkD5B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QA7CpC,WAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,OAAO,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC;;QAGpD,2BAAsB,GAA4B;YACxD,cAAc,EAAE,QAAQ;YACxB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI;YAC1B,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;YAChB,gBAAgB,EAAE,IAAI;SACvB,CAAA;QAEO,8BAAyB,GAA4B;YAC3D,cAAc,EAAE,QAAQ;YACxB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI;YAC1B,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE,IAAI;SACvB,CAAA;QAEO,oBAAe,GAA4B;YACjD,cAAc,EAAE,QAAQ;YACxB,eAAe,EAAE,KAAK;YACtB,oBAAoB,EAAE,IAAI;YAC1B,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,KAAK;SAClB,CAAA;QAEO,iCAA4B,GAA4B;YAC9D,cAAc,EAAE,QAAQ;YACxB,eAAe,EAAE,KAAK;YACtB,oBAAoB,EAAE,IAAI;YAC1B,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,IAAI;SACjB,CAAA;QAEO,qBAAgB,GAA4B;YAClD,cAAc,EAAE,QAAQ;YACxB,eAAe,EAAE,KAAK;YACtB,oBAAoB,EAAE,IAAI;YAC1B,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,KAAK;SAClB,CAAA;KAEwC;IAEzC,YAAY,CAAC,iBAAyB,EAAE,UAAkB;QACxD,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;KAC7B;IAEO,iBAAiB,CAAC,MAA4B;QACpD,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,WAAW,CAAC;gBACxC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS;aACxC,CAAC;SACH,CAAC;QACF,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;SAC/B;QACD,OAAO,MAAM,CAAC;KACf;IAED,cAAc,CAAC,MAA4B;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;KACxF;IAED,mBAAmB,CAAC,MAA4B;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7F;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,WAAW,MAAM,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KAC5F;IAED,SAAS,CAAC,MAA2B;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACrD;KACF;IAED,UAAU,CAAC,QAAkB;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACtG;IAED,eAAe,CAAC,GAAW,EAAE,QAAiB;QAC5C,MAAM,IAAI,GAAG;YACX,GAAG;YACH,QAAQ;SACT,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,kBAAkB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KAC/G;IAED,UAAU,CAAC,WAAmB,EAAE,OAAe;QAC7C,MAAM,IAAI,GAAG;YACX,WAAW;YACX,IAAI,EAAG,KAAK;SACb,CAAA;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,WAAW,OAAO,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KAC3G;IAED,aAAa,CAAC,QAAgB,EAAE,OAAe;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,WAAW,OAAO,cAAc,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACzH;IAED,SAAS,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,WAAW,OAAO,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KAChG;IAED,iBAAiB,CAAC,QAAkB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,yBAAyB,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KACjH;IAED,0BAA0B,CAAC,WAAuG;QAChI,QAAQ,WAAW;YACjB,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAE/B,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,eAAe,CAAC;YAE9B,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,sBAAsB,CAAC;YAErC,KAAK,oBAAoB;gBACvB,OAAO,IAAI,CAAC,4BAA4B,CAAC;YAE3C,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,CAAC,yBAAyB,CAAA;YAEvC;gBACE,OAAO;SACV;KACF;IAED,6BAA6B;QAC3B,OAAO;YACL,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,sBAAsB;YAC3B,IAAI,CAAC,4BAA4B;SAClC,CAAA;KACF;CACF,CAAA;;YArG2B,UAAU;;;AAlDzB,iBAAiB;IAH7B,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;qCAmD0B,UAAU;GAlDzB,iBAAiB,CAuJ7B;;IC1JY,aAAa,GAA1B,MAAa,aAAa;IAIxB;QAFA,iBAAY,GAAoB,IAAI,CAAC;KAErB;IAEhB,eAAe,CAAC,YAA6B;QAC3C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KAClC;IAED,SAAS,CAAC,IAA0C;QAClD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;aAC/C,MAAM,CAAC,GAAG,IACT,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAChC,CAAC,CAAC,CAAC,CAAC;QAEL,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;KACzC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;aACpC,GAAG,CAAC,IAAI,IACP,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACzB,CAAC;KACH;CACF,CAAA;;AAzBY,aAAa;IAHzB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;;GACW,aAAa,CAyBzB;;ICvBY,uBAAuB,GAApC,MAAa,uBAAuB;IAIlC,YACY,iBAAoC,EACpC,aAA4B;QAD5B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,kBAAa,GAAb,aAAa,CAAe;KACpC;;;;;;IAOJ,iBAAiB,CAAC,cAAmC;QACnD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3G,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;KACjE;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;KAC1C;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;KAC5C;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;KAC7C;IAED,eAAe;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;KAC7C;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;KAC7C;IAED,eAAe;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC;KAC9C;CACF,CAAA;;YAtCgC,iBAAiB;YACrB,aAAa;;;AAN7B,uBAAuB;IAHnC,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;qCAM+B,iBAAiB;QACrB,aAAa;GAN7B,uBAAuB,CA2CnC;;IC9CY,mBAAmB,GAAhC,MAAa,mBAAmB;IAI5B;QAFQ,0BAAqB,GAAG,2BAA2B,CAAC;KAG3D;;;;;;IAOD,wBAAwB,CAAC,KAAc;QACnC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;KAChE;IAED,wBAAwB;QACpB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC/D,OAAO,KAAK,IAAI,MAAM,CAAC;KAC1B;CAEJ,CAAA;;AArBY,mBAAmB;IAH/B,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;;GACW,mBAAmB,CAqB/B;;ICXY,YAAY,GAAzB,MAAa,YAAY;IAUvB,YACU,qBAA8C;QAA9C,0BAAqB,GAArB,qBAAqB,CAAyB;QAJhD,6BAAwB,GAAuC,IAAI,eAAe,CAAoB,IAAI,CAAC,CAAC;QAC5G,yBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;KAIvE;IAEG,iBAAiB;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,CAAC;KAClE;IAED,YAAY;QACX,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,GAAG,sBAAsB,CAAC;KAC5E;IAED,+BAA+B;QAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC;KAClC;IAED,sBAAsB,CAAE,QAA2B;QACjD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9C;IAED,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC1C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QACD,OAAO,IAAI,UAAU,CAAC,QAAQ;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC;gBACvB,QAAQ,EAAE;oBACN,IAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAY,EAAE;wBACpC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC;qBACvB;yBAAM;wBACH,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;qBAClC;iBACJ;aACA,CAAC,CAAA;SACL,CAAC,CAAC;KACJ;IAEO,eAAe,CAAC,QAAoC;QAC1D,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;gBAC5B,MAAM,EAAE,IAAI,CAAC,WAAW;aAEzB,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ;gBACf,IAAI,CAAC,QAAQ,GAAI,QAAQ,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACrB,CAAC,CAAC;SACJ;KACF;IAEO,SAAS;QACb,OAAO,IAAI,UAAU,CAAC,QAAQ;YAC5B,IAAG,IAAI,CAAC,QAAQ,EAAE;gBAChB,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACrB;iBAAI;gBACH,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;aAChC;SACF,CAAC,CAAC;KACN;IAEO,eAAe,CAAC,QAA0B;QAEhD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG;YACZ,QAAQ,CAAC,QAAQ,EAAE,CAAC;SACrB,CAAA;QACD,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC5D;CACF,CAAA;;YAzEkC,uBAAuB;;;AAX7C,YAAY;IAHxB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;qCAYiC,uBAAuB;GAX7C,YAAY,CAoFxB;;IC5FY,eAAe,GAA5B,MAAa,eAAe;IAE1B;QAEQ,mBAAc,GAA2B,IAAI,OAAO,EAAiB,CAAC;QACtE,eAAU,GAAoB,IAAI,OAAO,EAAU,CAAC;QACpD,aAAQ,GAAoB,IAAI,OAAO,EAAU,CAAC;QAClD,wBAAmB,GAAqB,IAAI,OAAO,EAAW,CAAC;KALtD;IAOhB,cAAc,CAAC,OAAe;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAChC;IAED,yBAAyB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;KACxC;IAED,aAAa,CAAC,SAAwB;QACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACtC;IAED,wBAAwB;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAC5C;IAED,YAAY,CAAC,OAAe;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC9B;IAED,uBAAuB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;KACtC;IAED,uBAAuB,CAAC,KAAc;QACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,sBAAsB;QACnB,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;KACjD;CACH,CAAA;;AAxCY,eAAe;IAH3B,UAAU,CAAC;QACT,UAAU,EAAE,MAAM;KACnB,CAAC;;GACU,eAAe,CAwC3B;;ICzCY,UAAU,GAAvB,MAAa,UAAU;IAAvB;QACU,wBAAmB,GAAG,IAAI,OAAO,EAAE,CAAC;QACpC,sBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;QAE5D,yBAAoB,GAAG,IAAI,OAAO,EAAE,CAAC;QACrC,uBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;KAqBvE;IAnBC,aAAa;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAC;KAC/B;IAED,wBAAwB;QACtB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK;YAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC7C,CAAC,CAAC;KACJ;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAChC;IAED,sBAAsB;QACpB,MAAM,CAAC,QAAQ,GAAG;YAChB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACxC,CAAC;KACH;CACF,CAAA;;AA1BY,UAAU;IAHtB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,UAAU,CA0BtB;;IChBY,qBAAqB,GAAlC,MAAa,qBAAqB;IA2ChC,YACU,mBAAwC,EACxC,qBAA8C,EAC9C,mBAAwC,EACxC,YAA0B,EAC1B,eAAgC,EAChC,UAAsB;QALtB,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,0BAAqB,GAArB,qBAAqB,CAAyB;QAC9C,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,oBAAe,GAAf,eAAe,CAAiB;QAChC,eAAU,GAAV,UAAU,CAAY;QA/CvB,kBAAa,GAAY,KAAK,CAAC;QAE9B,qBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,qBAAgB,GAAY,KAAK,CAAC;QAW1C,0BAAqB,GAAY,KAAK,CAAC;QAkBvC,UAAK,GAAY,KAAK,CAAA;QAEtB,kBAAa,GAAY,KAAK,CAAC;QAE/B,YAAO,GAAY,KAAK,CAAC;KAYrB;IA3CK,IAAI,eAAe,CAAC,QAAiB;QAC5C,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACpE;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;IAGQ,IAAI,oBAAoB,CAAC,QAAiB;QACjD,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QACtC,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;KACF;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;IAEoD,gBAAgB,CAAC,KAAoB;QACxF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;YAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;IAoBD,QAAQ;QACN,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClE,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,WAAW;YAE1F,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;;gBAEpE,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,0BAA0B,EAAE,CAAC;;QAElC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;;QAEvH,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC;KAC5C;IAED,0BAA0B;QACxB,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,EAAE;YACtE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,CAAC;SAC1E;KACF;IAED,aAAa,CAAC,KAAK;QACjB,IAAI,KAAK,KAAK,aAAa,EAAE;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO;SACR;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAED,YAAY;QACV,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;YACpC,UAAU,CAAC;gBACT,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;gBAC9B,IAAI,CAAC,6BAA6B,EAAE,CAAC;aACtC,EAAE,EAAE,CAAC,CAAC;SACR;KACF;IAED,SAAS;QACP,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;IAED,QAAQ;QACN,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,OAAO;QACL,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,gCAAgC,EAAE,CAAC;;QAExC,UAAU,CAAC;YACT,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAC9B,EAAE,GAAG,CAAC,CAAC;KACT;IAED,kBAAkB;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;;;;IAKD,oBAAoB;QAClB,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC;KACjF;IAED,kBAAkB;QAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;SAC1C;QAED,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;KACjC;IAED,iBAAiB;QACf,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;KACzE;IAED,6BAA6B;QAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC;KAC1D;IAED,gCAAgC;QAC9B,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE;YAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACnD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;SACtB;KACF;IAED,gBAAgB;QACd,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;KAC9B;IAED,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;KACvC;CACF,CAAA;;YAzHgC,mBAAmB;YACjB,uBAAuB;YACzB,mBAAmB;YAC1B,YAAY;YACT,eAAe;YACpB,UAAU;;AAhDvB;IAAR,KAAK,EAAE;;6DAAgC;AAC/B;IAAR,KAAK,EAAE;;4DAAgC;AAC/B;IAAR,KAAK,EAAE;8BAAiB,mBAAmB;6DAAC;AACnC;IAAT,MAAM,EAAE;;+DAAuC;AAGvC;IAAR,KAAK,EAAE;;;4DAGP;AAOQ;IAAR,KAAK,EAAE;;;iEAKP;AAMoD;IAApD,YAAY,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,CAAC;;qCAAyB,aAAa;;6DAIzF;AAhCU,qBAAqB;IAJjC,SAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,ytDAA8C;KAC/C,CAAC;qCA6C+B,mBAAmB;QACjB,uBAAuB;QACzB,mBAAmB;QAC1B,YAAY;QACT,eAAe;QACpB,UAAU;GAjDrB,qBAAqB,CAqKjC;;MCnLY,SAAS;CACtB,OAAO,CAAC,WAAW,EAAE;;IAGnB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC;;IAGhC,UAAU,CAAC,QAAQ,EAAE;QACnB,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAC,CAAC;QACnB,OAAO,CAAC,kBAAkB,CAAE;KAC7B,CAAC;CACH,CAAC;;ICLW,YAAY,GAAzB,MAAa,YAAY;IAWrB,YACY,eAAgC,EAChC,gBAAkC;QADlC,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAX9C,cAAS,GAAG,yBAAyB,CAAC;QAEtC,gBAAW,GAAmB;YAC5B,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;SACf,CAAA;KAOQ;IAET,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK;YAC7C,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAE3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC;SACpD,CAAC,CAAC;KACJ;IAED,2BAA2B,CAAC,MAAc,EAAE,UAAkB;QAC5D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK;YAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAErE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC;SAClD,CAAC,CAAC;KACJ;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;SAClC;KACF;IAEO,aAAa,CAAC,MAAc;QAClC,MAAM,UAAU,GAAY,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;KAClE;CACJ,CAAA;;YApCgC,eAAe;YACd,gBAAgB;;;AAbrC,YAAY;IAHxB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;qCAa+B,eAAe;QACd,gBAAgB;GAbrC,YAAY,CAgDxB;;ICxCY,kBAAkB,GAA/B,MAAa,kBAAkB;IAc7B,YACU,UAA6B,EAC7B,YAA0B,EAC1B,qBAA8C;QAF9C,eAAU,GAAV,UAAU,CAAmB;QAC7B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,0BAAqB,GAArB,qBAAqB,CAAyB;QAfxD,UAAK,GAAQ,EAAE,CAAC;QAChB,cAAS,GAAY,KAAK,CAAC;QAGjB,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAI3C,gBAAW,GAAG,8BAA8B,CAAC;QAC7C,sBAAiB,GAAG,wCAAwC,CAAC;QAC7D,gBAAW,GAAG,kCAAkC,CAAC;KAM3C;IAEN,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;KACpC;IAED,kBAAkB,CAAC,KAAU;QAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACrC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,GAAG,sBAAsB,CAAC;KAC7E;IAED,wBAAwB,CAAC,SAAiB;QACxC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;KAC5B;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC1B,OAAO;SACR;QAED,IAAI,CAAC,SAAS,GAAE,IAAI,CAAC;QACrB,MAAM,eAAe,GAAsB,EAAE,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YAExB,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1C,IAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC/B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9C,IAAI,CAAC,SAAS,GAAE,KAAK,CAAC;gBACtB,SAAS;aACV;YACD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC5D;QAED,QAAQ,CAAC,eAAe,CAAC,CAAC,SAAS,CACjC,CAAC,GAAoB;YACnB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gBACrB,IAAI,CAAC,SAAS,GAAE,KAAK,CAAC;SACvB,EACD,KAAK;YACH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,GAAE,KAAK,CAAC;SACvB,CACF,CAAA;KACF;;;;;;IAOD,WAAW,CAAC,GAAoB;QAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5B;IAED,WAAW,CAAC,QAAgB;QAC1B,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;KAC3C;;;;;IAMD,sBAAsB;QACpB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;KAC9C;CACF,CAAA;;YA1EuB,iBAAiB;YACf,YAAY;YACH,uBAAuB;;AAZ/C;IAAR,KAAK,EAAE;;0DAAgC;AAC9B;IAAT,MAAM,EAAE;;uDAAkC;AAEd;IAA5B,SAAS,CAAC,gBAAgB,CAAC;8BAAiB,UAAU;0DAAC;AAR7C,kBAAkB;IAP9B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,kzCAA0C;QAC1C,UAAU,EAAE;YACV,SAAS;SACV;KACF,CAAC;qCAgBsB,iBAAiB;QACf,YAAY;QACH,uBAAuB;GAjB7C,kBAAkB,CAyF9B;;IChGY,oBAAoB,GAAjC,MAAa,oBAAoB;IAS7B,YACU,UAA6B,EAC7B,YAA0B;QAD1B,eAAU,GAAV,UAAU,CAAmB;QAC7B,iBAAY,GAAZ,YAAY,CAAc;QAT5B,iBAAY,GAAoB,EAAE,CAAC;QACnC,uBAAkB,GAA+B,IAAI,OAAO,EAAqB,CAAC;QAElF,mBAAc,GAAG,mCAAmC,CAAC;QACrD,qBAAgB,GAAG,iCAAiC,CAAC;QACrD,oBAAe,GAAG,gCAAgC,CAAC;QAOvD,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;IAED,eAAe,CAAC,YAA6B;QACzC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KACpC;IAED,eAAe,CAAC,cAAiC;QAC7C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAChD;IAEO,SAAS;QACb,IAAI,CAAC,kBAAkB;aACpB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aACvB,SAAS,CAAC,CAAC,iBAAmC;YAC3C,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;SAC3C,CAAC,CAAC;KACN;IAEO,aAAa,CAAC,iBAAoC;QACtD,MAAM,OAAO,GAAkB,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU;aACZ,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC;aACpD,SAAS,CACR,CAAC,IAAmB;YAClB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACnD,EACD,CAAC,KAAK;YACJ,OAAO,CAAC,YAAY,GAAG,iBAAiB,CAAC,YAAY,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClD,CACF,CAAC;KACP;IAEO,cAAc,CAAC,OAAe;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,OAAO;SACR;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE;YACvC,IAAG,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;gBAC9B,OAAO,OAAO,CAAC;aAChB;SACF;QAED,OAAO,IAAI,CAAC;KACf;CAEJ,CAAA;;YA1DyB,iBAAiB;YACf,YAAY;;;AAX3B,oBAAoB;IADhC,UAAU,CAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAC;qCAWP,iBAAiB;QACf,YAAY;GAX3B,oBAAoB,CAoEhC;;IC9DY,mBAAmB,GAAhC,MAAa,mBAAmB;IAY9B,YACU,mBAAwC,EACxC,oBAA0C;QAD1C,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,yBAAoB,GAApB,oBAAoB,CAAsB;QAZpD,iBAAY,GAAoB,EAAE,CAAC;QAM1B,oBAAe,GAAY,KAAK,CAAC;QAE1C,wBAAmB,GAA0B,IAAI,YAAY,EAAE,CAAC;KAK3D;IAEL,QAAQ;QACN,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,aAAa,CAAC,GAAoB;QAChC,GAAG,CAAC,OAAO,CAAC,OAAO,IACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAC9B,CAAC;QACJ,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9D;IAED,iBAAiB,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;YACpC,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC1C;aAAM;YACL,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC3C;KACF;IAED,uBAAuB;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,eAAe,CAAC,cAAiC;QAC/C,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;KAC3D;IAEO,SAAS;QACf,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,YAAY;YAC/F,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACtD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE;gBACvC,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC9C,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;iBAC1B;aACF;SACF,CAAC,CAAC;KACJ;IACD,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;KACvC;CACF,CAAA;;YAlDgC,mBAAmB;YAClB,oBAAoB;;AAR3C;IAAR,KAAK,EAAE;;2DAAgC;AAC/B;IAAR,KAAK,EAAE;;yDAA4B;AAC3B;IAAR,KAAK,EAAE;;4DAAkC;AAE1C;IADC,MAAM,EAAE;8BACY,YAAY;gEAA+B;AAVrD,mBAAmB;IAP/B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,ykHAA2C;QAC3C,UAAU,EAAE;YACV,SAAS;SACV;KACF,CAAC;qCAc+B,mBAAmB;QAClB,oBAAoB;GAdzC,mBAAmB,CA+D/B;;IChEY,gBAAgB,GAA7B,MAAa,gBAAgB;IA6D3B,YACU,mBAAoC,EACpC,YAA0B,EAC1B,KAAa;QAFb,wBAAmB,GAAnB,mBAAmB,CAAiB;QACpC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAQ;QA7DvB,oBAAe,GAAY,KAAK,CAAC;QAIjC,kBAAa,GAAG,KAAK,CAAC;QAGtB,qBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;QAGtC,eAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAGhC,wBAAmB,GAA0B,IAAI,YAAY,EAAE,CAAC;QAEhE,SAAI,GAAiB;YACnB;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,YAAY;gBACnB,QAAQ,EAAE,IAAI;gBACd,EAAE,EAAE,CAAC;aACN;YACD;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,aAAa;gBACpB,EAAE,EAAE,CAAC;aACN;YACD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,YAAY;gBACnB,EAAE,EAAE,CAAC;aACN;YACD;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,IAAI;gBACV,EAAE,EAAE,CAAC;aACN;SACF,CAAC;QAEF,cAAS,GAAe,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;QAIrC,YAAO,GAAG,KAAK,CAAC;QAIhB,cAAS,GAAG,KAAK,CAAC;QAKlB,6BAAwB,GAAsB;YAC5C,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;SACf,CAAC;KAMK;IAEP,QAAQ;QACN,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC,SAAS;YACrE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC,CAAC,CAAC;KACJ;IAED,UAAU,CAAC,IAAgB;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACvB;IAED,aAAa,CAAC,GAAoB;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;KAC9C;IAED,YAAY,CAAC,MAAc;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,iBAAiB;QACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC/B;IAED,0BAA0B;QACxB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,gBAAgB,CAAC,KAAK;KAErB;IAED,kBAAkB;QAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;CACF,CAAA;;YAjDgC,eAAe;YACtB,YAAY;YACnB,MAAM;;AA7DvB;IADC,KAAK,EAAE;;yDACyB;AAEjC;IADC,KAAK,EAAE;;wDACuB;AAE/B;IADC,KAAK,EAAE;;uDACc;AAGtB;IADC,MAAM,EAAE;;0DAC6B;AAGtC;IADC,MAAM,EAAE;;oDACuB;AAGhC;IADC,MAAM,EAAE;8BACY,YAAY;6DAA+B;AAsChE;IADC,SAAS,CAAE,gBAAgB,CAAE;8BACR,mBAAmB;8DAAE;AAtDhC,gBAAgB;IAJ5B,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,47HAAwC;KACzC,CAAC;qCA+D+B,eAAe;QACtB,YAAY;QACnB,MAAM;GAhEZ,gBAAgB,CA+G5B;;ICxHY,iBAAiB,GAA9B,MAAa,iBAAiB;IAA9B;QAEY,kBAAa,GAAG,IAAI,YAAY,EAAS,CAAC;QAEb,eAAU,GAAG,MAAM,CAAA;QAC5B,YAAO,GAAG,GAAG,CAAA;KA0B5C;IAxBuC,UAAU,CAAC,GAAQ;QACvD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAE6C,WAAW,CAAC,GAAQ;QAChE,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;KACpB;IAEwC,MAAM,CAAC,GAAQ;QACtD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAClB,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC;KACF;CACF,CAAA;AA7BW;IAAT,MAAM,EAAE;;wDAA2C;AAEb;IAAtC,WAAW,CAAC,wBAAwB,CAAC;;qDAAoB;AAC5B;IAA7B,WAAW,CAAC,eAAe,CAAC;;kDAAc;AAEL;IAArC,YAAY,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;;;;mDAKpC;AAEsC;IAAtC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;;;;oDAKrC;AAEiC;IAAjC,YAAY,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;;;;+CAShC;AA9BU,iBAAiB;IAH7B,SAAS,CAAC;QACT,QAAQ,EAAE,eAAe;KAC1B,CAAC;GACW,iBAAiB,CA+B7B;;ICzBY,aAAa,GAA1B,MAAa,aAAa;IAMxB,YACU,IAAgB,EAChB,qBAA8C,EAC9C,gBAAkC;QAFlC,SAAI,GAAJ,IAAI,CAAY;QAChB,0BAAqB,GAArB,qBAAqB,CAAyB;QAC9C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAL5C,cAAS,GAAG,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC;QAOvE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ;YACnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC7B,CAAC,CAAA;KACF;IAED,OAAO,CAAC,IAAY;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;KAClE;IAEF,cAAc,CAAC,QAAgB,EAAE,OAAe,EAAE,IAAY;QAC5D,IAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE;YAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,CAAC;YAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,CAAC;SAC9D;QAED,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,IAAI,WAAW,CAAC;gBACvB,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM;aACvC,CAAC;SACH,CAAC;QAEF,IAAI,OAAO,CAAC;;QAGZ,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvC,OAAO,GAAG,iBAAiB,QAAQ,aAAa,OAAO,SAAS,IAAI,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC;SAE5F;aAAM;YACL,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,CAAC;;YAGlE,IAAI,YAAY,IAAI,YAAY,KAAK,OAAO,IAAI,YAAY,KAAK,MAAM,EAAE;gBACvE,OAAO,GAAG,iBAAiB,YAAY,aAAa,OAAO,SAAS,IAAI,eAAe,CAAC;aACzF;iBAAM;gBACL,OAAO,GAAG,qBAAqB,OAAO,SAAS,IAAI,EAAE,CAAC;aACvD;SACF;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAC/D,GAAG,CAAC,CAAC,IAAiB;YACpB,OAAO,IAAI,CAAC;SACb,CAAC,CACH,CAAC;KACH;CACF,CAAA;;YAjDiB,UAAU;YACO,uBAAuB;YAC5B,gBAAgB;;;AATjC,aAAa;IAHzB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;qCAQgB,UAAU;QACO,uBAAuB;QAC5B,gBAAgB;GATjC,aAAa,CAwDzB;;MC/DY,cAAc;CAC3B,OAAO,CAAC,eAAe,EAAE;IACvB,UAAU,CAAC,yBAAyB,EAAE,EAAE,CAAC;IACzC,UAAU,CAAC,YAAY,EAAE;QACvB,KAAK,CAAC,QAAQ,EAAE;YACd,KAAK,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAC,CAAC;YACnD,OAAO,CAAC,EAAE,EAAE;gBACV,OAAO,CAAC,sCAAsC,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;aAC1F,CAAC;SACH,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KACvB,CAAC;CACH,CAAC;;ICKW,iBAAiB,GAA9B,MAAa,iBAAiB;IAsC5B,YACU,eAA8B,EAC9B,UAA6B,EAC7B,YAA0B,EAC1B,gBAAkC;QAHlC,oBAAe,GAAf,eAAe,CAAe;QAC9B,eAAU,GAAV,UAAU,CAAmB;QAC7B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QArC5C,gBAAW,GAAW,EAAE,CAAC;;QAGzB,kBAAa,GAAY,KAAK,CAAC;QAG/B,oBAAe,GAAG,IAAI,YAAY,EAAE,CAAC;QAErC,YAAO,GAAG,EAAE,CAAC;QACb,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,aAAQ,GAAG,CAAC,CAAC;QAEb,gBAAW,GAAG,CAAC,CAAC;QAChB,cAAS,GAAG,IAAI,CAAC;QACjB,kBAAa,GAAG,IAAI,CAAC;QACrB,kBAAa,GAAoB,EAAE,CAAC;QACpC,eAAU,GAAG,CAAC,CAAC;QACf,sBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,iBAAY,GAAG,IAAI,CAAC;QAEpB,iBAAY,GAAG,kCAAkC,CAAC;QAClD,aAAQ,GAAG,8BAA8B,CAAC;QAC1C,uBAAkB,GAAG,mCAAmC,CAAC;QACzD,qBAAgB,GAAG,sCAAsC,CAAC;QAC1D,wBAAmB,GAAG,yCAAyC,CAAC;QAExD,SAAI,GAAmB,EAAE,CAAC;KAW3B;IAToB,IAAI,OAAO,CAAC,OAAmB;QACxD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;KAC7B;IASD,QAAQ;KACP;IAED,eAAe;QACb,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IAED,0BAA0B;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;QAE1D,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACrB;QAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK;YAClC,IAAI,KAAK,GAAG,KAAK,EAAE;gBACjB,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;SACF,CAAC,CAAC;KACJ;IAED,mBAAmB;QACjB,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,eAAe;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,cAAc;QACZ,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,cAAc,EAAE;YAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;;QAGD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YAC3E,OAAO;SACR;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAC/G,CAAC,IAAiB;YAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;YAE/C,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;oBACvB,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC7C,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;oBAEnD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;oBACrD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACxD,CAAC,CAAC;aACJ;YAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B,EACD,KAAK;YACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACvD,CACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC3B;IAED,aAAa;QACX,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClH,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAmB,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAErH,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;gBACtB,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;SACF;KACF;IAED,gBAAgB;QACd,KAAK,IAAI,WAAW,GAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,UAAU,EAAG,WAAW,EAAE,EAAE;YACrE,MAAM,YAAY,GAAkB;gBAClC,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,EAAE;aACX,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACvC;KACF;IAED,aAAa;QACX,MAAM,UAAU,GAAG;YACjB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM;SACrC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,KAAK;YAC7C,IAAI,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE;gBAC3C,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;gBACzB,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;aACzC;SACF,CAAC,CAAC;QACH,OAAO,UAAU,CAAC,KAAK,CAAC;KACzB;IAED,WAAW;QACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,WAAW,CAAC,KAAuB,EAAE,GAAW;QAC9C,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAC5G,CAAC,GAAkB;YACjB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACtD,EACD,KAAK;YACH,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,IAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;gBAClD,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aAC3F;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACpD;SACF,CAAC,CAAC;;QAGH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC7B;IAED,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;KAC7C;CACF,CAAA;;YA/J4B,aAAa;YAClB,iBAAiB;YACf,YAAY;YACR,gBAAgB;;AAvC5C;IADC,KAAK,EAAE;;yDACuB;AAE/B;IADC,KAAK,EAAE;;sDACiB;AAGzB;IADC,KAAK,EAAE;;wDACuB;AAG/B;IADC,MAAM,EAAE;;0DAC4B;AAuBV;IAA1B,SAAS,CAAC,cAAc,CAAC;8BAAsB,UAAU;qCAAV,UAAU;gDAEzD;AApCU,iBAAiB;IAR7B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,mvJAA0C;QAC1C,UAAU,EAAE;YACV,SAAS;YACT,cAAc;SACf;KACF,CAAC;qCAwC2B,aAAa;QAClB,iBAAiB;QACf,YAAY;QACR,gBAAgB;GA1CjC,iBAAiB,CAsM7B;;ICzMqB,mBAAmB,GAAzC,MAAsB,mBAAmB;IAwCrC,YACY,UAA6B,EAC7B,mBAAwC,EACxC,IAAgB,EAChB,aAA4B,EAC5B,mBAAoC,EACpC,YAA0B,EAC1B,gBAAkC,EAClC,eAAwC;QAPxC,eAAU,GAAV,UAAU,CAAmB;QAC7B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,SAAI,GAAJ,IAAI,CAAY;QAChB,kBAAa,GAAb,aAAa,CAAe;QAC5B,wBAAmB,GAAnB,mBAAmB,CAAiB;QACpC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,oBAAe,GAAf,eAAe,CAAyB;QA9CpD,iBAAY,GAAoB,EAAE,CAAC;QAEnC,uBAAkB,GAAuB,IAAI,YAAY,EAAE,CAAC;QAG5D,iBAAY,GAAiB;YAC3B,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,yBAAoB,GAAY,KAAK,CAAC;QAGtC,YAAO,GAAY,KAAK,CAAC;QAEzB,kBAAa,GAA0B,IAAI,YAAY,EAAE,CAAC;QAG1D,kBAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAEnC,sBAAiB,GAAoC,IAAI,YAAY,EAAE,CAAC;QAE/D,cAAS,GAAG,KAAK,CAAC;QASnB,mBAAc,GAAG,mCAAmC,CAAC;QACrD,wBAAmB,GAAG,qCAAqC,CAAC;QAYhE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,cAAc,CAAC;KAC9E;;IAGD,sBAAsB,CAAC,KAAK;QAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI;YAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,oBAAoB,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;QAC7E,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;;IAGD,eAAe;QACb,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KAC3B;IAED,MAAM,CAAC,OAAsB;QAC3B,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KACjD;IAED,iBAAiB,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;YACpD,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC1C;aAAM;YACL,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC3C;KACF;IAED,WAAW,CAAC,OAAsB;QAChC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAClD,IAAI;YACF,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACjE,EACD,KAAK;YACH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,GAAG,GAAI,IAAI,CAAC,mBAAmB,GAAE,IAAI,CAAC,cAAc,CAAC;YAClF,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAClC,CAAC,CAAC;KACN;IAED,mBAAmB,CAAC,KAAK;QACvB,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;KACtC;IAED,aAAa,CAAC,YAAoB,EAAE,SAAiB;QACnD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG;YACnF,IAAI,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACpC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SAC1B,CAAC,CAAC;KACJ;IAED,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAC,CAAC,CAAC;KAC7E;IAEO,cAAc,CAAC,SAAiB;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;KACxD;IAEO,mBAAmB;QACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAChC;IAEO,WAAW,CAAC,GAAW,EAAE,QAAgB;QAC/C,MAAM,CAAC,GAAQ,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;QACb,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACtB,CAAC,CAAC,KAAK,EAAE,CAAC;KACX;IAED,SAAS;QACP,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;SAClC;KACF;CACJ,CAAA;;YApG2B,iBAAiB;YACR,mBAAmB;YAClC,UAAU;YACD,aAAa;YACP,eAAe;YACtB,YAAY;YACR,gBAAgB;YACjB,uBAAuB;;AA9CpD;IADC,KAAK,EAAE;;yDAC2B;AAEnC;IADC,MAAM,EAAE;8BACW,YAAY;+DAA4B;AAG5D;IADC,KAAK,EAAE;;yDAQN;AAEF;IADC,KAAK,EAAE;;iEAC8B;AAGtC;IADC,KAAK,EAAE;;oDACiB;AAEzB;IADC,MAAM,EAAE;8BACM,YAAY;0DAA+B;AAG1D;IADC,MAAM,EAAE;;0DAC0B;AAEnC;IADC,MAAM,EAAE;8BACU,YAAY;8DAAyC;AAE/D;IAAR,KAAK,EAAE;;sDAAmB;AAG3B;IADC,KAAK,EAAE;;2DACuB;AA/Bb,mBAAmB;IADxC,SAAS,EAAE;qCA0CgB,iBAAiB;QACR,mBAAmB;QAClC,UAAU;QACD,aAAa;QACP,eAAe;QACtB,YAAY;QACR,gBAAgB;QACjB,uBAAuB;GAhDlC,mBAAmB,CA6IxC;;ICzIY,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,mBAAmB;IAqBvD,YACE,UAA6B,EAC7B,mBAAwC,EACxC,IAAgB,EAChB,aAA4B,EAC5B,mBAAoC,EACpC,YAA0B,EAC1B,gBAAkC,EAClC,eAAwC;QAExC,KAAK,CACH,UAAU,EACV,mBAAmB,EACnB,IAAI,EACJ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,eAAe,CAChB,CAAC;QA9BJ,eAAU,GAAG,KAAK,CAAC;QAGnB,sBAAiB,GAAuB,IAAI,YAAY,EAAE,CAAC;QAG3D,wBAAmB,GAA0B,IAAI,YAAY,EAAE,CAAC;QAEhE,oBAAe,GAAY,KAAK,CAAC;QACjC,wBAAmB,GAAG,KAAK,CAAC;KAsB3B;IAED,QAAQ;QACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC;KAC3D;IAED,kBAAkB;QAChB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,mBAAmB;QACjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;KAC/B;CACF,CAAA;;YAhCe,iBAAiB;YACR,mBAAmB;YAClC,UAAU;YACD,aAAa;YACP,eAAe;YACtB,YAAY;YACR,gBAAgB;YACjB,uBAAuB;;AA1B1C;IADC,KAAK,EAAE;;sDACmB;AAE3B;IADC,KAAK,EAAE;;kDACU;AAElB;IADC,KAAK,EAAE;;iDACe;AAEvB;IADC,KAAK,EAAE;;+CACM;AAId;IADC,MAAM,EAAE;8BACU,YAAY;2DAA4B;AAG3D;IADC,MAAM,EAAE;8BACY,YAAY;6DAA+B;AAhBrD,gBAAgB;IAP5B,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,45HAAwC;QACxC,UAAU,EAAE;YACV,SAAS;SACV;KACF,CAAC;qCAuBc,iBAAiB;QACR,mBAAmB;QAClC,UAAU;QACD,aAAa;QACP,eAAe;QACtB,YAAY;QACR,gBAAgB;QACjB,uBAAuB;GA7B/B,gBAAgB,CAsD5B;;IC9DY,kBAAkB,GAA/B,MAAa,kBAAkB;IAmB7B,YACU,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAbpC,eAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAE1C,cAAS,GAAY,KAAK,CAAC;QAC3B,kBAAa,GAAY,KAAK,CAAC;QAC/B,mBAAc,GAAY,KAAK,CAAC;QAChC,wBAAmB,GAAW,EAAE,CAAC;QAGjC,gBAAW,GAAW,kCAAkC,CAAC;QACzD,gBAAW,GAAW,kCAAkC,CAAC;QACzD,mBAAc,GAAW,yDAAyD,CAAA;KAI3E;IAEP,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KACjD;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAK,CAAC,IAAI,CAAC,cAAc,EAAE;YAChD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QAED,MAAM,aAAa,GAAoB,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3H,MAAM,gBAAgB,GAAoB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEpI,IAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE;YAC5C,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;YAC1D,OAAO;SACR;QAED,IAAG,IAAI,CAAC,aAAa,EAAC;YACpB,aAAa,CAAC,SAAS,CAAC,IAAI;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACxC,EACD,KAAK;gBACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;gBAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACrC,CAAC,CAAC;YACH,OAAO;SACR;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,gBAAgB,CAAC,SAAS,CAAC,IAAI;gBAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;gBAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACxC,EACD,KAAK;gBACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACrC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;IAED,YAAY,CAAC,MAAe;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC9B;IAED,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;KACjD;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;KACvB;IAED,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;KACtC;IAEO,mBAAmB,CAAC,gBAAiC,EAAE,aAA8B;;QAE3F,gBAAgB,CAAC,SAAS,CACxB,IAAI;YACF,aAAa,CAAC,SAAS,CACrB,IAAI;gBACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACxC,EACD,KAAK;gBACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACrC,CACF,CAAC;SACH,EACD,KAAK;YACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACrC,CACF,CAAC;KACH;CACF,CAAA;;YA1F8B,iBAAiB;;AAjB9C;IADC,KAAK,EAAE;;0DACO;AAEf;IADC,KAAK,EAAE;;qDACiB;AAEf;IAAT,MAAM,EAAE;;sDAAiC;AAP/B,kBAAkB;IAP9B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,2pEAA0C;QAC1C,UAAU,EAAE;YACV,SAAS;SACV;KACF,CAAC;qCAqB6B,iBAAiB;GApBnC,kBAAkB,CA8G9B;;ICzGY,iBAAiB,GAA9B,MAAa,iBAAiB;IAoC5B,YACU,YAA0B,EAC1B,UAA6B,EAC7B,iBAAkC,EAClC,gBAAkC,EAClC,YAA0B,EAC1B,QAAmB;QALnB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,eAAU,GAAV,UAAU,CAAmB;QAC7B,sBAAiB,GAAjB,iBAAiB,CAAiB;QAClC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,aAAQ,GAAR,QAAQ,CAAW;QAtCnB,oBAAe,GAAG,IAAI,YAAY,EAAE,CAAC;QAI/C,eAAU,GAAG,KAAK,CAAC;QAEnB,oBAAe,GAAG;YAChB,iCAAiC,EAAG;gBAClC,OAAO,EAAG,GAAG;gBACb,QAAQ,EAAG,GAAG;aACf;YACD,kCAAkC,EAAG;gBACnC,OAAO,EAAG,IAAI;gBACd,QAAQ,EAAG,IAAI;aAChB;YACD,+BAA+B,EAAG;gBAChC,OAAO,EAAG,IAAI;gBACd,QAAQ,EAAG,IAAI;aAChB;SACF,CAAA;QAED,qBAAgB,GAAY,KAAK,CAAC;QAIlC,SAAI,GAAmB,EAAE,CAAC;QAE1B,iBAAY,GAAG,kCAAkC,CAAC;QAClD,uBAAkB,GAAG,mCAAmC,CAAC;QACzD,wBAAmB,GAAG,yCAAyC,CAAC;QAChE,wBAAmB,GAAG,yCAAyC,CAAC;KASzD;IAEP,QAAQ;QACN,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QAC7D,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAED,uBAAuB;;QAErB,MAAM,yBAAyB,GAC7B,IAAI,CAAC,YAAY,CAAC,+BAA+B,EAAE,CAAC,SAAS,CAAE,CAAC,QAA2B;YACzF,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;aAC3D;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;gBAC/B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;aACjC;SACF,CAAC,CAAC;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;KAC3C;IAED,WAAW,CAAC,KAAa,EAAE,MAAc;QACvC,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO;SACR;QACD,MAAM,WAAW,GACf,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,GAAmB;YAC5D,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAClC,CAAC,CAAC;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC7B;IAEO,YAAY,CAAC,KAAa,EAAE,MAAc;QAChD,MAAO,YAAY,GAAsB;YACvC,IAAI,EAAE,cAAc;YACpB,UAAU,EAAG;gBACX,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS;gBAChC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;aACpC;YACD,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,6BAA6B,CAAC;SAC3E,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACzB,MAAM,EAAE,YAAY;YACpB,eAAe,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC;YAC7F,aAAa,EAAE;gBACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;SAEF,CAAC,CAAC;KACJ;IAEO,eAAe,CAAC,SAAiB,EAAE,WAAmB;QAC5D,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,MAAM,YAAY,GAChB,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,SAAS,CAC/D,CAAC,GAAkB;YACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACtD,EACD,KAAK;YACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;gBACnD,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;aAC7F;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACvD;SACF,CACF,CAAC;QAEJ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAE9B;IAEO,eAAe;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;KACpD;IAEO,kBAAkB;QACxB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;KACvD;IAED,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;KAC7C;CACF,CAAA;;YArGyB,YAAY;YACd,iBAAiB;YACV,eAAe;YAChB,gBAAgB;YACpB,YAAY;YAChB,SAAS;;AAxCpB;IAAR,KAAK,EAAE;;yDAAgC;AAE9B;IAAT,MAAM,EAAE;;0DAAsC;AAJpC,iBAAiB;IAJ7B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,24EAAyC;KAC1C,CAAC;qCAsCwB,YAAY;QACd,iBAAiB;QACV,eAAe;QAChB,gBAAgB;QACpB,YAAY;QAChB,SAAS;GA1ClB,iBAAiB,CA0I7B;;ICjJY,qBAAqB,GAAlC,MAAa,qBAAqB;IAchC,YACU,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAZxC,qBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;QAEhD,oBAAe,GAAoB,EAAE,CAAC;QACtC,gBAAW,GAAY,KAAK,CAAC;QAC7B,kBAAa,GAAY,KAAK,CAAC;QAC/B,iBAAY,GAAY,KAAK,CAAC;QAC9B,cAAS,GAAG,KAAK,CAAC;QAClB,cAAS,GAAY,KAAK,CAAC;QAC3B,uBAAkB,GAAG,CAAC,CAAC;QACvB,sBAAiB,GAAG,MAAM,CAAC;KAIpB;IAEP,QAAQ;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,mBAAmB,CAAC,6BAA6B,EAAE,CAAC,SAAS,CAAC,OAAO;YACxE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;SAC1B,CAAC,CAAA;KACH;IAED,IAAI;QACF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;IAED,cAAc;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;KACnE;IAED,SAAS,CAAC,KAAa;QACrB,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;KAC1D;IAED,IAAI,CAAC,KAA4B;QAC/B,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,EAAE;YAC9C,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC9C;KACF;IAED,sBAAsB,CAAC,KAA4B;QACjD,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KACxE;CACF,CAAA;;YAjCgC,mBAAmB;;AAbzC;IAAR,KAAK,EAAE;;2DAA4B;AAC1B;IAAT,MAAM,EAAE;;+DAAuC;AAHrC,qBAAqB;IAJjC,SAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,imDAA6C;KAC9C,CAAC;qCAgB+B,mBAAmB;GAfvC,qBAAqB,CAgDjC;;ICtDY,gBAAgB,GAA7B,MAAa,gBAAgB;IAM3B,YAAY,EAAc;QAH1B,mBAAc,GAAG,CAAC,CAAC;QACnB,aAAQ,GAAG,IAAI,CAAC;QAGd,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,aAAa;QACX,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC1B,OAAO;SACR;QACD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAEnE,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC1B,IAAI,IAAI,CAAC,cAAc,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;aACpE;YACD,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,GAAG,EAAE,EAAE;gBACzD,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;aACpE;SACF,EAAE,EAAE,CAAC,CAAC;KACR;IAED,WAAW;QACT,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;KACF;CACF,CAAA;;YA/BiB,UAAU;;AANf,gBAAgB;IAH5B,SAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;KAC7B,CAAC;qCAOgB,UAAU;GANf,gBAAgB,CAqC5B;;ICpCY,iBAAiB,GAA9B,MAAa,iBAAiB;IAI5B,YAAoB,WAAuB,EAAU,UAAsB;QAAvD,gBAAW,GAAX,WAAW,CAAY;QAAU,eAAU,GAAV,UAAU,CAAY;QAFlE,YAAO,GAAkB,IAAI,CAAC;QAIf,iBAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;KAFE;IAI/E,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,aAAsB;YAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC7E,MAAM,oBAAoB,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAEjE,IAAI,CAAC,aAAa,KAAK,oBAAoB,KAAK,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE;gBAC5G,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B;YAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,oBAAoB,KAAK,IAAI,EAAE;gBACzD,IAAI,WAAW,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBACpB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;wBACrC,WAAW,GAAG,KAAK,CAAC;qBACrB;iBACF,CAAC,CAAC;gBACH,IAAI,WAAW,EAAE;oBACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC9B;aACF;SACF,CAAC,CAAC;KACJ;CACF,CAAA;;YA1BkC,UAAU;YAAsB,UAAU;;AAHlE;IAAR,KAAK,EAAE;;yDAAwB;AACvB;IAAR,KAAK,EAAE;8BAAU,KAAK;kDAAgB;AAIf;IAAvB,MAAM,CAAC,cAAc,CAAC;8BAAe,YAAY;uDAA2B;AANlE,iBAAiB;IAH7B,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;KACzB,CAAC;qCAKiC,UAAU,EAAsB,UAAU;GAJhE,iBAAiB,CA8B7B;;ICjCY,sBAAsB,GAAnC,MAAa,sBAAsB;IAAnC;QAMS,WAAM,GAAyB,IAAI,YAAY,EAAU,CAAC;KAqBlE;IAlBQ,OAAO,CAAC,KAAiB;QAE9B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,OAAO;QAET,IAAI,QAAQ,GAAG,CAAC,CAAiB;YAC/B,IAAI,SAAS,GAAG,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;YAC3D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QAClD,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;KACvD;CACF,CAAA;AAxBC;IADC,KAAK,CAAC,gBAAgB,CAAC;;uDACD;AAGvB;IADC,MAAM,CAAC,QAAQ,CAAC;8BACF,YAAY;sDAAsC;AAGjE;IADC,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;;qCACZ,UAAU;;qDAiB/B;AA1BU,sBAAsB;IADlC,SAAS,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;GAC/B,sBAAsB,CA2BlC;;ICxBY,iBAAiB,GAA9B,MAAa,iBAAiB;IAO5B;QAFA,YAAO,GAAY,KAAK,CAAC;KAER;IAEjB,QAAQ;KACP;CAEF,CAAA;AATC;IADC,KAAK,EAAE;;4DACkB;AAE1B;IADC,KAAK,EAAE;;kDACiB;AALd,iBAAiB;IAJ7B,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,wdAAwC;KACzC,CAAC;;GACW,iBAAiB,CAY7B;;ICRY,0BAA0B,GAAvC,MAAa,0BAA0B;IAsBrC,YACU,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;QAX5B,oBAAe,GAAY,KAAK,CAAC;QAGzC,yBAAoB,GAAG,IAAI,YAAY,EAAW,CAAC;QAKnD,uBAAkB,GAAW,sCAAsC,CAAC;KAI7D;IAlBP,IAAI,cAAc,CAAC,cAAuB;QACxC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;KACvC;IACD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;IAeD,QAAQ;QACN,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KAC5C;IACD,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAC,IAAI,CAAC,GAAG,GAAG,CAAC;KAC9E;IAED,eAAe,CAAC,KAAK;QACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACtD;IAED,YAAY;QACV,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtC;CACF,CAAA;;YArByB,YAAY;;AApBpC;IADC,KAAK,EAAE;;6DACiB;AAGzB;IADC,KAAK,EAAE;;;gEAGP;AAOD;IADC,MAAM,EAAE;;wEAC0C;AAfxC,0BAA0B;IAJtC,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,sgHAA4C;KAC7C,CAAC;qCAwBwB,YAAY;GAvBzB,0BAA0B,CA4CtC;;MCpDY,YAAY;CACzB,OAAO,CAAC,mBAAmB,EAAE;IACvB,UAAU,CAAC,QAAQ,EAAE;QACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KACnD,CAAC;CACP,CAAC;;ICMW,gBAAgB,GAA7B,MAAa,gBAAgB;IAqI3B,YACU,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAvH9B,mBAAc,GAAY,KAAK,CAAC;QAGxC,wBAAmB,GAAG,IAAI,YAAY,EAAW,CAAC;QAGlD,eAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAGhC,8BAAyB,GAAG,IAAI,YAAY,EAAU,CAAC;QAEvD,gBAAW,GAAW,kCAAkC,CAAC;QAGzD,mBAAc,GAAY,KAAK,CAAC;QAChC,mBAAc,GAAY,KAAK,CAAC;QAChC,wBAAmB,GAAW,EAAE,CAAC;QACjC,cAAS,GAAY,KAAK,CAAC;QAC3B,cAAS,GAAY,KAAK,CAAC;QAC3B,iBAAY,GAAY,KAAK,CAAC;QAC9B,2BAAsB,GAAY,KAAK,CAAC;QAKxC,sBAAiB,GAAQ,EAAE,CAAC;QAC5B,iBAAY,GAAQ,EAAE,CAAC;QACvB,mBAAc,GAAG,CAAC,CAAC;QACnB,aAAQ,GAAG,CAAC,CAAC;QACb,UAAK,GAAG,CAAC,CAAC;QACV,gBAAW,GAAG,KAAK,CAAC;QACpB,6BAAwB,GAAG,KAAK,CAAC;QACjC,cAAS,GAAmB,EAAE,CAAC;;QAK/B,qBAAgB,GAAyB;YACvC;gBACE,KAAK,EAAE,oCAAoC;gBAC3C,MAAM,EAAE;oBACN,mBAAmB,EAAE,IAAI;iBAC1B;aACF;YACD;gBACE,KAAK,EAAE,kCAAkC;gBACzC,MAAM,EAAE;oBACN,mBAAmB,EAAE,KAAK;iBAC3B;gBACD,MAAM,EAAE,IAAI;aACb;YACD;gBACE,KAAK,EAAE,oCAAoC;gBAC3C,MAAM,EAAE;oBACN,mBAAmB,EAAE,IAAI;oBACzB,WAAW,EAAE,CAAC,GAAG,CAAC;iBACnB;aACF;YACD;gBACE,KAAK,EAAE,sCAAsC;gBAC7C,MAAM,EAAE;oBACN,mBAAmB,EAAE,IAAI;oBACzB,WAAW,EAAE,CAAC,GAAG,CAAC;iBACnB;aACF;YACD;gBACE,KAAK,EAAE,uCAAuC;gBAC9C,MAAM,EAAE;oBACN,mBAAmB,EAAE,IAAI;oBACzB,WAAW,EAAE,CAAC,GAAG,CAAC;iBACnB;aACF;SACF,CAAC;QAEF,mBAAc,GAAyB;YACrC;gBACE,KAAK,EAAE,sCAAsC;gBAC7C,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,IAAI;aACb;YACD;gBACE,KAAK,EAAE,0CAA0C;gBACjD,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,YAAY;aACrB;YACD;gBACE,KAAK,EAAE,sCAAsC;gBAC7C,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,cAAc;aACvB;YACD;gBACE,KAAK,EAAE,uCAAuC;gBAC9C,IAAI,EAAE,qBAAqB;gBAC3B,MAAM,EAAE,gBAAgB;aACzB;SACF,CAAC;QAEF,eAAU,GAAyB;YACjC;gBACE,KAAK,EAAE,kCAAkC;gBACzC,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,IAAI;aACb;YACD;gBACE,KAAK,EAAE,oCAAoC;gBAC3C,IAAI,EAAE,qBAAqB;gBAC3B,MAAM,EAAE,SAAS;aAClB;SACF,CAAC;;QAGF,qBAAgB,GAAoB;YAClC,mBAAmB,EAAE,KAAK;YAC1B,WAAW,EAAE,SAAS;SACvB,CAAA;KAII;IAjIL,IAAI,aAAa,CAAC,aAAsB;QACtC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IACD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;IA2HD,QAAQ;QACN,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;KACvE;IAED,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;KACzF;IAED,oBAAoB;QAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,kBAAkB,GAAG,MAAM,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACtE,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;KAC7D;IAED,YAAY,CAAC,MAAe;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC9B;IAED,SAAS;QACP,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;IAED,WAAW;QACT,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;;;IAMD,eAAe,CAAC,KAAU;QACxB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;IAED,YAAY,CAAC,KAAwB;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;KAC/D;IAED,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB;IAED,YAAY;QACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;IAED,eAAe;QACb,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACrC;;IAID,oBAAoB,CAAC,KAAa;QAChC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QACnD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;KACnC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,gBAAgB;QACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAEO,aAAa,CAAC,KAAW,EAAE,KAAa;;QAE9C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS;YAC5B,IAAI,CAAC,MAAM,GAAG,SAAS,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;SAClD,CAAC,CAAC;KACJ;IAEO,oBAAoB,CAAC,MAAW;QACtC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE;YAC7B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;SACpD;KACF;IAEO,sBAAsB;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAChD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;KACpC;;IAID,UAAU;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAED,WAAW;QACP,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAED,cAAc;QACV,IAAI,CAAC,SAAS,mCACP,IAAI,CAAC,SAAS,KACjB,KAAK,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAC/B,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAED,YAAY;QACR,IAAI,CAAC,SAAS,mCACP,IAAI,CAAC,SAAS,KACjB,KAAK,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAC/B,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAEO,eAAe;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,SAAS,mCACP,IAAI,CAAC,SAAS,KACjB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,QAAQ,GAClB,CAAC;KACH;;IAID,OAAO;QACH,IAAI,CAAC,KAAK,IAAK,IAAI,CAAC,KAAK,GAAG,GAAG,GAAE,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,mCACP,IAAI,CAAC,SAAS,KACjB,KAAK,EAAE,IAAI,CAAC,KAAK,GACpB,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAED,MAAM;QACF,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,mCACP,IAAI,CAAC,SAAS,KACjB,KAAK,EAAE,IAAI,CAAC,KAAK,GACpB,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAED,WAAW,CAAC,MAAc;QACxB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;KAChB;CACF,CAAA;;YApL0B,aAAa;;AAnItC;IADC,KAAK,EAAE;;mDACiB;AAGzB;IADC,KAAK,EAAE;;;qDAMP;AAOD;IADC,MAAM,EAAE;;6DACyC;AAGlD;IADC,MAAM,EAAE;;oDACuB;AAGhC;IADC,MAAM,EAAE;;mEAC8C;AAxB5C,gBAAgB;IAP5B,SAAS,CAAC;QACT,QAAQ,EAAE,SAAS;QACnB,6hIAAuC;QACvC,UAAU,EAAE;YACV,YAAY;SACb;KACF,CAAC;qCAuIyB,aAAa;GAtI3B,gBAAgB,CA0T5B;;IChTY,mBAAmB,GAAhC,MAAa,mBAAmB;IAuI9B,YACU,UAA6B,EAC7B,eAAgC,EAChC,mBAAwC,EACxC,YAA0B,EAC1B,mBAAwC,EACxC,oBAA0C;QAL1C,eAAU,GAAV,UAAU,CAAmB;QAC7B,oBAAe,GAAf,eAAe,CAAiB;QAChC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,yBAAoB,GAApB,oBAAoB,CAAsB;QAvI3C,kBAAa,GAAG,KAAK,CAAC;QACtB,oBAAe,GAAG,KAAK,CAAC;QAEjC,wBAAmB,GAA0B,IAAI,YAAY,EAAE,CAAC;;QAGhE,iBAAY,GAAiB;YAC3B,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;SACf,CAAC;QAGF,mBAAc,GAAW,GAAG,CAAC;QAC7B,mBAAc,GAAW,GAAG,CAAC;QAG7B,cAAS,GAAW,CAAC,CAAC;QAEtB,uBAAkB,GAAO;YACvB;gBACE,GAAG,EAAE,GAAG;gBACR,mBAAmB,EAAG,CAAC;gBACvB,mBAAmB,EAAG,GAAG;aAC1B;YACD;gBACE,GAAG,EAAE,GAAG;gBACR,mBAAmB,EAAG,CAAC;gBACvB,mBAAmB,EAAG,GAAG;aAC1B;YACD;gBACE,GAAG,EAAE,GAAG;gBACR,mBAAmB,EAAG,GAAG;gBACzB,mBAAmB,EAAG,MAAM;aAC7B;YACD;gBACE,GAAG,EAAE,IAAI;gBACT,mBAAmB,EAAG,MAAM;gBAC5B,mBAAmB,EAAG,GAAG;aAC1B;YACD;gBACE,GAAG,EAAE,IAAI;gBACT,mBAAmB,EAAG,IAAI;gBAC1B,mBAAmB,EAAG,KAAK;aAC5B;YACD;gBACE,GAAG,EAAE,IAAI;gBACT,mBAAmB,EAAG,GAAG;gBACzB,mBAAmB,EAAG,MAAM;aAC7B;YACD;gBACE,mBAAmB,EAAG,MAAM;gBAC5B,mBAAmB,EAAG,GAAG;aAC1B;SACF,CAAC;QAEF,mBAAc,GAAO;YACnB;gBACE,GAAG,EAAE,IAAI;gBACT,mBAAmB,EAAG,IAAI;gBAC1B,mBAAmB,EAAG,KAAK;aAC5B;YACD;gBACE,GAAG,EAAE,IAAI;gBACT,mBAAmB,EAAG,MAAM;gBAC5B,mBAAmB,EAAG,GAAG;aAC1B;YACD;gBACE,GAAG,EAAE,IAAI;gBACT,mBAAmB,EAAG,MAAM;gBAC5B,mBAAmB,EAAG,MAAM;aAC7B;YACD;gBACE,GAAG,EAAE,IAAI;gBACT,mBAAmB,EAAG,IAAI;gBAC1B,mBAAmB,EAAG,MAAM;aAC7B;YACD;gBACE,GAAG,EAAE,IAAI;gBACT,mBAAmB,EAAG,IAAI;gBAC1B,mBAAmB,EAAG,IAAI;aAC3B;YACD;gBACE,mBAAmB,EAAG,IAAI;gBAC1B,mBAAmB,EAAG,KAAK;aAC5B;SACF,CAAC;QAMF,uBAAkB,GAAoB,IAAI,OAAO,EAAU,CAAC;QAC5D,mBAAc,GAAkB,IAAI,OAAO,EAAQ,CAAC;QAEpD,iBAAY,GAAoB,EAAE,CAAC;QACnC,oBAAe,GAAoB,EAAE,CAAC;QAGtC,uBAAkB,GAAW,CAAC,CAAC;QAC/B,YAAO,GAAY,KAAK,CAAC;QACzB,cAAS,GAAY,IAAI,CAAC;QAC1B,oBAAe,GAAY,KAAK,CAAC;QACjC,qBAAgB,GAAG,KAAK,CAAC;QACzB,kBAAa,GAAY,IAAI,CAAC;QAC9B,eAAU,GAAY,KAAK,CAAC;QAC5B,yBAAoB,GAAY,KAAK,CAAC;QAEtC,kBAAa,GAAW,KAAK,CAAC;;QAI9B,cAAS,GAAU,CAAC,CAAC;QACrB,WAAM,GAAW,CAAC,CAAC;QACnB,aAAQ,GAAW,EAAE,CAAC;QACtB,oBAAe,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAKvC,mBAAc,GAAG,kCAAkC,CAAC;QACpD,qBAAgB,GAAG,oCAAoC,CAAC;QACxD,gBAAW,GAAG,oCAAoC,CAAC;QACnD,kBAAa,GAAG,8BAA8B,CAAC;QAC/C,mBAAc,GAAG,mCAAmC,CAAC;KAQJ;IAEzD,QAAQ;QACN,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACnC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;KACnE;IAED,eAAe;QACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC;SAC1C;KACF;IAED,0BAA0B;QACxB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACrD;IAED,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC5B;;;;;;IAOD,uBAAuB,CAAC,QAAiB;QACvC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;KACxD;;;;IAKD,aAAa;QACX,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,iBAAiB;QACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,eAAe,CAAC,cAAiC;QAC/C,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;KAC3D;IAED,aAAa;QACX,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;;;QAI3B,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAE,GAAG;YAC5B,IAAI,GAAG,CAAC,WAAW,EAAE;gBACnB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;gBACnB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACjC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,SAAS,CACxD;YACE,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;SACjE,EACD,KAAK;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClD,CACF,CAAC;KAGH;IAED,eAAe;QACb,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QACD,MAAM,oBAAoB,GAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG;YACvB,IAAG,GAAG,CAAC,WAAW,EAAE;gBAClB,GAAG,CAAC,WAAW,GAAE,KAAK,CAAC;gBACvB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;aACrB;YACD,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAChB,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAChC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;KAChE;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;IAED,SAAS;QACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;;;;IAKD,oBAAoB;QAClB,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,eAAe;QACb,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;;;;IAMO,iBAAiB;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;QAC3E,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;QAElE,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEzE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,iBAAiB,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,GAAG,WAAW,IAAK,iBAAiB,CAAC,CAAC;QAEnF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC,cAAc,GAAG,WAAW,IAAK,WAAW,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3C;IAEO,kBAAkB;QACxB,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACtC,IAAI,QAAQ,GAAU,CAAC,CAAC;QACxB,IAAI,cAAc,GAAa,EAAE,CAAC;QAElC,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC;QAE5F,KAAK,MAAM,WAAW,IAAI,qBAAqB,EAAE;YAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;gBACpB,cAAc,GAAG,CAAC,WAAW,CAAC,mBAAmB,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACpF,MAAM;aACP;YACD,IAAI,QAAQ,GAAG,WAAW,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,EAAE;gBAC5D,cAAc,GAAG,CAAC,WAAW,CAAC,mBAAmB,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACpF,MAAM;aACP;YACD,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC;SAC9B;QACD,OAAO,cAAc,CAAC;KACvB;IAEO,kBAAkB;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QAEjC,OAAO,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,KAAK,CAAC,IAAK,KAAK,GAAG,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE;YAC9F,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;KACd;IAEO,SAAS;QACf,IAAI,CAAC,MAAM,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC5G,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE;SAC/C,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YACjC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SACjF;KACF;IAEO,aAAa,CAAC,cAAuB;QAC3C,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,CAAC,cAAc,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;KACpB;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACzD,OAAO;SACR;QAED,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAC9B,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CACnC,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO;YAC/B,IAAI,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBACpD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;aACzB;SACF,CAAC,CAAC;KACJ;IAEO,gBAAgB;QACtB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACjD;;;;;IAMO,eAAe,CAAC,cAAsB;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,KAAK,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAEzI,IAAI,cAAc,GAAG,YAAY,KAAK,CAAC,EAAE;YACvC,IAAI,CAAC,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,CAAC;SAC/D;KACF;IAEO,MAAM,CAAE,OAAe;QAC7B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC,OAAsB;YAErB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;;gBAE1C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;aAClB;SACF,EACD,KAAK;YACH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/C,CACF,CAAC;KACH;IAEO,eAAe,CAAE,OAAe;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE;YACnC,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE;gBAC3B,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;KACd;IAEO,qBAAqB;QAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,IACpD,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;KACF;IAEO,SAAS;;QAEf,IAAI,CAAC,kBAAkB;aACpB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aACvB,SAAS,CAAC,IAAI;YACX,IAAI,CAAC,UAAU,EAAE,CAAC;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc;aAChB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;aACvB,SAAS,CAAC,IAAI;YACX,IAAI,CAAC,WAAW,EAAE,CAAC;SACxB,CAAC,CAAC;;QAGH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,EAAE,CAAC,SAAS,CAAC,OAAO;YACvF,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB,CAAC,CAAC;;QAGH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC,SAAS,CAAC,OAAO;YACnF,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;gBAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACtB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,YAAY;YAC/F,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,OAAO;aACR;YACD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACtD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE;gBACvC,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC9C,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;iBAC1B;aACF;SACF,CAAC,CAAC;KACJ;IAEO,WAAW;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAoB;YACvF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACxC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YACrE,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;YACvG,IAAI,CAAC,YAAY,CAAC,YAAY,GAAI,IAAI,CAAC,YAAY,CAAC,YAAY,GAAI,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;YAEnH,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACpD;;YAGD,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;SAEF,EACD,KAAK;YACH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B,CAAC,CAAC;KACJ;IAEO,mBAAmB;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QAElD,IAAI,IAAI,CAAC,eAAe,IAAI,WAAW,KAAK,IAAI,CAAC,mBAAmB,EAAE;;YAEpE,OAAO;SACR;QAED,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAEtE,CAAC,IAAoB;YACnB,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;YACvC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;SAClD,EAED,KAAK;;YAEH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC7B,CAAC,CAAC;KACJ;IAED,yBAAyB;QACvB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;KACvC;CACF,CAAA;;YA5XuB,iBAAiB;YACZ,eAAe;YACX,mBAAmB;YAC1B,YAAY;YACL,mBAAmB;YAClB,oBAAoB;;AA3I3C;IAAR,KAAK,EAAE;;2DAAgC;AAC/B;IAAR,KAAK,EAAE;;yDAA4B;AAC3B;IAAR,KAAK,EAAE;;qDAAmB;AAClB;IAAR,KAAK,EAAE;;8DAA2B;AAC1B;IAAR,KAAK,EAAE;;0DAAuB;AACtB;IAAR,KAAK,EAAE;;4DAAyB;AAEjC;IADC,MAAM,EAAE;8BACY,YAAY;gEAA+B;AAYlC;IAA7B,SAAS,CAAC,iBAAiB,CAAC;8BAAmB,UAAU;4DAAC;AArBhD,mBAAmB;IAR/B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,k2NAA2C;QAC3C,UAAU,EAAE;YACV,SAAS;YACT,YAAY;SACb;KACF,CAAC;qCAyIsB,iBAAiB;QACZ,eAAe;QACX,mBAAmB;QAC1B,YAAY;QACL,mBAAmB;QAClB,oBAAoB;GA7IzC,mBAAmB,CAogB/B;;ICxgBY,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,mBAAmB;IAW1D,YACE,UAA6B,EAC7B,mBAAwC,EACxC,IAAgB,EAChB,aAA4B,EAC5B,mBAAoC,EACpC,YAA0B,EAC1B,gBAAkC,EAClC,eAAwC;QAExC,KAAK,CACH,UAAU,EACV,mBAAmB,EACnB,IAAI,EACJ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,eAAe,CAChB,CAAC;QAvBJ,cAAS,GAAW,CAAC,CAAC;QAEtB,wBAAmB,GAA0B,IAAI,YAAY,EAAE,CAAC;KAsB/D;IAED,QAAQ;KACP;IAED,cAAc,CAAC,KAAa;;QAE1B,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC5C;IAED,mBAAmB,CAAC,cAAiC;QACnD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC7C;IAED,uBAAuB;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;CACF,CAAA;;YAvCe,iBAAiB;YACR,mBAAmB;YAClC,UAAU;YACD,aAAa;YACP,eAAe;YACtB,YAAY;YACR,gBAAgB;YACjB,uBAAuB;;AAhB1C;IADC,KAAK,EAAE;;yDACmB;AAE3B;IADC,KAAK,EAAE;;qDACU;AAElB;IADC,KAAK,EAAE;;sDACc;AAEtB;IADC,MAAM,EAAE;8BACY,YAAY;gEAA+B;AATrD,mBAAmB;IAP/B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,8jEAA2C;QAC3C,UAAU,EAAE;YACV,cAAc;SACf;KACF,CAAC;qCAac,iBAAiB;QACR,mBAAmB;QAClC,UAAU;QACD,aAAa;QACP,eAAe;QACtB,YAAY;QACR,gBAAgB;QACjB,uBAAuB;GAnB/B,mBAAmB,CAmD/B;;ICpDY,kBAAkB,GAA/B,MAAa,kBAAmB,SAAQ,mBAAmB;IAGvD,YACE,UAA6B,EAC7B,mBAAwC,EACxC,IAAgB,EAChB,aAA4B,EAC5B,mBAAoC,EACpC,YAA0B,EAC1B,gBAAkC,EAClC,eAAwC;QAExC,KAAK,CACH,UAAU,EACV,mBAAmB,EACnB,IAAI,EACJ,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,eAAe,CAChB,CAAC;QArBJ,kBAAa,GAAW,aAAa,CAAC;KAsBrC;IAED,QAAQ;KACP;CAEJ,CAAA;;YAxBiB,iBAAiB;YACR,mBAAmB;YAClC,UAAU;YACD,aAAa;YACP,eAAe;YACtB,YAAY;YACR,gBAAgB;YACjB,uBAAuB;;AAXjC,kBAAkB;IAP9B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,oyIAA0C;QAC1C,UAAU,EAAE;YACV,cAAc;SACf;KACF,CAAC;qCAKgB,iBAAiB;QACR,mBAAmB;QAClC,UAAU;QACD,aAAa;QACP,eAAe;QACtB,YAAY;QACR,gBAAgB;QACjB,uBAAuB;GAXjC,kBAAkB,CA4B9B;;ICjCY,mBAAmB,GAAhC,MAAa,mBAAmB;IAa9B,YAAoB,oBAA6C;QAA7C,yBAAoB,GAApB,oBAAoB,CAAyB;QAZjE,iBAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;QACjD,qBAAgB,GAAiB;YAC/B,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;SACf,CAAC;QAEM,gBAAW,GAAiB,IAAI,OAAO,EAAO,CAAC;KAEc;IAErE,mBAAmB,CAAC,aAAqB;QACvC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACxC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;SAC7C;QACD,MAAM,WAAW,GAAmB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAC1G,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAClD,OAAO,WAAW,CAAC;KACpB;;;;;;;IAQD,cAAc,CAAC,aAAqB,EAAE,QAAgB,EAAE,KAAc;QACpE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;KAC3D;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KACxC;IAED,oBAAoB,CAAC,aAAqB,EAAE,UAAkB,EAAE,YAAoB,EAAE,WAAmB;QACvG,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAC5D,WAAW,CAAC,SAAS,CAAC;YACpB,YAAY;YACZ,WAAW;SACZ,CAAC,CAAC;KACJ;IAED,qCAAqC,CAAC,aAAqB,EAAE,YAAoB,EAAE,WAAmB;QACpG,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAC5D,WAAW,CAAC,SAAS,CAAC;YACpB,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,YAAY;YACxG,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,WAAW;SACrG,CAAC,CAAC;KACJ;CACF,CAAA;;YAxC2C,uBAAuB;;;AAbtD,mBAAmB;IAH/B,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;qCAc0C,uBAAuB;GAbtD,mBAAmB,CAqD/B;;ICxDY,cAAc,GAA3B,MAAa,cAAc;IAgCzB,YAAoB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;QA5BlD,uBAAkB,GAA+B,IAAI,YAAY,EAAE,CAAC;QAGrE,gBAAW,GAAW,EAAE,CAAC;;;QAOzB,aAAQ,GAAG,KAAK,CAAC;;QAEhB,sBAAiB,GAA0B,IAAI,YAAY,EAAE,CAAC;;;QAK/D,kBAAa,GAAY,KAAK,CAAC;;QAE/B,sBAAiB,GAAY,KAAK,CAAC;;QAGnC,cAAS,GAAG,KAAK,CAAC;KAMqC;IAEhE,QAAQ;QACN,IAAI,CAAC,gBAAgB,GAAGA,EAAI,EAAE,CAAC;;QAG/B,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;;YAGxF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEzC,IAAI,CAAC,gBAAgB,EAAE,CAAC;;YAGxB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO;gBAC3E,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB,CAAC,CAAC;SACJ;KACF;IAED,mBAAmB,CAAC,KAAK;QACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACnD;IAED,YAAY,CAAC,KAAa;;QAExB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;QAGhD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;gBAC1B,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW;gBAC1C,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;SACJ;KACF;IAED,UAAU;QACR,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;gBAC1B,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY;gBAC5C,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW;aAC3C,CAAC,CAAC;SACJ;KACF;;;;IAKO,gBAAgB;QACtB,IAAI,CAAC,YAAY,GAAG;YAClB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;YACnC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YACrC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC;YACjD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC;YACzG,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC;YACtG,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;SACzC,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACjD;IAED,SAAS;QACP,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;SACzC;KACF;CACF,CAAA;;YAzE0C,mBAAmB;;AA7BnD;IAAR,KAAK,EAAE;;oDAA4B;AAC1B;IAAT,MAAM,EAAE;8BAAqB,YAAY;0DAAoC;AAErE;IAAR,KAAK,EAAE;;wDAA0B;AACzB;IAAR,KAAK,EAAE;;mDAA0B;AAOzB;IAAR,KAAK,EAAE;;gDAAkB;AAEhB;IAAT,MAAM,EAAE;8BAAoB,YAAY;yDAA+B;AAK/D;IAAR,KAAK,EAAE;;qDAAgC;AAE/B;IAAR,KAAK,EAAE;;yDAAoC;AAGnC;IAAR,KAAK,EAAE;;iDAAmB;AA1BhB,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,wyCAAqC;QACrC,aAAa,EAAE,iBAAiB,CAAC,IAAI;KACtC,CAAC;qCAiCyC,mBAAmB;GAhCjD,cAAc,CAyG1B;;;IC5GY,oBAAoB,4BAAjC,MAAa,oBAAoB;IAAjC;QAEE,gBAAW,GAAG,EAAE,CAAC;QAEjB,iBAAY,GAAG,KAAK,CAAC;QAGb,eAAU,GAAQ,EAAE,CAAC;QACnB,oBAAe,GAAG,IAAI,YAAY,EAAO,CAAC;QAE5C,sBAAiB,GAAe,SAAQ,CAAC;QACzC,qBAAgB,GAAqB,SAAQ,CAAC;KA8BvD;IA5BC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,IAAI,KAAK,CAAC,CAAM;QACd,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;YACzB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAC1B;KACF;IAED,UAAU,CAAC,KAAU;QACnB,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;YAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;KACF;IAED,gBAAgB,CAAC,EAAO;QACtB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;IAED,iBAAiB,CAAC,EAAO;QACvB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAC7B;IAEM,oBAAoB,CAAC,KAAK;QAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC/C;CACF,CAAA;AAvCC;IADC,KAAK,EAAE;;yDACS;AAEjB;IADC,KAAK,EAAE;;0DACa;AAErB;IADC,KAAK,EAAE;;gDACL;AAEO;IAAT,MAAM,EAAE;;6DAA2C;AARzC,oBAAoB;IALhC,SAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,4eAA4C;QAC5C,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,sBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAC5F,CAAC;GACW,oBAAoB,CAyChC;;IC5CY,oBAAoB,GAAjC,MAAa,oBAAoB;;;;;;;IAO/B,SAAS,CAAC,WAAmB,EAAE,UAAkB,EAAE,YAAoB;QACrE,IAAI,EAAE,WAAW,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE;YAC/D,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;SAC3G;QACD,OAAO,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC;KAC7D;CACF,CAAA;AAbY,oBAAoB;IAHhC,IAAI,CAAC;QACJ,IAAI,EAAE,YAAY;KACnB,CAAC;GACW,oBAAoB,CAahC;;ICLY,mBAAmB,GAAhC,MAAa,mBAAmB;IAW9B;QAFU,eAAU,GAAoC,IAAI,YAAY,EAAE,CAAC;KAE3D;IAVP,IAAI,UAAU,CAAC,UAA6B;QACnD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;KAC/B;IACD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAOD,aAAa;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,EAAE;YACpC,OAAO;SACR;QACD,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACvC;IAED,aAAa;QACX,MAAM,UAAU,GAAG,IAAI,oBAAoB,EAAE,CAAC,SAAS,CACrD,IAAI,CAAC,UAAU,CAAC,WAAW,EAC3B,IAAI,CAAC,UAAU,CAAC,UAAU,EAC1B,IAAI,CAAC,UAAU,CAAC,YAAY,CAC7B,CAAC;QACF,IAAI,UAAU,EAAE;YACd,OAAO;SACR;QACD,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACvC;IAED,gBAAgB,CAAC,UAAU;QACzB,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACvC;CACF,CAAA;AArCU;IAAR,KAAK,EAAE;;;qDAEP;AAMS;IAAT,MAAM,EAAE;8BAAa,YAAY;uDAAyC;AAThE,mBAAmB;IAJ/B,SAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,q8CAA0C;KAC3C,CAAC;;GACW,mBAAmB,CAsC/B;;IC9CY,yBAAyB,GAAtC,MAAa,yBAAyB;;;;;;;IAOpC,SAAS,CAAC,UAAkB,EAAE,YAAoB;QAChD,IAAI,EAAE,UAAU,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE;YAC3C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;SAChF;QACD,MAAM,WAAW,GAAW,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;aAC9C,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;aACxB,GAAG,CAAC,CAAC,CAAS,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B;CACF,CAAA;AAhBY,yBAAyB;IAHrC,IAAI,CAAC;QACJ,IAAI,EAAE,iBAAiB;KACxB,CAAC;GACW,yBAAyB,CAgBrC;;ICfY,cAAc,GAA3B,MAAa,cAAc;IACzB,YAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;KAAI;;;;;;;IAQ1D,SAAS,CAAC,WAAmB,EAAE,UAAkB,EAAE,YAAoB;QACrE,IAAI,eAAe,GAAG,CAAC,EACrB,gBAAgB,GAAG,CAAC,CAAC;QAEvB,IAAI,UAAU,EAAE;YACd,eAAe,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;YACvD,gBAAgB,GAAG,WAAW,GAAG,YAAY,CAAC;SAC/C;QAED,IAAI,gBAAgB,GAAG,UAAU,EAAE;YACjC,gBAAgB,GAAG,UAAU,CAAC;SAC/B;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;KACrI;CACF,CAAA;;YAvBuC,gBAAgB;;AAD3C,cAAc;IAH1B,IAAI,CAAC;QACJ,IAAI,EAAE,sBAAsB;KAC7B,CAAC;qCAEsC,gBAAgB;GAD3C,cAAc,CAwB1B;;;ICrBY,iBAAiB,yBAA9B,MAAa,iBAAiB;IAgB5B;QAdA,UAAK,GAAG,EAAE,CAAC;QAMX,UAAK,GAAG,KAAK,CAAC;QAEd,YAAO,GAAG,KAAK,CAAC;QAEhB,OAAE,GAAG,EAAE,CAAC;QAGR,aAAQ,GAAG,KAAK,CAAC;KACD;IAIhB,gBAAgB,CAAC,EAAO;QACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,iBAAiB,CAAC,EAAO;QACvB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;IAED,gBAAgB,CAAC,UAAmB;QAClC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAED,UAAU,CAAC,GAAQ;QACjB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;KAClB;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACvB;KACF;CACF,CAAA;AAvCC;IADC,KAAK,EAAE;;gDACG;AAEX;IADC,KAAK,EAAE;;gDACG;AAEX;IADC,KAAK,EAAE;;+CACK;AAEb;IADC,KAAK,EAAE;;gDACM;AAEd;IADC,KAAK,EAAE;;kDACQ;AAEhB;IADC,KAAK,EAAE;;6CACA;AAER;IADC,KAAK,EAAE;;+CACK;AAdF,iBAAiB;IAN7B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,0eAAwC;QACxC,aAAa,EAAE,iBAAiB,CAAC,IAAI;QACrC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACzF,CAAC;;GACW,iBAAiB,CAyC7B;;IC3BY,WAAW,GAAxB,MAAa,WAAW;IAoBtB,YACU,UAAsB,EACtB,MAAsB,EACtB,QAAmB,EACD,QAAQ,EAC1B,QAAkC,EAClC,QAAkB;QALlB,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAgB;QACtB,aAAQ,GAAR,QAAQ,CAAW;QACD,aAAQ,GAAR,QAAQ,CAAA;QAC1B,aAAQ,GAAR,QAAQ,CAA0B;QAClC,aAAQ,GAAR,QAAQ,CAAU;QAXlB,wBAAmB,GAA0B,IAAI,YAAY,EAAE,CAAC;KAYtE;IAvBoB,IAAI,aAAa,CAAC,KAAc;QACtD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;KACF;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAgBD,QAAQ;QACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAED,uBAAuB;;QAErB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxD,iBAAiB,CAAC,SAAS,GAAG,iEAAiE,CAAC;;QAGhG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;;QAGvH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC1E;IAEO,mBAAmB;QACzB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAGA,EAAI,EAAE,CAAC;QACnF,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC5F,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAEO,gBAAgB;QACtB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;KAC/D;IAEO,qBAAqB;;QAE3B,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAClD,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB,CAAC,CAAC;KACJ;IAEO,eAAe;QACrB,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACnD;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;KAC9B;CACF,CAAA;;YArDuB,UAAU;YACd,cAAc;YACZ,SAAS;4CAC1B,MAAM,SAAC,QAAQ;YACE,wBAAwB;YACxB,QAAQ;;AAzBP;IAApB,KAAK,CAAC,YAAY,CAAC;;+CAA6B;AAC1B;IAAtB,KAAK,CAAC,cAAc,CAAC;;iDAAsB;AAEpB;IAAvB,KAAK,CAAC,eAAe,CAAC;;;gDAKtB;AAMS;IAAT,MAAM,EAAE;8BAAsB,YAAY;wDAA+B;AAf/D,WAAW;IAHvB,SAAS,CAAC;QACT,QAAQ,EAAE,eAAe;KAC1B,CAAC;IAyBG,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;qCAHG,UAAU;QACd,cAAc;QACZ,SAAS,UAET,wBAAwB;QACxB,QAAQ;GA1BjB,WAAW,CA0EvB;MAEY,aAAa;IAKxB,YACU,WAAoB,EACpB,MAAsB,EACtB,wBAAkD,EAClD,QAAkB;QAHlB,gBAAW,GAAX,WAAW,CAAS;QACpB,WAAM,GAAN,MAAM,CAAgB;QACtB,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,aAAQ,GAAR,QAAQ,CAAU;QARpB,aAAQ,GAAY,KAAK,CAAC;KAS9B;IAEJ,MAAM,CAAC,SAAoB;QACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAE/F,IAAI,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG;YACf,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC9C,YAAY,CAAC,OAAO,EAAE,CAAC;SACxB,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,WAAW,CAAE,YAAY,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3F,OAAO,YAAY,CAAC;KACrB;IAED,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;CACF;;ICjIY,WAAW,GAAxB,MAAa,WAAW;IAMtB,YAAoB,WAAuB,EAAU,QAAmB,EAA4B,QAAQ;QAAxF,gBAAW,GAAX,WAAW,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAW;QAA4B,aAAQ,GAAR,QAAQ,CAAA;QAFpG,oBAAe,GAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KAEgD;IAEhH,eAAe;QACb,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAED,uBAAuB;QACrB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAC/G,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,4BAA4B,CAAC,CAAC;QAErF,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxD,MAAM,sHAAsH,CAAC;aAC9H;YAED,IAAI,SAAS,GAAG,oCAAoC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;SACnE;KACF;CACF,CAAA;;YAnBkC,UAAU;YAAoB,SAAS;4CAAG,MAAM,SAAC,QAAQ;;AALrE;IAApB,KAAK,CAAC,YAAY,CAAC;;+CAAoB;AACnB;IAApB,KAAK,CAAC,YAAY,CAAC;;+CAAoB;AAF7B,WAAW;IAHvB,SAAS,CAAC;QACT,QAAQ,EAAE,eAAe;KAC1B,CAAC;IAO2E,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;qCAA1D,UAAU,EAAoB,SAAS;GAN7D,WAAW,CAyBvB;;ICrBY,iBAAiB,GAA9B,MAAa,iBAAiB;IA0B5B,YACU,WAAuB,EACvB,QAAmB,EACD,QAAQ,EAC1B,mBAAwC;QAHxC,gBAAW,GAAX,WAAW,CAAY;QACvB,aAAQ,GAAR,QAAQ,CAAW;QACD,aAAQ,GAAR,QAAQ,CAAA;QAC1B,wBAAmB,GAAnB,mBAAmB,CAAqB;QAxBlD,gBAAW,GAAW,EAAE,CAAC;QAKD,kBAAa,GAAY,KAAK,CAAC;QAI7C,iBAAY,GAA0B,IAAI,YAAY,EAAE,CAAC;QAEzD,uBAAkB,GAA+B,IAAI,YAAY,EAAE,CAAC;QAEtE,oBAAe,GAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAKxD,kBAAa,GAAmB,EAAE,CAAC;KAOvC;IA7BJ,IAAI,UAAU,CAAC,KAAa;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAwBD,QAAQ;QACN,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC1B;iBAAM;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;SACF;KACF;IAED,eAAe;QACb,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,iBAAiB;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhF,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO;YAC3E,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,KAAK,EAAE;gBACtC,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;KAC/C;IAED,eAAe;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,IAAI;YAClF,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;;gBAE5E,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACxC;IAED,aAAa;;QAEX,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,CAAC,CAAC;KACxG;IAED,uBAAuB;QACrB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAC/G,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;QAE/E,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxD,MAAM,sHAAsH,CAAC;aAC9H;YAED,IAAI,SAAS,GAAG,8BAA8B,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YACxE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;SACnE;KACF;IAED,kBAAkB;QAChB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KAC/E;IAED,mBAAmB;QACjB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,8BAA8B,CAAC;QAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;KAChD;IAED,UAAU;;QAER,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,iCAAiC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;;QAG9F,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9C,IAAI,OAAe,CAAC;YACpB,IAAI,OAAe,EAAE,QAAiB,CAAC;YAEvC,QAAQ,WAAW;gBACjB,KAAK,MAAM;oBACT,OAAO,GAAG,IAAI,CAAC;oBACf,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACxB,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM;gBAER,KAAK,IAAI;oBACP,OAAO,GAAG,MAAM,CAAC;oBACjB,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACxB,QAAQ,GAAG,KAAK,CAAC;oBACjB,MAAM;gBAER,KAAK,MAAM;oBACT,OAAO,GAAG,MAAM,CAAC;oBACjB,MAAM;gBAER;oBACE,OAAO,GAAG,MAAM,CAAC;oBACjB,MAAM;aACT;;YAED,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAE1F,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SACpC,CAAC,CAAC;KACJ;IAED,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO,MAAM,CAAC;SACf;;QAED,IAAI,eAAe,GAAG,MAAM,CAAC;QAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;YAClD,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;SAC3E;QACD,OAAO,eAAe,CAAC;KACxB;IAED,kBAAkB;QAChB,MAAM,MAAM,GAAG,4CAA4C,CAAC;QAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC;KACpB;IAED,UAAU,CAAC,OAAO,EAAE,QAAQ;QAC1B,IAAI,IAAI,CAAC,aAAa,EAAE;;YAEtB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gBACzB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;SACJ;aAAM;;YAEL,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAClF;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACjD;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY;YACrC,YAAY,CAAC,WAAW,EAAE,CAAC;SAC5B,CAAC,CAAC;KACJ;CACF,CAAA;;YArKwB,UAAU;YACb,SAAS;4CAC1B,MAAM,SAAC,QAAQ;YACa,mBAAmB;;AA5BlD;IADC,KAAK,CAAC,YAAY,CAAC;;;;mDAInB;AAKoB;IAApB,KAAK,CAAC,YAAY,CAAC;;qDAAoB;AAChB;IAAvB,KAAK,CAAC,eAAe,CAAC;;wDAAgC;AACnC;IAAnB,KAAK,CAAC,WAAW,CAAC;;oDAAmB;AACnB;IAAlB,KAAK,CAAC,UAAU,CAAC;;mDAAkB;AACf;IAApB,KAAK,CAAC,YAAY,CAAC;;qDAAoB;AAC9B;IAAT,MAAM,EAAE;8BAAe,YAAY;uDAA+B;AAC1D;IAAR,KAAK,EAAE;;uDAA4B;AAC1B;IAAT,MAAM,EAAE;8BAAqB,YAAY;6DAAoC;AAjBnE,iBAAiB;IAJ7B,SAAS,CAAC;;QAET,QAAQ,EAAE,cAAc;KACzB,CAAC;IA8BG,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;qCAFI,UAAU;QACb,SAAS,UAEE,mBAAmB;GA9BvC,iBAAiB,CAgM7B;;ICnMY,QAAQ,GAArB,MAAa,QAAQ;IACnB,YAAoB,WAAuB,EAAU,QAAmB,EAA4B,QAAQ;QAAxF,gBAAW,GAAX,WAAW,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAW;QAA4B,aAAQ,GAAR,QAAQ,CAAA;KAAI;IAEhH,eAAe;QACb,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAED,uBAAuB;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;KAChF;CACF,CAAA;;YATkC,UAAU;YAAoB,SAAS;4CAAG,MAAM,SAAC,QAAQ;;AAD/E,QAAQ;IAJpB,SAAS,CAAC;;QAET,QAAQ,EAAE,YAAY;KACvB,CAAC;IAE2E,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;qCAA1D,UAAU,EAAoB,SAAS;GAD7D,QAAQ,CAUpB;;ICbY,YAAY,GAAzB,MAAa,YAAY;IAEvB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;KAAK;IAErD,SAAS,CAAC,WAAmB,EAAE,IAAY;QACzC,IAAG,CAAC,IAAI,EAAE;YACR,MAAM,wCAAwC,CAAC;SAChD;QAED,MAAM,KAAK,GAAW,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,mDAAmD,CAAC;SAC3D;QAED,OAAO,KAAK,GAAG,WAAW,CAAC;KAC5B;CACF,CAAA;;YAfoC,aAAa;;AAFrC,YAAY;IAHxB,IAAI,CAAC;QACJ,IAAI,EAAE,QAAQ;KACf,CAAC;qCAGmC,aAAa;GAFrC,YAAY,CAiBxB;;IChBY,yBAAyB,GAAtC,MAAa,yBAAyB;IAUpC;QACE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,EAAO,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;KAC1C;IAED,QAAQ;QACN,IAAI,CAAC,UAAU;aACZ,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAC7B,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAC/B,oBAAoB,EAAE,EACtB,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CACrC;aACA,SAAS,EAAE,CAAC;KAChB;IAEM,UAAU,CAAC,KAAU;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;CACF,CAAA;AAlCC;IADC,KAAK,EAAE;;+DACoB;AAG5B;IADC,MAAM,EAAE;8BACa,YAAY;gEAAM;AAL7B,yBAAyB;IAHrC,SAAS,CAAC;QACT,QAAQ,EAAE,2BAA2B;KACtC,CAAC;;GACW,yBAAyB,CAoCrC;;ICtCY,sBAAsB,GAAnC,MAAa,sBAAuB,SAAQ,yBAAyB;IACnE;QACE,KAAK,EAAE,CAAC;KACT;IAGM,OAAO,CAAC,KAAU;QACvB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;CACF,CAAA;AAJC;IADC,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;;;;qDAIjC;AATU,sBAAsB;IAHlC,SAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;KACjC,CAAC;;GACW,sBAAsB,CAUlC;;ICRY,eAAe,GAA5B,MAAa,eAAe;IAA5B;QAIE,UAAK,GAAG,KAAK,CAAC;KAGf;CAAA,CAAA;AALC;IADC,KAAK,EAAE;;6CACK;AAEb;IADC,KAAK,EAAE;;8CACM;AAEd;IADC,KAAK,EAAE;;iDACS;AANN,eAAe;IAL3B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,+ZAAsC;QACtC,aAAa,EAAE,iBAAiB,CAAC,IAAI;KACtC,CAAC;GACW,eAAe,CAO3B;;ICPY,cAAc,GAA3B,MAAa,cAAc;IAKzB;QAJS,SAAI,GAAG,IAAI,CAAC;QACZ,YAAO,GAAG,KAAK,CAAC;QAChB,YAAO,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,aAAa,CAAC;KACnB;IAChB,QAAQ,MAAW;CACpB,CAAA;AANU;IAAR,KAAK,EAAE;;4CAAa;AACZ;IAAR,KAAK,EAAE;;+CAAiB;AAChB;IAAR,KAAK,EAAE;;+CAAiB;AAChB;IAAR,KAAK,EAAE;;iDAA2B;AAJxB,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QAEpB,yLAAqC;;KACtC,CAAC;;GACW,cAAc,CAO1B;;ICTY,aAAa,GAA1B,MAAa,aAAa;IAExB,SAAS,CAAC,MAAc;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KACvC;CACF,CAAA;AALY,aAAa;IAHzB,IAAI,CAAC;QACJ,IAAI,EAAE,eAAe;KACtB,CAAC;GACW,aAAa,CAKzB;;ICEY,qBAAqB,GAAlC,MAAa,qBAAqB;IAyBhC;QAPA,uBAAkB,GAAW,KAAK,CAAC;QAEnC,sBAAiB,GAAY,KAAK,CAAC;QACnC,iBAAY,GAAW,CAAC,CAAC;QAEf,eAAU,GAAyB,IAAI,YAAY,EAAE,CAAC;KAEhD;IAvBP,IAAI,UAAU,CAAC,UAA6B;QACnD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;KAC/B;IACD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAGQ,IAAI,UAAU,CAAC,UAAkB;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACzE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;KACjD;IACD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAWD,gBAAgB,CAAC,KAAK,EAAE,WAAW;QACjC,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACjC;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACpD;KACF;CACF,CAAA;AAjCU;IAAR,KAAK,EAAE;;;uDAEP;AAMQ;IAAR,KAAK,EAAE;;;uDAGP;AAUS;IAAT,MAAM,EAAE;8BAAa,YAAY;yDAA8B;AAvBrD,qBAAqB;IAJjC,SAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,ypDAA6C;KAC9C,CAAC;;GACW,qBAAqB,CAmCjC;;IC1CY,qBAAqB,GAAlC,MAAa,qBAAqB;;;;;;;IAOhC,SAAS,CAAC,UAAkB,EAAE,YAAoB,EAAE,WAAmB;QACrE,IAAI,EAAE,UAAU,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE;YAC3C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;SAChF;QAED,IAAI,WAAW,GAAW,EAAE,CAAC;QAE7B,MAAM,WAAW,GAAG,WAAW,IAAI,EAAE,GAAG,CAAC,GAAG,WAAW,GAAG,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC;QAIvD,MAAM,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;aACrE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;aACxB,GAAG,CAAC,CAAC,CAAS;YAEb,MAAM,SAAS,GAAO;gBACpB,OAAO,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC;gBAC5B,KAAK,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC;aAC3B,CAAC;YAEF,IAAI,CAAC,KAAK,WAAW,GAAG,CAAC,EAAE;gBACxB,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;aAC5B;YACD,IAAI,CAAC,KAAK,WAAW,GAAG,CAAC,EAAE;gBACzB,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC;gBAC9B,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;aAC7B;YAED,OAAO,SAAS,CAAC;SAClB,CAAC,CAAC;QAGH,IAAI,WAAW,EAAE;YACf,mBAAmB,CAAC,OAAO,CACzB;gBACE,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;aACT,EACD;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC;aACT,CACF,CAAC;SACH;QAED,OAAO,mBAAmB,CAAC;KAC5B;CACF,CAAA;AAvDY,qBAAqB;IAHjC,IAAI,CAAC;QACJ,IAAI,EAAE,mBAAmB;KAC1B,CAAC;GACW,qBAAqB,CAuDjC;;;ICjDY,eAAe,uBAA5B,MAAa,eAAe;IAsC1B,YAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAxBtD,WAAM,GAAG,KAAK,CAAC;QAGf,SAAI,GAAG,SAAS,CAAC;QAKR,aAAQ,GAAG,MAAM,CAAC;QAG3B,aAAQ,GAAG,KAAK,CAAC;QAEP,gBAAW,GAAG,IAAI,YAAY,EAAU,CAAC;QAEzC,wBAAmB,GAAG,IAAI,YAAY,EAAO,CAAC;QAIxD,mBAAc,GAAG,KAAK,CAAC;QACvB,gBAAW,GAAG,EAAE,CAAC;QAEjB,sBAAiB,GAAW,CAAC,CAAC,CAAC;;QAmD/B,aAAQ,GAAqC,SAAQ,CAAC;QACtD,YAAO,GAAQ,SAAQ,CAAA;KAlDmC;IAE1D,QAAQ;QACN,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtE;IAED,OAAO;QACL,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;IAED,QAAQ,CAAC,IAAgB,EAAE,KAAa;QACtC,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;KAC9B;IAED,YAAY,CAAC,EAAU;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAe,IAAI,CAAC,eAAe,EAAE,CAAC;QACxD,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC7B;IAED,mBAAmB;QACjB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KACxD;IAEO,eAAe;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC3C;IAED,cAAc;QACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,UAAU,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC1C,EAAE,CAAC,CAAC,CAAC;KACP;IAEO,WAAW;QACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;KACnD;IAEO,oBAAoB,CAAC,EAAU;QACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvE;IAOD,UAAU,CAAC,UAAe;QACxB,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;SACR;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;KAC1C;IAED,gBAAgB,CAAC,EAAO;QACtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;IACD,iBAAiB,CAAC,EAAO;QACvB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;CACF,CAAA;;YAnEuC,gBAAgB;;AApCtD;IADC,KAAK,EAAE;;8CACY;AAGpB;IADC,KAAK,EAAE;;oDACY;AAGpB;IADC,KAAK,EAAE;;8CACM;AAGd;IADC,KAAK,EAAE;;sDACc;AAGtB;IADC,KAAK,EAAE;;+CACO;AAGf;IADC,KAAK,EAAE;;6CACS;AAGjB;IADC,KAAK,EAAE;;qDACoB;AAEnB;IAAR,KAAK,EAAE;;iDAAmB;AAG3B;IADC,KAAK,EAAE;;iDACS;AAEP;IAAT,MAAM,EAAE;;oDAA0C;AAEzC;IAAT,MAAM,EAAE;;4DAA+C;AAEnC;IAApB,SAAS,CAAC,QAAQ,CAAC;8BAAgB,UAAU;sDAAC;AA/BpC,eAAe;IAL3B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,stFAAsC;QACtC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAe,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACvF,CAAC;qCAuCsC,gBAAgB;GAtC3C,eAAe,CAyG3B;;IC7GY,iBAAiB,GAA9B,MAAa,iBAAiB;IAC1B,SAAS,CAAC,KAAmB,EAAE,UAAkB;QAC7C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI;YACpB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjC,CAAC,CAAC;KACN;CACJ,CAAA;AAPY,iBAAiB;IAJ7B,IAAI,CAAC;QACF,IAAI,EAAE,eAAe;KACxB,CAAC;GAEW,iBAAiB,CAO7B;;ICTY,qBAAqB,GAAlC,MAAa,qBAAqB;IAehC,YAAoB,cAA0B,EAAU,QAAmB;QAAvD,mBAAc,GAAd,cAAc,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAW;QAd3E,cAAS,GAAG,KAAK,CAAC;KAejB;IATD,IAAI,QAAQ,CAAC,KAAc;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAKD,QAAQ;KACP;IAED,YAAY;QACV,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;SACpG;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;SACvG;KACF;IAED,WAAW;KACV;CACF,CAAA;;YAhBqC,UAAU;YAAoB,SAAS;;AAX3E;IADC,MAAM,EAAE;8BACa,YAAY;4DAAM;AAGxC;IADC,KAAK,CAAC,cAAc,CAAC;;;qDAIrB;AAVU,qBAAqB;IAHjC,SAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;KAC3B,CAAC;qCAgBoC,UAAU,EAAoB,SAAS;GAfhE,qBAAqB,CA+BjC;;AClB0F,CAAC;AAC5F,AAmCA,MAAM,UAAU,GAAG;IACf,qBAAqB;IACrB,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,kBAAkB;IAClB,0BAA0B;IAC1B,iBAAiB;IACjB,qBAAqB;IACrB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,qBAAqB;IACrB,eAAe;CAClB,CAAC;AAEF,MAAM,UAAU,GAAG;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,sBAAsB;IACtB,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,QAAQ;IACR,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;CACtB,CAAC;AAEF,MAAM,KAAK,GAAG;IACZ,yBAAyB;IACzB,oBAAoB;IACpB,cAAc;IACd,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,iBAAiB;CAClB,CAAC;AAyBF,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;CAAI,CAAA;AAAtB,kBAAkB;IAvB9B,QAAQ,CAAC;QACR,YAAY,EAAE;YACZ,GAAG,UAAU;YACb,GAAG,UAAU;YACb,GAAG,KAAK;SACL;QACL,OAAO,EAAE;YACP,YAAY;YACZ,gBAAgB;YAChB,WAAW;YACX,iBAAiB;YACjB,wBAAwB;YACxB,YAAY;YACZ,kBAAkB;YAClB,cAAc;YACd,cAAc;YACd,eAAe;YACf,sBAAsB;SACvB;QACD,SAAS,EAAE,EAAE;QACb,OAAO,EAAE;YACP,qBAAqB;SAAC;KACzB,CAAC;GACW,kBAAkB,CAAI;;MC7HtB,cAAc;CAmC1B;AAAA,CAAC;;MCrCW,SAAS;IAAtB;QAEI,wBAAmB,GAAG,EAAE,CAAC;QAEzB,iBAAY,GAAG,EAAE,CAAC;QAGlB,cAAS,GAAG,EAAE,CAAC;QACf,iBAAY,GAAW,qBAAqB,CAAC;KAChD;CAAA;;MCTY,eAAe;IAA5B;QACI,kBAAa,GAAG,EAAE,CAAC;QACnB,kBAAa,GAAG,EAAE,CAAC;QACnB,kBAAa,GAAG,EAAE,CAAC;QACnB,kBAAa,GAAG,EAAE,CAAC;QACnB,kBAAa,GAAG,EAAE,CAAC;KACtB;CAAA;;ACND;;GAEG;;ACFH;;GAEG;;;;"}
|