/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/yh-hiprint@2.6.13/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import"./libs/jquery";import{ElDialog,ElSelect,ElOption,ElButton,ElMessageBox,ElLoading}from"element-plus";import{createApp,createVNode}from"vue";export{hiprint,defaultElementTypeProvider,print,print2,usePaper,useScale,useDataSource}from"./hooks/useHiprint";export{default as fontSize}from"./font-size";export{default as scale}from"./scale";export{default as zIndex}from"./z-index";export{default as panel}from"./panel";import{getPrintTemplate}from"yh-hiprint/libs/index.js";export function guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}export function cLog(e,t=!1){t?console.error("%cyhHiprint：%c","font-size: 16px;font-weight: bold;color: #00ffff","font-size: 16px;font-weight: bold;color: #ccccc",e):console.log("%cyhHiprint%c "+e,"font-size: 18px;font-weight: bold;color: #61AFEF","font-size: 12px;color: #999")}const hiprintFun=async({code:e,params:t,data:n,isCustom:o,returnHtml:r})=>{if(!window.electronBrowserAPI||!window.electronBrowserAPI.print){let i=document.documentElement.clientHeight,l=1200,a=(document.documentElement.clientWidth-1200)/2,s=t;Array.isArray(t)||(s=[t]);let c="/hiprint/#/preview?code="+encodeURIComponent(e);t&&(c+=`&params=${encodeURIComponent(JSON.stringify(s))}`),n&&(c+=`&data=${encodeURIComponent(JSON.stringify(n))}`),o&&(c+="&isCustom="+(o?"1":"0")),r&&(c+="&returnHtml="+(r?"1":"0"));let d=window.open(c,"hiprintWindow",`height=${i}, width=${l}, top=20, left=${a}, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no`);return new Promise(((e,t)=>{d||t("预览窗口渲染失败！"),window.addEventListener("message",(function t(n){let{type:o,data:r}=n.data;"sendPrintHTML"===o&&r&&e(r),window.removeEventListener("message",t)}))}))}clientPrintHandler(e,t,n)},silentHiprint=async({code:e,params:t={},data:n})=>{if(!e||!n)return ElMessageBox.alert("请正确的传递模板编号和打印数据","提示"),!1;let o=null;try{o=ElLoading.service({text:"正在获取打印模板"});let r=await getPrintTemplate(e,t);if(200===r.status&&r.data&&r.data.json){let e=r.data.json,t=new hiprint.PrintTemplate({template:JSON.parse(e)}).getHtml(n);if(t[0])return t[0].innerHTML;ElMessageBox.alert("打印内容渲染失败","提示")}else ElMessageBox.alert(r.message||"获取打印模板失败","提示")}catch(e){o&&(o.close(),o=null),console.error(e)}finally{o&&(o.close(),o=null)}};window.silentHiprint=silentHiprint;const clientPrintHandler=async(e,t,n)=>{let o=null;try{o=ElLoading.service({text:"正在获取打印模板"});let r=[];try{r=t?JSON.parse(t):[]}catch(e){console.error(e)}let i=await getPrintTemplate(e,r);if(200!==i.status||!i.data||!i.data.json)return ElMessageBox.alert(i.message||"获取打印模板失败","提示"),!1;o.setText("正在连接打印客户端");let l=await electronBrowserAPI.getPrinterList();return l&&0!==l.length?(o.close(),o=null,await showPrinterSelectionDialog(l,i.data.json,i.data.list,i.data.name,n)):(o?.close(),ElMessageBox.alert("未获取到打印机列表","提示"),!1)}catch(e){return o&&(o.close(),o=null),console.error(e),ElMessageBox.alert("客户端打印出错: "+e.message,"提示"),!1}},showPrinterSelectionDialog=(e,t,n,o,r)=>new Promise((i=>{const l=localStorage.getItem("lastSelectedPrinter")||"";let a={};try{a=JSON.parse(t)}catch(e){return console.error("客户端打印解析模板失败：",e),ElMessageBox.alert("客户端打印解析模板失败","提示"),document.body.removeChild(s),void i(!1)}const s=document.createElement("div");document.body.appendChild(s);const c=createApp({components:{ElDialog:ElDialog,ElSelect:ElSelect,ElOption:ElOption,ElButton:ElButton},data:()=>({visible:!0,selectedPrinter:l,printerList:e}),methods:{handlePrint:async function(){if(!this.selectedPrinter)return void ElMessageBox.alert("请选择打印机","提示");localStorage.setItem("lastSelectedPrinter",this.selectedPrinter);let e=ElLoading.service({text:"正在渲染打印内容"});try{let t=new hiprint.PrintTemplate({template:a});e.setText("正在发送打印任务");const i=guid(),l={printer:this.selectedPrinter,title:o,imgToBase64:!0,id:i,templateId:i,pageSize:{width:1e3*(a?.panels[0]?.width||210),height:1e3*(a?.panels[0]?.height||297)}},s=`<style rel="stylesheet" type="text/css">${printCss}</style>`,c=t.getHtml(r||n,l)[0].outerHTML;l.html=`${s}${c}`;const d=t=>{if(t.data&&t.data.type)switch(t.data.type){case"PRINT_SUCCESS":e.close(),this.handleClose(!0),ElMessage.success("打印任务已发送到打印机"),window.removeEventListener("message",d),clearTimeout(p);break;case"PRINT_ERROR":e.close();const n=t.data.data;ElMessageBox.alert("打印失败: "+(n.msg||"未知错误"),"提示"),this.handleClose(!1),window.removeEventListener("message",d),clearTimeout(p)}};window.addEventListener("message",d);const p=setTimeout((()=>{window.removeEventListener("message",d),e.close(),ElMessageBox.alert("打印超时","提示"),this.handleClose(!1)}),6e4);try{electronBrowserAPI.print(l)}catch(t){console.error("客户端打印发送失败：",t),e.close(),window.removeEventListener("message",d),clearTimeout(p),ElMessageBox.alert("客户端打印发送失败: "+t.message,"提示"),this.handleClose(!1)}}catch(t){e&&e.close(),console.error(t),ElMessageBox.alert("打印过程中发生错误: "+t.message,"提示"),this.handleClose(!1)}},handleClose:function(e=!1){this.visible=!1,c.unmount(),document.body.removeChild(s),i(e)}},render(){return createVNode(ElDialog,{modelValue:this.visible,title:"选择打印机",width:"500px",onClose:()=>this.handleClose(!1),onClosed:()=>this.handleClose(!1)},{default:()=>[createVNode(ElSelect,{modelValue:this.selectedPrinter,"onUpdate:modelValue":e=>{this.selectedPrinter=e},placeholder:"请选择打印机",style:"width: 100%; margin-bottom: 15px;"},{default:()=>this.printerList.map((e=>createVNode(ElOption,{key:e.name,label:e.name,value:e.name})))})],footer:()=>[createVNode("span",{class:"dialog-footer"},[createVNode(ElButton,{onClick:()=>this.handleClose(!1)},{default:()=>"取消"}),createVNode(ElButton,{type:"primary",onClick:this.handlePrint},{default:()=>"打印"})])]})}});c.mount(s)}));export default{install(e,{router:t,pinia:n,isAdmin:o,clientPrint:r=!1}){e.provide("$hiprint",hiprintFun),e.provide("$silentHiprint",silentHiprint),t?(t.addRoute("Index",{path:"hiprint/designer",name:"打印设计器",meta:{icon:"md-planet",title:"打印设计器"},component:()=>import("yh-hiprint/HiprintDesigner.vue")}),t.addRoute({path:"/preview",name:"printView",meta:{icon:"md-planet",title:"printView"},component:()=>import("yh-hiprint/hiprintPreview.vue")})):t||cLog("没有传递 router 对象，所以无法将路由添加到应用中",!0)}};
//# sourceMappingURL=/sm/fe3e8dbb551da2f9940de0cb8a8ef110fe5c45c541239c73bc2ee7a76ae0cd18.map