@agile-team/mach-report 2.21.1 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +20 -5
  2. package/dist/{ExcelBindingWizard-mnAO2qOX.js → ExcelBindingWizard-D4FLind-.js} +3 -3
  3. package/dist/{ExcelBindingWizard-Bu0LUlzl.cjs → ExcelBindingWizard-D4RS5Bpg.cjs} +1 -1
  4. package/dist/{ParamEditor-38ZfNrPU.cjs → ParamEditor-C-6C9rd2.cjs} +1 -1
  5. package/dist/{ParamEditor-C8l0EC8m.js → ParamEditor-CASZt-Ma.js} +2 -2
  6. package/dist/{ReportBatchPanel-CfUVhvkO.js → ReportBatchPanel-Bq7t8a5r.js} +2 -2
  7. package/dist/{ReportBatchPanel-nCC06Nfp.cjs → ReportBatchPanel-YVj5IO5y.cjs} +1 -1
  8. package/dist/ReportLabelStudio-Cqhita1b.cjs +1 -0
  9. package/dist/ReportLabelStudio-Dj7GXhuv.js +783 -0
  10. package/dist/ReportParamPanel-DZbFVmDL.cjs +1 -0
  11. package/dist/{ReportParamPanel-peB-KEmm.js → ReportParamPanel-Dgmqro1Y.js} +265 -244
  12. package/dist/ReportPreview-DeWzG8jQ.js +6257 -0
  13. package/dist/ReportPreview-FFIryrIr.cjs +6 -0
  14. package/dist/{ReportTemplateLibrary-DVlsf72p.cjs → ReportTemplateLibrary-BaWodmpm.cjs} +1 -1
  15. package/dist/{ReportTemplateLibrary-B5t_EcIs.js → ReportTemplateLibrary-DdAAAD2I.js} +1 -1
  16. package/dist/{RuleEditor-kT1JsZ9f.js → RuleEditor-D2UwQGF6.js} +59 -59
  17. package/dist/{RuleEditor-xFkCVlii.cjs → RuleEditor-DcT9xI1v.cjs} +1 -1
  18. package/dist/TemplateOutlinePanel-CUHFFiNM.cjs +1 -0
  19. package/dist/{TemplateOutlinePanel-BesgGR1P.js → TemplateOutlinePanel-DrT7XN0m.js} +2 -2
  20. package/dist/{TemplateReusePanel-BNFU6V-W.js → TemplateReusePanel-4eejkNqi.js} +2 -2
  21. package/dist/{TemplateReusePanel-BG9Or5-P.cjs → TemplateReusePanel-DZMyiX5I.cjs} +1 -1
  22. package/dist/{TemplateReviewPanel-CwvwyCSs.js → TemplateReviewPanel-BIhNLeNw.js} +2 -2
  23. package/dist/TemplateReviewPanel-DnYImiXu.cjs +1 -0
  24. package/dist/analytics.cjs +1 -1
  25. package/dist/analytics.js +26 -26
  26. package/dist/artifact-integrity.json +108 -106
  27. package/dist/assets-D2gHc4Mz.cjs +1 -0
  28. package/dist/assets-T_gDeFaz.js +132 -0
  29. package/dist/auto-4pK9HePf.cjs +1 -0
  30. package/dist/auto-CTIJ6PnR.js +257 -0
  31. package/dist/capabilities-DiBj4Qgl.cjs +1 -0
  32. package/dist/capabilities-pg7j7VLT.js +106 -0
  33. package/dist/charts-Cjw5AYkg.cjs +1 -0
  34. package/dist/{charts-Dlv8j2AG.js → charts-CxJZ0XaY.js} +1 -1
  35. package/dist/computed-DK6BruFz.cjs +1 -0
  36. package/dist/{computed-C8NRZQss.js → computed-f3pOqWLX.js} +381 -301
  37. package/dist/data-bar-CeZuFmYl.cjs +1 -0
  38. package/dist/{data-bar-8baGYEZ9.js → data-bar-IkI6VvMQ.js} +1 -1
  39. package/dist/designer-DhrE7jzw.js +7169 -0
  40. package/dist/designer-IAZu6kBX.cjs +2 -0
  41. package/dist/designer.cjs +1 -1
  42. package/dist/designer.d.cts +246 -46
  43. package/dist/designer.d.ts +246 -46
  44. package/dist/designer.js +15 -14
  45. package/dist/dom-ChE5D-L-.cjs +1 -0
  46. package/dist/dom-JWrchIre.js +452 -0
  47. package/dist/dom-cell-address-DLD1mkTB.cjs +1 -0
  48. package/dist/dom-cell-address-Fn-8nk7D.js +11 -0
  49. package/dist/{encoding-B79hW4zq.cjs → encoding-BefcaHdp.cjs} +1 -1
  50. package/dist/{encoding-BSeUwrN7.js → encoding-CL6rXEkR.js} +2 -2
  51. package/dist/{font-loader-Di0lQKFf.js → font-loader-BT5baV-o.js} +1 -1
  52. package/dist/{font-loader-BB372_XN.cjs → font-loader-Ga51c2VC.cjs} +1 -1
  53. package/dist/grid-strokes-Be24LGuV.cjs +1 -0
  54. package/dist/grid-strokes-EoY66L2f.js +53 -0
  55. package/dist/index.cjs +8 -8
  56. package/dist/index.d.cts +44 -1
  57. package/dist/index.d.ts +44 -1
  58. package/dist/index.js +961 -1256
  59. package/dist/json-snapshot-1tvQNzQE.cjs +2 -0
  60. package/dist/{json-snapshot-Kgn459Oj.js → json-snapshot-OqkPyUk5.js} +763 -776
  61. package/dist/matrix-B8QWbsGM.cjs +1 -0
  62. package/dist/matrix-C6e_r_vp.js +302 -0
  63. package/dist/{pdf-CARdBcuw.cjs → pdf-HiEeXe9H.cjs} +42 -42
  64. package/dist/{pdf-DmlnL5eB.js → pdf-aobetCsy.js} +20 -20
  65. package/dist/pdf.cjs +1 -1
  66. package/dist/pdf.js +2 -2
  67. package/dist/{plugin-BaRUGORD.cjs → plugin-BFANt-i8.cjs} +1 -1
  68. package/dist/{plugin-D4kAxfLG.js → plugin-DeYYAL6F.js} +1 -1
  69. package/dist/{prefill-CJSazcVY.js → prefill-Dk4C6S5R.js} +21 -21
  70. package/dist/prefill-DsUD5OoK.cjs +1 -0
  71. package/dist/prepared-DCIxhKFo.js +94 -0
  72. package/dist/prepared-Dv-XM3i1.cjs +1 -0
  73. package/dist/progress-ByiOxUD3.js +250 -0
  74. package/dist/progress-WomPRP3B.cjs +1 -0
  75. package/dist/{protocol-C8VWF9An.cjs → protocol-B9YgfQ_d.cjs} +1 -1
  76. package/dist/{protocol-Bs9-ohHN.js → protocol-DxeUKGYG.js} +3 -3
  77. package/dist/record-bindings-DatJZv_e.js +200 -0
  78. package/dist/record-bindings-MBxbeBsi.cjs +1 -0
  79. package/dist/{region-binding-workflow-Cy4GIOUo.js → region-binding-workflow-DjrXuR1q.js} +2 -2
  80. package/dist/{region-binding-workflow-JNowHd0A.cjs → region-binding-workflow-l7NGfagJ.cjs} +2 -2
  81. package/dist/report-encoding-worker.cjs +1 -1
  82. package/dist/report-encoding-worker.js +1 -1
  83. package/dist/rich-text-layout-Ciwa6D2o.js +52 -0
  84. package/dist/rich-text-layout-DK7A_a5r.cjs +3 -0
  85. package/dist/{runtime-BDf5x1i1.js → runtime-75Y5Oq5B.js} +52 -51
  86. package/dist/runtime-DKlGd_D4.cjs +1 -0
  87. package/dist/sbom.cdx.json +1 -1
  88. package/dist/server/node.d.cts +9 -0
  89. package/dist/server/node.d.ts +9 -0
  90. package/dist/server-node.cjs +5 -4
  91. package/dist/server-node.js +2178 -2044
  92. package/dist/server.cjs +1 -1
  93. package/dist/server.d.cts +81 -0
  94. package/dist/server.d.ts +81 -0
  95. package/dist/server.js +24 -24
  96. package/dist/style.css +1 -1
  97. package/dist/{template-catalog-DFwIS9aN.js → template-catalog--cjxzgH7.js} +17 -17
  98. package/dist/template-catalog-CoT7jm_6.cjs +1 -0
  99. package/dist/{template-fragments-Dng-AlHk.js → template-fragments-CPpGpQoz.js} +24 -24
  100. package/dist/{template-fragments-DZVUBhuB.cjs → template-fragments-GVjpew_q.cjs} +1 -1
  101. package/dist/template-registry-DI59PXVK.cjs +1 -0
  102. package/dist/{template-registry-DhBqoD7W.js → template-registry-O0hNIOfB.js} +333 -261
  103. package/dist/template-serialization-CWmHq7lX.js +307 -0
  104. package/dist/template-serialization-CqQY4zDg.cjs +1 -0
  105. package/dist/{textwrap-CkGjRFT3.js → textwrap-BIjtEWmq.js} +1 -1
  106. package/dist/textwrap-Cy7o1hIR.cjs +4 -0
  107. package/dist/vue/async.d.cts +121 -2
  108. package/dist/vue/async.d.ts +121 -2
  109. package/dist/vue/index.d.cts +222 -5
  110. package/dist/vue/index.d.ts +222 -5
  111. package/dist/vue-async.cjs +1 -1
  112. package/dist/vue-async.js +3 -3
  113. package/dist/vue.cjs +1 -1
  114. package/dist/vue.js +101 -91
  115. package/dist/{workbook-session-NYv01LHe.cjs → workbook-session-C6-SrnCT.cjs} +4 -4
  116. package/dist/{workbook-session-oinxX3qo.js → workbook-session-C9ZmCBwY.js} +15 -16
  117. package/dist/workbook-sheets-CaPAulQ6.cjs +2 -0
  118. package/dist/workbook-sheets-D4M7XXBh.js +44 -0
  119. package/dist/worker.cjs +1 -1
  120. package/dist/worker.d.cts +9 -0
  121. package/dist/worker.d.ts +9 -0
  122. package/dist/worker.js +4 -4
  123. package/dist/xlsx.cjs +4 -4
  124. package/dist/xlsx.d.cts +39 -2
  125. package/dist/xlsx.d.ts +39 -2
  126. package/dist/xlsx.js +300 -275
  127. package/package.json +1 -1
  128. package/dist/ReportLabelStudio-CaEvYuSK.cjs +0 -1
  129. package/dist/ReportLabelStudio-DQPBmh4v.js +0 -765
  130. package/dist/ReportParamPanel-CVpK8mFc.cjs +0 -1
  131. package/dist/ReportPreview-BBJNlu2U.js +0 -5740
  132. package/dist/ReportPreview-nf4Dk1Jc.cjs +0 -6
  133. package/dist/TemplateOutlinePanel-CDI6mfWx.cjs +0 -1
  134. package/dist/TemplateReviewPanel-BmBrjt6P.cjs +0 -1
  135. package/dist/assets-CxHunY_9.js +0 -232
  136. package/dist/assets-vbjAGgk8.cjs +0 -1
  137. package/dist/auto-BkdGiNtr.js +0 -240
  138. package/dist/auto-Tq7ReIC1.cjs +0 -1
  139. package/dist/charts-aCtoswXq.cjs +0 -1
  140. package/dist/component-tree-1_QCiQJX.js +0 -67
  141. package/dist/component-tree-BjZIp6w9.cjs +0 -1
  142. package/dist/computed-4TnxzgIh.cjs +0 -1
  143. package/dist/data-bar-YltqGTaC.cjs +0 -1
  144. package/dist/designer-DU3yDWgs.cjs +0 -2
  145. package/dist/designer-HQi-03R6.js +0 -6869
  146. package/dist/grid-geometry-D3SJgWFv.js +0 -136
  147. package/dist/grid-geometry-D8ReblRV.cjs +0 -1
  148. package/dist/json-snapshot-I5VI84Vp.cjs +0 -2
  149. package/dist/matrix-0hywp0-F.cjs +0 -1
  150. package/dist/matrix-Dy-tyY7E.js +0 -381
  151. package/dist/prefill-Bpyn58AZ.cjs +0 -1
  152. package/dist/prepared-BiSz_9vN.cjs +0 -1
  153. package/dist/prepared-BwjwEzFz.js +0 -87
  154. package/dist/progress-B0ctFpKf.cjs +0 -1
  155. package/dist/progress-Hc2vxoCs.js +0 -52
  156. package/dist/record-bindings-Ct1HkPrc.cjs +0 -1
  157. package/dist/record-bindings-VZGS-Qd8.js +0 -155
  158. package/dist/rich-text-layout-K48VHUoW.cjs +0 -3
  159. package/dist/rich-text-layout-wxBhnAS7.js +0 -102
  160. package/dist/runtime-DsJt1PIf.cjs +0 -1
  161. package/dist/template-bindings-Cg5oBLFT.cjs +0 -1
  162. package/dist/template-bindings-TKnXM7ll.js +0 -62
  163. package/dist/template-catalog-D_2jdnkL.cjs +0 -1
  164. package/dist/template-outline-DWkzZXVC.cjs +0 -1
  165. package/dist/template-outline-DiADphlq.js +0 -88
  166. package/dist/template-registry-DpLUSLwF.cjs +0 -1
  167. package/dist/template-serialization-Cc3h-miv.js +0 -247
  168. package/dist/template-serialization-D1R5oAqh.cjs +0 -1
  169. package/dist/textwrap-OTOUMr4f.cjs +0 -4
@@ -0,0 +1,6 @@
1
+ "use strict";var Pa=Object.create;var gn=Object.defineProperty;var Ma=Object.getOwnPropertyDescriptor;var Ta=Object.getOwnPropertyNames;var Oa=Object.getPrototypeOf,Aa=Object.prototype.hasOwnProperty;var Fa=(t,n,a,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Ta(n))!Aa.call(t,r)&&r!==a&&gn(t,r,{get:()=>n[r],enumerable:!(o=Ma(n,r))||o.enumerable});return t};var lt=(t,n,a)=>(a=t!=null?Pa(Oa(t)):{},Fa(n||!t||!t.__esModule?gn(a,"default",{value:t,enumerable:!0}):a,t));const e=require("vue"),Q=require("@agile-team/mach-report"),ue=require("./prefill-DsUD5OoK.cjs"),Y=require("./progress-WomPRP3B.cjs"),ce=require("./ReportParamPanel-DZbFVmDL.cjs"),Bt=require("./prepared-Dv-XM3i1.cjs"),vn=require("./sha256-DgZAKXqI.cjs"),W=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),za=require("./computed-DK6BruFz.cjs"),At=require("./json-snapshot-1tvQNzQE.cjs"),La=require("./dom-cell-address-DLD1mkTB.cjs"),Vt=require("./injection-keys-Db_DyLkm.cjs");function Ft(t){return t==null?[]:Array.isArray(t)?t.map(String).filter(n=>n!==""):String(t).split(",").map(n=>n.trim()).filter(n=>n!=="")}function Ka(t){return Ft(t).join(",")}class st extends Error{constructor(n){super(n),this.name="PlanLoadError"}}function qa(t={}){const{baseUrl:n="",headers:a,credentials:o,timeoutMs:r=3e4}=t,l=n.replace(/\/+$/,"");return async({url:s,method:i,params:u,signal:c})=>{let d=`${l}${s}`;if(u&&Object.keys(u).length>0){const p=d.indexOf("#"),w=p>=0?d.slice(p):"",y=p>=0?d.slice(0,p):d,h=y.indexOf("?"),k=h>=0?y.slice(0,h):y,S=new URLSearchParams(h>=0?y.slice(h+1):"");for(const[b,B]of Object.entries(u))S.set(b,B);d=`${k}?${S}${w}`}const m=(p,w)=>{const y=new st(p);return Object.defineProperty(y,"cause",{value:w,configurable:!0,writable:!0}),y};if(c?.aborted)throw m(`请求已取消: ${s}`,c.reason);const g=new AbortController;let x;const f=()=>{g.signal.aborted||(x="external",g.abort(c?.reason))};c?.addEventListener("abort",f,{once:!0});const v=setTimeout(()=>{g.signal.aborted||(x="timeout",g.abort())},r);try{const p=await fetch(d,{method:i.toUpperCase(),headers:{Accept:"application/json",...a},credentials:o,signal:g.signal});if(!p.ok)throw new st(`HTTP ${p.status} ${s}`);return await p.json()}catch(p){throw x==="timeout"?m(`请求超时(${r}ms): ${s}`,p):x==="external"?m(`请求已取消: ${s}`,p):p instanceof st?p:m(`请求失败(${s}): ${p instanceof Error?p.message:String(p)}`,p)}finally{clearTimeout(v),c?.removeEventListener("abort",f)}}}function Bn(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 h=t.value?.pages??[];return ue.createPageWindowIndex(h.map(k=>k.pageHeightMm*o),r.value)}),u=e.computed(()=>{let h=0;for(const k of t.value?.pages??[])h=Math.max(h,k.pageWidthMm*o);return{w:h,h:i.value.totalHeightPx}});let c;const d=e.computed(()=>{const h=i.value.window(s.value/n.value,l.value/n.value,e.unref(a.overscan)??1);return c&&c.start===h.start&&c.end===h.end&&c.padTopPx===h.padTopPx&&c.padBottomPx===h.padBottomPx?c:(c=h,h)}),m=e.computed(()=>{const h=t.value;if(!h)return[];const{start:k,end:S}=d.value;return h.pages.slice(k,S+1).map((b,B)=>({page:b,index:k+B}))});let g=0,x=!1,f;function v(h){h&&(l.value=h.scrollTop,s.value=h.clientHeight||800)}function p(h,k){h.scrollTop=i.value.offsetAt(k)*n.value,f={top:h.scrollTop,index:k,zoom:n.value,geometry:i.value},v(h)}function w(h,k){return S=>{g||x||(g=requestAnimationFrame(()=>{if(g=0,x||(v(S),k.value<=0))return;if(f&&f.top===S.scrollTop&&f.zoom===n.value&&f.geometry===i.value){h.value=Math.min(k.value,f.index+1);return}f=void 0;const b=Math.max(0,S.scrollTop+32)/n.value;h.value=Math.min(k.value,i.value.pageAt(b)+1)}))}}function y(){x=!0,g&&cancelAnimationFrame(g),g=0}return e.onScopeDispose(y),{contentSize:u,windowRange:d,visiblePages:m,makeScrollHandler:w,refreshViewport:v,scrollToPage:p,pageOffsetPx:h=>i.value.offsetAt(h),destroy:y}}const Je=96/25.4;function ja(t){const n=new WeakMap,a=e.ref(0);let o,r=0,l=0,s=!1,i=0;function u(){r++,l&&cancelAnimationFrame(l),l=0}function c(b,B,C,P){return!s&&B===r&&t.plan.value===C&&t.root.value===P&&P.contains(b.holder)&&Number(b.holder.dataset.page)===b.index+1}function d(b){const{holder:B,page:C}=b;n.delete(B),B.style.width=`${C.pageWidthMm*Je}px`,B.style.height=`${C.pageHeightMm*Je}px`,B.setAttribute("aria-busy","true");const P=B.ownerDocument.createElement("div");P.className="mrp-page-loading";const D=B.ownerDocument.createElement("span");D.textContent=t.loading(),D.style.transform=`scale(${1/Math.max(1e-4,t.zoom())})`,P.append(D),B.replaceChildren(P)}function m(b){const B=n.get(b.holder);if(!B||B.page!==b.page||B.element.parentElement!==b.holder)return!1;const C=!!B.element.querySelector(".mrp-cell-editor-host");return B.windowed!==p(b.page)&&!C?!1:(w(b.holder,B),B.query!==t.query()&&!C&&(t.clear(B.element),t.highlight(B.element),B.query=t.query()),!0)}function g(b,B,C,P){if(c(b,B,C,P))try{const D=p(b.page),G=D?Q.createPageViewportRenderer(b.page,96,{},b.holder.ownerDocument):void 0,U=G?.element??Q.renderPage(b.page,96,{},b.holder.ownerDocument);if(t.highlight(U),!c(b,B,C,P))return;b.holder.replaceChildren(U),b.holder.removeAttribute("aria-busy");const _={page:b.page,element:U,query:t.query(),viewport:G,windowed:D};n.set(b.holder,_),w(b.holder,_),t.mounted(b.holder),t.ready()}catch(D){if(!c(b,B,C,P))return;b.holder.removeAttribute("aria-busy");const G=b.holder.ownerDocument.createElement("div");G.className="mrp-page-render-error",G.setAttribute("role","alert"),G.textContent=D instanceof Error?D.message:String(D),b.holder.replaceChildren(G),t.error(D)}}function x(b,B,C,P){b.length&&(l=requestAnimationFrame(()=>{if(B!==r||s)return;l=0;const D=b.shift();D&&g(D,B,C,P),B===r&&t.plan.value===C&&t.root.value===P&&x(b,B,C,P)}))}function f(){u();const b=t.plan.value,B=t.root.value;if(s||!b||!B){o=void 0;return}const C=r,P=o?.plan===b?o.index:t.priority();o=void 0;const D=[];B.querySelectorAll(".mrp-page-holder").forEach(_=>{const ne=Number(_.dataset.page)-1,ae=b.pages[ne];if(!ae)return;const le={holder:_,page:ae,index:ne};m(le)||(d(le),D.push(le))});const G=D.findIndex(_=>_.index===P),U=G<0?void 0:D.splice(G,1)[0];U&&g(U,C,b,B),t.ready(),x(D,C,b,B)}function v(b){s||!t.plan.value||(o={plan:t.plan.value,index:b},a.value++)}e.watch([t.plan,t.root,t.pages,t.priority,t.focusToken,()=>t.editorToken?.(),t.query,t.zoom,t.loading,()=>t.windowing?.(),()=>t.frozen?.(),a],f,{flush:"post",immediate:!0});function p(b){return!t.viewport?.value?.clientWidth||t.windowing?.()===!1||b.layout!=="wide"?!1:b.components.reduce((B,C)=>B+(C.grid?.cells.reduce((P,D)=>P+D.length,0)??0),0)>1e3}function w(b,B,C){const P=t.viewport?.value;if(!P||!B.viewport)return;const{bounds:D,pageBounds:G,scale:U}=C??{bounds:P.getBoundingClientRect(),pageBounds:b.getBoundingClientRect(),scale:Je*t.zoom()},_=b.querySelector(".mrp-cell-editor-host")?.closest("td[data-mr-row-index]")??b.ownerDocument.activeElement?.closest("td[data-mr-row-index]"),ne=_?.closest("[data-mr-component-index]"),ae=_&&ne&&b.contains(_)?{componentIndex:Number(ne.dataset.mrComponentIndex),rowIndex:Number(_.dataset.mrRowIndex),columnIndex:Number(_.dataset.mrColumnIndex)}:void 0;B.viewport.update({leftMm:(D.left-G.left)/U,topMm:(D.top-G.top)/U,widthMm:P.clientWidth/U,heightMm:P.clientHeight/U},ae,t.frozen?.())&&(t.highlight(B.element),t.mounted(b))}function y(){s||i||(i=requestAnimationFrame(()=>{if(i=0,s)return;const b=t.viewport?.value;if(!b)return;const B=b.getBoundingClientRect(),C=Je*t.zoom(),P=[];t.root.value?.querySelectorAll(".mrp-page-holder").forEach(D=>{const G=n.get(D);G?.viewport&&P.push({holder:D,state:G,measurement:{bounds:B,scale:C,pageBounds:D.getBoundingClientRect()}})});for(const D of P)w(D.holder,D.state,D.measurement)}))}function h(b,B,C,P,D){const G=b.getBoundingClientRect(),U=B.getBoundingClientRect(),_=Je*t.zoom(),ne=U.left+(C.leftMm+D.xMm)*_,ae=U.top+(C.topMm+D.yMm)*_,le=t.frozen?.(),V=Math.max(0,Math.min(20,Math.floor(le?.frozenColumns??0)))||0,M=P.columns.slice(0,V).reduce((F,K)=>F+K.size,0)*_;D.ci>=V&&(b.scrollLeft+=S(ne,ne+D.widthMm*_,G.left+M,G.left+b.clientWidth)),le?.freezeHeaders&&(C.table?.role==="header"||!C.table&&D.ri===0)||(b.scrollTop+=S(ae,ae+D.heightMm*_,G.top,G.top+b.clientHeight))}function k(b){const B=t.viewport?.value,C=t.plan.value?.pages[b.pageIndex],P=t.root.value?.querySelector(`[data-page="${b.pageIndex+1}"]`),D=C?.components[b.componentIndex];if(!B||!P||!D?.grid)return!1;const G=n.get(P);if(!G?.viewport)return!1;const U=G.layouts??=new Map;let _=U.get(b.componentIndex);if(!_){const ae=Y.resolveGridLayout(D.grid,D.widthMm,D.heightMm);_={layout:ae,cells:new Map(ae.cells.map(le=>[`${le.ri}:${le.ci}`,le]))},U.set(b.componentIndex,_)}const ne=_.cells.get(`${b.rowIndex}:${b.columnIndex}`);return ne?(h(B,P,D,_.layout,ne),w(P,G),!0):!1}function S(b,B,C,P){return b<C+8?b-C-8:B>P-8?Math.min(b-C-8,B-P+8):0}return e.onScopeDispose(()=>{s=!0,o=void 0,u(),i&&cancelAnimationFrame(i)}),{prioritize:v,cancel:u,refreshViewport:y,reveal:k}}function Vn(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}}function $n(t,n){if(![t,n].every(s=>Number.isFinite(s)&&s>=25&&s<=600))throw new RangeError("Calibration paper must be between 25 and 600 mm");const a=[],o=Math.min(10,t/5),r=Math.min(10,n/5),l=Math.min(50,t-o*2,n-r*2);a.push({kind:"rect",leftMm:o,topMm:r,widthMm:l,heightMm:l,style:{borderColor:"#255c8c",lineWidthPt:.5}});for(let s=0;s<=l;s+=5)a.push({kind:"line",leftMm:o+s,topMm:r,widthMm:0,heightMm:s%10?2:3,style:{lineColor:"#255c8c",lineWidthPt:.5}}),a.push({kind:"line",leftMm:o,topMm:r+s,widthMm:s%10?2:3,heightMm:0,style:{lineColor:"#255c8c",lineWidthPt:.5}});return a.push({kind:"text",text:`${l} x ${l} mm`,leftMm:o+4,topMm:r+l/2-2,widthMm:l-8,heightMm:4,style:{fontSize:7,align:"center",color:"#255c8c"}}),{schemaVersion:"print-calibration",pages:[{pageWidthMm:t,pageHeightMm:n,components:a}]}}let Ha=0;function yn(t,n){const a=new AbortController;let o={taskId:`mr-output-${Date.now().toString(36)}-${++Ha}`,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())}}}class be extends Error{constructor(n,a=""){super(`Print preparation failed: ${n} ${a}`),this.kind=n,this.resource=a,this.code="print-resource",this.name="ReportPrintResourceError"}}function Dn(t,n){const a={...ce.DEFAULT_PRINT_MESSAGES,...n};return t instanceof be?t.kind==="timeout"?a.printPrepareTimeout:t.kind==="image"?a.printImageFailed.replace("{index}",String(t.resource)):t.kind==="font"?a.printFontFailed.replace("{family}",String(t.resource)):a.printPrepareFailed:a.printPrepareFailed}function Wa(t,n){let a;try{a=new URL(t,n)}catch{throw new be("config")}if(!["http:","https:"].includes(a.protocol)||t.length>16384)throw new be("config");return a.href}async function Ua(t,n,a,o){const r=n.fonts??[];if(r.length>8)throw new be("config");for(const l of r){if(Y.assertOutputActive(a),typeof l.family!="string"||!l.family.trim()||l.family.length>256||typeof l.source!="string")throw new be("config");const s=t.defaultView?.FontFace;if(!s||!t.fonts)throw new be("font",l.family);try{const{loadFontWithCache:i}=await Promise.resolve().then(()=>require("./font-loader-Ga51c2VC.cjs")),u=await i(Wa(l.source,o),{signal:a});if(!u)throw new be("font",l.family);const c=new s(l.family,u,{weight:l.weight,style:l.style});await Y.waitForOutput(c.load(),a),t.fonts.add(c)}catch(i){throw Y.assertOutputActive(a),i instanceof be?i:new be("font",l.family)}}t.documentElement.getBoundingClientRect(),t.fonts&&await Y.waitForOutput(t.fonts.ready,a)}async function Ga(t,n,a){Y.assertOutputActive(a);try{if(typeof t.decode=="function"?await Y.waitForOutput(t.decode(),a):t.complete||await new Promise((o,r)=>{const l=()=>{t.removeEventListener("load",s),t.removeEventListener("error",i),a.removeEventListener("abort",u)},s=()=>{l(),o()},i=()=>{l(),r(new be("image",n))},u=()=>{l(),r(a.reason)};t.addEventListener("load",s,{once:!0}),t.addEventListener("error",i,{once:!0}),a.addEventListener("abort",u,{once:!0}),a.aborted?u():t.complete&&s()}),Y.assertOutputActive(a),t.naturalWidth<=0||t.naturalHeight<=0)throw new be("image",n)}catch{throw Y.assertOutputActive(a),new be("image",n)}}async function zt(t,n={},a,o=document.baseURI){const r=n.resourceTimeoutMs??15e3;if(!Number.isSafeInteger(r)||r<1||r>12e4)throw new be("config");const l=new AbortController,s=Y.forwardOutputAbort(a,l),i=setTimeout(()=>l.abort(new be("timeout")),r);try{Y.assertOutputActive(l.signal),await Ua(t,n,l.signal,o);const u=t.querySelectorAll("img");let c=0;const d=async()=>{for(;c<u.length;){const m=c++;await Ga(u[m],m+1,l.signal)}};await Promise.all(Array.from({length:Math.min(u.length,4)},d)),Y.assertOutputActive(l.signal)}finally{clearTimeout(i),s(),l.abort()}}const Oe=8;function Xe(){return new Promise(t=>setTimeout(t,0))}function it(t){return`p${t.pageWidthMm}x${t.pageHeightMm}`.replace(/[.+]/g,"_")}function ut(t){const n=new Map;return t.pages.forEach(r=>{n.has(it(r))||n.set(it(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 ${it(r)}{size:${r.pageWidthMm}mm ${r.pageHeightMm}mm;margin:0;}`).join(`
5
+ `)}
6
+ body{margin:0;background:#fff;}`}</style></head><body>`}function dt(t,n){const a=Q.renderPage(t,96,{},document);a.style.page=it(t);const o=ce.printCalibration(n);if(o.x||o.y){const r=document.createElement("div");for(r.style.cssText=`position:absolute;inset:0;transform:translate(${o.x}mm,${o.y}mm);transform-origin:top left`;a.firstChild;)r.appendChild(a.firstChild);a.appendChild(r)}return a.outerHTML}function Rn(t,n){return{head:ut(t),pageChunks:t.pages.map(a=>dt(a,n))}}async function In(t,n={}){const a={schemaVersion:"mach-report-batch-print",pages:t.flatMap(i=>i.pages)};if(a.pages.length===0)return;const o=ce.snapshotPrintOptions(n.printOptions),r=ut(a),l=document.createElement("iframe");l.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(l);let s=!1;try{const i=l.contentDocument;i.open(),i.write(r);for(let u=0;u<a.pages.length;u++)Y.assertOutputActive(n.signal),i.write(dt(a.pages[u],o)),u%Oe===Oe-1&&(Y.notifyOutputProgress(n,u+1,a.pages.length),await Xe());i.write("</body></html>"),i.close(),await Xe(),await zt(i,o,n.signal),Y.notifyOutputProgress(n,a.pages.length,a.pages.length),l.contentWindow?.focus(),l.contentWindow?.print(),s=!0}catch(i){throw n.signal?.aborted||Y.observeOutput(()=>n.onError?.(Dn(i,n.messages))),i}finally{s?setTimeout(()=>l.remove(),6e4):l.remove()}}function Pn(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 Ja(t){const{head:n,pageChunks:a}=Rn(t);return{html:`${Pn(n)}${a.join("")}</body></html>`,filename:"mach-report.doc"}}function Mn(t,n){let a=null,o=!1,r=!1,l=0,s=0;const i=new Set,u=new Map;let c=null;const d=new Map;let m=null,g=null,x=null,f=null,v=null;function p(N,R){return!r&&t.value===N&&l===R}function w(){if(r)return;const N=[...u.values()].reverse().find(R=>p(R.plan,R.epoch))?.format??null;N!==m&&(m=N,n.onBusy?.(N))}function y(N,R,T){const $={};return u.set($,{plan:N,epoch:R,format:T,run:yn("export",n.onTask)}),u.get($).run.start(),w(),$}function h(N){u.get(N)?.run.finish(),u.delete(N),w()}function k(){for(const[N,R]of d)p(R.plan,R.epoch)||(N.close(),d.delete(N))}function S(N=!0){if(N){s++;for(const R of i)R.close();i.clear()}for(const R of u.values())R.run.finish("cancelled");c?.finish("cancelled"),l++,B(),w(),k()}const b=e.watch(t,()=>S(!1),{flush:"sync"});function B(){a?.remove(),a=null}function C(){S(),r=!0,l++,b(),B(),k(),u.clear(),n.onPrinting?.(!1)}function P(N,R){const T=URL.createObjectURL(N);setTimeout(()=>URL.revokeObjectURL(T),1e4);const $=document.createElement("a");$.href=T,$.download=R,$.click()}function D(N,R,T,$,Z){T.update("download"),p(N,R)&&!T.controller.signal.aborted&&P($,Z)}async function G(N,R,T,$,Z){const ee=N.contentDocument;ee.open(),ee.write(ut(R));for(let re=0;re<R.pages.length;re++)if($.controller.signal.aborted||(ee.write(dt(R.pages[re],Z)),$.update("print",re+1,R.pages.length),re%Oe===Oe-1&&await Xe(),N!==a))return!1;return ee.write("</body></html>"),ee.close(),await Xe(),await zt(ee,Z,$.controller.signal),!(!p(R,T)||N!==a)}function U(){const N=s,R=$=>$&&!r&&N===s,T=$=>(!r&&N===s&&n.onError($ instanceof Error?$.message:"报表修改尚未完成","export"),!1);try{const $=n.beforeOutput?.()??!0;return typeof $=="boolean"?R($):$.then(R,T)}catch($){return T($)}}function _(N){const R=U();return typeof R=="boolean"?R?N():Promise.resolve():R.then(T=>T?N():void 0)}function ne(N,R,T,$,Z){$.finish($.controller.signal.aborted?"cancelled":"failed"),Z===a&&B(),p(R,T)&&!$.controller.signal.aborted&&n.onError(Dn(N,n.getPrintMessages?.()),"print")}async function ae(){if(o)return;const N=t.value;if(r||!N||N.pages.length===0)return;const R=l;o=!0;const T=yn("print",n.onTask);c=T,T.start(),n.onPrinting?.(!0),B(),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 $=a;try{if(!p(N,R)||T.controller.signal.aborted){B();return}const Z=ce.snapshotPrintOptions(n.getPrintOptions?.());if(!await G($,N,R,T,Z))return;$.contentWindow?.focus(),$.contentWindow?.print()}catch(Z){ne(Z,N,R,T,$)}finally{T.finish(),c===T&&(c=null),o=!1,r||n.onPrinting?.(!1)}}function le(N,R,T){return{signal:T.controller.signal,onDiagnostic:$=>{p(N,R)&&!T.controller.signal.aborted&&n.onDiagnostic?.($)},onProgress:($,Z)=>T.update("encode",$,Z)}}function V(N,R,T){if(g?.plan===N&&g.epoch===R)return g.promise;const $=Promise.resolve().then(()=>{if(!p(N,R))throw new Error("报表已切换或卸载");const Z=me=>{p(N,R)&&n.onWarning?.(me)},ee=n.getPdfExporter(),re=T?le(N,R,T):void 0;return Y.waitForOutput(n.encoding?n.encoding.pdf(N,ee,Z,re):ee(N,Z,re),T?.controller.signal)}).finally(()=>{g?.promise===$&&(g=null)});return g={plan:N,epoch:R,promise:$},$}async function M(){const N=t.value;if(r||!N||N.pages.length===0)return;const R=l;if(x?.plan===N&&x.epoch===R)return x.promise;const T=y(N,R,"PDF"),$=(async()=>{try{const Z=u.get(T).run,ee=await V(N,R,Z);if(!p(N,R))return;D(N,R,Z,new Blob([ee],{type:"application/pdf"}),"mach-report.pdf")}catch(Z){u.get(T)?.run.finish("failed"),p(N,R)&&n.onError(Z instanceof Error?`PDF 导出失败: ${Z.message}`:"PDF 导出失败","pdf")}finally{h(T),x?.token===T&&(x=null)}})();return x={plan:N,epoch:R,promise:$,token:T},$}async function I(){const N=t.value;if(r||!N||N.pages.length===0)return;const R=l;if(f?.plan===N&&f.epoch===R)return f.promise;const T={...n.getXlsxOptions?.()},$=y(N,R,"Excel"),Z=(async()=>{try{if(!p(N,R))return;const ee=u.get($).run,re=le(N,R,ee),me=n.encoding?n.encoding.xlsx(N,T,re):import("@agile-team/mach-report/xlsx").then(async({renderPlanToXlsx:Fe})=>{Y.assertOutputActive(ee.controller.signal);const ze=await Fe(N,{...T,...re});return{buffer:new Uint8Array(ze.buffer),warnings:ze.warnings,notes:ze.notes}}),{buffer:ye,warnings:Ve,notes:Ye}=await Y.waitForOutput(me,ee.controller.signal);if(!p(N,R))return;for(const Fe of Ye??[])p(N,R)&&n.onNote?.(Fe);if(Ve.length>0&&n.onWarning?.(`Excel 导出有 ${Ve.length} 条提示:${Ve.slice(0,2).join(";")}`),!p(N,R))return;D(N,R,ee,new Blob([ye],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),"mach-report.xlsx")}catch(ee){u.get($)?.run.finish("failed"),p(N,R)&&n.onError(ee instanceof Error?`Excel 导出失败: ${ee.message}`:"Excel 导出失败","export")}finally{h($),f?.token===$&&(f=null)}})();return f={plan:N,epoch:R,promise:Z,token:$},Z}async function F(){const N=t.value;if(r||!N||N.pages.length===0)return;const R=l;if(v?.plan===N&&v.epoch===R)return v.promise;const T=y(N,R,"图片"),$=(async()=>{try{const Z=u.get(T).run,{blobs:ee}=await Y.waitForOutput(Q.renderPlanToImages(N,{...le(N,R,Z),dpr:Math.min(2,typeof devicePixelRatio=="number"?devicePixelRatio:1)}),Z.controller.signal);if(!p(N,R))return;ee.forEach((re,me)=>{D(N,R,Z,re,ee.length>1?`mach-report-page-${me+1}.png`:"mach-report.png")})}catch(Z){u.get(T)?.run.finish("failed"),p(N,R)&&n.onError(Z instanceof Error?`图片导出失败: ${Z.message}`:"图片导出失败","export")}finally{h(T),v?.token===T&&(v=null)}})();return v={plan:N,epoch:R,promise:$,token:T},$}async function K(N){const R=t.value;if(r||!R||!R.pages.length)return;const T=l,$=y(R,T,N==="word"?"Word":"HTML"),Z=u.get($).run;try{const ee=[];for(const[ye,Ve]of R.pages.entries()){if(!p(R,T))return;ee.push(dt(Ve)),Z.update("encode",ye+1,R.pages.length),ye%Oe===Oe-1&&await Xe()}if(!p(R,T))return;const re=ut(R),me=`${N==="word"?Pn(re):re}${ee.join("")}</body></html>`;D(R,T,Z,new Blob([me],{type:N==="word"?"application/msword;charset=utf-8":"text/html;charset=utf-8"}),N==="word"?"mach-report.doc":"mach-report.html")}catch(ee){Z.finish("failed"),p(R,T)&&n.onError(ee instanceof Error?`导出失败: ${ee.message}`:"导出失败","export")}finally{h($)}}async function J(){await K("word")}function A(){return _(ae)}function z(){return _(F)}function L(){return _(J)}async function j(N){const R=t.value;if(!(r||!R||R.pages.length===0)){if(N==="pdf"){await M();return}if(N==="xlsx"||N==="excel"){await I();return}if(N==="png"||N==="image"){await F();return}if(N==="word"||N==="doc"){await J();return}if(N!=="html"){n.onError(`不支持的导出格式:${N}`,"export");return}await K("html")}}function q(N){return _(()=>j(N))}function oe(N){const R=t.value;if(r||!R||!R.pages.length){N.close();return}const T=l;d.set(N,{plan:R,epoch:T});const $=y(R,T,"PDF");V(R,T,u.get($).run).then(Z=>{if(!p(R,T)||N.closed){d.delete(N)&&N.close();return}const ee=URL.createObjectURL(new Blob([Z],{type:"application/pdf"}));setTimeout(()=>URL.revokeObjectURL(ee),6e4);const re=N.document;re.title="PDF 预览",re.documentElement.style.height="100%",re.body.style.cssText="margin:0;height:100%;";const me=re.createElement("iframe");me.title="PDF 预览",me.style.cssText="display:block;width:100%;height:100%;border:0;",me.src=ee,re.body.replaceChildren(me),d.delete(N)}).catch(Z=>{u.get($)?.run.finish("failed"),N.close(),d.delete(N),p(R,T)&&n.onError(Z instanceof Error?`PDF 预览失败: ${Z.message}`:"PDF 预览失败","pdf")}).finally(()=>h($))}function te(){if(r||!t.value?.pages.length)return;const N=globalThis.window.open("","_blank");if(!N){n.onError("浏览器拦截了弹窗,请允许弹窗后重试","pdf");return}const R=U();if(typeof R=="boolean"){R?oe(N):N.close();return}i.add(N),R.then(T=>{const $=i.delete(N);if(!T||!$||N.closed){N.close();return}oe(N)})}return{print:A,exportAs:q,exportImages:z,exportWord:L,openPdfWindow:te,invalidatePending:S,cancel:S,releasePrintFrame:B,dispose:C}}let $t;function Za(t,n){return{...t,prepared:Bt.capturePreparedHandoff(t.prepared,n?.budget?.maxPreparedBytes??64e6,t.signal).forward(),pdf:Bt.snapshotPdfFonts(t.pdf),xlsx:Bt.snapshotXlsxOptions(t.xlsx)}}function Xa(t){const n=e.shallowRef(),a=new Set;let o=!1,r=0;const l=()=>{r++;for(const i of a)i.abort.abort(),i.exporter?.cancel()},s=()=>{o=!0,l();for(const i of a)i.exporter?.dispose()};return e.onScopeDispose(s),{decision:n,async exportPrepared(i,u){if(o)throw new Error("报表预览已卸载");vn.throwIfAborted(i.signal);const c=++r,d=t(),m={...d,thresholds:{...d?.thresholds},budget:{...d?.budget}},g={abort:new AbortController},x=Y.forwardOutputAbort(i.signal,g.abort);a.add(g);try{const f={...$t?i:Za(i,m),signal:g.abort.signal},v=$t??await Y.waitForOutput(Promise.resolve().then(()=>require("./auto-4pK9HePf.cjs")).then(p=>p.auto).then(p=>{const w=p.createAutoReportExporter;return $t=w,w}),g.abort.signal);return vn.throwIfAborted(g.abort.signal),g.exporter=v({...m,onDecision:p=>{c!==r||o||(n.value=p,Y.observeOutput(()=>d?.onDecision?.(p)))}}),await g.exporter.exportPrepared(f,u)}finally{x(),g.exporter?.dispose(),a.delete(g)}},cancel:l,dispose:s}}function Ya(t){return{plan:t,diagnostics:[],revisions:{},stats:{rows:0,pages:t.pages.length,cells:0,durationMs:0},layout:{textMetrics:"provided"}}}function bn(t,n,a,o){return{prepared:Ya(t),format:n,layoutPolicy:"preserve",fidelity:o,signal:a.signal,onEvent:r=>{r.stage==="encode"&&r.completed!==void 0&&r.total!==void 0&&a.onProgress?.(r.completed,r.total)}}}function Qa(t){const n=Xa(t.execution);function a(s,i){Y.assertOutputActive(i.signal);for(const u of s.diagnostics)Y.assertOutputActive(i.signal),Y.observeOutput(()=>t.diagnostic(u));Y.assertOutputActive(i.signal)}async function o(s,i,u,c={}){if(!i.prepare)return i(s,u,c);const d=t.fidelity(),m=await i.prepare(c.signal);Y.assertOutputActive(c.signal);const g=await n.exportPrepared({...bn(s,"pdf",c,d),pdf:m});a(g,c);const x=g.diagnostics.find(v=>v.code==="pdf-font"||v.code==="pdf-page");if(x)throw new Error(x.message);const f=g.diagnostics.filter(v=>v.severity==="warning");return f.length&&u(`PDF 有 ${f.length} 处版式降级:${f.slice(0,2).map(v=>v.message).join(";")}`),g.bytes}async function r(s,i,u){const{renderPlanToXlsx:c}=await import("@agile-team/mach-report/xlsx");Y.assertOutputActive(s.signal);const d=await c(s.prepared.plan,{...i,...s.xlsx,fidelity:s.fidelity,signal:s.signal,onProgress:(m,g)=>{Y.observeOutput(()=>i.onProgress?.(m,g)),u.onProgress?.(m,g)},onDiagnostic:m=>{Y.observeOutput(()=>i.onDiagnostic?.(m)),u.onDiagnostic?.(m)}});return Y.assertOutputActive(s.signal),{...s.prepared,bytes:new Uint8Array(d.buffer),format:"xlsx",contentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",diagnostics:[...d.diagnostics??[],...d.warnings.map(m=>({code:"xlsx-fidelity",severity:"warning",message:m})),...(d.notes??[]).map(m=>({code:"xlsx-snapshot",severity:"info",message:m}))]}}async function l(s,i,u){const{signal:c,fidelity:d,...m}=i,g=t.fidelity()==="strict"||d==="strict",x=Object.values(m).some(v=>typeof v=="function"),f=await n.exportPrepared({...bn(s,"xlsx",u,g?"strict":"warn"),xlsx:m},x?v=>r(v,m,u):void 0);return a(f,u),{buffer:f.bytes,warnings:f.diagnostics.filter(v=>v.severity==="warning").map(v=>v.message)}}return{pdf:o,xlsx:l}}function _a(t){const{plan:n,editing:a,diagnostics:o,task:r}=t,{lastError:l,notice:s,reportError:i}=t.feedback,u=e.ref(null),c=e.ref(!1),d=e.ref(),m=e.computed(()=>({...t.defaultsPrint(),...t.printOverrides(),calibration:d.value??{...t.defaultsPrint()?.calibration,...t.printOverrides()?.calibration}}));e.watch([()=>t.printOverrides(),()=>t.defaultsPrint()],()=>{d.value=void 0});let g;function x(C){const P=n.value;if(!P)return!1;const D={excel:"xlsx",image:"png",doc:"word"}[C]??C,G=D==="pdf"?"pdf":D==="xlsx"?"xlsx":D==="png"?"canvas":"dom",U=o.inspect(P,G);return n.value!==P?!1:U.length&&t.fidelity()==="strict"?(s.value={kind:"error",message:t.messages().diagnosticsStrict??"输出存在已知降级"},i(s.value.message,"export",{diagnostics:U}),!1):!0}function f(C){return n.value?o.inspect(n.value,C):[]}const v=Mn(n,{encoding:Qa({execution:t.execution,fidelity:t.fidelity,diagnostic:o.add}),getPdfExporter:t.getPdfExporter,beforeOutput:()=>a.settle(),onTask:C=>r.receive(C,()=>v.cancel()),onDiagnostic:o.add,onNote:C=>o.add({code:"xlsx-snapshot",message:C,severity:"info"}),getXlsxOptions:()=>t.getXlsxOptions(),getPrintOptions:()=>m.value,getPrintMessages:()=>t.messages(),onError:(C,P)=>{s.value={kind:"error",message:C},i(C,P??"print")},onWarning:C=>{s.value={kind:"warning",message:C},o.add({code:"output",severity:"warning",message:C}),t.feedback.warning(C)},onBusy:C=>{u.value=C,C?s.value={kind:"progress",message:t.messages().exporting.replace("{format}",C)}:s.value?.kind==="progress"&&(s.value=null)},onPrinting:C=>{c.value=C}}),{releasePrintFrame:p,dispose:w}=v,y=e.computed(()=>{const C=n.value?.pages[0];return!!C&&!t.wide()&&[C.pageWidthMm,C.pageHeightMm].every(P=>P>=25&&P<=600)});async function h(){if(!y.value||c.value||t.busy())return;const C=n.value.pages[0];c.value=!0;const P=new AbortController;g=P;try{await In([$n(C.pageWidthMm,C.pageHeightMm)],{printOptions:m.value,signal:P.signal,messages:t.messages(),onError:D=>{s.value={kind:"error",message:D}}})}catch{}finally{g===P&&(c.value=!1,g=void 0)}}async function k(){if(t.busy())return;const C=a.settle();(typeof C=="boolean"?C:await C)&&(l.value=null,x("html")&&await v.print())}async function S(C){if(t.busy())return;const P=a.settle();(typeof P=="boolean"?P:await P)&&(l.value=null,x(C)&&await v.exportAs(C))}function b(){if(t.busy()||a.active.value||a.saving.value){s.value={kind:"warning",message:t.messages().editingHint??"请先确认单元格修改"};return}l.value=null,x("pdf")&&v.openPdfWindow()}function B(){g?.abort(),p()}return e.onScopeDispose(()=>{g?.abort(),w()}),{exporting:u,printing:c,localPrintCalibration:d,effectivePrintOptions:m,canCalibratePrint:y,testPrintCalibration:h,print:k,exportAs:S,openPdfWindow:b,getOutputDiagnostics:f,invalidate:B,invalidatePending:v.invalidatePending,cancel:v.cancel}}const Lt="mrp-hit";function eo(t,n,a){const o=n&&t?.querySelector(`[data-mr-component-index="${n.componentIndex}"]`);return(n?.rowIndex!==void 0&&n.columnIndex!==void 0?o?.querySelector(`td[data-mr-row-index="${n.rowIndex}"][data-mr-column-index="${n.columnIndex}"]`):o??t)?.querySelectorAll(`mark.${Lt}`)[n?.occurrence??a]}function to(t){t.querySelectorAll(`mark.${Lt}`).forEach(a=>{const o=a.parentNode;if(o){for(;a.firstChild;)o.insertBefore(a.firstChild,a);a.remove(),o.normalize()}})}function no(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??"",c=u.toLowerCase(),d=i.parentElement;if(!d)continue;const m=document.createDocumentFragment();let g=0,x=c.indexOf(o);for(;x>=0;){x>g&&m.appendChild(document.createTextNode(u.slice(g,x)));const f=document.createElement("mark");f.className=Lt,f.textContent=u.slice(x,x+a.length),m.appendChild(f),s++,g=x+a.length,x=c.indexOf(o,g)}g<u.length&&m.appendChild(document.createTextNode(u.slice(g))),d.replaceChild(m,i)}return s}const ao=new Set(["line","rect","ellipse","chart"]);function*oo(t){const n=t.colWidthsMm?.length??t.cells.reduce((o,r)=>Math.max(o,r?.length??0),1),a=new Map;for(const[o,r]of t.cells.entries()){let l=0;for(const s of r??[]){for(;l<n&&(a.get(l)??0)>o;)l++;if(l>=n)break;const i=Math.max(1,Math.min(s?.colSpan??1,n-l));if((s?.rowSpan??1)>1)for(let u=l;u<l+i;u++)a.set(u,Math.max(a.get(u)??0,o+s.rowSpan));yield{cell:s,rowIndex:o,columnIndex:l},l+=i}}}function*Tn(t){for(const n of t)for(const a of n.segments??[])yield(a.kind==="field"?a.field:a.text)??""}function*ro(t,n){for(const{cell:a,rowIndex:o,columnIndex:r}of oo(t)){const l=n.rowIndex===void 0?{...n,rowIndex:o,columnIndex:r}:n,s=a?.richParagraphs?.length?Tn(a.richParagraphs):[a?.text??""];for(const i of s)yield{value:i,target:l};for(const i of a?.children??[])yield{value:i,target:l}}}function*lo(t){Y.isRichText(t)?yield*Tn(t.richParagraphs):t.lines?.length?yield*t.lines:yield t.text??""}function*so(t){for(const[n,a]of t.entries())yield{value:a,target:{componentIndex:n}}}function*io(t,n){for(const a of lo(t))yield{value:a,target:n}}function*co(t){const n=[so(t)];for(;n.length>0;){const a=n[n.length-1].next();if(a.done){n.pop();continue}const{value:o,target:r}=a.value;if(typeof o=="string"){yield{text:o,target:r};continue}yield{text:"",target:r},!Y.isImageBackedComponent(o)&&(o.kind==="text"?n.push(io(o,r)):o.grid?n.push(ro(o.grid,r)):ao.has(o.kind)||(yield{text:o.fallbackText??"",target:r}))}}function*On(t,n=0,a=t.pages.length){for(let o=n;o<a;o++){for(const r of co(t.pages[o].components))yield{...r,pageIndex:o};yield{text:"",pageIndex:o}}}function An(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 uo(t,n,a,o){let r="",l=0;for(const s of On(t,n,n+1)){if(!s.target)continue;const i=`${s.target.componentIndex}:${s.target.rowIndex}:${s.target.columnIndex}`;i!==r&&(r=i,l=0);const u=An(s.text,o);if(a<u)return{...s.target,occurrence:l+a};a-=u,l+=u}}function mo(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),c=e.ref(!1);let d=[];const m=e.computed(()=>{if(u.value===0)return null;const k=i.value;let S=0,b=d.length-1;for(;S<b;){const P=S+b>>>1;d[P].cumulative<=k?S=P+1:b=P}const B=d[S];if(!B)return null;const C=k-(d[S-1]?.cumulative??0);return{pageIndex:B.pageIndex,occurrence:C,target:n.value?uo(n.value,B.pageIndex,C,s.value.trim().toLowerCase()):void 0}});let g=null,x=null,f=0;function v(){f++,g&&clearTimeout(g),x&&clearTimeout(x),g=x=null,c.value=!1}function p(k){s.value=k,i.value=0,u.value=0,d=[],c.value=!1;const S=k.trim().toLowerCase(),b=n.value;if(!S||!b)return;c.value=!0;const B=f,C=On(b),P=[];let D=0;function G(){if(x=null,B!==f||b!==n.value)return;const U=performance.now();let _=0;for(;_<5e3&&performance.now()-U<4;){const ne=C.next();if(ne.done){d=P,u.value=D,c.value=!1,d[0]&&a(d[0].pageIndex+1);return}const ae=An(ne.value.text,S);if(ae>0){D+=ae;const le=P[P.length-1];le?.pageIndex===ne.value.pageIndex?le.cumulative=D:P.push({pageIndex:ne.value.pageIndex,cumulative:D})}_++}x=setTimeout(G,0)}G()}function w(k){if(v(),s.value=k,i.value=u.value=0,d=[],!k.trim()){p("");return}c.value=!0,g=setTimeout(()=>{g=null,p(k)},Math.max(0,e.unref(t.debounceMs)??200))}function y(k){const S=u.value;if(S===0||c.value)return;i.value=(i.value+k+S)%S;const b=m.value;b&&a(b.pageIndex+1)}function h(){v(),s.value="",i.value=u.value=0,d=[]}return e.watch(n,h,{flush:"sync"}),e.onScopeDispose(h),{visible:l,query:s,matchIndex:i,matchCount:u,activeMatch:m,searching:c,toggle:()=>{l.value=!l.value},onInput:w,onNav:y,apply:k=>{s.value.trim()&&o(k,s.value.trim())},clear:k=>{r(k)},reset:h}}function fo(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 po(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(y=>Math.round(y.pageHeightMm/y.pageWidthMm*116))),u=e.computed(()=>ue.createPageWindowIndex(i.value.map(y=>y+20),8)),c=e.computed(()=>u.value.window(s.value,l.value,1)),d=e.computed(()=>{if(!o.value)return[];const{start:y,end:h}=c.value;return i.value.slice(y,h+1).map((k,S)=>({index:y+S,height:k}))});let m=0,g=0,x=!1;function f(){const y=a.value;y&&(l.value=y.scrollTop,s.value=y.clientHeight||800)}function v(){x||g||(g=requestAnimationFrame(()=>{g=0,f()}))}function p(){if(d.value,m&&cancelAnimationFrame(m),m=0,x||!o.value||!t.value||!a.value)return;f();const y=d.value,h=t.value,k=a.value;let S=0;function b(){if(m=0,!(x||!o.value||t.value!==h||a.value!==k)){for(let B=0;S<y.length&&B<2;B++,S++){const C=y[S].index,P=k.querySelector(`[data-thumb="${C+1}"]`);if(!P||P.childElementCount>0)continue;const D=r(C);D&&(D.style.width="100%",D.style.height="100%",D.style.display="block",P.appendChild(D))}S<y.length&&(m=requestAnimationFrame(b))}}m=requestAnimationFrame(b)}function w(){x=!0,m&&cancelAnimationFrame(m),g&&cancelAnimationFrame(g),m=g=0}return e.onScopeDispose(w),{schedule:p,destroy:w,onScroll:v,windowRange:c,visibleThumbs:d}}function go(){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 vo(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}}const yo=["disabled","aria-expanded"],bo=["aria-label"],ho=["aria-label","disabled","onClick"],wo={"aria-hidden":"true"},ko={key:0,class:"mrp-export-extra",role:"group"},xo=["aria-label","aria-description","disabled","onClick"],Eo={key:0,class:"mrp-export-description"},Co=e.defineComponent({__name:"ReportExportMenu",props:{messages:{},formats:{},busy:{type:Boolean},actions:{}},emits:["export","action"],setup(t,{emit:n}){const a=t,o=n,{opened:r,root:l,trigger:s,panel:i,close:u,onKeydown:c}=ce.usePopover(),d=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(v=>!a.formats||a.formats.includes(v.format)));e.watch(()=>a.busy,v=>{v&&u()});function m(v){a.busy||(o("export",v),u(!0))}function g(v){a.busy||a.actions?.find(p=>p.id===v)?.disabled||(o("action",v),u(!0))}function x(v){v.key!=="ArrowDown"&&v.key!=="ArrowUp"||(v.preventDefault(),r.value=!0,v.key==="ArrowUp"&&e.nextTick(()=>i.value?.querySelector("button:last-child")?.focus()))}function f(v){if(v.key==="Tab"){u();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(v.key))return;v.preventDefault(),v.stopPropagation();const w=[...i.value?.querySelectorAll("button:not(:disabled)")??[]],y=w.indexOf(document.activeElement),h=v.key==="Home"?0:v.key==="End"?w.length-1:(y+(v.key==="ArrowDown"?1:-1)+w.length)%w.length;w[h]?.focus()}return(v,p)=>d.value.length||t.actions?.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"root",ref:l,class:"mrp-export-menu",onKeydown:p[1]||(p[1]=(...w)=>e.unref(c)&&e.unref(c)(...w))},[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:p[0]||(p[0]=w=>r.value=!e.unref(r)),onKeydown:x},[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,yo),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:f},[e.createElementVNode("p",null,e.toDisplayString(t.messages.exportMenuDescription??"选择文件格式"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,w=>(e.openBlock(),e.createElementBlock("button",{key:w.format,type:"button",role:"menuitem",tabindex:"-1","aria-label":w.label,disabled:t.busy,onClick:y=>m(w.format)},[e.createVNode(W._sfc_main,{name:"file"}),e.createElementVNode("span",null,e.toDisplayString(w.label),1),e.createElementVNode("small",wo,e.toDisplayString(w.extension),1)],8,ho))),128)),t.actions?.length?(e.openBlock(),e.createElementBlock("div",ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actions,w=>(e.openBlock(),e.createElementBlock("button",{key:w.id,type:"button",role:"menuitem",tabindex:"-1","aria-label":w.label,"aria-description":w.description,disabled:t.busy||w.disabled,onClick:y=>g(w.id)},[e.createVNode(W._sfc_main,{name:"file"}),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(w.label),1),w.description?(e.openBlock(),e.createElementBlock("small",Eo,e.toDisplayString(w.description),1)):e.createCommentVNode("",!0)])],8,xo))),128))])):e.createCommentVNode("",!0)],40,bo)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)}}),Fn=W._export_sfc(Co,[["__scopeId","data-v-53606f18"]]),So=["aria-label"],No={class:"mrp-pageinfo","aria-live":"polite"},Bo={class:"mrp-page-buttons"},Vo=["aria-label","title","disabled"],$o=["aria-label","title","disabled"],Do=["aria-label","title","aria-invalid","disabled"],Ro=["aria-label","disabled"],Io={key:1,class:"mrp-page-error",role:"alert"},Po=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(),c=Number(u);l.value=!/^\d+$/.test(u)||!Number.isSafeInteger(c)||c<1||c>a.pageCount,!l.value&&c!==a.currentPage&&o("goto",c)}return(u,c)=>t.pageCount>0?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mrp-pagination",role:"navigation","aria-label":t.messages.pagination??"报表分页"},[e.createElementVNode("span",No,e.toDisplayString(s.value),1),e.createElementVNode("div",Bo,[e.createElementVNode("button",{class:"mrp-nav",type:"button","aria-label":t.messages.prevPage,title:t.messages.prevPage,disabled:t.busy||t.currentPage<=1,onClick:c[0]||(c[0]=d=>o("goto",t.currentPage-1))},[e.createVNode(W._sfc_main,{name:"chevron-left"})],8,Vo),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:c[1]||(c[1]=d=>o("goto",t.currentPage+1))},[e.createVNode(W._sfc_main,{name:"chevron-right"})],8,$o)]),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":c[2]||(c[2]=d=>r.value=d),type:"text",inputmode:"numeric",autocomplete:"off","aria-label":t.messages.pageJump??"跳至页",title:t.messages.pageJumpHint??"Enter 跳转","aria-invalid":l.value,disabled:t.busy,onInput:c[3]||(c[3]=d=>l.value=!1),onKeydown:c[4]||(c[4]=e.withKeys(d=>{r.value=String(t.currentPage),l.value=!1},["esc"]))},null,40,Do),[[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,Ro)],32)):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("span",Io,e.toDisplayString(t.messages.pageJumpInvalid??"请输入有效页码"),1)):e.createCommentVNode("",!0)],8,So)):e.createCommentVNode("",!0)}}),Kt=W._export_sfc(Po,[["__scopeId","data-v-0db4fbd3"]]),Mo=["aria-label"],To={class:"mrp-title"},Oo=["aria-label"],Ao=["aria-label","aria-pressed"],Fo=["aria-pressed"],zo=["aria-pressed"],Lo=["aria-label"],Ko=["aria-pressed"],qo=["aria-pressed","onClick"],jo=["aria-label"],Ho=["disabled"],Wo=["disabled"],Uo=["disabled"],Go=["aria-label","aria-expanded"],Jo=["aria-label"],Zo=["placeholder","aria-label","value"],Xo=["aria-label"],Yo={key:1,class:"mrp-search-count",role:"status","aria-live":"polite"},Qo=["disabled","aria-label"],_o=["disabled","aria-label"],er=["aria-label"],tr={class:"mrp-search-hint",role:"status"},nr=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=vo({visible:()=>o.search.visible,navigate:d=>{!o.search.searching&&o.search.matchCount>0&&r("search-nav",d)},close:()=>{o.search.visible&&r("search-toggle")}}),{input:s,toggle:i}=l;n({focusSearch:l.focus});function u(){const d=o.search.matchCount>0?o.search.matchIndex+1:0;return o.messages.matchInfo.replace("{cur}",String(d)).replace("{total}",String(o.search.matchCount))}function c(){r("search-input",""),l.focus()}return(d,m)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-toolbar",role:"toolbar","aria-label":t.messages.title},[e.createElementVNode("span",To,[e.createVNode(W._sfc_main,{name:"file"}),e.createTextVNode(e.toDisplayString(t.messages.title),1)]),t.showPagination?(e.openBlock(),e.createBlock(Kt,{key:0,"page-count":t.pageCount,"current-page":t.currentPage,messages:t.messages,busy:t.busy,onGoto:m[0]||(m[0]=g=>r("goto",g))},null,8,["page-count","current-page","messages","busy"])):e.createCommentVNode("",!0),m[15]||(m[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:m[1]||(m[1]=g=>r("search-toggle"))},[e.createVNode(W._sfc_main,{name:"search"})],10,Ao),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:m[2]||(m[2]=g=>r("thumbs-toggle"))},[e.createVNode(W._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,Fo)):e.createCommentVNode("",!0)],8,Oo)):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:m[3]||(m[3]=g=>r("thumbs-toggle"))},[e.createVNode(W._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,zo)):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"navigation",{},void 0,!0),e.renderSlot(d.$slots,"data-tools",{},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:m[4]||(m[4]=g=>r("zoom","fit"))},[e.createVNode(W._sfc_main,{name:"fit"}),e.createTextVNode(e.toDisplayString(t.messages.fitWidth),1)],10,Ko),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList([100,150],g=>e.createElementVNode("button",{key:g,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="raw"&&Math.round(t.zoom*100)===g}]),"aria-pressed":t.zoomMode==="raw"&&Math.round(t.zoom*100)===g,type:"button",onClick:x=>r("zoom",g)},e.toDisplayString(g)+"%",11,qo)),64))],8,Lo)):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:m[5]||(m[5]=g=>r("import-excel"))},[e.createVNode(W._sfc_main,{name:"upload"}),e.createTextVNode(e.toDisplayString(t.messages.importExcel??"导入 Excel 模板"),1)],8,Ho)):e.createCommentVNode("",!0),t.showExport?e.renderSlot(d.$slots,"export",{messages:t.messages,formats:t.exportFormats,busy:t.busy},()=>[e.createVNode(Fn,{messages:t.messages,formats:t.exportFormats,busy:t.busy,onExport:m[6]||(m[6]=g=>r("export",g))},null,8,["messages","formats","busy"])],!0,1):e.createCommentVNode("",!0),t.showPrint?(e.openBlock(),e.createElementBlock("button",{key:2,class:"mrp-nav",type:"button",disabled:t.busy,onClick:m[7]||(m[7]=g=>r("print"))},[e.createVNode(W._sfc_main,{name:"print"}),e.createTextVNode(e.toDisplayString(t.messages.print),1)],8,Wo)):e.createCommentVNode("",!0),t.showPdfWindow?(e.openBlock(),e.createElementBlock("button",{key:3,class:"mrp-nav",type:"button",disabled:t.busy,onClick:m[8]||(m[8]=g=>r("pdf-window"))},[e.createVNode(W._sfc_main,{name:"external"}),e.createTextVNode(e.toDisplayString(t.messages.pdfWindow),1)],8,Uo)):e.createCommentVNode("",!0)],8,jo)):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:m[9]||(m[9]=g=>r("settings-toggle"))},[e.createVNode(W._sfc_main,{name:"settings"}),e.createTextVNode(e.toDisplayString(t.messages.settings??"设置"),1)],10,Go)):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:m[10]||(m[10]=g=>r("search-input",g.target.value)),onKeydown:m[11]||(m[11]=(...g)=>e.unref(l).onKeydown&&e.unref(l).onKeydown(...g))},null,40,Zo),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:c},[e.createVNode(W._sfc_main,{name:"close",size:13})],8,Xo)):e.createCommentVNode("",!0),t.search.query?(e.openBlock(),e.createElementBlock("span",Yo,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:m[12]||(m[12]=g=>r("search-nav",-1))},[e.createVNode(W._sfc_main,{name:"chevron-up",size:14})],8,Qo),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:m[13]||(m[13]=g=>r("search-nav",1))},[e.createVNode(W._sfc_main,{name:"chevron-down",size:14})],8,_o),e.createElementVNode("button",{class:"mrp-nav mrp-search-close mrp-icon-button",type:"button","aria-label":t.messages.closeSearch??"关闭搜索",onClick:m[14]||(m[14]=(...g)=>e.unref(l).close&&e.unref(l).close(...g))},[e.createVNode(W._sfc_main,{name:"close",size:14})],8,er)],2),e.createElementVNode("span",tr,e.toDisplayString(t.search.query&&!t.search.searching&&!t.search.matchCount?t.messages.searchNoMatches??"没有匹配内容":t.messages.searchHint??"Enter 下一个 · Shift+Enter 上一个"),1)],8,Jo)):e.createCommentVNode("",!0)],8,Mo))}}),zn=W._export_sfc(nr,[["__scopeId","data-v-130e11c7"]]),ar=["disabled","aria-label","aria-expanded"],or={key:0},rr=["aria-label"],lr=["data-review-tool","onClick"],sr=e.defineComponent({__name:"ReportDataTools",props:{prefill:{type:Boolean},comparison:{type:Boolean},issueCount:{},busy:{type:Boolean},messages:{}},emits:["open"],setup(t,{emit:n}){const a=t,o=n,{opened:r,root:l,trigger:s,panel:i,close:u,onKeydown:c}=ce.usePopover(),d=e.computed(()=>[{key:"prefill",label:a.messages.prefillTitle,visible:a.prefill},{key:"comparison",label:a.messages.comparisonTitle,visible:a.comparison},{key:"validation",label:`${a.messages.validationTitle} · ${a.issueCount}`,visible:a.issueCount>0}].filter(f=>f.visible));e.watch(()=>a.busy,f=>{f&&u()});function m(f){a.busy||(s.value?.focus(),u(),o("open",f))}function g(f){f.key!=="ArrowDown"&&f.key!=="ArrowUp"||(f.preventDefault(),r.value=!0,f.key==="ArrowUp"&&e.nextTick(()=>i.value?.querySelector("button:last-child")?.focus()))}function x(f){if(f.key==="Tab"){u();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(f.key))return;f.preventDefault(),f.stopPropagation();const v=[...i.value?.querySelectorAll("button:not(:disabled)")??[]],p=v.indexOf(document.activeElement),w=f.key==="Home"?0:f.key==="End"?v.length-1:(p+(f.key==="ArrowDown"?1:-1)+v.length)%v.length;v[w]?.focus()}return(f,v)=>d.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"root",ref:l,class:"mrp-data-tools",onKeydown:v[1]||(v[1]=(...p)=>e.unref(c)&&e.unref(c)(...p))},[e.createElementVNode("button",{ref_key:"trigger",ref:s,class:"mrp-data-tools-trigger",type:"button",disabled:t.busy,"aria-label":t.messages.reviewTools,"aria-haspopup":"menu","aria-expanded":e.unref(r),onClick:v[0]||(v[0]=p=>r.value=!e.unref(r)),onKeydown:g},[e.createVNode(W._sfc_main,{name:"columns"}),e.createTextVNode(e.toDisplayString(t.messages.reviewTools),1),t.issueCount?(e.openBlock(),e.createElementBlock("b",or,e.toDisplayString(t.issueCount),1)):e.createCommentVNode("",!0),e.createVNode(W._sfc_main,{name:"chevron-down",size:12})],40,ar),e.unref(r)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panel",ref:i,class:"mrp-data-tools-panel",role:"menu","aria-label":t.messages.reviewTools,onKeydown:x},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,p=>(e.openBlock(),e.createElementBlock("button",{key:p.key,type:"button",role:"menuitem",tabindex:"-1","data-review-tool":p.key,onClick:w=>m(p.key)},[e.createTextVNode(e.toDisplayString(p.label),1),e.createVNode(W._sfc_main,{name:"arrow-right",size:14})],8,lr))),128))],40,rr)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)}}),ir=W._export_sfc(sr,[["__scopeId","data-v-4786c94b"]]),cr=["aria-label"],ur=["aria-label"],dr={class:"mrp-review-dialog-body"},mr=e.defineComponent({__name:"ReportDataReviewDialog",props:{title:{},closeLabel:{}},emits:["close"],setup(t,{emit:n}){const a=n,o=e.ref(null),r=e.ref(null);let l=null;function s(i){if(i.defaultPrevented||i.isComposing)return;if(i.key==="Escape"){i.preventDefault(),i.stopPropagation(),a("close");return}if(i.key!=="Tab")return;const u=[...o.value?.querySelectorAll("button:not(:disabled),input:not(:disabled),select:not(:disabled),[tabindex='0']")??[]],c=u[0],d=u[u.length-1];(!o.value?.contains(document.activeElement)||i.shiftKey&&document.activeElement===c||!i.shiftKey&&document.activeElement===d)&&(i.preventDefault(),(i.shiftKey?d:c)?.focus())}return e.onMounted(()=>{l=document.activeElement instanceof HTMLElement?document.activeElement:null,r.value?.focus(),document.addEventListener("keydown",s)}),e.onUnmounted(()=>{document.removeEventListener("keydown",s),l?.isConnected&&l.focus()}),(i,u)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-review-backdrop",onClick:u[1]||(u[1]=e.withModifiers(c=>a("close"),["self"]))},[e.createElementVNode("section",{ref_key:"panel",ref:o,class:"mrp-review-dialog",role:"dialog","aria-modal":"true","aria-label":t.title},[e.createElementVNode("header",null,[e.createElementVNode("div",null,[u[2]||(u[2]=e.createElementVNode("span",null,"MACH REPORT",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.title),1)]),e.createElementVNode("button",{ref_key:"closeButton",ref:r,type:"button","aria-label":t.closeLabel,onClick:u[0]||(u[0]=c=>a("close"))},[e.createVNode(W._sfc_main,{name:"close"})],8,ur)]),e.createElementVNode("div",dr,[e.renderSlot(i.$slots,"default",{},void 0,!0)])],8,cr)]))}}),fr=W._export_sfc(mr,[["__scopeId","data-v-e1a7542d"]]),pr={key:0,class:"mrp-review-results"},gr={class:"mrp-review-scroll"},vr={key:0},yr={key:1},br={class:"mrp-review-sr"},hr={scope:"row"},wr={class:"mrp-review-value"},kr={class:"mrp-review-value"},xr={key:0,class:"mrp-review-value"},Er={key:1,class:"mrp-review-value"},Cr={class:"mrp-review-status"},Sr=["aria-label","onClick"],Nr=["data-tone"],Br=["aria-label"],Vr=["disabled","aria-label"],$r=["disabled","aria-label"],Dr={key:1,class:"mrp-review-empty",role:"status"},Ln=e.defineComponent({__name:"ReportDataReviewTable",props:{count:{},row:{type:Function},messages:{},delta:{type:Boolean}},emits:["locate"],setup(t,{emit:n}){const a=t,o=n,r=e.ref(0),l=50,s=e.computed(()=>Math.max(1,Math.ceil(a.count/l))),i=e.computed(()=>Array.from({length:Math.min(l,Math.max(0,a.count-r.value*l))},(c,d)=>{const m=r.value*l+d;return{index:m,...a.row(m)}}));function u(c){return c==null||c===""?"—":String(c)}return e.watch(()=>a.count,()=>{r.value=Math.min(r.value,s.value-1)}),(c,d)=>t.count?(e.openBlock(),e.createElementBlock("div",pr,[e.createElementVNode("div",gr,[e.createElementVNode("table",null,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,e.toDisplayString(t.messages.reviewKey),1),e.createElementVNode("th",null,e.toDisplayString(t.messages.reviewField),1),e.createElementVNode("th",null,e.toDisplayString(t.messages.reviewBefore),1),e.createElementVNode("th",null,e.toDisplayString(t.messages.reviewAfter),1),t.delta?(e.openBlock(),e.createElementBlock("th",vr,e.toDisplayString(t.messages.reviewDelta),1)):e.createCommentVNode("",!0),t.delta?(e.openBlock(),e.createElementBlock("th",yr,e.toDisplayString(t.messages.reviewRatio),1)):e.createCommentVNode("",!0),e.createElementVNode("th",null,[e.createElementVNode("span",br,e.toDisplayString(t.messages.reviewLocate),1)])])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,m=>(e.openBlock(),e.createElementBlock("tr",{key:m.index},[e.createElementVNode("th",hr,e.toDisplayString(m.rowKey),1),e.createElementVNode("td",null,e.toDisplayString(m.label),1),e.createElementVNode("td",wr,e.toDisplayString(u(m.before)),1),e.createElementVNode("td",kr,e.toDisplayString(u(m.after)),1),t.delta?(e.openBlock(),e.createElementBlock("td",xr,e.toDisplayString(m.delta??"—"),1)):e.createCommentVNode("",!0),t.delta?(e.openBlock(),e.createElementBlock("td",Er,e.toDisplayString(m.ratio??"—"),1)):e.createCommentVNode("",!0),e.createElementVNode("td",Cr,[m.locatable?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","aria-label":`${t.messages.reviewLocate}: ${m.rowKey} · ${m.label}`,onClick:g=>o("locate",m.index)},e.toDisplayString(t.messages.reviewLocate),9,Sr)):(e.openBlock(),e.createElementBlock("span",{key:1,"data-tone":m.tone},e.toDisplayString(m.status),9,Nr))])]))),128))])])]),s.value>1?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mrp-review-pagination","aria-label":t.messages.reviewPage},[e.createElementVNode("button",{type:"button",disabled:r.value===0,"aria-label":t.messages.reviewPrevious,onClick:d[0]||(d[0]=m=>r.value--)},"‹",8,Vr),e.createElementVNode("span",null,e.toDisplayString(r.value+1)+" / "+e.toDisplayString(s.value),1),e.createElementVNode("button",{type:"button",disabled:r.value+1>=s.value,"aria-label":t.messages.reviewNext,onClick:d[1]||(d[1]=m=>r.value++)},"›",8,$r)],8,Br)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",Dr,e.toDisplayString(t.messages.reviewEmpty),1))}}),Rr=["aria-label","aria-busy"],Ir={class:"mrp-review-heading"},Pr=["disabled"],Mr={key:0,class:"mrp-review-error",role:"alert"},Tr={class:"mrp-review-summary",role:"status"},Or={"data-tone":"changed"},Ar=["data-tone"],Fr={key:0,class:"mrp-review-blocked",role:"status"},zr={class:"mrp-review-footer"},Lr=["disabled"],Kr={key:0},Kn=e.defineComponent({__name:"ReportPrefillPanel",props:{state:{},messages:{}},setup(t){const n=t,a=e.computed(()=>({...n.messages,reviewBefore:n.messages.prefillCurrent,reviewAfter:n.messages.prefillReference}));function o(l){const s=n.messages;return l.reason?{unchanged:s.prefillUnchanged,readonly:s.prefillReadonly,occupied:s.prefillOccupied,"missing-source":s.prefillMissingSource,"missing-target":s.prefillMissingTarget,ambiguous:s.prefillAmbiguous,invalid:s.prefillInvalid}[l.reason]:s.prefillChanged}function r(l){const s=n.state.result.value.items[l];return{rowKey:s.source.rowKey,label:s.label,before:s.before,after:s.after,status:o(s),tone:s.status}}return(l,s)=>(e.openBlock(),e.createElementBlock("section",{class:"mrp-data-review","aria-label":t.messages.prefillTitle,"aria-busy":t.state.busy.value||t.state.applying.value},[e.createElementVNode("header",Ir,[s[3]||(s[3]=e.createElementVNode("span",{class:"mrp-review-symbol","aria-hidden":"true"},"↳",-1)),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(t.messages.prefillTitle),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.prefillHint),1)]),t.state.busy.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:s[0]||(s[0]=i=>t.state.cancel())},e.toDisplayString(t.messages.reviewCancel),1)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:t.state.applying.value,onClick:s[1]||(s[1]=i=>t.state.run())},e.toDisplayString(t.messages.prefillLoad),9,Pr))]),t.state.error.value?(e.openBlock(),e.createElementBlock("p",Mr,e.toDisplayString(t.state.error.value),1)):e.createCommentVNode("",!0),t.state.result.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Tr,[e.createElementVNode("span",Or,[e.createTextVNode(e.toDisplayString(t.messages.prefillChanged)+" ",1),e.createElementVNode("b",null,e.toDisplayString(t.state.result.value.counts.changed),1)]),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(t.messages.prefillMatched)+" ",1),e.createElementVNode("b",null,e.toDisplayString(t.state.result.value.counts.matched),1)]),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(t.messages.prefillSkipped)+" ",1),e.createElementVNode("b",null,e.toDisplayString(t.state.result.value.counts.skipped),1)]),e.createElementVNode("span",{"data-tone":t.state.result.value.counts.conflict?"conflict":void 0},[e.createTextVNode(e.toDisplayString(t.messages.prefillConflict)+" ",1),e.createElementVNode("b",null,e.toDisplayString(t.state.result.value.counts.conflict),1)],8,Ar)]),e.createVNode(Ln,{count:t.state.result.value.items.length,row:r,messages:a.value},null,8,["count","messages"]),t.state.blockedReason.value?(e.openBlock(),e.createElementBlock("p",Fr,e.toDisplayString(t.state.blockedReason.value),1)):e.createCommentVNode("",!0),e.createElementVNode("footer",zr,[e.createElementVNode("button",{class:"mrp-review-primary",type:"button",disabled:!t.state.canApply.value,onClick:s[2]||(s[2]=i=>t.state.apply())},[e.createTextVNode(e.toDisplayString(t.messages.prefillApply)+" ",1),t.state.result.value.counts.changed?(e.openBlock(),e.createElementBlock("span",Kr,"· "+e.toDisplayString(t.state.result.value.counts.changed),1)):e.createCommentVNode("",!0)],8,Lr)])],64)):e.createCommentVNode("",!0)],8,Rr))}}),qr=["aria-label","aria-busy"],jr={class:"mrp-review-heading"},Hr={key:0,class:"mrp-review-error",role:"alert"},Wr={class:"mrp-review-summary",role:"status"},Ur={"data-tone":"added"},Gr={"data-tone":"removed"},Jr={"data-tone":"changed"},qn=e.defineComponent({__name:"ReportDataComparison",props:{state:{},messages:{}},setup(t){const n=t;function a(r){const l=n.state.result.value.differences[r],s=n.messages;return{rowKey:l.rowKey,label:l.label,before:l.before,after:l.after,delta:l.delta,ratio:l.changeRatio===void 0?void 0:za.formatDecimal(l.changeRatio,void 0,!1,!0),status:{added:s.comparisonAdded,removed:s.comparisonRemoved,changed:s.comparisonChanged}[l.kind],tone:l.kind,locatable:l.kind!=="removed"}}function o(r){const l=n.state.result.value?.differences[r];l&&n.state.locate(l)}return(r,l)=>(e.openBlock(),e.createElementBlock("section",{class:"mrp-data-review","aria-label":t.messages.comparisonTitle,"aria-busy":t.state.busy.value},[e.createElementVNode("header",jr,[l[2]||(l[2]=e.createElementVNode("span",{class:"mrp-review-symbol","aria-hidden":"true"},"⇄",-1)),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(t.messages.comparisonTitle),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.comparisonHint),1)]),t.state.busy.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:l[0]||(l[0]=s=>t.state.cancel())},e.toDisplayString(t.messages.reviewCancel),1)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:l[1]||(l[1]=s=>t.state.run())},e.toDisplayString(t.messages.comparisonLoad),1))]),t.state.error.value?(e.openBlock(),e.createElementBlock("p",Hr,e.toDisplayString(t.state.error.value),1)):e.createCommentVNode("",!0),t.state.result.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Wr,[e.createElementVNode("span",Ur,[e.createTextVNode(e.toDisplayString(t.messages.comparisonAdded)+" ",1),e.createElementVNode("b",null,e.toDisplayString(t.state.result.value.counts.added),1)]),e.createElementVNode("span",Gr,[e.createTextVNode(e.toDisplayString(t.messages.comparisonRemoved)+" ",1),e.createElementVNode("b",null,e.toDisplayString(t.state.result.value.counts.removed),1)]),e.createElementVNode("span",Jr,[e.createTextVNode(e.toDisplayString(t.messages.comparisonChanged)+" ",1),e.createElementVNode("b",null,e.toDisplayString(t.state.result.value.counts.changed),1)]),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(t.messages.comparisonUnchanged)+" ",1),e.createElementVNode("b",null,e.toDisplayString(t.state.result.value.counts.unchanged),1)])]),e.createVNode(Ln,{count:t.state.result.value.differences.length,row:a,messages:t.messages,delta:"",onLocate:o},null,8,["count","messages"])],64)):e.createCommentVNode("",!0)],8,qr))}}),Zr=["aria-label"],Xr={open:""},Yr={class:"mr-validation__badge"},Qr=["onClick"],_r={key:0},el=e.defineComponent({__name:"ReportValidationPanel",props:{issues:{},messages:{}},emits:["locate"],setup(t,{emit:n}){const a=t,o=n,r=e.computed(()=>({title:"数据校验",error:"错误",warning:"提示",locate:"定位",dataset:"全表",row:"行",more:"请缩小范围查看更多问题",...a.messages})),l=e.computed(()=>a.issues.filter(i=>i.severity==="error").length),s=e.computed(()=>a.issues.slice(0,100));return(i,u)=>t.issues.length?(e.openBlock(),e.createElementBlock("section",{key:0,class:"mr-validation","aria-label":r.value.title,"aria-live":"polite"},[e.createElementVNode("details",Xr,[e.createElementVNode("summary",null,[e.createElementVNode("strong",null,e.toDisplayString(r.value.title),1),e.createElementVNode("span",{class:e.normalizeClass(["mr-validation__count",{"is-error":l.value}])},e.toDisplayString(l.value)+" "+e.toDisplayString(r.value.error)+" · "+e.toDisplayString(t.issues.length-l.value)+" "+e.toDisplayString(r.value.warning),3)]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(c,d)=>(e.openBlock(),e.createElementBlock("li",{key:`${c.ruleId}:${c.dataset}:${c.rowKey}:${d}`,class:e.normalizeClass({"is-error":c.severity==="error"})},[e.createElementVNode("span",Yr,e.toDisplayString(c.severity==="error"?r.value.error:r.value.warning),1),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(c.message),1),e.createElementVNode("small",null,e.toDisplayString([c.dataset,c.rowKey??(c.rowIndex===void 0?r.value.dataset:`${r.value.row} ${c.rowIndex+1}`),c.field].filter(m=>m!==void 0&&m!=="").join(" · ")),1)]),c.rowKey!==void 0&&c.field!==void 0&&c.dataset!==void 0?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:m=>o("locate",c)},e.toDisplayString(r.value.locate)+" ↗",9,Qr)):e.createCommentVNode("",!0)],2))),128))]),t.issues.length>s.value.length?(e.openBlock(),e.createElementBlock("p",_r,e.toDisplayString(s.value.length)+" / "+e.toDisplayString(t.issues.length)+" · "+e.toDisplayString(r.value.more),1)):e.createCommentVNode("",!0)])],8,Zr)):e.createCommentVNode("",!0)}}),jn=W._export_sfc(el,[["__scopeId","data-v-5a34fcee"]]);function Hn(t,n){const a=new Set,o=t.pages.flatMap(c=>c.components),r=ue.dataLimit(n.maxCells,1e6,2e6);let l=0;function s(c){c?.datasetId===n.datasetId&&a.add(c.sourceScope)}for(;o.length;){const c=o.pop();if(++l>r)throw new ue.ReportDataError("limit","Report source scan exceeds its budget");s(c.table?.source);for(const d of c.grid?.cells??[])for(const m of d){if(++l>r)throw new ue.ReportDataError("limit","Report source scan exceeds its budget");m&&(s(m.source),m.children&&o.push(...m.children))}}if(!a.size)throw new ue.ReportDataError("identity","Current report has no business source for this dataset; reload a matching query before reviewing data");if(n.sourceScope===void 0){if(a.size===1)return a.values().next().value;throw new ue.ReportDataError("identity","Data review requires an explicit sourceScope for multiple business sources")}const u=[...new Set([n.sourceScope,At.reportSourceScope(0,"",n.sourceScope)])].filter(c=>a.has(c));if(u.length===1)return u[0];throw new ue.ReportDataError("identity","Data review sourceScope does not identify one business source")}function tl(){const t=new Error("Report data loading cancelled");return t.name="AbortError",t}async function nl(t,n){const a=t.timeoutMs??15e3;if(!Number.isSafeInteger(a)||a<1||a>12e4)throw new Error("Report data loading timeout must be 1–120000 ms");let o;const r=()=>o?.(tl()),l=new Promise((i,u)=>{o=u,n.signal.addEventListener("abort",r,{once:!0})}),s=setTimeout(()=>{o?.(new Error("Report data loading timed out")),n.abort()},a);try{return await Promise.race([Promise.resolve(t.load({signal:n.signal})),l])}finally{clearTimeout(s),n.signal.removeEventListener("abort",r)}}function Wn(t,n){const a=e.ref(!1),o=e.shallowRef(null),r=e.ref(null);let l,s=0;function i(){s++,l?.abort(),l=void 0,a.value=!1}function u(){i(),o.value=null,r.value=null}async function c(){u();const d=t.plan.value,m=t.options.value;if(!d||!m||t.blocked())return;const g=++s,x=new AbortController;l=x,a.value=!0;const f=()=>g===s&&t.plan.value===d&&t.options.value===m;try{const v=await nl(m,x);if(!f()||x.signal.aborted||t.blocked())return;o.value=n(d,m,v)}catch(v){if(!f()||v instanceof Error&&v.name==="AbortError")return;r.value=v instanceof Error?v.message:"Report data review failed",t.onError?.(r.value,v)}finally{g===s&&(l=void 0,a.value=!1)}}return e.watch(t.plan,u,{flush:"sync"}),e.watch(t.options,u,{deep:!0,flush:"sync"}),e.onScopeDispose(u),{busy:a,result:o,error:r,run:c,cancel:i,clear:u}}function al(t){const n=Wn(t,(m,g,x)=>ue.createReportPrefill(m,{...g,sourceScope:Hn(m,g),rows:x,canEdit:t.canEdit})),a=e.ref(!1);let o=0;function r(){o++,a.value=!1}function l(){r(),n.cancel()}function s(){r(),n.clear()}function i(){return r(),n.run()}e.watch(t.plan,r,{flush:"sync"}),e.watch(t.options,r,{deep:!0,flush:"sync"}),e.watch(n.result,r,{flush:"sync"}),e.onScopeDispose(r);const u=e.computed(()=>t.applyBlocked?.()),c=e.computed(()=>!u.value&&!!t.options.value&&!t.blocked()&&!n.busy.value&&!a.value&&!!n.result.value?.edits.length&&n.result.value.counts.conflict===0);async function d(){const m=t.plan.value,g=n.result.value;if(!m||!g||!c.value)return!1;const x=++o;a.value=!0;const f=()=>o===x;try{const v=await t.apply(ue.reportPrefillInputs(m,g,t.canEdit));return f()&&(v?s():n.error.value=t.failure?.()??"Report prefill was not applied"),v}catch(v){return f()&&(n.error.value=v instanceof Error?v.message:"Report prefill failed",t.onError?.(n.error.value,v)),!1}finally{f()&&(a.value=!1)}}return{...n,run:i,cancel:l,clear:s,applying:a,blockedReason:u,canApply:c,apply:d}}function ol(t){const n=Wn(t,(o,r,l)=>{const s=Hn(o,r),i=ue.reportDataSnapshotFromPlan(o,{...r,sourceScope:s,fields:r.fields.map(c=>c.field)}),u=new Set;for(const c of i.rows)for(const d of Object.keys(c.values))u.add(d);if(!r.fields.every(({field:c})=>u.has(c)))throw new ue.ReportDataError("identity","Comparison fields are not present in the current report; check visible field mappings");return ue.compareReportData({sourceScope:s,datasetId:r.datasetId,rows:l},i,r)});function a(o){const r=t.plan.value,l=t.options.value;if(!r||!l||!t.locate||o.kind==="removed")return!1;const s=n.result.value?.sourceScope,i={sourceScope:s,datasetId:l.datasetId,rowKey:o.rowKey,field:o.field},c=ue.indexReportDataCells(r,{...l,sourceScope:s,fields:[o.field]}).get(At.reportCellEditKey({source:i,address:{pageIndex:0,componentIndex:0,rowIndex:0,columnIndex:0}}));return!c||c.ambiguous?!1:(t.locate({...c.context.address}),!0)}return{...n,locate:a}}function rl(t){const n=e.ref(null),a=e.computed(()=>({...t.messages.value,...ce.resolveDataReviewMessages(t.messages.value)})),o=e.computed(()=>!!t.prefill.value&&typeof t.prefill.value.load=="function"),r=e.computed(()=>!!t.comparison.value&&typeof t.comparison.value.load=="function");function l(f){const v=t.editingOptions.value;return!!v&&(typeof v!="object"||v.canEdit?.(f)!==!1)}const s=al({plan:t.plan,options:t.prefill,blocked:t.busy,canEdit:l,apply:async f=>{const v=await t.apply(f);return!v&&t.issues.value.length&&(n.value="validation"),v},failure:t.editError,onError:t.error,applyBlocked:()=>{const f=t.editingOptions.value;if(!f)return t.messages.value.editReadOnly;if(typeof f=="object"&&f.save&&!f.saveBatch&&(s.result.value?.edits.length??0)>1)return t.messages.value.editAtomicRequired}}),i=ol({plan:t.plan,options:t.comparison,blocked:t.busy,onError:t.error,locate:f=>{u(),t.locate(f)}});function u(){n.value=null,s.cancel(),i.cancel()}async function c(f){t.busy()||f==="prefill"&&!o.value||f==="comparison"&&!r.value||f==="validation"&&!t.issues.value.length||!await t.settle()||t.busy()||(n.value=f)}const d=e.computed(()=>n.value==="prefill"?a.value.prefillTitle:n.value==="comparison"?a.value.comparisonTitle:t.messages.value.validationTitle??"数据校验"),m=e.computed(()=>({title:t.messages.value.validationTitle,error:t.messages.value.validationError,warning:t.messages.value.validationWarning,locate:a.value.reviewLocate,dataset:t.messages.value.validationDataset,row:t.messages.value.validationRow,more:t.messages.value.validationMore}));function g(f){const v=t.plan.value;if(!v||f.rowKey===void 0||!f.dataset||!f.field){t.missing();return}const p=ue.indexReportDataCells(v,{datasetId:f.dataset,sourceScope:f.sourceScope,fields:[f.field]}),w=At.reportCellEditKey({source:{sourceScope:f.sourceScope,datasetId:f.dataset,rowKey:f.rowKey,field:f.field},address:{pageIndex:0,componentIndex:0,rowIndex:0,columnIndex:0}}),y=p.get(w);if(!y||y.ambiguous){t.missing();return}u(),t.locate({...y.context.address})}const x=()=>{u(),s.clear(),i.clear()};return e.watch(t.plan,x,{flush:"sync"}),e.watch([()=>t.replacing(),t.prefill,t.comparison],x,{deep:!0,flush:"sync"}),e.watch(t.issues,f=>{n.value==="validation"&&!f.length&&u()}),{opened:n,messages:a,availablePrefill:o,availableComparison:r,prefill:s,comparison:i,title:d,validationMessages:m,open:c,close:u,locateIssue:g}}function ll(t){const n=t.meta?.record;if(!(!n||typeof n!="object"||typeof n.dataset!="string")&&[n.rowIndex,n.copyIndex,n.templatePageIndex].every(a=>Number.isSafeInteger(a)&&Number(a)>=0)&&!(n.rowKey!==void 0&&typeof n.rowKey!="string"&&typeof n.rowKey!="number"))return n}function sl(t){const n=[],a=[];let o;for(const[r,l]of(t?.pages??[]).entries()){const s=ll(l);if(!s){a.push(-1),o=void 0;continue}(!o||s.dataset!==o.dataset||s.rowIndex!==o.rowIndex||s.rowKey!==o.rowKey||s.copyIndex===0&&s.templatePageIndex===0)&&n.push({page:r+1,...s.rowKey===void 0?{}:{rowKey:s.rowKey}}),a.push(n.length-1),o=s}return{entries:n,pageRecords:a}}const il=["aria-label"],cl={key:0,class:"mrp-record-arrows"},ul=["aria-label","title","disabled"],dl=["aria-label","title","disabled"],ml={class:"mrp-record-info","aria-live":"polite"},fl=["title"],pl=["title"],gl=e.defineComponent({__name:"ReportRecordNavigation",props:{plan:{},currentPage:{},messages:{},busy:{type:Boolean}},emits:["goto"],setup(t,{emit:n}){const a=t,o=n,r=e.computed(()=>sl(a.plan)),l=e.computed(()=>r.value.pageRecords[a.currentPage-1]??-1),s=e.computed(()=>l.value>=0?r.value.entries[l.value]:void 0),i=e.computed(()=>(a.messages.recordInfo??"记录 {cur} / {total}").replace("{cur}",String(l.value+1)).replace("{total}",String(r.value.entries.length))),u=e.computed(()=>{const d=a.plan?.pages[a.currentPage-1]?.meta?.title;return typeof d=="string"?d:""});function c(d){const m=r.value.entries[l.value+d];!a.busy&&l.value>=0&&m&&o("goto",m.page)}return(d,m)=>s.value?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mrp-record-navigation","aria-label":t.messages.recordNavigation??"标签记录"},[r.value.entries.length>1?(e.openBlock(),e.createElementBlock("div",cl,[e.createElementVNode("button",{type:"button","aria-label":t.messages.prevRecord??"上一条记录",title:t.messages.prevRecord??"上一条记录",disabled:t.busy||l.value<=0,onClick:m[0]||(m[0]=g=>c(-1))},[e.createVNode(W._sfc_main,{name:"chevron-left",size:13})],8,ul),e.createElementVNode("button",{type:"button","aria-label":t.messages.nextRecord??"下一条记录",title:t.messages.nextRecord??"下一条记录",disabled:t.busy||l.value>=r.value.entries.length-1,onClick:m[1]||(m[1]=g=>c(1))},[e.createVNode(W._sfc_main,{name:"chevron-right",size:13})],8,dl)])):e.createCommentVNode("",!0),e.createElementVNode("span",ml,e.toDisplayString(i.value),1),s.value.rowKey!==void 0?(e.openBlock(),e.createElementBlock("code",{key:1,title:String(s.value.rowKey)},e.toDisplayString(s.value.rowKey),9,fl)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("span",{key:2,class:"mrp-record-face",title:u.value},e.toDisplayString(u.value),9,pl)):e.createCommentVNode("",!0)],8,il)):e.createCommentVNode("",!0)}}),vl=W._export_sfc(gl,[["__scopeId","data-v-aa94fa14"]]);function yl(t,n){const{anchor:a,focus:o}=n,r=t?.pages[a.pageIndex]?.components[a.componentIndex]?.table,l=t?.pages[o.pageIndex]?.components[o.componentIndex]?.table;return r&&l&&r.id===l.id?r.columnKeys[a.columnIndex]!==l.columnKeys[o.columnIndex]:a.columnIndex!==o.columnIndex}function bl(t){const n=e.shallowRef(null),a=e.ref(null),o=e.ref(!1),r=e.ref(!1);let l,s,i=0;function u(){i++,l!==void 0&&clearTimeout(l),l=void 0,s?.abort(),s=void 0,o.value=!1,n.value=null,a.value=null,r.value=!1}async function c(){const d=t.plan.value,m=t.selection.value,g=i;if(!d||!m||!t.enabled())return;const x=new AbortController;s=x,o.value=!0;try{const f=await Q.calculateReportSelection(d,m,{operation:"sum",signal:x.signal});g===i&&!x.signal.aborted&&(n.value=f)}catch(f){g===i&&!x.signal.aborted&&(a.value=f instanceof Q.ReportCalculationError?f.code:"expression")}finally{g===i&&(o.value=!1,s=void 0)}}return e.watch([t.plan,t.selection,()=>t.enabled()],()=>{if(u(),!t.enabled())return;const d=t.selection.value;if(d&&yl(t.plan.value,d)){r.value=!0;return}t.plan.value&&t.selection.value&&(o.value=!0,l=setTimeout(()=>{l=void 0,c()},150))},{flush:"sync",immediate:!0}),e.onScopeDispose(u),{result:n,error:a,busy:o,requiresConfirmation:r}}function Un(t,n){return n?{selection:t.calculationErrorSelection,limit:t.calculationErrorLimit,expression:t.calculationErrorExpression,division:t.calculationErrorDivision,overflow:t.calculationErrorOverflow,precision:t.calculationErrorPrecision}[n]:""}function hl(t){const n=bl(t),a=e.ref("sum"),o=e.ref("SUM / COUNT"),r=e.ref(2),l=e.ref(!1),s=e.shallowRef(null),i=e.ref(null);let u=null,c=0;function d(){c++,u?.abort(),u=null,l.value=!1}function m(){d(),s.value=null,i.value=null}async function g(){if(m(),!t.enabled())return;const p=t.plan.value,w=t.selection.value;if(!p||!w){i.value="selection";return}const y=++c,h=new AbortController;u=h,l.value=!0;try{const k=await Q.calculateReportSelection(p,w,{operation:a.value,expression:o.value,precision:r.value,signal:h.signal});y===c&&t.plan.value===p&&t.selection.value===w&&t.enabled()&&(s.value=k)}catch(k){y===c&&!h.signal.aborted&&(i.value=k instanceof Q.ReportCalculationError?k.code:"expression")}finally{y===c&&(l.value=!1,u=null)}}e.watch([t.plan,t.selection,()=>t.enabled(),a,o,r],m,{flush:"sync"}),e.onScopeDispose(m);function x(p){a.value=p}function f(p){o.value=p}function v(p){r.value=p}return{operation:a,expression:o,precision:r,busy:l,result:s,error:i,summary:n,run:g,cancel:d,clear:m,setOperation:x,setExpression:f,setPrecision:v}}const wl=["aria-label","aria-busy"],kl={class:"mrp-calculation-heading"},xl=["aria-label"],El={class:"mrp-calculation-controls"},Cl=["aria-label","value","disabled"],Sl=["value"],Nl={class:"mrp-calculation-precision"},Bl=["aria-label","value","disabled"],Vl={key:0,class:"mrp-calculation-expression"},$l=["aria-label","value","disabled"],Dl={class:"mrp-calculation-actions"},Rl={key:1,class:"mrp-calculation-diagnostic",role:"alert"},Il={key:2,class:"mrp-calculation-result",role:"status","aria-live":"polite"},Pl={key:0},Ml={key:3,class:"mrp-calculation-empty"},Tl={class:"mrp-calculation-local"},Ol=e.defineComponent({__name:"ReportCalculationPanel",props:{state:{},messages:{},closable:{type:Boolean}},emits:["close"],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(()=>Un(n.messages,n.state.error.value));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",kl,[s[6]||(s[6]=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)]),t.closable?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-calculation-close",type:"button","aria-label":t.messages.calculationClose,onClick:s[0]||(s[0]=i=>l.$emit("close"))},"×",8,xl)):e.createCommentVNode("",!0)]),e.createElementVNode("div",El,[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[1]||(s[1]=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,Sl))),128))],40,Cl)]),e.createElementVNode("label",Nl,[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[2]||(s[2]=i=>t.state.setPrecision(Number(i.target.value))),type:"number",min:"0",max:"12",step:"1",disabled:t.state.busy.value},null,40,Bl)])]),t.state.operation.value==="expression"?(e.openBlock(),e.createElementBlock("label",Vl,[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[3]||(s[3]=i=>t.state.setExpression(i.target.value)),type:"text",maxlength:"256",spellcheck:"false",disabled:t.state.busy.value,placeholder:"SUM / COUNT"},null,40,$l),e.createElementVNode("small",{id:a},e.toDisplayString(t.messages.calculationExpressionHint),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Dl,[t.state.busy.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:s[4]||(s[4]=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[5]||(s[5]=i=>t.state.run())},e.toDisplayString(t.messages.calculationRun),1))]),r.value?(e.openBlock(),e.createElementBlock("p",Rl,e.toDisplayString(r.value),1)):t.state.result.value?(e.openBlock(),e.createElementBlock("div",Il,[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",Pl,e.toDisplayString(t.messages.calculationEmpty),1)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",Ml,e.toDisplayString(t.messages.calculationNoSelection),1)),e.createElementVNode("p",Tl,e.toDisplayString(t.messages.calculationLocal),1)],8,wl))}}),Al=W._export_sfc(Ol,[["__scopeId","data-v-e6438055"]]),Fl=["aria-label","aria-busy","title"],zl={class:"mrp-summary-label"},Ll={key:0},Kl={key:1},ql={key:2},jl={key:4},Hl=e.defineComponent({__name:"ReportSelectionSummary",props:{state:{},messages:{}},setup(t){const n=t,a=e.computed(()=>n.state.summary.result.value),o=e.computed(()=>{const l=a.value;return l?.numericCells&&l.value!==null?l.value/l.numericCells:null}),r=e.computed(()=>Un(n.messages,n.state.summary.error.value));return(l,s)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-selection-summary","aria-label":t.messages.calculationSummary,role:"status","aria-busy":t.state.summary.busy.value,title:t.messages.calculationLocal},[e.createElementVNode("span",zl,e.toDisplayString(t.messages.calculationSummary),1),t.state.summary.busy.value?(e.openBlock(),e.createElementBlock("span",Ll,e.toDisplayString(t.messages.calculationPending),1)):t.state.summary.requiresConfirmation.value?(e.openBlock(),e.createElementBlock("span",Kl,e.toDisplayString(t.messages.calculationMixedColumns),1)):r.value?(e.openBlock(),e.createElementBlock("span",ql,e.toDisplayString(r.value),1)):a.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(t.messages.calculationSummarySum)+" ",1),e.createElementVNode("strong",null,e.toDisplayString(a.value.value??"—"),1)]),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(t.messages.calculationSummaryAverage)+" ",1),e.createElementVNode("strong",null,e.toDisplayString(o.value??"—"),1)]),e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(t.messages.calculationSummaryCount)+" ",1),e.createElementVNode("strong",null,e.toDisplayString(a.value.numericCells),1)])],64)):(e.openBlock(),e.createElementBlock("span",jl,e.toDisplayString(t.messages.calculationHint),1))],8,Fl))}}),Wl=W._export_sfc(Hl,[["__scopeId","data-v-3e135b9c"]]),Ul=["aria-label"],Gl={class:"mrp-settings-header"},Jl=["aria-label"],Zl=["aria-label"],Xl=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],Yl={class:"mrp-settings-content"},Ql=["id","aria-labelledby","hidden"],_l={key:0},es={class:"mrp-settings-option"},ts=["checked","disabled"],ns={class:"mrp-settings-option"},as=["value","disabled"],os=["id","aria-labelledby","hidden"],rs={key:0},ls=["checked","disabled","onChange"],ss={key:0,class:"mrp-settings-note"},is={key:1,class:"mrp-settings-note"},cs=["id","aria-labelledby","hidden"],us={class:"mrp-settings-intro"},ds={class:"mrp-settings-option mrp-settings-feature"},ms=["id"],fs=["aria-label","aria-describedby","checked","disabled"],ps=["disabled"],gs=e.defineComponent({__name:"ReportSettings",props:{available:{},unavailableReasons:{},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(v,p){const y={ArrowRight:(p+1)%3,ArrowLeft:(p+2)%3,Home:0,End:2}[v.key];y!==void 0&&(v.preventDefault(),o("section",i.value[y].key),r.value?.querySelector("#"+s+"-tab-"+i.value[y].key)?.focus())}const c=e.ref(null);let d=null;const m=e.computed(()=>[{label:a.messages.settingsDisplay,tools:[["search",a.messages.search],["thumbnails",a.messages.thumbnails],["zoom",a.messages.zoom]]},{label:a.messages.settingsExport,tools:[["html",a.messages.exportHtml],["pdf",a.messages.exportPdf],["xlsx",a.messages.exportExcel],["png",a.messages.exportImage],["word",a.messages.exportWord],["print",a.messages.print],["pdfWindow",a.messages.pdfWindow]]},{label:a.messages.settingsData,tools:[["editing",a.messages.editCell],["import",a.messages.importExcel]]}].map(v=>({...v,tools:v.tools.map(([p,w])=>({key:p,label:w}))})));function g(v,p){const w=v.target,y=w.checked;w.checked=a.enabled[p],o("change",p,y)}function x(v){return!r.value||v.defaultPrevented?!1:v.target instanceof Node&&r.value.contains(v.target)?!0:v.target instanceof Element&&v.target.closest('[role="dialog"],dialog[open]')?!1:!Array.from(document.querySelectorAll('[aria-modal="true"],dialog[open]')).some(p=>p!==r.value&&!r.value.contains(p))}function f(v){if(!x(v))return;if(v.key==="Escape"){v.preventDefault(),v.stopPropagation(),o("close");return}if(v.key!=="Tab")return;const p=Array.from(r.value?.querySelectorAll("a[href],button:not(:disabled),input:not(:disabled),textarea:not(:disabled),select:not(:disabled),[tabindex='0']")??[]).filter(k=>!k.closest("[hidden]")&&k.tabIndex!==-1),w=p?.[0],y=p?.[p.length-1];(!r.value?.contains(document.activeElement)||v.shiftKey&&document.activeElement===w||!v.shiftKey&&document.activeElement===y)&&(v.preventDefault(),v.stopPropagation(),(v.shiftKey?y:w)?.focus())}return e.onMounted(()=>{const v=r.value?.closest(".mach-report-preview")?.querySelector(".mrp-settings-toggle"),p=document.activeElement;d=p instanceof HTMLElement&&p!==document.body&&!r.value?.contains(p)?p:v??null,c.value?.focus(),document.addEventListener("keydown",f)}),e.onUnmounted(()=>{document.removeEventListener("keydown",f),d?.isConnected&&d.focus()}),(v,p)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-settings-backdrop",onClick:p[5]||(p[5]=e.withModifiers(w=>v.$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",Gl,[e.createElementVNode("div",null,[p[6]||(p[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:c,class:"mrp-settings-close",type:"button","aria-label":t.messages.settingsClose,onClick:p[0]||(p[0]=w=>v.$emit("close"))},[...p[7]||(p[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,Jl)]),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,(w,y)=>(e.openBlock(),e.createElementBlock("button",{id:s+"-tab-"+w.key,key:w.key,type:"button",role:"tab","aria-selected":l.value===w.key,"aria-controls":s+"-panel-"+w.key,tabindex:l.value===w.key?0:-1,onClick:h=>v.$emit("section",w.key),onKeydown:h=>u(h,y)},e.toDisplayString(w.label),41,Xl))),128))],8,Zl),e.createElementVNode("div",Yl,[e.createElementVNode("section",{id:s+"-panel-general",role:"tabpanel","aria-labelledby":s+"-tab-general",hidden:l.value!=="general"},[e.renderSlot(v.$slots,"default",{},void 0,!0),t.interaction?(e.openBlock(),e.createElementBlock("fieldset",_l,[e.createElementVNode("legend",null,e.toDisplayString(t.messages.settingsPanes),1),e.createElementVNode("label",es,[e.createElementVNode("span",null,e.toDisplayString(t.messages.freezeHeaders),1),e.createElementVNode("input",{type:"checkbox",checked:t.interaction.freezeHeaders,disabled:t.busy,onChange:p[1]||(p[1]=w=>v.$emit("interaction",{freezeHeaders:w.target.checked}))},null,40,ts)]),e.createElementVNode("label",ns,[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:p[2]||(p[2]=w=>v.$emit("interaction",{frozenColumns:Math.max(0,Math.min(20,Number(w.target.value)||0))}))},null,40,as)])])):e.createCommentVNode("",!0)],8,Ql),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(m.value,w=>(e.openBlock(),e.createElementBlock("fieldset",{key:w.label},[e.createElementVNode("legend",null,e.toDisplayString(w.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.tools,y=>(e.openBlock(),e.createElementBlock("label",{key:y.key,class:e.normalizeClass(["mrp-settings-option",{"mrp-settings-unavailable":!t.available[y.key]}])},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(y.label),1),t.available[y.key]?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("small",rs,e.toDisplayString(t.unavailableReasons?.[y.key]||t.messages.settingsUnavailable),1))]),e.createElementVNode("input",{type:"checkbox",checked:t.enabled[y.key],disabled:t.busy||!t.available[y.key],onChange:h=>g(h,y.key)},null,40,ls)],2))),128))]))),128)),t.available.editing?(e.openBlock(),e.createElementBlock("p",ss,e.toDisplayString(t.persistedEditing?t.messages.editingSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.available.import?(e.openBlock(),e.createElementBlock("p",is,e.toDisplayString(t.messages.importLocal),1)):e.createCommentVNode("",!0)],8,os),e.createElementVNode("section",{id:s+"-panel-advanced",role:"tabpanel","aria-labelledby":s+"-tab-advanced",hidden:l.value!=="advanced"},[e.createElementVNode("p",us,e.toDisplayString(t.messages.settingsAdvancedDescription),1),e.createElementVNode("label",ds,[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,ms)]),e.createElementVNode("input",{type:"checkbox","aria-label":t.messages.settingsCalculations,"aria-describedby":s+"-calculation-description",checked:t.interaction?.calculations===!0,disabled:t.busy,onChange:p[3]||(p[3]=w=>v.$emit("interaction",{calculations:w.target.checked}))},null,40,fs)]),t.interaction?.calculations?e.renderSlot(v.$slots,"advanced",{},void 0,!0,0):e.createCommentVNode("",!0)],8,cs)]),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:t.busy,onClick:p[4]||(p[4]=w=>v.$emit("reset"))},e.toDisplayString(t.messages.settingsReset),9,ps),e.createElementVNode("span",null,e.toDisplayString(t.messages.settingsLocal),1)])],8,Ul)]))}}),vs=W._export_sfc(gs,[["__scopeId","data-v-2c5c2d63"]]),ys={class:"mrp-empty",role:"status"},bs={key:0},hs=e.defineComponent({__name:"ReportEmpty",props:{title:{},description:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("div",ys,[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",bs,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)]))}}),hn=W._export_sfc(hs,[["__scopeId","data-v-3e16b87e"]]),ws=["aria-label"],ks=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(c=>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]=c=>a("answer",!1))},e.toDisplayString(t.messages.discardKeep),513),e.createElementVNode("button",{ref_key:"discard",ref:r,type:"button",onClick:u[1]||(u[1]=c=>a("answer",!0))},e.toDisplayString(t.messages.discardProceed),513)])],8,ws)],32))}}),xs=W._export_sfc(ks,[["__scopeId","data-v-f7590294"]]),Es={key:0,class:"mrp-task-status",role:"status","aria-live":"polite"},Cs={key:0},Ss=["value","max","aria-label"],Ns=e.defineComponent({__name:"ReportTaskStatus",props:{task:{},messages:{default:()=>ce.DEFAULT_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",Es,[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",Cs,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,Ss)):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)}}),Gn=W._export_sfc(Ns,[["__scopeId","data-v-e23ba647"]]),Bs={key:0,class:"mrp-diagnostics"},Vs=["aria-label","placeholder"],$s={key:0},Ds=["onClick"],Rs={key:0},Is=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",Bs,[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]=c=>a.value=c),type:"search","aria-label":t.messages.diagnosticsSearch,placeholder:t.messages.diagnosticsSearch},null,8,Vs),[[e.vModelText,a.value]]),e.createElementVNode("ol",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(c,d)=>(e.openBlock(),e.createElementBlock("li",{key:d},[e.createElementVNode("div",null,[e.createElementVNode("b",null,e.toDisplayString(c.format?.toUpperCase()??c.severity)+" · "+e.toDisplayString(c.code),1),e.createElementVNode("p",null,e.toDisplayString(o.value[c.code]??c.message),1),o.value[c.code]?(e.openBlock(),e.createElementBlock("details",$s,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.diagnosticsDetails),1),e.createTextVNode(e.toDisplayString(c.message),1)])):e.createCommentVNode("",!0),e.createElementVNode("small",null,e.toDisplayString(s(c)),1)]),c.pageIndex!==void 0?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:m=>i.$emit("locate",c)},e.toDisplayString(t.messages.diagnosticsLocate),9,Ds)):e.createCommentVNode("",!0)]))),128))]),r.value.length>l.value.length?(e.openBlock(),e.createElementBlock("small",Rs,e.toDisplayString((t.messages.diagnosticsMore??"").replace("{count}",String(r.value.length))),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),Ps=W._export_sfc(Is,[["__scopeId","data-v-3b7804ce"]]),Ms={key:0,class:"mrp-data-explanation"},Ts={class:"mrp-data-content"},Os=["aria-label","placeholder"],As={class:"mrp-data-state"},Fs=["disabled","onClick"],zs={key:0,role:"status"},Ls={key:1},Ks=e.defineComponent({__name:"ReportDataExplanation",props:{entries:{},messages:{},busy:{type:Boolean}},emits:["locate"],setup(t,{emit:n}){const a=t,o=n,r=e.ref(""),l=e.computed(()=>({"missing-source":a.messages.dataMissingSource,"not-applicable":a.messages.dataNotApplicable,"not-calculable":a.messages.dataNotCalculable})),s=e.computed(()=>{const u=r.value.toLocaleLowerCase().trim().split(/\s+/).filter(Boolean);return a.entries.filter(c=>u.every(d=>`${c.message} ${c.target?.datasetId} ${c.target?.rowKey??""} ${c.target?.field} ${l.value[c.valueState]??""}`.toLocaleLowerCase().includes(d)))}),i=e.computed(()=>s.value.slice(0,100));return(u,c)=>t.entries.length?(e.openBlock(),e.createElementBlock("details",Ms,[e.createElementVNode("summary",null,[e.createVNode(W._sfc_main,{name:"file",size:14}),e.createElementVNode("span",null,e.toDisplayString(t.messages.dataExplanation),1),e.createElementVNode("b",null,e.toDisplayString(t.entries.length),1),e.createElementVNode("small",null,e.toDisplayString(t.messages.dataExplanationHint),1),e.createVNode(W._sfc_main,{name:"chevron-down",size:12})]),e.createElementVNode("div",Ts,[e.createElementVNode("label",null,[e.createVNode(W._sfc_main,{name:"search",size:15}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),type:"search","aria-label":t.messages.dataExplanationSearch,placeholder:t.messages.dataExplanationSearch},null,8,Os),[[e.vModelText,r.value]])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(d,m)=>(e.openBlock(),e.createElementBlock("li",{key:m},[e.createElementVNode("div",null,[e.createElementVNode("span",As,e.toDisplayString(l.value[d.valueState]),1),e.createElementVNode("code",null,[e.createTextVNode(e.toDisplayString(d.target?.datasetId)+" · "+e.toDisplayString(d.target?.field)+" ",1),d.target?.rowKey!==void 0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" · "+e.toDisplayString(d.target.rowKey),1)],64)):e.createCommentVNode("",!0)]),e.createElementVNode("p",null,e.toDisplayString(d.message),1)]),d.target?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.busy,onClick:g=>o("locate",d.target)},[e.createTextVNode(e.toDisplayString(t.messages.diagnosticsLocate),1),e.createVNode(W._sfc_main,{name:"arrow-right",size:13})],8,Fs)):e.createCommentVNode("",!0)]))),128))]),s.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",zs,e.toDisplayString(t.messages.dataExplanationEmpty),1)),s.value.length>i.value.length?(e.openBlock(),e.createElementBlock("small",Ls,e.toDisplayString((t.messages.diagnosticsMore??"").replace("{count}",String(s.value.length))),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)}}),qs=W._export_sfc(Ks,[["__scopeId","data-v-cb0adb4c"]]),js=["aria-label"],Hs=["disabled","title","onClick"],Ws={key:0,role:"status"},Us={key:1,role:"alert"},Gs={key:2,role:"status"},Js=e.defineComponent({__name:"ReportDrillActions",props:{entries:{},pending:{type:Boolean},busy:{type:Boolean},error:{},messages:{}},emits:["open"],setup(t,{emit:n}){const a=n;return(o,r)=>t.entries.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-drill-actions",role:"group","aria-label":t.messages.drillActions},[e.createElementVNode("span",null,e.toDisplayString(t.messages.drillActions),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.entries,l=>(e.openBlock(),e.createElementBlock("button",{key:l.action.id,type:"button",disabled:t.busy||t.pending||!!l.reason,title:l.reason,onClick:s=>a("open",l.action.id)},[e.createTextVNode(e.toDisplayString(l.action.label),1),e.createVNode(W._sfc_main,{name:"arrow-right",size:13})],8,Hs))),128)),t.pending?(e.openBlock(),e.createElementBlock("small",Ws,e.toDisplayString(t.messages.drillOpening),1)):t.error?(e.openBlock(),e.createElementBlock("small",Us,e.toDisplayString(t.error),1)):t.entries.every(l=>l.reason)?(e.openBlock(),e.createElementBlock("small",Gs,e.toDisplayString(t.messages.drillMissingValue),1)):e.createCommentVNode("",!0)],8,js)):e.createCommentVNode("",!0)}}),Zs=W._export_sfc(Js,[["__scopeId","data-v-f9ff8c13"]]);function Xs(t){const n=e.ref(!1),a=e.ref("");let o;const r=e.computed(()=>{const i=t.plan.value,u=t.selection.value?.focus,c=t.options();if(!i||!u||!c)return[];try{return ue.matchReportDrillActions(i,u,c.actions).map(d=>{try{return ue.createReportDrillRequest(i,u,d,t.params()),{action:d}}catch{return{action:d,reason:t.messages().drillMissingValue}}})}catch{return[]}});function l(){o?.abort(),o=void 0,n.value=!1,a.value=""}e.watch([t.plan,()=>t.options()],l),e.onScopeDispose(l);async function s(i){if(n.value||t.busy())return;const u=t.plan.value,c=t.selection.value?.focus,d=t.options(),m=d?.actions.find(x=>x.id===i);if(!u||!c||!d||!m)return;const g=new AbortController;o=g,n.value=!0,a.value="";try{const x=ue.createReportDrillRequest(u,c,m,t.params()),f=Object.freeze(t.view());if(!await t.beforeOpen()||g.signal.aborted||t.plan.value!==u)return;await Y.waitForOutput(d.open({...x,signal:g.signal,view:f}),g.signal)}catch(x){g.signal.aborted||(a.value=x instanceof ue.ReportDrillError?t.messages().drillMissingValue??"":t.messages().drillFailed??"")}finally{o===g&&(n.value=!1,o=void 0)}}return{entries:r,pending:n,error:a,open:s}}const Ys={class:"mrp-print-settings"},Qs=["value","disabled"],_s=["value","disabled"],ei=["disabled"],ti=e.defineComponent({__name:"ReportPrintSettings",props:{value:{},messages:{},busy:{type:Boolean},canTest:{type:Boolean}},emits:["change","test"],setup(t,{emit:n}){const a=t,o=n;function r(l,s){const i=s.target,u=Number(i.value);if(!i.value.trim()||!Number.isFinite(u)||Math.abs(u)>20){i.value=String(a.value[l]??0);return}o("change",{...a.value,[l]:u})}return(l,s)=>(e.openBlock(),e.createElementBlock("details",Ys,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.printCalibration),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.printCalibrationHint),1),e.createElementVNode("div",null,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.printOffsetX)+" ",1),e.createElementVNode("input",{type:"number",min:"-20",max:"20",step:".1",value:t.value.offsetXmm??0,disabled:t.busy,onChange:s[0]||(s[0]=i=>r("offsetXmm",i))},null,40,Qs)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.printOffsetY)+" ",1),e.createElementVNode("input",{type:"number",min:"-20",max:"20",step:".1",value:t.value.offsetYmm??0,disabled:t.busy,onChange:s[1]||(s[1]=i=>r("offsetYmm",i))},null,40,_s)])]),e.createElementVNode("button",{type:"button",disabled:t.busy||!t.canTest,onClick:s[2]||(s[2]=i=>o("test"))},e.toDisplayString(t.messages.printCalibrationTest),9,ei)]))}}),ni=W._export_sfc(ti,[["__scopeId","data-v-35a0f5ec"]]),wn=new Map,Me=new Map,ai=15e3;function qt(t,n){return Object.assign(new Error(t),{cause:n})}function Ze(t,n){return`PDF 字体 ${JSON.stringify(t)}:${n}。请部署支持报表文字的字体文件,并将 pdfFontUrl 配置为可访问的字体 URL;西文报表可设为空串`}async function kn(t,n,a){if(Y.assertOutputActive(a),!t)return null;try{const o=await Y.waitForOutput(n(t,{strict:!0,signal:a}),a);if(!o?.byteLength)throw new Error("字体文件为空或加载失败");return o}catch(o){throw Y.assertOutputActive(a),qt(Ze(t,o instanceof Error?o.message:String(o)),o)}}function mt(t){if(t?.reason instanceof Error&&t.reason.name==="AbortError")return t.reason;const n=qt("PDF 字体检查已取消",t?.reason);return n.name="AbortError",n}async function oi(t,n){let a=!1;const o=setTimeout(()=>{a=!0,n.abort()},ai);try{const r=await fetch(t,{method:"HEAD",signal:n.signal});if(n.signal.aborted)throw mt(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:Ze(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:Ze(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:Ze(t,s.message),cause:s}}return{status:"available",fontUrl:t,message:"PDF 字体资源可达;文字覆盖范围将在实际导出时校验"}}catch(r){if(n.signal.aborted&&!a)throw mt(n.signal);return{status:"error",fontUrl:t,message:Ze(t,a?"字体检查超时,请检查网络或字体服务":"字体检查失败,请检查网络、字体服务或跨域访问配置"),cause:r}}finally{clearTimeout(o)}}function ri(t,n){if(n?.aborted)return Promise.reject(mt(n));if(!t)return Promise.resolve({status:"disabled",fontUrl:t,message:"已停用自定义 PDF 字体;内置字体用于西文,其他文字会在导出时校验"});const a=wn.get(t);if(a)return Promise.resolve(a);let o=Me.get(t);if(!o){const l=new AbortController;o={controller:l,promise:oi(t,l),subscribers:0};const s=o;Me.set(t,s),s.promise=s.promise.then(i=>(!l.signal.aborted&&i.status==="available"&&wn.set(t,i),i)).finally(()=>{Me.get(t)===s&&Me.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",c),!0),c=()=>{u()&&(r.subscribers===0&&(Me.get(t)===r&&Me.delete(t),r.controller.abort()),s(mt(n)))};n?.addEventListener("abort",c,{once:!0}),r.promise.then(d=>{u()&&l(d)},d=>{u()&&s(d)}),n?.aborted&&c()})}function Jn(t={fontUrl:"/simhei.ttf"}){let n=null;const a=async(o,r,l={})=>{Y.assertOutputActive(l.signal),n||(n=await import("@agile-team/mach-report/pdf")),Y.assertOutputActive(l.signal);const s=await kn(t.fontUrl,n.loadFontWithCache,l.signal);let i;try{Y.assertOutputActive(l.signal),i=await n.renderPlanToPdf(o,{...l,...s?{customFontBytes:s}:{}})}catch(g){if(!s)throw g;const x=g instanceof Error?g.message:String(g);throw qt(`PDF 生成失败:${x}。当前字体 URL 为 ${JSON.stringify(t.fontUrl)};请确认该文件是有效字体,或重新配置 pdfFontUrl`,g)}Y.assertOutputActive(l.signal),i.diagnostics?.forEach(g=>{try{l.onDiagnostic?.(g)}catch{}});const{bytes:u,unsupportedTextCount:c,pageErrors:d,fidelityWarnings:m}=i;if(c>0)throw new Error(`PDF 中有 ${c} 行文字无法编码;请部署支持所用文字的字体并配置 pdfFontUrl`);if(d.length>0)throw new Error(`PDF 有 ${d.length} 页渲染失败:${d[0]}`);return m.length>0&&r?.(`PDF 有 ${m.length} 处版式降级:${m.slice(0,2).join(";")}`),u};return a.checkFont=o=>ri(t.fontUrl,o),a.prepare=async o=>{if(Y.assertOutputActive(o),!t.fontUrl)return{};const{loadFontWithCache:r}=await Promise.resolve().then(()=>require("./font-loader-Ga51c2VC.cjs")),l=await kn(t.fontUrl,r,o);return l?{customFontBytes:l}:{}},a}function li(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 d=t.fontUrl();return(!o||a!==d)&&(a=d,o=Jn({fontUrl:d})),o}function i(){r++,l?.abort(),l=null}async function u(){if(t.destroyed())throw new ce.MachReportError("config","报表预览已卸载");i();const d=r,m=new AbortController;l=m;const g=t.fontUrl();n.value=Object.freeze({status:"checking",fontUrl:g});try{const x=s(),f=x.checkFont?await x.checkFont(m.signal):{status:"unverified",fontUrl:"",message:"自定义 PDF 导出器未提供字体预检查;字体由宿主确认"};return!t.destroyed()&&d===r&&!m.signal.aborted&&(n.value=Object.freeze({...f})),f}catch(x){if(m.signal.aborted)throw x;const f={status:"error",fontUrl:g,message:x instanceof Error?x.message:"PDF 字体检查失败",cause:x};return!t.destroyed()&&d===r&&(n.value=Object.freeze(f)),f}finally{l===m&&(l=null)}}function c(){u().catch(()=>{})}return e.watch([t.plan,e.computed(t.fontUrl),e.computed(t.enabled)],()=>{const d=n.value.fontUrl===t.fontUrl();d&&n.value.status==="available"||(i(),(!d||n.value.status==="checking")&&(n.value=Object.freeze({status:"unchecked",fontUrl:t.fontUrl()})),!t.destroyed()&&t.plan.value?.pages.length&&t.enabled()&&c())},{immediate:!0}),{pdfFont:n,getPdfExporter:s,checkPdfFont:u,retryPdfFont:c,cancelFontCheck:i}}function ve(t){return JSON.parse(JSON.stringify(t))}function Zn(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 pt(t,n){if(t.requiresRecalculation&&(!n||!Q.getReportEditSession(t)))throw new Q.ReportCellEditError("recalculation")}async function si(t,n,a,o){const r=n.edits.every(i=>!!i.source);pt(t,r);const l=Q.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 Q.ReportCellEditError("missing");return{address:u,value:i[n.value]}})}function ii(t,n,a){const o=n.edits.every(r=>!!r.source);return pt(t,o),o?Q.getReportEditSession(t)?.prepare(t,n,{signal:a}):void 0}function ci(t,n){const a=new Map;return t.pages.forEach((o,r)=>o.components.forEach((l,s)=>{if(l.grid)for(const i of Y.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 c=Q.reportCellEditKey(u),d=a.get(c)??[];d.push(u),a.set(c,d)}})),a}function Ae(t){const n=Q.createReportCellResolver(t),a=ci(t,n);function o(l){if(l.source)return a.get(Q.reportCellEditKey(l))??[];const s=n(l.address);return s?!l.table||Q.reportCellEditKey(s)===Q.reportCellEditKey(l)?[s]:[]:[]}const 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}function Dt(t){const n={maxSteps:t?.maxSteps??100,maxBytes:t?.maxBytes??8388608};for(const a of Object.values(n))if(!Number.isSafeInteger(a)||a<0)throw new RangeError("Edit history limits must be non-negative safe integers");return n}function xn(t,n){for(const a of n){const o=Q.reportCellEditKey(a),r=t.get(o),l=r?{...a,previousValue:r.previousValue,previousText:r.previousText}:{...a};Object.is(l.previousValue,l.value)?t.delete(o):t.set(o,l)}}function ui(t){return 512+[t.value,t.previousValue,t.text,t.previousText,...Object.values(t.source??{}),...Object.values(t.table??{})].reduce((a,o)=>a+(typeof o=="string"?o.length*2:16),0)}function di(){const t=[],n=[];let a=0,o=!1;function r(){t.length=0,n.length=0,a=0,o=!1}function l(c){for(;t.length+n.length>c.maxSteps||a>c.maxBytes;){const d=t.shift()??n.shift();if(!d)break;a-=d.bytes,o=!0}}function s(c,d){a-=n.reduce((g,x)=>g+x.bytes,0),n.length=0;const m={edits:c,bytes:c.reduce((g,x)=>g+ui(x),0)};t.push(m),a+=m.bytes,l(d)}function i(){const c=t.pop();c&&n.push(c)}function u(){const c=n.pop();c&&t.push(c)}return{append:s,clear:r,resize:l,completeUndo:i,completeRedo:u,get undo(){return t[t.length-1]?.edits},get redo(){return n[n.length-1]?.edits},get limited(){return o}}}class mi extends Error{constructor(n){super(n.map(a=>a.message).join(";")),this.conflicts=n,this.name="ReportEditConflictError"}}function fi(){return globalThis.crypto?.randomUUID?.()??`mr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function pi(t,n,a,o){return Array.isArray(n)?{batch:Q.createReportCellEditBatch(t,n,a)}:si(t,n,a,o).then(r=>Array.isArray(r)?{batch:Q.createReportCellEditBatch(t,r,a)}:r)}function gi(t){const n=e.shallowRef([]),a=e.shallowRef(di()),o=a.value;let r=Dt();const l=new Map,s=new Map,i=e.shallowRef([]),u=e.shallowRef([]),c=e.shallowRef(!1),d=e.shallowRef([]),m=e.shallowRef(null),g=e.shallowRef([]),x=e.computed(()=>g.value.length>0),f=e.computed(()=>{const A=i.value,z=t.plan.value;if(!z||!A.length)return A;const L=Ae(z);return A.map(j=>{const q=L(j);return q?{...j,address:q}:j})}),v=e.computed(()=>a.value.limited),p=e.computed(()=>!!t.options.value&&!c.value&&!t.blocked()&&!!a.value.undo),w=e.computed(()=>!!t.options.value&&!c.value&&!t.blocked()&&!!a.value.redo);let y=null,h=null,k=0,S=null;function b(){y?.abort(),y=null,c.value=!1,h=null}function B(){k++,b(),S=null,n.value=[],o.clear(),e.triggerRef(a),l.clear(),s.clear(),i.value=[],u.value=[],d.value=[],g.value=[],m.value=null}function C(){const A=t.options.value;return A?typeof A=="object"?A:{}:null}function P(A,z,L,j){if(!t.options.value||t.blocked())throw new Q.ReportCellEditError("readonly");pt(A,z.edits.every(te=>!!te.source));const q=Q.createReportCellResolver(A),oe=new Map(j?.map(te=>[Q.reportCellEditKey(te),te]));for(const te of z.edits){const N=j?oe.get(Q.reportCellEditKey(te)):q(te.address);if(!N?.editable||L.canEdit?.(N)===!1)throw new Q.ReportCellEditError("readonly");if(L.requireSource&&!N.source)throw new Q.ReportCellEditError("missing");const R=Zn(N,L);R&&Q.parseReportCellFieldInput(N,te.value,R)}}async function D(A,z,L){if(z.saveBatch)return z.saveBatch(ve(A),L);if(z.save&&A.edits.length>1)throw new Q.ReportCellEditError("atomic");if(A.edits[0])return z.save?.(ve(A.edits[0]),L)}async function G(A,z,L){for(const j of A.edits){const q=await z.validate?.(ve(j),L);if(q)throw new Error(q);if(L.signal.aborted)return}}function U(A,z,L,j,q,oe,te){if(t.plan.value=te?te.commit(L):Q.applyReportEditResult(Q.applyReportCellEditBatch(A,z),z,L),n.value.push(...z.edits),e.triggerRef(n),xn(l,z.edits),i.value=[...l.values()],q)for(const R of z.edits)s.delete(Q.reportCellEditKey(R));else xn(s,z.edits);g.value=[...s.values()],j==="edit"&&(o.append(z.edits,oe),e.triggerRef(a)),u.value=[],S=null;const N=k;for(const R of z.edits){if(k!==N)break;t.onChange(ve(R))}}function _(A,z,L){const j=JSON.stringify([L,z.edits]);S?.plan===A&&S.signature===j?z.requestId=S.requestId:S={plan:A,signature:j,requestId:z.requestId}}function ne(A){m.value=t.errorMessage?.(A)??(A instanceof Error?A.message:"Cell edit failed"),t.onError(m.value,A)}e.watch(()=>{const A=C();return[A?.history?.maxSteps,A?.history?.maxBytes]},([A,z])=>{try{r=Dt({maxSteps:A,maxBytes:z}),o.resize(r),e.triggerRef(a)}catch(L){ne(L)}},{flush:"sync"});async function ae(A,z,L,j){if(L.validation){if(!A.prepared)throw new Error("整批规则校验需要来源数据会话;请使用 createReportSource 或 createReportEditSession");d.value=[...A.prepared.validate(L.validation)]}if(L.validateBatch){const q=A.prepared?.plan??Q.applyReportCellEditBatch(z,A.batch),oe=await L.validateBatch(ve(A.batch),ve(q),j);oe&&!j.signal.aborted&&(d.value=[...d.value,...ve(oe)])}j.signal.aborted||Q.assertReportValidation(d.value,L.validation?.warningPolicy)}async function le(A,z){const L=t.plan.value,j=C();if(!L||!j||t.blocked())return!1;const q=new AbortController,oe=k;y=q,c.value=!0,m.value=null,d.value=[];const te=()=>y===q&&!q.signal.aborted&&t.plan.value===L&&t.options.value!==!1;try{r=Dt(j.history);const N=pi(L,A,fi(),q.signal),R=N instanceof Promise?await N:N;if(!te())return!1;const{batch:T,contexts:$}=R;if(P(L,T,j,$),T.edits=T.edits.filter(me=>!Object.is(me.previousValue,me.value)),!T.edits.length)return!0;_(L,T,z),P(L,T,j,$);const Z={signal:q.signal,requestId:T.requestId,action:z};if(await G(T,j,Z),!te())return!1;P(L,T,j,$);const ee=R.prepared?void 0:ii(L,T,q.signal);if(ee&&(R.prepared=await ee),!te()||(P(L,T,j,$),await ae(R,L,j,Z),!te()))return!1;const re=await D(T,j,Z);if(!te())return!1;if(re?.conflicts?.length)throw u.value=ve(re.conflicts),new mi(re.conflicts);return P(L,T,j,$),U(L,T,re,z,!!(j.save||j.saveBatch),r,R.prepared),oe===k}catch(N){return te()&&ne(N),!1}finally{y===q&&(y=null,c.value=!1)}}async function V(A,z="edit"){if(h)return h;const L=le(A,z);h=L;const j=await L;return h===L&&(h=null),j}async function M(){const A=k,z=o.undo;return!z||c.value||!await V({edits:z,value:"previousValue"},"undo")||A!==k?!1:(o.completeUndo(),e.triggerRef(a),!0)}async function I(){const A=k,z=o.redo;return!z||c.value||!await V({edits:z,value:"value"},"redo")||A!==k?!1:(o.completeRedo(),e.triggerRef(a),!0)}async function F(){const A=k;return!f.value.length||c.value||!await V({edits:f.value,value:"previousValue"},"restore")||A!==k?!1:(o.clear(),e.triggerRef(a),!0)}function K(){if(!h)return!c.value;const A=k;return h.then(z=>z&&A===k&&!c.value)}function J(A){return t.plan.value?Ae(t.plan.value)(A):null}return{settle:K,resolveAddress:J,validationIssues:d,changes:n,differences:f,localDifferences:g,hasLocalDrafts:x,lastError:m,conflicts:u,saving:c,canUndo:p,canRedo:w,historyLimited:v,apply:V,undo:M,redo:I,restore:F,cancel:b,reset:B}}let vi=0;const yi="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 bi(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 hi(t,n,a){const o=t.createElement("select"),r=[{value:null,label:"—"},...bi(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 wi(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 ki(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 xi(t,n,a,o){const r=t.ownerDocument,l=o?.type==="boolean"||o?.type==="enum"?hi(r,o,a):wi(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=yi,s.setAttribute("aria-label",o?.label??n),o?.required&&s.setAttribute("aria-required","true");const u=r.createElement("span");u.id=`mrp-cell-hint-${++vi}`,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 c=ki(o);return u.textContent=c,u.hidden=!c,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:d=>{u.textContent=d??c,u.hidden=!u.textContent,s.setAttribute("aria-invalid",d?"true":"false")}}}function Mt(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 Ei(t){const n=e.shallowRef(null),a=gi(t),{saving:o,changes:r}=a,l=e.shallowRef(!1),s=e.computed(()=>l.value||a.hasLocalDrafts.value);let i=null;function u(){const y=n.value;n.value=null,l.value=!1,a.cancel(),i=null,y?.editor.root.remove()}function c(){u(),a.reset()}function d(y){return n.value===y&&t.plan.value===y.plan}async function m(y){return await a.apply([{address:y.address,value:y.editor.value()}])?(n.value=null,l.value=!1,y.editor.root.remove(),!0):(n.value===y&&(y.editor.input.disabled=t.blocked()||o.value,y.editor.feedback(a.lastError.value??void 0),y.editor.input.focus()),!1)}async function g(){if(i)return i;const y=n.value;if(!y)return a.settle();if(!d(y))return u(),!1;l.value=y.editor.input.value!==y.editor.initialInput,y.editor.input.disabled=!0;const h=m(y);i=h;const k=await h;return i===h&&(i=null),k}function x(){return n.value||i?g():a.settle()}function f(y){if(y.stopPropagation(),!y.isComposing&&(y.key==="Escape"&&(y.preventDefault(),u()),y.key==="Enter"&&!y.shiftKey||y.key==="Tab")){y.preventDefault();const h=n.value,k=h&&Q.getReportCellContext(h.plan,h.address),S=h&&k?Q.createReportCellEditBatch(h.plan,[{address:h.address,value:k.value}],"navigation").edits[0]:void 0;g().then(b=>{if(!b||!h||!t.plan.value)return;const B=t.plan.value===h.plan?h.address:S&&Ae(t.plan.value)(S);B&&t.onNavigate?.(B,y.key,y.shiftKey)})}}function v(y){t.onError(t.errorMessage?.(y)??(y instanceof Error?y.message:"无法编辑单元格"),y)}async function p(y){if(!t.options.value||t.blocked()||!await g()||!y.isConnected)return;const h=t.plan.value,k=Mt(y);if(!h||!k||!t.options.value||t.blocked())return;t.onInspect?.(k);const S=typeof t.options.value=="object"?t.options.value:{};try{const b=Q.getReportCellContext(h,k);if(!b?.editable||S.canEdit?.(b)===!1)return;if(pt(h,!!b.source),S.requireSource&&!b.source)throw new Q.ReportCellEditError("missing");const B=Zn(b,S);B&&Q.validateReportCellFieldDefinition(b,B);const C=xi(y,t.label(),b,B),P=C.input;n.value={plan:h,address:k,editor:C},l.value=!1,P.addEventListener("keydown",D=>f(D)),P.addEventListener("input",()=>{l.value=P.value!==C.initialInput,C.feedback()}),P.addEventListener("change",()=>{l.value=P.value!==C.initialInput}),P.addEventListener("blur",()=>{!o.value&&!t.blocked()&&!t.suspendBlur?.()&&g()}),C.focus()}catch(b){v(b)}}async function w(y){const h=y.target;if(!(h instanceof Element)||h.closest(".mrp-cell-editor"))return;const k=h.closest("td[data-mr-row-index]");k&&await p(k)}return e.watch([n,o,()=>n.value&&t.blocked()],()=>{n.value&&(n.value.editor.input.disabled=t.blocked()||o.value)},{flush:"sync"}),e.watch(t.options,(y,h)=>{(!y||y!==h)&&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(c),{...a,active:n,saving:o,changes:r,pendingLocalChanges:s,cancel:u,reset:c,commit:g,settle:x,onDoubleClick:w,editCell:p,getChanges:()=>ve(r.value)}}function Xn(t){return t.table.role==="header"?-Math.max(1,t.grid?.cells.length??1):t.table.rowIndex}function Ce(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:Xn(o)+n.rowIndex,column:l.columnKeys.indexOf(r.columnKeys[n.columnIndex]??"")}:{grid:`${n.pageIndex}:${n.componentIndex}`,row:n.rowIndex,column:n.columnIndex}}function En(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,c)=>{const d=Xn(s)+c;o.set(d,[...o.get(d)??[],{address:{pageIndex:l,componentIndex:i,rowIndex:c,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 Ci(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 Yn(t){return`${t.rowIndex}:${t.columnIndex}`}function Si(t,n){return(t.source?.field??t.table?.columnKey)===n?!0:t.table?.role!=="header"?!1:t.component.table?.columnKeys.slice(t.address.columnIndex,t.address.columnIndex+(t.cell.colSpan??1)).includes(n)??!1}function Ni(t,n){return!Si(t,n.field)||n.tableId!==void 0&&t.table?.id!==n.tableId||n.datasetId!==void 0&&(t.source?.datasetId??t.component.table?.source?.datasetId)!==n.datasetId?!1:n.rowKey===void 0||t.source?.rowKey===n.rowKey}function Cn(t,n,a){const o=t.get(n)??[],r=o.length;return o.push(a),t.set(n,o),r}function Bi(t,n){const a={all:[],rows:new Map,columns:new Map,positions:new Map};for(const o of Y.resolveGridLayout(t.grid,t.widthMm,t.heightMm).cells){const r={pageIndex:n.pageIndex,componentIndex:n.componentIndex,rowIndex:o.ri,columnIndex:o.ci},l={linear:a.all.length,row:Cn(a.rows,o.ri,r),column:Cn(a.columns,o.ci,r)};a.all.push(r),a.positions.set(Yn(r),l)}return a}function Vi(t){const n=new Map,a=new Map,o=Q.createReportCellResolver(t);let r;function l(c,d){return a.size>=512&&a.delete(a.keys().next().value),a.set(c,d),d}function s(c){const d=t.pages[c.pageIndex]?.components[c.componentIndex];if(!d?.grid)return;const m=`${c.pageIndex}:${c.componentIndex}`;let g=n.get(m);return g||(g=Bi(d,c),n.set(m,g)),g}function i(c,d,m){const g=s(c),x=g?.positions.get(Yn(c));if(!g||!x)return;const f=d==="ArrowUp"||d==="ArrowLeft"||m?-1:1;return d==="Tab"?g.all[x.linear+f]:d==="ArrowUp"||d==="ArrowDown"||d==="Enter"?g.columns.get(c.columnIndex)?.[x.column+f]:g.rows.get(c.rowIndex)?.[x.row+f]}function u(c){const d=JSON.stringify([c.field,c.datasetId,c.tableId,c.rowKey,c.reportScope]);if(a.has(d))return a.get(d);for(const[m,g]of t.pages.entries())if(!(c.reportScope!==void 0&&g.meta?.reportScope!==c.reportScope))for(let x=0;x<g.components.length;x++){const f=g.components[x];if(f.grid)for(const v of Y.resolveGridLayout(f.grid,f.widthMm,f.heightMm).cells){const p={pageIndex:m,componentIndex:x,rowIndex:v.ri,columnIndex:v.ci},w=o(p);if(w&&Ni(w,c))return l(d,p)}}return l(d,null)}return{cellAt:o,adjacent:i,findField:u,addresses:c=>s(c)?.all??[],editAddress:c=>(r??=Ae(t))(c),editAddresses:c=>(r??=Ae(t)).all(c)}}function Rt(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 Tt(t){return`${t.pageIndex}:${t.componentIndex}:${t.rowIndex}:${t.columnIndex}`}function $i(t,n){const a=Ce(t,n.anchor),o=Ce(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:Tt(n.focus),origin:t.pages[n.anchor.pageIndex]?.components[n.anchor.componentIndex]?.table}}function Di(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 Ri(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 ct(t,n,a){t.getAttribute(n)!==a&&t.setAttribute(n,a)}function It(t,n,a){t.classList.contains(n)!==a&&t.classList.toggle(n,a)}function Ii(t,n,a,o,r,l){n.role!==a&&(ct(t,"role",a),n.role=a),n.selected!==o&&(It(t,"mrp-cell-selected",o),ct(t,"aria-selected",String(o)),n.selected=o),n.focused!==r&&(It(t,"mrp-cell-focus",r),ct(t,"tabindex",r?"0":"-1"),n.focused=r),n.modified!==l&&(It(t,"mrp-cell-modified",l),n.modified=l)}function Pi(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,u=null,c;function d(V){return(V!==u||!c)&&(u=V,c=Vi(V)),c}function m(V,M){const I=d(V).cellAt(M);return!I||V.requiresRecalculation&&!I.source?null:{address:I.address,source:I.source,table:I.table,value:I.value,previousValue:I.value,text:I.cell.text??"",previousText:I.cell.text??""}}e.watch(t.plan,(V,M)=>{const I=a.value;if(!I){u=null,c=void 0;return}if(!V||!M){a.value=null,u=null,c=void 0;return}const F=m(M,I.anchor),K=m(M,I.focus),J=d(V).editAddress,A=F&&J(F),z=K&&J(K);a.value=A&&z?{anchor:A,focus:z}:null},{flush:"sync"});function g(V=t.root.value??void 0){if(!V)return;const M=a.value,I=t.plan.value,F=t.differences();if(F!==l||I!==s){l=F,s=I;const J=I&&F.length?d(I).editAddresses:null;i=new Set(F.flatMap(A=>J?J(A).map(Tt):[]))}const K=M&&I?$i(I,M):null;V instanceof HTMLTableElement&&v(V,I,K);for(const J of V.querySelectorAll("table"))v(J,I,K)}function x(V){const M=o.get(V);if(M)return M;const I=V.closest("[data-mr-component-index]"),F=I?.closest(".mrp-page-holder"),K={pageIndex:Number(F?.dataset.page)-1,componentIndex:Number(I?.dataset.mrComponentIndex)};return Object.values(K).every(J=>Number.isInteger(J)&&J>=0)?(o.set(V,K),K):null}function f(V,M){const I=r.get(V),F=La.getDomCellAddress(V);if(I&&I.token===F)return I;const K=F?.rowIndex??Number(V.dataset.mrRowIndex),J=F?.columnIndex??Number(V.dataset.mrColumnIndex);if(![K,J].every(z=>Number.isInteger(z)&&z>=0))return null;const A={row:K,column:J,token:F,key:Tt({...M,rowIndex:K,columnIndex:J})};return r.set(V,A),A}function v(V,M,I){const F=x(V);if(!F)return;const K=M?.pages[F.pageIndex]?.components[F.componentIndex],J=K?.table?.role==="header"?"columnheader":"gridcell",A=I?Di(F,K,I):null;ct(V,"role","grid");for(const z of V.rows)for(const L of z.cells){const j=f(L,F);j&&Ii(L,j,J,Ri(j,A,I),I?.focusKey===j.key,i.size>0&&i.has(j.key))}}async function p(V,M=!1){if(!t.plan.value||!d(t.plan.value).cellAt(V))return!1;const I=a.value,F=M&&I&&Ce(t.plan.value,I.anchor).grid===Ce(t.plan.value,V,I.anchor).grid;a.value={anchor:F?I.anchor:{...V},focus:{...V}},t.root.value?.querySelector(Rt(V))||t.gotoPage(V.pageIndex+1),await e.nextTick(),t.ensureVisible?.(V),g();const K=t.root.value?.querySelector(Rt(V));return K?.focus({preventScroll:!0}),K?.scrollIntoView?.({block:"nearest",inline:"nearest"}),!!K}function w(V){const M=V.target;if(!(M instanceof Element)||M.closest("textarea,input,button,select"))return;const I=M.closest("td[data-mr-row-index]"),F=I&&Mt(I);if(!F||t.busy()||!t.plan.value||!d(t.plan.value).cellAt(F))return;const K=a.value,J=V.shiftKey&&K&&Ce(t.plan.value,K.anchor).grid===Ce(t.plan.value,F,K.anchor).grid;a.value={anchor:J?K.anchor:{...F},focus:{...F}},g(),I.focus({preventScroll:!0})}function y(V){return t.plan.value?d(t.plan.value).addresses(V):[]}function h(V,M,I){return t.plan.value?d(t.plan.value).adjacent(V,M,I):void 0}function k(V,M,I){if(M==="ArrowLeft"||M==="ArrowRight")return;const F=t.plan.value;if(!F.pages[V.pageIndex]?.components[V.componentIndex]?.table)return;const J=M==="ArrowUp"||I?-1:1;for(let A=V.pageIndex;A>=0&&A<F.pages.length;A+=J){const z=F.pages[A].components,L=A===V.pageIndex?V.componentIndex+J:J===1?0:z.length-1;for(let j=L;j>=0&&j<z.length;j+=J){const q=S(V,{...V,pageIndex:A,componentIndex:j},M,J);if(q)return q}}}function S(V,M,I,F){const K=t.plan.value,J=K.pages[V.pageIndex].components[V.componentIndex].table,A=K.pages[M.pageIndex].components[M.componentIndex]?.table;if(A?.id!==J.id||A.role==="header"&&J.role!=="header"&&(F>0||J.rowIndex+V.rowIndex>0))return;const z=y(M),L=I==="Tab"?z:z.filter(j=>j.columnIndex===V.columnIndex);return F===1?L[0]:L[L.length-1]}function b(V,M,I=!1,F=!1,K=!1){const J=h(V,M,I)??k(V,M,I);return J?(p(J,F),!0):((M!=="Tab"||!K)&&p(V),!1)}function B(V){const M=a.value;if(t.busy()||V.target instanceof Element&&V.target.closest("textarea,input,select,button,a[href],[contenteditable]"))return!1;if(!M)return D(V);const I=V.key;if(C(V)||P(V,M.focus))return!0;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Tab","Enter"].includes(I))return!1;const F=b(M.focus,I,I==="Tab"&&V.shiftKey,V.shiftKey&&I!=="Tab",!0);if(I==="Tab"&&!F){const K=t.root.value?.ownerDocument.activeElement;if(!(K instanceof HTMLElement)||!Ci(K,V.shiftKey))return!1}return V.preventDefault(),!0}function C(V){if(!n()||!(V.ctrlKey||V.metaKey))return!1;const M=V.key.toLowerCase();return M!=="z"&&M!=="y"?!1:(V.preventDefault(),M==="y"||V.shiftKey?t.redo():t.undo(),!0)}function P(V,M){if(!n()||!t.plan.value||V.key!=="F2"&&!(V.key==="Enter"&&d(t.plan.value).cellAt(M)?.editable))return!1;const I=t.root.value?.querySelector(Rt(M));return I&&(V.preventDefault(),t.edit(I)),!0}function D(V){if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Enter"].includes(V.key))return!1;const M=t.root.value?.querySelector("td[data-mr-row-index]"),I=M&&Mt(M);return I?(V.preventDefault(),p(I),!0):!1}function G(){const V=a.value,M=t.plan.value;if(!V||!M)return"";const I=[],F=Ce(M,V.anchor),K=Ce(M,V.focus,V.anchor),J=En(M,V.anchor),A=Q.createReportCellResolver(M),z=Math.min(F.column,K.column),L=Math.max(F.column,K.column);if((Math.abs(F.row-K.row)+1)*(L-z+1)>1e4)return t.error(new Q.ReportCellEditError("limit")),"";for(let j=Math.min(F.row,K.row);j<=Math.max(F.row,K.row);j++){const q=[];for(let oe=z;oe<=L;oe++){const te=J(j,oe);q.push(te?A(te)?.cell.text??"":"")}I.push(q)}return Q.formatReportClipboard(I)}function U(V){!a.value||V.target instanceof Element&&V.target.closest("textarea,input,select")||(V.clipboardData?.setData("text/plain",G()),V.preventDefault())}async function _(V){const M=a.value;if(!M||!n()||t.busy())return!1;try{let I;try{I=Q.parseReportClipboard(V)}catch(L){throw new Q.ReportCellEditError(L instanceof Error&&L.message.includes("limit")?"limit":"clipboard")}const F=t.plan.value,K=Ce(F,M.anchor),J=Ce(F,M.focus,M.anchor),A=En(F,M.anchor),z=I.flatMap((L,j)=>L.map((q,oe)=>{const te=A(Math.min(K.row,J.row)+j,Math.min(K.column,J.column)+oe);if(!te)throw new Q.ReportCellEditError("missing");return{address:te,value:q}}));return await t.apply(z)}catch(I){return t.error(I),!1}}function ne(V){if(!a.value||!n()||V.target instanceof Element&&V.target.closest("textarea,input,select,button,a[href],[contenteditable]")||!V.clipboardData?.types.includes("text/plain"))return;const M=V.clipboardData?.getData("text/plain");M&&(V.preventDefault(),_(M))}async function ae(V){const M=t.plan.value;if(!M)return!1;const I=d(M).findField(V);return I?p(I):!1}function le(){a.value=null,g()}return{selection:a,refresh:g,reset:le,focusCell:p,focusField:ae,navigate:b,onClick:w,onKeydown:B,onCopy:U,onPaste:ne,copySelection:G,pasteSelection:_}}function Mi(t){const n=e.shallowRef(null),a=e.shallowRef(!1);let o=0,r=null;function l(u){const c=r;r=null,n.value=null,a.value=!1,c?.(u)}function s(){o++,l(!1)}async function i(u){if(s(),!t.enabled()||!t.pending())return!0;const c=o,d=[...t.snapshot?.()??[]];a.value=!0;const m=Object.freeze({reason:u,reportIds:Object.freeze([...t.reportIds()]),pendingLocalChanges:!0});try{const g=t.hook(),x=await new Promise(v=>{if(r=v,!g){n.value=m;return}Promise.resolve().then(()=>g(m)).then(p=>{c===o&&l(p===!0)},p=>{if(c===o){try{t.error(p)}catch{}l(!1)}})}),f=t.snapshot?.()??[];return c===o&&x===!0&&f.length===d.length&&d.every((v,p)=>Object.is(v,f[p]))}catch(g){if(c===o){try{t.error(g)}catch{}l(!1)}return!1}}return{request:n,pending:a,check:i,settle:l,cancel:s}}function Ti(t){const n=e.computed(()=>t.plan.value?Q.createReportCellResolver(t.plan.value):null);e.watch([t.plan,t.options,t.selection],()=>{t.attempted.value=null},{flush:"sync"});function a(o,r,l){const s=l.editReadOnly??"";return o.cell.formula!==void 0?l.editCellFormula??s:o.editable?r.canEdit?.(o)===!1?r.readOnlyReason?.(o)||l.editCellPermission||s:r.requireSource&&!o.source?l.editMissing??s:t.plan.value?.requiresRecalculation&&(!o.source||!Q.getReportEditSession(t.plan.value))?l.editRecalculationUnavailable??s:null:{cell:l.editCellProtected,formula:l.editCellFormula,complex:l.editCellComplex,structure:l.editCellStructure,derived:l.editCellDerived}[o.readOnlyReason??"cell"]??s}return e.computed(()=>{if(!t.options.value)return null;const o=t.attempted.value??t.selection.value?.focus,r=o&&n.value?.(o);if(!r)return null;const l=t.messages(),s=typeof t.options.value=="object"?t.options.value:{};try{const i=t.busy()?l.editCellBusy??l.editReadOnly??"":a(r,s,l);return{editable:i===null,label:i===null?l.editCellEditable:l.editCellReadOnly,message:i??l.editingHint}}catch{return{editable:!1,label:l.editCellReadOnly,message:l.editCellPermission}}})}function Oi(t){const n=e.shallowRef(null);function a(c){if(!(c instanceof Q.ReportCellEditError))return c instanceof Error?c.message:"单元格保存失败";const d=t.messages();return{number:d.editInvalidNumber,boolean:d.editInvalidBoolean,conflict:d.editConflict,atomic:d.editAtomicRequired,limit:d.clipboardLimit,readonly:d.editReadOnly,missing:d.editMissing,recalculation:d.editRecalculationUnavailable,duplicate:d.editDuplicate,clipboard:d.clipboardInvalid}[c.code]??c.message}const o=Ei({plan:t.plan,options:t.options,blocked:()=>t.busy()||l.pending.value,label:()=>t.messages().editCell??"编辑单元格",errorMessage:a,suspendBlur:()=>l.request.value!==null,onChange:t.changed,onError:t.failed,onInspect:c=>{n.value=c},onNavigate:(c,d,m)=>r.navigate(c,d,m)}),r=Pi({plan:t.plan,root:t.root,enabled:t.selectionEnabled,editable:()=>!!t.options.value,busy:()=>t.busy()||o.saving.value||l.pending.value,differences:()=>o.differences.value,gotoPage:t.gotoPage,ensureVisible:t.ensureVisible,edit:o.editCell,apply:o.apply,undo:o.undo,redo:o.redo,error:c=>t.failed(a(c),c)}),l=Mi({...t.guard,pending:()=>o.pendingLocalChanges.value,snapshot:()=>[t.plan.value,o.active.value?.editor.input.value]}),s=Ti({...t,selection:r.selection,attempted:n,busy:()=>t.busy()||o.saving.value||l.pending.value});function i(c="leave"){return l.check(c)}function u(c){!t.guard.enabled()||!o.pendingLocalChanges.value||(c.preventDefault(),c.returnValue="")}return e.onMounted(()=>window.addEventListener("beforeunload",u)),e.onUnmounted(()=>{window.removeEventListener("beforeunload",u),l.cancel(),o.reset()}),{editing:o,cells:r,cellStatus:s,discard:l,confirmDiscard:i}}let Ai=0;function Fi(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,c,d){const m=`mr-task-${Date.now().toString(36)}-${++Ai}`;a.add(m),o=d,r({taskId:m,kind:u,stage:c,status:"running",cancellable:!0});function g(f,v,p){n.value?.taskId!==m||n.value.status!=="running"||r({...n.value,stage:f,completed:v,total:p})}function x(f="completed"){n.value?.taskId!==m||n.value.status!=="running"||(o=null,r({...n.value,status:f,cancellable:!1}))}return{taskId:m,update:g,finish:x}}function s(){if(n.value?.status!=="running")return;const u=o;o=null,r({...n.value,status:"cancelled",cancellable:!1}),u?.()}function i(u,c){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"?c:null,r({...u}))}return{state:n,start:l,cancel:s,receive:i}}function zi(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 c=o,d=[];for(const m of u){const g=JSON.stringify([m.code,m.format,m.pageIndex,m.componentIndex,m.componentPath,m.path,m.message,m.valueState,m.target]);if(a.has(g))continue;a.add(g);const x=Object.freeze({...m,...m.target?{target:Object.freeze({...m.target})}:{},...m.componentPath?{componentPath:Object.freeze([...m.componentPath])}:{}});d.push(x)}d.length&&(n.value=Object.freeze([...n.value,...d]));for(const m of d){if(c!==o)break;try{t(m)}catch{}}}function s(u){l([u])}function i(u,c){const d=Q.inspectOutputCapabilities(u,c);return l(d),d}return{entries:n,reset:r,add:s,addMany:l,inspect:i}}function Li(t){const n=t.table?.columnKeys??[],a=n.map(()=>[]);if(!t.grid)return n;for(const{ci:o,cell:r}of Y.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 Qn(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=Li(s),c=n.filter(x=>x.pageIndex<=r),d=c[c.length-1]?.label,m=i.source?.datasetId,g=[...new Set([d,i.title,m].filter(Boolean))].join(" · ")||i.id;i.columnKeys.forEach((x,f)=>{x&&o.push({key:JSON.stringify([i.id,f]),field:x,label:u[f],group:g,pageIndex:r,tableId:i.id,...m?{datasetId:m}:{}})})}return o}function Ki(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))})}const qi={class:"mrp-edit-bar"},ji=["disabled"],Hi=["disabled"],Wi=["aria-expanded"],Ui=["aria-label"],Gi={class:"mrp-change-filters"},Ji=["aria-label","placeholder"],Zi=["aria-label"],Xi={value:""},Yi=["value"],Qi={key:0,class:"mrp-changes-empty"},_i={key:1,class:"mrp-changes-empty"},ec=["start"],tc=["disabled","onClick"],nc=["title"],ac=["title"],oc={role:"status"},rc={key:0},lc=["aria-label","disabled"],sc=["aria-label","disabled"],ic=["disabled"],cc={key:0,role:"status"},uc={key:1,role:"status"},dc={key:2,class:"mrp-history-limited",role:"status"},mc={key:3,class:"mrp-conflicts",open:""},Ne=100,fc=e.defineComponent({__name:"ReportEditBar",props:{differences:{},conflicts:{},messages:{},saving:{type:Boolean},canUndo:{type:Boolean},canRedo:{type:Boolean},busy:{type:Boolean},persisted:{type:Boolean},plan:{},historyLimited:{type:Boolean}},emits:["undo","redo","restore","locate"],setup(t){const n=t,{opened:a,root:o,trigger:r,panel:l,onKeydown:s}=ce.usePopover(),i=`mrp-changes-${e.getCurrentInstance()?.uid??0}`,u=e.ref(""),c=e.ref(""),d=e.ref(0),m=e.computed(()=>new Map(Qn(n.plan).map(y=>[JSON.stringify([y.tableId,y.field]),y.label])));function g(y){const h=y.source?.field??y.table?.columnKey;return m.value.get(JSON.stringify([y.table?.id,h]))??h??`${y.address.columnIndex+1}`}function x(y){const h=y.source?.rowKey??`${y.address.pageIndex+1} / ${y.address.rowIndex+1}`;return`${g(y)} · ${h}`}const f=e.computed(()=>a.value?[...new Set(n.differences.map(y=>y.source?.datasetId).filter(y=>!!y))]:[]),v=e.computed(()=>{if(!a.value)return[];const y=u.value.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return n.differences.filter(h=>{if(c.value&&h.source?.datasetId!==c.value)return!1;const k=`${x(h)} ${h.source?.field??""} ${h.source?.datasetId??""}`.toLocaleLowerCase();return y.every(S=>k.includes(S))})}),p=e.computed(()=>v.value.slice(d.value*Ne,(d.value+1)*Ne)),w=e.computed(()=>n.messages.changesRange?.replace("{start}",String(v.value.length?d.value*Ne+1:0)).replace("{end}",String(Math.min((d.value+1)*Ne,v.value.length))).replace("{total}",String(v.value.length)));return e.watch([u,c],()=>{d.value=0}),e.watch(()=>v.value.length,y=>{d.value=Math.min(d.value,Math.max(0,Math.ceil(y/Ne)-1))}),e.watch(f,y=>{c.value&&!y.includes(c.value)&&(c.value="")}),(y,h)=>(e.openBlock(),e.createElementBlock("div",qi,[e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.canUndo,onClick:h[0]||(h[0]=k=>y.$emit("undo"))},e.toDisplayString(t.messages.undo),9,ji),e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.canRedo,onClick:h[1]||(h[1]=k=>y.$emit("redo"))},e.toDisplayString(t.messages.redo),9,Hi),e.createElementVNode("div",{ref_key:"root",ref:o,class:"mrp-changes",onKeydown:h[7]||(h[7]=(...k)=>e.unref(s)&&e.unref(s)(...k))},[e.createElementVNode("button",{ref_key:"trigger",ref:r,type:"button",class:"mrp-changes-trigger","aria-haspopup":"dialog","aria-expanded":e.unref(a),"aria-controls":i,onClick:h[2]||(h[2]=k=>a.value=!e.unref(a))},[e.createTextVNode(e.toDisplayString(t.messages.changes),1),e.createElementVNode("span",null,e.toDisplayString(t.differences.length),1),e.createVNode(W._sfc_main,{name:"chevron-down",size:12})],8,Wi),e.unref(a)?(e.openBlock(),e.createElementBlock("section",{key:0,id:i,ref_key:"panel",ref:l,role:"dialog","aria-label":t.messages.changes},[e.createElementVNode("header",null,[e.createElementVNode("strong",null,e.toDisplayString(t.messages.changes),1),e.createElementVNode("span",null,e.toDisplayString(t.messages.changesCount?.replace("{count}",String(t.differences.length))),1)]),e.createElementVNode("div",Gi,[e.createElementVNode("label",null,[e.createVNode(W._sfc_main,{name:"search",size:14}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[3]||(h[3]=k=>u.value=k),type:"search","aria-label":t.messages.changesSearch,placeholder:t.messages.changesSearch},null,8,Ji),[[e.vModelText,u.value]])]),f.value.length>1?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:0,"onUpdate:modelValue":h[4]||(h[4]=k=>c.value=k),"aria-label":t.messages.changesAllDatasets},[e.createElementVNode("option",Xi,e.toDisplayString(t.messages.changesAllDatasets),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,k=>(e.openBlock(),e.createElementBlock("option",{key:k,value:k},e.toDisplayString(k),9,Yi))),128))],8,Zi)),[[e.vModelSelect,c.value]]):e.createCommentVNode("",!0)]),t.differences.length?v.value.length?(e.openBlock(),e.createElementBlock("ol",{key:2,start:d.value*Ne+1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(k,S)=>(e.openBlock(),e.createElementBlock("li",{key:d.value*Ne+S},[e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving,onClick:b=>y.$emit("locate",k)},e.toDisplayString(x(k)),9,tc),e.createElementVNode("span",null,[e.createElementVNode("s",{title:t.messages.changesBefore},e.toDisplayString(k.previousText||"∅"),9,nc),h[9]||(h[9]=e.createElementVNode("i",{"aria-hidden":"true"},"→",-1)),e.createElementVNode("strong",{title:t.messages.changesAfter},e.toDisplayString(k.text||"∅"),9,ac)])]))),128))],8,ec)):(e.openBlock(),e.createElementBlock("p",_i,e.toDisplayString(t.messages.changesNoMatches),1)):(e.openBlock(),e.createElementBlock("p",Qi,e.toDisplayString(t.messages.changesEmpty),1)),e.createElementVNode("footer",null,[e.createElementVNode("span",oc,e.toDisplayString(w.value),1),v.value.length>Ne?(e.openBlock(),e.createElementBlock("div",rc,[e.createElementVNode("button",{type:"button","aria-label":t.messages.prevPage,disabled:d.value===0,onClick:h[5]||(h[5]=k=>d.value--)},[e.createVNode(W._sfc_main,{name:"chevron-left",size:14})],8,lc),e.createElementVNode("button",{type:"button","aria-label":t.messages.nextPage,disabled:(d.value+1)*Ne>=v.value.length,onClick:h[6]||(h[6]=k=>d.value++)},[e.createVNode(W._sfc_main,{name:"chevron-right",size:14})],8,sc)])):e.createCommentVNode("",!0)])],8,Ui)):e.createCommentVNode("",!0)],544),e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.differences.length,onClick:h[8]||(h[8]=k=>y.$emit("restore"))},e.toDisplayString(t.messages.restoreChanges),9,ic),t.saving?(e.openBlock(),e.createElementBlock("span",cc,e.toDisplayString(t.messages.saving),1)):t.differences.length&&!t.conflicts.length?(e.openBlock(),e.createElementBlock("span",uc,e.toDisplayString(t.persisted?t.messages.editSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.historyLimited?(e.openBlock(),e.createElementBlock("span",dc,e.toDisplayString(t.messages.editHistoryLimited),1)):e.createCommentVNode("",!0),t.conflicts.length?(e.openBlock(),e.createElementBlock("details",mc,[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,(k,S)=>(e.openBlock(),e.createElementBlock("li",{key:S},e.toDisplayString(k.message),1))),128))])])):e.createCommentVNode("",!0)]))}}),pc=W._export_sfc(fc,[["__scopeId","data-v-94719feb"]]);function gc(t){const n=ce.usePopover(),a=e.ref(""),o=e.ref(0),r=`mrp-column-list-${e.getCurrentInstance()?.uid??0}`,l=e.computed(()=>Qn(t.plan(),t.sections())),s=e.computed(()=>Ki(l.value,a.value)),i=e.computed(()=>s.value.slice(0,100)),u=e.computed(()=>[...new Set(i.value.map(f=>f.group))].map(f=>({label:f,items:i.value.filter(v=>v.group===f)})));e.watch(a,()=>{o.value=0}),e.watch(t.busy,f=>{f&&n.close()}),e.watch(l,()=>{o.value=0});function c(f){t.busy()||(t.locate(f),n.close(!0))}function d(){if(t.busy())return;const f=i.value[o.value];f?c(f):a.value.trim()&&(t.locateField(a.value.trim()),n.close(!0))}function m(){a.value="",n.panel.value?.querySelector("input")?.focus()}function g(f){if(!(f.isComposing||f.keyCode===229||!["ArrowDown","ArrowUp","Enter"].includes(f.key))){if(f.preventDefault(),f.stopPropagation(),f.key==="Enter"){d();return}i.value.length&&(o.value=(o.value+(f.key==="ArrowDown"?1:-1)+i.value.length)%i.value.length,e.nextTick(()=>n.panel.value?.querySelector(`[id="${r}-${o.value}"]`)?.scrollIntoView?.({block:"nearest"})))}}function x(f){return i.value.findIndex(v=>v.key===f)}return{...n,field:a,active:o,listId:r,directory:l,matches:s,candidates:i,groups:u,choose:c,submit:d,clear:m,onSearchKeydown:g,candidateIndex:x}}const vc=["aria-label"],yc={key:0,class:"mrp-section-tabs"},bc=["aria-current","disabled","onClick"],hc=["aria-expanded","disabled"],wc={key:0,class:"mrp-column-count"},kc=["aria-label"],xc={class:"mrp-column-heading"},Ec=["aria-label"],Cc=["aria-label","placeholder","aria-controls","aria-activedescendant","disabled"],Sc=["aria-label"],Nc=["id","aria-label"],Bc={key:0,class:"mrp-column-empty",role:"status"},Vc=["aria-label"],$c=["id","aria-selected","disabled","onPointermove","onClick"],Dc=["title"],Rc={class:"mrp-column-help",role:"status"},Ic=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=gc({plan:()=>a.plan,sections:()=>a.sections,busy:()=>a.busy,locate:k=>o("locate-target",k),locateField:k=>o("locate",k)}),{root:l,trigger:s,panel:i,opened:u,field:c,active:d,directory:m,matches:g,candidates:x,groups:f,listId:v}=r,p=e.computed(()=>m.value.length>0||!a.plan||a.plan.pages.some(k=>k.components.some(S=>S.table?.columnKeys.length))),w=e.computed(()=>({columnDirectory:"字段目录",columnSearch:"搜索列名或字段",columnNoMatches:"未找到匹配字段",columnResults:"匹配字段",...a.messages})),y=e.computed(()=>(a.messages.columnResultsMore??"{count} 个匹配字段,显示前 {limit} 个;继续输入可缩小范围").replace("{count}",String(g.value.length)).replace("{limit}",String(x.value.length)));function h(k){const S=a.sections[k];return!!S&&a.currentPage>=S.pageIndex+1&&(!a.sections[k+1]||a.currentPage<=a.sections[k+1].pageIndex)}return(k,S)=>t.sections.length>1||p.value?(e.openBlock(),e.createElementBlock("nav",{key:0,class:e.normalizeClass(["mrp-section-nav",{"mrp-compact":t.compact}]),"aria-label":t.messages.sections??"工作表与章节"},[t.sections.length>1?(e.openBlock(),e.createElementBlock("div",yc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.sections,(b,B)=>(e.openBlock(),e.createElementBlock("button",{key:B,type:"button",class:e.normalizeClass({active:h(B)}),"aria-current":h(B)?"page":void 0,disabled:t.busy,onClick:C=>o("goto",b.pageIndex+1)},e.toDisplayString(b.label),11,bc))),128))])):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"root",ref:l,class:"mrp-column-locator",onKeydown:S[7]||(S[7]=(...b)=>e.unref(r).onKeydown&&e.unref(r).onKeydown(...b))},[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:S[0]||(S[0]=b=>u.value=!e.unref(u))},[e.createVNode(W._sfc_main,{name:"columns"}),e.createElementVNode("span",null,e.toDisplayString(w.value.columnDirectory),1),e.unref(m).length?(e.openBlock(),e.createElementBlock("span",wc,e.toDisplayString(e.unref(m).length),1)):e.createCommentVNode("",!0),e.createVNode(W._sfc_main,{name:"chevron-down",size:12})],10,hc),e.unref(u)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panel",ref:i,class:"mrp-column-directory",role:"dialog","aria-label":w.value.columnDirectory},[e.createElementVNode("div",xc,[e.createElementVNode("span",null,[e.createVNode(W._sfc_main,{name:"columns"}),e.createTextVNode(e.toDisplayString(w.value.columnDirectory),1)]),e.createElementVNode("button",{type:"button",class:"mrp-column-close","aria-label":t.messages.closeColumnDirectory??"关闭字段目录",onClick:S[1]||(S[1]=b=>e.unref(r).close(!0))},[e.createVNode(W._sfc_main,{name:"close",size:15})],8,Ec)]),e.createElementVNode("form",{class:"mrp-column-search",onSubmit:S[5]||(S[5]=e.withModifiers((...b)=>e.unref(r).submit&&e.unref(r).submit(...b),["prevent"]))},[e.createVNode(W._sfc_main,{name:"search"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[2]||(S[2]=b=>e.isRef(c)?c.value=b:null),type:"search",autocomplete:"off",spellcheck:"false",role:"combobox","aria-label":w.value.columnSearch,placeholder:w.value.columnSearch,"aria-autocomplete":"list","aria-expanded":"true","aria-controls":e.unref(v),"aria-activedescendant":e.unref(x).length?`${e.unref(v)}-${e.unref(d)}`:void 0,disabled:t.busy,onKeydown:S[3]||(S[3]=(...b)=>e.unref(r).onSearchKeydown&&e.unref(r).onSearchKeydown(...b))},null,40,Cc),[[e.vModelText,e.unref(c)]]),e.unref(c)?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-column-clear",type:"button","aria-label":t.messages.clearSearch??"清除搜索",onClick:S[4]||(S[4]=(...b)=>e.unref(r).clear&&e.unref(r).clear(...b))},[e.createVNode(W._sfc_main,{name:"close",size:13})],8,Sc)):e.createCommentVNode("",!0)],32),e.createElementVNode("div",{id:e.unref(v),class:"mrp-column-results",role:"listbox","aria-label":w.value.columnResults},[e.unref(x).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Bc,[e.createVNode(W._sfc_main,{name:"search",size:22}),e.createTextVNode(e.toDisplayString(w.value.columnNoMatches),1)])),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),b=>(e.openBlock(),e.createElementBlock("section",{key:b.label,role:"group","aria-label":b.label},[e.createElementVNode("strong",null,e.toDisplayString(b.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.items,B=>(e.openBlock(),e.createElementBlock("button",{id:`${e.unref(v)}-${e.unref(r).candidateIndex(B.key)}`,key:B.key,type:"button",role:"option",tabindex:"-1",class:e.normalizeClass({"mrp-column-active":e.unref(r).candidateIndex(B.key)===e.unref(d)}),"aria-selected":e.unref(r).candidateIndex(B.key)===e.unref(d),disabled:t.busy,onPointermove:C=>d.value=e.unref(r).candidateIndex(B.key),onMousedown:S[6]||(S[6]=e.withModifiers(()=>{},["prevent"])),onClick:C=>e.unref(r).choose(B)},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(B.label),1),e.createElementVNode("code",{title:B.field},e.toDisplayString(B.field),9,Dc)]),e.createVNode(W._sfc_main,{name:"arrow-right",size:14})],42,$c))),128))],8,Vc))),128))],8,Nc),e.createElementVNode("p",Rc,e.toDisplayString(e.unref(g).length>e.unref(x).length?y.value:t.messages.columnSearchShortcut??"↑ ↓ 选择 · Enter 定位"),1)],8,kc)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)],10,vc)):e.createCommentVNode("",!0)}}),Sn=W._export_sfc(Ic,[["__scopeId","data-v-15a41f0e"]]),Pc={class:"mrp-import-summary"},Mc={key:0},Tc={key:0},Oc=e.defineComponent({__name:"ReportImportSummary",props:{result:{},messages:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("details",Pc,[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",Mc," · "+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",Tc,[(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)]))}}),Ac=W._export_sfc(Oc,[["__scopeId","data-v-54f275e8"]]),ft=["html","pdf","xlsx","png","word"],Ot=["search","thumbnails","zoom",...ft,"print","pdfWindow","editing","import"];function Fc(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 zc(t,n,a,o){const r=e.ref({});let l=0,s=0,i=Promise.resolve();const u=e.computed(()=>Object.fromEntries(Ot.map(f=>[f,t.value[f]&&(r.value[f]??n.value[f]??!0)])));function c(){const f=a?.value;if(!f)return;const v={...r.value};i=i.then(()=>f.adapter.save(f.key,v)).catch(p=>{o?.(p)})}function d(f,v){t.value[f]&&(s++,r.value={...r.value,[f]:v},c())}function m(f){return r.value[f?"wideZoomMode":"zoomMode"]}function g(f,v){const p=f?"wideZoomMode":"zoomMode";r.value[p]!==v&&(s++,r.value={...r.value,[p]:v},c())}function x(){s++,r.value={},c()}return a&&e.watch(a,async f=>{const v=++l,p=s;if(r.value={},!!f)try{const w=await f.adapter.load(f.key);if(v!==l||p!==s||!w||typeof w!="object")return;const y=Object.fromEntries(Ot.flatMap(h=>typeof w[h]=="boolean"?[[h,w[h]]]:[]));r.value={...y,...Lc(w)}}catch(w){v===l&&o?.(w)}},{immediate:!0}),e.onScopeDispose(()=>{l++}),{enabled:u,setEnabled:d,reset:x,getZoomMode:m,setZoomMode:g}}function Lc(t){const n={};for(const a of["zoomMode","wideZoomMode"]){const o=t[a];(o==="fit"||typeof o=="number"&&Number.isFinite(o)&&o>=30&&o<=300)&&(n[a]=o)}return n}function Kc(t,n,a){const o=e.ref({}),r=ce.useMachReportConfig(),l=e.computed(()=>ce.resolveConfig(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),c=e.computed(()=>t.showPdfWindow??l.value.showPdfWindow),d=e.computed(()=>t.showSettings??l.value.showSettings),m=e.computed(()=>t.guardChanges??l.value.guardChanges),g=e.computed(()=>({...l.value.output,...t.output})),x=e.computed(()=>({...l.value.toolbar,...t.toolbar})),f=e.computed(()=>({...l.value.interaction,...t.interaction,...o.value})),v=e.computed(()=>({...l.value.refresh,...t.refresh})),p=e.computed(()=>({...l.value.toolbar.unavailableReasons,...t.toolbar?.unavailableReasons})),w=e.computed(()=>t.preferences??l.value.preferences),y=e.computed(()=>t.assets??l.value.assets),h=e.computed(()=>t.gapPx??(n.value?0:l.value.gapPx)),k=e.computed(()=>t.showParams??l.value.showParams),S=e.computed(()=>t.editable??l.value.editable),b=e.computed(()=>t.excelImport??l.value.excelImport),B=e.computed(()=>({search:x.value.search!==!1,thumbnails:x.value.thumbnails!==!1,zoom:x.value.zoom!==!1,...Object.fromEntries(ft.map(ae=>[ae,i.value&&(x.value.exportFormats?.includes(ae)??!0)])),print:u.value,pdfWindow:c.value,editing:!!S.value,import:!!b.value})),C=zc(B,e.computed(()=>({editing:x.value.editing,import:x.value.excelImport})),w,()=>a(s.value.preferencesError??"Preferences storage unavailable")),P=C.enabled,D=e.computed(()=>ft.filter(ae=>P.value[ae])),G=e.computed(()=>P.value.editing?S.value:!1),U=e.computed(()=>P.value.import?b.value:!1),_=e.computed(()=>typeof S.value=="object"&&(typeof S.value.save=="function"||typeof S.value.saveBatch=="function")),ne=e.computed(()=>typeof t.emptyState=="object"?t.emptyState:{});return{effectivePreferences:w,effectiveRefresh:v,unavailableReasons:p,resolved:l,resolvedMessages:s,effectiveShowExport:i,effectiveShowPrint:u,effectiveShowPdfWindow:c,effectiveShowSettings:d,effectiveGuardChanges:m,effectiveOutput:g,effectiveInteraction:f,effectiveAssets:y,effectiveGapPx:h,effectiveShowParams:k,availableTools:B,tools:C,toolState:P,visibleExportFormats:D,effectiveEditable:G,effectiveExcelImport:U,persistedEditing:_,emptyStateContent:ne,sessionInteraction:o}}const Te=96/25.4;function qc(t){let n=0,a=null,o=null,r="",l=[];const s=new WeakSet;let i={count:0,headers:!1,inset:0};function u(p){p.content.style.overflow=p.overflow;for(const w of p.components){w.element.style.transform=w.transform,w.element.style.zIndex=w.zIndex,w.element.style.removeProperty("--mrp-freeze-y");for(const y of w.cells.values())y.cell.style.cssText=y.css,y.cell.classList.remove("mrp-cell-frozen");w.table&&(w.table.style.cssText=w.tableCss)}}function c(p,w,y,h,k){const S=Y.resolveGridLayout(w.grid,w.widthMm,w.heightMm),b=Array.from({length:y},(D,G)=>`td[data-mr-column-index="${G}"]`);h&&!w.table&&b.push('td[data-mr-row-index="0"]');const B={element:p,component:w,transform:p.style.transform,zIndex:p.style.zIndex,selector:b.join(","),cells:new Map,layout:S};h&&w.table?.role==="header"?(p.style.transform="translate3d(0,var(--mrp-freeze-y,0px),0)",p.style.zIndex="5"):y&&(p.style.zIndex="1");const P=p.querySelector("table");return y&&P&&(B.table=P,B.tableCss=P.style.cssText,P.style.display="grid",P.style.gridTemplateColumns=S.columns.map(D=>`${D.size*Te}px`).join(" "),P.style.gridTemplateRows=S.rows.map(D=>`${D.size*Te}px`).join(" ")),d(B,y,h,k),B}function d(p,w,y,h){const{element:k,component:S,layout:b}=p,B=y&&S.table?.role==="header";for(const C of p.cells.keys())k.contains(C)||p.cells.delete(C);p.selector&&k.querySelectorAll(p.selector).forEach(C=>{if(p.cells.has(C))return;const P=Number(C.dataset.mrColumnIndex)<w,D=y&&!S.table&&Number(C.dataset.mrRowIndex)===0;if(!(!P&&!D)){if(p.cells.set(C,{cell:C,css:C.style.cssText}),P){const G=Number(C.dataset.mrColumnIndex),U=Number(C.dataset.mrRowIndex);C.style.position="sticky",C.style.left=`${(b.columns[G]?.pos??0)*Te-h}px`,C.style.top="auto",C.style.gridColumn=`${G+1} / span ${C.getAttribute("colspan")||1}`,C.style.gridRow=`${U+1} / span ${C.getAttribute("rowspan")||1}`}D&&(C.style.transform="translate3d(0,var(--mrp-freeze-y,0px),0)"),C.style.zIndex=D||B?"7":"6",C.style.setProperty("--mrp-frozen-fill",C.style.backgroundColor||"transparent"),C.classList.add("mrp-cell-frozen")}})}function m(p,w,y,h,k){const S=Number(p.dataset.page)-1,b=w.pages[S],B=p.firstElementChild;if(!b||!(B instanceof HTMLElement))return;const C=B.style.overflow;y&&(B.style.overflow="clip");const P=[];return p.querySelectorAll("[data-mr-component-index]").forEach(D=>{const G=b.components[Number(D.dataset.mrComponentIndex)];G?.grid&&!G.style?.rotateDeg&&P.push(c(D,G,y,h,k))}),{holder:p,content:B,overflow:C,index:S,components:P}}function g(p,w,y,h,k){const S=`${y}:${h}:${k}`;if((a!==p||o!==w||r!==S)&&(l.forEach(u),l=[],a=p,o=w,r=S),!h&&!y)return;const b=new Map(l.map(B=>[B.holder,B]));l=[],p.querySelectorAll(".mrp-page-holder").forEach(B=>{let C=b.get(B);if(b.delete(B),C&&C.content!==B.firstElementChild&&(u(C),C=void 0),C&&s.has(B))for(const P of C.components)d(P,y,h,k);s.delete(B),C??=m(B,w,y,h,k),C&&l.push(C)}),b.forEach(u)}function x(){const p=t.viewport.value,w=t.root.value,y=t.plan.value;if(!p||!w||!y){l.forEach(u),l=[];return}const h=t.options(),k=Math.max(0,Math.min(20,Math.floor(h.frozenColumns??0)))||0,S=k?(parseFloat(getComputedStyle(p).paddingLeft)||0)/(t.zoom.value||1):0;if(i={count:k,headers:!!h.freezeHeaders,inset:S},g(w,y,k,!!h.freezeHeaders,S),!h.freezeHeaders)return;const b=t.zoom.value||1,B=p.getBoundingClientRect(),C=l.map(P=>({page:P,bounds:P.holder.getBoundingClientRect()}));for(const P of C){const{page:D,bounds:G}=P;for(const U of D.components){if(U.component.table&&U.component.table.role!=="header")continue;const _=U.component.topMm*Te,ne=U.component.heightMm*Te,ae=y.pages[D.index].pageHeightMm*Te-_-ne,le=Math.max(0,Math.min((B.top-G.top)/b-_,ae));U.element.style.setProperty("--mrp-freeze-y",`${le}px`)}}}function f(){n||(n=requestAnimationFrame(()=>{n=0,x()}))}function v(p){if(a!==t.root.value||o!==t.plan.value||!o){s.add(p),x();return}const{count:w,headers:y,inset:h}=i;if(!w&&!y)return;const k=l.find(S=>S.holder===p);if(k&&k.content===p.firstElementChild)for(const S of k.components)d(S,w,y,h);else{k&&(u(k),l=l.filter(b=>b!==k));const S=m(p,o,w,y,h);S&&l.push(S)}f()}return e.onScopeDispose(()=>{n&&cancelAnimationFrame(n),l.forEach(u),l=[]}),{refresh:x,schedule:f,mounted:v}}function jc(t,n,a,o){const r=o??(t.indexOf(n)===t.lastIndexOf(n)?t.indexOf(n):-1),l=r>=0&&t[r]===n?r:-1,s=JSON.stringify([l,n]);return a.map(i=>i.target?.reportScope?{...i,target:{...i.target}}:{...i,...i.target?{target:{...i.target,reportScope:s,...i.target.tableId?{tableId:JSON.stringify([l,n,i.target.tableId])}:{}}}:{}})}async function _n(t,n,a,o){if(!n?.assetRegistry&&(!n?.assetRenderers||!Object.keys(n.assetRenderers).length))return t;try{return(await Q.resolvePlanAssets(t,{...n,signal:a,format:"dom",onDiagnostic:l=>{a.aborted||(n.onDiagnostic?.(l),o(l.message))}})).plan}catch(r){throw a.aborted?r:new ce.MachReportError("render",r instanceof Error?r.message:"Report asset preparation failed",r)}}function ea(t,n){const a=Q.validateRenderPlan(t);if(!a.ok)throw new ce.MachReportError("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 Hc(t,n,a,o){const r=await Y.waitForOutput(t(n),n.signal);return Y.assertOutputActive(n.signal),o("validate"),ea(r,n.onWarning??(()=>{})),Y.assertOutputActive(n.signal),o("assets"),_n(r,a,n.signal,n.onWarning??(()=>{}))}async function Wc(t,n,a,o,r,l){const{importExcelTemplate:s}=await import("@agile-team/mach-report/xlsx");Y.assertOutputActive(o);const i=await Y.waitForOutput(s(t,{...n,signal:o}),o);l("layout");const u=Q.paginateTemplate(ve(i.template),{}).plan;ea(u,r),Y.assertOutputActive(o),l("assets");const c=await _n(u,a,o,r);return{result:i,plan:c}}function Uc({source:t,policy:n,feedback:a,view:o,events:r,task:l,diagnostics:s}){const i=e.shallowRef(null),u=e.ref(!1),c=e.ref(!1),d=e.ref(!1);let m;const g=e.shallowRef(null),x=e.shallowRef(null),{errorMessage:f,lastError:v,notice:p,reportError:w}=a,y=go();let h=!1;function k(){o.invalidate(),c.value=!1,d.value=!1,m=void 0,x.value=null,i.value=null,g.value=null,s.reset()}let S=0,b=null;function B(M,I){return M===S&&!I.signal.aborted&&!h}function C(M,I){for(const F of M){if(I!==S)return!1;r.warning(F)}return I===S}function P(){const M=t.readParams();return M.params?M.params:(!n.refresh?.().retainPrevious||!i.value?k():d.value=!0,f.value=M.quiet?"":M.error.message,M.quiet||(t.invalidParams(),w(M.error.message,M.error.code,M.error.cause)),null)}function D(M){const I=n.refresh?.(),F=!!I?.retainPrevious&&!!i.value&&!!g.value,K=I?.key,J=F&&K===m&&Gc(t.ids(),M,g.value);return F?(d.value=!0,s.reset()):k(),{retained:F,requestedKey:K,preservePosition:J}}async function G(){if(h)return;const M=n.guard("reload");if(!(typeof M=="boolean"?M:await M)||h)return;const I=++S;c.value=!1,b?.abort(),b=null;const F=t.fetcher();if(u.value=!1,v.value=null,t.ids().length===0){f.value="缺少报表 ID",k(),w(f.value,"param");return}if(!F){f.value="未提供渲染数据源 fetcher",k(),w(f.value,"config");return}const K=P();if(!K)return;u.value=!0,f.value="",p.value=null;const J=[...s.entries.value],{retained:A,requestedKey:z,preservePosition:L}=D(K),j=y.start(),q=new AbortController;b=q;const oe=l.start("query","query",()=>{b===q&&(q.abort(),S++,b=null,u.value=!1,A&&(s.reset(),s.addMany(J)))}),te=[...t.ids()],N=Object.freeze({...K}),R=new Set;function T($){I!==S||q.signal.aborted||R.has($)||(R.add($),r.logWarning($),s.add({code:"layout",severity:"warning",message:$}),r.warning($))}try{const $=await Hc(F,{reportIds:te,params:K,taskId:oe.taskId,onEvent:Z=>{I===S&&!q.signal.aborted&&oe.update(Z.stage,Z.completed,Z.total)},onQueryResult:(Z,ee,re)=>{I===S&&!q.signal.aborted&&s.addMany(jc(te,Z,ee.diagnostics??[],re))},signal:q.signal,onWarning:T},n.assets(),oe.update);if(!B(I,q)||(o.invalidate(L),x.value=null,i.value=$,d.value=!1,m=z,g.value=Object.freeze({reportIds:Object.freeze(te),params:N}),s.inspect($,"dom"),!B(I,q)))return;oe.finish(),y.end(j),o.accepted("query",L),r.loaded($.pages.length)}catch($){if(I!==S)return;if(q.signal.aborted){oe.finish("cancelled");return}oe.finish("failed"),A&&(s.reset(),s.addMany(J));const Z=ce.normalizeReportLoadError($);f.value=Z.message;const ee=ce.toErrorDetail(Z);w(Z.message,ee.code,ee.cause)}finally{I===S&&(u.value=!1),b===q&&(b=null)}}function U(M){const I=n.importOptions(),F=typeof I=="object"?I:{};return{...F,...M,limits:{...F.limits,...M?.limits}}}function _(M,I){o.invalidate(),d.value=!1,m=void 0,i.value=M,g.value=null,s.reset(),x.value={sheets:ve(I.sheets),warnings:[...I.warnings]},f.value="",p.value=I.warnings.length?{kind:"warning",message:I.warnings.join(";")}:null,o.accepted("import"),s.addMany(I.warnings.map(F=>({code:"excel-import",severity:"warning",message:F}))),i.value===M&&s.inspect(M,"dom")}async function ne(M,I){if(h)throw new ce.MachReportError("config","报表预览已卸载");const F=n.guard("import");if(!(typeof F=="boolean"?F:await F)||h)return null;const K=++S;b?.abort(),b=null,u.value=!1,o.beforeImport(),c.value=!0;const J=new AbortController;b=J,v.value=null,p.value={kind:"progress",message:n.importingMessage()??"正在导入 Excel…"};const A=l.start("import","import",()=>{b===J&&(J.abort(),S++,b=null,c.value=!1,p.value=null)}),z=U(I),L=Y.forwardOutputAbort(z.signal,J);try{const{result:j,plan:q}=await Wc(M,{...z,onProgress:(oe,te)=>{A.update("import",oe,te),z.onProgress?.(oe,te)}},n.assets(),J.signal,oe=>{K===S&&r.warning(oe)},A.update);return!B(K,J)||!C(j.warnings,K)||(_(q,j),!B(K,J))?null:(A.finish(),r.imported(j),K===S&&r.loaded(q.pages.length),j)}catch(j){if(K!==S)return null;if(J.signal.aborted)return A.finish("cancelled"),null;A.finish("failed");const q=new ce.MachReportError("import",j instanceof Error?j.message:"Excel 模板导入失败",j);throw p.value={kind:"error",message:q.message},w(q.message,"import",j),q}finally{L(),K===S&&(c.value=!1),b===J&&(b=null)}}function ae(){b&&l.cancel(),S++,b?.abort(),b=null,u.value=!1,c.value=!1,d.value=!!i.value}function le(){S++,b?.abort(),b=null,u.value=!1,f.value="",v.value=null,p.value=null,k()}function V(){h=!0,S++,b?.abort(),b=null,u.value=!1,c.value=!1}return e.onScopeDispose(V),{plan:i,loading:u,importing:c,stale:d,loadedContext:g,importedResult:x,timing:y,reload:G,importExcel:ne,invalidate:k,clear:le,retainPrevious:ae}}function Gc(t,n,a){if(t.length!==a.reportIds.length||t.some((r,l)=>r!==a.reportIds[l]))return!1;const o=Object.keys(n);return o.length===Object.keys(a.params).length&&o.every(r=>n[r]===a.params[r])}const Jc={key:8,class:"mrp-edit-hint",role:"status","aria-live":"polite"},Zc=["title"],Xc={key:10,class:"mrp-export-notice mrp-export-warning",role:"status"},Yc={key:11,class:"mrp-export-notice mrp-stale-snapshot",role:"status"},Qc={key:0},_c=["disabled"],eu={class:"mrp-main"},tu={key:0,class:"mrp-state"},nu={key:1,class:"mrp-state mrp-error"},au=["data-page"],ou=["aria-label","aria-current","onClick"],ru=["data-thumb"],lu={class:"mrp-thumb-no"},su=["aria-label","onKeydown"],iu={key:12,class:"mrp-footer"},cu={class:"mrp-footer-context"},uu=["aria-label","aria-expanded"],du={class:"mrp-overlay"},mu={key:13,class:"mrp-debug","aria-hidden":"true"},Pt=96/25.4,Nn="mach-report:ui",fu="mach-report:ui:wide",pu=e.defineComponent({__name:"ReportPreview",props:{prefill:{type:[Boolean,Object],default:void 0},dataComparison:{type:[Boolean,Object],default:void 0},drill:{type:Object,default:void 0},loadParamOptions:{type:Function,default:void 0},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},refresh:{type:Object,default:void 0},guardChanges:{type:Boolean,default:void 0},beforeDiscard:{type:Function,default:void 0},output:{type:Object,default:void 0},exportExecution:{type:Object,default:void 0},assets:{type:Object,default:void 0},printOptions:{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.ref(""),s=e.ref(!1),i=e.shallowRef(null),u=e.ref(null),c=e.ref(1),d=e.ref(null),m=e.ref(null),g=e.ref(null),x=e.ref(!1),f=e.ref(!1),v=e.ref("general"),p=e.ref(null),w=e.ref(null);let y=null,h=0,k=!1;const S=Fi(E=>r("task",E)),b=zi(E=>r("diagnostic",E)),B=e.computed(()=>b.entries.value.filter(E=>E.valueState&&E.target)),C=e.computed(()=>b.entries.value.filter(E=>!E.valueState)),P=Uc({source:{ids:()=>L.value,fetcher:()=>j.value,readParams:()=>nt.value.error?{error:nt.value.error,quiet:!1}:He.query(),invalidParams:()=>{nt.value.error||(at.value=!0)}},policy:{guard:E=>re.value&&X.pendingLocalChanges.value?Qe.check(E):!0,assets:()=>Ve.value,importOptions:()=>gt.value,importingMessage:()=>$.value.importing,refresh:()=>ke.value},feedback:{errorMessage:l,lastError:i,notice:u,reportError:R},task:S,diagnostics:b,view:{invalidate:E=>{X.reset(),se.reset(),_e.invalidate(),E||(c.value=1),ie.reset()},beforeImport:()=>{X.cancel(),_e.invalidatePending()},accepted:(E,O)=>{O?te():(c.value=1,m.value&&(m.value.scrollTop=0,m.value.scrollLeft=0));const H=I.value?fu:Nn;(E==="import"||H!==F)&&(F=H,rt()),E==="query"&&Ue.value==="fit"&&sn()}},events:{warning:E=>r("warning",E),logWarning:E=>T.value.logger.warn("[mach-report] 报表告警:",E),loaded:E=>r("loaded",E),imported:E=>r("template-import",E)}}),{plan:D,loading:G,importing:U,stale:_,importedResult:ne,loadedContext:ae,timing:le,reload:V,importExcel:M}=P,I=e.computed(()=>!!D.value?.pages.length&&D.value.pages.every(E=>E.layout==="wide"));let F=Nn,K=!1,J=0;const A=e.inject(Vt.MACH_REPORT_FETCHER_KEY,null),z=e.inject(Vt.MACH_REPORT_PDF_EXPORTER_KEY,null),L=e.computed(()=>Ft(o.reportId)),j=e.computed(()=>o.fetcher??A),q=e.computed(()=>D.value?.pages.length??0),oe=e.computed(()=>Object.freeze({loading:G.value||ke.value.pending===!0,stale:ht.value,hasPlan:q.value>0,pageCount:q.value,currentPage:c.value,exporting:Se.value,printing:xe.value,canExport:!de.value&&!U.value&&!X.saving.value&&q.value>0&&Se.value===null,canPrint:!de.value&&!U.value&&!X.saving.value&&q.value>0&&!xe.value,error:i.value,pdfFont:Gt.value,editing:X.active.value!==null,saving:X.saving.value,importing:U.value,dirty:X.differences.value.length>0,pendingLocalChanges:X.pendingLocalChanges.value,task:S.state.value,diagnostics:b.entries.value,reportIds:ae.value?.reportIds??[],params:ae.value?.params??{},canUndo:X.canUndo.value,canRedo:X.canRedo.value,changeCount:X.differences.value.length,selection:se.selection.value?ve(se.selection.value):null}));function te(){const E=c.value,O=m.value?.scrollTop??0,H=m.value?.scrollLeft??0,Be=D.value;c.value=Math.max(1,Math.min(E,q.value)),e.nextTick(()=>{D.value!==Be||!m.value||(m.value.scrollTop=O,m.value.scrollLeft=H,Ie.refreshViewport(),ot.refresh())})}async function N(){if(k||s.value||G.value||ke.value.pending)return;const E=ke.value.stale?ke.value.retry:void 0;if(!E){await V();return}s.value=!0;try{await E()}catch(O){if(k)return;const H=ce.normalizeReportLoadError(O);l.value=H.message,R(H.message,H.code,H.cause)}finally{s.value=!1}}function R(E,O,H){i.value=Object.freeze({message:E,code:O,cause:H}),r("error",E,{code:O,cause:H})}const{resolved:T,resolvedMessages:$,effectiveShowExport:Z,effectiveShowSettings:ee,effectiveGuardChanges:re,effectiveOutput:me,effectiveInteraction:ye,effectiveAssets:Ve,effectiveGapPx:Ye,effectiveShowParams:Fe,availableTools:ze,tools:Le,toolState:fe,visibleExportFormats:jt,effectiveEditable:Ke,effectiveExcelImport:gt,persistedEditing:Ht,emptyStateContent:vt,sessionInteraction:yt,effectivePreferences:bt,effectiveRefresh:ke,unavailableReasons:na}=Kc(o,I,E=>r("warning",E)),ht=e.computed(()=>_.value||!!D.value&&ke.value.stale===!0),de=e.computed(()=>G.value||ht.value||ke.value.pending===!0),Wt=e.computed(()=>fe.value.pdf||fe.value.pdfWindow),aa=e.computed(()=>o.prefill??T.value.prefill),Ut=e.computed(()=>o.dataComparison??T.value.dataComparison),De=e.computed(()=>ye.value.calculations===!0),qe=e.computed(()=>ce.resolveCalculationMessages($.value)),{pdfFont:Gt,getPdfExporter:oa,checkPdfFont:ra,retryPdfFont:Jt,cancelFontCheck:la}=li({plan:D,fontUrl:()=>T.value.pdfFontUrl,enabled:()=>Wt.value,injectedExporter:z,destroyed:()=>k});async function sa(E,O){E==="editing"&&!O&&!await X.settle()||(Le.setEnabled(E,O),r("preferences-change",Object.freeze({...fe.value})))}async function ia(){await X.settle()&&(Le.reset(),yt.value={},Xt.value=void 0,rt(),r("preferences-change",Object.freeze({...fe.value})))}async function ca(E="general"){if(f.value){f.value=!1;return}const O=X.settle();!(typeof O=="boolean"?O:await O)||k||!ee.value||(v.value=E,f.value=!0)}const{editing:X,cells:se,cellStatus:je,discard:Qe,confirmDiscard:Zt}=Oi({plan:D,root:d,options:Ke,selectionEnabled:()=>!!Ke.value||De.value||!!Ut.value||!!(o.drill??T.value.drill),busy:()=>de.value||U.value||Se.value!==null||xe.value,messages:()=>$.value,gotoPage:he,ensureVisible:E=>Ie.reveal(E),guard:{reportIds:()=>ae.value?.reportIds??L.value,hook:()=>o.beforeDiscard??T.value.beforeDiscard,enabled:()=>re.value,error:E=>R(E instanceof Error?E.message:"修改保护回调失败","config",E)},changed:E=>{i.value=null,u.value=null,r("cell-edit",E)},failed:(E,O)=>{u.value={kind:"error",message:E},R(E,"edit",O)}}),_e=_a({plan:D,editing:X,diagnostics:b,task:S,busy:()=>de.value||U.value,wide:()=>I.value,defaultsPrint:()=>T.value.printOptions,printOverrides:()=>o.printOptions,messages:()=>$.value,fidelity:()=>me.value.fidelity,execution:()=>o.exportExecution??T.value.exportExecution,getPdfExporter:oa,getXlsxOptions:()=>T.value.xlsx,feedback:{lastError:i,notice:u,reportError:R,warning:E=>r("warning",E)}}),{exporting:Se,printing:xe,localPrintCalibration:Xt,effectivePrintOptions:ua,canCalibratePrint:da,testPrintCalibration:ma,print:Yt,exportAs:wt,openPdfWindow:Qt,getOutputDiagnostics:fa}=_e,pe=rl({plan:D,prefill:aa,comparison:Ut,editingOptions:Ke,issues:X.validationIssues,messages:$,busy:()=>de.value||U.value||X.saving.value||!!Se.value||xe.value,replacing:()=>de.value||U.value,settle:X.settle,apply:X.apply,editError:()=>X.lastError.value,locate:E=>{se.focusCell(E)},missing:()=>{u.value={kind:"warning",message:$.value.locateFieldMissing??"Field not found"}},error:(E,O)=>R(E,"edit",O)}),_t=hl({plan:D,selection:se.selection,enabled:()=>De.value}),$e=e.ref(!1),en=e.ref(null);function pa(){$e.value=!$e.value}function tn(){$e.value=!1,en.value?.focus()}function ga(E){yt.value={...yt.value,...E},E.calculations===!0&&(f.value=!1,$e.value=!0)}e.watch(De,E=>{E||($e.value=!1)});const et=Xs({plan:D,selection:se.selection,options:()=>o.drill??T.value.drill,params:()=>({...ae.value?.params}),view:()=>({zoom:ge.value,scrollTop:d.value?.scrollTop??0,scrollLeft:d.value?.scrollLeft??0}),messages:()=>$.value,busy:()=>de.value||U.value||X.saving.value||!!Se.value||xe.value,beforeOpen:()=>Zt("leave")});function nn(){S.cancel()}function va(E){const O=X.resolveAddress(E);O&&se.focusCell(O)}async function an(E){await se.focusField(E)||(u.value={kind:"warning",message:$.value.locateFieldMissing??"Field not found"})}function ya(E){if(E.pageIndex===void 0)return;he(E.pageIndex+1);const O=E.componentPath;E.componentIndex!==void 0&&O&&O.length===2&&se.focusCell({pageIndex:E.pageIndex,componentIndex:E.componentIndex,rowIndex:O[0],columnIndex:O[1]})}const tt=e.computed(()=>{if(ne.value)return ne.value.sheets.map(O=>({label:O.name,pageIndex:O.pageStart}));const E=new Set;return D.value?.pages.flatMap((O,H)=>O.components.flatMap(Be=>{const we=Be.table;return!we?.title||E.has(we.id)?[]:(E.add(we.id),[{label:we.title,pageIndex:H}])}))??[]});async function on(E){E&&!await se.focusField({field:E})&&(u.value={kind:"warning",message:$.value.locateFieldMissing??"Field not found"})}async function ba(E){await se.focusField(E)||(u.value={kind:"warning",message:$.value.locateFieldMissing??"Field not found"})}const nt=e.computed(()=>{try{return{defs:o.paramDefs??j.value?.getParamDefs?.(L.value)??[],error:null}}catch(E){return{defs:[],error:new ce.MachReportError("config",E instanceof Error?E.message:"查询参数配置无效",E)}}}),kt=e.computed(()=>nt.value.defs),He=ce.useReportParams({defs:kt,reportIds:L,params:()=>o.params,messages:()=>$.value}),{values:We,attempted:at,pendingRequired:rn}=He,ln=e.ref(null);function ha(){at.value=!0,He.validation.value.ok||e.nextTick(()=>ln.value?.focusInvalid()),V()}function wa(){He.reset(),l.value="",i.value=null}const ka=e.computed(()=>({height:o.height,"--mrp-page-gap":`${Math.max(0,Ye.value)}px`,...ce.themeToCssVars(T.value.theme)})),{zoom:ge,zoomMode:Ue,applyFitZoom:sn,setZoom:Re}=Vn(()=>({viewport:m.value,pageWidthPx:xt.contentSize.value.w||210*Pt})),xt=Bn(D,ge,{pxPerMm:Pt,gapPx:Ye,overscan:e.computed(()=>T.value.preview.overscanPages)}),{contentSize:Et,windowRange:Ge,visiblePages:cn,makeScrollHandler:xa,refreshViewport:un}=xt,Ea=xa(c,q),ot=qc({root:d,viewport:m,plan:D,zoom:ge,options:()=>ye.value});e.watch([ye,ge],()=>ot.refresh(),{flush:"post"});function Ct(E){Re(E*100)}function he(E){if(k||q.value<=0)return;const O=Math.max(1,Math.min(q.value,E));c.value=O;const H=m.value;H&&(xt.scrollToPage(H,O-1),Ie.prioritize(O-1))}async function Ca(E,O={}){k||(We.value={...We.value,...E},O.reload!==!1&&(at.value=!0,await V()))}const dn={reload:V,print:Yt,exportAs:wt,openPdfWindow:Qt,gotoPage:he,setParams:Ca,checkPdfFont:ra,importExcel:M,getPlan:Sa,cancelTask:nn,confirmDiscard:Zt,getOutputDiagnostics:fa,getChanges:X.getChanges,undo:X.undo,redo:X.redo,restoreChanges:X.restore,getDifferences:()=>ve(X.differences.value),getSelection:()=>se.selection.value?ve(se.selection.value):null,focusCell:se.focusCell,focusField:se.focusField,copySelection:se.copySelection,pasteSelection:se.pasteSelection,get state(){return oe.value}};e.provide(Vt.MACH_REPORT_CONTROLLER_KEY,dn);function Sa(){return D.value?ve(D.value):null}function Na(E){const O=E.target,H=O.files?.[0];O.value="",H&&M(H).catch(()=>{})}const ie=mo({plan:D,gotoPage:he,debounceMs:e.computed(()=>T.value.preview.searchDebounceMs),highlight:no,clearHighlights:to});e.watch(()=>fe.value.search,E=>{E||(ie.reset(),ie.visible.value=!1)});function Ba(E){!E.ctrlKey||!fe.value.zoom||(E.preventDefault(),Ct(ge.value*(E.deltaY<0?1.1:1/1.1)))}function Va(E){if(!se.onKeydown(E)&&!(E.target instanceof Element&&E.target.closest("input,textarea,select,[contenteditable='true']"))){if(fe.value.search&&(E.ctrlKey||E.metaKey)&&E.key.toLowerCase()==="f"){E.preventDefault(),ie.visible.value||ie.toggle(),e.nextTick(()=>w.value?.focusSearch());return}switch(E.key){case"PageDown":E.preventDefault(),he(c.value+1);break;case"PageUp":E.preventDefault(),he(c.value-1);break;case"Home":E.preventDefault(),he(1);break;case"End":E.preventDefault(),he(q.value);break;case"+":case"=":E.preventDefault(),fe.value.zoom&&Ct(ge.value*1.1);break;case"-":E.preventDefault(),fe.value.zoom&&Ct(ge.value/1.1);break}}}function $a(){if(K)return;const E=Ue.value==="fit"?"fit":Math.round(ge.value*100);if(bt.value){Le.setZoomMode(I.value,E);return}try{localStorage.setItem(F,JSON.stringify({zoomMode:E}))}catch{}}e.watch([Ue,ge],([E],[O])=>{(E!=="fit"||O!=="fit")&&$a()}),e.watch(de,E=>{E&&_e.invalidatePending()},{flush:"sync"});let St="";function mn(E=!1){const O=ie.activeMatch.value;if(!O)return;const H=`${ie.query.value}:${ie.matchIndex.value}:${O.pageIndex}`;if(!E&&H===St)return;const Be=d.value?.querySelector(`[data-page="${O.pageIndex+1}"]`),we=O.target,fn=we?.rowIndex!==void 0&&we.columnIndex!==void 0?{pageIndex:O.pageIndex,componentIndex:we.componentIndex,rowIndex:we.rowIndex,columnIndex:we.columnIndex}:void 0,Ia=fn?Ie.reveal(fn):!1,pn=eo(Be,we,O.occurrence);pn&&(Ia||pn.scrollIntoView?.({block:"nearest",inline:"nearest"}),St=H)}const Ie=ja({plan:D,root:d,viewport:m,pages:()=>cn.value,frozen:()=>ye.value,priority:()=>ie.activeMatch.value?.pageIndex??c.value-1,focusToken:()=>ie.activeMatch.value,editorToken:()=>X.active.value,query:()=>ie.query.value,zoom:()=>ge.value,loading:()=>$.value.loading,clear:ie.clear,highlight:ie.apply,mounted:E=>{se.refresh(E),ot.mounted(E)},ready:()=>{ie.activeMatch.value||(St=""),mn()},error:E=>{l.value=E instanceof Error?E.message:String(E),R(l.value,"render",E)}});e.watch(()=>se.selection.value,()=>{se.refresh()},{flush:"post"}),e.watch(()=>ie.query.value,E=>{E||d.value?.querySelectorAll(".mrp-page-holder").forEach(O=>{ie.clear(O)})});const Ee=po(D,{thumbsRoot:g,visible:x,renderThumbCanvas:E=>{try{const O=D.value.pages[E],H=Math.min(.2,116/Math.max(1,O.pageWidthMm*Pt)),{canvases:Be}=Q.renderPlanToCanvas(D.value,{start:E,end:E,dpr:H});return Be[0]??null}catch{return null}}});e.watchEffect(()=>{Ee.schedule()},{flush:"post"});const Da=e.computed(()=>o.debug),{debugStats:Pe}=fo(Da,{plan:D,pageCount:q,windowRange:Ge,zoom:ge,loadMs:le.loadMs});function Ra(){un(m.value),Ie.refreshViewport(),Ee.schedule(),Ue.value==="fit"&&sn(),mn(!0)}function Nt(){k||h||(h=requestAnimationFrame(()=>{h=0,k||Ra()}))}function rt(){const E=++J;K=!0,e.nextTick(()=>{E===J&&(K=!1)});const O=I.value?100:"fit";if(bt.value){Re(Le.getZoomMode(I.value)??O);return}Re(O);try{const H=JSON.parse(localStorage.getItem(F)??"{}");H.zoomMode==="fit"?Re("fit"):typeof H.zoomMode=="number"&&Re(H.zoomMode)}catch{}}return e.watch([bt,()=>Le.getZoomMode(I.value)],rt),e.onMounted(()=>{window.addEventListener("resize",Nt),typeof ResizeObserver<"u"&&m.value&&(y=new ResizeObserver(Nt),y.observe(m.value)),un(m.value),rt(),o.autoLoad&&V()}),e.onUnmounted(()=>{k=!0,S.cancel(),U.value=!1,la(),window.removeEventListener("resize",Nt),h&&cancelAnimationFrame(h),y?.disconnect(),y=null,Ee.destroy(),ie.reset()}),e.watch([()=>JSON.stringify(L.value),()=>JSON.stringify(o.params),j,()=>ke.value.key],async()=>{if(o.autoLoad){V();return}!await Qe.check("replace")||k||(ke.value.retainPrevious&&D.value?P.retainPrevious():P.clear())}),n({...dn,state:oe}),(E,O)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["mach-report-preview",{"mrp-wide-report":I.value}]),style:e.normalizeStyle(ka.value)},[e.unref(Fe)&&kt.value.length>0?(e.openBlock(),e.createBlock(ce.ReportParamPanel,{key:0,ref_key:"paramPanelRef",ref:ln,defs:kt.value,"load-options":o.loadParamOptions??e.unref(T).loadParamOptions,modelValue:e.unref(We),"onUpdate:modelValue":O[0]||(O[0]=H=>e.isRef(We)?We.value=H:null),messages:e.unref($),attempted:e.unref(at),issues:e.unref(He).validation.value.issues,onQuery:ha,onReset:wa},null,8,["defs","load-options","modelValue","messages","attempted","issues"])):e.createCommentVNode("",!0),e.createVNode(zn,{ref_key:"toolbarRef",ref:w,"page-count":q.value,"current-page":c.value,"zoom-mode":e.unref(Ue),zoom:e.unref(ge),"show-export":e.unref(Z),"show-print":e.unref(fe).print,"show-pdf-window":e.unref(fe).pdfWindow,"show-search":e.unref(fe).search,"show-thumbnails":e.unref(fe).thumbnails,"show-zoom":e.unref(fe).zoom,"export-formats":e.unref(jt),"show-settings":e.unref(ee),"settings-open":f.value,messages:e.unref($),search:{visible:e.unref(ie).visible.value,query:e.unref(ie).query.value,matchIndex:e.unref(ie).matchIndex.value,matchCount:e.unref(ie).matchCount.value,searching:e.unref(ie).searching.value},"thumbs-visible":x.value,"show-import":!!e.unref(gt),busy:de.value||e.unref(U)||e.unref(X).saving.value,onGoto:he,onZoom:e.unref(Re),onExport:O[1]||(O[1]=H=>e.unref(wt)(H)),onPrint:e.unref(Yt),onPdfWindow:e.unref(Qt),onSearchInput:e.unref(ie).onInput,onSearchNav:e.unref(ie).onNav,onSearchToggle:e.unref(ie).toggle,onThumbsToggle:O[2]||(O[2]=H=>x.value=!x.value),onImportExcel:O[3]||(O[3]=H=>p.value?.click()),onSettingsToggle:ca},e.createSlots({"data-tools":e.withCtx(()=>[e.createVNode(ir,{prefill:e.unref(pe).availablePrefill.value,comparison:e.unref(pe).availableComparison.value,"issue-count":e.unref(X).validationIssues.value.length,messages:e.unref(pe).messages.value,busy:de.value||e.unref(U)||e.unref(X).saving.value||!!e.unref(Se)||e.unref(xe),onOpen:e.unref(pe).open},null,8,["prefill","comparison","issue-count","messages","busy","onOpen"])]),_:2},[E.$slots.export?{name:"export",fn:e.withCtx(()=>[e.renderSlot(E.$slots,"export",{busy:de.value||e.unref(U)||e.unref(X).saving.value||!!e.unref(Se)||e.unref(xe),exportReport:e.unref(wt),formats:e.unref(jt),messages:e.unref($)},void 0,!0)]),key:"0"}:void 0,tt.value.length<=1?{name:"navigation",fn:e.withCtx(()=>[q.value>0&&e.unref(ye).navigation!==!1?(e.openBlock(),e.createBlock(Sn,{key:0,plan:e.unref(D),compact:"",sections:tt.value,"current-page":c.value,messages:e.unref($),busy:de.value||e.unref(U)||e.unref(X).saving.value,onLocateTarget:an,onGoto:he,onLocate:on},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0)]),key:"1"}: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","onPrint","onPdfWindow","onSearchInput","onSearchNav","onSearchToggle"]),e.unref(pe).opened.value?(e.openBlock(),e.createBlock(fr,{key:1,title:e.unref(pe).title.value,"close-label":e.unref(pe).messages.value.reviewClose,onClose:e.unref(pe).close},{default:e.withCtx(()=>[e.unref(pe).opened.value==="prefill"?(e.openBlock(),e.createBlock(Kn,{key:0,state:e.unref(pe).prefill,messages:e.unref(pe).messages.value},null,8,["state","messages"])):e.unref(pe).opened.value==="comparison"?(e.openBlock(),e.createBlock(qn,{key:1,state:e.unref(pe).comparison,messages:e.unref(pe).messages.value},null,8,["state","messages"])):(e.openBlock(),e.createBlock(jn,{key:2,issues:e.unref(X).validationIssues.value,messages:e.unref(pe).validationMessages.value,onLocate:e.unref(pe).locateIssue},null,8,["issues","messages","onLocate"]))]),_:1},8,["title","close-label","onClose"])):e.createCommentVNode("",!0),e.unref(Qe).request.value?(e.openBlock(),e.createBlock(xs,{key:2,messages:e.unref($),onAnswer:e.unref(Qe).settle},null,8,["messages","onAnswer"])):e.createCommentVNode("",!0),e.createVNode(Gn,{task:e.unref(S).state.value,messages:e.unref($),onCancel:nn},null,8,["task","messages"]),e.createVNode(Ps,{entries:C.value,messages:e.unref($),onLocate:ya},null,8,["entries","messages"]),e.createVNode(qs,{entries:B.value,messages:e.unref($),busy:de.value||e.unref(U)||e.unref(X).saving.value,onLocate:ba},null,8,["entries","messages","busy"]),e.createVNode(Zs,{entries:e.unref(et).entries.value,pending:e.unref(et).pending.value,error:e.unref(et).error.value,busy:de.value||e.unref(U)||e.unref(X).saving.value,messages:e.unref($),onOpen:e.unref(et).open},null,8,["entries","pending","error","busy","messages","onOpen"]),f.value&&e.unref(ee)?(e.openBlock(),e.createBlock(vs,{key:3,available:e.unref(ze),"unavailable-reasons":e.unref(na),enabled:e.unref(fe),messages:e.unref($),"persisted-editing":e.unref(Ht),interaction:e.unref(ye),section:v.value,busy:de.value||e.unref(U)||e.unref(X).saving.value||!!e.unref(Se)||e.unref(xe),onSection:O[5]||(O[5]=H=>v.value=H),onInteraction:ga,onChange:sa,onReset:ia,onClose:O[6]||(O[6]=H=>f.value=!1)},{default:e.withCtx(()=>[e.renderSlot(E.$slots,"settings",{},void 0,!0),e.unref(fe).print?(e.openBlock(),e.createBlock(ni,{key:0,value:e.unref(ua).calibration??{},messages:e.unref($),busy:e.unref(xe)||e.unref(G)||e.unref(U)||e.unref(X).saving.value,"can-test":e.unref(da),onChange:O[4]||(O[4]=H=>Xt.value=H),onTest:e.unref(ma)},null,8,["value","messages","busy","can-test","onTest"])):e.createCommentVNode("",!0)]),_:3},8,["available","unavailable-reasons","enabled","messages","persisted-editing","interaction","section","busy"])):e.createCommentVNode("",!0),tt.value.length>1&&q.value>0&&e.unref(ye).navigation!==!1?(e.openBlock(),e.createBlock(Sn,{key:4,plan:e.unref(D),onLocateTarget:an,sections:tt.value,"current-page":c.value,messages:e.unref($),busy:de.value||e.unref(U)||e.unref(X).saving.value,onGoto:he,onLocate:on},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0),e.unref(ne)?(e.openBlock(),e.createBlock(Ac,{key:5,result:e.unref(ne),messages:e.unref($)},null,8,["result","messages"])):e.createCommentVNode("",!0),e.unref(Ke)&&q.value>0?(e.openBlock(),e.createBlock(pc,{key:6,plan:e.unref(D),"history-limited":e.unref(X).historyLimited.value,differences:e.unref(X).differences.value,conflicts:e.unref(X).conflicts.value,messages:e.unref($),saving:e.unref(X).saving.value,"can-undo":e.unref(X).canUndo.value,"can-redo":e.unref(X).canRedo.value,persisted:e.unref(Ht),busy:!!e.unref(Se)||e.unref(xe),onUndo:e.unref(X).undo,onRedo:e.unref(X).redo,onRestore:e.unref(X).restore,onLocate:va},null,8,["plan","history-limited","differences","conflicts","messages","saving","can-undo","can-redo","persisted","busy","onUndo","onRedo","onRestore"])):e.createCommentVNode("",!0),e.unref(gt)?(e.openBlock(),e.createElementBlock("input",{key:7,ref_key:"importInputRef",ref:p,class:"mrp-import-input",type:"file",accept:".xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",hidden:"",onChange:Na},null,544)):e.createCommentVNode("",!0),e.unref(Ke)&&q.value>0?(e.openBlock(),e.createElementBlock("div",Jc,[!e.unref(X).saving.value&&e.unref(je)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",{class:e.normalizeClass(["mrp-cell-access",{"is-editable":e.unref(je).editable}])},e.toDisplayString(e.unref(je).label),3),e.createElementVNode("span",{class:"mrp-cell-access-message",title:e.unref(je).message},e.toDisplayString(e.unref(je).message),9,Zc)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(X).saving.value?e.unref($).saving:e.unref($).editingHint),1)],64))])):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",{key:9,class:e.normalizeClass(["mrp-export-notice",`mrp-export-${u.value.kind}`]),role:"alert"},e.toDisplayString(u.value.message),3)):e.createCommentVNode("",!0),e.unref(Gt).status==="error"&&Wt.value?(e.openBlock(),e.createElementBlock("div",Xc,[e.createTextVNode(e.toDisplayString(e.unref($).pdfFontUnavailable)+" ",1),e.createElementVNode("button",{type:"button",onClick:O[7]||(O[7]=(...H)=>e.unref(Jt)&&e.unref(Jt)(...H))},e.toDisplayString(e.unref($).retry),1)])):e.createCommentVNode("",!0),ht.value?(e.openBlock(),e.createElementBlock("div",Yc,[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref($).previousSnapshot)+" ",1),l.value?(e.openBlock(),e.createElementBlock("span",Qc,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]),!e.unref(G)&&!e.unref(ke).pending?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-retry",type:"button",disabled:s.value,onClick:N},e.toDisplayString(e.unref($).retry),9,_c)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",eu,[e.createElementVNode("div",{ref_key:"viewportRef",ref:m,class:"mrp-body",tabindex:"0",onWheel:Ba,onKeydown:Va,onDblclick:O[9]||(O[9]=(...H)=>e.unref(X).onDoubleClick&&e.unref(X).onDoubleClick(...H)),onClick:O[10]||(O[10]=(...H)=>e.unref(se).onClick&&e.unref(se).onClick(...H)),onCopy:O[11]||(O[11]=(...H)=>e.unref(se).onCopy&&e.unref(se).onCopy(...H)),onPaste:O[12]||(O[12]=(...H)=>e.unref(se).onPaste&&e.unref(se).onPaste(...H)),onScrollPassive:O[13]||(O[13]=H=>{e.unref(Ea)(H.target),e.unref(Ie).refreshViewport(),e.unref(ot).refresh()})},[e.unref(G)&&!e.unref(D)?(e.openBlock(),e.createElementBlock("div",tu,e.toDisplayString(e.unref($).loading),1)):l.value&&!e.unref(D)?(e.openBlock(),e.createElementBlock("div",nu,[e.createTextVNode(e.toDisplayString(l.value)+" ",1),e.createElementVNode("button",{class:"mrp-retry",type:"button",onClick:O[8]||(O[8]=(...H)=>e.unref(V)&&e.unref(V)(...H))},e.toDisplayString(e.unref($).retry),1)])):!e.unref(D)||q.value===0?(e.openBlock(),e.createBlock(hn,{key:2,title:e.unref(rn)?e.unref($).paramPrompt??e.unref($).paramsTitle:e.unref($).empty,description:e.unref(rn)?e.unref($).paramPromptDescription:e.unref(vt).description??e.unref($).emptyDescription},null,8,["title","description"])):(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-scale",style:e.normalizeStyle({width:`${e.unref(Et).w*e.unref(ge)}px`,height:`${e.unref(Et).h*e.unref(ge)}px`})},[e.createElementVNode("div",{ref_key:"containerRef",ref:d,class:"mrp-scale-inner",style:e.normalizeStyle({transform:e.unref(ye).frozenColumns?void 0:`scale(${e.unref(ge)})`,zoom:e.unref(ye).frozenColumns?e.unref(ge):void 0,transformOrigin:"top left",width:`${e.unref(Et).w}px`})},[e.unref(Ge).padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-spacer-top",style:e.normalizeStyle({height:`${e.unref(Ge).padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(cn),H=>(e.openBlock(),e.createElementBlock("div",{key:H.index,class:"mrp-page-holder","data-page":H.index+1},null,8,au))),128)),e.unref(Ge).padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-spacer-bottom",style:e.normalizeStyle({height:`${e.unref(Ge).padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],4)],4)),!e.unref(G)&&!l.value&&e.unref(D)&&q.value>0&&t.emptyState?(e.openBlock(),e.createBlock(hn,{key:4,title:e.unref(vt).title??e.unref($).empty,description:e.unref(vt).description??e.unref($).emptyDescription},null,8,["title","description"])):e.createCommentVNode("",!0)],544),e.unref(fe).thumbnails&&x.value&&q.value>0?(e.openBlock(),e.createElementBlock("aside",{key:0,ref_key:"thumbsRef",ref:g,class:"mrp-thumbs",onScrollPassive:O[14]||(O[14]=(...H)=>e.unref(Ee).onScroll&&e.unref(Ee).onScroll(...H))},[e.unref(Ee).windowRange.value.padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-thumb-spacer",style:e.normalizeStyle({height:`${e.unref(Ee).windowRange.value.padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Ee).visibleThumbs.value,H=>(e.openBlock(),e.createElementBlock("button",{key:H.index,class:e.normalizeClass(["mrp-thumb",{"mrp-thumb-active":H.index+1===c.value}]),type:"button","aria-label":`${e.unref($).thumbnails} · ${e.unref($).pageInfo.replace("{cur}",String(H.index+1)).replace("{total}",String(q.value))}`,"aria-current":H.index+1===c.value?"page":void 0,style:e.normalizeStyle({height:`${H.height+20}px`}),onClick:Be=>he(H.index+1)},[e.createElementVNode("span",{class:"mrp-thumb-box","data-thumb":H.index+1,style:e.normalizeStyle({height:`${H.height}px`})},null,12,ru),e.createElementVNode("span",lu,e.toDisplayString(H.index+1),1)],14,ou))),128)),e.unref(Ee).windowRange.value.padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-thumb-spacer",style:e.normalizeStyle({height:`${e.unref(Ee).windowRange.value.padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0),De.value&&$e.value?(e.openBlock(),e.createElementBlock("aside",{key:1,class:"mrp-analysis","aria-label":qe.value.calculationAdvanced,onKeydown:e.withKeys(e.withModifiers(tn,["stop","prevent"]),["esc"])},[e.createVNode(Al,{state:e.unref(_t),messages:qe.value,closable:"",onClose:tn},null,8,["state","messages"])],40,su)):e.createCommentVNode("",!0)]),q.value>0?(e.openBlock(),e.createElementBlock("footer",iu,[e.createElementVNode("div",cu,[e.unref(ye).navigation!==!1?(e.openBlock(),e.createBlock(vl,{key:0,plan:e.unref(D),"current-page":c.value,messages:e.unref($),busy:de.value||e.unref(U)||e.unref(X).saving.value,onGoto:he},null,8,["plan","current-page","messages","busy"])):e.createCommentVNode("",!0),De.value?(e.openBlock(),e.createBlock(Wl,{key:1,state:e.unref(_t),messages:qe.value},null,8,["state","messages"])):e.createCommentVNode("",!0),De.value?(e.openBlock(),e.createElementBlock("button",{key:2,ref_key:"calculationTrigger",ref:en,class:"mrp-calculation-toggle",type:"button","aria-label":qe.value.calculationAdvanced,"aria-expanded":$e.value,onClick:pa},[O[15]||(O[15]=e.createElementVNode("span",{"aria-hidden":"true"},"∑",-1)),e.createTextVNode(e.toDisplayString(qe.value.calculationAdvanced),1)],8,uu)):e.createCommentVNode("",!0)]),e.createVNode(Kt,{"page-count":q.value,"current-page":c.value,messages:e.unref($),busy:de.value||e.unref(U)||e.unref(X).saving.value,onGoto:he},null,8,["page-count","current-page","messages","busy"])])):e.createCommentVNode("",!0),e.createElementVNode("div",du,[e.renderSlot(E.$slots,"default",{},void 0,!0)]),e.unref(Pe)?(e.openBlock(),e.createElementBlock("div",mu,[O[16]||(O[16]=e.createElementVNode("div",null,"mach-report debug",-1)),e.createElementVNode("div",null,"pages: "+e.toDisplayString(e.unref(Pe).pages)+" | window: ["+e.toDisplayString(e.unref(Pe).window)+"]",1),e.createElementVNode("div",null,"zoom: "+e.toDisplayString(e.unref(Pe).zoom)+" | load: "+e.toDisplayString(e.unref(Pe).loadMs),1),e.createElementVNode("div",null,"plan: "+e.toDisplayString(e.unref(Pe).planKB)+"KB",1)])):e.createCommentVNode("",!0)],6))}}),ta=W._export_sfc(pu,[["__scopeId","data-v-fa3562b9"]]),gu=Object.freeze(Object.defineProperty({__proto__:null,default:ta},Symbol.toStringTag,{value:"Module"}));exports.PlanLoadError=st;exports.REPORT_EXPORT_FORMATS=ft;exports.REPORT_PREVIEW_TOOLS=Ot;exports.ReportExportMenu=Fn;exports.ReportPagination=Kt;exports.ReportPreview=ta;exports.ReportPreview$1=gu;exports.ReportPrintResourceError=be;exports.ReportTaskStatus=Gn;exports.ReportToolbar=zn;exports.ReportValidationPanel=jn;exports._sfc_main=qn;exports._sfc_main$1=Kn;exports.buildPrintDocument=Rn;exports.buildWordHtml=Ja;exports.cloneReportSnapshot=ve;exports.createDefaultPdfExporter=Jn;exports.createFetchRequest=qa;exports.createPrintCalibrationPlan=$n;exports.createReportStoragePreferences=Fc;exports.joinReportIds=Ka;exports.normalizeReportIds=Ft;exports.preparePrintResources=zt;exports.printPlans=In;exports.usePageWindow=Bn;exports.usePrintExport=Mn;exports.useZoom=Vn;