{"version":3,"file":"angular-14x-image-viewer.mjs","sources":["../../../projects/angular-image-viewer/src/lib/angular-image-viewer.service.ts","../../../projects/angular-image-viewer/src/lib/models/custom-image-event-model.ts","../../../projects/angular-image-viewer/src/lib/directive/full-screen.directive.ts","../../../projects/angular-image-viewer/src/lib/angular-image-viewer.component.ts","../../../projects/angular-image-viewer/src/lib/angular-image-viewer.component.html","../../../projects/angular-image-viewer/src/lib/angular-image-viewer.module.ts","../../../projects/angular-image-viewer/src/public-api.ts","../../../projects/angular-image-viewer/src/angular-14x-image-viewer.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AngularImageViewerService {\n\n  constructor() { }\n}\n","export class CustomImageEvent {\n    name: string;\n    imageIndex: number;\n  \n    constructor(name:any, imageIndex:any) {\n      this.name = name;\n      this.imageIndex = imageIndex;\n    }\n  }","import { Directive, ElementRef, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Directive({\n  selector: '[appScreenfull]'\n})\nexport class FullScreenDirective implements OnChanges {\n  @Input(\"appScreenfull\") fullscreenState!: boolean;\n  constructor(private el: ElementRef) { }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!changes[\"fullscreenState\"].isFirstChange()) {\n      if (this.fullscreenState) {\n        const element: any = this.el.nativeElement;\n        const requestMethod =\n          element.requestFullscreen ||\n          element.webkitRequestFullScreen ||\n          element.mozRequestFullScreen ||\n          element.msRequestFullScreen;\n\n        if (requestMethod) {\n          // Native full screen.\n          return requestMethod.call(element);\n          \n        } else {\n          return null;\n        }\n      } else {\n        const element: any = document;\n        const requestMethod =\n          element.cancelFullscreen ||\n          element.webkitExitFullscreen ||\n          element.webkitCancelFullScreen ||\n          element.mozCancelFullScreen ||\n          element.msExitFullScreen;\n\n        if (requestMethod) {\n          // Native Cancel full screen.\n          return requestMethod.call(element);\n          \n        } else {\n          return null;\n        }\n      }\n    }\n  }\n\n}\n","import { Component, EventEmitter, HostListener, Inject, Input, OnChanges, OnInit, Optional, Output, SimpleChanges } from '@angular/core';\nimport { ImageViewerConfig } from './models/image-viewer-config.model';\nimport { CustomImageEvent } from './models/custom-image-event-model';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nconst DEFAULT_CONFIG: ImageViewerConfig = {\n  btnClass: \"default\",\n  zoomFactor: 0.1,\n  containerBackgroundColor: \"#ccc\",\n  wheelZoom: false,\n  allowFullscreen: true,\n  allowKeyboardNavigation: true,\n  btnShow: {\n    zoomIn: true,\n    zoomOut: true,\n    rotateClockwise: true,\n    rotateCounterClockwise: true,\n    next: true,\n    prev: true,\n  },\n  btnIcons: {\n    zoomIn: \"fa-solid fa-plus\",\n    zoomOut: \"fa-solid fa-minus\",\n    rotateClockwise: \"fa-solid fa-arrow-rotate-right\",\n    rotateCounterClockwise: \"fa-solid fa-arrow-rotate-left\",\n    next: \"fa-solid fa-arrow-right\",\n    prev: \"fa-solid fa-arrow-left\",\n    fullscreen: \"fa-solid fa-up-right-and-down-left-from-center\",\n    menu: 'fa-solid fa-ellipsis-vertical'\n  },\n};\n\n@Component({\n  selector: 'angular-11-image-viewer',\n  templateUrl: './angular-image-viewer.component.html',\n  styleUrls: ['./angular-image-viewer.component.scss']\n})\nexport class AngularImageViewerComponent implements OnInit, OnChanges {\n  @Input()\n  src!: string[];\n\n  @Input()\n  screenHeightOccupied!: 0; // In Px\n\n  @Input()\n  index = 0;\n\n  @Input()\n  config!: ImageViewerConfig;\n\n  @Output()\n  indexChange: EventEmitter<number> = new EventEmitter();\n\n  @Output()\n  configChange: EventEmitter<ImageViewerConfig> = new EventEmitter();\n\n  @Output()\n  customImageEvent: EventEmitter<CustomImageEvent> = new EventEmitter();\n  \n  @Output()\n  delete: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  view: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  replace: EventEmitter<any> = new EventEmitter();\n\n  styleHeight = \"98vh\";\n\n  public style = {\n    transform: \"\",\n    msTransform: \"\",\n    oTransform: \"\",\n    webkitTransform: \"\",\n  };\n  public showButtons: boolean = false;\n  public fullscreen = false;\n  private scale = 1;\n  private rotation = 0;\n  private translateX = 0;\n  private translateY = 0;\n  private prevX!: number;\n  private prevY!: number;\n  private hovered = false;\n  public hidebutton = false\n\n  constructor(\n    @Optional() @Inject(\"config\") public moduleConfig: ImageViewerConfig,\n    private sanitizer: DomSanitizer\n  ) { }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes?.['screenHeightOccupied']) {\n      this.styleHeight = \"calc(98vh - \" + this.screenHeightOccupied + \"px)\";\n    }\n  }\n\n  ngOnInit() {\n    const merged = this.mergeConfig(DEFAULT_CONFIG, this.moduleConfig);\n    this.config = this.mergeConfig(merged, this.config);\n    this.triggerConfigBinding();\n  }\n\n  @HostListener(\"window:keyup.ArrowRight\", [\"$event\"])\n  nextImage(event:any) {\n    if (this.canNavigate(event) && this.index < this.src.length - 1) {\n      this.index++;\n      this.triggerIndexBinding();\n      this.reset();\n    }\n  }\n\n  @HostListener(\"window:keyup.ArrowLeft\", [\"$event\"])\n  prevImage(event:any) {\n    if (this.canNavigate(event) && this.index > 0) {\n      this.index--;\n      this.triggerIndexBinding();\n      this.reset();\n    }\n  }\n\n  zoomIn() {\n    if(this.config.zoomFactor != undefined){\n    this.scale *= 1 + this.config.zoomFactor;\n    }\n    this.updateStyle();\n  }\n\n  zoomOut() {\n    if(this.config.zoomFactor != undefined){\n    if (this.scale > this.config.zoomFactor) {\n      this.scale /= 1 + this.config.zoomFactor;\n    }\n  }\n    this.updateStyle();\n\n  }\n\n  scrollZoom(evt:any) {\n    if (this.config.wheelZoom) {\n      evt.deltaY > 0 ? this.zoomOut() : this.zoomIn();\n      return false;\n    }else{\n      return true;\n    }\n    \n  }\n\n  rotateClockwise() {\n    this.rotation += 90;\n    this.updateStyle();\n  }\n\n  rotateCounterClockwise() {\n    this.rotation -= 90;\n    this.updateStyle();\n  }\n\n  onLoad(url:any) {\n    setInterval(() => {\n      this.showButtons = true;\n    }, 700);\n  }\n\n  onLoadStart(url:any) {\n    // this.showButtons = false\n  }\n\n  onLoadEnd(url:any) {\n    // this.showButtons = true;\n  }\n\n  imageNotFound(url:any) {\n    // this.showButtons = false\n  }\n\n  onDragOver(evt:any) {\n    this.translateX += evt.clientX - this.prevX;\n    this.translateY += evt.clientY - this.prevY;\n    this.prevX = evt.clientX;\n    this.prevY = evt.clientY;\n    this.updateStyle();\n  }\n\n  onDragStart(evt:any) {\n    if (evt.dataTransfer && evt.dataTransfer.setDragImage) {\n      evt.dataTransfer.setDragImage(evt.target.nextElementSibling, 0, 0);\n    }\n    this.prevX = evt.clientX;\n    this.prevY = evt.clientY;\n  }\n\n  toggleFullscreen() {\n    this.fullscreen = !this.fullscreen;\n    if (!this.fullscreen) {\n      this.reset();\n    }\n  }\n\n  triggerIndexBinding() {\n    this.indexChange.emit(this.index);\n  }\n\n  triggerConfigBinding() {\n    this.configChange.next(this.config);\n  }\n\n  fireCustomEvent(name:any, imageIndex:any) {\n    this.customImageEvent.emit(new CustomImageEvent(name, imageIndex));\n  }\n\n  reset() {\n    this.scale = 1;\n    this.rotation = 0;\n    this.translateX = 0;\n    this.translateY = 0;\n    this.updateStyle();\n  }\n\n  @HostListener(\"mouseover\")\n  onMouseOver() {\n    this.hovered = true;\n  }\n\n  @HostListener(\"mouseleave\")\n  onMouseLeave() {\n    this.hovered = false;\n  }\n\n  viewFile(){\n    this.view.emit(true);\n  }\n\n  deleteFile(){\n    this.delete.emit(true);\n  }\n\n  replaceFile(){\n    this.replace.emit(true);\n  }\n\n  private canNavigate(event: any) {\n    return (\n      event == null || (this.config.allowKeyboardNavigation && this.hovered)\n    );\n  }\n\n  private updateStyle() {\n    this.style.transform = `translate(${this.translateX}px, ${this.translateY}px) rotate(${this.rotation}deg) scale(${this.scale})`;\n    this.style.msTransform = this.style.transform;\n    this.style.webkitTransform = this.style.transform;\n    this.style.oTransform = this.style.transform;\n  }\n\n  private mergeConfig(\n    defaultValues: ImageViewerConfig,\n    overrideValues: ImageViewerConfig\n  ): ImageViewerConfig {\n    let result: ImageViewerConfig = { ...defaultValues };\n    if (overrideValues) {\n      result = { ...defaultValues, ...overrideValues };\n\n      if (overrideValues.btnIcons) {\n        result.btnIcons = {\n          ...defaultValues.btnIcons,\n          ...overrideValues.btnIcons,\n        };\n      }\n    }\n    return result;\n  }\n}\n","<div\n  [appScreenfull]=\"fullscreen\"\n  class=\"img-container\"\n  style=\"background-color: inherit\"\n  (wheel)=\"scrollZoom($event)\"\n  (dragover)=\"onDragOver($event)\"\n>\n  <img\n    [src]=\"src[index]\"\n    [ngStyle]=\"style\"\n    alt=\" \"\n    (dragstart)=\"onDragStart($event)\"\n    (load)=\"onLoad(src[index])\"\n    (error)=\"imageNotFound(src[index])\"\n    (loadstart)=\"onLoadStart(src[index])\"\n    (loadend)=\"onLoadEnd(src[index])\"\n  />\n  <!-- Div below will be used to hide the 'ghost' image when dragging -->\n  <div></div>\n  <ng-container *ngIf=\"showButtons\">\n    <div class=\"nav-button-container\">\n      <button\n        type=\"button\"\n        [class]=\"config?.btnClass\"\n        *ngIf=\"config?.btnShow?.zoomIn\"\n        (click)=\"zoomIn()\"\n      >\n        <span [class]=\"config?.btnIcons?.zoomIn\"></span>\n      </button>\n      <button\n        type=\"button\"\n        [class]=\"config?.btnClass\"\n        *ngIf=\"config?.btnShow?.zoomOut\"\n        (click)=\"zoomOut()\"\n      >\n        <span [class]=\"config?.btnIcons?.zoomOut\"></span>\n      </button>\n      <button\n        type=\"button\"\n        [class]=\"config?.btnClass\"\n        *ngIf=\"config?.btnShow?.rotateCounterClockwise\"\n        (click)=\"rotateCounterClockwise()\"\n      >\n        <span [class]=\"config?.btnIcons?.rotateCounterClockwise\"></span>\n      </button>\n      <button\n        type=\"button\"\n        [class]=\"config?.btnClass\"\n        *ngIf=\"config?.btnShow?.rotateClockwise\"\n        (click)=\"rotateClockwise()\"\n      >\n        <span [class]=\"config?.btnIcons?.rotateClockwise\"></span>\n      </button>\n\n      <button\n        type=\"button\"\n        id=\"ngx-fs-btn\"\n        [class]=\"config?.btnClass\"\n        (click)=\"toggleFullscreen()\"\n        *ngIf=\"config?.allowFullscreen\"\n      >\n        <span [class]=\"config?.btnIcons?.fullscreen\"></span>\n      </button>\n      <span class=\"dropup\">\n      <button\n        type=\"button\"\n        id=\"ngx-fs-btn\"\n        class=\"dropup\"\n        [class]=\"config?.btnClass\"\n        data-toggle=\"dropdown\"\n        *ngIf=\"config?.btnShow?.menu\"\n      >\n        <span [class]=\"config?.btnIcons?.menu\"></span>\n      </button>\n      <ul class=\"dropdown-menu custom-dropdown\">\n        <li class=\"dropdown-item\" (click)=\"deleteFile()\">\n          <i class=\"fa-solid fa-trash\"></i>\n          Delete</li>\n        <li class=\"dropdown-item\" (click)=\"viewFile()\">\n          <i class=\"fa-solid fa-eye\"></i>\n          View</li>\n        <li class=\"dropdown-item\" (click)=\"replaceFile()\">\n          <i class=\"fa-solid fa-arrow-right-arrow-left\"></i>\n          Replace</li>\n      </ul>\n    </span>\n\n      <button\n      type=\"button\"\n      [class]=\"config?.btnClass\"\n      *ngFor=\"let cBtn of config?.customBtns\"\n      (click)=\"fireCustomEvent(cBtn.name, index)\"\n    >\n      <span [class]=\"cBtn?.icon\"></span>\n    </button>\n    </div>\n    <!-- <div class=\"nav-button-container\" *ngIf=\"src.length > 1\">\n      <button\n        type=\"button\"\n        [class]=\"config.btnClass\"\n        (click)=\"prevImage($event)\"\n        [disabled]=\"index === 0\"\n      >\n        <span [class]=\"config.btnIcons.prev\"></span>\n      </button>\n      <button\n        type=\"button\"\n        [class]=\"config.btnClass\"\n        (click)=\"nextImage($event)\"\n        [disabled]=\"index === src.length - 1\"\n      >\n        <span [class]=\"config.btnIcons.next\"></span>\n      </button>\n    </div> -->\n  </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { AngularImageViewerComponent } from './angular-image-viewer.component';\nimport { FullScreenDirective } from './directive/full-screen.directive';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n  declarations: [\n    AngularImageViewerComponent,\n    FullScreenDirective\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    AngularImageViewerComponent\n  ]\n})\nexport class AngularImageViewerModule { }\n","/*\n * Public API Surface of angular-image-viewer\n */\n\nexport * from './lib/angular-image-viewer.service';\nexport * from './lib/angular-image-viewer.component';\nexport * from './lib/angular-image-viewer.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.FullScreenDirective"],"mappings":"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"}