@agile-team/mach-report 2.10.0 → 2.11.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.
- package/README.md +6 -2
- package/dist/ExcelBindingWizard-CjIiVox-.cjs +1 -0
- package/dist/ExcelBindingWizard-Dxm-K5HL.js +1240 -0
- package/dist/ParamEditor-D-Hf5xfO.cjs +1 -0
- package/dist/ParamEditor-DRGxzxeO.js +381 -0
- package/dist/ReportBatchPanel-BYgg0EDB.cjs +1 -0
- package/dist/ReportBatchPanel-Bby5yLzU.js +287 -0
- package/dist/ReportPreview-DWXROHBP.cjs +6 -0
- package/dist/ReportPreview-DiNXhQI0.js +4138 -0
- package/dist/ReportTemplateLibrary-C6CO7YCT.cjs +1 -0
- package/dist/ReportTemplateLibrary-DfzDXRvr.js +260 -0
- package/dist/RuleEditor-C2QsOHOs.cjs +1 -0
- package/dist/RuleEditor-D9wQHrkf.js +2024 -0
- package/dist/TemplateReviewPanel-BKofGrV9.js +222 -0
- package/dist/TemplateReviewPanel-DwtOcLue.cjs +1 -0
- package/dist/analytics.cjs +1 -1
- package/dist/analytics.d.cts +2 -0
- package/dist/analytics.d.ts +2 -0
- package/dist/analytics.js +29 -29
- package/dist/batch-Bt3Fd27Z.cjs +1 -0
- package/dist/batch-mRqhhhjt.js +364 -0
- package/dist/computed-Bvk0W15F.js +521 -0
- package/dist/computed-CGV2a809.cjs +1 -0
- package/dist/config-B612mw0x.js +525 -0
- package/dist/config-BRoLo2oj.cjs +1 -0
- package/dist/designer.cjs +2 -2
- package/dist/designer.d.cts +659 -9
- package/dist/designer.d.ts +659 -9
- package/dist/designer.js +2030 -1824
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +147 -3
- package/dist/index.d.ts +147 -3
- package/dist/index.js +639 -592
- package/dist/injection-keys-Db_DyLkm.cjs +1 -0
- package/dist/injection-keys-e85udZCp.js +7 -0
- package/dist/list-cell-BuYn4tGF.cjs +1 -0
- package/dist/{list-cell-Dxyi7DOw.js → list-cell-ClFra1zS.js} +54 -40
- package/dist/matrix-DVyWiYsd.cjs +1 -0
- package/dist/matrix-yZsGnldA.js +227 -0
- package/dist/param-validation-BlHHXs6u.js +153 -0
- package/dist/param-validation-DCK039V1.cjs +1 -0
- package/dist/pdf.cjs +25 -25
- package/dist/pdf.d.cts +3 -0
- package/dist/pdf.d.ts +3 -0
- package/dist/pdf.js +677 -677
- package/dist/plugin-BDTU4D94.cjs +1 -0
- package/dist/plugin-Cd5G2QQn.js +22 -0
- package/dist/region-binding-workflow-CXDmt9Bs.js +977 -0
- package/dist/region-binding-workflow-DhQvu1co.cjs +3 -0
- package/dist/{report-params-B_VCihAh.js → report-params-B44imUd4.js} +1 -1
- package/dist/{report-params-CjWrjPl6.cjs → report-params-SJfhKgaX.cjs} +1 -1
- package/dist/server/node.d.cts +5 -2
- package/dist/server/node.d.ts +5 -2
- package/dist/server-node.cjs +1 -1
- package/dist/server-node.js +87 -87
- package/dist/server.cjs +1 -1
- package/dist/server.d.cts +201 -2
- package/dist/server.d.ts +201 -2
- package/dist/server.js +557 -658
- package/dist/style.css +1 -1
- package/dist/template-registry-WNXdkiET.js +506 -0
- package/dist/template-registry-ukBGlm8N.cjs +1 -0
- package/dist/template-review-BXp2oyqg.cjs +1 -0
- package/dist/template-review-BdcXSYbx.js +1616 -0
- package/dist/tree-BX380Rr7.cjs +1 -0
- package/dist/tree-CqcQ99NM.js +172 -0
- package/dist/{validate-UUy9yP4K.js → validate-7s0yn6ii.js} +44 -44
- package/dist/validate-DsRiNw8h.cjs +1 -0
- package/dist/vue/async.d.cts +93 -4
- package/dist/vue/async.d.ts +93 -4
- package/dist/vue/index.d.cts +145 -7
- package/dist/vue/index.d.ts +145 -7
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +5 -5
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +116 -113
- package/dist/{workbook-session-B-bW5_yR.js → workbook-session-BKOTwcoq.js} +1 -1
- package/dist/{workbook-session-D7RtdNo0.cjs → workbook-session-CLYLhZWu.cjs} +1 -1
- package/dist/worker.cjs +1 -1
- package/dist/worker.d.cts +5 -2
- package/dist/worker.d.ts +5 -2
- package/dist/worker.js +1 -1
- package/dist/xlsx.cjs +3 -3
- package/dist/xlsx.d.cts +129 -2
- package/dist/xlsx.d.ts +129 -2
- package/dist/xlsx.js +336 -242
- package/package.json +1 -1
- package/dist/ExcelBindingWizard-CF7RplWm.cjs +0 -1
- package/dist/ExcelBindingWizard-qhwEderR.js +0 -842
- package/dist/ReportPreview-BE1tCHqE.js +0 -4604
- package/dist/ReportPreview-QKRKQOe3.cjs +0 -6
- package/dist/RuleEditor-BA36yIV6.js +0 -1723
- package/dist/RuleEditor-CczJ6mJm.cjs +0 -1
- package/dist/TemplateReviewPanel-CHi4Alqa.cjs +0 -1
- package/dist/TemplateReviewPanel-Dz0G5o83.js +0 -217
- package/dist/binding-preview-BWsdf_z2.cjs +0 -2
- package/dist/binding-preview-DILq0-0f.js +0 -649
- package/dist/decimal-CI1OAczk.js +0 -87
- package/dist/decimal-CQA0xJex.cjs +0 -1
- package/dist/list-cell-CyM1ZlRN.cjs +0 -1
- package/dist/matrix-BbXarwyk.js +0 -661
- package/dist/matrix-Cm65WLLP.cjs +0 -1
- package/dist/param-validation-BWNjLcN0.js +0 -116
- package/dist/param-validation-CiTxFeZ8.cjs +0 -1
- package/dist/plugin-CThk42vJ.cjs +0 -1
- package/dist/plugin-tGn7-5oF.js +0 -25
- package/dist/template-registry-CGWTLtIA.cjs +0 -1
- package/dist/template-registry-DzlQs3OF.js +0 -434
- package/dist/template-review-D1RoNCPw.cjs +0 -1
- package/dist/template-review-fnteXRng.js +0 -1473
- package/dist/validate-Bf6ccFr2.cjs +0 -1
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";var fa=Object.create;var tn=Object.defineProperty;var ma=Object.getOwnPropertyDescriptor;var pa=Object.getOwnPropertyNames;var ga=Object.getPrototypeOf,va=Object.prototype.hasOwnProperty;var ha=(t,n,a,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of pa(n))!va.call(t,r)&&r!==a&&tn(t,r,{get:()=>n[r],enumerable:!(o=ma(n,r))||o.enumerable});return t};var wt=(t,n,a)=>(a=t!=null?fa(ga(t)):{},ha(n||!t||!t.__esModule?tn(a,"default",{value:t,enumerable:!0}):a,t));const e=require("vue"),O=require("@agile-team/mach-report"),un=require("./page-window-index-DEjnM6IB.cjs"),se=require("./progress-BnLiS5eH.cjs"),dn=require("./render-plan-7xpGrCEl.cjs"),W=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),$t=require("./grid-geometry-CZ_cYB6O.cjs"),Te=require("./plugin-CThk42vJ.cjs");function Dt(t){return t==null?[]:Array.isArray(t)?t.map(String).filter(n=>n!==""):String(t).split(",").map(n=>n.trim()).filter(n=>n!=="")}function ya(t){return Dt(t).join(",")}class Ye extends Error{constructor(n){super(n),this.name="PlanLoadError"}}function ba(t={}){const{baseUrl:n="",headers:a,credentials:o,timeoutMs:r=3e4}=t,l=n.replace(/\/+$/,"");return async({url:s,method:i,params:u,signal:g})=>{let v=`${l}${s}`;if(u&&Object.keys(u).length>0){const c=v.indexOf("#"),S=c>=0?v.slice(c):"",h=c>=0?v.slice(0,c):v,C=h.indexOf("?"),$=C>=0?h.slice(0,C):h,V=new URLSearchParams(C>=0?h.slice(C+1):"");for(const[T,H]of Object.entries(u))V.set(T,H);v=`${$}?${V}${S}`}const p=(c,S)=>{const h=new Ye(c);return Object.defineProperty(h,"cause",{value:S,configurable:!0,writable:!0}),h};if(g?.aborted)throw p(`请求已取消: ${s}`,g.reason);const m=new AbortController;let b;const y=()=>{m.signal.aborted||(b="external",m.abort(g?.reason))};g?.addEventListener("abort",y,{once:!0});const d=setTimeout(()=>{m.signal.aborted||(b="timeout",m.abort())},r);try{const c=await fetch(v,{method:i.toUpperCase(),headers:{Accept:"application/json",...a},credentials:o,signal:m.signal});if(!c.ok)throw new Ye(`HTTP ${c.status} ${s}`);return await c.json()}catch(c){throw b==="timeout"?p(`请求超时(${r}ms): ${s}`,c):b==="external"?p(`请求已取消: ${s}`,c):c instanceof Ye?c:p(`请求失败(${s}): ${c instanceof Error?c.message:String(c)}`,c)}finally{clearTimeout(d),g?.removeEventListener("abort",y)}}}function fn(t,n,a={}){const o=a.pxPerMm??3.7795275590551185,r=e.computed(()=>Math.max(0,e.unref(a.gapPx)??18)),l=e.ref(0),s=e.ref(800),i=e.computed(()=>{const c=t.value?.pages??[];return un.createPageWindowIndex(c.map(S=>S.pageHeightMm*o),r.value)}),u=e.computed(()=>{let c=0;for(const S of t.value?.pages??[])c=Math.max(c,S.pageWidthMm*o);return{w:c,h:i.value.totalHeightPx}}),g=e.computed(()=>i.value.window(s.value/n.value,l.value/n.value,e.unref(a.overscan)??1)),v=e.computed(()=>{const c=t.value;if(!c)return[];const{start:S,end:h}=g.value;return c.pages.slice(S,h+1).map((C,$)=>({page:C,index:S+$}))});let p=0,m=!1;function b(c){c&&(l.value=c.scrollTop,s.value=c.clientHeight||800)}function y(c,S){return h=>{p||m||(p=requestAnimationFrame(()=>{if(p=0,m||(b(h),S.value<=0))return;const C=Math.max(0,h.scrollTop+32)/n.value;c.value=Math.min(S.value,i.value.pageAt(C)+1)}))}}function d(){m=!0,p&&cancelAnimationFrame(p),p=0}return e.onScopeDispose(d),{contentSize:u,windowRange:g,visiblePages:v,makeScrollHandler:y,refreshViewport:b,pageOffsetPx:c=>i.value.offsetAt(c),destroy:d}}const nn=96/25.4;function wa(t){const n=new WeakMap,a=e.ref(0);let o,r=0,l=0,s=!1;function i(){r++,l&&cancelAnimationFrame(l),l=0}function u(d,c,S,h){return!s&&c===r&&t.plan.value===S&&t.root.value===h&&h.contains(d.holder)&&Number(d.holder.dataset.page)===d.index+1}function g(d){const{holder:c,page:S}=d;n.delete(c),c.style.width=`${S.pageWidthMm*nn}px`,c.style.height=`${S.pageHeightMm*nn}px`,c.setAttribute("aria-busy","true");const h=c.ownerDocument.createElement("div");h.className="mrp-page-loading";const C=c.ownerDocument.createElement("span");C.textContent=t.loading(),C.style.transform=`scale(${1/Math.max(1e-4,t.zoom())})`,h.append(C),c.replaceChildren(h)}function v(d){const c=n.get(d.holder);return!c||c.page!==d.page||c.element.parentElement!==d.holder?!1:(c.query!==t.query()&&(t.clear(c.element),t.highlight(c.element),c.query=t.query()),!0)}function p(d,c,S,h){if(u(d,c,S,h))try{const C=O.renderPage(d.page,96,{},d.holder.ownerDocument);if(t.highlight(C),!u(d,c,S,h))return;d.holder.replaceChildren(C),d.holder.removeAttribute("aria-busy"),n.set(d.holder,{page:d.page,element:C,query:t.query()}),t.mounted(d.holder),t.ready()}catch(C){if(!u(d,c,S,h))return;d.holder.removeAttribute("aria-busy");const $=d.holder.ownerDocument.createElement("div");$.className="mrp-page-render-error",$.setAttribute("role","alert"),$.textContent=C instanceof Error?C.message:String(C),d.holder.replaceChildren($),t.error(C)}}function m(d,c,S,h){d.length&&(l=requestAnimationFrame(()=>{if(c!==r||s)return;l=0;const C=d.shift();C&&p(C,c,S,h),c===r&&t.plan.value===S&&t.root.value===h&&m(d,c,S,h)}))}function b(){i();const d=t.plan.value,c=t.root.value;if(s||!d||!c){o=void 0;return}const S=r,h=o?.plan===d?o.index:t.priority();o=void 0;const C=[];c.querySelectorAll(".mrp-page-holder").forEach(T=>{const H=Number(T.dataset.page)-1,J=d.pages[H];if(!J)return;const j={holder:T,page:J,index:H};v(j)||(g(j),C.push(j))});const $=C.findIndex(T=>T.index===h),V=$<0?void 0:C.splice($,1)[0];V&&p(V,S,d,c),t.ready(),m(C,S,d,c)}function y(d){s||!t.plan.value||(o={plan:t.plan.value,index:d},a.value++)}return e.watch([t.plan,t.root,t.pages,t.priority,t.focusToken,t.query,t.zoom,t.loading,a],b,{flush:"post",immediate:!0}),e.onScopeDispose(()=>{s=!0,o=void 0,i()}),{prioritize:y,cancel:i}}function mn(t){const n=e.ref(1),a=e.ref("fit");let o=0;function r(){o&&cancelAnimationFrame(o),o=0}function l(){r(),o=requestAnimationFrame(()=>{if(o=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;r(),a.value="raw",n.value=Math.min(3,Math.max(.3,i/100))}}return e.getCurrentScope()&&e.onScopeDispose(r),{zoom:n,zoomMode:a,applyFitZoom:l,setZoom:s}}let xa=0;function an(t,n){const a=new AbortController;let o={taskId:`mr-output-${Date.now().toString(36)}-${++xa}`,kind:t,stage:t==="print"?"print":"encode",status:"running",cancellable:!0};function r(){try{n?.(Object.freeze({...o}))}catch{}}return{controller:a,get task(){return o},start:r,update(l,s,i){a.signal.aborted||o.status!=="running"||(o={...o,stage:l,completed:s,total:i},r())},finish(l="completed"){o.status==="running"&&(o={...o,status:l,cancellable:!1},r(),l==="cancelled"&&a.abort())}}}const Me=8;function He(){return new Promise(t=>setTimeout(t,0))}function Ze(t){return`p${t.pageWidthMm}x${t.pageHeightMm}`.replace(/[.+]/g,"_")}function _e(t){const n=new Map;return t.pages.forEach(r=>{n.has(Ze(r))||n.set(Ze(r),r)}),`<!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(r=>`@page ${Ze(r)}{size:${r.pageWidthMm}mm ${r.pageHeightMm}mm;margin:0;}`).join(`
|
|
5
|
-
`)}
|
|
6
|
-
body{margin:0;background:#fff;}`}</style></head><body>`}function et(t){const n=O.renderPage(t,96,{},document);return n.style.page=Ze(t),n.outerHTML}function pn(t){return{head:_e(t),pageChunks:t.pages.map(et)}}async function Ea(t,n={}){const a={schemaVersion:"mach-report-batch-print",pages:t.flatMap(s=>s.pages)};if(a.pages.length===0)return;const o=_e(a),r=document.createElement("iframe");r.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(r);let l=!1;try{const s=r.contentDocument;s.open(),s.write(o);for(let i=0;i<a.pages.length;i++)se.assertOutputActive(n.signal),s.write(et(a.pages[i])),i%Me===Me-1&&(se.notifyOutputProgress(n,i+1,a.pages.length),await He());s.write("</body></html>"),s.close(),await He(),se.notifyOutputProgress(n,a.pages.length,a.pages.length),l=!0,r.contentWindow?.focus(),r.contentWindow?.print()}catch(s){if(n.signal?.aborted)throw s;n.onError?.(s instanceof Error?`批量打印失败: ${s.message}`:"批量打印失败")}finally{l?setTimeout(()=>r.remove(),6e4):r.remove()}}function gn(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 ka(t){const{head:n,pageChunks:a}=pn(t);return{html:`${gn(n)}${a.join("")}</body></html>`,filename:"mach-report.doc"}}function vn(t,n){let a=null,o=!1,r=!1,l=0,s=0;const i=new Set,u=new Map;let g=null;const v=new Map;let p=null,m=null,b=null,y=null,d=null;function c(E,B){return!r&&t.value===E&&l===B}function S(){if(r)return;const E=[...u.values()].reverse().find(B=>c(B.plan,B.epoch))?.format??null;E!==p&&(p=E,n.onBusy?.(E))}function h(E,B,A){const F={};return u.set(F,{plan:E,epoch:B,format:A,run:an("export",n.onTask)}),u.get(F).run.start(),S(),F}function C(E){u.get(E)?.run.finish(),u.delete(E),S()}function $(){for(const[E,B]of v)c(B.plan,B.epoch)||(E.close(),v.delete(E))}function V(E=!0){if(E){s++;for(const B of i)B.close();i.clear()}for(const B of u.values())B.run.finish("cancelled");g?.finish("cancelled"),l++,H(),S(),$()}const T=e.watch(t,()=>V(!1),{flush:"sync"});function H(){a?.remove(),a=null}function J(){V(),r=!0,l++,T(),H(),$(),u.clear(),n.onPrinting?.(!1)}function j(E,B){const A=URL.createObjectURL(E);setTimeout(()=>URL.revokeObjectURL(A),1e4);const F=document.createElement("a");F.href=A,F.download=B,F.click()}function Y(E,B,A,F,G){A.update("download"),c(E,B)&&!A.controller.signal.aborted&&j(F,G)}async function ee(E,B,A,F){const G=E.contentDocument;G.open(),G.write(_e(B));for(let U=0;U<B.pages.length;U++)if(F.controller.signal.aborted||(G.write(et(B.pages[U])),F.update("print",U+1,B.pages.length),U%Me===Me-1&&await He(),E!==a))return!1;return G.write("</body></html>"),G.close(),await He(),!(!c(B,A)||E!==a)}function ie(){const E=s,B=F=>F&&!r&&E===s,A=F=>(!r&&E===s&&n.onError(F instanceof Error?F.message:"报表修改尚未完成","export"),!1);try{const F=n.beforeOutput?.()??!0;return typeof F=="boolean"?B(F):F.then(B,A)}catch(F){return A(F)}}function te(E){const B=ie();return typeof B=="boolean"?B?E():Promise.resolve():B.then(A=>A?E():void 0)}async function x(){if(o)return;const E=t.value;if(r||!E||E.pages.length===0)return;const B=l;o=!0;const A=an("print",n.onTask);g=A,A.start(),n.onPrinting?.(!0),H(),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 F=a;try{if(!c(E,B)||A.controller.signal.aborted){H();return}if(!await ee(F,E,B,A))return;F.contentWindow?.focus(),F.contentWindow?.print()}catch{A.finish("failed"),F===a&&H(),c(E,B)&&n.onError("调用打印失败,请改用导出 PDF","print")}finally{A.finish(),g===A&&(g=null),o=!1,r||n.onPrinting?.(!1)}}function I(E,B,A){return{signal:A.controller.signal,onDiagnostic:F=>{c(E,B)&&!A.controller.signal.aborted&&n.onDiagnostic?.(F)},onProgress:(F,G)=>A.update("encode",F,G)}}function w(E,B,A){if(m?.plan===E&&m.epoch===B)return m.promise;const F=Promise.resolve().then(()=>{if(!c(E,B))throw new Error("报表已切换或卸载");return se.waitForOutput(n.getPdfExporter()(E,G=>{c(E,B)&&n.onWarning?.(G)},A?I(E,B,A):void 0),A?.controller.signal)}).finally(()=>{m?.promise===F&&(m=null)});return m={plan:E,epoch:B,promise:F},F}async function N(){const E=t.value;if(r||!E||E.pages.length===0)return;const B=l;if(b?.plan===E&&b.epoch===B)return b.promise;const A=h(E,B,"PDF"),F=(async()=>{try{const G=u.get(A).run,U=await w(E,B,G);if(!c(E,B))return;Y(E,B,G,new Blob([U],{type:"application/pdf"}),"mach-report.pdf")}catch(G){u.get(A)?.run.finish("failed"),c(E,B)&&n.onError(G instanceof Error?`PDF 导出失败: ${G.message}`:"PDF 导出失败","pdf")}finally{C(A),b?.token===A&&(b=null)}})();return b={plan:E,epoch:B,promise:F,token:A},F}async function D(){const E=t.value;if(r||!E||E.pages.length===0)return;const B=l;if(y?.plan===E&&y.epoch===B)return y.promise;const A={...n.getXlsxOptions?.()},F=h(E,B,"Excel"),G=(async()=>{try{const{renderPlanToXlsx:U}=await import("@agile-team/mach-report/xlsx");if(!c(E,B))return;const ce=u.get(F).run,{buffer:ue,warnings:he}=await se.waitForOutput(U(E,{...A,...I(E,B,ce)}),ce.controller.signal);if(!c(E,B)||(he.length>0&&n.onWarning?.(`Excel 导出有 ${he.length} 条提示:${he.slice(0,2).join(";")}`),!c(E,B)))return;Y(E,B,ce,new Blob([ue],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),"mach-report.xlsx")}catch(U){u.get(F)?.run.finish("failed"),c(E,B)&&n.onError(U instanceof Error?`Excel 导出失败: ${U.message}`:"Excel 导出失败","export")}finally{C(F),y?.token===F&&(y=null)}})();return y={plan:E,epoch:B,promise:G,token:F},G}async function P(){const E=t.value;if(r||!E||E.pages.length===0)return;const B=l;if(d?.plan===E&&d.epoch===B)return d.promise;const A=h(E,B,"图片"),F=(async()=>{try{const G=u.get(A).run,{blobs:U}=await se.waitForOutput(O.renderPlanToImages(E,{...I(E,B,G),dpr:Math.min(2,typeof devicePixelRatio=="number"?devicePixelRatio:1)}),G.controller.signal);if(!c(E,B))return;U.forEach((ce,ue)=>{Y(E,B,G,ce,U.length>1?`mach-report-page-${ue+1}.png`:"mach-report.png")})}catch(G){u.get(A)?.run.finish("failed"),c(E,B)&&n.onError(G instanceof Error?`图片导出失败: ${G.message}`:"图片导出失败","export")}finally{C(A),d?.token===A&&(d=null)}})();return d={plan:E,epoch:B,promise:F,token:A},F}async function L(E){const B=t.value;if(r||!B||!B.pages.length)return;const A=l,F=h(B,A,E==="word"?"Word":"HTML"),G=u.get(F).run;try{const U=[];for(const[he,je]of B.pages.entries()){if(!c(B,A))return;U.push(et(je)),G.update("encode",he+1,B.pages.length),he%Me===Me-1&&await He()}if(!c(B,A))return;const ce=_e(B),ue=`${E==="word"?gn(ce):ce}${U.join("")}</body></html>`;Y(B,A,G,new Blob([ue],{type:E==="word"?"application/msword;charset=utf-8":"text/html;charset=utf-8"}),E==="word"?"mach-report.doc":"mach-report.html")}catch(U){G.finish("failed"),c(B,A)&&n.onError(U instanceof Error?`导出失败: ${U.message}`:"导出失败","export")}finally{C(F)}}async function q(){await L("word")}function K(){return te(x)}function R(){return te(P)}function ne(){return te(q)}async function X(E){const B=t.value;if(!(r||!B||B.pages.length===0)){if(E==="pdf"){await N();return}if(E==="xlsx"||E==="excel"){await D();return}if(E==="png"||E==="image"){await P();return}if(E==="word"||E==="doc"){await q();return}if(E!=="html"){n.onError(`不支持的导出格式:${E}`,"export");return}await L("html")}}function oe(E){return te(()=>X(E))}function Se(E){const B=t.value;if(r||!B||!B.pages.length){E.close();return}const A=l;v.set(E,{plan:B,epoch:A});const F=h(B,A,"PDF");w(B,A,u.get(F).run).then(G=>{if(!c(B,A)||E.closed){v.delete(E)&&E.close();return}const U=URL.createObjectURL(new Blob([G],{type:"application/pdf"}));setTimeout(()=>URL.revokeObjectURL(U),6e4);const ce=E.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),v.delete(E)}).catch(G=>{u.get(F)?.run.finish("failed"),E.close(),v.delete(E),c(B,A)&&n.onError(G instanceof Error?`PDF 预览失败: ${G.message}`:"PDF 预览失败","pdf")}).finally(()=>C(F))}function ve(){if(r||!t.value?.pages.length)return;const E=globalThis.window.open("","_blank");if(!E){n.onError("浏览器拦截了弹窗,请允许弹窗后重试","pdf");return}const B=ie();if(typeof B=="boolean"){B?Se(E):E.close();return}i.add(E),B.then(A=>{const F=i.delete(E);if(!A||!F||E.closed){E.close();return}Se(E)})}return{print:K,exportAs:oe,exportImages:R,exportWord:ne,openPdfWindow:ve,invalidatePending:V,cancel:V,releasePrintFrame:H,dispose:J}}const hn="mrp-hit";function Ca(t){t.querySelectorAll(`mark.${hn}`).forEach(a=>{const o=a.parentNode;if(o){for(;a.firstChild;)o.insertBefore(a.firstChild,a);a.remove(),o.normalize()}})}function Sa(t,n){const a=n.trim();if(!a)return 0;const o=a.toLowerCase(),r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(i){const u=i.parentElement;return!u||u.closest("mark")||/^(SCRIPT|STYLE)$/.test(u.tagName)?NodeFilter.FILTER_REJECT:(i.nodeValue??"").toLowerCase().includes(o)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),l=[];for(let i=r.nextNode();i;i=r.nextNode())l.push(i);let s=0;for(const i of l){const u=i.nodeValue??"",g=u.toLowerCase(),v=i.parentElement;if(!v)continue;const p=document.createDocumentFragment();let m=0,b=g.indexOf(o);for(;b>=0;){b>m&&p.appendChild(document.createTextNode(u.slice(m,b)));const y=document.createElement("mark");y.className=hn,y.textContent=u.slice(b,b+a.length),p.appendChild(y),s++,m=b+a.length,b=g.indexOf(o,m)}m<u.length&&p.appendChild(document.createTextNode(u.slice(m))),v.replaceChild(p,i)}return s}const Na=new Set(["line","rect","ellipse","chart"]);function*Ba(t){for(const n of t.cells??[])for(const a of n??[])yield a?.text??"",yield*a?.children??[]}function*Pa(t){if(dn.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*Ia(t){const n=[t.values()];for(;n.length>0;){const a=n[n.length-1].next();if(a.done){n.pop();continue}const o=a.value;if(typeof o=="string"){yield o;continue}yield"",!dn.isImageBackedComponent(o)&&(o.kind==="text"?n.push(Pa(o)):o.grid?n.push(Ba(o.grid)):Na.has(o.kind)||(yield o.fallbackText??""))}}function*$a(t){for(let n=0;n<t.pages.length;n++){for(const a of Ia(t.pages[n].components))yield{text:a,pageIndex:n};yield{text:"",pageIndex:n}}}function Da(t,n){const a=t.toLowerCase();let o=0;for(let r=a.indexOf(n);r>=0;r=a.indexOf(n,r+n.length))o++;return o}function Ra(t){const{plan:n,gotoPage:a,highlight:o,clearHighlights:r}=t,l=e.ref(!1),s=e.ref(""),i=e.ref(0),u=e.ref(0),g=e.ref(!1);let v=[];const p=e.computed(()=>{if(u.value===0)return null;const $=i.value;let V=0,T=v.length-1;for(;V<T;){const J=V+T>>>1;v[J].cumulative<=$?V=J+1:T=J}const H=v[V];return H?{pageIndex:H.pageIndex,occurrence:$-(v[V-1]?.cumulative??0)}:null});let m=null,b=null,y=0;function d(){y++,m&&clearTimeout(m),b&&clearTimeout(b),m=b=null,g.value=!1}function c($){s.value=$,i.value=0,u.value=0,v=[],g.value=!1;const V=$.trim().toLowerCase(),T=n.value;if(!V||!T)return;g.value=!0;const H=y,J=$a(T),j=[];let Y=0;function ee(){if(b=null,H!==y||T!==n.value)return;const ie=performance.now();let te=0;for(;te<5e3&&performance.now()-ie<4;){const x=J.next();if(x.done){v=j,u.value=Y,g.value=!1,v[0]&&a(v[0].pageIndex+1);return}const I=Da(x.value.text,V);if(I>0){Y+=I;const w=j[j.length-1];w?.pageIndex===x.value.pageIndex?w.cumulative=Y:j.push({pageIndex:x.value.pageIndex,cumulative:Y})}te++}b=setTimeout(ee,0)}ee()}function S($){if(d(),s.value=$,i.value=u.value=0,v=[],!$.trim()){c("");return}g.value=!0,m=setTimeout(()=>{m=null,c($)},Math.max(0,e.unref(t.debounceMs)??200))}function h($){const V=u.value;if(V===0||g.value)return;i.value=(i.value+$+V)%V;const T=p.value;T&&a(T.pageIndex+1)}function C(){d(),s.value="",i.value=u.value=0,v=[]}return e.watch(n,C,{flush:"sync"}),e.onScopeDispose(C),{visible:l,query:s,matchIndex:i,matchCount:u,activeMatch:p,searching:g,toggle:()=>{l.value=!l.value},onInput:S,onNav:h,apply:$=>{s.value.trim()&&o($,s.value.trim())},clear:$=>{r($)},reset:C}}function Va(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}}),o=e.computed(()=>!a.value||!n.plan.value?0:Math.round(JSON.stringify(n.plan.value).length/1024)),r=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:o.value});return{enabled:a,debugStats:r}}function Ma(t,n){const{thumbsRoot:a,visible:o,renderThumbCanvas:r}=n,l=e.ref(0),s=e.ref(800),i=e.computed(()=>(t.value?.pages??[]).map(h=>Math.round(h.pageHeightMm/h.pageWidthMm*116))),u=e.computed(()=>un.createPageWindowIndex(i.value.map(h=>h+20),8)),g=e.computed(()=>u.value.window(s.value,l.value,1)),v=e.computed(()=>{if(!o.value)return[];const{start:h,end:C}=g.value;return i.value.slice(h,C+1).map(($,V)=>({index:h+V,height:$}))});let p=0,m=0,b=!1;function y(){const h=a.value;h&&(l.value=h.scrollTop,s.value=h.clientHeight||800)}function d(){b||m||(m=requestAnimationFrame(()=>{m=0,y()}))}function c(){if(v.value,p&&cancelAnimationFrame(p),p=0,b||!o.value||!t.value||!a.value)return;y();const h=v.value,C=t.value,$=a.value;let V=0;function T(){if(p=0,!(b||!o.value||t.value!==C||a.value!==$)){for(let H=0;V<h.length&&H<2;H++,V++){const J=h[V].index,j=$.querySelector(`[data-thumb="${J+1}"]`);if(!j||j.childElementCount>0)continue;const Y=r(J);Y&&(Y.style.width="100%",Y.style.height="100%",Y.style.display="block",j.appendChild(Y))}V<h.length&&(p=requestAnimationFrame(T))}}p=requestAnimationFrame(T)}function S(){b=!0,p&&cancelAnimationFrame(p),m&&cancelAnimationFrame(m),p=m=0}return e.onScopeDispose(S),{schedule:c,destroy:S,onScroll:d,windowRange:g,visibleThumbs:v}}function Ta(){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 Aa(t){const n=e.ref(null),a=e.ref(null);function o(){n.value?.focus(),n.value?.select()}e.watch(t.visible,s=>{s&&e.nextTick(o)});function r(){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"?r():t.navigate(s.shiftKey?-1:1))}return{input:n,toggle:a,focus:o,close:r,onKeydown:l}}function yn(){const t=e.ref(!1),n=e.ref(null),a=e.ref(null),o=e.ref(null);function r(i=!1){t.value=!1,i&&e.nextTick(()=>a.value?.focus())}function l(i){i.target instanceof Node&&!n.value?.contains(i.target)&&r()}function s(i){i.key!=="Escape"||!t.value||i.isComposing||(i.preventDefault(),i.stopPropagation(),r(!0))}return e.watch(t,i=>{i&&e.nextTick(()=>(o.value?.querySelector("input")??o.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:o,close:r,onKeydown:s}}const Fa=["disabled","aria-expanded"],Oa=["aria-label"],La=["aria-label","disabled","onClick"],za={"aria-hidden":"true"},qa=e.defineComponent({__name:"ReportExportMenu",props:{messages:{},formats:{},busy:{type:Boolean}},emits:["export"],setup(t,{emit:n}){const a=t,o=n,{opened:r,root:l,trigger:s,panel:i,close:u,onKeydown:g}=yn(),v=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&&u()});function p(y){a.busy||(o("export",y),u(!0))}function m(y){y.key!=="ArrowDown"&&y.key!=="ArrowUp"||(y.preventDefault(),r.value=!0,y.key==="ArrowUp"&&e.nextTick(()=>i.value?.querySelector("button:last-child")?.focus()))}function b(y){if(y.key==="Tab"){u();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(y.key))return;y.preventDefault(),y.stopPropagation();const c=[...i.value?.querySelectorAll("button:not(:disabled)")??[]],S=c.indexOf(document.activeElement),h=y.key==="Home"?0:y.key==="End"?c.length-1:(S+(y.key==="ArrowDown"?1:-1)+c.length)%c.length;c[h]?.focus()}return(y,d)=>v.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"root",ref:l,class:"mrp-export-menu",onKeydown:d[1]||(d[1]=(...c)=>e.unref(g)&&e.unref(g)(...c))},[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(r),onClick:d[0]||(d[0]=c=>r.value=!e.unref(r)),onKeydown:m},[e.createVNode(W._sfc_main,{name:"download"}),e.createTextVNode(e.toDisplayString(t.messages.exportMenu??"导出"),1),e.createVNode(W._sfc_main,{name:"chevron-down",size:12})],40,Fa),e.unref(r)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panel",ref:i,class:"mrp-export-panel",role:"menu","aria-label":t.messages.exportMenu??"导出",onKeydown:b},[e.createElementVNode("p",null,e.toDisplayString(t.messages.exportMenuDescription??"选择文件格式"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,c=>(e.openBlock(),e.createElementBlock("button",{key:c.format,type:"button",role:"menuitem",tabindex:"-1","aria-label":c.label,disabled:t.busy,onClick:S=>p(c.format)},[e.createVNode(W._sfc_main,{name:"file"}),e.createElementVNode("span",null,e.toDisplayString(c.label),1),e.createElementVNode("small",za,e.toDisplayString(c.extension),1)],8,La))),128))],40,Oa)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)}}),Ka=W._export_sfc(qa,[["__scopeId","data-v-83a57a3c"]]),Ha=["aria-label"],ja={class:"mrp-pageinfo","aria-live":"polite"},Wa={class:"mrp-page-buttons"},Ua=["aria-label","title","disabled"],Ga=["aria-label","title","disabled"],Ja=["aria-label","title","aria-invalid","disabled"],Ya=["aria-label","disabled"],Za={key:1,class:"mrp-page-error",role:"alert"},Xa=e.defineComponent({__name:"ReportPagination",props:{pageCount:{},currentPage:{},messages:{},busy:{type:Boolean}},emits:["goto"],setup(t,{emit:n}){const a=t,o=n,r=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],()=>{r.value=String(a.currentPage),l.value=!1});function i(){if(a.busy)return;const u=r.value.trim(),g=Number(u);l.value=!/^\d+$/.test(u)||!Number.isSafeInteger(g)||g<1||g>a.pageCount,!l.value&&g!==a.currentPage&&o("goto",g)}return(u,g)=>t.pageCount>0?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mrp-pagination",role:"navigation","aria-label":t.messages.pagination??"报表分页"},[e.createElementVNode("span",ja,e.toDisplayString(s.value),1),e.createElementVNode("div",Wa,[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]=v=>o("goto",t.currentPage-1))},[e.createVNode(W._sfc_main,{name:"chevron-left"})],8,Ua),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]=v=>o("goto",t.currentPage+1))},[e.createVNode(W._sfc_main,{name:"chevron-right"})],8,Ga)]),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]=v=>r.value=v),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]=v=>l.value=!1),onKeydown:g[4]||(g[4]=e.withKeys(v=>{r.value=String(t.currentPage),l.value=!1},["esc"]))},null,40,Ja),[[e.vModelText,r.value]])]),e.createElementVNode("button",{class:"mrp-nav",type:"submit","aria-label":t.messages.pageJump??"跳至页",disabled:t.busy},[e.createVNode(W._sfc_main,{name:"arrow-right",size:14})],8,Ya)],32)):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("span",Za,e.toDisplayString(t.messages.pageJumpInvalid??"请输入有效页码"),1)):e.createCommentVNode("",!0)],8,Ha)):e.createCommentVNode("",!0)}}),Rt=W._export_sfc(Xa,[["__scopeId","data-v-0db4fbd3"]]),Qa=["aria-label"],_a={class:"mrp-title"},eo=["aria-label"],to=["aria-label","aria-pressed"],no=["aria-pressed"],ao=["aria-pressed"],oo=["aria-label"],ro=["aria-pressed"],lo=["aria-pressed","onClick"],so=["aria-label"],io=["disabled"],co=["disabled"],uo=["disabled"],fo=["aria-label","aria-expanded"],mo=["aria-label"],po=["placeholder","aria-label","value"],go=["aria-label"],vo={key:1,class:"mrp-search-count",role:"status","aria-live":"polite"},ho=["disabled","aria-label"],yo=["disabled","aria-label"],bo=["aria-label"],wo={class:"mrp-search-hint",role:"status"},xo=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 o=t,r=a,l=Aa({visible:()=>o.search.visible,navigate:v=>{!o.search.searching&&o.search.matchCount>0&&r("search-nav",v)},close:()=>{o.search.visible&&r("search-toggle")}}),{input:s,toggle:i}=l;n({focusSearch:l.focus});function u(){const v=o.search.matchCount>0?o.search.matchIndex+1:0;return o.messages.matchInfo.replace("{cur}",String(v)).replace("{total}",String(o.search.matchCount))}function g(){r("search-input",""),l.focus()}return(v,p)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-toolbar",role:"toolbar","aria-label":t.messages.title},[e.createElementVNode("span",_a,[e.createVNode(W._sfc_main,{name:"file"}),e.createTextVNode(e.toDisplayString(t.messages.title),1)]),t.showPagination?(e.openBlock(),e.createBlock(Rt,{key:0,"page-count":t.pageCount,"current-page":t.currentPage,messages:t.messages,busy:t.busy,onGoto:p[0]||(p[0]=m=>r("goto",m))},null,8,["page-count","current-page","messages","busy"])):e.createCommentVNode("",!0),p[15]||(p[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:p[1]||(p[1]=m=>r("search-toggle"))},[e.createVNode(W._sfc_main,{name:"search"})],10,to),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:p[2]||(p[2]=m=>r("thumbs-toggle"))},[e.createVNode(W._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,no)):e.createCommentVNode("",!0)],8,eo)):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:p[3]||(p[3]=m=>r("thumbs-toggle"))},[e.createVNode(W._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,ao)):e.createCommentVNode("",!0),e.renderSlot(v.$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:p[4]||(p[4]=m=>r("zoom","fit"))},[e.createVNode(W._sfc_main,{name:"fit"}),e.createTextVNode(e.toDisplayString(t.messages.fitWidth),1)],10,ro),(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:b=>r("zoom",m)},e.toDisplayString(m)+"%",11,lo)),64))],8,oo)):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:p[5]||(p[5]=m=>r("import-excel"))},[e.createVNode(W._sfc_main,{name:"upload"}),e.createTextVNode(e.toDisplayString(t.messages.importExcel??"导入 Excel 模板"),1)],8,io)):e.createCommentVNode("",!0),t.showExport?(e.openBlock(),e.createBlock(Ka,{key:1,messages:t.messages,formats:t.exportFormats,busy:t.busy,onExport:p[6]||(p[6]=m=>r("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:p[7]||(p[7]=m=>r("print"))},[e.createVNode(W._sfc_main,{name:"print"}),e.createTextVNode(e.toDisplayString(t.messages.print),1)],8,co)):e.createCommentVNode("",!0),t.showPdfWindow?(e.openBlock(),e.createElementBlock("button",{key:3,class:"mrp-nav",type:"button",disabled:t.busy,onClick:p[8]||(p[8]=m=>r("pdf-window"))},[e.createVNode(W._sfc_main,{name:"external"}),e.createTextVNode(e.toDisplayString(t.messages.pdfWindow),1)],8,uo)):e.createCommentVNode("",!0)],8,so)):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:p[9]||(p[9]=m=>r("settings-toggle"))},[e.createVNode(W._sfc_main,{name:"settings"}),e.createTextVNode(e.toDisplayString(t.messages.settings??"设置"),1)],10,fo)):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(W._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:p[10]||(p[10]=m=>r("search-input",m.target.value)),onKeydown:p[11]||(p[11]=(...m)=>e.unref(l).onKeydown&&e.unref(l).onKeydown(...m))},null,40,po),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(W._sfc_main,{name:"close",size:13})],8,go)):e.createCommentVNode("",!0),t.search.query?(e.openBlock(),e.createElementBlock("span",vo,e.toDisplayString(t.search.searching?t.messages.searching??"搜索中…":u()),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:p[12]||(p[12]=m=>r("search-nav",-1))},[e.createVNode(W._sfc_main,{name:"chevron-up",size:14})],8,ho),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:p[13]||(p[13]=m=>r("search-nav",1))},[e.createVNode(W._sfc_main,{name:"chevron-down",size:14})],8,yo),e.createElementVNode("button",{class:"mrp-nav mrp-search-close mrp-icon-button",type:"button","aria-label":t.messages.closeSearch??"关闭搜索",onClick:p[14]||(p[14]=(...m)=>e.unref(l).close&&e.unref(l).close(...m))},[e.createVNode(W._sfc_main,{name:"close",size:14})],8,bo)],2),e.createElementVNode("span",wo,e.toDisplayString(t.search.query&&!t.search.searching&&!t.search.matchCount?t.messages.searchNoMatches??"没有匹配内容":t.messages.searchHint??"Enter 下一个 · Shift+Enter 上一个"),1)],8,mo)):e.createCommentVNode("",!0)],8,Qa))}}),bn=W._export_sfc(xo,[["__scopeId","data-v-5f4b04d8"]]),Eo=["aria-label","aria-busy"],ko={class:"mrp-calculation-heading"},Co={class:"mrp-calculation-controls"},So=["aria-label","value","disabled"],No=["value"],Bo={class:"mrp-calculation-precision"},Po=["aria-label","value","disabled"],Io={key:0,class:"mrp-calculation-expression"},$o=["aria-label","value","disabled"],Do={class:"mrp-calculation-actions"},Ro={key:1,class:"mrp-calculation-diagnostic",role:"alert"},Vo={key:2,class:"mrp-calculation-result",role:"status","aria-live":"polite"},Mo={key:0},To={key:3,class:"mrp-calculation-empty"},Ao={class:"mrp-calculation-local"},Fo=e.defineComponent({__name:"ReportCalculationPanel",props:{state:{},messages:{}},setup(t){const n=t,a=`mrp-calculation-expression-hint-${e.getCurrentInstance()?.uid??0}`,o=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]]),r=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",ko,[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",Co,[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(o.value,([i,u])=>(e.openBlock(),e.createElementBlock("option",{key:i,value:i},e.toDisplayString(u),9,No))),128))],40,So)]),e.createElementVNode("label",Bo,[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,Po)])]),t.state.operation.value==="expression"?(e.openBlock(),e.createElementBlock("label",Io,[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,$o),e.createElementVNode("small",{id:a},e.toDisplayString(t.messages.calculationExpressionHint),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Do,[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))]),r.value?(e.openBlock(),e.createElementBlock("p",Ro,e.toDisplayString(r.value),1)):t.state.result.value?(e.openBlock(),e.createElementBlock("div",Vo,[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",Mo,e.toDisplayString(t.messages.calculationEmpty),1)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",To,e.toDisplayString(t.messages.calculationNoSelection),1)),e.createElementVNode("p",Ao,e.toDisplayString(t.messages.calculationLocal),1)],8,Eo))}}),Oo=W._export_sfc(Fo,[["__scopeId","data-v-ee359251"]]);function Lo(t){const n=e.ref("sum"),a=e.ref("SUM / COUNT"),o=e.ref(2),r=e.ref(!1),l=e.shallowRef(null),s=e.ref(null);let i=null,u=0;function g(){u++,i?.abort(),i=null,r.value=!1}function v(){g(),l.value=null,s.value=null}async function p(){if(v(),!t.enabled())return;const d=t.plan.value,c=t.selection.value;if(!d||!c){s.value="selection";return}const S=++u,h=new AbortController;i=h,r.value=!0;try{const C=await O.calculateReportSelection(d,c,{operation:n.value,expression:a.value,precision:o.value,signal:h.signal});S===u&&t.plan.value===d&&t.selection.value===c&&t.enabled()&&(l.value=C)}catch(C){S===u&&!h.signal.aborted&&(s.value=C instanceof O.ReportCalculationError?C.code:"expression")}finally{S===u&&(r.value=!1,i=null)}}e.watch([t.plan,t.selection,()=>t.enabled(),n,a,o],v,{flush:"sync"}),e.onScopeDispose(v);function m(d){n.value=d}function b(d){a.value=d}function y(d){o.value=d}return{operation:n,expression:a,precision:o,busy:r,result:l,error:s,run:p,cancel:g,clear:v,setOperation:m,setExpression:b,setPrecision:y}}const zo=["aria-label"],qo={class:"mrp-settings-header"},Ko=["aria-label"],Ho=["aria-label"],jo=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],Wo={class:"mrp-settings-content"},Uo=["id","aria-labelledby","hidden"],Go={key:0},Jo={class:"mrp-settings-option"},Yo=["checked","disabled"],Zo={class:"mrp-settings-option"},Xo=["value","disabled"],Qo=["id","aria-labelledby","hidden"],_o={key:0},er=["checked","disabled","onChange"],tr={key:0,class:"mrp-settings-note"},nr={key:1,class:"mrp-settings-note"},ar=["id","aria-labelledby","hidden"],or={class:"mrp-settings-intro"},rr={class:"mrp-settings-option mrp-settings-feature"},lr=["id"],sr=["aria-label","aria-describedby","checked","disabled"],ir=["disabled"],cr=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,o=n,r=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 u(d,c){const h={ArrowRight:(c+1)%3,ArrowLeft:(c+2)%3,Home:0,End:2}[d.key];h!==void 0&&(d.preventDefault(),o("section",i.value[h].key),r.value?.querySelector("#"+s+"-tab-"+i.value[h].key)?.focus())}const g=e.ref(null);let v=null;const p=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(d=>({...d,tools:d.tools.map(([c,S])=>({key:c,label:S}))})));function m(d,c){const S=d.target,h=S.checked;S.checked=a.enabled[c],o("change",c,h)}function b(d){return!r.value||d.defaultPrevented?!1:d.target instanceof Node&&r.value.contains(d.target)?!0:d.target instanceof Element&&d.target.closest('[role="dialog"],dialog[open]')?!1:!Array.from(document.querySelectorAll('[aria-modal="true"],dialog[open]')).some(c=>c!==r.value&&!r.value.contains(c))}function y(d){if(!b(d))return;if(d.key==="Escape"){d.preventDefault(),d.stopPropagation(),o("close");return}if(d.key!=="Tab")return;const c=Array.from(r.value?.querySelectorAll("a[href],button:not(:disabled),input:not(:disabled),textarea:not(:disabled),select:not(:disabled),[tabindex='0']")??[]).filter($=>!$.closest("[hidden]")&&$.tabIndex!==-1),S=c?.[0],h=c?.[c.length-1];(!r.value?.contains(document.activeElement)||d.shiftKey&&document.activeElement===S||!d.shiftKey&&document.activeElement===h)&&(d.preventDefault(),d.stopPropagation(),(d.shiftKey?h:S)?.focus())}return e.onMounted(()=>{const d=r.value?.closest(".mach-report-preview")?.querySelector(".mrp-settings-toggle"),c=document.activeElement;v=c instanceof HTMLElement&&c!==document.body&&!r.value?.contains(c)?c:d??null,g.value?.focus(),document.addEventListener("keydown",y)}),e.onUnmounted(()=>{document.removeEventListener("keydown",y),v?.isConnected&&v.focus()}),(d,c)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-settings-backdrop",onClick:c[5]||(c[5]=e.withModifiers(S=>d.$emit("close"),["self"]))},[e.createElementVNode("section",{ref_key:"panel",ref:r,class:"mrp-settings-panel",role:"dialog","aria-modal":"true","aria-label":t.messages.settings},[e.createElementVNode("header",qo,[e.createElementVNode("div",null,[c[6]||(c[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:c[0]||(c[0]=S=>d.$emit("close"))},[...c[7]||(c[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,Ko)]),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,h)=>(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:C=>d.$emit("section",S.key),onKeydown:C=>u(C,h)},e.toDisplayString(S.label),41,jo))),128))],8,Ho),e.createElementVNode("div",Wo,[e.createElementVNode("section",{id:s+"-panel-general",role:"tabpanel","aria-labelledby":s+"-tab-general",hidden:l.value!=="general"},[e.renderSlot(d.$slots,"default",{},void 0,!0),t.interaction?(e.openBlock(),e.createElementBlock("fieldset",Go,[e.createElementVNode("legend",null,e.toDisplayString(t.messages.settingsPanes),1),e.createElementVNode("label",Jo,[e.createElementVNode("span",null,e.toDisplayString(t.messages.freezeHeaders),1),e.createElementVNode("input",{type:"checkbox",checked:t.interaction.freezeHeaders,disabled:t.busy,onChange:c[1]||(c[1]=S=>d.$emit("interaction",{freezeHeaders:S.target.checked}))},null,40,Yo)]),e.createElementVNode("label",Zo,[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:c[2]||(c[2]=S=>d.$emit("interaction",{frozenColumns:Math.max(0,Math.min(20,Number(S.target.value)||0))}))},null,40,Xo)])])):e.createCommentVNode("",!0)],8,Uo),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(p.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,h=>(e.openBlock(),e.createElementBlock("label",{key:h.key,class:e.normalizeClass(["mrp-settings-option",{"mrp-settings-unavailable":!t.available[h.key]}])},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(h.label),1),t.available[h.key]?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("small",_o,e.toDisplayString(t.messages.settingsUnavailable),1))]),e.createElementVNode("input",{type:"checkbox",checked:t.enabled[h.key],disabled:t.busy||!t.available[h.key],onChange:C=>m(C,h.key)},null,40,er)],2))),128))]))),128)),t.available.editing?(e.openBlock(),e.createElementBlock("p",tr,e.toDisplayString(t.persistedEditing?t.messages.editingSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.available.import?(e.openBlock(),e.createElementBlock("p",nr,e.toDisplayString(t.messages.importLocal),1)):e.createCommentVNode("",!0)],8,Qo),e.createElementVNode("section",{id:s+"-panel-advanced",role:"tabpanel","aria-labelledby":s+"-tab-advanced",hidden:l.value!=="advanced"},[e.createElementVNode("p",or,e.toDisplayString(t.messages.settingsAdvancedDescription),1),e.createElementVNode("label",rr,[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,lr)]),e.createElementVNode("input",{type:"checkbox","aria-label":t.messages.settingsCalculations,"aria-describedby":s+"-calculation-description",checked:t.interaction?.calculations===!0,disabled:t.busy,onChange:c[3]||(c[3]=S=>d.$emit("interaction",{calculations:S.target.checked}))},null,40,sr)]),t.interaction?.calculations?e.renderSlot(d.$slots,"advanced",{},void 0,!0,0):e.createCommentVNode("",!0)],8,ar)]),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:t.busy,onClick:c[4]||(c[4]=S=>d.$emit("reset"))},e.toDisplayString(t.messages.settingsReset),9,ir),e.createElementVNode("span",null,e.toDisplayString(t.messages.settingsLocal),1)])],8,zo)]))}}),ur=W._export_sfc(cr,[["__scopeId","data-v-36723612"]]),dr={class:"mrp-empty",role:"status"},fr={key:0},mr=e.defineComponent({__name:"ReportEmpty",props:{title:{},description:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("div",dr,[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",fr,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)]))}}),on=W._export_sfc(mr,[["__scopeId","data-v-3e16b87e"]]),pr=["aria-label"],gr=e.defineComponent({__name:"ReportDiscardDialog",props:{messages:{}},emits:["answer"],setup(t,{emit:n}){const a=n,o=e.ref(null),r=e.ref(null);let l=null;function s(i){i.key==="Escape"&&(i.preventDefault(),a("answer",!1)),i.key==="Tab"&&(i.preventDefault(),document.activeElement===o.value?r.value?.focus():o.value?.focus())}return e.onMounted(()=>{l=document.activeElement instanceof HTMLElement?document.activeElement:null,o.value?.focus()}),e.onUnmounted(()=>{l?.isConnected&&l.focus()}),(i,u)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-discard-backdrop",onKeydown:s,onClick:u[2]||(u[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:o,type:"button",onClick:u[0]||(u[0]=g=>a("answer",!1))},e.toDisplayString(t.messages.discardKeep),513),e.createElementVNode("button",{ref_key:"discard",ref:r,type:"button",onClick:u[1]||(u[1]=g=>a("answer",!0))},e.toDisplayString(t.messages.discardProceed),513)])],8,pr)],32))}}),vr=W._export_sfc(gr,[["__scopeId","data-v-f7590294"]]),hr={key:0,class:"mrp-task-status",role:"status","aria-live":"polite"},yr={key:0},br=["value","max","aria-label"],wr=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})),o=e.computed(()=>n.task?.total===void 0?"":`${n.task.completed??0} / ${n.task.total}`);return(r,l)=>t.task&&(t.task.status==="running"||t.task.status==="cancelled")?(e.openBlock(),e.createElementBlock("div",hr,[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",yr,e.toDisplayString(o.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,br)):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=>r.$emit("cancel"))},e.toDisplayString(t.messages.taskCancel),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),xr=W._export_sfc(wr,[["__scopeId","data-v-657ac599"]]),Er={key:0,class:"mrp-diagnostics"},kr=["aria-label","placeholder"],Cr={key:0},Sr=["onClick"],Nr={key:0},Br=e.defineComponent({__name:"ReportDiagnostics",props:{entries:{},messages:{}},emits:["locate"],setup(t){const n=t,a=e.ref(""),o=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})),r=e.computed(()=>{const i=a.value.trim().toLocaleLowerCase();return i?n.entries.filter(u=>`${u.code} ${u.message} ${o.value[u.code]??""} ${u.path??""} ${s(u)} ${u.format??""}`.toLocaleLowerCase().includes(i)):n.entries}),l=e.computed(()=>r.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,u)=>t.entries.length?(e.openBlock(),e.createElementBlock("details",Er,[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":u[0]||(u[0]=g=>a.value=g),type:"search","aria-label":t.messages.diagnosticsSearch,placeholder:t.messages.diagnosticsSearch},null,8,kr),[[e.vModelText,a.value]]),e.createElementVNode("ol",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(g,v)=>(e.openBlock(),e.createElementBlock("li",{key:v},[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(o.value[g.code]??g.message),1),o.value[g.code]?(e.openBlock(),e.createElementBlock("details",Cr,[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:p=>i.$emit("locate",g)},e.toDisplayString(t.messages.diagnosticsLocate),9,Sr)):e.createCommentVNode("",!0)]))),128))]),r.value.length>l.value.length?(e.openBlock(),e.createElementBlock("small",Nr,e.toDisplayString((t.messages.diagnosticsMore??"").replace("{count}",String(r.value.length))),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),Pr=W._export_sfc(Br,[["__scopeId","data-v-3b7804ce"]]);class me extends Error{constructor(n,a,o){super(a),this.name="MachReportError",this.code=n,this.cause=o}}function wn(t){return t instanceof me?{code:t.code,cause:t.cause}:{code:"render",cause:t}}function xn(t){if(t instanceof me)return t;if(t instanceof O.ReportParamValidationError)return new me("param",t.message,t);if(t instanceof O.ReportSourceError)return new me(t.code,t.message,t.cause);if(t instanceof Error){const n={params:"param",config:"config",validate:"validate",fetch:"fetch"},a=t.code;if(typeof a=="string"&&Object.prototype.hasOwnProperty.call(n,a))return new me(n[a],t.message,t)}return new me("fetch",t instanceof Error?t.message:"预览加载失败",t)}const rn=new Map,Ve=new Map,Ir=15e3;function Nt(t,n){return Object.assign(new Error(t),{cause:n})}function Ke(t,n){return`PDF 字体 ${JSON.stringify(t)}:${n}。请部署支持报表文字的字体文件,并将 pdfFontUrl 配置为可访问的字体 URL;西文报表可设为空串`}function tt(t){if(t?.reason instanceof Error&&t.reason.name==="AbortError")return t.reason;const n=Nt("PDF 字体检查已取消",t?.reason);return n.name="AbortError",n}async function $r(t,n){let a=!1;const o=setTimeout(()=>{a=!0,n.abort()},Ir);try{const r=await fetch(t,{method:"HEAD",signal:n.signal});if(n.signal.aborted)throw tt(n.signal);if(r.status===405||r.status===501||r.type==="opaque")return{status:"unverified",fontUrl:t,message:`PDF 字体 ${JSON.stringify(t)} 无法通过 HEAD 检查验证;仍可尝试导出,届时会加载并校验字体`};if(!r.ok){const s=new Error(`字体请求返回 HTTP ${r.status}`);return{status:"error",fontUrl:t,message:Ke(t,s.message),cause:s}}const l=r.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:Ke(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:Ke(t,s.message),cause:s}}return{status:"available",fontUrl:t,message:"PDF 字体资源可达;文字覆盖范围将在实际导出时校验"}}catch(r){if(n.signal.aborted&&!a)throw tt(n.signal);return{status:"error",fontUrl:t,message:Ke(t,a?"字体检查超时,请检查网络或字体服务":"字体检查失败,请检查网络、字体服务或跨域访问配置"),cause:r}}finally{clearTimeout(o)}}function Dr(t,n){if(n?.aborted)return Promise.reject(tt(n));if(!t)return Promise.resolve({status:"disabled",fontUrl:t,message:"已停用自定义 PDF 字体;内置字体用于西文,其他文字会在导出时校验"});const a=rn.get(t);if(a)return Promise.resolve(a);let o=Ve.get(t);if(!o){const l=new AbortController;o={controller:l,promise:$r(t,l),subscribers:0};const s=o;Ve.set(t,s),s.promise=s.promise.then(i=>(!l.signal.aborted&&i.status==="available"&&rn.set(t,i),i)).finally(()=>{Ve.get(t)===s&&Ve.delete(t)})}const r=o;return r.subscribers++,new Promise((l,s)=>{let i=!1;const u=()=>i?!1:(i=!0,r.subscribers--,n?.removeEventListener("abort",g),!0),g=()=>{u()&&(r.subscribers===0&&(Ve.get(t)===r&&Ve.delete(t),r.controller.abort()),s(tt(n)))};n?.addEventListener("abort",g,{once:!0}),r.promise.then(v=>{u()&&l(v)},v=>{u()&&s(v)}),n?.aborted&&g()})}function En(t={fontUrl:"/simhei.ttf"}){let n=null;const a=async(o,r,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 b=m instanceof Error?m.message:String(m);throw Nt(Ke(t.fontUrl,b),m)}let i;try{se.assertOutputActive(l.signal),i=await n.renderPlanToPdf(o,{...l,...s?{customFontBytes:s}:{}})}catch(m){if(!s)throw m;const b=m instanceof Error?m.message:String(m);throw Nt(`PDF 生成失败:${b}。当前字体 URL 为 ${JSON.stringify(t.fontUrl)};请确认该文件是有效字体,或重新配置 pdfFontUrl`,m)}se.assertOutputActive(l.signal),i.diagnostics?.forEach(m=>{try{l.onDiagnostic?.(m)}catch{}});const{bytes:u,unsupportedTextCount:g,pageErrors:v,fidelityWarnings:p}=i;if(g>0)throw new Error(`PDF 中有 ${g} 行文字无法编码;请部署支持所用文字的字体并配置 pdfFontUrl`);if(v.length>0)throw new Error(`PDF 有 ${v.length} 页渲染失败:${v[0]}`);return p.length>0&&r?.(`PDF 有 ${p.length} 处版式降级:${p.slice(0,2).join(";")}`),u};return a.checkFont=o=>Dr(t.fontUrl,o),a}function Rr(t){const n=e.shallowRef(Object.freeze({status:"unchecked",fontUrl:""}));let a=null,o=null,r=0,l=null;function s(){if(t.injectedExporter)return t.injectedExporter;const v=t.fontUrl();return(!o||a!==v)&&(a=v,o=En({fontUrl:v})),o}function i(){r++,l?.abort(),l=null}async function u(){if(t.destroyed())throw new me("config","报表预览已卸载");i();const v=r,p=new AbortController;l=p;const m=t.fontUrl();n.value=Object.freeze({status:"checking",fontUrl:m});try{const b=s(),y=b.checkFont?await b.checkFont(p.signal):{status:"unverified",fontUrl:"",message:"自定义 PDF 导出器未提供字体预检查;字体由宿主确认"};return!t.destroyed()&&v===r&&!p.signal.aborted&&(n.value=Object.freeze({...y})),y}catch(b){if(p.signal.aborted)throw b;const y={status:"error",fontUrl:m,message:b instanceof Error?b.message:"PDF 字体检查失败",cause:b};return!t.destroyed()&&v===r&&(n.value=Object.freeze(y)),y}finally{l===p&&(l=null)}}function g(){u().catch(()=>{})}return e.watch([t.plan,e.computed(t.fontUrl),e.computed(t.enabled)],()=>{const v=n.value.fontUrl===t.fontUrl();v&&n.value.status==="available"||(i(),(!v||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:u,retryPdfFont:g,cancelFontCheck:i}}function Vr(t){const n=e.shallowRef(null),a=e.shallowRef(!1);let o=0,r=null;function l(u){const g=r;r=null,n.value=null,a.value=!1,g?.(u)}function s(){o++,l(!1)}async function i(u){if(s(),!t.enabled()||!t.pending())return!0;const g=o,v=[...t.snapshot?.()??[]];a.value=!0;const p=Object.freeze({reason:u,reportIds:Object.freeze([...t.reportIds()]),pendingLocalChanges:!0});try{const m=t.hook(),b=await new Promise(d=>{if(r=d,!m){n.value=p;return}Promise.resolve().then(()=>m(p)).then(c=>{g===o&&l(c===!0)},c=>{if(g===o){try{t.error(c)}catch{}l(!1)}})}),y=t.snapshot?.()??[];return g===o&&b===!0&&y.length===v.length&&v.every((d,c)=>Object.is(d,y[c]))}catch(m){if(g===o){try{t.error(m)}catch{}l(!1)}return!1}}return{request:n,pending:a,check:i,settle:l,cancel:s}}let Mr=0;function Tr(t){const n=e.shallowRef(null),a=new Set;let o=null;function r(u){n.value=Object.freeze(u);try{t(n.value)}catch{}}function l(u,g,v){const p=`mr-task-${Date.now().toString(36)}-${++Mr}`;a.add(p),o=v,r({taskId:p,kind:u,stage:g,status:"running",cancellable:!0});function m(y,d,c){n.value?.taskId!==p||n.value.status!=="running"||r({...n.value,stage:y,completed:d,total:c})}function b(y="completed"){n.value?.taskId!==p||n.value.status!=="running"||(o=null,r({...n.value,status:y,cancellable:!1}))}return{taskId:p,update:m,finish:b}}function s(){if(n.value?.status!=="running")return;const u=o;o=null,r({...n.value,status:"cancelled",cancellable:!1}),u?.()}function i(u,g){n.value?.taskId!==u.taskId&&(u.status!=="running"||a.has(u.taskId))||(a.add(u.taskId),a.size>100&&a.delete(a.values().next().value),o=u.status==="running"?g:null,r({...u}))}return{state:n,start:l,cancel:s,receive:i}}function Ar(t){const n=e.shallowRef(Object.freeze([])),a=new Set;let o=0;function r(){o++,n.value=Object.freeze([]),a.clear()}function l(u){const g=o,v=[];for(const p of u){const m=JSON.stringify([p.code,p.format,p.pageIndex,p.componentIndex,p.componentPath,p.path,p.message]);if(a.has(m))continue;a.add(m);const b=Object.freeze({...p,...p.componentPath?{componentPath:Object.freeze([...p.componentPath])}:{}});v.push(b)}v.length&&(n.value=Object.freeze([...n.value,...v]));for(const p of v){if(g!==o)break;try{t(p)}catch{}}}function s(u){l([u])}function i(u,g){const v=O.inspectOutputCapabilities(u,g);return l(v),v}return{entries:n,reset:r,add:s,addMany:l,inspect:i}}let Fr=0;function Or(){return`mrp-params-${++Fr}`}function kn(t,n,a){const o=(Array.isArray(n)?n.find(r=>r?.field===t.field)?.label:void 0)??t.field;return t.code==="required"?a.paramRequired.replace("{label}",o):(a.paramInvalid??"{label}:{message}").replace("{label}",o).replace("{message}",t.message)}function Lr(t){const n=e.ref({}),a=e.ref(!1);function o(){const i={};for(const u of Array.isArray(t.defs.value)?t.defs.value:[])typeof u?.field=="string"&&Object.defineProperty(i,u.field,{value:t.params()[u.field]??u.defaultValue??"",writable:!0,enumerable:!0,configurable:!0});n.value=i,a.value=!1}o(),e.watch(t.defs,o),e.watch(t.reportIds,o),e.watch(()=>JSON.stringify(t.params()),o);const r=e.computed(()=>O.validateReportParams(t.defs.value,{...t.params(),...n.value})),l=e.computed(()=>!a.value&&r.value.issues.length>0&&r.value.issues.every(i=>i.code==="required"));function s(){const i=r.value;if(!i.ok){const v=i.issues[0];return{quiet:l.value,error:new me(v.code==="definition"?"config":"param",kn(v,t.defs.value,t.messages()),{issues:i.issues})}}const u={...i.values},g=new Set(t.defs.value.filter(v=>v.defaultValue!==void 0).map(v=>v.field));for(const[v,p]of Object.entries(u))p===""&&!g.has(v)&&delete u[v];return{params:u,quiet:!1}}return{values:n,attempted:a,validation:r,pendingRequired:l,reset:o,query:s}}const zr={class:"mrp-params-title"},qr={class:"mrp-params-grid"},Kr=["id"],Hr={key:0,class:"mrp-param-star"},jr=["value","aria-labelledby","aria-invalid","aria-describedby","aria-required","onChange"],Wr=["disabled","hidden"],Ur=["value"],Gr=["type","placeholder","value","min","max","step","aria-labelledby","aria-invalid","aria-describedby","aria-required","onInput"],Jr=["id"],Yr={class:"mrp-params-actions"},Zr=e.defineComponent({__name:"ReportParamPanel",props:{defs:{},modelValue:{},messages:{},attempted:{type:Boolean},issues:{}},emits:["update:modelValue","query","reset"],setup(t,{expose:n,emit:a}){const o=t,r=a,l=e.ref({...o.modelValue}),s=e.ref(null),i=Or();e.watch(()=>o.modelValue,b=>{l.value={...b}});const u=e.computed(()=>o.issues??O.validateReportParams(o.defs,l.value).issues),g=e.computed(()=>(Array.isArray(o.defs)?o.defs:[]).filter(b=>b&&typeof b.field=="string").map((b,y)=>({def:b,id:`${i}-${y}`,label:b.label??b.field,value:l.value[b.field]??"",error:o.attempted?u.value.find(d=>d.field===b.field):void 0})));function v(b,y){l.value={...l.value,[b]:y},r("update:modelValue",{...l.value})}function p(b){b.isComposing||r("query")}function m(){s.value?.querySelector('[aria-invalid="true"]')?.focus()}return n({focusInvalid:m}),(b,y)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:s,class:"mrp-params"},[e.createElementVNode("span",zr,e.toDisplayString(t.messages.paramsTitle),1),e.createElementVNode("div",qr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,d=>(e.openBlock(),e.createElementBlock("label",{key:d.id,class:e.normalizeClass(["mrp-param",{"mrp-param-missing":!!d.error}])},[e.createElementVNode("span",{id:`${d.id}-label`,class:"mrp-param-label"},[e.createTextVNode(e.toDisplayString(d.label),1),d.def.required?(e.openBlock(),e.createElementBlock("i",Hr,"*")):e.createCommentVNode("",!0)],8,Kr),(d.def.type??"text")==="select"?(e.openBlock(),e.createElementBlock("select",{key:0,class:"mrp-param-input",value:d.value,"aria-labelledby":`${d.id}-label`,"aria-invalid":d.error?!0:void 0,"aria-describedby":d.error?`${d.id}-error`:void 0,"aria-required":d.def.required||void 0,onChange:c=>v(d.def.field,c.target.value),onKeydown:e.withKeys(p,["enter"])},[e.createElementVNode("option",{value:"",disabled:d.def.required,hidden:d.def.required},e.toDisplayString(d.def.placeholder??(t.messages.paramSelectPlaceholder??"请选择{label}").replace("{label}",d.label)),9,Wr),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.def.options??[],c=>(e.openBlock(),e.createElementBlock("option",{key:c.value,value:c.value},e.toDisplayString(c.label),9,Ur))),128))],40,jr)):(e.openBlock(),e.createElementBlock("input",{key:1,class:"mrp-param-input",type:d.def.type==="number"?"number":d.def.type==="date"?"date":"text",placeholder:d.def.placeholder??(t.messages.paramTextPlaceholder??"请输入{label}").replace("{label}",d.label),value:d.value,min:d.def.min,max:d.def.max,step:d.def.type==="number"?"any":void 0,"aria-labelledby":`${d.id}-label`,"aria-invalid":d.error?!0:void 0,"aria-describedby":d.error?`${d.id}-error`:void 0,"aria-required":d.def.required||void 0,onInput:c=>v(d.def.field,c.target.value),onKeydown:e.withKeys(p,["enter"])},null,40,Gr)),d.error?(e.openBlock(),e.createElementBlock("small",{key:2,id:`${d.id}-error`,class:"mrp-param-error",role:"status"},e.toDisplayString(e.unref(kn)(d.error,t.defs,t.messages)),9,Jr)):e.createCommentVNode("",!0)],2))),128))]),e.createElementVNode("div",Yr,[e.createElementVNode("button",{class:"mrp-nav mrp-param-query",type:"button",onClick:y[0]||(y[0]=d=>b.$emit("query"))},e.toDisplayString(t.messages.query),1),e.createElementVNode("button",{class:"mrp-nav",type:"button",onClick:y[1]||(y[1]=d=>b.$emit("reset"))},e.toDisplayString(t.messages.reset),1)])],512))}}),Cn=W._export_sfc(Zr,[["__scopeId","data-v-156737bc"]]),Xr={class:"mrp-edit-bar"},Qr=["disabled"],_r=["disabled"],el={class:"mrp-changes"},tl=["aria-label"],nl={key:0},al={key:1},ol=["onClick"],rl=["title"],ll=["title"],sl=["disabled"],il={key:0,role:"status"},cl={key:1,role:"status"},ul={key:2,class:"mrp-conflicts",open:""},dl=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,o)=>(e.openBlock(),e.createElementBlock("div",Xr,[e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.canUndo,onClick:o[0]||(o[0]=r=>a.$emit("undo"))},e.toDisplayString(t.messages.undo),9,Qr),e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.canRedo,onClick:o[1]||(o[1]=r=>a.$emit("redo"))},e.toDisplayString(t.messages.redo),9,_r),e.createElementVNode("details",el,[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",al,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.differences,(r,l)=>(e.openBlock(),e.createElementBlock("li",{key:l},[e.createElementVNode("button",{type:"button",onClick:s=>a.$emit("locate",r)},e.toDisplayString(n(r)),9,ol),e.createElementVNode("span",null,[e.createElementVNode("s",{title:t.messages.changesBefore},e.toDisplayString(r.previousText||"∅"),9,rl),o[3]||(o[3]=e.createTextVNode(" → ",-1)),e.createElementVNode("strong",{title:t.messages.changesAfter},e.toDisplayString(r.text||"∅"),9,ll)])]))),128))])):(e.openBlock(),e.createElementBlock("p",nl,e.toDisplayString(t.messages.changesEmpty),1))],8,tl)]),e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.differences.length,onClick:o[2]||(o[2]=r=>a.$emit("restore"))},e.toDisplayString(t.messages.restoreChanges),9,sl),t.saving?(e.openBlock(),e.createElementBlock("span",il,e.toDisplayString(t.messages.saving),1)):t.differences.length&&!t.conflicts.length?(e.openBlock(),e.createElementBlock("span",cl,e.toDisplayString(t.persisted?t.messages.editSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.conflicts.length?(e.openBlock(),e.createElementBlock("details",ul,[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,(r,l)=>(e.openBlock(),e.createElementBlock("li",{key:l},e.toDisplayString(r.message),1))),128))])])):e.createCommentVNode("",!0)]))}}),fl=W._export_sfc(dl,[["__scopeId","data-v-df1c7b86"]]);function ml(t){const n=t.table?.columnKeys??[],a=n.map(()=>[]);if(!t.grid)return n;for(const{ci:o,cell:r}of $t.resolveGridLayout(t.grid,t.widthMm,t.heightMm).cells){const l=(r.text??r.rawText??"").trim();if(l)for(let s=o;s<Math.min(n.length,o+(r.colSpan??1));s++)a[s].includes(l)||a[s].push(l)}return n.map((o,r)=>a[r].join(" / ")||o)}function pl(t,n=[]){const a=new Set,o=[];for(const[r,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 u=ml(s),g=n.filter(b=>b.pageIndex<=r),v=g[g.length-1]?.label,p=i.source?.datasetId,m=[...new Set([v,i.title,p].filter(Boolean))].join(" · ")||i.id;i.columnKeys.forEach((b,y)=>{b&&o.push({key:JSON.stringify([i.id,y]),field:b,label:u[y],group:m,pageIndex:r,tableId:i.id,...p?{datasetId:p}:{}})})}return o}function gl(t,n){const a=n.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return t.filter(o=>{const r=`${o.label} ${o.field} ${o.group}`.toLocaleLowerCase();return a.every(l=>r.includes(l))})}function vl(t){const n=yn(),a=e.ref(""),o=e.ref(0),r=`mrp-column-list-${e.getCurrentInstance()?.uid??0}`,l=e.computed(()=>pl(t.plan(),t.sections())),s=e.computed(()=>gl(l.value,a.value)),i=e.computed(()=>s.value.slice(0,100)),u=e.computed(()=>[...new Set(i.value.map(y=>y.group))].map(y=>({label:y,items:i.value.filter(d=>d.group===y)})));e.watch(a,()=>{o.value=0}),e.watch(t.busy,y=>{y&&n.close()}),e.watch(l,()=>{o.value=0});function g(y){t.busy()||(t.locate(y),n.close(!0))}function v(){if(t.busy())return;const y=i.value[o.value];y?g(y):a.value.trim()&&(t.locateField(a.value.trim()),n.close(!0))}function p(){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"){v();return}i.value.length&&(o.value=(o.value+(y.key==="ArrowDown"?1:-1)+i.value.length)%i.value.length,e.nextTick(()=>n.panel.value?.querySelector(`[id="${r}-${o.value}"]`)?.scrollIntoView?.({block:"nearest"})))}}function b(y){return i.value.findIndex(d=>d.key===y)}return{...n,field:a,active:o,listId:r,directory:l,matches:s,candidates:i,groups:u,choose:g,submit:v,clear:p,onSearchKeydown:m,candidateIndex:b}}const hl=["aria-label"],yl={key:0,class:"mrp-section-tabs"},bl=["aria-current","disabled","onClick"],wl=["aria-expanded","disabled"],xl={key:0,class:"mrp-column-count"},El=["aria-label"],kl={class:"mrp-column-heading"},Cl=["aria-label"],Sl=["aria-label","placeholder","aria-controls","aria-activedescendant","disabled"],Nl=["aria-label"],Bl=["id","aria-label"],Pl={key:0,class:"mrp-column-empty",role:"status"},Il=["aria-label"],$l=["id","aria-selected","disabled","onPointermove","onClick"],Dl=["title"],Rl={class:"mrp-column-help",role:"status"},Vl=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,o=n,r=vl({plan:()=>a.plan,sections:()=>a.sections,busy:()=>a.busy,locate:C=>o("locate-target",C),locateField:C=>o("locate",C)}),{root:l,trigger:s,panel:i,opened:u,field:g,active:v,directory:p,matches:m,candidates:b,groups:y,listId:d}=r,c=e.computed(()=>({columnDirectory:"字段目录",columnSearch:"搜索列名或字段",columnNoMatches:"未找到匹配字段",columnResults:"匹配字段",...a.messages})),S=e.computed(()=>(a.messages.columnResultsMore??"{count} 个匹配字段,显示前 {limit} 个;继续输入可缩小范围").replace("{count}",String(m.value.length)).replace("{limit}",String(b.value.length)));function h(C){const $=a.sections[C];return!!$&&a.currentPage>=$.pageIndex+1&&(!a.sections[C+1]||a.currentPage<=a.sections[C+1].pageIndex)}return(C,$)=>(e.openBlock(),e.createElementBlock("nav",{class:e.normalizeClass(["mrp-section-nav",{"mrp-compact":t.compact}]),"aria-label":t.messages.sections??"工作表与章节"},[t.sections.length>1?(e.openBlock(),e.createElementBlock("div",yl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.sections,(V,T)=>(e.openBlock(),e.createElementBlock("button",{key:T,type:"button",class:e.normalizeClass({active:h(T)}),"aria-current":h(T)?"page":void 0,disabled:t.busy,onClick:H=>o("goto",V.pageIndex+1)},e.toDisplayString(V.label),11,bl))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"root",ref:l,class:"mrp-column-locator",onKeydown:$[7]||($[7]=(...V)=>e.unref(r).onKeydown&&e.unref(r).onKeydown(...V))},[e.createElementVNode("button",{ref_key:"trigger",ref:s,type:"button",class:e.normalizeClass(["mrp-directory-trigger",{active:e.unref(u)}]),"aria-expanded":e.unref(u),"aria-haspopup":"dialog",disabled:t.busy,onClick:$[0]||($[0]=V=>u.value=!e.unref(u))},[e.createVNode(W._sfc_main,{name:"columns"}),e.createElementVNode("span",null,e.toDisplayString(c.value.columnDirectory),1),e.unref(p).length?(e.openBlock(),e.createElementBlock("span",xl,e.toDisplayString(e.unref(p).length),1)):e.createCommentVNode("",!0),e.createVNode(W._sfc_main,{name:"chevron-down",size:12})],10,wl),e.unref(u)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panel",ref:i,class:"mrp-column-directory",role:"dialog","aria-label":c.value.columnDirectory},[e.createElementVNode("div",kl,[e.createElementVNode("span",null,[e.createVNode(W._sfc_main,{name:"columns"}),e.createTextVNode(e.toDisplayString(c.value.columnDirectory),1)]),e.createElementVNode("button",{type:"button",class:"mrp-column-close","aria-label":t.messages.closeColumnDirectory??"关闭字段目录",onClick:$[1]||($[1]=V=>e.unref(r).close(!0))},[e.createVNode(W._sfc_main,{name:"close",size:15})],8,Cl)]),e.createElementVNode("form",{class:"mrp-column-search",onSubmit:$[5]||($[5]=e.withModifiers((...V)=>e.unref(r).submit&&e.unref(r).submit(...V),["prevent"]))},[e.createVNode(W._sfc_main,{name:"search"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":$[2]||($[2]=V=>e.isRef(g)?g.value=V:null),type:"search",autocomplete:"off",spellcheck:"false",role:"combobox","aria-label":c.value.columnSearch,placeholder:c.value.columnSearch,"aria-autocomplete":"list","aria-expanded":"true","aria-controls":e.unref(d),"aria-activedescendant":e.unref(b).length?`${e.unref(d)}-${e.unref(v)}`:void 0,disabled:t.busy,onKeydown:$[3]||($[3]=(...V)=>e.unref(r).onSearchKeydown&&e.unref(r).onSearchKeydown(...V))},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:$[4]||($[4]=(...V)=>e.unref(r).clear&&e.unref(r).clear(...V))},[e.createVNode(W._sfc_main,{name:"close",size:13})],8,Nl)):e.createCommentVNode("",!0)],32),e.createElementVNode("div",{id:e.unref(d),class:"mrp-column-results",role:"listbox","aria-label":c.value.columnResults},[e.unref(b).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Pl,[e.createVNode(W._sfc_main,{name:"search",size:22}),e.createTextVNode(e.toDisplayString(c.value.columnNoMatches),1)])),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),V=>(e.openBlock(),e.createElementBlock("section",{key:V.label,role:"group","aria-label":V.label},[e.createElementVNode("strong",null,e.toDisplayString(V.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.items,T=>(e.openBlock(),e.createElementBlock("button",{id:`${e.unref(d)}-${e.unref(r).candidateIndex(T.key)}`,key:T.key,type:"button",role:"option",tabindex:"-1",class:e.normalizeClass({"mrp-column-active":e.unref(r).candidateIndex(T.key)===e.unref(v)}),"aria-selected":e.unref(r).candidateIndex(T.key)===e.unref(v),disabled:t.busy,onPointermove:H=>v.value=e.unref(r).candidateIndex(T.key),onMousedown:$[6]||($[6]=e.withModifiers(()=>{},["prevent"])),onClick:H=>e.unref(r).choose(T)},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(T.label),1),e.createElementVNode("code",{title:T.field},e.toDisplayString(T.field),9,Dl)]),e.createVNode(W._sfc_main,{name:"arrow-right",size:14})],42,$l))),128))],8,Il))),128))],8,Bl),e.createElementVNode("p",Rl,e.toDisplayString(e.unref(m).length>e.unref(b).length?S.value:t.messages.columnSearchShortcut??"↑ ↓ 选择 · Enter 定位"),1)],8,El)):e.createCommentVNode("",!0)],544)],10,hl))}}),ln=W._export_sfc(Vl,[["__scopeId","data-v-b47639d9"]]),Ml={class:"mrp-import-summary"},Tl={key:0},Al={key:0},Fl=e.defineComponent({__name:"ReportImportSummary",props:{result:{},messages:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("details",Ml,[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",Tl," · "+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,o=>(e.openBlock(),e.createElementBlock("li",{key:o.index},e.toDisplayString(o.name)+" · "+e.toDisplayString(o.range)+" · "+e.toDisplayString(o.rowCount)+" × "+e.toDisplayString(o.columnCount),1))),128))]),t.result.warnings.length?(e.openBlock(),e.createElementBlock("ul",Al,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.result.warnings,(o,r)=>(e.openBlock(),e.createElementBlock("li",{key:r},e.toDisplayString(o),1))),128))])):e.createCommentVNode("",!0)]))}}),Ol=W._export_sfc(Fl,[["__scopeId","data-v-54f275e8"]]),Vt={calculationTitle:"选区计算",calculationLocal:"仅本地分析,不写回实绩、不重算原公式。请选取同一单位与量纲的数值。",calculationHint:"点击起点,Shift + 点击终点或方向键扩选。",calculationFormula:"计算方式",calculationExpression:"组合公式",calculationExpressionHint:"支持 SUM、AVERAGE/AVG、MIN、MAX、COUNT、MEDIAN 及 + - * / 和括号,不执行 Excel 公式;采用浮点数,精度仅用于展示。",calculationPrecision:"展示小数位",calculationRun:"计算选区",calculationCancel:"取消计算",calculationResult:"计算结果",calculationIncluded:"参与数值",calculationExcluded:"排除单元格",calculationEmpty:"选区没有可计算数值,计数为 0,其余结果为空。",calculationNoSelection:"先关闭设置并选择数据,再从底部工具栏打开选区计算。",calculationSum:"求和 SUM",calculationAverage:"平均值 AVERAGE",calculationMin:"最小值 MIN",calculationMax:"最大值 MAX",calculationCount:"数值计数 COUNT",calculationMedian:"中位数 MEDIAN",calculationCustom:"组合公式",calculationErrorSelection:"请选择同一明细区域中的数据。",calculationErrorLimit:"选区超过计算预算,请缩小范围后重试。",calculationErrorExpression:"公式无效,请使用支持的摘要名称、运算符与括号。",calculationErrorDivision:"除数不能为 0。",calculationErrorOverflow:"结果超出有效数值范围。",calculationErrorPrecision:"数值超出安全精度,或展示小数位不是 0 至 12 的整数。"};function Sn(t){const n={...Vt};for(const a of Object.keys(n)){const o=t[a];typeof o=="string"&&(n[a]=o)}return n}const Nn={...Vt,exportMenu:"导出",exportMenuDescription:"选择文件格式",clearSearch:"清除搜索",searchHint:"Enter 下一个 · Shift+Enter 上一个",searchNoMatches:"没有匹配内容",pageJump:"跳至页",pageJumpInvalid:"请输入有效页码",pageJumpHint:"Enter 跳转",pagination:"报表分页",columnSearchHint:"输入列名或字段标识",columnSearchShortcut:"↑ ↓ 选择 · Enter 定位",closeColumnDirectory:"关闭字段目录",columnResultsMore:"{count} 个匹配字段,显示前 {limit} 个;继续输入可缩小范围",columnCount:"{count} 个字段",settingsGeneral:"常规",settingsTools:"工具",settingsAdvanced:"高级",settingsAdvancedDescription:"按需开启分析能力,保持日常阅读简洁。",settingsCalculations:"启用选区计算",settingsCalculationsDescription:"选取数值后计算求和、平均值或组合公式,仅用于本地分析。",title:"报表预览",prevPage:"‹ 上一页",nextPage:"下一页 ›",pageInfo:"{cur} / {total}",fitWidth:"适宽",exportHtml:"导出 HTML",exportPdf:"导出 PDF",exportExcel:"导出 Excel",exportImage:"导出图片",exportWord:"导出 Word",exporting:"正在生成 {format}…",print:"打印",pdfWindow:"PDF 窗口",loading:"报表渲染中…",empty:"暂无预览数据",errorPrefix:"",retry:"重试",pdfFontUnavailable:"PDF 字体尚未就绪,请联系管理员检查字体配置;预览及其它导出仍可使用。",searchPlaceholder:"搜索报表内容",matchInfo:"{cur}/{total}",prevMatch:"‹",nextMatch:"›",thumbnails:"缩略图",paramsTitle:"查询条件",query:"查 询",reset:"重 置",paramRequired:"请填写{label}",paramInvalid:"{label}:{message}",paramPrompt:"请先完善查询条件",paramPromptDescription:"填写必填条件后点击查询,即可生成报表。",paramSelectPlaceholder:"请选择{label}",paramTextPlaceholder:"请输入{label}",searching:"搜索中…",importExcel:"导入 Excel 模板",importing:"正在导入 Excel…",editCell:"编辑单元格",editingHint:"双击单元格编辑 · Enter 确认 · Esc 取消",saving:"正在保存修改…",editInvalidNumber:"请输入有效数字;清空表示无值",editInvalidBoolean:"请输入 true / false、是 / 否或 1 / 0",editConflict:"该单元格已变化,请重新打开编辑",settings:"设置",settingsDisplay:"阅读工具",settingsExport:"导出与打印",settingsData:"数据操作",settingsUnavailable:"需由接入方配置启用",settingsReset:"恢复默认",settingsClose:"关闭设置",search:"内容搜索",closeSearch:"关闭搜索",prevSearchMatch:"上一个匹配",nextSearchMatch:"下一个匹配",zoom:"缩放工具",settingsLocal:"按需启用工具,仅作用于当前预览。",editingLocal:"修改为本地草稿;不会自动写入业务数据库。",editingSaved:"修改将通过接入方配置的保存回调提交。",importLocal:"导入仅生成本地预览,不自动替换业务数据。",emptyDescription:"当前查询没有明细,请调整查询条件后重试。",undo:"撤销",redo:"重做",restoreChanges:"恢复来源值",changes:"修改明细",changesCount:"{count} 处修改",changesEmpty:"尚无修改",changesBefore:"来源值",changesAfter:"当前值",editAtomicRequired:"批量保存需要接入方提供原子 saveBatch 回调;本次未写入任何单元格。",clipboardLimit:"单次最多粘贴 10000 个单元格,请分批处理。",preferencesError:"偏好存储不可用,设置仍在当前预览中生效。",freezeHeaders:"冻结表头",frozenColumns:"冻结前列",sections:"工作表与章节",locateField:"定位字段",locateFieldPlaceholder:"输入字段标识,Enter 定位",locateFieldMissing:"未找到该字段,请核对字段标识。",importSummary:"Excel 导入摘要",importPreserved:"已导入 {sheets} 个工作表,保留内容、合并和样式。",importWarnings:"兼容性提示",importReadOnly:"公式、日期及受保护单元格保持只读;公式不重算。",conflicts:"保存冲突",editReadOnly:"选区包含只读或无权限单元格,本次修改未应用。",editMissing:"选区超出报表范围或缺少业务来源,请重新选择。",editRecalculationUnavailable:"此报表缺少重算会话或稳定数据来源,暂不支持编辑;请使用 reports/本地数据源重新加载。",editDuplicate:"选区包含同一业务字段的重复单元格,请缩小选区。",clipboardInvalid:"剪贴板内容无法识别,请使用矩形表格文本重新粘贴。",editSaved:"修改已通过保存回调确认",settingsPanes:"冻结窗格",columnDirectory:"字段目录",columnSearch:"搜索列名或字段",columnNoMatches:"未找到匹配字段",columnResults:"匹配字段",columnGroup:"明细区域",discardTitle:"保留当前修改?",discardDescription:"当前报表有尚未保存的输入或本地草稿,继续操作将替换这些内容。",discardKeep:"继续编辑",discardProceed:"放弃修改并继续",taskQuery:"正在获取数据…",taskValidate:"正在校验数据…",taskLayout:"正在生成版式…",taskAssets:"正在准备图片和字体…",taskEncode:"正在生成文件…",taskDownload:"正在准备下载…",taskPrint:"正在准备打印…",taskCancel:"取消任务",taskCancelled:"任务已取消,可重新操作。",diagnosticsSearch:"搜索提示、错误码或位置",diagnosticsMore:"共 {count} 条匹配,当前展示前 100 条;请搜索缩小范围。",diagnosticsTitle:"输出兼容性提示",diagnosticsLocate:"定位",diagnosticsLocation:"第 {page} 页 · 组件 {component}",diagnosticsStrict:"当前格式存在已知内容降级,请查看兼容性提示或选择其他输出格式。",diagnosticsDetails:"查看技术详情",diagnosticMissingImage:"图片或图表资源尚未准备完成,请重试或联系管理员。",diagnosticUnsupported:"当前输出格式会省略此内容,建议选择 PDF 或图片格式。",diagnosticUnsupportedStyle:"当前格式无法保留部分样式,请查看位置并选择适合的输出格式。",diagnosticImageFormat:"当前图片格式无法直接导出,请转换资源后重试。",diagnosticRichText:"文字内容会保留,部分字体与段落样式将简化。",diagnosticNested:"单元格中的嵌套内容会省略,单元格文字会保留。",diagnosticImageAsync:"图片需要完成加载后才能输出。",diagnosticImageDecode:"图片加载失败,请检查资源后重试。",diagnosticAssetFailed:"图表或图片生成失败,请重试或联系管理员。",diagnosticAssetBudget:"图片资源超出处理范围,请减少资源或缩小报表范围。"},Bn={emptyAccent:"#79a7e8",shellBg:"#f4f7fc",shellFg:"#334155",toolbarBg:"#ffffff",toolbarBorder:"#e4eaf3",toolbarFg:"#334155",btnFg:"#526078",btnBorder:"#dbe3ef",btnHoverBg:"#edf3ff",btnHoverFg:"#315fba",btnActiveBg:"#3569d4"};function Pn(t={}){return{...t,defaults:t.defaults??{},presets:t.presets??{}}}function Ll(t){return t}const Ce={showExport:!0,showPrint:!0,showPdfWindow:!0,showSettings:!0,showParams:!0,gapPx:18,pdfFontUrl:"/simhei.ttf",logger:console},zl={warn:()=>{},info:()=>{}};function Xe(t,n){return{...t,...n,theme:{...t?.theme,...n?.theme},messages:{...t?.messages,...n?.messages},preview:{...t?.preview,...n?.preview},xlsx:{...t?.xlsx,...n?.xlsx},toolbar:{...t?.toolbar,...n?.toolbar},interaction:{...t?.interaction,...n?.interaction},output:{...t?.output,...n?.output}}}function ql(t){return{showExport:t.showExport??Ce.showExport,showPrint:t.showPrint??Ce.showPrint,showPdfWindow:t.showPdfWindow??Ce.showPdfWindow,showSettings:t.showSettings??Ce.showSettings,showParams:t.showParams??Ce.showParams,gapPx:t.gapPx??Ce.gapPx}}function In(t,n){const a=n?t?.presets?.[n]:t?.defaultPreset?t?.presets?.[t.defaultPreset]:void 0,o=Xe(t?.defaults,a);return{...ql(o),pdfFontUrl:o.pdfFontUrl??Ce.pdfFontUrl,theme:{...Bn,...o.theme},messages:{...Nn,...o.messages},logger:o.logger??Ce.logger,preview:{overscanPages:sn(o.preview?.overscanPages,1,10,!0),searchDebounceMs:sn(o.preview?.searchDebounceMs,200,2e3)},xlsx:{...o.xlsx},editable:o.editable??!1,excelImport:o.excelImport??!1,toolbar:{...o.toolbar},interaction:{...o.interaction},preferences:o.preferences,assets:o.assets,guardChanges:o.guardChanges??!0,beforeDiscard:o.beforeDiscard,output:{...o.output}}}function sn(t,n,a,o=!1){if(t==null||!Number.isFinite(t))return n;const r=Math.max(0,Math.min(a,t));return o?Math.floor(r):r}function $n(t){const n={};return t.emptyAccent!=null&&(n["--mrp-empty-accent"]=t.emptyAccent),t.shellBg!=null&&(n["--mrp-shell-bg"]=t.shellBg),t.shellFg!=null&&(n["--mrp-shell-fg"]=t.shellFg),t.toolbarBg!=null&&(n["--mrp-toolbar-bg"]=t.toolbarBg),t.toolbarBorder!=null&&(n["--mrp-toolbar-border"]=t.toolbarBorder),t.toolbarFg!=null&&(n["--mrp-toolbar-fg"]=t.toolbarFg),t.btnFg!=null&&(n["--mrp-btn-fg"]=t.btnFg),t.btnBorder!=null&&(n["--mrp-btn-border"]=t.btnBorder),t.btnHoverBg!=null&&(n["--mrp-btn-hover-bg"]=t.btnHoverBg),t.btnHoverFg!=null&&(n["--mrp-btn-hover-fg"]=t.btnHoverFg),t.btnActiveBg!=null&&(n["--mrp-btn-active-bg"]=t.btnActiveBg),n}function Kl(t){const n=e.inject(Te.MACH_REPORT_CONFIG_KEY,null),a=e.computed(()=>{const o=n?.value??null,r="defaults"in t||"presets"in t||"defaultPreset"in t?Pn(t):{defaults:t,presets:{}};if(!o)return r;const l={...o.presets,...r.presets};for(const s of Object.keys(l))l[s]=Xe(Xe(o.presets[s],r.defaults),r.presets[s]);return{defaults:Xe(o.defaults,r.defaults),presets:l,defaultPreset:r.defaultPreset??o.defaultPreset}});e.provide(Te.MACH_REPORT_CONFIG_KEY,a)}function Dn(){return e.inject(Te.MACH_REPORT_CONFIG_KEY,e.computed(()=>null))}function ge(t){return JSON.parse(JSON.stringify(t))}function Rn(t,n){const a=n.fields;if(typeof a=="function")return a(t);const o=t.source?.field??t.table?.columnKey;return o===void 0||!a||!Object.prototype.hasOwnProperty.call(a,o)?void 0:a[o]}function at(t,n){if(t.requiresRecalculation&&(!n||!O.getReportEditSession(t)))throw new O.ReportCellEditError("recalculation")}async function Hl(t,n,a,o){const r=n.edits.every(i=>!!i.source);at(t,r);const l=O.getReportEditSession(t);if(l&&r)return l.prepareHistory(t,n.edits,n.value,a,{signal:o});const s=Ae(t);return n.edits.map(i=>{const u=s(i);if(!u)throw new O.ReportCellEditError("missing");return{address:u,value:i[n.value]}})}function jl(t,n,a){const o=n.edits.every(r=>!!r.source);return at(t,o),o?O.getReportEditSession(t)?.prepare(t,n,{signal:a}):void 0}function Wl(t,n){const a=new Map;return t.pages.forEach((o,r)=>o.components.forEach((l,s)=>{if(l.grid)for(const i of $t.resolveGridLayout(l.grid,l.widthMm,l.heightMm).cells){const u=n({pageIndex:r,componentIndex:s,rowIndex:i.ri,columnIndex:i.ci});if(!u?.source)continue;const g=O.reportCellEditKey(u),v=a.get(g)??[];v.push(u),a.set(g,v)}})),a}function Ae(t){const n=O.createReportCellResolver(t),a=Wl(t,n);function o(l){if(l.source)return a.get(O.reportCellEditKey(l))??[];const s=n(l.address);return s?!l.table||O.reportCellEditKey(s)===O.reportCellEditKey(l)?[s]:[]:[]}const r=l=>{const s=o(l),i=s.find(u=>u.table?.id===l.table?.id)??s[0];return i?{...i.address}:null};return r.all=l=>o(l).map(s=>({...s.address})),r}class Ul extends Error{constructor(n){super(n.map(a=>a.message).join(";")),this.conflicts=n,this.name="ReportEditConflictError"}}function Gl(){return globalThis.crypto?.randomUUID?.()??`mr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function Jl(t,n,a,o){return Array.isArray(n)?{batch:O.createReportCellEditBatch(t,n,a)}:Hl(t,n,a,o).then(r=>Array.isArray(r)?{batch:O.createReportCellEditBatch(t,r,a)}:r)}function Yl(t){const n=e.shallowRef([]),a=e.shallowRef([]),o=e.shallowRef([]),r=e.shallowRef([]),l=e.shallowRef(!1),s=e.shallowRef(null),i=e.shallowRef([]),u=e.computed(()=>i.value.length>0),g=e.computed(()=>{const w=O.summarizeReportCellEdits(n.value),N=t.plan.value;if(!N||!w.length)return w;const D=Ae(N);return w.map(P=>{const L=D(P);return L?{...P,address:L}:P})}),v=e.computed(()=>!!t.options.value&&!l.value&&!t.blocked()&&a.value.length>0),p=e.computed(()=>!!t.options.value&&!l.value&&!t.blocked()&&o.value.length>0);let m=null,b=null,y=0,d=null;function c(){m?.abort(),m=null,l.value=!1,b=null}function S(){y++,c(),d=null,n.value=[],a.value=[],o.value=[],r.value=[],i.value=[],s.value=null}function h(){const w=t.options.value;return w?typeof w=="object"?w:{}:null}function C(w,N,D,P){if(!t.options.value||t.blocked())throw new O.ReportCellEditError("readonly");at(w,N.edits.every(K=>!!K.source));const L=O.createReportCellResolver(w),q=new Map(P?.map(K=>[O.reportCellEditKey(K),K]));for(const K of N.edits){const R=P?q.get(O.reportCellEditKey(K)):L(K.address);if(!R?.editable||D.canEdit?.(R)===!1)throw new O.ReportCellEditError("readonly");if(D.requireSource&&!R.source)throw new O.ReportCellEditError("missing");const ne=Rn(R,D);ne&&O.parseReportCellFieldInput(R,K.value,ne)}}async function $(w,N,D){if(N.saveBatch)return N.saveBatch(ge(w),D);if(N.save&&w.edits.length>1)throw new O.ReportCellEditError("atomic");if(w.edits[0])return N.save?.(ge(w.edits[0]),D)}async function V(w,N,D){for(const P of w.edits){const L=await N.validate?.(ge(P),D);if(L)throw new Error(L);if(D.signal.aborted)return}}function T(w,N,D,P,L,q){if(t.plan.value=q?q.commit(D):O.applyReportEditResult(O.applyReportCellEditBatch(w,N),N,D),n.value=[...n.value,...N.edits],L){const R=new Set(N.edits.map(O.reportCellEditKey));i.value=i.value.filter(ne=>!R.has(O.reportCellEditKey(ne)))}else i.value=O.summarizeReportCellEdits([...i.value,...N.edits]);P==="edit"&&(a.value=[...a.value,N.edits],o.value=[]),r.value=[],d=null;const K=y;for(const R of N.edits){if(y!==K)break;t.onChange(ge(R))}}function H(w,N,D){const P=JSON.stringify([D,N.edits]);d?.plan===w&&d.signature===P?N.requestId=d.requestId:d={plan:w,signature:P,requestId:N.requestId}}function J(w){s.value=t.errorMessage?.(w)??(w instanceof Error?w.message:"Cell edit failed"),t.onError(s.value,w)}async function j(w,N){const D=t.plan.value,P=h();if(!D||!P||t.blocked())return!1;const L=new AbortController,q=y;m=L,l.value=!0,s.value=null;const K=()=>m===L&&!L.signal.aborted&&t.plan.value===D&&t.options.value!==!1;try{const R=Jl(D,w,Gl(),L.signal),ne=R instanceof Promise?await R:R;if(!K())return!1;const{batch:X,contexts:oe}=ne;if(C(D,X,P,oe),X.edits=X.edits.filter(B=>!Object.is(B.previousValue,B.value)),!X.edits.length)return!0;H(D,X,N),C(D,X,P,oe);const Se={signal:L.signal,requestId:X.requestId,action:N};if(await V(X,P,Se),!K())return!1;C(D,X,P,oe);const ve=ne.prepared?void 0:jl(D,X,L.signal);if(ve&&(ne.prepared=await ve),!K())return!1;C(D,X,P,oe);const E=await $(X,P,Se);if(!K())return!1;if(E?.conflicts?.length)throw r.value=ge(E.conflicts),new Ul(E.conflicts);return C(D,X,P,oe),T(D,X,E,N,!!(P.save||P.saveBatch),ne.prepared),q===y}catch(R){return K()&&J(R),!1}finally{m===L&&(m=null,l.value=!1)}}async function Y(w,N="edit"){if(b)return b;const D=j(w,N);b=D;const P=await D;return b===D&&(b=null),P}async function ee(){const w=y,N=a.value[a.value.length-1];return!N||l.value||!await Y({edits:N,value:"previousValue"},"undo")||w!==y?!1:(a.value=a.value.slice(0,-1),o.value=[...o.value,N],!0)}async function ie(){const w=y,N=o.value[o.value.length-1];return!N||l.value||!await Y({edits:N,value:"value"},"redo")||w!==y?!1:(o.value=o.value.slice(0,-1),a.value=[...a.value,N],!0)}async function te(){const w=y;return!g.value.length||l.value||!await Y({edits:g.value,value:"previousValue"},"restore")||w!==y?!1:(a.value=[],o.value=[],!0)}function x(){if(!b)return!l.value;const w=y;return b.then(N=>N&&w===y&&!l.value)}function I(w){return t.plan.value?Ae(t.plan.value)(w):null}return{settle:x,resolveAddress:I,changes:n,differences:g,localDifferences:i,hasLocalDrafts:u,lastError:s,conflicts:r,saving:l,canUndo:v,canRedo:p,apply:Y,undo:ee,redo:ie,restore:te,cancel:c,reset:S}}let Zl=0;const Xl="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 Ql(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 _l(t,n,a){const o=t.createElement("select"),r=[{value:null,label:"—"},...Ql(n)];if(r.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),o.append(i)}),!r.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,o.append(l)}return{input:o,value:()=>o.value==="unknown"?a.value:r[Number(o.value)]?.value??null}}function es(t,n,a){const o=n?.type==="number"||n?.type==="date"?t.createElement("input"):t.createElement("textarea");return o.value=a.value==null?"":String(a.value),o instanceof HTMLInputElement&&(o.type=n?.type==="date"?"date":"text",n?.type==="number"&&(o.inputMode="decimal"),n?.type==="date"&&(n.min&&(o.min=n.min),n.max&&(o.max=n.max))),{input:o,value:()=>n?.type==="date"&&o instanceof HTMLInputElement&&o.validity.badInput?"invalid-date":o.value}}function ts(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 ns(t,n,a,o){const r=t.ownerDocument,l=o?.type==="boolean"||o?.type==="enum"?_l(r,o,a):es(r,o,a),s=l.input,i=r.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=Xl,s.setAttribute("aria-label",o?.label??n),o?.required&&s.setAttribute("aria-required","true");const u=r.createElement("span");u.id=`mrp-cell-hint-${++Zl}`,u.className="mrp-cell-editor-hint",u.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=ts(o);return u.textContent=g,u.hidden=!g,s.setAttribute("aria-describedby",u.id),i.append(s,u),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:v=>{u.textContent=v??g,u.hidden=!u.textContent,s.setAttribute("aria-invalid",v?"true":"false")}}}function Bt(t){const n=t.closest(".mrp-page-holder"),a=t.closest("[data-mr-component-index]");if(!n||!a)return null;const o={pageIndex:Number(n.dataset.page)-1,componentIndex:Number(a.dataset.mrComponentIndex),rowIndex:Number(t.dataset.mrRowIndex),columnIndex:Number(t.dataset.mrColumnIndex)};return Object.values(o).every(r=>Number.isInteger(r)&&r>=0)?o:null}function as(t){const n=e.shallowRef(null),a=Yl(t),{saving:o,changes:r}=a,l=e.shallowRef(!1),s=e.computed(()=>l.value||a.hasLocalDrafts.value);let i=null;function u(){const h=n.value;n.value=null,l.value=!1,a.cancel(),i=null,h?.editor.root.remove()}function g(){u(),a.reset()}function v(h){return n.value===h&&t.plan.value===h.plan}async function p(h){return await a.apply([{address:h.address,value:h.editor.value()}])?(n.value=null,l.value=!1,h.editor.root.remove(),!0):(n.value===h&&(h.editor.input.disabled=!1,h.editor.feedback(a.lastError.value??void 0),h.editor.input.focus()),!1)}async function m(){if(i)return i;const h=n.value;if(!h)return a.settle();if(!v(h))return u(),!1;l.value=h.editor.input.value!==h.editor.initialInput,h.editor.input.disabled=!0;const C=p(h);i=C;const $=await C;return i===C&&(i=null),$}function b(){return n.value||i?m():a.settle()}function y(h){if(h.stopPropagation(),!h.isComposing&&(h.key==="Escape"&&(h.preventDefault(),u()),h.key==="Enter"&&!h.shiftKey||h.key==="Tab")){h.preventDefault();const C=n.value,$=C&&O.getReportCellContext(C.plan,C.address),V=C&&$?O.createReportCellEditBatch(C.plan,[{address:C.address,value:$.value}],"navigation").edits[0]:void 0;m().then(T=>{if(!T||!C||!t.plan.value)return;const H=t.plan.value===C.plan?C.address:V&&Ae(t.plan.value)(V);H&&t.onNavigate?.(H,h.key,h.shiftKey)})}}function d(h){t.onError(t.errorMessage?.(h)??(h instanceof Error?h.message:"无法编辑单元格"),h)}async function c(h){if(!t.options.value||t.blocked()||!await m()||!h.isConnected)return;const C=t.plan.value,$=Bt(h);if(!C||!$||!t.options.value||t.blocked())return;const V=typeof t.options.value=="object"?t.options.value:{};try{const T=O.getReportCellContext(C,$);if(!T?.editable||V.canEdit?.(T)===!1)return;if(at(C,!!T.source),V.requireSource&&!T.source)throw new O.ReportCellEditError("missing");const H=Rn(T,V);H&&O.validateReportCellFieldDefinition(T,H);const J=ns(h,t.label(),T,H),j=J.input;n.value={plan:C,address:$,editor:J},l.value=!1,j.addEventListener("keydown",Y=>y(Y)),j.addEventListener("input",()=>{l.value=j.value!==J.initialInput,J.feedback()}),j.addEventListener("change",()=>{l.value=j.value!==J.initialInput}),j.addEventListener("blur",()=>{!o.value&&!t.suspendBlur?.()&&m()}),J.focus()}catch(T){d(T)}}async function S(h){const C=h.target;if(!(C instanceof Element)||C.closest(".mrp-cell-editor"))return;const $=C.closest("td[data-mr-row-index]");$&&await c($)}return e.watch(t.options,(h,C)=>{(!h||h!==C)&&u()},{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:o,changes:r,pendingLocalChanges:s,cancel:u,reset:g,commit:m,settle:b,onDoubleClick:S,editCell:c,getChanges:()=>ge(r.value)}}const nt=["html","pdf","xlsx","png","word"],Pt=["search","thumbnails","zoom",...nt,"print","pdfWindow","editing","import"];function os(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 rs(t,n,a,o){const r=e.ref({});let l=0,s=0,i=Promise.resolve();const u=e.computed(()=>Object.fromEntries(Pt.map(m=>[m,t.value[m]&&(r.value[m]??n.value[m]??!0)])));function g(m,b){t.value[m]&&(s++,r.value={...r.value,[m]:b},v())}function v(){const m=a?.value;if(!m)return;const b={...r.value};i=i.then(()=>m.adapter.save(m.key,b)).catch(y=>{o?.(y)})}function p(){s++,r.value={},v()}return a&&e.watch(a,async m=>{const b=++l,y=s;if(r.value={},!!m)try{const d=await m.adapter.load(m.key);if(b!==l||y!==s||!d||typeof d!="object")return;r.value=Object.fromEntries(Pt.flatMap(c=>typeof d[c]=="boolean"?[[c,d[c]]]:[]))}catch(d){b===l&&o?.(d)}},{immediate:!0}),e.onScopeDispose(()=>{l++}),{enabled:u,setEnabled:g,reset:p}}function ls(t,n,a){const o=e.ref({}),r=Dn(),l=e.computed(()=>In(r.value,t.preset)),s=e.computed(()=>({...l.value.messages,...t.messages})),i=e.computed(()=>t.showExport??l.value.showExport),u=e.computed(()=>t.showPrint??l.value.showPrint),g=e.computed(()=>t.showPdfWindow??l.value.showPdfWindow),v=e.computed(()=>t.showSettings??l.value.showSettings),p=e.computed(()=>t.guardChanges??l.value.guardChanges),m=e.computed(()=>({...l.value.output,...t.output})),b=e.computed(()=>({...l.value.toolbar,...t.toolbar})),y=e.computed(()=>({...l.value.interaction,...t.interaction,...o.value})),d=e.computed(()=>t.preferences??l.value.preferences),c=e.computed(()=>t.assets??l.value.assets),S=e.computed(()=>t.gapPx??(n.value?0:l.value.gapPx)),h=e.computed(()=>t.showParams??l.value.showParams),C=e.computed(()=>t.editable??l.value.editable),$=e.computed(()=>t.excelImport??l.value.excelImport),V=e.computed(()=>({search:b.value.search!==!1,thumbnails:b.value.thumbnails!==!1,zoom:b.value.zoom!==!1,...Object.fromEntries(nt.map(te=>[te,i.value&&(b.value.exportFormats?.includes(te)??!0)])),print:u.value,pdfWindow:g.value,editing:!!C.value,import:!!$.value})),T=rs(V,e.computed(()=>({editing:b.value.editing,import:b.value.excelImport})),d,()=>a(s.value.preferencesError??"Preferences storage unavailable")),H=T.enabled,J=e.computed(()=>nt.filter(te=>H.value[te])),j=e.computed(()=>H.value.editing?C.value:!1),Y=e.computed(()=>H.value.import?$.value:!1),ee=e.computed(()=>typeof C.value=="object"&&(typeof C.value.save=="function"||typeof C.value.saveBatch=="function")),ie=e.computed(()=>typeof t.emptyState=="object"?t.emptyState:{});return{resolved:l,resolvedMessages:s,effectiveShowExport:i,effectiveShowPrint:u,effectiveShowPdfWindow:g,effectiveShowSettings:v,effectiveGuardChanges:p,effectiveOutput:m,effectiveInteraction:y,effectiveAssets:c,effectiveGapPx:S,effectiveShowParams:h,availableTools:V,tools:T,toolState:H,visibleExportFormats:J,effectiveEditable:j,effectiveExcelImport:Y,persistedEditing:ee,emptyStateContent:ie,sessionInteraction:o}}function Vn(t){return t.table.role==="header"?-Math.max(1,t.grid?.cells.length??1):t.table.rowIndex}function Ee(t,n,a=n){const o=t.pages[n.pageIndex]?.components[n.componentIndex],r=o?.table,l=t.pages[a.pageIndex]?.components[a.componentIndex]?.table;return r&&l&&r.id===l.id?{grid:r.id,row:Vn(o)+n.rowIndex,column:l.columnKeys.indexOf(r.columnKeys[n.columnIndex]??"")}:{grid:`${n.pageIndex}:${n.componentIndex}`,row:n.rowIndex,column:n.columnIndex}}function cn(t,n){const a=t.pages[n.pageIndex]?.components[n.componentIndex]?.table;if(!a)return(r,l)=>({...n,rowIndex:r,columnIndex:l});const o=new Map;return t.pages.forEach((r,l)=>r.components.forEach((s,i)=>{s.table?.id!==a.id||!s.grid||s.grid.cells.forEach((u,g)=>{const v=Vn(s)+g;o.set(v,[...o.get(v)??[],{address:{pageIndex:l,componentIndex:i,rowIndex:g,columnIndex:0},keys:s.table.columnKeys}])})})),(r,l)=>{const s=a.columnKeys[l];if(s===void 0)return null;const i=o.get(r)?.find(u=>u.keys.includes(s));return i?{...i.address,columnIndex:i.keys.indexOf(s)}:null}}function ss(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),o=a.findIndex(({element:l})=>l===t);if(o<0)return!1;const r=a[o+(n?-1:1)]?.element;return r?(r.focus(),t.ownerDocument.activeElement===r):!1}function is(t,n){const a=t?.source;return!cs(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 cs(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 us(t,n){return t.pageIndex===n.pageIndex&&t.componentIndex===n.componentIndex}function ds(t,n){return us(t,n)&&t.rowIndex===n.rowIndex&&t.columnIndex===n.columnIndex}function xt(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 It(t){return`${t.pageIndex}:${t.componentIndex}:${t.rowIndex}:${t.columnIndex}`}function fs(t,n){const a=Ee(t,n.anchor),o=Ee(t,n.focus,n.anchor);return{grid:a.grid,minRow:Math.min(a.row,o.row),maxRow:Math.max(a.row,o.row),minColumn:Math.min(a.column,o.column),maxColumn:Math.max(a.column,o.column),focusKey:It(n.focus),origin:t.pages[n.anchor.pageIndex]?.components[n.anchor.componentIndex]?.table}}function ms(t,n,a){const o=n?.table;if(!o||!a.origin||o.id!==a.origin.id)return{grid:`${t.pageIndex}:${t.componentIndex}`,rowOffset:0,missingColumn:-1};const r=new Map;return a.origin.columnKeys.forEach((l,s)=>{r.has(l)||r.set(l,s)}),{grid:o.id,rowOffset:o.role==="header"?-Math.max(1,n.grid?.cells.length??1):o.rowIndex,columns:o.columnKeys.map(l=>r.get(l)??-1),missingColumn:r.get("")??-1}}function ps(t,n,a){if(!a||!n||n.grid!==a.grid)return!1;const o=n.rowOffset+t.row,r=n.columns?n.columns[t.column]??n.missingColumn:t.column;return o>=a.minRow&&o<=a.maxRow&&r>=a.minColumn&&r<=a.maxColumn}function Qe(t,n,a){t.getAttribute(n)!==a&&t.setAttribute(n,a)}function Et(t,n,a){t.classList.contains(n)!==a&&t.classList.toggle(n,a)}function gs(t,n,a,o,r,l){n.role!==a&&(Qe(t,"role",a),n.role=a),n.selected!==o&&(Et(t,"mrp-cell-selected",o),Qe(t,"aria-selected",String(o)),n.selected=o),n.focused!==r&&(Et(t,"mrp-cell-focus",r),Qe(t,"tabindex",r?"0":"-1"),n.focused=r),n.modified!==l&&(Et(t,"mrp-cell-modified",l),n.modified=l)}function vs(t){const n=()=>t.editable?.()??t.enabled(),a=e.shallowRef(null),o=new WeakMap,r=new WeakMap;let l=null,s=null,i=new Set;function u(x,I){const w=O.getReportCellContext(x,I);return!w||x.requiresRecalculation&&!w.source?null:{address:w.address,source:w.source,table:w.table,value:w.value,previousValue:w.value,text:w.cell.text??"",previousText:w.cell.text??""}}e.watch(t.plan,(x,I)=>{const w=a.value;if(!w)return;if(!x||!I){a.value=null;return}const N=u(I,w.anchor),D=u(I,w.focus),P=Ae(x),L=N&&P(N),q=D&&P(D);a.value=L&&q?{anchor:L,focus:q}:null},{flush:"sync"});function g(x=t.root.value??void 0){if(!x)return;const I=a.value,w=t.plan.value,N=t.differences();if(N!==l||w!==s){l=N,s=w;const P=w&&N.length?Ae(w):null;i=new Set(N.flatMap(L=>P?P.all(L).map(It):[]))}const D=I&&w?fs(w,I):null;x instanceof HTMLTableElement&&m(x,w,D);for(const P of x.querySelectorAll("table"))m(P,w,D)}function v(x){const I=o.get(x);if(I)return I;const w=x.closest("[data-mr-component-index]"),N=w?.closest(".mrp-page-holder"),D={pageIndex:Number(N?.dataset.page)-1,componentIndex:Number(w?.dataset.mrComponentIndex)};return Object.values(D).every(P=>Number.isInteger(P)&&P>=0)?(o.set(x,D),D):null}function p(x,I){const w=r.get(x);if(w)return w;const N=Number(x.dataset.mrRowIndex),D=Number(x.dataset.mrColumnIndex);if(![N,D].every(L=>Number.isInteger(L)&&L>=0))return null;const P={row:N,column:D,key:It({...I,rowIndex:N,columnIndex:D})};return r.set(x,P),P}function m(x,I,w){const N=v(x);if(!N)return;const D=I?.pages[N.pageIndex]?.components[N.componentIndex],P=D?.table?.role==="header"?"columnheader":"gridcell",L=w?ms(N,D,w):null;Qe(x,"role","grid");for(const q of x.rows)for(const K of q.cells){const R=p(K,N);R&&gs(K,R,P,ps(R,L,w),w?.focusKey===R.key,i.size>0&&i.has(R.key))}}async function b(x,I=!1){if(!t.plan.value||!O.getReportCellContext(t.plan.value,x))return!1;const w=a.value,N=I&&w&&Ee(t.plan.value,w.anchor).grid===Ee(t.plan.value,x,w.anchor).grid;a.value={anchor:N?w.anchor:{...x},focus:{...x}},t.root.value?.querySelector(xt(x))||t.gotoPage(x.pageIndex+1),await e.nextTick(),g();const D=t.root.value?.querySelector(xt(x));return D?.focus({preventScroll:!0}),D?.scrollIntoView?.({block:"nearest",inline:"nearest"}),!!D}function y(x){const I=x.target;if(!(I instanceof Element)||I.closest("textarea,input,button,select"))return;const w=I.closest("td[data-mr-row-index]"),N=w&&Bt(w);if(!N||t.busy()||!t.plan.value||!O.getReportCellContext(t.plan.value,N))return;const D=a.value,P=x.shiftKey&&D&&Ee(t.plan.value,D.anchor).grid===Ee(t.plan.value,N,D.anchor).grid;a.value={anchor:P?D.anchor:{...N},focus:{...N}},g(),w.focus({preventScroll:!0})}function d(x){const I=t.plan.value?.pages[x.pageIndex]?.components[x.componentIndex];return I?.grid?$t.resolveGridLayout(I.grid,I.widthMm,I.heightMm).cells.map(w=>({...x,rowIndex:w.ri,columnIndex:w.ci})):[]}function c(x,I,w){const N=d(x),D=w?-1:1;if(I==="Tab")return N[N.findIndex(q=>ds(q,x))+D];const P=I==="ArrowUp"||I==="ArrowDown"||I==="Enter",L=I==="ArrowUp"||I==="ArrowLeft"?-1:D;return N.filter(q=>P?q.columnIndex===x.columnIndex&&(q.rowIndex-x.rowIndex)*L>0:q.rowIndex===x.rowIndex&&(q.columnIndex-x.columnIndex)*L>0).sort((q,K)=>P?(q.rowIndex-K.rowIndex)*L:(q.columnIndex-K.columnIndex)*L)[0]}function S(x,I,w){if(I==="ArrowLeft"||I==="ArrowRight")return;const N=t.plan.value;if(!N.pages[x.pageIndex]?.components[x.componentIndex]?.table)return;const P=I==="ArrowUp"||w?-1:1;for(let L=x.pageIndex;L>=0&&L<N.pages.length;L+=P){const q=N.pages[L].components,K=L===x.pageIndex?x.componentIndex+P:P===1?0:q.length-1;for(let R=K;R>=0&&R<q.length;R+=P){const ne=h(x,{...x,pageIndex:L,componentIndex:R},I,P);if(ne)return ne}}}function h(x,I,w,N){const D=t.plan.value,P=D.pages[x.pageIndex].components[x.componentIndex].table,L=D.pages[I.pageIndex].components[I.componentIndex]?.table;if(L?.id!==P.id||L.role==="header"&&P.role!=="header"&&(N>0||P.rowIndex+x.rowIndex>0))return;const q=d(I),K=w==="Tab"?q:q.filter(R=>R.columnIndex===x.columnIndex);return N===1?K[0]:K[K.length-1]}function C(x,I,w=!1,N=!1,D=!1){const P=c(x,I,w)??S(x,I,w);return P?(b(P,N),!0):((I!=="Tab"||!D)&&b(x),!1)}function $(x){const I=a.value;if(t.busy()||x.target instanceof Element&&x.target.closest("textarea,input,select,button,a[href],[contenteditable]"))return!1;if(!I)return H(x);const w=x.key;if(V(x)||T(x,I.focus))return!0;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Tab","Enter"].includes(w))return!1;const N=C(I.focus,w,w==="Tab"&&x.shiftKey,x.shiftKey&&w!=="Tab",!0);if(w==="Tab"&&!N){const D=t.root.value?.ownerDocument.activeElement;if(!(D instanceof HTMLElement)||!ss(D,x.shiftKey))return!1}return x.preventDefault(),!0}function V(x){if(!n()||!(x.ctrlKey||x.metaKey))return!1;const I=x.key.toLowerCase();return I!=="z"&&I!=="y"?!1:(x.preventDefault(),I==="y"||x.shiftKey?t.redo():t.undo(),!0)}function T(x,I){if(!n()||!t.plan.value||x.key!=="F2"&&!(x.key==="Enter"&&O.getReportCellContext(t.plan.value,I)?.editable))return!1;const w=t.root.value?.querySelector(xt(I));return w&&(x.preventDefault(),t.edit(w)),!0}function H(x){if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Enter"].includes(x.key))return!1;const I=t.root.value?.querySelector("td[data-mr-row-index]"),w=I&&Bt(I);return w?(x.preventDefault(),b(w),!0):!1}function J(){const x=a.value,I=t.plan.value;if(!x||!I)return"";const w=[],N=Ee(I,x.anchor),D=Ee(I,x.focus,x.anchor),P=cn(I,x.anchor),L=O.createReportCellResolver(I),q=Math.min(N.column,D.column),K=Math.max(N.column,D.column);if((Math.abs(N.row-D.row)+1)*(K-q+1)>1e4)return t.error(new O.ReportCellEditError("limit")),"";for(let R=Math.min(N.row,D.row);R<=Math.max(N.row,D.row);R++){const ne=[];for(let X=q;X<=K;X++){const oe=P(R,X);ne.push(oe?L(oe)?.cell.text??"":"")}w.push(ne)}return O.formatReportClipboard(w)}function j(x){!a.value||x.target instanceof Element&&x.target.closest("textarea,input,select")||(x.clipboardData?.setData("text/plain",J()),x.preventDefault())}async function Y(x){const I=a.value;if(!I||!n()||t.busy())return!1;try{let w;try{w=O.parseReportClipboard(x)}catch(K){throw new O.ReportCellEditError(K instanceof Error&&K.message.includes("limit")?"limit":"clipboard")}const N=t.plan.value,D=Ee(N,I.anchor),P=Ee(N,I.focus,I.anchor),L=cn(N,I.anchor),q=w.flatMap((K,R)=>K.map((ne,X)=>{const oe=L(Math.min(D.row,P.row)+R,Math.min(D.column,P.column)+X);if(!oe)throw new O.ReportCellEditError("missing");return{address:oe,value:ne}}));return await t.apply(q)}catch(w){return t.error(w),!1}}function ee(x){if(!a.value||!n()||x.target instanceof Element&&x.target.closest("textarea,input,select,button,a[href],[contenteditable]")||!x.clipboardData?.types.includes("text/plain"))return;const I=x.clipboardData?.getData("text/plain");I&&(x.preventDefault(),Y(I))}async function ie(x){const I=t.plan.value;if(!I)return!1;const w=O.createReportCellResolver(I);for(let N=0;N<I.pages.length;N++){const D=I.pages[N];for(let P=0;P<D.components.length;P++)for(const L of d({pageIndex:N,componentIndex:P,rowIndex:0,columnIndex:0})){const q=w(L);if(is(q,x))return b(L)}}return!1}function te(){a.value=null,g()}return{selection:a,refresh:g,reset:te,focusCell:b,focusField:ie,navigate:C,onClick:y,onKeydown:$,onCopy:j,onPaste:ee,copySelection:J,pasteSelection:Y}}function hs(t){let n=0,a=!1;function o(){const l=t.viewport.value,s=t.root.value,i=t.plan.value;if(!l||!s||!i)return;const u=t.options(),g=Math.max(0,Math.min(20,Math.floor(u.frozenColumns??0)));if(!u.freezeHeaders&&g===0&&!a)return;const v=t.zoom.value||1,p=l.getBoundingClientRect();s.querySelectorAll("[data-mr-component-index]").forEach(m=>{const b=m.closest("[data-page]"),y=Number(b?.dataset.page)-1,d=i.pages[y]?.components[Number(m.dataset.mrComponentIndex)];if(!d?.grid||!b)return;m.style.transform="",m.style.zIndex="";const c=m.getBoundingClientRect(),S=b.getBoundingClientRect().bottom,h=Math.max(0,(p.left-c.left)/v),C=u.freezeHeaders?Math.max(0,Math.min((p.top-c.top)/v,(S-c.bottom)/v)):0;h>0&&g>0&&(m.style.zIndex="1"),d.table?.role==="header"&&C>0&&(m.style.transform=`translateY(${C}px)`,m.style.zIndex="5"),m.querySelectorAll(".mrp-cell-frozen").forEach(V=>{V.style.transform="",V.style.zIndex="",V.classList.remove("mrp-cell-frozen")});const $=Array.from({length:g},(V,T)=>`td[data-mr-column-index="${T}"]`);!d.table&&u.freezeHeaders&&$.push('td[data-mr-row-index="0"]'),$.length&&m.querySelectorAll($.join(",")).forEach(V=>{const T=Number(V.dataset.mrColumnIndex)<g,H=!d.table&&Number(V.dataset.mrRowIndex)===0&&!!u.freezeHeaders,J=T?h:0,j=H?C:0;V.style.transform=J||j?`translate(${J}px, ${j}px)`:"",V.classList.toggle("mrp-cell-frozen",!!(J||j)),V.style.zIndex=J||j?H?"7":"6":""})}),a=!!u.freezeHeaders||g>0}function r(){n||(n=requestAnimationFrame(()=>{n=0,o()}))}return e.onScopeDispose(()=>{n&&cancelAnimationFrame(n)}),{refresh:o,schedule:r}}async function Mn(t,n,a,o){if(!n?.assetRenderers||!Object.keys(n.assetRenderers).length)return t;try{return(await O.resolvePlanAssets(t,{...n,signal:a,format:"dom",onDiagnostic:l=>{a.aborted||(n.onDiagnostic?.(l),o(l.message))}})).plan}catch(r){throw a.aborted?r:new me("render",r instanceof Error?r.message:"Report asset preparation failed",r)}}function Tn(t,n){const a=O.validateRenderPlan(t);if(!a.ok)throw new me("validate",`渲染计划校验失败(${a.errors.length} 处): ${a.errors.slice(0,3).map(o=>`${o.path}: ${o.message}`).join("; ")}`);a.warnings.forEach(o=>n(`${o.path}: ${o.message}`))}async function ys(t,n,a,o){const r=await se.waitForOutput(t(n),n.signal);return se.assertOutputActive(n.signal),o("validate"),Tn(r,n.onWarning??(()=>{})),se.assertOutputActive(n.signal),o("assets"),Mn(r,a,n.signal,n.onWarning??(()=>{}))}async function bs(t,n,a,o,r,l){const{importExcelTemplate:s}=await import("@agile-team/mach-report/xlsx");se.assertOutputActive(o);const i=await se.waitForOutput(s(t,{...n,signal:o}),o);l("layout");const u=O.paginateTemplate(ge(i.template),{}).plan;Tn(u,r),se.assertOutputActive(o),l("assets");const g=await Mn(u,a,o,r);return{result:i,plan:g}}const ws={key:7,class:"mrp-edit-hint",role:"status"},xs={key:9,class:"mrp-export-notice mrp-export-warning",role:"status"},Es={class:"mrp-main"},ks={key:0,class:"mrp-state"},Cs={key:1,class:"mrp-state mrp-error"},Ss=["data-page"],Ns=["aria-label","aria-current","onClick"],Bs=["data-thumb"],Ps={class:"mrp-thumb-no"},Is={key:10,class:"mrp-footer"},$s={class:"mrp-footer-context"},Ds=["aria-label"],Rs={key:0},Vs={class:"mrp-overlay"},Ms={key:11,class:"mrp-debug","aria-hidden":"true"},kt=96/25.4,Ct="mach-report:ui",St="mach-report:ui:wide",Ts=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 o=t,r=a,l=e.shallowRef(null),s=e.ref(!1),i=e.ref(""),u=e.shallowRef(null),g=e.ref(null),v=e.ref(!1),p=e.ref(null),m=e.ref(1),b=e.ref(null),y=e.ref(null),d=e.ref(null),c=e.ref(!1),S=e.ref(!1),h=e.ref(!1),C=e.ref("general"),$=e.shallowRef(null),V=e.ref(null),T=e.ref(null),H=Ta();let J=null,j=!1;const Y=Tr(f=>r("task",f)),ee=Ar(f=>r("diagnostic",f)),ie=e.shallowRef(null),te=e.computed(()=>!!l.value?.pages.length&&l.value.pages.every(f=>f.layout==="wide"));let x=Ct;const I=e.inject(Te.MACH_REPORT_FETCHER_KEY,null),w=e.inject(Te.MACH_REPORT_PDF_EXPORTER_KEY,null),N=e.computed(()=>Dt(o.reportId)),D=e.computed(()=>o.fetcher??I),P=e.computed(()=>l.value?.pages.length??0),L=e.computed(()=>Object.freeze({loading:s.value,hasPlan:P.value>0,pageCount:P.value,currentPage:m.value,exporting:g.value,printing:v.value,canExport:!s.value&&!S.value&&!z.saving.value&&P.value>0&&g.value===null,canPrint:!s.value&&!S.value&&!z.saving.value&&P.value>0&&!v.value,error:u.value,pdfFont:Tt.value,editing:z.active.value!==null,saving:z.saving.value,importing:S.value,dirty:z.differences.value.length>0,pendingLocalChanges:z.pendingLocalChanges.value,task:Y.state.value,diagnostics:ee.entries.value,reportIds:ie.value?.reportIds??[],params:ie.value?.params??{},canUndo:z.canUndo.value,canRedo:z.canRedo.value,changeCount:z.differences.value.length,selection:Q.selection.value?ge(Q.selection.value):null}));function q(f,k,M){u.value=Object.freeze({message:f,code:k,cause:M}),r("error",f,{code:k,cause:M})}const{resolved:K,resolvedMessages:R,effectiveShowExport:ne,effectiveShowSettings:X,effectiveGuardChanges:oe,effectiveOutput:Se,effectiveInteraction:ve,effectiveAssets:E,effectiveGapPx:B,effectiveShowParams:A,availableTools:F,tools:G,toolState:U,visibleExportFormats:ce,effectiveEditable:ue,effectiveExcelImport:he,persistedEditing:je,emptyStateContent:ot,sessionInteraction:rt}=ls(o,te,f=>r("warning",f)),Mt=e.computed(()=>U.value.pdf||U.value.pdfWindow),lt=e.computed(()=>ve.value.calculations===!0),st=e.computed(()=>Sn(R.value)),{pdfFont:Tt,getPdfExporter:Fn,checkPdfFont:On,retryPdfFont:At,cancelFontCheck:Ln}=Rr({plan:l,fontUrl:()=>K.value.pdfFontUrl,enabled:()=>Mt.value,injectedExporter:w,destroyed:()=>j});async function zn(f,k){f==="editing"&&!k&&!await z.settle()||(G.setEnabled(f,k),r("preferences-change",Object.freeze({...U.value})))}async function qn(){await z.settle()&&(G.reset(),rt.value={},r("preferences-change",Object.freeze({...U.value})))}async function Ft(f="general"){if(h.value){h.value=!1;return}const k=z.settle();!(typeof k=="boolean"?k:await k)||j||!X.value||(C.value=f,h.value=!0)}function Ot(f){return f instanceof O.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}[f.code]??f.message:f instanceof Error?f.message:"单元格保存失败"}const z=as({plan:l,options:ue,blocked:()=>s.value||S.value||g.value!==null||v.value||be.pending.value,label:()=>R.value.editCell??"编辑单元格",errorMessage:Ot,suspendBlur:()=>be.request.value!==null,onChange:f=>{u.value=null,p.value=null,r("cell-edit",f)},onError:(f,k)=>{p.value={kind:"error",message:f},q(f,"edit",k)},onNavigate:(f,k,M)=>Q.navigate(f,k,M)}),Q=vs({plan:l,root:b,enabled:()=>!!ue.value||lt.value,editable:()=>!!ue.value,busy:()=>s.value||S.value||z.saving.value||!!g.value||v.value||be.pending.value,differences:()=>z.differences.value,gotoPage:pe,edit:z.editCell,apply:z.apply,undo:z.undo,redo:z.redo,error:f=>{const k=Ot(f);p.value={kind:"error",message:k},q(k,"edit",f)}}),it=Lo({plan:l,selection:Q.selection,enabled:()=>lt.value});function Kn(){Ft("advanced")}const be=Vr({pending:()=>z.pendingLocalChanges.value,reportIds:()=>ie.value?.reportIds??N.value,hook:()=>o.beforeDiscard??K.value.beforeDiscard,enabled:()=>oe.value,snapshot:()=>[l.value,z.active.value?.editor.input.value],error:f=>q(f instanceof Error?f.message:"修改保护回调失败","config",f)});async function Hn(f="leave"){return be.check(f)}function Lt(f){!oe.value||!z.pendingLocalChanges.value||(f.preventDefault(),f.returnValue="")}function zt(){Y.cancel()}function jn(f){const k=z.resolveAddress(f);k&&Q.focusCell(k)}async function qt(f){await Q.focusField(f)||(p.value={kind:"warning",message:R.value.locateFieldMissing??"Field not found"})}function Wn(f){if(f.pageIndex===void 0)return;pe(f.pageIndex+1);const k=f.componentPath;f.componentIndex!==void 0&&k&&k.length===2&&Q.focusCell({pageIndex:f.pageIndex,componentIndex:f.componentIndex,rowIndex:k[0],columnIndex:k[1]})}function ct(f){const k=l.value;if(!k)return!1;const M={excel:"xlsx",image:"png",doc:"word"}[f]??f,ae=M==="pdf"?"pdf":M==="xlsx"?"xlsx":M==="png"?"canvas":"dom",Z=ee.inspect(k,ae);return l.value!==k?!1:Z.length&&Se.value.fidelity==="strict"?(p.value={kind:"error",message:R.value.diagnosticsStrict??"输出存在已知降级"},q(p.value.message,"export",{diagnostics:Z}),!1):!0}function Un(f){return l.value?ee.inspect(l.value,f):[]}const We=e.computed(()=>{if($.value)return $.value.sheets.map(k=>({label:k.name,pageIndex:k.pageStart}));const f=new Set;return l.value?.pages.flatMap((k,M)=>k.components.flatMap(ae=>{const Z=ae.table;return!Z?.title||f.has(Z.id)?[]:(f.add(Z.id),[{label:Z.title,pageIndex:M}])}))??[]});async function Kt(f){f&&!await Q.focusField({field:f})&&(p.value={kind:"warning",message:R.value.locateFieldMissing??"Field not found"})}const ut=e.computed(()=>{try{return{defs:o.paramDefs??D.value?.getParamDefs?.(N.value)??[],error:null}}catch(f){return{defs:[],error:new me("config",f instanceof Error?f.message:"查询参数配置无效",f)}}}),dt=e.computed(()=>ut.value.defs),Fe=Lr({defs:dt,reportIds:N,params:()=>o.params,messages:()=>R.value}),{values:Oe,attempted:Ue,pendingRequired:Ht}=Fe,jt=e.ref(null);function Gn(){Ue.value=!0,Fe.validation.value.ok||e.nextTick(()=>jt.value?.focusInvalid()),Pe()}function Jn(){Fe.reset(),i.value="",u.value=null}const Yn=e.computed(()=>({height:o.height,"--mrp-page-gap":`${Math.max(0,B.value)}px`,...$n(K.value.theme)})),{zoom:de,zoomMode:Le,applyFitZoom:Wt,setZoom:ze}=mn(()=>({viewport:y.value,pageWidthPx:ft.contentSize.value.w||210*kt})),ft=fn(l,de,{pxPerMm:kt,gapPx:B,overscan:e.computed(()=>K.value.preview.overscanPages)}),{contentSize:mt,windowRange:qe,visiblePages:Ut,makeScrollHandler:Zn,refreshViewport:pt}=ft,Xn=Zn(m,P),gt=hs({root:b,viewport:y,plan:l,zoom:de,options:()=>ve.value});e.watch([ve,de],()=>gt.schedule(),{flush:"post"});function vt(f){ze(f*100)}function Be(){S.value=!1,z.reset(),Q.reset(),$.value=null,Jt(),l.value=null,ie.value=null,ee.reset(),m.value=1,_.reset()}let re=0,le=null;function Ge(f,k){return f===re&&!k.signal.aborted&&!j}function Gt(){y.value&&(y.value.scrollTop=0,y.value.scrollLeft=0)}function Qn(f,k){for(const M of f){if(k!==re)return!1;r("warning",M)}return k===re}function _n(){if(ut.value.error){const k=ut.value.error;return Be(),i.value=k.message,q(k.message,k.code,k.cause),null}const f=Fe.query();return f.params?f.params:(Be(),i.value=f.quiet?"":f.error.message,f.quiet||(Ue.value=!0,q(f.error.message,f.error.code,f.error.cause)),null)}async function Pe(){if(j||oe.value&&z.pendingLocalChanges.value&&!await be.check("reload")||j)return;const f=++re;S.value=!1,le?.abort(),le=null;const k=D.value;if(s.value=!1,u.value=null,N.value.length===0){i.value="缺少报表 ID",Be(),q(i.value,"param");return}if(!k){i.value="未提供渲染数据源 fetcher",Be(),q(i.value,"config");return}const M=_n();if(!M)return;s.value=!0,i.value="",p.value=null,Be();const ae=H.start(),Z=new AbortController;le=Z;const xe=Y.start("query","query",()=>{le===Z&&(Z.abort(),re++,le=null,s.value=!1)}),Je=[...N.value],ye=Object.freeze({...M}),ke=new Set;function De(fe){f!==re||Z.signal.aborted||ke.has(fe)||(ke.add(fe),K.value.logger.warn("[mach-report] 报表告警:",fe),ee.add({code:"layout",severity:"warning",message:fe}),r("warning",fe))}try{const fe=await ys(k,{reportIds:Je,params:M,taskId:xe.taskId,onEvent:Ne=>{f===re&&!Z.signal.aborted&&xe.update(Ne.stage,Ne.completed,Ne.total)},onQueryResult:(Ne,da)=>{f===re&&!Z.signal.aborted&&ee.addMany(da.diagnostics??[])},signal:Z.signal,onWarning:De},E.value,xe.update);if(!Ge(f,Z)||(l.value=fe,ie.value=Object.freeze({reportIds:Object.freeze(Je),params:ye}),ee.inspect(fe,"dom"),!Ge(f,Z)))return;xe.finish(),m.value=1,H.end(ae),Gt();const Re=te.value?St:Ct;Re!==x&&(x=Re,bt()),Le.value==="fit"&&Wt(),r("loaded",fe.pages.length)}catch(fe){if(f!==re)return;if(Z.signal.aborted){xe.finish("cancelled");return}xe.finish("failed");const Re=xn(fe);i.value=Re.message;const Ne=wn(Re);q(Re.message,Ne.code,Ne.cause)}finally{f===re&&(s.value=!1),le===Z&&(le=null)}}function pe(f){if(j||P.value<=0)return;const k=Math.max(1,Math.min(P.value,f));m.value=k;const M=y.value;M&&(M.scrollTop=ft.pageOffsetPx(k-1)*de.value,pt(M),ca.prioritize(k-1))}const Ie=vn(l,{getPdfExporter:Fn,beforeOutput:()=>z.settle(),onTask:f=>Y.receive(f,()=>Ie.cancel()),onDiagnostic:ee.add,getXlsxOptions:()=>K.value.xlsx,onError:(f,k)=>{p.value={kind:"error",message:f},q(f,k??"print")},onWarning:f=>{p.value={kind:"warning",message:f},ee.add({code:"output",severity:"warning",message:f}),r("warning",f)},onBusy:f=>{g.value=f,f?p.value={kind:"progress",message:R.value.exporting.replace("{format}",f)}:p.value?.kind==="progress"&&(p.value=null)},onPrinting:f=>{v.value=f}}),{releasePrintFrame:Jt,dispose:ea}=Ie;async function Yt(){if(s.value||S.value)return;const f=z.settle();(typeof f=="boolean"?f:await f)&&(u.value=null,ct("html")&&await Ie.print())}async function Zt(f){if(s.value||S.value)return;const k=z.settle();(typeof k=="boolean"?k:await k)&&(u.value=null,ct(f)&&await Ie.exportAs(f))}function Xt(){if(s.value||S.value||z.active.value||z.saving.value){p.value={kind:"warning",message:R.value.editingHint??"请先确认单元格修改"};return}u.value=null,ct("pdf")&&Ie.openPdfWindow()}async function ta(f,k={}){j||(Oe.value={...Oe.value,...f},k.reload!==!1&&(Ue.value=!0,await Pe()))}const Qt={reload:Pe,print:Yt,exportAs:Zt,openPdfWindow:Xt,gotoPage:pe,setParams:ta,checkPdfFont:On,importExcel:_t,getPlan:na,cancelTask:zt,confirmDiscard:Hn,getOutputDiagnostics:Un,getChanges:z.getChanges,undo:z.undo,redo:z.redo,restoreChanges:z.restore,getDifferences:()=>ge(z.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 L.value}};e.provide(Te.MACH_REPORT_CONTROLLER_KEY,Qt);function na(){return l.value?ge(l.value):null}function aa(f){const k=typeof he.value=="object"?he.value:{};return{...k,...f,limits:{...k.limits,...f?.limits}}}function oa(f,k){z.reset(),Q.reset(),Jt(),_.reset(),l.value=f,ie.value=null,ee.reset(),$.value={sheets:ge(k.sheets),warnings:[...k.warnings]},m.value=1,i.value="",p.value=k.warnings.length?{kind:"warning",message:k.warnings.join(";")}:null,Gt(),x=te.value?St:Ct,bt(),ee.addMany(k.warnings.map(M=>({code:"excel-import",severity:"warning",message:M}))),l.value===f&&ee.inspect(f,"dom")}async function _t(f,k){if(j)throw new me("config","报表预览已卸载");if(oe.value&&z.pendingLocalChanges.value&&!await be.check("import")||j)return null;const M=++re;le?.abort(),le=null,s.value=!1,z.cancel(),Ie.invalidatePending(),S.value=!0;const ae=new AbortController;le=ae,u.value=null,p.value={kind:"progress",message:R.value.importing??"正在导入 Excel…"};const Z=Y.start("import","import",()=>{le===ae&&(ae.abort(),re++,le=null,S.value=!1,p.value=null)}),xe=aa(k),Je=se.forwardOutputAbort(xe.signal,ae);try{const{result:ye,plan:ke}=await bs(f,{...xe,onProgress:(De,fe)=>{Z.update("import",De,fe),xe.onProgress?.(De,fe)}},E.value,ae.signal,De=>{M===re&&r("warning",De)},Z.update);return!Ge(M,ae)||!Qn(ye.warnings,M)||(oa(ke,ye),!Ge(M,ae))?null:(Z.finish(),r("template-import",ye),M===re&&r("loaded",ke.pages.length),ye)}catch(ye){if(M!==re)return null;if(ae.signal.aborted)return Z.finish("cancelled"),null;Z.finish("failed");const ke=new me("import",ye instanceof Error?ye.message:"Excel 模板导入失败",ye);throw p.value={kind:"error",message:ke.message},q(ke.message,"import",ye),ke}finally{Je(),M===re&&(S.value=!1),le===ae&&(le=null)}}function ra(f){const k=f.target,M=k.files?.[0];k.value="",M&&_t(M).catch(()=>{})}const _=Ra({plan:l,gotoPage:pe,debounceMs:e.computed(()=>K.value.preview.searchDebounceMs),highlight:Sa,clearHighlights:Ca});e.watch(()=>U.value.search,f=>{f||(_.reset(),_.visible.value=!1)});function la(f){!f.ctrlKey||!U.value.zoom||(f.preventDefault(),vt(de.value*(f.deltaY<0?1.1:1/1.1)))}function sa(f){if(!Q.onKeydown(f)&&!(f.target instanceof Element&&f.target.closest("input,textarea,select,[contenteditable='true']"))){if(U.value.search&&(f.ctrlKey||f.metaKey)&&f.key.toLowerCase()==="f"){f.preventDefault(),_.visible.value||_.toggle(),e.nextTick(()=>T.value?.focusSearch());return}switch(f.key){case"PageDown":f.preventDefault(),pe(m.value+1);break;case"PageUp":f.preventDefault(),pe(m.value-1);break;case"Home":f.preventDefault(),pe(1);break;case"End":f.preventDefault(),pe(P.value);break;case"+":case"=":f.preventDefault(),U.value.zoom&&vt(de.value*1.1);break;case"-":f.preventDefault(),U.value.zoom&&vt(de.value/1.1);break}}}function ia(){try{localStorage.setItem(x,JSON.stringify({zoomMode:Le.value==="fit"?"fit":Math.round(de.value*100)}))}catch{}}e.watch([Le,de],ia);let ht="";function en(f=!1){const k=_.activeMatch.value;if(!te.value||!k)return;const M=`${_.query.value}:${_.matchIndex.value}:${k.pageIndex}`;if(!f&&M===ht)return;const Z=b.value?.querySelector(`[data-page="${k.pageIndex+1}"]`)?.querySelectorAll("mark.mrp-hit")[k.occurrence];Z&&(Z.scrollIntoView?.({block:"nearest",inline:"nearest"}),ht=M)}const ca=wa({plan:l,root:b,pages:()=>Ut.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:f=>{Q.refresh(f),gt.schedule()},ready:()=>{_.activeMatch.value||(ht=""),en()},error:f=>{i.value=f instanceof Error?f.message:String(f),q(i.value,"render",f)}});e.watch(()=>Q.selection.value,()=>{Q.refresh()},{flush:"post"}),e.watch(()=>_.query.value,f=>{f||b.value?.querySelectorAll(".mrp-page-holder").forEach(k=>{_.clear(k)})});const we=Ma(l,{thumbsRoot:d,visible:c,renderThumbCanvas:f=>{try{const k=l.value.pages[f],M=Math.min(.2,116/Math.max(1,k.pageWidthMm*kt)),{canvases:ae}=O.renderPlanToCanvas(l.value,{start:f,end:f,dpr:M});return ae[0]??null}catch{return null}}});e.watchEffect(()=>{we.schedule()},{flush:"post"});const ua=e.computed(()=>o.debug),{debugStats:$e}=Va(ua,{plan:l,pageCount:P,windowRange:qe,zoom:de,loadMs:H.loadMs});function yt(){pt(y.value),we.schedule(),Le.value==="fit"&&Wt(),en(!0)}function bt(){ze(x===St?100:"fit");try{const f=JSON.parse(localStorage.getItem(x)??"{}");f.zoomMode==="fit"?ze("fit"):typeof f.zoomMode=="number"&&ze(f.zoomMode)}catch{}}return e.onMounted(()=>{window.addEventListener("resize",yt),window.addEventListener("beforeunload",Lt),typeof ResizeObserver<"u"&&y.value&&(J=new ResizeObserver(yt),J.observe(y.value)),pt(y.value),bt(),o.autoLoad&&Pe()}),e.onUnmounted(()=>{j=!0,be.cancel(),Y.cancel(),z.reset(),S.value=!1,Ln(),re++,le?.abort(),le=null,window.removeEventListener("resize",yt),window.removeEventListener("beforeunload",Lt),J?.disconnect(),J=null,we.destroy(),_.reset(),ea()}),e.watch(()=>[JSON.stringify(N.value),JSON.stringify(o.params),D.value],async()=>{if(o.autoLoad){Pe();return}!await be.check("replace")||j||(re++,le?.abort(),le=null,s.value=!1,i.value="",u.value=null,p.value=null,Be())}),n({...Qt,state:L}),(f,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["mach-report-preview",{"mrp-wide-report":te.value}]),style:e.normalizeStyle(Yn.value)},[e.unref(A)&&dt.value.length>0?(e.openBlock(),e.createBlock(Cn,{key:0,ref_key:"paramPanelRef",ref:jt,defs:dt.value,modelValue:e.unref(Oe),"onUpdate:modelValue":k[0]||(k[0]=M=>e.isRef(Oe)?Oe.value=M:null),messages:e.unref(R),attempted:e.unref(Ue),issues:e.unref(Fe).validation.value.issues,onQuery:Gn,onReset:Jn},null,8,["defs","modelValue","messages","attempted","issues"])):e.createCommentVNode("",!0),e.createVNode(bn,{ref_key:"toolbarRef",ref:T,"page-count":P.value,"current-page":m.value,"zoom-mode":e.unref(Le),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":h.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":c.value,"show-import":!!e.unref(he),busy:s.value||S.value||e.unref(z).saving.value,onGoto:pe,onZoom:e.unref(ze),onExport:k[1]||(k[1]=M=>Zt(M)),onPrint:Yt,onPdfWindow:Xt,onSearchInput:e.unref(_).onInput,onSearchNav:e.unref(_).onNav,onSearchToggle:e.unref(_).toggle,onThumbsToggle:k[2]||(k[2]=M=>c.value=!c.value),onImportExcel:k[3]||(k[3]=M=>V.value?.click()),onSettingsToggle:Ft},e.createSlots({_:2},[We.value.length<=1?{name:"navigation",fn:e.withCtx(()=>[P.value>0&&e.unref(ve).navigation!==!1?(e.openBlock(),e.createBlock(ln,{key:0,plan:l.value,compact:"",sections:We.value,"current-page":m.value,messages:e.unref(R),busy:s.value||S.value||e.unref(z).saving.value,onLocateTarget:qt,onGoto:pe,onLocate:Kt},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(vr,{key:1,messages:e.unref(R),onAnswer:e.unref(be).settle},null,8,["messages","onAnswer"])):e.createCommentVNode("",!0),e.createVNode(xr,{task:e.unref(Y).state.value,messages:e.unref(R),onCancel:zt},null,8,["task","messages"]),e.createVNode(Pr,{entries:e.unref(ee).entries.value,messages:e.unref(R),onLocate:Wn},null,8,["entries","messages"]),h.value&&e.unref(X)?(e.openBlock(),e.createBlock(ur,{key:2,available:e.unref(F),enabled:e.unref(U),messages:e.unref(R),"persisted-editing":e.unref(je),interaction:e.unref(ve),section:C.value,busy:s.value||S.value||e.unref(z).saving.value||!!g.value||v.value,onSection:k[4]||(k[4]=M=>C.value=M),onInteraction:k[5]||(k[5]=M=>rt.value={...e.unref(rt),...M}),onChange:zn,onReset:qn,onClose:k[6]||(k[6]=M=>h.value=!1)},{advanced:e.withCtx(()=>[e.createVNode(Oo,{state:e.unref(it),messages:st.value},null,8,["state","messages"])]),default:e.withCtx(()=>[e.renderSlot(f.$slots,"settings",{},void 0,!0)]),_:3},8,["available","enabled","messages","persisted-editing","interaction","section","busy"])):e.createCommentVNode("",!0),We.value.length>1&&P.value>0&&e.unref(ve).navigation!==!1?(e.openBlock(),e.createBlock(ln,{key:3,plan:l.value,onLocateTarget:qt,sections:We.value,"current-page":m.value,messages:e.unref(R),busy:s.value||S.value||e.unref(z).saving.value,onGoto:pe,onLocate:Kt},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0),$.value?(e.openBlock(),e.createBlock(Ol,{key:4,result:$.value,messages:e.unref(R)},null,8,["result","messages"])):e.createCommentVNode("",!0),e.unref(ue)&&P.value>0?(e.openBlock(),e.createBlock(fl,{key:5,differences:e.unref(z).differences.value,conflicts:e.unref(z).conflicts.value,messages:e.unref(R),saving:e.unref(z).saving.value,"can-undo":e.unref(z).canUndo.value,"can-redo":e.unref(z).canRedo.value,persisted:e.unref(je),busy:!!g.value||v.value,onUndo:e.unref(z).undo,onRedo:e.unref(z).redo,onRestore:e.unref(z).restore,onLocate:jn},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:V,class:"mrp-import-input",type:"file",accept:".xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",hidden:"",onChange:ra},null,544)):e.createCommentVNode("",!0),e.unref(ue)&&P.value>0?(e.openBlock(),e.createElementBlock("div",ws,e.toDisplayString(e.unref(z).saving.value?e.unref(R).saving:e.unref(R).editingHint),1)):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("div",{key:8,class:e.normalizeClass(["mrp-export-notice",`mrp-export-${p.value.kind}`]),role:"alert"},e.toDisplayString(p.value.message),3)):e.createCommentVNode("",!0),e.unref(Tt).status==="error"&&Mt.value?(e.openBlock(),e.createElementBlock("div",xs,[e.createTextVNode(e.toDisplayString(e.unref(R).pdfFontUnavailable)+" ",1),e.createElementVNode("button",{type:"button",onClick:k[7]||(k[7]=(...M)=>e.unref(At)&&e.unref(At)(...M))},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:la,onKeydown:sa,onDblclick:k[8]||(k[8]=(...M)=>e.unref(z).onDoubleClick&&e.unref(z).onDoubleClick(...M)),onClick:k[9]||(k[9]=(...M)=>e.unref(Q).onClick&&e.unref(Q).onClick(...M)),onCopy:k[10]||(k[10]=(...M)=>e.unref(Q).onCopy&&e.unref(Q).onCopy(...M)),onPaste:k[11]||(k[11]=(...M)=>e.unref(Q).onPaste&&e.unref(Q).onPaste(...M)),onScrollPassive:k[12]||(k[12]=M=>{e.unref(Xn)(M.target),e.unref(gt).schedule()})},[s.value?(e.openBlock(),e.createElementBlock("div",ks,e.toDisplayString(e.unref(R).loading),1)):i.value?(e.openBlock(),e.createElementBlock("div",Cs,[e.createTextVNode(e.toDisplayString(i.value)+" ",1),e.createElementVNode("button",{class:"mrp-retry",type:"button",onClick:Pe},e.toDisplayString(e.unref(R).retry),1)])):!l.value||P.value===0?(e.openBlock(),e.createBlock(on,{key:2,title:e.unref(Ht)?e.unref(R).paramPrompt??e.unref(R).paramsTitle:e.unref(R).empty,description:e.unref(Ht)?e.unref(R).paramPromptDescription:e.unref(ot).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(mt).w*e.unref(de)}px`,height:`${e.unref(mt).h*e.unref(de)}px`})},[e.createElementVNode("div",{ref_key:"containerRef",ref:b,class:"mrp-scale-inner",style:e.normalizeStyle({transform:`scale(${e.unref(de)})`,transformOrigin:"top left",width:`${e.unref(mt).w}px`})},[e.unref(qe).padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-spacer-top",style:e.normalizeStyle({height:`${e.unref(qe).padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Ut),M=>(e.openBlock(),e.createElementBlock("div",{key:M.index,class:"mrp-page-holder","data-page":M.index+1},null,8,Ss))),128)),e.unref(qe).padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-spacer-bottom",style:e.normalizeStyle({height:`${e.unref(qe).padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],4)],4)),!s.value&&!i.value&&l.value&&P.value>0&&t.emptyState?(e.openBlock(),e.createBlock(on,{key:4,title:e.unref(ot).title??e.unref(R).empty,description:e.unref(ot).description??e.unref(R).emptyDescription},null,8,["title","description"])):e.createCommentVNode("",!0)],544),e.unref(U).thumbnails&&c.value&&P.value>0?(e.openBlock(),e.createElementBlock("aside",{key:0,ref_key:"thumbsRef",ref:d,class:"mrp-thumbs",onScrollPassive:k[13]||(k[13]=(...M)=>e.unref(we).onScroll&&e.unref(we).onScroll(...M))},[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,M=>(e.openBlock(),e.createElementBlock("button",{key:M.index,class:e.normalizeClass(["mrp-thumb",{"mrp-thumb-active":M.index+1===m.value}]),type:"button","aria-label":`${e.unref(R).thumbnails} · ${e.unref(R).pageInfo.replace("{cur}",String(M.index+1)).replace("{total}",String(P.value))}`,"aria-current":M.index+1===m.value?"page":void 0,style:e.normalizeStyle({height:`${M.height+20}px`}),onClick:ae=>pe(M.index+1)},[e.createElementVNode("span",{class:"mrp-thumb-box","data-thumb":M.index+1,style:e.normalizeStyle({height:`${M.height}px`})},null,12,Bs),e.createElementVNode("span",Ps,e.toDisplayString(M.index+1),1)],14,Ns))),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)]),P.value>0?(e.openBlock(),e.createElementBlock("footer",Is,[e.createElementVNode("div",$s,[lt.value&&e.unref(X)?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-calculation-toggle",type:"button","aria-label":st.value.calculationTitle,onClick:Kn},[k[14]||(k[14]=e.createElementVNode("span",{"aria-hidden":"true"},"∑",-1)),e.createTextVNode(e.toDisplayString(st.value.calculationTitle),1),e.unref(it).result.value?(e.openBlock(),e.createElementBlock("strong",Rs,e.toDisplayString(e.unref(it).result.value.formatted),1)):e.createCommentVNode("",!0)],8,Ds)):e.createCommentVNode("",!0)]),e.createVNode(Rt,{"page-count":P.value,"current-page":m.value,messages:e.unref(R),busy:s.value||S.value||e.unref(z).saving.value,onGoto:pe},null,8,["page-count","current-page","messages","busy"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Vs,[e.renderSlot(f.$slots,"default",{},void 0,!0)]),e.unref($e)?(e.openBlock(),e.createElementBlock("div",Ms,[k[15]||(k[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))}}),An=W._export_sfc(Ts,[["__scopeId","data-v-8490b9dc"]]),As=Object.freeze(Object.defineProperty({__proto__:null,default:An},Symbol.toStringTag,{value:"Module"}));exports.DEFAULT_CALCULATION_MESSAGES=Vt;exports.DEFAULT_MESSAGES=Nn;exports.DEFAULT_THEME=Bn;exports.MachReportError=me;exports.PlanLoadError=Ye;exports.REPORT_EXPORT_FORMATS=nt;exports.REPORT_PREVIEW_TOOLS=Pt;exports.ReportPagination=Rt;exports.ReportParamPanel=Cn;exports.ReportPreview=An;exports.ReportPreview$1=As;exports.ReportToolbar=bn;exports.SILENT_LOGGER=zl;exports.buildPrintDocument=pn;exports.buildWordHtml=ka;exports.cloneReportSnapshot=ge;exports.createDefaultPdfExporter=En;exports.createFetchRequest=ba;exports.createReportStoragePreferences=os;exports.defineMachReportConfig=Pn;exports.defineMachReportPreset=Ll;exports.joinReportIds=ya;exports.normalizeReportIds=Dt;exports.normalizeReportLoadError=xn;exports.printPlans=Ea;exports.provideMachReportConfig=Kl;exports.resolveCalculationMessages=Sn;exports.resolveConfig=In;exports.themeToCssVars=$n;exports.toErrorDetail=wn;exports.useMachReportConfig=Dn;exports.usePageWindow=fn;exports.usePrintExport=vn;exports.useZoom=mn;
|