@agile-team/mach-report 2.15.0 → 2.17.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 (171) hide show
  1. package/README.md +21 -12
  2. package/dist/{ExcelBindingWizard-Bs43BGNp.cjs → ExcelBindingWizard-Bq6FYME6.cjs} +1 -1
  3. package/dist/{ExcelBindingWizard-BKH1nGNS.js → ExcelBindingWizard-Co1svTsw.js} +3 -3
  4. package/dist/{ParamEditor-Da4akw6V.cjs → ParamEditor-B5UZRgxv.cjs} +1 -1
  5. package/dist/{ParamEditor-DoAhzJsm.js → ParamEditor-DNNARyeB.js} +1 -1
  6. package/dist/{ReportBatchPanel-wP9m9Pj1.cjs → ReportBatchPanel-Ctvs2t_9.cjs} +1 -1
  7. package/dist/{ReportBatchPanel-BMf6boMA.js → ReportBatchPanel-uQh06usx.js} +3 -3
  8. package/dist/ReportPreview-BdQawRh0.js +4879 -0
  9. package/dist/ReportPreview-CJC_-j2I.cjs +6 -0
  10. package/dist/{ReportTemplateLibrary-Sxr3eD0J.cjs → ReportTemplateLibrary-CnP7_1pH.cjs} +1 -1
  11. package/dist/{ReportTemplateLibrary-C9wutIiT.js → ReportTemplateLibrary-TIL_Oj2l.js} +1 -1
  12. package/dist/RuleEditor-DkRjOLlr.js +2141 -0
  13. package/dist/RuleEditor-h5anGsDB.cjs +1 -0
  14. package/dist/{TemplateOutlinePanel-JTSR53vJ.cjs → TemplateOutlinePanel-BlLxRrfu.cjs} +1 -1
  15. package/dist/{TemplateOutlinePanel-D6Bkny59.js → TemplateOutlinePanel-BouxsuqQ.js} +1 -1
  16. package/dist/{TemplateReusePanel-rVuK1kTz.js → TemplateReusePanel-BEACLPaN.js} +2 -2
  17. package/dist/{TemplateReusePanel-Kx35S0Ql.cjs → TemplateReusePanel-yxsHSO40.cjs} +1 -1
  18. package/dist/{TemplateReviewPanel-B0ar9_zf.js → TemplateReviewPanel-B1OGRY2i.js} +1 -1
  19. package/dist/{TemplateReviewPanel-Dn6X9UmY.cjs → TemplateReviewPanel-D9Cx0m2N.cjs} +1 -1
  20. package/dist/analytics.cjs +1 -1
  21. package/dist/analytics.d.cts +65 -1
  22. package/dist/analytics.d.ts +65 -1
  23. package/dist/analytics.js +4 -4
  24. package/dist/artifact-integrity.json +105 -101
  25. package/dist/assets-BIMVwjQe.js +231 -0
  26. package/dist/assets-Dfs2ElxI.cjs +1 -0
  27. package/dist/auto-BIOmtVhk.js +240 -0
  28. package/dist/auto-DDHflI9v.cjs +1 -0
  29. package/dist/{batch-BfZHN1do.js → batch-WzDIXJAt.js} +1 -1
  30. package/dist/{batch-CLpELXBl.cjs → batch-z6Aw5GEY.cjs} +1 -1
  31. package/dist/codes.d.cts +2 -0
  32. package/dist/codes.d.ts +2 -0
  33. package/dist/component-tree-Ca6YYfHq.js +61 -0
  34. package/dist/component-tree-DkGLEfZC.cjs +1 -0
  35. package/dist/computed-BW5a8QFk.js +612 -0
  36. package/dist/computed-C2GD3XcE.cjs +1 -0
  37. package/dist/config-Dg_o8e7m.cjs +1 -0
  38. package/dist/{config-BVsJXSqS.js → config-XQ4qrQ7Q.js} +66 -64
  39. package/dist/dataset-DL83majE.js +161 -0
  40. package/dist/dataset-IrlXbUvh.cjs +1 -0
  41. package/dist/designer-D9XAxqSc.js +5178 -0
  42. package/dist/designer-uCDo5XSK.cjs +2 -0
  43. package/dist/designer.cjs +1 -1
  44. package/dist/designer.d.cts +178 -3
  45. package/dist/designer.d.ts +178 -3
  46. package/dist/designer.js +1 -1
  47. package/dist/drill-ByN8COs_.cjs +1 -0
  48. package/dist/{drill-ByJviLXS.js → drill-CKW3Xtfa.js} +5 -5
  49. package/dist/encoding-BFMFIc4r.cjs +1 -0
  50. package/dist/encoding-DP_Eaf0A.js +21 -0
  51. package/dist/{font-loader-B_UkxpzC.cjs → font-loader-7FWVlykp.cjs} +1 -1
  52. package/dist/{font-loader-Q3bQjmrI.js → font-loader-CQZowp0I.js} +1 -1
  53. package/dist/index.cjs +8 -9
  54. package/dist/index.d.cts +175 -1
  55. package/dist/index.d.ts +175 -1
  56. package/dist/index.js +1343 -915
  57. package/dist/json-snapshot-D7PE1NsU.cjs +2 -0
  58. package/dist/json-snapshot-DYmEe3sO.js +1779 -0
  59. package/dist/matrix-JLAXlux-.js +302 -0
  60. package/dist/matrix-gTHpDTGm.cjs +1 -0
  61. package/dist/{pdf-CvvrjPQg.cjs → pdf-B8JouyYv.cjs} +48 -50
  62. package/dist/{pdf-BwNyeGpt.js → pdf-l3ea86di.js} +2734 -2748
  63. package/dist/pdf.cjs +1 -1
  64. package/dist/pdf.d.cts +14 -0
  65. package/dist/pdf.d.ts +14 -0
  66. package/dist/pdf.js +2 -2
  67. package/dist/{plugin-Ca_XZG3l.js → plugin-BBp74CQZ.js} +1 -1
  68. package/dist/{plugin-DHO7X8z2.cjs → plugin-CtFX9PFG.cjs} +1 -1
  69. package/dist/prepared-CARicKYh.js +87 -0
  70. package/dist/prepared-Ch1x_Gog.cjs +1 -0
  71. package/dist/progress-BXzlVbIp.js +29 -0
  72. package/dist/progress-DJBd9Rb9.cjs +1 -0
  73. package/dist/{progress-D-OTpEav.js → progress-Hc2vxoCs.js} +2 -2
  74. package/dist/protocol-B5A2uom4.cjs +1 -0
  75. package/dist/protocol-BaiWjq5w.js +90 -0
  76. package/dist/record-bindings-B86Sur_y.cjs +1 -0
  77. package/dist/{record-bindings-Do_b3h4V.js → record-bindings-D4TuMzHs.js} +10 -11
  78. package/dist/{region-binding-workflow-BMhK_TjP.js → region-binding-workflow-BNasF5kz.js} +2 -2
  79. package/dist/{region-binding-workflow-DIYJdCUr.cjs → region-binding-workflow-O2Cni3mF.cjs} +1 -1
  80. package/dist/report-encoding-worker.cjs +1 -0
  81. package/dist/report-encoding-worker.d.ts +1 -0
  82. package/dist/report-encoding-worker.js +2 -0
  83. package/dist/rich-text-layout-ALlMoYOG.cjs +3 -0
  84. package/dist/rich-text-layout-Ct5WrY1g.js +102 -0
  85. package/dist/runtime-DakRXui3.js +170 -0
  86. package/dist/runtime-dL5ygIfa.cjs +1 -0
  87. package/dist/sbom.cdx.json +2 -2
  88. package/dist/server/node.d.cts +132 -1
  89. package/dist/server/node.d.ts +132 -1
  90. package/dist/server-node.cjs +5 -1
  91. package/dist/server-node.js +5177 -463
  92. package/dist/server.cjs +1 -1
  93. package/dist/server.d.cts +182 -2
  94. package/dist/server.d.ts +182 -2
  95. package/dist/server.js +918 -833
  96. package/dist/sha256-BshdOkCC.cjs +1 -0
  97. package/dist/sha256-DTG-Gq8i.js +157 -0
  98. package/dist/style-67OqfNed.js +73 -0
  99. package/dist/style-C22Pbv3T.cjs +1 -0
  100. package/dist/style.css +1 -1
  101. package/dist/template-catalog-Dua8h9ZA.cjs +1 -0
  102. package/dist/{template-catalog-j2B1MJlL.js → template-catalog-wT1fNeAP.js} +10 -10
  103. package/dist/{template-fragments-DcKeiylI.cjs → template-fragments-BajTajb4.cjs} +1 -1
  104. package/dist/{template-fragments-BGbQLGlV.js → template-fragments-DmX5XK4N.js} +2 -2
  105. package/dist/template-registry-CpysHAxy.cjs +1 -0
  106. package/dist/{template-registry-BtaKPELV.js → template-registry-u11fPd8D.js} +389 -321
  107. package/dist/{textwrap-DE1kgcJB.js → textwrap-BEIg2w8y.js} +1 -1
  108. package/dist/textwrap-BI-yJ6Wt.cjs +4 -0
  109. package/dist/{tree-BX380Rr7.cjs → tree-CLpxYbKa.cjs} +1 -1
  110. package/dist/{tree-CjVZLRw7.js → tree-DNJorJUf.js} +1 -1
  111. package/dist/vue/async.d.cts +174 -2
  112. package/dist/vue/async.d.ts +174 -2
  113. package/dist/vue/index.d.cts +218 -3
  114. package/dist/vue/index.d.ts +218 -3
  115. package/dist/vue-async.cjs +1 -1
  116. package/dist/vue-async.js +3 -3
  117. package/dist/vue.cjs +1 -1
  118. package/dist/vue.js +7 -7
  119. package/dist/{workbook-session-BvToI-Fd.js → workbook-session-B8pNW24X.js} +153 -140
  120. package/dist/{workbook-session-Bjv1YCRK.cjs → workbook-session-DN5LSA5C.cjs} +12 -12
  121. package/dist/worker.cjs +1 -1
  122. package/dist/worker.d.cts +84 -1
  123. package/dist/worker.d.ts +84 -1
  124. package/dist/worker.js +12 -157
  125. package/dist/xlsx-node.cjs +33 -33
  126. package/dist/xlsx-node.js +1282 -1289
  127. package/dist/xlsx.cjs +4 -3
  128. package/dist/xlsx.d.cts +90 -2
  129. package/dist/xlsx.d.ts +90 -2
  130. package/dist/xlsx.js +279 -259
  131. package/package.json +6 -3
  132. package/dist/ReportPreview-ChV19HBp.js +0 -4619
  133. package/dist/ReportPreview-DbLvvOUT.cjs +0 -6
  134. package/dist/RuleEditor-C_Clasvd.js +0 -2037
  135. package/dist/RuleEditor-XhGHK8DE.cjs +0 -1
  136. package/dist/assets-B9ImAi6_.cjs +0 -1
  137. package/dist/assets-DEaz4qsp.js +0 -124
  138. package/dist/batch-BaP6pWDE.cjs +0 -1
  139. package/dist/batch-CGyt-b2W.js +0 -273
  140. package/dist/capabilities-CAh2Nrue.cjs +0 -1
  141. package/dist/capabilities-DskCHs3V.js +0 -69
  142. package/dist/computed-C-4C2S5h.js +0 -521
  143. package/dist/computed-CGV2a809.cjs +0 -1
  144. package/dist/config-D10us76d.cjs +0 -1
  145. package/dist/data-explanation-B8MZRYVS.js +0 -16
  146. package/dist/data-explanation-DE55G30w.cjs +0 -1
  147. package/dist/dataset-BkRmwgeJ.cjs +0 -1
  148. package/dist/dataset-H5pFuQGU.js +0 -121
  149. package/dist/defaults-DXhiM1ZD.js +0 -10
  150. package/dist/defaults-xhmcLLrf.cjs +0 -1
  151. package/dist/designer-2bDlcNXQ.js +0 -5136
  152. package/dist/designer-BT7XCdbW.cjs +0 -2
  153. package/dist/drill-DYTxuL3A.cjs +0 -1
  154. package/dist/grid-strokes-Cr7DwUux.cjs +0 -1
  155. package/dist/grid-strokes-DyyG1q_o.js +0 -53
  156. package/dist/json-snapshot-DFb2eWkf.js +0 -1416
  157. package/dist/json-snapshot-WWSGlaHG.cjs +0 -2
  158. package/dist/matrix-CGRGkn5s.js +0 -112
  159. package/dist/matrix-gEO7ZM_u.cjs +0 -1
  160. package/dist/prepared-CFy9B75C.cjs +0 -1
  161. package/dist/prepared-ajM-H-9B.js +0 -69
  162. package/dist/record-bindings-By_UKZ2g.cjs +0 -1
  163. package/dist/render-plan-7xpGrCEl.cjs +0 -1
  164. package/dist/render-plan-Ck6koX9L.js +0 -13
  165. package/dist/sha256-ArEYjaTI.cjs +0 -1
  166. package/dist/sha256-DPEuJ3nh.js +0 -155
  167. package/dist/style-CQ1PK8ZB.js +0 -67
  168. package/dist/style-UgIJSA1F.cjs +0 -1
  169. package/dist/template-catalog-FJE_c9Qe.cjs +0 -1
  170. package/dist/template-registry-Co1zPq5e.cjs +0 -1
  171. package/dist/textwrap-CWHyzkBH.cjs +0 -4
@@ -1,6 +0,0 @@
1
- "use strict";var da=Object.create;var un=Object.defineProperty;var ma=Object.getOwnPropertyDescriptor;var fa=Object.getOwnPropertyNames;var pa=Object.getPrototypeOf,ga=Object.prototype.hasOwnProperty;var va=(t,n,a,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let l of fa(n))!ga.call(t,l)&&l!==a&&un(t,l,{get:()=>n[l],enumerable:!(r=ma(n,l))||r.enumerable});return t};var Et=(t,n,a)=>(a=t!=null?da(pa(t)):{},va(n||!t||!t.__esModule?un(a,"default",{value:t,enumerable:!0}):a,t));const e=require("vue"),K=require("@agile-team/mach-report"),Oe=require("./drill-DYTxuL3A.cjs"),Q=require("./progress-B0ctFpKf.cjs"),oe=require("./config-D10us76d.cjs"),hn=require("./render-plan-7xpGrCEl.cjs"),j=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),Mt=require("./grid-geometry-CZ_cYB6O.cjs"),Ct=require("./injection-keys-Db_DyLkm.cjs");function Tt(t){return t==null?[]:Array.isArray(t)?t.map(String).filter(n=>n!==""):String(t).split(",").map(n=>n.trim()).filter(n=>n!=="")}function ha(t){return Tt(t).join(",")}class _e extends Error{constructor(n){super(n),this.name="PlanLoadError"}}function ya(t={}){const{baseUrl:n="",headers:a,credentials:r,timeoutMs:l=3e4}=t,o=n.replace(/\/+$/,"");return async({url:s,method:i,params:c,signal:d})=>{let g=`${o}${s}`;if(c&&Object.keys(c).length>0){const p=g.indexOf("#"),S=p>=0?g.slice(p):"",v=p>=0?g.slice(0,p):g,C=v.indexOf("?"),P=C>=0?v.slice(0,C):v,I=new URLSearchParams(C>=0?v.slice(C+1):"");for(const[T,L]of Object.entries(c))I.set(T,L);g=`${P}?${I}${S}`}const f=(p,S)=>{const v=new _e(p);return Object.defineProperty(v,"cause",{value:S,configurable:!0,writable:!0}),v};if(d?.aborted)throw f(`请求已取消: ${s}`,d.reason);const m=new AbortController;let w;const b=()=>{m.signal.aborted||(w="external",m.abort(d?.reason))};d?.addEventListener("abort",b,{once:!0});const h=setTimeout(()=>{m.signal.aborted||(w="timeout",m.abort())},l);try{const p=await fetch(g,{method:i.toUpperCase(),headers:{Accept:"application/json",...a},credentials:r,signal:m.signal});if(!p.ok)throw new _e(`HTTP ${p.status} ${s}`);return await p.json()}catch(p){throw w==="timeout"?f(`请求超时(${l}ms): ${s}`,p):w==="external"?f(`请求已取消: ${s}`,p):p instanceof _e?p:f(`请求失败(${s}): ${p instanceof Error?p.message:String(p)}`,p)}finally{clearTimeout(h),d?.removeEventListener("abort",b)}}}function yn(t,n,a={}){const r=a.pxPerMm??3.7795275590551185,l=e.computed(()=>Math.max(0,e.unref(a.gapPx)??18)),o=e.ref(0),s=e.ref(800),i=e.computed(()=>{const v=t.value?.pages??[];return Oe.createPageWindowIndex(v.map(C=>C.pageHeightMm*r),l.value)}),c=e.computed(()=>{let v=0;for(const C of t.value?.pages??[])v=Math.max(v,C.pageWidthMm*r);return{w:v,h:i.value.totalHeightPx}}),d=e.computed(()=>i.value.window(s.value/n.value,o.value/n.value,e.unref(a.overscan)??1)),g=e.computed(()=>{const v=t.value;if(!v)return[];const{start:C,end:P}=d.value;return v.pages.slice(C,P+1).map((I,T)=>({page:I,index:C+T}))});let f=0,m=!1,w;function b(v){v&&(o.value=v.scrollTop,s.value=v.clientHeight||800)}function h(v,C){v.scrollTop=i.value.offsetAt(C)*n.value,w={top:v.scrollTop,index:C,zoom:n.value,geometry:i.value},b(v)}function p(v,C){return P=>{f||m||(f=requestAnimationFrame(()=>{if(f=0,m||(b(P),C.value<=0))return;if(w&&w.top===P.scrollTop&&w.zoom===n.value&&w.geometry===i.value){v.value=Math.min(C.value,w.index+1);return}w=void 0;const I=Math.max(0,P.scrollTop+32)/n.value;v.value=Math.min(C.value,i.value.pageAt(I)+1)}))}}function S(){m=!0,f&&cancelAnimationFrame(f),f=0}return e.onScopeDispose(S),{contentSize:c,windowRange:d,visiblePages:g,makeScrollHandler:p,refreshViewport:b,scrollToPage:h,pageOffsetPx:v=>i.value.offsetAt(v),destroy:S}}const dn=96/25.4;function ba(t){const n=new WeakMap,a=e.ref(0);let r,l=0,o=0,s=!1;function i(){l++,o&&cancelAnimationFrame(o),o=0}function c(h,p,S,v){return!s&&p===l&&t.plan.value===S&&t.root.value===v&&v.contains(h.holder)&&Number(h.holder.dataset.page)===h.index+1}function d(h){const{holder:p,page:S}=h;n.delete(p),p.style.width=`${S.pageWidthMm*dn}px`,p.style.height=`${S.pageHeightMm*dn}px`,p.setAttribute("aria-busy","true");const v=p.ownerDocument.createElement("div");v.className="mrp-page-loading";const C=p.ownerDocument.createElement("span");C.textContent=t.loading(),C.style.transform=`scale(${1/Math.max(1e-4,t.zoom())})`,v.append(C),p.replaceChildren(v)}function g(h){const p=n.get(h.holder);return!p||p.page!==h.page||p.element.parentElement!==h.holder?!1:(p.query!==t.query()&&(t.clear(p.element),t.highlight(p.element),p.query=t.query()),!0)}function f(h,p,S,v){if(c(h,p,S,v))try{const C=K.renderPage(h.page,96,{},h.holder.ownerDocument);if(t.highlight(C),!c(h,p,S,v))return;h.holder.replaceChildren(C),h.holder.removeAttribute("aria-busy"),n.set(h.holder,{page:h.page,element:C,query:t.query()}),t.mounted(h.holder),t.ready()}catch(C){if(!c(h,p,S,v))return;h.holder.removeAttribute("aria-busy");const P=h.holder.ownerDocument.createElement("div");P.className="mrp-page-render-error",P.setAttribute("role","alert"),P.textContent=C instanceof Error?C.message:String(C),h.holder.replaceChildren(P),t.error(C)}}function m(h,p,S,v){h.length&&(o=requestAnimationFrame(()=>{if(p!==l||s)return;o=0;const C=h.shift();C&&f(C,p,S,v),p===l&&t.plan.value===S&&t.root.value===v&&m(h,p,S,v)}))}function w(){i();const h=t.plan.value,p=t.root.value;if(s||!h||!p){r=void 0;return}const S=l,v=r?.plan===h?r.index:t.priority();r=void 0;const C=[];p.querySelectorAll(".mrp-page-holder").forEach(T=>{const L=Number(T.dataset.page)-1,J=h.pages[L];if(!J)return;const H={holder:T,page:J,index:L};g(H)||(d(H),C.push(H))});const P=C.findIndex(T=>T.index===v),I=P<0?void 0:C.splice(P,1)[0];I&&f(I,S,h,p),t.ready(),m(C,S,h,p)}function b(h){s||!t.plan.value||(r={plan:t.plan.value,index:h},a.value++)}return e.watch([t.plan,t.root,t.pages,t.priority,t.focusToken,t.query,t.zoom,t.loading,a],w,{flush:"post",immediate:!0}),e.onScopeDispose(()=>{s=!0,r=void 0,i()}),{prioritize:b,cancel:i}}function bn(t){const n=e.ref(1),a=e.ref("fit");let r=0;function l(){r&&cancelAnimationFrame(r),r=0}function o(){l(),r=requestAnimationFrame(()=>{if(r=0,a.value!=="fit")return;const i=t();!i?.viewport||i.viewport.clientWidth<=48||!Number.isFinite(i.pageWidthPx)||(n.value=Math.min(1,(i.viewport.clientWidth-48)/Math.max(1,i.pageWidthPx)))})}function s(i){if(i==="fit")a.value="fit",o();else{if(!Number.isFinite(i))return;l(),a.value="raw",n.value=Math.min(3,Math.max(.3,i/100))}}return e.getCurrentScope()&&e.onScopeDispose(l),{zoom:n,zoomMode:a,applyFitZoom:o,setZoom:s}}let wa=0;function mn(t,n){const a=new AbortController;let r={taskId:`mr-output-${Date.now().toString(36)}-${++wa}`,kind:t,stage:t==="print"?"print":"encode",status:"running",cancellable:!0};function l(){try{n?.(Object.freeze({...r}))}catch{}}return{controller:a,get task(){return r},start:l,update(o,s,i){a.signal.aborted||r.status!=="running"||(r={...r,stage:o,completed:s,total:i},l())},finish(o="completed"){r.status==="running"&&(r={...r,status:o,cancellable:!1},l(),o==="cancelled"&&a.abort())}}}class de 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 wn(t,n){const a={...oe.DEFAULT_PRINT_MESSAGES,...n};return t instanceof de?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 ka(t,n){let a;try{a=new URL(t,n)}catch{throw new de("config")}if(!["http:","https:"].includes(a.protocol)||t.length>16384)throw new de("config");return a.href}async function xa(t,n,a,r){const l=n.fonts??[];if(l.length>8)throw new de("config");for(const o of l){if(Q.assertOutputActive(a),typeof o.family!="string"||!o.family.trim()||o.family.length>256||typeof o.source!="string")throw new de("config");const s=t.defaultView?.FontFace;if(!s||!t.fonts)throw new de("font",o.family);try{const{loadFontWithCache:i}=await Promise.resolve().then(()=>require("./font-loader-B_UkxpzC.cjs")),c=await i(ka(o.source,r),{signal:a});if(!c)throw new de("font",o.family);const d=new s(o.family,c,{weight:o.weight,style:o.style});await Q.waitForOutput(d.load(),a),t.fonts.add(d)}catch(i){throw Q.assertOutputActive(a),i instanceof de?i:new de("font",o.family)}}t.documentElement.getBoundingClientRect(),t.fonts&&await Q.waitForOutput(t.fonts.ready,a)}async function Ea(t,n,a){Q.assertOutputActive(a);try{if(typeof t.decode=="function"?await Q.waitForOutput(t.decode(),a):t.complete||await new Promise((r,l)=>{const o=()=>{t.removeEventListener("load",s),t.removeEventListener("error",i),a.removeEventListener("abort",c)},s=()=>{o(),r()},i=()=>{o(),l(new de("image",n))},c=()=>{o(),l(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()}),Q.assertOutputActive(a),t.naturalWidth<=0||t.naturalHeight<=0)throw new de("image",n)}catch{throw Q.assertOutputActive(a),new de("image",n)}}async function Ot(t,n={},a,r=document.baseURI){const l=n.resourceTimeoutMs??15e3;if(!Number.isSafeInteger(l)||l<1||l>12e4)throw new de("config");const o=new AbortController,s=Q.forwardOutputAbort(a,o),i=setTimeout(()=>o.abort(new de("timeout")),l);try{Q.assertOutputActive(o.signal),await xa(t,n,o.signal,r);const c=t.querySelectorAll("img");let d=0;const g=async()=>{for(;d<c.length;){const f=d++;await Ea(c[f],f+1,o.signal)}};await Promise.all(Array.from({length:Math.min(c.length,4)},g)),Q.assertOutputActive(o.signal)}finally{clearTimeout(i),s(),o.abort()}}const Fe=8;function Ge(){return new Promise(t=>setTimeout(t,0))}function et(t){return`p${t.pageWidthMm}x${t.pageHeightMm}`.replace(/[.+]/g,"_")}function nt(t){const n=new Map;return t.pages.forEach(l=>{n.has(et(l))||n.set(et(l),l)}),`<!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(l=>`@page ${et(l)}{size:${l.pageWidthMm}mm ${l.pageHeightMm}mm;margin:0;}`).join(`
5
- `)}
6
- body{margin:0;background:#fff;}`}</style></head><body>`}function at(t,n){const a=K.renderPage(t,96,{},document);a.style.page=et(t);const r=oe.printCalibration(n);if(r.x||r.y){const l=document.createElement("div");for(l.style.cssText=`position:absolute;inset:0;transform:translate(${r.x}mm,${r.y}mm);transform-origin:top left`;a.firstChild;)l.appendChild(a.firstChild);a.appendChild(l)}return a.outerHTML}function kn(t,n){return{head:nt(t),pageChunks:t.pages.map(a=>at(a,n))}}async function xn(t,n={}){const a={schemaVersion:"mach-report-batch-print",pages:t.flatMap(i=>i.pages)};if(a.pages.length===0)return;const r=oe.snapshotPrintOptions(n.printOptions),l=nt(a),o=document.createElement("iframe");o.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(o);let s=!1;try{const i=o.contentDocument;i.open(),i.write(l);for(let c=0;c<a.pages.length;c++)Q.assertOutputActive(n.signal),i.write(at(a.pages[c],r)),c%Fe===Fe-1&&(Q.notifyOutputProgress(n,c+1,a.pages.length),await Ge());i.write("</body></html>"),i.close(),await Ge(),await Ot(i,r,n.signal),Q.notifyOutputProgress(n,a.pages.length,a.pages.length),o.contentWindow?.focus(),o.contentWindow?.print(),s=!0}catch(i){throw n.signal?.aborted||Q.observeOutput(()=>n.onError?.(wn(i,n.messages))),i}finally{s?setTimeout(()=>o.remove(),6e4):o.remove()}}function En(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 Ca(t){const{head:n,pageChunks:a}=kn(t);return{html:`${En(n)}${a.join("")}</body></html>`,filename:"mach-report.doc"}}function Cn(t,n){let a=null,r=!1,l=!1,o=0,s=0;const i=new Set,c=new Map;let d=null;const g=new Map;let f=null,m=null,w=null,b=null,h=null;function p(k,B){return!l&&t.value===k&&o===B}function S(){if(l)return;const k=[...c.values()].reverse().find(B=>p(B.plan,B.epoch))?.format??null;k!==f&&(f=k,n.onBusy?.(k))}function v(k,B,F){const O={};return c.set(O,{plan:k,epoch:B,format:F,run:mn("export",n.onTask)}),c.get(O).run.start(),S(),O}function C(k){c.get(k)?.run.finish(),c.delete(k),S()}function P(){for(const[k,B]of g)p(B.plan,B.epoch)||(k.close(),g.delete(k))}function I(k=!0){if(k){s++;for(const B of i)B.close();i.clear()}for(const B of c.values())B.run.finish("cancelled");d?.finish("cancelled"),o++,L(),S(),P()}const T=e.watch(t,()=>I(!1),{flush:"sync"});function L(){a?.remove(),a=null}function J(){I(),l=!0,o++,T(),L(),P(),c.clear(),n.onPrinting?.(!1)}function H(k,B){const F=URL.createObjectURL(k);setTimeout(()=>URL.revokeObjectURL(F),1e4);const O=document.createElement("a");O.href=F,O.download=B,O.click()}function Z(k,B,F,O,G){F.update("download"),p(k,B)&&!F.controller.signal.aborted&&H(O,G)}async function ae(k,B,F,O,G){const _=k.contentDocument;_.open(),_.write(nt(B));for(let Y=0;Y<B.pages.length;Y++)if(O.controller.signal.aborted||(_.write(at(B.pages[Y],G)),O.update("print",Y+1,B.pages.length),Y%Fe===Fe-1&&await Ge(),k!==a))return!1;return _.write("</body></html>"),_.close(),await Ge(),await Ot(_,G,O.controller.signal),!(!p(B,F)||k!==a)}function ge(){const k=s,B=O=>O&&!l&&k===s,F=O=>(!l&&k===s&&n.onError(O instanceof Error?O.message:"报表修改尚未完成","export"),!1);try{const O=n.beforeOutput?.()??!0;return typeof O=="boolean"?B(O):O.then(B,F)}catch(O){return F(O)}}function le(k){const B=ge();return typeof B=="boolean"?B?k():Promise.resolve():B.then(F=>F?k():void 0)}function x(k,B,F,O,G){O.finish(O.controller.signal.aborted?"cancelled":"failed"),G===a&&L(),p(B,F)&&!O.controller.signal.aborted&&n.onError(wn(k,n.getPrintMessages?.()),"print")}async function $(){if(r)return;const k=t.value;if(l||!k||k.pages.length===0)return;const B=o;r=!0;const F=mn("print",n.onTask);d=F,F.start(),n.onPrinting?.(!0),L(),a=document.createElement("iframe"),a.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(a);const O=a;try{if(!p(k,B)||F.controller.signal.aborted){L();return}const G=oe.snapshotPrintOptions(n.getPrintOptions?.());if(!await ae(O,k,B,F,G))return;O.contentWindow?.focus(),O.contentWindow?.print()}catch(G){x(G,k,B,F,O)}finally{F.finish(),d===F&&(d=null),r=!1,l||n.onPrinting?.(!1)}}function y(k,B,F){return{signal:F.controller.signal,onDiagnostic:O=>{p(k,B)&&!F.controller.signal.aborted&&n.onDiagnostic?.(O)},onProgress:(O,G)=>F.update("encode",O,G)}}function N(k,B,F){if(m?.plan===k&&m.epoch===B)return m.promise;const O=Promise.resolve().then(()=>{if(!p(k,B))throw new Error("报表已切换或卸载");return Q.waitForOutput(n.getPdfExporter()(k,G=>{p(k,B)&&n.onWarning?.(G)},F?y(k,B,F):void 0),F?.controller.signal)}).finally(()=>{m?.promise===O&&(m=null)});return m={plan:k,epoch:B,promise:O},O}async function V(){const k=t.value;if(l||!k||k.pages.length===0)return;const B=o;if(w?.plan===k&&w.epoch===B)return w.promise;const F=v(k,B,"PDF"),O=(async()=>{try{const G=c.get(F).run,_=await N(k,B,G);if(!p(k,B))return;Z(k,B,G,new Blob([_],{type:"application/pdf"}),"mach-report.pdf")}catch(G){c.get(F)?.run.finish("failed"),p(k,B)&&n.onError(G instanceof Error?`PDF 导出失败: ${G.message}`:"PDF 导出失败","pdf")}finally{C(F),w?.token===F&&(w=null)}})();return w={plan:k,epoch:B,promise:O,token:F},O}async function D(){const k=t.value;if(l||!k||k.pages.length===0)return;const B=o;if(b?.plan===k&&b.epoch===B)return b.promise;const F={...n.getXlsxOptions?.()},O=v(k,B,"Excel"),G=(async()=>{try{const{renderPlanToXlsx:_}=await import("@agile-team/mach-report/xlsx");if(!p(k,B))return;const Y=c.get(O).run,{buffer:ve,warnings:he}=await Q.waitForOutput(_(k,{...F,...y(k,B,Y)}),Y.controller.signal);if(!p(k,B)||(he.length>0&&n.onWarning?.(`Excel 导出有 ${he.length} 条提示:${he.slice(0,2).join(";")}`),!p(k,B)))return;Z(k,B,Y,new Blob([ve],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),"mach-report.xlsx")}catch(_){c.get(O)?.run.finish("failed"),p(k,B)&&n.onError(_ instanceof Error?`Excel 导出失败: ${_.message}`:"Excel 导出失败","export")}finally{C(O),b?.token===O&&(b=null)}})();return b={plan:k,epoch:B,promise:G,token:O},G}async function q(){const k=t.value;if(l||!k||k.pages.length===0)return;const B=o;if(h?.plan===k&&h.epoch===B)return h.promise;const F=v(k,B,"图片"),O=(async()=>{try{const G=c.get(F).run,{blobs:_}=await Q.waitForOutput(K.renderPlanToImages(k,{...y(k,B,G),dpr:Math.min(2,typeof devicePixelRatio=="number"?devicePixelRatio:1)}),G.controller.signal);if(!p(k,B))return;_.forEach((Y,ve)=>{Z(k,B,G,Y,_.length>1?`mach-report-page-${ve+1}.png`:"mach-report.png")})}catch(G){c.get(F)?.run.finish("failed"),p(k,B)&&n.onError(G instanceof Error?`图片导出失败: ${G.message}`:"图片导出失败","export")}finally{C(F),h?.token===F&&(h=null)}})();return h={plan:k,epoch:B,promise:O,token:F},O}async function z(k){const B=t.value;if(l||!B||!B.pages.length)return;const F=o,O=v(B,F,k==="word"?"Word":"HTML"),G=c.get(O).run;try{const _=[];for(const[he,$e]of B.pages.entries()){if(!p(B,F))return;_.push(at($e)),G.update("encode",he+1,B.pages.length),he%Fe===Fe-1&&await Ge()}if(!p(B,F))return;const Y=nt(B),ve=`${k==="word"?En(Y):Y}${_.join("")}</body></html>`;Z(B,F,G,new Blob([ve],{type:k==="word"?"application/msword;charset=utf-8":"text/html;charset=utf-8"}),k==="word"?"mach-report.doc":"mach-report.html")}catch(_){G.finish("failed"),p(B,F)&&n.onError(_ instanceof Error?`导出失败: ${_.message}`:"导出失败","export")}finally{C(O)}}async function U(){await z("word")}function W(){return le($)}function X(){return le(q)}function M(){return le(U)}async function ce(k){const B=t.value;if(!(l||!B||B.pages.length===0)){if(k==="pdf"){await V();return}if(k==="xlsx"||k==="excel"){await D();return}if(k==="png"||k==="image"){await q();return}if(k==="word"||k==="doc"){await U();return}if(k!=="html"){n.onError(`不支持的导出格式:${k}`,"export");return}await z("html")}}function Ce(k){return le(()=>ce(k))}function be(k){const B=t.value;if(l||!B||!B.pages.length){k.close();return}const F=o;g.set(k,{plan:B,epoch:F});const O=v(B,F,"PDF");N(B,F,c.get(O).run).then(G=>{if(!p(B,F)||k.closed){g.delete(k)&&k.close();return}const _=URL.createObjectURL(new Blob([G],{type:"application/pdf"}));setTimeout(()=>URL.revokeObjectURL(_),6e4);const Y=k.document;Y.title="PDF 预览",Y.documentElement.style.height="100%",Y.body.style.cssText="margin:0;height:100%;";const ve=Y.createElement("iframe");ve.title="PDF 预览",ve.style.cssText="display:block;width:100%;height:100%;border:0;",ve.src=_,Y.body.replaceChildren(ve),g.delete(k)}).catch(G=>{c.get(O)?.run.finish("failed"),k.close(),g.delete(k),p(B,F)&&n.onError(G instanceof Error?`PDF 预览失败: ${G.message}`:"PDF 预览失败","pdf")}).finally(()=>C(O))}function Ne(){if(l||!t.value?.pages.length)return;const k=globalThis.window.open("","_blank");if(!k){n.onError("浏览器拦截了弹窗,请允许弹窗后重试","pdf");return}const B=ge();if(typeof B=="boolean"){B?be(k):k.close();return}i.add(k),B.then(F=>{const O=i.delete(k);if(!F||!O||k.closed){k.close();return}be(k)})}return{print:W,exportAs:Ce,exportImages:X,exportWord:M,openPdfWindow:Ne,invalidatePending:I,cancel:I,releasePrintFrame:L,dispose:J}}const Sn="mrp-hit";function Sa(t){t.querySelectorAll(`mark.${Sn}`).forEach(a=>{const r=a.parentNode;if(r){for(;a.firstChild;)r.insertBefore(a.firstChild,a);a.remove(),r.normalize()}})}function Na(t,n){const a=n.trim();if(!a)return 0;const r=a.toLowerCase(),l=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(i){const c=i.parentElement;return!c||c.closest("mark")||/^(SCRIPT|STYLE)$/.test(c.tagName)?NodeFilter.FILTER_REJECT:(i.nodeValue??"").toLowerCase().includes(r)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),o=[];for(let i=l.nextNode();i;i=l.nextNode())o.push(i);let s=0;for(const i of o){const c=i.nodeValue??"",d=c.toLowerCase(),g=i.parentElement;if(!g)continue;const f=document.createDocumentFragment();let m=0,w=d.indexOf(r);for(;w>=0;){w>m&&f.appendChild(document.createTextNode(c.slice(m,w)));const b=document.createElement("mark");b.className=Sn,b.textContent=c.slice(w,w+a.length),f.appendChild(b),s++,m=w+a.length,w=d.indexOf(r,m)}m<c.length&&f.appendChild(document.createTextNode(c.slice(m))),g.replaceChild(f,i)}return s}const Ba=new Set(["line","rect","ellipse","chart"]);function*$a(t){for(const n of t.cells??[])for(const a of n??[])yield a?.text??"",yield*a?.children??[]}function*Va(t){if(hn.isRichText(t))for(const n of t.richParagraphs)for(const a of n.segments??[])yield(a.kind==="field"?a.field:a.text)??"";else t.lines?.length?yield*t.lines:yield t.text??""}function*Ia(t){const n=[t.values()];for(;n.length>0;){const a=n[n.length-1].next();if(a.done){n.pop();continue}const r=a.value;if(typeof r=="string"){yield r;continue}yield"",!hn.isImageBackedComponent(r)&&(r.kind==="text"?n.push(Va(r)):r.grid?n.push($a(r.grid)):Ba.has(r.kind)||(yield r.fallbackText??""))}}function*Pa(t){for(let n=0;n<t.pages.length;n++){for(const a of Ia(t.pages[n].components))yield{text:a,pageIndex:n};yield{text:"",pageIndex:n}}}function Ra(t,n){const a=t.toLowerCase();let r=0;for(let l=a.indexOf(n);l>=0;l=a.indexOf(n,l+n.length))r++;return r}function Da(t){const{plan:n,gotoPage:a,highlight:r,clearHighlights:l}=t,o=e.ref(!1),s=e.ref(""),i=e.ref(0),c=e.ref(0),d=e.ref(!1);let g=[];const f=e.computed(()=>{if(c.value===0)return null;const P=i.value;let I=0,T=g.length-1;for(;I<T;){const J=I+T>>>1;g[J].cumulative<=P?I=J+1:T=J}const L=g[I];return L?{pageIndex:L.pageIndex,occurrence:P-(g[I-1]?.cumulative??0)}:null});let m=null,w=null,b=0;function h(){b++,m&&clearTimeout(m),w&&clearTimeout(w),m=w=null,d.value=!1}function p(P){s.value=P,i.value=0,c.value=0,g=[],d.value=!1;const I=P.trim().toLowerCase(),T=n.value;if(!I||!T)return;d.value=!0;const L=b,J=Pa(T),H=[];let Z=0;function ae(){if(w=null,L!==b||T!==n.value)return;const ge=performance.now();let le=0;for(;le<5e3&&performance.now()-ge<4;){const x=J.next();if(x.done){g=H,c.value=Z,d.value=!1,g[0]&&a(g[0].pageIndex+1);return}const $=Ra(x.value.text,I);if($>0){Z+=$;const y=H[H.length-1];y?.pageIndex===x.value.pageIndex?y.cumulative=Z:H.push({pageIndex:x.value.pageIndex,cumulative:Z})}le++}w=setTimeout(ae,0)}ae()}function S(P){if(h(),s.value=P,i.value=c.value=0,g=[],!P.trim()){p("");return}d.value=!0,m=setTimeout(()=>{m=null,p(P)},Math.max(0,e.unref(t.debounceMs)??200))}function v(P){const I=c.value;if(I===0||d.value)return;i.value=(i.value+P+I)%I;const T=f.value;T&&a(T.pageIndex+1)}function C(){h(),s.value="",i.value=c.value=0,g=[]}return e.watch(n,C,{flush:"sync"}),e.onScopeDispose(C),{visible:o,query:s,matchIndex:i,matchCount:c,activeMatch:f,searching:d,toggle:()=>{o.value=!o.value},onInput:S,onNav:v,apply:P=>{s.value.trim()&&r(P,s.value.trim())},clear:P=>{l(P)},reset:C}}function Ma(t,n){const a=e.computed(()=>{if(t.value)return!0;if(typeof location>"u")return!1;try{return new URLSearchParams(location.search).get("mrp-debug")==="1"}catch{return!1}}),r=e.computed(()=>!a.value||!n.plan.value?0:Math.round(JSON.stringify(n.plan.value).length/1024)),l=e.computed(()=>!a.value||!n.plan.value?null:{pages:n.pageCount.value,window:`${n.windowRange.value.start}-${n.windowRange.value.end}`,zoom:`${Math.round(n.zoom.value*100)}%`,loadMs:`${n.loadMs.value}ms`,planKB:r.value});return{enabled:a,debugStats:l}}function Ta(t,n){const{thumbsRoot:a,visible:r,renderThumbCanvas:l}=n,o=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(()=>Oe.createPageWindowIndex(i.value.map(v=>v+20),8)),d=e.computed(()=>c.value.window(s.value,o.value,1)),g=e.computed(()=>{if(!r.value)return[];const{start:v,end:C}=d.value;return i.value.slice(v,C+1).map((P,I)=>({index:v+I,height:P}))});let f=0,m=0,w=!1;function b(){const v=a.value;v&&(o.value=v.scrollTop,s.value=v.clientHeight||800)}function h(){w||m||(m=requestAnimationFrame(()=>{m=0,b()}))}function p(){if(g.value,f&&cancelAnimationFrame(f),f=0,w||!r.value||!t.value||!a.value)return;b();const v=g.value,C=t.value,P=a.value;let I=0;function T(){if(f=0,!(w||!r.value||t.value!==C||a.value!==P)){for(let L=0;I<v.length&&L<2;L++,I++){const J=v[I].index,H=P.querySelector(`[data-thumb="${J+1}"]`);if(!H||H.childElementCount>0)continue;const Z=l(J);Z&&(Z.style.width="100%",Z.style.height="100%",Z.style.display="block",H.appendChild(Z))}I<v.length&&(f=requestAnimationFrame(T))}}f=requestAnimationFrame(T)}function S(){w=!0,f&&cancelAnimationFrame(f),m&&cancelAnimationFrame(m),f=m=0}return e.onScopeDispose(S),{schedule:p,destroy:S,onScroll:h,windowRange:d,visibleThumbs:g}}function Oa(){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 Fa(t){const n=e.ref(null),a=e.ref(null);function r(){n.value?.focus(),n.value?.select()}e.watch(t.visible,s=>{s&&e.nextTick(r)});function l(){t.close(),e.nextTick(()=>a.value?.focus())}function o(s){s.isComposing||s.keyCode===229||s.key!=="Enter"&&s.key!=="Escape"||(s.preventDefault(),s.stopPropagation(),s.key==="Escape"?l():t.navigate(s.shiftKey?-1:1))}return{input:n,toggle:a,focus:r,close:l,onKeydown:o}}const Aa=["disabled","aria-expanded"],za=["aria-label"],La=["aria-label","disabled","onClick"],qa={"aria-hidden":"true"},Ka=e.defineComponent({__name:"ReportExportMenu",props:{messages:{},formats:{},busy:{type:Boolean}},emits:["export"],setup(t,{emit:n}){const a=t,r=n,{opened:l,root:o,trigger:s,panel:i,close:c,onKeydown:d}=oe.usePopover(),g=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 f(b){a.busy||(r("export",b),c(!0))}function m(b){b.key!=="ArrowDown"&&b.key!=="ArrowUp"||(b.preventDefault(),l.value=!0,b.key==="ArrowUp"&&e.nextTick(()=>i.value?.querySelector("button:last-child")?.focus()))}function w(b){if(b.key==="Tab"){c();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(b.key))return;b.preventDefault(),b.stopPropagation();const p=[...i.value?.querySelectorAll("button:not(:disabled)")??[]],S=p.indexOf(document.activeElement),v=b.key==="Home"?0:b.key==="End"?p.length-1:(S+(b.key==="ArrowDown"?1:-1)+p.length)%p.length;p[v]?.focus()}return(b,h)=>g.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"root",ref:o,class:"mrp-export-menu",onKeydown:h[1]||(h[1]=(...p)=>e.unref(d)&&e.unref(d)(...p))},[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(l),onClick:h[0]||(h[0]=p=>l.value=!e.unref(l)),onKeydown:m},[e.createVNode(j._sfc_main,{name:"download"}),e.createTextVNode(e.toDisplayString(t.messages.exportMenu??"导出"),1),e.createVNode(j._sfc_main,{name:"chevron-down",size:12})],40,Aa),e.unref(l)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panel",ref:i,class:"mrp-export-panel",role:"menu","aria-label":t.messages.exportMenu??"导出",onKeydown:w},[e.createElementVNode("p",null,e.toDisplayString(t.messages.exportMenuDescription??"选择文件格式"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,p=>(e.openBlock(),e.createElementBlock("button",{key:p.format,type:"button",role:"menuitem",tabindex:"-1","aria-label":p.label,disabled:t.busy,onClick:S=>f(p.format)},[e.createVNode(j._sfc_main,{name:"file"}),e.createElementVNode("span",null,e.toDisplayString(p.label),1),e.createElementVNode("small",qa,e.toDisplayString(p.extension),1)],8,La))),128))],40,za)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)}}),ja=j._export_sfc(Ka,[["__scopeId","data-v-83a57a3c"]]),Wa=["aria-label"],Ha={class:"mrp-pageinfo","aria-live":"polite"},Ua={class:"mrp-page-buttons"},Ga=["aria-label","title","disabled"],Ja=["aria-label","title","disabled"],Ya=["aria-label","title","aria-invalid","disabled"],Za=["aria-label","disabled"],Xa={key:1,class:"mrp-page-error",role:"alert"},Qa=e.defineComponent({__name:"ReportPagination",props:{pageCount:{},currentPage:{},messages:{},busy:{type:Boolean}},emits:["goto"],setup(t,{emit:n}){const a=t,r=n,l=e.ref(String(a.currentPage)),o=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],()=>{l.value=String(a.currentPage),o.value=!1});function i(){if(a.busy)return;const c=l.value.trim(),d=Number(c);o.value=!/^\d+$/.test(c)||!Number.isSafeInteger(d)||d<1||d>a.pageCount,!o.value&&d!==a.currentPage&&r("goto",d)}return(c,d)=>t.pageCount>0?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mrp-pagination",role:"navigation","aria-label":t.messages.pagination??"报表分页"},[e.createElementVNode("span",Ha,e.toDisplayString(s.value),1),e.createElementVNode("div",Ua,[e.createElementVNode("button",{class:"mrp-nav",type:"button","aria-label":t.messages.prevPage,title:t.messages.prevPage,disabled:t.busy||t.currentPage<=1,onClick:d[0]||(d[0]=g=>r("goto",t.currentPage-1))},[e.createVNode(j._sfc_main,{name:"chevron-left"})],8,Ga),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:d[1]||(d[1]=g=>r("goto",t.currentPage+1))},[e.createVNode(j._sfc_main,{name:"chevron-right"})],8,Ja)]),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":d[2]||(d[2]=g=>l.value=g),type:"text",inputmode:"numeric",autocomplete:"off","aria-label":t.messages.pageJump??"跳至页",title:t.messages.pageJumpHint??"Enter 跳转","aria-invalid":o.value,disabled:t.busy,onInput:d[3]||(d[3]=g=>o.value=!1),onKeydown:d[4]||(d[4]=e.withKeys(g=>{l.value=String(t.currentPage),o.value=!1},["esc"]))},null,40,Ya),[[e.vModelText,l.value]])]),e.createElementVNode("button",{class:"mrp-nav",type:"submit","aria-label":t.messages.pageJump??"跳至页",disabled:t.busy},[e.createVNode(j._sfc_main,{name:"arrow-right",size:14})],8,Za)],32)):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createElementBlock("span",Xa,e.toDisplayString(t.messages.pageJumpInvalid??"请输入有效页码"),1)):e.createCommentVNode("",!0)],8,Wa)):e.createCommentVNode("",!0)}}),Ft=j._export_sfc(Qa,[["__scopeId","data-v-0db4fbd3"]]),_a=["aria-label"],eo={class:"mrp-title"},to=["aria-label"],no=["aria-label","aria-pressed"],ao=["aria-pressed"],oo=["aria-pressed"],ro=["aria-label"],lo=["aria-pressed"],so=["aria-pressed","onClick"],io=["aria-label"],co=["disabled"],uo=["disabled"],mo=["disabled"],fo=["aria-label","aria-expanded"],po=["aria-label"],go=["placeholder","aria-label","value"],vo=["aria-label"],ho={key:1,class:"mrp-search-count",role:"status","aria-live":"polite"},yo=["disabled","aria-label"],bo=["disabled","aria-label"],wo=["aria-label"],ko={class:"mrp-search-hint",role:"status"},xo=e.defineComponent({__name:"ReportToolbar",props:{pageCount:{},currentPage:{},zoomMode:{},zoom:{},showExport:{type:Boolean},showPrint:{type:Boolean},showPdfWindow:{type:Boolean},messages:{},search:{},thumbsVisible:{type:Boolean},showImport:{type:Boolean},showSearch:{type:Boolean,default:!0},showThumbnails:{type:Boolean,default:!0},showZoom:{type:Boolean,default:!0},exportFormats:{default:void 0},showSettings:{type:Boolean},settingsOpen:{type:Boolean},busy:{type:Boolean},showPagination:{type:Boolean}},emits:["goto","zoom","export","print","pdf-window","search-input","search-nav","search-toggle","thumbs-toggle","import-excel","settings-toggle"],setup(t,{expose:n,emit:a}){const r=t,l=a,o=Fa({visible:()=>r.search.visible,navigate:g=>{!r.search.searching&&r.search.matchCount>0&&l("search-nav",g)},close:()=>{r.search.visible&&l("search-toggle")}}),{input:s,toggle:i}=o;n({focusSearch:o.focus});function c(){const g=r.search.matchCount>0?r.search.matchIndex+1:0;return r.messages.matchInfo.replace("{cur}",String(g)).replace("{total}",String(r.search.matchCount))}function d(){l("search-input",""),o.focus()}return(g,f)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-toolbar",role:"toolbar","aria-label":t.messages.title},[e.createElementVNode("span",eo,[e.createVNode(j._sfc_main,{name:"file"}),e.createTextVNode(e.toDisplayString(t.messages.title),1)]),t.showPagination?(e.openBlock(),e.createBlock(Ft,{key:0,"page-count":t.pageCount,"current-page":t.currentPage,messages:t.messages,busy:t.busy,onGoto:f[0]||(f[0]=m=>l("goto",m))},null,8,["page-count","current-page","messages","busy"])):e.createCommentVNode("",!0),f[15]||(f[15]=e.createElementVNode("span",{class:"mrp-spacer"},null,-1)),t.showSearch!==!1?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-read-tools",role:"group","aria-label":t.messages.search??"内容搜索"},[e.createElementVNode("button",{ref_key:"searchToggleRef",ref:i,class:e.normalizeClass(["mrp-nav mrp-search-toggle mrp-icon-button",{"mrp-active":t.search.visible}]),type:"button",title:"Ctrl+F","aria-label":t.messages.search??t.messages.searchPlaceholder,"aria-pressed":t.search.visible,onClick:f[1]||(f[1]=m=>l("search-toggle"))},[e.createVNode(j._sfc_main,{name:"search"})],10,no),t.showThumbnails!==!1?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.thumbsVisible}]),type:"button","aria-pressed":t.thumbsVisible,onClick:f[2]||(f[2]=m=>l("thumbs-toggle"))},[e.createVNode(j._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,ao)):e.createCommentVNode("",!0)],8,to)):t.showThumbnails!==!1?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.thumbsVisible}]),type:"button","aria-pressed":t.thumbsVisible,onClick:f[3]||(f[3]=m=>l("thumbs-toggle"))},[e.createVNode(j._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,oo)):e.createCommentVNode("",!0),e.renderSlot(g.$slots,"navigation",{},void 0,!0),t.showZoom!==!1?(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-zoom-tools",role:"group","aria-label":t.messages.zoom??"缩放工具"},[e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="fit"}]),"aria-pressed":t.zoomMode==="fit",type:"button",onClick:f[4]||(f[4]=m=>l("zoom","fit"))},[e.createVNode(j._sfc_main,{name:"fit"}),e.createTextVNode(e.toDisplayString(t.messages.fitWidth),1)],10,lo),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList([100,150],m=>e.createElementVNode("button",{key:m,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="raw"&&Math.round(t.zoom*100)===m}]),"aria-pressed":t.zoomMode==="raw"&&Math.round(t.zoom*100)===m,type:"button",onClick:w=>l("zoom",m)},e.toDisplayString(m)+"%",11,so)),64))],8,ro)):e.createCommentVNode("",!0),t.showImport||t.showExport||t.showPrint||t.showPdfWindow?(e.openBlock(),e.createElementBlock("div",{key:4,class:"mrp-output-tools",role:"group","aria-label":t.messages.settingsExport??"导出与打印"},[t.showImport?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-nav mrp-import-excel",type:"button",disabled:t.busy,onClick:f[5]||(f[5]=m=>l("import-excel"))},[e.createVNode(j._sfc_main,{name:"upload"}),e.createTextVNode(e.toDisplayString(t.messages.importExcel??"导入 Excel 模板"),1)],8,co)):e.createCommentVNode("",!0),t.showExport?(e.openBlock(),e.createBlock(ja,{key:1,messages:t.messages,formats:t.exportFormats,busy:t.busy,onExport:f[6]||(f[6]=m=>l("export",m))},null,8,["messages","formats","busy"])):e.createCommentVNode("",!0),t.showPrint?(e.openBlock(),e.createElementBlock("button",{key:2,class:"mrp-nav",type:"button",disabled:t.busy,onClick:f[7]||(f[7]=m=>l("print"))},[e.createVNode(j._sfc_main,{name:"print"}),e.createTextVNode(e.toDisplayString(t.messages.print),1)],8,uo)):e.createCommentVNode("",!0),t.showPdfWindow?(e.openBlock(),e.createElementBlock("button",{key:3,class:"mrp-nav",type:"button",disabled:t.busy,onClick:f[8]||(f[8]=m=>l("pdf-window"))},[e.createVNode(j._sfc_main,{name:"external"}),e.createTextVNode(e.toDisplayString(t.messages.pdfWindow),1)],8,mo)):e.createCommentVNode("",!0)],8,io)):e.createCommentVNode("",!0),t.showSettings?(e.openBlock(),e.createElementBlock("button",{key:5,class:e.normalizeClass(["mrp-nav mrp-settings-toggle",{"mrp-active":t.settingsOpen}]),type:"button","aria-label":t.messages.settings??"设置","aria-haspopup":"dialog","aria-expanded":!!t.settingsOpen,onClick:f[9]||(f[9]=m=>l("settings-toggle"))},[e.createVNode(j._sfc_main,{name:"settings"}),e.createTextVNode(e.toDisplayString(t.messages.settings??"设置"),1)],10,fo)):e.createCommentVNode("",!0),t.showSearch!==!1&&t.search.visible?(e.openBlock(),e.createElementBlock("div",{key:6,class:"mrp-search-panel",role:"search","aria-label":t.messages.search??"内容搜索"},[e.createElementVNode("div",{class:e.normalizeClass(["mrp-search",{"mrp-search-no-results":t.search.query&&!t.search.searching&&!t.search.matchCount}])},[e.createVNode(j._sfc_main,{name:"search"}),e.createElementVNode("input",{ref_key:"searchInputRef",ref:s,class:"mrp-search-input",type:"text",autocomplete:"off",spellcheck:"false",placeholder:t.messages.searchPlaceholder,"aria-label":t.messages.search??t.messages.searchPlaceholder,value:t.search.query,onInput:f[10]||(f[10]=m=>l("search-input",m.target.value)),onKeydown:f[11]||(f[11]=(...m)=>e.unref(o).onKeydown&&e.unref(o).onKeydown(...m))},null,40,go),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:d},[e.createVNode(j._sfc_main,{name:"close",size:13})],8,vo)):e.createCommentVNode("",!0),t.search.query?(e.openBlock(),e.createElementBlock("span",ho,e.toDisplayString(t.search.searching?t.messages.searching??"搜索中…":c()),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"mrp-nav mrp-icon-button",type:"button",disabled:t.search.matchCount===0||t.search.searching,"aria-label":t.messages.prevSearchMatch??"上一个匹配",onClick:f[12]||(f[12]=m=>l("search-nav",-1))},[e.createVNode(j._sfc_main,{name:"chevron-up",size:14})],8,yo),e.createElementVNode("button",{class:"mrp-nav mrp-icon-button",type:"button",disabled:t.search.matchCount===0||t.search.searching,"aria-label":t.messages.nextSearchMatch??"下一个匹配",onClick:f[13]||(f[13]=m=>l("search-nav",1))},[e.createVNode(j._sfc_main,{name:"chevron-down",size:14})],8,bo),e.createElementVNode("button",{class:"mrp-nav mrp-search-close mrp-icon-button",type:"button","aria-label":t.messages.closeSearch??"关闭搜索",onClick:f[14]||(f[14]=(...m)=>e.unref(o).close&&e.unref(o).close(...m))},[e.createVNode(j._sfc_main,{name:"close",size:14})],8,wo)],2),e.createElementVNode("span",ko,e.toDisplayString(t.search.query&&!t.search.searching&&!t.search.matchCount?t.messages.searchNoMatches??"没有匹配内容":t.messages.searchHint??"Enter 下一个 · Shift+Enter 上一个"),1)],8,po)):e.createCommentVNode("",!0)],8,_a))}}),Nn=j._export_sfc(xo,[["__scopeId","data-v-5f4b04d8"]]);function Eo(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 r;for(const[l,o]of(t?.pages??[]).entries()){const s=Eo(o);if(!s){a.push(-1),r=void 0;continue}(!r||s.dataset!==r.dataset||s.rowIndex!==r.rowIndex||s.rowKey!==r.rowKey||s.copyIndex===0&&s.templatePageIndex===0)&&n.push({page:l+1,...s.rowKey===void 0?{}:{rowKey:s.rowKey}}),a.push(n.length-1),r=s}return{entries:n,pageRecords:a}}const So=["aria-label"],No={key:0,class:"mrp-record-arrows"},Bo=["aria-label","title","disabled"],$o=["aria-label","title","disabled"],Vo={class:"mrp-record-info","aria-live":"polite"},Io=["title"],Po=["title"],Ro=e.defineComponent({__name:"ReportRecordNavigation",props:{plan:{},currentPage:{},messages:{},busy:{type:Boolean}},emits:["goto"],setup(t,{emit:n}){const a=t,r=n,l=e.computed(()=>Co(a.plan)),o=e.computed(()=>l.value.pageRecords[a.currentPage-1]??-1),s=e.computed(()=>o.value>=0?l.value.entries[o.value]:void 0),i=e.computed(()=>(a.messages.recordInfo??"记录 {cur} / {total}").replace("{cur}",String(o.value+1)).replace("{total}",String(l.value.entries.length))),c=e.computed(()=>{const g=a.plan?.pages[a.currentPage-1]?.meta?.title;return typeof g=="string"?g:""});function d(g){const f=l.value.entries[o.value+g];!a.busy&&o.value>=0&&f&&r("goto",f.page)}return(g,f)=>s.value?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mrp-record-navigation","aria-label":t.messages.recordNavigation??"标签记录"},[l.value.entries.length>1?(e.openBlock(),e.createElementBlock("div",No,[e.createElementVNode("button",{type:"button","aria-label":t.messages.prevRecord??"上一条记录",title:t.messages.prevRecord??"上一条记录",disabled:t.busy||o.value<=0,onClick:f[0]||(f[0]=m=>d(-1))},[e.createVNode(j._sfc_main,{name:"chevron-left",size:13})],8,Bo),e.createElementVNode("button",{type:"button","aria-label":t.messages.nextRecord??"下一条记录",title:t.messages.nextRecord??"下一条记录",disabled:t.busy||o.value>=l.value.entries.length-1,onClick:f[1]||(f[1]=m=>d(1))},[e.createVNode(j._sfc_main,{name:"chevron-right",size:13})],8,$o)])):e.createCommentVNode("",!0),e.createElementVNode("span",Vo,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,Io)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:2,class:"mrp-record-face",title:c.value},e.toDisplayString(c.value),9,Po)):e.createCommentVNode("",!0)],8,So)):e.createCommentVNode("",!0)}}),Do=j._export_sfc(Ro,[["__scopeId","data-v-aa94fa14"]]),Mo=["aria-label","aria-busy"],To={class:"mrp-calculation-heading"},Oo={class:"mrp-calculation-controls"},Fo=["aria-label","value","disabled"],Ao=["value"],zo={class:"mrp-calculation-precision"},Lo=["aria-label","value","disabled"],qo={key:0,class:"mrp-calculation-expression"},Ko=["aria-label","value","disabled"],jo={class:"mrp-calculation-actions"},Wo={key:1,class:"mrp-calculation-diagnostic",role:"alert"},Ho={key:2,class:"mrp-calculation-result",role:"status","aria-live":"polite"},Uo={key:0},Go={key:3,class:"mrp-calculation-empty"},Jo={class:"mrp-calculation-local"},Yo=e.defineComponent({__name:"ReportCalculationPanel",props:{state:{},messages:{}},setup(t){const n=t,a=`mrp-calculation-expression-hint-${e.getCurrentInstance()?.uid??0}`,r=e.computed(()=>[["sum",n.messages.calculationSum],["average",n.messages.calculationAverage],["min",n.messages.calculationMin],["max",n.messages.calculationMax],["count",n.messages.calculationCount],["median",n.messages.calculationMedian],["expression",n.messages.calculationCustom]]),l=e.computed(()=>{const o=n.state.error.value;if(!o)return"";const s=n.messages;return{selection:s.calculationErrorSelection,limit:s.calculationErrorLimit,expression:s.calculationErrorExpression,division:s.calculationErrorDivision,overflow:s.calculationErrorOverflow,precision:s.calculationErrorPrecision}[o]});return(o,s)=>(e.openBlock(),e.createElementBlock("section",{class:"mrp-calculation","aria-label":t.messages.calculationTitle,"aria-busy":t.state.busy.value},[e.createElementVNode("header",To,[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",Oo,[e.createElementVNode("label",null,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationFormula),1),e.createElementVNode("select",{"aria-label":t.messages.calculationFormula,value:t.state.operation.value,onChange:s[0]||(s[0]=i=>t.state.setOperation(i.target.value)),disabled:t.state.busy.value},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,([i,c])=>(e.openBlock(),e.createElementBlock("option",{key:i,value:i},e.toDisplayString(c),9,Ao))),128))],40,Fo)]),e.createElementVNode("label",zo,[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,Lo)])]),t.state.operation.value==="expression"?(e.openBlock(),e.createElementBlock("label",qo,[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,Ko),e.createElementVNode("small",{id:a},e.toDisplayString(t.messages.calculationExpressionHint),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",jo,[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))]),l.value?(e.openBlock(),e.createElementBlock("p",Wo,e.toDisplayString(l.value),1)):t.state.result.value?(e.openBlock(),e.createElementBlock("div",Ho,[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",Uo,e.toDisplayString(t.messages.calculationEmpty),1)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",Go,e.toDisplayString(t.messages.calculationNoSelection),1)),e.createElementVNode("p",Jo,e.toDisplayString(t.messages.calculationLocal),1)],8,Mo))}}),Zo=j._export_sfc(Yo,[["__scopeId","data-v-ee359251"]]);function Xo(t){const n=e.ref("sum"),a=e.ref("SUM / COUNT"),r=e.ref(2),l=e.ref(!1),o=e.shallowRef(null),s=e.ref(null);let i=null,c=0;function d(){c++,i?.abort(),i=null,l.value=!1}function g(){d(),o.value=null,s.value=null}async function f(){if(g(),!t.enabled())return;const h=t.plan.value,p=t.selection.value;if(!h||!p){s.value="selection";return}const S=++c,v=new AbortController;i=v,l.value=!0;try{const C=await K.calculateReportSelection(h,p,{operation:n.value,expression:a.value,precision:r.value,signal:v.signal});S===c&&t.plan.value===h&&t.selection.value===p&&t.enabled()&&(o.value=C)}catch(C){S===c&&!v.signal.aborted&&(s.value=C instanceof K.ReportCalculationError?C.code:"expression")}finally{S===c&&(l.value=!1,i=null)}}e.watch([t.plan,t.selection,()=>t.enabled(),n,a,r],g,{flush:"sync"}),e.onScopeDispose(g);function m(h){n.value=h}function w(h){a.value=h}function b(h){r.value=h}return{operation:n,expression:a,precision:r,busy:l,result:o,error:s,run:f,cancel:d,clear:g,setOperation:m,setExpression:w,setPrecision:b}}const Qo=["aria-label"],_o={class:"mrp-settings-header"},er=["aria-label"],tr=["aria-label"],nr=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],ar={class:"mrp-settings-content"},or=["id","aria-labelledby","hidden"],rr={key:0},lr={class:"mrp-settings-option"},sr=["checked","disabled"],ir={class:"mrp-settings-option"},cr=["value","disabled"],ur=["id","aria-labelledby","hidden"],dr={key:0},mr=["checked","disabled","onChange"],fr={key:0,class:"mrp-settings-note"},pr={key:1,class:"mrp-settings-note"},gr=["id","aria-labelledby","hidden"],vr={class:"mrp-settings-intro"},hr={class:"mrp-settings-option mrp-settings-feature"},yr=["id"],br=["aria-label","aria-describedby","checked","disabled"],wr=["disabled"],kr=e.defineComponent({__name:"ReportSettings",props:{available:{},enabled:{},messages:{},persistedEditing:{type:Boolean},busy:{type:Boolean},interaction:{},section:{}},emits:["change","reset","close","interaction","section"],setup(t,{emit:n}){const a=t,r=n,l=e.ref(null),o=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(h,p){const v={ArrowRight:(p+1)%3,ArrowLeft:(p+2)%3,Home:0,End:2}[h.key];v!==void 0&&(h.preventDefault(),r("section",i.value[v].key),l.value?.querySelector("#"+s+"-tab-"+i.value[v].key)?.focus())}const d=e.ref(null);let g=null;const f=e.computed(()=>[{label:a.messages.settingsDisplay,tools:[["search",a.messages.search],["thumbnails",a.messages.thumbnails],["zoom",a.messages.zoom]]},{label:a.messages.settingsExport,tools:[["html",a.messages.exportHtml],["pdf",a.messages.exportPdf],["xlsx",a.messages.exportExcel],["png",a.messages.exportImage],["word",a.messages.exportWord],["print",a.messages.print],["pdfWindow",a.messages.pdfWindow]]},{label:a.messages.settingsData,tools:[["editing",a.messages.editCell],["import",a.messages.importExcel]]}].map(h=>({...h,tools:h.tools.map(([p,S])=>({key:p,label:S}))})));function m(h,p){const S=h.target,v=S.checked;S.checked=a.enabled[p],r("change",p,v)}function w(h){return!l.value||h.defaultPrevented?!1:h.target instanceof Node&&l.value.contains(h.target)?!0:h.target instanceof Element&&h.target.closest('[role="dialog"],dialog[open]')?!1:!Array.from(document.querySelectorAll('[aria-modal="true"],dialog[open]')).some(p=>p!==l.value&&!l.value.contains(p))}function b(h){if(!w(h))return;if(h.key==="Escape"){h.preventDefault(),h.stopPropagation(),r("close");return}if(h.key!=="Tab")return;const p=Array.from(l.value?.querySelectorAll("a[href],button:not(:disabled),input:not(:disabled),textarea:not(:disabled),select:not(:disabled),[tabindex='0']")??[]).filter(P=>!P.closest("[hidden]")&&P.tabIndex!==-1),S=p?.[0],v=p?.[p.length-1];(!l.value?.contains(document.activeElement)||h.shiftKey&&document.activeElement===S||!h.shiftKey&&document.activeElement===v)&&(h.preventDefault(),h.stopPropagation(),(h.shiftKey?v:S)?.focus())}return e.onMounted(()=>{const h=l.value?.closest(".mach-report-preview")?.querySelector(".mrp-settings-toggle"),p=document.activeElement;g=p instanceof HTMLElement&&p!==document.body&&!l.value?.contains(p)?p:h??null,d.value?.focus(),document.addEventListener("keydown",b)}),e.onUnmounted(()=>{document.removeEventListener("keydown",b),g?.isConnected&&g.focus()}),(h,p)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-settings-backdrop",onClick:p[5]||(p[5]=e.withModifiers(S=>h.$emit("close"),["self"]))},[e.createElementVNode("section",{ref_key:"panel",ref:l,class:"mrp-settings-panel",role:"dialog","aria-modal":"true","aria-label":t.messages.settings},[e.createElementVNode("header",_o,[e.createElementVNode("div",null,[p[6]||(p[6]=e.createElementVNode("span",{class:"mrp-settings-eyebrow"},"MACH REPORT",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.messages.settings),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.settingsLocal),1)]),e.createElementVNode("button",{ref_key:"closeButton",ref:d,class:"mrp-settings-close",type:"button","aria-label":t.messages.settingsClose,onClick:p[0]||(p[0]=S=>h.$emit("close"))},[...p[7]||(p[7]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"m5 5 10 10M15 5 5 15",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round"})],-1)])],8,er)]),e.createElementVNode("div",{class:"mrp-settings-tabs",role:"tablist","aria-label":t.messages.settings},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(S,v)=>(e.openBlock(),e.createElementBlock("button",{id:s+"-tab-"+S.key,key:S.key,type:"button",role:"tab","aria-selected":o.value===S.key,"aria-controls":s+"-panel-"+S.key,tabindex:o.value===S.key?0:-1,onClick:C=>h.$emit("section",S.key),onKeydown:C=>c(C,v)},e.toDisplayString(S.label),41,nr))),128))],8,tr),e.createElementVNode("div",ar,[e.createElementVNode("section",{id:s+"-panel-general",role:"tabpanel","aria-labelledby":s+"-tab-general",hidden:o.value!=="general"},[e.renderSlot(h.$slots,"default",{},void 0,!0),t.interaction?(e.openBlock(),e.createElementBlock("fieldset",rr,[e.createElementVNode("legend",null,e.toDisplayString(t.messages.settingsPanes),1),e.createElementVNode("label",lr,[e.createElementVNode("span",null,e.toDisplayString(t.messages.freezeHeaders),1),e.createElementVNode("input",{type:"checkbox",checked:t.interaction.freezeHeaders,disabled:t.busy,onChange:p[1]||(p[1]=S=>h.$emit("interaction",{freezeHeaders:S.target.checked}))},null,40,sr)]),e.createElementVNode("label",ir,[e.createElementVNode("span",null,e.toDisplayString(t.messages.frozenColumns),1),e.createElementVNode("input",{class:"mrp-frozen-count",type:"number",min:"0",max:"20",value:t.interaction.frozenColumns??0,disabled:t.busy,onChange:p[2]||(p[2]=S=>h.$emit("interaction",{frozenColumns:Math.max(0,Math.min(20,Number(S.target.value)||0))}))},null,40,cr)])])):e.createCommentVNode("",!0)],8,or),e.createElementVNode("section",{id:s+"-panel-tools",role:"tabpanel","aria-labelledby":s+"-tab-tools",hidden:o.value!=="tools"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,S=>(e.openBlock(),e.createElementBlock("fieldset",{key:S.label},[e.createElementVNode("legend",null,e.toDisplayString(S.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.tools,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",dr,e.toDisplayString(t.messages.settingsUnavailable),1))]),e.createElementVNode("input",{type:"checkbox",checked:t.enabled[v.key],disabled:t.busy||!t.available[v.key],onChange:C=>m(C,v.key)},null,40,mr)],2))),128))]))),128)),t.available.editing?(e.openBlock(),e.createElementBlock("p",fr,e.toDisplayString(t.persistedEditing?t.messages.editingSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.available.import?(e.openBlock(),e.createElementBlock("p",pr,e.toDisplayString(t.messages.importLocal),1)):e.createCommentVNode("",!0)],8,ur),e.createElementVNode("section",{id:s+"-panel-advanced",role:"tabpanel","aria-labelledby":s+"-tab-advanced",hidden:o.value!=="advanced"},[e.createElementVNode("p",vr,e.toDisplayString(t.messages.settingsAdvancedDescription),1),e.createElementVNode("label",hr,[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,yr)]),e.createElementVNode("input",{type:"checkbox","aria-label":t.messages.settingsCalculations,"aria-describedby":s+"-calculation-description",checked:t.interaction?.calculations===!0,disabled:t.busy,onChange:p[3]||(p[3]=S=>h.$emit("interaction",{calculations:S.target.checked}))},null,40,br)]),t.interaction?.calculations?e.renderSlot(h.$slots,"advanced",{},void 0,!0,0):e.createCommentVNode("",!0)],8,gr)]),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:t.busy,onClick:p[4]||(p[4]=S=>h.$emit("reset"))},e.toDisplayString(t.messages.settingsReset),9,wr),e.createElementVNode("span",null,e.toDisplayString(t.messages.settingsLocal),1)])],8,Qo)]))}}),xr=j._export_sfc(kr,[["__scopeId","data-v-36723612"]]),Er={class:"mrp-empty",role:"status"},Cr={key:0},Sr=e.defineComponent({__name:"ReportEmpty",props:{title:{},description:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("div",Er,[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",Cr,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)]))}}),fn=j._export_sfc(Sr,[["__scopeId","data-v-3e16b87e"]]),Nr=["aria-label"],Br=e.defineComponent({__name:"ReportDiscardDialog",props:{messages:{}},emits:["answer"],setup(t,{emit:n}){const a=n,r=e.ref(null),l=e.ref(null);let o=null;function s(i){i.key==="Escape"&&(i.preventDefault(),a("answer",!1)),i.key==="Tab"&&(i.preventDefault(),document.activeElement===r.value?l.value?.focus():r.value?.focus())}return e.onMounted(()=>{o=document.activeElement instanceof HTMLElement?document.activeElement:null,r.value?.focus()}),e.onUnmounted(()=>{o?.isConnected&&o.focus()}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-discard-backdrop",onKeydown:s,onClick:c[2]||(c[2]=e.withModifiers(d=>a("answer",!1),["self"]))},[e.createElementVNode("section",{class:"mrp-discard-dialog",role:"alertdialog","aria-modal":"true","aria-label":t.messages.discardTitle},[e.createElementVNode("strong",null,e.toDisplayString(t.messages.discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.discardDescription),1),e.createElementVNode("footer",null,[e.createElementVNode("button",{ref_key:"keep",ref:r,type:"button",onClick:c[0]||(c[0]=d=>a("answer",!1))},e.toDisplayString(t.messages.discardKeep),513),e.createElementVNode("button",{ref_key:"discard",ref:l,type:"button",onClick:c[1]||(c[1]=d=>a("answer",!0))},e.toDisplayString(t.messages.discardProceed),513)])],8,Nr)],32))}}),$r=j._export_sfc(Br,[["__scopeId","data-v-f7590294"]]),Vr={key:0,class:"mrp-task-status",role:"status","aria-live":"polite"},Ir={key:0},Pr=["value","max","aria-label"],Rr=e.defineComponent({__name:"ReportTaskStatus",props:{task:{},messages:{}},emits:["cancel"],setup(t){const n=t,a=e.computed(()=>({query:n.messages.taskQuery,validate:n.messages.taskValidate,layout:n.messages.taskLayout,assets:n.messages.taskAssets,import:n.messages.importing,encode:n.messages.taskEncode,download:n.messages.taskDownload,print:n.messages.taskPrint})),r=e.computed(()=>n.task?.total===void 0?"":`${n.task.completed??0} / ${n.task.total}`);return(l,o)=>t.task&&(t.task.status==="running"||t.task.status==="cancelled")?(e.openBlock(),e.createElementBlock("div",Vr,[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",Ir,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0)]),t.task.status==="running"&&t.task.total!==void 0?(e.openBlock(),e.createElementBlock("progress",{key:0,value:t.task.completed??0,max:t.task.total,"aria-label":a.value[t.task.stage]},null,8,Pr)):e.createCommentVNode("",!0),t.task.status==="running"&&t.task.cancellable?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:o[0]||(o[0]=s=>l.$emit("cancel"))},e.toDisplayString(t.messages.taskCancel),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),Dr=j._export_sfc(Rr,[["__scopeId","data-v-657ac599"]]),Mr={key:0,class:"mrp-diagnostics"},Tr=["aria-label","placeholder"],Or={key:0},Fr=["onClick"],Ar={key:0},zr=e.defineComponent({__name:"ReportDiagnostics",props:{entries:{},messages:{}},emits:["locate"],setup(t){const n=t,a=e.ref(""),r=e.computed(()=>({"unsupported-style":n.messages.diagnosticUnsupportedStyle,"missing-image":n.messages.diagnosticMissingImage,"unsupported-component":n.messages.diagnosticUnsupported,"unsupported-image-format":n.messages.diagnosticImageFormat,"rich-text-flattened":n.messages.diagnosticRichText,"nested-components-omitted":n.messages.diagnosticNested,"async-image-required":n.messages.diagnosticImageAsync,"image-decode-failed":n.messages.diagnosticImageDecode,"asset-render-failed":n.messages.diagnosticAssetFailed,"asset-budget-exceeded":n.messages.diagnosticAssetBudget})),l=e.computed(()=>{const i=a.value.trim().toLocaleLowerCase();return i?n.entries.filter(c=>`${c.code} ${c.message} ${r.value[c.code]??""} ${c.path??""} ${s(c)} ${c.format??""}`.toLocaleLowerCase().includes(i)):n.entries}),o=e.computed(()=>l.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",Mr,[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]=d=>a.value=d),type:"search","aria-label":t.messages.diagnosticsSearch,placeholder:t.messages.diagnosticsSearch},null,8,Tr),[[e.vModelText,a.value]]),e.createElementVNode("ol",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(d,g)=>(e.openBlock(),e.createElementBlock("li",{key:g},[e.createElementVNode("div",null,[e.createElementVNode("b",null,e.toDisplayString(d.format?.toUpperCase()??d.severity)+" · "+e.toDisplayString(d.code),1),e.createElementVNode("p",null,e.toDisplayString(r.value[d.code]??d.message),1),r.value[d.code]?(e.openBlock(),e.createElementBlock("details",Or,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.diagnosticsDetails),1),e.createTextVNode(e.toDisplayString(d.message),1)])):e.createCommentVNode("",!0),e.createElementVNode("small",null,e.toDisplayString(s(d)),1)]),d.pageIndex!==void 0?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:f=>i.$emit("locate",d)},e.toDisplayString(t.messages.diagnosticsLocate),9,Fr)):e.createCommentVNode("",!0)]))),128))]),l.value.length>o.value.length?(e.openBlock(),e.createElementBlock("small",Ar,e.toDisplayString((t.messages.diagnosticsMore??"").replace("{count}",String(l.value.length))),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),Lr=j._export_sfc(zr,[["__scopeId","data-v-3b7804ce"]]),qr={key:0,class:"mrp-data-explanation"},Kr={class:"mrp-data-content"},jr=["aria-label","placeholder"],Wr={class:"mrp-data-state"},Hr=["disabled","onClick"],Ur={key:0,role:"status"},Gr={key:1},Jr=e.defineComponent({__name:"ReportDataExplanation",props:{entries:{},messages:{},busy:{type:Boolean}},emits:["locate"],setup(t,{emit:n}){const a=t,r=n,l=e.ref(""),o=e.computed(()=>({"missing-source":a.messages.dataMissingSource,"not-applicable":a.messages.dataNotApplicable,"not-calculable":a.messages.dataNotCalculable})),s=e.computed(()=>{const c=l.value.toLocaleLowerCase().trim().split(/\s+/).filter(Boolean);return a.entries.filter(d=>c.every(g=>`${d.message} ${d.target?.datasetId} ${d.target?.rowKey??""} ${d.target?.field} ${o.value[d.valueState]??""}`.toLocaleLowerCase().includes(g)))}),i=e.computed(()=>s.value.slice(0,100));return(c,d)=>t.entries.length?(e.openBlock(),e.createElementBlock("details",qr,[e.createElementVNode("summary",null,[e.createVNode(j._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(j._sfc_main,{name:"chevron-down",size:12})]),e.createElementVNode("div",Kr,[e.createElementVNode("label",null,[e.createVNode(j._sfc_main,{name:"search",size:15}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=g=>l.value=g),type:"search","aria-label":t.messages.dataExplanationSearch,placeholder:t.messages.dataExplanationSearch},null,8,jr),[[e.vModelText,l.value]])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(g,f)=>(e.openBlock(),e.createElementBlock("li",{key:f},[e.createElementVNode("div",null,[e.createElementVNode("span",Wr,e.toDisplayString(o.value[g.valueState]),1),e.createElementVNode("code",null,[e.createTextVNode(e.toDisplayString(g.target?.datasetId)+" · "+e.toDisplayString(g.target?.field)+" ",1),g.target?.rowKey!==void 0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" · "+e.toDisplayString(g.target.rowKey),1)],64)):e.createCommentVNode("",!0)]),e.createElementVNode("p",null,e.toDisplayString(g.message),1)]),g.target?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.busy,onClick:m=>r("locate",g.target)},[e.createTextVNode(e.toDisplayString(t.messages.diagnosticsLocate),1),e.createVNode(j._sfc_main,{name:"arrow-right",size:13})],8,Hr)):e.createCommentVNode("",!0)]))),128))]),s.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Ur,e.toDisplayString(t.messages.dataExplanationEmpty),1)),s.value.length>i.value.length?(e.openBlock(),e.createElementBlock("small",Gr,e.toDisplayString((t.messages.diagnosticsMore??"").replace("{count}",String(s.value.length))),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)}}),Yr=j._export_sfc(Jr,[["__scopeId","data-v-cb0adb4c"]]),Zr=["aria-label"],Xr=["disabled","title","onClick"],Qr={key:0,role:"status"},_r={key:1,role:"alert"},el={key:2,role:"status"},tl=e.defineComponent({__name:"ReportDrillActions",props:{entries:{},pending:{type:Boolean},busy:{type:Boolean},error:{},messages:{}},emits:["open"],setup(t,{emit:n}){const a=n;return(r,l)=>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,o=>(e.openBlock(),e.createElementBlock("button",{key:o.action.id,type:"button",disabled:t.busy||t.pending||!!o.reason,title:o.reason,onClick:s=>a("open",o.action.id)},[e.createTextVNode(e.toDisplayString(o.action.label),1),e.createVNode(j._sfc_main,{name:"arrow-right",size:13})],8,Xr))),128)),t.pending?(e.openBlock(),e.createElementBlock("small",Qr,e.toDisplayString(t.messages.drillOpening),1)):t.error?(e.openBlock(),e.createElementBlock("small",_r,e.toDisplayString(t.error),1)):t.entries.every(o=>o.reason)?(e.openBlock(),e.createElementBlock("small",el,e.toDisplayString(t.messages.drillMissingValue),1)):e.createCommentVNode("",!0)],8,Zr)):e.createCommentVNode("",!0)}}),nl=j._export_sfc(tl,[["__scopeId","data-v-f9ff8c13"]]);function al(t){const n=e.ref(!1),a=e.ref("");let r;const l=e.computed(()=>{const i=t.plan.value,c=t.selection.value?.focus,d=t.options();if(!i||!c||!d)return[];try{return Oe.matchReportDrillActions(i,c,d.actions).map(g=>{try{return Oe.createReportDrillRequest(i,c,g,t.params()),{action:g}}catch{return{action:g,reason:t.messages().drillMissingValue}}})}catch{return[]}});function o(){r?.abort(),r=void 0,n.value=!1,a.value=""}e.watch([t.plan,()=>t.options()],o),e.onScopeDispose(o);async function s(i){if(n.value||t.busy())return;const c=t.plan.value,d=t.selection.value?.focus,g=t.options(),f=g?.actions.find(w=>w.id===i);if(!c||!d||!g||!f)return;const m=new AbortController;r=m,n.value=!0,a.value="";try{const w=Oe.createReportDrillRequest(c,d,f,t.params()),b=Object.freeze(t.view());if(!await t.beforeOpen()||m.signal.aborted||t.plan.value!==c)return;await Q.waitForOutput(g.open({...w,signal:m.signal,view:b}),m.signal)}catch(w){m.signal.aborted||(a.value=w instanceof Oe.ReportDrillError?t.messages().drillMissingValue??"":t.messages().drillFailed??"")}finally{r===m&&(n.value=!1,r=void 0)}}return{entries:l,pending:n,error:a,open:s}}const ol={class:"mrp-print-settings"},rl=["value","disabled"],ll=["value","disabled"],sl=["disabled"],il=e.defineComponent({__name:"ReportPrintSettings",props:{value:{},messages:{},busy:{type:Boolean},canTest:{type:Boolean}},emits:["change","test"],setup(t,{emit:n}){const a=t,r=n;function l(o,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[o]??0);return}r("change",{...a.value,[o]:c})}return(o,s)=>(e.openBlock(),e.createElementBlock("details",ol,[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=>l("offsetXmm",i))},null,40,rl)]),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=>l("offsetYmm",i))},null,40,ll)])]),e.createElementVNode("button",{type:"button",disabled:t.busy||!t.canTest,onClick:s[2]||(s[2]=i=>r("test"))},e.toDisplayString(t.messages.printCalibrationTest),9,sl)]))}}),cl=j._export_sfc(il,[["__scopeId","data-v-35a0f5ec"]]);function Bn(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=[],r=Math.min(10,t/5),l=Math.min(10,n/5),o=Math.min(50,t-r*2,n-l*2);a.push({kind:"rect",leftMm:r,topMm:l,widthMm:o,heightMm:o,style:{borderColor:"#255c8c",lineWidthPt:.5}});for(let s=0;s<=o;s+=5)a.push({kind:"line",leftMm:r+s,topMm:l,widthMm:0,heightMm:s%10?2:3,style:{lineColor:"#255c8c",lineWidthPt:.5}}),a.push({kind:"line",leftMm:r,topMm:l+s,widthMm:s%10?2:3,heightMm:0,style:{lineColor:"#255c8c",lineWidthPt:.5}});return a.push({kind:"text",text:`${o} x ${o} mm`,leftMm:r+4,topMm:l+o/2-2,widthMm:o-8,heightMm:4,style:{fontSize:7,align:"center",color:"#255c8c"}}),{schemaVersion:"print-calibration",pages:[{pageWidthMm:t,pageHeightMm:n,components:a}]}}const pn=new Map,Te=new Map,ul=15e3;function It(t,n){return Object.assign(new Error(t),{cause:n})}function Ue(t,n){return`PDF 字体 ${JSON.stringify(t)}:${n}。请部署支持报表文字的字体文件,并将 pdfFontUrl 配置为可访问的字体 URL;西文报表可设为空串`}function ot(t){if(t?.reason instanceof Error&&t.reason.name==="AbortError")return t.reason;const n=It("PDF 字体检查已取消",t?.reason);return n.name="AbortError",n}async function dl(t,n){let a=!1;const r=setTimeout(()=>{a=!0,n.abort()},ul);try{const l=await fetch(t,{method:"HEAD",signal:n.signal});if(n.signal.aborted)throw ot(n.signal);if(l.status===405||l.status===501||l.type==="opaque")return{status:"unverified",fontUrl:t,message:`PDF 字体 ${JSON.stringify(t)} 无法通过 HEAD 检查验证;仍可尝试导出,届时会加载并校验字体`};if(!l.ok){const s=new Error(`字体请求返回 HTTP ${l.status}`);return{status:"error",fontUrl:t,message:Ue(t,s.message),cause:s}}const o=l.headers.get("content-type")??"";if(/text\/html|application\/xhtml\+xml/i.test(o)){const s=new Error("字体 URL 返回 HTML 页面(可能是 SPA 路由回退),不是字体文件");return{status:"error",fontUrl:t,message:Ue(t,s.message),cause:s}}if(/^text\//i.test(o)||/(?:\/|\+)json(?:\s*;|$)/i.test(o)){const s=new Error(`字体 URL 返回 ${o} 文本响应,不是字体文件`);return{status:"error",fontUrl:t,message:Ue(t,s.message),cause:s}}return{status:"available",fontUrl:t,message:"PDF 字体资源可达;文字覆盖范围将在实际导出时校验"}}catch(l){if(n.signal.aborted&&!a)throw ot(n.signal);return{status:"error",fontUrl:t,message:Ue(t,a?"字体检查超时,请检查网络或字体服务":"字体检查失败,请检查网络、字体服务或跨域访问配置"),cause:l}}finally{clearTimeout(r)}}function ml(t,n){if(n?.aborted)return Promise.reject(ot(n));if(!t)return Promise.resolve({status:"disabled",fontUrl:t,message:"已停用自定义 PDF 字体;内置字体用于西文,其他文字会在导出时校验"});const a=pn.get(t);if(a)return Promise.resolve(a);let r=Te.get(t);if(!r){const o=new AbortController;r={controller:o,promise:dl(t,o),subscribers:0};const s=r;Te.set(t,s),s.promise=s.promise.then(i=>(!o.signal.aborted&&i.status==="available"&&pn.set(t,i),i)).finally(()=>{Te.get(t)===s&&Te.delete(t)})}const l=r;return l.subscribers++,new Promise((o,s)=>{let i=!1;const c=()=>i?!1:(i=!0,l.subscribers--,n?.removeEventListener("abort",d),!0),d=()=>{c()&&(l.subscribers===0&&(Te.get(t)===l&&Te.delete(t),l.controller.abort()),s(ot(n)))};n?.addEventListener("abort",d,{once:!0}),l.promise.then(g=>{c()&&o(g)},g=>{c()&&s(g)}),n?.aborted&&d()})}function $n(t={fontUrl:"/simhei.ttf"}){let n=null;const a=async(r,l,o={})=>{Q.assertOutputActive(o.signal),n||(n=await import("@agile-team/mach-report/pdf")),Q.assertOutputActive(o.signal);let s=null;if(t.fontUrl)try{if(s=await Q.waitForOutput(n.loadFontWithCache(t.fontUrl,{strict:!0,signal:o.signal}),o.signal),!s?.byteLength)throw new Error("字体文件为空或加载失败")}catch(m){const w=m instanceof Error?m.message:String(m);throw It(Ue(t.fontUrl,w),m)}let i;try{Q.assertOutputActive(o.signal),i=await n.renderPlanToPdf(r,{...o,...s?{customFontBytes:s}:{}})}catch(m){if(!s)throw m;const w=m instanceof Error?m.message:String(m);throw It(`PDF 生成失败:${w}。当前字体 URL 为 ${JSON.stringify(t.fontUrl)};请确认该文件是有效字体,或重新配置 pdfFontUrl`,m)}Q.assertOutputActive(o.signal),i.diagnostics?.forEach(m=>{try{o.onDiagnostic?.(m)}catch{}});const{bytes:c,unsupportedTextCount:d,pageErrors:g,fidelityWarnings:f}=i;if(d>0)throw new Error(`PDF 中有 ${d} 行文字无法编码;请部署支持所用文字的字体并配置 pdfFontUrl`);if(g.length>0)throw new Error(`PDF 有 ${g.length} 页渲染失败:${g[0]}`);return f.length>0&&l?.(`PDF 有 ${f.length} 处版式降级:${f.slice(0,2).join(";")}`),c};return a.checkFont=r=>ml(t.fontUrl,r),a}function fl(t){const n=e.shallowRef(Object.freeze({status:"unchecked",fontUrl:""}));let a=null,r=null,l=0,o=null;function s(){if(t.injectedExporter)return t.injectedExporter;const g=t.fontUrl();return(!r||a!==g)&&(a=g,r=$n({fontUrl:g})),r}function i(){l++,o?.abort(),o=null}async function c(){if(t.destroyed())throw new oe.MachReportError("config","报表预览已卸载");i();const g=l,f=new AbortController;o=f;const m=t.fontUrl();n.value=Object.freeze({status:"checking",fontUrl:m});try{const w=s(),b=w.checkFont?await w.checkFont(f.signal):{status:"unverified",fontUrl:"",message:"自定义 PDF 导出器未提供字体预检查;字体由宿主确认"};return!t.destroyed()&&g===l&&!f.signal.aborted&&(n.value=Object.freeze({...b})),b}catch(w){if(f.signal.aborted)throw w;const b={status:"error",fontUrl:m,message:w instanceof Error?w.message:"PDF 字体检查失败",cause:w};return!t.destroyed()&&g===l&&(n.value=Object.freeze(b)),b}finally{o===f&&(o=null)}}function d(){c().catch(()=>{})}return e.watch([t.plan,e.computed(t.fontUrl),e.computed(t.enabled)],()=>{const g=n.value.fontUrl===t.fontUrl();g&&n.value.status==="available"||(i(),(!g||n.value.status==="checking")&&(n.value=Object.freeze({status:"unchecked",fontUrl:t.fontUrl()})),!t.destroyed()&&t.plan.value?.pages.length&&t.enabled()&&d())},{immediate:!0}),{pdfFont:n,getPdfExporter:s,checkPdfFont:c,retryPdfFont:d,cancelFontCheck:i}}function pl(t){const n=e.shallowRef(null),a=e.shallowRef(!1);let r=0,l=null;function o(c){const d=l;l=null,n.value=null,a.value=!1,d?.(c)}function s(){r++,o(!1)}async function i(c){if(s(),!t.enabled()||!t.pending())return!0;const d=r,g=[...t.snapshot?.()??[]];a.value=!0;const f=Object.freeze({reason:c,reportIds:Object.freeze([...t.reportIds()]),pendingLocalChanges:!0});try{const m=t.hook(),w=await new Promise(h=>{if(l=h,!m){n.value=f;return}Promise.resolve().then(()=>m(f)).then(p=>{d===r&&o(p===!0)},p=>{if(d===r){try{t.error(p)}catch{}o(!1)}})}),b=t.snapshot?.()??[];return d===r&&w===!0&&b.length===g.length&&g.every((h,p)=>Object.is(h,b[p]))}catch(m){if(d===r){try{t.error(m)}catch{}o(!1)}return!1}}return{request:n,pending:a,check:i,settle:o,cancel:s}}let gl=0;function vl(t){const n=e.shallowRef(null),a=new Set;let r=null;function l(c){n.value=Object.freeze(c);try{t(n.value)}catch{}}function o(c,d,g){const f=`mr-task-${Date.now().toString(36)}-${++gl}`;a.add(f),r=g,l({taskId:f,kind:c,stage:d,status:"running",cancellable:!0});function m(b,h,p){n.value?.taskId!==f||n.value.status!=="running"||l({...n.value,stage:b,completed:h,total:p})}function w(b="completed"){n.value?.taskId!==f||n.value.status!=="running"||(r=null,l({...n.value,status:b,cancellable:!1}))}return{taskId:f,update:m,finish:w}}function s(){if(n.value?.status!=="running")return;const c=r;r=null,l({...n.value,status:"cancelled",cancellable:!1}),c?.()}function i(c,d){n.value?.taskId!==c.taskId&&(c.status!=="running"||a.has(c.taskId))||(a.add(c.taskId),a.size>100&&a.delete(a.values().next().value),r=c.status==="running"?d:null,l({...c}))}return{state:n,start:o,cancel:s,receive:i}}function hl(t){const n=e.shallowRef(Object.freeze([])),a=new Set;let r=0;function l(){r++,n.value=Object.freeze([]),a.clear()}function o(c){const d=r,g=[];for(const f of c){const m=JSON.stringify([f.code,f.format,f.pageIndex,f.componentIndex,f.componentPath,f.path,f.message,f.valueState,f.target]);if(a.has(m))continue;a.add(m);const w=Object.freeze({...f,...f.target?{target:Object.freeze({...f.target})}:{},...f.componentPath?{componentPath:Object.freeze([...f.componentPath])}:{}});g.push(w)}g.length&&(n.value=Object.freeze([...n.value,...g]));for(const f of g){if(d!==r)break;try{t(f)}catch{}}}function s(c){o([c])}function i(c,d){const g=K.inspectOutputCapabilities(c,d);return o(g),g}return{entries:n,reset:l,add:s,addMany:o,inspect:i}}const yl={class:"mrp-edit-bar"},bl=["disabled"],wl=["disabled"],kl={class:"mrp-changes"},xl=["aria-label"],El={key:0},Cl={key:1},Sl=["onClick"],Nl=["title"],Bl=["title"],$l=["disabled"],Vl={key:0,role:"status"},Il={key:1,role:"status"},Pl={key:2,class:"mrp-conflicts",open:""},Rl=e.defineComponent({__name:"ReportEditBar",props:{differences:{},conflicts:{},messages:{},saving:{type:Boolean},canUndo:{type:Boolean},canRedo:{type:Boolean},busy:{type:Boolean},persisted:{type:Boolean}},emits:["undo","redo","restore","locate"],setup(t){function n(a){return a.source?`${a.source.rowKey} · ${a.source.field}`:`${a.address.pageIndex+1} / ${a.address.rowIndex+1}:${a.address.columnIndex+1}`}return(a,r)=>(e.openBlock(),e.createElementBlock("div",yl,[e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.canUndo,onClick:r[0]||(r[0]=l=>a.$emit("undo"))},e.toDisplayString(t.messages.undo),9,bl),e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.canRedo,onClick:r[1]||(r[1]=l=>a.$emit("redo"))},e.toDisplayString(t.messages.redo),9,wl),e.createElementVNode("details",kl,[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",Cl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.differences,(l,o)=>(e.openBlock(),e.createElementBlock("li",{key:o},[e.createElementVNode("button",{type:"button",onClick:s=>a.$emit("locate",l)},e.toDisplayString(n(l)),9,Sl),e.createElementVNode("span",null,[e.createElementVNode("s",{title:t.messages.changesBefore},e.toDisplayString(l.previousText||"∅"),9,Nl),r[3]||(r[3]=e.createTextVNode(" → ",-1)),e.createElementVNode("strong",{title:t.messages.changesAfter},e.toDisplayString(l.text||"∅"),9,Bl)])]))),128))])):(e.openBlock(),e.createElementBlock("p",El,e.toDisplayString(t.messages.changesEmpty),1))],8,xl)]),e.createElementVNode("button",{type:"button",disabled:t.busy||t.saving||!t.differences.length,onClick:r[2]||(r[2]=l=>a.$emit("restore"))},e.toDisplayString(t.messages.restoreChanges),9,$l),t.saving?(e.openBlock(),e.createElementBlock("span",Vl,e.toDisplayString(t.messages.saving),1)):t.differences.length&&!t.conflicts.length?(e.openBlock(),e.createElementBlock("span",Il,e.toDisplayString(t.persisted?t.messages.editSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.conflicts.length?(e.openBlock(),e.createElementBlock("details",Pl,[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,(l,o)=>(e.openBlock(),e.createElementBlock("li",{key:o},e.toDisplayString(l.message),1))),128))])])):e.createCommentVNode("",!0)]))}}),Dl=j._export_sfc(Rl,[["__scopeId","data-v-df1c7b86"]]);function Ml(t){const n=t.table?.columnKeys??[],a=n.map(()=>[]);if(!t.grid)return n;for(const{ci:r,cell:l}of Mt.resolveGridLayout(t.grid,t.widthMm,t.heightMm).cells){const o=(l.text??l.rawText??"").trim();if(o)for(let s=r;s<Math.min(n.length,r+(l.colSpan??1));s++)a[s].includes(o)||a[s].push(o)}return n.map((r,l)=>a[l].join(" / ")||r)}function Tl(t,n=[]){const a=new Set,r=[];for(const[l,o]of(t?.pages??[]).entries())for(const s of o.components){const i=s.table;if(!i||i.role!=="header"||a.has(i.id))continue;a.add(i.id);const c=Ml(s),d=n.filter(w=>w.pageIndex<=l),g=d[d.length-1]?.label,f=i.source?.datasetId,m=[...new Set([g,i.title,f].filter(Boolean))].join(" · ")||i.id;i.columnKeys.forEach((w,b)=>{w&&r.push({key:JSON.stringify([i.id,b]),field:w,label:c[b],group:m,pageIndex:l,tableId:i.id,...f?{datasetId:f}:{}})})}return r}function Ol(t,n){const a=n.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return t.filter(r=>{const l=`${r.label} ${r.field} ${r.group}`.toLocaleLowerCase();return a.every(o=>l.includes(o))})}function Fl(t){const n=oe.usePopover(),a=e.ref(""),r=e.ref(0),l=`mrp-column-list-${e.getCurrentInstance()?.uid??0}`,o=e.computed(()=>Tl(t.plan(),t.sections())),s=e.computed(()=>Ol(o.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(h=>h.group===b)})));e.watch(a,()=>{r.value=0}),e.watch(t.busy,b=>{b&&n.close()}),e.watch(o,()=>{r.value=0});function d(b){t.busy()||(t.locate(b),n.close(!0))}function g(){if(t.busy())return;const b=i.value[r.value];b?d(b):a.value.trim()&&(t.locateField(a.value.trim()),n.close(!0))}function f(){a.value="",n.panel.value?.querySelector("input")?.focus()}function m(b){if(!(b.isComposing||b.keyCode===229||!["ArrowDown","ArrowUp","Enter"].includes(b.key))){if(b.preventDefault(),b.stopPropagation(),b.key==="Enter"){g();return}i.value.length&&(r.value=(r.value+(b.key==="ArrowDown"?1:-1)+i.value.length)%i.value.length,e.nextTick(()=>n.panel.value?.querySelector(`[id="${l}-${r.value}"]`)?.scrollIntoView?.({block:"nearest"})))}}function w(b){return i.value.findIndex(h=>h.key===b)}return{...n,field:a,active:r,listId:l,directory:o,matches:s,candidates:i,groups:c,choose:d,submit:g,clear:f,onSearchKeydown:m,candidateIndex:w}}const Al=["aria-label"],zl={key:0,class:"mrp-section-tabs"},Ll=["aria-current","disabled","onClick"],ql=["aria-expanded","disabled"],Kl={key:0,class:"mrp-column-count"},jl=["aria-label"],Wl={class:"mrp-column-heading"},Hl=["aria-label"],Ul=["aria-label","placeholder","aria-controls","aria-activedescendant","disabled"],Gl=["aria-label"],Jl=["id","aria-label"],Yl={key:0,class:"mrp-column-empty",role:"status"},Zl=["aria-label"],Xl=["id","aria-selected","disabled","onPointermove","onClick"],Ql=["title"],_l={class:"mrp-column-help",role:"status"},es=e.defineComponent({__name:"ReportNavigation",props:{sections:{},currentPage:{},messages:{},busy:{type:Boolean},plan:{},compact:{type:Boolean}},emits:["goto","locate","locate-target"],setup(t,{emit:n}){const a=t,r=n,l=Fl({plan:()=>a.plan,sections:()=>a.sections,busy:()=>a.busy,locate:P=>r("locate-target",P),locateField:P=>r("locate",P)}),{root:o,trigger:s,panel:i,opened:c,field:d,active:g,directory:f,matches:m,candidates:w,groups:b,listId:h}=l,p=e.computed(()=>f.value.length>0||!a.plan||a.plan.pages.some(P=>P.components.some(I=>I.table?.columnKeys.length))),S=e.computed(()=>({columnDirectory:"字段目录",columnSearch:"搜索列名或字段",columnNoMatches:"未找到匹配字段",columnResults:"匹配字段",...a.messages})),v=e.computed(()=>(a.messages.columnResultsMore??"{count} 个匹配字段,显示前 {limit} 个;继续输入可缩小范围").replace("{count}",String(m.value.length)).replace("{limit}",String(w.value.length)));function C(P){const I=a.sections[P];return!!I&&a.currentPage>=I.pageIndex+1&&(!a.sections[P+1]||a.currentPage<=a.sections[P+1].pageIndex)}return(P,I)=>t.sections.length>1||p.value?(e.openBlock(),e.createElementBlock("nav",{key:0,class:e.normalizeClass(["mrp-section-nav",{"mrp-compact":t.compact}]),"aria-label":t.messages.sections??"工作表与章节"},[t.sections.length>1?(e.openBlock(),e.createElementBlock("div",zl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.sections,(T,L)=>(e.openBlock(),e.createElementBlock("button",{key:L,type:"button",class:e.normalizeClass({active:C(L)}),"aria-current":C(L)?"page":void 0,disabled:t.busy,onClick:J=>r("goto",T.pageIndex+1)},e.toDisplayString(T.label),11,Ll))),128))])):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"root",ref:o,class:"mrp-column-locator",onKeydown:I[7]||(I[7]=(...T)=>e.unref(l).onKeydown&&e.unref(l).onKeydown(...T))},[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:I[0]||(I[0]=T=>c.value=!e.unref(c))},[e.createVNode(j._sfc_main,{name:"columns"}),e.createElementVNode("span",null,e.toDisplayString(S.value.columnDirectory),1),e.unref(f).length?(e.openBlock(),e.createElementBlock("span",Kl,e.toDisplayString(e.unref(f).length),1)):e.createCommentVNode("",!0),e.createVNode(j._sfc_main,{name:"chevron-down",size:12})],10,ql),e.unref(c)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panel",ref:i,class:"mrp-column-directory",role:"dialog","aria-label":S.value.columnDirectory},[e.createElementVNode("div",Wl,[e.createElementVNode("span",null,[e.createVNode(j._sfc_main,{name:"columns"}),e.createTextVNode(e.toDisplayString(S.value.columnDirectory),1)]),e.createElementVNode("button",{type:"button",class:"mrp-column-close","aria-label":t.messages.closeColumnDirectory??"关闭字段目录",onClick:I[1]||(I[1]=T=>e.unref(l).close(!0))},[e.createVNode(j._sfc_main,{name:"close",size:15})],8,Hl)]),e.createElementVNode("form",{class:"mrp-column-search",onSubmit:I[5]||(I[5]=e.withModifiers((...T)=>e.unref(l).submit&&e.unref(l).submit(...T),["prevent"]))},[e.createVNode(j._sfc_main,{name:"search"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":I[2]||(I[2]=T=>e.isRef(d)?d.value=T:null),type:"search",autocomplete:"off",spellcheck:"false",role:"combobox","aria-label":S.value.columnSearch,placeholder:S.value.columnSearch,"aria-autocomplete":"list","aria-expanded":"true","aria-controls":e.unref(h),"aria-activedescendant":e.unref(w).length?`${e.unref(h)}-${e.unref(g)}`:void 0,disabled:t.busy,onKeydown:I[3]||(I[3]=(...T)=>e.unref(l).onSearchKeydown&&e.unref(l).onSearchKeydown(...T))},null,40,Ul),[[e.vModelText,e.unref(d)]]),e.unref(d)?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-column-clear",type:"button","aria-label":t.messages.clearSearch??"清除搜索",onClick:I[4]||(I[4]=(...T)=>e.unref(l).clear&&e.unref(l).clear(...T))},[e.createVNode(j._sfc_main,{name:"close",size:13})],8,Gl)):e.createCommentVNode("",!0)],32),e.createElementVNode("div",{id:e.unref(h),class:"mrp-column-results",role:"listbox","aria-label":S.value.columnResults},[e.unref(w).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Yl,[e.createVNode(j._sfc_main,{name:"search",size:22}),e.createTextVNode(e.toDisplayString(S.value.columnNoMatches),1)])),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),T=>(e.openBlock(),e.createElementBlock("section",{key:T.label,role:"group","aria-label":T.label},[e.createElementVNode("strong",null,e.toDisplayString(T.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.items,L=>(e.openBlock(),e.createElementBlock("button",{id:`${e.unref(h)}-${e.unref(l).candidateIndex(L.key)}`,key:L.key,type:"button",role:"option",tabindex:"-1",class:e.normalizeClass({"mrp-column-active":e.unref(l).candidateIndex(L.key)===e.unref(g)}),"aria-selected":e.unref(l).candidateIndex(L.key)===e.unref(g),disabled:t.busy,onPointermove:J=>g.value=e.unref(l).candidateIndex(L.key),onMousedown:I[6]||(I[6]=e.withModifiers(()=>{},["prevent"])),onClick:J=>e.unref(l).choose(L)},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(L.label),1),e.createElementVNode("code",{title:L.field},e.toDisplayString(L.field),9,Ql)]),e.createVNode(j._sfc_main,{name:"arrow-right",size:14})],42,Xl))),128))],8,Zl))),128))],8,Jl),e.createElementVNode("p",_l,e.toDisplayString(e.unref(m).length>e.unref(w).length?v.value:t.messages.columnSearchShortcut??"↑ ↓ 选择 · Enter 定位"),1)],8,jl)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)],10,Al)):e.createCommentVNode("",!0)}}),gn=j._export_sfc(es,[["__scopeId","data-v-b772ba8c"]]),ts={class:"mrp-import-summary"},ns={key:0},as={key:0},os=e.defineComponent({__name:"ReportImportSummary",props:{result:{},messages:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("details",ts,[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",ns," · "+e.toDisplayString(t.result.warnings.length)+" "+e.toDisplayString(t.messages.importWarnings),1)):e.createCommentVNode("",!0)]),e.createElementVNode("p",null,e.toDisplayString(t.messages.importReadOnly),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.result.sheets,r=>(e.openBlock(),e.createElementBlock("li",{key:r.index},e.toDisplayString(r.name)+" · "+e.toDisplayString(r.range)+" · "+e.toDisplayString(r.rowCount)+" × "+e.toDisplayString(r.columnCount),1))),128))]),t.result.warnings.length?(e.openBlock(),e.createElementBlock("ul",as,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.result.warnings,(r,l)=>(e.openBlock(),e.createElementBlock("li",{key:l},e.toDisplayString(r),1))),128))])):e.createCommentVNode("",!0)]))}}),rs=j._export_sfc(os,[["__scopeId","data-v-54f275e8"]]);function pe(t){return JSON.parse(JSON.stringify(t))}function Vn(t,n){const a=n.fields;if(typeof a=="function")return a(t);const r=t.source?.field??t.table?.columnKey;return r===void 0||!a||!Object.prototype.hasOwnProperty.call(a,r)?void 0:a[r]}function lt(t,n){if(t.requiresRecalculation&&(!n||!K.getReportEditSession(t)))throw new K.ReportCellEditError("recalculation")}async function ls(t,n,a,r){const l=n.edits.every(i=>!!i.source);lt(t,l);const o=K.getReportEditSession(t);if(o&&l)return o.prepareHistory(t,n.edits,n.value,a,{signal:r});const s=Ae(t);return n.edits.map(i=>{const c=s(i);if(!c)throw new K.ReportCellEditError("missing");return{address:c,value:i[n.value]}})}function ss(t,n,a){const r=n.edits.every(l=>!!l.source);return lt(t,r),r?K.getReportEditSession(t)?.prepare(t,n,{signal:a}):void 0}function is(t,n){const a=new Map;return t.pages.forEach((r,l)=>r.components.forEach((o,s)=>{if(o.grid)for(const i of Mt.resolveGridLayout(o.grid,o.widthMm,o.heightMm).cells){const c=n({pageIndex:l,componentIndex:s,rowIndex:i.ri,columnIndex:i.ci});if(!c?.source)continue;const d=K.reportCellEditKey(c),g=a.get(d)??[];g.push(c),a.set(d,g)}})),a}function Ae(t){const n=K.createReportCellResolver(t),a=is(t,n);function r(o){if(o.source)return a.get(K.reportCellEditKey(o))??[];const s=n(o.address);return s?!o.table||K.reportCellEditKey(s)===K.reportCellEditKey(o)?[s]:[]:[]}const l=o=>{const s=r(o),i=s.find(c=>c.table?.id===o.table?.id)??s[0];return i?{...i.address}:null};return l.all=o=>r(o).map(s=>({...s.address})),l}class cs extends Error{constructor(n){super(n.map(a=>a.message).join(";")),this.conflicts=n,this.name="ReportEditConflictError"}}function us(){return globalThis.crypto?.randomUUID?.()??`mr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function ds(t,n,a,r){return Array.isArray(n)?{batch:K.createReportCellEditBatch(t,n,a)}:ls(t,n,a,r).then(l=>Array.isArray(l)?{batch:K.createReportCellEditBatch(t,l,a)}:l)}function ms(t){const n=e.shallowRef([]),a=e.shallowRef([]),r=e.shallowRef([]),l=e.shallowRef([]),o=e.shallowRef(!1),s=e.shallowRef(null),i=e.shallowRef([]),c=e.computed(()=>i.value.length>0),d=e.computed(()=>{const y=K.summarizeReportCellEdits(n.value),N=t.plan.value;if(!N||!y.length)return y;const V=Ae(N);return y.map(D=>{const q=V(D);return q?{...D,address:q}:D})}),g=e.computed(()=>!!t.options.value&&!o.value&&!t.blocked()&&a.value.length>0),f=e.computed(()=>!!t.options.value&&!o.value&&!t.blocked()&&r.value.length>0);let m=null,w=null,b=0,h=null;function p(){m?.abort(),m=null,o.value=!1,w=null}function S(){b++,p(),h=null,n.value=[],a.value=[],r.value=[],l.value=[],i.value=[],s.value=null}function v(){const y=t.options.value;return y?typeof y=="object"?y:{}:null}function C(y,N,V,D){if(!t.options.value||t.blocked())throw new K.ReportCellEditError("readonly");lt(y,N.edits.every(U=>!!U.source));const q=K.createReportCellResolver(y),z=new Map(D?.map(U=>[K.reportCellEditKey(U),U]));for(const U of N.edits){const W=D?z.get(K.reportCellEditKey(U)):q(U.address);if(!W?.editable||V.canEdit?.(W)===!1)throw new K.ReportCellEditError("readonly");if(V.requireSource&&!W.source)throw new K.ReportCellEditError("missing");const X=Vn(W,V);X&&K.parseReportCellFieldInput(W,U.value,X)}}async function P(y,N,V){if(N.saveBatch)return N.saveBatch(pe(y),V);if(N.save&&y.edits.length>1)throw new K.ReportCellEditError("atomic");if(y.edits[0])return N.save?.(pe(y.edits[0]),V)}async function I(y,N,V){for(const D of y.edits){const q=await N.validate?.(pe(D),V);if(q)throw new Error(q);if(V.signal.aborted)return}}function T(y,N,V,D,q,z){if(t.plan.value=z?z.commit(V):K.applyReportEditResult(K.applyReportCellEditBatch(y,N),N,V),n.value=[...n.value,...N.edits],q){const W=new Set(N.edits.map(K.reportCellEditKey));i.value=i.value.filter(X=>!W.has(K.reportCellEditKey(X)))}else i.value=K.summarizeReportCellEdits([...i.value,...N.edits]);D==="edit"&&(a.value=[...a.value,N.edits],r.value=[]),l.value=[],h=null;const U=b;for(const W of N.edits){if(b!==U)break;t.onChange(pe(W))}}function L(y,N,V){const D=JSON.stringify([V,N.edits]);h?.plan===y&&h.signature===D?N.requestId=h.requestId:h={plan:y,signature:D,requestId:N.requestId}}function J(y){s.value=t.errorMessage?.(y)??(y instanceof Error?y.message:"Cell edit failed"),t.onError(s.value,y)}async function H(y,N){const V=t.plan.value,D=v();if(!V||!D||t.blocked())return!1;const q=new AbortController,z=b;m=q,o.value=!0,s.value=null;const U=()=>m===q&&!q.signal.aborted&&t.plan.value===V&&t.options.value!==!1;try{const W=ds(V,y,us(),q.signal),X=W instanceof Promise?await W:W;if(!U())return!1;const{batch:M,contexts:ce}=X;if(C(V,M,D,ce),M.edits=M.edits.filter(k=>!Object.is(k.previousValue,k.value)),!M.edits.length)return!0;L(V,M,N),C(V,M,D,ce);const Ce={signal:q.signal,requestId:M.requestId,action:N};if(await I(M,D,Ce),!U())return!1;C(V,M,D,ce);const be=X.prepared?void 0:ss(V,M,q.signal);if(be&&(X.prepared=await be),!U())return!1;C(V,M,D,ce);const Ne=await P(M,D,Ce);if(!U())return!1;if(Ne?.conflicts?.length)throw l.value=pe(Ne.conflicts),new cs(Ne.conflicts);return C(V,M,D,ce),T(V,M,Ne,N,!!(D.save||D.saveBatch),X.prepared),z===b}catch(W){return U()&&J(W),!1}finally{m===q&&(m=null,o.value=!1)}}async function Z(y,N="edit"){if(w)return w;const V=H(y,N);w=V;const D=await V;return w===V&&(w=null),D}async function ae(){const y=b,N=a.value[a.value.length-1];return!N||o.value||!await Z({edits:N,value:"previousValue"},"undo")||y!==b?!1:(a.value=a.value.slice(0,-1),r.value=[...r.value,N],!0)}async function ge(){const y=b,N=r.value[r.value.length-1];return!N||o.value||!await Z({edits:N,value:"value"},"redo")||y!==b?!1:(r.value=r.value.slice(0,-1),a.value=[...a.value,N],!0)}async function le(){const y=b;return!d.value.length||o.value||!await Z({edits:d.value,value:"previousValue"},"restore")||y!==b?!1:(a.value=[],r.value=[],!0)}function x(){if(!w)return!o.value;const y=b;return w.then(N=>N&&y===b&&!o.value)}function $(y){return t.plan.value?Ae(t.plan.value)(y):null}return{settle:x,resolveAddress:$,changes:n,differences:d,localDifferences:i,hasLocalDrafts:c,lastError:s,conflicts:l,saving:o,canUndo:g,canRedo:f,apply:Z,undo:ae,redo:ge,restore:le,cancel:p,reset:S}}let fs=0;const ps="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 gs(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 vs(t,n,a){const r=t.createElement("select"),l=[{value:null,label:"—"},...gs(n)];if(l.forEach((o,s)=>{const i=t.createElement("option");i.value=String(s),i.textContent=o.label,(Object.is(a.value,o.value)||a.value===""&&o.value===null)&&(i.selected=!0),r.append(i)}),!l.some(o=>Object.is(a.value,o.value)||a.value===""&&o.value===null)){const o=t.createElement("option");o.value="unknown",o.textContent=a.cell.text??String(a.value),o.selected=!0,r.append(o)}return{input:r,value:()=>r.value==="unknown"?a.value:l[Number(r.value)]?.value??null}}function hs(t,n,a){const r=n?.type==="number"||n?.type==="date"?t.createElement("input"):t.createElement("textarea");return r.value=a.value==null?"":String(a.value),r instanceof HTMLInputElement&&(r.type=n?.type==="date"?"date":"text",n?.type==="number"&&(r.inputMode="decimal"),n?.type==="date"&&(n.min&&(r.min=n.min),n.max&&(r.max=n.max))),{input:r,value:()=>n?.type==="date"&&r instanceof HTMLInputElement&&r.validity.badInput?"invalid-date":r.value}}function ys(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 bs(t,n,a,r){const l=t.ownerDocument,o=r?.type==="boolean"||r?.type==="enum"?vs(l,r,a):hs(l,r,a),s=o.input,i=l.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=ps,s.setAttribute("aria-label",r?.label??n),r?.required&&s.setAttribute("aria-required","true");const c=l.createElement("span");c.id=`mrp-cell-hint-${++fs}`,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 d=ys(r);return c.textContent=d,c.hidden=!d,s.setAttribute("aria-describedby",c.id),i.append(s,c),t.append(i),{input:s,root:i,initialInput:s.value,value:o.value,focus:()=>{s.focus(),(s instanceof HTMLTextAreaElement||s instanceof HTMLInputElement&&s.type!=="date")&&s.select()},feedback:g=>{c.textContent=g??d,c.hidden=!c.textContent,s.setAttribute("aria-invalid",g?"true":"false")}}}function Pt(t){const n=t.closest(".mrp-page-holder"),a=t.closest("[data-mr-component-index]");if(!n||!a)return null;const r={pageIndex:Number(n.dataset.page)-1,componentIndex:Number(a.dataset.mrComponentIndex),rowIndex:Number(t.dataset.mrRowIndex),columnIndex:Number(t.dataset.mrColumnIndex)};return Object.values(r).every(l=>Number.isInteger(l)&&l>=0)?r:null}function ws(t){const n=e.shallowRef(null),a=ms(t),{saving:r,changes:l}=a,o=e.shallowRef(!1),s=e.computed(()=>o.value||a.hasLocalDrafts.value);let i=null;function c(){const v=n.value;n.value=null,o.value=!1,a.cancel(),i=null,v?.editor.root.remove()}function d(){c(),a.reset()}function g(v){return n.value===v&&t.plan.value===v.plan}async function f(v){return await a.apply([{address:v.address,value:v.editor.value()}])?(n.value=null,o.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 m(){if(i)return i;const v=n.value;if(!v)return a.settle();if(!g(v))return c(),!1;o.value=v.editor.input.value!==v.editor.initialInput,v.editor.input.disabled=!0;const C=f(v);i=C;const P=await C;return i===C&&(i=null),P}function w(){return n.value||i?m():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 C=n.value,P=C&&K.getReportCellContext(C.plan,C.address),I=C&&P?K.createReportCellEditBatch(C.plan,[{address:C.address,value:P.value}],"navigation").edits[0]:void 0;m().then(T=>{if(!T||!C||!t.plan.value)return;const L=t.plan.value===C.plan?C.address:I&&Ae(t.plan.value)(I);L&&t.onNavigate?.(L,v.key,v.shiftKey)})}}function h(v){t.onError(t.errorMessage?.(v)??(v instanceof Error?v.message:"无法编辑单元格"),v)}async function p(v){if(!t.options.value||t.blocked()||!await m()||!v.isConnected)return;const C=t.plan.value,P=Pt(v);if(!C||!P||!t.options.value||t.blocked())return;const I=typeof t.options.value=="object"?t.options.value:{};try{const T=K.getReportCellContext(C,P);if(!T?.editable||I.canEdit?.(T)===!1)return;if(lt(C,!!T.source),I.requireSource&&!T.source)throw new K.ReportCellEditError("missing");const L=Vn(T,I);L&&K.validateReportCellFieldDefinition(T,L);const J=bs(v,t.label(),T,L),H=J.input;n.value={plan:C,address:P,editor:J},o.value=!1,H.addEventListener("keydown",Z=>b(Z)),H.addEventListener("input",()=>{o.value=H.value!==J.initialInput,J.feedback()}),H.addEventListener("change",()=>{o.value=H.value!==J.initialInput}),H.addEventListener("blur",()=>{!r.value&&!t.suspendBlur?.()&&m()}),J.focus()}catch(T){h(T)}}async function S(v){const C=v.target;if(!(C instanceof Element)||C.closest(".mrp-cell-editor"))return;const P=C.closest("td[data-mr-row-index]");P&&await p(P)}return e.watch(t.options,(v,C)=>{(!v||v!==C)&&c()},{flush:"sync"}),e.watch(t.plan,()=>{n.value&&t.plan.value!==n.value.plan&&(n.value.editor.root.remove(),n.value=null,o.value=!1)},{flush:"sync"}),e.onScopeDispose(d),{...a,active:n,saving:r,changes:l,pendingLocalChanges:s,cancel:c,reset:d,commit:m,settle:w,onDoubleClick:S,editCell:p,getChanges:()=>pe(l.value)}}const rt=["html","pdf","xlsx","png","word"],Rt=["search","thumbnails","zoom",...rt,"print","pdfWindow","editing","import"];function ks(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 xs(t,n,a,r){const l=e.ref({});let o=0,s=0,i=Promise.resolve();const c=e.computed(()=>Object.fromEntries(Rt.map(m=>[m,t.value[m]&&(l.value[m]??n.value[m]??!0)])));function d(m,w){t.value[m]&&(s++,l.value={...l.value,[m]:w},g())}function g(){const m=a?.value;if(!m)return;const w={...l.value};i=i.then(()=>m.adapter.save(m.key,w)).catch(b=>{r?.(b)})}function f(){s++,l.value={},g()}return a&&e.watch(a,async m=>{const w=++o,b=s;if(l.value={},!!m)try{const h=await m.adapter.load(m.key);if(w!==o||b!==s||!h||typeof h!="object")return;l.value=Object.fromEntries(Rt.flatMap(p=>typeof h[p]=="boolean"?[[p,h[p]]]:[]))}catch(h){w===o&&r?.(h)}},{immediate:!0}),e.onScopeDispose(()=>{o++}),{enabled:c,setEnabled:d,reset:f}}function Es(t,n,a){const r=e.ref({}),l=oe.useMachReportConfig(),o=e.computed(()=>oe.resolveConfig(l.value,t.preset)),s=e.computed(()=>({...o.value.messages,...t.messages})),i=e.computed(()=>t.showExport??o.value.showExport),c=e.computed(()=>t.showPrint??o.value.showPrint),d=e.computed(()=>t.showPdfWindow??o.value.showPdfWindow),g=e.computed(()=>t.showSettings??o.value.showSettings),f=e.computed(()=>t.guardChanges??o.value.guardChanges),m=e.computed(()=>({...o.value.output,...t.output})),w=e.computed(()=>({...o.value.toolbar,...t.toolbar})),b=e.computed(()=>({...o.value.interaction,...t.interaction,...r.value})),h=e.computed(()=>t.preferences??o.value.preferences),p=e.computed(()=>t.assets??o.value.assets),S=e.computed(()=>t.gapPx??(n.value?0:o.value.gapPx)),v=e.computed(()=>t.showParams??o.value.showParams),C=e.computed(()=>t.editable??o.value.editable),P=e.computed(()=>t.excelImport??o.value.excelImport),I=e.computed(()=>({search:w.value.search!==!1,thumbnails:w.value.thumbnails!==!1,zoom:w.value.zoom!==!1,...Object.fromEntries(rt.map(le=>[le,i.value&&(w.value.exportFormats?.includes(le)??!0)])),print:c.value,pdfWindow:d.value,editing:!!C.value,import:!!P.value})),T=xs(I,e.computed(()=>({editing:w.value.editing,import:w.value.excelImport})),h,()=>a(s.value.preferencesError??"Preferences storage unavailable")),L=T.enabled,J=e.computed(()=>rt.filter(le=>L.value[le])),H=e.computed(()=>L.value.editing?C.value:!1),Z=e.computed(()=>L.value.import?P.value:!1),ae=e.computed(()=>typeof C.value=="object"&&(typeof C.value.save=="function"||typeof C.value.saveBatch=="function")),ge=e.computed(()=>typeof t.emptyState=="object"?t.emptyState:{});return{resolved:o,resolvedMessages:s,effectiveShowExport:i,effectiveShowPrint:c,effectiveShowPdfWindow:d,effectiveShowSettings:g,effectiveGuardChanges:f,effectiveOutput:m,effectiveInteraction:b,effectiveAssets:p,effectiveGapPx:S,effectiveShowParams:v,availableTools:I,tools:T,toolState:L,visibleExportFormats:J,effectiveEditable:H,effectiveExcelImport:Z,persistedEditing:ae,emptyStateContent:ge,sessionInteraction:r}}function Cs(t,n,a,r){const l=r??(t.indexOf(n)===t.lastIndexOf(n)?t.indexOf(n):-1),o=l>=0&&t[l]===n?l:-1,s=JSON.stringify([o,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([o,n,i.target.tableId])}:{}}}:{}})}function In(t){return t.table.role==="header"?-Math.max(1,t.grid?.cells.length??1):t.table.rowIndex}function Ee(t,n,a=n){const r=t.pages[n.pageIndex]?.components[n.componentIndex],l=r?.table,o=t.pages[a.pageIndex]?.components[a.componentIndex]?.table;return l&&o&&l.id===o.id?{grid:l.id,row:In(r)+n.rowIndex,column:o.columnKeys.indexOf(l.columnKeys[n.columnIndex]??"")}:{grid:`${n.pageIndex}:${n.componentIndex}`,row:n.rowIndex,column:n.columnIndex}}function vn(t,n){const a=t.pages[n.pageIndex]?.components[n.componentIndex]?.table;if(!a)return(l,o)=>({...n,rowIndex:l,columnIndex:o});const r=new Map;return t.pages.forEach((l,o)=>l.components.forEach((s,i)=>{s.table?.id!==a.id||!s.grid||s.grid.cells.forEach((c,d)=>{const g=In(s)+d;r.set(g,[...r.get(g)??[],{address:{pageIndex:o,componentIndex:i,rowIndex:d,columnIndex:0},keys:s.table.columnKeys}])})})),(l,o)=>{const s=a.columnKeys[o];if(s===void 0)return null;const i=r.get(l)?.find(c=>c.keys.includes(s));return i?{...i.address,columnIndex:i.keys.indexOf(s)}:null}}function Ss(t,n){const a=[...t.ownerDocument.querySelectorAll("a[href],button,input,textarea,select,[tabindex]:not([tabindex='-1'])")].filter(o=>o.tabIndex>=0&&!o.matches(":disabled,[hidden],input[type='hidden']")&&!o.closest("[inert],[aria-hidden='true']")&&o.getClientRects().length>0).map((o,s)=>({element:o,order:s})).sort((o,s)=>(o.element.tabIndex||1/0)-(s.element.tabIndex||1/0)||o.order-s.order),r=a.findIndex(({element:o})=>o===t);if(r<0)return!1;const l=a[r+(n?-1:1)]?.element;return l?(l.focus(),t.ownerDocument.activeElement===l):!1}function Ns(t,n){const a=t?.source;return!Bs(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 Bs(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 $s(t,n){return t.pageIndex===n.pageIndex&&t.componentIndex===n.componentIndex}function Vs(t,n){return $s(t,n)&&t.rowIndex===n.rowIndex&&t.columnIndex===n.columnIndex}function St(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 Dt(t){return`${t.pageIndex}:${t.componentIndex}:${t.rowIndex}:${t.columnIndex}`}function Is(t,n){const a=Ee(t,n.anchor),r=Ee(t,n.focus,n.anchor);return{grid:a.grid,minRow:Math.min(a.row,r.row),maxRow:Math.max(a.row,r.row),minColumn:Math.min(a.column,r.column),maxColumn:Math.max(a.column,r.column),focusKey:Dt(n.focus),origin:t.pages[n.anchor.pageIndex]?.components[n.anchor.componentIndex]?.table}}function Ps(t,n,a){const r=n?.table;if(!r||!a.origin||r.id!==a.origin.id)return{grid:`${t.pageIndex}:${t.componentIndex}`,rowOffset:0,missingColumn:-1};const l=new Map;return a.origin.columnKeys.forEach((o,s)=>{l.has(o)||l.set(o,s)}),{grid:r.id,rowOffset:r.role==="header"?-Math.max(1,n.grid?.cells.length??1):r.rowIndex,columns:r.columnKeys.map(o=>l.get(o)??-1),missingColumn:l.get("")??-1}}function Rs(t,n,a){if(!a||!n||n.grid!==a.grid)return!1;const r=n.rowOffset+t.row,l=n.columns?n.columns[t.column]??n.missingColumn:t.column;return r>=a.minRow&&r<=a.maxRow&&l>=a.minColumn&&l<=a.maxColumn}function tt(t,n,a){t.getAttribute(n)!==a&&t.setAttribute(n,a)}function Nt(t,n,a){t.classList.contains(n)!==a&&t.classList.toggle(n,a)}function Ds(t,n,a,r,l,o){n.role!==a&&(tt(t,"role",a),n.role=a),n.selected!==r&&(Nt(t,"mrp-cell-selected",r),tt(t,"aria-selected",String(r)),n.selected=r),n.focused!==l&&(Nt(t,"mrp-cell-focus",l),tt(t,"tabindex",l?"0":"-1"),n.focused=l),n.modified!==o&&(Nt(t,"mrp-cell-modified",o),n.modified=o)}function Ms(t){const n=()=>t.editable?.()??t.enabled(),a=e.shallowRef(null),r=new WeakMap,l=new WeakMap;let o=null,s=null,i=new Set;function c(x,$){const y=K.getReportCellContext(x,$);return!y||x.requiresRecalculation&&!y.source?null:{address:y.address,source:y.source,table:y.table,value:y.value,previousValue:y.value,text:y.cell.text??"",previousText:y.cell.text??""}}e.watch(t.plan,(x,$)=>{const y=a.value;if(!y)return;if(!x||!$){a.value=null;return}const N=c($,y.anchor),V=c($,y.focus),D=Ae(x),q=N&&D(N),z=V&&D(V);a.value=q&&z?{anchor:q,focus:z}:null},{flush:"sync"});function d(x=t.root.value??void 0){if(!x)return;const $=a.value,y=t.plan.value,N=t.differences();if(N!==o||y!==s){o=N,s=y;const D=y&&N.length?Ae(y):null;i=new Set(N.flatMap(q=>D?D.all(q).map(Dt):[]))}const V=$&&y?Is(y,$):null;x instanceof HTMLTableElement&&m(x,y,V);for(const D of x.querySelectorAll("table"))m(D,y,V)}function g(x){const $=r.get(x);if($)return $;const y=x.closest("[data-mr-component-index]"),N=y?.closest(".mrp-page-holder"),V={pageIndex:Number(N?.dataset.page)-1,componentIndex:Number(y?.dataset.mrComponentIndex)};return Object.values(V).every(D=>Number.isInteger(D)&&D>=0)?(r.set(x,V),V):null}function f(x,$){const y=l.get(x);if(y)return y;const N=Number(x.dataset.mrRowIndex),V=Number(x.dataset.mrColumnIndex);if(![N,V].every(q=>Number.isInteger(q)&&q>=0))return null;const D={row:N,column:V,key:Dt({...$,rowIndex:N,columnIndex:V})};return l.set(x,D),D}function m(x,$,y){const N=g(x);if(!N)return;const V=$?.pages[N.pageIndex]?.components[N.componentIndex],D=V?.table?.role==="header"?"columnheader":"gridcell",q=y?Ps(N,V,y):null;tt(x,"role","grid");for(const z of x.rows)for(const U of z.cells){const W=f(U,N);W&&Ds(U,W,D,Rs(W,q,y),y?.focusKey===W.key,i.size>0&&i.has(W.key))}}async function w(x,$=!1){if(!t.plan.value||!K.getReportCellContext(t.plan.value,x))return!1;const y=a.value,N=$&&y&&Ee(t.plan.value,y.anchor).grid===Ee(t.plan.value,x,y.anchor).grid;a.value={anchor:N?y.anchor:{...x},focus:{...x}},t.root.value?.querySelector(St(x))||t.gotoPage(x.pageIndex+1),await e.nextTick(),d();const V=t.root.value?.querySelector(St(x));return V?.focus({preventScroll:!0}),V?.scrollIntoView?.({block:"nearest",inline:"nearest"}),!!V}function b(x){const $=x.target;if(!($ instanceof Element)||$.closest("textarea,input,button,select"))return;const y=$.closest("td[data-mr-row-index]"),N=y&&Pt(y);if(!N||t.busy()||!t.plan.value||!K.getReportCellContext(t.plan.value,N))return;const V=a.value,D=x.shiftKey&&V&&Ee(t.plan.value,V.anchor).grid===Ee(t.plan.value,N,V.anchor).grid;a.value={anchor:D?V.anchor:{...N},focus:{...N}},d(),y.focus({preventScroll:!0})}function h(x){const $=t.plan.value?.pages[x.pageIndex]?.components[x.componentIndex];return $?.grid?Mt.resolveGridLayout($.grid,$.widthMm,$.heightMm).cells.map(y=>({...x,rowIndex:y.ri,columnIndex:y.ci})):[]}function p(x,$,y){const N=h(x),V=y?-1:1;if($==="Tab")return N[N.findIndex(z=>Vs(z,x))+V];const D=$==="ArrowUp"||$==="ArrowDown"||$==="Enter",q=$==="ArrowUp"||$==="ArrowLeft"?-1:V;return N.filter(z=>D?z.columnIndex===x.columnIndex&&(z.rowIndex-x.rowIndex)*q>0:z.rowIndex===x.rowIndex&&(z.columnIndex-x.columnIndex)*q>0).sort((z,U)=>D?(z.rowIndex-U.rowIndex)*q:(z.columnIndex-U.columnIndex)*q)[0]}function S(x,$,y){if($==="ArrowLeft"||$==="ArrowRight")return;const N=t.plan.value;if(!N.pages[x.pageIndex]?.components[x.componentIndex]?.table)return;const D=$==="ArrowUp"||y?-1:1;for(let q=x.pageIndex;q>=0&&q<N.pages.length;q+=D){const z=N.pages[q].components,U=q===x.pageIndex?x.componentIndex+D:D===1?0:z.length-1;for(let W=U;W>=0&&W<z.length;W+=D){const X=v(x,{...x,pageIndex:q,componentIndex:W},$,D);if(X)return X}}}function v(x,$,y,N){const V=t.plan.value,D=V.pages[x.pageIndex].components[x.componentIndex].table,q=V.pages[$.pageIndex].components[$.componentIndex]?.table;if(q?.id!==D.id||q.role==="header"&&D.role!=="header"&&(N>0||D.rowIndex+x.rowIndex>0))return;const z=h($),U=y==="Tab"?z:z.filter(W=>W.columnIndex===x.columnIndex);return N===1?U[0]:U[U.length-1]}function C(x,$,y=!1,N=!1,V=!1){const D=p(x,$,y)??S(x,$,y);return D?(w(D,N),!0):(($!=="Tab"||!V)&&w(x),!1)}function P(x){const $=a.value;if(t.busy()||x.target instanceof Element&&x.target.closest("textarea,input,select,button,a[href],[contenteditable]"))return!1;if(!$)return L(x);const y=x.key;if(I(x)||T(x,$.focus))return!0;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Tab","Enter"].includes(y))return!1;const N=C($.focus,y,y==="Tab"&&x.shiftKey,x.shiftKey&&y!=="Tab",!0);if(y==="Tab"&&!N){const V=t.root.value?.ownerDocument.activeElement;if(!(V instanceof HTMLElement)||!Ss(V,x.shiftKey))return!1}return x.preventDefault(),!0}function I(x){if(!n()||!(x.ctrlKey||x.metaKey))return!1;const $=x.key.toLowerCase();return $!=="z"&&$!=="y"?!1:(x.preventDefault(),$==="y"||x.shiftKey?t.redo():t.undo(),!0)}function T(x,$){if(!n()||!t.plan.value||x.key!=="F2"&&!(x.key==="Enter"&&K.getReportCellContext(t.plan.value,$)?.editable))return!1;const y=t.root.value?.querySelector(St($));return y&&(x.preventDefault(),t.edit(y)),!0}function L(x){if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Enter"].includes(x.key))return!1;const $=t.root.value?.querySelector("td[data-mr-row-index]"),y=$&&Pt($);return y?(x.preventDefault(),w(y),!0):!1}function J(){const x=a.value,$=t.plan.value;if(!x||!$)return"";const y=[],N=Ee($,x.anchor),V=Ee($,x.focus,x.anchor),D=vn($,x.anchor),q=K.createReportCellResolver($),z=Math.min(N.column,V.column),U=Math.max(N.column,V.column);if((Math.abs(N.row-V.row)+1)*(U-z+1)>1e4)return t.error(new K.ReportCellEditError("limit")),"";for(let W=Math.min(N.row,V.row);W<=Math.max(N.row,V.row);W++){const X=[];for(let M=z;M<=U;M++){const ce=D(W,M);X.push(ce?q(ce)?.cell.text??"":"")}y.push(X)}return K.formatReportClipboard(y)}function H(x){!a.value||x.target instanceof Element&&x.target.closest("textarea,input,select")||(x.clipboardData?.setData("text/plain",J()),x.preventDefault())}async function Z(x){const $=a.value;if(!$||!n()||t.busy())return!1;try{let y;try{y=K.parseReportClipboard(x)}catch(U){throw new K.ReportCellEditError(U instanceof Error&&U.message.includes("limit")?"limit":"clipboard")}const N=t.plan.value,V=Ee(N,$.anchor),D=Ee(N,$.focus,$.anchor),q=vn(N,$.anchor),z=y.flatMap((U,W)=>U.map((X,M)=>{const ce=q(Math.min(V.row,D.row)+W,Math.min(V.column,D.column)+M);if(!ce)throw new K.ReportCellEditError("missing");return{address:ce,value:X}}));return await t.apply(z)}catch(y){return t.error(y),!1}}function ae(x){if(!a.value||!n()||x.target instanceof Element&&x.target.closest("textarea,input,select,button,a[href],[contenteditable]")||!x.clipboardData?.types.includes("text/plain"))return;const $=x.clipboardData?.getData("text/plain");$&&(x.preventDefault(),Z($))}async function ge(x){const $=t.plan.value;if(!$)return!1;const y=K.createReportCellResolver($);for(let N=0;N<$.pages.length;N++){const V=$.pages[N];if(!(x.reportScope!==void 0&&V.meta?.reportScope!==x.reportScope))for(let D=0;D<V.components.length;D++)for(const q of h({pageIndex:N,componentIndex:D,rowIndex:0,columnIndex:0})){const z=y(q);if(Ns(z,x))return w(q)}}return!1}function le(){a.value=null,d()}return{selection:a,refresh:d,reset:le,focusCell:w,focusField:ge,navigate:C,onClick:b,onKeydown:P,onCopy:H,onPaste:ae,copySelection:J,pasteSelection:Z}}function Ts(t){let n=0,a=!1;function r(){const o=t.viewport.value,s=t.root.value,i=t.plan.value;if(!o||!s||!i)return;const c=t.options(),d=Math.max(0,Math.min(20,Math.floor(c.frozenColumns??0)));if(!c.freezeHeaders&&d===0&&!a)return;const g=t.zoom.value||1,f=o.getBoundingClientRect();s.querySelectorAll("[data-mr-component-index]").forEach(m=>{const w=m.closest("[data-page]"),b=Number(w?.dataset.page)-1,h=i.pages[b]?.components[Number(m.dataset.mrComponentIndex)];if(!h?.grid||!w)return;m.style.transform="",m.style.zIndex="";const p=m.getBoundingClientRect(),S=w.getBoundingClientRect().bottom,v=Math.max(0,(f.left-p.left)/g),C=c.freezeHeaders?Math.max(0,Math.min((f.top-p.top)/g,(S-p.bottom)/g)):0;v>0&&d>0&&(m.style.zIndex="1"),h.table?.role==="header"&&C>0&&(m.style.transform=`translateY(${C}px)`,m.style.zIndex="5"),m.querySelectorAll(".mrp-cell-frozen").forEach(I=>{I.style.transform="",I.style.zIndex="",I.classList.remove("mrp-cell-frozen")});const P=Array.from({length:d},(I,T)=>`td[data-mr-column-index="${T}"]`);!h.table&&c.freezeHeaders&&P.push('td[data-mr-row-index="0"]'),P.length&&m.querySelectorAll(P.join(",")).forEach(I=>{const T=Number(I.dataset.mrColumnIndex)<d,L=!h.table&&Number(I.dataset.mrRowIndex)===0&&!!c.freezeHeaders,J=T?v:0,H=L?C:0;I.style.transform=J||H?`translate(${J}px, ${H}px)`:"",I.classList.toggle("mrp-cell-frozen",!!(J||H)),I.style.zIndex=J||H?L?"7":"6":""})}),a=!!c.freezeHeaders||d>0}function l(){n||(n=requestAnimationFrame(()=>{n=0,r()}))}return e.onScopeDispose(()=>{n&&cancelAnimationFrame(n)}),{refresh:r,schedule:l}}async function Pn(t,n,a,r){if(!n?.assetRenderers||!Object.keys(n.assetRenderers).length)return t;try{return(await K.resolvePlanAssets(t,{...n,signal:a,format:"dom",onDiagnostic:o=>{a.aborted||(n.onDiagnostic?.(o),r(o.message))}})).plan}catch(l){throw a.aborted?l:new oe.MachReportError("render",l instanceof Error?l.message:"Report asset preparation failed",l)}}function Rn(t,n){const a=K.validateRenderPlan(t);if(!a.ok)throw new oe.MachReportError("validate",`渲染计划校验失败(${a.errors.length} 处): ${a.errors.slice(0,3).map(r=>`${r.path}: ${r.message}`).join("; ")}`);a.warnings.forEach(r=>n(`${r.path}: ${r.message}`))}async function Os(t,n,a,r){const l=await Q.waitForOutput(t(n),n.signal);return Q.assertOutputActive(n.signal),r("validate"),Rn(l,n.onWarning??(()=>{})),Q.assertOutputActive(n.signal),r("assets"),Pn(l,a,n.signal,n.onWarning??(()=>{}))}async function Fs(t,n,a,r,l,o){const{importExcelTemplate:s}=await import("@agile-team/mach-report/xlsx");Q.assertOutputActive(r);const i=await Q.waitForOutput(s(t,{...n,signal:r}),r);o("layout");const c=K.paginateTemplate(pe(i.template),{}).plan;Rn(c,l),Q.assertOutputActive(r),o("assets");const d=await Pn(c,a,r,l);return{result:i,plan:d}}const As={key:7,class:"mrp-edit-hint",role:"status"},zs={key:9,class:"mrp-export-notice mrp-export-warning",role:"status"},Ls={class:"mrp-main"},qs={key:0,class:"mrp-state"},Ks={key:1,class:"mrp-state mrp-error"},js=["data-page"],Ws=["aria-label","aria-current","onClick"],Hs=["data-thumb"],Us={class:"mrp-thumb-no"},Gs={key:10,class:"mrp-footer"},Js={class:"mrp-footer-context"},Ys=["aria-label"],Zs={key:0},Xs={class:"mrp-overlay"},Qs={key:11,class:"mrp-debug","aria-hidden":"true"},Bt=96/25.4,$t="mach-report:ui",Vt="mach-report:ui:wide",_s=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},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 r=t,l=a,o=e.shallowRef(null),s=e.ref(!1),i=e.ref(""),c=e.shallowRef(null),d=e.ref(null),g=e.ref(!1),f=e.ref(null),m=e.ref(1),w=e.ref(null),b=e.ref(null),h=e.ref(null),p=e.ref(!1),S=e.ref(!1),v=e.ref(!1),C=e.ref("general"),P=e.shallowRef(null),I=e.ref(null),T=e.ref(null),L=Oa();let J=null,H=!1;const Z=vl(u=>l("task",u)),ae=hl(u=>l("diagnostic",u)),ge=e.computed(()=>ae.entries.value.filter(u=>u.valueState&&u.target)),le=e.computed(()=>ae.entries.value.filter(u=>!u.valueState)),x=e.shallowRef(null),$=e.computed(()=>!!o.value?.pages.length&&o.value.pages.every(u=>u.layout==="wide"));let y=$t;const N=e.inject(Ct.MACH_REPORT_FETCHER_KEY,null),V=e.inject(Ct.MACH_REPORT_PDF_EXPORTER_KEY,null),D=e.computed(()=>Tt(r.reportId)),q=e.computed(()=>r.fetcher??N),z=e.computed(()=>o.value?.pages.length??0),U=e.computed(()=>Object.freeze({loading:s.value,hasPlan:z.value>0,pageCount:z.value,currentPage:m.value,exporting:d.value,printing:g.value,canExport:!s.value&&!S.value&&!A.saving.value&&z.value>0&&d.value===null,canPrint:!s.value&&!S.value&&!A.saving.value&&z.value>0&&!g.value,error:c.value,pdfFont:Lt.value,editing:A.active.value!==null,saving:A.saving.value,importing:S.value,dirty:A.differences.value.length>0,pendingLocalChanges:A.pendingLocalChanges.value,task:Z.state.value,diagnostics:ae.entries.value,reportIds:x.value?.reportIds??[],params:x.value?.params??{},canUndo:A.canUndo.value,canRedo:A.canRedo.value,changeCount:A.differences.value.length,selection:ee.selection.value?pe(ee.selection.value):null}));function W(u,E,R){c.value=Object.freeze({message:u,code:E,cause:R}),l("error",u,{code:E,cause:R})}const{resolved:X,resolvedMessages:M,effectiveShowExport:ce,effectiveShowSettings:Ce,effectiveGuardChanges:be,effectiveOutput:Ne,effectiveInteraction:k,effectiveAssets:B,effectiveGapPx:F,effectiveShowParams:O,availableTools:G,tools:_,toolState:Y,visibleExportFormats:ve,effectiveEditable:he,effectiveExcelImport:$e,persistedEditing:At,emptyStateContent:st,sessionInteraction:it}=Es(r,$,u=>l("warning",u)),Je=e.ref(),ct=e.computed(()=>({...X.value.printOptions,...r.printOptions,calibration:Je.value??{...X.value.printOptions?.calibration,...r.printOptions?.calibration}}));e.watch([()=>r.printOptions,()=>X.value.printOptions],()=>{Je.value=void 0});let ze;const zt=e.computed(()=>Y.value.pdf||Y.value.pdfWindow),ut=e.computed(()=>k.value.calculations===!0),dt=e.computed(()=>oe.resolveCalculationMessages(M.value)),{pdfFont:Lt,getPdfExporter:Mn,checkPdfFont:Tn,retryPdfFont:qt,cancelFontCheck:On}=fl({plan:o,fontUrl:()=>X.value.pdfFontUrl,enabled:()=>zt.value,injectedExporter:V,destroyed:()=>H});async function Fn(u,E){u==="editing"&&!E&&!await A.settle()||(_.setEnabled(u,E),l("preferences-change",Object.freeze({...Y.value})))}async function An(){await A.settle()&&(_.reset(),it.value={},Je.value=void 0,l("preferences-change",Object.freeze({...Y.value})))}async function Kt(u="general"){if(v.value){v.value=!1;return}const E=A.settle();!(typeof E=="boolean"?E:await E)||H||!Ce.value||(C.value=u,v.value=!0)}function jt(u){return u instanceof K.ReportCellEditError?{number:M.value.editInvalidNumber,boolean:M.value.editInvalidBoolean,conflict:M.value.editConflict,atomic:M.value.editAtomicRequired,limit:M.value.clipboardLimit,readonly:M.value.editReadOnly,missing:M.value.editMissing,recalculation:M.value.editRecalculationUnavailable,duplicate:M.value.editDuplicate,clipboard:M.value.clipboardInvalid}[u.code]??u.message:u instanceof Error?u.message:"单元格保存失败"}const A=ws({plan:o,options:he,blocked:()=>s.value||S.value||d.value!==null||g.value||we.pending.value,label:()=>M.value.editCell??"编辑单元格",errorMessage:jt,suspendBlur:()=>we.request.value!==null,onChange:u=>{c.value=null,f.value=null,l("cell-edit",u)},onError:(u,E)=>{f.value={kind:"error",message:u},W(u,"edit",E)},onNavigate:(u,E,R)=>ee.navigate(u,E,R)}),ee=Ms({plan:o,root:w,enabled:()=>!!he.value||ut.value||!!(r.drill??X.value.drill),editable:()=>!!he.value,busy:()=>s.value||S.value||A.saving.value||!!d.value||g.value||we.pending.value,differences:()=>A.differences.value,gotoPage:me,edit:A.editCell,apply:A.apply,undo:A.undo,redo:A.redo,error:u=>{const E=jt(u);f.value={kind:"error",message:E},W(E,"edit",u)}}),mt=Xo({plan:o,selection:ee.selection,enabled:()=>ut.value});function zn(){Kt("advanced")}const we=pl({pending:()=>A.pendingLocalChanges.value,reportIds:()=>x.value?.reportIds??D.value,hook:()=>r.beforeDiscard??X.value.beforeDiscard,enabled:()=>be.value,snapshot:()=>[o.value,A.active.value?.editor.input.value],error:u=>W(u instanceof Error?u.message:"修改保护回调失败","config",u)});async function Wt(u="leave"){return we.check(u)}const Ye=al({plan:o,selection:ee.selection,options:()=>r.drill??X.value.drill,params:()=>({...x.value?.params}),view:()=>({zoom:ue.value,scrollTop:w.value?.scrollTop??0,scrollLeft:w.value?.scrollLeft??0}),messages:()=>M.value,busy:()=>s.value||S.value||A.saving.value||!!d.value||g.value,beforeOpen:()=>Wt("leave")});function Ht(u){!be.value||!A.pendingLocalChanges.value||(u.preventDefault(),u.returnValue="")}function Ut(){Z.cancel()}function Ln(u){const E=A.resolveAddress(u);E&&ee.focusCell(E)}async function Gt(u){await ee.focusField(u)||(f.value={kind:"warning",message:M.value.locateFieldMissing??"Field not found"})}function qn(u){if(u.pageIndex===void 0)return;me(u.pageIndex+1);const E=u.componentPath;u.componentIndex!==void 0&&E&&E.length===2&&ee.focusCell({pageIndex:u.pageIndex,componentIndex:u.componentIndex,rowIndex:E[0],columnIndex:E[1]})}function ft(u){const E=o.value;if(!E)return!1;const R={excel:"xlsx",image:"png",doc:"word"}[u]??u,re=R==="pdf"?"pdf":R==="xlsx"?"xlsx":R==="png"?"canvas":"dom",te=ae.inspect(E,re);return o.value!==E?!1:te.length&&Ne.value.fidelity==="strict"?(f.value={kind:"error",message:M.value.diagnosticsStrict??"输出存在已知降级"},W(f.value.message,"export",{diagnostics:te}),!1):!0}function Kn(u){return o.value?ae.inspect(o.value,u):[]}const Ze=e.computed(()=>{if(P.value)return P.value.sheets.map(E=>({label:E.name,pageIndex:E.pageStart}));const u=new Set;return o.value?.pages.flatMap((E,R)=>E.components.flatMap(re=>{const te=re.table;return!te?.title||u.has(te.id)?[]:(u.add(te.id),[{label:te.title,pageIndex:R}])}))??[]});async function Jt(u){u&&!await ee.focusField({field:u})&&(f.value={kind:"warning",message:M.value.locateFieldMissing??"Field not found"})}async function jn(u){await ee.focusField(u)||(f.value={kind:"warning",message:M.value.locateFieldMissing??"Field not found"})}const pt=e.computed(()=>{try{return{defs:r.paramDefs??q.value?.getParamDefs?.(D.value)??[],error:null}}catch(u){return{defs:[],error:new oe.MachReportError("config",u instanceof Error?u.message:"查询参数配置无效",u)}}}),gt=e.computed(()=>pt.value.defs),Le=oe.useReportParams({defs:gt,reportIds:D,params:()=>r.params,messages:()=>M.value}),{values:qe,attempted:Xe,pendingRequired:Yt}=Le,Zt=e.ref(null);function Wn(){Xe.value=!0,Le.validation.value.ok||e.nextTick(()=>Zt.value?.focusInvalid()),Ie()}function Hn(){Le.reset(),i.value="",c.value=null}const Un=e.computed(()=>({height:r.height,"--mrp-page-gap":`${Math.max(0,F.value)}px`,...oe.themeToCssVars(X.value.theme)})),{zoom:ue,zoomMode:Ke,applyFitZoom:Xt,setZoom:je}=bn(()=>({viewport:b.value,pageWidthPx:vt.contentSize.value.w||210*Bt})),vt=yn(o,ue,{pxPerMm:Bt,gapPx:F,overscan:e.computed(()=>X.value.preview.overscanPages)}),{contentSize:ht,windowRange:We,visiblePages:Qt,makeScrollHandler:Gn,refreshViewport:_t}=vt,Jn=Gn(m,z),yt=Ts({root:w,viewport:b,plan:o,zoom:ue,options:()=>k.value});e.watch([k,ue],()=>yt.schedule(),{flush:"post"});function bt(u){je(u*100)}function Ve(){ze?.abort(),S.value=!1,A.reset(),ee.reset(),P.value=null,tn(),o.value=null,x.value=null,ae.reset(),m.value=1,ne.reset()}let se=0,ie=null;function Qe(u,E){return u===se&&!E.signal.aborted&&!H}function en(){b.value&&(b.value.scrollTop=0,b.value.scrollLeft=0)}function Yn(u,E){for(const R of u){if(E!==se)return!1;l("warning",R)}return E===se}function Zn(){if(pt.value.error){const E=pt.value.error;return Ve(),i.value=E.message,W(E.message,E.code,E.cause),null}const u=Le.query();return u.params?u.params:(Ve(),i.value=u.quiet?"":u.error.message,u.quiet||(Xe.value=!0,W(u.error.message,u.error.code,u.error.cause)),null)}async function Ie(){if(H||be.value&&A.pendingLocalChanges.value&&!await we.check("reload")||H)return;const u=++se;S.value=!1,ie?.abort(),ie=null;const E=q.value;if(s.value=!1,c.value=null,D.value.length===0){i.value="缺少报表 ID",Ve(),W(i.value,"param");return}if(!E){i.value="未提供渲染数据源 fetcher",Ve(),W(i.value,"config");return}const R=Zn();if(!R)return;s.value=!0,i.value="",f.value=null,Ve();const re=L.start(),te=new AbortController;ie=te;const xe=Z.start("query","query",()=>{ie===te&&(te.abort(),se++,ie=null,s.value=!1)}),He=[...D.value],ye=Object.freeze({...R}),Se=new Set;function De(fe){u!==se||te.signal.aborted||Se.has(fe)||(Se.add(fe),X.value.logger.warn("[mach-report] 报表告警:",fe),ae.add({code:"layout",severity:"warning",message:fe}),l("warning",fe))}try{const fe=await Os(E,{reportIds:He,params:R,taskId:xe.taskId,onEvent:Be=>{u===se&&!te.signal.aborted&&xe.update(Be.stage,Be.completed,Be.total)},onQueryResult:(Be,ca,ua)=>{u===se&&!te.signal.aborted&&ae.addMany(Cs(He,Be,ca.diagnostics??[],ua))},signal:te.signal,onWarning:De},B.value,xe.update);if(!Qe(u,te)||(o.value=fe,x.value=Object.freeze({reportIds:Object.freeze(He),params:ye}),ae.inspect(fe,"dom"),!Qe(u,te)))return;xe.finish(),m.value=1,L.end(re),en();const Me=$.value?Vt:$t;Me!==y&&(y=Me,xt()),Ke.value==="fit"&&Xt(),l("loaded",fe.pages.length)}catch(fe){if(u!==se)return;if(te.signal.aborted){xe.finish("cancelled");return}xe.finish("failed");const Me=oe.normalizeReportLoadError(fe);i.value=Me.message;const Be=oe.toErrorDetail(Me);W(Me.message,Be.code,Be.cause)}finally{u===se&&(s.value=!1),ie===te&&(ie=null)}}function me(u){if(H||z.value<=0)return;const E=Math.max(1,Math.min(z.value,u));m.value=E;const R=b.value;R&&(vt.scrollToPage(R,E-1),sa.prioritize(E-1))}const Pe=Cn(o,{getPdfExporter:Mn,beforeOutput:()=>A.settle(),onTask:u=>Z.receive(u,()=>Pe.cancel()),onDiagnostic:ae.add,getXlsxOptions:()=>X.value.xlsx,getPrintOptions:()=>ct.value,getPrintMessages:()=>M.value,onError:(u,E)=>{f.value={kind:"error",message:u},W(u,E??"print")},onWarning:u=>{f.value={kind:"warning",message:u},ae.add({code:"output",severity:"warning",message:u}),l("warning",u)},onBusy:u=>{d.value=u,u?f.value={kind:"progress",message:M.value.exporting.replace("{format}",u)}:f.value?.kind==="progress"&&(f.value=null)},onPrinting:u=>{g.value=u}}),{releasePrintFrame:tn,dispose:Xn}=Pe,nn=e.computed(()=>{const u=o.value?.pages[0];return!!u&&!$.value&&[u.pageWidthMm,u.pageHeightMm].every(E=>E>=25&&E<=600)});async function Qn(){if(!nn.value||g.value||s.value||S.value)return;const u=o.value.pages[0];g.value=!0;const E=new AbortController;ze=E;try{await xn([Bn(u.pageWidthMm,u.pageHeightMm)],{printOptions:ct.value,signal:E.signal,messages:M.value,onError:R=>{f.value={kind:"error",message:R}}})}catch{}finally{ze===E&&(g.value=!1,ze=void 0)}}async function an(){if(s.value||S.value)return;const u=A.settle();(typeof u=="boolean"?u:await u)&&(c.value=null,ft("html")&&await Pe.print())}async function on(u){if(s.value||S.value)return;const E=A.settle();(typeof E=="boolean"?E:await E)&&(c.value=null,ft(u)&&await Pe.exportAs(u))}function rn(){if(s.value||S.value||A.active.value||A.saving.value){f.value={kind:"warning",message:M.value.editingHint??"请先确认单元格修改"};return}c.value=null,ft("pdf")&&Pe.openPdfWindow()}async function _n(u,E={}){H||(qe.value={...qe.value,...u},E.reload!==!1&&(Xe.value=!0,await Ie()))}const ln={reload:Ie,print:an,exportAs:on,openPdfWindow:rn,gotoPage:me,setParams:_n,checkPdfFont:Tn,importExcel:sn,getPlan:ea,cancelTask:Ut,confirmDiscard:Wt,getOutputDiagnostics:Kn,getChanges:A.getChanges,undo:A.undo,redo:A.redo,restoreChanges:A.restore,getDifferences:()=>pe(A.differences.value),getSelection:()=>ee.selection.value?pe(ee.selection.value):null,focusCell:ee.focusCell,focusField:ee.focusField,copySelection:ee.copySelection,pasteSelection:ee.pasteSelection,get state(){return U.value}};e.provide(Ct.MACH_REPORT_CONTROLLER_KEY,ln);function ea(){return o.value?pe(o.value):null}function ta(u){const E=typeof $e.value=="object"?$e.value:{};return{...E,...u,limits:{...E.limits,...u?.limits}}}function na(u,E){A.reset(),ee.reset(),tn(),ne.reset(),o.value=u,x.value=null,ae.reset(),P.value={sheets:pe(E.sheets),warnings:[...E.warnings]},m.value=1,i.value="",f.value=E.warnings.length?{kind:"warning",message:E.warnings.join(";")}:null,en(),y=$.value?Vt:$t,xt(),ae.addMany(E.warnings.map(R=>({code:"excel-import",severity:"warning",message:R}))),o.value===u&&ae.inspect(u,"dom")}async function sn(u,E){if(H)throw new oe.MachReportError("config","报表预览已卸载");if(be.value&&A.pendingLocalChanges.value&&!await we.check("import")||H)return null;const R=++se;ie?.abort(),ie=null,s.value=!1,A.cancel(),Pe.invalidatePending(),S.value=!0;const re=new AbortController;ie=re,c.value=null,f.value={kind:"progress",message:M.value.importing??"正在导入 Excel…"};const te=Z.start("import","import",()=>{ie===re&&(re.abort(),se++,ie=null,S.value=!1,f.value=null)}),xe=ta(E),He=Q.forwardOutputAbort(xe.signal,re);try{const{result:ye,plan:Se}=await Fs(u,{...xe,onProgress:(De,fe)=>{te.update("import",De,fe),xe.onProgress?.(De,fe)}},B.value,re.signal,De=>{R===se&&l("warning",De)},te.update);return!Qe(R,re)||!Yn(ye.warnings,R)||(na(Se,ye),!Qe(R,re))?null:(te.finish(),l("template-import",ye),R===se&&l("loaded",Se.pages.length),ye)}catch(ye){if(R!==se)return null;if(re.signal.aborted)return te.finish("cancelled"),null;te.finish("failed");const Se=new oe.MachReportError("import",ye instanceof Error?ye.message:"Excel 模板导入失败",ye);throw f.value={kind:"error",message:Se.message},W(Se.message,"import",ye),Se}finally{He(),R===se&&(S.value=!1),ie===re&&(ie=null)}}function aa(u){const E=u.target,R=E.files?.[0];E.value="",R&&sn(R).catch(()=>{})}const ne=Da({plan:o,gotoPage:me,debounceMs:e.computed(()=>X.value.preview.searchDebounceMs),highlight:Na,clearHighlights:Sa});e.watch(()=>Y.value.search,u=>{u||(ne.reset(),ne.visible.value=!1)});function oa(u){!u.ctrlKey||!Y.value.zoom||(u.preventDefault(),bt(ue.value*(u.deltaY<0?1.1:1/1.1)))}function ra(u){if(!ee.onKeydown(u)&&!(u.target instanceof Element&&u.target.closest("input,textarea,select,[contenteditable='true']"))){if(Y.value.search&&(u.ctrlKey||u.metaKey)&&u.key.toLowerCase()==="f"){u.preventDefault(),ne.visible.value||ne.toggle(),e.nextTick(()=>T.value?.focusSearch());return}switch(u.key){case"PageDown":u.preventDefault(),me(m.value+1);break;case"PageUp":u.preventDefault(),me(m.value-1);break;case"Home":u.preventDefault(),me(1);break;case"End":u.preventDefault(),me(z.value);break;case"+":case"=":u.preventDefault(),Y.value.zoom&&bt(ue.value*1.1);break;case"-":u.preventDefault(),Y.value.zoom&&bt(ue.value/1.1);break}}}function la(){try{localStorage.setItem(y,JSON.stringify({zoomMode:Ke.value==="fit"?"fit":Math.round(ue.value*100)}))}catch{}}e.watch([Ke,ue],la);let wt="";function cn(u=!1){const E=ne.activeMatch.value;if(!$.value||!E)return;const R=`${ne.query.value}:${ne.matchIndex.value}:${E.pageIndex}`;if(!u&&R===wt)return;const te=w.value?.querySelector(`[data-page="${E.pageIndex+1}"]`)?.querySelectorAll("mark.mrp-hit")[E.occurrence];te&&(te.scrollIntoView?.({block:"nearest",inline:"nearest"}),wt=R)}const sa=ba({plan:o,root:w,pages:()=>Qt.value,priority:()=>ne.activeMatch.value?.pageIndex??m.value-1,focusToken:()=>ne.activeMatch.value,query:()=>ne.query.value,zoom:()=>ue.value,loading:()=>M.value.loading,clear:ne.clear,highlight:ne.apply,mounted:u=>{ee.refresh(u),yt.schedule()},ready:()=>{ne.activeMatch.value||(wt=""),cn()},error:u=>{i.value=u instanceof Error?u.message:String(u),W(i.value,"render",u)}});e.watch(()=>ee.selection.value,()=>{ee.refresh()},{flush:"post"}),e.watch(()=>ne.query.value,u=>{u||w.value?.querySelectorAll(".mrp-page-holder").forEach(E=>{ne.clear(E)})});const ke=Ta(o,{thumbsRoot:h,visible:p,renderThumbCanvas:u=>{try{const E=o.value.pages[u],R=Math.min(.2,116/Math.max(1,E.pageWidthMm*Bt)),{canvases:re}=K.renderPlanToCanvas(o.value,{start:u,end:u,dpr:R});return re[0]??null}catch{return null}}});e.watchEffect(()=>{ke.schedule()},{flush:"post"});const ia=e.computed(()=>r.debug),{debugStats:Re}=Ma(ia,{plan:o,pageCount:z,windowRange:We,zoom:ue,loadMs:L.loadMs});function kt(){_t(b.value),ke.schedule(),Ke.value==="fit"&&Xt(),cn(!0)}function xt(){je(y===Vt?100:"fit");try{const u=JSON.parse(localStorage.getItem(y)??"{}");u.zoomMode==="fit"?je("fit"):typeof u.zoomMode=="number"&&je(u.zoomMode)}catch{}}return e.onMounted(()=>{window.addEventListener("resize",kt),window.addEventListener("beforeunload",Ht),typeof ResizeObserver<"u"&&b.value&&(J=new ResizeObserver(kt),J.observe(b.value)),_t(b.value),xt(),r.autoLoad&&Ie()}),e.onUnmounted(()=>{H=!0,ze?.abort(),we.cancel(),Z.cancel(),A.reset(),S.value=!1,On(),se++,ie?.abort(),ie=null,window.removeEventListener("resize",kt),window.removeEventListener("beforeunload",Ht),J?.disconnect(),J=null,ke.destroy(),ne.reset(),Xn()}),e.watch(()=>[JSON.stringify(D.value),JSON.stringify(r.params),q.value],async()=>{if(r.autoLoad){Ie();return}!await we.check("replace")||H||(se++,ie?.abort(),ie=null,s.value=!1,i.value="",c.value=null,f.value=null,Ve())}),n({...ln,state:U}),(u,E)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["mach-report-preview",{"mrp-wide-report":$.value}]),style:e.normalizeStyle(Un.value)},[e.unref(O)&&gt.value.length>0?(e.openBlock(),e.createBlock(oe.ReportParamPanel,{key:0,ref_key:"paramPanelRef",ref:Zt,defs:gt.value,"load-options":r.loadParamOptions??e.unref(X).loadParamOptions,modelValue:e.unref(qe),"onUpdate:modelValue":E[0]||(E[0]=R=>e.isRef(qe)?qe.value=R:null),messages:e.unref(M),attempted:e.unref(Xe),issues:e.unref(Le).validation.value.issues,onQuery:Wn,onReset:Hn},null,8,["defs","load-options","modelValue","messages","attempted","issues"])):e.createCommentVNode("",!0),e.createVNode(Nn,{ref_key:"toolbarRef",ref:T,"page-count":z.value,"current-page":m.value,"zoom-mode":e.unref(Ke),zoom:e.unref(ue),"show-export":e.unref(ce),"show-print":e.unref(Y).print,"show-pdf-window":e.unref(Y).pdfWindow,"show-search":e.unref(Y).search,"show-thumbnails":e.unref(Y).thumbnails,"show-zoom":e.unref(Y).zoom,"export-formats":e.unref(ve),"show-settings":e.unref(Ce),"settings-open":v.value,messages:e.unref(M),search:{visible:e.unref(ne).visible.value,query:e.unref(ne).query.value,matchIndex:e.unref(ne).matchIndex.value,matchCount:e.unref(ne).matchCount.value,searching:e.unref(ne).searching.value},"thumbs-visible":p.value,"show-import":!!e.unref($e),busy:s.value||S.value||e.unref(A).saving.value,onGoto:me,onZoom:e.unref(je),onExport:E[1]||(E[1]=R=>on(R)),onPrint:an,onPdfWindow:rn,onSearchInput:e.unref(ne).onInput,onSearchNav:e.unref(ne).onNav,onSearchToggle:e.unref(ne).toggle,onThumbsToggle:E[2]||(E[2]=R=>p.value=!p.value),onImportExcel:E[3]||(E[3]=R=>I.value?.click()),onSettingsToggle:Kt},e.createSlots({_:2},[Ze.value.length<=1?{name:"navigation",fn:e.withCtx(()=>[z.value>0&&e.unref(k).navigation!==!1?(e.openBlock(),e.createBlock(gn,{key:0,plan:o.value,compact:"",sections:Ze.value,"current-page":m.value,messages:e.unref(M),busy:s.value||S.value||e.unref(A).saving.value,onLocateTarget:Gt,onGoto:me,onLocate:Jt},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0)]),key:"0"}:void 0]),1032,["page-count","current-page","zoom-mode","zoom","show-export","show-print","show-pdf-window","show-search","show-thumbnails","show-zoom","export-formats","show-settings","settings-open","messages","search","thumbs-visible","show-import","busy","onZoom","onSearchInput","onSearchNav","onSearchToggle"]),e.unref(we).request.value?(e.openBlock(),e.createBlock($r,{key:1,messages:e.unref(M),onAnswer:e.unref(we).settle},null,8,["messages","onAnswer"])):e.createCommentVNode("",!0),e.createVNode(Dr,{task:e.unref(Z).state.value,messages:e.unref(M),onCancel:Ut},null,8,["task","messages"]),e.createVNode(Lr,{entries:le.value,messages:e.unref(M),onLocate:qn},null,8,["entries","messages"]),e.createVNode(Yr,{entries:ge.value,messages:e.unref(M),busy:s.value||S.value||e.unref(A).saving.value,onLocate:jn},null,8,["entries","messages","busy"]),e.createVNode(nl,{entries:e.unref(Ye).entries.value,pending:e.unref(Ye).pending.value,error:e.unref(Ye).error.value,busy:s.value||S.value||e.unref(A).saving.value,messages:e.unref(M),onOpen:e.unref(Ye).open},null,8,["entries","pending","error","busy","messages","onOpen"]),v.value&&e.unref(Ce)?(e.openBlock(),e.createBlock(xr,{key:2,available:e.unref(G),enabled:e.unref(Y),messages:e.unref(M),"persisted-editing":e.unref(At),interaction:e.unref(k),section:C.value,busy:s.value||S.value||e.unref(A).saving.value||!!d.value||g.value,onSection:E[5]||(E[5]=R=>C.value=R),onInteraction:E[6]||(E[6]=R=>it.value={...e.unref(it),...R}),onChange:Fn,onReset:An,onClose:E[7]||(E[7]=R=>v.value=!1)},{advanced:e.withCtx(()=>[e.createVNode(Zo,{state:e.unref(mt),messages:dt.value},null,8,["state","messages"])]),default:e.withCtx(()=>[e.renderSlot(u.$slots,"settings",{},void 0,!0),e.unref(Y).print?(e.openBlock(),e.createBlock(cl,{key:0,value:ct.value.calibration??{},messages:e.unref(M),busy:g.value||s.value||S.value||e.unref(A).saving.value,"can-test":nn.value,onChange:E[4]||(E[4]=R=>Je.value=R),onTest:Qn},null,8,["value","messages","busy","can-test"])):e.createCommentVNode("",!0)]),_:3},8,["available","enabled","messages","persisted-editing","interaction","section","busy"])):e.createCommentVNode("",!0),Ze.value.length>1&&z.value>0&&e.unref(k).navigation!==!1?(e.openBlock(),e.createBlock(gn,{key:3,plan:o.value,onLocateTarget:Gt,sections:Ze.value,"current-page":m.value,messages:e.unref(M),busy:s.value||S.value||e.unref(A).saving.value,onGoto:me,onLocate:Jt},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0),P.value?(e.openBlock(),e.createBlock(rs,{key:4,result:P.value,messages:e.unref(M)},null,8,["result","messages"])):e.createCommentVNode("",!0),e.unref(he)&&z.value>0?(e.openBlock(),e.createBlock(Dl,{key:5,differences:e.unref(A).differences.value,conflicts:e.unref(A).conflicts.value,messages:e.unref(M),saving:e.unref(A).saving.value,"can-undo":e.unref(A).canUndo.value,"can-redo":e.unref(A).canRedo.value,persisted:e.unref(At),busy:!!d.value||g.value,onUndo:e.unref(A).undo,onRedo:e.unref(A).redo,onRestore:e.unref(A).restore,onLocate:Ln},null,8,["differences","conflicts","messages","saving","can-undo","can-redo","persisted","busy","onUndo","onRedo","onRestore"])):e.createCommentVNode("",!0),e.unref($e)?(e.openBlock(),e.createElementBlock("input",{key:6,ref_key:"importInputRef",ref:I,class:"mrp-import-input",type:"file",accept:".xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",hidden:"",onChange:aa},null,544)):e.createCommentVNode("",!0),e.unref(he)&&z.value>0?(e.openBlock(),e.createElementBlock("div",As,e.toDisplayString(e.unref(A).saving.value?e.unref(M).saving:e.unref(M).editingHint),1)):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("div",{key:8,class:e.normalizeClass(["mrp-export-notice",`mrp-export-${f.value.kind}`]),role:"alert"},e.toDisplayString(f.value.message),3)):e.createCommentVNode("",!0),e.unref(Lt).status==="error"&&zt.value?(e.openBlock(),e.createElementBlock("div",zs,[e.createTextVNode(e.toDisplayString(e.unref(M).pdfFontUnavailable)+" ",1),e.createElementVNode("button",{type:"button",onClick:E[8]||(E[8]=(...R)=>e.unref(qt)&&e.unref(qt)(...R))},e.toDisplayString(e.unref(M).retry),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ls,[e.createElementVNode("div",{ref_key:"viewportRef",ref:b,class:"mrp-body",tabindex:"0",onWheel:oa,onKeydown:ra,onDblclick:E[9]||(E[9]=(...R)=>e.unref(A).onDoubleClick&&e.unref(A).onDoubleClick(...R)),onClick:E[10]||(E[10]=(...R)=>e.unref(ee).onClick&&e.unref(ee).onClick(...R)),onCopy:E[11]||(E[11]=(...R)=>e.unref(ee).onCopy&&e.unref(ee).onCopy(...R)),onPaste:E[12]||(E[12]=(...R)=>e.unref(ee).onPaste&&e.unref(ee).onPaste(...R)),onScrollPassive:E[13]||(E[13]=R=>{e.unref(Jn)(R.target),e.unref(yt).schedule()})},[s.value?(e.openBlock(),e.createElementBlock("div",qs,e.toDisplayString(e.unref(M).loading),1)):i.value?(e.openBlock(),e.createElementBlock("div",Ks,[e.createTextVNode(e.toDisplayString(i.value)+" ",1),e.createElementVNode("button",{class:"mrp-retry",type:"button",onClick:Ie},e.toDisplayString(e.unref(M).retry),1)])):!o.value||z.value===0?(e.openBlock(),e.createBlock(fn,{key:2,title:e.unref(Yt)?e.unref(M).paramPrompt??e.unref(M).paramsTitle:e.unref(M).empty,description:e.unref(Yt)?e.unref(M).paramPromptDescription:e.unref(st).description??e.unref(M).emptyDescription},null,8,["title","description"])):(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-scale",style:e.normalizeStyle({width:`${e.unref(ht).w*e.unref(ue)}px`,height:`${e.unref(ht).h*e.unref(ue)}px`})},[e.createElementVNode("div",{ref_key:"containerRef",ref:w,class:"mrp-scale-inner",style:e.normalizeStyle({transform:`scale(${e.unref(ue)})`,transformOrigin:"top left",width:`${e.unref(ht).w}px`})},[e.unref(We).padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-spacer-top",style:e.normalizeStyle({height:`${e.unref(We).padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Qt),R=>(e.openBlock(),e.createElementBlock("div",{key:R.index,class:"mrp-page-holder","data-page":R.index+1},null,8,js))),128)),e.unref(We).padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-spacer-bottom",style:e.normalizeStyle({height:`${e.unref(We).padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],4)],4)),!s.value&&!i.value&&o.value&&z.value>0&&t.emptyState?(e.openBlock(),e.createBlock(fn,{key:4,title:e.unref(st).title??e.unref(M).empty,description:e.unref(st).description??e.unref(M).emptyDescription},null,8,["title","description"])):e.createCommentVNode("",!0)],544),e.unref(Y).thumbnails&&p.value&&z.value>0?(e.openBlock(),e.createElementBlock("aside",{key:0,ref_key:"thumbsRef",ref:h,class:"mrp-thumbs",onScrollPassive:E[14]||(E[14]=(...R)=>e.unref(ke).onScroll&&e.unref(ke).onScroll(...R))},[e.unref(ke).windowRange.value.padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-thumb-spacer",style:e.normalizeStyle({height:`${e.unref(ke).windowRange.value.padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ke).visibleThumbs.value,R=>(e.openBlock(),e.createElementBlock("button",{key:R.index,class:e.normalizeClass(["mrp-thumb",{"mrp-thumb-active":R.index+1===m.value}]),type:"button","aria-label":`${e.unref(M).thumbnails} · ${e.unref(M).pageInfo.replace("{cur}",String(R.index+1)).replace("{total}",String(z.value))}`,"aria-current":R.index+1===m.value?"page":void 0,style:e.normalizeStyle({height:`${R.height+20}px`}),onClick:re=>me(R.index+1)},[e.createElementVNode("span",{class:"mrp-thumb-box","data-thumb":R.index+1,style:e.normalizeStyle({height:`${R.height}px`})},null,12,Hs),e.createElementVNode("span",Us,e.toDisplayString(R.index+1),1)],14,Ws))),128)),e.unref(ke).windowRange.value.padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-thumb-spacer",style:e.normalizeStyle({height:`${e.unref(ke).windowRange.value.padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)]),z.value>0?(e.openBlock(),e.createElementBlock("footer",Gs,[e.createElementVNode("div",Js,[e.unref(k).navigation!==!1?(e.openBlock(),e.createBlock(Do,{key:0,plan:o.value,"current-page":m.value,messages:e.unref(M),busy:s.value||S.value||e.unref(A).saving.value,onGoto:me},null,8,["plan","current-page","messages","busy"])):e.createCommentVNode("",!0),ut.value&&e.unref(Ce)?(e.openBlock(),e.createElementBlock("button",{key:1,class:"mrp-calculation-toggle",type:"button","aria-label":dt.value.calculationTitle,onClick:zn},[E[15]||(E[15]=e.createElementVNode("span",{"aria-hidden":"true"},"∑",-1)),e.createTextVNode(e.toDisplayString(dt.value.calculationTitle),1),e.unref(mt).result.value?(e.openBlock(),e.createElementBlock("strong",Zs,e.toDisplayString(e.unref(mt).result.value.formatted),1)):e.createCommentVNode("",!0)],8,Ys)):e.createCommentVNode("",!0)]),e.createVNode(Ft,{"page-count":z.value,"current-page":m.value,messages:e.unref(M),busy:s.value||S.value||e.unref(A).saving.value,onGoto:me},null,8,["page-count","current-page","messages","busy"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Xs,[e.renderSlot(u.$slots,"default",{},void 0,!0)]),e.unref(Re)?(e.openBlock(),e.createElementBlock("div",Qs,[E[16]||(E[16]=e.createElementVNode("div",null,"mach-report debug",-1)),e.createElementVNode("div",null,"pages: "+e.toDisplayString(e.unref(Re).pages)+" | window: ["+e.toDisplayString(e.unref(Re).window)+"]",1),e.createElementVNode("div",null,"zoom: "+e.toDisplayString(e.unref(Re).zoom)+" | load: "+e.toDisplayString(e.unref(Re).loadMs),1),e.createElementVNode("div",null,"plan: "+e.toDisplayString(e.unref(Re).planKB)+"KB",1)])):e.createCommentVNode("",!0)],6))}}),Dn=j._export_sfc(_s,[["__scopeId","data-v-f730d664"]]),ei=Object.freeze(Object.defineProperty({__proto__:null,default:Dn},Symbol.toStringTag,{value:"Module"}));exports.PlanLoadError=_e;exports.REPORT_EXPORT_FORMATS=rt;exports.REPORT_PREVIEW_TOOLS=Rt;exports.ReportPagination=Ft;exports.ReportPreview=Dn;exports.ReportPreview$1=ei;exports.ReportPrintResourceError=de;exports.ReportToolbar=Nn;exports.buildPrintDocument=kn;exports.buildWordHtml=Ca;exports.cloneReportSnapshot=pe;exports.createDefaultPdfExporter=$n;exports.createFetchRequest=ya;exports.createPrintCalibrationPlan=Bn;exports.createReportStoragePreferences=ks;exports.joinReportIds=ha;exports.normalizeReportIds=Tt;exports.preparePrintResources=Ot;exports.printPlans=xn;exports.usePageWindow=yn;exports.usePrintExport=Cn;exports.useZoom=bn;