import*as e from"react";import t,{PrimeReactContext as n,localeOption as o}from"primereact/api";import{ComponentBase as r,useHandleStyle as i}from"primereact/componentbase";import{CSSTransition as a}from"primereact/csstransition";import{useMergeProps as l,useGlobalOnEscapeKey as c,ESC_KEY_HANDLING_PRIORITIES as s,useUnmountEffect as u}from"primereact/hooks";import{IconBase as p}from"primereact/iconbase";import{EyeIcon as m}from"primereact/icons/eye";import{RefreshIcon as f}from"primereact/icons/refresh";import{SearchMinusIcon as g}from"primereact/icons/searchminus";import{SearchPlusIcon as d}from"primereact/icons/searchplus";import{TimesIcon as y}from"primereact/icons/times";import{UndoIcon as b}from"primereact/icons/undo";import{Portal as v}from"primereact/portal";import{classNames as w,DomHandler as h,ZIndexUtils as C,IconUtils as I,ObjectUtils as E}from"primereact/utils";function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,o=Array(t);n .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 z-index: 1;\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 .15s;\n max-width: 100vw;\n max-height: 100vh;\n width: 100%;\n height: 100%;\n }\n \n .p-image-preview-enter {\n opacity: 0;\n transform: scale(0.7);\n }\n \n .p-image-preview-enter-active {\n opacity: 1;\n transform: scale(1);\n transition: all 150ms cubic-bezier(0, 0, 0.2, 1);\n }\n \n .p-image-preview-enter-done {\n transform: none;\n }\n \n .p-image-preview-exit {\n opacity: 1;\n }\n \n .p-image-preview-exit-active {\n opacity: 0;\n transform: scale(0.7);\n transition: all 150ms cubic-bezier(0.4, 0.0, 0.2, 1);\n }\n}\n",inlineStyles:{preview:function(e){return{transform:"rotate("+e.rotateState+"deg) scale("+e.scaleState+")"}}}}});function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function J(e){for(var t=1;t=1.5,q=A.setMetaData({props:k,state:{maskVisible:j,previewVisible:N,rotate:V,scale:H}}),Q=q.ptm,W=q.cx,ee=q.sx,te=q.isUnstyled;c({callback:function(){oe()},when:k.closeOnEscape&&j,priority:[s.IMAGE,0]}),i(A.css.styles,te,{name:"image"});var ne=function(){k.preview&&(z(!0),h.blockBodyScroll(),setTimeout((function(){R(!0)}),25))},oe=function(){R(!1),h.unblockBodyScroll(),X(0),Z(1)},re=function(e){[e.target.classList].includes("p-image-action")||e.target.closest(".p-image-action")||oe()},ie=function(e){if("Escape"===e.code)oe(),setTimeout((function(){h.focus(K.current)}),200),e.preventDefault()},ae=function(){h.saveAs({name:k.alt,src:k.src})},le=function(e){e.stopPropagation(),X((function(e){return e+90}))},ce=function(e){e.stopPropagation(),X((function(e){return e-90}))},se=function(e){e.stopPropagation(),Z((function(e){return $?e:e+.1}))},ue=function(e){e.stopPropagation(),Z((function(e){return Y?e:e-.1}))},pe=function(){C.set("modal",F.current,P&&P.autoZIndex||t.autoZIndex,P&&P.zIndex.modal||t.zIndex.modal)},me=function(){k.onShow&&k.onShow()},fe=function(){!te()&&h.addClass(F.current,"p-component-overlay-leave")},ge=function(){k.onHide&&k.onHide()},de=function(){C.clear(F.current),z(!1)};u((function(){F.current&&C.clear(F.current)}));e.useImperativeHandle(p,(function(){return{props:k,show:ne,hide:oe,getElement:function(){return U.current},getImage:function(){return _.current}}}));var ye,be,ve=k.src,we=k.alt,he=k.width,Ce=k.height,Ie=k.crossOrigin,Ee=k.referrerPolicy,Oe=k.useMap,Se=k.loading,Pe=function(){var t=k.downloadable,n=k.alt,r=k.crossOrigin,i=k.referrerPolicy,l=k.useMap,c=k.loading,s=S(Q("downloadIcon")),u=S(Q("rotateRightIcon")),p=S(Q("rotateLeftIcon")),m=S(Q("zoomOutIcon")),v=S(Q("zoomInIcon")),h=S(Q("closeIcon")),C=I.getJSXIcon(k.downloadIcon||e.createElement(M,null),J({},s),{props:k}),E=I.getJSXIcon(k.rotateRightIcon||e.createElement(f,null),J({},u),{props:k}),P=I.getJSXIcon(k.rotateLeftIcon||e.createElement(b,null),J({},p),{props:k}),x=I.getJSXIcon(k.zoomOutIcon||e.createElement(g,null),J({},m),{props:k}),z=I.getJSXIcon(k.zoomInIcon||e.createElement(d,null),J({},v),{props:k}),B=I.getJSXIcon(k.closeIcon||e.createElement(y,null),J({},h),{props:k}),R=S({ref:F,role:"dialog",className:W("mask"),"aria-modal":j,onClick:re,onKeyDown:ie},Q("mask")),L=S({className:W("toolbar")},Q("toolbar")),A=S({className:W("downloadButton"),onPointerUp:ae,type:"button"},Q("downloadButton")),D=S({className:W("rotateRightButton"),onClick:le,type:"button","aria-label":o("aria")?o("aria").rotateRight:void 0,"data-pc-group-section":"action"},Q("rotateRightButton")),X=S({className:W("rotateLeftButton"),onClick:ce,type:"button","aria-label":o("aria")?o("aria").rotateLeft:void 0,"data-pc-group-section":"action"},Q("rotateLeftButton")),T=S({className:w(W("zoomOutButton"),{"p-disabled":Y}),style:{pointerEvents:"auto"},onClick:ue,type:"button",disabled:Y,"aria-label":o("aria")?o("aria").zoomOut:void 0,"data-pc-group-section":"action"},Q("zoomOutButton")),Z=S({className:w(W("zoomInButton"),{"p-disabled":$}),style:{pointerEvents:"auto"},onClick:se,type:"button",disabled:$,"aria-label":o("aria")?o("aria").zoomIn:void 0,"data-pc-group-section":"action"},Q("zoomInButton")),U=S({className:W("closeButton"),type:"button",onClick:oe,"aria-label":o("aria")?o("aria").close:void 0,autoFocus:!0,"data-pc-group-section":"action"},Q("closeButton")),_=S({src:k.zoomSrc||k.src,className:W("preview"),style:ee("preview",{rotateState:V,scaleState:H}),crossOrigin:r,referrerPolicy:i,useMap:l,loading:c},Q("preview")),K=S({ref:G},Q("previewContainer")),q=S({classNames:W("transition"),in:N,timeout:{enter:150,exit:150},unmountOnExit:!0,onEntering:pe,onEntered:me,onExit:fe,onExiting:ge,onExited:de},Q("transition"));return e.createElement("div",R,e.createElement("div",L,t&&e.createElement("button",A,C),e.createElement("button",D,E),e.createElement("button",X,P),e.createElement("button",T,x),e.createElement("button",Z,z),e.createElement("button",U,B)),e.createElement(a,O({nodeRef:G},q),e.createElement("div",K,e.createElement("img",O({alt:n},_)))))}(),ke=S({className:W("icon")},Q("icon")),xe=I.getJSXIcon(k.indicatorIcon||e.createElement(m,ke),J({},ke),{props:k}),je=k.template?E.getJSXElement(k.template,k):xe,ze=(ye=o("aria")?o("aria").zoomImage:void 0,be=S({ref:K,className:W("button"),onClick:ne,type:"button","aria-label":ye},Q("button")),k.preview?e.createElement("button",be,je):null),Be=S({ref:_,src:ve,className:k.imageClassName,width:he,height:Ce,crossOrigin:Ie,referrerPolicy:Ee,useMap:Oe,loading:Se,style:k.imageStyle,onError:k.onError},Q("image")),Ne=k.src&&e.createElement("img",O({},Be,{alt:we})),Re=S({ref:U,className:w(k.className,W("root"))},A.getOtherProps(k),Q("root"));return e.createElement("span",Re,Ne,ze,j&&e.createElement(v,{element:Pe,appendTo:document.body}))})));V.displayName="Image";export{V as Image};