primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 12.1 kB
JavaScript
"use strict";var e=require("primevue/focustrap"),t=require("primevue/icons/eye"),o=require("primevue/icons/refresh"),n=require("primevue/icons/searchminus"),i=require("primevue/icons/searchplus"),r=require("primevue/icons/times"),a=require("primevue/icons/undo"),l=require("primevue/portal"),s=require("primevue/utils"),c=require("primevue/basecomponent"),u=require("primevue/usestyle"),p=require("vue");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=m(e),d=m(t),v=m(o),g=m(n),b=m(i),h=m(r),y=m(a),w=m(l),k=m(c),P=u.useStyle("\n.p-image-mask {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.p-image-preview-container {\n position: relative;\n display: inline-block;\n}\n\n.p-image-preview-indicator {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s;\n}\n\n.p-image-preview-container:hover > .p-image-preview-indicator {\n opacity: 1;\n cursor: pointer;\n}\n\n.p-image-preview-container > img {\n cursor: pointer;\n}\n\n.p-image-toolbar {\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n}\n\n.p-image-action.p-link {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.p-image-preview {\n transition: transform 0.15s;\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.p-image-preview-enter-active {\n transition: all 150ms cubic-bezier(0, 0, 0.2, 1);\n}\n.p-image-preview-leave-active {\n transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.p-image-preview-enter-from,\n.p-image-preview-leave-to {\n opacity: 0;\n transform: scale(0.7);\n}\n",{name:"image",manual:!0}),C={name:"Image",extends:{name:"BaseImage",extends:k.default,props:{preview:{type:Boolean,default:!1},class:{type:null,default:null},style:{type:null,default:null},imageStyle:{type:null,default:null},imageClass:{type:null,default:null},previewButtonProps:{type:null,default:null},indicatorIcon:{type:String,default:void 0},zoomInDisabled:{type:Boolean,default:!1},zoomOutDisabled:{type:Boolean,default:!1}},css:{classes:{root:function(e){return["p-image p-component",{"p-image-preview-container":e.props.preview}]},image:function(e){return e.props.image},button:"p-image-preview-indicator",icon:"p-image-preview-icon",mask:"p-image-mask p-component-overlay p-component-overlay-enter",rotateRightButton:"p-image-action p-link",rotateLeftButton:"p-image-action p-link",zoomOutButton:function(e){return["p-image-action p-link",{"p-disabled":e.instance.isZoomOutDisabled}]},zoomInButton:function(e){return["p-image-action p-link",{"p-disabled":e.instance.isZoomInDisabled}]},closeButton:"p-image-action p-link",preview:"p-image-preview"},loadStyle:P.load},provide:function(){return{$parentInstance:this}}},inheritAttrs:!1,emits:["show","hide","error"],mask:null,data:function(){return{maskVisible:!1,previewVisible:!1,rotate:0,scale:1}},beforeUnmount:function(){this.mask&&s.ZIndexUtils.clear(this.container)},methods:{maskRef:function(e){this.mask=e},toolbarRef:function(e){this.toolbarRef=e},onImageClick:function(){var e=this;this.preview&&(s.DomHandler.addClass(document.body,"p-overflow-hidden"),this.maskVisible=!0,setTimeout((function(){e.previewVisible=!0}),25))},onPreviewImageClick:function(){this.previewClick=!0},onMaskClick:function(e){[e.target.classList].includes("p-image-action")||e.target.closest(".p-image-action")||(this.previewClick||(this.previewVisible=!1,this.rotate=0,this.scale=1),this.previewClick=!1)},onMaskKeydown:function(e){var t=this;if("Escape"===e.code)this.hidePreview(),setTimeout((function(){s.DomHandler.focus(t.$refs.previewButton)}),200),e.preventDefault()},onError:function(){this.$emit("error")},rotateRight:function(){this.rotate+=90,this.previewClick=!0},rotateLeft:function(){this.rotate-=90,this.previewClick=!0},zoomIn:function(){this.scale=this.scale+.1,this.previewClick=!0},zoomOut:function(){this.scale=this.scale-.1,this.previewClick=!0},onBeforeEnter:function(){s.ZIndexUtils.set("modal",this.mask,this.$primevue.config.zIndex.modal)},onEnter:function(){this.focus(),this.$emit("show")},onBeforeLeave:function(){!this.isUnstyled&&s.DomHandler.addClass(this.mask,"p-component-overlay-leave")},onLeave:function(){this.$emit("hide")},onAfterLeave:function(e){s.ZIndexUtils.clear(e),this.maskVisible=!1},focus:function(){var e=this.mask.querySelector("[autofocus]");e&&e.focus()},hidePreview:function(){this.previewVisible=!1,this.rotate=0,this.scale=1,s.DomHandler.removeClass(document.body,"p-overflow-hidden")}},computed:{containerClass:function(){return[this.cx("root"),this.class]},rotateClass:function(){return"p-image-preview-rotate-"+this.rotate},imagePreviewStyle:function(){return{transform:"rotate("+this.rotate+"deg) scale("+this.scale+")"}},isZoomInDisabled:function(){return this.zoomInDisabled||this.scale>=1.5},isZoomOutDisabled:function(){return this.zoomOutDisabled||this.scale<=.5},rightAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.rotateRight:void 0},leftAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.rotateLeft:void 0},zoomInAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.zoomIn:void 0},zoomOutAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.zoomOut:void 0},closeAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.close:void 0}},components:{Portal:w.default,EyeIcon:d.default,RefreshIcon:v.default,UndoIcon:y.default,SearchMinusIcon:g.default,SearchPlusIcon:b.default,TimesIcon:h.default},directives:{focustrap:f.default}};function I(e){return I="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},I(e)}function B(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function z(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?B(Object(o),!0).forEach((function(t){O(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):B(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function O(e,t,o){return(t=E(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function E(e){var t=S(e,"string");return"symbol"===I(t)?t:String(t)}function S(e,t){if("object"!==I(e)||null===e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,t||"default");if("object"!==I(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}var L=["aria-modal"],V=["aria-label"],x=["aria-label"],$=["disabled","aria-label"],D=["disabled","aria-label"],N=["aria-label"],R=["src"];C.render=function(e,t,o,n,i,r){var a=p.resolveComponent("RefreshIcon"),l=p.resolveComponent("UndoIcon"),s=p.resolveComponent("SearchMinusIcon"),c=p.resolveComponent("SearchPlusIcon"),u=p.resolveComponent("TimesIcon"),m=p.resolveComponent("Portal"),f=p.resolveDirective("focustrap");return p.openBlock(),p.createElementBlock("span",p.mergeProps({class:r.containerClass,style:e.style},e.ptm("root"),{"data-pc-name":"image"}),[p.renderSlot(e.$slots,"image",{onError:r.onError},(function(){return[p.createElementVNode("img",p.mergeProps({style:e.imageStyle,class:[e.cx("image"),e.imageClass],onError:t[0]||(t[0]=function(){return r.onError&&r.onError.apply(r,arguments)})},z(z({},e.$attrs),e.ptm("image"))),null,16)]})),e.preview?(p.openBlock(),p.createElementBlock("button",p.mergeProps({key:0,ref:"previewButton",type:"button",class:e.cx("button"),onClick:t[1]||(t[1]=function(){return r.onImageClick&&r.onImageClick.apply(r,arguments)})},z(z({},e.previewButtonProps),e.ptm("button"))),[p.renderSlot(e.$slots,"indicatoricon",{},(function(){return[(p.openBlock(),p.createBlock(p.resolveDynamicComponent(e.indicatorIcon?"i":"EyeIcon"),p.mergeProps({class:e.cx("icon")},e.ptm("icon")),null,16,["class"]))]}))],16)):p.createCommentVNode("",!0),p.createVNode(m,null,{default:p.withCtx((function(){return[i.maskVisible?p.withDirectives((p.openBlock(),p.createElementBlock("div",p.mergeProps({key:0,ref:r.maskRef,role:"dialog",class:e.cx("mask"),"aria-modal":i.maskVisible,onClick:t[8]||(t[8]=function(){return r.onMaskClick&&r.onMaskClick.apply(r,arguments)}),onKeydown:t[9]||(t[9]=function(){return r.onMaskKeydown&&r.onMaskKeydown.apply(r,arguments)})},e.ptm("mask")),[p.createElementVNode("div",p.mergeProps({class:"p-image-toolbar"},e.ptm("toolbar")),[p.createElementVNode("button",p.mergeProps({class:e.cx("rotateRightButton"),onClick:t[2]||(t[2]=function(){return r.rotateRight&&r.rotateRight.apply(r,arguments)}),type:"button","aria-label":r.rightAriaLabel},e.ptm("rotateRightButton"),{"data-pc-group-section":"action"}),[p.renderSlot(e.$slots,"refresh",{},(function(){return[p.createVNode(a,p.normalizeProps(p.guardReactiveProps(e.ptm("rotateRightIcon"))),null,16)]}))],16,V),p.createElementVNode("button",p.mergeProps({class:e.cx("rotateLeftButton"),onClick:t[3]||(t[3]=function(){return r.rotateLeft&&r.rotateLeft.apply(r,arguments)}),type:"button","aria-label":r.leftAriaLabel},e.ptm("rotateLeftButton"),{"data-pc-group-section":"action"}),[p.renderSlot(e.$slots,"undo",{},(function(){return[p.createVNode(l,p.normalizeProps(p.guardReactiveProps(e.ptm("rotateLeftIcon"))),null,16)]}))],16,x),p.createElementVNode("button",p.mergeProps({class:e.cx("zoomOutButton"),onClick:t[4]||(t[4]=function(){return r.zoomOut&&r.zoomOut.apply(r,arguments)}),type:"button",disabled:r.isZoomOutDisabled,"aria-label":r.zoomOutAriaLabel},e.ptm("zoomOutButton"),{"data-pc-group-section":"action"}),[p.renderSlot(e.$slots,"zoomout",{},(function(){return[p.createVNode(s,p.normalizeProps(p.guardReactiveProps(e.ptm("zoomOutIcon"))),null,16)]}))],16,$),p.createElementVNode("button",p.mergeProps({class:e.cx("zoomInButton"),onClick:t[5]||(t[5]=function(){return r.zoomIn&&r.zoomIn.apply(r,arguments)}),type:"button",disabled:r.isZoomInDisabled,"aria-label":r.zoomInAriaLabel},e.ptm("zoomInButton"),{"data-pc-group-section":"action"}),[p.renderSlot(e.$slots,"zoomin",{},(function(){return[p.createVNode(c,p.normalizeProps(p.guardReactiveProps(e.ptm("zoomInIcon"))),null,16)]}))],16,D),p.createElementVNode("button",p.mergeProps({class:e.cx("closeButton"),type:"button",onClick:t[6]||(t[6]=function(){return r.hidePreview&&r.hidePreview.apply(r,arguments)}),"aria-label":r.closeAriaLabel,autofocus:""},e.ptm("closeButton"),{"data-pc-group-section":"action"}),[p.renderSlot(e.$slots,"close",{},(function(){return[p.createVNode(u,p.normalizeProps(p.guardReactiveProps(e.ptm("closeIcon"))),null,16)]}))],16,N)],16),p.createVNode(p.Transition,p.mergeProps({name:"p-image-preview",onBeforeEnter:r.onBeforeEnter,onEnter:r.onEnter,onLeave:r.onLeave,onBeforeLeave:r.onBeforeLeave,onAfterLeave:r.onAfterLeave},e.ptm("transition")),{default:p.withCtx((function(){return[i.previewVisible?(p.openBlock(),p.createElementBlock("div",p.normalizeProps(p.mergeProps({key:0},e.ptm("previewContainer"))),[p.renderSlot(e.$slots,"preview",{class:p.normalizeClass(e.cx("preview")),style:p.normalizeStyle(r.imagePreviewStyle),onClick:r.onPreviewImageClick},(function(){return[p.createElementVNode("img",p.mergeProps({src:e.$attrs.src,class:e.cx("preview"),style:r.imagePreviewStyle,onClick:t[7]||(t[7]=function(){return r.onPreviewImageClick&&r.onPreviewImageClick.apply(r,arguments)})},e.ptm("preview")),null,16,R)]}))],16)):p.createCommentVNode("",!0)]})),_:3},16,["onBeforeEnter","onEnter","onLeave","onBeforeLeave","onAfterLeave"])],16,L)),[[f]]):p.createCommentVNode("",!0)]})),_:3})],16)},module.exports=C;