{"version":3,"file":"primeng-galleria.mjs","sources":["../../src/app/components/galleria/galleria.ts","../../src/app/components/galleria/primeng-galleria.ts"],"sourcesContent":["import {NgModule,Component,ElementRef,OnDestroy,Input,Output,EventEmitter,ChangeDetectionStrategy, ViewChild, ContentChildren, QueryList, TemplateRef, OnInit, OnChanges, AfterContentChecked, SimpleChanges, ViewEncapsulation, ChangeDetectorRef, AfterViewInit} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport { SharedModule, PrimeTemplate, PrimeNGConfig } from 'primeng/api';\nimport { UniqueComponentId, ZIndexUtils } from 'primeng/utils';\nimport { DomHandler } from 'primeng/dom';\nimport { RippleModule } from 'primeng/ripple';\nimport { animate, style, transition, trigger, AnimationEvent } from '@angular/animations';\n\n@Component({\n    selector: 'p-galleria',\n    template: `\n        <div *ngIf=\"fullScreen;else windowed\">\n            <div *ngIf=\"maskVisible\" #mask [ngClass]=\"{'p-galleria-mask p-component-overlay p-component-overlay-enter':true, 'p-galleria-visible': this.visible}\" [class]=\"maskClass\">\n                <p-galleriaContent *ngIf=\"visible\" [@animation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\" (@animation.start)=\"onAnimationStart($event)\" (@animation.done)=\"onAnimationEnd($event)\"\n                    [value]=\"value\" [activeIndex]=\"activeIndex\" [numVisible]=\"numVisible\" (maskHide)=\"onMaskHide()\" (activeItemChange)=\"onActiveItemChange($event)\" [ngStyle]=\"containerStyle\"></p-galleriaContent>\n            </div>\n        </div>\n\n        <ng-template #windowed>\n            <p-galleriaContent [value]=\"value\" [activeIndex]=\"activeIndex\" [numVisible]=\"numVisible\" (activeItemChange)=\"onActiveItemChange($event)\"></p-galleriaContent>\n        </ng-template>\n    `,\n    animations: [\n        trigger('animation', [\n            transition('void => visible', [\n                style({ transform: 'scale(0.7)', opacity: 0 }),\n                animate('{{showTransitionParams}}')\n            ]),\n            transition('visible => void', [\n                animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))\n            ])\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\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\t@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 [attr.id]=\"id\" *ngIf=\"value && value.length > 0\" [ngClass]=\"{'p-galleria p-component': true, 'p-galleria-fullscreen': this.galleria.fullScreen,\n            'p-galleria-indicator-onitem': this.galleria.showIndicatorsOnItem, 'p-galleria-item-nav-onhover': this.galleria.showItemNavigatorsOnHover && !this.galleria.fullScreen}\"\n            [ngStyle]=\"!galleria.fullScreen ? galleria.containerStyle : {}\" [class]=\"galleriaClass()\">\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 [value]=\"value\" [activeIndex]=\"activeIndex\" [circular]=\"galleria.circular\" [templates]=\"galleria.templates\" (onActiveIndexChange)=\"onActiveIndexChange($event)\"\n                    [showIndicators]=\"galleria.showIndicators\" [changeItemOnIndicatorHover]=\"galleria.changeItemOnIndicatorHover\" [indicatorFacet]=\"galleria.indicatorFacet\"\n                    [captionFacet]=\"galleria.captionFacet\" [showItemNavigators]=\"galleria.showItemNavigators\" [autoPlay]=\"galleria.autoPlay\" [slideShowActive]=\"slideShowActive\"\n                    (startSlideShow)=\"startSlideShow()\" (stopSlideShow)=\"stopSlideShow()\"></p-galleriaItem>\n\n                <p-galleriaThumbnails *ngIf=\"galleria.showThumbnails\" [containerId]=\"id\" [value]=\"value\" (onActiveIndexChange)=\"onActiveIndexChange($event)\" [activeIndex]=\"activeIndex\" [templates]=\"galleria.templates\"\n                    [numVisible]=\"numVisible\" [responsiveOptions]=\"galleria.responsiveOptions\" [circular]=\"galleria.circular\"\n                    [isVertical]=\"isVertical()\" [contentHeight]=\"galleria.verticalThumbnailViewPortHeight\" [showThumbnailNavigators]=\"galleria.showThumbnailNavigators\"\n                    [slideShowActive]=\"slideShowActive\" (stopSlideShow)=\"stopSlideShow()\"></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\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 = this.galleria.showThumbnails && this.getPositionClass('p-galleria-thumbnails', this.galleria.thumbnailsPosition);\n        const indicatorPosClass = this.galleria.showIndicators && this.getPositionClass('p-galleria-indicators', this.galleria.indicatorsPosition);\n\n        return (this.galleria.containerClass ? this.galleria.containerClass + \" \" : '') + (thumbnailsPosClass ? thumbnailsPosClass + \" \" : '') + (indicatorPosClass ? indicatorPosClass + \" \" : '');\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 *ngIf=\"showItemNavigators\" type=\"button\" [ngClass]=\"{'p-galleria-item-prev p-galleria-item-nav p-link': true, 'p-disabled': this.isNavBackwardDisabled()}\" (click)=\"navBackward($event)\" [disabled]=\"isNavBackwardDisabled()\" pRipple>\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 *ngIf=\"showItemNavigators\" type=\"button\" [ngClass]=\"{'p-galleria-item-next p-galleria-item-nav p-link': true,'p-disabled': this.isNavForwardDisabled()}\" (click)=\"navForward($event)\"  [disabled]=\"isNavForwardDisabled()\" pRipple>\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 *ngFor=\"let item of value; let index = index;\" tabindex=\"0\"\n                    (click)=\"onIndicatorClick(index)\" (mouseenter)=\"onIndicatorMouseEnter(index)\" (keydown.enter)=\"onIndicatorKeyDown(index)\"\n                    [ngClass]=\"{'p-galleria-indicator': true,'p-highlight': isIndicatorItemActive(index)}\">\n                    <button type=\"button\" tabIndex=\"-1\" class=\"p-link\" *ngIf=\"!indicatorFacet\">\n                    </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\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        this.activeItem = this.value[this._activeIndex];\n    }\n\n    _activeIndex: number = 0;\n\n    activeItem: any;\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\n                    ? 0\n                    : 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\n                ? this.value.length - 1\n                : 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 *ngIf=\"showThumbnailNavigators\" type=\"button\" [ngClass]=\"{'p-galleria-thumbnail-prev p-link': true, 'p-disabled': this.isNavBackwardDisabled()}\" (click)=\"navBackward($event)\" [disabled]=\"isNavBackwardDisabled()\" pRipple>\n                    <span [ngClass]=\"{'p-galleria-thumbnail-prev-icon pi': true, 'pi-chevron-left': !this.isVertical, 'pi-chevron-up': this.isVertical}\"></span>\n                </button>\n                <div class=\"p-galleria-thumbnail-items-container\" [ngStyle]=\"{'height': isVertical ? contentHeight : ''}\">\n                    <div #itemsContainer class=\"p-galleria-thumbnail-items\" (transitionend)=\"onTransitionEnd()\"\n                        (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd($event)\">\n                        <div *ngFor=\"let item of value; let index = index;\" [ngClass]=\"{'p-galleria-thumbnail-item': true, 'p-galleria-thumbnail-item-current': activeIndex === index, 'p-galleria-thumbnail-item-active': isItemActive(index),\n                            'p-galleria-thumbnail-item-start': firstItemAciveIndex() === index, 'p-galleria-thumbnail-item-end': lastItemActiveIndex() === index }\">\n                            <div class=\"p-galleria-thumbnail-item-content\" [attr.tabindex]=\"getTabIndex(index)\" (click)=\"onItemClick(index)\" (keydown.enter)=\"onItemClick(index)\">\n                                <p-galleriaItemSlot type=\"thumbnail\" [item]=\"item\" [templates]=\"templates\"></p-galleriaItemSlot>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <button *ngIf=\"showThumbnailNavigators\" type=\"button\" [ngClass]=\"{'p-galleria-thumbnail-next p-link': true, 'p-disabled': this.isNavForwardDisabled()}\" (click)=\"navForward($event)\" [disabled]=\"isNavForwardDisabled()\" pRipple>\n                    <span [ngClass]=\"{'p-galleria-thumbnail-next-icon pi': true, 'pi-chevron-right': !this.isVertical, 'pi-chevron-down': this.isVertical}\"></span>\n                </button>\n            </div>\n        </div>\n    `,\n   changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GalleriaThumbnails implements OnInit, AfterContentChecked, AfterViewInit, OnDestroy {\n\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\t\tif (this.responsiveOptions) {\n\t\t\tthis.bindDocumentListeners();\n\t\t}\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            }\n            else if (this.value.length - this.d_numVisible + this.getMedianItemIndex() < this._activeIndex) {\n                totalShiftedItems = this.d_numVisible - this.value.length;\n            }\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            }\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 ? `translate3d(0, ${totalShiftedItems * (100/ this.d_numVisible)}%, 0)` : `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\t\tthis.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)\n                    result = -1;\n                else if (value1 != null && value2 == null)\n                    result = 1;\n                else if (value1 == null && value2 == null)\n                    result = 0;\n                else if (typeof value1 === 'string' && typeof value2 === 'string')\n                    result = value1.localeCompare(value2, undefined, { numeric: true });\n                else\n                    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 (nextItemIndex + this.totalShiftedItems > this.getMedianItemIndex() && ((-1 * this.totalShiftedItems) < this.getTotalPageNumber() - 1 || this.circular)) {\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            }\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        }\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            }\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 ? `translate3d(0, ${totalShiftedItems * (100/ this.d_numVisible)}%, 0)` : `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) {           // left\n            this.navForward(e);\n        }\n        else {                    // 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        }\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\t\t\tthis.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: [CommonModule, 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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"}