function v(p){return String(p??"").trim()}function N(p){const f=p.currentTarget;if(!f)return null;if(f instanceof HTMLImageElement)return f.complete&&f.naturalWidth>0&&f.naturalHeight>0?f:null;const g=f.querySelector("img");return g&&g.complete&&g.naturalWidth>0&&g.naturalHeight>0?g:null}function L(p){const f=Math.max(8,Number(p?.maxCacheCount??32)),g=p?.enableCanvasWarmup??!0,W=Math.max(1,Number(p?.maxWarmupPerCall??24)),y=p?.disableCanvasPreview??!1,l=new Map,w=new Map,c=new Map,x=new Set,d=document.createElement("div");d.style.width="1px",d.style.height="1px",d.style.position="fixed",d.style.top="-9999px",d.style.left="-9999px",d.style.opacity="0",document.body.appendChild(d);const E=e=>{const t=l.get(e);t?.parentNode&&t.parentNode.removeChild(t),l.delete(e),w.delete(e)},b=e=>{const t=c.get(e);t?.parentNode&&t.parentNode.removeChild(t),c.delete(e)},k=()=>{for(;l.size>f;){const e=l.keys().next().value;if(!e)break;E(e),b(e)}},C=e=>{if(!e.complete||e.naturalWidth<=0||e.naturalHeight<=0)return null;const t=120,a=document.createElement("canvas");a.width=t,a.height=t,a.style.width=`${t}px`,a.style.height=`${t}px`,a.style.position="fixed",a.style.top="-9999px",a.style.left="-9999px";const r=a.getContext("2d");if(!r)return null;const n=e.naturalWidth,s=e.naturalHeight,m=n/s,u=1;let o=0,i=0,h=n,P=s;return m>u?(h=s*u,o=(n-h)/2):m{const t=v(e);if(!t)return null;const a=l.get(t);if(a)return l.delete(t),l.set(t,a),a;const r=new Image;return r.src=t,r.style.width="120px",r.style.height="120px",r.style.objectFit="cover",r.decoding="async",r.loading="eager",l.set(t,r),k(),r},T=e=>{const t=v(e);if(!t)return Promise.resolve();const a=w.get(t);if(a)return a;const r=I(t);if(!r)return Promise.resolve();const n=new Promise(s=>{if(r.complete&&r.naturalWidth>0){s();return}const m=()=>{r.removeEventListener("load",m),r.removeEventListener("error",m),s()};r.addEventListener("load",m,{once:!0}),r.addEventListener("error",m,{once:!0})}).then(async()=>{try{typeof r.decode=="function"&&await r.decode()}catch{}});return w.set(t,n),n},D=e=>{const t=v(e);return!t||c.has(t)?Promise.resolve():T(t).then(()=>{if(c.has(t))return;const a=l.get(t);if(!a)return;const r=C(a);r&&(document.body.appendChild(r),c.set(t,r))})};return{ensurePreviewImage:I,warmupPreviewImages:e=>{let t=0;e.forEach(a=>{if(t>=W)return;const r=v(a);if(!r||x.has(r))return;x.add(r),t+=1;const n=()=>{T(r),g&&!y&&D(r)};"requestIdleCallback"in window?window.requestIdleCallback(n,{timeout:1200}):setTimeout(n,0)})},startImageDrag:({evt:e,dragUrl:t,previewUrl:a,preferDomDragImage:r})=>{const n=v(t);if(!n||!e.dataTransfer)return!1;if(e.dataTransfer.clearData(),e.dataTransfer.setData("text/plain",n),e.dataTransfer.setData("text/uri-list",n),e.dataTransfer.setData("text/html",``),r){const o=N(e);if(o){const i=C(o);if(i){document.body.appendChild(i);const h=`__dom_preview__:${n}`;return b(h),c.set(h,i),e.dataTransfer.setDragImage(i,60,60),!0}}}const s=v(a??n),m=I(s);let u=y?null:c.get(s);if(!u&&!y&&m){const o=C(m);o?(document.body.appendChild(o),c.set(s,o),u=o):D(s)}if(!u){const o=N(e);if(o){const i=C(o);i&&(document.body.appendChild(i),c.set(s,i),u=i)}}return u?e.dataTransfer.setDragImage(u,60,60):e.dataTransfer.setDragImage(d,0,0),!0},dispose:()=>{l.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),c.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),l.clear(),w.clear(),c.clear(),x.clear(),d.parentNode&&d.parentNode.removeChild(d)}}}export{L as c}; //# sourceMappingURL=imageDragTransfer-apm0lmHd.js.map