import{I as V,m as me,K as Ie,L as _e,E as N,l as ze,k as Le,c as Ee,M as Ce,N as Se,O as xe,P as Ne,_ as pe,Q as B,R as Oe}from"./el-button-e2db9d24.js";import{ac as Te,k as ge,G as F,S as ee,d as ae,ad as ve,ae as we,u as ye,af as Re,q as y,ag as $e,s as Ae,e as m,x as ce,J as he,z as be,o as b,c as de,Q as c,w as L,M as h,n as d,a,g as fe,$ as Ve,V as E,f as S,F as te,X as Be,W as Me,D as Xe,E as Ye,r as U,T as De,ah as Pe,ai as Fe,h as ke,aj as He,O as We,m as je,ak as Ke,C as Ze}from"./index-7ed2d026.js";import{E as A}from"./aria-60e0cdc6.js";import{d as qe,g as Ge}from"./el-scrollbar-5933f25d.js";import{u as Qe}from"./index-dc664f45.js";const Je=(r,f)=>{if(!V||!r||!f)return!1;const o=r.getBoundingClientRect();let n;return f instanceof Element?n=f.getBoundingClientRect():n={top:0,right:window.innerWidth,bottom:window.innerHeight,left:0},o.topn.top&&o.right>n.left&&o.leftme([])},zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},hideOnClickModal:Boolean,teleported:Boolean,closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{type:Number,default:1.2},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7},crossorigin:{type:F(String),default:"anonymous"}}),tt={close:()=>!0,switch:r=>ee(r),rotate:r=>ee(r)},at=["src","crossorigin"],nt=ae({name:"ElImageViewer"}),st=ae({...nt,props:et,emits:tt,setup(r,{expose:f,emit:o}){const n=r,k={CONTAIN:{name:"contain",icon:ve(Ie)},ORIGINAL:{name:"original",icon:ve(_e)}},{t:C}=we(),i=ye("image-viewer"),{nextZIndex:ne}=Re(),O=y(),H=y([]),x=$e(),p=y(!0),M=y(n.crossorigin),g=y(n.initialIndex),w=Ae(k.CONTAIN),u=y({scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),X=m(()=>{const{urlList:t}=n;return t.length<=1}),R=m(()=>g.value===0),W=m(()=>g.value===n.urlList.length-1),se=m(()=>n.urlList[g.value]),oe=m(()=>[i.e("btn"),i.e("prev"),i.is("disabled",!n.infinite&&R.value)]),Y=m(()=>[i.e("btn"),i.e("next"),i.is("disabled",!n.infinite&&W.value)]),le=m(()=>{const{scale:t,deg:s,offsetX:l,offsetY:I,enableTransition:z}=u.value;let v=l/t,_=I/t;switch(s%360){case 90:case-270:[v,_]=[_,-v];break;case 180:case-180:[v,_]=[-v,-_];break;case 270:case-90:[v,_]=[-_,v];break}const $={transform:`scale(${t}) rotate(${s}deg) translate(${v}px, ${_}px)`,transition:z?"transform .3s":""};return w.value.name===k.CONTAIN.name&&($.maxWidth=$.maxHeight="100%"),$}),j=m(()=>ee(n.zIndex)?n.zIndex:ne());function T(){ie(),o("close")}function re(){const t=ue(l=>{switch(l.code){case A.esc:n.closeOnPressEscape&&T();break;case A.space:G();break;case A.left:Q();break;case A.up:e("zoomIn");break;case A.right:J();break;case A.down:e("zoomOut");break}}),s=ue(l=>{const I=l.deltaY||l.deltaX;e(I<0?"zoomIn":"zoomOut",{zoomRate:n.zoomRate,enableTransition:!1})});x.run(()=>{B(document,"keydown",t),B(document,"wheel",s)})}function ie(){x.stop()}function K(){p.value=!1}function Z(t){p.value=!1,t.target.alt=C("el.image.error")}function q(t){if(p.value||t.button!==0||!O.value)return;u.value.enableTransition=!1;const{offsetX:s,offsetY:l}=u.value,I=t.pageX,z=t.pageY,v=ue($=>{u.value={...u.value,offsetX:s+$.pageX-I,offsetY:l+$.pageY-z}}),_=B(document,"mousemove",v);B(document,"mouseup",()=>{_()}),t.preventDefault()}function D(){u.value={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function G(){if(p.value)return;const t=Fe(k),s=Object.values(k),l=w.value.name,z=(s.findIndex(v=>v.name===l)+1)%t.length;w.value=k[t[z]],D()}function P(t){const s=n.urlList.length;g.value=(t+s)%s}function Q(){R.value&&!n.infinite||P(g.value-1)}function J(){W.value&&!n.infinite||P(g.value+1)}function e(t,s={}){if(p.value)return;const{minScale:l,maxScale:I}=n,{zoomRate:z,rotateDeg:v,enableTransition:_}={zoomRate:n.zoomRate,rotateDeg:90,enableTransition:!0,...s};switch(t){case"zoomOut":u.value.scale>l&&(u.value.scale=Number.parseFloat((u.value.scale/z).toFixed(3)));break;case"zoomIn":u.value.scale{he(()=>{const t=H.value[0];t!=null&&t.complete||(p.value=!0)})}),ce(g,t=>{D(),o("switch",t)}),be(()=>{var t,s;re(),(s=(t=O.value)==null?void 0:t.focus)==null||s.call(t)}),f({setActiveItem:P}),(t,s)=>(b(),de(Pe,{to:"body",disabled:!t.teleported},[c(De,{name:"viewer-fade",appear:""},{default:L(()=>[h("div",{ref_key:"wrapper",ref:O,tabindex:-1,class:d(a(i).e("wrapper")),style:fe({zIndex:a(j)})},[h("div",{class:d(a(i).e("mask")),onClick:s[0]||(s[0]=Ve(l=>t.hideOnClickModal&&T(),["self"]))},null,2),E(" CLOSE "),h("span",{class:d([a(i).e("btn"),a(i).e("close")]),onClick:T},[c(a(N),null,{default:L(()=>[c(a(ze))]),_:1})],2),E(" ARROW "),a(X)?E("v-if",!0):(b(),S(te,{key:0},[h("span",{class:d(a(oe)),onClick:Q},[c(a(N),null,{default:L(()=>[c(a(Le))]),_:1})],2),h("span",{class:d(a(Y)),onClick:J},[c(a(N),null,{default:L(()=>[c(a(Ee))]),_:1})],2)],64)),E(" ACTIONS "),h("div",{class:d([a(i).e("btn"),a(i).e("actions")])},[h("div",{class:d(a(i).e("actions__inner"))},[c(a(N),{onClick:s[1]||(s[1]=l=>e("zoomOut"))},{default:L(()=>[c(a(Ce))]),_:1}),c(a(N),{onClick:s[2]||(s[2]=l=>e("zoomIn"))},{default:L(()=>[c(a(Se))]),_:1}),h("i",{class:d(a(i).e("actions__divider"))},null,2),c(a(N),{onClick:G},{default:L(()=>[(b(),de(Be(a(w).icon)))]),_:1}),h("i",{class:d(a(i).e("actions__divider"))},null,2),c(a(N),{onClick:s[3]||(s[3]=l=>e("anticlockwise"))},{default:L(()=>[c(a(xe))]),_:1}),c(a(N),{onClick:s[4]||(s[4]=l=>e("clockwise"))},{default:L(()=>[c(a(Ne))]),_:1})],2)],2),E(" CANVAS "),h("div",{class:d(a(i).e("canvas"))},[(b(!0),S(te,null,Me(t.urlList,(l,I)=>Xe((b(),S("img",{ref_for:!0,ref:z=>H.value[I]=z,key:l,src:l,style:fe(a(le)),class:d(a(i).e("img")),crossorigin:M.value,onLoad:K,onError:Z,onMousedown:q},null,46,at)),[[Ye,I===g.value]])),128))],2),U(t.$slots,"default")],6)]),_:3})],8,["disabled"]))}});var ot=pe(st,[["__file","image-viewer.vue"]]);const lt=ke(ot),rt=ge({hideOnClickModal:Boolean,src:{type:String,default:""},fit:{type:String,values:["","contain","cover","fill","none","scale-down"],default:""},loading:{type:String,values:["eager","lazy"]},lazy:Boolean,scrollContainer:{type:F([String,Object])},previewSrcList:{type:F(Array),default:()=>me([])},previewTeleported:Boolean,zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{type:Number,default:1.2},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7},crossorigin:{type:F(String),default:"anonymous"}}),it={load:r=>r instanceof Event,error:r=>r instanceof Event,switch:r=>ee(r),close:()=>!0,show:()=>!0},ut=["src","loading","crossorigin"],ct={key:0},dt=ae({name:"ElImage",inheritAttrs:!1}),ft=ae({...dt,props:rt,emits:it,setup(r,{emit:f}){const o=r;let n="";const{t:k}=we(),C=ye("image"),i=He(),ne=Qe(),O=y(),H=y(o.crossorigin),x=y(!1),p=y(!0),M=y(!1),g=y(),w=y(),u=V&&"loading"in HTMLImageElement.prototype;let X,R;const W=m(()=>[C.e("inner"),Y.value&&C.e("preview"),p.value&&C.is("loading")]),se=m(()=>i.style),oe=m(()=>{const{fit:e}=o;return V&&e?{objectFit:e}:{}}),Y=m(()=>{const{previewSrcList:e}=o;return Array.isArray(e)&&e.length>0}),le=m(()=>{const{previewSrcList:e,initialIndex:t}=o;let s=t;return t>e.length-1&&(s=0),s}),j=m(()=>o.loading==="eager"?!1:!u&&o.loading==="lazy"||o.lazy),T=()=>{V&&(p.value=!0,x.value=!1,O.value=o.src)};function re(e){p.value=!1,x.value=!1,f("load",e)}function ie(e){p.value=!1,x.value=!0,f("error",e)}function K(){Je(g.value,w.value)&&(T(),D())}const Z=Oe(K,200,!0);async function q(){var e;if(!V)return;await he();const{scrollContainer:t}=o;Ke(t)?w.value=t:Ze(t)&&t!==""?w.value=(e=document.querySelector(t))!=null?e:void 0:g.value&&(w.value=Ge(g.value)),w.value&&(X=B(w,"scroll",Z),setTimeout(()=>K(),100))}function D(){!V||!w.value||!Z||(X==null||X(),w.value=void 0)}function G(e){if(e.ctrlKey){if(e.deltaY<0)return e.preventDefault(),!1;if(e.deltaY>0)return e.preventDefault(),!1}}function P(){Y.value&&(R=B("wheel",G,{passive:!1}),n=document.body.style.overflow,document.body.style.overflow="hidden",M.value=!0,f("show"))}function Q(){R==null||R(),document.body.style.overflow=n,M.value=!1,f("close")}function J(e){f("switch",e)}return ce(()=>o.src,()=>{j.value?(p.value=!0,x.value=!1,D(),q()):T()}),be(()=>{j.value?q():T()}),(e,t)=>(b(),S("div",{ref_key:"container",ref:g,class:d([a(C).b(),e.$attrs.class]),style:fe(a(se))},[x.value?U(e.$slots,"error",{key:0},()=>[h("div",{class:d(a(C).e("error"))},We(a(k)("el.image.error")),3)]):(b(),S(te,{key:1},[O.value!==void 0?(b(),S("img",je({key:0},a(ne),{src:O.value,loading:e.loading,style:a(oe),class:a(W),crossorigin:H.value,onClick:P,onLoad:re,onError:ie}),null,16,ut)):E("v-if",!0),p.value?(b(),S("div",{key:1,class:d(a(C).e("wrapper"))},[U(e.$slots,"placeholder",{},()=>[h("div",{class:d(a(C).e("placeholder"))},null,2)])],2)):E("v-if",!0)],64)),a(Y)?(b(),S(te,{key:2},[M.value?(b(),de(a(lt),{key:0,"z-index":e.zIndex,"initial-index":a(le),infinite:e.infinite,"zoom-rate":e.zoomRate,"min-scale":e.minScale,"max-scale":e.maxScale,"url-list":e.previewSrcList,"hide-on-click-modal":e.hideOnClickModal,teleported:e.previewTeleported,"close-on-press-escape":e.closeOnPressEscape,onClose:Q,onSwitch:J},{default:L(()=>[e.$slots.viewer?(b(),S("div",ct,[U(e.$slots,"viewer")])):E("v-if",!0)]),_:3},8,["z-index","initial-index","infinite","zoom-rate","min-scale","max-scale","url-list","hide-on-click-modal","teleported","close-on-press-escape"])):E("v-if",!0)],64)):E("v-if",!0)],6))}});var vt=pe(ft,[["__file","image.vue"]]);const ht=ke(vt);export{ht as E};