@agile-team/mach-report 2.16.0 → 2.18.0

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