{"version":3,"file":"primeng-image.mjs","sources":["../../src/image/style/imagestyle.ts","../../src/image/image.ts","../../src/image/primeng-image.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/image';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n    root: ({ instance }) => [\n        'p-image p-component',\n        {\n            'p-image-preview': instance.preview\n        }\n    ],\n    previewMask: 'p-image-preview-mask',\n    previewIcon: 'p-image-preview-icon',\n    mask: 'p-image-mask p-overlay-mask',\n    toolbar: 'p-image-toolbar',\n    rotateRightButton: 'p-image-action p-image-rotate-right-button',\n    rotateLeftButton: 'p-image-action p-image-rotate-left-button',\n    zoomOutButton: ({ instance }) => [\n        'p-image-action p-image-zoom-out-button',\n        {\n            'p-disabled': instance.isZoomOutDisabled\n        }\n    ],\n    zoomInButton: ({ instance }) => [\n        'p-image-action p-image-zoom-in-button',\n        {\n            'p-disabled': instance.isZoomInDisabled\n        }\n    ],\n    closeButton: 'p-image-action p-image-close-button',\n    original: 'p-image-original'\n};\n\n@Injectable()\nexport class ImageStyle extends BaseStyle {\n    name = 'image';\n\n    style = style;\n\n    classes = classes;\n}\n\n/**\n *\n * Displays an image with preview and tranformation options. For multiple image, see Galleria.\n *\n * [Live Demo](https://www.primeng.org/image/)\n *\n * @module imagestyle\n *\n */\nexport enum ImageClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-image',\n    /**\n     * Class name of the preview mask element\n     */\n    previewMask = 'p-image-preview-mask',\n    /**\n     * Class name of the preview icon element\n     */\n    previewIcon = 'p-image-preview-icon',\n    /**\n     * Class name of the mask element\n     */\n    mask = 'p-image-mask',\n    /**\n     * Class name of the toolbar element\n     */\n    toolbar = 'p-image-toolbar',\n    /**\n     * Class name of the rotate right button element\n     */\n    rotateRightButton = 'p-image-rotate-right-button',\n    /**\n     * Class name of the rotate left button element\n     */\n    rotateLeftButton = 'p-image-rotate-left-button',\n    /**\n     * Class name of the zoom out button element\n     */\n    zoomOutButton = 'p-image-zoom-out-button',\n    /**\n     * Class name of the zoom in button element\n     */\n    zoomInButton = 'p-image-zoom-in-button',\n    /**\n     * Class name of the close button element\n     */\n    closeButton = 'p-image-close-button',\n    /**\n     * Class name of the original element\n     */\n    original = 'p-image-original'\n}\n\nexport interface ImageStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    inject,\n    InjectionToken,\n    input,\n    Input,\n    NgModule,\n    Output,\n    QueryList,\n    signal,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { MotionEvent, MotionOptions } from '@primeuix/motion';\nimport { appendChild, focus } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { blockBodyScroll, unblockBodyScroll } from 'primeng/dom';\nimport { FocusTrap } from 'primeng/focustrap';\nimport { EyeIcon, RefreshIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, UndoIcon } from 'primeng/icons';\nimport { MotionModule } from 'primeng/motion';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { ImageImageTemplateContext, ImagePassThrough, ImagePreviewTemplateContext } from 'primeng/types/image';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { ImageStyle } from './style/imagestyle';\n\nconst IMAGE_INSTANCE = new InjectionToken<Image>('IMAGE_INSTANCE');\n\n/**\n * Displays an image with preview and tranformation options. For multiple image, see Galleria.\n * @group Components\n */\n@Component({\n    selector: 'p-image',\n    standalone: true,\n    imports: [CommonModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, FocusTrap, SharedModule, BindModule, MotionModule],\n    template: `\n        <ng-container *ngIf=\"!imageTemplate && !_imageTemplate\">\n            <img\n                [attr.src]=\"src\"\n                [attr.srcset]=\"srcSet\"\n                [attr.sizes]=\"sizes\"\n                [attr.alt]=\"alt\"\n                [attr.width]=\"width\"\n                [attr.height]=\"height\"\n                [attr.loading]=\"loading\"\n                [ngStyle]=\"imageStyle\"\n                [class]=\"imageClass\"\n                (error)=\"imageError($event)\"\n                [pBind]=\"ptm('image')\"\n            />\n        </ng-container>\n\n        <ng-container *ngTemplateOutlet=\"imageTemplate || _imageTemplate; context: { errorCallback: imageError.bind(this) }\"></ng-container>\n\n        <button *ngIf=\"preview\" [attr.aria-label]=\"zoomImageAriaLabel\" type=\"button\" [class]=\"cx('previewMask')\" (click)=\"onImageClick()\" #previewButton [ngStyle]=\"{ height: height + 'px', width: width + 'px' }\" [pBind]=\"ptm('previewMask')\">\n            <ng-container *ngIf=\"indicatorTemplate || _indicatorTemplate; else defaultTemplate\">\n                <ng-container *ngTemplateOutlet=\"indicatorTemplate || _indicatorTemplate\"></ng-container>\n            </ng-container>\n            <ng-template #defaultTemplate>\n                <svg data-p-icon=\"eye\" [class]=\"cx('previewIcon')\" [pBind]=\"ptm('previewIcon')\" />\n            </ng-template>\n        </button>\n        @if (renderMask()) {\n            <div\n                #mask\n                [class]=\"cx('mask')\"\n                [attr.aria-modal]=\"maskVisible\"\n                role=\"dialog\"\n                (click)=\"onMaskClick()\"\n                (keydown)=\"onMaskKeydown($event)\"\n                pFocusTrap\n                [pBind]=\"ptm('mask')\"\n                [pMotion]=\"maskVisible\"\n                [pMotionAppear]=\"true\"\n                [pMotionEnterActiveClass]=\"'p-overlay-mask-enter-active'\"\n                [pMotionLeaveActiveClass]=\"'p-overlay-mask-leave-active'\"\n                [pMotionOptions]=\"computedMaskMotionOptions()\"\n                (pMotionOnAfterLeave)=\"onMaskAfterLeave()\"\n            >\n                <div [class]=\"cx('toolbar')\" (click)=\"handleToolbarClick($event)\" [pBind]=\"ptm('toolbar')\">\n                    <button [class]=\"cx('rotateRightButton')\" (click)=\"rotateRight()\" type=\"button\" [attr.aria-label]=\"rightAriaLabel()\" [pBind]=\"ptm('rotateRightButton')\">\n                        <svg data-p-icon=\"refresh\" *ngIf=\"!rotateRightIconTemplate && !_rotateRightIconTemplate\" />\n                        <ng-template *ngTemplateOutlet=\"rotateRightIconTemplate || _rotateRightIconTemplate\"></ng-template>\n                    </button>\n                    <button [class]=\"cx('rotateLeftButton')\" (click)=\"rotateLeft()\" type=\"button\" [attr.aria-label]=\"leftAriaLabel()\" [pBind]=\"ptm('rotateLeftButton')\">\n                        <svg data-p-icon=\"undo\" *ngIf=\"!rotateLeftIconTemplate && !_rotateLeftIconTemplate\" />\n                        <ng-template *ngTemplateOutlet=\"rotateLeftIconTemplate || _rotateLeftIconTemplate\"></ng-template>\n                    </button>\n                    <button [class]=\"cx('zoomOutButton')\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled\" [attr.aria-label]=\"zoomOutAriaLabel()\" [pBind]=\"ptm('zoomOutButton')\">\n                        <svg data-p-icon=\"search-minus\" *ngIf=\"!zoomOutIconTemplate && !_zoomOutIconTemplate\" />\n                        <ng-template *ngTemplateOutlet=\"zoomOutIconTemplate || _zoomOutIconTemplate\"></ng-template>\n                    </button>\n                    <button [class]=\"cx('zoomInButton')\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled\" [attr.aria-label]=\"zoomInAriaLabel()\" [pBind]=\"ptm('zoomInButton')\">\n                        <svg data-p-icon=\"search-plus\" *ngIf=\"!zoomInIconTemplate && !_zoomInIconTemplate\" />\n                        <ng-template *ngTemplateOutlet=\"zoomInIconTemplate || _zoomInIconTemplate\"></ng-template>\n                    </button>\n                    <button [class]=\"cx('closeButton')\" type=\"button\" (click)=\"closePreview()\" [attr.aria-label]=\"closeAriaLabel()\" #closeButton [pBind]=\"ptm('closeButton')\">\n                        <svg data-p-icon=\"times\" *ngIf=\"!closeIconTemplate && !_closeIconTemplate\" />\n                        <ng-template *ngTemplateOutlet=\"closeIconTemplate || _closeIconTemplate\"></ng-template>\n                    </button>\n                </div>\n                @if (renderPreview()) {\n                    <p-motion [visible]=\"previewVisible\" name=\"p-image-original\" [appear]=\"true\" [options]=\"computedMotionOptions()\" (onBeforeEnter)=\"onAnimationStart($event)\" (onBeforeLeave)=\"onBeforeLeave()\" (onAfterLeave)=\"onAnimationEnd($event)\">\n                        <ng-container *ngIf=\"!previewTemplate && !_previewTemplate\">\n                            <img\n                                [attr.src]=\"previewImageSrc ? previewImageSrc : src\"\n                                [attr.srcset]=\"previewImageSrcSet\"\n                                [attr.sizes]=\"previewImageSizes\"\n                                [class]=\"cx('original')\"\n                                [ngStyle]=\"imagePreviewStyle()\"\n                                (click)=\"onPreviewImageClick()\"\n                                [pBind]=\"ptm('original')\"\n                            />\n                        </ng-container>\n                        <ng-container\n                            *ngTemplateOutlet=\"\n                                previewTemplate || _previewTemplate;\n                                context: {\n                                    class: cx('original'),\n                                    style: imagePreviewStyle(),\n                                    previewCallback: onPreviewImageClick.bind(this)\n                                }\n                            \"\n                        >\n                        </ng-container>\n                    </p-motion>\n                }\n            </div>\n        }\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [ImageStyle, { provide: IMAGE_INSTANCE, useExisting: Image }, { provide: PARENT_INSTANCE, useExisting: Image }],\n    host: {\n        '[class]': \"cn(cx('root'),styleClass)\"\n    },\n    hostDirectives: [Bind]\n})\nexport class Image extends BaseComponent<ImagePassThrough> {\n    componentName = 'Image';\n\n    $pcImage: Image | undefined = inject(IMAGE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n    /**\n     * Style class of the image element.\n     * @group Props\n     */\n    @Input() imageClass: string | undefined;\n    /**\n     * Inline style of the image element.\n     * @group Props\n     */\n    @Input() imageStyle: { [klass: string]: any } | null | undefined;\n    /**\n     * Class of the element.\n     * @deprecated since v20.0.0, use `class` instead.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * The source path for the main image.\n     * @group Props\n     */\n    @Input() src: string | SafeUrl | undefined;\n    /**\n     * The srcset definition for the main image.\n     * @group Props\n     */\n    @Input() srcSet: string | SafeUrl | undefined;\n    /**\n     * The sizes definition for the main image.\n     * @group Props\n     */\n    @Input() sizes: string | undefined;\n    /**\n     * The source path for the preview image.\n     * @group Props\n     */\n    @Input() previewImageSrc: string | SafeUrl | undefined;\n    /**\n     * The srcset definition for the preview image.\n     * @group Props\n     */\n    @Input() previewImageSrcSet: string | SafeUrl | undefined;\n    /**\n     * The sizes definition for the preview image.\n     * @group Props\n     */\n    @Input() previewImageSizes: string | undefined;\n    /**\n     * Attribute of the preview image element.\n     * @group Props\n     */\n    @Input() alt: string | undefined;\n    /**\n     * Attribute of the image element.\n     * @group Props\n     */\n    @Input() width: string | undefined;\n    /**\n     * Attribute of the image element.\n     * @group Props\n     */\n    @Input() height: string | undefined;\n    /**\n     * Attribute of the image element.\n     * @group Props\n     */\n    @Input() loading: 'lazy' | 'eager' | undefined;\n    /**\n     * Controls the preview functionality.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) preview: boolean = false;\n    /**\n     * Transition options of the show animation\n     * @group Props\n     * @deprecated since v21.0.0. Use `motionOptions` instead.\n     */\n    @Input() showTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n    /**\n     * Transition options of the hide animation\n     * @group Props\n     * @deprecated since v21.0.0. Use `motionOptions` instead.\n     */\n    @Input() hideTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n    /**\n     * Enter animation class name of modal.\n     * @defaultValue 'p-modal-enter'\n     * @group Props\n     */\n    modalEnterAnimation = input<string | null | undefined>('p-modal-enter');\n    /**\n     * Leave animation class name of modal.\n     * @defaultValue 'p-modal-leave'\n     * @group Props\n     */\n    modalLeaveAnimation = input<string | null | undefined>('p-modal-leave');\n    /**\n     * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n     * @defaultValue 'self'\n     * @group Props\n     */\n    appendTo = input<HTMLElement | ElementRef | TemplateRef<any> | 'self' | 'body' | null | undefined | any>(undefined);\n    /**\n     * The motion options for the mask.\n     * @group Props\n     */\n    maskMotionOptions = input<MotionOptions | undefined>(undefined);\n\n    computedMaskMotionOptions = computed<MotionOptions>(() => {\n        return {\n            ...this.ptm('maskMotion'),\n            ...this.maskMotionOptions()\n        };\n    });\n    /**\n     * The motion options.\n     * @group Props\n     */\n    motionOptions = input<MotionOptions | undefined>(undefined);\n\n    computedMotionOptions = computed<MotionOptions>(() => {\n        return {\n            ...this.ptm('motion'),\n            ...this.motionOptions()\n        };\n    });\n    /**\n     * Triggered when the preview overlay is shown.\n     * @group Emits\n     */\n    @Output() onShow: EventEmitter<any> = new EventEmitter<any>();\n    /**\n     * Triggered when the preview overlay is hidden.\n     * @group Emits\n     */\n    @Output() onHide: EventEmitter<any> = new EventEmitter<any>();\n    /**\n     * This event is triggered if an error occurs while loading an image file.\n     * @param {Event} event - Browser event.\n     * @group Emits\n     */\n    @Output() onImageError: EventEmitter<Event> = new EventEmitter<Event>();\n\n    @ViewChild('mask') mask: ElementRef | undefined;\n\n    @ViewChild('previewButton') previewButton: ElementRef | undefined;\n\n    @ViewChild('closeButton') closeButton: ElementRef | undefined;\n\n    /**\n     * Custom indicator template.\n     * @group Templates\n     */\n    @ContentChild('indicator', { descendants: false }) indicatorTemplate: TemplateRef<void> | undefined;\n\n    /**\n     * Custom rotate right icon template.\n     * @group Templates\n     */\n    @ContentChild('rotaterighticon', { descendants: false }) rotateRightIconTemplate: TemplateRef<void> | undefined;\n\n    /**\n     * Custom rotate left icon template.\n     * @group Templates\n     */\n    @ContentChild('rotatelefticon', { descendants: false }) rotateLeftIconTemplate: TemplateRef<void> | undefined;\n\n    /**\n     * Custom zoom out icon template.\n     * @group Templates\n     */\n    @ContentChild('zoomouticon', { descendants: false }) zoomOutIconTemplate: TemplateRef<void> | undefined;\n\n    /**\n     * Custom zoom in icon template.\n     * @group Templates\n     */\n    @ContentChild('zoominicon', { descendants: false }) zoomInIconTemplate: TemplateRef<void> | undefined;\n\n    /**\n     * Custom close icon template.\n     * @group Templates\n     */\n    @ContentChild('closeicon', { descendants: false }) closeIconTemplate: TemplateRef<void> | undefined;\n\n    /**\n     * Custom preview template.\n     * @group Templates\n     */\n    @ContentChild('preview', { descendants: false }) previewTemplate: TemplateRef<ImagePreviewTemplateContext> | undefined;\n\n    /**\n     * Custom image template.\n     * @group Templates\n     */\n    @ContentChild('image', { descendants: false }) imageTemplate: TemplateRef<ImageImageTemplateContext> | undefined;\n\n    renderMask = signal<boolean>(false);\n\n    renderPreview = signal<boolean>(false);\n\n    maskVisible: boolean = false;\n\n    previewVisible: boolean = false;\n\n    rotate: number = 0;\n\n    scale: number = 1;\n\n    previewClick: boolean = false;\n\n    container: Nullable<HTMLElement>;\n\n    wrapper: Nullable<HTMLElement>;\n\n    _componentStyle = inject(ImageStyle);\n\n    $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo());\n\n    public get isZoomOutDisabled(): boolean {\n        return this.scale - this.zoomSettings.step <= this.zoomSettings.min;\n    }\n\n    public get isZoomInDisabled(): boolean {\n        return this.scale + this.zoomSettings.step >= this.zoomSettings.max;\n    }\n\n    private zoomSettings = {\n        default: 1,\n        step: 0.1,\n        max: 1.5,\n        min: 0.5\n    };\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    _indicatorTemplate: TemplateRef<void> | undefined;\n\n    _rotateRightIconTemplate: TemplateRef<void> | undefined;\n\n    _rotateLeftIconTemplate: TemplateRef<void> | undefined;\n\n    _zoomOutIconTemplate: TemplateRef<void> | undefined;\n\n    _zoomInIconTemplate: TemplateRef<void> | undefined;\n\n    _closeIconTemplate: TemplateRef<void> | undefined;\n\n    _imageTemplate: TemplateRef<ImageImageTemplateContext> | undefined;\n\n    _previewTemplate: TemplateRef<ImagePreviewTemplateContext> | undefined;\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    onAfterContentInit() {\n        this.templates?.forEach((item) => {\n            switch (item.getType()) {\n                case 'indicator':\n                    this._indicatorTemplate = item.template;\n                    break;\n\n                case 'rotaterighticon':\n                    this._rotateRightIconTemplate = item.template;\n                    break;\n\n                case 'rotatelefticon':\n                    this._rotateLeftIconTemplate = item.template;\n                    break;\n\n                case 'zoomouticon':\n                    this._zoomOutIconTemplate = item.template;\n                    break;\n\n                case 'zoominicon':\n                    this._zoomInIconTemplate = item.template;\n                    break;\n\n                case 'closeicon':\n                    this._closeIconTemplate = item.template;\n                    break;\n\n                case 'image':\n                    this._imageTemplate = item.template;\n                    break;\n\n                case 'preview':\n                    this._previewTemplate = item.template;\n                    break;\n\n                default:\n                    this._indicatorTemplate = item.template;\n                    break;\n            }\n        });\n    }\n\n    onImageClick() {\n        if (this.preview) {\n            this.maskVisible = true;\n            this.previewVisible = true;\n            this.renderMask.set(true);\n            this.renderPreview.set(true);\n            blockBodyScroll();\n        }\n    }\n\n    onMaskClick() {\n        if (!this.previewClick) {\n            this.closePreview();\n        }\n\n        this.previewClick = false;\n    }\n\n    onMaskKeydown(event: KeyboardEvent) {\n        switch (event.code) {\n            case 'Escape':\n                this.onMaskClick();\n                setTimeout(() => {\n                    focus(this.previewButton?.nativeElement);\n                }, 25);\n                event.preventDefault();\n\n                break;\n\n            default:\n                break;\n        }\n    }\n\n    onPreviewImageClick() {\n        this.previewClick = true;\n    }\n\n    rotateRight() {\n        this.rotate += 90;\n        this.previewClick = true;\n    }\n\n    rotateLeft() {\n        this.rotate -= 90;\n        this.previewClick = true;\n    }\n\n    zoomIn() {\n        this.scale = this.scale + this.zoomSettings.step;\n        this.previewClick = true;\n    }\n\n    zoomOut() {\n        this.scale = this.scale - this.zoomSettings.step;\n        this.previewClick = true;\n    }\n\n    onAnimationStart(event: MotionEvent) {\n        this.container = event.element as HTMLDivElement;\n        this.wrapper = this.container?.parentElement;\n        this.$attrSelector && this.wrapper?.setAttribute(this.$attrSelector, '');\n        this.appendContainer();\n        this.moveOnTop();\n        this.onShow.emit({});\n        setTimeout(() => {\n            focus(this.closeButton?.nativeElement);\n        }, 25);\n    }\n\n    onBeforeLeave() {\n        this.maskVisible = false;\n    }\n\n    onAnimationEnd() {\n        this.renderPreview.set(false);\n    }\n\n    onMaskAfterLeave() {\n        if (!this.renderPreview()) {\n            this.renderMask.set(false);\n        }\n        ZIndexUtils.clear(this.wrapper);\n        this.container = null;\n        this.wrapper = null;\n        this.rotate = 0;\n        this.scale = this.zoomSettings.default;\n        unblockBodyScroll();\n        this.onHide.emit({});\n        this.cd.markForCheck();\n    }\n\n    moveOnTop() {\n        ZIndexUtils.set('modal', this.wrapper, this.config.zIndex.modal);\n    }\n\n    appendContainer() {\n        if (this.$appendTo() && this.$appendTo() !== 'self') {\n            if (this.$appendTo() === 'body' && this.wrapper) {\n                this.document.body.appendChild(this.wrapper as HTMLElement);\n            } else if (this.wrapper) {\n                appendChild(this.$appendTo(), this.wrapper);\n            }\n        }\n    }\n\n    imagePreviewStyle() {\n        return { transform: 'rotate(' + this.rotate + 'deg) scale(' + this.scale + ')' };\n    }\n\n    get zoomImageAriaLabel() {\n        return this.config.translation.aria ? this.config.translation.aria.zoomImage : undefined;\n    }\n\n    handleToolbarClick(event: MouseEvent): void {\n        event.stopPropagation();\n    }\n\n    closePreview(): void {\n        this.previewVisible = false;\n    }\n\n    imageError(event: Event) {\n        this.onImageError.emit(event);\n    }\n\n    rightAriaLabel() {\n        return this.config.translation.aria ? this.config.translation.aria.rotateRight : undefined;\n    }\n\n    leftAriaLabel() {\n        return this.config.translation.aria ? this.config.translation.aria.rotateLeft : undefined;\n    }\n\n    zoomInAriaLabel() {\n        return this.config.translation.aria ? this.config.translation.aria.zoomIn : undefined;\n    }\n\n    zoomOutAriaLabel() {\n        return this.config.translation.aria ? this.config.translation.aria.zoomOut : undefined;\n    }\n\n    closeAriaLabel() {\n        return this.config.translation.aria ? this.config.translation.aria.close : undefined;\n    }\n\n    @HostListener('document:keydown.escape') onKeydownHandler() {\n        if (this.previewVisible) {\n            this.closePreview();\n        }\n    }\n}\n\n@NgModule({\n    imports: [Image, SharedModule],\n    exports: [Image, SharedModule]\n})\nexport class ImageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}