{"version":3,"file":"legacy-angular-x-image-viewer.mjs","sources":["../../../projects/angular-image-viewer/src/lib/models/custom-image-event-model.ts","../../../projects/angular-image-viewer/src/lib/directives/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/legacy-angular-x-image-viewer.ts"],"sourcesContent":["export class CustomImageEvent {\r\n    name: string;\r\n    imageIndex: number;\r\n\r\n    constructor(name, imageIndex) {\r\n        this.name = name;\r\n        this.imageIndex = imageIndex;\r\n    }\r\n}\r\n","import {\r\n  Directive,\r\n  Input,\r\n  ElementRef,\r\n  OnChanges,\r\n  OnInit,\r\n  SimpleChanges,\r\n} from '@angular/core';\r\n// import * as screenfull from 'screenfull';\r\n\r\n@Directive({\r\n  selector: '[appScreenfull]',\r\n  standalone: false,\r\n})\r\nexport class FullScreenDirective implements OnChanges, OnInit {\r\n  @Input('appScreenfull') fullscreenState: boolean;\r\n\r\n  constructor(private el: ElementRef) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    console.log(\r\n      'fullscreenState isFirstChange:',\r\n      changes['fullscreenState'].isFirstChange()\r\n    );\r\n    console.log('fullscreenState', this.fullscreenState);\r\n    // if (screenfull.isEnabled) {\r\n    //   screenfull.toggle(this.el.nativeElement);\r\n    // }\r\n    // if (this.fullscreenState && screenfull.isEnabled) {\r\n    //   screenfull.request(this.el.nativeElement);\r\n    // } else if (screenfull.isEnabled) {\r\n    //   screenfull.exit();\r\n    // }\r\n\r\n    // tslint:disable-next-line: no-string-literal\r\n    if (!changes['fullscreenState'].isFirstChange()) {\r\n      if (this.fullscreenState) {\r\n        const element: any = this.el.nativeElement;\r\n\r\n        // tslint:disable-next-line: max-line-length\r\n        const requestMethod =\r\n          element.requestFullscreen ||\r\n          element.webkitRequestFullScreen ||\r\n          element.mozRequestFullScreen ||\r\n          element.msRequestFullScreen;\r\n\r\n        if (requestMethod) {\r\n          // Native full screen.\r\n          requestMethod.call(element);\r\n        } else {\r\n          console.log(\r\n            'FullScreen Request Method Not Supported on this browser.'\r\n          );\r\n        }\r\n      } else {\r\n        const element: any = document;\r\n\r\n        // tslint:disable-next-line: max-line-length\r\n        const requestMethod =\r\n          element.cancelFullscreen ||\r\n          element.webkitExitFullscreen ||\r\n          element.webkitCancelFullScreen ||\r\n          element.mozCancelFullScreen ||\r\n          element.msExitFullScreen;\r\n\r\n        if (requestMethod) {\r\n          // Native Cancel full screen.\r\n          requestMethod.call(element);\r\n        } else {\r\n          console.log(\r\n            'FullScreen Cancel Request Method Not Supported on this browser.'\r\n          );\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  HostListener,\r\n  Optional,\r\n  Inject,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  OnChanges,\r\n  SimpleChanges,\r\n} from '@angular/core';\r\nimport { ImageViewerConfig } from './models/image-viewer-config.model';\r\nimport { CustomImageEvent } from './models/custom-image-event-model';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nconst DEFAULT_CONFIG: ImageViewerConfig = {\r\n  btnClass: 'default',\r\n  zoomFactor: 0.1,\r\n  containerBackgroundColor: '#ccc',\r\n  wheelZoom: false,\r\n  allowFullscreen: true,\r\n  allowKeyboardNavigation: true,\r\n  btnShow: {\r\n    zoomIn: true,\r\n    zoomOut: true,\r\n    rotateClockwise: true,\r\n    rotateCounterClockwise: true,\r\n    next: true,\r\n    prev: true,\r\n  },\r\n  btnIcons: {\r\n    zoomIn: 'fa fa-plus',\r\n    zoomOut: 'fa fa-minus',\r\n    rotateClockwise: 'fa fa-repeat',\r\n    rotateCounterClockwise: 'fa fa-undo',\r\n    next: 'fa fa-arrow-right',\r\n    prev: 'fa fa-arrow-left',\r\n    fullscreen: 'fa fa-arrows-alt',\r\n  },\r\n};\r\n\r\n@Component({\r\n  selector: 'angular-image-viewer',\r\n  templateUrl: './angular-image-viewer.component.html',\r\n  styleUrls: ['./angular-image-viewer.component.scss'],\r\n  standalone: false,\r\n})\r\nexport class AngularImageViewerComponent implements OnInit, OnChanges {\r\n  @Input()\r\n  src: string[];\r\n\r\n  @Input()\r\n  screenHeightOccupied: 0; // In Px\r\n\r\n  @Input()\r\n  index = 0;\r\n\r\n  @Input()\r\n  config: ImageViewerConfig;\r\n\r\n  @Output()\r\n  indexChange: EventEmitter<number> = new EventEmitter();\r\n\r\n  @Output()\r\n  configChange: EventEmitter<ImageViewerConfig> = new EventEmitter();\r\n\r\n  @Output()\r\n  customImageEvent: EventEmitter<CustomImageEvent> = new EventEmitter();\r\n\r\n  styleHeight = '98vh';\r\n\r\n  public style = {\r\n    transform: '',\r\n    msTransform: '',\r\n    oTransform: '',\r\n    webkitTransform: '',\r\n  };\r\n  public fullscreen = false;\r\n  public loading = true;\r\n  private scale = 1;\r\n  private rotation = 0;\r\n  private translateX = 0;\r\n  private translateY = 0;\r\n  private prevX: number;\r\n  private prevY: number;\r\n  private hovered = false;\r\n\r\n  constructor(\r\n    @Optional() @Inject('config') public moduleConfig: ImageViewerConfig,\r\n    private sanitizer: DomSanitizer\r\n  ) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes.screenHeightOccupied) {\r\n      this.styleHeight = 'calc(98vh - ' + this.screenHeightOccupied + 'px)';\r\n      // console.log('Style Height:', this.styleHeight);\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    const merged = this.mergeConfig(DEFAULT_CONFIG, this.moduleConfig);\r\n    this.config = this.mergeConfig(merged, this.config);\r\n    this.triggerConfigBinding();\r\n  }\r\n\r\n  @HostListener('window:keyup.ArrowRight', ['$event'])\r\n  nextImage(event) {\r\n    if (this.canNavigate(event) && this.index < this.src.length - 1) {\r\n      this.loading = true;\r\n      this.index++;\r\n      this.triggerIndexBinding();\r\n      this.reset();\r\n    }\r\n  }\r\n\r\n  @HostListener('window:keyup.ArrowLeft', ['$event'])\r\n  prevImage(event) {\r\n    if (this.canNavigate(event) && this.index > 0) {\r\n      this.loading = true;\r\n      this.index--;\r\n      this.triggerIndexBinding();\r\n      this.reset();\r\n    }\r\n  }\r\n\r\n  zoomIn() {\r\n    this.scale *= 1 + this.config.zoomFactor;\r\n    this.updateStyle();\r\n  }\r\n\r\n  zoomOut() {\r\n    if (this.scale > this.config.zoomFactor) {\r\n      this.scale /= 1 + this.config.zoomFactor;\r\n    }\r\n    this.updateStyle();\r\n  }\r\n\r\n  scrollZoom(evt) {\r\n    if (this.config.wheelZoom) {\r\n      evt.deltaY > 0 ? this.zoomOut() : this.zoomIn();\r\n      return false;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  rotateClockwise() {\r\n    this.rotation += 90;\r\n    this.updateStyle();\r\n  }\r\n\r\n  rotateCounterClockwise() {\r\n    this.rotation -= 90;\r\n    this.updateStyle();\r\n  }\r\n\r\n  onLoad(url) {\r\n    console.log('Loading Image Done:', url);\r\n    this.loading = false;\r\n  }\r\n\r\n  onLoadStart(url) {\r\n    console.log('Loading Image:', url);\r\n    this.loading = true;\r\n  }\r\n\r\n  imageNotFound(url) {\r\n    console.log('Image not found Url:', url);\r\n  }\r\n\r\n  onDragOver(evt) {\r\n    this.translateX += evt.clientX - this.prevX;\r\n    this.translateY += evt.clientY - this.prevY;\r\n    this.prevX = evt.clientX;\r\n    this.prevY = evt.clientY;\r\n    this.updateStyle();\r\n  }\r\n\r\n  onDragStart(evt) {\r\n    if (evt.dataTransfer && evt.dataTransfer.setDragImage) {\r\n      evt.dataTransfer.setDragImage(evt.target.nextElementSibling, 0, 0);\r\n    }\r\n    this.prevX = evt.clientX;\r\n    this.prevY = evt.clientY;\r\n  }\r\n\r\n  toggleFullscreen() {\r\n    this.fullscreen = !this.fullscreen;\r\n    if (!this.fullscreen) {\r\n      this.reset();\r\n    }\r\n  }\r\n\r\n  triggerIndexBinding() {\r\n    this.indexChange.emit(this.index);\r\n  }\r\n\r\n  triggerConfigBinding() {\r\n    this.configChange.next(this.config);\r\n  }\r\n\r\n  fireCustomEvent(name, imageIndex) {\r\n    this.customImageEvent.emit(new CustomImageEvent(name, imageIndex));\r\n  }\r\n\r\n  reset() {\r\n    this.scale = 1;\r\n    this.rotation = 0;\r\n    this.translateX = 0;\r\n    this.translateY = 0;\r\n    this.updateStyle();\r\n  }\r\n\r\n  @HostListener('mouseover')\r\n  onMouseOver() {\r\n    this.hovered = true;\r\n  }\r\n\r\n  @HostListener('mouseleave')\r\n  onMouseLeave() {\r\n    this.hovered = false;\r\n  }\r\n\r\n  private canNavigate(event: any) {\r\n    return (\r\n      event == null || (this.config.allowKeyboardNavigation && this.hovered)\r\n    );\r\n  }\r\n\r\n  private updateStyle() {\r\n    this.style.transform = `translate(${this.translateX}px, ${this.translateY}px) rotate(${this.rotation}deg) scale(${this.scale})`;\r\n    this.style.msTransform = this.style.transform;\r\n    this.style.webkitTransform = this.style.transform;\r\n    this.style.oTransform = this.style.transform;\r\n  }\r\n\r\n  private mergeConfig(\r\n    defaultValues: ImageViewerConfig,\r\n    overrideValues: ImageViewerConfig\r\n  ): ImageViewerConfig {\r\n    let result: ImageViewerConfig = { ...defaultValues };\r\n    if (overrideValues) {\r\n      result = { ...defaultValues, ...overrideValues };\r\n\r\n      if (overrideValues.btnIcons) {\r\n        result.btnIcons = {\r\n          ...defaultValues.btnIcons,\r\n          ...overrideValues.btnIcons,\r\n        };\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n}\r\n","<div [appScreenfull]=\"fullscreen\" class=\"img-container\" [style.height]=\"styleHeight\"\r\n    [style.backgroundColor]=\"config.containerBackgroundColor\" (wheel)=\"scrollZoom($event)\"\r\n    (dragover)=\"onDragOver($event)\">\r\n    <img [src]=\"src[index]\" [ngStyle]=\"style\" alt=\"Image not found...\" (dragstart)=\"onDragStart($event)\"\r\n        (load)=\"onLoad(src[index])\" (error)=\"imageNotFound(src[index])\" (loadstart)=\"onLoadStart(src[index])\" />\r\n    <!-- Div below will be used to hide the 'ghost' image when dragging -->\r\n    <div></div>\r\n    <div class=\"spinner-container\" *ngIf=\"loading\">\r\n        <div class=\"spinner\"></div>\r\n    </div>\r\n\r\n    <button type=\"button\" [class]=\"config.btnClass\" *ngIf=\"config.btnShow.rotateCounterClockwise\"\r\n        (click)=\"rotateCounterClockwise()\">\r\n        <span [class]=\"config.btnIcons.rotateCounterClockwise\"></span>\r\n    </button>\r\n    <button type=\"button\" [class]=\"config.btnClass\" *ngIf=\"config.btnShow.rotateClockwise\" (click)=\"rotateClockwise()\">\r\n        <span [class]=\"config.btnIcons.rotateClockwise\"></span>\r\n    </button>\r\n\r\n    <button type=\"button\" [class]=\"config.btnClass\" *ngIf=\"config.btnShow.zoomOut\" (click)=\"zoomOut()\">\r\n        <span [class]=\"config.btnIcons.zoomOut\"></span>\r\n    </button>\r\n    <button type=\"button\" [class]=\"config.btnClass\" *ngIf=\"config.btnShow.zoomIn\" (click)=\"zoomIn()\">\r\n        <span [class]=\"config.btnIcons.zoomIn\"></span>\r\n    </button>\r\n\r\n    <button type=\"button\" [class]=\"config.btnClass\" *ngFor=\"let cBtn of config.customBtns\"\r\n        (click)=\"fireCustomEvent(cBtn.name, index)\">\r\n        <span [class]=\"cBtn.icon\"></span>\r\n    </button>\r\n\r\n    <button type=\"button\" id=\"ngx-fs-btn\" [class]=\"config.btnClass\" (click)=\"toggleFullscreen()\"\r\n        *ngIf=\"config.allowFullscreen\">\r\n        <span [class]=\"config.btnIcons.fullscreen\"></span>\r\n    </button>\r\n\r\n    <div class=\"nav-button-container\" *ngIf=\"src.length > 1\">\r\n        <button type=\"button\" [class]=\"config.btnClass\" (click)=\"prevImage($event)\" [disabled]=\"index === 0\">\r\n            <span [class]=\"config.btnIcons.prev\"></span>\r\n        </button>\r\n        <button type=\"button\" [class]=\"config.btnClass\" (click)=\"nextImage($event)\"\r\n            [disabled]=\"index === src.length - 1\">\r\n            <span [class]=\"config.btnIcons.next\"></span>\r\n        </button>\r\n    </div>\r\n</div>","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n// import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { AngularImageViewerComponent } from './angular-image-viewer.component';\r\nimport { FullScreenDirective } from './directives/full-screen.directive';\r\n// import { ImageViewerConfig } from 'dist/angular-image-viewer/public-api';\r\n\r\n@NgModule({\r\n\tdeclarations: [AngularImageViewerComponent, FullScreenDirective],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule\r\n\t\t// BrowserAnimationsModule\r\n\t],\r\n\texports: [AngularImageViewerComponent, FullScreenDirective]\r\n})\r\nexport class AngularImageViewerModule {\r\n\t/**\r\n\t * forRoot\r\n\t * @returns A module with its provider dependencies\r\n\t */\r\n\t// static forRoot(imageViewerConfig: ImageViewerConfig): ModuleWithProviders {\r\n\t//   return {\r\n\t//     ngModule: AngularImageViewerModule,\r\n\t//     providers: [\r\n\t//       {\r\n\t//         provide: imageViewerConfig,\r\n\t//         useValue: imageViewerConfig\r\n\t//       }\r\n\t//     ]\r\n\t//   };\r\n\t// }\r\n}\r\n","/*\r\n * Public API Surface of angular-image-viewer\r\n */\r\n\r\nexport * from './lib/angular-image-viewer.module';\r\nexport { AngularImageViewerComponent } from './lib/angular-image-viewer.component';\r\nexport * from './lib/models/image-viewer-config.model';\r\nexport { CustomImageEvent } from './lib/models/custom-image-event-model';\r\nexport { FullScreenDirective } from './lib/directives/full-screen.directive';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.FullScreenDirective"],"mappings":"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"}