{"version":3,"file":"t.simon-ionic-image-viewer.mjs","sources":["../../../libs/ngx-ionic-image-viewer/src/lib/ngx-ionic-image-viewer.service.ts","../../../libs/ngx-ionic-image-viewer/src/lib/viewer-modal/viewer-modal.component.ts","../../../libs/ngx-ionic-image-viewer/src/lib/viewer-modal/viewer-modal.component.html","../../../libs/ngx-ionic-image-viewer/src/lib/ngx-ionic-image-viewer.component.ts","../../../libs/ngx-ionic-image-viewer/src/lib/ngx-ionic-image-viewer.component.html","../../../libs/ngx-ionic-image-viewer/src/lib/ngx-ionic-image-viewer.directive.ts","../../../libs/ngx-ionic-image-viewer/src/lib/ngx-ionic-image-viewer.module.ts","../../../libs/ngx-ionic-image-viewer/src/public-api.ts","../../../libs/ngx-ionic-image-viewer/t.simon-ionic-image-viewer.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxIonicImageViewerService {\n\n  constructor() { }\n}\n","import {Component, OnInit, Input, ViewChild, ElementRef} from '@angular/core';\nimport {ModalController} from '@ionic/angular';\n\n@Component({\n  selector: 'ion-viewer-modal',\n  templateUrl: './viewer-modal.component.html',\n  styleUrls: ['./viewer-modal.component.scss'],\n})\nexport class ViewerModalComponent implements OnInit {\n  // tslint:disable: no-inferrable-types\n  @Input() alt?: string = '';\n  @Input() scheme?: string = 'auto';\n  @Input() slideOptions?: object = {};\n  @Input() src!: string;\n  @Input() srcFallback?: string = '';\n  @Input() srcHighRes?: string = '';\n  @Input() swipeToClose?: boolean = true;\n  @Input() text?: string = '';\n  @Input() title?: string = '';\n  @Input() titleSize?: string = '';\n  // tslint:enable: no-inferrable-types\n\n  defaultSlideOptions = {\n    zoom: {\n      enabled: true,\n    },\n  };\n\n  options = {};\n\n  swipeState = {\n    phase: 'init',\n    direction: 'none',\n    swipeType: 'none',\n    startX: 0,\n    startY: 0,\n    distance: 0,\n    distanceX: 0,\n    distanceY: 0,\n    threshold: 150, // required min distance traveled to be considered swipe\n    restraint: 100, // maximum distance allowed at the same time in perpendicular direction\n    allowedTime: 500, // maximum time allowed to travel that distance\n    elapsedTime: 0,\n    startTime: 0,\n  };\n\n\n  @ViewChild('swiper') swiperRef: ElementRef | undefined;\n\n  // @ViewChild('sliderRef', { static: true }) slides!: IonSlides;\n\n  constructor(private modalController: ModalController) {\n  }\n\n  async ngOnInit() {\n    this.options = {...this.defaultSlideOptions, ...this.slideOptions};\n    this.src = this.srcHighRes || this.src;\n    this.setStyle();\n    this.setScheme(this.scheme);\n    this.initSwipeToClose(this.swipeToClose);\n\n    /**\n     * Current Workaround\n     * See reported bug: https://github.com/ionic-team/ionic/issues/19638#issuecomment-584828315\n     * Hint: Comment in '<ion-slide>' in component\n     */\n  }\n\n  setStyle() {\n    const el: HTMLElement | null = document.querySelector('.ion-img-viewer');\n    el?.style.setProperty('--height', '100%');\n    el?.style.setProperty('--width', '100%');\n    el?.style.setProperty('--border-radius', '0');\n  }\n\n  setScheme(scheme: string | undefined) {\n    if (scheme && scheme === 'auto') {\n      return;\n    }\n\n    const el: HTMLElement | null = document.querySelector('.ion-img-viewer');\n\n    if (this.scheme === 'light') {\n      el?.style.setProperty('--ion-background-color', '#ffffff');\n      el?.style.setProperty('--ion-background-color-rgb', '255, 255, 255');\n      el?.style.setProperty('--ion-text-color', '#000');\n      el?.style.setProperty('--ion-text-color-rgb', '0,0,0');\n    }\n\n    if (this.scheme === 'dark') {\n      if (el?.classList.contains('ios')) {\n        el?.style.setProperty('--ion-background-color', '#000000');\n        el?.style.setProperty('--ion-background-color-rgb', '0, 0, 0');\n      } else {\n        el?.style.setProperty('--ion-background-color', '#121212');\n        el?.style.setProperty('--ion-background-color-rgb', '18,18,18');\n      }\n      el?.style.setProperty('--ion-text-color', '#ffffff');\n      el?.style.setProperty('--ion-text-color-rgb', '255,255,255');\n    }\n  }\n\n  /**\n   * @see http://www.javascriptkit.com/javatutors/touchevents3.shtml\n   */\n  initSwipeToClose(isActive: boolean = true) {\n    if (!isActive) {\n      return;\n    }\n\n    const el = document.querySelector('ion-modal');\n    el?.addEventListener('mousedown', (event) => this.swipeStart(event), true);\n    el?.addEventListener('mousemove', (event) => this.swipeMove(event), true);\n    el?.addEventListener('mouseup', (event) => this.swipeEnd(event), true);\n    el?.addEventListener('touchstart', (event) => this.swipeStart(event), true);\n    el?.addEventListener('touchmove', (event) => this.swipeMove(event), true);\n    el?.addEventListener('touchend', (event) => this.swipeEnd(event), true);\n\n    this.modalController.getTop().then((modal) => {\n      modal?.onWillDismiss().then(() => {\n        document.removeEventListener('mousedown', this.swipeStart, true);\n        document.removeEventListener('mousemove', this.swipeMove, true);\n        document.removeEventListener('mouseup', this.swipeMove, true);\n        document.removeEventListener('touchstart', this.swipeStart, true);\n        document.removeEventListener('touchmove', this.swipeMove, true);\n        document.removeEventListener('touchend', this.swipeMove, true);\n      });\n    });\n  }\n\n  swipeStart(event: any) {\n    const {\n      pageX,\n      pageY\n    } = event.type === 'touchstart' && event.changedTouches ? event?.changedTouches[0] : event;\n\n    this.swipeState = {\n      ...this.swipeState,\n      phase: 'start',\n      direction: 'none',\n      distance: 0,\n      startX: pageX,\n      startY: pageY,\n      startTime: new Date().getTime(),\n    };\n  }\n\n  swipeMove(event: any) {\n    const {\n      pageX,\n      pageY\n    } = event.type === 'touchmove' && event.changedTouches ? event?.changedTouches[0] : event;\n    // get horizontal dist traveled by finger while in contact with surface\n    const distanceX = pageX - this.swipeState.startX;\n    // get vertical dist traveled by finger while in contact with surface\n    const distanceY = pageY - this.swipeState.startY;\n    let direction;\n    let distance;\n\n    if (Math.abs(distanceX) > Math.abs(distanceY)) {\n      // if distance traveled horizontally is greater than vertically, consider this a horizontal swipe\n      direction = distanceX < 0 ? 'left' : 'right';\n      distance = distanceX;\n    } else {\n      // else consider this a vertical swipe\n      direction = distanceY < 0 ? 'up' : 'down';\n      distance = distanceY;\n    }\n    this.swipeState = {\n      ...this.swipeState,\n      phase: 'move',\n      direction,\n      distance,\n      distanceX,\n      distanceY,\n    };\n    if (event.cancelable) {\n      event.preventDefault();\n    }\n  }\n\n  swipeEnd(event: any) {\n    if (this.swipeState.phase === 'none') {\n      return;\n    }\n    const {allowedTime, direction, restraint, startTime, threshold, distanceX, distanceY} = this.swipeState;\n    let swipeType;\n\n    const elapsedTime = new Date().getTime() - startTime; // get time elapsed\n    if (elapsedTime <= allowedTime) {\n      // first condition for a swipe met\n      if (Math.abs(distanceX) >= threshold && Math.abs(distanceY) <= restraint) {\n        // 2nd condition for horizontal swipe met\n        swipeType = direction; // set swipeType to either \"left\" or \"right\"\n      } else if (Math.abs(distanceY) >= threshold && Math.abs(distanceX) <= restraint) {\n        // 2nd condition for vertical swipe met\n        swipeType = direction; // set swipeType to either \"top\" or \"down\"\n      }\n    }\n\n    this.swipeState = {\n      ...this.swipeState,\n      phase: 'end',\n      swipeType: swipeType ?? '',\n    };\n\n    if (swipeType === 'down') {\n      return this.closeModal();\n    }\n  }\n\n  closeModal() {\n    this.modalController.dismiss();\n  }\n}\n","<ion-header [ngClass]=\"{ 'no-title': title && title.length <= 0 }\">\n  <ion-toolbar>\n    <ion-buttons slot=\"primary\">\n      <ion-button (click)=\"closeModal()\">\n        <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n      </ion-button>\n    </ion-buttons>\n    <ion-title [size]=\"titleSize\">{{ title }}</ion-title>\n  </ion-toolbar>\n</ion-header>\n\n<ion-content [forceOverscroll]=\"false\">\n  <swiper-container [options]=\"options\" centeredSlides=\"true\" passiveListeners=\"false\" zoom=\"true\" #swiper>\n    <swiper-slide>\n      <div class=\"swiper-zoom-container\">\n        <img [alt]=\"this.alt\" [src]=\"this.src\"/>\n      </div>\n    </swiper-slide>\n  </swiper-container>\n</ion-content>\n\n<ion-footer [ngClass]=\"{ 'no-text': text && text.length <= 0 }\">\n  <ion-toolbar class=\"ion-text-center\">\n    <ion-text>{{ text }}</ion-text>\n  </ion-toolbar>\n</ion-footer>\n","// tslint:disable-next-line\n\nimport {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {ModalController} from '@ionic/angular';\nimport {ViewerModalComponent} from './viewer-modal/viewer-modal.component';\nimport {register} from 'swiper/element/bundle';\n\n\nif (!customElements.get('swiper-container')) {\n  console.log('No Swiper.js instance registered, registering...');\n  register();\n}\n\n@Component({\n  selector: 'ion-img-viewer',\n  templateUrl: './ngx-ionic-image-viewer.component.html',\n  styles: [\n    `\n      :host {\n        display: block;\n      }\n    `\n  ],\n  encapsulation: ViewEncapsulation.Emulated\n})\nexport class NgxIonicImageViewerComponent implements OnInit {\n  @Input() alt?: string;\n  @Input() cssClass?: string | string[];\n  @Input() scheme?: string;\n  @Input() slideOptions?: object;\n  @Input() src!: string | undefined;\n  @Input() srcFallback?: string;\n  @Input() srcHighRes?: string;\n  @Input() swipeToClose?: boolean;\n  @Input() text?: string;\n  @Input() title?: string;\n  @Input() titleSize?: string;\n\n  constructor(public modalController: ModalController) {\n\n  }\n\n  async viewImage(\n    src: string | undefined,\n    srcFallback: string = '',\n    srcHighRes: string = '',\n    title: string = '',\n    titleSize: string = '',\n    text: string = '',\n    scheme: string = 'auto',\n    slideOptions: object = {},\n    swipeToClose: boolean = true\n  ) {\n    const modal = await this.modalController.create({\n      component: ViewerModalComponent,\n      componentProps: {\n        src,\n        srcFallback,\n        srcHighRes,\n        title,\n        titleSize,\n        text,\n        scheme,\n        slideOptions,\n        swipeToClose\n      },\n      cssClass: this.cssClass && this.cssClass instanceof Array\n        ? ['ion-img-viewer', ...this.cssClass]\n        : ['ion-img-viewer', this.cssClass as string],\n      keyboardClose: true,\n      showBackdrop: true\n    });\n\n    return await modal.present();\n  }\n\n  ngOnInit() {\n  }\n}\n","<img\n  [alt]=\"alt\"\n  [src]=\"src\"\n  (click)=\"viewImage(src, srcFallback, srcHighRes, title, titleSize, text, scheme, slideOptions, swipeToClose)\"\n  (error)=\"src = srcFallback\"\n/>\n","import { Directive, ElementRef, HostListener, Input, Renderer2, OnInit } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { ViewerModalComponent } from './viewer-modal/viewer-modal.component';\n\n@Directive({\n  selector: '[ionImgViewer]'\n})\nexport class NgxIonicImageViewerDirective implements OnInit {\n  constructor(private el: ElementRef, private renderer: Renderer2, public modalController: ModalController) { }\n\n  @Input() cssClass?: string | string[];\n  @Input() scheme?: string;\n  @Input() slideOptions?: object;\n  @Input() src!: string;\n  @Input() srcFallback?: string;\n  @Input() srcHighRes?: string;\n  @Input() swipeToClose?: boolean;\n  @Input() text?: string;\n  @Input() title?: string;\n  @Input() titleSize?: string;\n\n  @HostListener('click') onClick() {\n    this.viewImage(\n      this.src,\n      this.srcFallback,\n      this.srcHighRes,\n      this.title,\n      this.titleSize,\n      this.text,\n      this.scheme,\n      this.slideOptions,\n      this.swipeToClose\n    );\n  }\n\n  @HostListener('error', ['$event']) onError(error: any) {\n    if (this.src !== this.el.nativeElement.src) {\n      this.src = this.el.nativeElement.src;\n    }\n    if (this.srcFallback) {\n      this.renderer.setAttribute(this.el.nativeElement, 'src', this.srcFallback);\n    }\n  }\n\n  ngOnInit() {\n    if (!this.el.nativeElement.hasAttribute('src')) {\n      this.renderer.setAttribute(this.el.nativeElement, 'src', this.src);\n    }\n  }\n\n  async viewImage(\n    src: string,\n    srcFallback: string = '',\n    srcHighRes: string = '',\n    title: string = '',\n    titleSize: string = '',\n    text: string = '',\n    scheme: string = 'auto',\n    slideOptions: object = {},\n    swipeToClose: boolean = true\n  ) {\n    const modal = await this.modalController.create({\n      component: ViewerModalComponent,\n      componentProps: {\n        src,\n        srcFallback,\n        srcHighRes,\n        title,\n        titleSize,\n        text,\n        scheme,\n        slideOptions,\n        swipeToClose\n      },\n      cssClass: this.cssClass && this.cssClass instanceof Array\n        ? ['ion-img-viewer', ...this.cssClass]\n        : ['ion-img-viewer', this.cssClass as string],\n      keyboardClose: true,\n      showBackdrop: true\n    });\n\n    return await modal.present();\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {IonicModule} from '@ionic/angular';\nimport {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\nimport {NgxIonicImageViewerComponent} from './ngx-ionic-image-viewer.component';\nimport {NgxIonicImageViewerDirective} from './ngx-ionic-image-viewer.directive';\nimport {ViewerModalComponent} from './viewer-modal/viewer-modal.component';\n\n@NgModule({\n  declarations: [NgxIonicImageViewerComponent, NgxIonicImageViewerDirective, ViewerModalComponent],\n  imports: [CommonModule, IonicModule],\n  exports: [NgxIonicImageViewerComponent, NgxIonicImageViewerDirective, ViewerModalComponent],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgxIonicImageViewerModule {\n}\n","/*\n * Public API Surface of ngx-ionic-image-viewer\n */\n\nexport * from './lib/ngx-ionic-image-viewer.service';\nexport * from './lib/ngx-ionic-image-viewer.component';\nexport * from './lib/ngx-ionic-image-viewer.directive';\nexport * from './lib/ngx-ionic-image-viewer.module';\nexport * from './lib/viewer-modal/viewer-modal.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}