@agile-team/mach-report 2.15.0 → 2.17.0

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