@agile-team/mach-report 2.16.0 → 2.18.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 (177) hide show
  1. package/README.md +25 -12
  2. package/dist/{ExcelBindingWizard-CP6h2x1f.cjs → ExcelBindingWizard-Czn3C2yE.cjs} +1 -1
  3. package/dist/{ExcelBindingWizard-HhB3hAJE.js → ExcelBindingWizard-DMGZj6I6.js} +3 -3
  4. package/dist/ParamEditor-KzDQvbHY.js +732 -0
  5. package/dist/ParamEditor-oDfD8LgE.cjs +1 -0
  6. package/dist/{ReportBatchPanel-ruxcbfY6.js → ReportBatchPanel-BJK7PvZ4.js} +39 -39
  7. package/dist/ReportBatchPanel-DnmNRssu.cjs +1 -0
  8. package/dist/ReportParamPanel-mQkeN70Q.js +1020 -0
  9. package/dist/ReportParamPanel-sOANVRz-.cjs +1 -0
  10. package/dist/ReportPreview-BxWWTUL5.js +5583 -0
  11. package/dist/ReportPreview-Yf99omi3.cjs +6 -0
  12. package/dist/{ReportTemplateLibrary-DcwrH-63.js → ReportTemplateLibrary-BFjB08Wu.js} +1 -1
  13. package/dist/{ReportTemplateLibrary-BDlNT8JN.cjs → ReportTemplateLibrary-BO42QnWd.cjs} +1 -1
  14. package/dist/RuleEditor-CqxT1a-W.js +2337 -0
  15. package/dist/RuleEditor-D7YWigD9.cjs +1 -0
  16. package/dist/{TemplateOutlinePanel-CGrT5DFN.cjs → TemplateOutlinePanel-B0XX350V.cjs} +1 -1
  17. package/dist/{TemplateOutlinePanel-SXCjaPKR.js → TemplateOutlinePanel-zG0DrsIB.js} +2 -2
  18. package/dist/{TemplateReusePanel-6Z3wRFz8.cjs → TemplateReusePanel-BD0HSKp_.cjs} +1 -1
  19. package/dist/{TemplateReusePanel-lHLOS9Wn.js → TemplateReusePanel-Czwe5GbC.js} +2 -2
  20. package/dist/{TemplateReviewPanel-Dpk7sLcF.cjs → TemplateReviewPanel-CA5sdffM.cjs} +1 -1
  21. package/dist/{TemplateReviewPanel-CJ9PLc48.js → TemplateReviewPanel-NhmQI65C.js} +2 -2
  22. package/dist/analytics.cjs +1 -1
  23. package/dist/analytics.d.cts +163 -42
  24. package/dist/analytics.d.ts +163 -42
  25. package/dist/analytics.js +76 -141
  26. package/dist/artifact-integrity.json +110 -108
  27. package/dist/assets-2eC3mOcV.js +232 -0
  28. package/dist/assets-B0Hxn4l6.cjs +1 -0
  29. package/dist/{auto-uVBjX1j5.cjs → auto-B0EZFIK1.cjs} +1 -1
  30. package/dist/{auto-YR7a4BtF.js → auto-BlchZ1b8.js} +10 -10
  31. package/dist/{batch-WzDIXJAt.js → batch-DGCt44XM.js} +1 -1
  32. package/dist/{batch-z6Aw5GEY.cjs → batch-DYcokH4v.cjs} +1 -1
  33. package/dist/charts-Dlv8j2AG.js +141 -0
  34. package/dist/charts-aCtoswXq.cjs +1 -0
  35. package/dist/codes.cjs +9 -9
  36. package/dist/codes.d.cts +54 -0
  37. package/dist/codes.d.ts +54 -0
  38. package/dist/codes.js +12097 -13668
  39. package/dist/column-visual-BpgQVWwT.js +238 -0
  40. package/dist/column-visual-CtYxnBCP.cjs +1 -0
  41. package/dist/component-tree-6TV7W6Yj.cjs +1 -0
  42. package/dist/component-tree-CvW4lzpv.js +67 -0
  43. package/dist/computed-4TnxzgIh.cjs +1 -0
  44. package/dist/computed-C8NRZQss.js +739 -0
  45. package/dist/data-bar-Ce38juRZ.cjs +1 -0
  46. package/dist/data-bar-PtjXhMgN.js +9 -0
  47. package/dist/dataset-DL83majE.js +161 -0
  48. package/dist/dataset-IrlXbUvh.cjs +1 -0
  49. package/dist/designer--TKECSEc.cjs +2 -0
  50. package/dist/designer-d6hJS41w.js +5683 -0
  51. package/dist/designer.cjs +1 -1
  52. package/dist/designer.d.cts +835 -45
  53. package/dist/designer.d.ts +835 -45
  54. package/dist/designer.js +23 -20
  55. package/dist/{encoding-BYF9ZTl9.cjs → encoding-B--eZpp1.cjs} +1 -1
  56. package/dist/{encoding-BOGq4qYL.js → encoding-mctOLocI.js} +2 -2
  57. package/dist/{font-loader-EKLzOJxf.cjs → font-loader-DBBJ5KE9.cjs} +1 -1
  58. package/dist/{font-loader-CzI1GuBc.js → font-loader-DW8tIaNp.js} +1 -1
  59. package/dist/index-CPh6tqge.js +1575 -0
  60. package/dist/index-CUNw7dL9.cjs +1 -0
  61. package/dist/index.cjs +8 -8
  62. package/dist/index.d.cts +534 -16
  63. package/dist/index.d.ts +534 -16
  64. package/dist/index.js +1393 -955
  65. package/dist/json-snapshot-By4ZVVUt.js +1967 -0
  66. package/dist/json-snapshot-jiXff4lc.cjs +2 -0
  67. package/dist/matrix-0hywp0-F.cjs +1 -0
  68. package/dist/matrix-Dy-tyY7E.js +381 -0
  69. package/dist/param-validation-C-8sRJLq.cjs +1 -0
  70. package/dist/param-validation-CnDEd2l-.js +333 -0
  71. package/dist/{pdf-DJ5S6ukC.js → pdf-CKROKygt.js} +1845 -1845
  72. package/dist/{pdf-ByVCb1i6.cjs → pdf-DqyxJ96U.cjs} +47 -47
  73. package/dist/pdf.cjs +1 -1
  74. package/dist/pdf.d.cts +66 -0
  75. package/dist/pdf.d.ts +66 -0
  76. package/dist/pdf.js +2 -2
  77. package/dist/{plugin-C2j5_mhx.js → plugin-ByjF2kiV.js} +5 -5
  78. package/dist/{plugin-Dr39GBRG.cjs → plugin-DM1M2wlI.cjs} +1 -1
  79. package/dist/prefill-B8H9qwE4.js +371 -0
  80. package/dist/prefill-D7EswyTI.cjs +1 -0
  81. package/dist/{prepared-DqtpvRTn.js → prepared-BE-4jfX5.js} +2 -2
  82. package/dist/{prepared-DdrjLC7L.cjs → prepared-CGVphji3.cjs} +1 -1
  83. package/dist/{protocol-BzwMP4Vw.cjs → protocol-ByRVzzQG.cjs} +1 -1
  84. package/dist/{protocol-kt4Iy6-3.js → protocol-Cr81vFSQ.js} +3 -3
  85. package/dist/{record-bindings-CZWBJ1fU.js → record-bindings-DEJtmo3p.js} +67 -107
  86. package/dist/record-bindings-ehjnCDHt.cjs +1 -0
  87. package/dist/{region-binding-workflow-CWNvIjkV.js → region-binding-workflow-CBg0l_tj.js} +2 -2
  88. package/dist/{region-binding-workflow-CqSMxQ4p.cjs → region-binding-workflow-D05tOYn3.cjs} +1 -1
  89. package/dist/report-encoding-worker.cjs +1 -1
  90. package/dist/report-encoding-worker.js +1 -1
  91. package/dist/{report-params-B1RzkhJj.js → report-params-D9tBuM9B.js} +1 -1
  92. package/dist/{report-params-WDGrA4oP.cjs → report-params-VTg8MoCp.cjs} +1 -1
  93. package/dist/runtime-CDA6d263.cjs +1 -0
  94. package/dist/runtime-CEMvybO7.js +170 -0
  95. package/dist/sbom.cdx.json +1 -1
  96. package/dist/server/node.d.cts +121 -7
  97. package/dist/server/node.d.ts +121 -7
  98. package/dist/server-node.cjs +4 -4
  99. package/dist/server-node.js +3446 -2115
  100. package/dist/server.cjs +1 -1
  101. package/dist/server.d.cts +417 -29
  102. package/dist/server.d.ts +417 -29
  103. package/dist/server.js +787 -544
  104. package/dist/sha256-BDQ1Qk7A.js +158 -0
  105. package/dist/sha256-DgZAKXqI.cjs +1 -0
  106. package/dist/style.css +1 -1
  107. package/dist/template-bindings-Cg5oBLFT.cjs +1 -0
  108. package/dist/template-bindings-TKnXM7ll.js +62 -0
  109. package/dist/{template-catalog-BtR2JmCL.js → template-catalog-CmbWOJqy.js} +16 -16
  110. package/dist/template-catalog-Utu4GP09.cjs +1 -0
  111. package/dist/{template-fragments-BVsbxs4a.cjs → template-fragments-C_zSHJAa.cjs} +1 -1
  112. package/dist/{template-fragments-By0aZC1D.js → template-fragments-DWgo9tlZ.js} +2 -2
  113. package/dist/{template-outline-BwRV_eRo.cjs → template-outline-DWkzZXVC.cjs} +1 -1
  114. package/dist/{template-outline-cnWfT_LK.js → template-outline-DiADphlq.js} +1 -1
  115. package/dist/{template-registry-Cw3vRTX2.js → template-registry-BIhIHOab.js} +319 -314
  116. package/dist/template-registry-DzWswQI5.cjs +1 -0
  117. package/dist/vue/async.d.cts +636 -35
  118. package/dist/vue/async.d.ts +636 -35
  119. package/dist/vue/index.d.cts +746 -67
  120. package/dist/vue/index.d.ts +746 -67
  121. package/dist/vue-async.cjs +1 -1
  122. package/dist/vue-async.js +3 -3
  123. package/dist/vue.cjs +1 -1
  124. package/dist/vue.js +94 -89
  125. package/dist/{workbook-session-Cbts-22R.cjs → workbook-session-B94EwVa_.cjs} +1 -1
  126. package/dist/{workbook-session-BeSO8PFB.js → workbook-session-BoScoOg-.js} +2 -2
  127. package/dist/worker.cjs +1 -1
  128. package/dist/worker.d.cts +75 -7
  129. package/dist/worker.d.ts +75 -7
  130. package/dist/worker.js +4 -4
  131. package/dist/xlsx.cjs +4 -4
  132. package/dist/xlsx.d.cts +208 -15
  133. package/dist/xlsx.d.ts +208 -15
  134. package/dist/xlsx.js +288 -252
  135. package/package.json +1 -1
  136. package/dist/ParamEditor-CUQLgoxa.cjs +0 -1
  137. package/dist/ParamEditor-OKesP_nO.js +0 -594
  138. package/dist/ReportBatchPanel-cZCAMAwH.cjs +0 -1
  139. package/dist/ReportPreview-BcDKCLiK.js +0 -4834
  140. package/dist/ReportPreview-Bk9nLfO9.cjs +0 -6
  141. package/dist/RuleEditor-BX5S8RSF.cjs +0 -1
  142. package/dist/RuleEditor-CGl9XY2s.js +0 -2037
  143. package/dist/assets-CqIbfbTr.js +0 -126
  144. package/dist/assets-e4YSke8n.cjs +0 -1
  145. package/dist/capabilities-DDwXr_cA.js +0 -103
  146. package/dist/capabilities-DNLyZdNw.cjs +0 -1
  147. package/dist/component-tree-Ca6YYfHq.js +0 -61
  148. package/dist/component-tree-DkGLEfZC.cjs +0 -1
  149. package/dist/computed-C-4C2S5h.js +0 -521
  150. package/dist/computed-CGV2a809.cjs +0 -1
  151. package/dist/config-Dg_o8e7m.cjs +0 -1
  152. package/dist/config-XQ4qrQ7Q.js +0 -844
  153. package/dist/dataset-BkRmwgeJ.cjs +0 -1
  154. package/dist/dataset-H5pFuQGU.js +0 -121
  155. package/dist/designer-BfQSahxq.js +0 -5163
  156. package/dist/designer-CPPdeM5_.cjs +0 -2
  157. package/dist/diagnostic-notification-B9K9We3h.cjs +0 -1
  158. package/dist/diagnostic-notification-qGAYZdkB.js +0 -7
  159. package/dist/drill-CsdjgkRM.cjs +0 -1
  160. package/dist/drill-DIGsZfyB.js +0 -145
  161. package/dist/json-snapshot-D6ioHth9.js +0 -1702
  162. package/dist/json-snapshot-DknkjvxP.cjs +0 -2
  163. package/dist/matrix-CGRGkn5s.js +0 -112
  164. package/dist/matrix-gEO7ZM_u.cjs +0 -1
  165. package/dist/param-validation-C3HlcLLO.cjs +0 -1
  166. package/dist/param-validation-Do7Eg8Zv.js +0 -181
  167. package/dist/record-bindings-DUX1VMlR.cjs +0 -1
  168. package/dist/runtime-BjKBI530.js +0 -168
  169. package/dist/runtime-CBFEPKEs.cjs +0 -1
  170. package/dist/sha256-BshdOkCC.cjs +0 -1
  171. package/dist/sha256-DTG-Gq8i.js +0 -157
  172. package/dist/template-bindings-C2SpvsMU.js +0 -58
  173. package/dist/template-bindings-CEtWyiLX.cjs +0 -1
  174. package/dist/template-catalog-C2NLdrwB.cjs +0 -1
  175. package/dist/template-registry-C62vpv4a.cjs +0 -1
  176. package/dist/tree-BX380Rr7.cjs +0 -1
  177. package/dist/tree-CjVZLRw7.js +0 -172
@@ -1,6 +0,0 @@
1
- "use strict";var Un=Object.create;var Wt=Object.defineProperty;var Gn=Object.getOwnPropertyDescriptor;var Jn=Object.getOwnPropertyNames;var Xn=Object.getPrototypeOf,Yn=Object.prototype.hasOwnProperty;var Zn=(t,n,a,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Jn(n))!Yn.call(t,r)&&r!==a&&Wt(t,r,{get:()=>n[r],enumerable:!(o=Gn(n,r))||o.enumerable});return t};var Ke=(t,n,a)=>(a=t!=null?Un(Xn(t)):{},Zn(n||!t||!t.__esModule?Wt(a,"default",{value:t,enumerable:!0}):a,t));const e=require("vue"),j=require("@agile-team/mach-report"),Ce=require("./drill-CsdjgkRM.cjs"),X=require("./progress-B0ctFpKf.cjs"),le=require("./config-Dg_o8e7m.cjs"),ut=require("./prepared-DdrjLC7L.cjs"),Ht=require("./sha256-BshdOkCC.cjs"),nn=require("./component-tree-DkGLEfZC.cjs"),H=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),bt=require("./grid-geometry-CZ_cYB6O.cjs"),dt=require("./injection-keys-Db_DyLkm.cjs");function wt(t){return t==null?[]:Array.isArray(t)?t.map(String).filter(n=>n!==""):String(t).split(",").map(n=>n.trim()).filter(n=>n!=="")}function Qn(t){return wt(t).join(",")}class je extends Error{constructor(n){super(n),this.name="PlanLoadError"}}function _n(t={}){const{baseUrl:n="",headers:a,credentials:o,timeoutMs:r=3e4}=t,l=n.replace(/\/+$/,"");return async({url:s,method:i,params:c,signal:u})=>{let f=`${l}${s}`;if(c&&Object.keys(c).length>0){const m=f.indexOf("#"),P=m>=0?f.slice(m):"",v=m>=0?f.slice(0,m):f,w=v.indexOf("?"),B=w>=0?v.slice(0,w):v,D=new URLSearchParams(w>=0?v.slice(w+1):"");for(const[M,q]of Object.entries(c))D.set(M,q);f=`${B}?${D}${P}`}const g=(m,P)=>{const v=new je(m);return Object.defineProperty(v,"cause",{value:P,configurable:!0,writable:!0}),v};if(u?.aborted)throw g(`请求已取消: ${s}`,u.reason);const d=new AbortController;let x;const b=()=>{d.signal.aborted||(x="external",d.abort(u?.reason))};u?.addEventListener("abort",b,{once:!0});const p=setTimeout(()=>{d.signal.aborted||(x="timeout",d.abort())},r);try{const m=await fetch(f,{method:i.toUpperCase(),headers:{Accept:"application/json",...a},credentials:o,signal:d.signal});if(!m.ok)throw new je(`HTTP ${m.status} ${s}`);return await m.json()}catch(m){throw x==="timeout"?g(`请求超时(${r}ms): ${s}`,m):x==="external"?g(`请求已取消: ${s}`,m):m instanceof je?m:g(`请求失败(${s}): ${m instanceof Error?m.message:String(m)}`,m)}finally{clearTimeout(p),u?.removeEventListener("abort",b)}}}function an(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 v=t.value?.pages??[];return Ce.createPageWindowIndex(v.map(w=>w.pageHeightMm*o),r.value)}),c=e.computed(()=>{let v=0;for(const w of t.value?.pages??[])v=Math.max(v,w.pageWidthMm*o);return{w:v,h:i.value.totalHeightPx}}),u=e.computed(()=>i.value.window(s.value/n.value,l.value/n.value,e.unref(a.overscan)??1)),f=e.computed(()=>{const v=t.value;if(!v)return[];const{start:w,end:B}=u.value;return v.pages.slice(w,B+1).map((D,M)=>({page:D,index:w+M}))});let g=0,d=!1,x;function b(v){v&&(l.value=v.scrollTop,s.value=v.clientHeight||800)}function p(v,w){v.scrollTop=i.value.offsetAt(w)*n.value,x={top:v.scrollTop,index:w,zoom:n.value,geometry:i.value},b(v)}function m(v,w){return B=>{g||d||(g=requestAnimationFrame(()=>{if(g=0,d||(b(B),w.value<=0))return;if(x&&x.top===B.scrollTop&&x.zoom===n.value&&x.geometry===i.value){v.value=Math.min(w.value,x.index+1);return}x=void 0;const D=Math.max(0,B.scrollTop+32)/n.value;v.value=Math.min(w.value,i.value.pageAt(D)+1)}))}}function P(){d=!0,g&&cancelAnimationFrame(g),g=0}return e.onScopeDispose(P),{contentSize:c,windowRange:u,visiblePages:f,makeScrollHandler:m,refreshViewport:b,scrollToPage:p,pageOffsetPx:v=>i.value.offsetAt(v),destroy:P}}const Ut=96/25.4;function ea(t){const n=new WeakMap,a=e.ref(0);let o,r=0,l=0,s=!1;function i(){r++,l&&cancelAnimationFrame(l),l=0}function c(p,m,P,v){return!s&&m===r&&t.plan.value===P&&t.root.value===v&&v.contains(p.holder)&&Number(p.holder.dataset.page)===p.index+1}function u(p){const{holder:m,page:P}=p;n.delete(m),m.style.width=`${P.pageWidthMm*Ut}px`,m.style.height=`${P.pageHeightMm*Ut}px`,m.setAttribute("aria-busy","true");const v=m.ownerDocument.createElement("div");v.className="mrp-page-loading";const w=m.ownerDocument.createElement("span");w.textContent=t.loading(),w.style.transform=`scale(${1/Math.max(1e-4,t.zoom())})`,v.append(w),m.replaceChildren(v)}function f(p){const m=n.get(p.holder);return!m||m.page!==p.page||m.element.parentElement!==p.holder?!1:(m.query!==t.query()&&(t.clear(m.element),t.highlight(m.element),m.query=t.query()),!0)}function g(p,m,P,v){if(c(p,m,P,v))try{const w=j.renderPage(p.page,96,{},p.holder.ownerDocument);if(t.highlight(w),!c(p,m,P,v))return;p.holder.replaceChildren(w),p.holder.removeAttribute("aria-busy"),n.set(p.holder,{page:p.page,element:w,query:t.query()}),t.mounted(p.holder),t.ready()}catch(w){if(!c(p,m,P,v))return;p.holder.removeAttribute("aria-busy");const B=p.holder.ownerDocument.createElement("div");B.className="mrp-page-render-error",B.setAttribute("role","alert"),B.textContent=w instanceof Error?w.message:String(w),p.holder.replaceChildren(B),t.error(w)}}function d(p,m,P,v){p.length&&(l=requestAnimationFrame(()=>{if(m!==r||s)return;l=0;const w=p.shift();w&&g(w,m,P,v),m===r&&t.plan.value===P&&t.root.value===v&&d(p,m,P,v)}))}function x(){i();const p=t.plan.value,m=t.root.value;if(s||!p||!m){o=void 0;return}const P=r,v=o?.plan===p?o.index:t.priority();o=void 0;const w=[];m.querySelectorAll(".mrp-page-holder").forEach(M=>{const q=Number(M.dataset.page)-1,V=p.pages[q];if(!V)return;const O={holder:M,page:V,index:q};f(O)||(u(O),w.push(O))});const B=w.findIndex(M=>M.index===v),D=B<0?void 0:w.splice(B,1)[0];D&&g(D,P,p,m),t.ready(),d(w,P,p,m)}function b(p){s||!t.plan.value||(o={plan:t.plan.value,index:p},a.value++)}return e.watch([t.plan,t.root,t.pages,t.priority,t.focusToken,t.query,t.zoom,t.loading,a],x,{flush:"post",immediate:!0}),e.onScopeDispose(()=>{s=!0,o=void 0,i()}),{prioritize:b,cancel:i}}function on(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 rn(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 ta=0;function Gt(t,n){const a=new AbortController;let o={taskId:`mr-output-${Date.now().toString(36)}-${++ta}`,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 ce 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 ln(t,n){const a={...le.DEFAULT_PRINT_MESSAGES,...n};return t instanceof ce?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 na(t,n){let a;try{a=new URL(t,n)}catch{throw new ce("config")}if(!["http:","https:"].includes(a.protocol)||t.length>16384)throw new ce("config");return a.href}async function aa(t,n,a,o){const r=n.fonts??[];if(r.length>8)throw new ce("config");for(const l of r){if(X.assertOutputActive(a),typeof l.family!="string"||!l.family.trim()||l.family.length>256||typeof l.source!="string")throw new ce("config");const s=t.defaultView?.FontFace;if(!s||!t.fonts)throw new ce("font",l.family);try{const{loadFontWithCache:i}=await Promise.resolve().then(()=>require("./font-loader-EKLzOJxf.cjs")),c=await i(na(l.source,o),{signal:a});if(!c)throw new ce("font",l.family);const u=new s(l.family,c,{weight:l.weight,style:l.style});await X.waitForOutput(u.load(),a),t.fonts.add(u)}catch(i){throw X.assertOutputActive(a),i instanceof ce?i:new ce("font",l.family)}}t.documentElement.getBoundingClientRect(),t.fonts&&await X.waitForOutput(t.fonts.ready,a)}async function oa(t,n,a){X.assertOutputActive(a);try{if(typeof t.decode=="function"?await X.waitForOutput(t.decode(),a):t.complete||await new Promise((o,r)=>{const l=()=>{t.removeEventListener("load",s),t.removeEventListener("error",i),a.removeEventListener("abort",c)},s=()=>{l(),o()},i=()=>{l(),r(new ce("image",n))},c=()=>{l(),r(a.reason)};t.addEventListener("load",s,{once:!0}),t.addEventListener("error",i,{once:!0}),a.addEventListener("abort",c,{once:!0}),a.aborted?c():t.complete&&s()}),X.assertOutputActive(a),t.naturalWidth<=0||t.naturalHeight<=0)throw new ce("image",n)}catch{throw X.assertOutputActive(a),new ce("image",n)}}async function xt(t,n={},a,o=document.baseURI){const r=n.resourceTimeoutMs??15e3;if(!Number.isSafeInteger(r)||r<1||r>12e4)throw new ce("config");const l=new AbortController,s=X.forwardOutputAbort(a,l),i=setTimeout(()=>l.abort(new ce("timeout")),r);try{X.assertOutputActive(l.signal),await aa(t,n,l.signal,o);const c=t.querySelectorAll("img");let u=0;const f=async()=>{for(;u<c.length;){const g=u++;await oa(c[g],g+1,l.signal)}};await Promise.all(Array.from({length:Math.min(c.length,4)},f)),X.assertOutputActive(l.signal)}finally{clearTimeout(i),s(),l.abort()}}const Se=8;function Oe(){return new Promise(t=>setTimeout(t,0))}function We(t){return`p${t.pageWidthMm}x${t.pageHeightMm}`.replace(/[.+]/g,"_")}function Ue(t){const n=new Map;return t.pages.forEach(r=>{n.has(We(r))||n.set(We(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 ${We(r)}{size:${r.pageWidthMm}mm ${r.pageHeightMm}mm;margin:0;}`).join(`
5
- `)}
6
- body{margin:0;background:#fff;}`}</style></head><body>`}function Ge(t,n){const a=j.renderPage(t,96,{},document);a.style.page=We(t);const o=le.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 sn(t,n){return{head:Ue(t),pageChunks:t.pages.map(a=>Ge(a,n))}}async function cn(t,n={}){const a={schemaVersion:"mach-report-batch-print",pages:t.flatMap(i=>i.pages)};if(a.pages.length===0)return;const o=le.snapshotPrintOptions(n.printOptions),r=Ue(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 c=0;c<a.pages.length;c++)X.assertOutputActive(n.signal),i.write(Ge(a.pages[c],o)),c%Se===Se-1&&(X.notifyOutputProgress(n,c+1,a.pages.length),await Oe());i.write("</body></html>"),i.close(),await Oe(),await xt(i,o,n.signal),X.notifyOutputProgress(n,a.pages.length,a.pages.length),l.contentWindow?.focus(),l.contentWindow?.print(),s=!0}catch(i){throw n.signal?.aborted||X.observeOutput(()=>n.onError?.(ln(i,n.messages))),i}finally{s?setTimeout(()=>l.remove(),6e4):l.remove()}}function un(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 ra(t){const{head:n,pageChunks:a}=sn(t);return{html:`${un(n)}${a.join("")}</body></html>`,filename:"mach-report.doc"}}function dn(t,n){let a=null,o=!1,r=!1,l=0,s=0;const i=new Set,c=new Map;let u=null;const f=new Map;let g=null,d=null,x=null,b=null,p=null;function m(k,N){return!r&&t.value===k&&l===N}function P(){if(r)return;const k=[...c.values()].reverse().find(N=>m(N.plan,N.epoch))?.format??null;k!==g&&(g=k,n.onBusy?.(k))}function v(k,N,L){const F={};return c.set(F,{plan:k,epoch:N,format:L,run:Gt("export",n.onTask)}),c.get(F).run.start(),P(),F}function w(k){c.get(k)?.run.finish(),c.delete(k),P()}function B(){for(const[k,N]of f)m(N.plan,N.epoch)||(k.close(),f.delete(k))}function D(k=!0){if(k){s++;for(const N of i)N.close();i.clear()}for(const N of c.values())N.run.finish("cancelled");u?.finish("cancelled"),l++,q(),P(),B()}const M=e.watch(t,()=>D(!1),{flush:"sync"});function q(){a?.remove(),a=null}function V(){D(),r=!0,l++,M(),q(),B(),c.clear(),n.onPrinting?.(!1)}function O(k,N){const L=URL.createObjectURL(k);setTimeout(()=>URL.revokeObjectURL(L),1e4);const F=document.createElement("a");F.href=L,F.download=N,F.click()}function W(k,N,L,F,Z){L.update("download"),m(k,N)&&!L.controller.signal.aborted&&O(F,Z)}async function se(k,N,L,F,Z){const Q=k.contentDocument;Q.open(),Q.write(Ue(N));for(let ne=0;ne<N.pages.length;ne++)if(F.controller.signal.aborted||(Q.write(Ge(N.pages[ne],Z)),F.update("print",ne+1,N.pages.length),ne%Se===Se-1&&await Oe(),k!==a))return!1;return Q.write("</body></html>"),Q.close(),await Oe(),await xt(Q,Z,F.controller.signal),!(!m(N,L)||k!==a)}function oe(){const k=s,N=F=>F&&!r&&k===s,L=F=>(!r&&k===s&&n.onError(F instanceof Error?F.message:"报表修改尚未完成","export"),!1);try{const F=n.beforeOutput?.()??!0;return typeof F=="boolean"?N(F):F.then(N,L)}catch(F){return L(F)}}function re(k){const N=oe();return typeof N=="boolean"?N?k():Promise.resolve():N.then(L=>L?k():void 0)}function y(k,N,L,F,Z){F.finish(F.controller.signal.aborted?"cancelled":"failed"),Z===a&&q(),m(N,L)&&!F.controller.signal.aborted&&n.onError(ln(k,n.getPrintMessages?.()),"print")}async function S(){if(o)return;const k=t.value;if(r||!k||k.pages.length===0)return;const N=l;o=!0;const L=Gt("print",n.onTask);u=L,L.start(),n.onPrinting?.(!0),q(),a=document.createElement("iframe"),a.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(a);const F=a;try{if(!m(k,N)||L.controller.signal.aborted){q();return}const Z=le.snapshotPrintOptions(n.getPrintOptions?.());if(!await se(F,k,N,L,Z))return;F.contentWindow?.focus(),F.contentWindow?.print()}catch(Z){y(Z,k,N,L,F)}finally{L.finish(),u===L&&(u=null),o=!1,r||n.onPrinting?.(!1)}}function h(k,N,L){return{signal:L.controller.signal,onDiagnostic:F=>{m(k,N)&&!L.controller.signal.aborted&&n.onDiagnostic?.(F)},onProgress:(F,Z)=>L.update("encode",F,Z)}}function E(k,N,L){if(d?.plan===k&&d.epoch===N)return d.promise;const F=Promise.resolve().then(()=>{if(!m(k,N))throw new Error("报表已切换或卸载");const Z=ee=>{m(k,N)&&n.onWarning?.(ee)},Q=n.getPdfExporter(),ne=L?h(k,N,L):void 0;return X.waitForOutput(n.encoding?n.encoding.pdf(k,Q,Z,ne):Q(k,Z,ne),L?.controller.signal)}).finally(()=>{d?.promise===F&&(d=null)});return d={plan:k,epoch:N,promise:F},F}async function $(){const k=t.value;if(r||!k||k.pages.length===0)return;const N=l;if(x?.plan===k&&x.epoch===N)return x.promise;const L=v(k,N,"PDF"),F=(async()=>{try{const Z=c.get(L).run,Q=await E(k,N,Z);if(!m(k,N))return;W(k,N,Z,new Blob([Q],{type:"application/pdf"}),"mach-report.pdf")}catch(Z){c.get(L)?.run.finish("failed"),m(k,N)&&n.onError(Z instanceof Error?`PDF 导出失败: ${Z.message}`:"PDF 导出失败","pdf")}finally{w(L),x?.token===L&&(x=null)}})();return x={plan:k,epoch:N,promise:F,token:L},F}async function I(){const k=t.value;if(r||!k||k.pages.length===0)return;const N=l;if(b?.plan===k&&b.epoch===N)return b.promise;const L={...n.getXlsxOptions?.()},F=v(k,N,"Excel"),Z=(async()=>{try{if(!m(k,N))return;const Q=c.get(F).run,ne=h(k,N,Q),ee=n.encoding?n.encoding.xlsx(k,L,ne):import("@agile-team/mach-report/xlsx").then(async({renderPlanToXlsx:Pe})=>{X.assertOutputActive(Q.controller.signal);const Be=await Pe(k,{...L,...ne});return{buffer:new Uint8Array(Be.buffer),warnings:Be.warnings}}),{buffer:we,warnings:pe}=await X.waitForOutput(ee,Q.controller.signal);if(!m(k,N)||(pe.length>0&&n.onWarning?.(`Excel 导出有 ${pe.length} 条提示:${pe.slice(0,2).join(";")}`),!m(k,N)))return;W(k,N,Q,new Blob([we],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),"mach-report.xlsx")}catch(Q){c.get(F)?.run.finish("failed"),m(k,N)&&n.onError(Q instanceof Error?`Excel 导出失败: ${Q.message}`:"Excel 导出失败","export")}finally{w(F),b?.token===F&&(b=null)}})();return b={plan:k,epoch:N,promise:Z,token:F},Z}async function A(){const k=t.value;if(r||!k||k.pages.length===0)return;const N=l;if(p?.plan===k&&p.epoch===N)return p.promise;const L=v(k,N,"图片"),F=(async()=>{try{const Z=c.get(L).run,{blobs:Q}=await X.waitForOutput(j.renderPlanToImages(k,{...h(k,N,Z),dpr:Math.min(2,typeof devicePixelRatio=="number"?devicePixelRatio:1)}),Z.controller.signal);if(!m(k,N))return;Q.forEach((ne,ee)=>{W(k,N,Z,ne,Q.length>1?`mach-report-page-${ee+1}.png`:"mach-report.png")})}catch(Z){c.get(L)?.run.finish("failed"),m(k,N)&&n.onError(Z instanceof Error?`图片导出失败: ${Z.message}`:"图片导出失败","export")}finally{w(L),p?.token===L&&(p=null)}})();return p={plan:k,epoch:N,promise:F,token:L},F}async function J(k){const N=t.value;if(r||!N||!N.pages.length)return;const L=l,F=v(N,L,k==="word"?"Word":"HTML"),Z=c.get(F).run;try{const Q=[];for(const[we,pe]of N.pages.entries()){if(!m(N,L))return;Q.push(Ge(pe)),Z.update("encode",we+1,N.pages.length),we%Se===Se-1&&await Oe()}if(!m(N,L))return;const ne=Ue(N),ee=`${k==="word"?un(ne):ne}${Q.join("")}</body></html>`;W(N,L,Z,new Blob([ee],{type:k==="word"?"application/msword;charset=utf-8":"text/html;charset=utf-8"}),k==="word"?"mach-report.doc":"mach-report.html")}catch(Q){Z.finish("failed"),m(N,L)&&n.onError(Q instanceof Error?`导出失败: ${Q.message}`:"导出失败","export")}finally{w(F)}}async function T(){await J("word")}function G(){return re(S)}function _(){return re(A)}function U(){return re(T)}async function z(k){const N=t.value;if(!(r||!N||N.pages.length===0)){if(k==="pdf"){await $();return}if(k==="xlsx"||k==="excel"){await I();return}if(k==="png"||k==="image"){await A();return}if(k==="word"||k==="doc"){await T();return}if(k!=="html"){n.onError(`不支持的导出格式:${k}`,"export");return}await J("html")}}function me(k){return re(()=>z(k))}function fe(k){const N=t.value;if(r||!N||!N.pages.length){k.close();return}const L=l;f.set(k,{plan:N,epoch:L});const F=v(N,L,"PDF");E(N,L,c.get(F).run).then(Z=>{if(!m(N,L)||k.closed){f.delete(k)&&k.close();return}const Q=URL.createObjectURL(new Blob([Z],{type:"application/pdf"}));setTimeout(()=>URL.revokeObjectURL(Q),6e4);const ne=k.document;ne.title="PDF 预览",ne.documentElement.style.height="100%",ne.body.style.cssText="margin:0;height:100%;";const ee=ne.createElement("iframe");ee.title="PDF 预览",ee.style.cssText="display:block;width:100%;height:100%;border:0;",ee.src=Q,ne.body.replaceChildren(ee),f.delete(k)}).catch(Z=>{c.get(F)?.run.finish("failed"),k.close(),f.delete(k),m(N,L)&&n.onError(Z instanceof Error?`PDF 预览失败: ${Z.message}`:"PDF 预览失败","pdf")}).finally(()=>w(F))}function ye(){if(r||!t.value?.pages.length)return;const k=globalThis.window.open("","_blank");if(!k){n.onError("浏览器拦截了弹窗,请允许弹窗后重试","pdf");return}const N=oe();if(typeof N=="boolean"){N?fe(k):k.close();return}i.add(k),N.then(L=>{const F=i.delete(k);if(!L||!F||k.closed){k.close();return}fe(k)})}return{print:G,exportAs:me,exportImages:_,exportWord:U,openPdfWindow:ye,invalidatePending:D,cancel:D,releasePrintFrame:q,dispose:V}}let ft;function la(t,n){return{...t,prepared:ut.capturePreparedHandoff(t.prepared,n?.budget?.maxPreparedBytes??64e6,t.signal).forward(),pdf:ut.snapshotPdfFonts(t.pdf),xlsx:ut.snapshotXlsxOptions(t.xlsx)}}function sa(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,c){if(o)throw new Error("报表预览已卸载");Ht.throwIfAborted(i.signal);const u=++r,f=t(),g={...f,thresholds:{...f?.thresholds},budget:{...f?.budget}},d={abort:new AbortController},x=X.forwardOutputAbort(i.signal,d.abort);a.add(d);try{const b={...ft?i:la(i,g),signal:d.abort.signal},p=ft??await X.waitForOutput(Promise.resolve().then(()=>require("./auto-uVBjX1j5.cjs")).then(m=>m.auto).then(m=>{const P=m.createAutoReportExporter;return ft=P,P}),d.abort.signal);return Ht.throwIfAborted(d.abort.signal),d.exporter=p({...g,onDecision:m=>{u!==r||o||(n.value=m,X.observeOutput(()=>f?.onDecision?.(m)))}}),await d.exporter.exportPrepared(b,c)}finally{x(),d.exporter?.dispose(),a.delete(d)}},cancel:l,dispose:s}}function ia(t){return{plan:t,diagnostics:[],revisions:{},stats:{rows:0,pages:t.pages.length,cells:0,durationMs:0},layout:{textMetrics:"provided"}}}function Jt(t,n,a,o){return{prepared:ia(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 ca(t){const n=sa(t.execution);function a(s,i){X.assertOutputActive(i.signal);for(const c of s.diagnostics)X.assertOutputActive(i.signal),X.observeOutput(()=>t.diagnostic(c));X.assertOutputActive(i.signal)}async function o(s,i,c,u={}){if(!i.prepare)return i(s,c,u);const f=t.fidelity(),g=await i.prepare(u.signal);X.assertOutputActive(u.signal);const d=await n.exportPrepared({...Jt(s,"pdf",u,f),pdf:g});a(d,u);const x=d.diagnostics.find(p=>p.code==="pdf-font"||p.code==="pdf-page");if(x)throw new Error(x.message);const b=d.diagnostics.filter(p=>p.severity==="warning");return b.length&&c(`PDF 有 ${b.length} 处版式降级:${b.slice(0,2).map(p=>p.message).join(";")}`),d.bytes}async function r(s,i,c){const{renderPlanToXlsx:u}=await import("@agile-team/mach-report/xlsx");X.assertOutputActive(s.signal);const f=await u(s.prepared.plan,{...i,...s.xlsx,fidelity:s.fidelity,signal:s.signal,onProgress:(g,d)=>{X.observeOutput(()=>i.onProgress?.(g,d)),c.onProgress?.(g,d)},onDiagnostic:g=>{X.observeOutput(()=>i.onDiagnostic?.(g)),c.onDiagnostic?.(g)}});return X.assertOutputActive(s.signal),{...s.prepared,bytes:new Uint8Array(f.buffer),format:"xlsx",contentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",diagnostics:[...f.diagnostics??[],...f.warnings.map(g=>({code:"xlsx-fidelity",severity:"warning",message:g}))]}}async function l(s,i,c){const{signal:u,fidelity:f,...g}=i,d=t.fidelity()==="strict"||f==="strict",x=Object.values(g).some(p=>typeof p=="function"),b=await n.exportPrepared({...Jt(s,"xlsx",c,d?"strict":"warn"),xlsx:g},x?p=>r(p,g,c):void 0);return a(b,c),{buffer:b.bytes,warnings:b.diagnostics.filter(p=>p.severity==="warning").map(p=>p.message)}}return{pdf:o,xlsx:l}}function ua(t){const{plan:n,editing:a,diagnostics:o,task:r}=t,{lastError:l,notice:s,reportError:i}=t.feedback,c=e.ref(null),u=e.ref(!1),f=e.ref(),g=e.computed(()=>({...t.defaultsPrint(),...t.printOverrides(),calibration:f.value??{...t.defaultsPrint()?.calibration,...t.printOverrides()?.calibration}}));e.watch([()=>t.printOverrides(),()=>t.defaultsPrint()],()=>{f.value=void 0});let d;function x(V){const O=n.value;if(!O)return!1;const W={excel:"xlsx",image:"png",doc:"word"}[V]??V,se=W==="pdf"?"pdf":W==="xlsx"?"xlsx":W==="png"?"canvas":"dom",oe=o.inspect(O,se);return n.value!==O?!1:oe.length&&t.fidelity()==="strict"?(s.value={kind:"error",message:t.messages().diagnosticsStrict??"输出存在已知降级"},i(s.value.message,"export",{diagnostics:oe}),!1):!0}function b(V){return n.value?o.inspect(n.value,V):[]}const p=dn(n,{encoding:ca({execution:t.execution,fidelity:t.fidelity,diagnostic:o.add}),getPdfExporter:t.getPdfExporter,beforeOutput:()=>a.settle(),onTask:V=>r.receive(V,()=>p.cancel()),onDiagnostic:o.add,getXlsxOptions:()=>t.getXlsxOptions(),getPrintOptions:()=>g.value,getPrintMessages:()=>t.messages(),onError:(V,O)=>{s.value={kind:"error",message:V},i(V,O??"print")},onWarning:V=>{s.value={kind:"warning",message:V},o.add({code:"output",severity:"warning",message:V}),t.feedback.warning(V)},onBusy:V=>{c.value=V,V?s.value={kind:"progress",message:t.messages().exporting.replace("{format}",V)}:s.value?.kind==="progress"&&(s.value=null)},onPrinting:V=>{u.value=V}}),{releasePrintFrame:m,dispose:P}=p,v=e.computed(()=>{const V=n.value?.pages[0];return!!V&&!t.wide()&&[V.pageWidthMm,V.pageHeightMm].every(O=>O>=25&&O<=600)});async function w(){if(!v.value||u.value||t.busy())return;const V=n.value.pages[0];u.value=!0;const O=new AbortController;d=O;try{await cn([rn(V.pageWidthMm,V.pageHeightMm)],{printOptions:g.value,signal:O.signal,messages:t.messages(),onError:W=>{s.value={kind:"error",message:W}}})}catch{}finally{d===O&&(u.value=!1,d=void 0)}}async function B(){if(t.busy())return;const V=a.settle();(typeof V=="boolean"?V:await V)&&(l.value=null,x("html")&&await p.print())}async function D(V){if(t.busy())return;const O=a.settle();(typeof O=="boolean"?O:await O)&&(l.value=null,x(V)&&await p.exportAs(V))}function M(){if(t.busy()||a.active.value||a.saving.value){s.value={kind:"warning",message:t.messages().editingHint??"请先确认单元格修改"};return}l.value=null,x("pdf")&&p.openPdfWindow()}function q(){d?.abort(),m()}return e.onScopeDispose(()=>{d?.abort(),P()}),{exporting:c,printing:u,localPrintCalibration:f,effectivePrintOptions:g,canCalibratePrint:v,testPrintCalibration:w,print:B,exportAs:D,openPdfWindow:M,getOutputDiagnostics:b,invalidate:q,invalidatePending:p.invalidatePending,cancel:p.cancel}}const fn="mrp-hit";function da(t){t.querySelectorAll(`mark.${fn}`).forEach(a=>{const o=a.parentNode;if(o){for(;a.firstChild;)o.insertBefore(a.firstChild,a);a.remove(),o.normalize()}})}function fa(t,n){const a=n.trim();if(!a)return 0;const o=a.toLowerCase(),r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(i){const c=i.parentElement;return!c||c.closest("mark")||/^(SCRIPT|STYLE)$/.test(c.tagName)?NodeFilter.FILTER_REJECT:(i.nodeValue??"").toLowerCase().includes(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 c=i.nodeValue??"",u=c.toLowerCase(),f=i.parentElement;if(!f)continue;const g=document.createDocumentFragment();let d=0,x=u.indexOf(o);for(;x>=0;){x>d&&g.appendChild(document.createTextNode(c.slice(d,x)));const b=document.createElement("mark");b.className=fn,b.textContent=c.slice(x,x+a.length),g.appendChild(b),s++,d=x+a.length,x=u.indexOf(o,d)}d<c.length&&g.appendChild(document.createTextNode(c.slice(d))),f.replaceChild(g,i)}return s}const ma=new Set(["line","rect","ellipse","chart"]);function*pa(t){for(const n of t.cells??[])for(const a of n??[])yield a?.text??"",yield*a?.children??[]}function*ga(t){if(nn.isRichText(t))for(const n of t.richParagraphs)for(const a of n.segments??[])yield(a.kind==="field"?a.field:a.text)??"";else t.lines?.length?yield*t.lines:yield t.text??""}function*va(t){const n=[t.values()];for(;n.length>0;){const a=n[n.length-1].next();if(a.done){n.pop();continue}const o=a.value;if(typeof o=="string"){yield o;continue}yield"",!nn.isImageBackedComponent(o)&&(o.kind==="text"?n.push(ga(o)):o.grid?n.push(pa(o.grid)):ma.has(o.kind)||(yield o.fallbackText??""))}}function*ya(t){for(let n=0;n<t.pages.length;n++){for(const a of va(t.pages[n].components))yield{text:a,pageIndex:n};yield{text:"",pageIndex:n}}}function ha(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 ba(t){const{plan:n,gotoPage:a,highlight:o,clearHighlights:r}=t,l=e.ref(!1),s=e.ref(""),i=e.ref(0),c=e.ref(0),u=e.ref(!1);let f=[];const g=e.computed(()=>{if(c.value===0)return null;const B=i.value;let D=0,M=f.length-1;for(;D<M;){const V=D+M>>>1;f[V].cumulative<=B?D=V+1:M=V}const q=f[D];return q?{pageIndex:q.pageIndex,occurrence:B-(f[D-1]?.cumulative??0)}:null});let d=null,x=null,b=0;function p(){b++,d&&clearTimeout(d),x&&clearTimeout(x),d=x=null,u.value=!1}function m(B){s.value=B,i.value=0,c.value=0,f=[],u.value=!1;const D=B.trim().toLowerCase(),M=n.value;if(!D||!M)return;u.value=!0;const q=b,V=ya(M),O=[];let W=0;function se(){if(x=null,q!==b||M!==n.value)return;const oe=performance.now();let re=0;for(;re<5e3&&performance.now()-oe<4;){const y=V.next();if(y.done){f=O,c.value=W,u.value=!1,f[0]&&a(f[0].pageIndex+1);return}const S=ha(y.value.text,D);if(S>0){W+=S;const h=O[O.length-1];h?.pageIndex===y.value.pageIndex?h.cumulative=W:O.push({pageIndex:y.value.pageIndex,cumulative:W})}re++}x=setTimeout(se,0)}se()}function P(B){if(p(),s.value=B,i.value=c.value=0,f=[],!B.trim()){m("");return}u.value=!0,d=setTimeout(()=>{d=null,m(B)},Math.max(0,e.unref(t.debounceMs)??200))}function v(B){const D=c.value;if(D===0||u.value)return;i.value=(i.value+B+D)%D;const M=g.value;M&&a(M.pageIndex+1)}function w(){p(),s.value="",i.value=c.value=0,f=[]}return e.watch(n,w,{flush:"sync"}),e.onScopeDispose(w),{visible:l,query:s,matchIndex:i,matchCount:c,activeMatch:g,searching:u,toggle:()=>{l.value=!l.value},onInput:P,onNav:v,apply:B=>{s.value.trim()&&o(B,s.value.trim())},clear:B=>{r(B)},reset:w}}function wa(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 xa(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(v=>Math.round(v.pageHeightMm/v.pageWidthMm*116))),c=e.computed(()=>Ce.createPageWindowIndex(i.value.map(v=>v+20),8)),u=e.computed(()=>c.value.window(s.value,l.value,1)),f=e.computed(()=>{if(!o.value)return[];const{start:v,end:w}=u.value;return i.value.slice(v,w+1).map((B,D)=>({index:v+D,height:B}))});let g=0,d=0,x=!1;function b(){const v=a.value;v&&(l.value=v.scrollTop,s.value=v.clientHeight||800)}function p(){x||d||(d=requestAnimationFrame(()=>{d=0,b()}))}function m(){if(f.value,g&&cancelAnimationFrame(g),g=0,x||!o.value||!t.value||!a.value)return;b();const v=f.value,w=t.value,B=a.value;let D=0;function M(){if(g=0,!(x||!o.value||t.value!==w||a.value!==B)){for(let q=0;D<v.length&&q<2;q++,D++){const V=v[D].index,O=B.querySelector(`[data-thumb="${V+1}"]`);if(!O||O.childElementCount>0)continue;const W=r(V);W&&(W.style.width="100%",W.style.height="100%",W.style.display="block",O.appendChild(W))}D<v.length&&(g=requestAnimationFrame(M))}}g=requestAnimationFrame(M)}function P(){x=!0,g&&cancelAnimationFrame(g),d&&cancelAnimationFrame(d),g=d=0}return e.onScopeDispose(P),{schedule:m,destroy:P,onScroll:p,windowRange:u,visibleThumbs:f}}function ka(){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 Ea(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 Ca=["disabled","aria-expanded"],Sa=["aria-label"],Na=["aria-label","disabled","onClick"],Pa={"aria-hidden":"true"},Ba=e.defineComponent({__name:"ReportExportMenu",props:{messages:{},formats:{},busy:{type:Boolean}},emits:["export"],setup(t,{emit:n}){const a=t,o=n,{opened:r,root:l,trigger:s,panel:i,close:c,onKeydown:u}=le.usePopover(),f=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(b=>!a.formats||a.formats.includes(b.format)));e.watch(()=>a.busy,b=>{b&&c()});function g(b){a.busy||(o("export",b),c(!0))}function d(b){b.key!=="ArrowDown"&&b.key!=="ArrowUp"||(b.preventDefault(),r.value=!0,b.key==="ArrowUp"&&e.nextTick(()=>i.value?.querySelector("button:last-child")?.focus()))}function x(b){if(b.key==="Tab"){c();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(b.key))return;b.preventDefault(),b.stopPropagation();const m=[...i.value?.querySelectorAll("button:not(:disabled)")??[]],P=m.indexOf(document.activeElement),v=b.key==="Home"?0:b.key==="End"?m.length-1:(P+(b.key==="ArrowDown"?1:-1)+m.length)%m.length;m[v]?.focus()}return(b,p)=>f.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"root",ref:l,class:"mrp-export-menu",onKeydown:p[1]||(p[1]=(...m)=>e.unref(u)&&e.unref(u)(...m))},[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]=m=>r.value=!e.unref(r)),onKeydown:d},[e.createVNode(H._sfc_main,{name:"download"}),e.createTextVNode(e.toDisplayString(t.messages.exportMenu??"导出"),1),e.createVNode(H._sfc_main,{name:"chevron-down",size:12})],40,Ca),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:x},[e.createElementVNode("p",null,e.toDisplayString(t.messages.exportMenuDescription??"选择文件格式"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,m=>(e.openBlock(),e.createElementBlock("button",{key:m.format,type:"button",role:"menuitem",tabindex:"-1","aria-label":m.label,disabled:t.busy,onClick:P=>g(m.format)},[e.createVNode(H._sfc_main,{name:"file"}),e.createElementVNode("span",null,e.toDisplayString(m.label),1),e.createElementVNode("small",Pa,e.toDisplayString(m.extension),1)],8,Na))),128))],40,Sa)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)}}),$a=H._export_sfc(Ba,[["__scopeId","data-v-83a57a3c"]]),Va=["aria-label"],Ia={class:"mrp-pageinfo","aria-live":"polite"},Da={class:"mrp-page-buttons"},Ra=["aria-label","title","disabled"],Ma=["aria-label","title","disabled"],Ta=["aria-label","title","aria-invalid","disabled"],Oa=["aria-label","disabled"],Aa={key:1,class:"mrp-page-error",role:"alert"},Fa=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 c=r.value.trim(),u=Number(c);l.value=!/^\d+$/.test(c)||!Number.isSafeInteger(u)||u<1||u>a.pageCount,!l.value&&u!==a.currentPage&&o("goto",u)}return(c,u)=>t.pageCount>0?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mrp-pagination",role:"navigation","aria-label":t.messages.pagination??"报表分页"},[e.createElementVNode("span",Ia,e.toDisplayString(s.value),1),e.createElementVNode("div",Da,[e.createElementVNode("button",{class:"mrp-nav",type:"button","aria-label":t.messages.prevPage,title:t.messages.prevPage,disabled:t.busy||t.currentPage<=1,onClick:u[0]||(u[0]=f=>o("goto",t.currentPage-1))},[e.createVNode(H._sfc_main,{name:"chevron-left"})],8,Ra),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:u[1]||(u[1]=f=>o("goto",t.currentPage+1))},[e.createVNode(H._sfc_main,{name:"chevron-right"})],8,Ma)]),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":u[2]||(u[2]=f=>r.value=f),type:"text",inputmode:"numeric",autocomplete:"off","aria-label":t.messages.pageJump??"跳至页",title:t.messages.pageJumpHint??"Enter 跳转","aria-invalid":l.value,disabled:t.busy,onInput:u[3]||(u[3]=f=>l.value=!1),onKeydown:u[4]||(u[4]=e.withKeys(f=>{r.value=String(t.currentPage),l.value=!1},["esc"]))},null,40,Ta),[[e.vModelText,r.value]])]),e.createElementVNode("button",{class:"mrp-nav",type:"submit","aria-label":t.messages.pageJump??"跳至页",disabled:t.busy},[e.createVNode(H._sfc_main,{name:"arrow-right",size:14})],8,Oa)],32)):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("span",Aa,e.toDisplayString(t.messages.pageJumpInvalid??"请输入有效页码"),1)):e.createCommentVNode("",!0)],8,Va)):e.createCommentVNode("",!0)}}),kt=H._export_sfc(Fa,[["__scopeId","data-v-0db4fbd3"]]),za=["aria-label"],La={class:"mrp-title"},qa=["aria-label"],Ka=["aria-label","aria-pressed"],ja=["aria-pressed"],Wa=["aria-pressed"],Ha=["aria-label"],Ua=["aria-pressed"],Ga=["aria-pressed","onClick"],Ja=["aria-label"],Xa=["disabled"],Ya=["disabled"],Za=["disabled"],Qa=["aria-label","aria-expanded"],_a=["aria-label"],eo=["placeholder","aria-label","value"],to=["aria-label"],no={key:1,class:"mrp-search-count",role:"status","aria-live":"polite"},ao=["disabled","aria-label"],oo=["disabled","aria-label"],ro=["aria-label"],lo={class:"mrp-search-hint",role:"status"},so=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=Ea({visible:()=>o.search.visible,navigate:f=>{!o.search.searching&&o.search.matchCount>0&&r("search-nav",f)},close:()=>{o.search.visible&&r("search-toggle")}}),{input:s,toggle:i}=l;n({focusSearch:l.focus});function c(){const f=o.search.matchCount>0?o.search.matchIndex+1:0;return o.messages.matchInfo.replace("{cur}",String(f)).replace("{total}",String(o.search.matchCount))}function u(){r("search-input",""),l.focus()}return(f,g)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-toolbar",role:"toolbar","aria-label":t.messages.title},[e.createElementVNode("span",La,[e.createVNode(H._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:g[0]||(g[0]=d=>r("goto",d))},null,8,["page-count","current-page","messages","busy"])):e.createCommentVNode("",!0),g[15]||(g[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:g[1]||(g[1]=d=>r("search-toggle"))},[e.createVNode(H._sfc_main,{name:"search"})],10,Ka),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:g[2]||(g[2]=d=>r("thumbs-toggle"))},[e.createVNode(H._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,ja)):e.createCommentVNode("",!0)],8,qa)):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:g[3]||(g[3]=d=>r("thumbs-toggle"))},[e.createVNode(H._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,Wa)):e.createCommentVNode("",!0),e.renderSlot(f.$slots,"navigation",{},void 0,!0),t.showZoom!==!1?(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-zoom-tools",role:"group","aria-label":t.messages.zoom??"缩放工具"},[e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="fit"}]),"aria-pressed":t.zoomMode==="fit",type:"button",onClick:g[4]||(g[4]=d=>r("zoom","fit"))},[e.createVNode(H._sfc_main,{name:"fit"}),e.createTextVNode(e.toDisplayString(t.messages.fitWidth),1)],10,Ua),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList([100,150],d=>e.createElementVNode("button",{key:d,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="raw"&&Math.round(t.zoom*100)===d}]),"aria-pressed":t.zoomMode==="raw"&&Math.round(t.zoom*100)===d,type:"button",onClick:x=>r("zoom",d)},e.toDisplayString(d)+"%",11,Ga)),64))],8,Ha)):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:g[5]||(g[5]=d=>r("import-excel"))},[e.createVNode(H._sfc_main,{name:"upload"}),e.createTextVNode(e.toDisplayString(t.messages.importExcel??"导入 Excel 模板"),1)],8,Xa)):e.createCommentVNode("",!0),t.showExport?(e.openBlock(),e.createBlock($a,{key:1,messages:t.messages,formats:t.exportFormats,busy:t.busy,onExport:g[6]||(g[6]=d=>r("export",d))},null,8,["messages","formats","busy"])):e.createCommentVNode("",!0),t.showPrint?(e.openBlock(),e.createElementBlock("button",{key:2,class:"mrp-nav",type:"button",disabled:t.busy,onClick:g[7]||(g[7]=d=>r("print"))},[e.createVNode(H._sfc_main,{name:"print"}),e.createTextVNode(e.toDisplayString(t.messages.print),1)],8,Ya)):e.createCommentVNode("",!0),t.showPdfWindow?(e.openBlock(),e.createElementBlock("button",{key:3,class:"mrp-nav",type:"button",disabled:t.busy,onClick:g[8]||(g[8]=d=>r("pdf-window"))},[e.createVNode(H._sfc_main,{name:"external"}),e.createTextVNode(e.toDisplayString(t.messages.pdfWindow),1)],8,Za)):e.createCommentVNode("",!0)],8,Ja)):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:g[9]||(g[9]=d=>r("settings-toggle"))},[e.createVNode(H._sfc_main,{name:"settings"}),e.createTextVNode(e.toDisplayString(t.messages.settings??"设置"),1)],10,Qa)):e.createCommentVNode("",!0),t.showSearch!==!1&&t.search.visible?(e.openBlock(),e.createElementBlock("div",{key:6,class:"mrp-search-panel",role:"search","aria-label":t.messages.search??"内容搜索"},[e.createElementVNode("div",{class:e.normalizeClass(["mrp-search",{"mrp-search-no-results":t.search.query&&!t.search.searching&&!t.search.matchCount}])},[e.createVNode(H._sfc_main,{name:"search"}),e.createElementVNode("input",{ref_key:"searchInputRef",ref:s,class:"mrp-search-input",type:"text",autocomplete:"off",spellcheck:"false",placeholder:t.messages.searchPlaceholder,"aria-label":t.messages.search??t.messages.searchPlaceholder,value:t.search.query,onInput:g[10]||(g[10]=d=>r("search-input",d.target.value)),onKeydown:g[11]||(g[11]=(...d)=>e.unref(l).onKeydown&&e.unref(l).onKeydown(...d))},null,40,eo),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:u},[e.createVNode(H._sfc_main,{name:"close",size:13})],8,to)):e.createCommentVNode("",!0),t.search.query?(e.openBlock(),e.createElementBlock("span",no,e.toDisplayString(t.search.searching?t.messages.searching??"搜索中…":c()),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"mrp-nav mrp-icon-button",type:"button",disabled:t.search.matchCount===0||t.search.searching,"aria-label":t.messages.prevSearchMatch??"上一个匹配",onClick:g[12]||(g[12]=d=>r("search-nav",-1))},[e.createVNode(H._sfc_main,{name:"chevron-up",size:14})],8,ao),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:g[13]||(g[13]=d=>r("search-nav",1))},[e.createVNode(H._sfc_main,{name:"chevron-down",size:14})],8,oo),e.createElementVNode("button",{class:"mrp-nav mrp-search-close mrp-icon-button",type:"button","aria-label":t.messages.closeSearch??"关闭搜索",onClick:g[14]||(g[14]=(...d)=>e.unref(l).close&&e.unref(l).close(...d))},[e.createVNode(H._sfc_main,{name:"close",size:14})],8,ro)],2),e.createElementVNode("span",lo,e.toDisplayString(t.search.query&&!t.search.searching&&!t.search.matchCount?t.messages.searchNoMatches??"没有匹配内容":t.messages.searchHint??"Enter 下一个 · Shift+Enter 上一个"),1)],8,_a)):e.createCommentVNode("",!0)],8,za))}}),mn=H._export_sfc(so,[["__scopeId","data-v-5f4b04d8"]]);function io(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 co(t){const n=[],a=[];let o;for(const[r,l]of(t?.pages??[]).entries()){const s=io(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 uo=["aria-label"],fo={key:0,class:"mrp-record-arrows"},mo=["aria-label","title","disabled"],po=["aria-label","title","disabled"],go={class:"mrp-record-info","aria-live":"polite"},vo=["title"],yo=["title"],ho=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(()=>co(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))),c=e.computed(()=>{const f=a.plan?.pages[a.currentPage-1]?.meta?.title;return typeof f=="string"?f:""});function u(f){const g=r.value.entries[l.value+f];!a.busy&&l.value>=0&&g&&o("goto",g.page)}return(f,g)=>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",fo,[e.createElementVNode("button",{type:"button","aria-label":t.messages.prevRecord??"上一条记录",title:t.messages.prevRecord??"上一条记录",disabled:t.busy||l.value<=0,onClick:g[0]||(g[0]=d=>u(-1))},[e.createVNode(H._sfc_main,{name:"chevron-left",size:13})],8,mo),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:g[1]||(g[1]=d=>u(1))},[e.createVNode(H._sfc_main,{name:"chevron-right",size:13})],8,po)])):e.createCommentVNode("",!0),e.createElementVNode("span",go,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,vo)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:2,class:"mrp-record-face",title:c.value},e.toDisplayString(c.value),9,yo)):e.createCommentVNode("",!0)],8,uo)):e.createCommentVNode("",!0)}}),bo=H._export_sfc(ho,[["__scopeId","data-v-aa94fa14"]]),wo=["aria-label","aria-busy"],xo={class:"mrp-calculation-heading"},ko={class:"mrp-calculation-controls"},Eo=["aria-label","value","disabled"],Co=["value"],So={class:"mrp-calculation-precision"},No=["aria-label","value","disabled"],Po={key:0,class:"mrp-calculation-expression"},Bo=["aria-label","value","disabled"],$o={class:"mrp-calculation-actions"},Vo={key:1,class:"mrp-calculation-diagnostic",role:"alert"},Io={key:2,class:"mrp-calculation-result",role:"status","aria-live":"polite"},Do={key:0},Ro={key:3,class:"mrp-calculation-empty"},Mo={class:"mrp-calculation-local"},To=e.defineComponent({__name:"ReportCalculationPanel",props:{state:{},messages:{}},setup(t){const n=t,a=`mrp-calculation-expression-hint-${e.getCurrentInstance()?.uid??0}`,o=e.computed(()=>[["sum",n.messages.calculationSum],["average",n.messages.calculationAverage],["min",n.messages.calculationMin],["max",n.messages.calculationMax],["count",n.messages.calculationCount],["median",n.messages.calculationMedian],["expression",n.messages.calculationCustom]]),r=e.computed(()=>{const l=n.state.error.value;if(!l)return"";const s=n.messages;return{selection:s.calculationErrorSelection,limit:s.calculationErrorLimit,expression:s.calculationErrorExpression,division:s.calculationErrorDivision,overflow:s.calculationErrorOverflow,precision:s.calculationErrorPrecision}[l]});return(l,s)=>(e.openBlock(),e.createElementBlock("section",{class:"mrp-calculation","aria-label":t.messages.calculationTitle,"aria-busy":t.state.busy.value},[e.createElementVNode("header",xo,[s[5]||(s[5]=e.createElementVNode("span",{class:"mrp-calculation-symbol","aria-hidden":"true"},"∑",-1)),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(t.messages.calculationTitle),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.calculationHint),1)])]),e.createElementVNode("div",ko,[e.createElementVNode("label",null,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationFormula),1),e.createElementVNode("select",{"aria-label":t.messages.calculationFormula,value:t.state.operation.value,onChange:s[0]||(s[0]=i=>t.state.setOperation(i.target.value)),disabled:t.state.busy.value},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,([i,c])=>(e.openBlock(),e.createElementBlock("option",{key:i,value:i},e.toDisplayString(c),9,Co))),128))],40,Eo)]),e.createElementVNode("label",So,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationPrecision),1),e.createElementVNode("input",{"aria-label":t.messages.calculationPrecision,value:t.state.precision.value,onChange:s[1]||(s[1]=i=>t.state.setPrecision(Number(i.target.value))),type:"number",min:"0",max:"12",step:"1",disabled:t.state.busy.value},null,40,No)])]),t.state.operation.value==="expression"?(e.openBlock(),e.createElementBlock("label",Po,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationExpression),1),e.createElementVNode("input",{"aria-label":t.messages.calculationExpression,"aria-describedby":a,value:t.state.expression.value,onInput:s[2]||(s[2]=i=>t.state.setExpression(i.target.value)),type:"text",maxlength:"256",spellcheck:"false",disabled:t.state.busy.value,placeholder:"SUM / COUNT"},null,40,Bo),e.createElementVNode("small",{id:a},e.toDisplayString(t.messages.calculationExpressionHint),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",$o,[t.state.busy.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:s[3]||(s[3]=i=>t.state.cancel())},e.toDisplayString(t.messages.calculationCancel),1)):(e.openBlock(),e.createElementBlock("button",{key:1,class:"mrp-calculation-run",type:"button",onClick:s[4]||(s[4]=i=>t.state.run())},e.toDisplayString(t.messages.calculationRun),1))]),r.value?(e.openBlock(),e.createElementBlock("p",Vo,e.toDisplayString(r.value),1)):t.state.result.value?(e.openBlock(),e.createElementBlock("div",Io,[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",Do,e.toDisplayString(t.messages.calculationEmpty),1)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",Ro,e.toDisplayString(t.messages.calculationNoSelection),1)),e.createElementVNode("p",Mo,e.toDisplayString(t.messages.calculationLocal),1)],8,wo))}}),Oo=H._export_sfc(To,[["__scopeId","data-v-ee359251"]]);function Ao(t){const n=e.ref("sum"),a=e.ref("SUM / COUNT"),o=e.ref(2),r=e.ref(!1),l=e.shallowRef(null),s=e.ref(null);let i=null,c=0;function u(){c++,i?.abort(),i=null,r.value=!1}function f(){u(),l.value=null,s.value=null}async function g(){if(f(),!t.enabled())return;const p=t.plan.value,m=t.selection.value;if(!p||!m){s.value="selection";return}const P=++c,v=new AbortController;i=v,r.value=!0;try{const w=await j.calculateReportSelection(p,m,{operation:n.value,expression:a.value,precision:o.value,signal:v.signal});P===c&&t.plan.value===p&&t.selection.value===m&&t.enabled()&&(l.value=w)}catch(w){P===c&&!v.signal.aborted&&(s.value=w instanceof j.ReportCalculationError?w.code:"expression")}finally{P===c&&(r.value=!1,i=null)}}e.watch([t.plan,t.selection,()=>t.enabled(),n,a,o],f,{flush:"sync"}),e.onScopeDispose(f);function d(p){n.value=p}function x(p){a.value=p}function b(p){o.value=p}return{operation:n,expression:a,precision:o,busy:r,result:l,error:s,run:g,cancel:u,clear:f,setOperation:d,setExpression:x,setPrecision:b}}const Fo=["aria-label"],zo={class:"mrp-settings-header"},Lo=["aria-label"],qo=["aria-label"],Ko=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],jo={class:"mrp-settings-content"},Wo=["id","aria-labelledby","hidden"],Ho={key:0},Uo={class:"mrp-settings-option"},Go=["checked","disabled"],Jo={class:"mrp-settings-option"},Xo=["value","disabled"],Yo=["id","aria-labelledby","hidden"],Zo={key:0},Qo=["checked","disabled","onChange"],_o={key:0,class:"mrp-settings-note"},er={key:1,class:"mrp-settings-note"},tr=["id","aria-labelledby","hidden"],nr={class:"mrp-settings-intro"},ar={class:"mrp-settings-option mrp-settings-feature"},or=["id"],rr=["aria-label","aria-describedby","checked","disabled"],lr=["disabled"],sr=e.defineComponent({__name:"ReportSettings",props:{available:{},enabled:{},messages:{},persistedEditing:{type:Boolean},busy:{type:Boolean},interaction:{},section:{}},emits:["change","reset","close","interaction","section"],setup(t,{emit:n}){const a=t,o=n,r=e.ref(null),l=e.computed(()=>a.section??"general"),s="mrp-settings-"+e.getCurrentInstance()?.uid,i=e.computed(()=>[{key:"general",label:a.messages.settingsGeneral??"常规"},{key:"tools",label:a.messages.settingsTools??"工具"},{key:"advanced",label:a.messages.settingsAdvanced??"高级"}]);function c(p,m){const v={ArrowRight:(m+1)%3,ArrowLeft:(m+2)%3,Home:0,End:2}[p.key];v!==void 0&&(p.preventDefault(),o("section",i.value[v].key),r.value?.querySelector("#"+s+"-tab-"+i.value[v].key)?.focus())}const u=e.ref(null);let f=null;const g=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(p=>({...p,tools:p.tools.map(([m,P])=>({key:m,label:P}))})));function d(p,m){const P=p.target,v=P.checked;P.checked=a.enabled[m],o("change",m,v)}function x(p){return!r.value||p.defaultPrevented?!1:p.target instanceof Node&&r.value.contains(p.target)?!0:p.target instanceof Element&&p.target.closest('[role="dialog"],dialog[open]')?!1:!Array.from(document.querySelectorAll('[aria-modal="true"],dialog[open]')).some(m=>m!==r.value&&!r.value.contains(m))}function b(p){if(!x(p))return;if(p.key==="Escape"){p.preventDefault(),p.stopPropagation(),o("close");return}if(p.key!=="Tab")return;const m=Array.from(r.value?.querySelectorAll("a[href],button:not(:disabled),input:not(:disabled),textarea:not(:disabled),select:not(:disabled),[tabindex='0']")??[]).filter(B=>!B.closest("[hidden]")&&B.tabIndex!==-1),P=m?.[0],v=m?.[m.length-1];(!r.value?.contains(document.activeElement)||p.shiftKey&&document.activeElement===P||!p.shiftKey&&document.activeElement===v)&&(p.preventDefault(),p.stopPropagation(),(p.shiftKey?v:P)?.focus())}return e.onMounted(()=>{const p=r.value?.closest(".mach-report-preview")?.querySelector(".mrp-settings-toggle"),m=document.activeElement;f=m instanceof HTMLElement&&m!==document.body&&!r.value?.contains(m)?m:p??null,u.value?.focus(),document.addEventListener("keydown",b)}),e.onUnmounted(()=>{document.removeEventListener("keydown",b),f?.isConnected&&f.focus()}),(p,m)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-settings-backdrop",onClick:m[5]||(m[5]=e.withModifiers(P=>p.$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",zo,[e.createElementVNode("div",null,[m[6]||(m[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:u,class:"mrp-settings-close",type:"button","aria-label":t.messages.settingsClose,onClick:m[0]||(m[0]=P=>p.$emit("close"))},[...m[7]||(m[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,Lo)]),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,(P,v)=>(e.openBlock(),e.createElementBlock("button",{id:s+"-tab-"+P.key,key:P.key,type:"button",role:"tab","aria-selected":l.value===P.key,"aria-controls":s+"-panel-"+P.key,tabindex:l.value===P.key?0:-1,onClick:w=>p.$emit("section",P.key),onKeydown:w=>c(w,v)},e.toDisplayString(P.label),41,Ko))),128))],8,qo),e.createElementVNode("div",jo,[e.createElementVNode("section",{id:s+"-panel-general",role:"tabpanel","aria-labelledby":s+"-tab-general",hidden:l.value!=="general"},[e.renderSlot(p.$slots,"default",{},void 0,!0),t.interaction?(e.openBlock(),e.createElementBlock("fieldset",Ho,[e.createElementVNode("legend",null,e.toDisplayString(t.messages.settingsPanes),1),e.createElementVNode("label",Uo,[e.createElementVNode("span",null,e.toDisplayString(t.messages.freezeHeaders),1),e.createElementVNode("input",{type:"checkbox",checked:t.interaction.freezeHeaders,disabled:t.busy,onChange:m[1]||(m[1]=P=>p.$emit("interaction",{freezeHeaders:P.target.checked}))},null,40,Go)]),e.createElementVNode("label",Jo,[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:m[2]||(m[2]=P=>p.$emit("interaction",{frozenColumns:Math.max(0,Math.min(20,Number(P.target.value)||0))}))},null,40,Xo)])])):e.createCommentVNode("",!0)],8,Wo),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(g.value,P=>(e.openBlock(),e.createElementBlock("fieldset",{key:P.label},[e.createElementVNode("legend",null,e.toDisplayString(P.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(P.tools,v=>(e.openBlock(),e.createElementBlock("label",{key:v.key,class:e.normalizeClass(["mrp-settings-option",{"mrp-settings-unavailable":!t.available[v.key]}])},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(v.label),1),t.available[v.key]?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("small",Zo,e.toDisplayString(t.messages.settingsUnavailable),1))]),e.createElementVNode("input",{type:"checkbox",checked:t.enabled[v.key],disabled:t.busy||!t.available[v.key],onChange:w=>d(w,v.key)},null,40,Qo)],2))),128))]))),128)),t.available.editing?(e.openBlock(),e.createElementBlock("p",_o,e.toDisplayString(t.persistedEditing?t.messages.editingSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.available.import?(e.openBlock(),e.createElementBlock("p",er,e.toDisplayString(t.messages.importLocal),1)):e.createCommentVNode("",!0)],8,Yo),e.createElementVNode("section",{id:s+"-panel-advanced",role:"tabpanel","aria-labelledby":s+"-tab-advanced",hidden:l.value!=="advanced"},[e.createElementVNode("p",nr,e.toDisplayString(t.messages.settingsAdvancedDescription),1),e.createElementVNode("label",ar,[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,or)]),e.createElementVNode("input",{type:"checkbox","aria-label":t.messages.settingsCalculations,"aria-describedby":s+"-calculation-description",checked:t.interaction?.calculations===!0,disabled:t.busy,onChange:m[3]||(m[3]=P=>p.$emit("interaction",{calculations:P.target.checked}))},null,40,rr)]),t.interaction?.calculations?e.renderSlot(p.$slots,"advanced",{},void 0,!0,0):e.createCommentVNode("",!0)],8,tr)]),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:t.busy,onClick:m[4]||(m[4]=P=>p.$emit("reset"))},e.toDisplayString(t.messages.settingsReset),9,lr),e.createElementVNode("span",null,e.toDisplayString(t.messages.settingsLocal),1)])],8,Fo)]))}}),ir=H._export_sfc(sr,[["__scopeId","data-v-36723612"]]),cr={class:"mrp-empty",role:"status"},ur={key:0},dr=e.defineComponent({__name:"ReportEmpty",props:{title:{},description:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("div",cr,[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",ur,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)]))}}),Xt=H._export_sfc(dr,[["__scopeId","data-v-3e16b87e"]]),fr=["aria-label"],mr=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,c)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-discard-backdrop",onKeydown:s,onClick:c[2]||(c[2]=e.withModifiers(u=>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:c[0]||(c[0]=u=>a("answer",!1))},e.toDisplayString(t.messages.discardKeep),513),e.createElementVNode("button",{ref_key:"discard",ref:r,type:"button",onClick:c[1]||(c[1]=u=>a("answer",!0))},e.toDisplayString(t.messages.discardProceed),513)])],8,fr)],32))}}),pr=H._export_sfc(mr,[["__scopeId","data-v-f7590294"]]),gr={key:0,class:"mrp-task-status",role:"status","aria-live":"polite"},vr={key:0},yr=["value","max","aria-label"],hr=e.defineComponent({__name:"ReportTaskStatus",props:{task:{},messages:{}},emits:["cancel"],setup(t){const n=t,a=e.computed(()=>({query:n.messages.taskQuery,validate:n.messages.taskValidate,layout:n.messages.taskLayout,assets:n.messages.taskAssets,import:n.messages.importing,encode:n.messages.taskEncode,download:n.messages.taskDownload,print:n.messages.taskPrint})),o=e.computed(()=>n.task?.total===void 0?"":`${n.task.completed??0} / ${n.task.total}`);return(r,l)=>t.task&&(t.task.status==="running"||t.task.status==="cancelled")?(e.openBlock(),e.createElementBlock("div",gr,[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",vr,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,yr)):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)}}),br=H._export_sfc(hr,[["__scopeId","data-v-657ac599"]]),wr={key:0,class:"mrp-diagnostics"},xr=["aria-label","placeholder"],kr={key:0},Er=["onClick"],Cr={key:0},Sr=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(c=>`${c.code} ${c.message} ${o.value[c.code]??""} ${c.path??""} ${s(c)} ${c.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,c)=>t.entries.length?(e.openBlock(),e.createElementBlock("details",wr,[e.createElementVNode("summary",null,[e.createTextVNode(e.toDisplayString(t.messages.diagnosticsTitle)+" ",1),e.createElementVNode("span",null,e.toDisplayString(t.entries.length),1)]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":c[0]||(c[0]=u=>a.value=u),type:"search","aria-label":t.messages.diagnosticsSearch,placeholder:t.messages.diagnosticsSearch},null,8,xr),[[e.vModelText,a.value]]),e.createElementVNode("ol",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(u,f)=>(e.openBlock(),e.createElementBlock("li",{key:f},[e.createElementVNode("div",null,[e.createElementVNode("b",null,e.toDisplayString(u.format?.toUpperCase()??u.severity)+" · "+e.toDisplayString(u.code),1),e.createElementVNode("p",null,e.toDisplayString(o.value[u.code]??u.message),1),o.value[u.code]?(e.openBlock(),e.createElementBlock("details",kr,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.diagnosticsDetails),1),e.createTextVNode(e.toDisplayString(u.message),1)])):e.createCommentVNode("",!0),e.createElementVNode("small",null,e.toDisplayString(s(u)),1)]),u.pageIndex!==void 0?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:g=>i.$emit("locate",u)},e.toDisplayString(t.messages.diagnosticsLocate),9,Er)):e.createCommentVNode("",!0)]))),128))]),r.value.length>l.value.length?(e.openBlock(),e.createElementBlock("small",Cr,e.toDisplayString((t.messages.diagnosticsMore??"").replace("{count}",String(r.value.length))),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),Nr=H._export_sfc(Sr,[["__scopeId","data-v-3b7804ce"]]),Pr={key:0,class:"mrp-data-explanation"},Br={class:"mrp-data-content"},$r=["aria-label","placeholder"],Vr={class:"mrp-data-state"},Ir=["disabled","onClick"],Dr={key:0,role:"status"},Rr={key:1},Mr=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 c=r.value.toLocaleLowerCase().trim().split(/\s+/).filter(Boolean);return a.entries.filter(u=>c.every(f=>`${u.message} ${u.target?.datasetId} ${u.target?.rowKey??""} ${u.target?.field} ${l.value[u.valueState]??""}`.toLocaleLowerCase().includes(f)))}),i=e.computed(()=>s.value.slice(0,100));return(c,u)=>t.entries.length?(e.openBlock(),e.createElementBlock("details",Pr,[e.createElementVNode("summary",null,[e.createVNode(H._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(H._sfc_main,{name:"chevron-down",size:12})]),e.createElementVNode("div",Br,[e.createElementVNode("label",null,[e.createVNode(H._sfc_main,{name:"search",size:15}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[0]||(u[0]=f=>r.value=f),type:"search","aria-label":t.messages.dataExplanationSearch,placeholder:t.messages.dataExplanationSearch},null,8,$r),[[e.vModelText,r.value]])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(f,g)=>(e.openBlock(),e.createElementBlock("li",{key:g},[e.createElementVNode("div",null,[e.createElementVNode("span",Vr,e.toDisplayString(l.value[f.valueState]),1),e.createElementVNode("code",null,[e.createTextVNode(e.toDisplayString(f.target?.datasetId)+" · "+e.toDisplayString(f.target?.field)+" ",1),f.target?.rowKey!==void 0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" · "+e.toDisplayString(f.target.rowKey),1)],64)):e.createCommentVNode("",!0)]),e.createElementVNode("p",null,e.toDisplayString(f.message),1)]),f.target?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.busy,onClick:d=>o("locate",f.target)},[e.createTextVNode(e.toDisplayString(t.messages.diagnosticsLocate),1),e.createVNode(H._sfc_main,{name:"arrow-right",size:13})],8,Ir)):e.createCommentVNode("",!0)]))),128))]),s.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Dr,e.toDisplayString(t.messages.dataExplanationEmpty),1)),s.value.length>i.value.length?(e.openBlock(),e.createElementBlock("small",Rr,e.toDisplayString((t.messages.diagnosticsMore??"").replace("{count}",String(s.value.length))),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)}}),Tr=H._export_sfc(Mr,[["__scopeId","data-v-cb0adb4c"]]),Or=["aria-label"],Ar=["disabled","title","onClick"],Fr={key:0,role:"status"},zr={key:1,role:"alert"},Lr={key:2,role:"status"},qr=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(H._sfc_main,{name:"arrow-right",size:13})],8,Ar))),128)),t.pending?(e.openBlock(),e.createElementBlock("small",Fr,e.toDisplayString(t.messages.drillOpening),1)):t.error?(e.openBlock(),e.createElementBlock("small",zr,e.toDisplayString(t.error),1)):t.entries.every(l=>l.reason)?(e.openBlock(),e.createElementBlock("small",Lr,e.toDisplayString(t.messages.drillMissingValue),1)):e.createCommentVNode("",!0)],8,Or)):e.createCommentVNode("",!0)}}),Kr=H._export_sfc(qr,[["__scopeId","data-v-f9ff8c13"]]);function jr(t){const n=e.ref(!1),a=e.ref("");let o;const r=e.computed(()=>{const i=t.plan.value,c=t.selection.value?.focus,u=t.options();if(!i||!c||!u)return[];try{return Ce.matchReportDrillActions(i,c,u.actions).map(f=>{try{return Ce.createReportDrillRequest(i,c,f,t.params()),{action:f}}catch{return{action:f,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 c=t.plan.value,u=t.selection.value?.focus,f=t.options(),g=f?.actions.find(x=>x.id===i);if(!c||!u||!f||!g)return;const d=new AbortController;o=d,n.value=!0,a.value="";try{const x=Ce.createReportDrillRequest(c,u,g,t.params()),b=Object.freeze(t.view());if(!await t.beforeOpen()||d.signal.aborted||t.plan.value!==c)return;await X.waitForOutput(f.open({...x,signal:d.signal,view:b}),d.signal)}catch(x){d.signal.aborted||(a.value=x instanceof Ce.ReportDrillError?t.messages().drillMissingValue??"":t.messages().drillFailed??"")}finally{o===d&&(n.value=!1,o=void 0)}}return{entries:r,pending:n,error:a,open:s}}const Wr={class:"mrp-print-settings"},Hr=["value","disabled"],Ur=["value","disabled"],Gr=["disabled"],Jr=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,c=Number(i.value);if(!i.value.trim()||!Number.isFinite(c)||Math.abs(c)>20){i.value=String(a.value[l]??0);return}o("change",{...a.value,[l]:c})}return(l,s)=>(e.openBlock(),e.createElementBlock("details",Wr,[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,Hr)]),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,Ur)])]),e.createElementVNode("button",{type:"button",disabled:t.busy||!t.canTest,onClick:s[2]||(s[2]=i=>o("test"))},e.toDisplayString(t.messages.printCalibrationTest),9,Gr)]))}}),Xr=H._export_sfc(Jr,[["__scopeId","data-v-35a0f5ec"]]),Yt=new Map,Ee=new Map,Yr=15e3;function Et(t,n){return Object.assign(new Error(t),{cause:n})}function Te(t,n){return`PDF 字体 ${JSON.stringify(t)}:${n}。请部署支持报表文字的字体文件,并将 pdfFontUrl 配置为可访问的字体 URL;西文报表可设为空串`}async function Zt(t,n,a){if(X.assertOutputActive(a),!t)return null;try{const o=await X.waitForOutput(n(t,{strict:!0,signal:a}),a);if(!o?.byteLength)throw new Error("字体文件为空或加载失败");return o}catch(o){throw X.assertOutputActive(a),Et(Te(t,o instanceof Error?o.message:String(o)),o)}}function Je(t){if(t?.reason instanceof Error&&t.reason.name==="AbortError")return t.reason;const n=Et("PDF 字体检查已取消",t?.reason);return n.name="AbortError",n}async function Zr(t,n){let a=!1;const o=setTimeout(()=>{a=!0,n.abort()},Yr);try{const r=await fetch(t,{method:"HEAD",signal:n.signal});if(n.signal.aborted)throw Je(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:Te(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:Te(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:Te(t,s.message),cause:s}}return{status:"available",fontUrl:t,message:"PDF 字体资源可达;文字覆盖范围将在实际导出时校验"}}catch(r){if(n.signal.aborted&&!a)throw Je(n.signal);return{status:"error",fontUrl:t,message:Te(t,a?"字体检查超时,请检查网络或字体服务":"字体检查失败,请检查网络、字体服务或跨域访问配置"),cause:r}}finally{clearTimeout(o)}}function Qr(t,n){if(n?.aborted)return Promise.reject(Je(n));if(!t)return Promise.resolve({status:"disabled",fontUrl:t,message:"已停用自定义 PDF 字体;内置字体用于西文,其他文字会在导出时校验"});const a=Yt.get(t);if(a)return Promise.resolve(a);let o=Ee.get(t);if(!o){const l=new AbortController;o={controller:l,promise:Zr(t,l),subscribers:0};const s=o;Ee.set(t,s),s.promise=s.promise.then(i=>(!l.signal.aborted&&i.status==="available"&&Yt.set(t,i),i)).finally(()=>{Ee.get(t)===s&&Ee.delete(t)})}const r=o;return r.subscribers++,new Promise((l,s)=>{let i=!1;const c=()=>i?!1:(i=!0,r.subscribers--,n?.removeEventListener("abort",u),!0),u=()=>{c()&&(r.subscribers===0&&(Ee.get(t)===r&&Ee.delete(t),r.controller.abort()),s(Je(n)))};n?.addEventListener("abort",u,{once:!0}),r.promise.then(f=>{c()&&l(f)},f=>{c()&&s(f)}),n?.aborted&&u()})}function pn(t={fontUrl:"/simhei.ttf"}){let n=null;const a=async(o,r,l={})=>{X.assertOutputActive(l.signal),n||(n=await import("@agile-team/mach-report/pdf")),X.assertOutputActive(l.signal);const s=await Zt(t.fontUrl,n.loadFontWithCache,l.signal);let i;try{X.assertOutputActive(l.signal),i=await n.renderPlanToPdf(o,{...l,...s?{customFontBytes:s}:{}})}catch(d){if(!s)throw d;const x=d instanceof Error?d.message:String(d);throw Et(`PDF 生成失败:${x}。当前字体 URL 为 ${JSON.stringify(t.fontUrl)};请确认该文件是有效字体,或重新配置 pdfFontUrl`,d)}X.assertOutputActive(l.signal),i.diagnostics?.forEach(d=>{try{l.onDiagnostic?.(d)}catch{}});const{bytes:c,unsupportedTextCount:u,pageErrors:f,fidelityWarnings:g}=i;if(u>0)throw new Error(`PDF 中有 ${u} 行文字无法编码;请部署支持所用文字的字体并配置 pdfFontUrl`);if(f.length>0)throw new Error(`PDF 有 ${f.length} 页渲染失败:${f[0]}`);return g.length>0&&r?.(`PDF 有 ${g.length} 处版式降级:${g.slice(0,2).join(";")}`),c};return a.checkFont=o=>Qr(t.fontUrl,o),a.prepare=async o=>{if(X.assertOutputActive(o),!t.fontUrl)return{};const{loadFontWithCache:r}=await Promise.resolve().then(()=>require("./font-loader-EKLzOJxf.cjs")),l=await Zt(t.fontUrl,r,o);return l?{customFontBytes:l}:{}},a}function _r(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 f=t.fontUrl();return(!o||a!==f)&&(a=f,o=pn({fontUrl:f})),o}function i(){r++,l?.abort(),l=null}async function c(){if(t.destroyed())throw new le.MachReportError("config","报表预览已卸载");i();const f=r,g=new AbortController;l=g;const d=t.fontUrl();n.value=Object.freeze({status:"checking",fontUrl:d});try{const x=s(),b=x.checkFont?await x.checkFont(g.signal):{status:"unverified",fontUrl:"",message:"自定义 PDF 导出器未提供字体预检查;字体由宿主确认"};return!t.destroyed()&&f===r&&!g.signal.aborted&&(n.value=Object.freeze({...b})),b}catch(x){if(g.signal.aborted)throw x;const b={status:"error",fontUrl:d,message:x instanceof Error?x.message:"PDF 字体检查失败",cause:x};return!t.destroyed()&&f===r&&(n.value=Object.freeze(b)),b}finally{l===g&&(l=null)}}function u(){c().catch(()=>{})}return e.watch([t.plan,e.computed(t.fontUrl),e.computed(t.enabled)],()=>{const f=n.value.fontUrl===t.fontUrl();f&&n.value.status==="available"||(i(),(!f||n.value.status==="checking")&&(n.value=Object.freeze({status:"unchecked",fontUrl:t.fontUrl()})),!t.destroyed()&&t.plan.value?.pages.length&&t.enabled()&&u())},{immediate:!0}),{pdfFont:n,getPdfExporter:s,checkPdfFont:c,retryPdfFont:u,cancelFontCheck:i}}function de(t){return JSON.parse(JSON.stringify(t))}function gn(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 Ye(t,n){if(t.requiresRecalculation&&(!n||!j.getReportEditSession(t)))throw new j.ReportCellEditError("recalculation")}async function el(t,n,a,o){const r=n.edits.every(i=>!!i.source);Ye(t,r);const l=j.getReportEditSession(t);if(l&&r)return l.prepareHistory(t,n.edits,n.value,a,{signal:o});const s=Ne(t);return n.edits.map(i=>{const c=s(i);if(!c)throw new j.ReportCellEditError("missing");return{address:c,value:i[n.value]}})}function tl(t,n,a){const o=n.edits.every(r=>!!r.source);return Ye(t,o),o?j.getReportEditSession(t)?.prepare(t,n,{signal:a}):void 0}function nl(t,n){const a=new Map;return t.pages.forEach((o,r)=>o.components.forEach((l,s)=>{if(l.grid)for(const i of bt.resolveGridLayout(l.grid,l.widthMm,l.heightMm).cells){const c=n({pageIndex:r,componentIndex:s,rowIndex:i.ri,columnIndex:i.ci});if(!c?.source)continue;const u=j.reportCellEditKey(c),f=a.get(u)??[];f.push(c),a.set(u,f)}})),a}function Ne(t){const n=j.createReportCellResolver(t),a=nl(t,n);function o(l){if(l.source)return a.get(j.reportCellEditKey(l))??[];const s=n(l.address);return s?!l.table||j.reportCellEditKey(s)===j.reportCellEditKey(l)?[s]:[]:[]}const r=l=>{const s=o(l),i=s.find(c=>c.table?.id===l.table?.id)??s[0];return i?{...i.address}:null};return r.all=l=>o(l).map(s=>({...s.address})),r}class al extends Error{constructor(n){super(n.map(a=>a.message).join(";")),this.conflicts=n,this.name="ReportEditConflictError"}}function ol(){return globalThis.crypto?.randomUUID?.()??`mr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function rl(t,n,a,o){return Array.isArray(n)?{batch:j.createReportCellEditBatch(t,n,a)}:el(t,n,a,o).then(r=>Array.isArray(r)?{batch:j.createReportCellEditBatch(t,r,a)}:r)}function ll(t){const n=e.shallowRef([]),a=e.shallowRef([]),o=e.shallowRef([]),r=e.shallowRef([]),l=e.shallowRef(!1),s=e.shallowRef(null),i=e.shallowRef([]),c=e.computed(()=>i.value.length>0),u=e.computed(()=>{const h=j.summarizeReportCellEdits(n.value),E=t.plan.value;if(!E||!h.length)return h;const $=Ne(E);return h.map(I=>{const A=$(I);return A?{...I,address:A}:I})}),f=e.computed(()=>!!t.options.value&&!l.value&&!t.blocked()&&a.value.length>0),g=e.computed(()=>!!t.options.value&&!l.value&&!t.blocked()&&o.value.length>0);let d=null,x=null,b=0,p=null;function m(){d?.abort(),d=null,l.value=!1,x=null}function P(){b++,m(),p=null,n.value=[],a.value=[],o.value=[],r.value=[],i.value=[],s.value=null}function v(){const h=t.options.value;return h?typeof h=="object"?h:{}:null}function w(h,E,$,I){if(!t.options.value||t.blocked())throw new j.ReportCellEditError("readonly");Ye(h,E.edits.every(T=>!!T.source));const A=j.createReportCellResolver(h),J=new Map(I?.map(T=>[j.reportCellEditKey(T),T]));for(const T of E.edits){const G=I?J.get(j.reportCellEditKey(T)):A(T.address);if(!G?.editable||$.canEdit?.(G)===!1)throw new j.ReportCellEditError("readonly");if($.requireSource&&!G.source)throw new j.ReportCellEditError("missing");const _=gn(G,$);_&&j.parseReportCellFieldInput(G,T.value,_)}}async function B(h,E,$){if(E.saveBatch)return E.saveBatch(de(h),$);if(E.save&&h.edits.length>1)throw new j.ReportCellEditError("atomic");if(h.edits[0])return E.save?.(de(h.edits[0]),$)}async function D(h,E,$){for(const I of h.edits){const A=await E.validate?.(de(I),$);if(A)throw new Error(A);if($.signal.aborted)return}}function M(h,E,$,I,A,J){if(t.plan.value=J?J.commit($):j.applyReportEditResult(j.applyReportCellEditBatch(h,E),E,$),n.value=[...n.value,...E.edits],A){const G=new Set(E.edits.map(j.reportCellEditKey));i.value=i.value.filter(_=>!G.has(j.reportCellEditKey(_)))}else i.value=j.summarizeReportCellEdits([...i.value,...E.edits]);I==="edit"&&(a.value=[...a.value,E.edits],o.value=[]),r.value=[],p=null;const T=b;for(const G of E.edits){if(b!==T)break;t.onChange(de(G))}}function q(h,E,$){const I=JSON.stringify([$,E.edits]);p?.plan===h&&p.signature===I?E.requestId=p.requestId:p={plan:h,signature:I,requestId:E.requestId}}function V(h){s.value=t.errorMessage?.(h)??(h instanceof Error?h.message:"Cell edit failed"),t.onError(s.value,h)}async function O(h,E){const $=t.plan.value,I=v();if(!$||!I||t.blocked())return!1;const A=new AbortController,J=b;d=A,l.value=!0,s.value=null;const T=()=>d===A&&!A.signal.aborted&&t.plan.value===$&&t.options.value!==!1;try{const G=rl($,h,ol(),A.signal),_=G instanceof Promise?await G:G;if(!T())return!1;const{batch:U,contexts:z}=_;if(w($,U,I,z),U.edits=U.edits.filter(k=>!Object.is(k.previousValue,k.value)),!U.edits.length)return!0;q($,U,E),w($,U,I,z);const me={signal:A.signal,requestId:U.requestId,action:E};if(await D(U,I,me),!T())return!1;w($,U,I,z);const fe=_.prepared?void 0:tl($,U,A.signal);if(fe&&(_.prepared=await fe),!T())return!1;w($,U,I,z);const ye=await B(U,I,me);if(!T())return!1;if(ye?.conflicts?.length)throw r.value=de(ye.conflicts),new al(ye.conflicts);return w($,U,I,z),M($,U,ye,E,!!(I.save||I.saveBatch),_.prepared),J===b}catch(G){return T()&&V(G),!1}finally{d===A&&(d=null,l.value=!1)}}async function W(h,E="edit"){if(x)return x;const $=O(h,E);x=$;const I=await $;return x===$&&(x=null),I}async function se(){const h=b,E=a.value[a.value.length-1];return!E||l.value||!await W({edits:E,value:"previousValue"},"undo")||h!==b?!1:(a.value=a.value.slice(0,-1),o.value=[...o.value,E],!0)}async function oe(){const h=b,E=o.value[o.value.length-1];return!E||l.value||!await W({edits:E,value:"value"},"redo")||h!==b?!1:(o.value=o.value.slice(0,-1),a.value=[...a.value,E],!0)}async function re(){const h=b;return!u.value.length||l.value||!await W({edits:u.value,value:"previousValue"},"restore")||h!==b?!1:(a.value=[],o.value=[],!0)}function y(){if(!x)return!l.value;const h=b;return x.then(E=>E&&h===b&&!l.value)}function S(h){return t.plan.value?Ne(t.plan.value)(h):null}return{settle:y,resolveAddress:S,changes:n,differences:u,localDifferences:i,hasLocalDrafts:c,lastError:s,conflicts:r,saving:l,canUndo:f,canRedo:g,apply:W,undo:se,redo:oe,restore:re,cancel:m,reset:P}}let sl=0;const il="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 cl(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 ul(t,n,a){const o=t.createElement("select"),r=[{value:null,label:"—"},...cl(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 dl(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 fl(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 ml(t,n,a,o){const r=t.ownerDocument,l=o?.type==="boolean"||o?.type==="enum"?ul(r,o,a):dl(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=il,s.setAttribute("aria-label",o?.label??n),o?.required&&s.setAttribute("aria-required","true");const c=r.createElement("span");c.id=`mrp-cell-hint-${++sl}`,c.className="mrp-cell-editor-hint",c.style.cssText="position:absolute;top:100%;left:0;min-width:100%;width:max-content;max-width:320px;box-sizing:border-box;padding:4px 8px;white-space:normal;border:1px solid var(--mrp-toolbar-border,#ddd);background:var(--mrp-toolbar-bg,#fff);color:var(--mrp-toolbar-fg,#111);font-size:12px;line-height:1.4;box-shadow:0 3px 10px #0002;z-index:11;";const u=fl(o);return c.textContent=u,c.hidden=!u,s.setAttribute("aria-describedby",c.id),i.append(s,c),t.append(i),{input:s,root:i,initialInput:s.value,value:l.value,focus:()=>{s.focus(),(s instanceof HTMLTextAreaElement||s instanceof HTMLInputElement&&s.type!=="date")&&s.select()},feedback:f=>{c.textContent=f??u,c.hidden=!c.textContent,s.setAttribute("aria-invalid",f?"true":"false")}}}function vt(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 pl(t){const n=e.shallowRef(null),a=ll(t),{saving:o,changes:r}=a,l=e.shallowRef(!1),s=e.computed(()=>l.value||a.hasLocalDrafts.value);let i=null;function c(){const v=n.value;n.value=null,l.value=!1,a.cancel(),i=null,v?.editor.root.remove()}function u(){c(),a.reset()}function f(v){return n.value===v&&t.plan.value===v.plan}async function g(v){return await a.apply([{address:v.address,value:v.editor.value()}])?(n.value=null,l.value=!1,v.editor.root.remove(),!0):(n.value===v&&(v.editor.input.disabled=!1,v.editor.feedback(a.lastError.value??void 0),v.editor.input.focus()),!1)}async function d(){if(i)return i;const v=n.value;if(!v)return a.settle();if(!f(v))return c(),!1;l.value=v.editor.input.value!==v.editor.initialInput,v.editor.input.disabled=!0;const w=g(v);i=w;const B=await w;return i===w&&(i=null),B}function x(){return n.value||i?d():a.settle()}function b(v){if(v.stopPropagation(),!v.isComposing&&(v.key==="Escape"&&(v.preventDefault(),c()),v.key==="Enter"&&!v.shiftKey||v.key==="Tab")){v.preventDefault();const w=n.value,B=w&&j.getReportCellContext(w.plan,w.address),D=w&&B?j.createReportCellEditBatch(w.plan,[{address:w.address,value:B.value}],"navigation").edits[0]:void 0;d().then(M=>{if(!M||!w||!t.plan.value)return;const q=t.plan.value===w.plan?w.address:D&&Ne(t.plan.value)(D);q&&t.onNavigate?.(q,v.key,v.shiftKey)})}}function p(v){t.onError(t.errorMessage?.(v)??(v instanceof Error?v.message:"无法编辑单元格"),v)}async function m(v){if(!t.options.value||t.blocked()||!await d()||!v.isConnected)return;const w=t.plan.value,B=vt(v);if(!w||!B||!t.options.value||t.blocked())return;const D=typeof t.options.value=="object"?t.options.value:{};try{const M=j.getReportCellContext(w,B);if(!M?.editable||D.canEdit?.(M)===!1)return;if(Ye(w,!!M.source),D.requireSource&&!M.source)throw new j.ReportCellEditError("missing");const q=gn(M,D);q&&j.validateReportCellFieldDefinition(M,q);const V=ml(v,t.label(),M,q),O=V.input;n.value={plan:w,address:B,editor:V},l.value=!1,O.addEventListener("keydown",W=>b(W)),O.addEventListener("input",()=>{l.value=O.value!==V.initialInput,V.feedback()}),O.addEventListener("change",()=>{l.value=O.value!==V.initialInput}),O.addEventListener("blur",()=>{!o.value&&!t.suspendBlur?.()&&d()}),V.focus()}catch(M){p(M)}}async function P(v){const w=v.target;if(!(w instanceof Element)||w.closest(".mrp-cell-editor"))return;const B=w.closest("td[data-mr-row-index]");B&&await m(B)}return e.watch(t.options,(v,w)=>{(!v||v!==w)&&c()},{flush:"sync"}),e.watch(t.plan,()=>{n.value&&t.plan.value!==n.value.plan&&(n.value.editor.root.remove(),n.value=null,l.value=!1)},{flush:"sync"}),e.onScopeDispose(u),{...a,active:n,saving:o,changes:r,pendingLocalChanges:s,cancel:c,reset:u,commit:d,settle:x,onDoubleClick:P,editCell:m,getChanges:()=>de(r.value)}}function vn(t){return t.table.role==="header"?-Math.max(1,t.grid?.cells.length??1):t.table.rowIndex}function ve(t,n,a=n){const o=t.pages[n.pageIndex]?.components[n.componentIndex],r=o?.table,l=t.pages[a.pageIndex]?.components[a.componentIndex]?.table;return r&&l&&r.id===l.id?{grid:r.id,row:vn(o)+n.rowIndex,column:l.columnKeys.indexOf(r.columnKeys[n.columnIndex]??"")}:{grid:`${n.pageIndex}:${n.componentIndex}`,row:n.rowIndex,column:n.columnIndex}}function Qt(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((c,u)=>{const f=vn(s)+u;o.set(f,[...o.get(f)??[],{address:{pageIndex:l,componentIndex:i,rowIndex:u,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(c=>c.keys.includes(s));return i?{...i.address,columnIndex:i.keys.indexOf(s)}:null}}function gl(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 vl(t,n){const a=t?.source;return!yl(t,n.field)||n.tableId!==void 0&&t?.table?.id!==n.tableId||n.datasetId!==void 0&&(a?.datasetId??t?.component.table?.source?.datasetId)!==n.datasetId?!1:n.rowKey===void 0||a?.rowKey===n.rowKey}function yl(t,n){if((t?.source?.field??t?.table?.columnKey)===n)return!0;if(!t||t.table?.role!=="header")return!1;const a=t.address.columnIndex;return t.component.table?.columnKeys.slice(a,a+(t.cell.colSpan??1)).includes(n)??!1}function hl(t,n){return t.pageIndex===n.pageIndex&&t.componentIndex===n.componentIndex}function bl(t,n){return hl(t,n)&&t.rowIndex===n.rowIndex&&t.columnIndex===n.columnIndex}function mt(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 yt(t){return`${t.pageIndex}:${t.componentIndex}:${t.rowIndex}:${t.columnIndex}`}function wl(t,n){const a=ve(t,n.anchor),o=ve(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:yt(n.focus),origin:t.pages[n.anchor.pageIndex]?.components[n.anchor.componentIndex]?.table}}function xl(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 kl(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 He(t,n,a){t.getAttribute(n)!==a&&t.setAttribute(n,a)}function pt(t,n,a){t.classList.contains(n)!==a&&t.classList.toggle(n,a)}function El(t,n,a,o,r,l){n.role!==a&&(He(t,"role",a),n.role=a),n.selected!==o&&(pt(t,"mrp-cell-selected",o),He(t,"aria-selected",String(o)),n.selected=o),n.focused!==r&&(pt(t,"mrp-cell-focus",r),He(t,"tabindex",r?"0":"-1"),n.focused=r),n.modified!==l&&(pt(t,"mrp-cell-modified",l),n.modified=l)}function Cl(t){const n=()=>t.editable?.()??t.enabled(),a=e.shallowRef(null),o=new WeakMap,r=new WeakMap;let l=null,s=null,i=new Set;function c(y,S){const h=j.getReportCellContext(y,S);return!h||y.requiresRecalculation&&!h.source?null:{address:h.address,source:h.source,table:h.table,value:h.value,previousValue:h.value,text:h.cell.text??"",previousText:h.cell.text??""}}e.watch(t.plan,(y,S)=>{const h=a.value;if(!h)return;if(!y||!S){a.value=null;return}const E=c(S,h.anchor),$=c(S,h.focus),I=Ne(y),A=E&&I(E),J=$&&I($);a.value=A&&J?{anchor:A,focus:J}:null},{flush:"sync"});function u(y=t.root.value??void 0){if(!y)return;const S=a.value,h=t.plan.value,E=t.differences();if(E!==l||h!==s){l=E,s=h;const I=h&&E.length?Ne(h):null;i=new Set(E.flatMap(A=>I?I.all(A).map(yt):[]))}const $=S&&h?wl(h,S):null;y instanceof HTMLTableElement&&d(y,h,$);for(const I of y.querySelectorAll("table"))d(I,h,$)}function f(y){const S=o.get(y);if(S)return S;const h=y.closest("[data-mr-component-index]"),E=h?.closest(".mrp-page-holder"),$={pageIndex:Number(E?.dataset.page)-1,componentIndex:Number(h?.dataset.mrComponentIndex)};return Object.values($).every(I=>Number.isInteger(I)&&I>=0)?(o.set(y,$),$):null}function g(y,S){const h=r.get(y);if(h)return h;const E=Number(y.dataset.mrRowIndex),$=Number(y.dataset.mrColumnIndex);if(![E,$].every(A=>Number.isInteger(A)&&A>=0))return null;const I={row:E,column:$,key:yt({...S,rowIndex:E,columnIndex:$})};return r.set(y,I),I}function d(y,S,h){const E=f(y);if(!E)return;const $=S?.pages[E.pageIndex]?.components[E.componentIndex],I=$?.table?.role==="header"?"columnheader":"gridcell",A=h?xl(E,$,h):null;He(y,"role","grid");for(const J of y.rows)for(const T of J.cells){const G=g(T,E);G&&El(T,G,I,kl(G,A,h),h?.focusKey===G.key,i.size>0&&i.has(G.key))}}async function x(y,S=!1){if(!t.plan.value||!j.getReportCellContext(t.plan.value,y))return!1;const h=a.value,E=S&&h&&ve(t.plan.value,h.anchor).grid===ve(t.plan.value,y,h.anchor).grid;a.value={anchor:E?h.anchor:{...y},focus:{...y}},t.root.value?.querySelector(mt(y))||t.gotoPage(y.pageIndex+1),await e.nextTick(),u();const $=t.root.value?.querySelector(mt(y));return $?.focus({preventScroll:!0}),$?.scrollIntoView?.({block:"nearest",inline:"nearest"}),!!$}function b(y){const S=y.target;if(!(S instanceof Element)||S.closest("textarea,input,button,select"))return;const h=S.closest("td[data-mr-row-index]"),E=h&&vt(h);if(!E||t.busy()||!t.plan.value||!j.getReportCellContext(t.plan.value,E))return;const $=a.value,I=y.shiftKey&&$&&ve(t.plan.value,$.anchor).grid===ve(t.plan.value,E,$.anchor).grid;a.value={anchor:I?$.anchor:{...E},focus:{...E}},u(),h.focus({preventScroll:!0})}function p(y){const S=t.plan.value?.pages[y.pageIndex]?.components[y.componentIndex];return S?.grid?bt.resolveGridLayout(S.grid,S.widthMm,S.heightMm).cells.map(h=>({...y,rowIndex:h.ri,columnIndex:h.ci})):[]}function m(y,S,h){const E=p(y),$=h?-1:1;if(S==="Tab")return E[E.findIndex(J=>bl(J,y))+$];const I=S==="ArrowUp"||S==="ArrowDown"||S==="Enter",A=S==="ArrowUp"||S==="ArrowLeft"?-1:$;return E.filter(J=>I?J.columnIndex===y.columnIndex&&(J.rowIndex-y.rowIndex)*A>0:J.rowIndex===y.rowIndex&&(J.columnIndex-y.columnIndex)*A>0).sort((J,T)=>I?(J.rowIndex-T.rowIndex)*A:(J.columnIndex-T.columnIndex)*A)[0]}function P(y,S,h){if(S==="ArrowLeft"||S==="ArrowRight")return;const E=t.plan.value;if(!E.pages[y.pageIndex]?.components[y.componentIndex]?.table)return;const I=S==="ArrowUp"||h?-1:1;for(let A=y.pageIndex;A>=0&&A<E.pages.length;A+=I){const J=E.pages[A].components,T=A===y.pageIndex?y.componentIndex+I:I===1?0:J.length-1;for(let G=T;G>=0&&G<J.length;G+=I){const _=v(y,{...y,pageIndex:A,componentIndex:G},S,I);if(_)return _}}}function v(y,S,h,E){const $=t.plan.value,I=$.pages[y.pageIndex].components[y.componentIndex].table,A=$.pages[S.pageIndex].components[S.componentIndex]?.table;if(A?.id!==I.id||A.role==="header"&&I.role!=="header"&&(E>0||I.rowIndex+y.rowIndex>0))return;const J=p(S),T=h==="Tab"?J:J.filter(G=>G.columnIndex===y.columnIndex);return E===1?T[0]:T[T.length-1]}function w(y,S,h=!1,E=!1,$=!1){const I=m(y,S,h)??P(y,S,h);return I?(x(I,E),!0):((S!=="Tab"||!$)&&x(y),!1)}function B(y){const S=a.value;if(t.busy()||y.target instanceof Element&&y.target.closest("textarea,input,select,button,a[href],[contenteditable]"))return!1;if(!S)return q(y);const h=y.key;if(D(y)||M(y,S.focus))return!0;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Tab","Enter"].includes(h))return!1;const E=w(S.focus,h,h==="Tab"&&y.shiftKey,y.shiftKey&&h!=="Tab",!0);if(h==="Tab"&&!E){const $=t.root.value?.ownerDocument.activeElement;if(!($ instanceof HTMLElement)||!gl($,y.shiftKey))return!1}return y.preventDefault(),!0}function D(y){if(!n()||!(y.ctrlKey||y.metaKey))return!1;const S=y.key.toLowerCase();return S!=="z"&&S!=="y"?!1:(y.preventDefault(),S==="y"||y.shiftKey?t.redo():t.undo(),!0)}function M(y,S){if(!n()||!t.plan.value||y.key!=="F2"&&!(y.key==="Enter"&&j.getReportCellContext(t.plan.value,S)?.editable))return!1;const h=t.root.value?.querySelector(mt(S));return h&&(y.preventDefault(),t.edit(h)),!0}function q(y){if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Enter"].includes(y.key))return!1;const S=t.root.value?.querySelector("td[data-mr-row-index]"),h=S&&vt(S);return h?(y.preventDefault(),x(h),!0):!1}function V(){const y=a.value,S=t.plan.value;if(!y||!S)return"";const h=[],E=ve(S,y.anchor),$=ve(S,y.focus,y.anchor),I=Qt(S,y.anchor),A=j.createReportCellResolver(S),J=Math.min(E.column,$.column),T=Math.max(E.column,$.column);if((Math.abs(E.row-$.row)+1)*(T-J+1)>1e4)return t.error(new j.ReportCellEditError("limit")),"";for(let G=Math.min(E.row,$.row);G<=Math.max(E.row,$.row);G++){const _=[];for(let U=J;U<=T;U++){const z=I(G,U);_.push(z?A(z)?.cell.text??"":"")}h.push(_)}return j.formatReportClipboard(h)}function O(y){!a.value||y.target instanceof Element&&y.target.closest("textarea,input,select")||(y.clipboardData?.setData("text/plain",V()),y.preventDefault())}async function W(y){const S=a.value;if(!S||!n()||t.busy())return!1;try{let h;try{h=j.parseReportClipboard(y)}catch(T){throw new j.ReportCellEditError(T instanceof Error&&T.message.includes("limit")?"limit":"clipboard")}const E=t.plan.value,$=ve(E,S.anchor),I=ve(E,S.focus,S.anchor),A=Qt(E,S.anchor),J=h.flatMap((T,G)=>T.map((_,U)=>{const z=A(Math.min($.row,I.row)+G,Math.min($.column,I.column)+U);if(!z)throw new j.ReportCellEditError("missing");return{address:z,value:_}}));return await t.apply(J)}catch(h){return t.error(h),!1}}function se(y){if(!a.value||!n()||y.target instanceof Element&&y.target.closest("textarea,input,select,button,a[href],[contenteditable]")||!y.clipboardData?.types.includes("text/plain"))return;const S=y.clipboardData?.getData("text/plain");S&&(y.preventDefault(),W(S))}async function oe(y){const S=t.plan.value;if(!S)return!1;const h=j.createReportCellResolver(S);for(let E=0;E<S.pages.length;E++){const $=S.pages[E];if(!(y.reportScope!==void 0&&$.meta?.reportScope!==y.reportScope))for(let I=0;I<$.components.length;I++)for(const A of p({pageIndex:E,componentIndex:I,rowIndex:0,columnIndex:0})){const J=h(A);if(vl(J,y))return x(A)}}return!1}function re(){a.value=null,u()}return{selection:a,refresh:u,reset:re,focusCell:x,focusField:oe,navigate:w,onClick:b,onKeydown:B,onCopy:O,onPaste:se,copySelection:V,pasteSelection:W}}function Sl(t){const n=e.shallowRef(null),a=e.shallowRef(!1);let o=0,r=null;function l(c){const u=r;r=null,n.value=null,a.value=!1,u?.(c)}function s(){o++,l(!1)}async function i(c){if(s(),!t.enabled()||!t.pending())return!0;const u=o,f=[...t.snapshot?.()??[]];a.value=!0;const g=Object.freeze({reason:c,reportIds:Object.freeze([...t.reportIds()]),pendingLocalChanges:!0});try{const d=t.hook(),x=await new Promise(p=>{if(r=p,!d){n.value=g;return}Promise.resolve().then(()=>d(g)).then(m=>{u===o&&l(m===!0)},m=>{if(u===o){try{t.error(m)}catch{}l(!1)}})}),b=t.snapshot?.()??[];return u===o&&x===!0&&b.length===f.length&&f.every((p,m)=>Object.is(p,b[m]))}catch(d){if(u===o){try{t.error(d)}catch{}l(!1)}return!1}}return{request:n,pending:a,check:i,settle:l,cancel:s}}function Nl(t){function n(i){if(!(i instanceof j.ReportCellEditError))return i instanceof Error?i.message:"单元格保存失败";const c=t.messages();return{number:c.editInvalidNumber,boolean:c.editInvalidBoolean,conflict:c.editConflict,atomic:c.editAtomicRequired,limit:c.clipboardLimit,readonly:c.editReadOnly,missing:c.editMissing,recalculation:c.editRecalculationUnavailable,duplicate:c.editDuplicate,clipboard:c.clipboardInvalid}[i.code]??i.message}const a=pl({plan:t.plan,options:t.options,blocked:()=>t.busy()||r.pending.value,label:()=>t.messages().editCell??"编辑单元格",errorMessage:n,suspendBlur:()=>r.request.value!==null,onChange:t.changed,onError:t.failed,onNavigate:(i,c,u)=>o.navigate(i,c,u)}),o=Cl({plan:t.plan,root:t.root,enabled:t.selectionEnabled,editable:()=>!!t.options.value,busy:()=>t.busy()||a.saving.value||r.pending.value,differences:()=>a.differences.value,gotoPage:t.gotoPage,edit:a.editCell,apply:a.apply,undo:a.undo,redo:a.redo,error:i=>t.failed(n(i),i)}),r=Sl({...t.guard,pending:()=>a.pendingLocalChanges.value,snapshot:()=>[t.plan.value,a.active.value?.editor.input.value]});function l(i="leave"){return r.check(i)}function s(i){!t.guard.enabled()||!a.pendingLocalChanges.value||(i.preventDefault(),i.returnValue="")}return e.onMounted(()=>window.addEventListener("beforeunload",s)),e.onUnmounted(()=>{window.removeEventListener("beforeunload",s),r.cancel(),a.reset()}),{editing:a,cells:o,discard:r,confirmDiscard:l}}let Pl=0;function Bl(t){const n=e.shallowRef(null),a=new Set;let o=null;function r(c){n.value=Object.freeze(c);try{t(n.value)}catch{}}function l(c,u,f){const g=`mr-task-${Date.now().toString(36)}-${++Pl}`;a.add(g),o=f,r({taskId:g,kind:c,stage:u,status:"running",cancellable:!0});function d(b,p,m){n.value?.taskId!==g||n.value.status!=="running"||r({...n.value,stage:b,completed:p,total:m})}function x(b="completed"){n.value?.taskId!==g||n.value.status!=="running"||(o=null,r({...n.value,status:b,cancellable:!1}))}return{taskId:g,update:d,finish:x}}function s(){if(n.value?.status!=="running")return;const c=o;o=null,r({...n.value,status:"cancelled",cancellable:!1}),c?.()}function i(c,u){n.value?.taskId!==c.taskId&&(c.status!=="running"||a.has(c.taskId))||(a.add(c.taskId),a.size>100&&a.delete(a.values().next().value),o=c.status==="running"?u:null,r({...c}))}return{state:n,start:l,cancel:s,receive:i}}function $l(t){const n=e.shallowRef(Object.freeze([])),a=new Set;let o=0;function r(){o++,n.value=Object.freeze([]),a.clear()}function l(c){const u=o,f=[];for(const g of c){const d=JSON.stringify([g.code,g.format,g.pageIndex,g.componentIndex,g.componentPath,g.path,g.message,g.valueState,g.target]);if(a.has(d))continue;a.add(d);const x=Object.freeze({...g,...g.target?{target:Object.freeze({...g.target})}:{},...g.componentPath?{componentPath:Object.freeze([...g.componentPath])}:{}});f.push(x)}f.length&&(n.value=Object.freeze([...n.value,...f]));for(const g of f){if(u!==o)break;try{t(g)}catch{}}}function s(c){l([c])}function i(c,u){const f=j.inspectOutputCapabilities(c,u);return l(f),f}return{entries:n,reset:r,add:s,addMany:l,inspect:i}}const Vl={class:"mrp-edit-bar"},Il=["disabled"],Dl=["disabled"],Rl={class:"mrp-changes"},Ml=["aria-label"],Tl={key:0},Ol={key:1},Al=["onClick"],Fl=["title"],zl=["title"],Ll=["disabled"],ql={key:0,role:"status"},Kl={key:1,role:"status"},jl={key:2,class:"mrp-conflicts",open:""},Wl=e.defineComponent({__name:"ReportEditBar",props:{differences:{},conflicts:{},messages:{},saving:{type:Boolean},canUndo:{type:Boolean},canRedo:{type:Boolean},busy:{type:Boolean},persisted:{type:Boolean}},emits:["undo","redo","restore","locate"],setup(t){function n(a){return a.source?`${a.source.rowKey} · ${a.source.field}`:`${a.address.pageIndex+1} / ${a.address.rowIndex+1}:${a.address.columnIndex+1}`}return(a,o)=>(e.openBlock(),e.createElementBlock("div",Vl,[e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.canUndo,onClick:o[0]||(o[0]=r=>a.$emit("undo"))},e.toDisplayString(t.messages.undo),9,Il),e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.canRedo,onClick:o[1]||(o[1]=r=>a.$emit("redo"))},e.toDisplayString(t.messages.redo),9,Dl),e.createElementVNode("details",Rl,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.changes)+" · "+e.toDisplayString(t.messages.changesCount?.replace("{count}",String(t.differences.length))),1),e.createElementVNode("section",{"aria-label":t.messages.changes},[t.differences.length?(e.openBlock(),e.createElementBlock("ol",Ol,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.differences,(r,l)=>(e.openBlock(),e.createElementBlock("li",{key:l},[e.createElementVNode("button",{type:"button",onClick:s=>a.$emit("locate",r)},e.toDisplayString(n(r)),9,Al),e.createElementVNode("span",null,[e.createElementVNode("s",{title:t.messages.changesBefore},e.toDisplayString(r.previousText||"∅"),9,Fl),o[3]||(o[3]=e.createTextVNode(" → ",-1)),e.createElementVNode("strong",{title:t.messages.changesAfter},e.toDisplayString(r.text||"∅"),9,zl)])]))),128))])):(e.openBlock(),e.createElementBlock("p",Tl,e.toDisplayString(t.messages.changesEmpty),1))],8,Ml)]),e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.differences.length,onClick:o[2]||(o[2]=r=>a.$emit("restore"))},e.toDisplayString(t.messages.restoreChanges),9,Ll),t.saving?(e.openBlock(),e.createElementBlock("span",ql,e.toDisplayString(t.messages.saving),1)):t.differences.length&&!t.conflicts.length?(e.openBlock(),e.createElementBlock("span",Kl,e.toDisplayString(t.persisted?t.messages.editSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.conflicts.length?(e.openBlock(),e.createElementBlock("details",jl,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.conflicts)+" · "+e.toDisplayString(t.conflicts.length),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.conflicts,(r,l)=>(e.openBlock(),e.createElementBlock("li",{key:l},e.toDisplayString(r.message),1))),128))])])):e.createCommentVNode("",!0)]))}}),Hl=H._export_sfc(Wl,[["__scopeId","data-v-df1c7b86"]]);function Ul(t){const n=t.table?.columnKeys??[],a=n.map(()=>[]);if(!t.grid)return n;for(const{ci:o,cell:r}of bt.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 Gl(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 c=Ul(s),u=n.filter(x=>x.pageIndex<=r),f=u[u.length-1]?.label,g=i.source?.datasetId,d=[...new Set([f,i.title,g].filter(Boolean))].join(" · ")||i.id;i.columnKeys.forEach((x,b)=>{x&&o.push({key:JSON.stringify([i.id,b]),field:x,label:c[b],group:d,pageIndex:r,tableId:i.id,...g?{datasetId:g}:{}})})}return o}function Jl(t,n){const a=n.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return t.filter(o=>{const r=`${o.label} ${o.field} ${o.group}`.toLocaleLowerCase();return a.every(l=>r.includes(l))})}function Xl(t){const n=le.usePopover(),a=e.ref(""),o=e.ref(0),r=`mrp-column-list-${e.getCurrentInstance()?.uid??0}`,l=e.computed(()=>Gl(t.plan(),t.sections())),s=e.computed(()=>Jl(l.value,a.value)),i=e.computed(()=>s.value.slice(0,100)),c=e.computed(()=>[...new Set(i.value.map(b=>b.group))].map(b=>({label:b,items:i.value.filter(p=>p.group===b)})));e.watch(a,()=>{o.value=0}),e.watch(t.busy,b=>{b&&n.close()}),e.watch(l,()=>{o.value=0});function u(b){t.busy()||(t.locate(b),n.close(!0))}function f(){if(t.busy())return;const b=i.value[o.value];b?u(b):a.value.trim()&&(t.locateField(a.value.trim()),n.close(!0))}function g(){a.value="",n.panel.value?.querySelector("input")?.focus()}function d(b){if(!(b.isComposing||b.keyCode===229||!["ArrowDown","ArrowUp","Enter"].includes(b.key))){if(b.preventDefault(),b.stopPropagation(),b.key==="Enter"){f();return}i.value.length&&(o.value=(o.value+(b.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(b){return i.value.findIndex(p=>p.key===b)}return{...n,field:a,active:o,listId:r,directory:l,matches:s,candidates:i,groups:c,choose:u,submit:f,clear:g,onSearchKeydown:d,candidateIndex:x}}const Yl=["aria-label"],Zl={key:0,class:"mrp-section-tabs"},Ql=["aria-current","disabled","onClick"],_l=["aria-expanded","disabled"],es={key:0,class:"mrp-column-count"},ts=["aria-label"],ns={class:"mrp-column-heading"},as=["aria-label"],os=["aria-label","placeholder","aria-controls","aria-activedescendant","disabled"],rs=["aria-label"],ls=["id","aria-label"],ss={key:0,class:"mrp-column-empty",role:"status"},is=["aria-label"],cs=["id","aria-selected","disabled","onPointermove","onClick"],us=["title"],ds={class:"mrp-column-help",role:"status"},fs=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=Xl({plan:()=>a.plan,sections:()=>a.sections,busy:()=>a.busy,locate:B=>o("locate-target",B),locateField:B=>o("locate",B)}),{root:l,trigger:s,panel:i,opened:c,field:u,active:f,directory:g,matches:d,candidates:x,groups:b,listId:p}=r,m=e.computed(()=>g.value.length>0||!a.plan||a.plan.pages.some(B=>B.components.some(D=>D.table?.columnKeys.length))),P=e.computed(()=>({columnDirectory:"字段目录",columnSearch:"搜索列名或字段",columnNoMatches:"未找到匹配字段",columnResults:"匹配字段",...a.messages})),v=e.computed(()=>(a.messages.columnResultsMore??"{count} 个匹配字段,显示前 {limit} 个;继续输入可缩小范围").replace("{count}",String(d.value.length)).replace("{limit}",String(x.value.length)));function w(B){const D=a.sections[B];return!!D&&a.currentPage>=D.pageIndex+1&&(!a.sections[B+1]||a.currentPage<=a.sections[B+1].pageIndex)}return(B,D)=>t.sections.length>1||m.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",Zl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.sections,(M,q)=>(e.openBlock(),e.createElementBlock("button",{key:q,type:"button",class:e.normalizeClass({active:w(q)}),"aria-current":w(q)?"page":void 0,disabled:t.busy,onClick:V=>o("goto",M.pageIndex+1)},e.toDisplayString(M.label),11,Ql))),128))])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"root",ref:l,class:"mrp-column-locator",onKeydown:D[7]||(D[7]=(...M)=>e.unref(r).onKeydown&&e.unref(r).onKeydown(...M))},[e.createElementVNode("button",{ref_key:"trigger",ref:s,type:"button",class:e.normalizeClass(["mrp-directory-trigger",{active:e.unref(c)}]),"aria-expanded":e.unref(c),"aria-haspopup":"dialog",disabled:t.busy,onClick:D[0]||(D[0]=M=>c.value=!e.unref(c))},[e.createVNode(H._sfc_main,{name:"columns"}),e.createElementVNode("span",null,e.toDisplayString(P.value.columnDirectory),1),e.unref(g).length?(e.openBlock(),e.createElementBlock("span",es,e.toDisplayString(e.unref(g).length),1)):e.createCommentVNode("",!0),e.createVNode(H._sfc_main,{name:"chevron-down",size:12})],10,_l),e.unref(c)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panel",ref:i,class:"mrp-column-directory",role:"dialog","aria-label":P.value.columnDirectory},[e.createElementVNode("div",ns,[e.createElementVNode("span",null,[e.createVNode(H._sfc_main,{name:"columns"}),e.createTextVNode(e.toDisplayString(P.value.columnDirectory),1)]),e.createElementVNode("button",{type:"button",class:"mrp-column-close","aria-label":t.messages.closeColumnDirectory??"关闭字段目录",onClick:D[1]||(D[1]=M=>e.unref(r).close(!0))},[e.createVNode(H._sfc_main,{name:"close",size:15})],8,as)]),e.createElementVNode("form",{class:"mrp-column-search",onSubmit:D[5]||(D[5]=e.withModifiers((...M)=>e.unref(r).submit&&e.unref(r).submit(...M),["prevent"]))},[e.createVNode(H._sfc_main,{name:"search"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":D[2]||(D[2]=M=>e.isRef(u)?u.value=M:null),type:"search",autocomplete:"off",spellcheck:"false",role:"combobox","aria-label":P.value.columnSearch,placeholder:P.value.columnSearch,"aria-autocomplete":"list","aria-expanded":"true","aria-controls":e.unref(p),"aria-activedescendant":e.unref(x).length?`${e.unref(p)}-${e.unref(f)}`:void 0,disabled:t.busy,onKeydown:D[3]||(D[3]=(...M)=>e.unref(r).onSearchKeydown&&e.unref(r).onSearchKeydown(...M))},null,40,os),[[e.vModelText,e.unref(u)]]),e.unref(u)?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-column-clear",type:"button","aria-label":t.messages.clearSearch??"清除搜索",onClick:D[4]||(D[4]=(...M)=>e.unref(r).clear&&e.unref(r).clear(...M))},[e.createVNode(H._sfc_main,{name:"close",size:13})],8,rs)):e.createCommentVNode("",!0)],32),e.createElementVNode("div",{id:e.unref(p),class:"mrp-column-results",role:"listbox","aria-label":P.value.columnResults},[e.unref(x).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",ss,[e.createVNode(H._sfc_main,{name:"search",size:22}),e.createTextVNode(e.toDisplayString(P.value.columnNoMatches),1)])),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),M=>(e.openBlock(),e.createElementBlock("section",{key:M.label,role:"group","aria-label":M.label},[e.createElementVNode("strong",null,e.toDisplayString(M.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.items,q=>(e.openBlock(),e.createElementBlock("button",{id:`${e.unref(p)}-${e.unref(r).candidateIndex(q.key)}`,key:q.key,type:"button",role:"option",tabindex:"-1",class:e.normalizeClass({"mrp-column-active":e.unref(r).candidateIndex(q.key)===e.unref(f)}),"aria-selected":e.unref(r).candidateIndex(q.key)===e.unref(f),disabled:t.busy,onPointermove:V=>f.value=e.unref(r).candidateIndex(q.key),onMousedown:D[6]||(D[6]=e.withModifiers(()=>{},["prevent"])),onClick:V=>e.unref(r).choose(q)},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(q.label),1),e.createElementVNode("code",{title:q.field},e.toDisplayString(q.field),9,us)]),e.createVNode(H._sfc_main,{name:"arrow-right",size:14})],42,cs))),128))],8,is))),128))],8,ls),e.createElementVNode("p",ds,e.toDisplayString(e.unref(d).length>e.unref(x).length?v.value:t.messages.columnSearchShortcut??"↑ ↓ 选择 · Enter 定位"),1)],8,ts)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)],10,Yl)):e.createCommentVNode("",!0)}}),_t=H._export_sfc(fs,[["__scopeId","data-v-15a41f0e"]]),ms={class:"mrp-import-summary"},ps={key:0},gs={key:0},vs=e.defineComponent({__name:"ReportImportSummary",props:{result:{},messages:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("details",ms,[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",ps," · "+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",gs,[(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)]))}}),ys=H._export_sfc(vs,[["__scopeId","data-v-54f275e8"]]),Xe=["html","pdf","xlsx","png","word"],ht=["search","thumbnails","zoom",...Xe,"print","pdfWindow","editing","import"];function hs(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 bs(t,n,a,o){const r=e.ref({});let l=0,s=0,i=Promise.resolve();const c=e.computed(()=>Object.fromEntries(ht.map(d=>[d,t.value[d]&&(r.value[d]??n.value[d]??!0)])));function u(d,x){t.value[d]&&(s++,r.value={...r.value,[d]:x},f())}function f(){const d=a?.value;if(!d)return;const x={...r.value};i=i.then(()=>d.adapter.save(d.key,x)).catch(b=>{o?.(b)})}function g(){s++,r.value={},f()}return a&&e.watch(a,async d=>{const x=++l,b=s;if(r.value={},!!d)try{const p=await d.adapter.load(d.key);if(x!==l||b!==s||!p||typeof p!="object")return;r.value=Object.fromEntries(ht.flatMap(m=>typeof p[m]=="boolean"?[[m,p[m]]]:[]))}catch(p){x===l&&o?.(p)}},{immediate:!0}),e.onScopeDispose(()=>{l++}),{enabled:c,setEnabled:u,reset:g}}function ws(t,n,a){const o=e.ref({}),r=le.useMachReportConfig(),l=e.computed(()=>le.resolveConfig(r.value,t.preset)),s=e.computed(()=>({...l.value.messages,...t.messages})),i=e.computed(()=>t.showExport??l.value.showExport),c=e.computed(()=>t.showPrint??l.value.showPrint),u=e.computed(()=>t.showPdfWindow??l.value.showPdfWindow),f=e.computed(()=>t.showSettings??l.value.showSettings),g=e.computed(()=>t.guardChanges??l.value.guardChanges),d=e.computed(()=>({...l.value.output,...t.output})),x=e.computed(()=>({...l.value.toolbar,...t.toolbar})),b=e.computed(()=>({...l.value.interaction,...t.interaction,...o.value})),p=e.computed(()=>t.preferences??l.value.preferences),m=e.computed(()=>t.assets??l.value.assets),P=e.computed(()=>t.gapPx??(n.value?0:l.value.gapPx)),v=e.computed(()=>t.showParams??l.value.showParams),w=e.computed(()=>t.editable??l.value.editable),B=e.computed(()=>t.excelImport??l.value.excelImport),D=e.computed(()=>({search:x.value.search!==!1,thumbnails:x.value.thumbnails!==!1,zoom:x.value.zoom!==!1,...Object.fromEntries(Xe.map(re=>[re,i.value&&(x.value.exportFormats?.includes(re)??!0)])),print:c.value,pdfWindow:u.value,editing:!!w.value,import:!!B.value})),M=bs(D,e.computed(()=>({editing:x.value.editing,import:x.value.excelImport})),p,()=>a(s.value.preferencesError??"Preferences storage unavailable")),q=M.enabled,V=e.computed(()=>Xe.filter(re=>q.value[re])),O=e.computed(()=>q.value.editing?w.value:!1),W=e.computed(()=>q.value.import?B.value:!1),se=e.computed(()=>typeof w.value=="object"&&(typeof w.value.save=="function"||typeof w.value.saveBatch=="function")),oe=e.computed(()=>typeof t.emptyState=="object"?t.emptyState:{});return{resolved:l,resolvedMessages:s,effectiveShowExport:i,effectiveShowPrint:c,effectiveShowPdfWindow:u,effectiveShowSettings:f,effectiveGuardChanges:g,effectiveOutput:d,effectiveInteraction:b,effectiveAssets:m,effectiveGapPx:P,effectiveShowParams:v,availableTools:D,tools:M,toolState:q,visibleExportFormats:V,effectiveEditable:O,effectiveExcelImport:W,persistedEditing:se,emptyStateContent:oe,sessionInteraction:o}}function xs(t){let n=0,a=!1;function o(){const l=t.viewport.value,s=t.root.value,i=t.plan.value;if(!l||!s||!i)return;const c=t.options(),u=Math.max(0,Math.min(20,Math.floor(c.frozenColumns??0)));if(!c.freezeHeaders&&u===0&&!a)return;const f=t.zoom.value||1,g=l.getBoundingClientRect();s.querySelectorAll("[data-mr-component-index]").forEach(d=>{const x=d.closest("[data-page]"),b=Number(x?.dataset.page)-1,p=i.pages[b]?.components[Number(d.dataset.mrComponentIndex)];if(!p?.grid||!x)return;d.style.transform="",d.style.zIndex="";const m=d.getBoundingClientRect(),P=x.getBoundingClientRect().bottom,v=Math.max(0,(g.left-m.left)/f),w=c.freezeHeaders?Math.max(0,Math.min((g.top-m.top)/f,(P-m.bottom)/f)):0;v>0&&u>0&&(d.style.zIndex="1"),p.table?.role==="header"&&w>0&&(d.style.transform=`translateY(${w}px)`,d.style.zIndex="5"),d.querySelectorAll(".mrp-cell-frozen").forEach(D=>{D.style.transform="",D.style.zIndex="",D.classList.remove("mrp-cell-frozen")});const B=Array.from({length:u},(D,M)=>`td[data-mr-column-index="${M}"]`);!p.table&&c.freezeHeaders&&B.push('td[data-mr-row-index="0"]'),B.length&&d.querySelectorAll(B.join(",")).forEach(D=>{const M=Number(D.dataset.mrColumnIndex)<u,q=!p.table&&Number(D.dataset.mrRowIndex)===0&&!!c.freezeHeaders,V=M?v:0,O=q?w:0;D.style.transform=V||O?`translate(${V}px, ${O}px)`:"",D.classList.toggle("mrp-cell-frozen",!!(V||O)),D.style.zIndex=V||O?q?"7":"6":""})}),a=!!c.freezeHeaders||u>0}function r(){n||(n=requestAnimationFrame(()=>{n=0,o()}))}return e.onScopeDispose(()=>{n&&cancelAnimationFrame(n)}),{refresh:o,schedule:r}}function ks(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 yn(t,n,a,o){if(!n?.assetRenderers||!Object.keys(n.assetRenderers).length)return t;try{return(await j.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 le.MachReportError("render",r instanceof Error?r.message:"Report asset preparation failed",r)}}function hn(t,n){const a=j.validateRenderPlan(t);if(!a.ok)throw new le.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 Es(t,n,a,o){const r=await X.waitForOutput(t(n),n.signal);return X.assertOutputActive(n.signal),o("validate"),hn(r,n.onWarning??(()=>{})),X.assertOutputActive(n.signal),o("assets"),yn(r,a,n.signal,n.onWarning??(()=>{}))}async function Cs(t,n,a,o,r,l){const{importExcelTemplate:s}=await import("@agile-team/mach-report/xlsx");X.assertOutputActive(o);const i=await X.waitForOutput(s(t,{...n,signal:o}),o);l("layout");const c=j.paginateTemplate(de(i.template),{}).plan;hn(c,r),X.assertOutputActive(o),l("assets");const u=await yn(c,a,o,r);return{result:i,plan:u}}function Ss({source:t,policy:n,feedback:a,view:o,events:r,task:l,diagnostics:s}){const i=e.shallowRef(null),c=e.ref(!1),u=e.ref(!1),f=e.shallowRef(null),g=e.shallowRef(null),{errorMessage:d,lastError:x,notice:b,reportError:p}=a,m=ka();let P=!1;function v(){o.invalidate(),u.value=!1,g.value=null,i.value=null,f.value=null,s.reset()}let w=0,B=null;function D(y,S){return y===w&&!S.signal.aborted&&!P}function M(y,S){for(const h of y){if(S!==w)return!1;r.warning(h)}return S===w}function q(){const y=t.readParams();return y.params?y.params:(v(),d.value=y.quiet?"":y.error.message,y.quiet||(t.invalidParams(),p(y.error.message,y.error.code,y.error.cause)),null)}async function V(){if(P)return;const y=n.guard("reload");if(!(typeof y=="boolean"?y:await y)||P)return;const S=++w;u.value=!1,B?.abort(),B=null;const h=t.fetcher();if(c.value=!1,x.value=null,t.ids().length===0){d.value="缺少报表 ID",v(),p(d.value,"param");return}if(!h){d.value="未提供渲染数据源 fetcher",v(),p(d.value,"config");return}const E=q();if(!E)return;c.value=!0,d.value="",b.value=null,v();const $=m.start(),I=new AbortController;B=I;const A=l.start("query","query",()=>{B===I&&(I.abort(),w++,B=null,c.value=!1)}),J=[...t.ids()],T=Object.freeze({...E}),G=new Set;function _(U){S!==w||I.signal.aborted||G.has(U)||(G.add(U),r.logWarning(U),s.add({code:"layout",severity:"warning",message:U}),r.warning(U))}try{const U=await Es(h,{reportIds:J,params:E,taskId:A.taskId,onEvent:z=>{S===w&&!I.signal.aborted&&A.update(z.stage,z.completed,z.total)},onQueryResult:(z,me,fe)=>{S===w&&!I.signal.aborted&&s.addMany(ks(J,z,me.diagnostics??[],fe))},signal:I.signal,onWarning:_},n.assets(),A.update);if(!D(S,I)||(i.value=U,f.value=Object.freeze({reportIds:Object.freeze(J),params:T}),s.inspect(U,"dom"),!D(S,I)))return;A.finish(),m.end($),o.accepted("query"),r.loaded(U.pages.length)}catch(U){if(S!==w)return;if(I.signal.aborted){A.finish("cancelled");return}A.finish("failed");const z=le.normalizeReportLoadError(U);d.value=z.message;const me=le.toErrorDetail(z);p(z.message,me.code,me.cause)}finally{S===w&&(c.value=!1),B===I&&(B=null)}}function O(y){const S=n.importOptions(),h=typeof S=="object"?S:{};return{...h,...y,limits:{...h.limits,...y?.limits}}}function W(y,S){o.invalidate(),i.value=y,f.value=null,s.reset(),g.value={sheets:de(S.sheets),warnings:[...S.warnings]},d.value="",b.value=S.warnings.length?{kind:"warning",message:S.warnings.join(";")}:null,o.accepted("import"),s.addMany(S.warnings.map(h=>({code:"excel-import",severity:"warning",message:h}))),i.value===y&&s.inspect(y,"dom")}async function se(y,S){if(P)throw new le.MachReportError("config","报表预览已卸载");const h=n.guard("import");if(!(typeof h=="boolean"?h:await h)||P)return null;const E=++w;B?.abort(),B=null,c.value=!1,o.beforeImport(),u.value=!0;const $=new AbortController;B=$,x.value=null,b.value={kind:"progress",message:n.importingMessage()??"正在导入 Excel…"};const I=l.start("import","import",()=>{B===$&&($.abort(),w++,B=null,u.value=!1,b.value=null)}),A=O(S),J=X.forwardOutputAbort(A.signal,$);try{const{result:T,plan:G}=await Cs(y,{...A,onProgress:(_,U)=>{I.update("import",_,U),A.onProgress?.(_,U)}},n.assets(),$.signal,_=>{E===w&&r.warning(_)},I.update);return!D(E,$)||!M(T.warnings,E)||(W(G,T),!D(E,$))?null:(I.finish(),r.imported(T),E===w&&r.loaded(G.pages.length),T)}catch(T){if(E!==w)return null;if($.signal.aborted)return I.finish("cancelled"),null;I.finish("failed");const G=new le.MachReportError("import",T instanceof Error?T.message:"Excel 模板导入失败",T);throw b.value={kind:"error",message:G.message},p(G.message,"import",T),G}finally{J(),E===w&&(u.value=!1),B===$&&(B=null)}}function oe(){w++,B?.abort(),B=null,c.value=!1,d.value="",x.value=null,b.value=null,v()}function re(){P=!0,w++,B?.abort(),B=null,c.value=!1,u.value=!1}return e.onScopeDispose(re),{plan:i,loading:c,importing:u,loadedContext:f,importedResult:g,timing:m,reload:V,importExcel:se,invalidate:v,clear:oe}}const Ns={key:7,class:"mrp-edit-hint",role:"status"},Ps={key:9,class:"mrp-export-notice mrp-export-warning",role:"status"},Bs={class:"mrp-main"},$s={key:0,class:"mrp-state"},Vs={key:1,class:"mrp-state mrp-error"},Is=["data-page"],Ds=["aria-label","aria-current","onClick"],Rs=["data-thumb"],Ms={class:"mrp-thumb-no"},Ts={key:10,class:"mrp-footer"},Os={class:"mrp-footer-context"},As=["aria-label"],Fs={key:0},zs={class:"mrp-overlay"},Ls={key:11,class:"mrp-debug","aria-hidden":"true"},gt=96/25.4,en="mach-report:ui",tn="mach-report:ui:wide",qs=e.defineComponent({__name:"ReportPreview",props:{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},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.shallowRef(null),i=e.ref(null),c=e.ref(1),u=e.ref(null),f=e.ref(null),g=e.ref(null),d=e.ref(!1),x=e.ref(!1),b=e.ref("general"),p=e.ref(null),m=e.ref(null);let P=null,v=!1;const w=Bl(C=>r("task",C)),B=$l(C=>r("diagnostic",C)),D=e.computed(()=>B.entries.value.filter(C=>C.valueState&&C.target)),M=e.computed(()=>B.entries.value.filter(C=>!C.valueState)),q=Ss({source:{ids:()=>A.value,fetcher:()=>J.value,readParams:()=>Le.value.error?{error:Le.value.error,quiet:!1}:$e.query(),invalidParams:()=>{Le.value.error||(qe.value=!0)}},policy:{guard:C=>ye.value&&Y.pendingLocalChanges.value?Ae.check(C):!0,assets:()=>L.value,importOptions:()=>Pe.value,importingMessage:()=>z.value.importing},feedback:{errorMessage:l,lastError:s,notice:i,reportError:_},task:w,diagnostics:B,view:{invalidate:()=>{Y.reset(),te.reset(),tt.invalidate(),c.value=1,ae.reset()},beforeImport:()=>{Y.cancel(),tt.invalidatePending()},accepted:C=>{c.value=1,f.value&&(f.value.scrollTop=0,f.value.scrollLeft=0);const R=h.value?tn:en;(C==="import"||R!==E)&&(E=R,jt()),C==="query"&&Ie.value==="fit"&&Ft()}},events:{warning:C=>r("warning",C),logWarning:C=>U.value.logger.warn("[mach-report] 报表告警:",C),loaded:C=>r("loaded",C),imported:C=>r("template-import",C)}}),{plan:V,loading:O,importing:W,importedResult:se,loadedContext:oe,timing:re,reload:y,importExcel:S}=q,h=e.computed(()=>!!V.value?.pages.length&&V.value.pages.every(C=>C.layout==="wide"));let E=en;const $=e.inject(dt.MACH_REPORT_FETCHER_KEY,null),I=e.inject(dt.MACH_REPORT_PDF_EXPORTER_KEY,null),A=e.computed(()=>wt(o.reportId)),J=e.computed(()=>o.fetcher??$),T=e.computed(()=>V.value?.pages.length??0),G=e.computed(()=>Object.freeze({loading:O.value,hasPlan:T.value>0,pageCount:T.value,currentPage:c.value,exporting:xe.value,printing:he.value,canExport:!O.value&&!W.value&&!Y.saving.value&&T.value>0&&xe.value===null,canPrint:!O.value&&!W.value&&!Y.saving.value&&T.value>0&&!he.value,error:s.value,pdfFont:St.value,editing:Y.active.value!==null,saving:Y.saving.value,importing:W.value,dirty:Y.differences.value.length>0,pendingLocalChanges:Y.pendingLocalChanges.value,task:w.state.value,diagnostics:B.entries.value,reportIds:oe.value?.reportIds??[],params:oe.value?.params??{},canUndo:Y.canUndo.value,canRedo:Y.canRedo.value,changeCount:Y.differences.value.length,selection:te.selection.value?de(te.selection.value):null}));function _(C,R,K){s.value=Object.freeze({message:C,code:R,cause:K}),r("error",C,{code:R,cause:K})}const{resolved:U,resolvedMessages:z,effectiveShowExport:me,effectiveShowSettings:fe,effectiveGuardChanges:ye,effectiveOutput:k,effectiveInteraction:N,effectiveAssets:L,effectiveGapPx:F,effectiveShowParams:Z,availableTools:Q,tools:ne,toolState:ee,visibleExportFormats:we,effectiveEditable:pe,effectiveExcelImport:Pe,persistedEditing:Be,emptyStateContent:Ze,sessionInteraction:Qe}=ws(o,h,C=>r("warning",C)),Ct=e.computed(()=>ee.value.pdf||ee.value.pdfWindow),_e=e.computed(()=>N.value.calculations===!0),et=e.computed(()=>le.resolveCalculationMessages(z.value)),{pdfFont:St,getPdfExporter:wn,checkPdfFont:xn,retryPdfFont:Nt,cancelFontCheck:kn}=_r({plan:V,fontUrl:()=>U.value.pdfFontUrl,enabled:()=>Ct.value,injectedExporter:I,destroyed:()=>v});async function En(C,R){C==="editing"&&!R&&!await Y.settle()||(ne.setEnabled(C,R),r("preferences-change",Object.freeze({...ee.value})))}async function Cn(){await Y.settle()&&(ne.reset(),Qe.value={},$t.value=void 0,r("preferences-change",Object.freeze({...ee.value})))}async function Pt(C="general"){if(x.value){x.value=!1;return}const R=Y.settle();!(typeof R=="boolean"?R:await R)||v||!fe.value||(b.value=C,x.value=!0)}const{editing:Y,cells:te,discard:Ae,confirmDiscard:Bt}=Nl({plan:V,root:u,options:pe,selectionEnabled:()=>!!pe.value||_e.value||!!(o.drill??U.value.drill),busy:()=>O.value||W.value||xe.value!==null||he.value,messages:()=>z.value,gotoPage:ue,guard:{reportIds:()=>oe.value?.reportIds??A.value,hook:()=>o.beforeDiscard??U.value.beforeDiscard,enabled:()=>ye.value,error:C=>_(C instanceof Error?C.message:"修改保护回调失败","config",C)},changed:C=>{s.value=null,i.value=null,r("cell-edit",C)},failed:(C,R)=>{i.value={kind:"error",message:C},_(C,"edit",R)}}),tt=ua({plan:V,editing:Y,diagnostics:B,task:w,busy:()=>O.value||W.value,wide:()=>h.value,defaultsPrint:()=>U.value.printOptions,printOverrides:()=>o.printOptions,messages:()=>z.value,fidelity:()=>k.value.fidelity,execution:()=>o.exportExecution??U.value.exportExecution,getPdfExporter:wn,getXlsxOptions:()=>U.value.xlsx,feedback:{lastError:s,notice:i,reportError:_,warning:C=>r("warning",C)}}),{exporting:xe,printing:he,localPrintCalibration:$t,effectivePrintOptions:Sn,canCalibratePrint:Nn,testPrintCalibration:Pn,print:Vt,exportAs:It,openPdfWindow:Dt,getOutputDiagnostics:Bn}=tt,nt=Ao({plan:V,selection:te.selection,enabled:()=>_e.value});function $n(){Pt("advanced")}const Fe=jr({plan:V,selection:te.selection,options:()=>o.drill??U.value.drill,params:()=>({...oe.value?.params}),view:()=>({zoom:ie.value,scrollTop:u.value?.scrollTop??0,scrollLeft:u.value?.scrollLeft??0}),messages:()=>z.value,busy:()=>O.value||W.value||Y.saving.value||!!xe.value||he.value,beforeOpen:()=>Bt("leave")});function Rt(){w.cancel()}function Vn(C){const R=Y.resolveAddress(C);R&&te.focusCell(R)}async function Mt(C){await te.focusField(C)||(i.value={kind:"warning",message:z.value.locateFieldMissing??"Field not found"})}function In(C){if(C.pageIndex===void 0)return;ue(C.pageIndex+1);const R=C.componentPath;C.componentIndex!==void 0&&R&&R.length===2&&te.focusCell({pageIndex:C.pageIndex,componentIndex:C.componentIndex,rowIndex:R[0],columnIndex:R[1]})}const ze=e.computed(()=>{if(se.value)return se.value.sheets.map(R=>({label:R.name,pageIndex:R.pageStart}));const C=new Set;return V.value?.pages.flatMap((R,K)=>R.components.flatMap(Me=>{const be=Me.table;return!be?.title||C.has(be.id)?[]:(C.add(be.id),[{label:be.title,pageIndex:K}])}))??[]});async function Tt(C){C&&!await te.focusField({field:C})&&(i.value={kind:"warning",message:z.value.locateFieldMissing??"Field not found"})}async function Dn(C){await te.focusField(C)||(i.value={kind:"warning",message:z.value.locateFieldMissing??"Field not found"})}const Le=e.computed(()=>{try{return{defs:o.paramDefs??J.value?.getParamDefs?.(A.value)??[],error:null}}catch(C){return{defs:[],error:new le.MachReportError("config",C instanceof Error?C.message:"查询参数配置无效",C)}}}),at=e.computed(()=>Le.value.defs),$e=le.useReportParams({defs:at,reportIds:A,params:()=>o.params,messages:()=>z.value}),{values:Ve,attempted:qe,pendingRequired:Ot}=$e,At=e.ref(null);function Rn(){qe.value=!0,$e.validation.value.ok||e.nextTick(()=>At.value?.focusInvalid()),y()}function Mn(){$e.reset(),l.value="",s.value=null}const Tn=e.computed(()=>({height:o.height,"--mrp-page-gap":`${Math.max(0,F.value)}px`,...le.themeToCssVars(U.value.theme)})),{zoom:ie,zoomMode:Ie,applyFitZoom:Ft,setZoom:De}=on(()=>({viewport:f.value,pageWidthPx:ot.contentSize.value.w||210*gt})),ot=an(V,ie,{pxPerMm:gt,gapPx:F,overscan:e.computed(()=>U.value.preview.overscanPages)}),{contentSize:rt,windowRange:Re,visiblePages:zt,makeScrollHandler:On,refreshViewport:Lt}=ot,An=On(c,T),lt=xs({root:u,viewport:f,plan:V,zoom:ie,options:()=>N.value});e.watch([N,ie],()=>lt.schedule(),{flush:"post"});function st(C){De(C*100)}function ue(C){if(v||T.value<=0)return;const R=Math.max(1,Math.min(T.value,C));c.value=R;const K=f.value;K&&(ot.scrollToPage(K,R-1),Wn.prioritize(R-1))}async function Fn(C,R={}){v||(Ve.value={...Ve.value,...C},R.reload!==!1&&(qe.value=!0,await y()))}const qt={reload:y,print:Vt,exportAs:It,openPdfWindow:Dt,gotoPage:ue,setParams:Fn,checkPdfFont:xn,importExcel:S,getPlan:zn,cancelTask:Rt,confirmDiscard:Bt,getOutputDiagnostics:Bn,getChanges:Y.getChanges,undo:Y.undo,redo:Y.redo,restoreChanges:Y.restore,getDifferences:()=>de(Y.differences.value),getSelection:()=>te.selection.value?de(te.selection.value):null,focusCell:te.focusCell,focusField:te.focusField,copySelection:te.copySelection,pasteSelection:te.pasteSelection,get state(){return G.value}};e.provide(dt.MACH_REPORT_CONTROLLER_KEY,qt);function zn(){return V.value?de(V.value):null}function Ln(C){const R=C.target,K=R.files?.[0];R.value="",K&&S(K).catch(()=>{})}const ae=ba({plan:V,gotoPage:ue,debounceMs:e.computed(()=>U.value.preview.searchDebounceMs),highlight:fa,clearHighlights:da});e.watch(()=>ee.value.search,C=>{C||(ae.reset(),ae.visible.value=!1)});function qn(C){!C.ctrlKey||!ee.value.zoom||(C.preventDefault(),st(ie.value*(C.deltaY<0?1.1:1/1.1)))}function Kn(C){if(!te.onKeydown(C)&&!(C.target instanceof Element&&C.target.closest("input,textarea,select,[contenteditable='true']"))){if(ee.value.search&&(C.ctrlKey||C.metaKey)&&C.key.toLowerCase()==="f"){C.preventDefault(),ae.visible.value||ae.toggle(),e.nextTick(()=>m.value?.focusSearch());return}switch(C.key){case"PageDown":C.preventDefault(),ue(c.value+1);break;case"PageUp":C.preventDefault(),ue(c.value-1);break;case"Home":C.preventDefault(),ue(1);break;case"End":C.preventDefault(),ue(T.value);break;case"+":case"=":C.preventDefault(),ee.value.zoom&&st(ie.value*1.1);break;case"-":C.preventDefault(),ee.value.zoom&&st(ie.value/1.1);break}}}function jn(){try{localStorage.setItem(E,JSON.stringify({zoomMode:Ie.value==="fit"?"fit":Math.round(ie.value*100)}))}catch{}}e.watch([Ie,ie],jn);let it="";function Kt(C=!1){const R=ae.activeMatch.value;if(!h.value||!R)return;const K=`${ae.query.value}:${ae.matchIndex.value}:${R.pageIndex}`;if(!C&&K===it)return;const be=u.value?.querySelector(`[data-page="${R.pageIndex+1}"]`)?.querySelectorAll("mark.mrp-hit")[R.occurrence];be&&(be.scrollIntoView?.({block:"nearest",inline:"nearest"}),it=K)}const Wn=ea({plan:V,root:u,pages:()=>zt.value,priority:()=>ae.activeMatch.value?.pageIndex??c.value-1,focusToken:()=>ae.activeMatch.value,query:()=>ae.query.value,zoom:()=>ie.value,loading:()=>z.value.loading,clear:ae.clear,highlight:ae.apply,mounted:C=>{te.refresh(C),lt.schedule()},ready:()=>{ae.activeMatch.value||(it=""),Kt()},error:C=>{l.value=C instanceof Error?C.message:String(C),_(l.value,"render",C)}});e.watch(()=>te.selection.value,()=>{te.refresh()},{flush:"post"}),e.watch(()=>ae.query.value,C=>{C||u.value?.querySelectorAll(".mrp-page-holder").forEach(R=>{ae.clear(R)})});const ge=xa(V,{thumbsRoot:g,visible:d,renderThumbCanvas:C=>{try{const R=V.value.pages[C],K=Math.min(.2,116/Math.max(1,R.pageWidthMm*gt)),{canvases:Me}=j.renderPlanToCanvas(V.value,{start:C,end:C,dpr:K});return Me[0]??null}catch{return null}}});e.watchEffect(()=>{ge.schedule()},{flush:"post"});const Hn=e.computed(()=>o.debug),{debugStats:ke}=wa(Hn,{plan:V,pageCount:T,windowRange:Re,zoom:ie,loadMs:re.loadMs});function ct(){Lt(f.value),ge.schedule(),Ie.value==="fit"&&Ft(),Kt(!0)}function jt(){De(E===tn?100:"fit");try{const C=JSON.parse(localStorage.getItem(E)??"{}");C.zoomMode==="fit"?De("fit"):typeof C.zoomMode=="number"&&De(C.zoomMode)}catch{}}return e.onMounted(()=>{window.addEventListener("resize",ct),typeof ResizeObserver<"u"&&f.value&&(P=new ResizeObserver(ct),P.observe(f.value)),Lt(f.value),jt(),o.autoLoad&&y()}),e.onUnmounted(()=>{v=!0,w.cancel(),W.value=!1,kn(),window.removeEventListener("resize",ct),P?.disconnect(),P=null,ge.destroy(),ae.reset()}),e.watch(()=>[JSON.stringify(A.value),JSON.stringify(o.params),J.value],async()=>{if(o.autoLoad){y();return}!await Ae.check("replace")||v||q.clear()}),n({...qt,state:G}),(C,R)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["mach-report-preview",{"mrp-wide-report":h.value}]),style:e.normalizeStyle(Tn.value)},[e.unref(Z)&&at.value.length>0?(e.openBlock(),e.createBlock(le.ReportParamPanel,{key:0,ref_key:"paramPanelRef",ref:At,defs:at.value,"load-options":o.loadParamOptions??e.unref(U).loadParamOptions,modelValue:e.unref(Ve),"onUpdate:modelValue":R[0]||(R[0]=K=>e.isRef(Ve)?Ve.value=K:null),messages:e.unref(z),attempted:e.unref(qe),issues:e.unref($e).validation.value.issues,onQuery:Rn,onReset:Mn},null,8,["defs","load-options","modelValue","messages","attempted","issues"])):e.createCommentVNode("",!0),e.createVNode(mn,{ref_key:"toolbarRef",ref:m,"page-count":T.value,"current-page":c.value,"zoom-mode":e.unref(Ie),zoom:e.unref(ie),"show-export":e.unref(me),"show-print":e.unref(ee).print,"show-pdf-window":e.unref(ee).pdfWindow,"show-search":e.unref(ee).search,"show-thumbnails":e.unref(ee).thumbnails,"show-zoom":e.unref(ee).zoom,"export-formats":e.unref(we),"show-settings":e.unref(fe),"settings-open":x.value,messages:e.unref(z),search:{visible:e.unref(ae).visible.value,query:e.unref(ae).query.value,matchIndex:e.unref(ae).matchIndex.value,matchCount:e.unref(ae).matchCount.value,searching:e.unref(ae).searching.value},"thumbs-visible":d.value,"show-import":!!e.unref(Pe),busy:e.unref(O)||e.unref(W)||e.unref(Y).saving.value,onGoto:ue,onZoom:e.unref(De),onExport:R[1]||(R[1]=K=>e.unref(It)(K)),onPrint:e.unref(Vt),onPdfWindow:e.unref(Dt),onSearchInput:e.unref(ae).onInput,onSearchNav:e.unref(ae).onNav,onSearchToggle:e.unref(ae).toggle,onThumbsToggle:R[2]||(R[2]=K=>d.value=!d.value),onImportExcel:R[3]||(R[3]=K=>p.value?.click()),onSettingsToggle:Pt},e.createSlots({_:2},[ze.value.length<=1?{name:"navigation",fn:e.withCtx(()=>[T.value>0&&e.unref(N).navigation!==!1?(e.openBlock(),e.createBlock(_t,{key:0,plan:e.unref(V),compact:"",sections:ze.value,"current-page":c.value,messages:e.unref(z),busy:e.unref(O)||e.unref(W)||e.unref(Y).saving.value,onLocateTarget:Mt,onGoto:ue,onLocate:Tt},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0)]),key:"0"}:void 0]),1032,["page-count","current-page","zoom-mode","zoom","show-export","show-print","show-pdf-window","show-search","show-thumbnails","show-zoom","export-formats","show-settings","settings-open","messages","search","thumbs-visible","show-import","busy","onZoom","onPrint","onPdfWindow","onSearchInput","onSearchNav","onSearchToggle"]),e.unref(Ae).request.value?(e.openBlock(),e.createBlock(pr,{key:1,messages:e.unref(z),onAnswer:e.unref(Ae).settle},null,8,["messages","onAnswer"])):e.createCommentVNode("",!0),e.createVNode(br,{task:e.unref(w).state.value,messages:e.unref(z),onCancel:Rt},null,8,["task","messages"]),e.createVNode(Nr,{entries:M.value,messages:e.unref(z),onLocate:In},null,8,["entries","messages"]),e.createVNode(Tr,{entries:D.value,messages:e.unref(z),busy:e.unref(O)||e.unref(W)||e.unref(Y).saving.value,onLocate:Dn},null,8,["entries","messages","busy"]),e.createVNode(Kr,{entries:e.unref(Fe).entries.value,pending:e.unref(Fe).pending.value,error:e.unref(Fe).error.value,busy:e.unref(O)||e.unref(W)||e.unref(Y).saving.value,messages:e.unref(z),onOpen:e.unref(Fe).open},null,8,["entries","pending","error","busy","messages","onOpen"]),x.value&&e.unref(fe)?(e.openBlock(),e.createBlock(ir,{key:2,available:e.unref(Q),enabled:e.unref(ee),messages:e.unref(z),"persisted-editing":e.unref(Be),interaction:e.unref(N),section:b.value,busy:e.unref(O)||e.unref(W)||e.unref(Y).saving.value||!!e.unref(xe)||e.unref(he),onSection:R[5]||(R[5]=K=>b.value=K),onInteraction:R[6]||(R[6]=K=>Qe.value={...e.unref(Qe),...K}),onChange:En,onReset:Cn,onClose:R[7]||(R[7]=K=>x.value=!1)},{advanced:e.withCtx(()=>[e.createVNode(Oo,{state:e.unref(nt),messages:et.value},null,8,["state","messages"])]),default:e.withCtx(()=>[e.renderSlot(C.$slots,"settings",{},void 0,!0),e.unref(ee).print?(e.openBlock(),e.createBlock(Xr,{key:0,value:e.unref(Sn).calibration??{},messages:e.unref(z),busy:e.unref(he)||e.unref(O)||e.unref(W)||e.unref(Y).saving.value,"can-test":e.unref(Nn),onChange:R[4]||(R[4]=K=>$t.value=K),onTest:e.unref(Pn)},null,8,["value","messages","busy","can-test","onTest"])):e.createCommentVNode("",!0)]),_:3},8,["available","enabled","messages","persisted-editing","interaction","section","busy"])):e.createCommentVNode("",!0),ze.value.length>1&&T.value>0&&e.unref(N).navigation!==!1?(e.openBlock(),e.createBlock(_t,{key:3,plan:e.unref(V),onLocateTarget:Mt,sections:ze.value,"current-page":c.value,messages:e.unref(z),busy:e.unref(O)||e.unref(W)||e.unref(Y).saving.value,onGoto:ue,onLocate:Tt},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0),e.unref(se)?(e.openBlock(),e.createBlock(ys,{key:4,result:e.unref(se),messages:e.unref(z)},null,8,["result","messages"])):e.createCommentVNode("",!0),e.unref(pe)&&T.value>0?(e.openBlock(),e.createBlock(Hl,{key:5,differences:e.unref(Y).differences.value,conflicts:e.unref(Y).conflicts.value,messages:e.unref(z),saving:e.unref(Y).saving.value,"can-undo":e.unref(Y).canUndo.value,"can-redo":e.unref(Y).canRedo.value,persisted:e.unref(Be),busy:!!e.unref(xe)||e.unref(he),onUndo:e.unref(Y).undo,onRedo:e.unref(Y).redo,onRestore:e.unref(Y).restore,onLocate:Vn},null,8,["differences","conflicts","messages","saving","can-undo","can-redo","persisted","busy","onUndo","onRedo","onRestore"])):e.createCommentVNode("",!0),e.unref(Pe)?(e.openBlock(),e.createElementBlock("input",{key:6,ref_key:"importInputRef",ref:p,class:"mrp-import-input",type:"file",accept:".xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",hidden:"",onChange:Ln},null,544)):e.createCommentVNode("",!0),e.unref(pe)&&T.value>0?(e.openBlock(),e.createElementBlock("div",Ns,e.toDisplayString(e.unref(Y).saving.value?e.unref(z).saving:e.unref(z).editingHint),1)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("div",{key:8,class:e.normalizeClass(["mrp-export-notice",`mrp-export-${i.value.kind}`]),role:"alert"},e.toDisplayString(i.value.message),3)):e.createCommentVNode("",!0),e.unref(St).status==="error"&&Ct.value?(e.openBlock(),e.createElementBlock("div",Ps,[e.createTextVNode(e.toDisplayString(e.unref(z).pdfFontUnavailable)+" ",1),e.createElementVNode("button",{type:"button",onClick:R[8]||(R[8]=(...K)=>e.unref(Nt)&&e.unref(Nt)(...K))},e.toDisplayString(e.unref(z).retry),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Bs,[e.createElementVNode("div",{ref_key:"viewportRef",ref:f,class:"mrp-body",tabindex:"0",onWheel:qn,onKeydown:Kn,onDblclick:R[10]||(R[10]=(...K)=>e.unref(Y).onDoubleClick&&e.unref(Y).onDoubleClick(...K)),onClick:R[11]||(R[11]=(...K)=>e.unref(te).onClick&&e.unref(te).onClick(...K)),onCopy:R[12]||(R[12]=(...K)=>e.unref(te).onCopy&&e.unref(te).onCopy(...K)),onPaste:R[13]||(R[13]=(...K)=>e.unref(te).onPaste&&e.unref(te).onPaste(...K)),onScrollPassive:R[14]||(R[14]=K=>{e.unref(An)(K.target),e.unref(lt).schedule()})},[e.unref(O)?(e.openBlock(),e.createElementBlock("div",$s,e.toDisplayString(e.unref(z).loading),1)):l.value?(e.openBlock(),e.createElementBlock("div",Vs,[e.createTextVNode(e.toDisplayString(l.value)+" ",1),e.createElementVNode("button",{class:"mrp-retry",type:"button",onClick:R[9]||(R[9]=(...K)=>e.unref(y)&&e.unref(y)(...K))},e.toDisplayString(e.unref(z).retry),1)])):!e.unref(V)||T.value===0?(e.openBlock(),e.createBlock(Xt,{key:2,title:e.unref(Ot)?e.unref(z).paramPrompt??e.unref(z).paramsTitle:e.unref(z).empty,description:e.unref(Ot)?e.unref(z).paramPromptDescription:e.unref(Ze).description??e.unref(z).emptyDescription},null,8,["title","description"])):(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-scale",style:e.normalizeStyle({width:`${e.unref(rt).w*e.unref(ie)}px`,height:`${e.unref(rt).h*e.unref(ie)}px`})},[e.createElementVNode("div",{ref_key:"containerRef",ref:u,class:"mrp-scale-inner",style:e.normalizeStyle({transform:`scale(${e.unref(ie)})`,transformOrigin:"top left",width:`${e.unref(rt).w}px`})},[e.unref(Re).padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-spacer-top",style:e.normalizeStyle({height:`${e.unref(Re).padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(zt),K=>(e.openBlock(),e.createElementBlock("div",{key:K.index,class:"mrp-page-holder","data-page":K.index+1},null,8,Is))),128)),e.unref(Re).padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-spacer-bottom",style:e.normalizeStyle({height:`${e.unref(Re).padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],4)],4)),!e.unref(O)&&!l.value&&e.unref(V)&&T.value>0&&t.emptyState?(e.openBlock(),e.createBlock(Xt,{key:4,title:e.unref(Ze).title??e.unref(z).empty,description:e.unref(Ze).description??e.unref(z).emptyDescription},null,8,["title","description"])):e.createCommentVNode("",!0)],544),e.unref(ee).thumbnails&&d.value&&T.value>0?(e.openBlock(),e.createElementBlock("aside",{key:0,ref_key:"thumbsRef",ref:g,class:"mrp-thumbs",onScrollPassive:R[15]||(R[15]=(...K)=>e.unref(ge).onScroll&&e.unref(ge).onScroll(...K))},[e.unref(ge).windowRange.value.padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-thumb-spacer",style:e.normalizeStyle({height:`${e.unref(ge).windowRange.value.padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ge).visibleThumbs.value,K=>(e.openBlock(),e.createElementBlock("button",{key:K.index,class:e.normalizeClass(["mrp-thumb",{"mrp-thumb-active":K.index+1===c.value}]),type:"button","aria-label":`${e.unref(z).thumbnails} · ${e.unref(z).pageInfo.replace("{cur}",String(K.index+1)).replace("{total}",String(T.value))}`,"aria-current":K.index+1===c.value?"page":void 0,style:e.normalizeStyle({height:`${K.height+20}px`}),onClick:Me=>ue(K.index+1)},[e.createElementVNode("span",{class:"mrp-thumb-box","data-thumb":K.index+1,style:e.normalizeStyle({height:`${K.height}px`})},null,12,Rs),e.createElementVNode("span",Ms,e.toDisplayString(K.index+1),1)],14,Ds))),128)),e.unref(ge).windowRange.value.padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-thumb-spacer",style:e.normalizeStyle({height:`${e.unref(ge).windowRange.value.padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)]),T.value>0?(e.openBlock(),e.createElementBlock("footer",Ts,[e.createElementVNode("div",Os,[e.unref(N).navigation!==!1?(e.openBlock(),e.createBlock(bo,{key:0,plan:e.unref(V),"current-page":c.value,messages:e.unref(z),busy:e.unref(O)||e.unref(W)||e.unref(Y).saving.value,onGoto:ue},null,8,["plan","current-page","messages","busy"])):e.createCommentVNode("",!0),_e.value&&e.unref(fe)?(e.openBlock(),e.createElementBlock("button",{key:1,class:"mrp-calculation-toggle",type:"button","aria-label":et.value.calculationTitle,onClick:$n},[R[16]||(R[16]=e.createElementVNode("span",{"aria-hidden":"true"},"∑",-1)),e.createTextVNode(e.toDisplayString(et.value.calculationTitle),1),e.unref(nt).result.value?(e.openBlock(),e.createElementBlock("strong",Fs,e.toDisplayString(e.unref(nt).result.value.formatted),1)):e.createCommentVNode("",!0)],8,As)):e.createCommentVNode("",!0)]),e.createVNode(kt,{"page-count":T.value,"current-page":c.value,messages:e.unref(z),busy:e.unref(O)||e.unref(W)||e.unref(Y).saving.value,onGoto:ue},null,8,["page-count","current-page","messages","busy"])])):e.createCommentVNode("",!0),e.createElementVNode("div",zs,[e.renderSlot(C.$slots,"default",{},void 0,!0)]),e.unref(ke)?(e.openBlock(),e.createElementBlock("div",Ls,[R[17]||(R[17]=e.createElementVNode("div",null,"mach-report debug",-1)),e.createElementVNode("div",null,"pages: "+e.toDisplayString(e.unref(ke).pages)+" | window: ["+e.toDisplayString(e.unref(ke).window)+"]",1),e.createElementVNode("div",null,"zoom: "+e.toDisplayString(e.unref(ke).zoom)+" | load: "+e.toDisplayString(e.unref(ke).loadMs),1),e.createElementVNode("div",null,"plan: "+e.toDisplayString(e.unref(ke).planKB)+"KB",1)])):e.createCommentVNode("",!0)],6))}}),bn=H._export_sfc(qs,[["__scopeId","data-v-3821b7e3"]]),Ks=Object.freeze(Object.defineProperty({__proto__:null,default:bn},Symbol.toStringTag,{value:"Module"}));exports.PlanLoadError=je;exports.REPORT_EXPORT_FORMATS=Xe;exports.REPORT_PREVIEW_TOOLS=ht;exports.ReportPagination=kt;exports.ReportPreview=bn;exports.ReportPreview$1=Ks;exports.ReportPrintResourceError=ce;exports.ReportToolbar=mn;exports.buildPrintDocument=sn;exports.buildWordHtml=ra;exports.cloneReportSnapshot=de;exports.createDefaultPdfExporter=pn;exports.createFetchRequest=_n;exports.createPrintCalibrationPlan=rn;exports.createReportStoragePreferences=hs;exports.joinReportIds=Qn;exports.normalizeReportIds=wt;exports.preparePrintResources=xt;exports.printPlans=cn;exports.usePageWindow=an;exports.usePrintExport=dn;exports.useZoom=on;