1 |
- import{bv as me,b as ve,aD as be,aE as pe,bk as ge,bl as Y,d as V,bw as W,bx as ke,by as xe,bm as _e,aF as we,bz as ye,r as z,bA as Ie,be as he,L as x,M as j,ao as ze,m as Ce,o as C,x as J,g as i,w as p,h as v,a0 as f,a,ax as K,bb as Oe,R as O,aP as _,aO as Ne,c as F,F as U,bB as Te,bC as Ae,bD as Ee,bE as Le,O as Re,bF as Xe,bG as Ye,v as Fe,y as Se,a6 as Be,aG as De,a1 as $e,bH as Me,aH as Pe,bs as E,bI as h,bJ as Ge,aI as He,__tla as Ve}from"./index-f4ac2672.js";let Z,N,We=Promise.all([(()=>{try{return Ve}catch{}})()]).then(async()=>{N=function(g,T,m){var n=!0,b=!0;if(typeof g!="function")throw new TypeError("Expected a function");return me(m)&&(n="leading"in m?!!m.leading:n,b="trailing"in m?!!m.trailing:b),ve(g,T,{leading:n,maxWait:T,trailing:b})};const q=be({urlList:{type:pe(Array),default:()=>ge([])},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}}),Q={close:()=>!0,switch:g=>Y(g),rotate:g=>Y(g)},ee=["src"],ae=V({name:"ElImageViewer"});Z=He(Pe(V({...ae,props:q,emits:Q,setup(g,{expose:T,emit:m}){const n=g,b={CONTAIN:{name:"contain",icon:W(ke)},ORIGINAL:{name:"original",icon:W(xe)}},{t:se}=_e(),l=we("image-viewer"),{nextZIndex:ne}=ye(),L=z(),S=z([]),B=Ie(),y=z(!0),k=z(n.initialIndex),A=he(b.CONTAIN),t=z({scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),le=x(()=>{const{urlList:e}=n;return e.length<=1}),D=x(()=>k.value===0),$=x(()=>k.value===n.urlList.length-1),te=x(()=>n.urlList[k.value]),oe=x(()=>[l.e("btn"),l.e("prev"),l.is("disabled",!n.infinite&&D.value)]),ie=x(()=>[l.e("btn"),l.e("next"),l.is("disabled",!n.infinite&&$.value)]),ce=x(()=>{const{scale:e,deg:s,offsetX:o,offsetY:u,enableTransition:c}=t.value;let r=o/e,d=u/e;switch(s%360){case 90:case-270:[r,d]=[d,-r];break;case 180:case-180:[r,d]=[-r,-d];break;case 270:case-90:[r,d]=[-d,r]}const I={transform:`scale(${e}) rotate(${s}deg) translate(${r}px, ${d}px)`,transition:c?"transform .3s":""};return A.value.name===b.CONTAIN.name&&(I.maxWidth=I.maxHeight="100%"),I}),ue=x(()=>Y(n.zIndex)?n.zIndex:ne());function R(){B.stop(),m("close")}function re(){y.value=!1}function de(e){y.value=!1,e.target.alt=se("el.image.error")}function fe(e){if(y.value||e.button!==0||!L.value)return;t.value.enableTransition=!1;const{offsetX:s,offsetY:o}=t.value,u=e.pageX,c=e.pageY,r=N(I=>{t.value={...t.value,offsetX:s+I.pageX-u,offsetY:o+I.pageY-c}}),d=E(document,"mousemove",r);E(document,"mouseup",()=>{d()}),e.preventDefault()}function M(){t.value={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function P(){if(y.value)return;const e=Ge(b),s=Object.values(b),o=A.value.name,u=(s.findIndex(c=>c.name===o)+1)%e.length;A.value=b[e[u]],M()}function X(e){const s=n.urlList.length;k.value=(e+s)%s}function G(){D.value&&!n.infinite||X(k.value-1)}function H(){$.value&&!n.infinite||X(k.value+1)}function w(e,s={}){if(y.value)return;const{minScale:o,maxScale:u}=n,{zoomRate:c,rotateDeg:r,enableTransition:d}={zoomRate:n.zoomRate,rotateDeg:90,enableTransition:!0,...s};switch(e){case"zoomOut":t.value.scale>o&&(t.value.scale=Number.parseFloat((t.value.scale/c).toFixed(3)));break;case"zoomIn":t.value.scale<u&&(t.value.scale=Number.parseFloat((t.value.scale*c).toFixed(3)));break;case"clockwise":t.value.deg+=r,m("rotate",t.value.deg);break;case"anticlockwise":t.value.deg-=r,m("rotate",t.value.deg)}t.value.enableTransition=d}return j(te,()=>{ze(()=>{const e=S.value[0];e!=null&&e.complete||(y.value=!0)})}),j(k,e=>{M(),m("switch",e)}),Ce(()=>{var e,s;(function(){const o=N(c=>{switch(c.code){case h.esc:n.closeOnPressEscape&&R();break;case h.space:P();break;case h.left:G();break;case h.up:w("zoomIn");break;case h.right:H();break;case h.down:w("zoomOut")}}),u=N(c=>{w((c.deltaY||c.deltaX)<0?"zoomIn":"zoomOut",{zoomRate:n.zoomRate,enableTransition:!1})});B.run(()=>{E(document,"keydown",o),E(document,"wheel",u)})})(),(s=(e=L.value)==null?void 0:e.focus)==null||s.call(e)}),T({setActiveItem:X}),(e,s)=>(C(),J(Me,{to:"body",disabled:!e.teleported},[i($e,{name:"viewer-fade",appear:""},{default:p(()=>[v("div",{ref_key:"wrapper",ref:L,tabindex:-1,class:f(a(l).e("wrapper")),style:K({zIndex:a(ue)})},[v("div",{class:f(a(l).e("mask")),onClick:s[0]||(s[0]=Oe(o=>e.hideOnClickModal&&R(),["self"]))},null,2),O(" CLOSE "),v("span",{class:f([a(l).e("btn"),a(l).e("close")]),onClick:R},[i(a(_),null,{default:p(()=>[i(a(Ne))]),_:1})],2),O(" ARROW "),a(le)?O("v-if",!0):(C(),F(U,{key:0},[v("span",{class:f(a(oe)),onClick:G},[i(a(_),null,{default:p(()=>[i(a(Te))]),_:1})],2),v("span",{class:f(a(ie)),onClick:H},[i(a(_),null,{default:p(()=>[i(a(Ae))]),_:1})],2)],64)),O(" ACTIONS "),v("div",{class:f([a(l).e("btn"),a(l).e("actions")])},[v("div",{class:f(a(l).e("actions__inner"))},[i(a(_),{onClick:s[1]||(s[1]=o=>w("zoomOut"))},{default:p(()=>[i(a(Ee))]),_:1}),i(a(_),{onClick:s[2]||(s[2]=o=>w("zoomIn"))},{default:p(()=>[i(a(Le))]),_:1}),v("i",{class:f(a(l).e("actions__divider"))},null,2),i(a(_),{onClick:P},{default:p(()=>[(C(),J(Re(a(A).icon)))]),_:1}),v("i",{class:f(a(l).e("actions__divider"))},null,2),i(a(_),{onClick:s[3]||(s[3]=o=>w("anticlockwise"))},{default:p(()=>[i(a(Xe))]),_:1}),i(a(_),{onClick:s[4]||(s[4]=o=>w("clockwise"))},{default:p(()=>[i(a(Ye))]),_:1})],2)],2),O(" CANVAS "),v("div",{class:f(a(l).e("canvas"))},[(C(!0),F(U,null,Fe(e.urlList,(o,u)=>Se((C(),F("img",{ref_for:!0,ref:c=>S.value[u]=c,key:o,src:o,style:K(a(ce)),class:f(a(l).e("img")),onLoad:re,onError:de,onMousedown:fe},null,46,ee)),[[Be,u===k.value]])),128))],2),De(e.$slots,"default")],6)]),_:3})],8,["disabled"]))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/image-viewer/src/image-viewer.vue"]]))});export{Z as E,We as __tla,N as t};
|