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