@agile-team/mach-report 2.11.2 → 2.13.0

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.
Files changed (88) hide show
  1. package/README.md +30 -5
  2. package/THIRD_PARTY_NOTICES.md +270 -0
  3. package/dist/{ExcelBindingWizard-LWX6G1A2.js → ExcelBindingWizard-CeAf4QSE.js} +2 -2
  4. package/dist/{ExcelBindingWizard-a4kslPHF.cjs → ExcelBindingWizard-y0mT-AHR.cjs} +1 -1
  5. package/dist/{ReportBatchPanel-B5ClP9tm.js → ReportBatchPanel-CW2HV9I8.js} +1 -1
  6. package/dist/{ReportBatchPanel-Dc-SDkYA.cjs → ReportBatchPanel-Fp1ePFag.cjs} +1 -1
  7. package/dist/ReportPreview-BN6fk7Wz.cjs +6 -0
  8. package/dist/ReportPreview-D2Jkyh1U.js +4243 -0
  9. package/dist/{RuleEditor-C2QsOHOs.cjs → RuleEditor-ChRzNQuF.cjs} +1 -1
  10. package/dist/{RuleEditor-D9wQHrkf.js → RuleEditor-DzAmW5YH.js} +1 -1
  11. package/dist/analytics.d.cts +28 -0
  12. package/dist/analytics.d.ts +28 -0
  13. package/dist/assets-C2U-e-Sz.cjs +4 -0
  14. package/dist/assets-Q0wUwNrV.js +217 -0
  15. package/dist/code-options-BKXXY7NI.js +18 -0
  16. package/dist/code-options-BUTChiZZ.cjs +1 -0
  17. package/dist/codes.cjs +9 -0
  18. package/dist/codes.d.cts +223 -0
  19. package/dist/codes.d.ts +223 -0
  20. package/dist/codes.js +26917 -0
  21. package/dist/config-Bb7RiIO5.cjs +1 -0
  22. package/dist/{config-B612mw0x.js → config-XVwG87IA.js} +4 -0
  23. package/dist/designer.cjs +2 -2
  24. package/dist/designer.d.cts +283 -0
  25. package/dist/designer.d.ts +283 -0
  26. package/dist/designer.js +2852 -2010
  27. package/dist/grid-strokes-Cr7DwUux.cjs +1 -0
  28. package/dist/grid-strokes-DyyG1q_o.js +53 -0
  29. package/dist/index.cjs +7 -7
  30. package/dist/index.d.cts +105 -1
  31. package/dist/index.d.ts +105 -1
  32. package/dist/index.js +488 -439
  33. package/dist/pdf.cjs +76 -59
  34. package/dist/pdf.d.cts +51 -0
  35. package/dist/pdf.d.ts +51 -0
  36. package/dist/pdf.js +32128 -32048
  37. package/dist/{plugin-Cd5G2QQn.js → plugin-D4wizDXB.js} +1 -1
  38. package/dist/{plugin-BDTU4D94.cjs → plugin-DzS6pxTA.cjs} +1 -1
  39. package/dist/record-bindings-By_UKZ2g.cjs +1 -0
  40. package/dist/{list-cell-ClFra1zS.js → record-bindings-D-5jQlTj.js} +67 -44
  41. package/dist/{region-binding-workflow-DhQvu1co.cjs → region-binding-workflow-BzfbxRiR.cjs} +1 -1
  42. package/dist/{region-binding-workflow-CXDmt9Bs.js → region-binding-workflow-CcUq8W2Q.js} +1 -1
  43. package/dist/server/node.d.cts +52 -1
  44. package/dist/server/node.d.ts +52 -1
  45. package/dist/server-node.cjs +1 -1
  46. package/dist/server-node.js +239 -210
  47. package/dist/server.cjs +1 -1
  48. package/dist/server.d.cts +95 -3
  49. package/dist/server.d.ts +95 -3
  50. package/dist/server.js +457 -434
  51. package/dist/style.css +1 -1
  52. package/dist/{template-registry-WNXdkiET.js → template-registry-BjE1VS6g.js} +221 -157
  53. package/dist/template-registry-D3SjENi6.cjs +1 -0
  54. package/dist/template-review-DGwWOoCv.cjs +2 -0
  55. package/dist/{template-review-BdcXSYbx.js → template-review-PgEe_Wr9.js} +792 -666
  56. package/dist/validate-BJ5HIWY8.cjs +1 -0
  57. package/dist/validate-DbgEM1Hh.js +163 -0
  58. package/dist/vue/async.d.cts +125 -2
  59. package/dist/vue/async.d.ts +125 -2
  60. package/dist/vue/index.d.cts +121 -8
  61. package/dist/vue/index.d.ts +121 -8
  62. package/dist/vue-async.cjs +1 -1
  63. package/dist/vue-async.js +3 -3
  64. package/dist/vue.cjs +1 -1
  65. package/dist/vue.js +5 -5
  66. package/dist/{workbook-session-BKOTwcoq.js → workbook-session-BPb3TMnT.js} +1 -1
  67. package/dist/{workbook-session-CLYLhZWu.cjs → workbook-session-DNa2RHNG.cjs} +1 -1
  68. package/dist/worker.cjs +1 -1
  69. package/dist/worker.d.cts +52 -1
  70. package/dist/worker.d.ts +52 -1
  71. package/dist/worker.js +2 -2
  72. package/dist/xlsx.cjs +1 -1
  73. package/dist/xlsx.d.cts +40 -0
  74. package/dist/xlsx.d.ts +40 -0
  75. package/dist/xlsx.js +3 -3
  76. package/package.json +16 -3
  77. package/dist/ReportPreview-DWXROHBP.cjs +0 -6
  78. package/dist/ReportPreview-DiNXhQI0.js +0 -4138
  79. package/dist/assets-Bu6UohJx.cjs +0 -1
  80. package/dist/assets-DegqDNqY.js +0 -160
  81. package/dist/config-BRoLo2oj.cjs +0 -1
  82. package/dist/list-cell-BuYn4tGF.cjs +0 -1
  83. package/dist/template-registry-ukBGlm8N.cjs +0 -1
  84. package/dist/template-review-BXp2oyqg.cjs +0 -1
  85. package/dist/textwrap-CWHyzkBH.cjs +0 -4
  86. package/dist/textwrap-DE1kgcJB.js +0 -110
  87. package/dist/validate-7s0yn6ii.js +0 -148
  88. package/dist/validate-DsRiNw8h.cjs +0 -1
@@ -0,0 +1,6 @@
1
+ "use strict";var Xn=Object.create;var Qt=Object.defineProperty;var Qn=Object.getOwnPropertyDescriptor;var _n=Object.getOwnPropertyNames;var ea=Object.getPrototypeOf,ta=Object.prototype.hasOwnProperty;var na=(t,n,a,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of _n(n))!ta.call(t,o)&&o!==a&&Qt(t,o,{get:()=>n[o],enumerable:!(r=Qn(n,o))||r.enumerable});return t};var vt=(t,n,a)=>(a=t!=null?Xn(ea(t)):{},na(n||!t||!t.__esModule?Qt(a,"default",{value:t,enumerable:!0}):a,t));const e=require("vue"),q=require("@agile-team/mach-report"),rn=require("./page-window-index-DEjnM6IB.cjs"),se=require("./progress-BnLiS5eH.cjs"),ln=require("./render-plan-7xpGrCEl.cjs"),H=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),pe=require("./config-Bb7RiIO5.cjs"),Bt=require("./grid-geometry-CZ_cYB6O.cjs"),ht=require("./injection-keys-Db_DyLkm.cjs");function It(t){return t==null?[]:Array.isArray(t)?t.map(String).filter(n=>n!==""):String(t).split(",").map(n=>n.trim()).filter(n=>n!=="")}function aa(t){return It(t).join(",")}class Ge extends Error{constructor(n){super(n),this.name="PlanLoadError"}}function oa(t={}){const{baseUrl:n="",headers:a,credentials:r,timeoutMs:o=3e4}=t,l=n.replace(/\/+$/,"");return async({url:s,method:i,params:c,signal:g})=>{let h=`${l}${s}`;if(c&&Object.keys(c).length>0){const u=h.indexOf("#"),S=u>=0?h.slice(u):"",p=u>=0?h.slice(0,u):h,E=p.indexOf("?"),D=E>=0?p.slice(0,E):p,P=new URLSearchParams(E>=0?p.slice(E+1):"");for(const[M,F]of Object.entries(c))P.set(M,F);h=`${D}?${P}${S}`}const f=(u,S)=>{const p=new Ge(u);return Object.defineProperty(p,"cause",{value:S,configurable:!0,writable:!0}),p};if(g?.aborted)throw f(`请求已取消: ${s}`,g.reason);const m=new AbortController;let k;const y=()=>{m.signal.aborted||(k="external",m.abort(g?.reason))};g?.addEventListener("abort",y,{once:!0});const v=setTimeout(()=>{m.signal.aborted||(k="timeout",m.abort())},o);try{const u=await fetch(h,{method:i.toUpperCase(),headers:{Accept:"application/json",...a},credentials:r,signal:m.signal});if(!u.ok)throw new Ge(`HTTP ${u.status} ${s}`);return await u.json()}catch(u){throw k==="timeout"?f(`请求超时(${o}ms): ${s}`,u):k==="external"?f(`请求已取消: ${s}`,u):u instanceof Ge?u:f(`请求失败(${s}): ${u instanceof Error?u.message:String(u)}`,u)}finally{clearTimeout(v),g?.removeEventListener("abort",y)}}}function sn(t,n,a={}){const r=a.pxPerMm??3.7795275590551185,o=e.computed(()=>Math.max(0,e.unref(a.gapPx)??18)),l=e.ref(0),s=e.ref(800),i=e.computed(()=>{const p=t.value?.pages??[];return rn.createPageWindowIndex(p.map(E=>E.pageHeightMm*r),o.value)}),c=e.computed(()=>{let p=0;for(const E of t.value?.pages??[])p=Math.max(p,E.pageWidthMm*r);return{w:p,h:i.value.totalHeightPx}}),g=e.computed(()=>i.value.window(s.value/n.value,l.value/n.value,e.unref(a.overscan)??1)),h=e.computed(()=>{const p=t.value;if(!p)return[];const{start:E,end:D}=g.value;return p.pages.slice(E,D+1).map((P,M)=>({page:P,index:E+M}))});let f=0,m=!1,k;function y(p){p&&(l.value=p.scrollTop,s.value=p.clientHeight||800)}function v(p,E){p.scrollTop=i.value.offsetAt(E)*n.value,k={top:p.scrollTop,index:E,zoom:n.value,geometry:i.value},y(p)}function u(p,E){return D=>{f||m||(f=requestAnimationFrame(()=>{if(f=0,m||(y(D),E.value<=0))return;if(k&&k.top===D.scrollTop&&k.zoom===n.value&&k.geometry===i.value){p.value=Math.min(E.value,k.index+1);return}k=void 0;const P=Math.max(0,D.scrollTop+32)/n.value;p.value=Math.min(E.value,i.value.pageAt(P)+1)}))}}function S(){m=!0,f&&cancelAnimationFrame(f),f=0}return e.onScopeDispose(S),{contentSize:c,windowRange:g,visiblePages:h,makeScrollHandler:u,refreshViewport:y,scrollToPage:v,pageOffsetPx:p=>i.value.offsetAt(p),destroy:S}}const _t=96/25.4;function ra(t){const n=new WeakMap,a=e.ref(0);let r,o=0,l=0,s=!1;function i(){o++,l&&cancelAnimationFrame(l),l=0}function c(v,u,S,p){return!s&&u===o&&t.plan.value===S&&t.root.value===p&&p.contains(v.holder)&&Number(v.holder.dataset.page)===v.index+1}function g(v){const{holder:u,page:S}=v;n.delete(u),u.style.width=`${S.pageWidthMm*_t}px`,u.style.height=`${S.pageHeightMm*_t}px`,u.setAttribute("aria-busy","true");const p=u.ownerDocument.createElement("div");p.className="mrp-page-loading";const E=u.ownerDocument.createElement("span");E.textContent=t.loading(),E.style.transform=`scale(${1/Math.max(1e-4,t.zoom())})`,p.append(E),u.replaceChildren(p)}function h(v){const u=n.get(v.holder);return!u||u.page!==v.page||u.element.parentElement!==v.holder?!1:(u.query!==t.query()&&(t.clear(u.element),t.highlight(u.element),u.query=t.query()),!0)}function f(v,u,S,p){if(c(v,u,S,p))try{const E=q.renderPage(v.page,96,{},v.holder.ownerDocument);if(t.highlight(E),!c(v,u,S,p))return;v.holder.replaceChildren(E),v.holder.removeAttribute("aria-busy"),n.set(v.holder,{page:v.page,element:E,query:t.query()}),t.mounted(v.holder),t.ready()}catch(E){if(!c(v,u,S,p))return;v.holder.removeAttribute("aria-busy");const D=v.holder.ownerDocument.createElement("div");D.className="mrp-page-render-error",D.setAttribute("role","alert"),D.textContent=E instanceof Error?E.message:String(E),v.holder.replaceChildren(D),t.error(E)}}function m(v,u,S,p){v.length&&(l=requestAnimationFrame(()=>{if(u!==o||s)return;l=0;const E=v.shift();E&&f(E,u,S,p),u===o&&t.plan.value===S&&t.root.value===p&&m(v,u,S,p)}))}function k(){i();const v=t.plan.value,u=t.root.value;if(s||!v||!u){r=void 0;return}const S=o,p=r?.plan===v?r.index:t.priority();r=void 0;const E=[];u.querySelectorAll(".mrp-page-holder").forEach(M=>{const F=Number(M.dataset.page)-1,G=v.pages[F];if(!G)return;const W={holder:M,page:G,index:F};h(W)||(g(W),E.push(W))});const D=E.findIndex(M=>M.index===p),P=D<0?void 0:E.splice(D,1)[0];P&&f(P,S,v,u),t.ready(),m(E,S,v,u)}function y(v){s||!t.plan.value||(r={plan:t.plan.value,index:v},a.value++)}return e.watch([t.plan,t.root,t.pages,t.priority,t.focusToken,t.query,t.zoom,t.loading,a],k,{flush:"post",immediate:!0}),e.onScopeDispose(()=>{s=!0,r=void 0,i()}),{prioritize:y,cancel:i}}function cn(t){const n=e.ref(1),a=e.ref("fit");let r=0;function o(){r&&cancelAnimationFrame(r),r=0}function l(){o(),r=requestAnimationFrame(()=>{if(r=0,a.value!=="fit")return;const i=t();!i?.viewport||i.viewport.clientWidth<=48||!Number.isFinite(i.pageWidthPx)||(n.value=Math.min(1,(i.viewport.clientWidth-48)/Math.max(1,i.pageWidthPx)))})}function s(i){if(i==="fit")a.value="fit",l();else{if(!Number.isFinite(i))return;o(),a.value="raw",n.value=Math.min(3,Math.max(.3,i/100))}}return e.getCurrentScope()&&e.onScopeDispose(o),{zoom:n,zoomMode:a,applyFitZoom:l,setZoom:s}}let la=0;function en(t,n){const a=new AbortController;let r={taskId:`mr-output-${Date.now().toString(36)}-${++la}`,kind:t,stage:t==="print"?"print":"encode",status:"running",cancellable:!0};function o(){try{n?.(Object.freeze({...r}))}catch{}}return{controller:a,get task(){return r},start:o,update(l,s,i){a.signal.aborted||r.status!=="running"||(r={...r,stage:l,completed:s,total:i},o())},finish(l="completed"){r.status==="running"&&(r={...r,status:l,cancellable:!1},o(),l==="cancelled"&&a.abort())}}}const De=8;function qe(){return new Promise(t=>setTimeout(t,0))}function Je(t){return`p${t.pageWidthMm}x${t.pageHeightMm}`.replace(/[.+]/g,"_")}function Ye(t){const n=new Map;return t.pages.forEach(o=>{n.has(Je(o))||n.set(Je(o),o)}),`<!doctype html><html><head><meta charset="utf-8"><style>${`.mr-page{margin:0 auto;page-break-after:always;}
2
+ .mr-page tr{break-inside:avoid;page-break-inside:avoid;}
3
+ .mr-comp{break-inside:avoid;page-break-inside:avoid;}
4
+ ${[...n.values()].map(o=>`@page ${Je(o)}{size:${o.pageWidthMm}mm ${o.pageHeightMm}mm;margin:0;}`).join(`
5
+ `)}
6
+ body{margin:0;background:#fff;}`}</style></head><body>`}function Xe(t){const n=q.renderPage(t,96,{},document);return n.style.page=Je(t),n.outerHTML}function un(t){return{head:Ye(t),pageChunks:t.pages.map(Xe)}}async function sa(t,n={}){const a={schemaVersion:"mach-report-batch-print",pages:t.flatMap(s=>s.pages)};if(a.pages.length===0)return;const r=Ye(a),o=document.createElement("iframe");o.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(o);let l=!1;try{const s=o.contentDocument;s.open(),s.write(r);for(let i=0;i<a.pages.length;i++)se.assertOutputActive(n.signal),s.write(Xe(a.pages[i])),i%De===De-1&&(se.notifyOutputProgress(n,i+1,a.pages.length),await qe());s.write("</body></html>"),s.close(),await qe(),se.notifyOutputProgress(n,a.pages.length,a.pages.length),l=!0,o.contentWindow?.focus(),o.contentWindow?.print()}catch(s){if(n.signal?.aborted)throw s;n.onError?.(s instanceof Error?`批量打印失败: ${s.message}`:"批量打印失败")}finally{l?setTimeout(()=>o.remove(),6e4):o.remove()}}function dn(t){return`<!doctype html><html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head><meta charset="utf-8"><!--[if gte mso 9]><xml><w:WordDocument><w:View>Print</w:View><w:Zoom>100</w:Zoom></w:WordDocument></xml><![endif]-->${t.replace(/^<!doctype html><html><head>/,"")}`}function ia(t){const{head:n,pageChunks:a}=un(t);return{html:`${dn(n)}${a.join("")}</body></html>`,filename:"mach-report.doc"}}function mn(t,n){let a=null,r=!1,o=!1,l=0,s=0;const i=new Set,c=new Map;let g=null;const h=new Map;let f=null,m=null,k=null,y=null,v=null;function u(x,B){return!o&&t.value===x&&l===B}function S(){if(o)return;const x=[...c.values()].reverse().find(B=>u(B.plan,B.epoch))?.format??null;x!==f&&(f=x,n.onBusy?.(x))}function p(x,B,z){const O={};return c.set(O,{plan:x,epoch:B,format:z,run:en("export",n.onTask)}),c.get(O).run.start(),S(),O}function E(x){c.get(x)?.run.finish(),c.delete(x),S()}function D(){for(const[x,B]of h)u(B.plan,B.epoch)||(x.close(),h.delete(x))}function P(x=!0){if(x){s++;for(const B of i)B.close();i.clear()}for(const B of c.values())B.run.finish("cancelled");g?.finish("cancelled"),l++,F(),S(),D()}const M=e.watch(t,()=>P(!1),{flush:"sync"});function F(){a?.remove(),a=null}function G(){P(),o=!0,l++,M(),F(),D(),c.clear(),n.onPrinting?.(!1)}function W(x,B){const z=URL.createObjectURL(x);setTimeout(()=>URL.revokeObjectURL(z),1e4);const O=document.createElement("a");O.href=z,O.download=B,O.click()}function Z(x,B,z,O,J){z.update("download"),u(x,B)&&!z.controller.signal.aborted&&W(O,J)}async function ee(x,B,z,O){const J=x.contentDocument;J.open(),J.write(Ye(B));for(let U=0;U<B.pages.length;U++)if(O.controller.signal.aborted||(J.write(Xe(B.pages[U])),O.update("print",U+1,B.pages.length),U%De===De-1&&await qe(),x!==a))return!1;return J.write("</body></html>"),J.close(),await qe(),!(!u(B,z)||x!==a)}function ie(){const x=s,B=O=>O&&!o&&x===s,z=O=>(!o&&x===s&&n.onError(O instanceof Error?O.message:"报表修改尚未完成","export"),!1);try{const O=n.beforeOutput?.()??!0;return typeof O=="boolean"?B(O):O.then(B,z)}catch(O){return z(O)}}function te(x){const B=ie();return typeof B=="boolean"?B?x():Promise.resolve():B.then(z=>z?x():void 0)}async function w(){if(r)return;const x=t.value;if(o||!x||x.pages.length===0)return;const B=l;r=!0;const z=en("print",n.onTask);g=z,z.start(),n.onPrinting?.(!0),F(),a=document.createElement("iframe"),a.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(a);const O=a;try{if(!u(x,B)||z.controller.signal.aborted){F();return}if(!await ee(O,x,B,z))return;O.contentWindow?.focus(),O.contentWindow?.print()}catch{z.finish("failed"),O===a&&F(),u(x,B)&&n.onError("调用打印失败,请改用导出 PDF","print")}finally{z.finish(),g===z&&(g=null),r=!1,o||n.onPrinting?.(!1)}}function $(x,B,z){return{signal:z.controller.signal,onDiagnostic:O=>{u(x,B)&&!z.controller.signal.aborted&&n.onDiagnostic?.(O)},onProgress:(O,J)=>z.update("encode",O,J)}}function b(x,B,z){if(m?.plan===x&&m.epoch===B)return m.promise;const O=Promise.resolve().then(()=>{if(!u(x,B))throw new Error("报表已切换或卸载");return se.waitForOutput(n.getPdfExporter()(x,J=>{u(x,B)&&n.onWarning?.(J)},z?$(x,B,z):void 0),z?.controller.signal)}).finally(()=>{m?.promise===O&&(m=null)});return m={plan:x,epoch:B,promise:O},O}async function N(){const x=t.value;if(o||!x||x.pages.length===0)return;const B=l;if(k?.plan===x&&k.epoch===B)return k.promise;const z=p(x,B,"PDF"),O=(async()=>{try{const J=c.get(z).run,U=await b(x,B,J);if(!u(x,B))return;Z(x,B,J,new Blob([U],{type:"application/pdf"}),"mach-report.pdf")}catch(J){c.get(z)?.run.finish("failed"),u(x,B)&&n.onError(J instanceof Error?`PDF 导出失败: ${J.message}`:"PDF 导出失败","pdf")}finally{E(z),k?.token===z&&(k=null)}})();return k={plan:x,epoch:B,promise:O,token:z},O}async function V(){const x=t.value;if(o||!x||x.pages.length===0)return;const B=l;if(y?.plan===x&&y.epoch===B)return y.promise;const z={...n.getXlsxOptions?.()},O=p(x,B,"Excel"),J=(async()=>{try{const{renderPlanToXlsx:U}=await import("@agile-team/mach-report/xlsx");if(!u(x,B))return;const ce=c.get(O).run,{buffer:ue,warnings:he}=await se.waitForOutput(U(x,{...z,...$(x,B,ce)}),ce.controller.signal);if(!u(x,B)||(he.length>0&&n.onWarning?.(`Excel 导出有 ${he.length} 条提示:${he.slice(0,2).join(";")}`),!u(x,B)))return;Z(x,B,ce,new Blob([ue],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),"mach-report.xlsx")}catch(U){c.get(O)?.run.finish("failed"),u(x,B)&&n.onError(U instanceof Error?`Excel 导出失败: ${U.message}`:"Excel 导出失败","export")}finally{E(O),y?.token===O&&(y=null)}})();return y={plan:x,epoch:B,promise:J,token:O},J}async function I(){const x=t.value;if(o||!x||x.pages.length===0)return;const B=l;if(v?.plan===x&&v.epoch===B)return v.promise;const z=p(x,B,"图片"),O=(async()=>{try{const J=c.get(z).run,{blobs:U}=await se.waitForOutput(q.renderPlanToImages(x,{...$(x,B,J),dpr:Math.min(2,typeof devicePixelRatio=="number"?devicePixelRatio:1)}),J.controller.signal);if(!u(x,B))return;U.forEach((ce,ue)=>{Z(x,B,J,ce,U.length>1?`mach-report-page-${ue+1}.png`:"mach-report.png")})}catch(J){c.get(z)?.run.finish("failed"),u(x,B)&&n.onError(J instanceof Error?`图片导出失败: ${J.message}`:"图片导出失败","export")}finally{E(z),v?.token===z&&(v=null)}})();return v={plan:x,epoch:B,promise:O,token:z},O}async function A(x){const B=t.value;if(o||!B||!B.pages.length)return;const z=l,O=p(B,z,x==="word"?"Word":"HTML"),J=c.get(O).run;try{const U=[];for(const[he,Ke]of B.pages.entries()){if(!u(B,z))return;U.push(Xe(Ke)),J.update("encode",he+1,B.pages.length),he%De===De-1&&await qe()}if(!u(B,z))return;const ce=Ye(B),ue=`${x==="word"?dn(ce):ce}${U.join("")}</body></html>`;Z(B,z,J,new Blob([ue],{type:x==="word"?"application/msword;charset=utf-8":"text/html;charset=utf-8"}),x==="word"?"mach-report.doc":"mach-report.html")}catch(U){J.finish("failed"),u(B,z)&&n.onError(U instanceof Error?`导出失败: ${U.message}`:"导出失败","export")}finally{E(O)}}async function K(){await A("word")}function j(){return te(w)}function R(){return te(I)}function ne(){return te(K)}async function X(x){const B=t.value;if(!(o||!B||B.pages.length===0)){if(x==="pdf"){await N();return}if(x==="xlsx"||x==="excel"){await V();return}if(x==="png"||x==="image"){await I();return}if(x==="word"||x==="doc"){await K();return}if(x!=="html"){n.onError(`不支持的导出格式:${x}`,"export");return}await A("html")}}function oe(x){return te(()=>X(x))}function Ce(x){const B=t.value;if(o||!B||!B.pages.length){x.close();return}const z=l;h.set(x,{plan:B,epoch:z});const O=p(B,z,"PDF");b(B,z,c.get(O).run).then(J=>{if(!u(B,z)||x.closed){h.delete(x)&&x.close();return}const U=URL.createObjectURL(new Blob([J],{type:"application/pdf"}));setTimeout(()=>URL.revokeObjectURL(U),6e4);const ce=x.document;ce.title="PDF 预览",ce.documentElement.style.height="100%",ce.body.style.cssText="margin:0;height:100%;";const ue=ce.createElement("iframe");ue.title="PDF 预览",ue.style.cssText="display:block;width:100%;height:100%;border:0;",ue.src=U,ce.body.replaceChildren(ue),h.delete(x)}).catch(J=>{c.get(O)?.run.finish("failed"),x.close(),h.delete(x),u(B,z)&&n.onError(J instanceof Error?`PDF 预览失败: ${J.message}`:"PDF 预览失败","pdf")}).finally(()=>E(O))}function ve(){if(o||!t.value?.pages.length)return;const x=globalThis.window.open("","_blank");if(!x){n.onError("浏览器拦截了弹窗,请允许弹窗后重试","pdf");return}const B=ie();if(typeof B=="boolean"){B?Ce(x):x.close();return}i.add(x),B.then(z=>{const O=i.delete(x);if(!z||!O||x.closed){x.close();return}Ce(x)})}return{print:j,exportAs:oe,exportImages:R,exportWord:ne,openPdfWindow:ve,invalidatePending:P,cancel:P,releasePrintFrame:F,dispose:G}}const fn="mrp-hit";function ca(t){t.querySelectorAll(`mark.${fn}`).forEach(a=>{const r=a.parentNode;if(r){for(;a.firstChild;)r.insertBefore(a.firstChild,a);a.remove(),r.normalize()}})}function ua(t,n){const a=n.trim();if(!a)return 0;const r=a.toLowerCase(),o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(i){const c=i.parentElement;return!c||c.closest("mark")||/^(SCRIPT|STYLE)$/.test(c.tagName)?NodeFilter.FILTER_REJECT:(i.nodeValue??"").toLowerCase().includes(r)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),l=[];for(let i=o.nextNode();i;i=o.nextNode())l.push(i);let s=0;for(const i of l){const c=i.nodeValue??"",g=c.toLowerCase(),h=i.parentElement;if(!h)continue;const f=document.createDocumentFragment();let m=0,k=g.indexOf(r);for(;k>=0;){k>m&&f.appendChild(document.createTextNode(c.slice(m,k)));const y=document.createElement("mark");y.className=fn,y.textContent=c.slice(k,k+a.length),f.appendChild(y),s++,m=k+a.length,k=g.indexOf(r,m)}m<c.length&&f.appendChild(document.createTextNode(c.slice(m))),h.replaceChild(f,i)}return s}const da=new Set(["line","rect","ellipse","chart"]);function*ma(t){for(const n of t.cells??[])for(const a of n??[])yield a?.text??"",yield*a?.children??[]}function*fa(t){if(ln.isRichText(t))for(const n of t.richParagraphs)for(const a of n.segments??[])yield(a.kind==="field"?a.field:a.text)??"";else t.lines?.length?yield*t.lines:yield t.text??""}function*pa(t){const n=[t.values()];for(;n.length>0;){const a=n[n.length-1].next();if(a.done){n.pop();continue}const r=a.value;if(typeof r=="string"){yield r;continue}yield"",!ln.isImageBackedComponent(r)&&(r.kind==="text"?n.push(fa(r)):r.grid?n.push(ma(r.grid)):da.has(r.kind)||(yield r.fallbackText??""))}}function*ga(t){for(let n=0;n<t.pages.length;n++){for(const a of pa(t.pages[n].components))yield{text:a,pageIndex:n};yield{text:"",pageIndex:n}}}function va(t,n){const a=t.toLowerCase();let r=0;for(let o=a.indexOf(n);o>=0;o=a.indexOf(n,o+n.length))r++;return r}function ha(t){const{plan:n,gotoPage:a,highlight:r,clearHighlights:o}=t,l=e.ref(!1),s=e.ref(""),i=e.ref(0),c=e.ref(0),g=e.ref(!1);let h=[];const f=e.computed(()=>{if(c.value===0)return null;const D=i.value;let P=0,M=h.length-1;for(;P<M;){const G=P+M>>>1;h[G].cumulative<=D?P=G+1:M=G}const F=h[P];return F?{pageIndex:F.pageIndex,occurrence:D-(h[P-1]?.cumulative??0)}:null});let m=null,k=null,y=0;function v(){y++,m&&clearTimeout(m),k&&clearTimeout(k),m=k=null,g.value=!1}function u(D){s.value=D,i.value=0,c.value=0,h=[],g.value=!1;const P=D.trim().toLowerCase(),M=n.value;if(!P||!M)return;g.value=!0;const F=y,G=ga(M),W=[];let Z=0;function ee(){if(k=null,F!==y||M!==n.value)return;const ie=performance.now();let te=0;for(;te<5e3&&performance.now()-ie<4;){const w=G.next();if(w.done){h=W,c.value=Z,g.value=!1,h[0]&&a(h[0].pageIndex+1);return}const $=va(w.value.text,P);if($>0){Z+=$;const b=W[W.length-1];b?.pageIndex===w.value.pageIndex?b.cumulative=Z:W.push({pageIndex:w.value.pageIndex,cumulative:Z})}te++}k=setTimeout(ee,0)}ee()}function S(D){if(v(),s.value=D,i.value=c.value=0,h=[],!D.trim()){u("");return}g.value=!0,m=setTimeout(()=>{m=null,u(D)},Math.max(0,e.unref(t.debounceMs)??200))}function p(D){const P=c.value;if(P===0||g.value)return;i.value=(i.value+D+P)%P;const M=f.value;M&&a(M.pageIndex+1)}function E(){v(),s.value="",i.value=c.value=0,h=[]}return e.watch(n,E,{flush:"sync"}),e.onScopeDispose(E),{visible:l,query:s,matchIndex:i,matchCount:c,activeMatch:f,searching:g,toggle:()=>{l.value=!l.value},onInput:S,onNav:p,apply:D=>{s.value.trim()&&r(D,s.value.trim())},clear:D=>{o(D)},reset:E}}function ya(t,n){const a=e.computed(()=>{if(t.value)return!0;if(typeof location>"u")return!1;try{return new URLSearchParams(location.search).get("mrp-debug")==="1"}catch{return!1}}),r=e.computed(()=>!a.value||!n.plan.value?0:Math.round(JSON.stringify(n.plan.value).length/1024)),o=e.computed(()=>!a.value||!n.plan.value?null:{pages:n.pageCount.value,window:`${n.windowRange.value.start}-${n.windowRange.value.end}`,zoom:`${Math.round(n.zoom.value*100)}%`,loadMs:`${n.loadMs.value}ms`,planKB:r.value});return{enabled:a,debugStats:o}}function ba(t,n){const{thumbsRoot:a,visible:r,renderThumbCanvas:o}=n,l=e.ref(0),s=e.ref(800),i=e.computed(()=>(t.value?.pages??[]).map(p=>Math.round(p.pageHeightMm/p.pageWidthMm*116))),c=e.computed(()=>rn.createPageWindowIndex(i.value.map(p=>p+20),8)),g=e.computed(()=>c.value.window(s.value,l.value,1)),h=e.computed(()=>{if(!r.value)return[];const{start:p,end:E}=g.value;return i.value.slice(p,E+1).map((D,P)=>({index:p+P,height:D}))});let f=0,m=0,k=!1;function y(){const p=a.value;p&&(l.value=p.scrollTop,s.value=p.clientHeight||800)}function v(){k||m||(m=requestAnimationFrame(()=>{m=0,y()}))}function u(){if(h.value,f&&cancelAnimationFrame(f),f=0,k||!r.value||!t.value||!a.value)return;y();const p=h.value,E=t.value,D=a.value;let P=0;function M(){if(f=0,!(k||!r.value||t.value!==E||a.value!==D)){for(let F=0;P<p.length&&F<2;F++,P++){const G=p[P].index,W=D.querySelector(`[data-thumb="${G+1}"]`);if(!W||W.childElementCount>0)continue;const Z=o(G);Z&&(Z.style.width="100%",Z.style.height="100%",Z.style.display="block",W.appendChild(Z))}P<p.length&&(f=requestAnimationFrame(M))}}f=requestAnimationFrame(M)}function S(){k=!0,f&&cancelAnimationFrame(f),m&&cancelAnimationFrame(m),f=m=0}return e.onScopeDispose(S),{schedule:u,destroy:S,onScroll:v,windowRange:g,visibleThumbs:h}}function wa(){const t=e.shallowRef(0);return{loadMs:t,start(){return typeof performance<"u"?performance.now():0},end(n){t.value=n?Math.round(performance.now()-n):0}}}function xa(t){const n=e.ref(null),a=e.ref(null);function r(){n.value?.focus(),n.value?.select()}e.watch(t.visible,s=>{s&&e.nextTick(r)});function o(){t.close(),e.nextTick(()=>a.value?.focus())}function l(s){s.isComposing||s.keyCode===229||s.key!=="Enter"&&s.key!=="Escape"||(s.preventDefault(),s.stopPropagation(),s.key==="Escape"?o():t.navigate(s.shiftKey?-1:1))}return{input:n,toggle:a,focus:r,close:o,onKeydown:l}}function pn(){const t=e.ref(!1),n=e.ref(null),a=e.ref(null),r=e.ref(null);function o(i=!1){t.value=!1,i&&e.nextTick(()=>a.value?.focus())}function l(i){i.target instanceof Node&&!n.value?.contains(i.target)&&o()}function s(i){i.key!=="Escape"||!t.value||i.isComposing||(i.preventDefault(),i.stopPropagation(),o(!0))}return e.watch(t,i=>{i&&e.nextTick(()=>(r.value?.querySelector("input")??r.value?.querySelector("button:not(:disabled)"))?.focus())}),e.onMounted(()=>{document.addEventListener("pointerdown",l),document.addEventListener("focusin",l)}),e.onBeforeUnmount(()=>{document.removeEventListener("pointerdown",l),document.removeEventListener("focusin",l)}),{opened:t,root:n,trigger:a,panel:r,close:o,onKeydown:s}}const ka=["disabled","aria-expanded"],Ea=["aria-label"],Ca=["aria-label","disabled","onClick"],Sa={"aria-hidden":"true"},Na=e.defineComponent({__name:"ReportExportMenu",props:{messages:{},formats:{},busy:{type:Boolean}},emits:["export"],setup(t,{emit:n}){const a=t,r=n,{opened:o,root:l,trigger:s,panel:i,close:c,onKeydown:g}=pn(),h=e.computed(()=>[{format:"xlsx",label:a.messages.exportExcel,extension:".xlsx"},{format:"pdf",label:a.messages.exportPdf,extension:".pdf"},{format:"png",label:a.messages.exportImage,extension:".png"},{format:"word",label:a.messages.exportWord,extension:".doc"},{format:"html",label:a.messages.exportHtml,extension:".html"}].filter(y=>!a.formats||a.formats.includes(y.format)));e.watch(()=>a.busy,y=>{y&&c()});function f(y){a.busy||(r("export",y),c(!0))}function m(y){y.key!=="ArrowDown"&&y.key!=="ArrowUp"||(y.preventDefault(),o.value=!0,y.key==="ArrowUp"&&e.nextTick(()=>i.value?.querySelector("button:last-child")?.focus()))}function k(y){if(y.key==="Tab"){c();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(y.key))return;y.preventDefault(),y.stopPropagation();const u=[...i.value?.querySelectorAll("button:not(:disabled)")??[]],S=u.indexOf(document.activeElement),p=y.key==="Home"?0:y.key==="End"?u.length-1:(S+(y.key==="ArrowDown"?1:-1)+u.length)%u.length;u[p]?.focus()}return(y,v)=>h.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"root",ref:l,class:"mrp-export-menu",onKeydown:v[1]||(v[1]=(...u)=>e.unref(g)&&e.unref(g)(...u))},[e.createElementVNode("button",{ref_key:"trigger",ref:s,type:"button",class:"mrp-nav mrp-export-trigger",disabled:t.busy,"aria-haspopup":"menu","aria-expanded":e.unref(o),onClick:v[0]||(v[0]=u=>o.value=!e.unref(o)),onKeydown:m},[e.createVNode(H._sfc_main,{name:"download"}),e.createTextVNode(e.toDisplayString(t.messages.exportMenu??"导出"),1),e.createVNode(H._sfc_main,{name:"chevron-down",size:12})],40,ka),e.unref(o)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panel",ref:i,class:"mrp-export-panel",role:"menu","aria-label":t.messages.exportMenu??"导出",onKeydown:k},[e.createElementVNode("p",null,e.toDisplayString(t.messages.exportMenuDescription??"选择文件格式"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,u=>(e.openBlock(),e.createElementBlock("button",{key:u.format,type:"button",role:"menuitem",tabindex:"-1","aria-label":u.label,disabled:t.busy,onClick:S=>f(u.format)},[e.createVNode(H._sfc_main,{name:"file"}),e.createElementVNode("span",null,e.toDisplayString(u.label),1),e.createElementVNode("small",Sa,e.toDisplayString(u.extension),1)],8,Ca))),128))],40,Ea)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)}}),Ba=H._export_sfc(Na,[["__scopeId","data-v-83a57a3c"]]),Ia=["aria-label"],$a={class:"mrp-pageinfo","aria-live":"polite"},Va={class:"mrp-page-buttons"},Pa=["aria-label","title","disabled"],Ra=["aria-label","title","disabled"],Da=["aria-label","title","aria-invalid","disabled"],Ta=["aria-label","disabled"],Ma={key:1,class:"mrp-page-error",role:"alert"},za=e.defineComponent({__name:"ReportPagination",props:{pageCount:{},currentPage:{},messages:{},busy:{type:Boolean}},emits:["goto"],setup(t,{emit:n}){const a=t,r=n,o=e.ref(String(a.currentPage)),l=e.ref(!1),s=e.computed(()=>a.messages.pageInfo.replace("{cur}",String(a.currentPage)).replace("{total}",String(a.pageCount)));e.watch(()=>[a.currentPage,a.pageCount],()=>{o.value=String(a.currentPage),l.value=!1});function i(){if(a.busy)return;const c=o.value.trim(),g=Number(c);l.value=!/^\d+$/.test(c)||!Number.isSafeInteger(g)||g<1||g>a.pageCount,!l.value&&g!==a.currentPage&&r("goto",g)}return(c,g)=>t.pageCount>0?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mrp-pagination",role:"navigation","aria-label":t.messages.pagination??"报表分页"},[e.createElementVNode("span",$a,e.toDisplayString(s.value),1),e.createElementVNode("div",Va,[e.createElementVNode("button",{class:"mrp-nav",type:"button","aria-label":t.messages.prevPage,title:t.messages.prevPage,disabled:t.busy||t.currentPage<=1,onClick:g[0]||(g[0]=h=>r("goto",t.currentPage-1))},[e.createVNode(H._sfc_main,{name:"chevron-left"})],8,Pa),e.createElementVNode("button",{class:"mrp-nav",type:"button","aria-label":t.messages.nextPage,title:t.messages.nextPage,disabled:t.busy||t.currentPage>=t.pageCount,onClick:g[1]||(g[1]=h=>r("goto",t.currentPage+1))},[e.createVNode(H._sfc_main,{name:"chevron-right"})],8,Ra)]),t.pageCount>1?(e.openBlock(),e.createElementBlock("form",{key:0,class:"mrp-page-jump",onSubmit:e.withModifiers(i,["prevent"])},[e.createElementVNode("label",null,[e.createElementVNode("span",null,e.toDisplayString(t.messages.pageJump??"跳至页"),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":g[2]||(g[2]=h=>o.value=h),type:"text",inputmode:"numeric",autocomplete:"off","aria-label":t.messages.pageJump??"跳至页",title:t.messages.pageJumpHint??"Enter 跳转","aria-invalid":l.value,disabled:t.busy,onInput:g[3]||(g[3]=h=>l.value=!1),onKeydown:g[4]||(g[4]=e.withKeys(h=>{o.value=String(t.currentPage),l.value=!1},["esc"]))},null,40,Da),[[e.vModelText,o.value]])]),e.createElementVNode("button",{class:"mrp-nav",type:"submit","aria-label":t.messages.pageJump??"跳至页",disabled:t.busy},[e.createVNode(H._sfc_main,{name:"arrow-right",size:14})],8,Ta)],32)):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("span",Ma,e.toDisplayString(t.messages.pageJumpInvalid??"请输入有效页码"),1)):e.createCommentVNode("",!0)],8,Ia)):e.createCommentVNode("",!0)}}),$t=H._export_sfc(za,[["__scopeId","data-v-0db4fbd3"]]),Oa=["aria-label"],Fa={class:"mrp-title"},Aa=["aria-label"],La=["aria-label","aria-pressed"],qa=["aria-pressed"],Ka=["aria-pressed"],ja=["aria-label"],Wa=["aria-pressed"],Ha=["aria-pressed","onClick"],Ua=["aria-label"],Ga=["disabled"],Ja=["disabled"],Za=["disabled"],Ya=["aria-label","aria-expanded"],Xa=["aria-label"],Qa=["placeholder","aria-label","value"],_a=["aria-label"],eo={key:1,class:"mrp-search-count",role:"status","aria-live":"polite"},to=["disabled","aria-label"],no=["disabled","aria-label"],ao=["aria-label"],oo={class:"mrp-search-hint",role:"status"},ro=e.defineComponent({__name:"ReportToolbar",props:{pageCount:{},currentPage:{},zoomMode:{},zoom:{},showExport:{type:Boolean},showPrint:{type:Boolean},showPdfWindow:{type:Boolean},messages:{},search:{},thumbsVisible:{type:Boolean},showImport:{type:Boolean},showSearch:{type:Boolean,default:!0},showThumbnails:{type:Boolean,default:!0},showZoom:{type:Boolean,default:!0},exportFormats:{default:void 0},showSettings:{type:Boolean},settingsOpen:{type:Boolean},busy:{type:Boolean},showPagination:{type:Boolean}},emits:["goto","zoom","export","print","pdf-window","search-input","search-nav","search-toggle","thumbs-toggle","import-excel","settings-toggle"],setup(t,{expose:n,emit:a}){const r=t,o=a,l=xa({visible:()=>r.search.visible,navigate:h=>{!r.search.searching&&r.search.matchCount>0&&o("search-nav",h)},close:()=>{r.search.visible&&o("search-toggle")}}),{input:s,toggle:i}=l;n({focusSearch:l.focus});function c(){const h=r.search.matchCount>0?r.search.matchIndex+1:0;return r.messages.matchInfo.replace("{cur}",String(h)).replace("{total}",String(r.search.matchCount))}function g(){o("search-input",""),l.focus()}return(h,f)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-toolbar",role:"toolbar","aria-label":t.messages.title},[e.createElementVNode("span",Fa,[e.createVNode(H._sfc_main,{name:"file"}),e.createTextVNode(e.toDisplayString(t.messages.title),1)]),t.showPagination?(e.openBlock(),e.createBlock($t,{key:0,"page-count":t.pageCount,"current-page":t.currentPage,messages:t.messages,busy:t.busy,onGoto:f[0]||(f[0]=m=>o("goto",m))},null,8,["page-count","current-page","messages","busy"])):e.createCommentVNode("",!0),f[15]||(f[15]=e.createElementVNode("span",{class:"mrp-spacer"},null,-1)),t.showSearch!==!1?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-read-tools",role:"group","aria-label":t.messages.search??"内容搜索"},[e.createElementVNode("button",{ref_key:"searchToggleRef",ref:i,class:e.normalizeClass(["mrp-nav mrp-search-toggle mrp-icon-button",{"mrp-active":t.search.visible}]),type:"button",title:"Ctrl+F","aria-label":t.messages.search??t.messages.searchPlaceholder,"aria-pressed":t.search.visible,onClick:f[1]||(f[1]=m=>o("search-toggle"))},[e.createVNode(H._sfc_main,{name:"search"})],10,La),t.showThumbnails!==!1?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.thumbsVisible}]),type:"button","aria-pressed":t.thumbsVisible,onClick:f[2]||(f[2]=m=>o("thumbs-toggle"))},[e.createVNode(H._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,qa)):e.createCommentVNode("",!0)],8,Aa)):t.showThumbnails!==!1?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.thumbsVisible}]),type:"button","aria-pressed":t.thumbsVisible,onClick:f[3]||(f[3]=m=>o("thumbs-toggle"))},[e.createVNode(H._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,Ka)):e.createCommentVNode("",!0),e.renderSlot(h.$slots,"navigation",{},void 0,!0),t.showZoom!==!1?(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-zoom-tools",role:"group","aria-label":t.messages.zoom??"缩放工具"},[e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="fit"}]),"aria-pressed":t.zoomMode==="fit",type:"button",onClick:f[4]||(f[4]=m=>o("zoom","fit"))},[e.createVNode(H._sfc_main,{name:"fit"}),e.createTextVNode(e.toDisplayString(t.messages.fitWidth),1)],10,Wa),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList([100,150],m=>e.createElementVNode("button",{key:m,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="raw"&&Math.round(t.zoom*100)===m}]),"aria-pressed":t.zoomMode==="raw"&&Math.round(t.zoom*100)===m,type:"button",onClick:k=>o("zoom",m)},e.toDisplayString(m)+"%",11,Ha)),64))],8,ja)):e.createCommentVNode("",!0),t.showImport||t.showExport||t.showPrint||t.showPdfWindow?(e.openBlock(),e.createElementBlock("div",{key:4,class:"mrp-output-tools",role:"group","aria-label":t.messages.settingsExport??"导出与打印"},[t.showImport?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-nav mrp-import-excel",type:"button",disabled:t.busy,onClick:f[5]||(f[5]=m=>o("import-excel"))},[e.createVNode(H._sfc_main,{name:"upload"}),e.createTextVNode(e.toDisplayString(t.messages.importExcel??"导入 Excel 模板"),1)],8,Ga)):e.createCommentVNode("",!0),t.showExport?(e.openBlock(),e.createBlock(Ba,{key:1,messages:t.messages,formats:t.exportFormats,busy:t.busy,onExport:f[6]||(f[6]=m=>o("export",m))},null,8,["messages","formats","busy"])):e.createCommentVNode("",!0),t.showPrint?(e.openBlock(),e.createElementBlock("button",{key:2,class:"mrp-nav",type:"button",disabled:t.busy,onClick:f[7]||(f[7]=m=>o("print"))},[e.createVNode(H._sfc_main,{name:"print"}),e.createTextVNode(e.toDisplayString(t.messages.print),1)],8,Ja)):e.createCommentVNode("",!0),t.showPdfWindow?(e.openBlock(),e.createElementBlock("button",{key:3,class:"mrp-nav",type:"button",disabled:t.busy,onClick:f[8]||(f[8]=m=>o("pdf-window"))},[e.createVNode(H._sfc_main,{name:"external"}),e.createTextVNode(e.toDisplayString(t.messages.pdfWindow),1)],8,Za)):e.createCommentVNode("",!0)],8,Ua)):e.createCommentVNode("",!0),t.showSettings?(e.openBlock(),e.createElementBlock("button",{key:5,class:e.normalizeClass(["mrp-nav mrp-settings-toggle",{"mrp-active":t.settingsOpen}]),type:"button","aria-label":t.messages.settings??"设置","aria-haspopup":"dialog","aria-expanded":!!t.settingsOpen,onClick:f[9]||(f[9]=m=>o("settings-toggle"))},[e.createVNode(H._sfc_main,{name:"settings"}),e.createTextVNode(e.toDisplayString(t.messages.settings??"设置"),1)],10,Ya)):e.createCommentVNode("",!0),t.showSearch!==!1&&t.search.visible?(e.openBlock(),e.createElementBlock("div",{key:6,class:"mrp-search-panel",role:"search","aria-label":t.messages.search??"内容搜索"},[e.createElementVNode("div",{class:e.normalizeClass(["mrp-search",{"mrp-search-no-results":t.search.query&&!t.search.searching&&!t.search.matchCount}])},[e.createVNode(H._sfc_main,{name:"search"}),e.createElementVNode("input",{ref_key:"searchInputRef",ref:s,class:"mrp-search-input",type:"text",autocomplete:"off",spellcheck:"false",placeholder:t.messages.searchPlaceholder,"aria-label":t.messages.search??t.messages.searchPlaceholder,value:t.search.query,onInput:f[10]||(f[10]=m=>o("search-input",m.target.value)),onKeydown:f[11]||(f[11]=(...m)=>e.unref(l).onKeydown&&e.unref(l).onKeydown(...m))},null,40,Qa),t.search.query?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-nav mrp-search-clear mrp-icon-button",type:"button","aria-label":t.messages.clearSearch??"清除搜索",onClick:g},[e.createVNode(H._sfc_main,{name:"close",size:13})],8,_a)):e.createCommentVNode("",!0),t.search.query?(e.openBlock(),e.createElementBlock("span",eo,e.toDisplayString(t.search.searching?t.messages.searching??"搜索中…":c()),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"mrp-nav mrp-icon-button",type:"button",disabled:t.search.matchCount===0||t.search.searching,"aria-label":t.messages.prevSearchMatch??"上一个匹配",onClick:f[12]||(f[12]=m=>o("search-nav",-1))},[e.createVNode(H._sfc_main,{name:"chevron-up",size:14})],8,to),e.createElementVNode("button",{class:"mrp-nav mrp-icon-button",type:"button",disabled:t.search.matchCount===0||t.search.searching,"aria-label":t.messages.nextSearchMatch??"下一个匹配",onClick:f[13]||(f[13]=m=>o("search-nav",1))},[e.createVNode(H._sfc_main,{name:"chevron-down",size:14})],8,no),e.createElementVNode("button",{class:"mrp-nav mrp-search-close mrp-icon-button",type:"button","aria-label":t.messages.closeSearch??"关闭搜索",onClick:f[14]||(f[14]=(...m)=>e.unref(l).close&&e.unref(l).close(...m))},[e.createVNode(H._sfc_main,{name:"close",size:14})],8,ao)],2),e.createElementVNode("span",oo,e.toDisplayString(t.search.query&&!t.search.searching&&!t.search.matchCount?t.messages.searchNoMatches??"没有匹配内容":t.messages.searchHint??"Enter 下一个 · Shift+Enter 上一个"),1)],8,Xa)):e.createCommentVNode("",!0)],8,Oa))}}),gn=H._export_sfc(ro,[["__scopeId","data-v-5f4b04d8"]]);function lo(t){const n=t.meta?.record;if(!(!n||typeof n!="object"||typeof n.dataset!="string")&&[n.rowIndex,n.copyIndex,n.templatePageIndex].every(a=>Number.isSafeInteger(a)&&Number(a)>=0)&&!(n.rowKey!==void 0&&typeof n.rowKey!="string"&&typeof n.rowKey!="number"))return n}function so(t){const n=[],a=[];let r;for(const[o,l]of(t?.pages??[]).entries()){const s=lo(l);if(!s){a.push(-1),r=void 0;continue}(!r||s.dataset!==r.dataset||s.rowIndex!==r.rowIndex||s.rowKey!==r.rowKey||s.copyIndex===0&&s.templatePageIndex===0)&&n.push({page:o+1,...s.rowKey===void 0?{}:{rowKey:s.rowKey}}),a.push(n.length-1),r=s}return{entries:n,pageRecords:a}}const io=["aria-label"],co={key:0,class:"mrp-record-arrows"},uo=["aria-label","title","disabled"],mo=["aria-label","title","disabled"],fo={class:"mrp-record-info","aria-live":"polite"},po=["title"],go=["title"],vo=e.defineComponent({__name:"ReportRecordNavigation",props:{plan:{},currentPage:{},messages:{},busy:{type:Boolean}},emits:["goto"],setup(t,{emit:n}){const a=t,r=n,o=e.computed(()=>so(a.plan)),l=e.computed(()=>o.value.pageRecords[a.currentPage-1]??-1),s=e.computed(()=>l.value>=0?o.value.entries[l.value]:void 0),i=e.computed(()=>(a.messages.recordInfo??"记录 {cur} / {total}").replace("{cur}",String(l.value+1)).replace("{total}",String(o.value.entries.length))),c=e.computed(()=>{const h=a.plan?.pages[a.currentPage-1]?.meta?.title;return typeof h=="string"?h:""});function g(h){const f=o.value.entries[l.value+h];!a.busy&&l.value>=0&&f&&r("goto",f.page)}return(h,f)=>s.value?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mrp-record-navigation","aria-label":t.messages.recordNavigation??"标签记录"},[o.value.entries.length>1?(e.openBlock(),e.createElementBlock("div",co,[e.createElementVNode("button",{type:"button","aria-label":t.messages.prevRecord??"上一条记录",title:t.messages.prevRecord??"上一条记录",disabled:t.busy||l.value<=0,onClick:f[0]||(f[0]=m=>g(-1))},[e.createVNode(H._sfc_main,{name:"chevron-left",size:13})],8,uo),e.createElementVNode("button",{type:"button","aria-label":t.messages.nextRecord??"下一条记录",title:t.messages.nextRecord??"下一条记录",disabled:t.busy||l.value>=o.value.entries.length-1,onClick:f[1]||(f[1]=m=>g(1))},[e.createVNode(H._sfc_main,{name:"chevron-right",size:13})],8,mo)])):e.createCommentVNode("",!0),e.createElementVNode("span",fo,e.toDisplayString(i.value),1),s.value.rowKey!==void 0?(e.openBlock(),e.createElementBlock("code",{key:1,title:String(s.value.rowKey)},e.toDisplayString(s.value.rowKey),9,po)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:2,class:"mrp-record-face",title:c.value},e.toDisplayString(c.value),9,go)):e.createCommentVNode("",!0)],8,io)):e.createCommentVNode("",!0)}}),ho=H._export_sfc(vo,[["__scopeId","data-v-aa94fa14"]]),yo=["aria-label","aria-busy"],bo={class:"mrp-calculation-heading"},wo={class:"mrp-calculation-controls"},xo=["aria-label","value","disabled"],ko=["value"],Eo={class:"mrp-calculation-precision"},Co=["aria-label","value","disabled"],So={key:0,class:"mrp-calculation-expression"},No=["aria-label","value","disabled"],Bo={class:"mrp-calculation-actions"},Io={key:1,class:"mrp-calculation-diagnostic",role:"alert"},$o={key:2,class:"mrp-calculation-result",role:"status","aria-live":"polite"},Vo={key:0},Po={key:3,class:"mrp-calculation-empty"},Ro={class:"mrp-calculation-local"},Do=e.defineComponent({__name:"ReportCalculationPanel",props:{state:{},messages:{}},setup(t){const n=t,a=`mrp-calculation-expression-hint-${e.getCurrentInstance()?.uid??0}`,r=e.computed(()=>[["sum",n.messages.calculationSum],["average",n.messages.calculationAverage],["min",n.messages.calculationMin],["max",n.messages.calculationMax],["count",n.messages.calculationCount],["median",n.messages.calculationMedian],["expression",n.messages.calculationCustom]]),o=e.computed(()=>{const l=n.state.error.value;if(!l)return"";const s=n.messages;return{selection:s.calculationErrorSelection,limit:s.calculationErrorLimit,expression:s.calculationErrorExpression,division:s.calculationErrorDivision,overflow:s.calculationErrorOverflow,precision:s.calculationErrorPrecision}[l]});return(l,s)=>(e.openBlock(),e.createElementBlock("section",{class:"mrp-calculation","aria-label":t.messages.calculationTitle,"aria-busy":t.state.busy.value},[e.createElementVNode("header",bo,[s[5]||(s[5]=e.createElementVNode("span",{class:"mrp-calculation-symbol","aria-hidden":"true"},"∑",-1)),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(t.messages.calculationTitle),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.calculationHint),1)])]),e.createElementVNode("div",wo,[e.createElementVNode("label",null,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationFormula),1),e.createElementVNode("select",{"aria-label":t.messages.calculationFormula,value:t.state.operation.value,onChange:s[0]||(s[0]=i=>t.state.setOperation(i.target.value)),disabled:t.state.busy.value},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,([i,c])=>(e.openBlock(),e.createElementBlock("option",{key:i,value:i},e.toDisplayString(c),9,ko))),128))],40,xo)]),e.createElementVNode("label",Eo,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationPrecision),1),e.createElementVNode("input",{"aria-label":t.messages.calculationPrecision,value:t.state.precision.value,onChange:s[1]||(s[1]=i=>t.state.setPrecision(Number(i.target.value))),type:"number",min:"0",max:"12",step:"1",disabled:t.state.busy.value},null,40,Co)])]),t.state.operation.value==="expression"?(e.openBlock(),e.createElementBlock("label",So,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationExpression),1),e.createElementVNode("input",{"aria-label":t.messages.calculationExpression,"aria-describedby":a,value:t.state.expression.value,onInput:s[2]||(s[2]=i=>t.state.setExpression(i.target.value)),type:"text",maxlength:"256",spellcheck:"false",disabled:t.state.busy.value,placeholder:"SUM / COUNT"},null,40,No),e.createElementVNode("small",{id:a},e.toDisplayString(t.messages.calculationExpressionHint),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Bo,[t.state.busy.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:s[3]||(s[3]=i=>t.state.cancel())},e.toDisplayString(t.messages.calculationCancel),1)):(e.openBlock(),e.createElementBlock("button",{key:1,class:"mrp-calculation-run",type:"button",onClick:s[4]||(s[4]=i=>t.state.run())},e.toDisplayString(t.messages.calculationRun),1))]),o.value?(e.openBlock(),e.createElementBlock("p",Io,e.toDisplayString(o.value),1)):t.state.result.value?(e.openBlock(),e.createElementBlock("div",$o,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationResult),1),e.createElementVNode("output",null,e.toDisplayString(t.state.result.value.formatted),1),e.createElementVNode("small",null,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationIncluded)+" "+e.toDisplayString(t.state.result.value.numericCells),1),e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationExcluded)+" "+e.toDisplayString(t.state.result.value.excludedCells),1)]),t.state.result.value.numericCells===0?(e.openBlock(),e.createElementBlock("p",Vo,e.toDisplayString(t.messages.calculationEmpty),1)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",Po,e.toDisplayString(t.messages.calculationNoSelection),1)),e.createElementVNode("p",Ro,e.toDisplayString(t.messages.calculationLocal),1)],8,yo))}}),To=H._export_sfc(Do,[["__scopeId","data-v-ee359251"]]);function Mo(t){const n=e.ref("sum"),a=e.ref("SUM / COUNT"),r=e.ref(2),o=e.ref(!1),l=e.shallowRef(null),s=e.ref(null);let i=null,c=0;function g(){c++,i?.abort(),i=null,o.value=!1}function h(){g(),l.value=null,s.value=null}async function f(){if(h(),!t.enabled())return;const v=t.plan.value,u=t.selection.value;if(!v||!u){s.value="selection";return}const S=++c,p=new AbortController;i=p,o.value=!0;try{const E=await q.calculateReportSelection(v,u,{operation:n.value,expression:a.value,precision:r.value,signal:p.signal});S===c&&t.plan.value===v&&t.selection.value===u&&t.enabled()&&(l.value=E)}catch(E){S===c&&!p.signal.aborted&&(s.value=E instanceof q.ReportCalculationError?E.code:"expression")}finally{S===c&&(o.value=!1,i=null)}}e.watch([t.plan,t.selection,()=>t.enabled(),n,a,r],h,{flush:"sync"}),e.onScopeDispose(h);function m(v){n.value=v}function k(v){a.value=v}function y(v){r.value=v}return{operation:n,expression:a,precision:r,busy:o,result:l,error:s,run:f,cancel:g,clear:h,setOperation:m,setExpression:k,setPrecision:y}}const zo=["aria-label"],Oo={class:"mrp-settings-header"},Fo=["aria-label"],Ao=["aria-label"],Lo=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],qo={class:"mrp-settings-content"},Ko=["id","aria-labelledby","hidden"],jo={key:0},Wo={class:"mrp-settings-option"},Ho=["checked","disabled"],Uo={class:"mrp-settings-option"},Go=["value","disabled"],Jo=["id","aria-labelledby","hidden"],Zo={key:0},Yo=["checked","disabled","onChange"],Xo={key:0,class:"mrp-settings-note"},Qo={key:1,class:"mrp-settings-note"},_o=["id","aria-labelledby","hidden"],er={class:"mrp-settings-intro"},tr={class:"mrp-settings-option mrp-settings-feature"},nr=["id"],ar=["aria-label","aria-describedby","checked","disabled"],or=["disabled"],rr=e.defineComponent({__name:"ReportSettings",props:{available:{},enabled:{},messages:{},persistedEditing:{type:Boolean},busy:{type:Boolean},interaction:{},section:{}},emits:["change","reset","close","interaction","section"],setup(t,{emit:n}){const a=t,r=n,o=e.ref(null),l=e.computed(()=>a.section??"general"),s="mrp-settings-"+e.getCurrentInstance()?.uid,i=e.computed(()=>[{key:"general",label:a.messages.settingsGeneral??"常规"},{key:"tools",label:a.messages.settingsTools??"工具"},{key:"advanced",label:a.messages.settingsAdvanced??"高级"}]);function c(v,u){const p={ArrowRight:(u+1)%3,ArrowLeft:(u+2)%3,Home:0,End:2}[v.key];p!==void 0&&(v.preventDefault(),r("section",i.value[p].key),o.value?.querySelector("#"+s+"-tab-"+i.value[p].key)?.focus())}const g=e.ref(null);let h=null;const f=e.computed(()=>[{label:a.messages.settingsDisplay,tools:[["search",a.messages.search],["thumbnails",a.messages.thumbnails],["zoom",a.messages.zoom]]},{label:a.messages.settingsExport,tools:[["html",a.messages.exportHtml],["pdf",a.messages.exportPdf],["xlsx",a.messages.exportExcel],["png",a.messages.exportImage],["word",a.messages.exportWord],["print",a.messages.print],["pdfWindow",a.messages.pdfWindow]]},{label:a.messages.settingsData,tools:[["editing",a.messages.editCell],["import",a.messages.importExcel]]}].map(v=>({...v,tools:v.tools.map(([u,S])=>({key:u,label:S}))})));function m(v,u){const S=v.target,p=S.checked;S.checked=a.enabled[u],r("change",u,p)}function k(v){return!o.value||v.defaultPrevented?!1:v.target instanceof Node&&o.value.contains(v.target)?!0:v.target instanceof Element&&v.target.closest('[role="dialog"],dialog[open]')?!1:!Array.from(document.querySelectorAll('[aria-modal="true"],dialog[open]')).some(u=>u!==o.value&&!o.value.contains(u))}function y(v){if(!k(v))return;if(v.key==="Escape"){v.preventDefault(),v.stopPropagation(),r("close");return}if(v.key!=="Tab")return;const u=Array.from(o.value?.querySelectorAll("a[href],button:not(:disabled),input:not(:disabled),textarea:not(:disabled),select:not(:disabled),[tabindex='0']")??[]).filter(D=>!D.closest("[hidden]")&&D.tabIndex!==-1),S=u?.[0],p=u?.[u.length-1];(!o.value?.contains(document.activeElement)||v.shiftKey&&document.activeElement===S||!v.shiftKey&&document.activeElement===p)&&(v.preventDefault(),v.stopPropagation(),(v.shiftKey?p:S)?.focus())}return e.onMounted(()=>{const v=o.value?.closest(".mach-report-preview")?.querySelector(".mrp-settings-toggle"),u=document.activeElement;h=u instanceof HTMLElement&&u!==document.body&&!o.value?.contains(u)?u:v??null,g.value?.focus(),document.addEventListener("keydown",y)}),e.onUnmounted(()=>{document.removeEventListener("keydown",y),h?.isConnected&&h.focus()}),(v,u)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-settings-backdrop",onClick:u[5]||(u[5]=e.withModifiers(S=>v.$emit("close"),["self"]))},[e.createElementVNode("section",{ref_key:"panel",ref:o,class:"mrp-settings-panel",role:"dialog","aria-modal":"true","aria-label":t.messages.settings},[e.createElementVNode("header",Oo,[e.createElementVNode("div",null,[u[6]||(u[6]=e.createElementVNode("span",{class:"mrp-settings-eyebrow"},"MACH REPORT",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.messages.settings),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.settingsLocal),1)]),e.createElementVNode("button",{ref_key:"closeButton",ref:g,class:"mrp-settings-close",type:"button","aria-label":t.messages.settingsClose,onClick:u[0]||(u[0]=S=>v.$emit("close"))},[...u[7]||(u[7]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"m5 5 10 10M15 5 5 15",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round"})],-1)])],8,Fo)]),e.createElementVNode("div",{class:"mrp-settings-tabs",role:"tablist","aria-label":t.messages.settings},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(S,p)=>(e.openBlock(),e.createElementBlock("button",{id:s+"-tab-"+S.key,key:S.key,type:"button",role:"tab","aria-selected":l.value===S.key,"aria-controls":s+"-panel-"+S.key,tabindex:l.value===S.key?0:-1,onClick:E=>v.$emit("section",S.key),onKeydown:E=>c(E,p)},e.toDisplayString(S.label),41,Lo))),128))],8,Ao),e.createElementVNode("div",qo,[e.createElementVNode("section",{id:s+"-panel-general",role:"tabpanel","aria-labelledby":s+"-tab-general",hidden:l.value!=="general"},[e.renderSlot(v.$slots,"default",{},void 0,!0),t.interaction?(e.openBlock(),e.createElementBlock("fieldset",jo,[e.createElementVNode("legend",null,e.toDisplayString(t.messages.settingsPanes),1),e.createElementVNode("label",Wo,[e.createElementVNode("span",null,e.toDisplayString(t.messages.freezeHeaders),1),e.createElementVNode("input",{type:"checkbox",checked:t.interaction.freezeHeaders,disabled:t.busy,onChange:u[1]||(u[1]=S=>v.$emit("interaction",{freezeHeaders:S.target.checked}))},null,40,Ho)]),e.createElementVNode("label",Uo,[e.createElementVNode("span",null,e.toDisplayString(t.messages.frozenColumns),1),e.createElementVNode("input",{class:"mrp-frozen-count",type:"number",min:"0",max:"20",value:t.interaction.frozenColumns??0,disabled:t.busy,onChange:u[2]||(u[2]=S=>v.$emit("interaction",{frozenColumns:Math.max(0,Math.min(20,Number(S.target.value)||0))}))},null,40,Go)])])):e.createCommentVNode("",!0)],8,Ko),e.createElementVNode("section",{id:s+"-panel-tools",role:"tabpanel","aria-labelledby":s+"-tab-tools",hidden:l.value!=="tools"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,S=>(e.openBlock(),e.createElementBlock("fieldset",{key:S.label},[e.createElementVNode("legend",null,e.toDisplayString(S.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.tools,p=>(e.openBlock(),e.createElementBlock("label",{key:p.key,class:e.normalizeClass(["mrp-settings-option",{"mrp-settings-unavailable":!t.available[p.key]}])},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(p.label),1),t.available[p.key]?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("small",Zo,e.toDisplayString(t.messages.settingsUnavailable),1))]),e.createElementVNode("input",{type:"checkbox",checked:t.enabled[p.key],disabled:t.busy||!t.available[p.key],onChange:E=>m(E,p.key)},null,40,Yo)],2))),128))]))),128)),t.available.editing?(e.openBlock(),e.createElementBlock("p",Xo,e.toDisplayString(t.persistedEditing?t.messages.editingSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.available.import?(e.openBlock(),e.createElementBlock("p",Qo,e.toDisplayString(t.messages.importLocal),1)):e.createCommentVNode("",!0)],8,Jo),e.createElementVNode("section",{id:s+"-panel-advanced",role:"tabpanel","aria-labelledby":s+"-tab-advanced",hidden:l.value!=="advanced"},[e.createElementVNode("p",er,e.toDisplayString(t.messages.settingsAdvancedDescription),1),e.createElementVNode("label",tr,[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(t.messages.settingsCalculations),1),e.createElementVNode("small",{id:s+"-calculation-description"},e.toDisplayString(t.messages.settingsCalculationsDescription),9,nr)]),e.createElementVNode("input",{type:"checkbox","aria-label":t.messages.settingsCalculations,"aria-describedby":s+"-calculation-description",checked:t.interaction?.calculations===!0,disabled:t.busy,onChange:u[3]||(u[3]=S=>v.$emit("interaction",{calculations:S.target.checked}))},null,40,ar)]),t.interaction?.calculations?e.renderSlot(v.$slots,"advanced",{},void 0,!0,0):e.createCommentVNode("",!0)],8,_o)]),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:t.busy,onClick:u[4]||(u[4]=S=>v.$emit("reset"))},e.toDisplayString(t.messages.settingsReset),9,or),e.createElementVNode("span",null,e.toDisplayString(t.messages.settingsLocal),1)])],8,zo)]))}}),lr=H._export_sfc(rr,[["__scopeId","data-v-36723612"]]),sr={class:"mrp-empty",role:"status"},ir={key:0},cr=e.defineComponent({__name:"ReportEmpty",props:{title:{},description:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("div",sr,[a[0]||(a[0]=e.createStaticVNode('<svg class="mrp-empty-art" viewBox="0 0 160 112" fill="none" aria-hidden="true" data-v-3e16b87e><ellipse cx="80" cy="100" rx="54" ry="7" fill="currentColor" opacity=".05" data-v-3e16b87e></ellipse><rect x="34" y="15" width="92" height="78" rx="9" fill="currentColor" opacity=".10" data-v-3e16b87e></rect><rect x="42" y="9" width="76" height="78" rx="7" fill="var(--mrp-toolbar-bg, #fff)" stroke="currentColor" stroke-opacity=".2" stroke-width="1.5" data-v-3e16b87e></rect><path d="M55 27H105M55 42H105M55 57H85M55 72H76M71 27V72M89 27V57" stroke="currentColor" stroke-opacity=".4" stroke-width="1.5" stroke-linecap="round" data-v-3e16b87e></path><circle cx="112" cy="76" r="16" fill="var(--mrp-toolbar-bg, #fff)" stroke="currentColor" stroke-opacity=".35" stroke-width="2" data-v-3e16b87e></circle><path d="M124 88L137 101M106 76H118" stroke="currentColor" stroke-opacity=".45" stroke-width="3" stroke-linecap="round" data-v-3e16b87e></path><circle cx="27" cy="38" r="3" fill="currentColor" opacity=".12" data-v-3e16b87e></circle><circle cx="132" cy="24" r="2" fill="currentColor" opacity=".2" data-v-3e16b87e></circle></svg>',1)),e.createElementVNode("strong",null,e.toDisplayString(t.title),1),t.description?(e.openBlock(),e.createElementBlock("p",ir,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)]))}}),tn=H._export_sfc(cr,[["__scopeId","data-v-3e16b87e"]]),ur=["aria-label"],dr=e.defineComponent({__name:"ReportDiscardDialog",props:{messages:{}},emits:["answer"],setup(t,{emit:n}){const a=n,r=e.ref(null),o=e.ref(null);let l=null;function s(i){i.key==="Escape"&&(i.preventDefault(),a("answer",!1)),i.key==="Tab"&&(i.preventDefault(),document.activeElement===r.value?o.value?.focus():r.value?.focus())}return e.onMounted(()=>{l=document.activeElement instanceof HTMLElement?document.activeElement:null,r.value?.focus()}),e.onUnmounted(()=>{l?.isConnected&&l.focus()}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-discard-backdrop",onKeydown:s,onClick:c[2]||(c[2]=e.withModifiers(g=>a("answer",!1),["self"]))},[e.createElementVNode("section",{class:"mrp-discard-dialog",role:"alertdialog","aria-modal":"true","aria-label":t.messages.discardTitle},[e.createElementVNode("strong",null,e.toDisplayString(t.messages.discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.discardDescription),1),e.createElementVNode("footer",null,[e.createElementVNode("button",{ref_key:"keep",ref:r,type:"button",onClick:c[0]||(c[0]=g=>a("answer",!1))},e.toDisplayString(t.messages.discardKeep),513),e.createElementVNode("button",{ref_key:"discard",ref:o,type:"button",onClick:c[1]||(c[1]=g=>a("answer",!0))},e.toDisplayString(t.messages.discardProceed),513)])],8,ur)],32))}}),mr=H._export_sfc(dr,[["__scopeId","data-v-f7590294"]]),fr={key:0,class:"mrp-task-status",role:"status","aria-live":"polite"},pr={key:0},gr=["value","max","aria-label"],vr=e.defineComponent({__name:"ReportTaskStatus",props:{task:{},messages:{}},emits:["cancel"],setup(t){const n=t,a=e.computed(()=>({query:n.messages.taskQuery,validate:n.messages.taskValidate,layout:n.messages.taskLayout,assets:n.messages.taskAssets,import:n.messages.importing,encode:n.messages.taskEncode,download:n.messages.taskDownload,print:n.messages.taskPrint})),r=e.computed(()=>n.task?.total===void 0?"":`${n.task.completed??0} / ${n.task.total}`);return(o,l)=>t.task&&(t.task.status==="running"||t.task.status==="cancelled")?(e.openBlock(),e.createElementBlock("div",fr,[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(t.task.status==="cancelled"?t.messages.taskCancelled:a.value[t.task.stage])+" ",1),t.task.status==="running"?(e.openBlock(),e.createElementBlock("small",pr,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0)]),t.task.status==="running"&&t.task.total!==void 0?(e.openBlock(),e.createElementBlock("progress",{key:0,value:t.task.completed??0,max:t.task.total,"aria-label":a.value[t.task.stage]},null,8,gr)):e.createCommentVNode("",!0),t.task.status==="running"&&t.task.cancellable?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:l[0]||(l[0]=s=>o.$emit("cancel"))},e.toDisplayString(t.messages.taskCancel),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),hr=H._export_sfc(vr,[["__scopeId","data-v-657ac599"]]),yr={key:0,class:"mrp-diagnostics"},br=["aria-label","placeholder"],wr={key:0},xr=["onClick"],kr={key:0},Er=e.defineComponent({__name:"ReportDiagnostics",props:{entries:{},messages:{}},emits:["locate"],setup(t){const n=t,a=e.ref(""),r=e.computed(()=>({"unsupported-style":n.messages.diagnosticUnsupportedStyle,"missing-image":n.messages.diagnosticMissingImage,"unsupported-component":n.messages.diagnosticUnsupported,"unsupported-image-format":n.messages.diagnosticImageFormat,"rich-text-flattened":n.messages.diagnosticRichText,"nested-components-omitted":n.messages.diagnosticNested,"async-image-required":n.messages.diagnosticImageAsync,"image-decode-failed":n.messages.diagnosticImageDecode,"asset-render-failed":n.messages.diagnosticAssetFailed,"asset-budget-exceeded":n.messages.diagnosticAssetBudget})),o=e.computed(()=>{const i=a.value.trim().toLocaleLowerCase();return i?n.entries.filter(c=>`${c.code} ${c.message} ${r.value[c.code]??""} ${c.path??""} ${s(c)} ${c.format??""}`.toLocaleLowerCase().includes(i)):n.entries}),l=e.computed(()=>o.value.slice(0,100));function s(i){return i.pageIndex===void 0?i.path??"":(n.messages.diagnosticsLocation??"").replace("{page}",String(i.pageIndex+1)).replace("{component}",String((i.componentIndex??0)+1))}return(i,c)=>t.entries.length?(e.openBlock(),e.createElementBlock("details",yr,[e.createElementVNode("summary",null,[e.createTextVNode(e.toDisplayString(t.messages.diagnosticsTitle)+" ",1),e.createElementVNode("span",null,e.toDisplayString(t.entries.length),1)]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":c[0]||(c[0]=g=>a.value=g),type:"search","aria-label":t.messages.diagnosticsSearch,placeholder:t.messages.diagnosticsSearch},null,8,br),[[e.vModelText,a.value]]),e.createElementVNode("ol",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(g,h)=>(e.openBlock(),e.createElementBlock("li",{key:h},[e.createElementVNode("div",null,[e.createElementVNode("b",null,e.toDisplayString(g.format?.toUpperCase()??g.severity)+" · "+e.toDisplayString(g.code),1),e.createElementVNode("p",null,e.toDisplayString(r.value[g.code]??g.message),1),r.value[g.code]?(e.openBlock(),e.createElementBlock("details",wr,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.diagnosticsDetails),1),e.createTextVNode(e.toDisplayString(g.message),1)])):e.createCommentVNode("",!0),e.createElementVNode("small",null,e.toDisplayString(s(g)),1)]),g.pageIndex!==void 0?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:f=>i.$emit("locate",g)},e.toDisplayString(t.messages.diagnosticsLocate),9,xr)):e.createCommentVNode("",!0)]))),128))]),o.value.length>l.value.length?(e.openBlock(),e.createElementBlock("small",kr,e.toDisplayString((t.messages.diagnosticsMore??"").replace("{count}",String(o.value.length))),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),Cr=H._export_sfc(Er,[["__scopeId","data-v-3b7804ce"]]),nn=new Map,Re=new Map,Sr=15e3;function Et(t,n){return Object.assign(new Error(t),{cause:n})}function Le(t,n){return`PDF 字体 ${JSON.stringify(t)}:${n}。请部署支持报表文字的字体文件,并将 pdfFontUrl 配置为可访问的字体 URL;西文报表可设为空串`}function Qe(t){if(t?.reason instanceof Error&&t.reason.name==="AbortError")return t.reason;const n=Et("PDF 字体检查已取消",t?.reason);return n.name="AbortError",n}async function Nr(t,n){let a=!1;const r=setTimeout(()=>{a=!0,n.abort()},Sr);try{const o=await fetch(t,{method:"HEAD",signal:n.signal});if(n.signal.aborted)throw Qe(n.signal);if(o.status===405||o.status===501||o.type==="opaque")return{status:"unverified",fontUrl:t,message:`PDF 字体 ${JSON.stringify(t)} 无法通过 HEAD 检查验证;仍可尝试导出,届时会加载并校验字体`};if(!o.ok){const s=new Error(`字体请求返回 HTTP ${o.status}`);return{status:"error",fontUrl:t,message:Le(t,s.message),cause:s}}const l=o.headers.get("content-type")??"";if(/text\/html|application\/xhtml\+xml/i.test(l)){const s=new Error("字体 URL 返回 HTML 页面(可能是 SPA 路由回退),不是字体文件");return{status:"error",fontUrl:t,message:Le(t,s.message),cause:s}}if(/^text\//i.test(l)||/(?:\/|\+)json(?:\s*;|$)/i.test(l)){const s=new Error(`字体 URL 返回 ${l} 文本响应,不是字体文件`);return{status:"error",fontUrl:t,message:Le(t,s.message),cause:s}}return{status:"available",fontUrl:t,message:"PDF 字体资源可达;文字覆盖范围将在实际导出时校验"}}catch(o){if(n.signal.aborted&&!a)throw Qe(n.signal);return{status:"error",fontUrl:t,message:Le(t,a?"字体检查超时,请检查网络或字体服务":"字体检查失败,请检查网络、字体服务或跨域访问配置"),cause:o}}finally{clearTimeout(r)}}function Br(t,n){if(n?.aborted)return Promise.reject(Qe(n));if(!t)return Promise.resolve({status:"disabled",fontUrl:t,message:"已停用自定义 PDF 字体;内置字体用于西文,其他文字会在导出时校验"});const a=nn.get(t);if(a)return Promise.resolve(a);let r=Re.get(t);if(!r){const l=new AbortController;r={controller:l,promise:Nr(t,l),subscribers:0};const s=r;Re.set(t,s),s.promise=s.promise.then(i=>(!l.signal.aborted&&i.status==="available"&&nn.set(t,i),i)).finally(()=>{Re.get(t)===s&&Re.delete(t)})}const o=r;return o.subscribers++,new Promise((l,s)=>{let i=!1;const c=()=>i?!1:(i=!0,o.subscribers--,n?.removeEventListener("abort",g),!0),g=()=>{c()&&(o.subscribers===0&&(Re.get(t)===o&&Re.delete(t),o.controller.abort()),s(Qe(n)))};n?.addEventListener("abort",g,{once:!0}),o.promise.then(h=>{c()&&l(h)},h=>{c()&&s(h)}),n?.aborted&&g()})}function vn(t={fontUrl:"/simhei.ttf"}){let n=null;const a=async(r,o,l={})=>{se.assertOutputActive(l.signal),n||(n=await import("@agile-team/mach-report/pdf")),se.assertOutputActive(l.signal);let s=null;if(t.fontUrl)try{if(s=await se.waitForOutput(n.loadFontWithCache(t.fontUrl,{strict:!0,signal:l.signal}),l.signal),!s?.byteLength)throw new Error("字体文件为空或加载失败")}catch(m){const k=m instanceof Error?m.message:String(m);throw Et(Le(t.fontUrl,k),m)}let i;try{se.assertOutputActive(l.signal),i=await n.renderPlanToPdf(r,{...l,...s?{customFontBytes:s}:{}})}catch(m){if(!s)throw m;const k=m instanceof Error?m.message:String(m);throw Et(`PDF 生成失败:${k}。当前字体 URL 为 ${JSON.stringify(t.fontUrl)};请确认该文件是有效字体,或重新配置 pdfFontUrl`,m)}se.assertOutputActive(l.signal),i.diagnostics?.forEach(m=>{try{l.onDiagnostic?.(m)}catch{}});const{bytes:c,unsupportedTextCount:g,pageErrors:h,fidelityWarnings:f}=i;if(g>0)throw new Error(`PDF 中有 ${g} 行文字无法编码;请部署支持所用文字的字体并配置 pdfFontUrl`);if(h.length>0)throw new Error(`PDF 有 ${h.length} 页渲染失败:${h[0]}`);return f.length>0&&o?.(`PDF 有 ${f.length} 处版式降级:${f.slice(0,2).join(";")}`),c};return a.checkFont=r=>Br(t.fontUrl,r),a}function Ir(t){const n=e.shallowRef(Object.freeze({status:"unchecked",fontUrl:""}));let a=null,r=null,o=0,l=null;function s(){if(t.injectedExporter)return t.injectedExporter;const h=t.fontUrl();return(!r||a!==h)&&(a=h,r=vn({fontUrl:h})),r}function i(){o++,l?.abort(),l=null}async function c(){if(t.destroyed())throw new pe.MachReportError("config","报表预览已卸载");i();const h=o,f=new AbortController;l=f;const m=t.fontUrl();n.value=Object.freeze({status:"checking",fontUrl:m});try{const k=s(),y=k.checkFont?await k.checkFont(f.signal):{status:"unverified",fontUrl:"",message:"自定义 PDF 导出器未提供字体预检查;字体由宿主确认"};return!t.destroyed()&&h===o&&!f.signal.aborted&&(n.value=Object.freeze({...y})),y}catch(k){if(f.signal.aborted)throw k;const y={status:"error",fontUrl:m,message:k instanceof Error?k.message:"PDF 字体检查失败",cause:k};return!t.destroyed()&&h===o&&(n.value=Object.freeze(y)),y}finally{l===f&&(l=null)}}function g(){c().catch(()=>{})}return e.watch([t.plan,e.computed(t.fontUrl),e.computed(t.enabled)],()=>{const h=n.value.fontUrl===t.fontUrl();h&&n.value.status==="available"||(i(),(!h||n.value.status==="checking")&&(n.value=Object.freeze({status:"unchecked",fontUrl:t.fontUrl()})),!t.destroyed()&&t.plan.value?.pages.length&&t.enabled()&&g())},{immediate:!0}),{pdfFont:n,getPdfExporter:s,checkPdfFont:c,retryPdfFont:g,cancelFontCheck:i}}function $r(t){const n=e.shallowRef(null),a=e.shallowRef(!1);let r=0,o=null;function l(c){const g=o;o=null,n.value=null,a.value=!1,g?.(c)}function s(){r++,l(!1)}async function i(c){if(s(),!t.enabled()||!t.pending())return!0;const g=r,h=[...t.snapshot?.()??[]];a.value=!0;const f=Object.freeze({reason:c,reportIds:Object.freeze([...t.reportIds()]),pendingLocalChanges:!0});try{const m=t.hook(),k=await new Promise(v=>{if(o=v,!m){n.value=f;return}Promise.resolve().then(()=>m(f)).then(u=>{g===r&&l(u===!0)},u=>{if(g===r){try{t.error(u)}catch{}l(!1)}})}),y=t.snapshot?.()??[];return g===r&&k===!0&&y.length===h.length&&h.every((v,u)=>Object.is(v,y[u]))}catch(m){if(g===r){try{t.error(m)}catch{}l(!1)}return!1}}return{request:n,pending:a,check:i,settle:l,cancel:s}}let Vr=0;function Pr(t){const n=e.shallowRef(null),a=new Set;let r=null;function o(c){n.value=Object.freeze(c);try{t(n.value)}catch{}}function l(c,g,h){const f=`mr-task-${Date.now().toString(36)}-${++Vr}`;a.add(f),r=h,o({taskId:f,kind:c,stage:g,status:"running",cancellable:!0});function m(y,v,u){n.value?.taskId!==f||n.value.status!=="running"||o({...n.value,stage:y,completed:v,total:u})}function k(y="completed"){n.value?.taskId!==f||n.value.status!=="running"||(r=null,o({...n.value,status:y,cancellable:!1}))}return{taskId:f,update:m,finish:k}}function s(){if(n.value?.status!=="running")return;const c=r;r=null,o({...n.value,status:"cancelled",cancellable:!1}),c?.()}function i(c,g){n.value?.taskId!==c.taskId&&(c.status!=="running"||a.has(c.taskId))||(a.add(c.taskId),a.size>100&&a.delete(a.values().next().value),r=c.status==="running"?g:null,o({...c}))}return{state:n,start:l,cancel:s,receive:i}}function Rr(t){const n=e.shallowRef(Object.freeze([])),a=new Set;let r=0;function o(){r++,n.value=Object.freeze([]),a.clear()}function l(c){const g=r,h=[];for(const f of c){const m=JSON.stringify([f.code,f.format,f.pageIndex,f.componentIndex,f.componentPath,f.path,f.message]);if(a.has(m))continue;a.add(m);const k=Object.freeze({...f,...f.componentPath?{componentPath:Object.freeze([...f.componentPath])}:{}});h.push(k)}h.length&&(n.value=Object.freeze([...n.value,...h]));for(const f of h){if(g!==r)break;try{t(f)}catch{}}}function s(c){l([c])}function i(c,g){const h=q.inspectOutputCapabilities(c,g);return l(h),h}return{entries:n,reset:o,add:s,addMany:l,inspect:i}}const Dr={class:"mrp-edit-bar"},Tr=["disabled"],Mr=["disabled"],zr={class:"mrp-changes"},Or=["aria-label"],Fr={key:0},Ar={key:1},Lr=["onClick"],qr=["title"],Kr=["title"],jr=["disabled"],Wr={key:0,role:"status"},Hr={key:1,role:"status"},Ur={key:2,class:"mrp-conflicts",open:""},Gr=e.defineComponent({__name:"ReportEditBar",props:{differences:{},conflicts:{},messages:{},saving:{type:Boolean},canUndo:{type:Boolean},canRedo:{type:Boolean},busy:{type:Boolean},persisted:{type:Boolean}},emits:["undo","redo","restore","locate"],setup(t){function n(a){return a.source?`${a.source.rowKey} · ${a.source.field}`:`${a.address.pageIndex+1} / ${a.address.rowIndex+1}:${a.address.columnIndex+1}`}return(a,r)=>(e.openBlock(),e.createElementBlock("div",Dr,[e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.canUndo,onClick:r[0]||(r[0]=o=>a.$emit("undo"))},e.toDisplayString(t.messages.undo),9,Tr),e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.canRedo,onClick:r[1]||(r[1]=o=>a.$emit("redo"))},e.toDisplayString(t.messages.redo),9,Mr),e.createElementVNode("details",zr,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.changes)+" · "+e.toDisplayString(t.messages.changesCount?.replace("{count}",String(t.differences.length))),1),e.createElementVNode("section",{"aria-label":t.messages.changes},[t.differences.length?(e.openBlock(),e.createElementBlock("ol",Ar,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.differences,(o,l)=>(e.openBlock(),e.createElementBlock("li",{key:l},[e.createElementVNode("button",{type:"button",onClick:s=>a.$emit("locate",o)},e.toDisplayString(n(o)),9,Lr),e.createElementVNode("span",null,[e.createElementVNode("s",{title:t.messages.changesBefore},e.toDisplayString(o.previousText||"∅"),9,qr),r[3]||(r[3]=e.createTextVNode(" → ",-1)),e.createElementVNode("strong",{title:t.messages.changesAfter},e.toDisplayString(o.text||"∅"),9,Kr)])]))),128))])):(e.openBlock(),e.createElementBlock("p",Fr,e.toDisplayString(t.messages.changesEmpty),1))],8,Or)]),e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.differences.length,onClick:r[2]||(r[2]=o=>a.$emit("restore"))},e.toDisplayString(t.messages.restoreChanges),9,jr),t.saving?(e.openBlock(),e.createElementBlock("span",Wr,e.toDisplayString(t.messages.saving),1)):t.differences.length&&!t.conflicts.length?(e.openBlock(),e.createElementBlock("span",Hr,e.toDisplayString(t.persisted?t.messages.editSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.conflicts.length?(e.openBlock(),e.createElementBlock("details",Ur,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.conflicts)+" · "+e.toDisplayString(t.conflicts.length),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.conflicts,(o,l)=>(e.openBlock(),e.createElementBlock("li",{key:l},e.toDisplayString(o.message),1))),128))])])):e.createCommentVNode("",!0)]))}}),Jr=H._export_sfc(Gr,[["__scopeId","data-v-df1c7b86"]]);function Zr(t){const n=t.table?.columnKeys??[],a=n.map(()=>[]);if(!t.grid)return n;for(const{ci:r,cell:o}of Bt.resolveGridLayout(t.grid,t.widthMm,t.heightMm).cells){const l=(o.text??o.rawText??"").trim();if(l)for(let s=r;s<Math.min(n.length,r+(o.colSpan??1));s++)a[s].includes(l)||a[s].push(l)}return n.map((r,o)=>a[o].join(" / ")||r)}function Yr(t,n=[]){const a=new Set,r=[];for(const[o,l]of(t?.pages??[]).entries())for(const s of l.components){const i=s.table;if(!i||i.role!=="header"||a.has(i.id))continue;a.add(i.id);const c=Zr(s),g=n.filter(k=>k.pageIndex<=o),h=g[g.length-1]?.label,f=i.source?.datasetId,m=[...new Set([h,i.title,f].filter(Boolean))].join(" · ")||i.id;i.columnKeys.forEach((k,y)=>{k&&r.push({key:JSON.stringify([i.id,y]),field:k,label:c[y],group:m,pageIndex:o,tableId:i.id,...f?{datasetId:f}:{}})})}return r}function Xr(t,n){const a=n.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return t.filter(r=>{const o=`${r.label} ${r.field} ${r.group}`.toLocaleLowerCase();return a.every(l=>o.includes(l))})}function Qr(t){const n=pn(),a=e.ref(""),r=e.ref(0),o=`mrp-column-list-${e.getCurrentInstance()?.uid??0}`,l=e.computed(()=>Yr(t.plan(),t.sections())),s=e.computed(()=>Xr(l.value,a.value)),i=e.computed(()=>s.value.slice(0,100)),c=e.computed(()=>[...new Set(i.value.map(y=>y.group))].map(y=>({label:y,items:i.value.filter(v=>v.group===y)})));e.watch(a,()=>{r.value=0}),e.watch(t.busy,y=>{y&&n.close()}),e.watch(l,()=>{r.value=0});function g(y){t.busy()||(t.locate(y),n.close(!0))}function h(){if(t.busy())return;const y=i.value[r.value];y?g(y):a.value.trim()&&(t.locateField(a.value.trim()),n.close(!0))}function f(){a.value="",n.panel.value?.querySelector("input")?.focus()}function m(y){if(!(y.isComposing||y.keyCode===229||!["ArrowDown","ArrowUp","Enter"].includes(y.key))){if(y.preventDefault(),y.stopPropagation(),y.key==="Enter"){h();return}i.value.length&&(r.value=(r.value+(y.key==="ArrowDown"?1:-1)+i.value.length)%i.value.length,e.nextTick(()=>n.panel.value?.querySelector(`[id="${o}-${r.value}"]`)?.scrollIntoView?.({block:"nearest"})))}}function k(y){return i.value.findIndex(v=>v.key===y)}return{...n,field:a,active:r,listId:o,directory:l,matches:s,candidates:i,groups:c,choose:g,submit:h,clear:f,onSearchKeydown:m,candidateIndex:k}}const _r=["aria-label"],el={key:0,class:"mrp-section-tabs"},tl=["aria-current","disabled","onClick"],nl=["aria-expanded","disabled"],al={key:0,class:"mrp-column-count"},ol=["aria-label"],rl={class:"mrp-column-heading"},ll=["aria-label"],sl=["aria-label","placeholder","aria-controls","aria-activedescendant","disabled"],il=["aria-label"],cl=["id","aria-label"],ul={key:0,class:"mrp-column-empty",role:"status"},dl=["aria-label"],ml=["id","aria-selected","disabled","onPointermove","onClick"],fl=["title"],pl={class:"mrp-column-help",role:"status"},gl=e.defineComponent({__name:"ReportNavigation",props:{sections:{},currentPage:{},messages:{},busy:{type:Boolean},plan:{},compact:{type:Boolean}},emits:["goto","locate","locate-target"],setup(t,{emit:n}){const a=t,r=n,o=Qr({plan:()=>a.plan,sections:()=>a.sections,busy:()=>a.busy,locate:D=>r("locate-target",D),locateField:D=>r("locate",D)}),{root:l,trigger:s,panel:i,opened:c,field:g,active:h,directory:f,matches:m,candidates:k,groups:y,listId:v}=o,u=e.computed(()=>f.value.length>0||!a.plan||a.plan.pages.some(D=>D.components.some(P=>P.table?.columnKeys.length))),S=e.computed(()=>({columnDirectory:"字段目录",columnSearch:"搜索列名或字段",columnNoMatches:"未找到匹配字段",columnResults:"匹配字段",...a.messages})),p=e.computed(()=>(a.messages.columnResultsMore??"{count} 个匹配字段,显示前 {limit} 个;继续输入可缩小范围").replace("{count}",String(m.value.length)).replace("{limit}",String(k.value.length)));function E(D){const P=a.sections[D];return!!P&&a.currentPage>=P.pageIndex+1&&(!a.sections[D+1]||a.currentPage<=a.sections[D+1].pageIndex)}return(D,P)=>t.sections.length>1||u.value?(e.openBlock(),e.createElementBlock("nav",{key:0,class:e.normalizeClass(["mrp-section-nav",{"mrp-compact":t.compact}]),"aria-label":t.messages.sections??"工作表与章节"},[t.sections.length>1?(e.openBlock(),e.createElementBlock("div",el,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.sections,(M,F)=>(e.openBlock(),e.createElementBlock("button",{key:F,type:"button",class:e.normalizeClass({active:E(F)}),"aria-current":E(F)?"page":void 0,disabled:t.busy,onClick:G=>r("goto",M.pageIndex+1)},e.toDisplayString(M.label),11,tl))),128))])):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"root",ref:l,class:"mrp-column-locator",onKeydown:P[7]||(P[7]=(...M)=>e.unref(o).onKeydown&&e.unref(o).onKeydown(...M))},[e.createElementVNode("button",{ref_key:"trigger",ref:s,type:"button",class:e.normalizeClass(["mrp-directory-trigger",{active:e.unref(c)}]),"aria-expanded":e.unref(c),"aria-haspopup":"dialog",disabled:t.busy,onClick:P[0]||(P[0]=M=>c.value=!e.unref(c))},[e.createVNode(H._sfc_main,{name:"columns"}),e.createElementVNode("span",null,e.toDisplayString(S.value.columnDirectory),1),e.unref(f).length?(e.openBlock(),e.createElementBlock("span",al,e.toDisplayString(e.unref(f).length),1)):e.createCommentVNode("",!0),e.createVNode(H._sfc_main,{name:"chevron-down",size:12})],10,nl),e.unref(c)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panel",ref:i,class:"mrp-column-directory",role:"dialog","aria-label":S.value.columnDirectory},[e.createElementVNode("div",rl,[e.createElementVNode("span",null,[e.createVNode(H._sfc_main,{name:"columns"}),e.createTextVNode(e.toDisplayString(S.value.columnDirectory),1)]),e.createElementVNode("button",{type:"button",class:"mrp-column-close","aria-label":t.messages.closeColumnDirectory??"关闭字段目录",onClick:P[1]||(P[1]=M=>e.unref(o).close(!0))},[e.createVNode(H._sfc_main,{name:"close",size:15})],8,ll)]),e.createElementVNode("form",{class:"mrp-column-search",onSubmit:P[5]||(P[5]=e.withModifiers((...M)=>e.unref(o).submit&&e.unref(o).submit(...M),["prevent"]))},[e.createVNode(H._sfc_main,{name:"search"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":P[2]||(P[2]=M=>e.isRef(g)?g.value=M:null),type:"search",autocomplete:"off",spellcheck:"false",role:"combobox","aria-label":S.value.columnSearch,placeholder:S.value.columnSearch,"aria-autocomplete":"list","aria-expanded":"true","aria-controls":e.unref(v),"aria-activedescendant":e.unref(k).length?`${e.unref(v)}-${e.unref(h)}`:void 0,disabled:t.busy,onKeydown:P[3]||(P[3]=(...M)=>e.unref(o).onSearchKeydown&&e.unref(o).onSearchKeydown(...M))},null,40,sl),[[e.vModelText,e.unref(g)]]),e.unref(g)?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-column-clear",type:"button","aria-label":t.messages.clearSearch??"清除搜索",onClick:P[4]||(P[4]=(...M)=>e.unref(o).clear&&e.unref(o).clear(...M))},[e.createVNode(H._sfc_main,{name:"close",size:13})],8,il)):e.createCommentVNode("",!0)],32),e.createElementVNode("div",{id:e.unref(v),class:"mrp-column-results",role:"listbox","aria-label":S.value.columnResults},[e.unref(k).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",ul,[e.createVNode(H._sfc_main,{name:"search",size:22}),e.createTextVNode(e.toDisplayString(S.value.columnNoMatches),1)])),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),M=>(e.openBlock(),e.createElementBlock("section",{key:M.label,role:"group","aria-label":M.label},[e.createElementVNode("strong",null,e.toDisplayString(M.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.items,F=>(e.openBlock(),e.createElementBlock("button",{id:`${e.unref(v)}-${e.unref(o).candidateIndex(F.key)}`,key:F.key,type:"button",role:"option",tabindex:"-1",class:e.normalizeClass({"mrp-column-active":e.unref(o).candidateIndex(F.key)===e.unref(h)}),"aria-selected":e.unref(o).candidateIndex(F.key)===e.unref(h),disabled:t.busy,onPointermove:G=>h.value=e.unref(o).candidateIndex(F.key),onMousedown:P[6]||(P[6]=e.withModifiers(()=>{},["prevent"])),onClick:G=>e.unref(o).choose(F)},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(F.label),1),e.createElementVNode("code",{title:F.field},e.toDisplayString(F.field),9,fl)]),e.createVNode(H._sfc_main,{name:"arrow-right",size:14})],42,ml))),128))],8,dl))),128))],8,cl),e.createElementVNode("p",pl,e.toDisplayString(e.unref(m).length>e.unref(k).length?p.value:t.messages.columnSearchShortcut??"↑ ↓ 选择 · Enter 定位"),1)],8,ol)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)],10,_r)):e.createCommentVNode("",!0)}}),an=H._export_sfc(gl,[["__scopeId","data-v-b772ba8c"]]),vl={class:"mrp-import-summary"},hl={key:0},yl={key:0},bl=e.defineComponent({__name:"ReportImportSummary",props:{result:{},messages:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("details",vl,[e.createElementVNode("summary",null,[e.createTextVNode(e.toDisplayString(t.messages.importSummary)+" · "+e.toDisplayString(t.messages.importPreserved?.replace("{sheets}",String(t.result.sheets.length)))+" ",1),t.result.warnings.length?(e.openBlock(),e.createElementBlock("span",hl," · "+e.toDisplayString(t.result.warnings.length)+" "+e.toDisplayString(t.messages.importWarnings),1)):e.createCommentVNode("",!0)]),e.createElementVNode("p",null,e.toDisplayString(t.messages.importReadOnly),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.result.sheets,r=>(e.openBlock(),e.createElementBlock("li",{key:r.index},e.toDisplayString(r.name)+" · "+e.toDisplayString(r.range)+" · "+e.toDisplayString(r.rowCount)+" × "+e.toDisplayString(r.columnCount),1))),128))]),t.result.warnings.length?(e.openBlock(),e.createElementBlock("ul",yl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.result.warnings,(r,o)=>(e.openBlock(),e.createElementBlock("li",{key:o},e.toDisplayString(r),1))),128))])):e.createCommentVNode("",!0)]))}}),wl=H._export_sfc(bl,[["__scopeId","data-v-54f275e8"]]);function ge(t){return JSON.parse(JSON.stringify(t))}function hn(t,n){const a=n.fields;if(typeof a=="function")return a(t);const r=t.source?.field??t.table?.columnKey;return r===void 0||!a||!Object.prototype.hasOwnProperty.call(a,r)?void 0:a[r]}function et(t,n){if(t.requiresRecalculation&&(!n||!q.getReportEditSession(t)))throw new q.ReportCellEditError("recalculation")}async function xl(t,n,a,r){const o=n.edits.every(i=>!!i.source);et(t,o);const l=q.getReportEditSession(t);if(l&&o)return l.prepareHistory(t,n.edits,n.value,a,{signal:r});const s=Te(t);return n.edits.map(i=>{const c=s(i);if(!c)throw new q.ReportCellEditError("missing");return{address:c,value:i[n.value]}})}function kl(t,n,a){const r=n.edits.every(o=>!!o.source);return et(t,r),r?q.getReportEditSession(t)?.prepare(t,n,{signal:a}):void 0}function El(t,n){const a=new Map;return t.pages.forEach((r,o)=>r.components.forEach((l,s)=>{if(l.grid)for(const i of Bt.resolveGridLayout(l.grid,l.widthMm,l.heightMm).cells){const c=n({pageIndex:o,componentIndex:s,rowIndex:i.ri,columnIndex:i.ci});if(!c?.source)continue;const g=q.reportCellEditKey(c),h=a.get(g)??[];h.push(c),a.set(g,h)}})),a}function Te(t){const n=q.createReportCellResolver(t),a=El(t,n);function r(l){if(l.source)return a.get(q.reportCellEditKey(l))??[];const s=n(l.address);return s?!l.table||q.reportCellEditKey(s)===q.reportCellEditKey(l)?[s]:[]:[]}const o=l=>{const s=r(l),i=s.find(c=>c.table?.id===l.table?.id)??s[0];return i?{...i.address}:null};return o.all=l=>r(l).map(s=>({...s.address})),o}class Cl extends Error{constructor(n){super(n.map(a=>a.message).join(";")),this.conflicts=n,this.name="ReportEditConflictError"}}function Sl(){return globalThis.crypto?.randomUUID?.()??`mr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function Nl(t,n,a,r){return Array.isArray(n)?{batch:q.createReportCellEditBatch(t,n,a)}:xl(t,n,a,r).then(o=>Array.isArray(o)?{batch:q.createReportCellEditBatch(t,o,a)}:o)}function Bl(t){const n=e.shallowRef([]),a=e.shallowRef([]),r=e.shallowRef([]),o=e.shallowRef([]),l=e.shallowRef(!1),s=e.shallowRef(null),i=e.shallowRef([]),c=e.computed(()=>i.value.length>0),g=e.computed(()=>{const b=q.summarizeReportCellEdits(n.value),N=t.plan.value;if(!N||!b.length)return b;const V=Te(N);return b.map(I=>{const A=V(I);return A?{...I,address:A}:I})}),h=e.computed(()=>!!t.options.value&&!l.value&&!t.blocked()&&a.value.length>0),f=e.computed(()=>!!t.options.value&&!l.value&&!t.blocked()&&r.value.length>0);let m=null,k=null,y=0,v=null;function u(){m?.abort(),m=null,l.value=!1,k=null}function S(){y++,u(),v=null,n.value=[],a.value=[],r.value=[],o.value=[],i.value=[],s.value=null}function p(){const b=t.options.value;return b?typeof b=="object"?b:{}:null}function E(b,N,V,I){if(!t.options.value||t.blocked())throw new q.ReportCellEditError("readonly");et(b,N.edits.every(j=>!!j.source));const A=q.createReportCellResolver(b),K=new Map(I?.map(j=>[q.reportCellEditKey(j),j]));for(const j of N.edits){const R=I?K.get(q.reportCellEditKey(j)):A(j.address);if(!R?.editable||V.canEdit?.(R)===!1)throw new q.ReportCellEditError("readonly");if(V.requireSource&&!R.source)throw new q.ReportCellEditError("missing");const ne=hn(R,V);ne&&q.parseReportCellFieldInput(R,j.value,ne)}}async function D(b,N,V){if(N.saveBatch)return N.saveBatch(ge(b),V);if(N.save&&b.edits.length>1)throw new q.ReportCellEditError("atomic");if(b.edits[0])return N.save?.(ge(b.edits[0]),V)}async function P(b,N,V){for(const I of b.edits){const A=await N.validate?.(ge(I),V);if(A)throw new Error(A);if(V.signal.aborted)return}}function M(b,N,V,I,A,K){if(t.plan.value=K?K.commit(V):q.applyReportEditResult(q.applyReportCellEditBatch(b,N),N,V),n.value=[...n.value,...N.edits],A){const R=new Set(N.edits.map(q.reportCellEditKey));i.value=i.value.filter(ne=>!R.has(q.reportCellEditKey(ne)))}else i.value=q.summarizeReportCellEdits([...i.value,...N.edits]);I==="edit"&&(a.value=[...a.value,N.edits],r.value=[]),o.value=[],v=null;const j=y;for(const R of N.edits){if(y!==j)break;t.onChange(ge(R))}}function F(b,N,V){const I=JSON.stringify([V,N.edits]);v?.plan===b&&v.signature===I?N.requestId=v.requestId:v={plan:b,signature:I,requestId:N.requestId}}function G(b){s.value=t.errorMessage?.(b)??(b instanceof Error?b.message:"Cell edit failed"),t.onError(s.value,b)}async function W(b,N){const V=t.plan.value,I=p();if(!V||!I||t.blocked())return!1;const A=new AbortController,K=y;m=A,l.value=!0,s.value=null;const j=()=>m===A&&!A.signal.aborted&&t.plan.value===V&&t.options.value!==!1;try{const R=Nl(V,b,Sl(),A.signal),ne=R instanceof Promise?await R:R;if(!j())return!1;const{batch:X,contexts:oe}=ne;if(E(V,X,I,oe),X.edits=X.edits.filter(B=>!Object.is(B.previousValue,B.value)),!X.edits.length)return!0;F(V,X,N),E(V,X,I,oe);const Ce={signal:A.signal,requestId:X.requestId,action:N};if(await P(X,I,Ce),!j())return!1;E(V,X,I,oe);const ve=ne.prepared?void 0:kl(V,X,A.signal);if(ve&&(ne.prepared=await ve),!j())return!1;E(V,X,I,oe);const x=await D(X,I,Ce);if(!j())return!1;if(x?.conflicts?.length)throw o.value=ge(x.conflicts),new Cl(x.conflicts);return E(V,X,I,oe),M(V,X,x,N,!!(I.save||I.saveBatch),ne.prepared),K===y}catch(R){return j()&&G(R),!1}finally{m===A&&(m=null,l.value=!1)}}async function Z(b,N="edit"){if(k)return k;const V=W(b,N);k=V;const I=await V;return k===V&&(k=null),I}async function ee(){const b=y,N=a.value[a.value.length-1];return!N||l.value||!await Z({edits:N,value:"previousValue"},"undo")||b!==y?!1:(a.value=a.value.slice(0,-1),r.value=[...r.value,N],!0)}async function ie(){const b=y,N=r.value[r.value.length-1];return!N||l.value||!await Z({edits:N,value:"value"},"redo")||b!==y?!1:(r.value=r.value.slice(0,-1),a.value=[...a.value,N],!0)}async function te(){const b=y;return!g.value.length||l.value||!await Z({edits:g.value,value:"previousValue"},"restore")||b!==y?!1:(a.value=[],r.value=[],!0)}function w(){if(!k)return!l.value;const b=y;return k.then(N=>N&&b===y&&!l.value)}function $(b){return t.plan.value?Te(t.plan.value)(b):null}return{settle:w,resolveAddress:$,changes:n,differences:g,localDifferences:i,hasLocalDrafts:c,lastError:s,conflicts:o,saving:l,canUndo:h,canRedo:f,apply:Z,undo:ee,redo:ie,restore:te,cancel:u,reset:S}}let Il=0;const $l="position:absolute;inset:0;width:100%;height:100%;min-height:20px;box-sizing:border-box;z-index:10;resize:none;margin:0;padding:2px 4px;border:2px solid var(--mrp-btn-active-bg,#2563eb);outline:none;background:var(--mrp-toolbar-bg,#fff);color:var(--mrp-toolbar-fg,#111);font:inherit;line-height:1.25;white-space:pre-wrap;";function Vl(t){return t.type==="boolean"?[{value:!0,label:t.trueLabel??"是"},{value:!1,label:t.falseLabel??"否"}]:t.type==="enum"?t.options.map(n=>({value:n.value,label:n.label??String(n.value)})):[]}function Pl(t,n,a){const r=t.createElement("select"),o=[{value:null,label:"—"},...Vl(n)];if(o.forEach((l,s)=>{const i=t.createElement("option");i.value=String(s),i.textContent=l.label,(Object.is(a.value,l.value)||a.value===""&&l.value===null)&&(i.selected=!0),r.append(i)}),!o.some(l=>Object.is(a.value,l.value)||a.value===""&&l.value===null)){const l=t.createElement("option");l.value="unknown",l.textContent=a.cell.text??String(a.value),l.selected=!0,r.append(l)}return{input:r,value:()=>r.value==="unknown"?a.value:o[Number(r.value)]?.value??null}}function Rl(t,n,a){const r=n?.type==="number"||n?.type==="date"?t.createElement("input"):t.createElement("textarea");return r.value=a.value==null?"":String(a.value),r instanceof HTMLInputElement&&(r.type=n?.type==="date"?"date":"text",n?.type==="number"&&(r.inputMode="decimal"),n?.type==="date"&&(n.min&&(r.min=n.min),n.max&&(r.max=n.max))),{input:r,value:()=>n?.type==="date"&&r instanceof HTMLInputElement&&r.validity.badInput?"invalid-date":r.value}}function Dl(t){if(!t)return"";const n=[t.hint,t.unit];return(t.type==="number"||t.type==="date")&&(t.min!==void 0&&n.push(`≥ ${t.min}`),t.max!==void 0&&n.push(`≤ ${t.max}`)),t.type==="number"&&t.precision!==void 0&&n.push(`最多 ${t.precision} 位小数`),t.type==="text"&&t.maxLength!==void 0&&n.push(`最多 ${t.maxLength} 字符`),n.filter(Boolean).join(" · ")}function Tl(t,n,a,r){const o=t.ownerDocument,l=r?.type==="boolean"||r?.type==="enum"?Pl(o,r,a):Rl(o,r,a),s=l.input,i=o.createElement("span");i.className="mrp-cell-editor-host",i.style.cssText="position:absolute;inset:0;z-index:10;",s.className="mrp-cell-editor",s.style.cssText=$l,s.setAttribute("aria-label",r?.label??n),r?.required&&s.setAttribute("aria-required","true");const c=o.createElement("span");c.id=`mrp-cell-hint-${++Il}`,c.className="mrp-cell-editor-hint",c.style.cssText="position:absolute;top:100%;left:0;min-width:100%;width:max-content;max-width:320px;box-sizing:border-box;padding:4px 8px;white-space:normal;border:1px solid var(--mrp-toolbar-border,#ddd);background:var(--mrp-toolbar-bg,#fff);color:var(--mrp-toolbar-fg,#111);font-size:12px;line-height:1.4;box-shadow:0 3px 10px #0002;z-index:11;";const g=Dl(r);return c.textContent=g,c.hidden=!g,s.setAttribute("aria-describedby",c.id),i.append(s,c),t.append(i),{input:s,root:i,initialInput:s.value,value:l.value,focus:()=>{s.focus(),(s instanceof HTMLTextAreaElement||s instanceof HTMLInputElement&&s.type!=="date")&&s.select()},feedback:h=>{c.textContent=h??g,c.hidden=!c.textContent,s.setAttribute("aria-invalid",h?"true":"false")}}}function Ct(t){const n=t.closest(".mrp-page-holder"),a=t.closest("[data-mr-component-index]");if(!n||!a)return null;const r={pageIndex:Number(n.dataset.page)-1,componentIndex:Number(a.dataset.mrComponentIndex),rowIndex:Number(t.dataset.mrRowIndex),columnIndex:Number(t.dataset.mrColumnIndex)};return Object.values(r).every(o=>Number.isInteger(o)&&o>=0)?r:null}function Ml(t){const n=e.shallowRef(null),a=Bl(t),{saving:r,changes:o}=a,l=e.shallowRef(!1),s=e.computed(()=>l.value||a.hasLocalDrafts.value);let i=null;function c(){const p=n.value;n.value=null,l.value=!1,a.cancel(),i=null,p?.editor.root.remove()}function g(){c(),a.reset()}function h(p){return n.value===p&&t.plan.value===p.plan}async function f(p){return await a.apply([{address:p.address,value:p.editor.value()}])?(n.value=null,l.value=!1,p.editor.root.remove(),!0):(n.value===p&&(p.editor.input.disabled=!1,p.editor.feedback(a.lastError.value??void 0),p.editor.input.focus()),!1)}async function m(){if(i)return i;const p=n.value;if(!p)return a.settle();if(!h(p))return c(),!1;l.value=p.editor.input.value!==p.editor.initialInput,p.editor.input.disabled=!0;const E=f(p);i=E;const D=await E;return i===E&&(i=null),D}function k(){return n.value||i?m():a.settle()}function y(p){if(p.stopPropagation(),!p.isComposing&&(p.key==="Escape"&&(p.preventDefault(),c()),p.key==="Enter"&&!p.shiftKey||p.key==="Tab")){p.preventDefault();const E=n.value,D=E&&q.getReportCellContext(E.plan,E.address),P=E&&D?q.createReportCellEditBatch(E.plan,[{address:E.address,value:D.value}],"navigation").edits[0]:void 0;m().then(M=>{if(!M||!E||!t.plan.value)return;const F=t.plan.value===E.plan?E.address:P&&Te(t.plan.value)(P);F&&t.onNavigate?.(F,p.key,p.shiftKey)})}}function v(p){t.onError(t.errorMessage?.(p)??(p instanceof Error?p.message:"无法编辑单元格"),p)}async function u(p){if(!t.options.value||t.blocked()||!await m()||!p.isConnected)return;const E=t.plan.value,D=Ct(p);if(!E||!D||!t.options.value||t.blocked())return;const P=typeof t.options.value=="object"?t.options.value:{};try{const M=q.getReportCellContext(E,D);if(!M?.editable||P.canEdit?.(M)===!1)return;if(et(E,!!M.source),P.requireSource&&!M.source)throw new q.ReportCellEditError("missing");const F=hn(M,P);F&&q.validateReportCellFieldDefinition(M,F);const G=Tl(p,t.label(),M,F),W=G.input;n.value={plan:E,address:D,editor:G},l.value=!1,W.addEventListener("keydown",Z=>y(Z)),W.addEventListener("input",()=>{l.value=W.value!==G.initialInput,G.feedback()}),W.addEventListener("change",()=>{l.value=W.value!==G.initialInput}),W.addEventListener("blur",()=>{!r.value&&!t.suspendBlur?.()&&m()}),G.focus()}catch(M){v(M)}}async function S(p){const E=p.target;if(!(E instanceof Element)||E.closest(".mrp-cell-editor"))return;const D=E.closest("td[data-mr-row-index]");D&&await u(D)}return e.watch(t.options,(p,E)=>{(!p||p!==E)&&c()},{flush:"sync"}),e.watch(t.plan,()=>{n.value&&t.plan.value!==n.value.plan&&(n.value.editor.root.remove(),n.value=null,l.value=!1)},{flush:"sync"}),e.onScopeDispose(g),{...a,active:n,saving:r,changes:o,pendingLocalChanges:s,cancel:c,reset:g,commit:m,settle:k,onDoubleClick:S,editCell:u,getChanges:()=>ge(o.value)}}const _e=["html","pdf","xlsx","png","word"],St=["search","thumbnails","zoom",..._e,"print","pdfWindow","editing","import"];function zl(t){return{load:n=>JSON.parse(t.getItem(n)??"null"),save:(n,a)=>t.setItem(n,JSON.stringify(a)),remove:n=>t.removeItem(n)}}function Ol(t,n,a,r){const o=e.ref({});let l=0,s=0,i=Promise.resolve();const c=e.computed(()=>Object.fromEntries(St.map(m=>[m,t.value[m]&&(o.value[m]??n.value[m]??!0)])));function g(m,k){t.value[m]&&(s++,o.value={...o.value,[m]:k},h())}function h(){const m=a?.value;if(!m)return;const k={...o.value};i=i.then(()=>m.adapter.save(m.key,k)).catch(y=>{r?.(y)})}function f(){s++,o.value={},h()}return a&&e.watch(a,async m=>{const k=++l,y=s;if(o.value={},!!m)try{const v=await m.adapter.load(m.key);if(k!==l||y!==s||!v||typeof v!="object")return;o.value=Object.fromEntries(St.flatMap(u=>typeof v[u]=="boolean"?[[u,v[u]]]:[]))}catch(v){k===l&&r?.(v)}},{immediate:!0}),e.onScopeDispose(()=>{l++}),{enabled:c,setEnabled:g,reset:f}}function Fl(t,n,a){const r=e.ref({}),o=pe.useMachReportConfig(),l=e.computed(()=>pe.resolveConfig(o.value,t.preset)),s=e.computed(()=>({...l.value.messages,...t.messages})),i=e.computed(()=>t.showExport??l.value.showExport),c=e.computed(()=>t.showPrint??l.value.showPrint),g=e.computed(()=>t.showPdfWindow??l.value.showPdfWindow),h=e.computed(()=>t.showSettings??l.value.showSettings),f=e.computed(()=>t.guardChanges??l.value.guardChanges),m=e.computed(()=>({...l.value.output,...t.output})),k=e.computed(()=>({...l.value.toolbar,...t.toolbar})),y=e.computed(()=>({...l.value.interaction,...t.interaction,...r.value})),v=e.computed(()=>t.preferences??l.value.preferences),u=e.computed(()=>t.assets??l.value.assets),S=e.computed(()=>t.gapPx??(n.value?0:l.value.gapPx)),p=e.computed(()=>t.showParams??l.value.showParams),E=e.computed(()=>t.editable??l.value.editable),D=e.computed(()=>t.excelImport??l.value.excelImport),P=e.computed(()=>({search:k.value.search!==!1,thumbnails:k.value.thumbnails!==!1,zoom:k.value.zoom!==!1,...Object.fromEntries(_e.map(te=>[te,i.value&&(k.value.exportFormats?.includes(te)??!0)])),print:c.value,pdfWindow:g.value,editing:!!E.value,import:!!D.value})),M=Ol(P,e.computed(()=>({editing:k.value.editing,import:k.value.excelImport})),v,()=>a(s.value.preferencesError??"Preferences storage unavailable")),F=M.enabled,G=e.computed(()=>_e.filter(te=>F.value[te])),W=e.computed(()=>F.value.editing?E.value:!1),Z=e.computed(()=>F.value.import?D.value:!1),ee=e.computed(()=>typeof E.value=="object"&&(typeof E.value.save=="function"||typeof E.value.saveBatch=="function")),ie=e.computed(()=>typeof t.emptyState=="object"?t.emptyState:{});return{resolved:l,resolvedMessages:s,effectiveShowExport:i,effectiveShowPrint:c,effectiveShowPdfWindow:g,effectiveShowSettings:h,effectiveGuardChanges:f,effectiveOutput:m,effectiveInteraction:y,effectiveAssets:u,effectiveGapPx:S,effectiveShowParams:p,availableTools:P,tools:M,toolState:F,visibleExportFormats:G,effectiveEditable:W,effectiveExcelImport:Z,persistedEditing:ee,emptyStateContent:ie,sessionInteraction:r}}function yn(t){return t.table.role==="header"?-Math.max(1,t.grid?.cells.length??1):t.table.rowIndex}function ke(t,n,a=n){const r=t.pages[n.pageIndex]?.components[n.componentIndex],o=r?.table,l=t.pages[a.pageIndex]?.components[a.componentIndex]?.table;return o&&l&&o.id===l.id?{grid:o.id,row:yn(r)+n.rowIndex,column:l.columnKeys.indexOf(o.columnKeys[n.columnIndex]??"")}:{grid:`${n.pageIndex}:${n.componentIndex}`,row:n.rowIndex,column:n.columnIndex}}function on(t,n){const a=t.pages[n.pageIndex]?.components[n.componentIndex]?.table;if(!a)return(o,l)=>({...n,rowIndex:o,columnIndex:l});const r=new Map;return t.pages.forEach((o,l)=>o.components.forEach((s,i)=>{s.table?.id!==a.id||!s.grid||s.grid.cells.forEach((c,g)=>{const h=yn(s)+g;r.set(h,[...r.get(h)??[],{address:{pageIndex:l,componentIndex:i,rowIndex:g,columnIndex:0},keys:s.table.columnKeys}])})})),(o,l)=>{const s=a.columnKeys[l];if(s===void 0)return null;const i=r.get(o)?.find(c=>c.keys.includes(s));return i?{...i.address,columnIndex:i.keys.indexOf(s)}:null}}function Al(t,n){const a=[...t.ownerDocument.querySelectorAll("a[href],button,input,textarea,select,[tabindex]:not([tabindex='-1'])")].filter(l=>l.tabIndex>=0&&!l.matches(":disabled,[hidden],input[type='hidden']")&&!l.closest("[inert],[aria-hidden='true']")&&l.getClientRects().length>0).map((l,s)=>({element:l,order:s})).sort((l,s)=>(l.element.tabIndex||1/0)-(s.element.tabIndex||1/0)||l.order-s.order),r=a.findIndex(({element:l})=>l===t);if(r<0)return!1;const o=a[r+(n?-1:1)]?.element;return o?(o.focus(),t.ownerDocument.activeElement===o):!1}function Ll(t,n){const a=t?.source;return!ql(t,n.field)||n.tableId!==void 0&&t?.table?.id!==n.tableId||n.datasetId!==void 0&&(a?.datasetId??t?.component.table?.source?.datasetId)!==n.datasetId?!1:n.rowKey===void 0||a?.rowKey===n.rowKey}function ql(t,n){if((t?.source?.field??t?.table?.columnKey)===n)return!0;if(!t||t.table?.role!=="header")return!1;const a=t.address.columnIndex;return t.component.table?.columnKeys.slice(a,a+(t.cell.colSpan??1)).includes(n)??!1}function Kl(t,n){return t.pageIndex===n.pageIndex&&t.componentIndex===n.componentIndex}function jl(t,n){return Kl(t,n)&&t.rowIndex===n.rowIndex&&t.columnIndex===n.columnIndex}function yt(t){return`[data-page="${t.pageIndex+1}"] [data-mr-component-index="${t.componentIndex}"] td[data-mr-row-index="${t.rowIndex}"][data-mr-column-index="${t.columnIndex}"]`}function Nt(t){return`${t.pageIndex}:${t.componentIndex}:${t.rowIndex}:${t.columnIndex}`}function Wl(t,n){const a=ke(t,n.anchor),r=ke(t,n.focus,n.anchor);return{grid:a.grid,minRow:Math.min(a.row,r.row),maxRow:Math.max(a.row,r.row),minColumn:Math.min(a.column,r.column),maxColumn:Math.max(a.column,r.column),focusKey:Nt(n.focus),origin:t.pages[n.anchor.pageIndex]?.components[n.anchor.componentIndex]?.table}}function Hl(t,n,a){const r=n?.table;if(!r||!a.origin||r.id!==a.origin.id)return{grid:`${t.pageIndex}:${t.componentIndex}`,rowOffset:0,missingColumn:-1};const o=new Map;return a.origin.columnKeys.forEach((l,s)=>{o.has(l)||o.set(l,s)}),{grid:r.id,rowOffset:r.role==="header"?-Math.max(1,n.grid?.cells.length??1):r.rowIndex,columns:r.columnKeys.map(l=>o.get(l)??-1),missingColumn:o.get("")??-1}}function Ul(t,n,a){if(!a||!n||n.grid!==a.grid)return!1;const r=n.rowOffset+t.row,o=n.columns?n.columns[t.column]??n.missingColumn:t.column;return r>=a.minRow&&r<=a.maxRow&&o>=a.minColumn&&o<=a.maxColumn}function Ze(t,n,a){t.getAttribute(n)!==a&&t.setAttribute(n,a)}function bt(t,n,a){t.classList.contains(n)!==a&&t.classList.toggle(n,a)}function Gl(t,n,a,r,o,l){n.role!==a&&(Ze(t,"role",a),n.role=a),n.selected!==r&&(bt(t,"mrp-cell-selected",r),Ze(t,"aria-selected",String(r)),n.selected=r),n.focused!==o&&(bt(t,"mrp-cell-focus",o),Ze(t,"tabindex",o?"0":"-1"),n.focused=o),n.modified!==l&&(bt(t,"mrp-cell-modified",l),n.modified=l)}function Jl(t){const n=()=>t.editable?.()??t.enabled(),a=e.shallowRef(null),r=new WeakMap,o=new WeakMap;let l=null,s=null,i=new Set;function c(w,$){const b=q.getReportCellContext(w,$);return!b||w.requiresRecalculation&&!b.source?null:{address:b.address,source:b.source,table:b.table,value:b.value,previousValue:b.value,text:b.cell.text??"",previousText:b.cell.text??""}}e.watch(t.plan,(w,$)=>{const b=a.value;if(!b)return;if(!w||!$){a.value=null;return}const N=c($,b.anchor),V=c($,b.focus),I=Te(w),A=N&&I(N),K=V&&I(V);a.value=A&&K?{anchor:A,focus:K}:null},{flush:"sync"});function g(w=t.root.value??void 0){if(!w)return;const $=a.value,b=t.plan.value,N=t.differences();if(N!==l||b!==s){l=N,s=b;const I=b&&N.length?Te(b):null;i=new Set(N.flatMap(A=>I?I.all(A).map(Nt):[]))}const V=$&&b?Wl(b,$):null;w instanceof HTMLTableElement&&m(w,b,V);for(const I of w.querySelectorAll("table"))m(I,b,V)}function h(w){const $=r.get(w);if($)return $;const b=w.closest("[data-mr-component-index]"),N=b?.closest(".mrp-page-holder"),V={pageIndex:Number(N?.dataset.page)-1,componentIndex:Number(b?.dataset.mrComponentIndex)};return Object.values(V).every(I=>Number.isInteger(I)&&I>=0)?(r.set(w,V),V):null}function f(w,$){const b=o.get(w);if(b)return b;const N=Number(w.dataset.mrRowIndex),V=Number(w.dataset.mrColumnIndex);if(![N,V].every(A=>Number.isInteger(A)&&A>=0))return null;const I={row:N,column:V,key:Nt({...$,rowIndex:N,columnIndex:V})};return o.set(w,I),I}function m(w,$,b){const N=h(w);if(!N)return;const V=$?.pages[N.pageIndex]?.components[N.componentIndex],I=V?.table?.role==="header"?"columnheader":"gridcell",A=b?Hl(N,V,b):null;Ze(w,"role","grid");for(const K of w.rows)for(const j of K.cells){const R=f(j,N);R&&Gl(j,R,I,Ul(R,A,b),b?.focusKey===R.key,i.size>0&&i.has(R.key))}}async function k(w,$=!1){if(!t.plan.value||!q.getReportCellContext(t.plan.value,w))return!1;const b=a.value,N=$&&b&&ke(t.plan.value,b.anchor).grid===ke(t.plan.value,w,b.anchor).grid;a.value={anchor:N?b.anchor:{...w},focus:{...w}},t.root.value?.querySelector(yt(w))||t.gotoPage(w.pageIndex+1),await e.nextTick(),g();const V=t.root.value?.querySelector(yt(w));return V?.focus({preventScroll:!0}),V?.scrollIntoView?.({block:"nearest",inline:"nearest"}),!!V}function y(w){const $=w.target;if(!($ instanceof Element)||$.closest("textarea,input,button,select"))return;const b=$.closest("td[data-mr-row-index]"),N=b&&Ct(b);if(!N||t.busy()||!t.plan.value||!q.getReportCellContext(t.plan.value,N))return;const V=a.value,I=w.shiftKey&&V&&ke(t.plan.value,V.anchor).grid===ke(t.plan.value,N,V.anchor).grid;a.value={anchor:I?V.anchor:{...N},focus:{...N}},g(),b.focus({preventScroll:!0})}function v(w){const $=t.plan.value?.pages[w.pageIndex]?.components[w.componentIndex];return $?.grid?Bt.resolveGridLayout($.grid,$.widthMm,$.heightMm).cells.map(b=>({...w,rowIndex:b.ri,columnIndex:b.ci})):[]}function u(w,$,b){const N=v(w),V=b?-1:1;if($==="Tab")return N[N.findIndex(K=>jl(K,w))+V];const I=$==="ArrowUp"||$==="ArrowDown"||$==="Enter",A=$==="ArrowUp"||$==="ArrowLeft"?-1:V;return N.filter(K=>I?K.columnIndex===w.columnIndex&&(K.rowIndex-w.rowIndex)*A>0:K.rowIndex===w.rowIndex&&(K.columnIndex-w.columnIndex)*A>0).sort((K,j)=>I?(K.rowIndex-j.rowIndex)*A:(K.columnIndex-j.columnIndex)*A)[0]}function S(w,$,b){if($==="ArrowLeft"||$==="ArrowRight")return;const N=t.plan.value;if(!N.pages[w.pageIndex]?.components[w.componentIndex]?.table)return;const I=$==="ArrowUp"||b?-1:1;for(let A=w.pageIndex;A>=0&&A<N.pages.length;A+=I){const K=N.pages[A].components,j=A===w.pageIndex?w.componentIndex+I:I===1?0:K.length-1;for(let R=j;R>=0&&R<K.length;R+=I){const ne=p(w,{...w,pageIndex:A,componentIndex:R},$,I);if(ne)return ne}}}function p(w,$,b,N){const V=t.plan.value,I=V.pages[w.pageIndex].components[w.componentIndex].table,A=V.pages[$.pageIndex].components[$.componentIndex]?.table;if(A?.id!==I.id||A.role==="header"&&I.role!=="header"&&(N>0||I.rowIndex+w.rowIndex>0))return;const K=v($),j=b==="Tab"?K:K.filter(R=>R.columnIndex===w.columnIndex);return N===1?j[0]:j[j.length-1]}function E(w,$,b=!1,N=!1,V=!1){const I=u(w,$,b)??S(w,$,b);return I?(k(I,N),!0):(($!=="Tab"||!V)&&k(w),!1)}function D(w){const $=a.value;if(t.busy()||w.target instanceof Element&&w.target.closest("textarea,input,select,button,a[href],[contenteditable]"))return!1;if(!$)return F(w);const b=w.key;if(P(w)||M(w,$.focus))return!0;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Tab","Enter"].includes(b))return!1;const N=E($.focus,b,b==="Tab"&&w.shiftKey,w.shiftKey&&b!=="Tab",!0);if(b==="Tab"&&!N){const V=t.root.value?.ownerDocument.activeElement;if(!(V instanceof HTMLElement)||!Al(V,w.shiftKey))return!1}return w.preventDefault(),!0}function P(w){if(!n()||!(w.ctrlKey||w.metaKey))return!1;const $=w.key.toLowerCase();return $!=="z"&&$!=="y"?!1:(w.preventDefault(),$==="y"||w.shiftKey?t.redo():t.undo(),!0)}function M(w,$){if(!n()||!t.plan.value||w.key!=="F2"&&!(w.key==="Enter"&&q.getReportCellContext(t.plan.value,$)?.editable))return!1;const b=t.root.value?.querySelector(yt($));return b&&(w.preventDefault(),t.edit(b)),!0}function F(w){if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Enter"].includes(w.key))return!1;const $=t.root.value?.querySelector("td[data-mr-row-index]"),b=$&&Ct($);return b?(w.preventDefault(),k(b),!0):!1}function G(){const w=a.value,$=t.plan.value;if(!w||!$)return"";const b=[],N=ke($,w.anchor),V=ke($,w.focus,w.anchor),I=on($,w.anchor),A=q.createReportCellResolver($),K=Math.min(N.column,V.column),j=Math.max(N.column,V.column);if((Math.abs(N.row-V.row)+1)*(j-K+1)>1e4)return t.error(new q.ReportCellEditError("limit")),"";for(let R=Math.min(N.row,V.row);R<=Math.max(N.row,V.row);R++){const ne=[];for(let X=K;X<=j;X++){const oe=I(R,X);ne.push(oe?A(oe)?.cell.text??"":"")}b.push(ne)}return q.formatReportClipboard(b)}function W(w){!a.value||w.target instanceof Element&&w.target.closest("textarea,input,select")||(w.clipboardData?.setData("text/plain",G()),w.preventDefault())}async function Z(w){const $=a.value;if(!$||!n()||t.busy())return!1;try{let b;try{b=q.parseReportClipboard(w)}catch(j){throw new q.ReportCellEditError(j instanceof Error&&j.message.includes("limit")?"limit":"clipboard")}const N=t.plan.value,V=ke(N,$.anchor),I=ke(N,$.focus,$.anchor),A=on(N,$.anchor),K=b.flatMap((j,R)=>j.map((ne,X)=>{const oe=A(Math.min(V.row,I.row)+R,Math.min(V.column,I.column)+X);if(!oe)throw new q.ReportCellEditError("missing");return{address:oe,value:ne}}));return await t.apply(K)}catch(b){return t.error(b),!1}}function ee(w){if(!a.value||!n()||w.target instanceof Element&&w.target.closest("textarea,input,select,button,a[href],[contenteditable]")||!w.clipboardData?.types.includes("text/plain"))return;const $=w.clipboardData?.getData("text/plain");$&&(w.preventDefault(),Z($))}async function ie(w){const $=t.plan.value;if(!$)return!1;const b=q.createReportCellResolver($);for(let N=0;N<$.pages.length;N++){const V=$.pages[N];for(let I=0;I<V.components.length;I++)for(const A of v({pageIndex:N,componentIndex:I,rowIndex:0,columnIndex:0})){const K=b(A);if(Ll(K,w))return k(A)}}return!1}function te(){a.value=null,g()}return{selection:a,refresh:g,reset:te,focusCell:k,focusField:ie,navigate:E,onClick:y,onKeydown:D,onCopy:W,onPaste:ee,copySelection:G,pasteSelection:Z}}function Zl(t){let n=0,a=!1;function r(){const l=t.viewport.value,s=t.root.value,i=t.plan.value;if(!l||!s||!i)return;const c=t.options(),g=Math.max(0,Math.min(20,Math.floor(c.frozenColumns??0)));if(!c.freezeHeaders&&g===0&&!a)return;const h=t.zoom.value||1,f=l.getBoundingClientRect();s.querySelectorAll("[data-mr-component-index]").forEach(m=>{const k=m.closest("[data-page]"),y=Number(k?.dataset.page)-1,v=i.pages[y]?.components[Number(m.dataset.mrComponentIndex)];if(!v?.grid||!k)return;m.style.transform="",m.style.zIndex="";const u=m.getBoundingClientRect(),S=k.getBoundingClientRect().bottom,p=Math.max(0,(f.left-u.left)/h),E=c.freezeHeaders?Math.max(0,Math.min((f.top-u.top)/h,(S-u.bottom)/h)):0;p>0&&g>0&&(m.style.zIndex="1"),v.table?.role==="header"&&E>0&&(m.style.transform=`translateY(${E}px)`,m.style.zIndex="5"),m.querySelectorAll(".mrp-cell-frozen").forEach(P=>{P.style.transform="",P.style.zIndex="",P.classList.remove("mrp-cell-frozen")});const D=Array.from({length:g},(P,M)=>`td[data-mr-column-index="${M}"]`);!v.table&&c.freezeHeaders&&D.push('td[data-mr-row-index="0"]'),D.length&&m.querySelectorAll(D.join(",")).forEach(P=>{const M=Number(P.dataset.mrColumnIndex)<g,F=!v.table&&Number(P.dataset.mrRowIndex)===0&&!!c.freezeHeaders,G=M?p:0,W=F?E:0;P.style.transform=G||W?`translate(${G}px, ${W}px)`:"",P.classList.toggle("mrp-cell-frozen",!!(G||W)),P.style.zIndex=G||W?F?"7":"6":""})}),a=!!c.freezeHeaders||g>0}function o(){n||(n=requestAnimationFrame(()=>{n=0,r()}))}return e.onScopeDispose(()=>{n&&cancelAnimationFrame(n)}),{refresh:r,schedule:o}}async function bn(t,n,a,r){if(!n?.assetRenderers||!Object.keys(n.assetRenderers).length)return t;try{return(await q.resolvePlanAssets(t,{...n,signal:a,format:"dom",onDiagnostic:l=>{a.aborted||(n.onDiagnostic?.(l),r(l.message))}})).plan}catch(o){throw a.aborted?o:new pe.MachReportError("render",o instanceof Error?o.message:"Report asset preparation failed",o)}}function wn(t,n){const a=q.validateRenderPlan(t);if(!a.ok)throw new pe.MachReportError("validate",`渲染计划校验失败(${a.errors.length} 处): ${a.errors.slice(0,3).map(r=>`${r.path}: ${r.message}`).join("; ")}`);a.warnings.forEach(r=>n(`${r.path}: ${r.message}`))}async function Yl(t,n,a,r){const o=await se.waitForOutput(t(n),n.signal);return se.assertOutputActive(n.signal),r("validate"),wn(o,n.onWarning??(()=>{})),se.assertOutputActive(n.signal),r("assets"),bn(o,a,n.signal,n.onWarning??(()=>{}))}async function Xl(t,n,a,r,o,l){const{importExcelTemplate:s}=await import("@agile-team/mach-report/xlsx");se.assertOutputActive(r);const i=await se.waitForOutput(s(t,{...n,signal:r}),r);l("layout");const c=q.paginateTemplate(ge(i.template),{}).plan;wn(c,o),se.assertOutputActive(r),l("assets");const g=await bn(c,a,r,o);return{result:i,plan:g}}const Ql={key:7,class:"mrp-edit-hint",role:"status"},_l={key:9,class:"mrp-export-notice mrp-export-warning",role:"status"},es={class:"mrp-main"},ts={key:0,class:"mrp-state"},ns={key:1,class:"mrp-state mrp-error"},as=["data-page"],os=["aria-label","aria-current","onClick"],rs=["data-thumb"],ls={class:"mrp-thumb-no"},ss={key:10,class:"mrp-footer"},is={class:"mrp-footer-context"},cs=["aria-label"],us={key:0},ds={class:"mrp-overlay"},ms={key:11,class:"mrp-debug","aria-hidden":"true"},wt=96/25.4,xt="mach-report:ui",kt="mach-report:ui:wide",fs=e.defineComponent({__name:"ReportPreview",props:{reportId:{type:[String,Array],default:null},params:{type:Object,default:()=>({})},height:{type:String,default:"100vh"},autoLoad:{type:Boolean,default:!0},showExport:{type:Boolean,default:void 0},showPrint:{type:Boolean,default:void 0},showPdfWindow:{type:Boolean,default:void 0},showSettings:{type:Boolean,default:void 0},toolbar:{type:Object,default:void 0},interaction:{type:Object,default:void 0},preferences:{type:Object,default:void 0},guardChanges:{type:Boolean,default:void 0},beforeDiscard:{type:Function,default:void 0},output:{type:Object,default:void 0},assets:{type:Object,default:void 0},emptyState:{type:[Boolean,Object],default:!1},gapPx:{type:Number,default:void 0},messages:{type:Object,default:void 0},preset:{type:String,default:void 0},debug:{type:Boolean,default:!1},paramDefs:{type:Array,default:void 0},showParams:{type:Boolean,default:void 0},editable:{type:[Boolean,Object],default:void 0},excelImport:{type:[Boolean,Object],default:void 0},fetcher:{type:Function,default:null}},emits:["loaded","task","diagnostic","error","warning","cell-edit","template-import","preferences-change"],setup(t,{expose:n,emit:a}){const r=t,o=a,l=e.shallowRef(null),s=e.ref(!1),i=e.ref(""),c=e.shallowRef(null),g=e.ref(null),h=e.ref(!1),f=e.ref(null),m=e.ref(1),k=e.ref(null),y=e.ref(null),v=e.ref(null),u=e.ref(!1),S=e.ref(!1),p=e.ref(!1),E=e.ref("general"),D=e.shallowRef(null),P=e.ref(null),M=e.ref(null),F=wa();let G=null,W=!1;const Z=Pr(d=>o("task",d)),ee=Rr(d=>o("diagnostic",d)),ie=e.shallowRef(null),te=e.computed(()=>!!l.value?.pages.length&&l.value.pages.every(d=>d.layout==="wide"));let w=xt;const $=e.inject(ht.MACH_REPORT_FETCHER_KEY,null),b=e.inject(ht.MACH_REPORT_PDF_EXPORTER_KEY,null),N=e.computed(()=>It(r.reportId)),V=e.computed(()=>r.fetcher??$),I=e.computed(()=>l.value?.pages.length??0),A=e.computed(()=>Object.freeze({loading:s.value,hasPlan:I.value>0,pageCount:I.value,currentPage:m.value,exporting:g.value,printing:h.value,canExport:!s.value&&!S.value&&!L.saving.value&&I.value>0&&g.value===null,canPrint:!s.value&&!S.value&&!L.saving.value&&I.value>0&&!h.value,error:c.value,pdfFont:Pt.value,editing:L.active.value!==null,saving:L.saving.value,importing:S.value,dirty:L.differences.value.length>0,pendingLocalChanges:L.pendingLocalChanges.value,task:Z.state.value,diagnostics:ee.entries.value,reportIds:ie.value?.reportIds??[],params:ie.value?.params??{},canUndo:L.canUndo.value,canRedo:L.canRedo.value,changeCount:L.differences.value.length,selection:Q.selection.value?ge(Q.selection.value):null}));function K(d,C,T){c.value=Object.freeze({message:d,code:C,cause:T}),o("error",d,{code:C,cause:T})}const{resolved:j,resolvedMessages:R,effectiveShowExport:ne,effectiveShowSettings:X,effectiveGuardChanges:oe,effectiveOutput:Ce,effectiveInteraction:ve,effectiveAssets:x,effectiveGapPx:B,effectiveShowParams:z,availableTools:O,tools:J,toolState:U,visibleExportFormats:ce,effectiveEditable:ue,effectiveExcelImport:he,persistedEditing:Ke,emptyStateContent:tt,sessionInteraction:nt}=Fl(r,te,d=>o("warning",d)),Vt=e.computed(()=>U.value.pdf||U.value.pdfWindow),at=e.computed(()=>ve.value.calculations===!0),ot=e.computed(()=>pe.resolveCalculationMessages(R.value)),{pdfFont:Pt,getPdfExporter:kn,checkPdfFont:En,retryPdfFont:Rt,cancelFontCheck:Cn}=Ir({plan:l,fontUrl:()=>j.value.pdfFontUrl,enabled:()=>Vt.value,injectedExporter:b,destroyed:()=>W});async function Sn(d,C){d==="editing"&&!C&&!await L.settle()||(J.setEnabled(d,C),o("preferences-change",Object.freeze({...U.value})))}async function Nn(){await L.settle()&&(J.reset(),nt.value={},o("preferences-change",Object.freeze({...U.value})))}async function Dt(d="general"){if(p.value){p.value=!1;return}const C=L.settle();!(typeof C=="boolean"?C:await C)||W||!X.value||(E.value=d,p.value=!0)}function Tt(d){return d instanceof q.ReportCellEditError?{number:R.value.editInvalidNumber,boolean:R.value.editInvalidBoolean,conflict:R.value.editConflict,atomic:R.value.editAtomicRequired,limit:R.value.clipboardLimit,readonly:R.value.editReadOnly,missing:R.value.editMissing,recalculation:R.value.editRecalculationUnavailable,duplicate:R.value.editDuplicate,clipboard:R.value.clipboardInvalid}[d.code]??d.message:d instanceof Error?d.message:"单元格保存失败"}const L=Ml({plan:l,options:ue,blocked:()=>s.value||S.value||g.value!==null||h.value||be.pending.value,label:()=>R.value.editCell??"编辑单元格",errorMessage:Tt,suspendBlur:()=>be.request.value!==null,onChange:d=>{c.value=null,f.value=null,o("cell-edit",d)},onError:(d,C)=>{f.value={kind:"error",message:d},K(d,"edit",C)},onNavigate:(d,C,T)=>Q.navigate(d,C,T)}),Q=Jl({plan:l,root:k,enabled:()=>!!ue.value||at.value,editable:()=>!!ue.value,busy:()=>s.value||S.value||L.saving.value||!!g.value||h.value||be.pending.value,differences:()=>L.differences.value,gotoPage:me,edit:L.editCell,apply:L.apply,undo:L.undo,redo:L.redo,error:d=>{const C=Tt(d);f.value={kind:"error",message:C},K(C,"edit",d)}}),rt=Mo({plan:l,selection:Q.selection,enabled:()=>at.value});function Bn(){Dt("advanced")}const be=$r({pending:()=>L.pendingLocalChanges.value,reportIds:()=>ie.value?.reportIds??N.value,hook:()=>r.beforeDiscard??j.value.beforeDiscard,enabled:()=>oe.value,snapshot:()=>[l.value,L.active.value?.editor.input.value],error:d=>K(d instanceof Error?d.message:"修改保护回调失败","config",d)});async function In(d="leave"){return be.check(d)}function Mt(d){!oe.value||!L.pendingLocalChanges.value||(d.preventDefault(),d.returnValue="")}function zt(){Z.cancel()}function $n(d){const C=L.resolveAddress(d);C&&Q.focusCell(C)}async function Ot(d){await Q.focusField(d)||(f.value={kind:"warning",message:R.value.locateFieldMissing??"Field not found"})}function Vn(d){if(d.pageIndex===void 0)return;me(d.pageIndex+1);const C=d.componentPath;d.componentIndex!==void 0&&C&&C.length===2&&Q.focusCell({pageIndex:d.pageIndex,componentIndex:d.componentIndex,rowIndex:C[0],columnIndex:C[1]})}function lt(d){const C=l.value;if(!C)return!1;const T={excel:"xlsx",image:"png",doc:"word"}[d]??d,ae=T==="pdf"?"pdf":T==="xlsx"?"xlsx":T==="png"?"canvas":"dom",Y=ee.inspect(C,ae);return l.value!==C?!1:Y.length&&Ce.value.fidelity==="strict"?(f.value={kind:"error",message:R.value.diagnosticsStrict??"输出存在已知降级"},K(f.value.message,"export",{diagnostics:Y}),!1):!0}function Pn(d){return l.value?ee.inspect(l.value,d):[]}const je=e.computed(()=>{if(D.value)return D.value.sheets.map(C=>({label:C.name,pageIndex:C.pageStart}));const d=new Set;return l.value?.pages.flatMap((C,T)=>C.components.flatMap(ae=>{const Y=ae.table;return!Y?.title||d.has(Y.id)?[]:(d.add(Y.id),[{label:Y.title,pageIndex:T}])}))??[]});async function Ft(d){d&&!await Q.focusField({field:d})&&(f.value={kind:"warning",message:R.value.locateFieldMissing??"Field not found"})}const st=e.computed(()=>{try{return{defs:r.paramDefs??V.value?.getParamDefs?.(N.value)??[],error:null}}catch(d){return{defs:[],error:new pe.MachReportError("config",d instanceof Error?d.message:"查询参数配置无效",d)}}}),it=e.computed(()=>st.value.defs),Me=pe.useReportParams({defs:it,reportIds:N,params:()=>r.params,messages:()=>R.value}),{values:ze,attempted:We,pendingRequired:At}=Me,Lt=e.ref(null);function Rn(){We.value=!0,Me.validation.value.ok||e.nextTick(()=>Lt.value?.focusInvalid()),Be()}function Dn(){Me.reset(),i.value="",c.value=null}const Tn=e.computed(()=>({height:r.height,"--mrp-page-gap":`${Math.max(0,B.value)}px`,...pe.themeToCssVars(j.value.theme)})),{zoom:de,zoomMode:Oe,applyFitZoom:qt,setZoom:Fe}=cn(()=>({viewport:y.value,pageWidthPx:ct.contentSize.value.w||210*wt})),ct=sn(l,de,{pxPerMm:wt,gapPx:B,overscan:e.computed(()=>j.value.preview.overscanPages)}),{contentSize:ut,windowRange:Ae,visiblePages:Kt,makeScrollHandler:Mn,refreshViewport:jt}=ct,zn=Mn(m,I),dt=Zl({root:k,viewport:y,plan:l,zoom:de,options:()=>ve.value});e.watch([ve,de],()=>dt.schedule(),{flush:"post"});function mt(d){Fe(d*100)}function Ne(){S.value=!1,L.reset(),Q.reset(),D.value=null,Ht(),l.value=null,ie.value=null,ee.reset(),m.value=1,_.reset()}let re=0,le=null;function He(d,C){return d===re&&!C.signal.aborted&&!W}function Wt(){y.value&&(y.value.scrollTop=0,y.value.scrollLeft=0)}function On(d,C){for(const T of d){if(C!==re)return!1;o("warning",T)}return C===re}function Fn(){if(st.value.error){const C=st.value.error;return Ne(),i.value=C.message,K(C.message,C.code,C.cause),null}const d=Me.query();return d.params?d.params:(Ne(),i.value=d.quiet?"":d.error.message,d.quiet||(We.value=!0,K(d.error.message,d.error.code,d.error.cause)),null)}async function Be(){if(W||oe.value&&L.pendingLocalChanges.value&&!await be.check("reload")||W)return;const d=++re;S.value=!1,le?.abort(),le=null;const C=V.value;if(s.value=!1,c.value=null,N.value.length===0){i.value="缺少报表 ID",Ne(),K(i.value,"param");return}if(!C){i.value="未提供渲染数据源 fetcher",Ne(),K(i.value,"config");return}const T=Fn();if(!T)return;s.value=!0,i.value="",f.value=null,Ne();const ae=F.start(),Y=new AbortController;le=Y;const xe=Z.start("query","query",()=>{le===Y&&(Y.abort(),re++,le=null,s.value=!1)}),Ue=[...N.value],ye=Object.freeze({...T}),Ee=new Set;function Ve(fe){d!==re||Y.signal.aborted||Ee.has(fe)||(Ee.add(fe),j.value.logger.warn("[mach-report] 报表告警:",fe),ee.add({code:"layout",severity:"warning",message:fe}),o("warning",fe))}try{const fe=await Yl(C,{reportIds:Ue,params:T,taskId:xe.taskId,onEvent:Se=>{d===re&&!Y.signal.aborted&&xe.update(Se.stage,Se.completed,Se.total)},onQueryResult:(Se,Yn)=>{d===re&&!Y.signal.aborted&&ee.addMany(Yn.diagnostics??[])},signal:Y.signal,onWarning:Ve},x.value,xe.update);if(!He(d,Y)||(l.value=fe,ie.value=Object.freeze({reportIds:Object.freeze(Ue),params:ye}),ee.inspect(fe,"dom"),!He(d,Y)))return;xe.finish(),m.value=1,F.end(ae),Wt();const Pe=te.value?kt:xt;Pe!==w&&(w=Pe,gt()),Oe.value==="fit"&&qt(),o("loaded",fe.pages.length)}catch(fe){if(d!==re)return;if(Y.signal.aborted){xe.finish("cancelled");return}xe.finish("failed");const Pe=pe.normalizeReportLoadError(fe);i.value=Pe.message;const Se=pe.toErrorDetail(Pe);K(Pe.message,Se.code,Se.cause)}finally{d===re&&(s.value=!1),le===Y&&(le=null)}}function me(d){if(W||I.value<=0)return;const C=Math.max(1,Math.min(I.value,d));m.value=C;const T=y.value;T&&(ct.scrollToPage(T,C-1),Jn.prioritize(C-1))}const Ie=mn(l,{getPdfExporter:kn,beforeOutput:()=>L.settle(),onTask:d=>Z.receive(d,()=>Ie.cancel()),onDiagnostic:ee.add,getXlsxOptions:()=>j.value.xlsx,onError:(d,C)=>{f.value={kind:"error",message:d},K(d,C??"print")},onWarning:d=>{f.value={kind:"warning",message:d},ee.add({code:"output",severity:"warning",message:d}),o("warning",d)},onBusy:d=>{g.value=d,d?f.value={kind:"progress",message:R.value.exporting.replace("{format}",d)}:f.value?.kind==="progress"&&(f.value=null)},onPrinting:d=>{h.value=d}}),{releasePrintFrame:Ht,dispose:An}=Ie;async function Ut(){if(s.value||S.value)return;const d=L.settle();(typeof d=="boolean"?d:await d)&&(c.value=null,lt("html")&&await Ie.print())}async function Gt(d){if(s.value||S.value)return;const C=L.settle();(typeof C=="boolean"?C:await C)&&(c.value=null,lt(d)&&await Ie.exportAs(d))}function Jt(){if(s.value||S.value||L.active.value||L.saving.value){f.value={kind:"warning",message:R.value.editingHint??"请先确认单元格修改"};return}c.value=null,lt("pdf")&&Ie.openPdfWindow()}async function Ln(d,C={}){W||(ze.value={...ze.value,...d},C.reload!==!1&&(We.value=!0,await Be()))}const Zt={reload:Be,print:Ut,exportAs:Gt,openPdfWindow:Jt,gotoPage:me,setParams:Ln,checkPdfFont:En,importExcel:Yt,getPlan:qn,cancelTask:zt,confirmDiscard:In,getOutputDiagnostics:Pn,getChanges:L.getChanges,undo:L.undo,redo:L.redo,restoreChanges:L.restore,getDifferences:()=>ge(L.differences.value),getSelection:()=>Q.selection.value?ge(Q.selection.value):null,focusCell:Q.focusCell,focusField:Q.focusField,copySelection:Q.copySelection,pasteSelection:Q.pasteSelection,get state(){return A.value}};e.provide(ht.MACH_REPORT_CONTROLLER_KEY,Zt);function qn(){return l.value?ge(l.value):null}function Kn(d){const C=typeof he.value=="object"?he.value:{};return{...C,...d,limits:{...C.limits,...d?.limits}}}function jn(d,C){L.reset(),Q.reset(),Ht(),_.reset(),l.value=d,ie.value=null,ee.reset(),D.value={sheets:ge(C.sheets),warnings:[...C.warnings]},m.value=1,i.value="",f.value=C.warnings.length?{kind:"warning",message:C.warnings.join(";")}:null,Wt(),w=te.value?kt:xt,gt(),ee.addMany(C.warnings.map(T=>({code:"excel-import",severity:"warning",message:T}))),l.value===d&&ee.inspect(d,"dom")}async function Yt(d,C){if(W)throw new pe.MachReportError("config","报表预览已卸载");if(oe.value&&L.pendingLocalChanges.value&&!await be.check("import")||W)return null;const T=++re;le?.abort(),le=null,s.value=!1,L.cancel(),Ie.invalidatePending(),S.value=!0;const ae=new AbortController;le=ae,c.value=null,f.value={kind:"progress",message:R.value.importing??"正在导入 Excel…"};const Y=Z.start("import","import",()=>{le===ae&&(ae.abort(),re++,le=null,S.value=!1,f.value=null)}),xe=Kn(C),Ue=se.forwardOutputAbort(xe.signal,ae);try{const{result:ye,plan:Ee}=await Xl(d,{...xe,onProgress:(Ve,fe)=>{Y.update("import",Ve,fe),xe.onProgress?.(Ve,fe)}},x.value,ae.signal,Ve=>{T===re&&o("warning",Ve)},Y.update);return!He(T,ae)||!On(ye.warnings,T)||(jn(Ee,ye),!He(T,ae))?null:(Y.finish(),o("template-import",ye),T===re&&o("loaded",Ee.pages.length),ye)}catch(ye){if(T!==re)return null;if(ae.signal.aborted)return Y.finish("cancelled"),null;Y.finish("failed");const Ee=new pe.MachReportError("import",ye instanceof Error?ye.message:"Excel 模板导入失败",ye);throw f.value={kind:"error",message:Ee.message},K(Ee.message,"import",ye),Ee}finally{Ue(),T===re&&(S.value=!1),le===ae&&(le=null)}}function Wn(d){const C=d.target,T=C.files?.[0];C.value="",T&&Yt(T).catch(()=>{})}const _=ha({plan:l,gotoPage:me,debounceMs:e.computed(()=>j.value.preview.searchDebounceMs),highlight:ua,clearHighlights:ca});e.watch(()=>U.value.search,d=>{d||(_.reset(),_.visible.value=!1)});function Hn(d){!d.ctrlKey||!U.value.zoom||(d.preventDefault(),mt(de.value*(d.deltaY<0?1.1:1/1.1)))}function Un(d){if(!Q.onKeydown(d)&&!(d.target instanceof Element&&d.target.closest("input,textarea,select,[contenteditable='true']"))){if(U.value.search&&(d.ctrlKey||d.metaKey)&&d.key.toLowerCase()==="f"){d.preventDefault(),_.visible.value||_.toggle(),e.nextTick(()=>M.value?.focusSearch());return}switch(d.key){case"PageDown":d.preventDefault(),me(m.value+1);break;case"PageUp":d.preventDefault(),me(m.value-1);break;case"Home":d.preventDefault(),me(1);break;case"End":d.preventDefault(),me(I.value);break;case"+":case"=":d.preventDefault(),U.value.zoom&&mt(de.value*1.1);break;case"-":d.preventDefault(),U.value.zoom&&mt(de.value/1.1);break}}}function Gn(){try{localStorage.setItem(w,JSON.stringify({zoomMode:Oe.value==="fit"?"fit":Math.round(de.value*100)}))}catch{}}e.watch([Oe,de],Gn);let ft="";function Xt(d=!1){const C=_.activeMatch.value;if(!te.value||!C)return;const T=`${_.query.value}:${_.matchIndex.value}:${C.pageIndex}`;if(!d&&T===ft)return;const Y=k.value?.querySelector(`[data-page="${C.pageIndex+1}"]`)?.querySelectorAll("mark.mrp-hit")[C.occurrence];Y&&(Y.scrollIntoView?.({block:"nearest",inline:"nearest"}),ft=T)}const Jn=ra({plan:l,root:k,pages:()=>Kt.value,priority:()=>_.activeMatch.value?.pageIndex??m.value-1,focusToken:()=>_.activeMatch.value,query:()=>_.query.value,zoom:()=>de.value,loading:()=>R.value.loading,clear:_.clear,highlight:_.apply,mounted:d=>{Q.refresh(d),dt.schedule()},ready:()=>{_.activeMatch.value||(ft=""),Xt()},error:d=>{i.value=d instanceof Error?d.message:String(d),K(i.value,"render",d)}});e.watch(()=>Q.selection.value,()=>{Q.refresh()},{flush:"post"}),e.watch(()=>_.query.value,d=>{d||k.value?.querySelectorAll(".mrp-page-holder").forEach(C=>{_.clear(C)})});const we=ba(l,{thumbsRoot:v,visible:u,renderThumbCanvas:d=>{try{const C=l.value.pages[d],T=Math.min(.2,116/Math.max(1,C.pageWidthMm*wt)),{canvases:ae}=q.renderPlanToCanvas(l.value,{start:d,end:d,dpr:T});return ae[0]??null}catch{return null}}});e.watchEffect(()=>{we.schedule()},{flush:"post"});const Zn=e.computed(()=>r.debug),{debugStats:$e}=ya(Zn,{plan:l,pageCount:I,windowRange:Ae,zoom:de,loadMs:F.loadMs});function pt(){jt(y.value),we.schedule(),Oe.value==="fit"&&qt(),Xt(!0)}function gt(){Fe(w===kt?100:"fit");try{const d=JSON.parse(localStorage.getItem(w)??"{}");d.zoomMode==="fit"?Fe("fit"):typeof d.zoomMode=="number"&&Fe(d.zoomMode)}catch{}}return e.onMounted(()=>{window.addEventListener("resize",pt),window.addEventListener("beforeunload",Mt),typeof ResizeObserver<"u"&&y.value&&(G=new ResizeObserver(pt),G.observe(y.value)),jt(y.value),gt(),r.autoLoad&&Be()}),e.onUnmounted(()=>{W=!0,be.cancel(),Z.cancel(),L.reset(),S.value=!1,Cn(),re++,le?.abort(),le=null,window.removeEventListener("resize",pt),window.removeEventListener("beforeunload",Mt),G?.disconnect(),G=null,we.destroy(),_.reset(),An()}),e.watch(()=>[JSON.stringify(N.value),JSON.stringify(r.params),V.value],async()=>{if(r.autoLoad){Be();return}!await be.check("replace")||W||(re++,le?.abort(),le=null,s.value=!1,i.value="",c.value=null,f.value=null,Ne())}),n({...Zt,state:A}),(d,C)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["mach-report-preview",{"mrp-wide-report":te.value}]),style:e.normalizeStyle(Tn.value)},[e.unref(z)&&it.value.length>0?(e.openBlock(),e.createBlock(pe.ReportParamPanel,{key:0,ref_key:"paramPanelRef",ref:Lt,defs:it.value,modelValue:e.unref(ze),"onUpdate:modelValue":C[0]||(C[0]=T=>e.isRef(ze)?ze.value=T:null),messages:e.unref(R),attempted:e.unref(We),issues:e.unref(Me).validation.value.issues,onQuery:Rn,onReset:Dn},null,8,["defs","modelValue","messages","attempted","issues"])):e.createCommentVNode("",!0),e.createVNode(gn,{ref_key:"toolbarRef",ref:M,"page-count":I.value,"current-page":m.value,"zoom-mode":e.unref(Oe),zoom:e.unref(de),"show-export":e.unref(ne),"show-print":e.unref(U).print,"show-pdf-window":e.unref(U).pdfWindow,"show-search":e.unref(U).search,"show-thumbnails":e.unref(U).thumbnails,"show-zoom":e.unref(U).zoom,"export-formats":e.unref(ce),"show-settings":e.unref(X),"settings-open":p.value,messages:e.unref(R),search:{visible:e.unref(_).visible.value,query:e.unref(_).query.value,matchIndex:e.unref(_).matchIndex.value,matchCount:e.unref(_).matchCount.value,searching:e.unref(_).searching.value},"thumbs-visible":u.value,"show-import":!!e.unref(he),busy:s.value||S.value||e.unref(L).saving.value,onGoto:me,onZoom:e.unref(Fe),onExport:C[1]||(C[1]=T=>Gt(T)),onPrint:Ut,onPdfWindow:Jt,onSearchInput:e.unref(_).onInput,onSearchNav:e.unref(_).onNav,onSearchToggle:e.unref(_).toggle,onThumbsToggle:C[2]||(C[2]=T=>u.value=!u.value),onImportExcel:C[3]||(C[3]=T=>P.value?.click()),onSettingsToggle:Dt},e.createSlots({_:2},[je.value.length<=1?{name:"navigation",fn:e.withCtx(()=>[I.value>0&&e.unref(ve).navigation!==!1?(e.openBlock(),e.createBlock(an,{key:0,plan:l.value,compact:"",sections:je.value,"current-page":m.value,messages:e.unref(R),busy:s.value||S.value||e.unref(L).saving.value,onLocateTarget:Ot,onGoto:me,onLocate:Ft},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0)]),key:"0"}:void 0]),1032,["page-count","current-page","zoom-mode","zoom","show-export","show-print","show-pdf-window","show-search","show-thumbnails","show-zoom","export-formats","show-settings","settings-open","messages","search","thumbs-visible","show-import","busy","onZoom","onSearchInput","onSearchNav","onSearchToggle"]),e.unref(be).request.value?(e.openBlock(),e.createBlock(mr,{key:1,messages:e.unref(R),onAnswer:e.unref(be).settle},null,8,["messages","onAnswer"])):e.createCommentVNode("",!0),e.createVNode(hr,{task:e.unref(Z).state.value,messages:e.unref(R),onCancel:zt},null,8,["task","messages"]),e.createVNode(Cr,{entries:e.unref(ee).entries.value,messages:e.unref(R),onLocate:Vn},null,8,["entries","messages"]),p.value&&e.unref(X)?(e.openBlock(),e.createBlock(lr,{key:2,available:e.unref(O),enabled:e.unref(U),messages:e.unref(R),"persisted-editing":e.unref(Ke),interaction:e.unref(ve),section:E.value,busy:s.value||S.value||e.unref(L).saving.value||!!g.value||h.value,onSection:C[4]||(C[4]=T=>E.value=T),onInteraction:C[5]||(C[5]=T=>nt.value={...e.unref(nt),...T}),onChange:Sn,onReset:Nn,onClose:C[6]||(C[6]=T=>p.value=!1)},{advanced:e.withCtx(()=>[e.createVNode(To,{state:e.unref(rt),messages:ot.value},null,8,["state","messages"])]),default:e.withCtx(()=>[e.renderSlot(d.$slots,"settings",{},void 0,!0)]),_:3},8,["available","enabled","messages","persisted-editing","interaction","section","busy"])):e.createCommentVNode("",!0),je.value.length>1&&I.value>0&&e.unref(ve).navigation!==!1?(e.openBlock(),e.createBlock(an,{key:3,plan:l.value,onLocateTarget:Ot,sections:je.value,"current-page":m.value,messages:e.unref(R),busy:s.value||S.value||e.unref(L).saving.value,onGoto:me,onLocate:Ft},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0),D.value?(e.openBlock(),e.createBlock(wl,{key:4,result:D.value,messages:e.unref(R)},null,8,["result","messages"])):e.createCommentVNode("",!0),e.unref(ue)&&I.value>0?(e.openBlock(),e.createBlock(Jr,{key:5,differences:e.unref(L).differences.value,conflicts:e.unref(L).conflicts.value,messages:e.unref(R),saving:e.unref(L).saving.value,"can-undo":e.unref(L).canUndo.value,"can-redo":e.unref(L).canRedo.value,persisted:e.unref(Ke),busy:!!g.value||h.value,onUndo:e.unref(L).undo,onRedo:e.unref(L).redo,onRestore:e.unref(L).restore,onLocate:$n},null,8,["differences","conflicts","messages","saving","can-undo","can-redo","persisted","busy","onUndo","onRedo","onRestore"])):e.createCommentVNode("",!0),e.unref(he)?(e.openBlock(),e.createElementBlock("input",{key:6,ref_key:"importInputRef",ref:P,class:"mrp-import-input",type:"file",accept:".xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",hidden:"",onChange:Wn},null,544)):e.createCommentVNode("",!0),e.unref(ue)&&I.value>0?(e.openBlock(),e.createElementBlock("div",Ql,e.toDisplayString(e.unref(L).saving.value?e.unref(R).saving:e.unref(R).editingHint),1)):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("div",{key:8,class:e.normalizeClass(["mrp-export-notice",`mrp-export-${f.value.kind}`]),role:"alert"},e.toDisplayString(f.value.message),3)):e.createCommentVNode("",!0),e.unref(Pt).status==="error"&&Vt.value?(e.openBlock(),e.createElementBlock("div",_l,[e.createTextVNode(e.toDisplayString(e.unref(R).pdfFontUnavailable)+" ",1),e.createElementVNode("button",{type:"button",onClick:C[7]||(C[7]=(...T)=>e.unref(Rt)&&e.unref(Rt)(...T))},e.toDisplayString(e.unref(R).retry),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",es,[e.createElementVNode("div",{ref_key:"viewportRef",ref:y,class:"mrp-body",tabindex:"0",onWheel:Hn,onKeydown:Un,onDblclick:C[8]||(C[8]=(...T)=>e.unref(L).onDoubleClick&&e.unref(L).onDoubleClick(...T)),onClick:C[9]||(C[9]=(...T)=>e.unref(Q).onClick&&e.unref(Q).onClick(...T)),onCopy:C[10]||(C[10]=(...T)=>e.unref(Q).onCopy&&e.unref(Q).onCopy(...T)),onPaste:C[11]||(C[11]=(...T)=>e.unref(Q).onPaste&&e.unref(Q).onPaste(...T)),onScrollPassive:C[12]||(C[12]=T=>{e.unref(zn)(T.target),e.unref(dt).schedule()})},[s.value?(e.openBlock(),e.createElementBlock("div",ts,e.toDisplayString(e.unref(R).loading),1)):i.value?(e.openBlock(),e.createElementBlock("div",ns,[e.createTextVNode(e.toDisplayString(i.value)+" ",1),e.createElementVNode("button",{class:"mrp-retry",type:"button",onClick:Be},e.toDisplayString(e.unref(R).retry),1)])):!l.value||I.value===0?(e.openBlock(),e.createBlock(tn,{key:2,title:e.unref(At)?e.unref(R).paramPrompt??e.unref(R).paramsTitle:e.unref(R).empty,description:e.unref(At)?e.unref(R).paramPromptDescription:e.unref(tt).description??e.unref(R).emptyDescription},null,8,["title","description"])):(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-scale",style:e.normalizeStyle({width:`${e.unref(ut).w*e.unref(de)}px`,height:`${e.unref(ut).h*e.unref(de)}px`})},[e.createElementVNode("div",{ref_key:"containerRef",ref:k,class:"mrp-scale-inner",style:e.normalizeStyle({transform:`scale(${e.unref(de)})`,transformOrigin:"top left",width:`${e.unref(ut).w}px`})},[e.unref(Ae).padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-spacer-top",style:e.normalizeStyle({height:`${e.unref(Ae).padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Kt),T=>(e.openBlock(),e.createElementBlock("div",{key:T.index,class:"mrp-page-holder","data-page":T.index+1},null,8,as))),128)),e.unref(Ae).padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-spacer-bottom",style:e.normalizeStyle({height:`${e.unref(Ae).padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],4)],4)),!s.value&&!i.value&&l.value&&I.value>0&&t.emptyState?(e.openBlock(),e.createBlock(tn,{key:4,title:e.unref(tt).title??e.unref(R).empty,description:e.unref(tt).description??e.unref(R).emptyDescription},null,8,["title","description"])):e.createCommentVNode("",!0)],544),e.unref(U).thumbnails&&u.value&&I.value>0?(e.openBlock(),e.createElementBlock("aside",{key:0,ref_key:"thumbsRef",ref:v,class:"mrp-thumbs",onScrollPassive:C[13]||(C[13]=(...T)=>e.unref(we).onScroll&&e.unref(we).onScroll(...T))},[e.unref(we).windowRange.value.padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-thumb-spacer",style:e.normalizeStyle({height:`${e.unref(we).windowRange.value.padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(we).visibleThumbs.value,T=>(e.openBlock(),e.createElementBlock("button",{key:T.index,class:e.normalizeClass(["mrp-thumb",{"mrp-thumb-active":T.index+1===m.value}]),type:"button","aria-label":`${e.unref(R).thumbnails} · ${e.unref(R).pageInfo.replace("{cur}",String(T.index+1)).replace("{total}",String(I.value))}`,"aria-current":T.index+1===m.value?"page":void 0,style:e.normalizeStyle({height:`${T.height+20}px`}),onClick:ae=>me(T.index+1)},[e.createElementVNode("span",{class:"mrp-thumb-box","data-thumb":T.index+1,style:e.normalizeStyle({height:`${T.height}px`})},null,12,rs),e.createElementVNode("span",ls,e.toDisplayString(T.index+1),1)],14,os))),128)),e.unref(we).windowRange.value.padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-thumb-spacer",style:e.normalizeStyle({height:`${e.unref(we).windowRange.value.padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)]),I.value>0?(e.openBlock(),e.createElementBlock("footer",ss,[e.createElementVNode("div",is,[e.unref(ve).navigation!==!1?(e.openBlock(),e.createBlock(ho,{key:0,plan:l.value,"current-page":m.value,messages:e.unref(R),busy:s.value||S.value||e.unref(L).saving.value,onGoto:me},null,8,["plan","current-page","messages","busy"])):e.createCommentVNode("",!0),at.value&&e.unref(X)?(e.openBlock(),e.createElementBlock("button",{key:1,class:"mrp-calculation-toggle",type:"button","aria-label":ot.value.calculationTitle,onClick:Bn},[C[14]||(C[14]=e.createElementVNode("span",{"aria-hidden":"true"},"∑",-1)),e.createTextVNode(e.toDisplayString(ot.value.calculationTitle),1),e.unref(rt).result.value?(e.openBlock(),e.createElementBlock("strong",us,e.toDisplayString(e.unref(rt).result.value.formatted),1)):e.createCommentVNode("",!0)],8,cs)):e.createCommentVNode("",!0)]),e.createVNode($t,{"page-count":I.value,"current-page":m.value,messages:e.unref(R),busy:s.value||S.value||e.unref(L).saving.value,onGoto:me},null,8,["page-count","current-page","messages","busy"])])):e.createCommentVNode("",!0),e.createElementVNode("div",ds,[e.renderSlot(d.$slots,"default",{},void 0,!0)]),e.unref($e)?(e.openBlock(),e.createElementBlock("div",ms,[C[15]||(C[15]=e.createElementVNode("div",null,"mach-report debug",-1)),e.createElementVNode("div",null,"pages: "+e.toDisplayString(e.unref($e).pages)+" | window: ["+e.toDisplayString(e.unref($e).window)+"]",1),e.createElementVNode("div",null,"zoom: "+e.toDisplayString(e.unref($e).zoom)+" | load: "+e.toDisplayString(e.unref($e).loadMs),1),e.createElementVNode("div",null,"plan: "+e.toDisplayString(e.unref($e).planKB)+"KB",1)])):e.createCommentVNode("",!0)],6))}}),xn=H._export_sfc(fs,[["__scopeId","data-v-de257140"]]),ps=Object.freeze(Object.defineProperty({__proto__:null,default:xn},Symbol.toStringTag,{value:"Module"}));exports.PlanLoadError=Ge;exports.REPORT_EXPORT_FORMATS=_e;exports.REPORT_PREVIEW_TOOLS=St;exports.ReportPagination=$t;exports.ReportPreview=xn;exports.ReportPreview$1=ps;exports.ReportToolbar=gn;exports.buildPrintDocument=un;exports.buildWordHtml=ia;exports.cloneReportSnapshot=ge;exports.createDefaultPdfExporter=vn;exports.createFetchRequest=oa;exports.createReportStoragePreferences=zl;exports.joinReportIds=aa;exports.normalizeReportIds=It;exports.printPlans=sa;exports.usePageWindow=sn;exports.usePrintExport=mn;exports.useZoom=cn;