import{c as V,d as R}from"./_syGKIn2.js";import{aE as B,ap as ue,ag as me,aL as H,aX as pe,ah as ge,Y as ne,ba as ve,bb as Ie,bc as _e,av as be,ai as we,bd as Le,r as h,be as ze,as as Se,v as g,y as ce,h as ye,j as de,o as y,a as f,d as S,b as w,n as fe,B as v,u as e,k as C,c as x,l as ae,J as Ce,aw as O,bf as Ee,F as te,ax as Ne,G as xe,bg as Oe,bh as Te,a$ as $e,bi as Ae,bj as Re,i as Be,S as Ve,T as Me,ay as Ye,bk as Xe,bl as De,A as he,ao as ke,bm as Pe,al as Fe,b4 as He,ar as je,bn as Ke,t as We}from"./m6uXH7i0.js";import{t as ie}from"./DgZRJ7Z5.js";import{u as Ge}from"./BLhyBqZ5.js";import{g as Ze}from"./5iJ-YE2g.js";const qe=(c,k)=>{if(!B||!c||!k)return!1;const l=c.getBoundingClientRect();let b;return k instanceof Element?b=k.getBoundingClientRect():b={top:0,right:window.innerWidth,bottom:window.innerHeight,left:0},l.top<b.bottom&&l.bottom>b.top&&l.right>b.left&&l.left<b.right},Je=me({urlList:{type:H(Array),default:()=>pe([])},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:H(String)}}),Qe={close:()=>!0,switch:c=>ue(c),rotate:c=>ue(c)},Ue=["src","crossorigin"],ea=ne({name:"ElImageViewer"}),aa=ne({...ea,props:Je,emits:Qe,setup(c,{expose:k,emit:l}){var b;const d=c,p={CONTAIN:{name:"contain",icon:ve(_e)},ORIGINAL:{name:"original",icon:ve(Ie)}},{t:se}=be(),r=we("image-viewer"),{nextZIndex:M}=Le(),E=h(),N=h([]),T=ze(),I=h(!0),i=h(d.initialIndex),$=Se(p.CONTAIN),s=h({scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),Y=h((b=d.zIndex)!=null?b:M()),oe=g(()=>{const{urlList:t}=d;return t.length<=1}),j=g(()=>i.value===0),K=g(()=>i.value===d.urlList.length-1),X=g(()=>d.urlList[i.value]),le=g(()=>[r.e("btn"),r.e("prev"),r.is("disabled",!d.infinite&&j.value)]),W=g(()=>[r.e("btn"),r.e("next"),r.is("disabled",!d.infinite&&K.value)]),D=g(()=>{const{scale:t,deg:n,offsetX:o,offsetY:_,enableTransition:z}=s.value;let m=o/t,L=_/t;switch(n%360){case 90:case-270:[m,L]=[L,-m];break;case 180:case-180:[m,L]=[-m,-L];break;case 270:case-90:[m,L]=[-L,m];break}const A={transform:`scale(${t}) rotate(${n}deg) translate(${m}px, ${L}px)`,transition:z?"transform .3s":""};return $.value.name===p.CONTAIN.name&&(A.maxWidth=A.maxHeight="100%"),A});function P(){G(),l("close")}function re(){const t=ie(o=>{switch(o.code){case R.esc:d.closeOnPressEscape&&P();break;case R.space:U();break;case R.left:ee();break;case R.up:u("zoomIn");break;case R.right:a();break;case R.down:u("zoomOut");break}}),n=ie(o=>{const _=o.deltaY||o.deltaX;u(_<0?"zoomIn":"zoomOut",{zoomRate:d.zoomRate,enableTransition:!1})});T.run(()=>{V(document,"keydown",t),V(document,"wheel",n)})}function G(){T.stop()}function Z(){I.value=!1}function q(t){I.value=!1,t.target.alt=se("el.image.error")}function J(t){if(I.value||t.button!==0||!E.value)return;s.value.enableTransition=!1;const{offsetX:n,offsetY:o}=s.value,_=t.pageX,z=t.pageY,m=ie(A=>{s.value={...s.value,offsetX:n+A.pageX-_,offsetY:o+A.pageY-z}}),L=V(document,"mousemove",m);V(document,"mouseup",()=>{L()}),t.preventDefault()}function Q(){s.value={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function U(){if(I.value)return;const t=De(p),n=Object.values(p),o=$.value.name,z=(n.findIndex(m=>m.name===o)+1)%t.length;$.value=p[t[z]],Q()}function F(t){const n=d.urlList.length;i.value=(t+n)%n}function ee(){j.value&&!d.infinite||F(i.value-1)}function a(){K.value&&!d.infinite||F(i.value+1)}function u(t,n={}){if(I.value)return;const{minScale:o,maxScale:_}=d,{zoomRate:z,rotateDeg:m,enableTransition:L}={zoomRate:d.zoomRate,rotateDeg:90,enableTransition:!0,...n};switch(t){case"zoomOut":s.value.scale>o&&(s.value.scale=Number.parseFloat((s.value.scale/z).toFixed(3)));break;case"zoomIn":s.value.scale<_&&(s.value.scale=Number.parseFloat((s.value.scale*z).toFixed(3)));break;case"clockwise":s.value.deg+=m,l("rotate",s.value.deg);break;case"anticlockwise":s.value.deg-=m,l("rotate",s.value.deg);break}s.value.enableTransition=L}return ce(X,()=>{he(()=>{const t=N.value[0];t!=null&&t.complete||(I.value=!0)})}),ce(i,t=>{Q(),l("switch",t)}),ye(()=>{var t,n;re(),(n=(t=E.value)==null?void 0:t.focus)==null||n.call(t)}),k({setActiveItem:F}),(t,n)=>(y(),de(Xe,{to:"body",disabled:!t.teleported},[f(Ye,{name:"viewer-fade",appear:""},{default:S(()=>[w("div",{ref_key:"wrapper",ref:E,tabindex:-1,class:v(e(r).e("wrapper")),style:fe({zIndex:Y.value})},[w("div",{class:v(e(r).e("mask")),onClick:n[0]||(n[0]=Ce(o=>t.hideOnClickModal&&P(),["self"]))},null,2),C(" CLOSE "),w("span",{class:v([e(r).e("btn"),e(r).e("close")]),onClick:P},[f(e(O),null,{default:S(()=>[f(e(Ee))]),_:1})],2),C(" ARROW "),e(oe)?C("v-if",!0):(y(),x(te,{key:0},[w("span",{class:v(e(le)),onClick:ee},[f(e(O),null,{default:S(()=>[f(e(Ne))]),_:1})],2),w("span",{class:v(e(W)),onClick:a},[f(e(O),null,{default:S(()=>[f(e(xe))]),_:1})],2)],64)),C(" ACTIONS "),w("div",{class:v([e(r).e("btn"),e(r).e("actions")])},[w("div",{class:v(e(r).e("actions__inner"))},[f(e(O),{onClick:n[1]||(n[1]=o=>u("zoomOut"))},{default:S(()=>[f(e(Oe))]),_:1}),f(e(O),{onClick:n[2]||(n[2]=o=>u("zoomIn"))},{default:S(()=>[f(e(Te))]),_:1}),w("i",{class:v(e(r).e("actions__divider"))},null,2),f(e(O),{onClick:U},{default:S(()=>[(y(),de($e(e($).icon)))]),_:1}),w("i",{class:v(e(r).e("actions__divider"))},null,2),f(e(O),{onClick:n[3]||(n[3]=o=>u("anticlockwise"))},{default:S(()=>[f(e(Ae))]),_:1}),f(e(O),{onClick:n[4]||(n[4]=o=>u("clockwise"))},{default:S(()=>[f(e(Re))]),_:1})],2)],2),C(" CANVAS "),w("div",{class:v(e(r).e("canvas"))},[(y(!0),x(te,null,Be(t.urlList,(o,_)=>Ve((y(),x("img",{ref_for:!0,ref:z=>N.value[_]=z,key:o,src:o,style:fe(e(D)),class:v(e(r).e("img")),crossorigin:t.crossorigin,onLoad:Z,onError:q,onMousedown:J},null,46,Ue)),[[Me,_===i.value]])),128))],2),ae(t.$slots,"default")],6)]),_:3})],8,["disabled"]))}});var ta=ge(aa,[["__file","image-viewer.vue"]]);const na=ke(ta),sa=me({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:H([String,Object])},previewSrcList:{type:H(Array),default:()=>pe([])},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:H(String)}}),oa={load:c=>c instanceof Event,error:c=>c instanceof Event,switch:c=>ue(c),close:()=>!0,show:()=>!0},la=["src","loading","crossorigin"],ra={key:0},ia=ne({name:"ElImage",inheritAttrs:!1}),ua=ne({...ia,props:sa,emits:oa,setup(c,{emit:k}){const l=c;let b="";const{t:d}=be(),p=we("image"),se=Pe(),r=Ge(),M=h(),E=h(!1),N=h(!0),T=h(!1),I=h(),i=h(),$=B&&"loading"in HTMLImageElement.prototype;let s,Y;const oe=g(()=>[p.e("inner"),X.value&&p.e("preview"),N.value&&p.is("loading")]),j=g(()=>se.style),K=g(()=>{const{fit:a}=l;return B&&a?{objectFit:a}:{}}),X=g(()=>{const{previewSrcList:a}=l;return Array.isArray(a)&&a.length>0}),le=g(()=>{const{previewSrcList:a,initialIndex:u}=l;let t=u;return u>a.length-1&&(t=0),t}),W=g(()=>l.loading==="eager"?!1:!$&&l.loading==="lazy"||l.lazy),D=()=>{B&&(N.value=!0,E.value=!1,M.value=l.src)};function P(a){N.value=!1,E.value=!1,k("load",a)}function re(a){N.value=!1,E.value=!0,k("error",a)}function G(){qe(I.value,i.value)&&(D(),J())}const Z=Ke(G,200,!0);async function q(){var a;if(!B)return;await he();const{scrollContainer:u}=l;He(u)?i.value=u:je(u)&&u!==""?i.value=(a=document.querySelector(u))!=null?a:void 0:I.value&&(i.value=Ze(I.value)),i.value&&(s=V(i,"scroll",Z),setTimeout(()=>G(),100))}function J(){!B||!i.value||!Z||(s==null||s(),i.value=void 0)}function Q(a){if(a.ctrlKey){if(a.deltaY<0)return a.preventDefault(),!1;if(a.deltaY>0)return a.preventDefault(),!1}}function U(){X.value&&(Y=V("wheel",Q,{passive:!1}),b=document.body.style.overflow,document.body.style.overflow="hidden",T.value=!0,k("show"))}function F(){Y==null||Y(),document.body.style.overflow=b,T.value=!1,k("close")}function ee(a){k("switch",a)}return ce(()=>l.src,()=>{W.value?(N.value=!0,E.value=!1,J(),q()):D()}),ye(()=>{W.value?q():D()}),(a,u)=>(y(),x("div",{ref_key:"container",ref:I,class:v([e(p).b(),a.$attrs.class]),style:fe(e(j))},[E.value?ae(a.$slots,"error",{key:0},()=>[w("div",{class:v(e(p).e("error"))},We(e(d)("el.image.error")),3)]):(y(),x(te,{key:1},[M.value!==void 0?(y(),x("img",Fe({key:0},e(r),{src:M.value,loading:a.loading,style:e(K),class:e(oe),crossorigin:a.crossorigin,onClick:U,onLoad:P,onError:re}),null,16,la)):C("v-if",!0),N.value?(y(),x("div",{key:1,class:v(e(p).e("wrapper"))},[ae(a.$slots,"placeholder",{},()=>[w("div",{class:v(e(p).e("placeholder"))},null,2)])],2)):C("v-if",!0)],64)),e(X)?(y(),x(te,{key:2},[T.value?(y(),de(e(na),{key:0,"z-index":a.zIndex,"initial-index":e(le),infinite:a.infinite,"zoom-rate":a.zoomRate,"min-scale":a.minScale,"max-scale":a.maxScale,"url-list":a.previewSrcList,"hide-on-click-modal":a.hideOnClickModal,teleported:a.previewTeleported,"close-on-press-escape":a.closeOnPressEscape,onClose:F,onSwitch:ee},{default:S(()=>[a.$slots.viewer?(y(),x("div",ra,[ae(a.$slots,"viewer")])):C("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"])):C("v-if",!0)],64)):C("v-if",!0)],6))}});var ca=ge(ua,[["__file","image.vue"]]);const ga=ke(ca);export{ga as E};
