{"version":3,"file":"primeng-gallery.mjs","sources":["../../src/gallery/style/gallerystyle.ts","../../src/gallery/gallery-item.ts","../../src/gallery/gallery-header.ts","../../src/gallery/gallery-content.ts","../../src/gallery/gallery-footer.ts","../../src/gallery/gallery-backdrop.ts","../../src/gallery/gallery-toolbar.ts","../../src/gallery/gallery-toolbar-item.ts","../../src/gallery/gallery-prev.ts","../../src/gallery/gallery-next.ts","../../src/gallery/gallery-zoom-in.ts","../../src/gallery/gallery-zoom-out.ts","../../src/gallery/gallery-zoom-toggle.ts","../../src/gallery/gallery-rotate-left.ts","../../src/gallery/gallery-rotate-right.ts","../../src/gallery/gallery-flip-x.ts","../../src/gallery/gallery-flip-y.ts","../../src/gallery/gallery-full-screen.ts","../../src/gallery/gallery-download.ts","../../src/gallery/gallery-thumbnail-item.ts","../../src/gallery/gallery-thumbnail.ts","../../src/gallery/gallery-thumbnail-content.ts","../../src/gallery/gallery.ts","../../src/gallery/primeng-gallery.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/gallery';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n    root: 'p-gallery',\n    backdrop: 'p-gallery-backdrop',\n    header: 'p-gallery-header',\n    footer: 'p-gallery-footer',\n    content: 'p-gallery-content',\n    item: 'p-gallery-item',\n    next: 'p-gallery-next',\n    prev: 'p-gallery-prev',\n    toolbar: 'p-gallery-toolbar',\n    toolbarItem: 'p-gallery-toolbar-item',\n    zoomIn: 'p-gallery-action',\n    zoomOut: 'p-gallery-action',\n    zoomToggle: 'p-gallery-action',\n    rotateLeft: 'p-gallery-action',\n    rotateRight: 'p-gallery-action',\n    flipX: 'p-gallery-action',\n    flipY: 'p-gallery-action',\n    download: 'p-gallery-action',\n    fullScreen: 'p-gallery-action',\n    thumbnail: 'p-gallery-thumbnail',\n    thumbnailContent: 'p-gallery-thumbnail-content',\n    thumbnailItem: 'p-gallery-thumbnail-item'\n};\n\n@Injectable()\nexport class GalleryStyle extends BaseStyle {\n    name = 'gallery';\n\n    style = style;\n\n    classes = classes;\n}\n\n/**\n *\n * Gallery groups a collection of contents in items.\n *\n * [Live Demo](https://www.primeng.org/gallery/)\n *\n * @module gallerystyle\n *\n */\nexport enum GalleryClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-gallery',\n    /**\n     * Class name of the backdrop element\n     */\n    backdrop = 'p-gallery-backdrop',\n    /**\n     * Class name of the header element\n     */\n    header = 'p-gallery-header',\n    /**\n     * Class name of the footer element\n     */\n    footer = 'p-gallery-footer',\n    /**\n     * Class name of the content element\n     */\n    content = 'p-gallery-content',\n    /**\n     * Class name of the item element\n     */\n    item = 'p-gallery-item',\n    /**\n     * Class name of the next button element\n     */\n    next = 'p-gallery-next',\n    /**\n     * Class name of the prev button element\n     */\n    prev = 'p-gallery-prev',\n    /**\n     * Class name of the toolbar element\n     */\n    toolbar = 'p-gallery-toolbar',\n    /**\n     * Class name of the toolbar item element\n     */\n    toolbarItem = 'p-gallery-toolbar-item',\n    /**\n     * Class name of the action element\n     */\n    action = 'p-gallery-action',\n    /**\n     * Class name of the thumbnail element\n     */\n    thumbnail = 'p-gallery-thumbnail',\n    /**\n     * Class name of the thumbnail content element\n     */\n    thumbnailContent = 'p-gallery-thumbnail-content',\n    /**\n     * Class name of the thumbnail item element\n     */\n    thumbnailItem = 'p-gallery-thumbnail-item'\n}\n\nexport interface GalleryStyleType extends BaseStyle {}\n","import { afterNextRender, ChangeDetectionStrategy, Component, computed, DestroyRef, effect, inject, input, numberAttribute, signal, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { GalleryItemPassThrough } from 'primeng/types/gallery';\nimport { Gallery } from './gallery';\n\n/**\n * GalleryItem represents an individual item in the gallery.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery-item',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryItem }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"gallery.cx('item')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'item'\",\n        '[attr.data-index]': 'index()',\n        '[attr.data-active]': \"isActive() ? '' : null\",\n        '[attr.data-rotating]': \"isRotating() ? '' : null\",\n        '[style.--px-position-x]': 'stylePositionX()',\n        '[style.--px-position-y]': 'stylePositionY()',\n        '[style.--px-scale]': 'scale()',\n        '[style.--px-rotation]': 'styleRotation()',\n        '[style.--px-flip-x]': 'styleFlipX()',\n        '[style.--px-flip-y]': 'styleFlipY()',\n        '(click)': 'handleClick($event)',\n        '(pointerdown)': 'handlePointerDown($event)',\n        '(pointermove)': 'handlePointerMove($event)',\n        '(pointerup)': 'handlePointerUp($event)',\n        '(dragstart)': 'handleDragStart($event)'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryItem extends BaseComponent<GalleryItemPassThrough> {\n    componentName = 'GalleryItem';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    /**\n     * The normal scale of the gallery item.\n     * @group Props\n     * @defaultValue 1\n     */\n    normalScale = input(1, { transform: numberAttribute });\n\n    /**\n     * The zoomed scale of the gallery item.\n     * @group Props\n     * @defaultValue 3\n     */\n    zoomedScale = input(3, { transform: numberAttribute });\n\n    gallery = inject(Gallery);\n\n    private _destroyRef = inject(DestroyRef);\n\n    index = signal(-1);\n\n    isActive = computed(() => this.gallery.activeIndex() === this.index());\n\n    dataActive = computed(() => (this.isActive() ? 'true' : 'false'));\n\n    stylePositionX = computed(() => this.position().x + 'px');\n\n    stylePositionY = computed(() => this.position().y + 'px');\n\n    styleRotation = computed(() => this.rotation() + 'deg');\n\n    styleFlipX = computed(() => this.flip().x);\n\n    styleFlipY = computed(() => this.flip().y);\n\n    position = signal({ x: 0, y: 0 });\n\n    scale = signal(1);\n\n    rotation = signal(0);\n\n    isRotating = signal(false);\n\n    flip = signal({ x: 1, y: 1 });\n\n    private registeredIndex: number | null = null;\n\n    private pointerData = new Map<number, { x: number; y: number }>();\n\n    private pointerStart = { x: 0, y: 0 };\n\n    private initialPinchDistance = 0;\n\n    private initialPinchScale = 1;\n\n    private liveScale = 1;\n\n    private livePosition = { x: 0, y: 0 };\n\n    private isDragging = false;\n\n    private dragStart = { x: 0, y: 0 };\n\n    private hasDragged = false;\n\n    private wheelSyncTimer: ReturnType<typeof setTimeout> | null = null;\n\n    private wheelListener: (() => void) | null = null;\n\n    private resizeListener: (() => void) | null = null;\n\n    private imageLoadListener: (() => void) | null = null;\n\n    constructor() {\n        super();\n        afterNextRender(() => {\n            const newIndex = this.gallery.registerItem(this.registeredIndex);\n            this.registeredIndex = newIndex;\n            if (newIndex !== this.index()) {\n                this.index.set(newIndex);\n            }\n            this.setupWheelListener();\n            this.setupResizeListener();\n            this.setupImageLoadListener();\n        });\n\n        // Watch activeIndex to recalculate item size\n        effect(() => {\n            const activeIndex = this.gallery.activeIndex();\n            const idx = this.index();\n            if (activeIndex === idx) {\n                this.calculateItemSize();\n            }\n        });\n\n        // Watch rotation changes to recalculate item size\n        effect(() => {\n            this.rotation(); // track rotation\n            const activeIndex = this.gallery.activeIndex();\n            const idx = this.index();\n            if (activeIndex === idx) {\n                this.calculateItemSize();\n            }\n        });\n\n        // Watch fullscreen changes to recalculate item size\n        effect(() => {\n            this.gallery.isFullscreen(); // track fullscreen\n            const activeIndex = this.gallery.activeIndex();\n            const idx = this.index();\n            if (activeIndex === idx) {\n                this.calculateItemSize();\n            }\n        });\n\n        // Watch pendingAction and execute on active item\n        effect(() => {\n            const action = this.gallery.pendingAction();\n            if (!action || !this.isActive()) return;\n\n            switch (action.type) {\n                case 'zoom-in':\n                    this.zoomIn();\n                    break;\n                case 'zoom-out':\n                    this.zoomOut();\n                    break;\n                case 'rotate-left':\n                    this.rotateLeft();\n                    break;\n                case 'rotate-right':\n                    this.rotateRight();\n                    break;\n                case 'flip-x':\n                    this.flipX();\n                    break;\n                case 'flip-y':\n                    this.flipY();\n                    break;\n                case 'download':\n                    this.download();\n                    break;\n            }\n\n            this.gallery.clearPendingAction();\n        });\n\n        // Report item state to gallery\n        effect(() => {\n            const active = this.isActive();\n            const s = this.scale();\n            const r = this.rotation();\n            const f = this.flip();\n            const ns = this.normalScale();\n            if (active) {\n                this.gallery.reportItemState({\n                    zoomed: s > ns,\n                    rotated: r !== 0,\n                    flipped: f.x === -1 || f.y === -1,\n                    scale: s,\n                    rotation: r,\n                    flip: f\n                });\n            }\n        });\n\n        // Sync liveScale/livePosition with signals (for toolbar-triggered changes)\n        effect(() => {\n            this.liveScale = this.scale();\n        });\n\n        effect(() => {\n            const p = this.position();\n            this.livePosition = { x: p.x, y: p.y };\n        });\n\n        // Reset position when scale <= 1\n        effect(() => {\n            if (this.scale() <= 1) {\n                this.position.set({ x: 0, y: 0 });\n            }\n        });\n\n        this._destroyRef.onDestroy(() => {\n            this.wheelListener?.();\n            this.resizeListener?.();\n            this.imageLoadListener?.();\n            if (this.rotateTimer) {\n                clearTimeout(this.rotateTimer);\n            }\n            if (this.wheelSyncTimer) {\n                clearTimeout(this.wheelSyncTimer);\n            }\n        });\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    private setupImageLoadListener() {\n        const el = this.$el as HTMLElement;\n        const imageElement = el.querySelector('img') as HTMLImageElement;\n        if (!imageElement) return;\n\n        if (imageElement.complete && imageElement.naturalWidth > 0) {\n            this.calculateItemSize();\n        }\n\n        const handler = () => {\n            this.calculateItemSize();\n        };\n        imageElement.addEventListener('load', handler);\n        this.imageLoadListener = () => imageElement.removeEventListener('load', handler);\n    }\n\n    private setupWheelListener() {\n        const el = this.$el as HTMLElement;\n        const handler = (e: WheelEvent) => {\n            if (!e.ctrlKey || !this.isActive()) return;\n\n            e.preventDefault();\n            el.style.transition = 'none';\n\n            const delta = -e.deltaY;\n            const scaleFactor = 1 + delta * 0.01;\n            const newScale = Math.max(this.normalScale(), Math.min(this.zoomedScale(), this.liveScale * scaleFactor));\n\n            const constraints = this.calculateConstraints(newScale);\n            const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, this.livePosition.x));\n            const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, this.livePosition.y));\n\n            this.liveScale = newScale;\n            this.livePosition = { x: constrainedX, y: constrainedY };\n\n            el.style.setProperty('--px-scale', `${newScale}`);\n            el.style.setProperty('--px-position-x', `${constrainedX}px`);\n            el.style.setProperty('--px-position-y', `${constrainedY}px`);\n\n            if (this.wheelSyncTimer) {\n                clearTimeout(this.wheelSyncTimer);\n            }\n\n            this.wheelSyncTimer = setTimeout(() => {\n                el.style.transition = '';\n                el.style.cursor = this.liveScale > this.normalScale() ? 'zoom-out' : 'zoom-in';\n                this.scale.set(this.liveScale);\n                this.position.set(this.livePosition);\n                this.wheelSyncTimer = null;\n            }, 150);\n        };\n\n        el.addEventListener('wheel', handler, { passive: false });\n        this.wheelListener = () => el.removeEventListener('wheel', handler);\n    }\n\n    private setupResizeListener() {\n        const handler = () => {\n            if (this.gallery.activeIndex() === this.index()) {\n                this.calculateItemSize();\n            }\n        };\n        window.addEventListener('resize', handler);\n        this.resizeListener = () => window.removeEventListener('resize', handler);\n    }\n\n    calculateItemSize() {\n        const contentEl = this.gallery.contentEl();\n        const el = this.$el as HTMLElement;\n        if (!contentEl || !el) return;\n\n        const contentRect = contentEl.getBoundingClientRect();\n        const imageElement = el.firstElementChild as HTMLImageElement;\n        if (!imageElement) return;\n\n        let naturalWidth = imageElement.naturalWidth || imageElement.offsetWidth;\n        let naturalHeight = imageElement.naturalHeight || imageElement.offsetHeight;\n        if (naturalWidth === 0 || naturalHeight === 0) return;\n\n        const isRotated = Math.abs(this.rotation()) % 180 === 90;\n\n        if (isRotated) {\n            [naturalWidth, naturalHeight] = [naturalHeight, naturalWidth];\n        }\n\n        const naturalAspectRatio = naturalWidth / naturalHeight;\n        const contentAspectRatio = contentRect.width / contentRect.height;\n\n        let targetWidth: number, targetHeight: number;\n\n        if (naturalAspectRatio > contentAspectRatio) {\n            targetWidth = Math.min(contentRect.width * 0.99, naturalWidth);\n            targetHeight = targetWidth / naturalAspectRatio;\n        } else {\n            targetHeight = Math.min(contentRect.height * 0.99, naturalHeight);\n            targetWidth = targetHeight * naturalAspectRatio;\n        }\n\n        if (isRotated) {\n            imageElement.style.width = `${targetHeight}px`;\n            imageElement.style.height = `${targetWidth}px`;\n            el.style.width = `${targetHeight > 0 ? targetHeight : 'auto'}px`;\n            el.style.height = `${targetWidth > 0 ? targetWidth : 'auto'}px`;\n        } else {\n            imageElement.style.width = `${targetWidth}px`;\n            imageElement.style.height = `${targetHeight}px`;\n            el.style.width = `${targetWidth > 0 ? targetWidth : 'auto'}px`;\n            el.style.height = `${targetHeight > 0 ? targetHeight : 'auto'}px`;\n        }\n\n        el.style.aspectRatio = `${naturalWidth / naturalHeight}`;\n    }\n\n    calculateConstraints(targetScale?: number) {\n        const contentEl = this.gallery.contentEl();\n        const el = this.$el as HTMLElement;\n        if (!contentEl || !el) return { minX: 0, maxX: 0, minY: 0, maxY: 0 };\n\n        const contentRect = contentEl.getBoundingClientRect();\n        const scaleToUse = targetScale !== undefined ? targetScale : this.liveScale;\n\n        const itemElement = el.firstElementChild as HTMLElement;\n        if (!itemElement) return { minX: 0, maxX: 0, minY: 0, maxY: 0 };\n\n        let originalWidth = itemElement.offsetWidth;\n        let originalHeight = itemElement.offsetHeight;\n\n        const isRotated = Math.abs(this.rotation()) % 180 === 90;\n        if (isRotated) {\n            [originalWidth, originalHeight] = [originalHeight, originalWidth];\n        }\n\n        const scaledWidth = originalWidth * scaleToUse;\n        const scaledHeight = originalHeight * scaleToUse;\n\n        const contentCenterX = contentRect.width / 2;\n        const contentCenterY = contentRect.height / 2;\n\n        const halfScaledWidth = scaledWidth / 2;\n        const halfScaledHeight = scaledHeight / 2;\n\n        const maxX = halfScaledWidth > contentCenterX ? halfScaledWidth - contentCenterX : 0;\n        const minX = halfScaledWidth > contentCenterX ? -(halfScaledWidth - contentCenterX) : 0;\n\n        const maxY = halfScaledHeight > contentCenterY ? halfScaledHeight - contentCenterY : 0;\n        const minY = halfScaledHeight > contentCenterY ? -(halfScaledHeight - contentCenterY) : 0;\n\n        return { minX, maxX, minY, maxY };\n    }\n\n    zoomIn() {\n        this.scale.set(this.zoomedScale());\n        const el = this.$el as HTMLElement;\n        if (el) {\n            el.style.cursor = 'zoom-out';\n        }\n    }\n\n    zoomOut() {\n        this.scale.set(this.normalScale());\n        this.position.set({ x: 0, y: 0 });\n        const el = this.$el as HTMLElement;\n        if (el) {\n            el.style.cursor = 'zoom-in';\n        }\n    }\n\n    rotateLeft() {\n        this.markRotating();\n        this.rotation.update((prev) => prev - 90);\n    }\n\n    rotateRight() {\n        this.markRotating();\n        this.rotation.update((prev) => prev + 90);\n    }\n\n    private rotateTimer: ReturnType<typeof setTimeout> | null = null;\n\n    private markRotating() {\n        this.isRotating.set(true);\n        const el = this.$el as HTMLElement | null;\n        if (el) el.style.transition = '';\n        if (this.rotateTimer) clearTimeout(this.rotateTimer);\n        this.rotateTimer = setTimeout(() => this.isRotating.set(false), 300);\n    }\n\n    flipX() {\n        this.flip.update((prev) => ({ ...prev, x: Math.sign(prev.x) * -1 }));\n    }\n\n    flipY() {\n        this.flip.update((prev) => ({ ...prev, y: Math.sign(prev.y) * -1 }));\n    }\n\n    download() {\n        const el = this.$el as HTMLElement;\n        if (!el) return;\n\n        const imageElement = el.querySelector('img') as HTMLImageElement;\n        if (!imageElement || !imageElement.src) return;\n\n        const link = document.createElement('a');\n        link.href = imageElement.src;\n\n        const urlParts = imageElement.src.split('/');\n        const filename = urlParts[urlParts.length - 1] || 'image.jpg';\n\n        link.download = filename;\n        link.target = '_blank';\n        document.body.appendChild(link);\n        link.click();\n        document.body.removeChild(link);\n    }\n\n    handleClick(e: MouseEvent) {\n        if (this.hasDragged) {\n            this.hasDragged = false;\n            return;\n        }\n\n        const el = this.$el as HTMLElement;\n\n        if (this.liveScale === this.normalScale()) {\n            if (el) {\n                const itemRect = el.getBoundingClientRect();\n                const itemCenterX = itemRect.width / 2;\n                const itemCenterY = itemRect.height / 2;\n\n                const clickX = e.clientX - itemRect.left;\n                const clickY = e.clientY - itemRect.top;\n\n                const offsetX = itemCenterX - clickX;\n                const offsetY = itemCenterY - clickY;\n\n                const zoomedScale = this.zoomedScale();\n                const zoomOffsetX = offsetX * (zoomedScale - 1);\n                const zoomOffsetY = offsetY * (zoomedScale - 1);\n\n                const constraints = this.calculateConstraints(zoomedScale);\n                const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, zoomOffsetX));\n                const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, zoomOffsetY));\n\n                this.position.set({ x: constrainedX, y: constrainedY });\n            }\n            this.zoomIn();\n        } else {\n            this.zoomOut();\n        }\n    }\n\n    handleDragStart(e: DragEvent) {\n        e.preventDefault();\n    }\n\n    handlePointerDown(e: PointerEvent) {\n        (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n        this.pointerData.set(e.pointerId, { x: e.clientX, y: e.clientY });\n        this.pointerStart = { x: e.clientX, y: e.clientY };\n\n        if (e.pointerType === 'touch' && this.pointerData.size >= 2) {\n            this.isDragging = false;\n            this.initialPinchDistance = 0;\n            this.initialPinchScale = this.liveScale;\n        } else if (this.liveScale > 1) {\n            if (e.pointerType === 'mouse' || (e.pointerType === 'touch' && this.pointerData.size === 1)) {\n                this.isDragging = true;\n                this.dragStart = { x: e.clientX - this.livePosition.x, y: e.clientY - this.livePosition.y };\n                this.hasDragged = false;\n            }\n        }\n    }\n\n    handlePointerMove(e: PointerEvent) {\n        if (!this.pointerData.has(e.pointerId)) return;\n\n        const el = this.$el as HTMLElement;\n        if (!el) return;\n\n        el.style.transition = 'none';\n\n        if (e.pointerType === 'mouse' && !el.style.cursor) {\n            el.style.cursor = this.liveScale > this.normalScale() ? 'zoom-out' : 'zoom-in';\n        }\n\n        this.pointerData.set(e.pointerId, { x: e.clientX, y: e.clientY });\n\n        const pointers = Array.from(this.pointerData.values());\n\n        if (pointers.length === 2) {\n            const [p1, p2] = pointers;\n            const distance = Math.hypot(p2.x - p1.x, p2.y - p1.y);\n\n            this.hasDragged = true;\n\n            if (this.initialPinchDistance === 0) {\n                this.initialPinchDistance = distance;\n                this.initialPinchScale = this.liveScale;\n            } else {\n                const ratio = distance / this.initialPinchDistance;\n                const newScale = Math.max(this.normalScale(), Math.min(this.zoomedScale(), this.initialPinchScale * ratio));\n\n                const constraints = this.calculateConstraints(newScale);\n                const constrainedX = Math.max(constraints.minX, Math.min(constraints.maxX, this.livePosition.x));\n                const constrainedY = Math.max(constraints.minY, Math.min(constraints.maxY, this.livePosition.y));\n\n                this.liveScale = newScale;\n                this.livePosition = { x: constrainedX, y: constrainedY };\n\n                el.style.setProperty('--px-scale', `${newScale}`);\n                el.style.setProperty('--px-position-x', `${constrainedX}px`);\n                el.style.setProperty('--px-position-y', `${constrainedY}px`);\n            }\n        } else if (pointers.length === 1 && this.isDragging) {\n            const pointer = pointers[0];\n            const newX = pointer.x - this.dragStart.x;\n            const newY = pointer.y - this.dragStart.y;\n            const constraints = this.calculateConstraints(this.liveScale);\n\n            const computedX = Math.max(constraints.minX, Math.min(constraints.maxX, newX));\n            const computedY = Math.max(constraints.minY, Math.min(constraints.maxY, newY));\n\n            this.livePosition = { x: computedX, y: computedY };\n\n            el.style.setProperty('--px-position-x', `${computedX}px`);\n            el.style.setProperty('--px-position-y', `${computedY}px`);\n\n            const distFromStart = Math.hypot(pointer.x - this.pointerStart.x, pointer.y - this.pointerStart.y);\n            if (distFromStart > 5) {\n                this.hasDragged = true;\n            }\n        }\n    }\n\n    handlePointerUp(e: PointerEvent) {\n        const el = this.$el as HTMLElement;\n        if (!el) return;\n\n        el.style.transition = '';\n\n        if (e.pointerType === 'mouse') {\n            el.style.cursor = this.liveScale > this.normalScale() ? 'zoom-out' : 'zoom-in';\n        }\n\n        (e.currentTarget as HTMLElement).releasePointerCapture(e.pointerId);\n        this.pointerData.delete(e.pointerId);\n\n        if (this.pointerData.size < 2) {\n            this.initialPinchDistance = 0;\n            this.initialPinchScale = 1;\n        }\n\n        if (this.pointerData.size === 0) {\n            this.isDragging = false;\n            this.scale.set(this.liveScale);\n            this.position.set(this.livePosition);\n        }\n    }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryHeaderPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryHeader represents the header section of the gallery.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery-header',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryHeader }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"gallery.cx('header')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'header'\"\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryHeader extends BaseComponent<GalleryHeaderPassThrough> {\n    componentName = 'GalleryHeader';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    gallery = inject(Gallery);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { afterNextRender, ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryContentPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryContent represents the main content area of the gallery.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery-content',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryContent }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"gallery.cx('content')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'content'\"\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryContent extends BaseComponent<GalleryContentPassThrough> {\n    componentName = 'GalleryContent';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    gallery = inject(Gallery);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    constructor() {\n        super();\n        afterNextRender(() => {\n            this.gallery.setContentEl(this.$el);\n        });\n    }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryFooterPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFooter represents the footer section of the gallery.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery-footer',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryFooter }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"gallery.cx('footer')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'footer'\"\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryFooter extends BaseComponent<GalleryFooterPassThrough> {\n    componentName = 'GalleryFooter';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    gallery = inject(Gallery);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryBackdropPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryBackdrop represents the backdrop element for fullscreen mode.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery-backdrop',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryBackdrop }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"gallery.cx('backdrop')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'backdrop'\"\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryBackdrop extends BaseComponent<GalleryBackdropPassThrough> {\n    componentName = 'GalleryBackdrop';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    gallery = inject(Gallery);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryToolbarPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryToolbar represents the toolbar container.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery-toolbar',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryToolbar }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"gallery.cx('toolbar')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'toolbar'\"\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryToolbar extends BaseComponent<GalleryToolbarPassThrough> {\n    componentName = 'GalleryToolbar';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    gallery = inject(Gallery);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryToolbarItemPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryToolbarItem represents an individual toolbar item.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery-toolbar-item',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryToolbarItem }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"gallery.cx('toolbarItem')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'toolbarItem'\",\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryToolbarItem extends BaseComponent<GalleryToolbarItemPassThrough> {\n    componentName = 'GalleryToolbarItem';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    /**\n     * The action to dispatch when the toolbar item is clicked.\n     * @group Props\n     */\n    action = input<string>();\n\n    gallery = inject(Gallery);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    onClick() {\n        this.gallery.handleClickAction(this.action());\n    }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryPrevPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryPrev represents the previous navigation button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryPrev]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryPrev }],\n    host: {\n        '[class]': \"gallery.cx('prev')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'prev'\",\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryPrev extends BaseComponent<GalleryPrevPassThrough> {\n    componentName = 'GalleryPrev';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    onClick() {\n        this.gallery.handlePrev();\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryNextPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryNext represents the next navigation button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryNext]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryNext }],\n    host: {\n        '[class]': \"gallery.cx('next')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'next'\",\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryNext extends BaseComponent<GalleryNextPassThrough> {\n    componentName = 'GalleryNext';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    onClick() {\n        this.gallery.handleNext();\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryZoomInPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryZoomIn represents the zoom in action button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryZoomIn]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryZoomIn }],\n    host: {\n        '[class]': \"gallery.cx('zoomIn')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'zoomIn'\",\n        '[attr.data-action]': \"'zoom-in'\",\n        '[attr.disabled]': 'disabledState()',\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryZoomIn extends BaseComponent<GalleryZoomInPassThrough> {\n    componentName = 'GalleryZoomIn';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    disabledState = computed(() => (this.gallery.activeItemTransform().zoomed ? true : null));\n\n    onClick() {\n        this.gallery.handleClickAction('zoomIn');\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryZoomOutPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryZoomOut represents the zoom out action button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryZoomOut]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryZoomOut }],\n    host: {\n        '[class]': \"gallery.cx('zoomOut')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'zoomOut'\",\n        '[attr.data-action]': \"'zoom-out'\",\n        '[attr.disabled]': 'disabledState()',\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryZoomOut extends BaseComponent<GalleryZoomOutPassThrough> {\n    componentName = 'GalleryZoomOut';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    disabledState = computed(() => (!this.gallery.activeItemTransform().zoomed ? true : null));\n\n    onClick() {\n        this.gallery.handleClickAction('zoomOut');\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryZoomTogglePassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryZoomToggle represents the zoom toggle action button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryZoomToggle]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryZoomToggle }],\n    host: {\n        '[class]': \"gallery.cx('zoomToggle')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'zoomToggle'\",\n        '[attr.data-action]': \"'zoom-toggle'\",\n        '(click)': 'onToggle()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryZoomToggle extends BaseComponent<GalleryZoomTogglePassThrough> {\n    componentName = 'GalleryZoomToggle';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    onToggle() {\n        this.gallery.handleClickAction(this.gallery.activeItemTransform().zoomed ? 'zoomOut' : 'zoomIn');\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryRotateLeftPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryRotateLeft represents the rotate left action button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryRotateLeft]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryRotateLeft }],\n    host: {\n        '[class]': \"gallery.cx('rotateLeft')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'rotateLeft'\",\n        '[attr.data-action]': \"'rotate-left'\",\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryRotateLeft extends BaseComponent<GalleryRotateLeftPassThrough> {\n    componentName = 'GalleryRotateLeft';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    onClick() {\n        this.gallery.handleClickAction('rotateLeft');\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryRotateRightPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryRotateRight represents the rotate right action button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryRotateRight]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryRotateRight }],\n    host: {\n        '[class]': \"gallery.cx('rotateRight')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'rotateRight'\",\n        '[attr.data-action]': \"'rotate-right'\",\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryRotateRight extends BaseComponent<GalleryRotateRightPassThrough> {\n    componentName = 'GalleryRotateRight';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    onClick() {\n        this.gallery.handleClickAction('rotateRight');\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryFlipXPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFlipX represents the horizontal flip action button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryFlipX]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryFlipX }],\n    host: {\n        '[class]': \"gallery.cx('flipX')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'flipX'\",\n        '[attr.data-action]': \"'flip-x'\",\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryFlipX extends BaseComponent<GalleryFlipXPassThrough> {\n    componentName = 'GalleryFlipX';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    onClick() {\n        this.gallery.handleClickAction('flipX');\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryFlipYPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFlipY represents the vertical flip action button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryFlipY]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryFlipY }],\n    host: {\n        '[class]': \"gallery.cx('flipY')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'flipY'\",\n        '[attr.data-action]': \"'flip-y'\",\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryFlipY extends BaseComponent<GalleryFlipYPassThrough> {\n    componentName = 'GalleryFlipY';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    onClick() {\n        this.gallery.handleClickAction('flipY');\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryFullScreenPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryFullScreen represents the fullscreen toggle button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryFullScreen]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryFullScreen }],\n    host: {\n        '[class]': \"gallery.cx('fullScreen')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'fullScreen'\",\n        '[attr.data-action]': \"'fullscreen'\",\n        '[attr.data-fullscreen]': 'dataFullscreen()',\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryFullScreen extends BaseComponent<GalleryFullScreenPassThrough> {\n    componentName = 'GalleryFullScreen';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    dataFullscreen = computed(() => (this.gallery.isFullscreen() ? '' : null));\n\n    onClick() {\n        this.gallery.handleClickAction('toggleFullScreen');\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport type { GalleryDownloadPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryDownload represents the download action button.\n * @group Components\n */\n@Directive({\n    selector: '[pGalleryDownload]',\n    standalone: true,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: GalleryDownload }],\n    host: {\n        '[class]': \"gallery.cx('download')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'download'\",\n        '[attr.data-action]': \"'download'\",\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryDownload extends BaseComponent<GalleryDownloadPassThrough> {\n    componentName = 'GalleryDownload';\n\n    gallery = inject(Gallery);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(GalleryStyle);\n\n    onClick() {\n        this.gallery.handleClickAction('download');\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { Gallery } from './gallery';\n\n/**\n * GalleryThumbnailItem represents an individual thumbnail item.\n * Exposes its content as a TemplateRef so GalleryThumbnail can render it inside a carousel item.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery-thumbnail-item',\n    standalone: true,\n    template: `\n        <ng-template #content>\n            <ng-content></ng-content>\n        </ng-template>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None\n})\nexport class GalleryThumbnailItem {\n    /**\n     * The index of the thumbnail item.\n     * @group Props\n     */\n    index = input<number>();\n\n    gallery = inject(Gallery);\n\n    templateRef = viewChild<TemplateRef<any>>('content');\n\n    isActive = computed(() => {\n        const idx = this.index();\n        return idx !== undefined && this.gallery.activeIndex() === idx;\n    });\n\n    hostClass = computed(() => this.gallery.cx('thumbnailItem'));\n\n    dataActive = computed(() => (this.isActive() ? '' : null));\n\n    onClick() {\n        const idx = this.index();\n        if (idx !== undefined) {\n            this.gallery.selectItem(idx);\n        }\n    }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, inject, input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CarouselModule } from 'primeng/carousel';\nimport { Gallery } from './gallery';\nimport type { GalleryThumbnailPassThrough } from 'primeng/types/gallery';\nimport { GalleryThumbnailItem } from './gallery-thumbnail-item';\n\n/**\n * GalleryThumbnail represents the thumbnail carousel wrapper.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery-thumbnail',\n    standalone: true,\n    imports: [BindModule, NgTemplateOutlet, CarouselModule],\n    template: `\n        <p-carousel\n            [autoSize]=\"autoSize()\"\n            [loop]=\"loop()\"\n            [align]=\"align()\"\n            [spacing]=\"spacing()\"\n            [orientation]=\"orientation()\"\n            [snapType]=\"snapType()\"\n            [slidesPerPage]=\"slidesPerPage()\"\n            [slide]=\"slide()\"\n            [unstyled]=\"gallery.$unstyled()\"\n            [pt]=\"ptm('pcCarousel')\"\n        >\n            <p-carousel-content [class]=\"gallery.cx('thumbnailContent')\" [pt]=\"ptm('pcCarouselContent')\">\n                @if (thumbnailItems().length > 0) {\n                    @for (item of thumbnailItems(); track item; let i = $index) {\n                        <p-carousel-item [class]=\"item.hostClass()\" [attr.data-active]=\"item.dataActive()\" [attr.tabindex]=\"0\" (click)=\"item.onClick()\" (keydown)=\"onItemKeydown($event, i)\" [pt]=\"ptm('pcCarouselItem')\">\n                            <ng-container *ngTemplateOutlet=\"item.templateRef()\"></ng-container>\n                        </p-carousel-item>\n                    }\n                } @else {\n                    <ng-content></ng-content>\n                }\n            </p-carousel-content>\n        </p-carousel>\n    `,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryThumbnail }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"gallery.cx('thumbnail')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'thumbnail'\"\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryThumbnail extends BaseComponent<GalleryThumbnailPassThrough> {\n    componentName = 'GalleryThumbnail';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    gallery = inject(Gallery);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    /**\n     * Whether the carousel should auto size items.\n     * @group Props\n     * @defaultValue true\n     */\n    autoSize = input(true, { transform: booleanAttribute });\n\n    /**\n     * Whether the carousel should loop.\n     * @group Props\n     * @defaultValue true\n     */\n    loop = input(true, { transform: booleanAttribute });\n\n    /**\n     * Alignment of the carousel items.\n     * @group Props\n     * @defaultValue 'center'\n     */\n    align = input<'start' | 'center' | 'end'>('center');\n\n    /**\n     * Spacing between carousel items in pixels.\n     * @group Props\n     * @defaultValue 8\n     */\n    spacing = input(8, { transform: numberAttribute });\n\n    /**\n     * Orientation of the carousel.\n     * @group Props\n     * @defaultValue 'horizontal'\n     */\n    orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n    /**\n     * Scroll snap type applied to the track.\n     * @group Props\n     * @defaultValue 'mandatory'\n     */\n    snapType = input<'mandatory' | 'proximity'>('mandatory');\n\n    /**\n     * How many slides are visible per page.\n     * @group Props\n     * @defaultValue 1\n     */\n    slidesPerPage = input(1, { transform: numberAttribute });\n\n    thumbnailItems = contentChildren(GalleryThumbnailItem, { descendants: true });\n\n    slide = computed(() => this.gallery.activeIndex());\n\n    onItemKeydown(event: KeyboardEvent, index: number) {\n        const items = this.thumbnailItems();\n\n        switch (event.code) {\n            case 'Enter':\n            case 'Space':\n                event.preventDefault();\n                items[index]?.onClick();\n                break;\n            case 'ArrowRight':\n            case 'ArrowDown':\n                event.preventDefault();\n                this.focusItem((index + 1) % items.length);\n                break;\n            case 'ArrowLeft':\n            case 'ArrowUp':\n                event.preventDefault();\n                this.focusItem((index - 1 + items.length) % items.length);\n                break;\n            case 'Home':\n                event.preventDefault();\n                this.focusItem(0);\n                break;\n            case 'End':\n                event.preventDefault();\n                this.focusItem(items.length - 1);\n                break;\n        }\n    }\n\n    private focusItem(nextIndex: number) {\n        this.gallery.selectItem(nextIndex);\n        const carouselItems = (this.$el as HTMLElement)?.querySelectorAll('[data-pc-name=\"pccarouselitem\"][tabindex]');\n        (carouselItems?.[nextIndex] as HTMLElement)?.focus();\n    }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Gallery } from './gallery';\nimport type { GalleryThumbnailContentPassThrough } from 'primeng/types/gallery';\n\n/**\n * GalleryThumbnailContent represents the thumbnail carousel content area.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery-thumbnail-content',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: GalleryThumbnailContent }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"gallery.cx('thumbnailContent')\",\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'thumbnailContent'\"\n    },\n    hostDirectives: [Bind]\n})\nexport class GalleryThumbnailContent extends BaseComponent<GalleryThumbnailContentPassThrough> {\n    componentName = 'GalleryThumbnailContent';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    gallery = inject(Gallery);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { isPlatformServer } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, inject, input, model, NgModule, output, signal, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { SharedModule } from 'primeng/api';\nimport type { GalleryActiveIndexChangeEvent, GalleryPassThrough, GalleryPendingAction } from 'primeng/types/gallery';\nimport { GalleryStyle } from './style/gallerystyle';\nimport { GalleryItem } from './gallery-item';\nimport { GalleryHeader } from './gallery-header';\nimport { GalleryContent } from './gallery-content';\nimport { GalleryFooter } from './gallery-footer';\nimport { GalleryBackdrop } from './gallery-backdrop';\nimport { GalleryToolbar } from './gallery-toolbar';\nimport { GalleryToolbarItem } from './gallery-toolbar-item';\nimport { GalleryPrev } from './gallery-prev';\nimport { GalleryNext } from './gallery-next';\nimport { GalleryZoomIn } from './gallery-zoom-in';\nimport { GalleryZoomOut } from './gallery-zoom-out';\nimport { GalleryZoomToggle } from './gallery-zoom-toggle';\nimport { GalleryRotateLeft } from './gallery-rotate-left';\nimport { GalleryRotateRight } from './gallery-rotate-right';\nimport { GalleryFlipX } from './gallery-flip-x';\nimport { GalleryFlipY } from './gallery-flip-y';\nimport { GalleryFullScreen } from './gallery-full-screen';\nimport { GalleryDownload } from './gallery-download';\nimport { GalleryThumbnail } from './gallery-thumbnail';\nimport { GalleryThumbnailContent } from './gallery-thumbnail-content';\nimport { GalleryThumbnailItem } from './gallery-thumbnail-item';\n\n/**\n * Gallery is the main container component for the Gallery.\n * @group Components\n */\n@Component({\n    selector: 'p-gallery',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [GalleryStyle, { provide: PARENT_INSTANCE, useExisting: Gallery }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"cx('root')\",\n        tabindex: '0',\n        '[attr.data-scope]': \"'gallery'\",\n        '[attr.data-part]': \"'root'\",\n        '[attr.data-fullscreen]': 'dataFullscreen()',\n        '[attr.data-zoomed]': 'dataZoomed()',\n        '[attr.data-rotated]': 'dataRotated()',\n        '[attr.data-flipped]': 'dataFlipped()',\n        '(keydown)': 'handleKeyDown($event)'\n    },\n    hostDirectives: [Bind]\n})\nexport class Gallery extends BaseComponent<GalleryPassThrough> {\n    componentName = 'Gallery';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    /**\n     * The index of the active item.\n     * @group Props\n     * @defaultValue 0\n     */\n    activeIndex = model<number>(0);\n\n    /**\n     * When defined, puts the fullscreen state in controlled mode; the value drives whether the gallery is fullscreen and changes are reported via onFullscreenChange instead of being handled internally.\n     * @group Props\n     */\n    fullscreen = input<boolean | undefined, boolean | string | undefined>(undefined, { transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });\n\n    /**\n     * Whether pressing the Escape key exits fullscreen mode.\n     * @defaultValue true\n     * @group Props\n     */\n    closeOnEscape = input(true, { transform: booleanAttribute });\n\n    /**\n     * Callback fired when the gallery's active index changes.\n     * @param {GalleryActiveIndexChangeEvent} event - Custom active index change event.\n     * @group Emits\n     */\n    onActiveIndexChange = output<GalleryActiveIndexChangeEvent>();\n\n    /**\n     * Callback fired when the fullscreen state should change (controlled mode).\n     * @param {boolean} value - The next fullscreen state.\n     * @group Emits\n     */\n    onFullscreenChange = output<boolean>();\n\n    /**\n     * Callback fired when the active item's zoom scale changes.\n     * @param {number} scale - The current zoom scale.\n     * @group Emits\n     */\n    onZoomChange = output<number>();\n\n    /**\n     * Callback fired when the active item's rotation changes.\n     * @param {number} rotation - The current rotation in degrees.\n     * @group Emits\n     */\n    onRotateChange = output<number>();\n\n    /**\n     * Callback fired when the active item's flip state changes.\n     * @param {{ x: number; y: number }} flip - The current flip state.\n     * @group Emits\n     */\n    onFlipChange = output<{ x: number; y: number }>();\n\n    _componentStyle = inject(GalleryStyle);\n\n    private isFullscreenInternal = signal(false);\n\n    private fullscreenResizeTimer: ReturnType<typeof setTimeout> | null = null;\n\n    private destroyed = false;\n\n    isFullscreen = computed(() => this.fullscreen() ?? this.isFullscreenInternal());\n\n    activeItemTransform = signal({ zoomed: false, rotated: false, flipped: false });\n\n    pendingAction = signal<GalleryPendingAction | null>(null);\n\n    itemCounter = 0;\n\n    contentEl = signal<HTMLElement | null>(null);\n\n    dataFullscreen = computed(() => (this.isFullscreen() ? '' : null));\n\n    dataZoomed = computed(() => (this.activeItemTransform().zoomed ? '' : null));\n\n    dataRotated = computed(() => (this.activeItemTransform().rotated ? '' : null));\n\n    dataFlipped = computed(() => (this.activeItemTransform().flipped ? '' : null));\n\n    registerItem(existingIndex: number | null): number {\n        if (existingIndex !== null) {\n            if (existingIndex >= this.itemCounter) {\n                this.itemCounter = existingIndex + 1;\n            }\n            return existingIndex;\n        }\n        const newIndex = this.itemCounter;\n        this.itemCounter += 1;\n        return newIndex;\n    }\n\n    handleNext() {\n        if (this.itemCounter <= 0) return;\n        const newIndex = (this.activeIndex() + 1) % this.itemCounter;\n        this.activeIndex.set(newIndex);\n        this.onActiveIndexChange.emit({ value: newIndex });\n    }\n\n    handlePrev() {\n        if (this.itemCounter <= 0) return;\n        const newIndex = (this.activeIndex() - 1 + this.itemCounter) % this.itemCounter;\n        this.activeIndex.set(newIndex);\n        this.onActiveIndexChange.emit({ value: newIndex });\n    }\n\n    selectItem(index: number) {\n        if (index < 0 || index >= this.itemCounter) return;\n        this.activeIndex.set(index);\n        this.onActiveIndexChange.emit({ value: index });\n    }\n\n    dispatchAction(type: GalleryPendingAction['type']) {\n        this.pendingAction.set({ type, timestamp: Date.now() });\n    }\n\n    clearPendingAction() {\n        this.pendingAction.set(null);\n    }\n\n    constructor() {\n        super();\n\n        effect(() => {\n            const fullscreenActive = this.fullscreen();\n            if (fullscreenActive === undefined || isPlatformServer(this.platformId)) return;\n\n            const el = this.$el as HTMLElement | null;\n            if (!el || !this.document) return;\n\n            const isNativeFullscreen = this.document.fullscreenElement === el;\n\n            if (fullscreenActive && !isNativeFullscreen) {\n                el.requestFullscreen?.()?.catch(() => {});\n            } else if (!fullscreenActive && this.document.fullscreenElement) {\n                this.document.exitFullscreen?.()?.catch(() => {});\n            }\n        });\n    }\n\n    onInit() {\n        super.onInit();\n        if (!isPlatformServer(this.platformId)) {\n            this.document?.addEventListener('fullscreenchange', this.onNativeFullscreenChange);\n        }\n    }\n\n    onDestroy() {\n        this.destroyed = true;\n        if (this.fullscreenResizeTimer) {\n            clearTimeout(this.fullscreenResizeTimer);\n            this.fullscreenResizeTimer = null;\n        }\n        this.document?.removeEventListener('fullscreenchange', this.onNativeFullscreenChange);\n        if (this.document?.fullscreenElement === this.$el) {\n            this.document.exitFullscreen?.().catch(() => {});\n        }\n        super.onDestroy();\n    }\n\n    private onNativeFullscreenChange = () => {\n        const active = this.document?.fullscreenElement === this.$el;\n        this.isFullscreenInternal.set(active);\n\n        if (this.fullscreen() !== undefined && this.fullscreen() !== active) {\n            this.onFullscreenChange.emit(active);\n        }\n\n        // Nudge a resize so items recalculate, but track the timer so it can be cleared on destroy —\n        // otherwise it fires after teardown and the resulting cascade emits on destroyed outputs (NG0953).\n        if (this.fullscreenResizeTimer) clearTimeout(this.fullscreenResizeTimer);\n        this.fullscreenResizeTimer = setTimeout(() => {\n            this.fullscreenResizeTimer = null;\n            window.dispatchEvent(new Event('resize'));\n        }, 100);\n    };\n\n    handleKeyDown(event: KeyboardEvent) {\n        if (event.key === 'ArrowRight') {\n            event.preventDefault();\n            this.handleNext();\n        } else if (event.key === 'ArrowLeft') {\n            event.preventDefault();\n            this.handlePrev();\n        } else if (event.key === 'Escape' && this.closeOnEscape() && this.isFullscreen()) {\n            event.preventDefault();\n            this.toggleFullScreen();\n        }\n    }\n\n    toggleFullScreen() {\n        if (this.fullscreen() !== undefined) {\n            this.onFullscreenChange.emit(!this.fullscreen());\n            return;\n        }\n\n        const el = this.$el as HTMLElement | null;\n        if (!el || isPlatformServer(this.platformId)) return;\n\n        if (this.document?.fullscreenElement) {\n            this.document.exitFullscreen?.();\n        } else {\n            el.requestFullscreen?.();\n        }\n    }\n\n    private prevReported: { scale: number; rotation: number; flip: { x: number; y: number } } | null = null;\n\n    reportItemState(itemState: { zoomed: boolean; rotated: boolean; flipped: boolean; scale: number; rotation: number; flip: { x: number; y: number } }) {\n        if (this.destroyed) return;\n        this.activeItemTransform.set({ zoomed: itemState.zoomed, rotated: itemState.rotated, flipped: itemState.flipped });\n\n        const prev = this.prevReported;\n        if (!prev || prev.scale !== itemState.scale) this.onZoomChange.emit(itemState.scale);\n        if (!prev || prev.rotation !== itemState.rotation) this.onRotateChange.emit(itemState.rotation);\n        if (!prev || prev.flip.x !== itemState.flip.x || prev.flip.y !== itemState.flip.y) this.onFlipChange.emit(itemState.flip);\n\n        this.prevReported = { scale: itemState.scale, rotation: itemState.rotation, flip: itemState.flip };\n    }\n\n    handleClickAction(action?: string) {\n        if (!action) return;\n        const actionMap: Record<string, () => void> = {\n            zoomIn: () => this.dispatchAction('zoom-in'),\n            zoomOut: () => this.dispatchAction('zoom-out'),\n            rotateLeft: () => this.dispatchAction('rotate-left'),\n            rotateRight: () => this.dispatchAction('rotate-right'),\n            flipX: () => this.dispatchAction('flip-x'),\n            flipY: () => this.dispatchAction('flip-y'),\n            download: () => this.dispatchAction('download'),\n            next: () => this.handleNext(),\n            prev: () => this.handlePrev(),\n            toggleFullScreen: () => this.toggleFullScreen()\n        };\n        actionMap[action]?.();\n    }\n\n    setContentEl(el: HTMLElement) {\n        this.contentEl.set(el);\n    }\n}\n\n@NgModule({\n    imports: [\n        Gallery,\n        GalleryItem,\n        GalleryHeader,\n        GalleryContent,\n        GalleryFooter,\n        GalleryBackdrop,\n        GalleryToolbar,\n        GalleryToolbarItem,\n        GalleryPrev,\n        GalleryNext,\n        GalleryZoomIn,\n        GalleryZoomOut,\n        GalleryZoomToggle,\n        GalleryRotateLeft,\n        GalleryRotateRight,\n        GalleryFlipX,\n        GalleryFlipY,\n        GalleryFullScreen,\n        GalleryDownload,\n        GalleryThumbnail,\n        GalleryThumbnailContent,\n        GalleryThumbnailItem,\n        SharedModule\n    ],\n    exports: [\n        Gallery,\n        GalleryItem,\n        GalleryHeader,\n        GalleryContent,\n        GalleryFooter,\n        GalleryBackdrop,\n        GalleryToolbar,\n        GalleryToolbarItem,\n        GalleryPrev,\n        GalleryNext,\n        GalleryZoomIn,\n        GalleryZoomOut,\n        GalleryZoomToggle,\n        GalleryRotateLeft,\n        GalleryRotateRight,\n        GalleryFlipX,\n        GalleryFlipY,\n        GalleryFullScreen,\n        GalleryDownload,\n        GalleryThumbnail,\n        GalleryThumbnailContent,\n        GalleryThumbnailItem,\n        SharedModule\n    ]\n})\nexport class GalleryModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}