{"version":3,"file":"ngx-default-image.mjs","sources":["../../../projects/ngx-default-image/src/lib/ngx-default-image.service.ts","../../../projects/ngx-default-image/src/lib/ngx-default-image.component.ts","../../../projects/ngx-default-image/src/lib/ngx-default-image.directive.ts","../../../projects/ngx-default-image/src/public-api.ts","../../../projects/ngx-default-image/src/ngx-default-image.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxDefaultImageService {\n\n  constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'lib-ngx-default-image',\n    template: `\n    <p>\n      ngx-default-image works!\n    </p>\n  `,\n    styles: [],\n    standalone: true\n})\nexport class NgxDefaultImageComponent {\n\n}\n","import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\nimport { META } from './META';\n\n@Directive({\n    selector: '[NgxDefaultImage]',\n    standalone: true\n})\nexport class NgxDefaultImageDirective {\n\n  @Input() imageURL = \"\";\n  private imageElement: HTMLImageElement;\n  @Output() imageMetaInfo: EventEmitter<META> = new EventEmitter<META>();\n\n  public imageMeta: META = {\n    isValidImage: false,\n    aspectRatio: \"1\",\n    x: 0,\n    y: 0,\n    rwidth: 0,\n    rheight: 0,\n    renderTime: 0,\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    datedOn: {\n      loadedOn: 0,\n      renderedOn: 0,\n      renderTime: 0\n    },\n    width: 0,\n    height: 0,\n    src: \"\",\n    esrc: \"\",\n    alt: \"\",\n    crossorigin: \"\"\n  };\n\n  constructor(private el: ElementRef) {\n    this.imageElement = this.el.nativeElement as HTMLImageElement;\n    let image = new Image();\n    this.imageMeta.datedOn = {\n      loadedOn: new Date().getTime(),\n      renderedOn: new Date().getTime(),\n      renderTime: 0\n    };\n    let canvas = document.createElement(\"canvas\") as HTMLCanvasElement;\n    let ctx = canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n    image.onload = (event) => {\n      ctx.drawImage(image, 0, 0); // draw in image\n      this.imageMeta.datedOn.renderedOn = new Date().getTime();\n      this.imageMeta.datedOn.renderTime =\n        this.imageMeta.datedOn.renderedOn - this.imageMeta.datedOn.loadedOn;\n      this.getImageMeta(event, true);\n    };\n\n    image.onerror = (event) => {\n      this.getImageMeta(event, false);\n      this.imageElement.setAttribute(\"src\", this.imageURL);\n    };\n\n    image.src = this.imageElement.getAttribute(\"src\") || \"\";\n  }\n\n  public getImageMeta(event: any, isValidImage: boolean) {\n    let boundingRect: DOMRect = this.imageElement.getBoundingClientRect();\n    let img: HTMLImageElement = this.imageElement;\n    this.imageMeta = {\n      isValidImage: isValidImage,\n      aspectRatio: (boundingRect.width / boundingRect.height).toPrecision(2),\n      x: boundingRect.x,\n      y: boundingRect.y,\n      rwidth: boundingRect.width,\n      rheight: boundingRect.height,\n      renderTime: this.imageMeta.datedOn.renderTime,\n      top: boundingRect.top,\n      right: boundingRect.right,\n      bottom: boundingRect.bottom,\n      left: boundingRect.left,\n      datedOn: this.imageMeta.datedOn,\n      width: event.target.width,\n      height: event.target.height,\n      src: event.target.src,\n      esrc: this.imageURL,\n      alt: event.target.alt,\n      crossorigin: img.getAttribute(\"crossorigin\") || ''\n    };\n    this.imageMetaInfo.emit(this.imageMeta);\n  }\n\n  public calculateAspectRatio(width : number, height: number) {\n    return width / height;\n  }\n}\n","/*\n * Public API Surface of ngx-default-image\n */\n\nexport * from './lib/ngx-default-image.service';\nexport * from './lib/ngx-default-image.component';\n\nexport * from './lib/ngx-default-image.directive';\nexport * from './lib/META';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}