text: import { __decorate } from 'tslib';
  import { Injectable, EventEmitter, Input, Output, ViewChild, HostListener, Component, HostBinding, ChangeDetectionStrategy, NgModule } from '@angular/core';
  import { CommonModule } from '@angular/common';
  
  let NgxGalleryHelperService = class NgxGalleryHelperService {
      constructor(renderer) {
          this.renderer = renderer;
          this.swipeHandlers = new Map();
      }
      manageSwipe(status, element, id, nextHandler, prevHandler) {
          const handlers = this.getSwipeHandlers(id);
          // swipeleft and swiperight are available only if hammerjs is included
          try {
              if (status && !handlers) {
                  this.swipeHandlers.set(id, [
                      this.renderer.listen(element.nativeElement, 'swipeleft', () => nextHandler()),
                      this.renderer.listen(element.nativeElement, 'swiperight', () => prevHandler())
                  ]);
              }
              else if (!status && handlers) {
                  handlers.map((handler) => handler());
                  this.removeSwipeHandlers(id);
              }
          }
          catch (e) { }
      }
      validateUrl(url) {
          if (url.replace) {
              return url.replace(new RegExp(' ', 'g'), '%20')
                  .replace(new RegExp('\'', 'g'), '%27');
          }
          else {
              return url;
          }
      }
      getBackgroundUrl(image) {
          return 'url(\'' + this.validateUrl(image) + '\')';
      }
      getSwipeHandlers(id) {
          return this.swipeHandlers.get(id);
      }
      removeSwipeHandlers(id) {
          this.swipeHandlers.delete(id);
      }
  };
  NgxGalleryHelperService = __decorate([
      Injectable()
  ], NgxGalleryHelperService);
  
  class NgxGalleryAnimation {
  }
  NgxGalleryAnimation.Fade = 'fade';
  NgxGalleryAnimation.Slide = 'slide';
  NgxGalleryAnimation.Rotate = 'rotate';
  NgxGalleryAnimation.Zoom = 'zoom';
  
  class NgxGalleryImageSize {
  }
  NgxGalleryImageSize.Cover = 'cover';
  NgxGalleryImageSize.Contain = 'contain';
  
  class NgxGalleryLayout {
  }
  NgxGalleryLayout.ThumbnailsTop = 'thumbnails-top';
  NgxGalleryLayout.ThumbnailsBottom = 'thumbnails-bottom';
  
  class NgxGalleryOrder {
  }
  NgxGalleryOrder.Column = 1;
  NgxGalleryOrder.Row = 2;
  NgxGalleryOrder.Page = 3;
  
  class NgxGalleryAction {
      constructor(action) {
          this.icon = action.icon;
          this.disabled = action.disabled ? action.disabled : false;
          this.titleText = action.titleText ? action.titleText : '';
          this.onClick = action.onClick;
      }
  }
  
  class NgxGalleryOptions {
      constructor(obj) {
          const preventDefaults = obj.breakpoint === undefined ? false : true;
          function use(source, defaultValue) {
              return obj && (source !== undefined || preventDefaults) ? source : defaultValue;
          }
          this.breakpoint = use(obj.breakpoint, undefined);
          this.width = use(obj.width, '500px');
          this.height = use(obj.height, '400px');
          this.fullWidth = use(obj.fullWidth, false);
          this.layout = use(obj.layout, NgxGalleryLayout.ThumbnailsBottom);
          this.startIndex = use(obj.startIndex, 0);
          this.linkTarget = use(obj.linkTarget, '_blank');
          this.lazyLoading = use(obj.lazyLoading, true);
          this.image = use(obj.image, true);
          this.imagePercent = use(obj.imagePercent, 75);
          this.imageArrows = use(obj.imageArrows, true);
          this.imageArrowsAutoHide = use(obj.imageArrowsAutoHide, false);
          this.imageSwipe = use(obj.imageSwipe, false);
          this.imageAnimation = use(obj.imageAnimation, NgxGalleryAnimation.Fade);
          this.imageSize = use(obj.imageSize, NgxGalleryImageSize.Cover);
          this.imageAutoPlay = use(obj.imageAutoPlay, false);
          this.imageAutoPlayInterval = use(obj.imageAutoPlayInterval, 2000);
          this.imageAutoPlayPauseOnHover = use(obj.imageAutoPlayPauseOnHover, false);
          this.imageInfinityMove = use(obj.imageInfinityMove, false);
          if (obj && obj.imageActions && obj.imageActions.length) {
              obj.imageActions = obj.imageActions.map(action => new NgxGalleryAction(action));
          }
          this.imageActions = use(obj.imageActions, []);
          this.imageDescription = use(obj.imageDescription, false);
          this.imageBullets = use(obj.imageBullets, false);
          this.thumbnails = use(obj.thumbnails, true);
          this.thumbnailsColumns = use(obj.thumbnailsColumns, 4);
          this.thumbnailsRows = use(obj.thumbnailsRows, 1);
          this.thumbnailsPercent = use(obj.thumbnailsPercent, 25);
          this.thumbnailsMargin = use(obj.thumbnailsMargin, 10);
          this.thumbnailsArrows = use(obj.thumbnailsArrows, true);
          this.thumbnailsArrowsAutoHide = use(obj.thumbnailsArrowsAutoHide, false);
          this.thumbnailsSwipe = use(obj.thumbnailsSwipe, false);
          this.thumbnailsMoveSize = use(obj.thumbnailsMoveSize, 1);
          this.thumbnailsOrder = use(obj.thumbnailsOrder, NgxGalleryOrder.Column);
          this.thumbnailsRemainingCount = use(obj.thumbnailsRemainingCount, false);
          this.thumbnailsAsLinks = use(obj.thumbnailsAsLinks, false);
          this.thumbnailsAutoHide = use(obj.thumbnailsAutoHide, false);
          this.thumbnailMargin = use(obj.thumbnailMargin, 10);
          this.thumbnailSize = use(obj.thumbnailSize, NgxGalleryImageSize.Cover);
          if (obj && obj.thumbnailActions && obj.thumbnailActions.length) {
              obj.thumbnailActions = obj.thumbnailActions.map(action => new NgxGalleryAction(action));
          }
          this.thumbnailActions = use(obj.thumbnailActions, []);
          this.preview = use(obj.preview, true);
          this.previewDescription = use(obj.previewDescription, true);
          this.previewArrows = use(obj.previewArrows, true);
          this.previewArrowsAutoHide = use(obj.previewArrowsAutoHide, false);
          this.previewSwipe = use(obj.previewSwipe, false);
          this.previewFullscreen = use(obj.previewFullscreen, false);
          this.previewForceFullscreen = use(obj.previewForceFullscreen, false);
          this.previewCloseOnClick = use(obj.previewCloseOnClick, false);
          this.previewCloseOnEsc = use(obj.previewCloseOnEsc, false);
          this.previewKeyboardNavigation = use(obj.previewKeyboardNavigation, false);
          this.previewAnimation = use(obj.previewAnimation, true);
          this.previewAutoPlay = use(obj.previewAutoPlay, false);
          this.previewAutoPlayInterval = use(obj.previewAutoPlayInterval, 2000);
          this.previewAutoPlayPauseOnHover = use(obj.previewAutoPlayPauseOnHover, false);
          this.previewInfinityMove = use(obj.previewInfinityMove, false);
          this.previewZoom = use(obj.previewZoom, false);
          this.previewZoomStep = use(obj.previewZoomStep, 0.1);
          this.previewZoomMax = use(obj.previewZoomMax, 2);
          this.previewZoomMin = use(obj.previewZoomMin, 0.5);
          this.previewRotate = use(obj.previewRotate, false);
          this.previewDownload = use(obj.previewDownload, false);
          this.previewCustom = use(obj.previewCustom, undefined);
          this.previewBullets = use(obj.previewBullets, false);
          this.arrowPrevIcon = use(obj.arrowPrevIcon, 'fa fa-arrow-circle-left');
          this.arrowNextIcon = use(obj.arrowNextIcon, 'fa fa-arrow-circle-right');
          this.closeIcon = use(obj.closeIcon, 'fa fa-times-circle');
          this.fullscreenIcon = use(obj.fullscreenIcon, 'fa fa-arrows-alt');
          this.spinnerIcon = use(obj.spinnerIcon, 'fa fa-spinner fa-pulse fa-3x fa-fw');
          this.zoomInIcon = use(obj.zoomInIcon, 'fa fa-search-plus');
          this.zoomOutIcon = use(obj.zoomOutIcon, 'fa fa-search-minus');
          this.rotateLeftIcon = use(obj.rotateLeftIcon, 'fa fa-undo');
          this.rotateRightIcon = use(obj.rotateRightIcon, 'fa fa-repeat');
          this.downloadIcon = use(obj.downloadIcon, 'fa fa-arrow-circle-down');
          if (obj && obj.actions && obj.actions.length) {
              obj.actions = obj.actions.map(action => new NgxGalleryAction(action));
          }
          this.actions = use(obj.actions, []);
      }
  }
  
  class NgxGalleryOrderedImage {
      constructor(obj) {
          this.src = obj.src;
          this.index = obj.index;
      }
  }
  
  let NgxGalleryPreviewComponent = class NgxGalleryPreviewComponent {
      constructor(sanitization, elementRef, helperService, renderer, changeDetectorRef) {
          this.sanitization = sanitization;
          this.elementRef = elementRef;
          this.helperService = helperService;
          this.renderer = renderer;
          this.changeDetectorRef = changeDetectorRef;
          this.showSpinner = false;
          this.positionLeft = 0;
          this.positionTop = 0;
          this.zoomValue = 1;
          this.loading = false;
          this.rotateValue = 0;
          this.index = 0;
          this.onOpen = new EventEmitter();
          this.onClose = new EventEmitter();
          this.onActiveChange = new EventEmitter();
          this.isOpen = false;
          this.initialX = 0;
          this.initialY = 0;
          this.initialLeft = 0;
          this.initialTop = 0;
          this.isMove = false;
      }
      ngOnInit() {
          if (this.arrows && this.arrowsAutoHide) {
              this.arrows = false;
          }
      }
      ngOnChanges(changes) {
          if (changes['swipe']) {
              this.helperService.manageSwipe(this.swipe, this.elementRef, 'preview', () => this.showNext(), () => this.showPrev());
          }
      }
      ngOnDestroy() {
          if (this.keyDownListener) {
              this.keyDownListener();
          }
      }
      onMouseEnter() {
          if (this.arrowsAutoHide && !this.arrows) {
              this.arrows = true;
          }
      }
      onMouseLeave() {
          if (this.arrowsAutoHide && this.arrows) {
              this.arrows = false;
          }
      }
      onKeyDown(e) {
          if (this.isOpen) {
              if (this.keyboardNavigation) {
                  if (this.isKeyboardPrev(e)) {
                      this.showPrev();
                  }
                  else if (this.isKeyboardNext(e)) {
                      this.showNext();
                  }
              }
              if (this.closeOnEsc && this.isKeyboardEsc(e)) {
                  this.close();
              }
          }
      }
      open(index) {
          this.onOpen.emit();
          this.index = index;
          this.isOpen = true;
          this.show(true);
          if (this.forceFullscreen) {
              this.manageFullscreen();
          }
          this.keyDownListener = this.renderer.listen("window", "keydown", (e) => this.onKeyDown(e));
      }
      close() {
          this.isOpen = false;
          this.closeFullscreen();
          this.onClose.emit();
          this.stopAutoPlay();
          if (this.keyDownListener) {
              this.keyDownListener();
          }
      }
      imageMouseEnter() {
          if (this.autoPlay && this.autoPlayPauseOnHover) {
              this.stopAutoPlay();
          }
      }
      imageMouseLeave() {
          if (this.autoPlay && this.autoPlayPauseOnHover) {
              this.startAutoPlay();
          }
      }
      startAutoPlay() {
          if (this.autoPlay) {
              this.stopAutoPlay();
              this.timer = setTimeout(() => {
                  if (!this.showNext()) {
                      this.index = -1;
                      this.showNext();
                  }
              }, this.autoPlayInterval);
          }
      }
      stopAutoPlay() {
          if (this.timer) {
              clearTimeout(this.timer);
          }
      }
      showAtIndex(index) {
          this.index = index;
          this.show();
      }
      showNext() {
          if (this.canShowNext()) {
              this.index++;
              if (this.index === this.images.length) {
                  this.index = 0;
              }
              this.show();
              return true;
          }
          else {
              return false;
          }
      }
      showPrev() {
          if (this.canShowPrev()) {
              this.index--;
              if (this.index < 0) {
                  this.index = this.images.length - 1;
              }
              this.show();
          }
      }
      canShowNext() {
          if (this.loading) {
              return false;
          }
          else if (this.images) {
              return this.infinityMove || this.index < this.images.length - 1 ? true : false;
          }
          else {
              return false;
          }
      }
      canShowPrev() {
          if (this.loading) {
              return false;
          }
          else if (this.images) {
              return this.infinityMove || this.index > 0 ? true : false;
          }
          else {
              return false;
          }
      }
      manageFullscreen() {
          if (this.fullscreen || this.forceFullscreen) {
              const doc = document;
              if (!doc.fullscreenElement && !doc.mozFullScreenElement
                  && !doc.webkitFullscreenElement && !doc.msFullscreenElement) {
                  this.openFullscreen();
              }
              else {
                  this.closeFullscreen();
              }
          }
      }
      getSafeUrl(image) {
          return image.substr(0, 10) === 'data:image' ?
              image : this.sanitization.bypassSecurityTrustUrl(image);
      }
      zoomIn() {
          if (this.canZoomIn()) {
              this.zoomValue += this.zoomStep;
              if (this.zoomValue > this.zoomMax) {
                  this.zoomValue = this.zoomMax;
              }
          }
      }
      zoomOut() {
          if (this.canZoomOut()) {
              this.zoomValue -= this.zoomStep;
              if (this.zoomValue < this.zoomMin) {
                  this.zoomValue = this.zoomMin;
              }
              if (this.zoomValue <= 1) {
                  this.resetPosition();
              }
          }
      }
      rotateLeft() {
          this.rotateValue -= 90;
      }
      rotateRight() {
          this.rotateValue += 90;
      }
      getTransform() {
          return this.sanitization.bypassSecurityTrustStyle('scale(' + this.zoomValue + ') rotate(' + this.rotateValue + 'deg)');
      }
      canZoomIn() {
          return this.zoomValue < this.zoomMax ? true : false;
      }
      canZoomOut() {
          return this.zoomValue > this.zoomMin ? true : false;
      }
      canDragOnZoom() {
          return this.zoom && this.zoomValue > 1;
      }
      mouseDownHandler(e) {
          if (this.canDragOnZoom()) {
              this.initialX = this.getClientX(e);
              this.initialY = this.getClientY(e);
              this.initialLeft = this.positionLeft;
              this.initialTop = this.positionTop;
              this.isMove = true;
              e.preventDefault();
          }
      }
      mouseUpHandler(e) {
          this.isMove = false;
      }
      mouseMoveHandler(e) {
          if (this.isMove) {
              this.positionLeft = this.initialLeft + (this.getClientX(e) - this.initialX);
              this.positionTop = this.initialTop + (this.getClientY(e) - this.initialY);
          }
      }
      getClientX(e) {
          return e.touches && e.touches.length ? e.touches[0].clientX : e.clientX;
      }
      getClientY(e) {
          return e.touches && e.touches.length ? e.touches[0].clientY : e.clientY;
      }
      resetPosition() {
          if (this.zoom) {
              this.positionLeft = 0;
              this.positionTop = 0;
          }
      }
      isKeyboardNext(e) {
          return e.keyCode === 39 ? true : false;
      }
      isKeyboardPrev(e) {
          return e.keyCode === 37 ? true : false;
      }
      isKeyboardEsc(e) {
          return e.keyCode === 27 ? true : false;
      }
      openFullscreen() {
          const element = document.documentElement;
          if (element.requestFullscreen) {
              element.requestFullscreen();
          }
          else if (element.msRequestFullscreen) {
              element.msRequestFullscreen();
          }
          else if (element.mozRequestFullScreen) {
              element.mozRequestFullScreen();
          }
          else if (element.webkitRequestFullscreen) {
              element.webkitRequestFullscreen();
          }
      }
      closeFullscreen() {
          if (this.isFullscreen()) {
              const doc = document;
              if (doc.exitFullscreen) {
                  doc.exitFullscreen();
              }
              else if (doc.msExitFullscreen) {
                  doc.msExitFullscreen();
              }
              else if (doc.mozCancelFullScreen) {
                  doc.mozCancelFullScreen();
              }
              else if (doc.webkitExitFullscreen) {
                  doc.webkitExitFullscreen();
              }
          }
      }
      isFullscreen() {
          const doc = document;
          return doc.fullscreenElement || doc.webkitFullscreenElement
              || doc.mozFullScreenElement || doc.msFullscreenElement;
      }
      show(first = false) {
          this.loading = true;
          this.stopAutoPlay();
          this.onActiveChange.emit(this.index);
          if (first || !this.animation) {
              this._show();
          }
          else {
              setTimeout(() => this._show(), 600);
          }
      }
      _show() {
          this.zoomValue = 1;
          this.rotateValue = 0;
          this.resetPosition();
          this.src = this.getSafeUrl(this.images[this.index]);
          this.srcIndex = this.index;
          this.description = this.descriptions[this.index];
          this.changeDetectorRef.markForCheck();
          setTimeout(() => {
              if (this.isLoaded(this.previewImage.nativeElement)) {
                  this.loading = false;
                  this.startAutoPlay();
                  this.changeDetectorRef.markForCheck();
              }
              else {
                  setTimeout(() => {
                      if (this.loading) {
                          this.showSpinner = true;
                          this.changeDetectorRef.markForCheck();
                      }
                  });
                  this.previewImage.nativeElement.onload = () => {
                      this.loading = false;
                      this.showSpinner = false;
                      this.previewImage.nativeElement.onload = null;
                      this.startAutoPlay();
                      this.changeDetectorRef.markForCheck();
                  };
              }
          });
      }
      isLoaded(img) {
          if (!img.complete) {
              return false;
          }
          if (typeof img.naturalWidth !== 'undefined' && img.naturalWidth === 0) {
              return false;
          }
          return true;
      }
  };
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "images", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "descriptions", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "showDescription", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "arrows", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "arrowsAutoHide", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "swipe", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "fullscreen", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "forceFullscreen", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "closeOnClick", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "closeOnEsc", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "keyboardNavigation", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "arrowPrevIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "arrowNextIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "closeIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "fullscreenIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "spinnerIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "autoPlay", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "autoPlayInterval", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "autoPlayPauseOnHover", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "infinityMove", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "zoom", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "zoomStep", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "zoomMax", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "zoomMin", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "zoomInIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "zoomOutIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "animation", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "actions", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "rotate", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "rotateLeftIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "rotateRightIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "download", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "downloadIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryPreviewComponent.prototype, "bullets", void 0);
  __decorate([
      Output()
  ], NgxGalleryPreviewComponent.prototype, "onOpen", void 0);
  __decorate([
      Output()
  ], NgxGalleryPreviewComponent.prototype, "onClose", void 0);
  __decorate([
      Output()
  ], NgxGalleryPreviewComponent.prototype, "onActiveChange", void 0);
  __decorate([
      ViewChild('previewImage')
  ], NgxGalleryPreviewComponent.prototype, "previewImage", void 0);
  __decorate([
      HostListener('mouseenter')
  ], NgxGalleryPreviewComponent.prototype, "onMouseEnter", null);
  __decorate([
      HostListener('mouseleave')
  ], NgxGalleryPreviewComponent.prototype, "onMouseLeave", null);
  NgxGalleryPreviewComponent = __decorate([
      Component({
          selector: 'ngx-gallery-preview',
          template: "<ngx-gallery-arrows *ngIf=\"arrows\" (onPrevClick)=\"showPrev()\" (onNextClick)=\"showNext()\" [prevDisabled]=\"!canShowPrev()\" [nextDisabled]=\"!canShowNext()\" [arrowPrevIcon]=\"arrowPrevIcon\" [arrowNextIcon]=\"arrowNextIcon\"></ngx-gallery-arrows>\n<div class=\"ngx-gallery-preview-top\">\n    <div class=\"ngx-gallery-preview-icons\">\n        <ngx-gallery-action *ngFor=\"let action of actions\" [icon]=\"action.icon\" [disabled]=\"action.disabled\" [titleText]=\"action.titleText\" (onClick)=\"action.onClick($event, index)\"></ngx-gallery-action>\n        <a *ngIf=\"download && src\" [href]=\"src\" class=\"ngx-gallery-icon\" aria-hidden=\"true\" download>\n            <i class=\"ngx-gallery-icon-content {{ downloadIcon }}\"></i>\n        </a>\n        <ngx-gallery-action *ngIf=\"zoom\" [icon]=\"zoomOutIcon\" [disabled]=\"!canZoomOut()\" (onClick)=\"zoomOut()\"></ngx-gallery-action>\n        <ngx-gallery-action *ngIf=\"zoom\" [icon]=\"zoomInIcon\" [disabled]=\"!canZoomIn()\" (onClick)=\"zoomIn()\"></ngx-gallery-action>\n        <ngx-gallery-action *ngIf=\"rotate\" [icon]=\"rotateLeftIcon\" (onClick)=\"rotateLeft()\"></ngx-gallery-action>\n        <ngx-gallery-action *ngIf=\"rotate\" [icon]=\"rotateRightIcon\" (onClick)=\"rotateRight()\"></ngx-gallery-action>\n        <ngx-gallery-action *ngIf=\"fullscreen\" [icon]=\"'ngx-gallery-fullscreen ' + fullscreenIcon\" (onClick)=\"manageFullscreen()\"></ngx-gallery-action>\n        <ngx-gallery-action [icon]=\"'ngx-gallery-close ' + closeIcon\" (onClick)=\"close()\"></ngx-gallery-action>\n    </div>\n</div>\n<div class=\"ngx-spinner-wrapper ngx-gallery-center\" [class.ngx-gallery-active]=\"showSpinner\">\n    <i class=\"ngx-gallery-icon ngx-gallery-spinner {{spinnerIcon}}\" aria-hidden=\"true\"></i>\n</div>\n<div class=\"ngx-gallery-preview-wrapper\" (click)=\"closeOnClick && close()\" (mouseup)=\"mouseUpHandler($event)\" (mousemove)=\"mouseMoveHandler($event)\" (touchend)=\"mouseUpHandler($event)\" (touchmove)=\"mouseMoveHandler($event)\">\n    <div class=\"ngx-gallery-preview-img-wrapper\">\n        <img *ngIf=\"src\" #previewImage class=\"ngx-gallery-preview-img ngx-gallery-center\" [src]=\"src\" (click)=\"$event.stopPropagation()\" (mouseenter)=\"imageMouseEnter()\" (mouseleave)=\"imageMouseLeave()\" (mousedown)=\"mouseDownHandler($event)\" (touchstart)=\"mouseDownHandler($event)\" [class.ngx-gallery-active]=\"!loading\" [class.animation]=\"animation\" [class.ngx-gallery-grab]=\"canDragOnZoom()\" [style.transform]=\"getTransform()\" [style.left]=\"positionLeft + 'px'\" [style.top]=\"positionTop + 'px'\"/>\n        <ngx-gallery-bullets *ngIf=\"bullets\" [count]=\"images.length\" [active]=\"index\" (onChange)=\"showAtIndex($event)\"></ngx-gallery-bullets>\n    </div>\n    <div class=\"ngx-gallery-preview-text\" *ngIf=\"showDescription && description\" [innerHTML]=\"description\" (click)=\"$event.stopPropagation()\"></div>\n</div>",
          styles: [":host(.ngx-gallery-active){background:rgba(0,0,0,.7);display:inline-block;height:100%;left:0;position:fixed;top:0;width:100%;z-index:10000}:host{display:none}:host>.ngx-gallery-arrow{font-size:50px}:host>ngx-gallery-bullets{-webkit-box-align:center;align-items:center;height:5%;padding:0}.ngx-gallery-preview-img{-moz-user-select:none;-ms-user-select:none;-webkit-transition:-webkit-transform .5s;-webkit-user-select:none;max-height:90%;max-width:90%;opacity:0;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;user-select:none}.ngx-gallery-preview-img.animation{-webkit-transition:opacity .5s linear,-webkit-transform .5s;transition:opacity .5s linear,-webkit-transform .5s;transition:opacity .5s linear,transform .5s;transition:opacity .5s linear,transform .5s,-webkit-transform .5s}.ngx-gallery-preview-img.ngx-gallery-active{opacity:1}.ngx-gallery-preview-img.ngx-gallery-grab{cursor:grab;cursor:-webkit-grab}.ngx-gallery-icon.ngx-gallery-spinner{display:inline-block;font-size:50px;left:0}:host>.ngx-gallery-preview-top{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;position:absolute;user-select:none;width:100%}:host>.ngx-gallery-preview-icons{float:right}:host>.ngx-gallery-preview-icons .ngx-gallery-icon{cursor:pointer;font-size:25px;margin-right:10px;margin-top:10px;position:relative;text-decoration:none}:host>.ngx-gallery-preview-icons .ngx-gallery-icon.ngx-gallery-icon-disabled{cursor:default;opacity:.4}.ngx-spinner-wrapper{display:none;height:50px;width:50px}.ngx-spinner-wrapper.ngx-gallery-active{display:inline-block}.ngx-gallery-center{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.ngx-gallery-preview-text{-webkit-box-flex:0;background:rgba(0,0,0,.7);color:#fff;flex:0 1 auto;font-size:16px;padding:10px;text-align:center;width:100%;z-index:10}.ngx-gallery-preview-wrapper{-webkit-box-direction:normal;-webkit-box-orient:vertical;display:-webkit-box;display:flex;flex-flow:column;height:100%;width:100%}.ngx-gallery-preview-img-wrapper{-webkit-box-flex:1;flex:1 1 auto;position:relative}"]
      })
  ], NgxGalleryPreviewComponent);
  
  let NgxGalleryImageComponent = class NgxGalleryImageComponent {
      constructor(sanitization, elementRef, helperService) {
          this.sanitization = sanitization;
          this.elementRef = elementRef;
          this.helperService = helperService;
          this.timeout = 1000;
          this.onClick = new EventEmitter();
          this.onActiveChange = new EventEmitter();
          this.canChangeImage = true;
      }
      ngOnInit() {
          if (this.arrows && this.arrowsAutoHide) {
              this.arrows = false;
          }
          if (this.autoPlay) {
              this.startAutoPlay();
          }
      }
      ngOnChanges(changes) {
          if (changes['swipe']) {
              this.helperService.manageSwipe(this.swipe, this.elementRef, 'image', () => this.showNext(), () => this.showPrev());
          }
      }
      onMouseEnter() {
          if (this.arrowsAutoHide && !this.arrows) {
              this.arrows = true;
          }
          if (this.autoPlay && this.autoPlayPauseOnHover) {
              this.stopAutoPlay();
          }
      }
      onMouseLeave() {
          if (this.arrowsAutoHide && this.arrows) {
              this.arrows = false;
          }
          if (this.autoPlay && this.autoPlayPauseOnHover) {
              this.startAutoPlay();
          }
      }
      reset(index) {
          this.selectedIndex = index;
      }
      getImages() {
          if (!this.images) {
              return [];
          }
          if (this.lazyLoading) {
              let indexes = [this.selectedIndex];
              let prevIndex = this.selectedIndex - 1;
              if (prevIndex === -1 && this.infinityMove) {
                  indexes.push(this.images.length - 1);
              }
              else if (prevIndex >= 0) {
                  indexes.push(prevIndex);
              }
              let nextIndex = this.selectedIndex + 1;
              if (nextIndex == this.images.length && this.infinityMove) {
                  indexes.push(0);
              }
              else if (nextIndex < this.images.length) {
                  indexes.push(nextIndex);
              }
              return this.images.filter((img, i) => indexes.indexOf(i) != -1);
          }
          else {
              return this.images;
          }
      }
      startAutoPlay() {
          this.stopAutoPlay();
          this.timer = setInterval(() => {
              if (!this.showNext()) {
                  this.selectedIndex = -1;
                  this.showNext();
              }
          }, this.autoPlayInterval);
      }
      stopAutoPlay() {
          if (this.timer) {
              clearInterval(this.timer);
          }
      }
      handleClick(event, index) {
          if (this.clickable) {
              this.onClick.emit(index);
              event.stopPropagation();
              event.preventDefault();
          }
      }
      show(index) {
          this.selectedIndex = index;
          this.onActiveChange.emit(this.selectedIndex);
          this.setChangeTimeout();
      }
      showNext() {
          if (this.canShowNext() && this.canChangeImage) {
              this.selectedIndex++;
              if (this.selectedIndex === this.images.length) {
                  this.selectedIndex = 0;
              }
              this.onActiveChange.emit(this.selectedIndex);
              this.setChangeTimeout();
              return true;
          }
          else {
              return false;
          }
      }
      showPrev() {
          if (this.canShowPrev() && this.canChangeImage) {
              this.selectedIndex--;
              if (this.selectedIndex < 0) {
                  this.selectedIndex = this.images.length - 1;
              }
              this.onActiveChange.emit(this.selectedIndex);
              this.setChangeTimeout();
          }
      }
      setChangeTimeout() {
          this.canChangeImage = false;
          let timeout = this.timeout;
          if (this.animation === NgxGalleryAnimation.Slide
              || this.animation === NgxGalleryAnimation.Fade) {
              timeout = 500;
          }
          setTimeout(() => {
              this.canChangeImage = true;
          }, timeout);
      }
      canShowNext() {
          if (this.images) {
              return this.infinityMove || this.selectedIndex < this.images.length - 1
                  ? true : false;
          }
          else {
              return false;
          }
      }
      canShowPrev() {
          if (this.images) {
              return this.infinityMove || this.selectedIndex > 0 ? true : false;
          }
          else {
              return false;
          }
      }
      getSafeUrl(image) {
          return this.sanitization.bypassSecurityTrustStyle(this.helperService.getBackgroundUrl(image));
      }
  };
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "images", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "clickable", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "selectedIndex", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "arrows", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "arrowsAutoHide", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "swipe", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "animation", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "size", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "arrowPrevIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "arrowNextIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "autoPlay", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "autoPlayInterval", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "autoPlayPauseOnHover", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "infinityMove", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "lazyLoading", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "actions", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "descriptions", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "showDescription", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "bullets", void 0);
  __decorate([
      Input()
  ], NgxGalleryImageComponent.prototype, "timeout", void 0);
  __decorate([
      Output()
  ], NgxGalleryImageComponent.prototype, "onClick", void 0);
  __decorate([
      Output()
  ], NgxGalleryImageComponent.prototype, "onActiveChange", void 0);
  __decorate([
      HostListener('mouseenter')
  ], NgxGalleryImageComponent.prototype, "onMouseEnter", null);
  __decorate([
      HostListener('mouseleave')
  ], NgxGalleryImageComponent.prototype, "onMouseLeave", null);
  NgxGalleryImageComponent = __decorate([
      Component({
          selector: 'ngx-gallery-image',
          template: "<div class=\"ngx-gallery-image-wrapper ngx-gallery-animation-{{animation}} ngx-gallery-image-size-{{size}}\">\n    <div class=\"ngx-gallery-image\" \n        *ngFor=\"let image of getImages(); let i = index;\" \n        [ngClass]=\"{ 'ngx-gallery-active': selectedIndex == image.index, 'ngx-gallery-inactive-left': selectedIndex > image.index, 'ngx-gallery-inactive-right': selectedIndex < image.index, 'ngx-gallery-clickable': clickable }\" \n        [style.background-image]=\"getSafeUrl(image.src)\" \n        (click)=\"handleClick($event, image.index)\" >\n        <div class=\"ngx-gallery-icons-wrapper\">\n            <ngx-gallery-action *ngFor=\"let action of actions\" [icon]=\"action.icon\" [disabled]=\"action.disabled\" [titleText]=\"action.titleText\" (onClick)=\"action.onClick($event, image.index)\"></ngx-gallery-action>\n        </div>\n        <div class=\"ngx-gallery-image-text\" *ngIf=\"showDescription && descriptions[image.index]\" [innerHTML]=\"descriptions[image.index]\" (click)=\"$event.stopPropagation()\"></div>\n    </div>\n</div>\n<ngx-gallery-bullets *ngIf=\"bullets\" [count]=\"images.length\" [active]=\"selectedIndex\" (onChange)=\"show($event)\"></ngx-gallery-bullets>\n<ngx-gallery-arrows class=\"ngx-gallery-image-size-{{size}}\" *ngIf=\"arrows\" (onPrevClick)=\"showPrev()\" (onNextClick)=\"showNext()\" [prevDisabled]=\"!canShowPrev()\" [nextDisabled]=\"!canShowNext()\" [arrowPrevIcon]=\"arrowPrevIcon\" [arrowNextIcon]=\"arrowNextIcon\"></ngx-gallery-arrows>\n",
          styles: [":host{display:inline-block;position:relative;width:100%}.ngx-gallery-image-wrapper{left:0;overflow:hidden}.ngx-gallery-image,.ngx-gallery-image-wrapper{height:100%;position:absolute;top:0;width:100%}.ngx-gallery-image{background-position:50%;background-repeat:no-repeat}.ngx-gallery-image.ngx-gallery-active{z-index:1000}.ngx-gallery-image-size-cover .ngx-gallery-image{background-size:cover}.ngx-gallery-image-size-contain .ngx-gallery-image{background-size:contain}.ngx-gallery-animation-fade .ngx-gallery-image{-webkit-transition:.5s ease-in-out;left:0;opacity:0;transition:.5s ease-in-out}.ngx-gallery-animation-fade .ngx-gallery-image.ngx-gallery-active{opacity:1}.ngx-gallery-animation-slide .ngx-gallery-image{-webkit-transition:.5s ease-in-out;transition:.5s ease-in-out}.ngx-gallery-animation-slide .ngx-gallery-image.ngx-gallery-active{left:0}.ngx-gallery-animation-slide .ngx-gallery-image.ngx-gallery-inactive-left{left:-100%}.ngx-gallery-animation-slide .ngx-gallery-image.ngx-gallery-inactive-right{left:100%}.ngx-gallery-animation-rotate .ngx-gallery-image{-webkit-transform:scale(3.5) rotate(90deg);-webkit-transition:1s ease;left:0;opacity:0;transform:scale(3.5) rotate(90deg);transition:1s ease}.ngx-gallery-animation-rotate .ngx-gallery-image.ngx-gallery-active{-webkit-transform:scale(1) rotate(0deg);opacity:1;transform:scale(1) rotate(0deg)}.ngx-gallery-animation-zoom .ngx-gallery-image{-webkit-transform:scale(2.5);-webkit-transition:1s ease;left:0;opacity:0;transform:scale(2.5);transition:1s ease}.ngx-gallery-animation-zoom .ngx-gallery-image.ngx-gallery-active{-webkit-transform:scale(1);opacity:1;transform:scale(1)}.ngx-gallery-image-text{background:rgba(0,0,0,.7);bottom:0;color:#fff;font-size:16px;padding:10px;position:absolute;text-align:center;width:100%;z-index:10}"]
      })
  ], NgxGalleryImageComponent);
  
  let NgxGalleryThumbnailsComponent = class NgxGalleryThumbnailsComponent {
      constructor(sanitization, elementRef, helperService) {
          this.sanitization = sanitization;
          this.elementRef = elementRef;
          this.helperService = helperService;
          this.minStopIndex = 0;
          this.onActiveChange = new EventEmitter();
          this.index = 0;
      }
      ngOnChanges(changes) {
          if (changes['selectedIndex']) {
              this.validateIndex();
          }
          if (changes['swipe']) {
              this.helperService.manageSwipe(this.swipe, this.elementRef, 'thumbnails', () => this.moveRight(), () => this.moveLeft());
          }
          if (this.images) {
              this.remainingCountValue = this.images.length - (this.rows * this.columns);
          }
      }
      onMouseEnter() {
          this.mouseenter = true;
      }
      onMouseLeave() {
          this.mouseenter = false;
      }
      reset(index) {
          this.selectedIndex = index;
          this.setDefaultPosition();
          this.index = 0;
          this.validateIndex();
      }
      getImages() {
          if (!this.images) {
              return [];
          }
          if (this.remainingCount) {
              return this.images.slice(0, this.rows * this.columns);
          }
          else if (this.lazyLoading && this.order != NgxGalleryOrder.Row) {
              let stopIndex = 0;
              if (this.order === NgxGalleryOrder.Column) {
                  stopIndex = (this.index + this.columns + this.moveSize) * this.rows;
              }
              else if (this.order === NgxGalleryOrder.Page) {
                  stopIndex = this.index + ((this.columns * this.rows) * 2);
              }
              if (stopIndex <= this.minStopIndex) {
                  stopIndex = this.minStopIndex;
              }
              else {
                  this.minStopIndex = stopIndex;
              }
              return this.images.slice(0, stopIndex);
          }
          else {
              return this.images;
          }
      }
      handleClick(event, index) {
          if (!this.hasLink(index)) {
              this.selectedIndex = index;
              this.onActiveChange.emit(index);
              event.stopPropagation();
              event.preventDefault();
          }
      }
      hasLink(index) {
          if (this.links && this.links.length && this.links[index])
              return true;
      }
      moveRight() {
          if (this.canMoveRight()) {
              this.index += this.moveSize;
              let maxIndex = this.getMaxIndex() - this.columns;
              if (this.index > maxIndex) {
                  this.index = maxIndex;
              }
              this.setThumbnailsPosition();
          }
      }
      moveLeft() {
          if (this.canMoveLeft()) {
              this.index -= this.moveSize;
              if (this.index < 0) {
                  this.index = 0;
              }
              this.setThumbnailsPosition();
          }
      }
      canMoveRight() {
          return this.index + this.columns < this.getMaxIndex() ? true : false;
      }
      canMoveLeft() {
          return this.index !== 0 ? true : false;
      }
      getThumbnailLeft(index) {
          let calculatedIndex;
          if (this.order === NgxGalleryOrder.Column) {
              calculatedIndex = Math.floor(index / this.rows);
          }
          else if (this.order === NgxGalleryOrder.Page) {
              calculatedIndex = (index % this.columns) + (Math.floor(index / (this.rows * this.columns)) * this.columns);
          }
          else if (this.order == NgxGalleryOrder.Row && this.remainingCount) {
              calculatedIndex = index % this.columns;
          }
          else {
              calculatedIndex = index % Math.ceil(this.images.length / this.rows);
          }
          return this.getThumbnailPosition(calculatedIndex, this.columns);
      }
      getThumbnailTop(index) {
          let calculatedIndex;
          if (this.order === NgxGalleryOrder.Column) {
              calculatedIndex = index % this.rows;
          }
          else if (this.order === NgxGalleryOrder.Page) {
              calculatedIndex = Math.floor(index / this.columns) - (Math.floor(index / (this.rows * this.columns)) * this.rows);
          }
          else if (this.order == NgxGalleryOrder.Row && this.remainingCount) {
              calculatedIndex = Math.floor(index / this.columns);
          }
          else {
              calculatedIndex = Math.floor(index / Math.ceil(this.images.length / this.rows));
          }
          return this.getThumbnailPosition(calculatedIndex, this.rows);
      }
      getThumbnailWidth() {
          return this.getThumbnailDimension(this.columns);
      }
      getThumbnailHeight() {
          return this.getThumbnailDimension(this.rows);
      }
      setThumbnailsPosition() {
          this.thumbnailsLeft = -((100 / this.columns) * this.index) + '%';
          this.thumbnailsMarginLeft = -((this.margin - (((this.columns - 1)
              * this.margin) / this.columns)) * this.index) + 'px';
      }
      setDefaultPosition() {
          this.thumbnailsLeft = '0px';
          this.thumbnailsMarginLeft = '0px';
      }
      canShowArrows() {
          if (this.remainingCount) {
              return false;
          }
          else if (this.arrows && this.images && this.images.length > this.getVisibleCount()
              && (!this.arrowsAutoHide || this.mouseenter)) {
              return true;
          }
          else {
              return false;
          }
      }
      validateIndex() {
          if (this.images) {
              let newIndex;
              if (this.order === NgxGalleryOrder.Column) {
                  newIndex = Math.floor(this.selectedIndex / this.rows);
              }
              else {
                  newIndex = this.selectedIndex % Math.ceil(this.images.length / this.rows);
              }
              if (this.remainingCount) {
                  newIndex = 0;
              }
              if (newIndex < this.index || newIndex >= this.index + this.columns) {
                  const maxIndex = this.getMaxIndex() - this.columns;
                  this.index = newIndex > maxIndex ? maxIndex : newIndex;
                  this.setThumbnailsPosition();
              }
          }
      }
      getSafeUrl(image) {
          return this.sanitization.bypassSecurityTrustStyle(this.helperService.getBackgroundUrl(image));
      }
      getThumbnailPosition(index, count) {
          return this.getSafeStyle('calc(' + ((100 / count) * index) + '% + '
              + ((this.margin - (((count - 1) * this.margin) / count)) * index) + 'px)');
      }
      getThumbnailDimension(count) {
          if (this.margin !== 0) {
              return this.getSafeStyle('calc(' + (100 / count) + '% - '
                  + (((count - 1) * this.margin) / count) + 'px)');
          }
          else {
              return this.getSafeStyle('calc(' + (100 / count) + '% + 1px)');
          }
      }
      getMaxIndex() {
          if (this.order == NgxGalleryOrder.Page) {
              let maxIndex = (Math.floor(this.images.length / this.getVisibleCount()) * this.columns);
              if (this.images.length % this.getVisibleCount() > this.columns) {
                  maxIndex += this.columns;
              }
              else {
                  maxIndex += this.images.length % this.getVisibleCount();
              }
              return maxIndex;
          }
          else {
              return Math.ceil(this.images.length / this.rows);
          }
      }
      getVisibleCount() {
          return this.columns * this.rows;
      }
      getSafeStyle(value) {
          return this.sanitization.bypassSecurityTrustStyle(value);
      }
  };
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "images", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "links", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "labels", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "linkTarget", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "columns", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "rows", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "arrows", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "arrowsAutoHide", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "margin", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "selectedIndex", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "clickable", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "swipe", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "size", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "arrowPrevIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "arrowNextIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "moveSize", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "order", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "remainingCount", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "lazyLoading", void 0);
  __decorate([
      Input()
  ], NgxGalleryThumbnailsComponent.prototype, "actions", void 0);
  __decorate([
      Output()
  ], NgxGalleryThumbnailsComponent.prototype, "onActiveChange", void 0);
  __decorate([
      HostListener('mouseenter')
  ], NgxGalleryThumbnailsComponent.prototype, "onMouseEnter", null);
  __decorate([
      HostListener('mouseleave')
  ], NgxGalleryThumbnailsComponent.prototype, "onMouseLeave", null);
  NgxGalleryThumbnailsComponent = __decorate([
      Component({
          selector: 'ngx-gallery-thumbnails',
          template: "<div class=\"ngx-gallery-thumbnails-wrapper ngx-gallery-thumbnail-size-{{size}}\">\n    <div class=\"ngx-gallery-thumbnails\" [style.transform]=\"'translateX(' + thumbnailsLeft + ')'\" [style.marginLeft]=\"thumbnailsMarginLeft\">\n        <a [href]=\"hasLink(i) ? links[i] : '#'\" [target]=\"linkTarget\" class=\"ngx-gallery-thumbnail\" *ngFor=\"let image of getImages(); let i = index;\" [style.background-image]=\"getSafeUrl(image)\" (click)=\"handleClick($event, i)\" [style.width]=\"getThumbnailWidth()\" [style.height]=\"getThumbnailHeight()\" [style.left]=\"getThumbnailLeft(i)\" [style.top]=\"getThumbnailTop(i)\" [ngClass]=\"{ 'ngx-gallery-active': i == selectedIndex, 'ngx-gallery-clickable': clickable }\" [attr.aria-label]=\"labels[i]\">\n            <div class=\"ngx-gallery-icons-wrapper\">\n                <ngx-gallery-action *ngFor=\"let action of actions\" [icon]=\"action.icon\" [disabled]=\"action.disabled\" [titleText]=\"action.titleText\" (onClick)=\"action.onClick($event, i)\"></ngx-gallery-action>\n            </div>\n            <div class=\"ngx-gallery-remaining-count-overlay\" *ngIf=\"remainingCount && remainingCountValue && (i == (rows * columns) - 1)\">\n                <span class=\"ngx-gallery-remaining-count\">+{{remainingCountValue}}</span>\n            </div>\n        </a>\n    </div>\n</div>\n<ngx-gallery-arrows *ngIf=\"canShowArrows()\" (onPrevClick)=\"moveLeft()\" (onNextClick)=\"moveRight()\" [prevDisabled]=\"!canMoveLeft()\" [nextDisabled]=\"!canMoveRight()\" [arrowPrevIcon]=\"arrowPrevIcon\" [arrowNextIcon]=\"arrowNextIcon\"></ngx-gallery-arrows>\n",
          styles: [":host{display:inline-block;position:relative;width:100%}.ngx-gallery-thumbnails-wrapper{height:100%;overflow:hidden;position:absolute;width:100%}.ngx-gallery-thumbnails{-webkit-transform:translateX(0);-webkit-transition:-webkit-transform .5s ease-in-out;height:100%;left:0;position:absolute;transform:translateX(0);transition:-webkit-transform .5s ease-in-out;transition:transform .5s ease-in-out;transition:transform .5s ease-in-out,-webkit-transform .5s ease-in-out;width:100%;will-change:transform}.ngx-gallery-thumbnails .ngx-gallery-thumbnail{background-position:50%;background-repeat:no-repeat;height:100%;position:absolute;text-decoration:none}.ngx-gallery-thumbnail-size-cover .ngx-gallery-thumbnails .ngx-gallery-thumbnail{background-size:cover}.ngx-gallery-thumbnail-size-contain .ngx-gallery-thumbnails .ngx-gallery-thumbnail{background-size:contain}.ngx-gallery-remaining-count-overlay{background-color:rgba(0,0,0,.4);height:100%;left:0;position:absolute;top:0;width:100%}.ngx-gallery-remaining-count{-webkit-transform:translate(-50%,-50%);color:#fff;font-size:30px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}"]
      })
  ], NgxGalleryThumbnailsComponent);
  
  let NgxGalleryComponent = class NgxGalleryComponent {
      constructor(myElement) {
          this.myElement = myElement;
          this.imagesReady = new EventEmitter();
          this.change = new EventEmitter();
          this.previewOpen = new EventEmitter();
          this.previewClose = new EventEmitter();
          this.previewChange = new EventEmitter();
          this.oldImagesLength = 0;
          this.selectedIndex = 0;
          this.breakpoint = undefined;
          this.prevBreakpoint = undefined;
      }
      ngOnInit() {
          this.options = this.options.map((opt) => new NgxGalleryOptions(opt));
          this.sortOptions();
          this.setBreakpoint();
          this.setOptions();
          this.checkFullWidth();
          if (this.currentOptions) {
              this.selectedIndex = this.currentOptions.startIndex;
          }
      }
      ngDoCheck() {
          if (this.images !== undefined && (this.images.length !== this.oldImagesLength)
              || (this.images !== this.oldImages)) {
              this.oldImagesLength = this.images.length;
              this.oldImages = this.images;
              this.setOptions();
              this.setImages();
              if (this.images && this.images.length) {
                  this.imagesReady.emit();
              }
              if (this.image) {
                  this.image.reset(this.currentOptions.startIndex);
              }
              if (this.currentOptions.thumbnailsAutoHide && this.currentOptions.thumbnails
                  && this.images.length <= 1) {
                  this.currentOptions.thumbnails = false;
                  this.currentOptions.imageArrows = false;
              }
              this.resetThumbnails();
          }
      }
      ngAfterViewInit() {
          this.checkFullWidth();
      }
      onResize() {
          this.setBreakpoint();
          if (this.prevBreakpoint !== this.breakpoint) {
              this.setOptions();
              this.resetThumbnails();
          }
          if (this.currentOptions && this.currentOptions.fullWidth) {
              if (this.fullWidthTimeout) {
                  clearTimeout(this.fullWidthTimeout);
              }
              this.fullWidthTimeout = setTimeout(() => {
                  this.checkFullWidth();
              }, 200);
          }
      }
      getImageHeight() {
          return (this.currentOptions && this.currentOptions.thumbnails) ?
              this.currentOptions.imagePercent + '%' : '100%';
      }
      getThumbnailsHeight() {
          if (this.currentOptions && this.currentOptions.image) {
              return 'calc(' + this.currentOptions.thumbnailsPercent + '% - '
                  + this.currentOptions.thumbnailsMargin + 'px)';
          }
          else {
              return '100%';
          }
      }
      getThumbnailsMarginTop() {
          if (this.currentOptions && this.currentOptions.layout === NgxGalleryLayout.ThumbnailsBottom) {
              return this.currentOptions.thumbnailsMargin + 'px';
          }
          else {
              return '0px';
          }
      }
      getThumbnailsMarginBottom() {
          if (this.currentOptions && this.currentOptions.layout === NgxGalleryLayout.ThumbnailsTop) {
              return this.currentOptions.thumbnailsMargin + 'px';
          }
          else {
              return '0px';
          }
      }
      openPreview(index) {
          if (this.currentOptions.previewCustom) {
              this.currentOptions.previewCustom(index);
          }
          else {
              this.previewEnabled = true;
              this.preview.open(index);
          }
      }
      onPreviewOpen() {
          this.previewOpen.emit();
          if (this.image && this.image.autoPlay) {
              this.image.stopAutoPlay();
          }
      }
      onPreviewClose() {
          this.previewEnabled = false;
          this.previewClose.emit();
          if (this.image && this.image.autoPlay) {
              this.image.startAutoPlay();
          }
      }
      selectFromImage(index) {
          this.select(index);
      }
      selectFromThumbnails(index) {
          this.select(index);
          if (this.currentOptions && this.currentOptions.thumbnails && this.currentOptions.preview
              && (!this.currentOptions.image || this.currentOptions.thumbnailsRemainingCount)) {
              this.openPreview(this.selectedIndex);
          }
      }
      show(index) {
          this.select(index);
      }
      showNext() {
          this.image.showNext();
      }
      showPrev() {
          this.image.showPrev();
      }
      canShowNext() {
          if (this.images && this.currentOptions) {
              return (this.currentOptions.imageInfinityMove || this.selectedIndex < this.images.length - 1)
                  ? true : false;
          }
          else {
              return false;
          }
      }
      canShowPrev() {
          if (this.images && this.currentOptions) {
              return (this.currentOptions.imageInfinityMove || this.selectedIndex > 0) ? true : false;
          }
          else {
              return false;
          }
      }
      previewSelect(index) {
          this.previewChange.emit({ index, image: this.images[index] });
      }
      moveThumbnailsRight() {
          this.thubmnails.moveRight();
      }
      moveThumbnailsLeft() {
          this.thubmnails.moveLeft();
      }
      canMoveThumbnailsRight() {
          return this.thubmnails.canMoveRight();
      }
      canMoveThumbnailsLeft() {
          return this.thubmnails.canMoveLeft();
      }
      resetThumbnails() {
          if (this.thubmnails) {
              this.thubmnails.reset(this.currentOptions.startIndex);
          }
      }
      select(index) {
          this.selectedIndex = index;
          this.change.emit({
              index,
              image: this.images[index]
          });
      }
      checkFullWidth() {
          if (this.currentOptions && this.currentOptions.fullWidth) {
              this.width = document.body.clientWidth + 'px';
              this.left = (-(document.body.clientWidth -
                  this.myElement.nativeElement.parentNode.innerWidth) / 2) + 'px';
          }
      }
      setImages() {
          this.smallImages = this.images.map((img) => img.small);
          this.mediumImages = this.images.map((img, i) => new NgxGalleryOrderedImage({
              src: img.medium,
              index: i
          }));
          this.bigImages = this.images.map((img) => img.big);
          this.descriptions = this.images.map((img) => img.description);
          this.links = this.images.map((img) => img.url);
          this.labels = this.images.map((img) => img.label);
      }
      setBreakpoint() {
          this.prevBreakpoint = this.breakpoint;
          let breakpoints;
          if (typeof window !== 'undefined') {
              breakpoints = this.options.filter((opt) => opt.breakpoint >= window.innerWidth)
                  .map((opt) => opt.breakpoint);
          }
          if (breakpoints && breakpoints.length) {
              this.breakpoint = breakpoints.pop();
          }
          else {
              this.breakpoint = undefined;
          }
      }
      sortOptions() {
          this.options = [
              ...this.options.filter((a) => a.breakpoint === undefined),
              ...this.options
                  .filter((a) => a.breakpoint !== undefined)
                  .sort((a, b) => b.breakpoint - a.breakpoint)
          ];
      }
      setOptions() {
          this.currentOptions = new NgxGalleryOptions({});
          this.options
              .filter((opt) => opt.breakpoint === undefined || opt.breakpoint >= this.breakpoint)
              .map((opt) => this.combineOptions(this.currentOptions, opt));
          this.width = this.currentOptions.width;
          this.height = this.currentOptions.height;
      }
      combineOptions(first, second) {
          Object.keys(second).map((val) => first[val] = second[val] !== undefined ? second[val] : first[val]);
      }
  };
  __decorate([
      Input()
  ], NgxGalleryComponent.prototype, "options", void 0);
  __decorate([
      Input()
  ], NgxGalleryComponent.prototype, "images", void 0);
  __decorate([
      Output()
  ], NgxGalleryComponent.prototype, "imagesReady", void 0);
  __decorate([
      Output()
  ], NgxGalleryComponent.prototype, "change", void 0);
  __decorate([
      Output()
  ], NgxGalleryComponent.prototype, "previewOpen", void 0);
  __decorate([
      Output()
  ], NgxGalleryComponent.prototype, "previewClose", void 0);
  __decorate([
      Output()
  ], NgxGalleryComponent.prototype, "previewChange", void 0);
  __decorate([
      ViewChild(NgxGalleryPreviewComponent)
  ], NgxGalleryComponent.prototype, "preview", void 0);
  __decorate([
      ViewChild(NgxGalleryImageComponent)
  ], NgxGalleryComponent.prototype, "image", void 0);
  __decorate([
      ViewChild(NgxGalleryThumbnailsComponent)
  ], NgxGalleryComponent.prototype, "thubmnails", void 0);
  __decorate([
      HostBinding('style.width')
  ], NgxGalleryComponent.prototype, "width", void 0);
  __decorate([
      HostBinding('style.height')
  ], NgxGalleryComponent.prototype, "height", void 0);
  __decorate([
      HostBinding('style.left')
  ], NgxGalleryComponent.prototype, "left", void 0);
  __decorate([
      HostListener('window:resize')
  ], NgxGalleryComponent.prototype, "onResize", null);
  NgxGalleryComponent = __decorate([
      Component({
          selector: 'ngx-gallery',
          template: `
      <div class="ngx-gallery-layout {{currentOptions?.layout}}">
        <ngx-gallery-image *ngIf="currentOptions?.image" [style.height]="getImageHeight()" [images]="mediumImages" [clickable]="currentOptions?.preview" [selectedIndex]="selectedIndex" [arrows]="currentOptions?.imageArrows" [arrowsAutoHide]="currentOptions?.imageArrowsAutoHide" [arrowPrevIcon]="currentOptions?.arrowPrevIcon" [arrowNextIcon]="currentOptions?.arrowNextIcon" [swipe]="currentOptions?.imageSwipe" [animation]="currentOptions?.imageAnimation" [size]="currentOptions?.imageSize" [autoPlay]="currentOptions?.imageAutoPlay" [autoPlayInterval]="currentOptions?.imageAutoPlayInterval" [autoPlayPauseOnHover]="currentOptions?.imageAutoPlayPauseOnHover" [infinityMove]="currentOptions?.imageInfinityMove"  [lazyLoading]="currentOptions?.lazyLoading" [actions]="currentOptions?.imageActions" [descriptions]="descriptions" [showDescription]="currentOptions?.imageDescription" [bullets]="currentOptions?.imageBullets" (onClick)="openPreview($event)" (onActiveChange)="selectFromImage($event)"></ngx-gallery-image>
  
        <ngx-gallery-thumbnails *ngIf="currentOptions?.thumbnails" [style.marginTop]="getThumbnailsMarginTop()" [style.marginBottom]="getThumbnailsMarginBottom()" [style.height]="getThumbnailsHeight()" [images]="smallImages" [links]="currentOptions?.thumbnailsAsLinks ? links : []" [labels]="labels" [linkTarget]="currentOptions?.linkTarget" [selectedIndex]="selectedIndex" [columns]="currentOptions?.thumbnailsColumns" [rows]="currentOptions?.thumbnailsRows" [margin]="currentOptions?.thumbnailMargin" [arrows]="currentOptions?.thumbnailsArrows" [arrowsAutoHide]="currentOptions?.thumbnailsArrowsAutoHide" [arrowPrevIcon]="currentOptions?.arrowPrevIcon" [arrowNextIcon]="currentOptions?.arrowNextIcon" [clickable]="currentOptions?.image || currentOptions?.preview" [swipe]="currentOptions?.thumbnailsSwipe" [size]="currentOptions?.thumbnailSize" [moveSize]="currentOptions?.thumbnailsMoveSize" [order]="currentOptions?.thumbnailsOrder" [remainingCount]="currentOptions?.thumbnailsRemainingCount" [lazyLoading]="currentOptions?.lazyLoading" [actions]="currentOptions?.thumbnailActions"  (onActiveChange)="selectFromThumbnails($event)"></ngx-gallery-thumbnails>
  
        <ngx-gallery-preview [images]="bigImages" [descriptions]="descriptions" [showDescription]="currentOptions?.previewDescription" [arrowPrevIcon]="currentOptions?.arrowPrevIcon" [arrowNextIcon]="currentOptions?.arrowNextIcon" [closeIcon]="currentOptions?.closeIcon" [fullscreenIcon]="currentOptions?.fullscreenIcon" [spinnerIcon]="currentOptions?.spinnerIcon" [arrows]="currentOptions?.previewArrows" [arrowsAutoHide]="currentOptions?.previewArrowsAutoHide" [swipe]="currentOptions?.previewSwipe" [fullscreen]="currentOptions?.previewFullscreen" [forceFullscreen]="currentOptions?.previewForceFullscreen" [closeOnClick]="currentOptions?.previewCloseOnClick" [closeOnEsc]="currentOptions?.previewCloseOnEsc" [keyboardNavigation]="currentOptions?.previewKeyboardNavigation" [animation]="currentOptions?.previewAnimation" [autoPlay]="currentOptions?.previewAutoPlay" [autoPlayInterval]="currentOptions?.previewAutoPlayInterval" [autoPlayPauseOnHover]="currentOptions?.previewAutoPlayPauseOnHover" [infinityMove]="currentOptions?.previewInfinityMove" [zoom]="currentOptions?.previewZoom" [zoomStep]="currentOptions?.previewZoomStep" [zoomMax]="currentOptions?.previewZoomMax" [zoomMin]="currentOptions?.previewZoomMin" [zoomInIcon]="currentOptions?.zoomInIcon" [zoomOutIcon]="currentOptions?.zoomOutIcon" [actions]="currentOptions?.actions" [rotate]="currentOptions?.previewRotate" [rotateLeftIcon]="currentOptions?.rotateLeftIcon" [rotateRightIcon]="currentOptions?.rotateRightIcon" [download]="currentOptions?.previewDownload" [downloadIcon]="currentOptions?.downloadIcon" [bullets]="currentOptions?.previewBullets" (onClose)="onPreviewClose()" (onOpen)="onPreviewOpen()" (onActiveChange)="previewSelect($event)" [class.ngx-gallery-active]="previewEnabled"></ngx-gallery-preview>
      </div>
    `,
          providers: [NgxGalleryHelperService],
          styles: [":host{display:inline-block}:host>*{box-sizing:border-box;float:left}:host>.ngx-gallery-icon{color:#fff;display:inline-block;font-size:25px;position:absolute;z-index:2000}:host>.ngx-gallery-icon .ngx-gallery-icon-content{display:block}:host>.ngx-gallery-clickable{cursor:pointer}:host>.ngx-gallery-icons-wrapper .ngx-gallery-icon{cursor:pointer;font-size:20px;margin-right:5px;margin-top:5px;position:relative}:host>.ngx-gallery-icons-wrapper{float:right}:host .ngx-gallery-layout{-webkit-box-direction:normal;-webkit-box-orient:vertical;display:-webkit-box;display:flex;flex-direction:column;height:100%;width:100%}:host .ngx-gallery-layout.thumbnails-top ngx-gallery-image{-webkit-box-ordinal-group:3;order:2}:host .ngx-gallery-layout.thumbnails-bottom ngx-gallery-image,:host .ngx-gallery-layout.thumbnails-top ngx-gallery-thumbnails{-webkit-box-ordinal-group:2;order:1}:host .ngx-gallery-layout.thumbnails-bottom ngx-gallery-thumbnails{-webkit-box-ordinal-group:3;order:2}"]
      })
  ], NgxGalleryComponent);
  
  let NgxGalleryActionComponent = class NgxGalleryActionComponent {
      constructor() {
          this.disabled = false;
          this.titleText = '';
          this.onClick = new EventEmitter();
      }
      handleClick(event) {
          if (!this.disabled) {
              this.onClick.emit(event);
          }
          event.stopPropagation();
          event.preventDefault();
      }
  };
  __decorate([
      Input()
  ], NgxGalleryActionComponent.prototype, "icon", void 0);
  __decorate([
      Input()
  ], NgxGalleryActionComponent.prototype, "disabled", void 0);
  __decorate([
      Input()
  ], NgxGalleryActionComponent.prototype, "titleText", void 0);
  __decorate([
      Output()
  ], NgxGalleryActionComponent.prototype, "onClick", void 0);
  NgxGalleryActionComponent = __decorate([
      Component({
          selector: 'ngx-gallery-action',
          template: "<div class=\"ngx-gallery-icon\" [class.ngx-gallery-icon-disabled]=\"disabled\"\naria-hidden=\"true\"\ntitle=\"{{ titleText }}\"\n(click)=\"handleClick($event)\">\n    <i class=\"ngx-gallery-icon-content {{ icon }}\"></i>\n</div>",
          changeDetection: ChangeDetectionStrategy.OnPush,
          styles: [""]
      })
  ], NgxGalleryActionComponent);
  
  let NgxGalleryArrowsComponent = class NgxGalleryArrowsComponent {
      constructor() {
          this.onPrevClick = new EventEmitter();
          this.onNextClick = new EventEmitter();
      }
      handlePrevClick() {
          this.onPrevClick.emit();
      }
      handleNextClick() {
          this.onNextClick.emit();
      }
  };
  __decorate([
      Input()
  ], NgxGalleryArrowsComponent.prototype, "prevDisabled", void 0);
  __decorate([
      Input()
  ], NgxGalleryArrowsComponent.prototype, "nextDisabled", void 0);
  __decorate([
      Input()
  ], NgxGalleryArrowsComponent.prototype, "arrowPrevIcon", void 0);
  __decorate([
      Input()
  ], NgxGalleryArrowsComponent.prototype, "arrowNextIcon", void 0);
  __decorate([
      Output()
  ], NgxGalleryArrowsComponent.prototype, "onPrevClick", void 0);
  __decorate([
      Output()
  ], NgxGalleryArrowsComponent.prototype, "onNextClick", void 0);
  NgxGalleryArrowsComponent = __decorate([
      Component({
          selector: 'ngx-gallery-arrows',
          template: "<div class=\"ngx-gallery-arrow-wrapper ngx-gallery-arrow-left\">\n    <div class=\"ngx-gallery-icon ngx-gallery-arrow\" aria-hidden=\"true\" (click)=\"handlePrevClick()\" [class.ngx-gallery-disabled]=\"prevDisabled\">\n        <i class=\"ngx-gallery-icon-content {{arrowPrevIcon}}\"></i>\n    </div>\n</div>\n<div class=\"ngx-gallery-arrow-wrapper ngx-gallery-arrow-right\">\n    <div class=\"ngx-gallery-icon ngx-gallery-arrow\" aria-hidden=\"true\" (click)=\"handleNextClick()\" [class.ngx-gallery-disabled]=\"nextDisabled\">\n        <i class=\"ngx-gallery-icon-content {{arrowNextIcon}}\"></i>\n    </div>\n</div>",
          styles: [".ngx-gallery-arrow-wrapper{display:table;height:100%;position:absolute;table-layout:fixed;width:1px;z-index:2000}.ngx-gallery-arrow-left{left:0}.ngx-gallery-arrow-right{right:0}.ngx-gallery-arrow{-webkit-transform:translateY(-50%);cursor:pointer;top:50%;transform:translateY(-50%)}.ngx-gallery-arrow.ngx-gallery-disabled{cursor:default;opacity:.6}.ngx-gallery-arrow-left .ngx-gallery-arrow{left:10px}.ngx-gallery-arrow-right .ngx-gallery-arrow{right:10px}"]
      })
  ], NgxGalleryArrowsComponent);
  
  let NgxGalleryBulletsComponent = class NgxGalleryBulletsComponent {
      constructor() {
          this.active = 0;
          this.onChange = new EventEmitter();
      }
      getBullets() {
          return Array(this.count);
      }
      handleChange(event, index) {
          this.onChange.emit(index);
      }
  };
  __decorate([
      Input()
  ], NgxGalleryBulletsComponent.prototype, "count", void 0);
  __decorate([
      Input()
  ], NgxGalleryBulletsComponent.prototype, "active", void 0);
  __decorate([
      Output()
  ], NgxGalleryBulletsComponent.prototype, "onChange", void 0);
  NgxGalleryBulletsComponent = __decorate([
      Component({
          selector: 'ngx-gallery-bullets',
          template: "<div class=\"ngx-gallery-bullet\" *ngFor=\"let bullet of getBullets(); let i = index;\" (click)=\"handleChange($event, i)\" [ngClass]=\"{ 'ngx-gallery-active': i == active }\"></div>",
          styles: [":host{-webkit-transform:translateX(-50%);bottom:0;display:-webkit-inline-box;display:inline-flex;left:50%;padding:10px;position:absolute;transform:translateX(-50%);z-index:2000}.ngx-gallery-bullet{background:#fff;border-radius:50%;cursor:pointer;height:10px;width:10px}.ngx-gallery-bullet:not(:first-child){margin-left:5px}.ngx-gallery-bullet.ngx-gallery-active,.ngx-gallery-bullet:hover{background:#000}"]
      })
  ], NgxGalleryBulletsComponent);
  
  let NgxGalleryModule = class NgxGalleryModule {
  };
  NgxGalleryModule = __decorate([
      NgModule({
          declarations: [
              NgxGalleryComponent,
              NgxGalleryPreviewComponent,
              NgxGalleryImageComponent,
              NgxGalleryThumbnailsComponent,
              NgxGalleryActionComponent,
              NgxGalleryArrowsComponent,
              NgxGalleryBulletsComponent
          ],
          imports: [
              CommonModule
          ],
          exports: [NgxGalleryComponent]
      })
  ], NgxGalleryModule);
  
  class NgxGalleryImage {
      constructor(obj) {
          this.small = obj.small;
          this.medium = obj.medium;
          this.big = obj.big;
          this.description = obj.description;
          this.url = obj.url;
          this.label = obj.label;
      }
  }
  
  /*
   * Public API Surface of ngx-gallery
   */
  
  /**
   * Generated bundle index. Do not edit.
   */
  
  export { NgxGalleryAction, NgxGalleryActionComponent, NgxGalleryAnimation, NgxGalleryArrowsComponent, NgxGalleryBulletsComponent, NgxGalleryComponent, NgxGalleryHelperService, NgxGalleryImage, NgxGalleryImageComponent, NgxGalleryImageSize, NgxGalleryLayout, NgxGalleryModule, NgxGalleryOptions, NgxGalleryOrder, NgxGalleryOrderedImage, NgxGalleryPreviewComponent, NgxGalleryThumbnailsComponent };
  //# sourceMappingURL=ngx-gallery-9.js.map
  