@jt-home/mfe-components 1.0.62-beta.1 → 1.0.62
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/JtAttachmentPreview/index.cjs +1 -2
- package/dist/JtAttachmentPreview/index.mjs +552 -340
- package/dist/JtAttachmentPreview/style.css +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +1712 -1721
- package/dist/locale/index.cjs +1 -0
- package/dist/{shared/locale-DZoOXmOC.js → locale/index.mjs} +58 -69
- package/dist/pdf-BmBuG7of.js +18058 -0
- package/dist/pdf-Da0bm_Ya.cjs +55 -0
- package/dist/pdf.worker.min-4PI-nNLo.js +4 -0
- package/dist/pdf.worker.min-BAJUPwg6.cjs +1 -0
- package/dist/style.css +1 -1
- package/dist/types/components/JtAttachmentPreview/index.d.ts +2 -3
- package/dist/types/components/JtAttachmentPreview/types.d.ts +4 -6
- package/dist/types/components/form/types.d.ts +4 -1
- package/dist/types/components/globalInfo/components/GlobalInfoLeftNav.vue.d.ts +1 -1
- package/dist/types/components/globalInfo/model/slotIdentity.d.ts +1 -1
- package/dist/types/components/globalInfo/model/types.d.ts +1 -1
- package/dist/types/components/globalInfo/renderers/GlobalInfoDeleteConfirm.vue.d.ts +2 -2
- package/dist/types/components/index.d.ts +2 -1
- package/dist/types/locale/index.d.ts +2 -1
- package/dist/types/locale/types.d.ts +1 -2
- package/dist/types/main.d.ts +2 -5
- package/package.json +31 -33
- package/readme.md +694 -694
- package/dist/shared/locale-Da8Pg9-2.cjs +0 -1
|
@@ -1,2 +1 @@
|
|
|
1
|
-
require('./style.css');
|
|
2
|
-
"use strict";var ne=Object.create;var J=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ae=Object.getPrototypeOf,ie=Object.prototype.hasOwnProperty;var le=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of oe(t))!ie.call(e,r)&&r!==o&&J(e,r,{get:()=>t[r],enumerable:!(a=re(t,r))||a.enumerable});return e};var ce=(e,t,o)=>(o=e!=null?ne(ae(e)):{},le(t||!e||!e.__esModule?J(o,"default",{value:e,enumerable:!0}):o,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../shared/locale-Da8Pg9-2.cjs"),n=require("vue"),E=require("element-plus"),j=require("@element-plus/icons-vue"),se="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAADYCAMAAAC+/t3fAAAAaVBMVEUAAABWapNVapKeqsLJztx3hKnGzN2yu8////9XapWcqMGps8lXapVYa5RWaZWps8lfcJjS1+KjrsVXapWapr////9sfaKrtMrV2uWBj7B4iKqWob1wgaXr7fOBj6/Ax9dhc5yhq8OKl7Wba+6tAAAAE3RSTlMAgGDuDyVLoYDe2XuXRb68cy6e4BCQEAAAAyZJREFUeNrt29tyokAUheGOQjIoeMhuCQ4e0Pd/yCE1STU4mGq7bXqzZ/23ufoqYblTqkIIIYQQQggNlM42Lzctf5nMD22bKQYVOQ30sTPt6dEO74mKXLoiCgDTi1RFbUMUBhZXluQUDKbnWxWtjMLB2pYqUjmFg8WUzSg0TL+rCKVZeJheRJj9DYWHRRnHbBSYnr+qcSsoKCyeLKcfK/emc2UqH4LFGMcVWVftTC4w/TbmhGQjwvR6RBmNAbMYx4nD7k/I1GF3ZZOH3RtHAbDhcZQAG5SJgOn1Vt0mAzYwIUJgvjJ/2OVo2pcmcoQZWehxpBGue5sJEQTryyTBeuMoCtadEFmwjkwYzIyjNJief02IONj3OAqE/ZVJhJnZj3RS1c4nld04ijiC/5EJhbUyobBWJhT2OY5CYa1MKKyVCYXpdSIUphdbobB2HIXCWplQmJGFhZUn07kyNaFgbUsx1/1tb1Jh+i1hDmu0Y+uEN4xqV9ki5Q27atfmKWtYqd1lW84wqj1kr5xhB+3RkjGMrl4yxrCm9pG984V5ytZJINjpY7hmLNki5XjdP0fGFkZ0qL1kfGEt7erzgsYY1lYefrtWsIZ5NAMMMBNg9gEGmD3sejbVnRpyjAvs5rr3DzDAAOsEmH2AAQZYJ8Ds4wJrSlN1NE3+CDYJu+5NgNkHGGCAdQLMPsAAA0zuEQyYbYABBlgnwOwDDDDAOvVhl5NJ1Fu1O6lHMGA/xQl2rPodpcBq6gfYYIABBpgJsAdiBDvX/cTAxF4egNkEWGDY5Q5s8v9onoZdR3KNC4yOg7AzOccFNvi36POJIy4wqgZgF/KIC6yporuCwNrq/nNW7ckzLjCi/bO//MEF9mCAAQYYYDwCDDAmAQYYkwADjEmAAcYkwABjEmCAMQkwwJgEGGBMAgwwJgEGGJMAA4xJgAHGJMD+B1hGE6hwgK1oAqUOsJz4lymHCuJfrpTM9SicYC/EvUw5lRD3Psde4lP29YSJG8bse+ulvZZ5uFTCV5YZl6hpXKXKs5TlL22jnlCaM7uHV7NEPam02LwwaVYkCiGEEEIIITTUH1Fqd5V0WMtQAAAAAElFTkSuQmCC",de="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAADYCAMAAAC+/t3fAAAAdVBMVEUAAAD/XgD/XQD/z7f/omz/r4H/h0v/0Lf/omz/XwP/XgD/XgD/XQD/tIv/pnH/zK7/XgD/XAD/rH7/XQD/XgD/nmb/////fjL/ciD/dib/6+D/9e//ml//aBD/18D/r4D/w6D/hkD/uJD/pHD/kE//4c//zbBB3kudAAAAFHRSTlMAgGAP7q8hPNo33pe+mH9Z73BZULJO58YAAAW3SURBVHja7NZJDsJADERREzoTYZa94P4XJQhaZOgoWViYLvnf4C1cMnme53me53mel6gqbjvVCvqD2u7K2j3KPRnXHpn1e0hTkWk3jinDbGX7jmPqMAk1mXXgmD6s70xGdRzTh1nKCh6nD5OSDKoOPEkfJs2m2c9iEEewreOYx3IMYBbj2HIqfZiEO62UyyQOYBbjeOSV9GByWpmQbE5sCpPyhzJOpA9bH8fMYcvjmDtMwoWSZQ9bGkcAWHocEWDJcYSASTOfEAxYYhxBYHMZCmw2+zCw6TgCwcbjiAQbyaBgw9nHgg0mBAz2laHBJHzGEQ4WJwQQ9pYhwqSsiSBh0tSgMAk1KEzCBRTWy0Bhr28fFNbPPijsyY297DYIA1EYlnpJ20WyqA7G8QVi4uT9H7Go0oDDkrHEkf+Vt58ijyfMskZhs6xR2PygNQqbH7RGYbOsUdj8oDUK67pLq7Du3CpsHvvksNjtlnHDEPbKvk/csNzt7eNEDbPdftkXMwxBIfvlgcUcQu5R1HeKLiSwNJj/3N1iKatkDLB4M0suQYpBIzsTwB6mLFSSfb4fDZvMS95Wkn2fjoVZs2nAwTLU6Wa2Jaxdg0p2JMybbSPKrlnzoB0HS8LxTk4PbLLXfm8/h8HuwknrFImo1tthsHHVZDlaKGKByezwxXzMUMQGc8UcCVDEApsKmGsJNhawoSVYkDvWGiwVM35oaXhEgfUrLEERC2yZGHfAL0ZNLDCZ90/EpjaPZafyMckJqlhgdlkWZfIPUMUCgxOPfCKYoIsFNplNd+higaUtLEEXCwx+A4M2Ftj46npAGwvMvsImaGOBYTBlGepYYNmUWahjgcHXvmIssLH2FWOBRV/5FWOBFT+ZR5VYYNFIT1SJBYabwBzqxAKbaq/ALDBnJB9RIxJY3+ZKBUxN/m35o9buclyFYSgAb8ICK78OhO5/ibfS3JkAdksn5OHMeS5Sv0Jty+QZN3q8B4EV9UrzZlBg0lBjFosoMHeCuUj3AgILjTSmMqLAHk00pk2DwHjS8Uz9QYGF5hnzN0OB7cYpdfKoKyCw1sRCGVJAUGCyW+MsI/o0CKyVDiGiNKA0gsDkMG+w38sCdQQF5o7Vok63ZRiwcEbkKxlHehcUmFPLDrFkXEOW5L4/vaWlMtnBgBVdA+N2kOW6yuYnIymQDgosGSt7dtOHcZXOAYHta30L+09luteBwMR+xzJ/KNO9DgTG+wVwh0xt61BgojZTTdb1MILA+NViikO68tiXgsDE6sMcxNsEv4Ra+Jm5rOKsQwYgMJ7OzTmWxb2r7jK3izdc2OmGxTX56871WMsciTg8YGGHG/ZUKcS2BI7y9/5j7SsnrXJLjW0otqIbBQisvG5NEiLRxYSl6w4KzE1m3FLonPCG5ugnCLBoN6qUmXQ0Ta/5MWAx+wuVjv1L+K/xHgNmspxSqbAuMcL0DAaMxRopCn2UWPJj+3/NJutXiYGAWaxUI/0qkbndKQhYXJTK50j9wYDF7Me+LQKBVWc2of5gwNis1kzdAYGt3nIJdQcDFpM9DTF1BgQ2u1fja2dAYMHbLqHOgMDCsW352w8iCKweWDHffhBBYOyba2Nabz+IKDB3eFk+36+IILDQXPlQRnpdKLC0d+W9sjMoMN8kJY04woEC+6kbJY05dIMC86OPSaHA0ugREQWWR7tQYP/atZcUBmEoCsNHA4FEBxHvyKJQ7P7X2EGdlHbiNYNjON8OfvIkZP2Zi9tqV7CE2V77TyxL2PdkXJ52GUuYvZbKL1IsYcfr9GPbq2WxhJ2gMIUpTGEcFKYwEgpTGAmFKYyEwhRGQmEKI+EJy3YDCeeNdgOesMH4ZTgk4zfAoxi9GR6dsctwCfRD1sNnNm7HCmtuY8wRH42dZSXCL/CW5QQcmtoax4iLIuOglQkVpIHrPlzGPqCSNE8diT4FiIiIiIjIP2/v9e/hKQXqEwAAAABJRU5ErkJggg==",ue=new Set(["jpg","jpeg","png","gif","webp","bmp","svg","avif","ico"]),me=new Set(["mp4","webm","ogg","ogv","mov","m4v"]),ve=new Set(["mp3","wav","ogg","oga","m4a","aac","flac"]),fe=new Set(["html","htm","txt","json","xml","csv","md","log"]),we=new Set(["doc","docx","xls","xlsx","ppt","pptx","zip","rar","7z"]),C={component:"JtAttachmentPreview",marker:"2026-06-25-download-error-detail",source:"@jt-home/mfe-components/src/components/JtAttachmentPreview/index.ts",pdfLoadMode:"vue-office-pdf-src",previewDownloadMode:"openByParams-uses-registered-downloadRequest",downloadResponseMode:"supports-blob-and-axios-response-data-blob"};function m(e,t){console.info(`[JtAttachmentPreview DEBUG ${C.marker}] ${e}`,{...C,...t})}typeof window<"u"&&(window.__JT_ATTACHMENT_PREVIEW_DEBUG__=C);let f=null,w=null,D=null;const he=n.defineAsyncComponent(()=>import("@vue-office/pdf/lib/v3/index.js").then(e=>e.default));function pe(e){return typeof e=="string"?{url:e}:e}function O(e){const[t]=e.split(/[?#]/);return t??""}function P(e,t){if(t?.trim())return t.trim();const o=O(e).split("/").filter(Boolean).pop();if(!o)return l.t("common.附件预览");try{return decodeURIComponent(o)}catch{return o}}function U(e){return O(e).match(/\.([a-z0-9]+)$/i)?.[1]?.toLowerCase()??""}function be(e){return e?.trim().replace(/^\./,"").toLowerCase()??""}function ye(e){const t=be(e);return ue.has(t)?"image":t==="pdf"?"pdf":me.has(t)?"video":ve.has(t)?"audio":fe.has(t)?"iframe":we.has(t)?"unsupported":"unknown"}function Y(e){const t=e.toLowerCase().split(";")[0]?.trim()??"";return t.startsWith("image/")?"image":t==="application/pdf"?"pdf":t.startsWith("video/")?"video":t.startsWith("audio/")?"audio":t.startsWith("text/")?"iframe":"unknown"}function x(e){if(!e.url.trim())return"empty";if(e.mode&&e.mode!=="auto")return e.mode;if(e.mimeType){const o=Y(e.mimeType);if(o!=="unknown")return o}const t=ye(e.extension||U(e.name||"")||U(e.url));return t!=="unknown"?t:"unknown"}async function ge(e){try{const o=(await fetch(e,{method:"HEAD"})).headers.get("content-type")??"";return Y(o)}catch{return"unknown"}}async function I(e,t){const o=await fetch(e,t);if(!o.ok)throw new Error(`fetch failed: ${o.status}`);return o.blob()}function S(e,t,o,a=!1){return n.h("button",{class:o,type:"button",onClick:()=>{m("download-button-click",{url:e.url,downloadName:t,fallbackToRawUrl:a}),G(e,t,{fallbackToRawUrl:a})}},[n.h(E.ElIcon,{class:"jt-attachment-preview-service__download-icon"},()=>n.h(j.Download)),n.h("span",{class:"jt-attachment-preview-service__download-text"},l.t("common.下载"))])}function _(e){return e==="image"||e==="pdf"}function N(e){return n.h("div",{class:"jt-attachment-preview-service__preview-fallback"},[n.h("img",{class:"jt-attachment-preview-service__preview-fallback-icon",src:e.icon,alt:""}),n.h("div",{class:"jt-attachment-preview-service__unsupported-text"},l.t("common.暂不支持预览此类型的文件")),n.h("div",{class:"jt-attachment-preview-service__file-name",title:e.name},e.name)])}function L(e,t){const o=document.createElement("a");o.href=e,o.download=t,o.style.display="none",document.body.appendChild(o),o.click(),o.remove()}function T(e,t){const o=URL.createObjectURL(e);L(o,t),window.setTimeout(()=>URL.revokeObjectURL(o),1e3)}function k(e){return e instanceof Blob||Object.prototype.toString.call(e)==="[object Blob]"}function Ae(e,t){if(k(e))return e;if(e&&typeof e=="object"){const o=e;if(k(o.data)){const a=o.data;return{blob:o.data,name:o.fileName||o.name||a.name||t}}}return null}async function Ee(e,t,o={}){m("download-start",{url:e,downloadName:t,fallbackToRawUrl:!!o.fallbackToRawUrl,hasRequestInit:!!o.requestInit});try{const a=await I(e,o.requestInit);m("download-blob-ready",{url:e,downloadName:t,blobType:a.type,blobSize:a.size}),T(a,t)}catch{m("download-blob-failed",{url:e,downloadName:t,fallbackToRawUrl:!!o.fallbackToRawUrl}),o.fallbackToRawUrl&&L(e,t)}}function q(e,t){return e instanceof Blob?{blob:e,name:t}:e?{url:e.url,blob:e.blob,name:e.name||t,requestInit:e.requestInit,fallbackToRawUrl:e.fallbackToRawUrl}:null}async function G(e,t,o={}){const a={url:e.url,name:t,params:e.requestParams,options:e};try{let r=null;if(m("download-resolve-start",{url:e.url,downloadName:t,hasCustomDownload:!!e.download,hasRegisteredDownload:!!w?.downloadRequest,useRegisteredDownload:!!e.useRegisteredDownload,hasRequestParams:Object.prototype.hasOwnProperty.call(e,"requestParams")}),e.download){m("download-custom-handler-start",{url:e.url,downloadName:t});const i=await e.download(a);if(r=q(i,t),!r){m("download-custom-handler-done",{url:e.url,downloadName:t});return}}else if(e.useRegisteredDownload&&w?.downloadRequest){m("download-setup-request-start",{url:e.url,downloadName:t,params:e.requestParams});const i=await w.downloadRequest(e.requestParams);m("download-request-response",{isBlob:k(i),isDataBlob:!!i&&typeof i=="object"&&k(i.data),responseType:Object.prototype.toString.call(i)});const v=Ae(i,t),u=v||(w.mapDownloadResponse?w.mapDownloadResponse(i,e.requestParams):i);r=q(u,t)}if(r?.blob){m("download-result-blob",{downloadName:r.name,blobType:r.blob.type,blobSize:r.blob.size}),T(r.blob,r.name);return}const c=r?.url||e.downloadUrl||e.url,d=r?.name||t;await Ee(c,d,{requestInit:r?.requestInit||e.downloadRequestInit,fallbackToRawUrl:r?.fallbackToRawUrl??e.downloadFallbackToRawUrl??o.fallbackToRawUrl})}catch(r){m("download-handler-failed",{url:e.url,downloadName:t,errorName:r instanceof Error?r.name:"",errorMessage:r instanceof Error?r.message:String(r),errorStack:r instanceof Error?r.stack:"",errorResponseStatus:r&&typeof r=="object"?r.response?.status:void 0,errorResponseType:r&&typeof r=="object"?Object.prototype.toString.call(r.response?.data):void 0,errorResponseDataType:r&&typeof r=="object"?r.response?.data?.type:void 0}),o.fallbackToRawUrl&&L(e.downloadUrl||e.url,t)}}const je=n.defineComponent({name:"JtAttachmentPreviewPdfOffice",props:{url:{type:String,required:!0},name:{type:String,required:!0},downloadName:{type:String,required:!0},downloadable:{type:Boolean,required:!0}},emits:{previewLoad:e=>e instanceof Event,previewError:e=>e instanceof Event},setup(e,{emit:t}){const o=n.ref("ready");function a(){o.value="ready",t("previewLoad",new Event("load"))}function r(){o.value="error",t("previewError",new Event("error"))}return n.watch(()=>e.url,()=>{o.value="ready"}),()=>n.h("div",{class:"jt-attachment-preview-service__pdf-viewer"},[o.value==="error"?n.h("div",{class:"jt-attachment-preview-service__pdf-state"},[N({icon:de,name:e.name})]):n.h(he,{class:"jt-attachment-preview-service__pdf-document",src:e.url,onRendered:a,onError:r})])}}),De=n.defineComponent({name:"JtAttachmentPreviewImageTransform",props:{url:{type:String,required:!0},name:{type:String,required:!0},downloadName:{type:String,required:!0},downloadable:{type:Boolean,required:!0},fit:{type:String,default:"contain"}},emits:{previewLoad:e=>e instanceof Event,previewError:e=>e instanceof Event},setup(e,{emit:t}){const o=n.ref(null),a=n.ref("ready"),r=n.ref(1),c=n.ref(!1);let d=0,i=0,v=0,u=0,y=0,b=0,h=0;const g=n.computed(()=>({"--jt-attachment-preview-service-image-fit":e.fit,transform:`translate(${d}px, ${i}px) scale(${r.value})`}));function p(){o.value&&(o.value.style.transform=`translate(${d}px, ${i}px) scale(${r.value})`)}function z(){h||(h=window.requestAnimationFrame(()=>{h=0,p()}))}function B(s){r.value=Math.min(Math.max(Number(s.toFixed(2)),.2),5),r.value<=1&&(d=0,i=0),p()}function V(){B(r.value+.2)}function X(){const s=Math.max(Number((r.value-.2).toFixed(2)),.2);r.value=s,s<=1&&(d=0,i=0),p()}function M(){d=0,i=0,B(1)}function Z(s){a.value="ready",t("previewLoad",s)}function F(s){a.value="error",t("previewError",s)}function $(s){r.value<=1||(s.preventDefault(),c.value=!0,v=s.clientX,u=s.clientY,y=d,b=i,window.addEventListener("pointermove",R),window.addEventListener("pointerup",ee,{once:!0}))}function R(s){c.value&&(d=y+s.clientX-v,i=b+s.clientY-u,z())}function ee(){c.value=!1,window.removeEventListener("pointermove",R)}function te(s){s.preventDefault(),B(r.value+(s.deltaY<0?.1:-.1))}return n.onMounted(p),n.watch(()=>e.url,()=>{a.value="ready",M()}),n.onBeforeUnmount(()=>{window.removeEventListener("pointermove",R),h&&window.cancelAnimationFrame(h)}),()=>n.h("div",{class:"jt-attachment-preview-service__image-viewer"},a.value==="error"?N({icon:se,name:e.name}):[n.h("img",{ref:o,class:["jt-attachment-preview-service__media","jt-attachment-preview-service__image",r.value>1?"jt-attachment-preview-service__image--draggable":"",c.value?"jt-attachment-preview-service__image--dragging":""],src:e.url,alt:e.name,style:g.value,onLoad:Z,onError:F,onPointerdown:$,onWheel:te,onDragstart:s=>s.preventDefault(),draggable:!1}),n.h("div",{class:"jt-attachment-preview-service__image-toolbar"},[n.h("button",{class:"jt-attachment-preview-service__image-tool",type:"button",title:l.t("common.缩小"),onClick:X},[n.h(E.ElIcon,()=>n.h(j.ZoomOut))]),n.h("span",{class:"jt-attachment-preview-service__image-scale"},`${Math.round(r.value*100)}%`),n.h("button",{class:"jt-attachment-preview-service__image-tool",type:"button",title:l.t("common.放大"),onClick:V},[n.h(E.ElIcon,()=>n.h(j.ZoomIn))]),n.h("button",{class:"jt-attachment-preview-service__image-tool",type:"button",title:l.t("common.复位"),onClick:M},[n.h(E.ElIcon,()=>n.h(j.RefreshLeft))])])])}}),ke=n.defineComponent({name:"JtAttachmentPreviewService",props:{options:{type:Object,required:!0},onDestroy:{type:Function,required:!0}},setup(e){const t=n.computed(()=>P(e.options.url,e.options.name)),o=n.computed(()=>e.options.downloadName||t.value),a=n.computed(()=>x(e.options)),r=n.computed(()=>({zIndex:e.options.zIndex??3e3,"--jt-attachment-preview-service-image-fit":e.options.fit??"contain"}));function c(){e.options.onClose?.(),e.onDestroy()}function d(u){u.key==="Escape"&&e.options.closeOnPressEscape!==!1&&c()}function i(u){e.options.onLoad?.(u)}function v(u){e.options.onError?.(u)}return n.onMounted(()=>{document.addEventListener("keydown",d),document.body.classList.add("jt-attachment-preview-service-lock")}),n.onBeforeUnmount(()=>{document.removeEventListener("keydown",d),document.body.classList.remove("jt-attachment-preview-service-lock")}),()=>{const u=e.options.downloadable===!1?[]:[S(e.options,o.value,"jt-attachment-preview-service__top-download")];return n.h("div",{class:"jt-attachment-preview-service",style:r.value},[n.h("div",{class:"jt-attachment-preview-service__modal"},[n.h("div",{class:"jt-attachment-preview-service__header"},[n.h("div",{class:"jt-attachment-preview-service__filename",title:t.value},t.value),n.h("div",{class:"jt-attachment-preview-service__header-actions"},[...u,n.h("button",{class:"jt-attachment-preview-service__close",type:"button","aria-label":l.t("common.关闭"),onClick:c},"×")])]),n.h("div",{class:"jt-attachment-preview-service__body"},[Be({type:a.value,url:e.options.url,name:t.value,downloadName:o.value,sourceOptions:e.options,downloadable:e.options.downloadable!==!1,onLoad:i,onError:v})])])])}}}),A=n.defineComponent({name:"JtAttachmentPreviewDetectingService",props:{options:{type:Object,required:!0},onDestroy:{type:Function,required:!0},title:{type:String,default:l.t("common.正在识别文件类型")},desc:{type:String,default:l.t("common.请稍候,识别完成后将自动预览或下载")},spinning:{type:Boolean,default:!0}},setup(e){const t=n.computed(()=>P(e.options.url,e.options.name)),o=n.computed(()=>({zIndex:e.options.zIndex??3e3}));function a(){e.options.onClose?.(),e.onDestroy()}function r(c){c.key==="Escape"&&e.options.closeOnPressEscape!==!1&&a()}return n.onMounted(()=>{document.addEventListener("keydown",r),document.body.classList.add("jt-attachment-preview-service-lock")}),n.onBeforeUnmount(()=>{document.removeEventListener("keydown",r),document.body.classList.remove("jt-attachment-preview-service-lock")}),()=>n.h("div",{class:"jt-attachment-preview-service",style:o.value},[n.h("div",{class:"jt-attachment-preview-service__modal"},[n.h("div",{class:"jt-attachment-preview-service__header"},[n.h("div",{class:"jt-attachment-preview-service__filename",title:t.value},t.value),n.h("div",{class:"jt-attachment-preview-service__header-actions"},[n.h("button",{class:"jt-attachment-preview-service__close",type:"button","aria-label":l.t("common.关闭"),onClick:a},"×")])]),n.h("div",{class:"jt-attachment-preview-service__body"},[n.h("div",{class:"jt-attachment-preview-service__detecting"},[e.spinning?n.h("span",{class:"jt-attachment-preview-service__detecting-spinner"}):null,n.h("span",{class:"jt-attachment-preview-service__detecting-title"},e.title),n.h("span",{class:"jt-attachment-preview-service__detecting-desc"},e.desc)])])])])}});function Be(e){return e.type==="empty"?n.h("div",{class:"jt-attachment-preview-service__empty"},l.t("common.暂无附件")):e.type==="image"?n.h(De,{url:e.url,name:e.name,downloadName:e.downloadName,downloadable:e.downloadable,onPreviewLoad:e.onLoad,onPreviewError:e.onError}):e.type==="pdf"?n.h(je,{url:e.url,name:e.name,downloadName:e.downloadName,downloadable:e.downloadable,onPreviewLoad:e.onLoad,onPreviewError:e.onError}):n.h("div",{class:"jt-attachment-preview-service__unsupported"},[n.h("div",{class:"jt-attachment-preview-service__file-card"},[n.h("div",{class:"jt-attachment-preview-service__file-icon"},"FILE"),n.h("div",{class:"jt-attachment-preview-service__unsupported-text"},l.t("common.暂不支持预览此类型的文件"))]),n.h("div",{class:"jt-attachment-preview-service__file-name",title:e.name},e.name),e.downloadable?S(e.sourceOptions,e.downloadName,"jt-attachment-preview-service__primary-download"):null])}function K(e){if(typeof document>"u")return{close:()=>{}};m("open-called",{rawOptions:typeof e=="string"?e:{...e}}),f?.close();const t=pe(e),o=t.downloadName||P(t.url,t.name);let a=!1,r=null,c=null;const d=()=>{a=!0,r&&(n.render(null,r),r.remove(),r=null),c&&(URL.revokeObjectURL(c),c=null),f?.close===d&&(f=null)};function i(){a||(r||(r=document.createElement("div"),document.body.appendChild(r)),n.render(n.h(ke,{options:t,onDestroy:d}),r))}function v(){a||(r||(r=document.createElement("div"),document.body.appendChild(r)),n.render(n.h(A,{options:t,onDestroy:d}),r))}function u(){r&&(n.render(null,r),r.remove(),r=null)}function y(){a||G(t,o,{fallbackToRawUrl:!0})}const b=x(t);return m("type-resolved",{resolvedType:b,url:t.url,name:t.name,mode:t.mode,mimeType:t.mimeType,extension:t.extension}),_(b)?i():b==="unknown"?(v(),ge(t.url).then(async h=>{if(!a){if(_(h)){t.mode=h,i();return}try{const g=await I(t.url),p=Y(g.type);if(_(p)){c=URL.createObjectURL(g),t.url=c,t.mode=p,i();return}u(),T(g,o)}catch{u(),y()}}})):y(),f={close:d},f}function H(e){if(typeof e=="function"){w=null,D=e;return}w=e,D=async t=>{const o=await w.request(t);return w.mapResponse(o,t)}}function W(e){if(typeof document>"u")return{close:()=>{}};f?.close();let t=!1,o=document.createElement("div");document.body.appendChild(o);const a=()=>{t=!0,o&&(n.render(null,o),o.remove(),o=null),f?.close===a&&(f=null)},r={close:a};return f=r,D?(n.render(n.h(A,{options:{url:"",name:l.t("common.附件预览")},title:l.t("common.正在获取文件信息"),desc:l.t("common.请稍候,获取完成后将自动预览或下载"),spinning:!0,onDestroy:a}),o),Promise.resolve(D(e)).then(c=>{if(!t){if(!c?.url){n.render(n.h(A,{options:{url:"",name:l.t("common.附件预览")},title:l.t("common.文件信息缺少URL"),desc:l.t("common.请检查mapResponse是否返回了url字段"),spinning:!1,onDestroy:a}),o);return}K({...c,requestParams:e,useRegisteredDownload:!0})}}).catch(c=>{if(t)return;const d=c instanceof Error?c.message:l.t("common.接口请求失败");n.render(n.h(A,{options:{url:"",name:l.t("common.附件预览")},title:l.t("common.文件信息获取失败"),desc:d,spinning:!1,onDestroy:a}),o)}),r):(n.render(n.h(A,{options:{url:"",name:l.t("common.附件预览")},title:l.t("common.附件预览未初始化"),desc:l.t("common.请先调用setupJtAttachmentPreview注册请求配置"),spinning:!1,onDestroy:a}),o),r)}const Q=Object.assign(K,{openByParams:W,setup:H});globalThis.__JT_ATTACHMENT_PREVIEW_SERVICE__=Q;exports.JtAttachmentPreview=Q;exports.JtAttachmentPreviewByParams=W;exports.setupJtAttachmentPreview=H;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../locale/index.cjs"),t=require("vue"),R=require("element-plus");/*! Element Plus Icons Vue v2.3.2 */var ne=t.defineComponent({name:"Download",__name:"download",setup(e){return(n,a)=>(t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[t.createElementVNode("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z"})]))}}),ae=ne,re=t.defineComponent({name:"RefreshLeft",__name:"refresh-left",setup(e){return(n,a)=>(t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[t.createElementVNode("path",{fill:"currentColor",d:"M289.088 296.704h92.992a32 32 0 0 1 0 64H232.96a32 32 0 0 1-32-32V179.712a32 32 0 0 1 64 0v50.56a384 384 0 0 1 643.84 282.88 384 384 0 0 1-383.936 384 384 384 0 0 1-384-384h64a320 320 0 1 0 640 0 320 320 0 0 0-555.712-216.448z"})]))}}),oe=re,ie=t.defineComponent({name:"ZoomIn",__name:"zoom-in",setup(e){return(n,a)=>(t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[t.createElementVNode("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704m-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64z"})]))}}),le=ie,ce=t.defineComponent({name:"ZoomOut",__name:"zoom-out",setup(e){return(n,a)=>(t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[t.createElementVNode("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704M352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64"})]))}}),se=ce;const de="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAADYCAMAAAC+/t3fAAAAaVBMVEUAAABWapNVapKeqsLJztx3hKnGzN2yu8////9XapWcqMGps8lXapVYa5RWaZWps8lfcJjS1+KjrsVXapWapr////9sfaKrtMrV2uWBj7B4iKqWob1wgaXr7fOBj6/Ax9dhc5yhq8OKl7Wba+6tAAAAE3RSTlMAgGDuDyVLoYDe2XuXRb68cy6e4BCQEAAAAyZJREFUeNrt29tyokAUheGOQjIoeMhuCQ4e0Pd/yCE1STU4mGq7bXqzZ/23ufoqYblTqkIIIYQQQggNlM42Lzctf5nMD22bKQYVOQ30sTPt6dEO74mKXLoiCgDTi1RFbUMUBhZXluQUDKbnWxWtjMLB2pYqUjmFg8WUzSg0TL+rCKVZeJheRJj9DYWHRRnHbBSYnr+qcSsoKCyeLKcfK/emc2UqH4LFGMcVWVftTC4w/TbmhGQjwvR6RBmNAbMYx4nD7k/I1GF3ZZOH3RtHAbDhcZQAG5SJgOn1Vt0mAzYwIUJgvjJ/2OVo2pcmcoQZWehxpBGue5sJEQTryyTBeuMoCtadEFmwjkwYzIyjNJief02IONj3OAqE/ZVJhJnZj3RS1c4nld04ijiC/5EJhbUyobBWJhT2OY5CYa1MKKyVCYXpdSIUphdbobB2HIXCWplQmJGFhZUn07kyNaFgbUsx1/1tb1Jh+i1hDmu0Y+uEN4xqV9ki5Q27atfmKWtYqd1lW84wqj1kr5xhB+3RkjGMrl4yxrCm9pG984V5ytZJINjpY7hmLNki5XjdP0fGFkZ0qL1kfGEt7erzgsYY1lYefrtWsIZ5NAMMMBNg9gEGmD3sejbVnRpyjAvs5rr3DzDAAOsEmH2AAQZYJ8Ds4wJrSlN1NE3+CDYJu+5NgNkHGGCAdQLMPsAAA0zuEQyYbYABBlgnwOwDDDDAOvVhl5NJ1Fu1O6lHMGA/xQl2rPodpcBq6gfYYIABBpgJsAdiBDvX/cTAxF4egNkEWGDY5Q5s8v9onoZdR3KNC4yOg7AzOccFNvi36POJIy4wqgZgF/KIC6yporuCwNrq/nNW7ckzLjCi/bO//MEF9mCAAQYYYDwCDDAmAQYYkwADjEmAAcYkwABjEmCAMQkwwJgEGGBMAgwwJgEGGJMAA4xJgAHGJMD+B1hGE6hwgK1oAqUOsJz4lymHCuJfrpTM9SicYC/EvUw5lRD3Psde4lP29YSJG8bse+ulvZZ5uFTCV5YZl6hpXKXKs5TlL22jnlCaM7uHV7NEPam02LwwaVYkCiGEEEIIITTUH1Fqd5V0WMtQAAAAAElFTkSuQmCC",ue="data:image/png;base64,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",me=new Set(["jpg","jpeg","png","gif","webp","bmp","svg","avif","ico"]),ve=new Set(["mp4","webm","ogg","ogv","mov","m4v"]),fe=new Set(["mp3","wav","ogg","oga","m4a","aac","flac"]),we=new Set(["html","htm","txt","json","xml","csv","md","log"]),he=new Set(["doc","docx","xls","xlsx","ppt","pptx","zip","rar","7z"]),J={component:"JtAttachmentPreview",marker:"2026-06-25-download-error-detail",source:"@jt-home/mfe-components/src/components/JtAttachmentPreview/index.ts",pdfLoadMode:"fetch-bytes-then-pdfjs-data",previewDownloadMode:"openByParams-uses-registered-downloadRequest",downloadResponseMode:"supports-blob-and-axios-response-data-blob"};function f(e,n){console.info(`[JtAttachmentPreview DEBUG ${J.marker}] ${e}`,{...J,...n})}typeof window<"u"&&(window.__JT_ATTACHMENT_PREVIEW_DEBUG__=J,f("module-loaded"));let E=null,O=null,j=null;async function pe(){return O||(O=Promise.all([Promise.resolve().then(()=>require("../pdf-Da0bm_Ya.cjs")),Promise.resolve().then(()=>require("../pdf.worker.min-BAJUPwg6.cjs"))]).then(([e,n])=>(e.GlobalWorkerOptions.workerSrc=n.default,e))),O}function ge(e){return typeof e=="string"?{url:e}:e}function K(e){const[n]=e.split(/[?#]/);return n??""}function N(e,n){if(n?.trim())return n.trim();const a=K(e).split("/").filter(Boolean).pop();if(!a)return c.t("common.附件预览");try{return decodeURIComponent(a)}catch{return a}}function q(e){return K(e).match(/\.([a-z0-9]+)$/i)?.[1]?.toLowerCase()??""}function ye(e){return e?.trim().replace(/^\./,"").toLowerCase()??""}function be(e){const n=ye(e);return me.has(n)?"image":n==="pdf"?"pdf":ve.has(n)?"video":fe.has(n)?"audio":we.has(n)?"iframe":he.has(n)?"unsupported":"unknown"}function S(e){const n=e.toLowerCase().split(";")[0]?.trim()??"";return n.startsWith("image/")?"image":n==="application/pdf"?"pdf":n.startsWith("video/")?"video":n.startsWith("audio/")?"audio":n.startsWith("text/")?"iframe":"unknown"}function Q(e){if(!e.url.trim())return"empty";if(e.mode&&e.mode!=="auto")return e.mode;if(e.mimeType){const a=S(e.mimeType);if(a!=="unknown")return a}const n=be(e.extension||q(e.name||"")||q(e.url));return n!=="unknown"?n:"unknown"}async function Ae(e){try{const a=(await fetch(e,{method:"HEAD"})).headers.get("content-type")??"";return S(a)}catch{return"unknown"}}async function V(e,n){const a=await fetch(e,n);if(!a.ok)throw new Error(`fetch failed: ${a.status}`);return a.blob()}async function _e(e){f("fetch-pdf-bytes-start",{url:e});const n=await fetch(e);if(!n.ok)throw new Error(`fetch failed: ${n.status}`);const a=new Uint8Array(await n.arrayBuffer());return f("fetch-pdf-bytes-done",{url:e,byteLength:a.byteLength,contentType:n.headers.get("content-type")??""}),a}function Ee(e,n){const a=q(n);return a==="doc"||a==="docx"?"W":a==="xls"||a==="xlsx"?"X":a==="ppt"||a==="pptx"?"P":a==="zip"||a==="rar"||a==="7z"?"ZIP":e==="pdf"?"PDF":"FILE"}function F(e,n,a,o=!1){return t.h("button",{class:a,type:"button",onClick:()=>{f("download-button-click",{url:e.url,downloadName:n,fallbackToRawUrl:o}),Z(e,n,{fallbackToRawUrl:o})}},[t.h(R.ElIcon,{class:"jt-attachment-preview-service__download-icon"},()=>t.h(ae)),t.h("span",{class:"jt-attachment-preview-service__download-text"},c.t("common.下载"))])}function U(e){return e==="image"||e==="pdf"}function X(e){return t.h("div",{class:"jt-attachment-preview-service__preview-fallback"},[t.h("img",{class:"jt-attachment-preview-service__preview-fallback-icon",src:e.icon,alt:""}),t.h("div",{class:"jt-attachment-preview-service__unsupported-text"},c.t("common.暂不支持预览此类型的文件")),t.h("div",{class:"jt-attachment-preview-service__file-name",title:e.name},e.name)])}function G(e,n){const a=document.createElement("a");a.href=e,a.download=n,a.style.display="none",document.body.appendChild(a),a.click(),a.remove()}function z(e,n){const a=URL.createObjectURL(e);G(a,n),window.setTimeout(()=>URL.revokeObjectURL(a),1e3)}function Y(e){return e instanceof Blob||Object.prototype.toString.call(e)==="[object Blob]"}function je(e,n){if(Y(e))return e;if(e&&typeof e=="object"){const a=e;if(Y(a.data)){const o=a.data;return{blob:a.data,name:a.fileName||a.name||o.name||n}}}return null}async function De(e,n,a={}){f("download-start",{url:e,downloadName:n,fallbackToRawUrl:!!a.fallbackToRawUrl,hasRequestInit:!!a.requestInit});try{const o=await V(e,a.requestInit);f("download-blob-ready",{url:e,downloadName:n,blobType:o.type,blobSize:o.size}),z(o,n)}catch{f("download-blob-failed",{url:e,downloadName:n,fallbackToRawUrl:!!a.fallbackToRawUrl}),a.fallbackToRawUrl&&G(e,n)}}function W(e,n){return e instanceof Blob?{blob:e,name:n}:e?{url:e.url,blob:e.blob,name:e.name||n,requestInit:e.requestInit,fallbackToRawUrl:e.fallbackToRawUrl}:null}async function Z(e,n,a={}){const o={url:e.url,name:n,params:e.requestParams,options:e};try{let r=null;if(f("download-resolve-start",{url:e.url,downloadName:n,hasCustomDownload:!!e.download,hasRegisteredDownload:!!j?.downloadRequest,useRegisteredDownload:!!e.useRegisteredDownload,hasRequestParams:Object.prototype.hasOwnProperty.call(e,"requestParams")}),e.download){f("download-custom-handler-start",{url:e.url,downloadName:n});const i=await e.download(o);if(r=W(i,n),!r){f("download-custom-handler-done",{url:e.url,downloadName:n});return}}else if(e.useRegisteredDownload&&j?.downloadRequest){f("download-setup-request-start",{url:e.url,downloadName:n,params:e.requestParams});const i=await j.downloadRequest(e.requestParams);f("download-request-response",{isBlob:Y(i),isDataBlob:!!i&&typeof i=="object"&&Y(i.data),responseType:Object.prototype.toString.call(i)});const h=je(i,n),v=h||(j.mapDownloadResponse?j.mapDownloadResponse(i,e.requestParams):i);r=W(v,n)}if(r?.blob){f("download-result-blob",{downloadName:r.name,blobType:r.blob.type,blobSize:r.blob.size}),z(r.blob,r.name);return}const s=r?.url||e.downloadUrl||e.url,d=r?.name||n;await De(s,d,{requestInit:r?.requestInit||e.downloadRequestInit,fallbackToRawUrl:r?.fallbackToRawUrl??e.downloadFallbackToRawUrl??a.fallbackToRawUrl})}catch(r){f("download-handler-failed",{url:e.url,downloadName:n,errorName:r instanceof Error?r.name:"",errorMessage:r instanceof Error?r.message:String(r),errorStack:r instanceof Error?r.stack:"",errorResponseStatus:r&&typeof r=="object"?r.response?.status:void 0,errorResponseType:r&&typeof r=="object"?Object.prototype.toString.call(r.response?.data):void 0,errorResponseDataType:r&&typeof r=="object"?r.response?.data?.type:void 0}),a.fallbackToRawUrl&&G(e.downloadUrl||e.url,n)}}const ke=t.defineComponent({name:"JtAttachmentPreviewPdfCanvas",props:{url:{type:String,required:!0},name:{type:String,required:!0},downloadName:{type:String,required:!0},downloadable:{type:Boolean,required:!0}},emits:{previewLoad:e=>e instanceof Event,previewError:e=>e instanceof Event},setup(e,{emit:n}){const a=t.ref("loading"),o=t.ref([]),r=t.ref([]),s=new Map,d=t.ref("");let i=null,h=[],v=0;async function w(l,u){if(!u)return null;const g=typeof u=="string"?await l.getDestination(u):u;return!Array.isArray(g)||!g[0]?null:await l.getPageIndex(g[0])+1}async function A(l,u,g=0){if(!u?.length)return[];const y=[];for(const D of u){const C=await w(l,D.dest);y.push({title:D.title||c.t("common.未命名标题"),pageNumber:C,level:g});const x=await A(l,D.items,g+1);y.push(...x)}return y}function p(){v+=1;for(const l of h)l.cancel();h=[],i?.destroy(),i=null,s.clear()}async function k(){p();const l=v;a.value="loading",d.value="",o.value=[],r.value=[];try{const u=await pe();if(l!==v)return;const g=await _e(e.url);if(l!==v)return;f("render-pdf-get-document-data",{byteLength:g.byteLength}),i=u.getDocument({data:g});const y=await i.promise;if(l!==v)return;o.value=Array.from({length:y.numPages},(x,B)=>B+1),r.value=await A(y,await y.getOutline()),await t.nextTick();const D=s.values().next().value,C=Math.max((D?.parentElement?.clientWidth??800)-32,320);for(const x of o.value){if(l!==v)return;const B=await y.getPage(x),b=s.get(x),L=b?.getContext("2d");if(!b||!L)continue;const I=B.getViewport({scale:1}),m=Math.min(C/I.width,2),P=B.getViewport({scale:m}),T=window.devicePixelRatio||1;b.width=Math.floor(P.width*T),b.height=Math.floor(P.height*T),b.style.width=`${Math.floor(P.width)}px`,b.style.height=`${Math.floor(P.height)}px`,L.setTransform(T,0,0,T,0,0);const H=B.render({canvas:b,canvasContext:L,viewport:P});h.push(H),await H.promise}if(l!==v)return;a.value="ready",n("previewLoad",new Event("load"))}catch(u){if(l!==v)return;a.value="error",d.value=u instanceof Error?u.message:c.t("common.PDF加载失败"),n("previewError",new Event("error"))}}t.watch(()=>e.url,k,{immediate:!0}),t.onBeforeUnmount(p);function _(l){if(!l)return;s.get(l)?.scrollIntoView({behavior:"smooth",block:"start"})}return()=>t.h("div",{class:"jt-attachment-preview-service__pdf-viewer"},[a.value==="loading"?t.h("div",{class:"jt-attachment-preview-service__pdf-state"},c.t("common.PDF加载中___")):null,a.value==="error"?t.h("div",{class:"jt-attachment-preview-service__pdf-state"},[X({icon:ue,name:e.name})]):null,null,null,t.h("div",{class:["jt-attachment-preview-service__pdf-layout",a.value!=="ready"?"jt-attachment-preview-service__pdf-layout--hidden":""]},[r.value.length?t.h("aside",{class:"jt-attachment-preview-service__pdf-outline"},[t.h("div",{class:"jt-attachment-preview-service__pdf-outline-title"},c.t("common.目录")),t.h("div",{class:"jt-attachment-preview-service__pdf-outline-list"},r.value.map((l,u)=>t.h("button",{key:`${l.title}-${u}`,class:"jt-attachment-preview-service__pdf-outline-item",style:{paddingLeft:`${12+l.level*14}px`},type:"button",disabled:!l.pageNumber,title:l.title,onClick:()=>_(l.pageNumber)},l.title)))]):null,t.h("div",{class:"jt-attachment-preview-service__pdf-pages"},o.value.map(l=>t.h("canvas",{key:l,ref:u=>{u instanceof HTMLCanvasElement&&s.set(l,u)},class:"jt-attachment-preview-service__pdf-page"})))])])}}),xe=t.defineComponent({name:"JtAttachmentPreviewImageTransform",props:{url:{type:String,required:!0},name:{type:String,required:!0},downloadName:{type:String,required:!0},downloadable:{type:Boolean,required:!0},fit:{type:String,default:"contain"}},emits:{previewLoad:e=>e instanceof Event,previewError:e=>e instanceof Event},setup(e,{emit:n}){const a=t.ref(null),o=t.ref("ready"),r=t.ref(1),s=t.ref(!1);let d=0,i=0,h=0,v=0,w=0,A=0,p=0;const k=t.computed(()=>({"--jt-attachment-preview-service-image-fit":e.fit,transform:`translate(${d}px, ${i}px) scale(${r.value})`}));function _(){a.value&&(a.value.style.transform=`translate(${d}px, ${i}px) scale(${r.value})`)}function l(){p||(p=window.requestAnimationFrame(()=>{p=0,_()}))}function u(m){r.value=Math.min(Math.max(Number(m.toFixed(2)),.2),5),r.value<=1&&(d=0,i=0),_()}function g(){u(r.value+.2)}function y(){const m=Math.max(Number((r.value-.2).toFixed(2)),.2);r.value=m,m<=1&&(d=0,i=0),_()}function D(){d=0,i=0,u(1)}function C(m){o.value="ready",n("previewLoad",m)}function x(m){o.value="error",n("previewError",m)}function B(m){r.value<=1||(m.preventDefault(),s.value=!0,h=m.clientX,v=m.clientY,w=d,A=i,window.addEventListener("pointermove",b),window.addEventListener("pointerup",L,{once:!0}))}function b(m){s.value&&(d=w+m.clientX-h,i=A+m.clientY-v,l())}function L(){s.value=!1,window.removeEventListener("pointermove",b)}function I(m){m.preventDefault(),u(r.value+(m.deltaY<0?.1:-.1))}return t.onMounted(_),t.watch(()=>e.url,()=>{o.value="ready",D()}),t.onBeforeUnmount(()=>{window.removeEventListener("pointermove",b),p&&window.cancelAnimationFrame(p)}),()=>t.h("div",{class:"jt-attachment-preview-service__image-viewer"},o.value==="error"?X({icon:de,name:e.name}):[t.h("img",{ref:a,class:["jt-attachment-preview-service__media","jt-attachment-preview-service__image",r.value>1?"jt-attachment-preview-service__image--draggable":"",s.value?"jt-attachment-preview-service__image--dragging":""],src:e.url,alt:e.name,style:k.value,onLoad:C,onError:x,onPointerdown:B,onWheel:I,onDragstart:m=>m.preventDefault(),draggable:!1}),t.h("div",{class:"jt-attachment-preview-service__image-toolbar"},[t.h("button",{class:"jt-attachment-preview-service__image-tool",type:"button",title:c.t("common.缩小"),onClick:y},[t.h(R.ElIcon,()=>t.h(se))]),t.h("span",{class:"jt-attachment-preview-service__image-scale"},`${Math.round(r.value*100)}%`),t.h("button",{class:"jt-attachment-preview-service__image-tool",type:"button",title:c.t("common.放大"),onClick:g},[t.h(R.ElIcon,()=>t.h(le))]),t.h("button",{class:"jt-attachment-preview-service__image-tool",type:"button",title:c.t("common.复位"),onClick:D},[t.h(R.ElIcon,()=>t.h(oe))])])])}}),Be=t.defineComponent({name:"JtAttachmentPreviewService",props:{options:{type:Object,required:!0},onDestroy:{type:Function,required:!0}},setup(e){const n=t.computed(()=>N(e.options.url,e.options.name)),a=t.computed(()=>e.options.downloadName||n.value),o=t.computed(()=>Q(e.options)),r=t.computed(()=>Ee(o.value,e.options.url)),s=t.computed(()=>({zIndex:e.options.zIndex??3e3,"--jt-attachment-preview-service-image-fit":e.options.fit??"contain"}));function d(){e.options.onClose?.(),e.onDestroy()}function i(w){w.key==="Escape"&&e.options.closeOnPressEscape!==!1&&d()}function h(w){e.options.onLoad?.(w)}function v(w){e.options.onError?.(w)}return t.onMounted(()=>{document.addEventListener("keydown",i),document.body.classList.add("jt-attachment-preview-service-lock")}),t.onBeforeUnmount(()=>{document.removeEventListener("keydown",i),document.body.classList.remove("jt-attachment-preview-service-lock")}),()=>{const w=e.options.downloadable===!1?[]:[F(e.options,a.value,"jt-attachment-preview-service__top-download")];return t.h("div",{class:"jt-attachment-preview-service",style:s.value},[t.h("div",{class:"jt-attachment-preview-service__modal"},[t.h("div",{class:"jt-attachment-preview-service__header"},[t.h("div",{class:"jt-attachment-preview-service__filename",title:n.value},n.value),t.h("div",{class:"jt-attachment-preview-service__header-actions"},[...w,t.h("button",{class:"jt-attachment-preview-service__close",type:"button","aria-label":c.t("common.关闭"),onClick:d},"×")])]),t.h("div",{class:"jt-attachment-preview-service__body"},[Ce({type:o.value,url:e.options.url,name:n.value,downloadName:a.value,sourceOptions:e.options,sandbox:e.options.sandbox,iconText:r.value,downloadable:e.options.downloadable!==!1,onLoad:h,onError:v})])])])}}}),M=t.defineComponent({name:"JtAttachmentPreviewDetectingService",props:{options:{type:Object,required:!0},onDestroy:{type:Function,required:!0},title:{type:String,default:c.t("common.正在识别文件类型")},desc:{type:String,default:c.t("common.请稍候,识别完成后将自动预览或下载")},spinning:{type:Boolean,default:!0}},setup(e){const n=t.computed(()=>N(e.options.url,e.options.name)),a=t.computed(()=>({zIndex:e.options.zIndex??3e3}));function o(){e.options.onClose?.(),e.onDestroy()}function r(s){s.key==="Escape"&&e.options.closeOnPressEscape!==!1&&o()}return t.onMounted(()=>{document.addEventListener("keydown",r),document.body.classList.add("jt-attachment-preview-service-lock")}),t.onBeforeUnmount(()=>{document.removeEventListener("keydown",r),document.body.classList.remove("jt-attachment-preview-service-lock")}),()=>t.h("div",{class:"jt-attachment-preview-service",style:a.value},[t.h("div",{class:"jt-attachment-preview-service__modal"},[t.h("div",{class:"jt-attachment-preview-service__header"},[t.h("div",{class:"jt-attachment-preview-service__filename",title:n.value},n.value),t.h("div",{class:"jt-attachment-preview-service__header-actions"},[t.h("button",{class:"jt-attachment-preview-service__close",type:"button","aria-label":c.t("common.关闭"),onClick:o},"×")])]),t.h("div",{class:"jt-attachment-preview-service__body"},[t.h("div",{class:"jt-attachment-preview-service__detecting"},[e.spinning?t.h("span",{class:"jt-attachment-preview-service__detecting-spinner"}):null,t.h("span",{class:"jt-attachment-preview-service__detecting-title"},e.title),t.h("span",{class:"jt-attachment-preview-service__detecting-desc"},e.desc)])])])])}});function Ce(e){return e.type==="empty"?t.h("div",{class:"jt-attachment-preview-service__empty"},c.t("common.暂无附件")):e.type==="image"?t.h(xe,{url:e.url,name:e.name,downloadName:e.downloadName,downloadable:e.downloadable,onPreviewLoad:e.onLoad,onPreviewError:e.onError}):e.type==="video"?t.h("video",{class:"jt-attachment-preview-service__media",src:e.url,controls:!0,onLoadeddata:e.onLoad,onError:e.onError}):e.type==="audio"?t.h("audio",{class:"jt-attachment-preview-service__audio",src:e.url,controls:!0,onLoadeddata:e.onLoad,onError:e.onError}):e.type==="pdf"?t.h(ke,{url:e.url,name:e.name,downloadName:e.downloadName,downloadable:e.downloadable,onPreviewLoad:e.onLoad,onPreviewError:e.onError}):e.type==="iframe"?t.h("iframe",{class:"jt-attachment-preview-service__iframe",src:e.url,title:e.name,sandbox:e.sandbox||void 0,onLoad:e.onLoad}):t.h("div",{class:"jt-attachment-preview-service__unsupported"},[t.h("div",{class:"jt-attachment-preview-service__file-card"},[t.h("div",{class:"jt-attachment-preview-service__file-icon"},e.iconText),t.h("div",{class:"jt-attachment-preview-service__unsupported-text"},c.t("common.暂不支持预览此类型的文件"))]),t.h("div",{class:"jt-attachment-preview-service__file-name",title:e.name},e.name),e.downloadable?F(e.sourceOptions,e.downloadName,"jt-attachment-preview-service__primary-download"):null])}function $(e){if(typeof document>"u")return{close:()=>{}};f("open-called",{rawOptions:typeof e=="string"?e:{...e}}),E?.close();const n=ge(e),a=n.downloadName||N(n.url,n.name);let o=!1,r=null,s=null;const d=()=>{o=!0,r&&(t.render(null,r),r.remove(),r=null),s&&(URL.revokeObjectURL(s),s=null),E?.close===d&&(E=null)};function i(){o||(r||(r=document.createElement("div"),document.body.appendChild(r)),t.render(t.h(Be,{options:n,onDestroy:d}),r))}function h(){o||(r||(r=document.createElement("div"),document.body.appendChild(r)),t.render(t.h(M,{options:n,onDestroy:d}),r))}function v(){r&&(t.render(null,r),r.remove(),r=null)}function w(){o||Z(n,a,{fallbackToRawUrl:!0})}const A=Q(n);return f("type-resolved",{resolvedType:A,url:n.url,name:n.name,mode:n.mode,mimeType:n.mimeType,extension:n.extension}),U(A)?i():A==="unknown"?(h(),Ae(n.url).then(async p=>{if(!o){if(U(p)){n.mode=p,i();return}try{const k=await V(n.url),_=S(k.type);if(U(_)){s=URL.createObjectURL(k),n.url=s,n.mode=_,i();return}v(),z(k,a)}catch{v(),w()}}})):w(),E={close:d},E}function ee(e){j=e}function te(e){if(typeof document>"u")return{close:()=>{}};E?.close();let n=!1,a=document.createElement("div");document.body.appendChild(a);const o=()=>{n=!0,a&&(t.render(null,a),a.remove(),a=null),E?.close===o&&(E=null)},r={close:o};return E=r,j?(t.render(t.h(M,{options:{url:"",name:c.t("common.附件预览")},title:c.t("common.正在获取文件信息"),desc:c.t("common.请稍候,获取完成后将自动预览或下载"),spinning:!0,onDestroy:o}),a),j.request(e).then(s=>{if(n)return;const d=j?.mapResponse(s,e);if(!d?.url){t.render(t.h(M,{options:{url:"",name:c.t("common.附件预览")},title:c.t("common.文件信息缺少URL"),desc:c.t("common.请检查mapResponse是否返回了url字段"),spinning:!1,onDestroy:o}),a);return}$({...d,requestParams:e,useRegisteredDownload:!0})}).catch(s=>{if(n)return;const d=s instanceof Error?s.message:c.t("common.接口请求失败");t.render(t.h(M,{options:{url:"",name:c.t("common.附件预览")},title:c.t("common.文件信息获取失败"),desc:d,spinning:!1,onDestroy:o}),a)}),r):(t.render(t.h(M,{options:{url:"",name:c.t("common.附件预览")},title:c.t("common.附件预览未初始化"),desc:c.t("common.请先调用setupJtAttachmentPreview注册请求配置"),spinning:!1,onDestroy:o}),a),r)}const Le=Object.assign($,{openByParams:te,setup:ee});exports.JtAttachmentPreview=Le;exports.JtAttachmentPreviewByParams=te;exports.setupJtAttachmentPreview=ee;
|