@gx-design-vue/image 0.2.0-alpha.5 → 0.2.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Image.js CHANGED
@@ -197,7 +197,7 @@ const Image = /* @__PURE__ */ defineComponent((props, { emit, slots, expose, att
197
197
  ]);
198
198
  };
199
199
  }, {
200
- props: /* @__PURE__ */ mergeDefaults({
200
+ props: /*@__PURE__*/ mergeDefaults({
201
201
  rootClass: {
202
202
  type: String,
203
203
  required: false
@@ -469,7 +469,7 @@ const GImagePreview = /* @__PURE__ */ defineComponent((props, { emit, slots, exp
469
469
  ])] })] });
470
470
  };
471
471
  }, {
472
- props: /* @__PURE__ */ mergeDefaults({
472
+ props: /*@__PURE__*/ mergeDefaults({
473
473
  class: {
474
474
  type: String,
475
475
  required: false
@@ -25,38 +25,41 @@ function M(e) {
25
25
  return typeof e == "string";
26
26
  }
27
27
  //#endregion
28
- //#region ../pro-utils/dist/is/server.js
29
- var N = typeof window > "u", P = (e) => setTimeout(e, 16), F = (e) => clearTimeout(e);
30
- typeof window < "u" && "requestAnimationFrame" in window && (P = (e) => window.requestAnimationFrame(e), F = (e) => window.cancelAnimationFrame(e));
31
- var I = 0, L = /* @__PURE__ */ new Map();
32
- function R(e) {
33
- L.delete(e);
28
+ //#region ../pro-utils/dist/dom/raf.js
29
+ var N = (e) => setTimeout(e, 16), P = (e) => clearTimeout(e);
30
+ typeof window < "u" && "requestAnimationFrame" in window && (N = (e) => window.requestAnimationFrame(e), P = (e) => window.cancelAnimationFrame(e));
31
+ var F = 0, I = /* @__PURE__ */ new Map();
32
+ function L(e) {
33
+ I.delete(e);
34
34
  }
35
- function z(e, t = 1) {
36
- I += 1;
37
- let n = I;
35
+ function R(e, t = 1) {
36
+ F += 1;
37
+ let n = F;
38
38
  function r(t) {
39
- if (t === 0) R(n), e();
39
+ if (t === 0) L(n), e();
40
40
  else {
41
- let e = P(() => {
41
+ let e = N(() => {
42
42
  r(t - 1);
43
43
  });
44
- L.set(n, e);
44
+ I.set(n, e);
45
45
  }
46
46
  }
47
47
  return r(t), n;
48
48
  }
49
- z.cancel = (e) => {
50
- let t = L.get(e);
51
- return R(t), F(t);
49
+ R.cancel = (e) => {
50
+ let t = I.get(e);
51
+ return L(t), P(t);
52
52
  };
53
53
  //#endregion
54
+ //#region ../pro-utils/dist/is/server.js
55
+ var z = typeof window > "u";
56
+ //#endregion
54
57
  //#region ../pro-utils/dist/dom/scroll.js
55
58
  function ne(e) {
56
59
  return e.replace(/[-_](.)/g, (e, t) => t.toUpperCase());
57
60
  }
58
61
  function B(e, t) {
59
- if (N || !e || !t) return "";
62
+ if (z || !e || !t) return "";
60
63
  t = ne(t), t === "float" && (t = "cssFloat");
61
64
  try {
62
65
  let n = e.style[t];
@@ -68,10 +71,10 @@ function B(e, t) {
68
71
  }
69
72
  }
70
73
  function V(e, t) {
71
- if (!N) return (t == null ? B(e, "overflow") : t ? B(e, "overflow-y") : B(e, "overflow-x")).match(/(scroll|auto|overlay)/);
74
+ if (!z) return (t == null ? B(e, "overflow") : t ? B(e, "overflow-y") : B(e, "overflow-x")).match(/(scroll|auto|overlay)/);
72
75
  }
73
76
  function H(e, t) {
74
- if (N) return;
77
+ if (z) return;
75
78
  let n = e;
76
79
  for (; n;) {
77
80
  if ([
@@ -235,7 +238,7 @@ function se(e) {
235
238
  action: e
236
239
  });
237
240
  }, f = (e, t) => {
238
- s.value === null && (c.value = [], s.value = z(() => {
241
+ s.value === null && (c.value = [], s.value = R(() => {
239
242
  let e = { ...l.value };
240
243
  for (let t of c.value) e = {
241
244
  ...e,
package/dist/g-image.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vue"),require("@gx-design-vue/icon"),require("@gx-design-vue/pro-provider"),require("@vueuse/core"),require("antdv-next/config-provider/context"),require("antdv-next/config-provider/hooks/useCSSVarCls"),require("antdv-next")):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@gx-design-vue/icon`,`@gx-design-vue/pro-provider`,`@vueuse/core`,`antdv-next/config-provider/context`,`antdv-next/config-provider/hooks/useCSSVarCls`,`antdv-next`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.GImage={},e.Vue,e._gx_design_vue_icon,e._gx_design_vue_pro_provider,e._vueuse_core,e.antdv_next_config_provider_context,e.antdv_next_config_provider_hooks_useCSSVarCls,e.antdv_next))})(this,function(e,t,n,r,i,a,o,s){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var c=Object.create,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,f=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,m=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=d(t),a=0,o=i.length,s;a<o;a++)s=i[a],!p.call(e,s)&&s!==n&&l(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=u(t,s))||r.enumerable});return e};o=((e,t,n)=>(n=e==null?{}:c(f(e)),m(t||!e||!e.__esModule?l(n,`default`,{value:e,enumerable:!0}):n,e)))(o,1);function h(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function g(e){return typeof e==`boolean`}function _(e){return typeof e==`number`}function v(e){return Array.isArray===void 0?Object.prototype.toString.call(e)===`[object Array]`:Array.isArray(e)}function y(e){return e!==null&&h(e,`Object`)}function b(e){return typeof e==`string`}var x=typeof window>`u`,S=e=>setTimeout(e,16),C=e=>clearTimeout(e);typeof window<`u`&&`requestAnimationFrame`in window&&(S=e=>window.requestAnimationFrame(e),C=e=>window.cancelAnimationFrame(e));var w=0,T=new Map;function E(e){T.delete(e)}function D(e,t=1){w+=1;let n=w;function r(t){if(t===0)E(n),e();else{let e=S(()=>{r(t-1)});T.set(n,e)}}return r(t),n}D.cancel=e=>{let t=T.get(e);return E(t),C(t)};function O(e){return e.replace(/[-_](.)/g,(e,t)=>t.toUpperCase())}function k(e,t){if(x||!e||!t)return``;t=O(t),t===`float`&&(t=`cssFloat`);try{let n=e.style[t];if(n)return n;let r=document?.defaultView?.getComputedStyle(e,``);return r?r[t]:``}catch{return e.style[t]}}function A(e,t){if(!x)return(t==null?k(e,`overflow`):t?k(e,`overflow-y`):k(e,`overflow-x`)).match(/(scroll|auto|overlay)/)}function j(e,t){if(x)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(A(n,t))return n;n=n.parentNode}return n}function M(...e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r){if(b(r))t.push(r);else if(v(r))for(let e=0;e<r.length;e++){let n=M(r[e]);n&&t.push(n)}else if(y(r))for(let e in r)r[e]&&t.push(e)}}return t.filter(e=>e).join(` `)}function N({vnode:e,defaultVNode:t},...n){return e===!1?null:typeof e==`function`?e?.(...n):e||t}function P({value:e,slotsValue:n,defaultVNode:r,render:i}){return e===!1?!1:e===!0?n??r:y(e)&&i?(0,t.isVNode)(e)?e:n:e||n}function F(e,...t){let{slots:n,key:r=`default`,render:i,props:a,defaultChildren:o}=e,s=a[r],c=n?.[r],l=typeof o==`function`?o?.():o,u=P({value:s,slotsValue:c,defaultVNode:l,render:i});return u===!1?!1:i?N({vnode:u,defaultVNode:l},...t):u}function I(e,...t){let{slots:n,key:r=`default`,props:i,defaultChildren:a}=e,o=i[r],s=n?.[r]?.(...t),c=typeof a==`function`?a?.():a,l=P({value:o,slotsValue:s,defaultVNode:c,render:!0});return l===!1?!1:N({vnode:l,defaultVNode:c},...t)}function L(e,...t){let{slots:n,props:r,keys:i,render:a,defaultVNodes:o}=e,s={};return i.forEach((e,i)=>{let c=o?o[i]:null,l=a?I({slots:n,props:r,key:e,defaultChildren:c},...t):F({slots:n,props:r,key:e,render:!1,defaultChildren:c},...t);(g(l)||l)&&(s[e]=l)}),s}function R(e){let{canPreview:n}=e,r=(0,t.ref)(!1),a=(0,t.ref)(null),o=(0,i.useScrollLock)(document.body,!1),s;return(0,t.onScopeDispose)(()=>{s!==void 0&&(window.cancelAnimationFrame(s),s=void 0),o.value=!1}),(0,i.useEventListener)(`wheel`,e=>{r.value&&e.ctrlKey&&e.preventDefault()},{passive:!1}),{showViewer:r,mousePosition:a,openPreview:e=>{n.value&&(s!==void 0&&(window.cancelAnimationFrame(s),s=void 0),e?a.value={x:e.clientX,y:e.clientY}:a.value=null,r.value=!0,s=window.requestAnimationFrame(()=>{o.value=!0,s=void 0}))},closePreview:()=>{s!==void 0&&(window.cancelAnimationFrame(s),s=void 0),r.value=!1,a.value=null,o.value=!1}}}var z=(typeof window>`u`?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1)&&!window.MSStream;typeof window>`u`||z||window.safari;function B(e){let n=(0,t.ref)(typeof e==`function`?e():e);function r(e){n.value=e}return[n,r]}function ee(e,n){let{defaultValue:r,value:i=(0,t.ref)()}=n||{},a=typeof e==`function`?e():e;i.value!==void 0&&(a=(0,t.unref)(i)),r!==void 0&&(a=typeof r==`function`?r():r);let o=(0,t.ref)(a),s=(0,t.ref)(a),[c,l]=B([s.value]),u=(0,t.watchEffect)(()=>{let e=i.value===void 0?o.value:i.value;n?.postState&&(e=n.postState(e,o.value)),s.value=e}),d=(0,t.watch)(c,()=>{let e=c.value[0];o.value!==e&&n?.onChange?.(o.value,e)},{deep:!0});function f(e){o.value=e}function p(e){f(e),l([s.value])}let m=(0,t.watch)(i,()=>{o.value=i.value});return(0,t.onScopeDispose)(()=>{u(),d(),m()}),[s,p,o]}var V={x:0,y:0,rotate:0,scale:1,flipX:!1,flipY:!1};function H(e){let{imageRef:n,minScale:r,maxScale:i,windowWidth:a,windowHeight:o,onTransform:s}=e,c=(0,t.ref)(null),l=(0,t.ref)([]),[u,d]=B({...V}),f=e=>{let t={...u.value};d({...V}),(t.x!==0||t.y!==0||t.scale!==1||t.rotate!==0||t.flipX||t.flipY)&&s?.({transform:{...V},action:e})},p=(e,t)=>{c.value===null&&(l.value=[],c.value=D(()=>{let e={...u.value};for(let t of l.value)e={...e,...t};c.value=null,s?.({transform:e,action:t}),d(e)})),l.value.push({...u.value,...e})};return{transform:u,resetTransform:f,updateTransform:p,dispatchZoomChange:(e,t,s,c,l)=>{let d=n.value;if(!d)return;let{width:f,height:m,offsetWidth:h,offsetHeight:g,offsetLeft:_,offsetTop:v}=d,y=e,b=u.value.scale*e;b>i.value?(b=i.value,y=i.value/u.value.scale):b<r.value&&(b=l?b:r.value,y=b/u.value.scale);let x=s??a.value/2,S=c??o.value/2,C=y-1,w=C*f*.5,T=C*m*.5,E=C*(x-u.value.x-_),D=C*(S-u.value.y-v),O=u.value.x-(E-w),k=u.value.y-(D-T);if(e<1&&b===1){let e=h*b,t=g*b;e<=a.value&&t<=o.value&&(O=0,k=0)}p({x:O,y:k,scale:b},t)}}}function U(e,t,n,r){let i=t+n,a=(n-r)/2;if(n>r){if(t>0)return{[e]:a};if(t<0&&i<r)return{[e]:-a}}else if(t<0||i>r)return{[e]:t<0?a:-a};return{}}function W(e){let{imageWidth:t,imageHeight:n,imageLeft:r,imageTop:i,windowWidth:a,windowHeight:o}=e;return t<=a&&n<=o?{x:0,y:0}:t>a||n>o?{...U(`x`,r,t,a),...U(`y`,i,n,o)}:null}var G=1,K=2;function te(e){let{imageRef:n,movable:r,visible:a,scaleStep:o,transform:s,updateTransform:c,dispatchZoomChange:l,windowWidth:u,windowHeight:d}=e,f=(0,t.ref)(!1),p=(0,t.ref)({diffX:0,diffY:0,transformX:0,transformY:0});return(0,i.useEventListener)(window,`mouseup`,()=>{if(!a.value||!f.value)return;f.value=!1;let{transformX:e,transformY:t}=p.value;if(!(s.value.x!==e&&s.value.y!==t))return;let r=n.value;if(!r)return;let i=r.offsetWidth*s.value.scale,o=r.offsetHeight*s.value.scale,{left:l,top:m}=r.getBoundingClientRect(),h=s.value.rotate%180!=0,g=W({imageWidth:h?o:i,imageHeight:h?i:o,imageLeft:l,imageTop:m,windowWidth:u.value,windowHeight:d.value});g&&c({...g},`dragRebound`)}),(0,i.useEventListener)(window,`mousemove`,e=>{!a.value||!f.value||c({x:e.pageX-p.value.diffX,y:e.pageY-p.value.diffY},`move`)}),{isMoving:f,onMouseDown:e=>{!r.value||e.button!==0||(e.preventDefault(),e.stopPropagation(),p.value={diffX:e.pageX-s.value.x,diffY:e.pageY-s.value.y,transformX:s.value.x,transformY:s.value.y},f.value=!0)},onWheel:e=>{if(!a.value||e.deltaY===0)return;let t=G+Math.min(Math.abs(e.deltaY/100),K)*o.value;e.deltaY>0&&(t=G/t),l(t,`wheel`,e.clientX,e.clientY)}}}function q(e,t){return Math.hypot(e.x-t.x,e.y-t.y)}function ne(e,t,n,r){let i=q(e,n),a=q(t,r);if(i===0&&a===0)return[e.x,e.y];let o=i/(i+a);return[e.x+o*(t.x-e.x),e.y+o*(t.y-e.y)]}function re(e){let{imageRef:n,movable:r,visible:a,minScale:o,transform:s,updateTransform:c,dispatchZoomChange:l,windowWidth:u,windowHeight:d}=e,f=(0,t.ref)(!1),p=(0,t.ref)({point1:{x:0,y:0},point2:{x:0,y:0},eventType:`none`}),m=e=>{p.value={...p.value,...e}};return(0,i.useEventListener)(window,`touchmove`,e=>{a.value&&r.value&&e.preventDefault()},{passive:!1}),{isTouching:f,onTouchStart:e=>{if(!r.value)return;e.stopPropagation(),f.value=!0;let{touches:t=[]}=e;t.length>1?m({point1:{x:t[0].clientX,y:t[0].clientY},point2:{x:t[1].clientX,y:t[1].clientY},eventType:`touchZoom`}):m({point1:{x:t[0].clientX-s.value.x,y:t[0].clientY-s.value.y},eventType:`move`})},onTouchMove:e=>{let{touches:t=[]}=e,{point1:n,point2:r,eventType:i}=p.value;if(t.length>1&&i===`touchZoom`){let e={x:t[0].clientX,y:t[0].clientY},i={x:t[1].clientX,y:t[1].clientY},[a,o]=ne(n,r,e,i);l(q(e,i)/q(n,r),`touchZoom`,a,o,!0),m({point1:e,point2:i,eventType:`touchZoom`})}else i===`move`&&(c({x:t[0].clientX-n.x,y:t[0].clientY-n.y},`move`),m({eventType:`move`}))},onTouchEnd:()=>{if(!a.value)return;if(f.value&&=!1,m({eventType:`none`}),o.value>s.value.scale)return c({x:0,y:0,scale:o.value},`touchZoom`);let e=n.value;if(!e)return;let t=e.offsetWidth*s.value.scale,r=e.offsetHeight*s.value.scale,{left:i,top:l}=e.getBoundingClientRect(),p=s.value.rotate%180!=0,h=W({imageWidth:p?r:t,imageHeight:p?t:r,imageLeft:i,imageTop:l,windowWidth:u.value,windowHeight:d.value});h&&c({...h},`dragRebound`)}}}function ie(e){return{zIndexPopup:`calc(${e.zIndexPopupBase} + 80)`,previewOperationColor:e.colorTextDescription,previewOperationHoverColor:e.colorText,previewOperationColorDisabled:e.colorTextDisabled,imagePreviewSwitchSize:e.controlHeightLG,previewOperationSize:e.fontSizeLG}}var ae=e=>{let t=e.componentCls,{motionEaseOut:n,motionDurationSlow:i,previewOperationSize:a,zIndexPopup:o}=e,s={position:`absolute`,color:e.previewOperationColor,backgroundColor:e.colorBgContainer,borderRadius:`50%`,width:e.controlHeightLG,height:e.controlHeightLG,padding:0,outline:0,border:0,boxShadow:e.boxShadowTertiary,cursor:`pointer`,transition:`all ${i}`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:a,"&:hover":{color:e.previewOperationHoverColor,backgroundColor:e.colorBgContainer},"&:active":{backgroundColor:e.colorBgContainer},svg:{stroke:`currentColor`}};return{[t]:{textAlign:`center`,inset:0,position:`fixed`,userSelect:`none`,zIndex:o,[`${t}-mask`]:{position:`absolute`,inset:0,background:`color-mix(in srgb, ${e.colorBgLayout} 90%, transparent)`,backdropFilter:`blur(0px)`,transition:`background-color ${i}, backdrop-filter ${i}`,[`&${t}-mask-blur`]:{backdropFilter:`blur(4px)`},[`&${t}-mask-hidden`]:{display:`none`}},[`${t}-body`]:{position:`absolute`,inset:0,overflow:`hidden`,display:`flex`,alignItems:`center`,justifyContent:`center`,pointerEvents:`none`,"> *":{pointerEvents:`auto`}},[`${t}-img`]:{maxWidth:`100%`,maxHeight:`70%`,verticalAlign:`middle`,transform:`scale3d(1, 1, 1)`,transition:`transform ${i} ${n} 0s`,userSelect:`none`},[`&-movable ${t}-img`]:{cursor:`grab`},[`&-moving ${t}-img`]:{cursor:`grabbing`},[`${t}-close`]:{...s,top:e.marginSM,insetInlineEnd:e.marginSM},[`${t}-switch`]:{...s,top:`50%`,transform:`translateY(-50%)`,"&-disabled":{"&, &:hover, &:active":{color:e.previewOperationColorDisabled,backgroundColor:e.colorBgContainer,cursor:`not-allowed`}},"&-prev":{insetInlineStart:e.marginSM},"&-next":{insetInlineEnd:e.marginSM}},[`${t}-footer`]:{position:`absolute`,bottom:e.marginXL,left:{_skip_check_:!0,value:`50%`},display:`flex`,flexDirection:`column`,alignItems:`center`,color:e.previewOperationColor,transform:`translateX(-50%)`,gap:e.marginXS},[`${t}-progress`]:{color:e.previewOperationColor},[`${t}-actions`]:{display:`flex`,alignItems:`center`,gap:e.marginXXS,padding:e.paddingXXS,color:e.previewOperationColor,backgroundColor:e.colorBgContainer,border:`${(0,r.unit)(e.lineWidth)} ${e.lineType} ${e.colorFillTertiary}`,borderRadius:e.borderRadiusLG,fontSize:a,"&-action":{color:`inherit`,background:`transparent`,border:0,font:`inherit`,lineHeight:1,width:e.controlHeight,height:e.controlHeight,padding:0,cursor:`pointer`,transition:`all ${i}`,display:`flex`,alignItems:`center`,justifyContent:`center`,borderRadius:e.borderRadius,userSelect:`none`,[`&:not(${t}-actions-action-disabled):hover`]:{color:e.colorTextSecondary,backgroundColor:e.colorFillTertiary},[`&:not(${t}-actions-action-disabled):active`]:{color:e.colorText,backgroundColor:e.colorFillSecondary},"&-disabled":{cursor:`not-allowed`,opacity:.5},svg:{stroke:`currentColor`}}}}}},oe=e=>{let t=e.componentCls,{motionDurationSlow:n,motionEaseOut:r}=e;return{[`${t}`]:{"&-fade-enter-active, &-fade-leave-active":{transition:`visibility ${n}`,[`${t}-mask`]:{transition:`background-color ${n}, backdrop-filter ${n}`},[`${t}-body`]:{transition:`transform ${n} ${r}`},[`${t}-close, ${t}-switch, ${t}-footer`]:{transition:`opacity ${n}, all ${n}`}},"&-fade-enter-from, &-fade-leave-to":{visibility:`visible`,[`${t}-mask`]:{backgroundColor:`transparent`,backdropFilter:`blur(0px)`},[`${t}-body`]:{transform:`scale(0)`},[`${t}-close, ${t}-switch, ${t}-footer`]:{opacity:0}},"&-fade-enter-to, &-fade-leave-from":{[`${t}-mask`]:{backgroundColor:`color-mix(in srgb, ${e.colorBgLayout} 90%, transparent)`,[`&${t}-mask-blur`]:{backdropFilter:`blur(4px)`}},[`${t}-close, ${t}-switch, ${t}-footer`]:{opacity:1}}}}},se=(0,r.proGenStyleHooks)(`GImagePreview`,e=>[ae(e),oe(e)],ie),J=1,Y={rotateLeft:(0,t.createVNode)(n.GIcon,{type:`RotateLeftOutlined`},null),rotateRight:(0,t.createVNode)(n.GIcon,{type:`RotateRightOutlined`},null),zoomIn:(0,t.createVNode)(n.GIcon,{type:`ZoomInOutlined`},null),zoomOut:(0,t.createVNode)(n.GIcon,{type:`ZoomOutOutlined`},null),flipX:(0,t.createVNode)(n.GIcon,{type:`SwapOutlined`},null),flipY:(0,t.createVNode)(n.GIcon,{type:`SwapOutlined`,rotate:90},null),copy:(0,t.createVNode)(n.GIcon,{type:`CopyOutlined`},null),download:(0,t.createVNode)(n.GIcon,{type:`DownloadOutlined`},null)},X={copySuccess:`复制成功`,copyFailed:`复制失败`,downloadSuccess:`下载成功`,downloadFailed:`下载失败`};function ce(e){try{let t=new URL(e,window.location.href).pathname.match(/\/([^/]+)$/)?.[1];return t?decodeURIComponent(t):`image`}catch{let t=e.split(`?`)[0]?.split(`#`)[0]?.split(`/`).pop();return t?decodeURIComponent(t):`image`}}function le(e){let t={"image/gif":`gif`,"image/jpg":`jpg`,"image/jpeg":`jpg`,"image/png":`png`,"image/svg+xml":`svg`,"image/webp":`webp`},n=e?.toLowerCase();return t[n]||n?.split(`/`)[1]?.split(`+`)[0]||`png`}async function ue(e){let t=await fetch(e,{mode:`cors`});if(!t.ok)throw Error(`Failed to fetch image: ${t.status}`);return t.blob()}async function de(e){return new Promise((t,n)=>{let r=new Image,i=URL.createObjectURL(e);r.onload=()=>{URL.revokeObjectURL(i);let e=document.createElement(`canvas`);e.width=r.naturalWidth,e.height=r.naturalHeight;let a=e.getContext(`2d`);if(!a){n(Error(`Canvas context not available`));return}a.drawImage(r,0,0),e.toBlob(e=>{e?t(e):n(Error(`Failed to convert to PNG`))},`image/png`,1)},r.onerror=()=>{URL.revokeObjectURL(i),n(Error(`Failed to load image for PNG conversion`))},r.src=i})}async function fe(e){let t=(e.type||``).toLowerCase();return t===`image/png`||t===`image/svg+xml`?{[t]:e}:{"image/png":await de(e)}}function pe(e,t){let n=ce(e);return n.includes(`.`)?n.endsWith(`.svg+xml`)?n.replace(/\.svg\+xml$/i,`.svg`):n:`${n}.${le(t)}`}function me(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}var Z=(0,t.defineComponent)((e,{emit:r,slots:c,expose:l})=>{let{width:u,height:d}=(0,i.useWindowSize)(),{prefixCls:f}=(0,a.useBaseConfig)(`pro-image-preview`,e),p=(0,o.default)(f),[m,h]=se(f,p),[g,_]=ee(e.open,{value:(0,t.toRef)(e,`open`),onChange:t=>{e.onOpenChange?.(t),r(`update:open`,t)}}),v=(0,t.ref)(!0),y=(0,t.ref)(),b=(0,t.ref)(),x=(0,t.ref)(e.current??0),S=(0,t.ref)(!1),C=(0,t.ref)(!1),{transform:w,resetTransform:T,updateTransform:E,dispatchZoomChange:D}=H({imageRef:y,minScale:(0,t.toRef)(e,`minScale`),maxScale:(0,t.toRef)(e,`maxScale`),windowWidth:u,windowHeight:d,onTransform:e.onTransform}),{isMoving:O,onMouseDown:k,onWheel:A}=te({imageRef:y,movable:(0,t.toRef)(e,`movable`),visible:g,scaleStep:(0,t.toRef)(e,`scaleStep`),transform:w,updateTransform:E,dispatchZoomChange:D,windowWidth:u,windowHeight:d}),{isTouching:j,onTouchStart:N,onTouchMove:P,onTouchEnd:F}=re({imageRef:y,movable:(0,t.toRef)(e,`movable`),visible:g,minScale:(0,t.toRef)(e,`minScale`),transform:w,updateTransform:E,dispatchZoomChange:D,windowWidth:u,windowHeight:d}),R=(0,t.computed)(()=>e.urls[x.value]),z=(0,t.computed)(()=>e.urls.length>1),B=(0,t.computed)(()=>e.urls.length>=1),V=(0,t.computed)(()=>e.mask===!1?{visible:!1,blur:!1}:e.mask&&typeof e.mask==`object`&&!(`type`in e.mask)?{visible:!0,blur:e.mask.blur!==!1}:{visible:!0,blur:!0}),U=(0,t.computed)(()=>{let t={};return e.mousePosition&&(t.transformOrigin=`${e.mousePosition.x}px ${e.mousePosition.y}px`),t});(0,t.watch)(()=>e.current,e=>{e!==void 0&&(x.value=e)}),(0,t.watch)(()=>e.current,e=>{e!==void 0&&(x.value=e)});let W=()=>{_(!1),e.onClose?.(),r(`close`)},G=()=>{O.value||W()},K=()=>{if(x.value>0||e.infinite){let n=x.value-1<0?e.urls.length-1:x.value-1;v.value=!1,x.value=n,T(`prev`),(0,t.nextTick)(()=>{v.value=!0})}},q=()=>{if(x.value<e.urls.length-1||e.infinite){let n=x.value+1>e.urls.length-1?0:x.value+1;v.value=!1,x.value=n,T(`next`),(0,t.nextTick)(()=>{v.value=!0})}},ne=()=>{D(J+(e.scaleStep??.5),`zoomIn`)},ie=()=>{D(J/(J+(e.scaleStep??.5)),`zoomOut`)},ae=()=>{E({rotate:w.value.rotate+90},`rotateRight`)},oe=()=>{E({rotate:w.value.rotate-90},`rotateLeft`)},ce=()=>{E({flipX:!w.value.flipX},`flipX`)},le=()=>{E({flipY:!w.value.flipY},`flipY`)},de=async()=>{if(!(!R.value||S.value)){if(!navigator.clipboard||!window.ClipboardItem){s.message.error(X.copyFailed);return}S.value=!0;try{let e=await fe(await ue(R.value));await navigator.clipboard.write([new ClipboardItem(e)]),s.message.success(X.copySuccess)}catch{s.message.error(X.copyFailed)}finally{S.value=!1}}},Z=async()=>{if(!(!R.value||C.value)){C.value=!0;try{let e=await ue(R.value);me(e,pe(R.value,e.type)),s.message.success(X.downloadSuccess)}catch{s.message.error(X.downloadFailed)}finally{C.value=!1}}},he=t=>{g.value&&(w.value.scale===1?D(J+(e.scaleStep??.5),`doubleClick`,t.clientX,t.clientY):E({x:0,y:0,scale:1},`doubleClick`))},ge=e=>{if(e.key===`Escape`){W();return}!g.value||!z.value||(e.key===`ArrowLeft`?K():e.key===`ArrowRight`&&q())},Q;(0,t.onMounted)(()=>{let e=e=>ge(e);window.addEventListener(`keydown`,e),Q=()=>window.removeEventListener(`keydown`,e)}),(0,t.onUnmounted)(()=>{Q?.()}),l({setOpen:t=>{_(t),x.value=e.current??0}});let _e=()=>L({slots:c,props:{...e.icons},keys:[`flipY`,`flipX`,`rotateLeft`,`rotateRight`,`zoomOut`,`zoomIn`,`copy`,`download`],render:!0,defaultVNodes:[Y.flipY,Y.flipX,Y.rotateLeft,Y.rotateRight,Y.zoomOut,Y.zoomIn,Y.copy,Y.download]}),ve=()=>{let r=_e();return[{icon:r.flipY,onClick:le,type:`flipY`},{icon:r.flipX,onClick:ce,type:`flipX`},{icon:r.rotateLeft,onClick:oe,type:`rotateLeft`},{icon:r.rotateRight,onClick:ae,type:`rotateRight`},{icon:r.zoomOut,onClick:ie,type:`zoomOut`,disabled:(0,t.computed)(()=>w.value.scale<=(e.minScale??1))},{icon:r.zoomIn,onClick:ne,type:`zoomIn`,disabled:(0,t.computed)(()=>w.value.scale===(e.maxScale??50))},{icon:S.value?(0,t.createVNode)(n.GIcon,{type:`Spinning`,spin:!0},null):r.copy,onClick:de,type:`copy`,disabled:(0,t.computed)(()=>S.value)},{icon:C.value?(0,t.createVNode)(n.GIcon,{type:`Spinning`,spin:!0},null):r.download,onClick:Z,type:`download`,disabled:(0,t.computed)(()=>C.value)}]};return()=>{let r={transform:`translate3d(${w.value.x}px, ${w.value.y}px, 0) scale3d(${w.value.flipX?`-`:``}${w.value.scale}, ${w.value.flipY?`-`:``}${w.value.scale}, 1) rotate(${w.value.rotate}deg)`,transitionDuration:!v.value||j.value?`0s`:void 0},i=I({slots:c,props:{close:e.icons?.close},key:`close`}),a=I({slots:c,props:{left:e.icons?.left},key:`left`}),o=I({slots:c,props:{right:e.icons?.right},key:`right`}),s=`${f.value}-actions-action`,l=ve();return(0,t.createVNode)(t.Teleport,{to:e.getContainer||`body`},{default:()=>[(0,t.createVNode)(t.Transition,{name:`${f.value}-fade`,appear:!0,onAfterLeave:()=>T(`close`)},{default:()=>[g.value&&(0,t.createVNode)(`div`,{ref:b,class:M(f.value,m.value,h.value,p.value,{[`${f.value}-movable`]:e.movable,[`${f.value}-moving`]:O.value}),style:{zIndex:e.zIndex},role:`dialog`,"aria-modal":`true`,"aria-label":`Image`,tabindex:-1},[V.value.visible&&(0,t.createVNode)(`div`,{class:M(`${f.value}-mask`,e.maskClass,{[`${f.value}-mask-blur`]:V.value.blur}),onClick:e.onHideOnClickModal?G:void 0},null),(0,t.createVNode)(`div`,{class:`${f.value}-body`,style:U.value},[(0,t.createVNode)(`img`,{ref:y,class:`${f.value}-img`,src:R.value,alt:`Image`,loading:`eager`,decoding:`sync`,style:r,onWheel:A,onMousedown:k,onDblclick:he,onTouchstart:N,onTouchmove:P,onTouchend:F,onTouchcancel:F},null)]),(0,t.createVNode)(`button`,{type:`button`,class:`${f.value}-close`,onClick:W},[i||(0,t.createVNode)(n.GIcon,{type:`CloseOutlined`},null)]),z.value&&(0,t.createVNode)(t.Fragment,null,[(0,t.createVNode)(`button`,{type:`button`,class:M(`${f.value}-switch`,`${f.value}-switch-prev`,{[`${f.value}-switch-disabled`]:!e.infinite&&x.value===0}),onClick:e=>{e.preventDefault(),e.stopPropagation(),K()}},[a||(0,t.createVNode)(n.GIcon,{type:`LeftOutlined`},null)]),(0,t.createVNode)(`button`,{type:`button`,class:M(`${f.value}-switch`,`${f.value}-switch-next`,{[`${f.value}-switch-disabled`]:!e.infinite&&x.value===e.urls.length-1}),onClick:e=>{e.preventDefault(),e.stopPropagation(),q()}},[o||(0,t.createVNode)(n.GIcon,{type:`RightOutlined`},null)])]),(0,t.createVNode)(`div`,{class:`${f.value}-footer`},[B.value&&(0,t.createVNode)(`div`,{class:`${f.value}-progress`},[e.countRender?e.countRender(x.value+1,e.urls.length):`${x.value+1} / ${e.urls.length}`]),(0,t.createVNode)(`div`,{class:`${f.value}-actions`},[l.map(({icon:e,onClick:n,type:r,disabled:i})=>(0,t.createVNode)(`button`,{type:`button`,class:M(s,`${s}-${r}`,{[`${s}-disabled`]:i&&i.value}),onClick:()=>{i?.value||n()},disabled:i?i.value:!1,"aria-label":r,key:r},[e]))])])])]})]})}},{props:(0,t.mergeDefaults)({class:{type:String,required:!1},style:{type:Object,required:!1},rootClass:{type:String,required:!1},prefixCls:{type:String,required:!1},urls:{type:Array,required:!0},open:{type:Boolean,required:!1,default:void 0},scaleStep:{type:Number,required:!1},minScale:{type:Number,required:!1},maxScale:{type:Number,required:!1},movable:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},zIndex:{type:Number,required:!1},current:{type:Number,required:!1},infinite:{type:Boolean,required:!1,default:void 0},getContainer:{type:String,required:!1},onHideOnClickModal:{type:Boolean,required:!1,default:void 0},mask:{type:[Object,Boolean],required:!1,default:void 0},maskClass:{type:String,required:!1},mousePosition:{type:[Object,null],required:!1},countRender:{type:[Function,Boolean],required:!1,default:void 0},icons:{type:Object,required:!1},onClose:{type:Function,required:!1},onTransform:{type:Function,required:!1},onOpenChange:{type:Function,required:!1},"onUpdate:open":{type:Function,required:!1}},{open:!1,scaleStep:.5,minScale:1,maxScale:50,movable:!0,zIndex:2e3,current:0,infinite:!0,onHideOnClickModal:!0,urls:[],icons:{}}),emits:[`close`,`transform`,`update:open`],name:`GImagePreview`,inheritAttrs:!1}),he=e=>{let{motionDurationSlow:t,paddingXXS:n,marginXXS:i,colorTextLightSolid:a}=e;return{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,color:a,background:`rgba(0, 0, 0, 0.5)`,cursor:`pointer`,opacity:0,transition:`opacity ${t}`,[`.${e.componentCls}-mask-info`]:{overflow:`hidden`,whiteSpace:`nowrap`,textOverflow:`ellipsis`,padding:`0 ${(0,r.unit)(n)}`,".anticon":{marginInlineEnd:i,svg:{verticalAlign:`baseline`}}}}},ge=e=>{let t={width:`100%`,height:`100%`};return{[e.componentCls]:{display:`inline-block`,position:`relative`,overflow:`hidden`,[`${e.componentCls}-img`]:{...t,verticalAlign:`top`,opacity:1,[`&${e.componentCls}-img-preview`]:{userSelect:`none`,cursor:`pointer`},"&-placeholder":{...t,backgroundColor:e.colorBgContainerDisabled,backgroundImage:`url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')`,backgroundRepeat:`no-repeat`,backgroundPosition:`center center`,backgroundSize:`30%`}},[`${e.componentCls}-error`]:{...t,display:`flex`,alignItems:`center`,justifyContent:`center`},[`${e.componentCls}-placeholder`]:{position:`absolute`,inset:0},[`${e.componentCls}-mask`]:{...he(e)},[`${e.componentCls}-mask:hover`]:{opacity:1}}}},Q=(0,r.proGenStyleHooks)(`GImage`,e=>[ge(e)]),_e={src:``,alt:``,fit:`contain`,preview:!0,loading:`eager`};function ve(e){return e&&e.nodeType===1}var $=(0,t.defineComponent)((e,{emit:s,slots:c,expose:l,attrs:u})=>{let d=i.isClient&&`loading`in HTMLImageElement.prototype,{prefixCls:f}=(0,a.useBaseConfig)(`pro-image`,e),p=(0,o.default)(f),[m,h]=Q(f,p),g=(0,t.ref)(),v=(0,t.ref)(!1),y=(0,t.ref)(!0),x=(0,t.ref)(),S=(0,t.ref)(),C,w=(0,t.computed)(()=>e.loading===`eager`?!1:!d&&e.loading===`lazy`||e.lazy),T=(0,t.computed)(()=>i.isClient&&e.fit?{...e.imageStyle,objectFit:e.fit}:{...e.imageStyle}),E=(0,t.computed)(()=>typeof e.preview==`object`?e.preview:{}),D=(0,t.computed)(()=>!!e.preview),O=(0,t.computed)(()=>{let{urls:t=[],current:n=0}=E.value;if(_(n))return t.length>=n?n:0;let r=t.indexOf(e.src??``);return r>=0?r:0}),k=(0,t.computed)(()=>(0,r.unit)(e.width)),A=(0,t.computed)(()=>(0,r.unit)(e.height)),{showViewer:N,mousePosition:P,openPreview:F,closePreview:I}=R({canPreview:D}),z=()=>{i.isClient&&(y.value=!0,v.value=!1,g.value=e.src)},B=t=>{v.value||(y.value=!1,v.value=!1,e.onLoad?.(t),s(`load`,t))},ee=t=>{y.value=!1,v.value=!0,e.onError?.(t),s(`error`,t)},V=()=>{if(!x.value||!S.value)return!1;let e=x.value.getBoundingClientRect(),t=S.value.getBoundingClientRect?S.value.getBoundingClientRect():{top:0,bottom:S.value.innerHeight??0,left:0,right:S.value.innerWidth??0};return e.top<t.bottom&&e.bottom>t.top&&e.left<t.right&&e.right>t.left},H=(0,i.useThrottleFn)(()=>{V()&&(z(),C?.(),C=void 0)},200,!0),U=async()=>{if(!i.isClient)return;await(0,t.nextTick)();let{scrollContainer:n}=e;ve(n)?S.value=n:b(n)&&n!==``?S.value=document.querySelector(n)??void 0:x.value&&(S.value=j(x.value)),S.value&&(C=(0,i.useEventListener)(S.value,`scroll`,H),setTimeout(H,100))},W=t=>{let n=y.value?`loaded`:v.value?`error`:`success`;if(e.onClick?.(n),s(`click`,n),!(y.value||v.value)&&D.value){let e=t.currentTarget?.getBoundingClientRect();F(e?{...t,clientX:e.x+e.width/2,clientY:e.y+e.height/2}:t)}};return(0,t.watch)(()=>e.src,()=>{w.value?(y.value=!0,v.value=!1,C?.(),U()):z()}),(0,t.onMounted)(()=>{w.value?U():z()}),l({setOpen:e=>{e?F():I()}}),()=>{let i={},a={};for(let[e,t]of Object.entries(u))/^(?:data-|on[A-Z])/i.test(e)||[`id`,`style`,`class`].includes(e)?i[e]=t:a[e]=t;let o=L({slots:c,props:e,keys:[`fallback`,`mask`,`placeholder`],render:!0});return(0,t.createVNode)(`div`,(0,t.mergeProps)({class:M(f.value,m.value,h.value,p.value,e.class),ref:x},i,{style:{width:(0,r.unit)(e.size)||k.value,height:(0,r.unit)(e.size)||A.value,...i.style||{}},onClick:e=>{v.value&&W(e)}}),[v.value?(0,t.createVNode)(`div`,{class:M(`${f.value}-error`)},[o.fallback]):(0,t.createVNode)(t.Fragment,null,[(0,t.createVNode)(`img`,(0,t.mergeProps)(a,{src:g.value,loading:e.loading,style:T.value,class:M(e.imageClass,`${f.value}-img`,{[`${f.value}-img-placeholder`]:e.placeholder===!0,[`${f.value}-img-preview`]:D.value}),crossorigin:e.crossOrigin,width:k.value,height:A.value,onClick:W,onLoad:B,onError:ee}),null),y.value&&(0,t.createVNode)(`div`,{class:M(`${f.value}-placeholder`),onClick:W},[o.placeholder])]),E.value.mask&&D.value&&(0,t.createVNode)(`div`,{class:M(`${f.value}-mask`,E.value.maskClass),style:{display:i.style?.display===`none`?`none`:void 0}},[o.mask||(0,t.createVNode)(`div`,{class:M(`${f.value}-mask-info`)},[(0,t.createVNode)(n.GIcon,{type:`EyeOutlined`},null)])]),D.value&&(0,t.createVNode)(Z,(0,t.mergeProps)(E.value,{urls:E.value.urls||(e.src?[e.src]:[]),current:O.value,zIndex:e.zIndex??E.value.zIndex,open:N.value,mousePosition:P.value,onClose:()=>I()}),c)])}},{props:(0,t.mergeDefaults)({rootClass:{type:String,required:!1},prefixCls:{type:String,required:!1},src:{type:String,required:!1},alt:{type:String,required:!1},width:{type:Number,required:!1},height:{type:Number,required:!1},size:{type:Number,required:!1},fit:{type:String,required:!1},loading:{type:String,required:!1},crossOrigin:{type:String,required:!1},imageStyle:{type:Object,required:!1},imageClass:{type:String,required:!1},preview:{type:[Boolean,Object],required:!1,default:void 0},zIndex:{type:Number,required:!1},lazy:{type:Boolean,required:!1,default:void 0},scrollContainer:{required:!1},placeholder:{type:[Function,String,Number,null,Object,Boolean],required:!1,default:void 0},fallback:{type:[Function,String,Number,null,Object,Boolean],required:!1,default:void 0},onLoad:{type:Function,required:!1},onError:{type:Function,required:!1},onClick:{type:Function,required:!1},"onUpdate:open":{type:Function,required:!1}},_e),emits:[`click`,`load`,`error`],name:`GImage`,inheritAttrs:!1});$.isGImage=!0,$.install=e=>(e.component($.name,$),e),e.GImage=$,e.GImagePreview=Z});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vue"),require("@gx-design-vue/icon"),require("@gx-design-vue/pro-provider"),require("@vueuse/core"),require("antdv-next/config-provider/context"),require("antdv-next/config-provider/hooks/useCSSVarCls"),require("antdv-next")):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@gx-design-vue/icon`,`@gx-design-vue/pro-provider`,`@vueuse/core`,`antdv-next/config-provider/context`,`antdv-next/config-provider/hooks/useCSSVarCls`,`antdv-next`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.GImage={},e.Vue,e._gx_design_vue_icon,e._gx_design_vue_pro_provider,e._vueuse_core,e.antdv_next_config_provider_context,e.antdv_next_config_provider_hooks_useCSSVarCls,e.antdv_next))})(this,function(e,t,n,r,i,a,o,s){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var c=Object.create,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,f=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,m=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=d(t),a=0,o=i.length,s;a<o;a++)s=i[a],!p.call(e,s)&&s!==n&&l(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=u(t,s))||r.enumerable});return e};o=((e,t,n)=>(n=e==null?{}:c(f(e)),m(t||!e||!e.__esModule?l(n,`default`,{value:e,enumerable:!0}):n,e)))(o,1);function h(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function g(e){return typeof e==`boolean`}function _(e){return typeof e==`number`}function v(e){return Array.isArray===void 0?Object.prototype.toString.call(e)===`[object Array]`:Array.isArray(e)}function y(e){return e!==null&&h(e,`Object`)}function b(e){return typeof e==`string`}var x=e=>setTimeout(e,16),S=e=>clearTimeout(e);typeof window<`u`&&`requestAnimationFrame`in window&&(x=e=>window.requestAnimationFrame(e),S=e=>window.cancelAnimationFrame(e));var C=0,w=new Map;function T(e){w.delete(e)}function E(e,t=1){C+=1;let n=C;function r(t){if(t===0)T(n),e();else{let e=x(()=>{r(t-1)});w.set(n,e)}}return r(t),n}E.cancel=e=>{let t=w.get(e);return T(t),S(t)};var D=typeof window>`u`;function O(e){return e.replace(/[-_](.)/g,(e,t)=>t.toUpperCase())}function k(e,t){if(D||!e||!t)return``;t=O(t),t===`float`&&(t=`cssFloat`);try{let n=e.style[t];if(n)return n;let r=document?.defaultView?.getComputedStyle(e,``);return r?r[t]:``}catch{return e.style[t]}}function A(e,t){if(!D)return(t==null?k(e,`overflow`):t?k(e,`overflow-y`):k(e,`overflow-x`)).match(/(scroll|auto|overlay)/)}function j(e,t){if(D)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(A(n,t))return n;n=n.parentNode}return n}function M(...e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r){if(b(r))t.push(r);else if(v(r))for(let e=0;e<r.length;e++){let n=M(r[e]);n&&t.push(n)}else if(y(r))for(let e in r)r[e]&&t.push(e)}}return t.filter(e=>e).join(` `)}function N({vnode:e,defaultVNode:t},...n){return e===!1?null:typeof e==`function`?e?.(...n):e||t}function P({value:e,slotsValue:n,defaultVNode:r,render:i}){return e===!1?!1:e===!0?n??r:y(e)&&i?(0,t.isVNode)(e)?e:n:e||n}function F(e,...t){let{slots:n,key:r=`default`,render:i,props:a,defaultChildren:o}=e,s=a[r],c=n?.[r],l=typeof o==`function`?o?.():o,u=P({value:s,slotsValue:c,defaultVNode:l,render:i});return u===!1?!1:i?N({vnode:u,defaultVNode:l},...t):u}function I(e,...t){let{slots:n,key:r=`default`,props:i,defaultChildren:a}=e,o=i[r],s=n?.[r]?.(...t),c=typeof a==`function`?a?.():a,l=P({value:o,slotsValue:s,defaultVNode:c,render:!0});return l===!1?!1:N({vnode:l,defaultVNode:c},...t)}function L(e,...t){let{slots:n,props:r,keys:i,render:a,defaultVNodes:o}=e,s={};return i.forEach((e,i)=>{let c=o?o[i]:null,l=a?I({slots:n,props:r,key:e,defaultChildren:c},...t):F({slots:n,props:r,key:e,render:!1,defaultChildren:c},...t);(g(l)||l)&&(s[e]=l)}),s}function R(e){let{canPreview:n}=e,r=(0,t.ref)(!1),a=(0,t.ref)(null),o=(0,i.useScrollLock)(document.body,!1),s;return(0,t.onScopeDispose)(()=>{s!==void 0&&(window.cancelAnimationFrame(s),s=void 0),o.value=!1}),(0,i.useEventListener)(`wheel`,e=>{r.value&&e.ctrlKey&&e.preventDefault()},{passive:!1}),{showViewer:r,mousePosition:a,openPreview:e=>{n.value&&(s!==void 0&&(window.cancelAnimationFrame(s),s=void 0),e?a.value={x:e.clientX,y:e.clientY}:a.value=null,r.value=!0,s=window.requestAnimationFrame(()=>{o.value=!0,s=void 0}))},closePreview:()=>{s!==void 0&&(window.cancelAnimationFrame(s),s=void 0),r.value=!1,a.value=null,o.value=!1}}}var z=(typeof window>`u`?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1)&&!window.MSStream;typeof window>`u`||z||window.safari;function B(e){let n=(0,t.ref)(typeof e==`function`?e():e);function r(e){n.value=e}return[n,r]}function ee(e,n){let{defaultValue:r,value:i=(0,t.ref)()}=n||{},a=typeof e==`function`?e():e;i.value!==void 0&&(a=(0,t.unref)(i)),r!==void 0&&(a=typeof r==`function`?r():r);let o=(0,t.ref)(a),s=(0,t.ref)(a),[c,l]=B([s.value]),u=(0,t.watchEffect)(()=>{let e=i.value===void 0?o.value:i.value;n?.postState&&(e=n.postState(e,o.value)),s.value=e}),d=(0,t.watch)(c,()=>{let e=c.value[0];o.value!==e&&n?.onChange?.(o.value,e)},{deep:!0});function f(e){o.value=e}function p(e){f(e),l([s.value])}let m=(0,t.watch)(i,()=>{o.value=i.value});return(0,t.onScopeDispose)(()=>{u(),d(),m()}),[s,p,o]}var V={x:0,y:0,rotate:0,scale:1,flipX:!1,flipY:!1};function H(e){let{imageRef:n,minScale:r,maxScale:i,windowWidth:a,windowHeight:o,onTransform:s}=e,c=(0,t.ref)(null),l=(0,t.ref)([]),[u,d]=B({...V}),f=e=>{let t={...u.value};d({...V}),(t.x!==0||t.y!==0||t.scale!==1||t.rotate!==0||t.flipX||t.flipY)&&s?.({transform:{...V},action:e})},p=(e,t)=>{c.value===null&&(l.value=[],c.value=E(()=>{let e={...u.value};for(let t of l.value)e={...e,...t};c.value=null,s?.({transform:e,action:t}),d(e)})),l.value.push({...u.value,...e})};return{transform:u,resetTransform:f,updateTransform:p,dispatchZoomChange:(e,t,s,c,l)=>{let d=n.value;if(!d)return;let{width:f,height:m,offsetWidth:h,offsetHeight:g,offsetLeft:_,offsetTop:v}=d,y=e,b=u.value.scale*e;b>i.value?(b=i.value,y=i.value/u.value.scale):b<r.value&&(b=l?b:r.value,y=b/u.value.scale);let x=s??a.value/2,S=c??o.value/2,C=y-1,w=C*f*.5,T=C*m*.5,E=C*(x-u.value.x-_),D=C*(S-u.value.y-v),O=u.value.x-(E-w),k=u.value.y-(D-T);if(e<1&&b===1){let e=h*b,t=g*b;e<=a.value&&t<=o.value&&(O=0,k=0)}p({x:O,y:k,scale:b},t)}}}function U(e,t,n,r){let i=t+n,a=(n-r)/2;if(n>r){if(t>0)return{[e]:a};if(t<0&&i<r)return{[e]:-a}}else if(t<0||i>r)return{[e]:t<0?a:-a};return{}}function W(e){let{imageWidth:t,imageHeight:n,imageLeft:r,imageTop:i,windowWidth:a,windowHeight:o}=e;return t<=a&&n<=o?{x:0,y:0}:t>a||n>o?{...U(`x`,r,t,a),...U(`y`,i,n,o)}:null}var G=1,K=2;function te(e){let{imageRef:n,movable:r,visible:a,scaleStep:o,transform:s,updateTransform:c,dispatchZoomChange:l,windowWidth:u,windowHeight:d}=e,f=(0,t.ref)(!1),p=(0,t.ref)({diffX:0,diffY:0,transformX:0,transformY:0});return(0,i.useEventListener)(window,`mouseup`,()=>{if(!a.value||!f.value)return;f.value=!1;let{transformX:e,transformY:t}=p.value;if(!(s.value.x!==e&&s.value.y!==t))return;let r=n.value;if(!r)return;let i=r.offsetWidth*s.value.scale,o=r.offsetHeight*s.value.scale,{left:l,top:m}=r.getBoundingClientRect(),h=s.value.rotate%180!=0,g=W({imageWidth:h?o:i,imageHeight:h?i:o,imageLeft:l,imageTop:m,windowWidth:u.value,windowHeight:d.value});g&&c({...g},`dragRebound`)}),(0,i.useEventListener)(window,`mousemove`,e=>{!a.value||!f.value||c({x:e.pageX-p.value.diffX,y:e.pageY-p.value.diffY},`move`)}),{isMoving:f,onMouseDown:e=>{!r.value||e.button!==0||(e.preventDefault(),e.stopPropagation(),p.value={diffX:e.pageX-s.value.x,diffY:e.pageY-s.value.y,transformX:s.value.x,transformY:s.value.y},f.value=!0)},onWheel:e=>{if(!a.value||e.deltaY===0)return;let t=G+Math.min(Math.abs(e.deltaY/100),K)*o.value;e.deltaY>0&&(t=G/t),l(t,`wheel`,e.clientX,e.clientY)}}}function q(e,t){return Math.hypot(e.x-t.x,e.y-t.y)}function ne(e,t,n,r){let i=q(e,n),a=q(t,r);if(i===0&&a===0)return[e.x,e.y];let o=i/(i+a);return[e.x+o*(t.x-e.x),e.y+o*(t.y-e.y)]}function re(e){let{imageRef:n,movable:r,visible:a,minScale:o,transform:s,updateTransform:c,dispatchZoomChange:l,windowWidth:u,windowHeight:d}=e,f=(0,t.ref)(!1),p=(0,t.ref)({point1:{x:0,y:0},point2:{x:0,y:0},eventType:`none`}),m=e=>{p.value={...p.value,...e}};return(0,i.useEventListener)(window,`touchmove`,e=>{a.value&&r.value&&e.preventDefault()},{passive:!1}),{isTouching:f,onTouchStart:e=>{if(!r.value)return;e.stopPropagation(),f.value=!0;let{touches:t=[]}=e;t.length>1?m({point1:{x:t[0].clientX,y:t[0].clientY},point2:{x:t[1].clientX,y:t[1].clientY},eventType:`touchZoom`}):m({point1:{x:t[0].clientX-s.value.x,y:t[0].clientY-s.value.y},eventType:`move`})},onTouchMove:e=>{let{touches:t=[]}=e,{point1:n,point2:r,eventType:i}=p.value;if(t.length>1&&i===`touchZoom`){let e={x:t[0].clientX,y:t[0].clientY},i={x:t[1].clientX,y:t[1].clientY},[a,o]=ne(n,r,e,i);l(q(e,i)/q(n,r),`touchZoom`,a,o,!0),m({point1:e,point2:i,eventType:`touchZoom`})}else i===`move`&&(c({x:t[0].clientX-n.x,y:t[0].clientY-n.y},`move`),m({eventType:`move`}))},onTouchEnd:()=>{if(!a.value)return;if(f.value&&=!1,m({eventType:`none`}),o.value>s.value.scale)return c({x:0,y:0,scale:o.value},`touchZoom`);let e=n.value;if(!e)return;let t=e.offsetWidth*s.value.scale,r=e.offsetHeight*s.value.scale,{left:i,top:l}=e.getBoundingClientRect(),p=s.value.rotate%180!=0,h=W({imageWidth:p?r:t,imageHeight:p?t:r,imageLeft:i,imageTop:l,windowWidth:u.value,windowHeight:d.value});h&&c({...h},`dragRebound`)}}}function ie(e){return{zIndexPopup:`calc(${e.zIndexPopupBase} + 80)`,previewOperationColor:e.colorTextDescription,previewOperationHoverColor:e.colorText,previewOperationColorDisabled:e.colorTextDisabled,imagePreviewSwitchSize:e.controlHeightLG,previewOperationSize:e.fontSizeLG}}var ae=e=>{let t=e.componentCls,{motionEaseOut:n,motionDurationSlow:i,previewOperationSize:a,zIndexPopup:o}=e,s={position:`absolute`,color:e.previewOperationColor,backgroundColor:e.colorBgContainer,borderRadius:`50%`,width:e.controlHeightLG,height:e.controlHeightLG,padding:0,outline:0,border:0,boxShadow:e.boxShadowTertiary,cursor:`pointer`,transition:`all ${i}`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:a,"&:hover":{color:e.previewOperationHoverColor,backgroundColor:e.colorBgContainer},"&:active":{backgroundColor:e.colorBgContainer},svg:{stroke:`currentColor`}};return{[t]:{textAlign:`center`,inset:0,position:`fixed`,userSelect:`none`,zIndex:o,[`${t}-mask`]:{position:`absolute`,inset:0,background:`color-mix(in srgb, ${e.colorBgLayout} 90%, transparent)`,backdropFilter:`blur(0px)`,transition:`background-color ${i}, backdrop-filter ${i}`,[`&${t}-mask-blur`]:{backdropFilter:`blur(4px)`},[`&${t}-mask-hidden`]:{display:`none`}},[`${t}-body`]:{position:`absolute`,inset:0,overflow:`hidden`,display:`flex`,alignItems:`center`,justifyContent:`center`,pointerEvents:`none`,"> *":{pointerEvents:`auto`}},[`${t}-img`]:{maxWidth:`100%`,maxHeight:`70%`,verticalAlign:`middle`,transform:`scale3d(1, 1, 1)`,transition:`transform ${i} ${n} 0s`,userSelect:`none`},[`&-movable ${t}-img`]:{cursor:`grab`},[`&-moving ${t}-img`]:{cursor:`grabbing`},[`${t}-close`]:{...s,top:e.marginSM,insetInlineEnd:e.marginSM},[`${t}-switch`]:{...s,top:`50%`,transform:`translateY(-50%)`,"&-disabled":{"&, &:hover, &:active":{color:e.previewOperationColorDisabled,backgroundColor:e.colorBgContainer,cursor:`not-allowed`}},"&-prev":{insetInlineStart:e.marginSM},"&-next":{insetInlineEnd:e.marginSM}},[`${t}-footer`]:{position:`absolute`,bottom:e.marginXL,left:{_skip_check_:!0,value:`50%`},display:`flex`,flexDirection:`column`,alignItems:`center`,color:e.previewOperationColor,transform:`translateX(-50%)`,gap:e.marginXS},[`${t}-progress`]:{color:e.previewOperationColor},[`${t}-actions`]:{display:`flex`,alignItems:`center`,gap:e.marginXXS,padding:e.paddingXXS,color:e.previewOperationColor,backgroundColor:e.colorBgContainer,border:`${(0,r.unit)(e.lineWidth)} ${e.lineType} ${e.colorFillTertiary}`,borderRadius:e.borderRadiusLG,fontSize:a,"&-action":{color:`inherit`,background:`transparent`,border:0,font:`inherit`,lineHeight:1,width:e.controlHeight,height:e.controlHeight,padding:0,cursor:`pointer`,transition:`all ${i}`,display:`flex`,alignItems:`center`,justifyContent:`center`,borderRadius:e.borderRadius,userSelect:`none`,[`&:not(${t}-actions-action-disabled):hover`]:{color:e.colorTextSecondary,backgroundColor:e.colorFillTertiary},[`&:not(${t}-actions-action-disabled):active`]:{color:e.colorText,backgroundColor:e.colorFillSecondary},"&-disabled":{cursor:`not-allowed`,opacity:.5},svg:{stroke:`currentColor`}}}}}},oe=e=>{let t=e.componentCls,{motionDurationSlow:n,motionEaseOut:r}=e;return{[`${t}`]:{"&-fade-enter-active, &-fade-leave-active":{transition:`visibility ${n}`,[`${t}-mask`]:{transition:`background-color ${n}, backdrop-filter ${n}`},[`${t}-body`]:{transition:`transform ${n} ${r}`},[`${t}-close, ${t}-switch, ${t}-footer`]:{transition:`opacity ${n}, all ${n}`}},"&-fade-enter-from, &-fade-leave-to":{visibility:`visible`,[`${t}-mask`]:{backgroundColor:`transparent`,backdropFilter:`blur(0px)`},[`${t}-body`]:{transform:`scale(0)`},[`${t}-close, ${t}-switch, ${t}-footer`]:{opacity:0}},"&-fade-enter-to, &-fade-leave-from":{[`${t}-mask`]:{backgroundColor:`color-mix(in srgb, ${e.colorBgLayout} 90%, transparent)`,[`&${t}-mask-blur`]:{backdropFilter:`blur(4px)`}},[`${t}-close, ${t}-switch, ${t}-footer`]:{opacity:1}}}}},se=(0,r.proGenStyleHooks)(`GImagePreview`,e=>[ae(e),oe(e)],ie),J=1,Y={rotateLeft:(0,t.createVNode)(n.GIcon,{type:`RotateLeftOutlined`},null),rotateRight:(0,t.createVNode)(n.GIcon,{type:`RotateRightOutlined`},null),zoomIn:(0,t.createVNode)(n.GIcon,{type:`ZoomInOutlined`},null),zoomOut:(0,t.createVNode)(n.GIcon,{type:`ZoomOutOutlined`},null),flipX:(0,t.createVNode)(n.GIcon,{type:`SwapOutlined`},null),flipY:(0,t.createVNode)(n.GIcon,{type:`SwapOutlined`,rotate:90},null),copy:(0,t.createVNode)(n.GIcon,{type:`CopyOutlined`},null),download:(0,t.createVNode)(n.GIcon,{type:`DownloadOutlined`},null)},X={copySuccess:`复制成功`,copyFailed:`复制失败`,downloadSuccess:`下载成功`,downloadFailed:`下载失败`};function ce(e){try{let t=new URL(e,window.location.href).pathname.match(/\/([^/]+)$/)?.[1];return t?decodeURIComponent(t):`image`}catch{let t=e.split(`?`)[0]?.split(`#`)[0]?.split(`/`).pop();return t?decodeURIComponent(t):`image`}}function le(e){let t={"image/gif":`gif`,"image/jpg":`jpg`,"image/jpeg":`jpg`,"image/png":`png`,"image/svg+xml":`svg`,"image/webp":`webp`},n=e?.toLowerCase();return t[n]||n?.split(`/`)[1]?.split(`+`)[0]||`png`}async function ue(e){let t=await fetch(e,{mode:`cors`});if(!t.ok)throw Error(`Failed to fetch image: ${t.status}`);return t.blob()}async function de(e){return new Promise((t,n)=>{let r=new Image,i=URL.createObjectURL(e);r.onload=()=>{URL.revokeObjectURL(i);let e=document.createElement(`canvas`);e.width=r.naturalWidth,e.height=r.naturalHeight;let a=e.getContext(`2d`);if(!a){n(Error(`Canvas context not available`));return}a.drawImage(r,0,0),e.toBlob(e=>{e?t(e):n(Error(`Failed to convert to PNG`))},`image/png`,1)},r.onerror=()=>{URL.revokeObjectURL(i),n(Error(`Failed to load image for PNG conversion`))},r.src=i})}async function fe(e){let t=(e.type||``).toLowerCase();return t===`image/png`||t===`image/svg+xml`?{[t]:e}:{"image/png":await de(e)}}function pe(e,t){let n=ce(e);return n.includes(`.`)?n.endsWith(`.svg+xml`)?n.replace(/\.svg\+xml$/i,`.svg`):n:`${n}.${le(t)}`}function me(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}var Z=(0,t.defineComponent)((e,{emit:r,slots:c,expose:l})=>{let{width:u,height:d}=(0,i.useWindowSize)(),{prefixCls:f}=(0,a.useBaseConfig)(`pro-image-preview`,e),p=(0,o.default)(f),[m,h]=se(f,p),[g,_]=ee(e.open,{value:(0,t.toRef)(e,`open`),onChange:t=>{e.onOpenChange?.(t),r(`update:open`,t)}}),v=(0,t.ref)(!0),y=(0,t.ref)(),b=(0,t.ref)(),x=(0,t.ref)(e.current??0),S=(0,t.ref)(!1),C=(0,t.ref)(!1),{transform:w,resetTransform:T,updateTransform:E,dispatchZoomChange:D}=H({imageRef:y,minScale:(0,t.toRef)(e,`minScale`),maxScale:(0,t.toRef)(e,`maxScale`),windowWidth:u,windowHeight:d,onTransform:e.onTransform}),{isMoving:O,onMouseDown:k,onWheel:A}=te({imageRef:y,movable:(0,t.toRef)(e,`movable`),visible:g,scaleStep:(0,t.toRef)(e,`scaleStep`),transform:w,updateTransform:E,dispatchZoomChange:D,windowWidth:u,windowHeight:d}),{isTouching:j,onTouchStart:N,onTouchMove:P,onTouchEnd:F}=re({imageRef:y,movable:(0,t.toRef)(e,`movable`),visible:g,minScale:(0,t.toRef)(e,`minScale`),transform:w,updateTransform:E,dispatchZoomChange:D,windowWidth:u,windowHeight:d}),R=(0,t.computed)(()=>e.urls[x.value]),z=(0,t.computed)(()=>e.urls.length>1),B=(0,t.computed)(()=>e.urls.length>=1),V=(0,t.computed)(()=>e.mask===!1?{visible:!1,blur:!1}:e.mask&&typeof e.mask==`object`&&!(`type`in e.mask)?{visible:!0,blur:e.mask.blur!==!1}:{visible:!0,blur:!0}),U=(0,t.computed)(()=>{let t={};return e.mousePosition&&(t.transformOrigin=`${e.mousePosition.x}px ${e.mousePosition.y}px`),t});(0,t.watch)(()=>e.current,e=>{e!==void 0&&(x.value=e)}),(0,t.watch)(()=>e.current,e=>{e!==void 0&&(x.value=e)});let W=()=>{_(!1),e.onClose?.(),r(`close`)},G=()=>{O.value||W()},K=()=>{if(x.value>0||e.infinite){let n=x.value-1<0?e.urls.length-1:x.value-1;v.value=!1,x.value=n,T(`prev`),(0,t.nextTick)(()=>{v.value=!0})}},q=()=>{if(x.value<e.urls.length-1||e.infinite){let n=x.value+1>e.urls.length-1?0:x.value+1;v.value=!1,x.value=n,T(`next`),(0,t.nextTick)(()=>{v.value=!0})}},ne=()=>{D(J+(e.scaleStep??.5),`zoomIn`)},ie=()=>{D(J/(J+(e.scaleStep??.5)),`zoomOut`)},ae=()=>{E({rotate:w.value.rotate+90},`rotateRight`)},oe=()=>{E({rotate:w.value.rotate-90},`rotateLeft`)},ce=()=>{E({flipX:!w.value.flipX},`flipX`)},le=()=>{E({flipY:!w.value.flipY},`flipY`)},de=async()=>{if(!(!R.value||S.value)){if(!navigator.clipboard||!window.ClipboardItem){s.message.error(X.copyFailed);return}S.value=!0;try{let e=await fe(await ue(R.value));await navigator.clipboard.write([new ClipboardItem(e)]),s.message.success(X.copySuccess)}catch{s.message.error(X.copyFailed)}finally{S.value=!1}}},Z=async()=>{if(!(!R.value||C.value)){C.value=!0;try{let e=await ue(R.value);me(e,pe(R.value,e.type)),s.message.success(X.downloadSuccess)}catch{s.message.error(X.downloadFailed)}finally{C.value=!1}}},he=t=>{g.value&&(w.value.scale===1?D(J+(e.scaleStep??.5),`doubleClick`,t.clientX,t.clientY):E({x:0,y:0,scale:1},`doubleClick`))},ge=e=>{if(e.key===`Escape`){W();return}!g.value||!z.value||(e.key===`ArrowLeft`?K():e.key===`ArrowRight`&&q())},Q;(0,t.onMounted)(()=>{let e=e=>ge(e);window.addEventListener(`keydown`,e),Q=()=>window.removeEventListener(`keydown`,e)}),(0,t.onUnmounted)(()=>{Q?.()}),l({setOpen:t=>{_(t),x.value=e.current??0}});let _e=()=>L({slots:c,props:{...e.icons},keys:[`flipY`,`flipX`,`rotateLeft`,`rotateRight`,`zoomOut`,`zoomIn`,`copy`,`download`],render:!0,defaultVNodes:[Y.flipY,Y.flipX,Y.rotateLeft,Y.rotateRight,Y.zoomOut,Y.zoomIn,Y.copy,Y.download]}),ve=()=>{let r=_e();return[{icon:r.flipY,onClick:le,type:`flipY`},{icon:r.flipX,onClick:ce,type:`flipX`},{icon:r.rotateLeft,onClick:oe,type:`rotateLeft`},{icon:r.rotateRight,onClick:ae,type:`rotateRight`},{icon:r.zoomOut,onClick:ie,type:`zoomOut`,disabled:(0,t.computed)(()=>w.value.scale<=(e.minScale??1))},{icon:r.zoomIn,onClick:ne,type:`zoomIn`,disabled:(0,t.computed)(()=>w.value.scale===(e.maxScale??50))},{icon:S.value?(0,t.createVNode)(n.GIcon,{type:`Spinning`,spin:!0},null):r.copy,onClick:de,type:`copy`,disabled:(0,t.computed)(()=>S.value)},{icon:C.value?(0,t.createVNode)(n.GIcon,{type:`Spinning`,spin:!0},null):r.download,onClick:Z,type:`download`,disabled:(0,t.computed)(()=>C.value)}]};return()=>{let r={transform:`translate3d(${w.value.x}px, ${w.value.y}px, 0) scale3d(${w.value.flipX?`-`:``}${w.value.scale}, ${w.value.flipY?`-`:``}${w.value.scale}, 1) rotate(${w.value.rotate}deg)`,transitionDuration:!v.value||j.value?`0s`:void 0},i=I({slots:c,props:{close:e.icons?.close},key:`close`}),a=I({slots:c,props:{left:e.icons?.left},key:`left`}),o=I({slots:c,props:{right:e.icons?.right},key:`right`}),s=`${f.value}-actions-action`,l=ve();return(0,t.createVNode)(t.Teleport,{to:e.getContainer||`body`},{default:()=>[(0,t.createVNode)(t.Transition,{name:`${f.value}-fade`,appear:!0,onAfterLeave:()=>T(`close`)},{default:()=>[g.value&&(0,t.createVNode)(`div`,{ref:b,class:M(f.value,m.value,h.value,p.value,{[`${f.value}-movable`]:e.movable,[`${f.value}-moving`]:O.value}),style:{zIndex:e.zIndex},role:`dialog`,"aria-modal":`true`,"aria-label":`Image`,tabindex:-1},[V.value.visible&&(0,t.createVNode)(`div`,{class:M(`${f.value}-mask`,e.maskClass,{[`${f.value}-mask-blur`]:V.value.blur}),onClick:e.onHideOnClickModal?G:void 0},null),(0,t.createVNode)(`div`,{class:`${f.value}-body`,style:U.value},[(0,t.createVNode)(`img`,{ref:y,class:`${f.value}-img`,src:R.value,alt:`Image`,loading:`eager`,decoding:`sync`,style:r,onWheel:A,onMousedown:k,onDblclick:he,onTouchstart:N,onTouchmove:P,onTouchend:F,onTouchcancel:F},null)]),(0,t.createVNode)(`button`,{type:`button`,class:`${f.value}-close`,onClick:W},[i||(0,t.createVNode)(n.GIcon,{type:`CloseOutlined`},null)]),z.value&&(0,t.createVNode)(t.Fragment,null,[(0,t.createVNode)(`button`,{type:`button`,class:M(`${f.value}-switch`,`${f.value}-switch-prev`,{[`${f.value}-switch-disabled`]:!e.infinite&&x.value===0}),onClick:e=>{e.preventDefault(),e.stopPropagation(),K()}},[a||(0,t.createVNode)(n.GIcon,{type:`LeftOutlined`},null)]),(0,t.createVNode)(`button`,{type:`button`,class:M(`${f.value}-switch`,`${f.value}-switch-next`,{[`${f.value}-switch-disabled`]:!e.infinite&&x.value===e.urls.length-1}),onClick:e=>{e.preventDefault(),e.stopPropagation(),q()}},[o||(0,t.createVNode)(n.GIcon,{type:`RightOutlined`},null)])]),(0,t.createVNode)(`div`,{class:`${f.value}-footer`},[B.value&&(0,t.createVNode)(`div`,{class:`${f.value}-progress`},[e.countRender?e.countRender(x.value+1,e.urls.length):`${x.value+1} / ${e.urls.length}`]),(0,t.createVNode)(`div`,{class:`${f.value}-actions`},[l.map(({icon:e,onClick:n,type:r,disabled:i})=>(0,t.createVNode)(`button`,{type:`button`,class:M(s,`${s}-${r}`,{[`${s}-disabled`]:i&&i.value}),onClick:()=>{i?.value||n()},disabled:i?i.value:!1,"aria-label":r,key:r},[e]))])])])]})]})}},{props:(0,t.mergeDefaults)({class:{type:String,required:!1},style:{type:Object,required:!1},rootClass:{type:String,required:!1},prefixCls:{type:String,required:!1},urls:{type:Array,required:!0},open:{type:Boolean,required:!1,default:void 0},scaleStep:{type:Number,required:!1},minScale:{type:Number,required:!1},maxScale:{type:Number,required:!1},movable:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},zIndex:{type:Number,required:!1},current:{type:Number,required:!1},infinite:{type:Boolean,required:!1,default:void 0},getContainer:{type:String,required:!1},onHideOnClickModal:{type:Boolean,required:!1,default:void 0},mask:{type:[Object,Boolean],required:!1,default:void 0},maskClass:{type:String,required:!1},mousePosition:{type:[Object,null],required:!1},countRender:{type:[Function,Boolean],required:!1,default:void 0},icons:{type:Object,required:!1},onClose:{type:Function,required:!1},onTransform:{type:Function,required:!1},onOpenChange:{type:Function,required:!1},"onUpdate:open":{type:Function,required:!1}},{open:!1,scaleStep:.5,minScale:1,maxScale:50,movable:!0,zIndex:2e3,current:0,infinite:!0,onHideOnClickModal:!0,urls:[],icons:{}}),emits:[`close`,`transform`,`update:open`],name:`GImagePreview`,inheritAttrs:!1}),he=e=>{let{motionDurationSlow:t,paddingXXS:n,marginXXS:i,colorTextLightSolid:a}=e;return{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,color:a,background:`rgba(0, 0, 0, 0.5)`,cursor:`pointer`,opacity:0,transition:`opacity ${t}`,[`.${e.componentCls}-mask-info`]:{overflow:`hidden`,whiteSpace:`nowrap`,textOverflow:`ellipsis`,padding:`0 ${(0,r.unit)(n)}`,".anticon":{marginInlineEnd:i,svg:{verticalAlign:`baseline`}}}}},ge=e=>{let t={width:`100%`,height:`100%`};return{[e.componentCls]:{display:`inline-block`,position:`relative`,overflow:`hidden`,[`${e.componentCls}-img`]:{...t,verticalAlign:`top`,opacity:1,[`&${e.componentCls}-img-preview`]:{userSelect:`none`,cursor:`pointer`},"&-placeholder":{...t,backgroundColor:e.colorBgContainerDisabled,backgroundImage:`url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')`,backgroundRepeat:`no-repeat`,backgroundPosition:`center center`,backgroundSize:`30%`}},[`${e.componentCls}-error`]:{...t,display:`flex`,alignItems:`center`,justifyContent:`center`},[`${e.componentCls}-placeholder`]:{position:`absolute`,inset:0},[`${e.componentCls}-mask`]:{...he(e)},[`${e.componentCls}-mask:hover`]:{opacity:1}}}},Q=(0,r.proGenStyleHooks)(`GImage`,e=>[ge(e)]),_e={src:``,alt:``,fit:`contain`,preview:!0,loading:`eager`};function ve(e){return e&&e.nodeType===1}var $=(0,t.defineComponent)((e,{emit:s,slots:c,expose:l,attrs:u})=>{let d=i.isClient&&`loading`in HTMLImageElement.prototype,{prefixCls:f}=(0,a.useBaseConfig)(`pro-image`,e),p=(0,o.default)(f),[m,h]=Q(f,p),g=(0,t.ref)(),v=(0,t.ref)(!1),y=(0,t.ref)(!0),x=(0,t.ref)(),S=(0,t.ref)(),C,w=(0,t.computed)(()=>e.loading===`eager`?!1:!d&&e.loading===`lazy`||e.lazy),T=(0,t.computed)(()=>i.isClient&&e.fit?{...e.imageStyle,objectFit:e.fit}:{...e.imageStyle}),E=(0,t.computed)(()=>typeof e.preview==`object`?e.preview:{}),D=(0,t.computed)(()=>!!e.preview),O=(0,t.computed)(()=>{let{urls:t=[],current:n=0}=E.value;if(_(n))return t.length>=n?n:0;let r=t.indexOf(e.src??``);return r>=0?r:0}),k=(0,t.computed)(()=>(0,r.unit)(e.width)),A=(0,t.computed)(()=>(0,r.unit)(e.height)),{showViewer:N,mousePosition:P,openPreview:F,closePreview:I}=R({canPreview:D}),z=()=>{i.isClient&&(y.value=!0,v.value=!1,g.value=e.src)},B=t=>{v.value||(y.value=!1,v.value=!1,e.onLoad?.(t),s(`load`,t))},ee=t=>{y.value=!1,v.value=!0,e.onError?.(t),s(`error`,t)},V=()=>{if(!x.value||!S.value)return!1;let e=x.value.getBoundingClientRect(),t=S.value.getBoundingClientRect?S.value.getBoundingClientRect():{top:0,bottom:S.value.innerHeight??0,left:0,right:S.value.innerWidth??0};return e.top<t.bottom&&e.bottom>t.top&&e.left<t.right&&e.right>t.left},H=(0,i.useThrottleFn)(()=>{V()&&(z(),C?.(),C=void 0)},200,!0),U=async()=>{if(!i.isClient)return;await(0,t.nextTick)();let{scrollContainer:n}=e;ve(n)?S.value=n:b(n)&&n!==``?S.value=document.querySelector(n)??void 0:x.value&&(S.value=j(x.value)),S.value&&(C=(0,i.useEventListener)(S.value,`scroll`,H),setTimeout(H,100))},W=t=>{let n=y.value?`loaded`:v.value?`error`:`success`;if(e.onClick?.(n),s(`click`,n),!(y.value||v.value)&&D.value){let e=t.currentTarget?.getBoundingClientRect();F(e?{...t,clientX:e.x+e.width/2,clientY:e.y+e.height/2}:t)}};return(0,t.watch)(()=>e.src,()=>{w.value?(y.value=!0,v.value=!1,C?.(),U()):z()}),(0,t.onMounted)(()=>{w.value?U():z()}),l({setOpen:e=>{e?F():I()}}),()=>{let i={},a={};for(let[e,t]of Object.entries(u))/^(?:data-|on[A-Z])/i.test(e)||[`id`,`style`,`class`].includes(e)?i[e]=t:a[e]=t;let o=L({slots:c,props:e,keys:[`fallback`,`mask`,`placeholder`],render:!0});return(0,t.createVNode)(`div`,(0,t.mergeProps)({class:M(f.value,m.value,h.value,p.value,e.class),ref:x},i,{style:{width:(0,r.unit)(e.size)||k.value,height:(0,r.unit)(e.size)||A.value,...i.style||{}},onClick:e=>{v.value&&W(e)}}),[v.value?(0,t.createVNode)(`div`,{class:M(`${f.value}-error`)},[o.fallback]):(0,t.createVNode)(t.Fragment,null,[(0,t.createVNode)(`img`,(0,t.mergeProps)(a,{src:g.value,loading:e.loading,style:T.value,class:M(e.imageClass,`${f.value}-img`,{[`${f.value}-img-placeholder`]:e.placeholder===!0,[`${f.value}-img-preview`]:D.value}),crossorigin:e.crossOrigin,width:k.value,height:A.value,onClick:W,onLoad:B,onError:ee}),null),y.value&&(0,t.createVNode)(`div`,{class:M(`${f.value}-placeholder`),onClick:W},[o.placeholder])]),E.value.mask&&D.value&&(0,t.createVNode)(`div`,{class:M(`${f.value}-mask`,E.value.maskClass),style:{display:i.style?.display===`none`?`none`:void 0}},[o.mask||(0,t.createVNode)(`div`,{class:M(`${f.value}-mask-info`)},[(0,t.createVNode)(n.GIcon,{type:`EyeOutlined`},null)])]),D.value&&(0,t.createVNode)(Z,(0,t.mergeProps)(E.value,{urls:E.value.urls||(e.src?[e.src]:[]),current:O.value,zIndex:e.zIndex??E.value.zIndex,open:N.value,mousePosition:P.value,onClose:()=>I()}),c)])}},{props:(0,t.mergeDefaults)({rootClass:{type:String,required:!1},prefixCls:{type:String,required:!1},src:{type:String,required:!1},alt:{type:String,required:!1},width:{type:Number,required:!1},height:{type:Number,required:!1},size:{type:Number,required:!1},fit:{type:String,required:!1},loading:{type:String,required:!1},crossOrigin:{type:String,required:!1},imageStyle:{type:Object,required:!1},imageClass:{type:String,required:!1},preview:{type:[Boolean,Object],required:!1,default:void 0},zIndex:{type:Number,required:!1},lazy:{type:Boolean,required:!1,default:void 0},scrollContainer:{required:!1},placeholder:{type:[Function,String,Number,null,Object,Boolean],required:!1,default:void 0},fallback:{type:[Function,String,Number,null,Object,Boolean],required:!1,default:void 0},onLoad:{type:Function,required:!1},onError:{type:Function,required:!1},onClick:{type:Function,required:!1},"onUpdate:open":{type:Function,required:!1}},_e),emits:[`click`,`load`,`error`],name:`GImage`,inheritAttrs:!1});$.isGImage=!0,$.install=e=>(e.component($.name,$),e),e.GImage=$,e.GImagePreview=Z});
@@ -1,7 +1,5 @@
1
- import * as _$vue from "vue";
2
-
3
1
  //#region src/style/index.d.ts
4
2
  type ComponentToken = Record<string, any>;
5
- declare const _default: (prefixCls: _$vue.Ref<string>, rootCls?: _$vue.Ref<string | undefined>) => readonly [_$vue.Ref<string, string>, _$vue.ComputedRef<string | undefined>];
3
+ declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
6
4
  //#endregion
7
5
  export { ComponentToken, _default as default };
@@ -1,5 +1,3 @@
1
- import * as _$vue from "vue";
2
-
3
1
  //#region src/style/preview.d.ts
4
2
  interface ComponentToken {
5
3
  zIndexPopup: string | number;
@@ -9,6 +7,6 @@ interface ComponentToken {
9
7
  previewOperationColorDisabled: string;
10
8
  imagePreviewSwitchSize: string | number;
11
9
  }
12
- declare const _default: (prefixCls: _$vue.Ref<string>, rootCls?: _$vue.Ref<string | undefined>) => readonly [_$vue.Ref<string, string>, _$vue.ComputedRef<string | undefined>];
10
+ declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
13
11
  //#endregion
14
12
  export { ComponentToken, _default as default };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gx-design-vue/image",
3
3
  "type": "module",
4
- "version": "0.2.0-alpha.5",
4
+ "version": "0.2.0-alpha.6",
5
5
  "description": "Gx Design Image",
6
6
  "author": {
7
7
  "name": "gx12358",
@@ -37,18 +37,26 @@
37
37
  "package.json"
38
38
  ],
39
39
  "peerDependencies": {
40
- "vue": ">=3.2.0"
40
+ "@antdv-next/cssinjs": "^1.0.6",
41
+ "antdv-next": "^1.4.0",
42
+ "vue": ">=3.2.0",
43
+ "@gx-design-vue/icon": "^0.0.1-alpha.11",
44
+ "@gx-design-vue/pro-hooks": "^0.2.0-alpha.7",
45
+ "@gx-design-vue/pro-provider": "^0.1.0-alpha.15",
46
+ "@gx-design-vue/pro-utils": "^0.2.0-alpha.9"
41
47
  },
42
48
  "dependencies": {
43
- "@antdv-next/cssinjs": "^1.0.6",
44
49
  "@ctrl/tinycolor": "^3.5.0",
45
50
  "@vueuse/core": "^14.3.0",
46
- "antdv-next": "^1.3.5",
47
- "es-toolkit": "^1.43.0",
48
- "@gx-design-vue/icon": "^0.0.1-alpha.7",
49
- "@gx-design-vue/pro-utils": "^0.2.0-alpha.6",
50
- "@gx-design-vue/pro-hooks": "^0.2.0-alpha.6",
51
- "@gx-design-vue/pro-provider": "^0.1.0-alpha.8"
51
+ "es-toolkit": "1.48.1"
52
+ },
53
+ "devDependencies": {
54
+ "@antdv-next/cssinjs": "^1.0.6",
55
+ "antdv-next": "^1.4.0",
56
+ "@gx-design-vue/icon": "^0.0.1-alpha.11",
57
+ "@gx-design-vue/pro-hooks": "^0.2.0-alpha.7",
58
+ "@gx-design-vue/pro-utils": "^0.2.0-alpha.9",
59
+ "@gx-design-vue/pro-provider": "^0.1.0-alpha.15"
52
60
  },
53
61
  "browserslist": [
54
62
  "> 1%",