primeng
Version: 
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primeng) [
{"version":3,"file":"primeng-image.mjs","sources":["../../src/app/components/image/image.ts","../../src/app/components/image/primeng-image.ts"],"sourcesContent":["import { NgModule, Component, Input, ElementRef, ChangeDetectionStrategy, ViewEncapsulation, TemplateRef, AfterContentInit, ContentChildren, QueryList, Output, EventEmitter, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule, PrimeTemplate, PrimeNGConfig } from 'primeng/api';\nimport {trigger,style,transition,animate, AnimationEvent,} from '@angular/animations';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { DomHandler } from 'primeng/dom';\nimport { ZIndexUtils } from 'primeng/utils';\n\n@Component({\n    selector: 'p-image',\n    template: `\n        <span [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\">\n            <img [attr.src]=\"src\" [attr.alt]=\"alt\" [attr.width]=\"width\" [attr.height]=\"height\" [ngStyle]=\"imageStyle\" [class]=\"imageClass\" (error)=\"imageError($event)\"/>\n            <div class=\"p-image-preview-indicator\" *ngIf=\"preview\" (click)=\"onImageClick()\">\n                <ng-container *ngIf=\"indicatorTemplate;else defaultTemplate\">\n                    <ng-container *ngTemplateOutlet=\"indicatorTemplate\"></ng-container>\n                </ng-container>\n                <ng-template #defaultTemplate>\n                    <i class=\"p-image-preview-icon pi pi-eye\"></i>\n                </ng-template>\n            </div>\n            <div #mask class=\"p-image-mask p-component-overlay p-component-overlay-enter\" *ngIf=\"maskVisible\" (click)=\"onMaskClick()\">\n                <div class=\"p-image-toolbar\" (click)=\"handleToolbarClick($event)\">\n                    <button class=\"p-image-action p-link\" (click)=\"rotateRight()\" type=\"button\">\n                        <i class=\"pi pi-refresh\"></i>\n                    </button>\n                    <button class=\"p-image-action p-link\" (click)=\"rotateLeft()\" type=\"button\">\n                        <i class=\"pi pi-undo\"></i>\n                    </button>\n                    <button class=\"p-image-action p-link\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled\">\n                        <i class=\"pi pi-search-minus\"></i>\n                    </button>\n                    <button class=\"p-image-action p-link\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled\">\n                        <i class=\"pi pi-search-plus\"></i>\n                    </button>\n                    <button class=\"p-image-action p-link\" type=\"button\" (click)=\"closePreview()\">\n                        <i class=\"pi pi-times\"></i>\n                    </button>\n                </div>\n                <div *ngIf=\"previewVisible\" [@animation]=\"{value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\n                    (@animation.start)=\"onAnimationStart($event)\" (@animation.done)=\"onAnimationEnd($event)\">\n                    <img [attr.src]=\"src\" class=\"p-image-preview\" [ngStyle]=\"imagePreviewStyle()\" (click)=\"onPreviewImageClick()\"/>\n                </div>\n            </div>\n        </span>\n    `,\n    animations: [\n        trigger('animation', [\n            transition('void => visible', [\n                style({ transform: 'scale(0.7)', opacity: 0 }),\n                animate('{{showTransitionParams}}')\n            ]),\n            transition('visible => void', [\n                animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))\n            ])\n        ])\n    ],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['./image.css'],\n    host: {\n        'class': 'p-element'\n    }\n})\nexport class Image implements AfterContentInit {\n\n    @Input() imageClass: string;\n\n    @Input() imageStyle: any;\n\n    @Input() styleClass: string;\n\n    @Input() style: any;\n\n    @Input() src: string | SafeUrl;\n\n    @Input() alt: string;\n\n    @Input() width: string;\n\n    @Input() height: string;\n\n    @Input() appendTo: any;\n\n    @Input() preview: boolean = false;\n\n    @Input() showTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n\n    @Input() hideTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n\n    @Output() onShow: EventEmitter<any> = new EventEmitter();\n\n    @Output() onHide: EventEmitter<any> = new EventEmitter();\n\n    @Output() onImageError: EventEmitter<any> = new EventEmitter();\n    \n    @ViewChild('mask') mask: ElementRef;\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n    indicatorTemplate: TemplateRef<any>;\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: HTMLElement;\n\n    wrapper: HTMLElement;\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    constructor(private config: PrimeNGConfig, private cd: ChangeDetectorRef) { }\n\n    ngAfterContentInit() {\n        this.templates.forEach((item) => {\n            switch(item.getType()) {\n                case 'indicator':\n                    this.indicatorTemplate = 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        }\n    }\n\n    onMaskClick() {\n        if (!this.previewClick) {\n            this.closePreview();\n        }\n\n        this.previewClick = false;\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: AnimationEvent) {\n        switch(event.toState) {\n            case 'visible':\n                this.container = event.element;\n                this.wrapper = this.container.parentElement;\n                this.appendContainer();\n                this.moveOnTop();\n            break;\n\n            case 'void':\n                DomHandler.addClass(this.wrapper, 'p-component-overlay-leave');\n            break;\n        }\n    }\n\n    onAnimationEnd(event: AnimationEvent) {\n        switch(event.toState) {\n            case 'void':\n                ZIndexUtils.clear(this.wrapper);\n                this.maskVisible = false;\n                this.container = null;\n                this.wrapper = null;\n                this.cd.markForCheck();\n                this.onHide.emit({});\n            break;\n            case 'visible':\n                this.onShow.emit({});\n            break;\n        }\n    }\n\n    moveOnTop() {\n        ZIndexUtils.set('modal', this.wrapper, this.config.zIndex.modal);\n    }\n\n    appendContainer() {\n        if (this.appendTo) {\n            if (this.appendTo === 'body')\n                document.body.appendChild(this.wrapper);\n            else\n                DomHandler.appendChild(this.wrapper, this.appendTo);\n        }\n    }\n\n    imagePreviewStyle() {\n        return {transform: 'rotate(' + this.rotate + 'deg) scale(' + this.scale + ')'};\n    }\n\n    containerClass() {\n        return {\n            'p-image p-component': true,\n            'p-image-preview-container': this.preview\n        };\n    }\n\n    handleToolbarClick(event: MouseEvent): void {\n        event.stopPropagation();\n    }\n\n    closePreview(): void {\n        this.previewVisible = false;\n        this.rotate = 0;\n        this.scale = this.zoomSettings.default;\n    }\n\n    imageError(event) {\n        this.onImageError.emit(event);\n    }\n}\n\n@NgModule({\n    imports: [CommonModule],\n    exports: [Image, SharedModule],\n    declarations: [Image]\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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"}