{"version":3,"file":"axulus-uikit-galleria.mjs","sources":["../../src/app/components/galleria/galleria.ts","../../src/app/components/galleria/axulus-uikit-galleria.ts"],"sourcesContent":["import { animate, AnimationEvent, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n  AfterContentChecked,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgModule,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { PrimeNGConfig, PrimeTemplate, SharedModule } from '@axulus/uikit/api';\nimport { DomHandler } from '@axulus/uikit/dom';\nimport { RippleModule } from '@axulus/uikit/ripple';\nimport { UniqueComponentId, ZIndexUtils } from '@axulus/uikit/utils';\n\n@Component({\n  selector: 'p-galleria',\n  template: `\n    <div *ngIf=\"fullScreen; else windowed\">\n      <div\n        *ngIf=\"maskVisible\"\n        #mask\n        [ngClass]=\"{\n          'p-galleria-mask p-component-overlay p-component-overlay-enter': true,\n          'p-galleria-visible': this.visible\n        }\"\n        [class]=\"maskClass\"\n      >\n        <p-galleriaContent\n          *ngIf=\"visible\"\n          [@animation]=\"{\n            value: 'visible',\n            params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions }\n          }\"\n          (@animation.start)=\"onAnimationStart($event)\"\n          (@animation.done)=\"onAnimationEnd($event)\"\n          [value]=\"value\"\n          [activeIndex]=\"activeIndex\"\n          [numVisible]=\"numVisible\"\n          (maskHide)=\"onMaskHide()\"\n          (activeItemChange)=\"onActiveItemChange($event)\"\n          [ngStyle]=\"containerStyle\"\n        ></p-galleriaContent>\n      </div>\n    </div>\n\n    <ng-template #windowed>\n      <p-galleriaContent\n        [value]=\"value\"\n        [activeIndex]=\"activeIndex\"\n        [numVisible]=\"numVisible\"\n        (activeItemChange)=\"onActiveItemChange($event)\"\n      ></p-galleriaContent>\n    </ng-template>\n  `,\n  animations: [\n    trigger('animation', [\n      transition('void => visible', [style({ transform: 'scale(0.7)', opacity: 0 }), animate('{{showTransitionParams}}')]),\n      transition('visible => void', [animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))])\n    ])\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./galleria.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class Galleria implements OnChanges, OnDestroy {\n  @Input() get activeIndex(): number {\n    return this._activeIndex;\n  }\n\n  set activeIndex(activeIndex) {\n    this._activeIndex = activeIndex;\n  }\n\n  @Input() fullScreen: boolean = false;\n\n  @Input() id: string;\n\n  @Input() value: any[];\n\n  @Input() numVisible: number = 3;\n\n  @Input() responsiveOptions: any[];\n\n  @Input() showItemNavigators: boolean = false;\n\n  @Input() showThumbnailNavigators: boolean = true;\n\n  @Input() showItemNavigatorsOnHover: boolean = false;\n\n  @Input() changeItemOnIndicatorHover: boolean = false;\n\n  @Input() circular: boolean = false;\n\n  @Input() autoPlay: boolean = false;\n\n  @Input() transitionInterval: number = 4000;\n\n  @Input() showThumbnails: boolean = true;\n\n  @Input() thumbnailsPosition: string = 'bottom';\n\n  @Input() verticalThumbnailViewPortHeight: string = '300px';\n\n  @Input() showIndicators: boolean = false;\n\n  @Input() showIndicatorsOnItem: boolean = false;\n\n  @Input() indicatorsPosition: string = 'bottom';\n\n  @Input() baseZIndex: number = 0;\n\n  @Input() maskClass: string;\n\n  @Input() containerClass: string;\n\n  @Input() containerStyle: any;\n\n  @Input() showTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n\n  @Input() hideTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n\n  @ViewChild('mask') mask: ElementRef;\n\n  @Input() get visible(): boolean {\n    return this._visible;\n  }\n\n  set visible(visible: boolean) {\n    this._visible = visible;\n\n    if (this._visible && !this.maskVisible) {\n      this.maskVisible = true;\n    }\n  }\n\n  @Output() activeIndexChange: EventEmitter<any> = new EventEmitter();\n\n  @Output() visibleChange: EventEmitter<any> = new EventEmitter();\n\n  @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n  _visible: boolean = false;\n\n  _activeIndex: number = 0;\n\n  headerFacet: any;\n\n  footerFacet: any;\n\n  indicatorFacet: any;\n\n  captionFacet: any;\n\n  maskVisible: boolean = false;\n\n  constructor(public element: ElementRef, public cd: ChangeDetectorRef, public config: PrimeNGConfig) {}\n\n  ngAfterContentInit() {\n    this.templates.forEach((item) => {\n      switch (item.getType()) {\n        case 'header':\n          this.headerFacet = item.template;\n          break;\n        case 'footer':\n          this.footerFacet = item.template;\n          break;\n        case 'indicator':\n          this.indicatorFacet = item.template;\n          break;\n        case 'caption':\n          this.captionFacet = item.template;\n          break;\n      }\n    });\n  }\n\n  ngOnChanges(simpleChanges: SimpleChanges) {\n    if (simpleChanges.value && simpleChanges.value.currentValue?.length < this.numVisible) {\n      this.numVisible = simpleChanges.value.currentValue.length;\n    }\n  }\n\n  onMaskHide() {\n    this.visible = false;\n    this.visibleChange.emit(false);\n  }\n\n  onActiveItemChange(index) {\n    if (this.activeIndex !== index) {\n      this.activeIndex = index;\n      this.activeIndexChange.emit(index);\n    }\n  }\n\n  onAnimationStart(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'visible':\n        this.enableModality();\n        break;\n\n      case 'void':\n        DomHandler.addClass(this.mask.nativeElement, 'p-component-overlay-leave');\n        break;\n    }\n  }\n\n  onAnimationEnd(event: AnimationEvent) {\n    switch (event.toState) {\n      case 'void':\n        this.disableModality();\n        break;\n    }\n  }\n\n  enableModality() {\n    DomHandler.addClass(document.body, 'p-overflow-hidden');\n    this.cd.markForCheck();\n\n    if (this.mask) {\n      ZIndexUtils.set('modal', this.mask.nativeElement, this.baseZIndex || this.config.zIndex.modal);\n    }\n  }\n\n  disableModality() {\n    DomHandler.removeClass(document.body, 'p-overflow-hidden');\n    this.maskVisible = false;\n    this.cd.markForCheck();\n\n    if (this.mask) {\n      ZIndexUtils.clear(this.mask.nativeElement);\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.fullScreen) {\n      DomHandler.removeClass(document.body, 'p-overflow-hidden');\n    }\n\n    if (this.mask) {\n      this.disableModality();\n    }\n  }\n}\n\n@Component({\n  selector: 'p-galleriaContent',\n  template: `\n    <div\n      [attr.id]=\"id\"\n      *ngIf=\"value && value.length > 0\"\n      [ngClass]=\"{\n        'p-galleria p-component': true,\n        'p-galleria-fullscreen': this.galleria.fullScreen,\n        'p-galleria-indicator-onitem': this.galleria.showIndicatorsOnItem,\n        'p-galleria-item-nav-onhover': this.galleria.showItemNavigatorsOnHover && !this.galleria.fullScreen\n      }\"\n      [ngStyle]=\"!galleria.fullScreen ? galleria.containerStyle : {}\"\n      [class]=\"galleriaClass()\"\n    >\n      <button *ngIf=\"galleria.fullScreen\" type=\"button\" class=\"p-galleria-close p-link\" (click)=\"maskHide.emit()\" pRipple>\n        <span class=\"p-galleria-close-icon pi pi-times\"></span>\n      </button>\n      <div *ngIf=\"galleria.templates && galleria.headerFacet\" class=\"p-galleria-header\">\n        <p-galleriaItemSlot type=\"header\" [templates]=\"galleria.templates\"></p-galleriaItemSlot>\n      </div>\n      <div class=\"p-galleria-content\">\n        <p-galleriaItem\n          [value]=\"value\"\n          [activeIndex]=\"activeIndex\"\n          [circular]=\"galleria.circular\"\n          [templates]=\"galleria.templates\"\n          (onActiveIndexChange)=\"onActiveIndexChange($event)\"\n          [showIndicators]=\"galleria.showIndicators\"\n          [changeItemOnIndicatorHover]=\"galleria.changeItemOnIndicatorHover\"\n          [indicatorFacet]=\"galleria.indicatorFacet\"\n          [captionFacet]=\"galleria.captionFacet\"\n          [showItemNavigators]=\"galleria.showItemNavigators\"\n          [autoPlay]=\"galleria.autoPlay\"\n          [slideShowActive]=\"slideShowActive\"\n          (startSlideShow)=\"startSlideShow()\"\n          (stopSlideShow)=\"stopSlideShow()\"\n        ></p-galleriaItem>\n\n        <p-galleriaThumbnails\n          *ngIf=\"galleria.showThumbnails\"\n          [containerId]=\"id\"\n          [value]=\"value\"\n          (onActiveIndexChange)=\"onActiveIndexChange($event)\"\n          [activeIndex]=\"activeIndex\"\n          [templates]=\"galleria.templates\"\n          [numVisible]=\"numVisible\"\n          [responsiveOptions]=\"galleria.responsiveOptions\"\n          [circular]=\"galleria.circular\"\n          [isVertical]=\"isVertical()\"\n          [contentHeight]=\"galleria.verticalThumbnailViewPortHeight\"\n          [showThumbnailNavigators]=\"galleria.showThumbnailNavigators\"\n          [slideShowActive]=\"slideShowActive\"\n          (stopSlideShow)=\"stopSlideShow()\"\n        ></p-galleriaThumbnails>\n      </div>\n      <div *ngIf=\"galleria.templates && galleria.footerFacet\" class=\"p-galleria-footer\">\n        <p-galleriaItemSlot type=\"footer\" [templates]=\"galleria.templates\"></p-galleriaItemSlot>\n      </div>\n    </div>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GalleriaContent {\n  @Input() get activeIndex(): number {\n    return this._activeIndex;\n  }\n\n  set activeIndex(activeIndex: number) {\n    this._activeIndex = activeIndex;\n  }\n\n  @Input() value: any[] = [];\n\n  @Input() numVisible: number;\n\n  @Output() maskHide: EventEmitter<any> = new EventEmitter();\n\n  @Output() activeItemChange: EventEmitter<any> = new EventEmitter();\n\n  id: string = this.galleria.id || UniqueComponentId();\n\n  slideShowActicve: boolean = false;\n\n  _activeIndex: number = 0;\n\n  slideShowActive: boolean = true;\n\n  interval: any;\n\n  styleClass: string;\n\n  constructor(public galleria: Galleria, public cd: ChangeDetectorRef) {}\n\n  galleriaClass() {\n    const thumbnailsPosClass =\n      this.galleria.showThumbnails && this.getPositionClass('p-galleria-thumbnails', this.galleria.thumbnailsPosition);\n    const indicatorPosClass =\n      this.galleria.showIndicators && this.getPositionClass('p-galleria-indicators', this.galleria.indicatorsPosition);\n\n    return (\n      (this.galleria.containerClass ? this.galleria.containerClass + ' ' : '') +\n      (thumbnailsPosClass ? thumbnailsPosClass + ' ' : '') +\n      (indicatorPosClass ? indicatorPosClass + ' ' : '')\n    );\n  }\n\n  startSlideShow() {\n    this.interval = setInterval(() => {\n      let activeIndex = this.galleria.circular && this.value.length - 1 === this.activeIndex ? 0 : this.activeIndex + 1;\n      this.onActiveIndexChange(activeIndex);\n      this.activeIndex = activeIndex;\n    }, this.galleria.transitionInterval);\n\n    this.slideShowActive = true;\n  }\n\n  stopSlideShow() {\n    if (this.interval) {\n      clearInterval(this.interval);\n    }\n\n    this.slideShowActive = false;\n  }\n\n  getPositionClass(preClassName, position) {\n    const positions = ['top', 'left', 'bottom', 'right'];\n    const pos = positions.find((item) => item === position);\n\n    return pos ? `${preClassName}-${pos}` : '';\n  }\n\n  isVertical() {\n    return this.galleria.thumbnailsPosition === 'left' || this.galleria.thumbnailsPosition === 'right';\n  }\n\n  onActiveIndexChange(index) {\n    if (this.activeIndex !== index) {\n      this.activeIndex = index;\n      this.activeItemChange.emit(this.activeIndex);\n    }\n  }\n}\n\n@Component({\n  selector: 'p-galleriaItemSlot',\n  template: `\n    <ng-container *ngIf=\"contentTemplate\">\n      <ng-container *ngTemplateOutlet=\"contentTemplate; context: context\"></ng-container>\n    </ng-container>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GalleriaItemSlot {\n  @Input() templates: QueryList<any>;\n\n  @Input() index: number;\n\n  @Input() get item(): any {\n    return this._item;\n  }\n\n  set item(item: any) {\n    this._item = item;\n    if (this.templates) {\n      this.templates.forEach((item) => {\n        if (item.getType() === this.type) {\n          switch (this.type) {\n            case 'item':\n            case 'caption':\n            case 'thumbnail':\n              this.context = { $implicit: this.item };\n              this.contentTemplate = item.template;\n              break;\n          }\n        }\n      });\n    }\n  }\n\n  @Input() type: string;\n\n  contentTemplate: TemplateRef<any>;\n\n  context: any;\n\n  _item: any;\n\n  ngAfterContentInit() {\n    this.templates.forEach((item) => {\n      if (item.getType() === this.type) {\n        switch (this.type) {\n          case 'item':\n          case 'caption':\n          case 'thumbnail':\n            this.context = { $implicit: this.item };\n            this.contentTemplate = item.template;\n            break;\n          case 'indicator':\n            this.context = { $implicit: this.index };\n            this.contentTemplate = item.template;\n            break;\n          default:\n            this.context = {};\n            this.contentTemplate = item.template;\n            break;\n        }\n      }\n    });\n  }\n}\n\n@Component({\n  selector: 'p-galleriaItem',\n  template: `\n    <div class=\"p-galleria-item-wrapper\">\n      <div class=\"p-galleria-item-container\">\n        <button\n          *ngIf=\"showItemNavigators\"\n          type=\"button\"\n          [ngClass]=\"{\n            'p-galleria-item-prev p-galleria-item-nav p-link': true,\n            'p-disabled': this.isNavBackwardDisabled()\n          }\"\n          (click)=\"navBackward($event)\"\n          [disabled]=\"isNavBackwardDisabled()\"\n          pRipple\n        >\n          <span class=\"p-galleria-item-prev-icon pi pi-chevron-left\"></span>\n        </button>\n        <p-galleriaItemSlot type=\"item\" [item]=\"activeItem\" [templates]=\"templates\" class=\"p-galleria-item\"></p-galleriaItemSlot>\n        <button\n          *ngIf=\"showItemNavigators\"\n          type=\"button\"\n          [ngClass]=\"{\n            'p-galleria-item-next p-galleria-item-nav p-link': true,\n            'p-disabled': this.isNavForwardDisabled()\n          }\"\n          (click)=\"navForward($event)\"\n          [disabled]=\"isNavForwardDisabled()\"\n          pRipple\n        >\n          <span class=\"p-galleria-item-next-icon pi pi-chevron-right\"></span>\n        </button>\n        <div class=\"p-galleria-caption\" *ngIf=\"captionFacet\">\n          <p-galleriaItemSlot type=\"caption\" [item]=\"activeItem\" [templates]=\"templates\"></p-galleriaItemSlot>\n        </div>\n      </div>\n      <ul *ngIf=\"showIndicators\" class=\"p-galleria-indicators p-reset\">\n        <li\n          *ngFor=\"let item of value; let index = index\"\n          tabindex=\"0\"\n          (click)=\"onIndicatorClick(index)\"\n          (mouseenter)=\"onIndicatorMouseEnter(index)\"\n          (keydown.enter)=\"onIndicatorKeyDown(index)\"\n          [ngClass]=\"{ 'p-galleria-indicator': true, 'p-highlight': isIndicatorItemActive(index) }\"\n        >\n          <button type=\"button\" tabIndex=\"-1\" class=\"p-link\" *ngIf=\"!indicatorFacet\"></button>\n          <p-galleriaItemSlot type=\"indicator\" [index]=\"index\" [templates]=\"templates\"></p-galleriaItemSlot>\n        </li>\n      </ul>\n    </div>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GalleriaItem implements OnInit {\n  @Input() circular: boolean = false;\n\n  @Input() value: any[];\n\n  @Input() showItemNavigators: boolean = false;\n\n  @Input() showIndicators: boolean = true;\n\n  @Input() slideShowActive: boolean = true;\n\n  @Input() changeItemOnIndicatorHover: boolean = true;\n\n  @Input() autoPlay: boolean = false;\n\n  @Input() templates: QueryList<any>;\n\n  @Input() indicatorFacet: any;\n\n  @Input() captionFacet: any;\n\n  @Output() startSlideShow: EventEmitter<any> = new EventEmitter();\n\n  @Output() stopSlideShow: EventEmitter<any> = new EventEmitter();\n\n  @Output() onActiveIndexChange: EventEmitter<any> = new EventEmitter();\n\n  @Input() get activeIndex(): number {\n    return this._activeIndex;\n  }\n\n  set activeIndex(activeIndex) {\n    this._activeIndex = activeIndex;\n  }\n\n  get activeItem() {\n    return this.value[this._activeIndex];\n  }\n\n  _activeIndex: number = 0;\n\n  ngOnInit() {\n    if (this.autoPlay) {\n      this.startSlideShow.emit();\n    }\n  }\n\n  next() {\n    let nextItemIndex = this.activeIndex + 1;\n    let activeIndex = this.circular && this.value.length - 1 === this.activeIndex ? 0 : nextItemIndex;\n    this.onActiveIndexChange.emit(activeIndex);\n  }\n\n  prev() {\n    let prevItemIndex = this.activeIndex !== 0 ? this.activeIndex - 1 : 0;\n    let activeIndex = this.circular && this.activeIndex === 0 ? this.value.length - 1 : prevItemIndex;\n    this.onActiveIndexChange.emit(activeIndex);\n  }\n\n  stopTheSlideShow() {\n    if (this.slideShowActive && this.stopSlideShow) {\n      this.stopSlideShow.emit();\n    }\n  }\n\n  navForward(e) {\n    this.stopTheSlideShow();\n    this.next();\n\n    if (e && e.cancelable) {\n      e.preventDefault();\n    }\n  }\n\n  navBackward(e) {\n    this.stopTheSlideShow();\n    this.prev();\n\n    if (e && e.cancelable) {\n      e.preventDefault();\n    }\n  }\n\n  onIndicatorClick(index) {\n    this.stopTheSlideShow();\n    this.onActiveIndexChange.emit(index);\n  }\n\n  onIndicatorMouseEnter(index) {\n    if (this.changeItemOnIndicatorHover) {\n      this.stopTheSlideShow();\n      this.onActiveIndexChange.emit(index);\n    }\n  }\n\n  onIndicatorKeyDown(index) {\n    this.stopTheSlideShow();\n    this.onActiveIndexChange.emit(index);\n  }\n\n  isNavForwardDisabled() {\n    return !this.circular && this.activeIndex === this.value.length - 1;\n  }\n\n  isNavBackwardDisabled() {\n    return !this.circular && this.activeIndex === 0;\n  }\n\n  isIndicatorItemActive(index) {\n    return this.activeIndex === index;\n  }\n}\n\n@Component({\n  selector: 'p-galleriaThumbnails',\n  template: `\n    <div class=\"p-galleria-thumbnail-wrapper\">\n      <div class=\"p-galleria-thumbnail-container\">\n        <button\n          *ngIf=\"showThumbnailNavigators\"\n          type=\"button\"\n          [ngClass]=\"{ 'p-galleria-thumbnail-prev p-link': true, 'p-disabled': this.isNavBackwardDisabled() }\"\n          (click)=\"navBackward($event)\"\n          [disabled]=\"isNavBackwardDisabled()\"\n          pRipple\n        >\n          <span\n            [ngClass]=\"{\n              'p-galleria-thumbnail-prev-icon pi': true,\n              'pi-chevron-left': !this.isVertical,\n              'pi-chevron-up': this.isVertical\n            }\"\n          ></span>\n        </button>\n        <div class=\"p-galleria-thumbnail-items-container\" [ngStyle]=\"{ height: isVertical ? contentHeight : '' }\">\n          <div\n            #itemsContainer\n            class=\"p-galleria-thumbnail-items\"\n            (transitionend)=\"onTransitionEnd()\"\n            (touchstart)=\"onTouchStart($event)\"\n            (touchmove)=\"onTouchMove($event)\"\n            (touchend)=\"onTouchEnd($event)\"\n          >\n            <div\n              *ngFor=\"let item of value; let index = index\"\n              [ngClass]=\"{\n                'p-galleria-thumbnail-item': true,\n                'p-galleria-thumbnail-item-current': activeIndex === index,\n                'p-galleria-thumbnail-item-active': isItemActive(index),\n                'p-galleria-thumbnail-item-start': firstItemAciveIndex() === index,\n                'p-galleria-thumbnail-item-end': lastItemActiveIndex() === index\n              }\"\n            >\n              <div\n                class=\"p-galleria-thumbnail-item-content\"\n                [attr.tabindex]=\"getTabIndex(index)\"\n                (click)=\"onItemClick(index)\"\n                (keydown.enter)=\"onItemClick(index)\"\n              >\n                <p-galleriaItemSlot type=\"thumbnail\" [item]=\"item\" [templates]=\"templates\"></p-galleriaItemSlot>\n              </div>\n            </div>\n          </div>\n        </div>\n        <button\n          *ngIf=\"showThumbnailNavigators\"\n          type=\"button\"\n          [ngClass]=\"{ 'p-galleria-thumbnail-next p-link': true, 'p-disabled': this.isNavForwardDisabled() }\"\n          (click)=\"navForward($event)\"\n          [disabled]=\"isNavForwardDisabled()\"\n          pRipple\n        >\n          <span\n            [ngClass]=\"{\n              'p-galleria-thumbnail-next-icon pi': true,\n              'pi-chevron-right': !this.isVertical,\n              'pi-chevron-down': this.isVertical\n            }\"\n          ></span>\n        </button>\n      </div>\n    </div>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GalleriaThumbnails implements OnInit, AfterContentChecked, AfterViewInit, OnDestroy {\n  @Input() containerId: string;\n\n  @Input() value: any[];\n\n  @Input() isVertical: boolean = false;\n\n  @Input() slideShowActive: boolean = false;\n\n  @Input() circular: boolean = false;\n\n  @Input() responsiveOptions: any[];\n\n  @Input() contentHeight: string = '300px';\n\n  @Input() showThumbnailNavigators = true;\n\n  @Input() templates: QueryList<any>;\n\n  @Output() onActiveIndexChange: EventEmitter<any> = new EventEmitter();\n\n  @Output() stopSlideShow: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('itemsContainer') itemsContainer: ElementRef;\n\n  @Input() get numVisible(): number {\n    return this._numVisible;\n  }\n\n  set numVisible(numVisible) {\n    this._numVisible = numVisible;\n    this._oldNumVisible = this.d_numVisible;\n    this.d_numVisible = numVisible;\n  }\n\n  @Input() get activeIndex(): number {\n    return this._activeIndex;\n  }\n\n  set activeIndex(activeIndex) {\n    this._oldactiveIndex = this._activeIndex;\n    this._activeIndex = activeIndex;\n  }\n\n  index: number;\n\n  startPos = null;\n\n  thumbnailsStyle = null;\n\n  sortedResponsiveOptions = null;\n\n  totalShiftedItems: number = 0;\n\n  page: number = 0;\n\n  documentResizeListener: any;\n\n  _numVisible: number = 0;\n\n  d_numVisible: number = 0;\n\n  _oldNumVisible: number = 0;\n\n  _activeIndex: number = 0;\n\n  _oldactiveIndex: number = 0;\n\n  constructor(private cd: ChangeDetectorRef) {}\n\n  ngOnInit() {\n    this.createStyle();\n\n    if (this.responsiveOptions) {\n      this.bindDocumentListeners();\n    }\n  }\n\n  ngAfterContentChecked() {\n    let totalShiftedItems = this.totalShiftedItems;\n\n    if ((this._oldNumVisible !== this.d_numVisible || this._oldactiveIndex !== this._activeIndex) && this.itemsContainer) {\n      if (this._activeIndex <= this.getMedianItemIndex()) {\n        totalShiftedItems = 0;\n      } else if (this.value.length - this.d_numVisible + this.getMedianItemIndex() < this._activeIndex) {\n        totalShiftedItems = this.d_numVisible - this.value.length;\n      } else if (this.value.length - this.d_numVisible < this._activeIndex && this.d_numVisible % 2 === 0) {\n        totalShiftedItems = this._activeIndex * -1 + this.getMedianItemIndex() + 1;\n      } else {\n        totalShiftedItems = this._activeIndex * -1 + this.getMedianItemIndex();\n      }\n\n      if (totalShiftedItems !== this.totalShiftedItems) {\n        this.totalShiftedItems = totalShiftedItems;\n      }\n\n      if (this.itemsContainer && this.itemsContainer.nativeElement) {\n        this.itemsContainer.nativeElement.style.transform = this.isVertical\n          ? `translate3d(0, ${totalShiftedItems * (100 / this.d_numVisible)}%, 0)`\n          : `translate3d(${totalShiftedItems * (100 / this.d_numVisible)}%, 0, 0)`;\n      }\n\n      if (this._oldactiveIndex !== this._activeIndex) {\n        DomHandler.removeClass(this.itemsContainer.nativeElement, 'p-items-hidden');\n        this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';\n      }\n\n      this._oldactiveIndex = this._activeIndex;\n      this._oldNumVisible = this.d_numVisible;\n    }\n  }\n\n  ngAfterViewInit() {\n    this.calculatePosition();\n  }\n\n  createStyle() {\n    if (!this.thumbnailsStyle) {\n      this.thumbnailsStyle = document.createElement('style');\n      this.thumbnailsStyle.type = 'text/css';\n      document.body.appendChild(this.thumbnailsStyle);\n    }\n\n    let innerHTML = `\n            #${this.containerId} .p-galleria-thumbnail-item {\n                flex: 1 0 ${100 / this.d_numVisible}%\n            }\n        `;\n\n    if (this.responsiveOptions) {\n      this.sortedResponsiveOptions = [...this.responsiveOptions];\n      this.sortedResponsiveOptions.sort((data1, data2) => {\n        const value1 = data1.breakpoint;\n        const value2 = data2.breakpoint;\n        let result = null;\n\n        if (value1 == null && value2 != null) result = -1;\n        else if (value1 != null && value2 == null) result = 1;\n        else if (value1 == null && value2 == null) result = 0;\n        else if (typeof value1 === 'string' && typeof value2 === 'string')\n          result = value1.localeCompare(value2, undefined, { numeric: true });\n        else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n        return -1 * result;\n      });\n\n      for (let i = 0; i < this.sortedResponsiveOptions.length; i++) {\n        let res = this.sortedResponsiveOptions[i];\n\n        innerHTML += `\n                    @media screen and (max-width: ${res.breakpoint}) {\n                        #${this.containerId} .p-galleria-thumbnail-item {\n                            flex: 1 0 ${100 / res.numVisible}%\n                        }\n                    }\n                `;\n      }\n    }\n\n    this.thumbnailsStyle.innerHTML = innerHTML;\n  }\n\n  calculatePosition() {\n    if (this.itemsContainer && this.sortedResponsiveOptions) {\n      let windowWidth = window.innerWidth;\n      let matchedResponsiveData = {\n        numVisible: this._numVisible\n      };\n\n      for (let i = 0; i < this.sortedResponsiveOptions.length; i++) {\n        let res = this.sortedResponsiveOptions[i];\n\n        if (parseInt(res.breakpoint, 10) >= windowWidth) {\n          matchedResponsiveData = res;\n        }\n      }\n\n      if (this.d_numVisible !== matchedResponsiveData.numVisible) {\n        this.d_numVisible = matchedResponsiveData.numVisible;\n        this.cd.markForCheck();\n      }\n    }\n  }\n\n  getTabIndex(index) {\n    return this.isItemActive(index) ? 0 : null;\n  }\n\n  navForward(e) {\n    this.stopTheSlideShow();\n\n    let nextItemIndex = this._activeIndex + 1;\n    if (\n      nextItemIndex + this.totalShiftedItems > this.getMedianItemIndex() &&\n      (-1 * this.totalShiftedItems < this.getTotalPageNumber() - 1 || this.circular)\n    ) {\n      this.step(-1);\n    }\n\n    let activeIndex = this.circular && this.value.length - 1 === this._activeIndex ? 0 : nextItemIndex;\n    this.onActiveIndexChange.emit(activeIndex);\n\n    if (e.cancelable) {\n      e.preventDefault();\n    }\n  }\n\n  navBackward(e) {\n    this.stopTheSlideShow();\n\n    let prevItemIndex = this._activeIndex !== 0 ? this._activeIndex - 1 : 0;\n    let diff = prevItemIndex + this.totalShiftedItems;\n    if (this.d_numVisible - diff - 1 > this.getMedianItemIndex() && (-1 * this.totalShiftedItems !== 0 || this.circular)) {\n      this.step(1);\n    }\n\n    let activeIndex = this.circular && this._activeIndex === 0 ? this.value.length - 1 : prevItemIndex;\n    this.onActiveIndexChange.emit(activeIndex);\n\n    if (e.cancelable) {\n      e.preventDefault();\n    }\n  }\n\n  onItemClick(index) {\n    this.stopTheSlideShow();\n\n    let selectedItemIndex = index;\n    if (selectedItemIndex !== this._activeIndex) {\n      const diff = selectedItemIndex + this.totalShiftedItems;\n      let dir = 0;\n      if (selectedItemIndex < this._activeIndex) {\n        dir = this.d_numVisible - diff - 1 - this.getMedianItemIndex();\n        if (dir > 0 && -1 * this.totalShiftedItems !== 0) {\n          this.step(dir);\n        }\n      } else {\n        dir = this.getMedianItemIndex() - diff;\n        if (dir < 0 && -1 * this.totalShiftedItems < this.getTotalPageNumber() - 1) {\n          this.step(dir);\n        }\n      }\n\n      this.activeIndex = selectedItemIndex;\n      this.onActiveIndexChange.emit(this.activeIndex);\n    }\n  }\n\n  step(dir) {\n    let totalShiftedItems = this.totalShiftedItems + dir;\n\n    if (dir < 0 && -1 * totalShiftedItems + this.d_numVisible > this.value.length - 1) {\n      totalShiftedItems = this.d_numVisible - this.value.length;\n    } else if (dir > 0 && totalShiftedItems > 0) {\n      totalShiftedItems = 0;\n    }\n\n    if (this.circular) {\n      if (dir < 0 && this.value.length - 1 === this._activeIndex) {\n        totalShiftedItems = 0;\n      } else if (dir > 0 && this._activeIndex === 0) {\n        totalShiftedItems = this.d_numVisible - this.value.length;\n      }\n    }\n\n    if (this.itemsContainer) {\n      DomHandler.removeClass(this.itemsContainer.nativeElement, 'p-items-hidden');\n      this.itemsContainer.nativeElement.style.transform = this.isVertical\n        ? `translate3d(0, ${totalShiftedItems * (100 / this.d_numVisible)}%, 0)`\n        : `translate3d(${totalShiftedItems * (100 / this.d_numVisible)}%, 0, 0)`;\n      this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';\n    }\n\n    this.totalShiftedItems = totalShiftedItems;\n  }\n\n  stopTheSlideShow() {\n    if (this.slideShowActive && this.stopSlideShow) {\n      this.stopSlideShow.emit();\n    }\n  }\n\n  changePageOnTouch(e, diff) {\n    if (diff < 0) {\n      // left\n      this.navForward(e);\n    } else {\n      // right\n      this.navBackward(e);\n    }\n  }\n\n  getTotalPageNumber() {\n    return this.value.length > this.d_numVisible ? this.value.length - this.d_numVisible + 1 : 0;\n  }\n\n  getMedianItemIndex() {\n    let index = Math.floor(this.d_numVisible / 2);\n\n    return this.d_numVisible % 2 ? index : index - 1;\n  }\n\n  onTransitionEnd() {\n    if (this.itemsContainer && this.itemsContainer.nativeElement) {\n      DomHandler.addClass(this.itemsContainer.nativeElement, 'p-items-hidden');\n      this.itemsContainer.nativeElement.style.transition = '';\n    }\n  }\n\n  onTouchEnd(e) {\n    let touchobj = e.changedTouches[0];\n\n    if (this.isVertical) {\n      this.changePageOnTouch(e, touchobj.pageY - this.startPos.y);\n    } else {\n      this.changePageOnTouch(e, touchobj.pageX - this.startPos.x);\n    }\n  }\n\n  onTouchMove(e) {\n    if (e.cancelable) {\n      e.preventDefault();\n    }\n  }\n\n  onTouchStart(e) {\n    let touchobj = e.changedTouches[0];\n\n    this.startPos = {\n      x: touchobj.pageX,\n      y: touchobj.pageY\n    };\n  }\n\n  isNavBackwardDisabled() {\n    return (!this.circular && this._activeIndex === 0) || this.value.length <= this.d_numVisible;\n  }\n\n  isNavForwardDisabled() {\n    return (!this.circular && this._activeIndex === this.value.length - 1) || this.value.length <= this.d_numVisible;\n  }\n\n  firstItemAciveIndex() {\n    return this.totalShiftedItems * -1;\n  }\n\n  lastItemActiveIndex() {\n    return this.firstItemAciveIndex() + this.d_numVisible - 1;\n  }\n\n  isItemActive(index) {\n    return this.firstItemAciveIndex() <= index && this.lastItemActiveIndex() >= index;\n  }\n\n  bindDocumentListeners() {\n    if (!this.documentResizeListener) {\n      this.documentResizeListener = () => {\n        this.calculatePosition();\n      };\n\n      window.addEventListener('resize', this.documentResizeListener);\n    }\n  }\n\n  unbindDocumentListeners() {\n    if (this.documentResizeListener) {\n      window.removeEventListener('resize', this.documentResizeListener);\n      this.documentResizeListener = null;\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.responsiveOptions) {\n      this.unbindDocumentListeners();\n    }\n\n    if (this.thumbnailsStyle) {\n      this.thumbnailsStyle.parentNode.removeChild(this.thumbnailsStyle);\n    }\n  }\n}\n\n@NgModule({\n  imports: [CommonModule, SharedModule, RippleModule],\n  exports: [Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails, SharedModule],\n  declarations: [Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails]\n})\nexport class GalleriaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}