primeng
Version:
PrimeNG is a premium UI library for Angular featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock,
1 lines • 42.6 kB
Source Map (JSON)
{"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 { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, ElementRef, HostListener, inject, InjectionToken, input, NgModule, output, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { MotionEvent, MotionOptions } from '@primeuix/motion';\nimport { appendChild, focus } from '@primeuix/utils';\nimport { 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 { Eye as EyeIcon } from '@primeicons/angular/eye';\nimport { Refresh as RefreshIcon } from '@primeicons/angular/refresh';\nimport { SearchMinus as SearchMinusIcon } from '@primeicons/angular/search-minus';\nimport { SearchPlus as SearchPlusIcon } from '@primeicons/angular/search-plus';\nimport { Times as TimesIcon } from '@primeicons/angular/times';\nimport { Undo as UndoIcon } from '@primeicons/angular/undo';\nimport { MotionModule } from 'primeng/motion';\nimport type { AppendTo, CSSProperties } from 'primeng/types/shared';\nimport { Nullable } from 'primeng/ts-helpers';\nimport type { ImageImageTemplateContext, ImageLoading, 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.\n * @group Components\n * @deprecated Use Gallery component instead.\n */\n@Component({\n selector: 'p-image',\n standalone: true,\n imports: [NgTemplateOutlet, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, FocusTrap, SharedModule, BindModule, MotionModule],\n template: `\n @if (!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 [style]=\"imageStyle()\"\n [class]=\"imageClass()\"\n (error)=\"imageError($event)\"\n [pBind]=\"ptm('image')\"\n />\n }\n\n <ng-container *ngTemplateOutlet=\"imageTemplate(); context: imageTemplateContext()\"></ng-container>\n\n @if (preview()) {\n <button [attr.aria-label]=\"zoomImageAriaLabel()\" type=\"button\" [class]=\"cx('previewMask')\" (click)=\"onImageClick()\" #previewButton [style]=\"previewMaskStyle()\" [pBind]=\"ptm('previewMask')\">\n @if (indicatorTemplate()) {\n <ng-container *ngTemplateOutlet=\"indicatorTemplate()\"></ng-container>\n } @else {\n <svg data-p-icon=\"eye\" [class]=\"cx('previewIcon')\" [pBind]=\"ptm('previewIcon')\" />\n }\n </button>\n }\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 @if (!rotateRightIconTemplate()) {\n <svg data-p-icon=\"refresh\" />\n }\n <ng-container *ngTemplateOutlet=\"rotateRightIconTemplate()\"></ng-container>\n </button>\n <button [class]=\"cx('rotateLeftButton')\" (click)=\"rotateLeft()\" type=\"button\" [attr.aria-label]=\"leftAriaLabel()\" [pBind]=\"ptm('rotateLeftButton')\">\n @if (!rotateLeftIconTemplate()) {\n <svg data-p-icon=\"undo\" />\n }\n <ng-container *ngTemplateOutlet=\"rotateLeftIconTemplate()\"></ng-container>\n </button>\n <button [class]=\"cx('zoomOutButton')\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled()\" [attr.aria-label]=\"zoomOutAriaLabel()\" [pBind]=\"ptm('zoomOutButton')\">\n @if (!zoomOutIconTemplate()) {\n <svg data-p-icon=\"search-minus\" />\n }\n <ng-container *ngTemplateOutlet=\"zoomOutIconTemplate()\"></ng-container>\n </button>\n <button [class]=\"cx('zoomInButton')\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled()\" [attr.aria-label]=\"zoomInAriaLabel()\" [pBind]=\"ptm('zoomInButton')\">\n @if (!zoomInIconTemplate()) {\n <svg data-p-icon=\"search-plus\" />\n }\n <ng-container *ngTemplateOutlet=\"zoomInIconTemplate()\"></ng-container>\n </button>\n <button [class]=\"cx('closeButton')\" type=\"button\" (click)=\"closePreview()\" [attr.aria-label]=\"closeAriaLabel()\" #closeButton [pBind]=\"ptm('closeButton')\">\n @if (!closeIconTemplate()) {\n <svg data-p-icon=\"times\" />\n }\n <ng-container *ngTemplateOutlet=\"closeIconTemplate()\"></ng-container>\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 @if (!previewTemplate()) {\n <img\n [attr.src]=\"previewImageSrc() ? previewImageSrc() : src()\"\n [attr.srcset]=\"previewImageSrcSet()\"\n [attr.sizes]=\"previewImageSizes()\"\n [class]=\"cx('original')\"\n [style]=\"imagePreviewStyle()\"\n (click)=\"onPreviewImageClick()\"\n [pBind]=\"ptm('original')\"\n />\n }\n <ng-container *ngTemplateOutlet=\"previewTemplate(); context: previewTemplateContext()\"></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]': \"cx('root')\"\n },\n hostDirectives: [Bind]\n})\nexport class Image extends BaseComponent<ImagePassThrough> {\n componentName = 'Image';\n\n constructor() {\n super();\n }\n\n $pcImage: Image | undefined = inject(IMAGE_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * Style class of the image element.\n * @group Props\n */\n imageClass = input<string>();\n\n /**\n * Inline style of the image element.\n * @group Props\n */\n imageStyle = input<CSSProperties>();\n\n /**\n * The source path for the main image.\n * @group Props\n */\n src = input<string | SafeUrl>();\n\n /**\n * The srcset definition for the main image.\n * @group Props\n */\n srcSet = input<string | SafeUrl>();\n\n /**\n * The sizes definition for the main image.\n * @group Props\n */\n sizes = input<string>();\n\n /**\n * The source path for the preview image.\n * @group Props\n */\n previewImageSrc = input<string | SafeUrl>();\n\n /**\n * The srcset definition for the preview image.\n * @group Props\n */\n previewImageSrcSet = input<string | SafeUrl>();\n\n /**\n * The sizes definition for the preview image.\n * @group Props\n */\n previewImageSizes = input<string>();\n\n /**\n * Attribute of the preview image element.\n * @group Props\n */\n alt = input<string>();\n\n /**\n * Attribute of the image element.\n * @group Props\n */\n width = input<string>();\n\n /**\n * Attribute of the image element.\n * @group Props\n */\n height = input<string>();\n\n /**\n * Attribute of the image element.\n * @group Props\n */\n loading = input<ImageLoading>();\n\n /**\n * Controls the preview functionality.\n * @group Props\n */\n preview = input(false, { transform: booleanAttribute });\n\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 /**\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 /**\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<AppendTo>(undefined);\n\n /**\n * The motion options for the mask.\n * @group Props\n */\n maskMotionOptions = input<MotionOptions>();\n\n computedMaskMotionOptions = computed<MotionOptions>(() => {\n return {\n ...this.ptm('maskMotion'),\n ...this.maskMotionOptions()\n };\n });\n\n /**\n * The motion options.\n * @group Props\n */\n motionOptions = input<MotionOptions>();\n\n computedMotionOptions = computed<MotionOptions>(() => {\n return {\n ...this.ptm('motion'),\n ...this.motionOptions()\n };\n });\n\n /**\n * Triggered when the preview overlay is shown.\n * @group Emits\n */\n onShow = output<any>();\n\n /**\n * Triggered when the preview overlay is hidden.\n * @group Emits\n */\n onHide = output<any>();\n\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 onImageError = output<Event>();\n\n mask = viewChild<ElementRef>('mask');\n\n previewButton = viewChild<ElementRef>('previewButton');\n\n closeButton = viewChild<ElementRef>('closeButton');\n\n /**\n * Custom indicator template.\n * @group Templates\n */\n indicatorTemplate = contentChild<TemplateRef<void>>('indicator', { descendants: false });\n\n /**\n * Custom rotate right icon template.\n * @group Templates\n */\n rotateRightIconTemplate = contentChild<TemplateRef<void>>('rotaterighticon', { descendants: false });\n\n /**\n * Custom rotate left icon template.\n * @group Templates\n */\n rotateLeftIconTemplate = contentChild<TemplateRef<void>>('rotatelefticon', { descendants: false });\n\n /**\n * Custom zoom out icon template.\n * @group Templates\n */\n zoomOutIconTemplate = contentChild<TemplateRef<void>>('zoomouticon', { descendants: false });\n\n /**\n * Custom zoom in icon template.\n * @group Templates\n */\n zoomInIconTemplate = contentChild<TemplateRef<void>>('zoominicon', { descendants: false });\n\n /**\n * Custom close icon template.\n * @group Templates\n */\n closeIconTemplate = contentChild<TemplateRef<void>>('closeicon', { descendants: false });\n\n /**\n * Custom preview template.\n * @group Templates\n */\n previewTemplate = contentChild<TemplateRef<ImagePreviewTemplateContext>>('preview', { descendants: false });\n\n /**\n * Custom image template.\n * @group Templates\n */\n imageTemplate = contentChild<TemplateRef<ImageImageTemplateContext>>('image', { descendants: false });\n\n renderMask = signal<boolean>(false);\n\n renderPreview = signal<boolean>(false);\n\n maskVisible = signal(false);\n\n previewVisible: boolean = false;\n\n rotate = signal(0);\n\n scale = signal(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 private zoomSettings = {\n default: 1,\n step: 0.1,\n max: 1.5,\n min: 0.5\n };\n\n private get aria() {\n return this.config.translation.aria;\n }\n\n isZoomOutDisabled = computed(() => this.scale() - this.zoomSettings.step <= this.zoomSettings.min);\n\n isZoomInDisabled = computed(() => this.scale() + this.zoomSettings.step >= this.zoomSettings.max);\n\n previewMaskStyle = computed(() => ({ height: this.height() + 'px', width: this.width() + 'px' }));\n\n imageTemplateContext() {\n return { errorCallback: this.imageError.bind(this) };\n }\n\n previewTemplateContext() {\n return {\n class: this.cx('original'),\n style: this.imagePreviewStyle(),\n previewCallback: this.onPreviewImageClick.bind(this)\n };\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onImageClick() {\n if (this.preview()) {\n this.maskVisible.set(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.update((v) => v + 90);\n this.previewClick = true;\n }\n\n rotateLeft() {\n this.rotate.update((v) => v - 90);\n this.previewClick = true;\n }\n\n zoomIn() {\n this.scale.update((v) => v + this.zoomSettings.step);\n this.previewClick = true;\n }\n\n zoomOut() {\n this.scale.update((v) => v - 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.set(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.set(0);\n this.scale.set(this.zoomSettings.default);\n unblockBodyScroll();\n this.onHide.emit({});\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 zoomImageAriaLabel() {\n return this.aria?.zoomImage;\n }\n\n handleToolbarClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n closePreview() {\n this.previewVisible = false;\n }\n\n imageError(event: Event) {\n this.onImageError.emit(event);\n }\n\n rightAriaLabel() {\n return this.aria?.rotateRight;\n }\n\n leftAriaLabel() {\n return this.aria?.rotateLeft;\n }\n\n zoomInAriaLabel() {\n return this.aria?.zoomIn;\n }\n\n zoomOutAriaLabel() {\n return this.aria?.zoomOut;\n }\n\n closeAriaLabel() {\n return this.aria?.close;\n }\n\n @HostListener('document:keydown.escape') onKeydownHandler() {\n if (this.previewVisible) {\n this.closePreview();\n }\n }\n\n onDestroy() {\n if (this.wrapper) {\n ZIndexUtils.clear(this.wrapper);\n this.wrapper.remove();\n this.wrapper = null;\n }\n\n this.container = null;\n\n if (this.maskVisible()) {\n unblockBodyScroll();\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":["RefreshIcon","EyeIcon","UndoIcon","SearchMinusIcon","SearchPlusIcon","TimesIcon"],"mappings":"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"}