@guajiritos/image-picker 17.0.1 → 17.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/guachos-image-picker.component.mjs +64 -30
- package/esm2022/utils/pipes/calculate-size/calculate-size.pipe.mjs +3 -3
- package/esm2022/utils/pipes/i18n/i18n.pipe.mjs +3 -3
- package/esm2022/utils/pipes/pipes.module.mjs +4 -4
- package/fesm2022/guajiritos-image-picker.mjs +74 -39
- package/fesm2022/guajiritos-image-picker.mjs.map +1 -1
- package/lib/guachos-image-picker.component.d.ts +4 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guajiritos-image-picker.mjs","sources":["../../../projects/guachos-image-picker/src/utils/pipes/i18n/i18n.pipe.ts","../../../projects/guachos-image-picker/src/utils/pipes/calculate-size/calculate-size.pipe.ts","../../../projects/guachos-image-picker/src/utils/pipes/pipes.module.ts","../../../projects/guachos-image-picker/src/lib/guachos-image-picker.component.ts","../../../projects/guachos-image-picker/src/lib/guachos-image-picker.component.html","../../../projects/guachos-image-picker/src/public-api.ts","../../../projects/guachos-image-picker/src/guajiritos-image-picker.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'i18n'\r\n})\r\nexport class I18nPipe implements PipeTransform {\r\n private en: any = {\r\n UPLOAD_A_IMAGE: 'Upload an image',\r\n MUST_EDIT: 'You must edit the image in order to resize it',\r\n TOO_LARGE: 'too large',\r\n OPEN_EDITOR_PANEL: 'Open the editor panel',\r\n DOWNLOAD: 'Download the image',\r\n CONTROL_PANEL: 'Control Panel',\r\n QUALITY: 'Quality',\r\n SAVE: 'Save',\r\n MAX_DIMENSIONS: 'Max dimensions',\r\n ASPECT_RATIO: 'Aspect ratio',\r\n MAX_WIDTH_PX: 'max-width(px)',\r\n MAX_HEIGHT_PX: 'max-height(px)',\r\n FORMAT: 'Format',\r\n CROP: 'Crop',\r\n WIDTH_PX: 'width(px)',\r\n HEIGHT_PX: 'height(px)',\r\n REMOVE: 'Remove',\r\n SIZE: 'Size'\r\n };\r\n\r\n private es: any = {\r\n UPLOAD_A_IMAGE: 'Suba una imagen',\r\n MUST_EDIT: 'Debe editar la imagen para disminuir su tamaño',\r\n TOO_LARGE: 'muy grande',\r\n OPEN_EDITOR_PANEL: 'Abra el panel de edición',\r\n DOWNLOAD: 'Descargue la imagen',\r\n CONTROL_PANEL: 'Panel de control',\r\n REMOVE: 'Eliminar',\r\n SAVE: 'Guardar',\r\n QUALITY: 'Calidad',\r\n MAX_DIMENSIONS: 'Dimensiones',\r\n ASPECT_RATIO: 'Relación-Aspecto',\r\n MAX_WIDTH_PX: 'max. ancho',\r\n MAX_HEIGHT_PX: 'max. alto',\r\n FORMAT: 'Formato',\r\n CROP: 'Recortar',\r\n WIDTH_PX: 'ancho(px)',\r\n HEIGHT_PX: 'altura(px)',\r\n SIZE: 'Tamaño'\r\n };\r\n\r\n transform(key: string, language: string): string {\r\n return language === 'en' ? this.en?.[key] : this.es?.[key];\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'calculateSize'\r\n})\r\nexport class CalculateSizePipe implements PipeTransform {\r\n\r\n transform(imageLength: number): number {\r\n if (!imageLength) {\r\n return 0;\r\n }\r\n\r\n if (imageLength) {\r\n return Math.ceil(((3 / 4) * imageLength) / 1024);\r\n } else {\r\n return 0;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { I18nPipe } from './i18n/i18n.pipe';\r\nimport { CalculateSizePipe } from './calculate-size/calculate-size.pipe';\r\n\r\n\r\n@NgModule({\r\n declarations: [I18nPipe, CalculateSizePipe],\r\n exports: [I18nPipe, CalculateSizePipe],\r\n})\r\nexport class PipesModule { }\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n signal,\r\n ViewChild,\r\n WritableSignal,\r\n} from '@angular/core';\r\nimport { ResizeObserver } from 'resize-observer';\r\nimport { Subject } from 'rxjs';\r\nimport { ResizeObserverEntry } from 'resize-observer/lib/ResizeObserverEntry';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldAppearance, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { NgStyle } from '@angular/common';\r\n\r\nimport { PipesModule } from '../utils/pipes/pipes.module';\r\n\r\nexport interface ImagePickerConf {\r\n width?: string;\r\n height?: string;\r\n borderRadius?: string;\r\n compressInitial?: boolean;\r\n language?: string;\r\n hideDeleteBtn?: boolean;\r\n hideDownloadBtn?: boolean;\r\n hideEditBtn?: boolean;\r\n hideAddBtn?: boolean;\r\n}\r\n\r\nexport interface ImageConverterInput {\r\n width?: number;\r\n height?: number;\r\n quality?: number;\r\n dataType?: string;\r\n maintainRatio?: boolean;\r\n changeHeight?: boolean;\r\n changeWidth?: boolean;\r\n}\r\n\r\nexport type ImageAllowedTypes =\r\n 'image/*'\r\n | '.webp'\r\n | '.png'\r\n | '.webp, .jpg, .jpeg'\r\n | '.webp, .png'\r\n | '.jpg, .jpeg'\r\n | '.png, .jpg, .jpeg'\r\n | '.webp, .png, .jpg, .jpeg';\r\n\r\n@Component({\r\n selector: 'guajiritos-image-picker',\r\n templateUrl: './guachos-image-picker.component.html',\r\n styleUrls: ['./guachos-image-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [\r\n NgStyle,\r\n MatTooltipModule,\r\n MatIconModule,\r\n PipesModule,\r\n MatButtonModule,\r\n MatSliderModule,\r\n MatCheckboxModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n],\r\n})\r\nexport class GuajiritosImagePicker implements OnDestroy {\r\n private unsubscribeAll$: Subject<void> = new Subject();\r\n private observer: any = null;\r\n private originImageSrc: any;\r\n private urlImage: string | undefined;\r\n private lastOriginSrc: any;\r\n\r\n private arrayCopiedImages: any[] = [];\r\n\r\n public readonly uuidFilePicker: string = Date.now().toString(20);\r\n public readonly allFormats: string[] = ['webp', 'jpeg', 'png'];\r\n public config: WritableSignal<ImagePickerConf> = signal({\r\n height: '240px',\r\n width: '320px',\r\n borderRadius: '16px',\r\n compressInitial: true,\r\n language: 'es',\r\n hideDeleteBtn: false,\r\n hideDownloadBtn: false,\r\n hideEditBtn: false,\r\n hideAddBtn: false,\r\n });\r\n public imageSrc: WritableSignal<string> = signal(null);\r\n public showCrop: UntypedFormControl = new UntypedFormControl({ value: false, disabled: false });\r\n public loadImage: WritableSignal<boolean> = signal(false);\r\n public noEdit: WritableSignal<boolean> = signal(false);\r\n public showEditPanel: WritableSignal<boolean> = signal(false);\r\n public maintainAspectRatio: UntypedFormControl = new UntypedFormControl({ value: true, disabled: false });\r\n public quality: UntypedFormControl = new UntypedFormControl({ value: 70, disabled: false });\r\n public format: UntypedFormControl = new UntypedFormControl({ value: 'webp', disabled: false });\r\n public maxHeight: WritableSignal<number> = signal(2000);\r\n public maxWidth: WritableSignal<number> = signal(2000);\r\n public cropHeight: UntypedFormControl = new UntypedFormControl({ value: 150, disabled: false });\r\n public cropWidth: UntypedFormControl = new UntypedFormControl({ value: 150, disabled: false });\r\n public imageName: WritableSignal<string> = signal('download');\r\n public currentLanguage: WritableSignal<string> = signal('es');\r\n\r\n @Input() appearance: MatFormFieldAppearance = 'outline';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() imagesAllowed: ImageAllowedTypes = 'image/*';\r\n\r\n @ViewChild('imagePicker', { static: false }) imagePicker: ElementRef | undefined;\r\n\r\n @Output() $imageChanged: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() $imageOriginal: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() set base64Image(image: string) {\r\n if (image) {\r\n this.imageSrc.set(image);\r\n this.arrayCopiedImages = [];\r\n this.arrayCopiedImages.push(this.imageSrc());\r\n this.originImageSrc = image;\r\n this.lastOriginSrc = image;\r\n this.$imageOriginal.next(this.originImageSrc);\r\n this.loadImage.set(true);\r\n this.noEdit.set(false);\r\n }\r\n }\r\n\r\n @Input() set _imageSrc(image: string) {\r\n if (image) {\r\n let types: string[] = image.split('.');\r\n this.format.setValue(types[types.length - 1]);\r\n\r\n if (!this.format.value || (this.format.value !== 'png' && this.format.value !== 'jpeg' && this.format.value !== 'webp')) {\r\n this.format.setValue('jpeg');\r\n }\r\n\r\n this.imageSrc.set(image);\r\n this.arrayCopiedImages = [];\r\n this.arrayCopiedImages.push(this.imageSrc());\r\n this.originImageSrc = image;\r\n this.lastOriginSrc = image;\r\n this.$imageOriginal.next(this.originImageSrc);\r\n this.loadImage.set(true);\r\n this.noEdit.set(true);\r\n } else {\r\n this.imageSrc.set(null);\r\n this.originImageSrc = null;\r\n this.loadImage.set(false);\r\n this.noEdit.set(false);\r\n this.arrayCopiedImages = [];\r\n this.lastOriginSrc = null;\r\n this.$imageOriginal.next(null);\r\n this.format.setValue('jpeg');\r\n this.maxHeight.set(2000);\r\n this.maxWidth.set(2000);\r\n this.cropHeight.setValue(150);\r\n this.cropWidth.setValue(150);\r\n this.maintainAspectRatio.setValue(true);\r\n this.showEditPanel.set(false);\r\n }\r\n }\r\n\r\n @Input() set _config(value: ImagePickerConf) {\r\n if (value && value.constructor == Object) {\r\n this.config.set({\r\n ...this.config(),\r\n ...value,\r\n })\r\n }\r\n }\r\n\r\n private async handleReaderLoaded(readerEvt: { target: { result: any; }; }): Promise<void> {\r\n const binaryString: string = readerEvt.target.result;\r\n const base64textString: string = btoa(binaryString);\r\n this.originImageSrc = this.urlImage + base64textString;\r\n this.lastOriginSrc = this.urlImage + base64textString;\r\n if (this.config()?.compressInitial) {\r\n this.quality.setValue(70);\r\n const input: ImageConverterInput = {\r\n dataType: this.format.value,\r\n quality: 0.70,\r\n maintainRatio: true,\r\n };\r\n this.imageSrc.set(await this.resizeDataURL(this.urlImage + base64textString, input));\r\n } else {\r\n this.imageSrc.set(this.urlImage + base64textString);\r\n this.arrayCopiedImages = [];\r\n this.arrayCopiedImages.push({\r\n lastImage: this.imageSrc(),\r\n width: this.maxWidth(),\r\n height: this.maxHeight(),\r\n quality: this.quality.value,\r\n });\r\n this.$imageOriginal.next(this.imageSrc());\r\n }\r\n this.$imageChanged.next(this.imageSrc());\r\n this.loadImage.set(true);\r\n }\r\n\r\n private async resizeDataURL(datas: string, input: ImageConverterInput): Promise<any> {\r\n return await new Promise(async function(resolve): Promise<void> {\r\n let img: HTMLImageElement = document.createElement('img');\r\n img.src = datas + '';\r\n img.crossOrigin = 'Anonymous';\r\n let quality: number = input?.quality ?? 1.0;\r\n let maintainRatio: boolean = input.maintainRatio !== undefined ? input.maintainRatio : true;\r\n\r\n img.onload = function(): void {\r\n const canvas: HTMLCanvasElement = document.createElement('canvas');\r\n const ctx: CanvasRenderingContext2D = canvas.getContext('2d');\r\n let ratio: number = img.width / img.height;\r\n let width: number = input?.width ?? img.width;\r\n let height: number = input?.height ?? img.height;\r\n\r\n if (maintainRatio) {\r\n if (input.changeHeight) {\r\n canvas.width = height * ratio;\r\n canvas.height = height;\r\n } else {\r\n canvas.width = width;\r\n canvas.height = width / ratio;\r\n }\r\n } else {\r\n canvas.width = width;\r\n canvas.height = height;\r\n }\r\n\r\n ctx?.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n let type: string = input?.dataType ?? 'webp';\r\n const dataURI: string = canvas.toDataURL(`image/${type}`, quality);\r\n resolve({\r\n dataUri: dataURI,\r\n width: canvas.width,\r\n height: canvas.height,\r\n });\r\n };\r\n }).then((data: any) => {\r\n this.maxHeight = data?.height;\r\n this.maxWidth = data?.width;\r\n if (this.arrayCopiedImages?.length <= 20) {\r\n this.arrayCopiedImages.push({\r\n lastImage: data?.dataUri,\r\n width: this.maxWidth,\r\n height: this.maxHeight,\r\n quality: this.quality.value,\r\n });\r\n }\r\n\r\n return data.dataUri;\r\n });\r\n }\r\n\r\n private wait(ms?: number | undefined): Promise<any> {\r\n ms = ms ?? 1000;\r\n return new Promise((resolve): void => {\r\n setTimeout(() => {\r\n return resolve(true);\r\n }, ms);\r\n });\r\n }\r\n\r\n private dragElement(element: HTMLElement): void {\r\n let pos1: number = 0, pos2: number = 0, pos3: number = 0, pos4: number = 0;\r\n\r\n let el: HTMLElement = document.getElementById(element.id + '-header');\r\n if (el) {\r\n el.onmousedown = dragMouseDown;\r\n el.ontouchstart = dragMouseDown;\r\n } else {\r\n element.onmousedown = dragMouseDown;\r\n element.ontouchstart = dragMouseDown;\r\n }\r\n\r\n function dragMouseDown(e: any): void {\r\n e = e || window.event;\r\n e?.preventDefault();\r\n pos3 = e?.clientX;\r\n pos4 = e?.clientY;\r\n document.onmouseup = closeDragElement;\r\n document.ontouchend = closeDragElement;\r\n document.onmousemove = elementDrag;\r\n document.ontouchmove = elementDrag;\r\n }\r\n\r\n function elementDrag(e: any): void {\r\n let holderImage: any = document.getElementById('image-full');\r\n e = e || window.event;\r\n e?.preventDefault();\r\n pos1 = pos3 - e?.clientX;\r\n pos2 = pos4 - e?.clientY;\r\n pos3 = e?.clientX;\r\n pos4 = e?.clientY;\r\n\r\n const newTop: number = element.offsetTop - pos2;\r\n const newLeft: number = element.offsetLeft - pos1;\r\n const rectHolder = holderImage.getBoundingClientRect();\r\n const rectElement: DOMRect = element.getBoundingClientRect();\r\n if (newTop >= rectHolder.y + 8) {\r\n element.style.top = Math.min(newTop, rectHolder.y + rectHolder.height - rectElement.height - 4) + 'px';\r\n }\r\n if (newLeft > rectHolder.x + 4 && rectHolder.x + rectHolder.width > rectElement.x + rectElement.width + 2) {\r\n element.style.left = Math.min(newLeft, rectHolder.x + rectHolder.width - rectElement.width - 4) + 'px';\r\n }\r\n }\r\n\r\n function closeDragElement(): void {\r\n document.onmouseup = null;\r\n document.onmousemove = null;\r\n document.ontouchend = null;\r\n document.ontouchmove = null;\r\n }\r\n }\r\n\r\n public onUpload(event: { preventDefault: () => void; }): void {\r\n event.preventDefault();\r\n this.imagePicker?.nativeElement.click();\r\n }\r\n\r\n public handleFileSelect(evt: any): void {\r\n const files = evt?.target?.files;\r\n if (files) {\r\n const file = files[0];\r\n this.imageName.set(file?.name?.split('.')[0]);\r\n this.urlImage = `data:${file?.type};base64,`;\r\n this.noEdit.set(false);\r\n\r\n if (files && file) {\r\n const reader: any = new FileReader();\r\n reader.onload = this.handleReaderLoaded.bind(this);\r\n reader.readAsBinaryString(file);\r\n }\r\n }\r\n }\r\n\r\n public onCloseEditPanel(): void {\r\n if (this.observer instanceof ResizeObserver) {\r\n let imageCropper: any = document.getElementById('image-cropper');\r\n let imageFull: any = document.getElementById('image-full');\r\n this.observer.unobserve(imageCropper);\r\n this.observer.unobserve(imageFull);\r\n }\r\n this.showCrop.setValue(false);\r\n this.showEditPanel.set(false);\r\n }\r\n\r\n public async onChangeQuality(): Promise<void> {\r\n const qualityItem: number = this.quality.value / 100;\r\n this.maxHeight.set(this.maxHeight() ?? 2000);\r\n this.maxWidth.set(this.maxWidth() ?? 2000);\r\n\r\n await this.wait(250);\r\n try {\r\n const input: ImageConverterInput = {\r\n height: this.maxHeight(),\r\n width: this.maxWidth(),\r\n dataType: this.format.value,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio.value,\r\n };\r\n\r\n this.imageSrc.set(await this.resizeDataURL(this.originImageSrc, input));\r\n this.$imageChanged.next(this.imageSrc());\r\n this.loadImage.set(true);\r\n } catch (error) {\r\n this.loadImage.set(true);\r\n }\r\n }\r\n\r\n public async onChangeFormat(): Promise<void> {\r\n let qualityItem: number = this.quality.value / 100;\r\n this.maxHeight.set(this.maxHeight() ?? 2000);\r\n this.maxWidth.set(this.maxWidth() ?? 2000);\r\n\r\n await this.wait(250);\r\n try {\r\n let input: ImageConverterInput = {\r\n height: this.maxHeight(),\r\n width: this.maxWidth(),\r\n dataType: this.format.value,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio.value,\r\n };\r\n this.imageSrc.set(await this.resizeDataURL(this.originImageSrc, input));\r\n this.$imageChanged.next(this.imageSrc());\r\n this.loadImage.set(true);\r\n } catch (error) {\r\n this.loadImage.set(true);\r\n }\r\n }\r\n\r\n public async onChangeSize(changeWidth?: any, changeHeight?: any): Promise<void> {\r\n let qualityItem: number = this.quality.value / 100;\r\n this.maxHeight.set(this.maxHeight() ?? 2000);\r\n this.maxWidth.set(this.maxWidth() ?? 2000);\r\n\r\n await this.wait(500);\r\n\r\n try {\r\n let input: ImageConverterInput = {\r\n height: this.maxHeight(),\r\n width: this.maxWidth(),\r\n dataType: this.format.value,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio.value,\r\n changeHeight: changeHeight,\r\n changeWidth: changeWidth,\r\n };\r\n this.imageSrc.set(await this.resizeDataURL(this.originImageSrc, input));\r\n this.$imageChanged.next(this.imageSrc());\r\n this.loadImage.set(true);\r\n } catch (error) {\r\n this.loadImage.set(true);\r\n }\r\n }\r\n\r\n public onChangeCrop(): void {\r\n const cropper: any = document.getElementById('image-cropper');\r\n cropper.style.width = this.cropWidth.value + 'px';\r\n cropper.style.height = this.cropHeight.value + 'px';\r\n }\r\n\r\n public onCropStateChange(): void {\r\n const cropper: HTMLElement = document.getElementById('image-cropper');\r\n const fullImage: HTMLElement = document.getElementById('image-full');\r\n const aspectRatio: number = fullImage.offsetWidth / fullImage.offsetHeight;\r\n\r\n if (this.showCrop.value) {\r\n cropper.style.opacity = '1.0';\r\n this.dragElement(cropper);\r\n this.observer = new ResizeObserver((entries: ResizeObserverEntry[]): void => {\r\n entries.forEach((entry: ResizeObserverEntry): void => {\r\n if (this.showEditPanel()) {\r\n const elementCropper: HTMLElement = document.getElementById('image-cropper');\r\n const elementFull: HTMLElement = document.getElementById('image-full');\r\n\r\n const rectHolder: DOMRect = elementFull.getBoundingClientRect();\r\n const rectElement: DOMRect = elementCropper.getBoundingClientRect();\r\n\r\n const maxWidth: number = rectHolder.x + rectHolder.width - rectElement.x - 4;\r\n const maxHeight: number = rectHolder.y + rectHolder.height - rectElement.y - 4;\r\n\r\n // Obtener el tamaño del área de recorte seleccionada por el usuario\r\n const cropWidth: number = elementCropper.offsetWidth;\r\n const cropHeight: number = elementCropper.offsetHeight;\r\n\r\n // Calcular el ancho y el alto del área de recorte manteniendo la relación de aspecto de la imagen original\r\n let newWidth: number = cropWidth;\r\n let newHeight: number = cropHeight;\r\n\r\n if (this.maintainAspectRatio.value) {\r\n if (cropWidth / cropHeight > aspectRatio) {\r\n newHeight = cropWidth / aspectRatio;\r\n } else {\r\n newWidth = cropHeight * aspectRatio;\r\n }\r\n }\r\n\r\n // Ajustar el ancho y el alto del área de recorte si supera los límites\r\n newWidth = Math.min(newWidth, maxWidth);\r\n newHeight = Math.min(newHeight, maxHeight);\r\n\r\n // Establecer el tamaño y la posición del área de recorte\r\n elementCropper.style.width = `${newWidth}px`;\r\n elementCropper.style.height = `${newHeight}px`;\r\n\r\n this.cropWidth.setValue(rectElement.width);\r\n this.cropHeight.setValue(rectElement.height);\r\n\r\n if (entry.target.id == 'image-full') {\r\n if (rectHolder.top > 0) {\r\n elementCropper.style.top = rectHolder.top + 4 + 'px';\r\n }\r\n elementCropper.style.left = rectHolder.left + 4 + 'px';\r\n }\r\n }\r\n });\r\n });\r\n this.observer.observe(document.getElementById('image-cropper'));\r\n this.observer.observe(document.getElementById('image-full'));\r\n } else {\r\n cropper.style.opacity = '0.0';\r\n if (this.observer instanceof ResizeObserver) {\r\n const elementCropper: HTMLElement = document.getElementById('image-cropper');\r\n const elementFull: HTMLElement = document.getElementById('image-full');\r\n this.observer.unobserve(elementCropper);\r\n this.observer.unobserve(elementFull);\r\n }\r\n }\r\n }\r\n\r\n public onCrop(type?: any): void {\r\n type = type ?? this.format.value;\r\n const cropper: HTMLElement = document.getElementById('image-cropper');\r\n const elementFull: HTMLElement = document.getElementById('image-full');\r\n const rectCropper: DOMRect = cropper.getBoundingClientRect();\r\n const dataHolderRect: DOMRect = elementFull.getBoundingClientRect();\r\n const canvas: HTMLCanvasElement = document.createElement('canvas');\r\n new Promise((resolve, reject): void => {\r\n let ctx: CanvasRenderingContext2D | null = canvas.getContext('2d');\r\n let image: HTMLImageElement = new Image();\r\n image.src = this.imageSrc();\r\n image.onload = (): void => {\r\n let ratio: number = image.height / dataHolderRect.height;\r\n let newWidth: number = rectCropper.width * ratio;\r\n let newHeight: number = rectCropper.height * ratio;\r\n canvas.width = newWidth;\r\n canvas.height = newHeight;\r\n ctx?.drawImage(\r\n image,\r\n Math.abs(rectCropper.x * ratio) - Math.abs(dataHolderRect.x * ratio),\r\n Math.abs(rectCropper.y * ratio) - Math.abs(dataHolderRect.y * ratio),\r\n newWidth,\r\n newHeight,\r\n 0,\r\n 0,\r\n newWidth,\r\n newHeight,\r\n );\r\n\r\n resolve(canvas.toDataURL(`image/${type}`, this.quality.value));\r\n };\r\n image.onerror = (e: string | Event): void => {\r\n reject(e);\r\n };\r\n })\r\n .then((dataUri: any): void => {\r\n this.imageSrc.set(dataUri);\r\n this.showCrop.setValue(false);\r\n this.onCropStateChange();\r\n this.maxWidth.set(canvas?.width);\r\n this.maxHeight.set(canvas?.height);\r\n this.lastOriginSrc = this.originImageSrc + '';\r\n this.originImageSrc = dataUri;\r\n this.$imageChanged.next(this.imageSrc());\r\n })\r\n .catch((e): void => {\r\n console.log(e);\r\n });\r\n }\r\n\r\n public onRestore(): void {\r\n if (this.arrayCopiedImages.length) {\r\n let lastState = this.arrayCopiedImages.pop();\r\n this.imageSrc.set(lastState.lastImage);\r\n this.maxWidth.set(lastState.width);\r\n this.maxHeight.set(lastState.height);\r\n this.originImageSrc = this.lastOriginSrc + '';\r\n this.noEdit.set(false);\r\n } else {\r\n this.imageSrc.set(this.lastOriginSrc);\r\n this.originImageSrc = this.lastOriginSrc + '';\r\n this.noEdit.set(false);\r\n }\r\n\r\n this.$imageChanged.next(this.imageSrc());\r\n }\r\n\r\n public onRemove(): void {\r\n this.imageSrc.set(null);\r\n this.originImageSrc = null;\r\n this.loadImage.set(false);\r\n this.arrayCopiedImages = [];\r\n this.lastOriginSrc = null;\r\n this.$imageOriginal.next(null);\r\n this.$imageChanged.next(null);\r\n this.format.setValue('jpeg');\r\n this.maxHeight.set(2000);\r\n this.maxWidth.set(2000);\r\n this.cropHeight.setValue(150);\r\n this.cropWidth.setValue(150);\r\n this.maintainAspectRatio.setValue(true);\r\n this.showEditPanel.set(false);\r\n this.noEdit.set(false);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll$.next();\r\n this.unsubscribeAll$.complete();\r\n }\r\n}\r\n","@if (!loadImage()) {\n <div class='place-image'>\n <div class='image-holder'\n [ngStyle]='{ width: config()?.width,height: config()?.height,borderRadius: config()?.borderRadius}'>\n <button [matTooltip]=\"'UPLOAD_A_IMAGE' | i18n: config()?.language\" class='image-upload-btn' mat-icon-button\n (click)='onUpload($event)'>\n <mat-icon class='mat-18'>add_a_photo</mat-icon>\n </button>\n <input #imagePicker type='file' class='d-none' [id]=\"'filePicker-' + uuidFilePicker\"\n (change)='handleFileSelect($event)' [accept]='imagesAllowed'>\n </div>\n </div>\n}\n\n@if (loadImage()) {\n <div class='place-image'>\n <div class='image-holder-loaded'\n [ngStyle]='{width: config()?.width,height: config()?.height,borderRadius: config()?.borderRadius}'>\n <img [src]='imageSrc()' alt='image-loaded' [ngStyle]='{ borderRadius: config()?.borderRadius }'>\n <input #imagePicker type='file' class='d-none' [id]=\"'filePicker-' + uuidFilePicker\"\n (change)='handleFileSelect($event)' [accept]='imagesAllowed'>\n </div>\n @if (imageSrc()?.length) {\n <p class='mat-caption image-caption' [class.warn]='(imageSrc()?.length | calculateSize) > 200'\n [class.fw-600]='(imageSrc()?.length | calculateSize) > 200'>\n {{ \"SIZE\" | i18n: currentLanguage() }}: {{ (imageSrc()?.length | calculateSize) }}Kb {{ format.value }}\n </p>\n }\n <div class='editing-bar-btn'>\n @if (!config()?.hideAddBtn) {\n <button id='upload-img' mat-icon-button (click)='onUpload($event)'\n [matTooltip]=\"'UPLOAD_A_IMAGE' | i18n: config()?.language\">\n <mat-icon class='mat-18'>add_a_photo</mat-icon>\n </button>\n }\n @if (!config()?.hideEditBtn && !noEdit()) {\n <button id='edit-img' mat-icon-button (click)='showEditPanel.set(true)'\n [matTooltip]=\"'OPEN_EDITOR_PANEL' | i18n: config()?.language\">\n <mat-icon class='mat-18'>edit</mat-icon>\n </button>\n }\n @if (!config()?.hideDownloadBtn) {\n <a id='download-img' [matTooltip]=\"'DOWNLOAD' | i18n: config()?.language\"\n [href]='imageSrc()' mat-icon-button [download]='imageName'>\n <mat-icon class='mat-18'>cloud_download</mat-icon>\n </a>\n }\n @if (!config()?.hideDeleteBtn) {\n <button id='delete-img' mat-icon-button (click)='onRemove()'\n [matTooltip]=\"'REMOVE' | i18n: config()?.language\">\n <mat-icon class='mat-18'>delete</mat-icon>\n </button>\n }\n </div>\n </div>\n}\n\n@if (showEditPanel()) {\n <div id='popup' class='popup'>\n <div class='popup-clear'>\n <button mat-icon-button (click)='onCloseEditPanel()'>\n <mat-icon class='mat-18'>clear</mat-icon>\n </button>\n </div>\n <div class='image-container'>\n <div class='image-holder-full'>\n <img id='image-full' [src]='imageSrc()' alt=''>\n <div id='image-cropper' class='image-cropper'>\n <div id='image-cropper-header'>\n <mat-icon>drag_indicator</mat-icon>\n </div>\n </div>\n </div>\n <div class='control-panel'>\n <p class='item-panel fw-600'>{{ 'QUALITY' | i18n: config()?.language }}</p>\n <div class='quality-container'>\n <mat-slider ngDefaultControl [color]='color' class='w-100 mw-100' (change)='onChangeQuality()'\n [max]='100' [min]='0' [step]='1' [discrete]='true' [showTickMarks]='true'>\n <input matSliderThumb [formControl]='quality'>\n </mat-slider>\n </div>\n <div class='item-panel'>\n <span class='fw-600'>{{ 'MAX_DIMENSIONS' | i18n: config()?.language }}</span>\n <mat-checkbox class='float-right' [formControl]='maintainAspectRatio' [color]='color'>\n <span>{{ 'ASPECT_RATIO' | i18n: config()?.language }}</span>\n </mat-checkbox>\n </div>\n <div class='max-dimension-container'>\n <mat-form-field class='w-48' [appearance]='appearance' [color]='color'>\n <mat-label>{{ 'MAX_WIDTH_PX' | i18n: config()?.language }}</mat-label>\n <input (change)='onChangeSize(true, false)' matInput\n [placeholder]=\"'MAX_WIDTH_PX' | i18n: config()?.language\"\n [(ngModel)]='maxWidth' type='number' [min]='0' [max]='2000'>\n </mat-form-field>\n <mat-form-field class='w-48' [appearance]='appearance' [color]='color'>\n <mat-label>{{ 'MAX_HEIGHT_PX' | i18n: config()?.language }}</mat-label>\n <input (change)='onChangeSize(false, true)' matInput\n [placeholder]=\"'MAX_HEIGHT_PX' | i18n: config()?.language\"\n [(ngModel)]='maxHeight' type='number' [min]='0' [max]='2000'>\n </mat-form-field>\n </div>\n <p class='item-panel fw-600'>{{ 'FORMAT' | i18n: config()?.language }}</p>\n <div class='formats-selection'>\n <mat-form-field class='w-100 mw-100' [appearance]='appearance' [color]='color'>\n <mat-select [formControl]='format' (selectionChange)='onChangeFormat()'>\n @for (format of allFormats; track format) {\n <mat-option [value]='format'>\n {{ format }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class='refresh-container'>\n <mat-checkbox (change)='onCropStateChange()' [formControl]='showCrop' [color]='color'>\n <p class='item-panel fw-600'>{{ 'CROP' | i18n: config()?.language }}</p>\n </mat-checkbox>\n <div class='d-flex '>\n <button class='float-right' mat-icon-button [color]='color' (click)='onRestore()'>\n <mat-icon>refresh</mat-icon>\n </button>\n @if (showCrop.value) {\n <p>\n <button mat-icon-button [color]='color' (click)='onCrop()'>\n <mat-icon>crop</mat-icon>\n </button>\n </p>\n }\n </div>\n </div>\n @if (showCrop.value) {\n <div class='dimension-container'>\n <mat-form-field class='w-48 mw-48' [appearance]='appearance' [color]='color'>\n <mat-label>{{ 'WIDTH_PX' | i18n: config()?.language }}</mat-label>\n <input (change)='onChangeCrop()' matInput [placeholder]=\"'WIDTH_PX' | i18n: config()?.language\"\n [formControl]='cropWidth' type='number' [min]='0' [max]='2000'>\n </mat-form-field>\n <mat-form-field class='w-48 mw-48' [appearance]='appearance' [color]='color'>\n <mat-label>{{ 'HEIGHT_PX' | i18n: config()?.language }}</mat-label>\n <input (change)='onChangeCrop()' matInput [placeholder]=\"'HEIGHT_PX' | i18n: config()?.language\"\n [formControl]='cropHeight' type='number' [min]='0' [max]='2000'>\n </mat-form-field>\n </div>\n }\n <div class='save-container'>\n <button mat-flat-button (click)='onCloseEditPanel()' [color]='color' class='save-button'>\n {{ 'SAVE' | i18n: config()?.language }}\n </button>\n @if (imageSrc()?.length) {\n <p class='mat-caption image-caption'\n [class.warn]='(imageSrc()?.length | calculateSize) > 200'\n [class.fw-600]='(imageSrc()?.length | calculateSize) > 200'>\n {{ \"SIZE\" | i18n: currentLanguage() }}: {{ (imageSrc()?.length | calculateSize) }}Kb\n {{ format.value }}\n </p>\n }\n </div>\n </div>\n </div>\n </div>\n}\n","/*\r\n * Public API Surface of guachos-image-picker\r\n */\r\n\r\nexport * from './lib/guachos-image-picker.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.I18nPipe","i4.CalculateSizePipe"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;MAKa,QAAQ,CAAA;AACX,IAAA,EAAE,GAAQ;AAChB,QAAA,cAAc,EAAE,iBAAiB;AACjC,QAAA,SAAS,EAAE,+CAA+C;AAC1D,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,iBAAiB,EAAE,uBAAuB;AAC1C,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,cAAc,EAAE,gBAAgB;AAChC,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,aAAa,EAAE,gBAAgB;AAC/B,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,IAAI,EAAE,MAAM;KACb,CAAC;AAEM,IAAA,EAAE,GAAQ;AAChB,QAAA,cAAc,EAAE,iBAAiB;AACjC,QAAA,SAAS,EAAE,gDAAgD;AAC3D,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,iBAAiB,EAAE,0BAA0B;AAC7C,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,cAAc,EAAE,aAAa;AAC7B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,IAAI,EAAE,QAAQ;KACf,CAAC;IAEF,SAAS,CAAC,GAAW,EAAE,QAAgB,EAAA;QACrC,OAAO,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;KAC5D;uGA7CU,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;qGAAR,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA,CAAA;;;MCCY,iBAAiB,CAAA;AAE5B,IAAA,SAAS,CAAC,WAAmB,EAAA;QAC3B,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,OAAO,CAAC,CAAC;SACV;QAED,IAAI,WAAW,EAAE;AACf,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,WAAW,IAAI,IAAI,CAAC,CAAC;SAClD;aAAM;AACL,YAAA,OAAO,CAAC,CAAC;SACV;KACF;uGAZU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;qGAAjB,iBAAiB,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;AACtB,iBAAA,CAAA;;;MCMY,WAAW,CAAA;uGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,iBAHP,QAAQ,EAAE,iBAAiB,CAChC,EAAA,OAAA,EAAA,CAAA,QAAQ,EAAE,iBAAiB,CAAA,EAAA,CAAA,CAAA;wGAE1B,WAAW,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AAC3C,oBAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AACvC,iBAAA,CAAA;;;MCyEY,qBAAqB,CAAA;AACxB,IAAA,eAAe,GAAkB,IAAI,OAAO,EAAE,CAAC;IAC/C,QAAQ,GAAQ,IAAI,CAAC;AACrB,IAAA,cAAc,CAAM;AACpB,IAAA,QAAQ,CAAqB;AAC7B,IAAA,aAAa,CAAM;IAEnB,iBAAiB,GAAU,EAAE,CAAC;IAEtB,cAAc,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,UAAU,GAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,GAAoC,MAAM,CAAC;AACtD,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,eAAe,EAAE,IAAI;AACrB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,UAAU,EAAE,KAAK;AAClB,KAAA,CAAC,CAAC;AACI,IAAA,QAAQ,GAA2B,MAAM,CAAC,IAAI,CAAC,CAAC;AAChD,IAAA,QAAQ,GAAuB,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACzF,IAAA,SAAS,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC;AACnD,IAAA,MAAM,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,IAAA,aAAa,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC;AACvD,IAAA,mBAAmB,GAAuB,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACnG,IAAA,OAAO,GAAuB,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACrF,IAAA,MAAM,GAAuB,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACxF,IAAA,SAAS,GAA2B,MAAM,CAAC,IAAI,CAAC,CAAC;AACjD,IAAA,QAAQ,GAA2B,MAAM,CAAC,IAAI,CAAC,CAAC;AAChD,IAAA,UAAU,GAAuB,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACzF,IAAA,SAAS,GAAuB,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACxF,IAAA,SAAS,GAA2B,MAAM,CAAC,UAAU,CAAC,CAAC;AACvD,IAAA,eAAe,GAA2B,MAAM,CAAC,IAAI,CAAC,CAAC;IAErD,UAAU,GAA2B,SAAS,CAAC;IAC/C,KAAK,GAAiB,SAAS,CAAC;IAChC,aAAa,GAAsB,SAAS,CAAC;AAET,IAAA,WAAW,CAAyB;AAEvE,IAAA,aAAa,GAAsB,IAAI,YAAY,EAAO,CAAC;AAC3D,IAAA,cAAc,GAAsB,IAAI,YAAY,EAAO,CAAC;IAEtE,IAAa,WAAW,CAAC,KAAa,EAAA;QACpC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACxB;KACF;IAED,IAAa,SAAS,CAAC,KAAa,EAAA;QAClC,IAAI,KAAK,EAAE;YACT,IAAI,KAAK,GAAa,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAE9C,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE;AACvH,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAC9B;AAED,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACvB;aAAM;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC/B;KACF;IAED,IAAa,OAAO,CAAC,KAAsB,EAAA;QACzC,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,MAAM,EAAE;AACxC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBACd,GAAG,IAAI,CAAC,MAAM,EAAE;AAChB,gBAAA,GAAG,KAAK;AACT,aAAA,CAAC,CAAA;SACH;KACF;IAEO,MAAM,kBAAkB,CAAC,SAAwC,EAAA;AACvE,QAAA,MAAM,YAAY,GAAW,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AACrD,QAAA,MAAM,gBAAgB,GAAW,IAAI,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;AACtD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE;AAClC,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1B,YAAA,MAAM,KAAK,GAAwB;AACjC,gBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AAC3B,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,aAAa,EAAE,IAAI;aACpB,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;SACtF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,gBAAA,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC1B,gBAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AACtB,gBAAA,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC5B,aAAA,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAC1B;AAEO,IAAA,MAAM,aAAa,CAAC,KAAa,EAAE,KAA0B,EAAA;AACnE,QAAA,OAAO,MAAM,IAAI,OAAO,CAAC,gBAAe,OAAO,EAAA;YAC7C,IAAI,GAAG,GAAqB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1D,YAAA,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;AACrB,YAAA,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;AAC9B,YAAA,IAAI,OAAO,GAAW,KAAK,EAAE,OAAO,IAAI,GAAG,CAAC;AAC5C,YAAA,IAAI,aAAa,GAAY,KAAK,CAAC,aAAa,KAAK,SAAS,GAAG,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAE5F,GAAG,CAAC,MAAM,GAAG,YAAA;gBACX,MAAM,MAAM,GAAsB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnE,MAAM,GAAG,GAA6B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9D,IAAI,KAAK,GAAW,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC3C,IAAI,KAAK,GAAW,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC;gBAC9C,IAAI,MAAM,GAAW,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;gBAEjD,IAAI,aAAa,EAAE;AACjB,oBAAA,IAAI,KAAK,CAAC,YAAY,EAAE;AACtB,wBAAA,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAC9B,wBAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;qBACxB;yBAAM;AACL,wBAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,wBAAA,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;qBAC/B;iBACF;qBAAM;AACL,oBAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,oBAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;iBACxB;AAED,gBAAA,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACvD,gBAAA,IAAI,IAAI,GAAW,KAAK,EAAE,QAAQ,IAAI,MAAM,CAAC;AAC7C,gBAAA,MAAM,OAAO,GAAW,MAAM,CAAC,SAAS,CAAC,CAAS,MAAA,EAAA,IAAI,CAAE,CAAA,EAAE,OAAO,CAAC,CAAC;AACnE,gBAAA,OAAO,CAAC;AACN,oBAAA,OAAO,EAAE,OAAO;oBAChB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;AACtB,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC;AACJ,SAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS,KAAI;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC;AAC9B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC;YAC5B,IAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,IAAI,EAAE,EAAE;AACxC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC1B,SAAS,EAAE,IAAI,EAAE,OAAO;oBACxB,KAAK,EAAE,IAAI,CAAC,QAAQ;oBACpB,MAAM,EAAE,IAAI,CAAC,SAAS;AACtB,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC5B,iBAAA,CAAC,CAAC;aACJ;YAED,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,IAAI,CAAC,EAAuB,EAAA;AAClC,QAAA,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC;AAChB,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAU;YACnC,UAAU,CAAC,MAAK;AACd,gBAAA,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;aACtB,EAAE,EAAE,CAAC,CAAC;AACT,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,WAAW,CAAC,OAAoB,EAAA;AACtC,QAAA,IAAI,IAAI,GAAW,CAAC,EAAE,IAAI,GAAW,CAAC,EAAE,IAAI,GAAW,CAAC,EAAE,IAAI,GAAW,CAAC,CAAC;AAE3E,QAAA,IAAI,EAAE,GAAgB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;QACtE,IAAI,EAAE,EAAE;AACN,YAAA,EAAE,CAAC,WAAW,GAAG,aAAa,CAAC;AAC/B,YAAA,EAAE,CAAC,YAAY,GAAG,aAAa,CAAC;SACjC;aAAM;AACL,YAAA,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC;AACpC,YAAA,OAAO,CAAC,YAAY,GAAG,aAAa,CAAC;SACtC;QAED,SAAS,aAAa,CAAC,CAAM,EAAA;AAC3B,YAAA,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC;YACtB,CAAC,EAAE,cAAc,EAAE,CAAC;AACpB,YAAA,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC;AAClB,YAAA,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC;AAClB,YAAA,QAAQ,CAAC,SAAS,GAAG,gBAAgB,CAAC;AACtC,YAAA,QAAQ,CAAC,UAAU,GAAG,gBAAgB,CAAC;AACvC,YAAA,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;AACnC,YAAA,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;SACpC;QAED,SAAS,WAAW,CAAC,CAAM,EAAA;YACzB,IAAI,WAAW,GAAQ,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC7D,YAAA,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC;YACtB,CAAC,EAAE,cAAc,EAAE,CAAC;AACpB,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC;AACzB,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC;AACzB,YAAA,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC;AAClB,YAAA,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC;AAElB,YAAA,MAAM,MAAM,GAAW,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;AAChD,YAAA,MAAM,OAAO,GAAW,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;AAClD,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;AACvD,YAAA,MAAM,WAAW,GAAY,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC7D,IAAI,MAAM,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;aACxG;YACD,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE;gBACzG,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;aACxG;SACF;AAED,QAAA,SAAS,gBAAgB,GAAA;AACvB,YAAA,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,YAAA,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,YAAA,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,YAAA,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;SAC7B;KACF;AAEM,IAAA,QAAQ,CAAC,KAAsC,EAAA;QACpD,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;KACzC;AAEM,IAAA,gBAAgB,CAAC,GAAQ,EAAA;AAC9B,QAAA,MAAM,KAAK,GAAG,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;QACjC,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,GAAG,CAAA,KAAA,EAAQ,IAAI,EAAE,IAAI,UAAU,CAAC;AAC7C,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAEvB,YAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,gBAAA,MAAM,MAAM,GAAQ,IAAI,UAAU,EAAE,CAAC;gBACrC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,gBAAA,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;aACjC;SACF;KACF;IAEM,gBAAgB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,cAAc,EAAE;YAC3C,IAAI,YAAY,GAAQ,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACjE,IAAI,SAAS,GAAQ,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SACpC;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAC/B;AAEM,IAAA,MAAM,eAAe,GAAA;QAC1B,MAAM,WAAW,GAAW,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;AACrD,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC;AAE3C,QAAA,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI;AACF,YAAA,MAAM,KAAK,GAAwB;AACjC,gBAAA,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;AACxB,gBAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AACtB,gBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AAC3B,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK;aAC9C,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC1B;QAAC,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;AAEM,IAAA,MAAM,cAAc,GAAA;QACzB,IAAI,WAAW,GAAW,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;AACnD,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC;AAE3C,QAAA,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI;AACF,YAAA,IAAI,KAAK,GAAwB;AAC/B,gBAAA,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;AACxB,gBAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AACtB,gBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AAC3B,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK;aAC9C,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC1B;QAAC,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;AAEM,IAAA,MAAM,YAAY,CAAC,WAAiB,EAAE,YAAkB,EAAA;QAC7D,IAAI,WAAW,GAAW,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;AACnD,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC;AAE3C,QAAA,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAErB,QAAA,IAAI;AACF,YAAA,IAAI,KAAK,GAAwB;AAC/B,gBAAA,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;AACxB,gBAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AACtB,gBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AAC3B,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK;AAC7C,gBAAA,YAAY,EAAE,YAAY;AAC1B,gBAAA,WAAW,EAAE,WAAW;aACzB,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC1B;QAAC,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;IAEM,YAAY,GAAA;QACjB,MAAM,OAAO,GAAQ,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AAC9D,QAAA,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;AAClD,QAAA,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;KACrD;IAEM,iBAAiB,GAAA;QACtB,MAAM,OAAO,GAAgB,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACtE,MAAM,SAAS,GAAgB,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACrE,MAAM,WAAW,GAAW,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC;AAE3E,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,OAA8B,KAAU;AAC1E,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAA0B,KAAU;AACnD,oBAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;wBACxB,MAAM,cAAc,GAAgB,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;wBAC7E,MAAM,WAAW,GAAgB,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAEvE,wBAAA,MAAM,UAAU,GAAY,WAAW,CAAC,qBAAqB,EAAE,CAAC;AAChE,wBAAA,MAAM,WAAW,GAAY,cAAc,CAAC,qBAAqB,EAAE,CAAC;AAEpE,wBAAA,MAAM,QAAQ,GAAW,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7E,wBAAA,MAAM,SAAS,GAAW,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;;AAG/E,wBAAA,MAAM,SAAS,GAAW,cAAc,CAAC,WAAW,CAAC;AACrD,wBAAA,MAAM,UAAU,GAAW,cAAc,CAAC,YAAY,CAAC;;wBAGvD,IAAI,QAAQ,GAAW,SAAS,CAAC;wBACjC,IAAI,SAAS,GAAW,UAAU,CAAC;AAEnC,wBAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;AAClC,4BAAA,IAAI,SAAS,GAAG,UAAU,GAAG,WAAW,EAAE;AACxC,gCAAA,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;6BACrC;iCAAM;AACL,gCAAA,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;6BACrC;yBACF;;wBAGD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBACxC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;wBAG3C,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,QAAQ,IAAI,CAAC;wBAC7C,cAAc,CAAC,KAAK,CAAC,MAAM,GAAG,CAAG,EAAA,SAAS,IAAI,CAAC;wBAE/C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBAE7C,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,YAAY,EAAE;AACnC,4BAAA,IAAI,UAAU,CAAC,GAAG,GAAG,CAAC,EAAE;AACtB,gCAAA,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;6BACtD;AACD,4BAAA,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;yBACxD;qBACF;AACH,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;SAC9D;aAAM;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AAC9B,YAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,cAAc,EAAE;gBAC3C,MAAM,cAAc,GAAgB,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;gBAC7E,MAAM,WAAW,GAAgB,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AACvE,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AACxC,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;aACtC;SACF;KACF;AAEM,IAAA,MAAM,CAAC,IAAU,EAAA;QACtB,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,MAAM,OAAO,GAAgB,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACtE,MAAM,WAAW,GAAgB,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AACvE,QAAA,MAAM,WAAW,GAAY,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAC7D,QAAA,MAAM,cAAc,GAAY,WAAW,CAAC,qBAAqB,EAAE,CAAC;QACpE,MAAM,MAAM,GAAsB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnE,QAAA,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAU;YACpC,IAAI,GAAG,GAAoC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACnE,YAAA,IAAI,KAAK,GAAqB,IAAI,KAAK,EAAE,CAAC;AAC1C,YAAA,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,YAAA,KAAK,CAAC,MAAM,GAAG,MAAW;gBACxB,IAAI,KAAK,GAAW,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;AACzD,gBAAA,IAAI,QAAQ,GAAW,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;AACjD,gBAAA,IAAI,SAAS,GAAW,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC;AACnD,gBAAA,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;AACxB,gBAAA,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;AAC1B,gBAAA,GAAG,EAAE,SAAS,CACZ,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,EACpE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,EACpE,QAAQ,EACR,SAAS,EACT,CAAC,EACD,CAAC,EACD,QAAQ,EACR,SAAS,CACV,CAAC;AAEF,gBAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,CAAA,CAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,aAAC,CAAC;AACF,YAAA,KAAK,CAAC,OAAO,GAAG,CAAC,CAAiB,KAAU;gBAC1C,MAAM,CAAC,CAAC,CAAC,CAAC;AACZ,aAAC,CAAC;AACJ,SAAC,CAAC;AACC,aAAA,IAAI,CAAC,CAAC,OAAY,KAAU;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC9C,YAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3C,SAAC,CAAC;AACD,aAAA,KAAK,CAAC,CAAC,CAAC,KAAU;AACjB,YAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,SAAC,CAAC,CAAC;KACN;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACjC,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC9C,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC9C,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACxB;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC1C;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;KACjC;uGA9fU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClFlC,6mPAiKA,EAAA,MAAA,EAAA,CAAA,6sMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED7FI,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACP,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,6bACf,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,eAAA,EAAA,KAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGV,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBArBjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,mBAGlB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACP,OAAO;wBACP,gBAAgB;wBAChB,aAAa;wBACb,WAAW;wBACX,eAAe;wBACf,eAAe;wBACf,iBAAiB;wBACjB,kBAAkB;wBAClB,cAAc;wBACd,eAAe;wBACf,WAAW;wBACX,mBAAmB;AACtB,qBAAA,EAAA,QAAA,EAAA,6mPAAA,EAAA,MAAA,EAAA,CAAA,6sMAAA,CAAA,EAAA,CAAA;8BAuCU,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEuC,WAAW,EAAA,CAAA;sBAAvD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAEjC,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAEM,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAaO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAmCO,OAAO,EAAA,CAAA;sBAAnB,KAAK;;;AEhLR;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"guajiritos-image-picker.mjs","sources":["../../../projects/guachos-image-picker/src/utils/pipes/i18n/i18n.pipe.ts","../../../projects/guachos-image-picker/src/utils/pipes/calculate-size/calculate-size.pipe.ts","../../../projects/guachos-image-picker/src/utils/pipes/pipes.module.ts","../../../projects/guachos-image-picker/src/lib/guachos-image-picker.component.ts","../../../projects/guachos-image-picker/src/lib/guachos-image-picker.component.html","../../../projects/guachos-image-picker/src/public-api.ts","../../../projects/guachos-image-picker/src/guajiritos-image-picker.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'i18n'\r\n})\r\nexport class I18nPipe implements PipeTransform {\r\n private en: any = {\r\n UPLOAD_A_IMAGE: 'Upload an image',\r\n MUST_EDIT: 'You must edit the image in order to resize it',\r\n TOO_LARGE: 'too large',\r\n OPEN_EDITOR_PANEL: 'Open the editor panel',\r\n DOWNLOAD: 'Download the image',\r\n CONTROL_PANEL: 'Control Panel',\r\n QUALITY: 'Quality',\r\n SAVE: 'Save',\r\n MAX_DIMENSIONS: 'Max dimensions',\r\n ASPECT_RATIO: 'Aspect ratio',\r\n MAX_WIDTH_PX: 'max-width(px)',\r\n MAX_HEIGHT_PX: 'max-height(px)',\r\n FORMAT: 'Format',\r\n CROP: 'Crop',\r\n WIDTH_PX: 'width(px)',\r\n HEIGHT_PX: 'height(px)',\r\n REMOVE: 'Remove',\r\n SIZE: 'Size'\r\n };\r\n\r\n private es: any = {\r\n UPLOAD_A_IMAGE: 'Suba una imagen',\r\n MUST_EDIT: 'Debe editar la imagen para disminuir su tamaño',\r\n TOO_LARGE: 'muy grande',\r\n OPEN_EDITOR_PANEL: 'Abra el panel de edición',\r\n DOWNLOAD: 'Descargue la imagen',\r\n CONTROL_PANEL: 'Panel de control',\r\n REMOVE: 'Eliminar',\r\n SAVE: 'Guardar',\r\n QUALITY: 'Calidad',\r\n MAX_DIMENSIONS: 'Dimensiones',\r\n ASPECT_RATIO: 'Relación-Aspecto',\r\n MAX_WIDTH_PX: 'max. ancho',\r\n MAX_HEIGHT_PX: 'max. alto',\r\n FORMAT: 'Formato',\r\n CROP: 'Recortar',\r\n WIDTH_PX: 'ancho(px)',\r\n HEIGHT_PX: 'altura(px)',\r\n SIZE: 'Tamaño'\r\n };\r\n\r\n transform(key: string, language: string): string {\r\n return language === 'en' ? this.en?.[key] : this.es?.[key];\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'calculateSize'\r\n})\r\nexport class CalculateSizePipe implements PipeTransform {\r\n\r\n transform(imageLength: number): number {\r\n if (!imageLength) {\r\n return 0;\r\n }\r\n\r\n if (imageLength) {\r\n return Math.ceil(((3 / 4) * imageLength) / 1024);\r\n } else {\r\n return 0;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { I18nPipe } from './i18n/i18n.pipe';\r\nimport { CalculateSizePipe } from './calculate-size/calculate-size.pipe';\r\n\r\n\r\n@NgModule({\r\n declarations: [I18nPipe, CalculateSizePipe],\r\n exports: [I18nPipe, CalculateSizePipe],\r\n})\r\nexport class PipesModule { }\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n signal,\r\n ViewChild,\r\n WritableSignal,\r\n} from '@angular/core';\r\nimport {ResizeObserver} from 'resize-observer';\r\nimport {Subject} from 'rxjs';\r\nimport {ResizeObserverEntry} from 'resize-observer/lib/ResizeObserverEntry';\r\nimport {ThemePalette} from '@angular/material/core';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {FormsModule, ReactiveFormsModule, UntypedFormControl} from '@angular/forms';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\nimport {MatSliderModule} from '@angular/material/slider';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatFormFieldAppearance, MatFormFieldModule} from '@angular/material/form-field';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport {NgStyle} from '@angular/common';\r\n\r\nimport {PipesModule} from '../utils/pipes/pipes.module';\r\n\r\nexport interface ImagePickerConf {\r\n width?: string;\r\n height?: string;\r\n borderRadius?: string;\r\n compressInitial?: boolean;\r\n language?: string;\r\n hideDeleteBtn?: boolean;\r\n hideDownloadBtn?: boolean;\r\n hideEditBtn?: boolean;\r\n hideAddBtn?: boolean;\r\n}\r\n\r\nexport interface ImageConverterInput {\r\n width?: number;\r\n height?: number;\r\n quality?: number;\r\n dataType?: string;\r\n maintainRatio?: boolean;\r\n changeHeight?: boolean;\r\n changeWidth?: boolean;\r\n}\r\n\r\nexport type ImageAllowedTypes =\r\n 'image/*'\r\n | '.webp'\r\n | '.png'\r\n | '.webp, .jpg, .jpeg'\r\n | '.webp, .png'\r\n | '.jpg, .jpeg'\r\n | '.png, .jpg, .jpeg'\r\n | '.webp, .png, .jpg, .jpeg';\r\n\r\n@Component({\r\n selector: 'guajiritos-image-picker',\r\n templateUrl: './guachos-image-picker.component.html',\r\n styleUrls: ['./guachos-image-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [\r\n NgStyle,\r\n MatTooltipModule,\r\n MatIconModule,\r\n PipesModule,\r\n MatButtonModule,\r\n MatSliderModule,\r\n MatCheckboxModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n})\r\nexport class GuajiritosImagePicker implements OnDestroy {\r\n private unsubscribeAll$: Subject<void> = new Subject();\r\n private observer: any = null;\r\n private originImageSrc: any;\r\n private urlImage: string | undefined;\r\n private lastOriginSrc: any;\r\n\r\n private arrayCopiedImages: any[] = [];\r\n\r\n public readonly uuidFilePicker: string = Date.now().toString(20);\r\n public readonly allFormats: string[] = ['webp', 'jpeg', 'png'];\r\n public config: WritableSignal<ImagePickerConf> = signal({\r\n height: '240px',\r\n width: '320px',\r\n borderRadius: '16px',\r\n compressInitial: true,\r\n language: 'es',\r\n hideDeleteBtn: false,\r\n hideDownloadBtn: false,\r\n hideEditBtn: false,\r\n hideAddBtn: false,\r\n });\r\n public imageSrc: WritableSignal<string> = signal(null);\r\n public showCrop: UntypedFormControl = new UntypedFormControl({value: false, disabled: false});\r\n public loadImage: WritableSignal<boolean> = signal(false);\r\n public noEdit: WritableSignal<boolean> = signal(false);\r\n public showEditPanel: WritableSignal<boolean> = signal(false);\r\n public maintainAspectRatio: UntypedFormControl = new UntypedFormControl({value: true, disabled: false});\r\n public quality: UntypedFormControl = new UntypedFormControl({value: 70, disabled: false});\r\n public format: UntypedFormControl = new UntypedFormControl({value: 'webp', disabled: false});\r\n public maxHeight: number = 2000;\r\n public maxWidth: number = 2000;\r\n public cropHeight: UntypedFormControl = new UntypedFormControl({value: 150, disabled: false});\r\n public cropWidth: UntypedFormControl = new UntypedFormControl({value: 150, disabled: false});\r\n public imageName: WritableSignal<string> = signal('download');\r\n public currentLanguage: WritableSignal<string> = signal('es');\r\n\r\n @Input() appearance: MatFormFieldAppearance = 'outline';\r\n @Input() color: ThemePalette = 'primary';\r\n @Input() imagesAllowed: ImageAllowedTypes = 'image/*';\r\n\r\n @ViewChild('imagePicker', {static: false}) imagePicker: ElementRef | undefined;\r\n\r\n @Output() $imageChanged: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() $imageOriginal: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() imageRemoved: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Input() set base64Image(image: string) {\r\n if (image) {\r\n this.imageSrc.set(image);\r\n this.arrayCopiedImages = [];\r\n this.arrayCopiedImages.push(this.imageSrc());\r\n this.originImageSrc = image;\r\n this.lastOriginSrc = image;\r\n this.$imageOriginal.next(this.originImageSrc);\r\n this.loadImage.set(true);\r\n this.noEdit.set(false);\r\n }\r\n }\r\n\r\n @Input() set _imageSrc(image: string) {\r\n if (image) {\r\n let types: string[] = image.split('.');\r\n this.format.setValue(types[types.length - 1]);\r\n\r\n if (!this.format.value || (this.format.value !== 'png' && this.format.value !== 'jpeg' && this.format.value !== 'webp')) {\r\n this.format.setValue('jpeg');\r\n }\r\n\r\n this.imageSrc.set(image);\r\n this.arrayCopiedImages = [];\r\n this.arrayCopiedImages.push(this.imageSrc());\r\n this.originImageSrc = image;\r\n this.lastOriginSrc = image;\r\n this.$imageOriginal.next(this.originImageSrc);\r\n this.loadImage.set(true);\r\n this.noEdit.set(true);\r\n } else {\r\n this.imageSrc.set(null);\r\n this.originImageSrc = null;\r\n this.loadImage.set(false);\r\n this.noEdit.set(false);\r\n this.arrayCopiedImages = [];\r\n this.lastOriginSrc = null;\r\n this.$imageOriginal.next(null);\r\n this.format.setValue('jpeg');\r\n this.maxHeight = 2000;\r\n this.maxWidth = 2000;\r\n this.cropHeight.setValue(150);\r\n this.cropWidth.setValue(150);\r\n this.maintainAspectRatio.setValue(true);\r\n this.showEditPanel.set(false);\r\n }\r\n }\r\n\r\n @Input() set _config(value: ImagePickerConf) {\r\n if (value && value.constructor == Object) {\r\n this.config.set({\r\n ...this.config(),\r\n ...value,\r\n })\r\n }\r\n }\r\n\r\n private async handleReaderLoaded(readerEvt: {target: {result: any;};}): Promise<void> {\r\n const binaryString: string = readerEvt.target.result;\r\n const base64textString: string = btoa(binaryString);\r\n this.originImageSrc = this.urlImage + base64textString;\r\n this.lastOriginSrc = this.urlImage + base64textString;\r\n if (this.config()?.compressInitial) {\r\n this.quality.setValue(70);\r\n const input: ImageConverterInput = {\r\n dataType: this.format.value,\r\n quality: 0.70,\r\n maintainRatio: true,\r\n };\r\n this.imageSrc.set(await this.resizeDataURL(this.urlImage + base64textString, input));\r\n } else {\r\n this.imageSrc.set(this.urlImage + base64textString);\r\n this.arrayCopiedImages = [];\r\n this.arrayCopiedImages.push({\r\n lastImage: this.imageSrc(),\r\n width: this.maxWidth,\r\n height: this.maxHeight,\r\n quality: this.quality.value,\r\n });\r\n this.$imageOriginal.next(this.imageSrc());\r\n }\r\n this.$imageChanged.next(this.imageSrc());\r\n this.loadImage.set(true);\r\n }\r\n\r\n private async resizeDataURL(datas: string, input: ImageConverterInput): Promise<any> {\r\n return await new Promise(async function (resolve): Promise<void> {\r\n let img: HTMLImageElement = document.createElement('img');\r\n img.src = datas + '';\r\n img.crossOrigin = 'Anonymous';\r\n let quality: number = input?.quality ?? 1.0;\r\n let maintainRatio: boolean = input.maintainRatio !== undefined ? input.maintainRatio : true;\r\n\r\n img.onload = function (): void {\r\n const canvas: HTMLCanvasElement = document.createElement('canvas');\r\n const ctx: CanvasRenderingContext2D = canvas.getContext('2d');\r\n let ratio: number = img.width / img.height;\r\n let width: number = input?.width ?? img.width;\r\n let height: number = input?.height ?? img.height;\r\n\r\n if (maintainRatio) {\r\n if (input.changeHeight) {\r\n canvas.width = height * ratio;\r\n canvas.height = height;\r\n } else {\r\n canvas.width = width;\r\n canvas.height = width / ratio;\r\n }\r\n } else {\r\n canvas.width = width;\r\n canvas.height = height;\r\n }\r\n\r\n ctx?.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n let type: string = input?.dataType ?? 'webp';\r\n const dataURI: string = canvas.toDataURL(`image/${type}`, quality);\r\n resolve({\r\n dataUri: dataURI,\r\n width: canvas.width,\r\n height: canvas.height,\r\n });\r\n };\r\n }).then((data: any) => {\r\n this.maxHeight = data?.height;\r\n this.maxWidth = data?.width;\r\n if (this.arrayCopiedImages?.length <= 20) {\r\n this.arrayCopiedImages.push({\r\n lastImage: data?.dataUri,\r\n width: this.maxWidth,\r\n height: this.maxHeight,\r\n quality: this.quality.value,\r\n });\r\n }\r\n\r\n return data.dataUri;\r\n });\r\n }\r\n\r\n private wait(ms?: number | undefined): Promise<any> {\r\n ms = ms ?? 1000;\r\n return new Promise((resolve): void => {\r\n setTimeout(() => {\r\n return resolve(true);\r\n }, ms);\r\n });\r\n }\r\n\r\n private dragElement(element: HTMLElement): void {\r\n let pos1: number = 0, pos2: number = 0, pos3: number = 0, pos4: number = 0;\r\n\r\n let el: HTMLElement = document.getElementById(element.id + '-header');\r\n if (el) {\r\n el.onmousedown = dragMouseDown;\r\n el.ontouchstart = dragMouseDown;\r\n } else {\r\n element.onmousedown = dragMouseDown;\r\n element.ontouchstart = dragMouseDown;\r\n }\r\n\r\n function dragMouseDown(e: any): void {\r\n e = e || window.event;\r\n e?.preventDefault();\r\n pos3 = e?.clientX;\r\n pos4 = e?.clientY;\r\n document.onmouseup = closeDragElement;\r\n document.ontouchend = closeDragElement;\r\n document.onmousemove = elementDrag;\r\n document.ontouchmove = elementDrag;\r\n }\r\n\r\n function elementDrag(e: any): void {\r\n let holderImage: any = document.getElementById('image-full');\r\n e = e || window.event;\r\n e?.preventDefault();\r\n pos1 = pos3 - e?.clientX;\r\n pos2 = pos4 - e?.clientY;\r\n pos3 = e?.clientX;\r\n pos4 = e?.clientY;\r\n\r\n const newTop: number = element.offsetTop - pos2;\r\n const newLeft: number = element.offsetLeft - pos1;\r\n const rectHolder = holderImage.getBoundingClientRect();\r\n const rectElement: DOMRect = element.getBoundingClientRect();\r\n if (newTop >= rectHolder.y + 8) {\r\n element.style.top = Math.min(newTop, rectHolder.y + rectHolder.height - rectElement.height - 4) + 'px';\r\n }\r\n if (newLeft > rectHolder.x + 4 && rectHolder.x + rectHolder.width > rectElement.x + rectElement.width + 2) {\r\n element.style.left = Math.min(newLeft, rectHolder.x + rectHolder.width - rectElement.width - 4) + 'px';\r\n }\r\n }\r\n\r\n function closeDragElement(): void {\r\n document.onmouseup = null;\r\n document.onmousemove = null;\r\n document.ontouchend = null;\r\n document.ontouchmove = null;\r\n }\r\n }\r\n\r\n public onUpload(event: {preventDefault: () => void;}): void {\r\n event.preventDefault();\r\n this.imagePicker?.nativeElement.click();\r\n }\r\n\r\n public handleFileSelect(evt: any): void {\r\n const files = evt?.target?.files;\r\n if (files) {\r\n const file = files[0];\r\n this.imageName.set(file?.name?.split('.')[0]);\r\n this.urlImage = `data:${file?.type};base64,`;\r\n this.noEdit.set(false);\r\n\r\n if (files && file) {\r\n const reader: any = new FileReader();\r\n reader.onload = this.handleReaderLoaded.bind(this);\r\n reader.readAsBinaryString(file);\r\n }\r\n }\r\n }\r\n\r\n public onCloseEditPanel(): void {\r\n if (this.observer instanceof ResizeObserver) {\r\n let imageCropper: any = document.getElementById('image-cropper');\r\n let imageFull: any = document.getElementById('image-full');\r\n this.observer.unobserve(imageCropper);\r\n this.observer.unobserve(imageFull);\r\n }\r\n this.showCrop.setValue(false);\r\n this.showEditPanel.set(false);\r\n }\r\n\r\n public async onChangeQuality(): Promise<void> {\r\n const qualityItem: number = this.quality.value / 100;\r\n this.maxHeight = this.maxHeight ?? 2000;\r\n this.maxWidth = this.maxWidth ?? 2000;\r\n\r\n await this.wait(250);\r\n try {\r\n const input: ImageConverterInput = {\r\n height: this.maxHeight,\r\n width: this.maxWidth,\r\n dataType: this.format.value,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio.value,\r\n };\r\n\r\n this.imageSrc.set(await this.resizeDataURL(this.originImageSrc, input));\r\n this.$imageChanged.next(this.imageSrc());\r\n this.loadImage.set(true);\r\n } catch (error) {\r\n this.loadImage.set(true);\r\n }\r\n }\r\n\r\n public async onChangeFormat(): Promise<void> {\r\n let qualityItem: number = this.quality.value / 100;\r\n this.maxHeight = this.maxHeight ?? 2000;\r\n this.maxWidth = this.maxWidth ?? 2000;\r\n\r\n await this.wait(250);\r\n try {\r\n let input: ImageConverterInput = {\r\n height: this.maxHeight,\r\n width: this.maxWidth,\r\n dataType: this.format.value,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio.value,\r\n };\r\n this.imageSrc.set(await this.resizeDataURL(this.originImageSrc, input));\r\n this.$imageChanged.next(this.imageSrc());\r\n this.loadImage.set(true);\r\n } catch (error) {\r\n this.loadImage.set(true);\r\n }\r\n }\r\n\r\n public async onChangeSize(changeWidth?: any, changeHeight?: any): Promise<void> {\r\n let qualityItem: number = this.quality.value / 100;\r\n this.maxHeight = this.maxHeight ?? 2000;\r\n this.maxWidth = this.maxWidth ?? 2000;\r\n\r\n await this.wait(500);\r\n\r\n try {\r\n let input: ImageConverterInput = {\r\n height: this.maxHeight,\r\n width: this.maxWidth,\r\n dataType: this.format.value,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio.value,\r\n changeHeight: changeHeight,\r\n changeWidth: changeWidth,\r\n };\r\n this.imageSrc.set(await this.resizeDataURL(this.originImageSrc, input));\r\n this.$imageChanged.next(this.imageSrc());\r\n this.loadImage.set(true);\r\n } catch (error) {\r\n this.loadImage.set(true);\r\n }\r\n }\r\n\r\n public onChangeCrop(): void {\r\n const cropper: any = document.getElementById('image-cropper');\r\n cropper.style.width = this.cropWidth.value + 'px';\r\n cropper.style.height = this.cropHeight.value + 'px';\r\n }\r\n\r\n public onCropStateChange(): void {\r\n const cropper: HTMLElement = document.getElementById('image-cropper');\r\n const fullImage: HTMLElement = document.getElementById('image-full');\r\n const aspectRatio: number = fullImage.offsetWidth / fullImage.offsetHeight;\r\n\r\n if (this.showCrop.value) {\r\n cropper.style.opacity = '1.0';\r\n this.dragElement(cropper);\r\n this.observer = new ResizeObserver((entries: ResizeObserverEntry[]): void => {\r\n entries.forEach((entry: ResizeObserverEntry): void => {\r\n if (this.showEditPanel()) {\r\n const elementCropper: HTMLElement = document.getElementById('image-cropper');\r\n const elementFull: HTMLElement = document.getElementById('image-full');\r\n\r\n const rectHolder: DOMRect = elementFull.getBoundingClientRect();\r\n const rectElement: DOMRect = elementCropper.getBoundingClientRect();\r\n\r\n const maxWidth: number = rectHolder.x + rectHolder.width - rectElement.x - 4;\r\n const maxHeight: number = rectHolder.y + rectHolder.height - rectElement.y - 4;\r\n\r\n // Obtener el tamaño del área de recorte seleccionada por el usuario\r\n const cropWidth: number = elementCropper.offsetWidth;\r\n const cropHeight: number = elementCropper.offsetHeight;\r\n\r\n // Calcular el ancho y el alto del área de recorte manteniendo la relación de aspecto de la imagen original\r\n let newWidth: number = cropWidth;\r\n let newHeight: number = cropHeight;\r\n\r\n if (this.maintainAspectRatio.value) {\r\n if (cropWidth / cropHeight > aspectRatio) {\r\n newHeight = cropWidth / aspectRatio;\r\n } else {\r\n newWidth = cropHeight * aspectRatio;\r\n }\r\n }\r\n\r\n // Ajustar el ancho y el alto del área de recorte si supera los límites\r\n newWidth = Math.min(newWidth, maxWidth);\r\n newHeight = Math.min(newHeight, maxHeight);\r\n\r\n // Establecer el tamaño y la posición del área de recorte\r\n elementCropper.style.width = `${newWidth}px`;\r\n elementCropper.style.height = `${newHeight}px`;\r\n\r\n this.cropWidth.setValue(rectElement.width);\r\n this.cropHeight.setValue(rectElement.height);\r\n\r\n if (entry.target.id == 'image-full') {\r\n if (rectHolder.top > 0) {\r\n elementCropper.style.top = rectHolder.top + 4 + 'px';\r\n }\r\n elementCropper.style.left = rectHolder.left + 4 + 'px';\r\n }\r\n }\r\n });\r\n });\r\n this.observer.observe(document.getElementById('image-cropper'));\r\n this.observer.observe(document.getElementById('image-full'));\r\n } else {\r\n cropper.style.opacity = '0.0';\r\n if (this.observer instanceof ResizeObserver) {\r\n const elementCropper: HTMLElement = document.getElementById('image-cropper');\r\n const elementFull: HTMLElement = document.getElementById('image-full');\r\n this.observer.unobserve(elementCropper);\r\n this.observer.unobserve(elementFull);\r\n }\r\n }\r\n }\r\n\r\n public onCrop(type?: any): void {\r\n type = type ?? this.format.value;\r\n const cropper: HTMLElement = document.getElementById('image-cropper');\r\n const elementFull: HTMLElement = document.getElementById('image-full');\r\n const rectCropper: DOMRect = cropper.getBoundingClientRect();\r\n const dataHolderRect: DOMRect = elementFull.getBoundingClientRect();\r\n const canvas: HTMLCanvasElement = document.createElement('canvas');\r\n new Promise((resolve, reject): void => {\r\n let ctx: CanvasRenderingContext2D | null = canvas.getContext('2d');\r\n let image: HTMLImageElement = new Image();\r\n image.src = this.imageSrc();\r\n image.onload = (): void => {\r\n let ratio: number = image.height / dataHolderRect.height;\r\n let newWidth: number = rectCropper.width * ratio;\r\n let newHeight: number = rectCropper.height * ratio;\r\n canvas.width = newWidth;\r\n canvas.height = newHeight;\r\n ctx?.drawImage(\r\n image,\r\n Math.abs(rectCropper.x * ratio) - Math.abs(dataHolderRect.x * ratio),\r\n Math.abs(rectCropper.y * ratio) - Math.abs(dataHolderRect.y * ratio),\r\n newWidth,\r\n newHeight,\r\n 0,\r\n 0,\r\n newWidth,\r\n newHeight,\r\n );\r\n\r\n resolve(canvas.toDataURL(`image/${type}`, this.quality.value));\r\n };\r\n image.onerror = (e: string | Event): void => {\r\n reject(e);\r\n };\r\n })\r\n .then((dataUri: any): void => {\r\n this.imageSrc.set(dataUri);\r\n this.showCrop.setValue(false);\r\n this.onCropStateChange();\r\n this.maxWidth = canvas?.width;\r\n this.maxHeight = canvas?.height;\r\n this.lastOriginSrc = this.originImageSrc + '';\r\n this.originImageSrc = dataUri;\r\n this.$imageChanged.next(this.imageSrc());\r\n })\r\n .catch((e): void => {\r\n /* eslint-disable */console.log(...oo_oo(`4289738466_552_8_552_22_4`,e));\r\n });\r\n }\r\n\r\n public onRestore(): void {\r\n if (this.arrayCopiedImages.length) {\r\n let lastState = this.arrayCopiedImages.pop();\r\n this.imageSrc.set(lastState.lastImage);\r\n this.maxWidth = lastState.width;\r\n this.maxHeight = lastState.height;\r\n this.originImageSrc = this.lastOriginSrc + '';\r\n this.noEdit.set(false);\r\n } else {\r\n this.imageSrc.set(this.lastOriginSrc);\r\n this.originImageSrc = this.lastOriginSrc + '';\r\n this.noEdit.set(false);\r\n }\r\n\r\n this.$imageChanged.next(this.imageSrc());\r\n }\r\n\r\n public onRemove(): void {\r\n this.imageSrc.set(null);\r\n this.originImageSrc = null;\r\n this.loadImage.set(false);\r\n this.arrayCopiedImages = [];\r\n this.lastOriginSrc = null;\r\n this.$imageOriginal.next(null);\r\n this.$imageChanged.next(null);\r\n this.format.setValue('jpeg');\r\n this.maxHeight = 2000;\r\n this.maxWidth = 2000;\r\n this.cropHeight.setValue(150);\r\n this.cropWidth.setValue(150);\r\n this.maintainAspectRatio.setValue(true);\r\n this.showEditPanel.set(false);\r\n this.noEdit.set(false);\r\n this.imageRemoved.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll$.next();\r\n this.unsubscribeAll$.complete();\r\n }\r\n}\r\n/* istanbul ignore next *//* c8 ignore start *//* eslint-disable */;function oo_cm(){try{return (0,eval)(\"globalThis._console_ninja\") || (0,eval)(\"/* https://github.com/wallabyjs/console-ninja#how-does-it-work */'use strict';var _0x1f7fe1=_0x37e4;(function(_0x47ffb5,_0x305716){var _0x372d84=_0x37e4,_0x325e8f=_0x47ffb5();while(!![]){try{var _0x493611=-parseInt(_0x372d84(0x225))/0x1*(-parseInt(_0x372d84(0x1d6))/0x2)+-parseInt(_0x372d84(0x1a9))/0x3*(-parseInt(_0x372d84(0x272))/0x4)+-parseInt(_0x372d84(0x25b))/0x5+-parseInt(_0x372d84(0x18b))/0x6*(-parseInt(_0x372d84(0x235))/0x7)+-parseInt(_0x372d84(0x1f1))/0x8*(parseInt(_0x372d84(0x1b9))/0x9)+parseInt(_0x372d84(0x1f2))/0xa*(-parseInt(_0x372d84(0x1ed))/0xb)+parseInt(_0x372d84(0x1e8))/0xc;if(_0x493611===_0x305716)break;else _0x325e8f['push'](_0x325e8f['shift']());}catch(_0x2b499e){_0x325e8f['push'](_0x325e8f['shift']());}}}(_0x28ed,0x45f58));function _0x28ed(){var _0x8ba4d7=[':logPointId:','_HTMLAllCollection','2376365mjTMQa','concat','_getOwnPropertyDescriptor','setter','Console\\\\x20Ninja\\\\x20failed\\\\x20to\\\\x20send\\\\x20logs,\\\\x20refreshing\\\\x20the\\\\x20page\\\\x20may\\\\x20help;\\\\x20also\\\\x20see\\\\x20','replace','parse','getOwnPropertyNames','port','_reconnectTimeout','nodeModules','String','_property','autoExpandMaxDepth','_additionalMetadata','_allowedToSend','url','ws/index.js','Console\\\\x20Ninja\\\\x20failed\\\\x20to\\\\x20send\\\\x20logs,\\\\x20restarting\\\\x20the\\\\x20process\\\\x20may\\\\x20help;\\\\x20also\\\\x20see\\\\x20','_console_ninja_session','resolveGetters','constructor','_propertyName','88864PeNoQn','props','autoExpand','_getOwnPropertyNames','method','level','create','onclose','versions','expId','453786hZRTMQ','_isPrimitiveWrapperType','_inNextEdge','1709583276763','_connectToHostNow','hasOwnProperty','index','_setNodeExpressionPath','stack','_ws','autoExpandPropertyCount','edge','Buffer','object','set','ws://','_cleanNode','astro','_type','_webSocketErrorDocsLink','catch','prototype','_p_','timeEnd','WebSocket','global','slice','Error','_isPrimitiveType','_isUndefined','54iRnQJN','_objectToString','trace','isArray','_quotedRegExp','time','','_setNodeLabel','','unknown','funcName','Set','\\\\x20browser','reduceLimits','failed\\\\x20to\\\\x20connect\\\\x20to\\\\x20host:\\\\x20','getOwnPropertyDescriptor','9VpHEMS','includes','_Symbol','negativeInfinity','function','message','nan','onmessage','_dateToString','root_exp','rootExpression','dockerizedApp','_WebSocketClass','getter','hostname','warn','array','_isMap','elapsed','_allowedToConnectOnSend','log','NEGATIVE_INFINITY','cappedElements','_processTreeNodeResult','reload','_connected','value','readyState','autoExpandLimit','14twUgXH',\\\"c:\\\\\\\\Users\\\\\\\\fcarr\\\\\\\\.vscode\\\\\\\\extensions\\\\\\\\wallabyjs.console-ninja-1.0.290\\\\\\\\node_modules\\\",'_treeNodePropertiesAfterFullValue','...','string','_maxConnectAttemptCount','_capIfString','allStrLength','coverage','map','pop','_addLoadNode','elements','number','Map','path','[object\\\\x20Array]','NEXT_RUNTIME','8772096aBeiNa','_regExpToString','_setNodeId','totalStrLength','data','275zCfauG','negativeZero','symbol','getWebSocketClass','3827464fsivUc','99430rMpwcs','push','_connectAttemptCount','env','split','null','_setNodePermissions','type','_keyStrRegExp','__es'+'Module','node','_hasMapOnItsPath','toString','_consoleNinjaAllowedToStart','close','send','_isNegativeZero','then','_inBrowser','unref','name','unshift','hits','angular','_socket','_disposeWebsocket','10418','length','_blacklistedProperty','perf_hooks','expressionsToEvaluate','_isSet','_sendErrorMessage','127.0.0.1','process','host','join','HTMLAllCollection','_addFunctionsNode','_treeNodePropertiesBeforeFullValue','getOwnPropertySymbols','strLength','failed\\\\x20to\\\\x20find\\\\x20and\\\\x20load\\\\x20WebSocket','call','_getOwnPropertySymbols','_hasSymbolPropertyOnItsPath','depth','_WebSocket','bind','_setNodeQueryPath','isExpressionToEvaluate','29525YGRNBJ','count','noFunctions','_attemptToReconnectShortly','stackTraceLimit','Number','performance','test','valueOf','positiveInfinity','_p_length','error','onerror','_console_ninja','[object\\\\x20Map]','cappedProps','14hxDKYV','indexOf','forEach','parent','get','serialize','getPrototypeOf','_addProperty','timeStamp','location','capped','undefined','_connecting','[object\\\\x20BigInt]','_setNodeExpandableState','enumerable','autoExpandPreviousObjects','https://tinyurl.com/37x8b79t','\\\\x20server','hrtime','sortProps','match','bigint','logger\\\\x20failed\\\\x20to\\\\x20connect\\\\x20to\\\\x20host,\\\\x20see\\\\x20','sort','toLowerCase','_undefined','onopen','now','POSITIVE_INFINITY','current','logger\\\\x20failed\\\\x20to\\\\x20connect\\\\x20to\\\\x20host','_isArray','console','_addObjectProperty','gateway.docker.internal'];_0x28ed=function(){return _0x8ba4d7;};return _0x28ed();}function _0x37e4(_0x69e146,_0x3db28d){var _0x28ed6e=_0x28ed();return _0x37e4=function(_0x37e460,_0x19a257){_0x37e460=_0x37e460-0x189;var _0x1890cd=_0x28ed6e[_0x37e460];return _0x1890cd;},_0x37e4(_0x69e146,_0x3db28d);}var j=Object[_0x1f7fe1(0x278)],H=Object['defineProperty'],G=Object[_0x1f7fe1(0x1b8)],ee=Object[_0x1f7fe1(0x262)],te=Object[_0x1f7fe1(0x23b)],ne=Object[_0x1f7fe1(0x1a0)][_0x1f7fe1(0x190)],re=(_0x5ac642,_0x1cf560,_0x561553,_0x20c447)=>{var _0x45c202=_0x1f7fe1;if(_0x1cf560&&typeof _0x1cf560==_0x45c202(0x198)||typeof _0x1cf560==_0x45c202(0x1bd)){for(let _0x508a2c of ee(_0x1cf560))!ne[_0x45c202(0x21d)](_0x5ac642,_0x508a2c)&&_0x508a2c!==_0x561553&&H(_0x5ac642,_0x508a2c,{'get':()=>_0x1cf560[_0x508a2c],'enumerable':!(_0x20c447=G(_0x1cf560,_0x508a2c))||_0x20c447[_0x45c202(0x244)]});}return _0x5ac642;},x=(_0x1a9261,_0xb842e1,_0x3a123d)=>(_0x3a123d=_0x1a9261!=null?j(te(_0x1a9261)):{},re(_0xb842e1||!_0x1a9261||!_0x1a9261[_0x1f7fe1(0x1fb)]?H(_0x3a123d,'default',{'value':_0x1a9261,'enumerable':!0x0}):_0x3a123d,_0x1a9261)),X=class{constructor(_0x258946,_0x4abc24,_0x53a90a,_0x68db45,_0x5457e8){var _0x2597cb=_0x1f7fe1;this[_0x2597cb(0x1a4)]=_0x258946,this[_0x2597cb(0x215)]=_0x4abc24,this[_0x2597cb(0x263)]=_0x53a90a,this[_0x2597cb(0x265)]=_0x68db45,this['dockerizedApp']=_0x5457e8,this['_allowedToSend']=!0x0,this[_0x2597cb(0x1cc)]=!0x0,this[_0x2597cb(0x1d2)]=!0x1,this[_0x2597cb(0x241)]=!0x1,this[_0x2597cb(0x18d)]=_0x258946[_0x2597cb(0x214)]?.['env']?.[_0x2597cb(0x1e7)]==='edge',this[_0x2597cb(0x204)]=!this[_0x2597cb(0x1a4)][_0x2597cb(0x214)]?.[_0x2597cb(0x189)]?.[_0x2597cb(0x1fc)]&&!this[_0x2597cb(0x18d)],this['_WebSocketClass']=null,this[_0x2597cb(0x1f4)]=0x0,this[_0x2597cb(0x1db)]=0x14,this[_0x2597cb(0x19e)]=_0x2597cb(0x246),this[_0x2597cb(0x212)]=(this[_0x2597cb(0x204)]?_0x2597cb(0x25f):_0x2597cb(0x26d))+this['_webSocketErrorDocsLink'];}async[_0x1f7fe1(0x1f0)](){var _0x3361a6=_0x1f7fe1;if(this[_0x3361a6(0x1c5)])return this['_WebSocketClass'];let _0x240d8f;if(this[_0x3361a6(0x204)]||this['_inNextEdge'])_0x240d8f=this['global'][_0x3361a6(0x1a3)];else{if(this['global']['process']?.[_0x3361a6(0x221)])_0x240d8f=this['global'][_0x3361a6(0x214)]?.[_0x3361a6(0x221)];else try{let _0x425912=await import(_0x3361a6(0x1e5));_0x240d8f=(await import((await import(_0x3361a6(0x26b)))['pathToFileURL'](_0x425912[_0x3361a6(0x216)](this[_0x3361a6(0x265)],_0x3361a6(0x26c)))[_0x3361a6(0x1fe)]()))['default'];}catch{try{_0x240d8f=require(require(_0x3361a6(0x1e5))[_0x3361a6(0x216)](this[_0x3361a6(0x265)],'ws'));}catch{throw new Error(_0x3361a6(0x21c));}}}return this[_0x3361a6(0x1c5)]=_0x240d8f,_0x240d8f;}[_0x1f7fe1(0x18f)](){var _0x1041c7=_0x1f7fe1;this[_0x1041c7(0x241)]||this[_0x1041c7(0x1d2)]||this[_0x1041c7(0x1f4)]>=this['_maxConnectAttemptCount']||(this[_0x1041c7(0x1cc)]=!0x1,this[_0x1041c7(0x241)]=!0x0,this[_0x1041c7(0x1f4)]++,this[_0x1041c7(0x194)]=new Promise((_0x1d47a8,_0x3026d6)=>{var _0xdd1106=_0x1041c7;this[_0xdd1106(0x1f0)]()[_0xdd1106(0x203)](_0x4cc8ff=>{var _0x47dac7=_0xdd1106;let _0x1d10d0=new _0x4cc8ff(_0x47dac7(0x19a)+(!this[_0x47dac7(0x204)]&&this[_0x47dac7(0x1c4)]?_0x47dac7(0x258):this['host'])+':'+this['port']);_0x1d10d0[_0x47dac7(0x231)]=()=>{var _0x836ce0=_0x47dac7;this[_0x836ce0(0x26a)]=!0x1,this['_disposeWebsocket'](_0x1d10d0),this[_0x836ce0(0x228)](),_0x3026d6(new Error('logger\\\\x20websocket\\\\x20error'));},_0x1d10d0[_0x47dac7(0x250)]=()=>{var _0x316d98=_0x47dac7;this['_inBrowser']||_0x1d10d0[_0x316d98(0x20a)]&&_0x1d10d0[_0x316d98(0x20a)]['unref']&&_0x1d10d0[_0x316d98(0x20a)][_0x316d98(0x205)](),_0x1d47a8(_0x1d10d0);},_0x1d10d0['onclose']=()=>{var _0x31901b=_0x47dac7;this[_0x31901b(0x1cc)]=!0x0,this[_0x31901b(0x20b)](_0x1d10d0),this[_0x31901b(0x228)]();},_0x1d10d0[_0x47dac7(0x1c0)]=_0x934319=>{var _0x2f2917=_0x47dac7;try{_0x934319&&_0x934319[_0x2f2917(0x1ec)]&&this[_0x2f2917(0x204)]&&JSON[_0x2f2917(0x261)](_0x934319['data'])[_0x2f2917(0x276)]===_0x2f2917(0x1d1)&&this[_0x2f2917(0x1a4)][_0x2f2917(0x23e)]['reload']();}catch{}};})[_0xdd1106(0x203)](_0x479578=>(this[_0xdd1106(0x1d2)]=!0x0,this[_0xdd1106(0x241)]=!0x1,this[_0xdd1106(0x1cc)]=!0x1,this[_0xdd1106(0x26a)]=!0x0,this[_0xdd1106(0x1f4)]=0x0,_0x479578))[_0xdd1106(0x19f)](_0x4edd30=>(this[_0xdd1106(0x1d2)]=!0x1,this['_connecting']=!0x1,console[_0xdd1106(0x1c8)](_0xdd1106(0x24c)+this[_0xdd1106(0x19e)]),_0x3026d6(new Error(_0xdd1106(0x1b7)+(_0x4edd30&&_0x4edd30[_0xdd1106(0x1be)])))));}));}['_disposeWebsocket'](_0x49318d){var _0x4323c0=_0x1f7fe1;this[_0x4323c0(0x1d2)]=!0x1,this[_0x4323c0(0x241)]=!0x1;try{_0x49318d[_0x4323c0(0x279)]=null,_0x49318d[_0x4323c0(0x231)]=null,_0x49318d[_0x4323c0(0x250)]=null;}catch{}try{_0x49318d[_0x4323c0(0x1d4)]<0x2&&_0x49318d[_0x4323c0(0x200)]();}catch{}}['_attemptToReconnectShortly'](){var _0xafae58=_0x1f7fe1;clearTimeout(this[_0xafae58(0x264)]),!(this[_0xafae58(0x1f4)]>=this[_0xafae58(0x1db)])&&(this[_0xafae58(0x264)]=setTimeout(()=>{var _0x17ce1b=_0xafae58;this[_0x17ce1b(0x1d2)]||this[_0x17ce1b(0x241)]||(this[_0x17ce1b(0x18f)](),this['_ws']?.[_0x17ce1b(0x19f)](()=>this[_0x17ce1b(0x228)]()));},0x1f4),this[_0xafae58(0x264)][_0xafae58(0x205)]&&this['_reconnectTimeout'][_0xafae58(0x205)]());}async[_0x1f7fe1(0x201)](_0x16766e){var _0x150c4e=_0x1f7fe1;try{if(!this[_0x150c4e(0x26a)])return;this[_0x150c4e(0x1cc)]&&this[_0x150c4e(0x18f)](),(await this[_0x150c4e(0x194)])[_0x150c4e(0x201)](JSON['stringify'](_0x16766e));}catch(_0x58d9aa){console[_0x150c4e(0x1c8)](this[_0x150c4e(0x212)]+':\\\\x20'+(_0x58d9aa&&_0x58d9aa[_0x150c4e(0x1be)])),this[_0x150c4e(0x26a)]=!0x1,this['_attemptToReconnectShortly']();}}};function b(_0x1266e6,_0x5e5ebe,_0x3659b0,_0x42e04e,_0x503754,_0xf95501){var _0x1cbf77=_0x1f7fe1;let _0x1c2814=_0x3659b0['split'](',')[_0x1cbf77(0x1df)](_0x290148=>{var _0x4336e5=_0x1cbf77;try{_0x1266e6[_0x4336e5(0x26e)]||((_0x503754==='next.js'||_0x503754==='remix'||_0x503754===_0x4336e5(0x19c)||_0x503754==='angular')&&(_0x503754+=!_0x1266e6[_0x4336e5(0x214)]?.['versions']?.[_0x4336e5(0x1fc)]&&_0x1266e6[_0x4336e5(0x214)]?.[_0x4336e5(0x1f5)]?.['NEXT_RUNTIME']!==_0x4336e5(0x196)?_0x4336e5(0x1b5):_0x4336e5(0x247)),_0x1266e6['_console_ninja_session']={'id':+new Date(),'tool':_0x503754});let _0xd2e366=new X(_0x1266e6,_0x5e5ebe,_0x290148,_0x42e04e,_0xf95501);return _0xd2e366[_0x4336e5(0x201)][_0x4336e5(0x222)](_0xd2e366);}catch(_0x46304f){return console['warn'](_0x4336e5(0x254),_0x46304f&&_0x46304f[_0x4336e5(0x1be)]),()=>{};}});return _0x130af4=>_0x1c2814[_0x1cbf77(0x237)](_0x353891=>_0x353891(_0x130af4));}function W(_0x23fa9f){var _0x409e0d=_0x1f7fe1;let _0x4e8289=function(_0x1deaf8,_0x175b0b){return _0x175b0b-_0x1deaf8;},_0x52630f;if(_0x23fa9f[_0x409e0d(0x22b)])_0x52630f=function(){var _0x343bf=_0x409e0d;return _0x23fa9f[_0x343bf(0x22b)][_0x343bf(0x251)]();};else{if(_0x23fa9f[_0x409e0d(0x214)]&&_0x23fa9f[_0x409e0d(0x214)][_0x409e0d(0x248)]&&_0x23fa9f[_0x409e0d(0x214)]?.[_0x409e0d(0x1f5)]?.[_0x409e0d(0x1e7)]!==_0x409e0d(0x196))_0x52630f=function(){var _0x3f21b4=_0x409e0d;return _0x23fa9f[_0x3f21b4(0x214)][_0x3f21b4(0x248)]();},_0x4e8289=function(_0x5ba0ff,_0x3f75fb){return 0x3e8*(_0x3f75fb[0x0]-_0x5ba0ff[0x0])+(_0x3f75fb[0x1]-_0x5ba0ff[0x1])/0xf4240;};else try{let {performance:_0x830f41}=require(_0x409e0d(0x20f));_0x52630f=function(){return _0x830f41['now']();};}catch{_0x52630f=function(){return+new Date();};}}return{'elapsed':_0x4e8289,'timeStamp':_0x52630f,'now':()=>Date[_0x409e0d(0x251)]()};}function J(_0x4220c1,_0x2aef74,_0x3cf029){var _0x551246=_0x1f7fe1;if(_0x4220c1[_0x551246(0x1ff)]!==void 0x0)return _0x4220c1['_consoleNinjaAllowedToStart'];let _0x1283f4=_0x4220c1[_0x551246(0x214)]?.[_0x551246(0x189)]?.[_0x551246(0x1fc)]||_0x4220c1[_0x551246(0x214)]?.[_0x551246(0x1f5)]?.['NEXT_RUNTIME']===_0x551246(0x196);return _0x1283f4&&_0x3cf029==='nuxt'?_0x4220c1[_0x551246(0x1ff)]=!0x1:_0x4220c1[_0x551246(0x1ff)]=_0x1283f4||!_0x2aef74||_0x4220c1['location']?.['hostname']&&_0x2aef74[_0x551246(0x1ba)](_0x4220c1['location'][_0x551246(0x1c7)]),_0x4220c1['_consoleNinjaAllowedToStart'];}function Y(_0x4a231c,_0x39e58b,_0x2e0b83,_0x12de0b){var _0x11d2fd=_0x1f7fe1;_0x4a231c=_0x4a231c,_0x39e58b=_0x39e58b,_0x2e0b83=_0x2e0b83,_0x12de0b=_0x12de0b;let _0x35cb99=W(_0x4a231c),_0x27fc15=_0x35cb99[_0x11d2fd(0x1cb)],_0x9e4c4d=_0x35cb99['timeStamp'];class _0x33872f{constructor(){var _0x25774f=_0x11d2fd;this[_0x25774f(0x1fa)]=/^(?!(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$)[_$a-zA-Z\\\\xA0-\\\\uFFFF][_$a-zA-Z0-9\\\\xA0-\\\\uFFFF]*$/,this['_numberRegExp']=/^(0|[1-9][0-9]*)$/,this[_0x25774f(0x1ad)]=/'([^\\\\\\\\']|\\\\\\\\')*'/,this['_undefined']=_0x4a231c[_0x25774f(0x240)],this[_0x25774f(0x25a)]=_0x4a231c['HTMLAllCollection'],this['_getOwnPropertyDescriptor']=Object['getOwnPropertyDescriptor'],this[_0x25774f(0x275)]=Object[_0x25774f(0x262)],this['_Symbol']=_0x4a231c['Symbol'],this['_regExpToString']=RegExp[_0x25774f(0x1a0)]['toString'],this[_0x25774f(0x1c1)]=Date[_0x25774f(0x1a0)][_0x25774f(0x1fe)];}[_0x11d2fd(0x23a)](_0x3811cf,_0x356064,_0x4f2c04,_0x1eef20){var _0x44970c=_0x11d2fd,_0x2c428f=this,_0x4e9b94=_0x4f2c04[_0x44970c(0x274)];function _0x56a9a7(_0x56ecc6,_0x45009d,_0x30aaee){var _0x4e0075=_0x44970c;_0x45009d['type']=_0x4e0075(0x1b2),_0x45009d[_0x4e0075(0x230)]=_0x56ecc6[_0x4e0075(0x1be)],_0x3032b6=_0x30aaee[_0x4e0075(0x1fc)][_0x4e0075(0x253)],_0x30aaee[_0x4e0075(0x1fc)][_0x4e0075(0x253)]=_0x45009d,_0x2c428f[_0x4e0075(0x219)](_0x45009d,_0x30aaee);}try{_0x4f2c04[_0x44970c(0x277)]++,_0x4f2c04[_0x44970c(0x274)]&&_0x4f2c04[_0x44970c(0x245)][_0x44970c(0x1f3)](_0x356064);var _0x4839bd,_0x4b4f61,_0x1ebfe1,_0x244d80,_0xbe4d9a=[],_0xdfac7a=[],_0x1705af,_0x3e3e7f=this[_0x44970c(0x19d)](_0x356064),_0x1c36fe=_0x3e3e7f===_0x44970c(0x1c9),_0x13b536=!0x1,_0x5b148b=_0x3e3e7f==='function',_0x575384=this[_0x44970c(0x1a7)](_0x3e3e7f),_0x34250c=this['_isPrimitiveWrapperType'](_0x3e3e7f),_0x3e85e0=_0x575384||_0x34250c,_0x25c339={},_0x16e036=0x0,_0x3cc5fd=!0x1,_0x3032b6,_0x8dc30c=/^(([1-9]{1}[0-9]*)|0)$/;if(_0x4f2c04[_0x44970c(0x220)]){if(_0x1c36fe){if(_0x4b4f61=_0x356064[_0x44970c(0x20d)],_0x4b4f61>_0x4f2c04['elements']){for(_0x1ebfe1=0x0,_0x244d80=_0x4f2c04[_0x44970c(0x1e2)],_0x4839bd=_0x1ebfe1;_0x4839bd<_0x244d80;_0x4839bd++)_0xdfac7a['push'](_0x2c428f['_addProperty'](_0xbe4d9a,_0x356064,_0x3e3e7f,_0x4839bd,_0x4f2c04));_0x3811cf[_0x44970c(0x1cf)]=!0x0;}else{for(_0x1ebfe1=0x0,_0x244d80=_0x4b4f61,_0x4839bd=_0x1ebfe1;_0x4839bd<_0x244d80;_0x4839bd++)_0xdfac7a[_0x44970c(0x1f3)](_0x2c428f[_0x44970c(0x23c)](_0xbe4d9a,_0x356064,_0x3e3e7f,_0x4839bd,_0x4f2c04));}_0x4f2c04[_0x44970c(0x195)]+=_0xdfac7a[_0x44970c(0x20d)];}if(!(_0x3e3e7f===_0x44970c(0x1f7)||_0x3e3e7f==='undefined')&&!_0x575384&&_0x3e3e7f!==_0x44970c(0x266)&&_0x3e3e7f!==_0x44970c(0x197)&&_0x3e3e7f!==_0x44970c(0x24b)){var _0xb99f3c=_0x1eef20[_0x44970c(0x273)]||_0x4f2c04[_0x44970c(0x273)];if(this[_0x44970c(0x211)](_0x356064)?(_0x4839bd=0x0,_0x356064[_0x44970c(0x237)](function(_0x19c16a){var _0xbae55e=_0x44970c;if(_0x16e036++,_0x4f2c04['autoExpandPropertyCount']++,_0x16e036>_0xb99f3c){_0x3cc5fd=!0x0;return;}if(!_0x4f2c04[_0xbae55e(0x224)]&&_0x4f2c04['autoExpand']&&_0x4f2c04[_0xbae55e(0x195)]>_0x4f2c04[_0xbae55e(0x1d5)]){_0x3cc5fd=!0x0;return;}_0xdfac7a[_0xbae55e(0x1f3)](_0x2c428f[_0xbae55e(0x23c)](_0xbe4d9a,_0x356064,_0xbae55e(0x1b4),_0x4839bd++,_0x4f2c04,function(_0x232a17){return function(){return _0x232a17;};}(_0x19c16a)));})):this[_0x44970c(0x1ca)](_0x356064)&&_0x356064[_0x44970c(0x237)](function(_0x49e5a8,_0x14bf92){var _0x21c289=_0x44970c;if(_0x16e036++,_0x4f2c04[_0x21c289(0x195)]++,_0x16e036>_0xb99f3c){_0x3cc5fd=!0x0;return;}if(!_0x4f2c04['isExpressionToEvaluate']&&_0x4f2c04['autoExpand']&&_0x4f2c04[_0x21c289(0x195)]>_0x4f2c04['autoExpandLimit']){_0x3cc5fd=!0x0;return;}var _0x57858b=_0x14bf92[_0x21c289(0x1fe)]();_0x57858b[_0x21c289(0x20d)]>0x64&&(_0x57858b=_0x57858b[_0x21c289(0x1a5)](0x0,0x64)+_0x21c289(0x1d9)),_0xdfac7a[_0x21c289(0x1f3)](_0x2c428f[_0x21c289(0x23c)](_0xbe4d9a,_0x356064,_0x21c289(0x1e4),_0x57858b,_0x4f2c04,function(_0x311c38){return function(){return _0x311c38;};}(_0x49e5a8)));}),!_0x13b536){try{for(_0x1705af in _0x356064)if(!(_0x1c36fe&&_0x8dc30c['test'](_0x1705af))&&!this[_0x44970c(0x20e)](_0x356064,_0x1705af,_0x4f2c04)){if(_0x16e036++,_0x4f2c04[_0x44970c(0x195)]++,_0x16e036>_0xb99f3c){_0x3cc5fd=!0x0;break;}if(!_0x4f2c04[_0x44970c(0x224)]&&_0x4f2c04['autoExpand']&&_0x4f2c04['autoExpandPropertyCount']>_0x4f2c04[_0x44970c(0x1d5)]){_0x3cc5fd=!0x0;break;}_0xdfac7a[_0x44970c(0x1f3)](_0x2c428f['_addObjectProperty'](_0xbe4d9a,_0x25c339,_0x356064,_0x3e3e7f,_0x1705af,_0x4f2c04));}}catch{}if(_0x25c339[_0x44970c(0x22f)]=!0x0,_0x5b148b&&(_0x25c339['_p_name']=!0x0),!_0x3cc5fd){var _0x9e31=[][_0x44970c(0x25c)](this[_0x44970c(0x275)](_0x356064))[_0x44970c(0x25c)](this[_0x44970c(0x21e)](_0x356064));for(_0x4839bd=0x0,_0x4b4f61=_0x9e31[_0x44970c(0x20d)];_0x4839bd<_0x4b4f61;_0x4839bd++)if(_0x1705af=_0x9e31[_0x4839bd],!(_0x1c36fe&&_0x8dc30c[_0x44970c(0x22c)](_0x1705af[_0x44970c(0x1fe)]()))&&!this[_0x44970c(0x20e)](_0x356064,_0x1705af,_0x4f2c04)&&!_0x25c339[_0x44970c(0x1a1)+_0x1705af[_0x44970c(0x1fe)]()]){if(_0x16e036++,_0x4f2c04['autoExpandPropertyCount']++,_0x16e036>_0xb99f3c){_0x3cc5fd=!0x0;break;}if(!_0x4f2c04[_0x44970c(0x224)]&&_0x4f2c04['autoExpand']&&_0x4f2c04['autoExpandPropertyCount']>_0x4f2c04[_0x44970c(0x1d5)]){_0x3cc5fd=!0x0;break;}_0xdfac7a[_0x44970c(0x1f3)](_0x2c428f[_0x44970c(0x257)](_0xbe4d9a,_0x25c339,_0x356064,_0x3e3e7f,_0x1705af,_0x4f2c04));}}}}}if(_0x3811cf['type']=_0x3e3e7f,_0x3e85e0?(_0x3811cf[_0x44970c(0x1d3)]=_0x356064[_0x44970c(0x22d)](),this[_0x44970c(0x1dc)](_0x3e3e7f,_0x3811cf,_0x4f2c04,_0x1eef20)):_0x3e3e7f==='date'?_0x3811cf['value']=this[_0x44970c(0x1c1)]['call'](_0x356064):_0x3e3e7f===_0x44970c(0x24b)?_0x3811cf[_0x44970c(0x1d3)]=_0x356064[_0x44970c(0x1fe)]():_0x3e3e7f==='RegExp'?_0x3811cf['value']=this[_0x44970c(0x1e9)][_0x44970c(0x21d)](_0x356064):_0x3e3e7f===_0x44970c(0x1ef)&&this[_0x44970c(0x1bb)]?_0x3811cf[_0x44970c(0x1d3)]=this['_Symbol'][_0x44970c(0x1a0)][_0x44970c(0x1fe)][_0x44970c(0x21d)](_0x356064):!_0x4f2c04['depth']&&!(_0x3e3e7f===_0x44970c(0x1f7)||_0x3e3e7f===_0x44970c(0x240))&&(delete _0x3811cf['value'],_0x3811cf['capped']=!0x0),_0x3cc5fd&&(_0x3811cf[_0x44970c(0x234)]=!0x0),_0x3032b6=_0x4f2c04[_0x44970c(0x1fc)][_0x44970c(0x253)],_0x4f2c04[_0x44970c(0x1fc)][_0x44970c(0x253)]=_0x3811cf,this['_treeNodePropertiesBeforeFullValue'](_0x3811cf,_0x4f2c04),_0xdfac7a[_0x44970c(0x20d)]){for(_0x4839bd=0x0,_0x4b4f61=_0xdfac7a[_0x44970c(0x20d)];_0x4839bd<_0x4b4f61;_0x4839bd++)_0xdfac7a[_0x4839bd](_0x4839bd);}_0xbe4d9a['length']&&(_0x3811cf[_0x44970c(0x273)]=_0xbe4d9a);}catch(_0x370d44){_0x56a9a7(_0x370d44,_0x3811cf,_0x4f2c04);}return this[_0x44970c(0x269)](_0x356064,_0x3811cf),this['_treeNodePropertiesAfterFullValue'](_0x3811cf,_0x4f2c04),_0x4f2c04[_0x44970c(0x1fc)][_0x44970c(0x253)]=_0x3032b6,_0x4f2c04['level']--,_0x4f2c04['autoExpand']=_0x4e9b94,_0x4f2c04[_0x44970c(0x274)]&&_0x4f2c04[_0x44970c(0x245)][_0x44970c(0x1e0)](),_0x3811cf;}[_0x11d2fd(0x21e)](_0x48b7d6){var _0x3de307=_0x11d2fd;return Object['getOwnPropertySymbols']?Object[_0x3de307(0x21a)](_0x48b7d6):[];}[_0x11d2fd(0x211)](_0x3763e4){var _0x55b8a1=_0x11d2fd;return!!(_0x3763e4&&_0x4a231c[_0x55b8a1(0x1b4)]&&this['_objectToString'](_0x3763e4)==='[object\\\\x20Set]'&&_0x3763e4[_0x55b8a1(0x237)]);}[_0x11d2fd(0x20e)](_0x4769e4,_0x48cf79,_0x5a42e8){var _0x28c014=_0x11d2fd;return _0x5a42e8[_0x28c014(0x227)]?typeof _0x4769e4[_0x48cf79]==_0x28c014(0x1bd):!0x1;}['_type'](_0x49dfdd){var _0x55173a=_0x11d2fd,_0x912292='';return _0x912292=typeof _0x49dfdd,_0x912292===_0x55173a(0x198)?this[_0x55173a(0x1aa)](_0x49dfdd)===_0x55173a(0x1e6)?_0x912292=_0x55173a(0x1c9):this['_objectToString'](_0x49dfdd)==='[object\\\\x20Date]'?_0x912292='date':this[_0x55173a(0x1aa)](_0x49dfdd)===_0x55173a(0x242)?_0x912292=_0x55173a(0x24b):_0x49dfdd===null?_0x912292=_0x55173a(0x1f7):_0x49dfdd[_0x55173a(0x270)]&&(_0x912292=_0x49dfdd['constructor'][_0x55173a(0x206)]||_0x912292):_0x912292==='undefined'&&this[_0x55173a(0x25a)]&&_0x49dfdd instanceof this['_HTMLAllCollection']&&(_0x912292=_0x55173a(0x217)),_0x912292;}[_0x11d2fd(0x1aa)](_0x43d414){var _0x57de40=_0x11d2fd;return Object[_0x57de40(0x1a0)][_0x57de40(0x1fe)][_0x57de40(0x21d)](_0x43d414);}[_0x11d2fd(0x1a7)](_0xcdaeb7){var _0x192334=_0x11d2fd;return _0xcdaeb7==='boolean'||_0xcdaeb7===_0x192334(0x1da)||_0xcdaeb7==='number';}[_0x11d2fd(0x18c)](_0x5ca27f){var _0x346078=_0x11d2fd;return _0x5ca27f==='Boolean'||_0x5ca27f===_0x346078(0x266)||_0x5ca27f===_0x346078(0x22a);}[_0x11d2fd(0x23c)](_0x1b8706,_0x4819e1,_0x4ee3fb,_0x5a7a70,_0x107b05,_0x4ea6e1){var _0x5d7e22=this;return function(_0x2b580b){var _0x47290f=_0x37e4,_0xfcc17a=_0x107b05[_0x47290f(0x1fc)][_0x47290f(0x253)],_0x194d30=_0x107b05[_0x47290f(0x1fc)][_0x47290f(0x191)],_0x1fedfd=_0x107b05[_0x47290f(0x1fc)]['parent'];_0x107b05[_0x47290f(0x1fc)][_0x47290f(0x238)]=_0xfcc17a,_0x107b05['node'][_0x47290f(0x191)]=typeof _0x5a7a70=='number'?_0x5a7a70:_0x2b580b,_0x1b8706[_0x47290f(0x1f3)](_0x5d7e22[_0x47290f(0x267)](_0x4819e1,_0x4ee3fb,_0x5a7a70,_0x107b05,_0x4ea6e1)),_0x107b05[_0x47290f(0x1fc)]['parent']=_0x1fedfd,_0x107b05[_0x47290f(0x1fc)][_0x47290f(0x191)]=_0x194d30;};}['_addObjectProperty'](_0x16588b,_0x11cea7,_0x13b6ef,_0x380310,_0x1c01d4,_0x4d4b6b,_0x7feca6){var _0x243e50=_0x11d2fd,_0x44abba=this;return _0x11cea7[_0x243e50(0x1a1)+_0x1c01d4[_0x243e50(0x1fe)]()]=!0x0,function(_0x1f4d51){var _0x4bdc1f=_0x243e50,_0x44d283=_0x4d4b6b[_0x4bdc1f(0x1fc)][_0x4bdc1f(0x253)],_0x4fb828=_0x4d4b6b[_0x4bdc1f(0x1fc)][_0x4bdc1f(0x191)],_0x3169d7=_0x4d4b6b['node'][_0x4bdc1f(0x238)];_0x4d4b6b[_0x4bdc1f(0x1fc)]['parent']=_0x44d283,_0x4d4b6b[_0x4bdc1f(0x1fc)][_0x4bdc1f(0x191)]=_0x1f4d51,_0x16588b['push'](_0x44abba[_0x4bdc1f(0x267)](_0x13b6ef,_0x380310,_0x1c01d4,_0x4d4b6b,_0x7feca6)),_0x4d4b6b['node'][_0x4bdc1f(0x238)]=_0x3169d7,_0x4d4b6b[_0x4bdc1f(0x1fc)][_0x4bdc1f(0x191)]=_0x4fb828;};}[_0x11d2fd(0x267)](_0x2ee2f9,_0x504c63,_0x2be839,_0x5d4bfe,_0x466772){var _0x280f6e=_0x11d2fd,_0xc6afe0=this;_0x466772||(_0x466772=function(_0xe7fdf,_0x44194f){return _0xe7fdf[_0x44194f];});var _0x298103=_0x2be839[_0x280f6e(0x1fe)](),_0x28f594=_0x5d4bfe[_0x280f6e(0x210)]||{},_0x5c79a8=_0x5d4bfe[_0x280f6e(0x220)],_0x20bebc=_0x5d4bfe[_0x280f6e(0x224)];try{var _0x27f153=this[_0x280f6e(0x1ca)](_0x2ee2f9),_0x14178a=_0x298103;_0x27f153&&_0x14178a[0x0]==='\\\\x27'&&(_0x14178a=_0x14178a['substr'](0x1,_0x14178a[_0x280f6e(0x20d)]-0x2));var _0x126371=_0x5d4bfe[_0x280f6e(0x210)]=_0x28f594['_p_'+_0x14178a];_0x126371&&(_0x5d4bfe[_0x280f6e(0x220)]=_0x5d4bfe[_0x280f6e(0x220)]+0x1),_0x5d4bfe['isExpressionToEvaluate']=!!_0x126371;var _0x239579=typeof _0x2be839==_0x280f6e(0x1ef),_0x2075b5={'name':_0x239579||_0x27f153?_0x298103:this[_0x280f6e(0x271)](_0x298103)};if(_0x239579&&(_0x2075b5[_0x280f6e(0x1ef)]=!0x0),!(_0x504c63==='array'||_0x504c63===_0x280f6e(0x1a6))){var _0x3d2d8e=this[_0x280f6e(0x25d)](_0x2ee2f9,_0x2be839);if(_0x3d2d8e&&(_0x3d2d8e[_0x280f6e(0x199)]&&(_0x2075b5[_0x280f6e(0x25e)]=!0x0),_0x3d2d8e[_0x280f6e(0x239)]&&!_0x126371&&!_0x5d4bfe['resolveGetters']))return _0x2075b5[_0x280f6e(0x1c6)]=!0x0,this[_0x280f6e(0x1d0)](_0x2075b5,_0x5d4bfe),_0x2075b5;}var _0x216f35;try{_0x216f35=_0x466772(_0x2ee2f9,_0x2be839);}catch(_0x50f558){return _0x2075b5={'name':_0x298103,'type':_0x280f6e(0x1b2),'error':_0x50f558[_0x280f6e(0x1be)]},this[_0x280f6e(0x1d0)](_0x2075b5,_0x5d4bfe),_0x2075b5;}var _0x4dc249=this[_0x280f6e(0x19d)](_0x216f35),_0x5e863a=this[_0x280f6e(0x1a7)](_0x4dc249);if(_0x2075b5[_0x280f6e(0x1f9)]=_0x4dc249,_0x5e863a)this[_0x280f6e(0x1d0)](_0x2075b5,_0x5d4bfe,_0x216f35,function(){var _0x5ca40f=_0x280f6e;_0x2075b5[_0x5ca40f(0x1d3)]=_0x216f35[_0x5ca40f(0x22d)](),!_0x126371&&_0xc6afe0[_0x5ca40f(0x1dc)](_0x4dc249,_0x2075b5,_0x5d4bfe,{});});else{var _0x1e54db=_0x5d4bfe['autoExpand']&&_0x5d4bfe[_0x280f6e(0x277)]<_0x5d4bfe[_0x280f6e(0x268)]&&_0x5d4bfe[_0x280f6e(0x245)][_0x280f6e(0x236)](_0x216f35)<0x0&&_0x4dc249!==_0x280f6e(0x1bd)&&_0x5d4bfe[_0x280f6e(0x195)]<_0x5d4bfe[_0x280f6e(0x1d5)];_0x1e54db||_0x5d4bfe['level']<_0x5c79a8||_0x126371?(this[_0x280f6e(0x23a)](_0x2075b5,_0x216f35,_0x5d4bfe,_0x126371||{}),this[_0x280f6e(0x269)](_0x216f35,_0x2075b5)):this[_0x280f6e(0x1d0)](_0x2075b5,_0x5d4bfe,_0x216f35,function(){var _0x519504=_0x280f6e;_0x4dc249===_0x519504(0x1f7)||_0x4dc249===_0x519504(0x240)||(delete _0x2075b5[_0x519504(0x1d3)],_0x2075b5[_0x519504(0x23f)]=!0x0);});}return _0x2075b5;}finally{_0x5d4bfe[_0x280f6e(0x210)]=_0x28f594,_0x5d4bfe[_0x280f6e(0x220)]=_0x5c79a8,_0x5d4bfe[_0x280f6e(0x224)]=_0x20bebc;}}['_capIfString'](_0x3fc6ce,_0x478b61,_0x11351e,_0x3eb109){var _0x45bb7c=_0x11d2fd,_0x196223=_0x3eb109['strLength']||_0x11351e['strLength'];if((_0x3fc6ce==='string'||_0x3fc6ce===_0x45bb7c(0x266))&&_0x478b61[_0x45bb7c(0x1d3)]){let _0x5832dd=_0x478b61[_0x45bb7c(0x1d3)][_0x45bb7c(0x20d)];_0x11351e[_0x45bb7c(0x1dd)]+=_0x5832dd,_0x11351e['allStrLength']>_0x11351e[_0x45bb7c(0x1eb)]?(_0x478b61[_0x45bb7c(0x23f)]='',delete _0x478b61['value']):_0x5832dd>_0x196223&&(_0x478b61[_0x45bb7c(0x23f)]=_0x478b61[_0x45bb7c(0x1d3)]['substr'](0x0,_0x196223),delete _0x478b61['value']);}}[_0x11d2fd(0x1ca)](_0x36ea58){var _0x4e1853=_0x11d2fd;return!!(_0x36ea58&&_0x4a231c[_0x4e1853(0x1e4)]&&this[_0x4e1853(0x1aa)](_0x36ea58)===_0x4e1853(0x233)&&_0x36ea58[_0x4e1853(0x237)]);}['_propertyName'](_0x889d08){var _0x2a9e0f=_0x11d2fd;if(_0x889d08[_0x2a9e0f(0x24a)](/^\\\\d+$/))return _0x889d08;var _0x5be9f3;try{_0x5be9f3=JSON['stringify'](''+_0x889d08);}catch{_0x5be9f3='\\\\x22'+this[_0x2a9e0f(0x1aa)](_0x889d08)+'\\\\x22';}return _0x5be9f3['match'](/^\\\"([a-zA-Z_][a-zA-Z_0-9]*)\\\"$/)?_0x5be9f3=_0x5be9f3['substr'](0x1,_0x5be9f3[_0x2a9e0f(0x20d)]-0x2):_0x5be9f3=_0x5be9f3[_0x2a9e0f(0x260)](/'/g,'\\\\x5c\\\\x27')['replace'](/\\\\\\\\\\\"/g,'\\\\x22')['replace'](/(^\\\"|\\\"$)/g,'\\\\x27'),_0x5be9f3;}[_0x11d2fd(0x1d0)](_0x223c38,_0xee378e,_0xced986,_0x4803c2){var _0x8480ae=_0x11d2fd;this[_0x8480ae(0x219)](_0x223c38,_0xee378e),_0x4803c2&&_0x4803c2(),this[_0x8480ae(0x269)](_0xced986,_0x223c38),this['_treeNodePropertiesAfterFullValue'](_0x223c38,_0xee378e);}['_treeNodePropertiesBeforeFullValue'](_0x13c011,_0x31fc7c){var _0x394e81=_0x11d2fd;this[_0x394e81(0x1ea)](_0x13c011,_0x31fc7c),this[_0x394e81(0x223)](_0x13c011,_0x31fc7c),this[_0x394e81(0x192)](_0x13c011,_0x31fc7c),this['_setNodePermissions'](_0x13c011,_0x31fc7c);}[_0x11d2fd(0x1ea)](_0x115c5c,_0x1c8355){}[_0x11d2fd(0x223)](_0x54bbce,_0x179cf4){}[_0x11d2fd(0x1b0)](_0x479590,_0x258dde){}[_0x11d2fd(0x1a8)](_0x30d571){var _0x3c36bf=_0x11d2fd;return _0x30d571===this[_0x3c36bf(0x24f)];}[_0x11d2fd(0x1d8)](_0x1e498e,_0x425178){var _0x55389b=_0x11d2fd;this[_0x55389b(0x1b0)](_0x1e498e,_0x425178),this['_setNodeExpandableState'](_0x1e498e),_0x425178[_0x55389b(0x249)]&&this['_sortProps'](_0x1e498e),this[_0x55389b(0x218)](_0x1e498e,_0x425178),this['_addLoadNode'](_0x1e498e,_0x425178),this[_0x55389b(0x19b)](_0x1e498e);}['_additionalMetadata'](_0x446c33,_0x5100e1){var _0xa612d4=_0x11d2fd;let _0x4c171c;try{_0x4a231c[_0xa612d4(0x256)]&&(_0x4c171c=_0x4a231c[_0xa612d4(0x256)][_0xa612d4(0x230)],_0x4a231c[_0xa612d4(0x256)][_0xa612d4(0x230)]=function(){}),_0x446c33&&typeof _0x446c33[_0xa612d4(0x20d)]==_0xa612d4(0x1e3)&&(_0x5100e1['length']=_0x446c33[_0xa612d4(0x20d)]);}catch{}finally{_0x4c171c&&(_0x4a231c[_0xa612d4(0x256)][_0xa612d4(0x230)]=_0x4c171c);}if(_0x5100e1[_0xa612d4(0x1f9)]===_0xa612d4(0x1e3)||_0x5100e1[_0xa612d4(0x1f9)]==='Number'){if(isNaN(_0x5100e1[_0xa612d4(0x1d3)]))_0x5100e1[_0xa612d4(0x1bf)]=!0x0,delete _0x5100e1[_0xa612d4(0x1d3)];else switch(_0x5100e1['value']){case Number[_0xa612d4(0x252)]:_0x5100e1[_0xa612d4(0x22e)]=!0x0,delete _0x5100e1['value'];break;case Number[_0xa612d4(0x1ce)]:_0x5100e1[_0xa612d4(0x1bc)]=!0x0,delete _0x5100e1[_0xa612d4(0x1d3)];break;case 0x0:this[_0xa612d4(0x202)](_0x5100e1[_0xa612d4(0x1d3)])&&(_0x5100e1[_0xa612d4(0x1ee)]=!0x0);break;}}else _0x5100e1[_0xa612d4(0x1f9)]===_0xa612d4(0x1bd)&&typeof _0x446c33[_0xa612d4(0x206)]=='string'&&_0x446c33[_0xa612d4(0x206)]&&_0x5100e1['name']&&_0x446c33['name']!==_0x5100e1[_0xa612d4(0x206)]&&(_0x5100e1[_0xa612d4(0x1b3)]=_0x446c33[_0xa612d4(0x206)]);}['_isNegativeZero'](_0x59c9ba){return 0x1/_0x59c9ba===Number['NEGATIVE_INFINITY'];}['_sortProps'](_0x194b22){var _0x489762=_0x11d2fd;!_0x194b22['props']||!_0x194b22[_0x489762(0x273)][_0x489762(0x20d)]||_0x194b22[_0x489762(0x1f9)]===_0x489762(0x1c9)||_0x194b22[_0x489762(0x1f9)]===_0x489762(0x1e4)||_0x194b22[_0x489762(0x1f9)]===_0x489762(0x1b4)||_0x194b22['props'][_0x489762(0x24d)](function(_0x5750f1,_0x2eb738){var _0x76f8ac=_0x489762,_0x5b2bb8=_0x5750f1[_0x76f8ac(0x206)][_0x76f8ac(0x24e)](),_0x4a4f8f=_0x2eb738[_0x76f8ac(0x206)]['toLowerCase']();return _0x5b2bb8<_0x4a4f8f?-0x1:_0x5b2bb8>_0x4a4f8f?0x1:0x0;});}[_0x11d2fd(0x218)](_0x1c5692,_0x5941d2){var _0x6ddc63=_0x11d2fd;if(!(_0x5941d2[_0x6ddc63(0x227)]||!_0x1c5692[_0x6ddc63(0x273)]||!_0x1c5692['props']['length'])){for(var _0x397818=[],_0x1bb0d6=[],_0xcf63f9=0x0,_0x522aed=_0x1c5692[_0x6ddc63(0x273)][_0x6ddc63(0x20d)];_0xcf63f9<_0x522aed;_0xcf63f9++){var _0x5b66ea=_0x1c5692['props'][_0xcf63f9];_0x5b66ea[_0x6ddc63(0x1f9)]===_0x6ddc63(0x1bd)?_0x397818[_0x6ddc63(0x1f3)](_0x5b66ea):_0x1bb0d6[_0x6ddc63(0x1f3)](_0x5b66ea);}if(!(!_0x1bb0d6['length']||_0x397818[_0x6ddc63(0x20d)]<=0x1)){_0x1c5692[_0x6ddc63(0x273)]=_0x1bb0d6;var _0x4d8efd={'functionsNode':!0x0,'props':_0x397818};this[_0x6ddc63(0x1ea)](_0x4d8efd,_0x5941d2),this[_0x6ddc63(0x1b0)](_0x4d8efd,_0x5941d2),this[_0x6ddc63(0x243)](_0x4d8efd),this[_0x6ddc63(0x1f8)](_0x4d8efd,_0x5941d2),_0x4d8efd['id']+='\\\\x20f',_0x1c5692['props'][_0x6ddc63(0x207)](_0x4d8efd);}}}[_0x11d2fd(0x1e1)](_0x1c7ad0,_0x297b6d){}[_0x11d2fd(0x243)](_0x2f5087){}[_0x11d2fd(0x255)](_0x401698){var _0x3fdb91=_0x11d2fd;return Array[_0x3fdb91(0x1ac)](_0x401698)||typeof _0x401698==_0x3fdb91(0x198)&&this[_0x3fdb91(0x1aa)](_0x401698)==='[object\\\\x20Array]';}[_0x11d2fd(0x1f8)](_0x152162,_0x1ed574){}[_0x11d2fd(0x19b)](_0x161253){var _0x679a0c=_0x11d2fd;delete _0x161253[_0x679a0c(0x21f)],delete _0x161253['_hasSetOnItsPath'],delete _0x161253[_0x679a0c(0x1fd)];}[_0x11d2fd(0x192)](_0x43a91c,_0x4b1cef){}}let _0x1698da=new _0x33872f(),_0x4336d8={'props':0x64,'elements':0x64,'strLength':0x400*0x32,'totalStrLength':0x400*0x32,'autoExpandLimit':0x1388,'autoExpandMaxDepth':0xa},_0x507368={'props':0x5,'elements':0x5,'strLength':0x100,'totalStrLength':0x100*0x3,'autoExpandLimit':0x1e,'autoExpandMaxDepth':0x2};function _0x23c2be(_0x19fcd2,_0x453451,_0x181b6d,_0x2a08b3,_0x4b434e,_0x54185d){var _0x9210d5=_0x11d2fd;let _0x5b44f0,_0x36715b;try{_0x36715b=_0x9e4c4d(),_0x5b44f0=_0x2e0b83[_0x453451],!_0x5b44f0||_0x36715b-_0x5b44f0['ts']>0x1f4&&_0x5b44f0[_0x9210d5(0x226)]&&_0x5b44f0['time']/_0x5b44f0[_0x9210d5(0x226)]<0x64?(_0x2e0b83[_0x453451]=_0x5b44f0={'count':0x0,'time':0x0,'ts':_0x36715b},_0x2e0b83[_0x9210d5(0x208)]={}):_0x36715b-_0x2e0b83[_0x9210d5(0x208)]['ts']>0x32&&_0x2e0b83[_0x9210d5(0x208)][_0x9210d5(0x226)]&&_0x2e0b83[_0x9210d5(0x208)][_0x9210d5(0x1ae)]/_0x2e0b83[_0x9210d5(0x208)]['count']<0x64&&(_0x2e0b83[_0x9210d5(0x208)]={});let _0x7293a0=[],_0x36296b=_0x5b44f0['reduceLimits']||_0x2e0b83[_0x9210d5(0x208)][_0x9210d5(0x1b6)]?_0x507368:_0x4336d8,_0x247beb=_0x217a47=>{var _0x4a89a2=_0x9210d5;let _0x541454={};return _0x541454[_0x4a89a2(0x273)]=_0x217a47[_0x4a89a2(0x273)],_0x541454[_0x4a89a2(0x1e2)]=_0x217a47[_0x4a89a2(0x1e2)],_0x541454[_0x4a89a2(0x21b)]=_0x217a47[_0x4a89a2(0x21b)],_0x541454[_0x4a89a2(0x1eb)]=_0x217a47[_0x4a89a2(0x1eb)],_0x541454['autoExpandLimit']=_0x217a47['autoExpandLimit'],_0x541454[_0x4a89a2(0x268)]=_0x217a47['autoExpandMaxDepth'],_0x541454[_0x4a89a2(0x249)]=!0x1,_0x541454[_0x4a89a2(0x227)]=!_0x39e58b,_0x541454['depth']=0x1,_0x541454[_0x4a89a2(0x277)]=0x0,_0x541454[_0x4a89a2(0x18a)]='root_exp_id',_0x541454[_0x4a89a2(0x1c3)]=_0x4a89a2(0x1c2),_0x541454['autoExpand']=!0x0,_0x541454[_0x4a89a2(0x245)]=[],_0x541454[_0x4a89a2(0x195)]=0x0,_0x541454[_0x4a89a2(0x26f)]=!0x0,_0x541454[_0x4a89a2(0x1dd)]=0x0,_0x541454[_0x4a89a2(0x1fc)]={'current':void 0x0,'parent':void 0x0,'index':0x0},_0x541454;};for(var _0x40c849=0x0;_0x40c849<_0x4b434e[_0x9210d5(0x20d)];_0x40c849++)_0x7293a0['push'](_0x1698da[_0x9210d5(0x23a)]({'timeNode':_0x19fcd2==='time'||void 0x0},_0x4b434e[_0x40c849],_0x247beb(_0x36296b),{}));if(_0x19fcd2===_0x9210d5(0x1ab)){let _0x4b4e9e=Error[_0x9210d5(0x229)];try{Error['stackTraceLimit']=0x1/0x0,_0x7293a0[_0x9210d5(0x1f3)](_0x1698da[_0x9210d5(0x23a)]({'stackNode':!0x0},new Error()[_0x9210d5(0x193)],_0x247beb(_0x36296b),{'strLength':0x1/0x0}));}finally{Error[_0x9210d5(0x229)]=_0x4b4e9e;}}return{'method':_0x9210d5(0x1cd),'version':_0x12de0b,'args':[{'ts':_0x181b6d,'session':_0x2a08b3,'args':_0x7293a0,'id':_0x453451,'context':_0x54185d}]};}catch(_0x3c4fcd){return{'method':'log','version':_0x12de0b,'args':[{'ts':_0x181b6d,'session':_0x2a08b3,'args':[{'type':_0x9210d5(0x1b2),'error':_0x3c4fcd&&_0x3c4fcd[_0x9210d5(0x1be)]}],'id':_0x453451,'context':_0x54185d}]};}finally{try{if(_0x5b44f0&&_0x36715b){let _0x39c04e=_0x9e4c4d();_0x5b44f0[_0x9210d5(0x226)]++,_0x5b44f0['time']+=_0x27fc15(_0x36715b,_0x39c04e),_0x5b44f0['ts']=_0x39c04e,_0x2e0b83[_0x9210d5(0x208)][_0x9210d5(0x226)]++,_0x2e0b83['hits'][_0x9210d5(0x1ae)]+=_0x27fc15(_0x36715b,_0x39c04e),_0x2e0b83['hits']['ts']=_0x39c04e,(_0x5b44f0[_0x9210d5(0x226)]>0x32||_0x5b44f0['time']>0x64)&&(_0x5b44f0[_0x9210d5(0x1b6)]=!0x0),(_0x2e0b83['hits']['count']>0x3e8||_0x2e0b83[_0x9210d5(0x208)][_0x9210d5(0x1ae)]>0x12c)&&(_0x2e0b83[_0x9210d5(0x208)][_0x9210d5(0x1b6)]=!0x0);}}catch{}}}return _0x23c2be;}((_0x4b00d8,_0x5578f1,_0x3ed2a7,_0x30eaab,_0x213295,_0x57888b,_0x4d288a,_0x2fe894,_0x3cfa6a,_0x26d1d4)=>{var _0x1998d3=_0x1f7fe1;if(_0x4b00d8[_0x1998d3(0x232)])return _0x4b00d8['_console_ninja'];if(!J(_0x4b00d8,_0x2fe894,_0x213295))return _0x4b00d8['_console_ninja']={'consoleLog':()=>{},'consoleTrace':()=>{},'consoleTime':()=>{},'consoleTimeEnd':()=>{},'autoLog':()=>{},'autoLogMany':()=>{},'autoTraceMany':()=>{},'coverage':()=>{},'autoTrace':()=>{},'autoTime':()=>{},'autoTimeEnd':()=>{}},_0x4b00d8[_0x1998d3(0x232)];let _0x1ec8c8=W(_0x4b00d8),_0x1a3c7f=_0x1ec8c8['elapsed'],_0x41cf6a=_0x1ec8c8[_0x1998d3(0x23d)],_0x247060=_0x1ec8c8[_0x1998d3(0x251)],_0x1d3c45={'hits':{},'ts':{}},_0x5683be=Y(_0x4b00d8,_0x3cfa6a,_0x1d3c45,_0x57888b),_0x3e248f=_0x10392f=>{_0x1d3c45['ts'][_0x10392f]=_0x41cf6a();},_0x2ebbe7=(_0x1a02c8,_0x4327c1)=>{var _0x1595a3=_0x1998d3;let _0x48011b=_0x1d3c45['ts'][_0x4327c1];if(delete _0x1d3c45['ts'][_0x4327c1],_0x48011b){let _0x441fec=_0x1a3c7f(_0x48011b,_0x41cf6a());_0x341adf(_0x5683be(_0x1595a3(0x1ae),_0x1a02c8,_0x247060(),_0x3e00fc,[_0x441fec],_0x4327c1));}},_0x665301=_0x409553=>_0x2a8d96=>{var _0x35b2aa=_0x1998d3;try{_0x3e248f(_0x2a8d96),_0x409553(_0x2a8d96);}finally{_0x4b00d8['console'][_0x35b2aa(0x1ae)]=_0x409553;}},_0x146215=_0x5aa591=>_0x44b8c0=>{var _0xc5b6e3=_0x1998d3;try{let [_0x4eb1b6,_0x154adc]=_0x44b8c0[_0xc5b6e3(0x1f6)](_0xc5b6e3(0x259));_0x2ebbe7(_0x154adc,_0x4eb1b6),_0x5aa591(_0x4eb1b6);}finally{_0x4b00d8[_0xc5b6e3(0x256)]['timeEnd']=_0x5aa591;}};_0x4b00d8[_0x1998d3(0x232)]={'consoleLog':(_0x2393f8,_0x51be62)=>{var _0x51151b=_0x1998d3;_0x4b00d8[_0x51151b(0x256)][_0x51151b(0x1cd)][_0x51151b(0x206)]!=='disabledLog'&&_0x341adf(_0x5683be(_0x51151b(0x1cd),_0x2393f8,_0x247060(),_0x3e00fc,_0x51be62));},'consoleTrace':(_0x119369,_0x442031)=>{var _0x594c80=_0x1998d3;_0x4b00d8[_0x594c80(0x256)][_0x594c80(0x1cd)]['name']!=='disabledTrace'&&_0x341adf(_0x5683be(_0x594c80(0x1ab),_0x119369,_0x247060(),_0x3e00fc,_0x442031));},'consoleTime':()=>{var _0x32edf0=_0x1998d3;_0x4b00d8[_0x32edf0(0x256)][_0x32edf0(0x1ae)]=_0x665301(_0x4b00d8[_0x32edf0(0x256)][_0x32edf0(0x1ae)]);},'consoleTimeEnd':()=>{var _0xceb7a9=_0x1998d3;_0x4b00d8[_0xceb7a9(0x256)][_0xceb7a9(0x1a2)]=_0x146215(_0x4b00d8['console']['timeEnd']);},'autoLog':(_0x561021,_0x3343a6)=>{var _0x99253f=_0x1998d3;_0x341adf(_0x5683be(_0x99253f(0x1cd),_0x3343a6,_0x247060(),_0x3e00fc,[_0x561021]));},'autoLogMany':(_0x14df62,_0x1aca85)=>{var _0x4e9934=_0x1998d3;_0x341adf(_0x5683be(_0x4e9934(0x1cd),_0x14df62,_0x247060(),_0x3e00fc,_0x1aca85));},'autoTrace':(_0x19f33b,_0x49cf5c)=>{var _0x38aba5=_0x1998d3;_0x341adf(_0x5683be(_0x38aba5(0x1ab),_0x49cf5c,_0x247060(),_0x3e00fc,[_0x19f33b]));},'autoTraceMany':(_0xcd9962,_0x3adbc0)=>{var _0x40a7aa=_0x1998d3;_0x341adf(_0x5683be(_0x40a7aa(0x1ab),_0xcd9962,_0x247060(),_0x3e00fc,_0x3adbc0));},'autoTime':(_0x1e1fd7,_0x2e5429,_0x2ccb02)=>{_0x3e248f(_0x2ccb02);},'autoTimeEnd':(_0x2e38e6,_0x141bf8,_0xdc33b2)=>{_0x2ebbe7(_0x141bf8,_0xdc33b2);},'coverage':_0x298f37=>{var _0x2380b2=_0x1998d3;_0x341adf({'method':_0x2380b2(0x1de),'version':_0x57888b,'args':[{'id':_0x298f37}]});}};let _0x341adf=b(_0x4b00d8,_0x5578f1,_0x3ed2a7,_0x30eaab,_0x213295,_0x26d1d4),_0x3e00fc=_0x4b00d8[_0x1998d3(0x26e)];return _0x4b00d8[_0x1998d3(0x232)];})(globalThis,_0x1f7fe1(0x213),_0x1f7fe1(0x20c),_0x1f7fe1(0x1d7),_0x1f7fe1(0x209),'1.0.0',_0x1f7fe1(0x18e),[\\\"localhost\\\",\\\"127.0.0.1\\\",\\\"example.cypress.io\\\",\\\"Nando\\\",\\\"10.7.0.29\\\",\\\"172.17.80.1\\\",\\\"192.168.1.61\\\"],_0x1f7fe1(0x1af),_0x1f7fe1(0x1b1));\");}catch(e){}};/* istanbul ignore next */function oo_oo(i:string,...v:any[]){try{oo_cm().consoleLog(i, v);}catch(e){} return v};oo_oo;/* istanbul ignore next */function oo_tr(i:string,...v:any[]){try{oo_cm().consoleTrace(i, v);}catch(e){} return v};oo_tr;/* istanbul ignore next */function oo_ts(){try{oo_cm().consoleTime();}catch(e){}};oo_ts;/* istanbul ignore next */function oo_te(){try{oo_cm().consoleTimeEnd();}catch(e){}};oo_te;/*eslint unicorn/no-abusive-eslint-disable:,eslint-comments/disable-enable-pair:,eslint-comments/no-unlimited-disable:,eslint-comments/no-aggregating-enable:,eslint-comments/no-duplicate-disable:,eslint-comments/no-unused-disable:,eslint-comments/no-unused-enable:,*/","@if (!loadImage()) {\r\n <div class='place-image'>\r\n <div class='image-holder'\r\n [ngStyle]='{ width: config()?.width,height: config()?.height,borderRadius: config()?.borderRadius}'>\r\n <button [matTooltip]=\"'UPLOAD_A_IMAGE' | i18n: config()?.language\" class='image-upload-btn' mat-icon-button\r\n (click)='onUpload($event)'>\r\n <mat-icon class='mat-18'>add_a_photo</mat-icon>\r\n </button>\r\n <input #imagePicker type='file' class='d-none' [id]=\"'filePicker-' + uuidFilePicker\"\r\n (change)='handleFileSelect($event)' [accept]='imagesAllowed'>\r\n </div>\r\n </div>\r\n}\r\n\r\n@if (loadImage()) {\r\n <div class='place-image'>\r\n <div class='image-holder-loaded'\r\n [ngStyle]='{width: config()?.width,height: config()?.height,borderRadius: config()?.borderRadius}'>\r\n <img [src]='imageSrc()' alt='image-loaded' [ngStyle]='{ borderRadius: config()?.borderRadius }'>\r\n <input #imagePicker type='file' class='d-none' [id]=\"'filePicker-' + uuidFilePicker\"\r\n (change)='handleFileSelect($event)' [accept]='imagesAllowed'>\r\n </div>\r\n @if (imageSrc()?.length) {\r\n <p class='mat-caption image-caption' [class.warn]='(imageSrc()?.length | calculateSize) > 200'\r\n [class.fw-600]='(imageSrc()?.length | calculateSize) > 200'>\r\n {{ \"SIZE\" | i18n: currentLanguage() }}: {{ (imageSrc()?.length | calculateSize) }}Kb {{ format.value }}\r\n </p>\r\n }\r\n <div class='editing-bar-btn'>\r\n @if (!config()?.hideAddBtn) {\r\n <button id='upload-img' mat-icon-button (click)='onUpload($event)'\r\n [matTooltip]=\"'UPLOAD_A_IMAGE' | i18n: config()?.language\">\r\n <mat-icon class='mat-18'>add_a_photo</mat-icon>\r\n </button>\r\n }\r\n @if (!config()?.hideEditBtn && !noEdit()) {\r\n <button id='edit-img' mat-icon-button (click)='showEditPanel.set(true)'\r\n [matTooltip]=\"'OPEN_EDITOR_PANEL' | i18n: config()?.language\">\r\n <mat-icon class='mat-18'>edit</mat-icon>\r\n </button>\r\n }\r\n @if (!config()?.hideDownloadBtn) {\r\n <a id='download-img' [matTooltip]=\"'DOWNLOAD' | i18n: config()?.language\"\r\n [href]='imageSrc()' mat-icon-button [download]='imageName'>\r\n <mat-icon class='mat-18'>cloud_download</mat-icon>\r\n </a>\r\n }\r\n @if (!config()?.hideDeleteBtn) {\r\n <button id='delete-img' mat-icon-button (click)='onRemove()'\r\n [matTooltip]=\"'REMOVE' | i18n: config()?.language\">\r\n <mat-icon class='mat-18'>delete</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n}\r\n\r\n@if (showEditPanel()) {\r\n <div id='popup' class='popup'>\r\n <div class='popup-clear'>\r\n <button mat-icon-button (click)='onCloseEditPanel()'>\r\n <mat-icon class='mat-18'>clear</mat-icon>\r\n </button>\r\n </div>\r\n <div class='image-container'>\r\n <div class='image-holder-full'>\r\n <img id='image-full' [src]='imageSrc()' alt=''>\r\n <div id='image-cropper' class='image-cropper'>\r\n <div id='image-cropper-header'>\r\n <mat-icon>drag_indicator</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class='control-panel'>\r\n <p class='item-panel fw-600'>{{ 'QUALITY' | i18n: config()?.language }}</p>\r\n <div class='quality-container'>\r\n <mat-slider ngDefaultControl [color]='color' class='w-100 mw-100' (change)='onChangeQuality()'\r\n [max]='100' [min]='0' [step]='1' [discrete]='true' [showTickMarks]='true'>\r\n <input matSliderThumb [formControl]='quality'>\r\n </mat-slider>\r\n </div>\r\n <div class='item-panel'>\r\n <span class='fw-600'>{{ 'MAX_DIMENSIONS' | i18n: config()?.language }}</span>\r\n <mat-checkbox class='float-right' [formControl]='maintainAspectRatio' [color]='color'>\r\n <span>{{ 'ASPECT_RATIO' | i18n: config()?.language }}</span>\r\n </mat-checkbox>\r\n </div>\r\n <div class='max-dimension-container'>\r\n <mat-form-field class='w-48' [appearance]='appearance' [color]='color'>\r\n <mat-label>{{ 'MAX_WIDTH_PX' | i18n: config()?.language }}</mat-label>\r\n <input (change)='onChangeSize(true, false)' matInput\r\n [placeholder]=\"'MAX_WIDTH_PX' | i18n: config()?.language\"\r\n [(ngModel)]='maxWidth' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n <mat-form-field class='w-48' [appearance]='appearance' [color]='color'>\r\n <mat-label>{{ 'MAX_HEIGHT_PX' | i18n: config()?.language }}</mat-label>\r\n <input (change)='onChangeSize(false, true)' matInput\r\n [placeholder]=\"'MAX_HEIGHT_PX' | i18n: config()?.language\"\r\n [(ngModel)]='maxHeight' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n </div>\r\n <p class='item-panel fw-600'>{{ 'FORMAT' | i18n: config()?.language }}</p>\r\n <div class='formats-selection'>\r\n <mat-form-field class='w-100 mw-100' [appearance]='appearance' [color]='color'>\r\n <mat-select [formControl]='format' (selectionChange)='onChangeFormat()'>\r\n @for (format of allFormats; track format) {\r\n <mat-option [value]='format'>\r\n {{ format }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class='refresh-container'>\r\n <mat-checkbox (change)='onCropStateChange()' [formControl]='showCrop' [color]='color'>\r\n <p class='item-panel fw-600'>{{ 'CROP' | i18n: config()?.language }}</p>\r\n </mat-checkbox>\r\n <div class='d-flex '>\r\n <button class='float-right' mat-icon-button [color]='color' (click)='onRestore()'>\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n @if (showCrop.value) {\r\n <p>\r\n <button mat-icon-button [color]='color' (click)='onCrop()'>\r\n <mat-icon>crop</mat-icon>\r\n </button>\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n @if (showCrop.value) {\r\n <div class='dimension-container'>\r\n <mat-form-field class='w-48 mw-48' [appearance]='appearance' [color]='color'>\r\n <mat-label>{{ 'WIDTH_PX' | i18n: config()?.language }}</mat-label>\r\n <input (change)='onChangeCrop()' matInput [placeholder]=\"'WIDTH_PX' | i18n: config()?.language\"\r\n [formControl]='cropWidth' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n <mat-form-field class='w-48 mw-48' [appearance]='appearance' [color]='color'>\r\n <mat-label>{{ 'HEIGHT_PX' | i18n: config()?.language }}</mat-label>\r\n <input (change)='onChangeCrop()' matInput [placeholder]=\"'HEIGHT_PX' | i18n: config()?.language\"\r\n [formControl]='cropHeight' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n </div>\r\n }\r\n <div class='save-container'>\r\n <button mat-flat-button (click)='onCloseEditPanel()' [color]='color' class='save-button'>\r\n {{ 'SAVE' | i18n: config()?.language }}\r\n </button>\r\n @if (imageSrc()?.length) {\r\n <p class='mat-caption image-caption'\r\n [class.warn]='(imageSrc()?.length | calculateSize) > 200'\r\n [class.fw-600]='(imageSrc()?.length | calculateSize) > 200'>\r\n {{ \"SIZE\" | i18n: currentLanguage() }}: {{ (imageSrc()?.length | calculateSize) }}Kb\r\n {{ format.value }}\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","/*\r\n * Public API Surface of guachos-image-picker\r\n */\r\n\r\nexport * from './lib/guachos-image-picker.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.I18nPipe","i4.CalculateSizePipe"],"mappings":"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"}
|
|
@@ -42,8 +42,8 @@ export declare class GuajiritosImagePicker implements OnDestroy {
|
|
|
42
42
|
maintainAspectRatio: UntypedFormControl;
|
|
43
43
|
quality: UntypedFormControl;
|
|
44
44
|
format: UntypedFormControl;
|
|
45
|
-
maxHeight:
|
|
46
|
-
maxWidth:
|
|
45
|
+
maxHeight: number;
|
|
46
|
+
maxWidth: number;
|
|
47
47
|
cropHeight: UntypedFormControl;
|
|
48
48
|
cropWidth: UntypedFormControl;
|
|
49
49
|
imageName: WritableSignal<string>;
|
|
@@ -54,6 +54,7 @@ export declare class GuajiritosImagePicker implements OnDestroy {
|
|
|
54
54
|
imagePicker: ElementRef | undefined;
|
|
55
55
|
$imageChanged: EventEmitter<any>;
|
|
56
56
|
$imageOriginal: EventEmitter<any>;
|
|
57
|
+
imageRemoved: EventEmitter<void>;
|
|
57
58
|
set base64Image(image: string);
|
|
58
59
|
set _imageSrc(image: string);
|
|
59
60
|
set _config(value: ImagePickerConf);
|
|
@@ -76,5 +77,5 @@ export declare class GuajiritosImagePicker implements OnDestroy {
|
|
|
76
77
|
onRemove(): void;
|
|
77
78
|
ngOnDestroy(): void;
|
|
78
79
|
static ɵfac: i0.ɵɵFactoryDeclaration<GuajiritosImagePicker, never>;
|
|
79
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GuajiritosImagePicker, "guajiritos-image-picker", never, { "appearance": { "alias": "appearance"; "required": false; }; "color": { "alias": "color"; "required": false; }; "imagesAllowed": { "alias": "imagesAllowed"; "required": false; }; "base64Image": { "alias": "base64Image"; "required": false; }; "_imageSrc": { "alias": "_imageSrc"; "required": false; }; "_config": { "alias": "_config"; "required": false; }; }, { "$imageChanged": "$imageChanged"; "$imageOriginal": "$imageOriginal"; }, never, never, true, never>;
|
|
80
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GuajiritosImagePicker, "guajiritos-image-picker", never, { "appearance": { "alias": "appearance"; "required": false; }; "color": { "alias": "color"; "required": false; }; "imagesAllowed": { "alias": "imagesAllowed"; "required": false; }; "base64Image": { "alias": "base64Image"; "required": false; }; "_imageSrc": { "alias": "_imageSrc"; "required": false; }; "_config": { "alias": "_config"; "required": false; }; }, { "$imageChanged": "$imageChanged"; "$imageOriginal": "$imageOriginal"; "imageRemoved": "imageRemoved"; }, never, never, true, never>;
|
|
80
81
|
}
|