var e=Object.defineProperty,a=Object.defineProperties,t=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,o=(a,t,s)=>t in a?e(a,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[t]=s,i=(e,a)=>{for(var t in a||(a={}))n.call(a,t)&&o(e,t,a[t]);if(s)for(var t of s(a))l.call(a,t)&&o(e,t,a[t]);return e},r=(e,s)=>a(e,t(s));import{c0 as c,be as u,a8 as d,at as f,av as v,a0 as p,d as m,cC as b,ed as g,ee as y,bI as k,a1 as w,dd as x,r as h,ef as O,c as I,e4 as C,aM as _,y as z,f as N,br as R,G as T,o as E,w as P,b as $,a3 as j,j as A,h as S,k as L,i as Y,de as X,m as M,a as B,l as D,O as F,ai as W,bf as q,H as G,aR as H,ac as V,p as Z,q as K,eg as J,e0 as Q,aE as U,eh as ee,ei as ae,dT as te,Z as se,_ as ne,n as le,az as oe}from"./index-BeZn6wgH.js";import{E as ie}from"./index-A3hG-0VQ.js";import{d as re}from"./debounce-C7sIggI-.js";function ce(e,a,t){var s=!0,n=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return c(t)&&(s="leading"in t?!!t.leading:s,n="trailing"in t?!!t.trailing:n),re(e,a,{leading:s,maxWait:a,trailing:n})}const ue=d({urlList:{type:f(Array),default:()=>v([])},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},scale:{type:Number,default:1},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7},showProgress:Boolean,crossorigin:{type:f(String)}}),de={close:()=>!0,error:e=>e instanceof Event,switch:e=>u(e),rotate:e=>u(e)},fe=m({name:"ElImageViewer"});const ve=oe(p(m(r(i({},fe),{props:ue,emits:de,setup(e,{expose:a,emit:t}){var s;const n=e,l={CONTAIN:{name:"contain",icon:b(y)},ORIGINAL:{name:"original",icon:b(g)}};let o,c="";const{t:u}=k(),d=w("image-viewer"),{nextZIndex:f}=x(),v=h(),p=h(),m=O(),oe=I(()=>{const{scale:e,minScale:a,maxScale:t}=n;return C(e,a,t)}),re=h(!0),ue=h(!1),de=h(n.initialIndex),fe=_(l.CONTAIN),ve=h({scale:oe.value,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),pe=h(null!=(s=n.zIndex)?s:f()),me=I(()=>{const{urlList:e}=n;return e.length<=1}),be=I(()=>0===de.value),ge=I(()=>de.value===n.urlList.length-1),ye=I(()=>n.urlList[de.value]),ke=I(()=>[d.e("btn"),d.e("prev"),d.is("disabled",!n.infinite&&be.value)]),we=I(()=>[d.e("btn"),d.e("next"),d.is("disabled",!n.infinite&&ge.value)]),xe=I(()=>{const{scale:e,deg:a,offsetX:t,offsetY:s,enableTransition:n}=ve.value;let o=t/e,i=s/e;const r=a*Math.PI/180,c=Math.cos(r),u=Math.sin(r);o=o*c+i*u,i=i*c-t/e*u;const d={transform:`scale(${e}) rotate(${a}deg) translate(${o}px, ${i}px)`,transition:n?"transform .3s":""};return fe.value.name===l.CONTAIN.name&&(d.maxWidth=d.maxHeight="100%"),d}),he=I(()=>`${de.value+1} / ${n.urlList.length}`);function Oe(){m.stop(),null==o||o(),document.body.style.overflow=c,t("close")}function Ie(){re.value=!1}function Ce(e){ue.value=!0,re.value=!1,t("error",e),e.target.alt=u("el.image.error")}function _e(e){if(re.value||0!==e.button||!v.value)return;ve.value.enableTransition=!1;const{offsetX:a,offsetY:t}=ve.value,s=e.pageX,n=e.pageY,l=ce(e=>{ve.value=r(i({},ve.value),{offsetX:a+e.pageX-s,offsetY:t+e.pageY-n})}),o=R(document,"mousemove",l);R(document,"mouseup",()=>{o()}),e.preventDefault()}function ze(){ve.value={scale:oe.value,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function Ne(){if(re.value||ue.value)return;const e=te(l),a=Object.values(l),t=fe.value.name,s=(a.findIndex(e=>e.name===t)+1)%e.length;fe.value=l[e[s]],ze()}function Re(e){ue.value=!1;const a=n.urlList.length;de.value=(e+a)%a}function Te(){be.value&&!n.infinite||Re(de.value-1)}function Ee(){ge.value&&!n.infinite||Re(de.value+1)}function Pe(e,a={}){if(re.value||ue.value)return;const{minScale:s,maxScale:l}=n,{zoomRate:o,rotateDeg:r,enableTransition:c}=i({zoomRate:n.zoomRate,rotateDeg:90,enableTransition:!0},a);switch(e){case"zoomOut":ve.value.scale>s&&(ve.value.scale=Number.parseFloat((ve.value.scale/o).toFixed(3)));break;case"zoomIn":ve.value.scale0?(e.preventDefault(),!1):void 0}return z(()=>oe.value,e=>{ve.value.scale=e}),z(ye,()=>{le(()=>{const e=p.value;(null==e?void 0:e.complete)||(re.value=!0)})}),z(de,e=>{ze(),t("switch",e)}),N(()=>{!function(){const e=ce(e=>{switch(se(e)){case ne.esc:n.closeOnPressEscape&&Oe();break;case ne.space:Ne();break;case ne.left:Te();break;case ne.up:Pe("zoomIn");break;case ne.right:Ee();break;case ne.down:Pe("zoomOut")}}),a=ce(e=>{Pe((e.deltaY||e.deltaX)<0?"zoomIn":"zoomOut",{zoomRate:n.zoomRate,enableTransition:!1})});m.run(()=>{R(document,"keydown",e),R(document,"wheel",a)})}(),o=R("wheel",Ae,{passive:!1}),c=document.body.style.overflow,document.body.style.overflow="hidden"}),a({setActiveItem:Re}),(e,a)=>(E(),T(Y(ie),{to:"body",disabled:!e.teleported},{default:P(()=>[$(j,{name:"viewer-fade",appear:""},{default:P(()=>[A("div",{ref_key:"wrapper",ref:v,tabindex:-1,class:L(Y(d).e("wrapper")),style:S({zIndex:pe.value})},[$(Y(X),{loop:"",trapped:"","focus-trap-el":v.value,"focus-start-el":"container",onFocusoutPrevented:$e,onReleaseRequested:je},{default:P(()=>[A("div",{class:L(Y(d).e("mask")),onClick:F(a=>e.hideOnClickModal&&Oe(),["self"])},null,10,["onClick"]),M(" CLOSE "),A("span",{class:L([Y(d).e("btn"),Y(d).e("close")]),onClick:Oe},[$(Y(W),null,{default:P(()=>[$(Y(q))]),_:1})],2),M(" ARROW "),Y(me)?M("v-if",!0):(E(),B(G,{key:0},[A("span",{class:L(Y(ke)),onClick:Te},[$(Y(W),null,{default:P(()=>[$(Y(H))]),_:1})],2),A("span",{class:L(Y(we)),onClick:Ee},[$(Y(W),null,{default:P(()=>[$(Y(V))]),_:1})],2)],64)),e.$slots.progress||e.showProgress?(E(),B("div",{key:1,class:L([Y(d).e("btn"),Y(d).e("progress")])},[D(e.$slots,"progress",{activeIndex:de.value,total:e.urlList.length},()=>[Z(K(Y(he)),1)])],2)):M("v-if",!0),M(" ACTIONS "),A("div",{class:L([Y(d).e("btn"),Y(d).e("actions")])},[A("div",{class:L(Y(d).e("actions__inner"))},[D(e.$slots,"toolbar",{actions:Pe,prev:Te,next:Ee,reset:Ne,activeIndex:de.value,setActiveItem:Re},()=>[$(Y(W),{onClick:e=>Pe("zoomOut")},{default:P(()=>[$(Y(J))]),_:1},8,["onClick"]),$(Y(W),{onClick:e=>Pe("zoomIn")},{default:P(()=>[$(Y(Q))]),_:1},8,["onClick"]),A("i",{class:L(Y(d).e("actions__divider"))},null,2),$(Y(W),{onClick:Ne},{default:P(()=>[(E(),T(U(Y(fe).icon)))]),_:1}),A("i",{class:L(Y(d).e("actions__divider"))},null,2),$(Y(W),{onClick:e=>Pe("anticlockwise")},{default:P(()=>[$(Y(ee))]),_:1},8,["onClick"]),$(Y(W),{onClick:e=>Pe("clockwise")},{default:P(()=>[$(Y(ae))]),_:1},8,["onClick"])])],2)],2),M(" CANVAS "),A("div",{class:L(Y(d).e("canvas"))},[ue.value&&e.$slots["viewer-error"]?D(e.$slots,"viewer-error",{key:0,activeIndex:de.value,src:Y(ye)}):(E(),B("img",{ref_key:"imgRef",ref:p,key:Y(ye),src:Y(ye),style:S(Y(xe)),class:L(Y(d).e("img")),crossorigin:e.crossorigin,onLoad:Ie,onError:Ce,onMousedown:_e},null,46,["src","crossorigin"]))],2),D(e.$slots,"default")]),_:3},8,["focus-trap-el"])],6)]),_:3})]),_:3},8,["disabled"]))}})),[["__file","image-viewer.vue"]]));export{ve as E};