@guajiritos/image-picker 0.0.1 → 0.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/README.md +5 -5
- package/esm2020/guajiritos-image-picker.mjs +4 -4
- package/esm2020/lib/guachos-image-picker.component.mjs +540 -542
- package/esm2020/public-api.mjs +5 -6
- package/esm2020/utils/calculate-size.module.mjs +16 -0
- package/esm2020/utils/calculate-size.pipe.mjs +24 -24
- package/fesm2015/guajiritos-image-picker.mjs +592 -632
- package/fesm2015/guajiritos-image-picker.mjs.map +1 -1
- package/fesm2020/guajiritos-image-picker.mjs +571 -617
- package/fesm2020/guajiritos-image-picker.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/guachos-image-picker.component.d.ts +81 -79
- package/package.json +5 -5
- package/public-api.d.ts +1 -2
- package/utils/calculate-size.module.d.ts +7 -0
- package/utils/calculate-size.pipe.d.ts +7 -7
- package/esm2020/lib/guachos-image-picker.module.mjs +0 -60
- package/lib/guachos-image-picker.module.d.ts +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guajiritos-image-picker.mjs","sources":["../../../projects/guachos-image-picker/src/utils/calculate-size.pipe.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/lib/guachos-image-picker.module.ts","../../../projects/guachos-image-picker/src/public-api.ts","../../../projects/guachos-image-picker/src/guajiritos-image-picker.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'calculateSize'\n})\nexport class CalculateSizePipe implements PipeTransform {\n\n transform(imageLength: number): number {\n if (!imageLength) {\n return;\n }\n\n if (imageLength) {\n return Math.ceil(((3 / 4) * imageLength) / 1024);\n } else {\n return;\n }\n }\n\n}\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MatLegacyFormFieldAppearance as MatFormFieldAppearance } from '@angular/material/legacy-form-field';\r\nimport { ResizeObserver } from 'resize-observer';\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 encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GuajiritosImagePickerComponent {\r\n constructor(\r\n private _cdRef: ChangeDetectorRef,\r\n ) {\r\n }\r\n\r\n private observer: any = null;\r\n private originImageSrc: any;\r\n private fileType: any;\r\n private urlImage: string;\r\n private lastOriginSrc: any;\r\n private labelEn: any = {\r\n 'Upload a image': 'Upload a image',\r\n 'You must edit the image in order to resize it': 'You must edit the image in order to resize it',\r\n 'too large': 'too large',\r\n 'Open the editor panel': 'Open the editor panel',\r\n 'Download the image': 'Download the image',\r\n 'Control Panel': 'Control Panel',\r\n Quality: 'Quality',\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 };\r\n private labelEs: any = {\r\n 'Upload a image': 'Suba una imagen',\r\n 'You must edit the image in order to resize it': 'Debe editar la imagen para disminuir su tamaño',\r\n 'too large': 'muy grande',\r\n 'Open the editor panel': 'Abra el panel de edición',\r\n 'Download the image': 'Descarge la imagen',\r\n 'Control Panel': 'Panel de control',\r\n Remove: 'Quitar',\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 };\r\n private labelFr: any = {\r\n 'Upload a image': 'Charger une image',\r\n 'You must edit the image in order to resize it': 'Vous devez éditer l\\'image pour changer sa taille',\r\n 'too large': 'Trop grande',\r\n 'Open the editor panel': 'Ouvrir le panneau d\\'édition',\r\n 'Download the image': 'Télécharger l\\'image',\r\n 'Control Panel': 'Panneau de commande',\r\n Remove: 'Supprimer',\r\n Quality: 'Qualité',\r\n 'Max dimensions': 'Dimensions maximales',\r\n 'aspect-ratio': 'rapport de forme',\r\n 'max-width(px)': 'largeur max.',\r\n 'max-height(px)': 'hauteur max',\r\n Format: 'Format',\r\n Crop: 'Recadrer',\r\n 'width(px)': 'largeur(px)',\r\n 'height(px)': 'hauteur(px)',\r\n };\r\n private arrayCopiedImages: any[] = [];\r\n public config: ImagePickerConf = {\r\n height: '240px',\r\n width: '320px',\r\n borderRadius: '16px',\r\n compressInitial: true,\r\n language: 'en',\r\n hideDeleteBtn: false,\r\n hideDownloadBtn: false,\r\n hideEditBtn: false,\r\n hideAddBtn: false,\r\n };\r\n public showCrop: boolean = false;\r\n public imageSrc: any;\r\n public loadImage: boolean = false;\r\n public uuidFilePicker: string = Date.now().toString(20);\r\n public showEditPanel: boolean = false;\r\n public quality: number = 92;\r\n public format: string = 'jpeg';\r\n public allFormats: string[] = ['webp', 'jpeg', 'png'];\r\n public maxHeight: number = 2000;\r\n public maxWidth: number = 2000;\r\n public cropHeight: number = 150;\r\n public cropWidth: number = 150;\r\n public maintainAspectRatio: boolean = true;\r\n public imageName: string = 'download';\r\n @Input() appearance: MatFormFieldAppearance = 'outline';\r\n @Input() color: 'primary' | 'warn' | 'accent' = 'primary';\r\n @Input() imagesAllowed: ImageAllowedTypes = 'image/*';\r\n @ViewChild('imagePicker', { static: false }) imagePicker: ElementRef;\r\n @Output() $imageChanged: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() $imageOriginal: EventEmitter<any> = new EventEmitter<any>();\r\n public labels = this.labelEn;\r\n\r\n @Input() set _imageSrc(value) {\r\n if (value) {\r\n this.parseToBase64(value).then((dataUri: any) => {\r\n this.imageSrc = dataUri;\r\n this.arrayCopiedImages = [];\r\n this.arrayCopiedImages.push(this.imageSrc);\r\n this.originImageSrc = value;\r\n this.lastOriginSrc = value;\r\n this.$imageOriginal.next(this.originImageSrc);\r\n this.loadImage = true;\r\n this._cdRef.markForCheck();\r\n });\r\n } else {\r\n this.imageSrc = null;\r\n this.originImageSrc = null;\r\n this.loadImage = false;\r\n this.arrayCopiedImages = [];\r\n this.lastOriginSrc = null;\r\n this.$imageOriginal.next(null);\r\n this.format = 'jpeg';\r\n this.maxHeight = 2000;\r\n this.maxWidth = 2000;\r\n this.cropHeight = 150;\r\n this.cropWidth = 150;\r\n this.maintainAspectRatio = true;\r\n this.showEditPanel = false;\r\n this._cdRef.markForCheck();\r\n }\r\n }\r\n\r\n @Input() set _config(value: ImagePickerConf) {\r\n if (value && value.constructor == Object) {\r\n this.config = { ...this.config, ...value };\r\n if (value?.language !== undefined) {\r\n if (value.language === 'en') {\r\n this.labels = { ...this.labelEn };\r\n }\r\n if (value.language === 'es') {\r\n this.labels = { ...this.labelEs };\r\n }\r\n if (value.language === 'fr') {\r\n this.labels = { ...this.labelFr };\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async handleReaderLoaded(readerEvt) {\r\n const binaryString = readerEvt.target.result;\r\n const base64textString = 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 = 92;\r\n const input: ImageConverterInput = {\r\n dataType: this.format,\r\n quality: 0.92,\r\n maintainRatio: true,\r\n };\r\n this.imageSrc = await this.resizeDataURL(this.urlImage + base64textString, input);\r\n } else {\r\n this.imageSrc = 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,\r\n });\r\n this.$imageOriginal.next(this.imageSrc);\r\n }\r\n this.$imageChanged.next(this.imageSrc);\r\n this.loadImage = true;\r\n }\r\n\r\n private parseToBase64(imageUrl): any {\r\n let types = imageUrl.split('.');\r\n let type = types[types.length - 1];\r\n\r\n if (!type || (type !== 'png' && type !== 'jpeg' && type !== 'webp')) {\r\n type = 'jpeg';\r\n }\r\n\r\n this.format = type;\r\n return new Promise((resolve) => {\r\n let img = document.createElement('img');\r\n img.crossOrigin = 'Anonymous';\r\n img.src = imageUrl;\r\n this.maxHeight = img?.height;\r\n this.maxWidth = img?.width;\r\n img.onload = function() {\r\n let canvas = document.createElement('canvas');\r\n let ctx = canvas.getContext('2d');\r\n let ratio = 1.0;\r\n canvas.width = img?.width * ratio;\r\n canvas.height = img?.height * ratio;\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n let dataURI = canvas.toDataURL(`image/${type}`, 0.92);\r\n return 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 return data?.dataUri;\r\n });\r\n }\r\n\r\n private async resizeDataURL(datas, input: ImageConverterInput): Promise<any> {\r\n return await new Promise(async function(resolve) {\r\n let img = document.createElement('img');\r\n img.src = datas + '';\r\n img.crossOrigin = 'Anonymous';\r\n let quality = input.quality ? input.quality : 1.0;\r\n let maintainRatio = input.maintainRatio != undefined ? input.maintainRatio : true;\r\n\r\n img.onload = function() {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n let ratio = img.width / img.height;\r\n let width = input.width ? input.width : img.width;\r\n let height = input.height ? 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 = input.dataType ? input.dataType : 'webp';\r\n const dataURI = 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,\r\n });\r\n }\r\n\r\n return data.dataUri;\r\n });\r\n }\r\n\r\n private wait(ms?): Promise<any> {\r\n ms = ms ? ms : 1000;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n return resolve(true);\r\n }, ms);\r\n });\r\n }\r\n\r\n private dragElement(element): void {\r\n let pos1 = 0,\r\n pos2 = 0,\r\n pos3 = 0,\r\n pos4 = 0;\r\n if (document.getElementById(element.id + '-header')) {\r\n document.getElementById(element.id + '-header').onmousedown = dragMouseDown;\r\n document.getElementById(element.id + '-header').ontouchstart = dragMouseDown;\r\n } else {\r\n element.onmousedown = dragMouseDown;\r\n element.ontouchstart = dragMouseDown;\r\n }\r\n\r\n function dragMouseDown(e) {\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) {\r\n let holderImage = 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 = element.offsetTop - pos2;\r\n const newLeft = element.offsetLeft - pos1;\r\n const rectHolder = holderImage.getBoundingClientRect();\r\n const rectElement = 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() {\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): void {\r\n event.preventDefault();\r\n this.imagePicker.nativeElement.click();\r\n }\r\n\r\n public handleFileSelect(evt): void {\r\n const files = evt.target?.files;\r\n if (files) {\r\n const file = files[0];\r\n this.imageName = file.name.split('.')[0];\r\n this.fileType = file.type;\r\n this.urlImage = `data:${file.type};base64,`;\r\n if (files && file) {\r\n const reader = 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 this.observer.unobserve(document.getElementById('image-cropper'));\r\n this.observer.unobserve(document.getElementById('image-full'));\r\n }\r\n this.showCrop = false;\r\n this.showEditPanel = false;\r\n }\r\n\r\n public async onChangeQuality() {\r\n const qualityItem = this.quality / 100;\r\n this.maxHeight = this.maxHeight && +this.maxHeight ? this.maxHeight : 2000;\r\n\r\n this.maxWidth = this.maxWidth && +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,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio,\r\n };\r\n\r\n this.imageSrc = await this.resizeDataURL(this.originImageSrc, input);\r\n this.$imageChanged.next(this.imageSrc);\r\n this.loadImage = true;\r\n } catch (error) {\r\n this.loadImage = true;\r\n }\r\n }\r\n\r\n public async onChangeFormat() {\r\n let qualityItem = this.quality / 100;\r\n this.maxHeight = this.maxHeight && +this.maxHeight ? this.maxHeight : 2000;\r\n this.maxWidth = this.maxWidth && +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,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio,\r\n };\r\n this.imageSrc = await this.resizeDataURL(this.originImageSrc, input);\r\n this.$imageChanged.next(this.imageSrc);\r\n this.loadImage = true;\r\n } catch (error) {\r\n this.loadImage = true;\r\n }\r\n }\r\n\r\n public async onChangeSize(changeWidth?, changeHeight?): Promise<void> {\r\n let qualityItem = this.quality / 100;\r\n this.maxHeight = this.maxHeight && +this.maxHeight ? this.maxHeight : 2000;\r\n this.maxWidth = this.maxWidth && +this.maxWidth ? this.maxWidth : 2000;\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,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio,\r\n changeHeight: changeHeight,\r\n changeWidth: changeWidth,\r\n };\r\n this.imageSrc = await this.resizeDataURL(this.originImageSrc, input);\r\n this.$imageChanged.next(this.imageSrc);\r\n this.loadImage = true;\r\n } catch (error) {\r\n this.loadImage = true;\r\n }\r\n }\r\n\r\n public onChangeCrop(): void {\r\n const cropper = document.getElementById('image-cropper');\r\n cropper.style.width = this.cropWidth + 'px';\r\n cropper.style.height = this.cropHeight + 'px';\r\n }\r\n\r\n public onCropStateChange(): void {\r\n const cropper = document.getElementById('image-cropper');\r\n if (this.showCrop) {\r\n cropper.style.opacity = '1.0';\r\n this.dragElement(cropper);\r\n this.observer = new ResizeObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (this.showEditPanel) {\r\n const elementCropper = document.getElementById('image-cropper');\r\n const rectHolder = document.getElementById('image-full').getBoundingClientRect();\r\n const rectElemnt = elementCropper.getBoundingClientRect();\r\n const maxWidth = rectHolder.x + rectHolder.width - rectElemnt.x - 4;\r\n const maxHeight = rectHolder.y + rectHolder.height - rectElemnt.y - 4;\r\n elementCropper.style.maxWidth = maxWidth + 'px';\r\n elementCropper.style.maxHeight = maxHeight + 'px';\r\n this.cropWidth = rectElemnt.width;\r\n this.cropHeight = rectElemnt.height;\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 this.observer.unobserve(document.getElementById('image-cropper'));\r\n this.observer.unobserve(document.getElementById('image-full'));\r\n }\r\n }\r\n }\r\n\r\n public onCrop(type?): void {\r\n type = type ? type : this.format;\r\n const cropper = document.getElementById('image-cropper');\r\n const rectCropper = cropper.getBoundingClientRect();\r\n const dataHolderRect = document.getElementById('image-full').getBoundingClientRect();\r\n const canvas = document.createElement('canvas');\r\n new Promise((resolve, reject) => {\r\n let ctx = canvas.getContext('2d');\r\n let image = new Image();\r\n image.src = this.imageSrc;\r\n image.onload = () => {\r\n let ratio = image.height / dataHolderRect.height;\r\n let newWidth = rectCropper.width * ratio;\r\n let newHeight = rectCropper.height * ratio;\r\n canvas.height = newHeight;\r\n canvas.width = newWidth;\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 // ctx.drawImage(image, 90, 130, 50, 60, 10, 10, 50, 60);\r\n resolve(canvas.toDataURL(`image/${type}`, 0.98));\r\n };\r\n image.onerror = (e) => {\r\n reject(e);\r\n };\r\n })\r\n .then((dataUri) => {\r\n this.imageSrc = dataUri;\r\n this.showCrop = 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) => {\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 = lastState.lastImage;\r\n this.maxWidth = lastState.width;\r\n this.maxHeight = lastState.height;\r\n this.originImageSrc = this.lastOriginSrc + '';\r\n } else {\r\n this.imageSrc = this.lastOriginSrc;\r\n this.originImageSrc = this.lastOriginSrc + '';\r\n }\r\n this.$imageChanged.next(this.imageSrc);\r\n }\r\n\r\n public onRemove(): void {\r\n this.imageSrc = null;\r\n this.originImageSrc = null;\r\n this.loadImage = 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 = 'jpeg';\r\n this.maxHeight = 2000;\r\n this.maxWidth = 2000;\r\n this.cropHeight = 150;\r\n this.cropWidth = 150;\r\n this.maintainAspectRatio = true;\r\n this.showEditPanel = false;\r\n }\r\n}\r\n","<div *ngIf='!loadImage' 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]=\"labels['Upload a image']\" class='image-upload-btn' mat-icon-button (click)='onUpload($event)'>\r\n <mat-icon class='mat-18'>add_a_photo</mat-icon>\r\n </button>\r\n <input #imagePicker type='file' style='display: none' [id]=\"'filePicker-' + uuidFilePicker\"\r\n (change)='handleFileSelect($event)' [accept]='imagesAllowed'>\r\n </div>\r\n</div>\r\n<div *ngIf='loadImage' 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' style='display: none' [id]=\"'filePicker-' + uuidFilePicker\"\r\n (change)='handleFileSelect($event)' [accept]='imagesAllowed'>\r\n </div>\r\n <p *ngIf='imageSrc?.length' class='mat-caption image-caption'\r\n [ngStyle]=\"{color: (imageSrc?.length | calculateSize) > 120 ? '#f44336' : 'unset',fontWeight: (imageSrc?.length | calculateSize) > 120 ? '500' : 'unset'}\">\r\n size: {{ (imageSrc?.length | calculateSize) }}Kb {{ format }}\r\n </p>\r\n\r\n <div class='editing-bar-btn'\r\n style='flex-direction: row; box-sizing: border-box; display: flex; place-content: flex-start; align-items: flex-start'>\r\n <button id='upload-img' *ngIf='!config.hideAddBtn' mat-icon-button [matTooltip]=\"labels['Upload a image']\"\r\n (click)='onUpload($event)'>\r\n <mat-icon class='mat-18'>add_a_photo</mat-icon>\r\n </button>\r\n <button id='edit-img' *ngIf='!config.hideEditBtn' mat-icon-button [matTooltip]=\"labels['Open the editor panel']\"\r\n (click)='showEditPanel = true'>\r\n <mat-icon class='mat-18'>edit</mat-icon>\r\n </button>\r\n <a id='download-img' *ngIf='!config.hideDownloadBtn' [matTooltip]=\"labels['Download the image']\"\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 <button id='delete-img' *ngIf='!config.hideDeleteBtn' mat-icon-button [matTooltip]=\"labels['Remove']\"\r\n (click)='onRemove()'>\r\n <mat-icon class='mat-18'>delete</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf='showEditPanel' id='popup' class='popup'>\r\n <div\r\n style='flex-direction: row; box-sizing: border-box; display: flex; place-content: center flex-end; align-items: center'>\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\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\r\n <div class='control-panel'>\r\n <p class='title-panel'>{{ labels['Control Panel'] }}</p>\r\n\r\n <p class='item-panel'>{{ labels['Quality'] }}</p>\r\n <div\r\n style='flex-direction: row; box-sizing: border-box; display: flex; place-content: flex-start; align-items: flex-start'>\r\n <mat-slider [color]='color' style='max-width: 100%; width: 100%' (change)='onChangeQuality()'\r\n [(ngModel)]='quality' [min]='0' [max]='100' [step]='1' [thumbLabel]='true'>\r\n </mat-slider>\r\n </div>\r\n\r\n <p class='item-panel'>\r\n {{ labels['Max dimensions'] }}\r\n <mat-checkbox style='float: right' [(ngModel)]='maintainAspectRatio' [color]='color'>\r\n <span class='mat-caption'>{{ labels['aspect-ratio'] }}</span>\r\n </mat-checkbox>\r\n </p>\r\n <div\r\n style='margin-top: 8px !important; flex-flow: row wrap; box-sizing: border-box; display: flex; place-content: flex-start space-between; align-items: flex-start'>\r\n <mat-form-field class='no-input-style' style='max-width: 48%; width: 48%' [appearance]='appearance'\r\n [color]='color'>\r\n <mat-label>{{ labels['max-width(px)'] }}</mat-label>\r\n <input (change)='onChangeSize(true, false)' matInput [placeholder]=\"labels['max-width(px)']\"\r\n [(ngModel)]='maxWidth' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n\r\n <mat-form-field class='no-input-style' style='max-width: 48%; width: 48%' [appearance]='appearance'\r\n [color]='color'>\r\n <mat-label>{{ labels['max-height(px)'] }}</mat-label>\r\n <input (change)='onChangeSize(false, true)' matInput [placeholder]=\"labels['max-height(px)']\"\r\n [(ngModel)]='maxHeight' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n </div>\r\n\r\n <p class='item-panel'>{{ labels['Format'] }}</p>\r\n <div\r\n style='margin-top: 8px !important; flex-direction: row; box-sizing: border-box; display: flex; place-content: flex-start; align-items: flex-start'>\r\n <mat-form-field class='no-input-style' style='max-width: 100%; width: 100%' [appearance]='appearance'\r\n [color]='color'>\r\n <mat-select [(ngModel)]='format' (selectionChange)='onChangeFormat()'>\r\n <mat-option *ngFor='let format of allFormats' [value]='format'>\r\n {{ format }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div>\r\n <mat-checkbox (change)='onCropStateChange()' [(ngModel)]='showCrop' [color]='color'>\r\n <p class='item-panel'>{{ labels['Crop'] }}</p>\r\n </mat-checkbox>\r\n <button style='float: right' mat-icon-button [color]='color' (click)='onRestore()'>\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <ng-container *ngIf='showCrop'>\r\n <div\r\n style='margin-top: 8px !important; flex-flow: row wrap; box-sizing: border-box; display: flex; place-content: flex-start space-between; align-items: flex-start'>\r\n <mat-form-field class='no-input-style' style='max-width: 48%; width: 48%' [appearance]='appearance'\r\n [color]='color'>\r\n <mat-label>{{ labels['width(px)'] }}</mat-label>\r\n <input (change)='onChangeCrop()' matInput [placeholder]=\"labels['width(px)']\"\r\n [(ngModel)]='cropWidth' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n <mat-form-field class='no-input-style' style='max-width: 48%; width: 48%' [appearance]='appearance'\r\n [color]='color'>\r\n <mat-label>{{ labels['height(px)'] }}</mat-label>\r\n <input (change)='onChangeCrop()' matInput\r\n [placeholder]=\"labels['height(px)']\" [(ngModel)]='cropHeight' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n </div>\r\n\r\n <p style='margin-bottom: 4px !important'>\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 </ng-container>\r\n\r\n <div\r\n style='flex-direction: row; box-sizing: border-box; display: flex; place-content: center space-between; align-items: center'>\r\n <button mat-flat-button (click)='onCloseEditPanel()' [color]='color'\r\n style='padding: 0 8px; height: 34px; box-sizing: border-box;'>\r\n Guardar\r\n </button>\r\n\r\n <p *ngIf='imageSrc?.length' class='mat-caption image-caption'\r\n [ngStyle]=\"{color: (imageSrc?.length | calculateSize) > 120 ? '#f44336' : 'unset',fontWeight: (imageSrc?.length | calculateSize) > 120 ? '500' : 'unset'}\">\r\n size: {{ (imageSrc?.length | calculateSize) }}Kb {{ format }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox';\r\nimport { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';\r\nimport { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select';\r\nimport { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip';\r\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatLegacySliderModule as MatSliderModule } from '@angular/material/legacy-slider';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';\r\n\r\nimport { GuajiritosImagePickerComponent } from './guachos-image-picker.component';\r\nimport { CalculateSizePipe } from '../utils/calculate-size.pipe';\r\n\r\n@NgModule({\r\n declarations: [GuajiritosImagePickerComponent, CalculateSizePipe],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatSliderModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n ],\r\n exports: [GuajiritosImagePickerComponent],\r\n})\r\nexport class GuajiritosImagePickerModule {}\r\n","/*\r\n * Public API Surface of guachos-image-picker\r\n */\r\n\r\nexport * from './lib/guachos-image-picker.component';\r\nexport * from './lib/guachos-image-picker.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i12.CalculateSizePipe","MatButtonModule","MatTooltipModule","MatSliderModule","MatFormFieldModule","MatSelectModule","MatInputModule","MatCheckboxModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"guajiritos-image-picker.mjs","sources":["../../../projects/guachos-image-picker/src/utils/calculate-size.pipe.ts","../../../projects/guachos-image-picker/src/utils/calculate-size.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';\n\n@Pipe({\n name: 'calculateSize'\n})\nexport class CalculateSizePipe implements PipeTransform {\n\n transform(imageLength: number): number {\n if (!imageLength) {\n return 0;\n }\n\n if (imageLength) {\n return Math.ceil(((3 / 4) * imageLength) / 1024);\n } else {\n return 0;\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\n\nimport { CalculateSizePipe } from './calculate-size.pipe';\n@NgModule({\n declarations: [CalculateSizePipe],\n exports: [CalculateSizePipe],\n})\nexport class CalculateSizeModule { }\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { ResizeObserver } from 'resize-observer';\r\nimport { NgForOf, NgIf, NgStyle } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\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 { FormsModule } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { CalculateSizeModule } from '../utils/calculate-size.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 standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n NgIf,\r\n NgStyle,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n CalculateSizeModule,\r\n MatSliderModule,\r\n MatCheckboxModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n FormsModule,\r\n NgForOf,\r\n ],\r\n})\r\nexport class GuajiritosImagePicker implements OnDestroy {\r\n constructor(\r\n private _cdRef: ChangeDetectorRef,\r\n ) {\r\n }\r\n\r\n private unsubscribeAll$: Subject<void> = new Subject();\r\n private observer: any = null;\r\n private originImageSrc: any;\r\n private fileType: any;\r\n private urlImage: string | undefined;\r\n private lastOriginSrc: any;\r\n private labelEn: any = {\r\n 'Upload a image': 'Upload a image',\r\n 'You must edit the image in order to resize it': 'You must edit the image in order to resize it',\r\n 'too large': 'too large',\r\n 'Open the editor panel': 'Open the editor panel',\r\n 'Download the image': '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 };\r\n private labelEs: any = {\r\n 'Upload a image': 'Suba una imagen',\r\n 'You must edit the image in order to resize it': 'Debe editar la imagen para disminuir su tamaño',\r\n 'too large': 'muy grande',\r\n 'Open the editor panel': 'Abra el panel de edición',\r\n 'Download the image': 'Descargue la imagen',\r\n 'Control Panel': 'Panel de control',\r\n Remove: 'Quitar',\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 };\r\n private arrayCopiedImages: any[] = [];\r\n public config: ImagePickerConf = {\r\n height: '240px',\r\n width: '320px',\r\n borderRadius: '16px',\r\n compressInitial: true,\r\n language: 'en',\r\n hideDeleteBtn: false,\r\n hideDownloadBtn: false,\r\n hideEditBtn: false,\r\n hideAddBtn: false,\r\n };\r\n public showCrop: boolean = false;\r\n public imageSrc: any;\r\n public loadImage: boolean = false;\r\n public uuidFilePicker: string = Date.now().toString(20);\r\n public showEditPanel: boolean = false;\r\n public quality: number = 92;\r\n public format: string = 'jpeg';\r\n public allFormats: string[] = ['webp', 'jpeg', 'png'];\r\n public maxHeight: number = 2000;\r\n public maxWidth: number = 2000;\r\n public cropHeight: number = 150;\r\n public cropWidth: number = 150;\r\n public maintainAspectRatio: boolean = true;\r\n public imageName: string = 'download';\r\n public labels = this.labelEn;\r\n @Input() appearance: MatFormFieldAppearance = 'outline';\r\n @Input() color: 'primary' | 'warn' | 'accent' = 'primary';\r\n @Input() imagesAllowed: ImageAllowedTypes = 'image/*';\r\n @ViewChild('imagePicker', { static: false }) imagePicker: ElementRef | undefined;\r\n @Output() $imageChanged: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() $imageOriginal: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input() set _imageSrc(image: string) {\r\n if (image) {\r\n let types = image.split('.');\r\n this.format = types[types.length - 1];\r\n\r\n if (!this.format || (this.format !== 'png' && this.format !== 'jpeg' && this.format !== 'webp')) {\r\n this.format = 'jpeg';\r\n }\r\n\r\n this.imageSrc = 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 = true;\r\n this._cdRef.detectChanges();\r\n } else {\r\n this.imageSrc = null;\r\n this.originImageSrc = null;\r\n this.loadImage = false;\r\n this.arrayCopiedImages = [];\r\n this.lastOriginSrc = null;\r\n this.$imageOriginal.next(null);\r\n this.format = 'jpeg';\r\n this.maxHeight = 2000;\r\n this.maxWidth = 2000;\r\n this.cropHeight = 150;\r\n this.cropWidth = 150;\r\n this.maintainAspectRatio = true;\r\n this.showEditPanel = false;\r\n this._cdRef.detectChanges();\r\n }\r\n }\r\n\r\n @Input() set _config(value: ImagePickerConf) {\r\n if (value && value.constructor == Object) {\r\n this.config = { ...this.config, ...value };\r\n if (value?.language !== undefined) {\r\n if (value.language === 'es') {\r\n this.labels = { ...this.labelEs };\r\n }\r\n if (value.language === 'en') {\r\n this.labels = { ...this.labelEn };\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async handleReaderLoaded(readerEvt: { target: { result: any; }; }) {\r\n const binaryString = readerEvt.target.result;\r\n const base64textString = 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 = 92;\r\n const input: ImageConverterInput = {\r\n dataType: this.format,\r\n quality: 0.92,\r\n maintainRatio: true,\r\n };\r\n this.imageSrc = await this.resizeDataURL(this.urlImage + base64textString, input);\r\n } else {\r\n this.imageSrc = 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,\r\n });\r\n this.$imageOriginal.next(this.imageSrc);\r\n }\r\n this.$imageChanged.next(this.imageSrc);\r\n this.loadImage = true;\r\n this._cdRef.detectChanges();\r\n }\r\n\r\n private async resizeDataURL(datas: string, input: ImageConverterInput): Promise<any> {\r\n return await new Promise(async function(resolve) {\r\n let img = 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() {\r\n const canvas = document.createElement('canvas');\r\n const ctx = 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 = input.dataType ? input.dataType : 'webp';\r\n const dataURI = 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,\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 ? ms : 1000;\r\n return new Promise((resolve) => {\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 = 0, pos2 = 0, pos3 = 0, pos4 = 0;\r\n\r\n let el = 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) {\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) {\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 = element.offsetTop - pos2;\r\n const newLeft = element.offsetLeft - pos1;\r\n const rectHolder = holderImage.getBoundingClientRect();\r\n const rectElement = 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() {\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 = file.name.split('.')[0];\r\n this.fileType = file.type;\r\n this.urlImage = `data:${file.type};base64,`;\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 = false;\r\n this.showEditPanel = false;\r\n }\r\n\r\n public async onChangeQuality(): Promise<void> {\r\n const qualityItem: number = this.quality / 100;\r\n this.maxHeight = this.maxHeight ?? 2000;\r\n\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,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio,\r\n };\r\n\r\n this.imageSrc = await this.resizeDataURL(this.originImageSrc, input);\r\n this.$imageChanged.next(this.imageSrc);\r\n this.loadImage = true;\r\n this._cdRef.detectChanges();\r\n } catch (error) {\r\n this.loadImage = true;\r\n this._cdRef.detectChanges();\r\n }\r\n }\r\n\r\n public async onChangeFormat(): Promise<void> {\r\n let qualityItem: number = this.quality / 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,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio,\r\n };\r\n this.imageSrc = await this.resizeDataURL(this.originImageSrc, input);\r\n this.$imageChanged.next(this.imageSrc);\r\n this.loadImage = true;\r\n this._cdRef.detectChanges();\r\n } catch (error) {\r\n this.loadImage = true;\r\n this._cdRef.detectChanges();\r\n }\r\n }\r\n\r\n public async onChangeSize(changeWidth?: any, changeHeight?: any): Promise<void> {\r\n let qualityItem: number = this.quality / 100;\r\n this.maxHeight = this.maxHeight ?? 2000;\r\n this.maxWidth = this.maxWidth ?? 2000;\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,\r\n quality: qualityItem,\r\n maintainRatio: this.maintainAspectRatio,\r\n changeHeight: changeHeight,\r\n changeWidth: changeWidth,\r\n };\r\n this.imageSrc = await this.resizeDataURL(this.originImageSrc, input);\r\n this.$imageChanged.next(this.imageSrc);\r\n this.loadImage = true;\r\n this._cdRef.detectChanges();\r\n } catch (error) {\r\n this.loadImage = true;\r\n this._cdRef.detectChanges();\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 + 'px';\r\n cropper.style.height = this.cropHeight + 'px';\r\n }\r\n\r\n public onCropStateChange(): void {\r\n const cropper: any = document.getElementById('image-cropper');\r\n if (this.showCrop) {\r\n cropper.style.opacity = '1.0';\r\n this.dragElement(cropper);\r\n this.observer = new ResizeObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (this.showEditPanel) {\r\n const elementCropper: any = document.getElementById('image-cropper');\r\n const elementFull: any = document.getElementById('image-full');\r\n const rectHolder: any = elementFull.getBoundingClientRect();\r\n const rectElement = elementCropper.getBoundingClientRect();\r\n const maxWidth = rectHolder.x + rectHolder.width - rectElement.x - 4;\r\n const maxHeight = rectHolder.y + rectHolder.height - rectElement.y - 4;\r\n elementCropper.style.maxWidth = maxWidth + 'px';\r\n elementCropper.style.maxHeight = maxHeight + 'px';\r\n this.cropWidth = rectElement.width;\r\n this.cropHeight = rectElement.height;\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: any = document.getElementById('image-cropper');\r\n const elementFull: any = 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;\r\n const cropper: any = document.getElementById('image-cropper');\r\n const elementFull: any = document.getElementById('image-full');\r\n const rectCropper = cropper.getBoundingClientRect();\r\n const dataHolderRect = elementFull.getBoundingClientRect();\r\n const canvas = document.createElement('canvas');\r\n new Promise((resolve, reject) => {\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 = () => {\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.height = newHeight;\r\n canvas.width = newWidth;\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 // ctx.drawImage(image, 90, 130, 50, 60, 10, 10, 50, 60);\r\n resolve(canvas.toDataURL(`image/${type}`, 0.98));\r\n };\r\n image.onerror = (e) => {\r\n reject(e);\r\n };\r\n })\r\n .then((dataUri) => {\r\n this.imageSrc = dataUri;\r\n this.showCrop = 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) => {\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 = lastState.lastImage;\r\n this.maxWidth = lastState.width;\r\n this.maxHeight = lastState.height;\r\n this.originImageSrc = this.lastOriginSrc + '';\r\n this._cdRef.detectChanges();\r\n } else {\r\n this.imageSrc = this.lastOriginSrc;\r\n this.originImageSrc = this.lastOriginSrc + '';\r\n this._cdRef.detectChanges();\r\n }\r\n\r\n this.$imageChanged.next(this.imageSrc);\r\n }\r\n\r\n public onRemove(): void {\r\n this.imageSrc = null;\r\n this.originImageSrc = null;\r\n this.loadImage = 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 = 'jpeg';\r\n this.maxHeight = 2000;\r\n this.maxWidth = 2000;\r\n this.cropHeight = 150;\r\n this.cropWidth = 150;\r\n this.maintainAspectRatio = true;\r\n this.showEditPanel = false;\r\n this._cdRef.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll$.next();\r\n this.unsubscribeAll$.complete();\r\n }\r\n}\r\n","<div *ngIf='!loadImage' 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]=\"labels['Upload a image']\" class='image-upload-btn' mat-icon-button (click)='onUpload($event)'>\r\n <mat-icon class='mat-18'>add_a_photo</mat-icon>\r\n </button>\r\n <input #imagePicker type='file' style='display: none' [id]=\"'filePicker-' + uuidFilePicker\"\r\n (change)='handleFileSelect($event)' [accept]='imagesAllowed'>\r\n </div>\r\n</div>\r\n<div *ngIf='loadImage' 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' style='display: none' [id]=\"'filePicker-' + uuidFilePicker\"\r\n (change)='handleFileSelect($event)' [accept]='imagesAllowed'>\r\n </div>\r\n <p *ngIf='imageSrc?.length' class='mat-caption image-caption'\r\n [ngStyle]=\"{color: (imageSrc?.length | calculateSize) > 120 ? '#f44336' : 'unset',fontWeight: (imageSrc?.length | calculateSize) > 120 ? '500' : 'unset'}\">\r\n size: {{ (imageSrc?.length | calculateSize) }}Kb {{ format }}\r\n </p>\r\n\r\n <div class='editing-bar-btn'\r\n style='flex-direction: row; box-sizing: border-box; display: flex; place-content: flex-start; align-items: flex-start'>\r\n <button id='upload-img' *ngIf='!config.hideAddBtn' mat-icon-button [matTooltip]=\"labels['Upload a image']\"\r\n (click)='onUpload($event)'>\r\n <mat-icon class='mat-18'>add_a_photo</mat-icon>\r\n </button>\r\n <button id='edit-img' *ngIf='!config.hideEditBtn' mat-icon-button [matTooltip]=\"labels['Open the editor panel']\"\r\n (click)='showEditPanel = true'>\r\n <mat-icon class='mat-18'>edit</mat-icon>\r\n </button>\r\n <a id='download-img' *ngIf='!config.hideDownloadBtn' [matTooltip]=\"labels['Download the image']\"\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 <button id='delete-img' *ngIf='!config.hideDeleteBtn' mat-icon-button [matTooltip]=\"labels['Remove']\"\r\n (click)='onRemove()'>\r\n <mat-icon class='mat-18'>delete</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf='showEditPanel' id='popup' class='popup'>\r\n <div\r\n style='flex-direction: row; box-sizing: border-box; display: flex; place-content: center flex-end; align-items: center'>\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\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\r\n <div class='control-panel'>\r\n <p class='title-panel'>{{ labels['Control Panel'] }}</p>\r\n\r\n <p class='item-panel'>{{ labels['Quality'] }}</p>\r\n <div\r\n style='flex-direction: row; box-sizing: border-box; display: flex; place-content: flex-start; align-items: flex-start'>\r\n <mat-slider ngDefaultControl [color]='color' style='max-width: 100%; width: 100%' (change)='onChangeQuality()'\r\n [max]='100' [min]='0' [step]='1' [discrete]='true' [showTickMarks]='true'>\r\n <input matSliderThumb [(ngModel)]='quality'>\r\n </mat-slider>\r\n </div>\r\n\r\n <div class='item-panel'>\r\n <span>{{ labels['Max dimensions'] }}</span>\r\n <mat-checkbox style='float: right' [(ngModel)]='maintainAspectRatio' [color]='color'>\r\n <span class='mat-caption'>{{ labels['aspect-ratio'] }}</span>\r\n </mat-checkbox>\r\n </div>\r\n\r\n <div\r\n style='margin-top: 16px !important; flex-flow: row; box-sizing: border-box; display: flex; place-content: flex-start space-between; align-items: flex-start'>\r\n <mat-form-field style='width: 48%' [appearance]='appearance' [color]='color'>\r\n <mat-label>{{ labels['max-width(px)'] }}</mat-label>\r\n <input (change)='onChangeSize(true, false)' matInput [placeholder]=\"labels['max-width(px)']\"\r\n [(ngModel)]='maxWidth' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n\r\n <mat-form-field style='width: 48%' [appearance]='appearance'\r\n [color]='color'>\r\n <mat-label>{{ labels['max-height(px)'] }}</mat-label>\r\n <input (change)='onChangeSize(false, true)' matInput [placeholder]=\"labels['max-height(px)']\"\r\n [(ngModel)]='maxHeight' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n </div>\r\n\r\n <p class='item-panel'>{{ labels['Format'] }}</p>\r\n <div\r\n style='margin-top: 8px !important; flex-direction: row; box-sizing: border-box; display: flex; place-content: flex-start; align-items: flex-start'>\r\n <mat-form-field style='max-width: 100%; width: 100%' [appearance]='appearance'\r\n [color]='color'>\r\n <mat-select [(ngModel)]='format' (selectionChange)='onChangeFormat()'>\r\n <mat-option *ngFor='let format of allFormats' [value]='format'>\r\n {{ format }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div>\r\n <mat-checkbox (change)='onCropStateChange()' [(ngModel)]='showCrop' [color]='color'>\r\n <p class='item-panel'>{{ labels['Crop'] }}</p>\r\n </mat-checkbox>\r\n <button style='float: right' mat-icon-button [color]='color' (click)='onRestore()'>\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <ng-container *ngIf='showCrop'>\r\n <div\r\n style='margin-top: 8px !important; flex-flow: row wrap; box-sizing: border-box; display: flex; place-content: flex-start space-between; align-items: flex-start'>\r\n <mat-form-field style='max-width: 48%; width: 48%' [appearance]='appearance'\r\n [color]='color'>\r\n <mat-label>{{ labels['width(px)'] }}</mat-label>\r\n <input (change)='onChangeCrop()' matInput [placeholder]=\"labels['width(px)']\"\r\n [(ngModel)]='cropWidth' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n <mat-form-field style='max-width: 48%; width: 48%' [appearance]='appearance'\r\n [color]='color'>\r\n <mat-label>{{ labels['height(px)'] }}</mat-label>\r\n <input (change)='onChangeCrop()' matInput\r\n [placeholder]=\"labels['height(px)']\" [(ngModel)]='cropHeight' type='number' [min]='0' [max]='2000'>\r\n </mat-form-field>\r\n </div>\r\n\r\n <p style='margin-bottom: 4px !important'>\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 </ng-container>\r\n\r\n <div\r\n style='flex-direction: row; box-sizing: border-box; display: flex; place-content: center space-between; align-items: center'>\r\n <button mat-flat-button (click)='onCloseEditPanel()' [color]='color'\r\n style='padding: 0 8px; height: 34px; box-sizing: border-box;'>\r\n {{labels['save']}}\r\n </button>\r\n\r\n <p *ngIf='imageSrc?.length' class='mat-caption image-caption'\r\n [ngStyle]=\"{color: (imageSrc?.length | calculateSize) > 120 ? '#f44336' : 'unset',fontWeight: (imageSrc?.length | calculateSize) > 120 ? '500' : 'unset'}\">\r\n size: {{ (imageSrc?.length | calculateSize) }}Kb {{ format }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\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":["i4.CalculateSizePipe"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
/// <amd-module name="@guajiritos/image-picker" />
|
|
5
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
/// <amd-module name="@guajiritos/image-picker" />
|
|
5
|
+
export * from './public-api';
|
|
@@ -1,79 +1,81 @@
|
|
|
1
|
-
import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export interface ImagePickerConf {
|
|
5
|
-
width?: string;
|
|
6
|
-
height?: string;
|
|
7
|
-
borderRadius?: string;
|
|
8
|
-
compressInitial?: boolean;
|
|
9
|
-
language?: string;
|
|
10
|
-
hideDeleteBtn?: boolean;
|
|
11
|
-
hideDownloadBtn?: boolean;
|
|
12
|
-
hideEditBtn?: boolean;
|
|
13
|
-
hideAddBtn?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export interface ImageConverterInput {
|
|
16
|
-
width?: number;
|
|
17
|
-
height?: number;
|
|
18
|
-
quality?: number;
|
|
19
|
-
dataType?: string;
|
|
20
|
-
maintainRatio?: boolean;
|
|
21
|
-
changeHeight?: boolean;
|
|
22
|
-
changeWidth?: boolean;
|
|
23
|
-
}
|
|
24
|
-
export type ImageAllowedTypes = 'image/*' | '.webp' | '.png' | '.webp, .jpg, .jpeg' | '.webp, .png' | '.jpg, .jpeg' | '.png, .jpg, .jpeg' | '.webp, .png, .jpg, .jpeg';
|
|
25
|
-
export declare class
|
|
26
|
-
private _cdRef;
|
|
27
|
-
constructor(_cdRef: ChangeDetectorRef);
|
|
28
|
-
private
|
|
29
|
-
private
|
|
30
|
-
private
|
|
31
|
-
private
|
|
32
|
-
private
|
|
33
|
-
private
|
|
34
|
-
private
|
|
35
|
-
private
|
|
36
|
-
private arrayCopiedImages;
|
|
37
|
-
config: ImagePickerConf;
|
|
38
|
-
showCrop: boolean;
|
|
39
|
-
imageSrc: any;
|
|
40
|
-
loadImage: boolean;
|
|
41
|
-
uuidFilePicker: string;
|
|
42
|
-
showEditPanel: boolean;
|
|
43
|
-
quality: number;
|
|
44
|
-
format: string;
|
|
45
|
-
allFormats: string[];
|
|
46
|
-
maxHeight: number;
|
|
47
|
-
maxWidth: number;
|
|
48
|
-
cropHeight: number;
|
|
49
|
-
cropWidth: number;
|
|
50
|
-
maintainAspectRatio: boolean;
|
|
51
|
-
imageName: string;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
$
|
|
58
|
-
|
|
59
|
-
set _imageSrc(
|
|
60
|
-
set _config(value: ImagePickerConf);
|
|
61
|
-
private handleReaderLoaded;
|
|
62
|
-
private
|
|
63
|
-
private
|
|
64
|
-
private
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
|
|
2
|
+
import { MatFormFieldAppearance } from '@angular/material/form-field';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export interface ImagePickerConf {
|
|
5
|
+
width?: string;
|
|
6
|
+
height?: string;
|
|
7
|
+
borderRadius?: string;
|
|
8
|
+
compressInitial?: boolean;
|
|
9
|
+
language?: string;
|
|
10
|
+
hideDeleteBtn?: boolean;
|
|
11
|
+
hideDownloadBtn?: boolean;
|
|
12
|
+
hideEditBtn?: boolean;
|
|
13
|
+
hideAddBtn?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface ImageConverterInput {
|
|
16
|
+
width?: number;
|
|
17
|
+
height?: number;
|
|
18
|
+
quality?: number;
|
|
19
|
+
dataType?: string;
|
|
20
|
+
maintainRatio?: boolean;
|
|
21
|
+
changeHeight?: boolean;
|
|
22
|
+
changeWidth?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export type ImageAllowedTypes = 'image/*' | '.webp' | '.png' | '.webp, .jpg, .jpeg' | '.webp, .png' | '.jpg, .jpeg' | '.png, .jpg, .jpeg' | '.webp, .png, .jpg, .jpeg';
|
|
25
|
+
export declare class GuajiritosImagePicker implements OnDestroy {
|
|
26
|
+
private _cdRef;
|
|
27
|
+
constructor(_cdRef: ChangeDetectorRef);
|
|
28
|
+
private unsubscribeAll$;
|
|
29
|
+
private observer;
|
|
30
|
+
private originImageSrc;
|
|
31
|
+
private fileType;
|
|
32
|
+
private urlImage;
|
|
33
|
+
private lastOriginSrc;
|
|
34
|
+
private labelEn;
|
|
35
|
+
private labelEs;
|
|
36
|
+
private arrayCopiedImages;
|
|
37
|
+
config: ImagePickerConf;
|
|
38
|
+
showCrop: boolean;
|
|
39
|
+
imageSrc: any;
|
|
40
|
+
loadImage: boolean;
|
|
41
|
+
uuidFilePicker: string;
|
|
42
|
+
showEditPanel: boolean;
|
|
43
|
+
quality: number;
|
|
44
|
+
format: string;
|
|
45
|
+
allFormats: string[];
|
|
46
|
+
maxHeight: number;
|
|
47
|
+
maxWidth: number;
|
|
48
|
+
cropHeight: number;
|
|
49
|
+
cropWidth: number;
|
|
50
|
+
maintainAspectRatio: boolean;
|
|
51
|
+
imageName: string;
|
|
52
|
+
labels: any;
|
|
53
|
+
appearance: MatFormFieldAppearance;
|
|
54
|
+
color: 'primary' | 'warn' | 'accent';
|
|
55
|
+
imagesAllowed: ImageAllowedTypes;
|
|
56
|
+
imagePicker: ElementRef | undefined;
|
|
57
|
+
$imageChanged: EventEmitter<any>;
|
|
58
|
+
$imageOriginal: EventEmitter<any>;
|
|
59
|
+
set _imageSrc(image: string);
|
|
60
|
+
set _config(value: ImagePickerConf);
|
|
61
|
+
private handleReaderLoaded;
|
|
62
|
+
private resizeDataURL;
|
|
63
|
+
private wait;
|
|
64
|
+
private dragElement;
|
|
65
|
+
onUpload(event: {
|
|
66
|
+
preventDefault: () => void;
|
|
67
|
+
}): void;
|
|
68
|
+
handleFileSelect(evt: any): void;
|
|
69
|
+
onCloseEditPanel(): void;
|
|
70
|
+
onChangeQuality(): Promise<void>;
|
|
71
|
+
onChangeFormat(): Promise<void>;
|
|
72
|
+
onChangeSize(changeWidth?: any, changeHeight?: any): Promise<void>;
|
|
73
|
+
onChangeCrop(): void;
|
|
74
|
+
onCropStateChange(): void;
|
|
75
|
+
onCrop(type?: any): void;
|
|
76
|
+
onRestore(): void;
|
|
77
|
+
onRemove(): void;
|
|
78
|
+
ngOnDestroy(): void;
|
|
79
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GuajiritosImagePicker, never>;
|
|
80
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GuajiritosImagePicker, "guajiritos-image-picker", never, { "appearance": "appearance"; "color": "color"; "imagesAllowed": "imagesAllowed"; "_imageSrc": "_imageSrc"; "_config": "_config"; }, { "$imageChanged": "$imageChanged"; "$imageOriginal": "$imageOriginal"; }, never, never, true, never>;
|
|
81
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guajiritos/image-picker",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Guajiritos SRL",
|
|
6
6
|
"email": "cto@guajiritos.com",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
},
|
|
14
14
|
"homepage": "https://www.npmjs.com/package/guachos-image-picker",
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@angular/cdk": "
|
|
17
|
-
"@angular/common": "
|
|
18
|
-
"@angular/core": "
|
|
19
|
-
"@angular/material": "
|
|
16
|
+
"@angular/cdk": ">=15.0.0",
|
|
17
|
+
"@angular/common": ">=15.0.0",
|
|
18
|
+
"@angular/core": ">=15.0.0",
|
|
19
|
+
"@angular/material": ">=15.0.0"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"tslib": "^2.0.0"
|
package/public-api.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from './lib/guachos-image-picker.component';
|
|
2
|
-
export * from './lib/guachos-image-picker.module';
|
|
1
|
+
export * from './lib/guachos-image-picker.component';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./calculate-size.pipe";
|
|
3
|
+
export declare class CalculateSizeModule {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CalculateSizeModule, never>;
|
|
5
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CalculateSizeModule, [typeof i1.CalculateSizePipe], never, [typeof i1.CalculateSizePipe]>;
|
|
6
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CalculateSizeModule>;
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { PipeTransform } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class CalculateSizePipe implements PipeTransform {
|
|
4
|
-
transform(imageLength: number): number;
|
|
5
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CalculateSizePipe, never>;
|
|
6
|
-
static ɵpipe: i0.ɵɵPipeDeclaration<CalculateSizePipe, "calculateSize", false>;
|
|
7
|
-
}
|
|
1
|
+
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class CalculateSizePipe implements PipeTransform {
|
|
4
|
+
transform(imageLength: number): number;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CalculateSizePipe, never>;
|
|
6
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<CalculateSizePipe, "calculateSize", false>;
|
|
7
|
+
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox';
|
|
2
|
-
import { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';
|
|
3
|
-
import { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select';
|
|
4
|
-
import { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip';
|
|
5
|
-
import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';
|
|
6
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
-
import { NgModule } from '@angular/core';
|
|
8
|
-
import { CommonModule } from '@angular/common';
|
|
9
|
-
import { MatLegacySliderModule as MatSliderModule } from '@angular/material/legacy-slider';
|
|
10
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
11
|
-
import { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';
|
|
12
|
-
import { GuajiritosImagePickerComponent } from './guachos-image-picker.component';
|
|
13
|
-
import { CalculateSizePipe } from '../utils/calculate-size.pipe';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
export class GuajiritosImagePickerModule {
|
|
16
|
-
}
|
|
17
|
-
GuajiritosImagePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GuajiritosImagePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
-
GuajiritosImagePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: GuajiritosImagePickerModule, declarations: [GuajiritosImagePickerComponent, CalculateSizePipe], imports: [CommonModule,
|
|
19
|
-
MatIconModule,
|
|
20
|
-
MatButtonModule,
|
|
21
|
-
MatTooltipModule,
|
|
22
|
-
MatSliderModule,
|
|
23
|
-
FormsModule,
|
|
24
|
-
ReactiveFormsModule,
|
|
25
|
-
MatFormFieldModule,
|
|
26
|
-
MatSelectModule,
|
|
27
|
-
MatInputModule,
|
|
28
|
-
MatCheckboxModule], exports: [GuajiritosImagePickerComponent] });
|
|
29
|
-
GuajiritosImagePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GuajiritosImagePickerModule, imports: [CommonModule,
|
|
30
|
-
MatIconModule,
|
|
31
|
-
MatButtonModule,
|
|
32
|
-
MatTooltipModule,
|
|
33
|
-
MatSliderModule,
|
|
34
|
-
FormsModule,
|
|
35
|
-
ReactiveFormsModule,
|
|
36
|
-
MatFormFieldModule,
|
|
37
|
-
MatSelectModule,
|
|
38
|
-
MatInputModule,
|
|
39
|
-
MatCheckboxModule] });
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: GuajiritosImagePickerModule, decorators: [{
|
|
41
|
-
type: NgModule,
|
|
42
|
-
args: [{
|
|
43
|
-
declarations: [GuajiritosImagePickerComponent, CalculateSizePipe],
|
|
44
|
-
imports: [
|
|
45
|
-
CommonModule,
|
|
46
|
-
MatIconModule,
|
|
47
|
-
MatButtonModule,
|
|
48
|
-
MatTooltipModule,
|
|
49
|
-
MatSliderModule,
|
|
50
|
-
FormsModule,
|
|
51
|
-
ReactiveFormsModule,
|
|
52
|
-
MatFormFieldModule,
|
|
53
|
-
MatSelectModule,
|
|
54
|
-
MatInputModule,
|
|
55
|
-
MatCheckboxModule,
|
|
56
|
-
],
|
|
57
|
-
exports: [GuajiritosImagePickerComponent],
|
|
58
|
-
}]
|
|
59
|
-
}] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhY2hvcy1pbWFnZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VhY2hvcy1pbWFnZS1waWNrZXIvc3JjL2xpYi9ndWFjaG9zLWltYWdlLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixJQUFJLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakcsT0FBTyxFQUFFLG9CQUFvQixJQUFJLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsSUFBSSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRixPQUFPLEVBQUUsc0JBQXNCLElBQUksZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsSUFBSSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixJQUFJLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFckcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBbUJqRSxNQUFNLE9BQU8sMkJBQTJCOzt3SEFBM0IsMkJBQTJCO3lIQUEzQiwyQkFBMkIsaUJBaEJ2Qiw4QkFBOEIsRUFBRSxpQkFBaUIsYUFFOUQsWUFBWTtRQUNaLGFBQWE7UUFDYixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsY0FBYztRQUNkLGlCQUFpQixhQUVULDhCQUE4Qjt5SEFFN0IsMkJBQTJCLFlBZHBDLFlBQVk7UUFDWixhQUFhO1FBQ2IsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGNBQWM7UUFDZCxpQkFBaUI7MkZBSVIsMkJBQTJCO2tCQWpCdkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxpQkFBaUIsQ0FBQztvQkFDakUsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsaUJBQWlCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztpQkFDMUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRMZWdhY3lDaGVja2JveE1vZHVsZSBhcyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeUlucHV0TW9kdWxlIGFzIE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWlucHV0JztcclxuaW1wb3J0IHsgTWF0TGVnYWN5U2VsZWN0TW9kdWxlIGFzIE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lUb29sdGlwTW9kdWxlIGFzIE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeUJ1dHRvbk1vZHVsZSBhcyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lTbGlkZXJNb2R1bGUgYXMgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXNsaWRlcic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lGb3JtRmllbGRNb2R1bGUgYXMgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWZvcm0tZmllbGQnO1xyXG5cclxuaW1wb3J0IHsgR3VhamlyaXRvc0ltYWdlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9ndWFjaG9zLWltYWdlLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYWxjdWxhdGVTaXplUGlwZSB9IGZyb20gJy4uL3V0aWxzL2NhbGN1bGF0ZS1zaXplLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtHdWFqaXJpdG9zSW1hZ2VQaWNrZXJDb21wb25lbnQsIENhbGN1bGF0ZVNpemVQaXBlXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdFNsaWRlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbR3VhamlyaXRvc0ltYWdlUGlja2VyQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEd1YWppcml0b3NJbWFnZVBpY2tlck1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./guachos-image-picker.component";
|
|
3
|
-
import * as i2 from "../utils/calculate-size.pipe";
|
|
4
|
-
import * as i3 from "@angular/common";
|
|
5
|
-
import * as i4 from "@angular/material/icon";
|
|
6
|
-
import * as i5 from "@angular/material/legacy-button";
|
|
7
|
-
import * as i6 from "@angular/material/legacy-tooltip";
|
|
8
|
-
import * as i7 from "@angular/material/legacy-slider";
|
|
9
|
-
import * as i8 from "@angular/forms";
|
|
10
|
-
import * as i9 from "@angular/material/legacy-form-field";
|
|
11
|
-
import * as i10 from "@angular/material/legacy-select";
|
|
12
|
-
import * as i11 from "@angular/material/legacy-input";
|
|
13
|
-
import * as i12 from "@angular/material/legacy-checkbox";
|
|
14
|
-
export declare class GuajiritosImagePickerModule {
|
|
15
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<GuajiritosImagePickerModule, never>;
|
|
16
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<GuajiritosImagePickerModule, [typeof i1.GuajiritosImagePickerComponent, typeof i2.CalculateSizePipe], [typeof i3.CommonModule, typeof i4.MatIconModule, typeof i5.MatLegacyButtonModule, typeof i6.MatLegacyTooltipModule, typeof i7.MatLegacySliderModule, typeof i8.FormsModule, typeof i8.ReactiveFormsModule, typeof i9.MatLegacyFormFieldModule, typeof i10.MatLegacySelectModule, typeof i11.MatLegacyInputModule, typeof i12.MatLegacyCheckboxModule], [typeof i1.GuajiritosImagePickerComponent]>;
|
|
17
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<GuajiritosImagePickerModule>;
|
|
18
|
-
}
|