@agile-team/mach-report 2.18.0 → 2.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +4 -3
  2. package/dist/{ExcelBindingWizard-Czn3C2yE.cjs → ExcelBindingWizard-UHSApSG9.cjs} +1 -1
  3. package/dist/{ExcelBindingWizard-DMGZj6I6.js → ExcelBindingWizard-xJIYmnZ_.js} +1 -1
  4. package/dist/{ParamEditor-oDfD8LgE.cjs → ParamEditor-BZb-okUd.cjs} +1 -1
  5. package/dist/{ParamEditor-KzDQvbHY.js → ParamEditor-D1wWemaf.js} +1 -1
  6. package/dist/{ReportBatchPanel-BJK7PvZ4.js → ReportBatchPanel-B88R-fME.js} +1 -1
  7. package/dist/{ReportBatchPanel-DnmNRssu.cjs → ReportBatchPanel-BkJFqeEW.cjs} +1 -1
  8. package/dist/ReportLabelStudio-B4WZ2XNN.js +239 -0
  9. package/dist/ReportLabelStudio-BN-fYNCr.cjs +1 -0
  10. package/dist/ReportPreview-CuoHl15N.cjs +6 -0
  11. package/dist/{ReportPreview-BxWWTUL5.js → ReportPreview-DBbctg6C.js} +2261 -2219
  12. package/dist/{ReportTemplateLibrary-BFjB08Wu.js → ReportTemplateLibrary-BGELmgd3.js} +1 -1
  13. package/dist/{ReportTemplateLibrary-BO42QnWd.cjs → ReportTemplateLibrary-BOh2MgjQ.cjs} +1 -1
  14. package/dist/{RuleEditor-CqxT1a-W.js → RuleEditor-CoLqgehG.js} +1 -1
  15. package/dist/{RuleEditor-D7YWigD9.cjs → RuleEditor-XaLcCdTb.cjs} +1 -1
  16. package/dist/{TemplateOutlinePanel-zG0DrsIB.js → TemplateOutlinePanel-DU95loB-.js} +1 -1
  17. package/dist/{TemplateOutlinePanel-B0XX350V.cjs → TemplateOutlinePanel-DiG8tRRe.cjs} +1 -1
  18. package/dist/{TemplateReusePanel-Czwe5GbC.js → TemplateReusePanel-DE1KSD6c.js} +1 -1
  19. package/dist/{TemplateReusePanel-BD0HSKp_.cjs → TemplateReusePanel-G-Y299wc.cjs} +1 -1
  20. package/dist/{TemplateReviewPanel-CA5sdffM.cjs → TemplateReviewPanel-KQx9ts0D.cjs} +1 -1
  21. package/dist/{TemplateReviewPanel-NhmQI65C.js → TemplateReviewPanel-vqFJ_Y9o.js} +1 -1
  22. package/dist/artifact-integrity.json +34 -32
  23. package/dist/designer-CyKXBhQg.cjs +2 -0
  24. package/dist/designer-fVvpYg8H.js +5824 -0
  25. package/dist/designer.cjs +1 -1
  26. package/dist/designer.d.cts +93 -1
  27. package/dist/designer.d.ts +93 -1
  28. package/dist/designer.js +22 -19
  29. package/dist/{plugin-DM1M2wlI.cjs → plugin-CPyHs4UC.cjs} +1 -1
  30. package/dist/{plugin-ByjF2kiV.js → plugin-DsXJRR6Q.js} +1 -1
  31. package/dist/sbom.cdx.json +1 -1
  32. package/dist/server.cjs +1 -1
  33. package/dist/server.js +1 -1
  34. package/dist/style.css +1 -1
  35. package/dist/vue-async.cjs +1 -1
  36. package/dist/vue-async.js +3 -3
  37. package/dist/vue.cjs +1 -1
  38. package/dist/vue.js +3 -3
  39. package/package.json +1 -1
  40. package/dist/ReportPreview-Yf99omi3.cjs +0 -6
  41. package/dist/designer--TKECSEc.cjs +0 -2
  42. package/dist/designer-d6hJS41w.js +0 -5683
@@ -0,0 +1,6 @@
1
+ "use strict";var aa=Object.create;var Zt=Object.defineProperty;var oa=Object.getOwnPropertyDescriptor;var ra=Object.getOwnPropertyNames;var la=Object.getPrototypeOf,sa=Object.prototype.hasOwnProperty;var ia=(t,n,a,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of ra(n))!sa.call(t,o)&&o!==a&&Zt(t,o,{get:()=>n[o],enumerable:!(r=oa(n,o))||r.enumerable});return t};var Ue=(t,n,a)=>(a=t!=null?aa(la(t)):{},ia(n||!t||!t.__esModule?Zt(a,"default",{value:t,enumerable:!0}):a,t));const e=require("vue"),U=require("@agile-team/mach-report"),ce=require("./prefill-D7EswyTI.cjs"),X=require("./progress-B0ctFpKf.cjs"),ie=require("./ReportParamPanel-sOANVRz-.cjs"),gt=require("./prepared-CGVphji3.cjs"),Yt=require("./sha256-DgZAKXqI.cjs"),sn=require("./component-tree-6TV7W6Yj.cjs"),W=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),ca=require("./computed-4TnxzgIh.cjs"),Ct=require("./json-snapshot-jiXff4lc.cjs"),tt=require("./grid-geometry-CZ_cYB6O.cjs"),vt=require("./injection-keys-Db_DyLkm.cjs");function St(t){return t==null?[]:Array.isArray(t)?t.map(String).filter(n=>n!==""):String(t).split(",").map(n=>n.trim()).filter(n=>n!=="")}function ua(t){return St(t).join(",")}class Je extends Error{constructor(n){super(n),this.name="PlanLoadError"}}function da(t={}){const{baseUrl:n="",headers:a,credentials:r,timeoutMs:o=3e4}=t,l=n.replace(/\/+$/,"");return async({url:s,method:i,params:c,signal:u})=>{let m=`${l}${s}`;if(c&&Object.keys(c).length>0){const v=m.indexOf("#"),D=v>=0?m.slice(v):"",h=v>=0?m.slice(0,v):m,k=h.indexOf("?"),B=k>=0?h.slice(0,k):h,b=new URLSearchParams(k>=0?h.slice(k+1):"");for(const[E,M]of Object.entries(c))b.set(E,M);m=`${B}?${b}${D}`}const d=(v,D)=>{const h=new Je(v);return Object.defineProperty(h,"cause",{value:D,configurable:!0,writable:!0}),h};if(u?.aborted)throw d(`请求已取消: ${s}`,u.reason);const f=new AbortController;let y;const p=()=>{f.signal.aborted||(y="external",f.abort(u?.reason))};u?.addEventListener("abort",p,{once:!0});const g=setTimeout(()=>{f.signal.aborted||(y="timeout",f.abort())},o);try{const v=await fetch(m,{method:i.toUpperCase(),headers:{Accept:"application/json",...a},credentials:r,signal:f.signal});if(!v.ok)throw new Je(`HTTP ${v.status} ${s}`);return await v.json()}catch(v){throw y==="timeout"?d(`请求超时(${o}ms): ${s}`,v):y==="external"?d(`请求已取消: ${s}`,v):v instanceof Je?v:d(`请求失败(${s}): ${v instanceof Error?v.message:String(v)}`,v)}finally{clearTimeout(g),u?.removeEventListener("abort",p)}}}function cn(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 ce.createPageWindowIndex(h.map(k=>k.pageHeightMm*r),o.value)}),c=e.computed(()=>{let h=0;for(const k of t.value?.pages??[])h=Math.max(h,k.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:k,end:B}=u.value;return h.pages.slice(k,B+1).map((b,E)=>({page:b,index:k+E}))});let d=0,f=!1,y;function p(h){h&&(l.value=h.scrollTop,s.value=h.clientHeight||800)}function g(h,k){h.scrollTop=i.value.offsetAt(k)*n.value,y={top:h.scrollTop,index:k,zoom:n.value,geometry:i.value},p(h)}function v(h,k){return B=>{d||f||(d=requestAnimationFrame(()=>{if(d=0,f||(p(B),k.value<=0))return;if(y&&y.top===B.scrollTop&&y.zoom===n.value&&y.geometry===i.value){h.value=Math.min(k.value,y.index+1);return}y=void 0;const b=Math.max(0,B.scrollTop+32)/n.value;h.value=Math.min(k.value,i.value.pageAt(b)+1)}))}}function D(){f=!0,d&&cancelAnimationFrame(d),d=0}return e.onScopeDispose(D),{contentSize:c,windowRange:u,visiblePages:m,makeScrollHandler:v,refreshViewport:p,scrollToPage:g,pageOffsetPx:h=>i.value.offsetAt(h),destroy:D}}const Ge=96/25.4;function ma(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(b,E,M,x){return!s&&E===o&&t.plan.value===M&&t.root.value===x&&x.contains(b.holder)&&Number(b.holder.dataset.page)===b.index+1}function m(b){const{holder:E,page:M}=b;n.delete(E),E.style.width=`${M.pageWidthMm*Ge}px`,E.style.height=`${M.pageHeightMm*Ge}px`,E.setAttribute("aria-busy","true");const x=E.ownerDocument.createElement("div");x.className="mrp-page-loading";const I=E.ownerDocument.createElement("span");I.textContent=t.loading(),I.style.transform=`scale(${1/Math.max(1e-4,t.zoom())})`,x.append(I),E.replaceChildren(x)}function d(b){const E=n.get(b.holder);if(!E||E.page!==b.page||E.element.parentElement!==b.holder)return!1;const M=!!E.element.querySelector(".mrp-cell-editor-host");return E.windowed!==v(b.page)&&!M?!1:(D(b.holder,E),E.query!==t.query()&&!M&&(t.clear(E.element),t.highlight(E.element),E.query=t.query()),!0)}function f(b,E,M,x){if(u(b,E,M,x))try{const I=v(b.page),z=I?U.createPageViewportRenderer(b.page,96,{},b.holder.ownerDocument):void 0,ee=z?.element??U.renderPage(b.page,96,{},b.holder.ownerDocument);if(t.highlight(ee),!u(b,E,M,x))return;b.holder.replaceChildren(ee),b.holder.removeAttribute("aria-busy");const Q={page:b.page,element:ee,query:t.query(),viewport:z,windowed:I};n.set(b.holder,Q),D(b.holder,Q),t.mounted(b.holder),t.ready()}catch(I){if(!u(b,E,M,x))return;b.holder.removeAttribute("aria-busy");const z=b.holder.ownerDocument.createElement("div");z.className="mrp-page-render-error",z.setAttribute("role","alert"),z.textContent=I instanceof Error?I.message:String(I),b.holder.replaceChildren(z),t.error(I)}}function y(b,E,M,x){b.length&&(l=requestAnimationFrame(()=>{if(E!==o||s)return;l=0;const I=b.shift();I&&f(I,E,M,x),E===o&&t.plan.value===M&&t.root.value===x&&y(b,E,M,x)}))}function p(){c();const b=t.plan.value,E=t.root.value;if(s||!b||!E){r=void 0;return}const M=o,x=r?.plan===b?r.index:t.priority();r=void 0;const I=[];E.querySelectorAll(".mrp-page-holder").forEach(Q=>{const ae=Number(Q.dataset.page)-1,w=b.pages[ae];if(!w)return;const N={holder:Q,page:w,index:ae};d(N)||(m(N),I.push(N))});const z=I.findIndex(Q=>Q.index===x),ee=z<0?void 0:I.splice(z,1)[0];ee&&f(ee,M,b,E),t.ready(),y(I,M,b,E)}function g(b){s||!t.plan.value||(r={plan:t.plan.value,index:b},a.value++)}e.watch([t.plan,t.root,t.pages,t.priority,t.focusToken,()=>t.editorToken?.(),t.query,t.zoom,t.loading,()=>t.windowing?.(),a],p,{flush:"post",immediate:!0});function v(b){return!t.viewport?.value?.clientWidth||t.windowing?.()===!1||t.query().trim()||b.layout!=="wide"?!1:b.components.reduce((E,M)=>E+(M.grid?.cells.reduce((x,I)=>x+I.length,0)??0),0)>1e3}function D(b,E){const M=t.viewport?.value;if(!M||!E.viewport)return;const x=M.getBoundingClientRect(),I=b.getBoundingClientRect(),z=Ge*t.zoom(),ee=b.querySelector(".mrp-cell-editor-host")?.closest("td[data-mr-row-index]")??b.ownerDocument.activeElement?.closest("td[data-mr-row-index]"),Q=ee?.closest("[data-mr-component-index]"),ae=ee&&Q&&b.contains(ee)?{componentIndex:Number(Q.dataset.mrComponentIndex),rowIndex:Number(ee.dataset.mrRowIndex),columnIndex:Number(ee.dataset.mrColumnIndex)}:void 0;E.viewport.update({leftMm:(x.left-I.left)/z,topMm:(x.top-I.top)/z,widthMm:M.clientWidth/z,heightMm:M.clientHeight/z},ae)&&t.mounted(b)}function h(){s||i||(i=requestAnimationFrame(()=>{i=0,!s&&t.root.value?.querySelectorAll(".mrp-page-holder").forEach(b=>{const E=n.get(b);E&&D(b,E)})}))}function k(b){const E=t.viewport?.value,M=t.plan.value?.pages[b.pageIndex],x=t.root.value?.querySelector(`[data-page="${b.pageIndex+1}"]`),I=M?.components[b.componentIndex];if(!E||!x||!I?.grid)return;const z=n.get(x);if(!z?.viewport)return;const ee=U.resolveGridLayout(I.grid,I.widthMm,I.heightMm).cells.find(A=>A.ri===b.rowIndex&&A.ci===b.columnIndex);if(!ee)return;const Q=E.getBoundingClientRect(),ae=x.getBoundingClientRect(),w=Ge*t.zoom(),N=ae.left+(I.leftMm+ee.xMm)*w,P=ae.top+(I.topMm+ee.yMm)*w;E.scrollLeft+=B(N,N+ee.widthMm*w,Q.left,Q.left+E.clientWidth),E.scrollTop+=B(P,P+ee.heightMm*w,Q.top,Q.top+E.clientHeight),D(x,z)}function B(b,E,M,x){return b<M+8?b-M-8:E>x-8?Math.min(b-M-8,E-x+8):0}return e.onScopeDispose(()=>{s=!0,r=void 0,c(),i&&cancelAnimationFrame(i)}),{prioritize:g,cancel:c,refreshViewport:h,reveal:k}}function un(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 dn(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 fa=0;function Qt(t,n){const a=new AbortController;let r={taskId:`mr-output-${Date.now().toString(36)}-${++fa}`,kind:t,stage:t==="print"?"print":"encode",status:"running",cancellable:!0};function o(){try{n?.(Object.freeze({...r}))}catch{}}return{controller:a,get task(){return r},start:o,update(l,s,i){a.signal.aborted||r.status!=="running"||(r={...r,stage:l,completed:s,total:i},o())},finish(l="completed"){r.status==="running"&&(r={...r,status:l,cancellable:!1},o(),l==="cancelled"&&a.abort())}}}class pe extends Error{constructor(n,a=""){super(`Print preparation failed: ${n} ${a}`),this.kind=n,this.resource=a,this.code="print-resource",this.name="ReportPrintResourceError"}}function mn(t,n){const a={...ie.DEFAULT_PRINT_MESSAGES,...n};return t instanceof pe?t.kind==="timeout"?a.printPrepareTimeout:t.kind==="image"?a.printImageFailed.replace("{index}",String(t.resource)):t.kind==="font"?a.printFontFailed.replace("{family}",String(t.resource)):a.printPrepareFailed:a.printPrepareFailed}function pa(t,n){let a;try{a=new URL(t,n)}catch{throw new pe("config")}if(!["http:","https:"].includes(a.protocol)||t.length>16384)throw new pe("config");return a.href}async function ga(t,n,a,r){const o=n.fonts??[];if(o.length>8)throw new pe("config");for(const l of o){if(X.assertOutputActive(a),typeof l.family!="string"||!l.family.trim()||l.family.length>256||typeof l.source!="string")throw new pe("config");const s=t.defaultView?.FontFace;if(!s||!t.fonts)throw new pe("font",l.family);try{const{loadFontWithCache:i}=await Promise.resolve().then(()=>require("./font-loader-DBBJ5KE9.cjs")),c=await i(pa(l.source,r),{signal:a});if(!c)throw new pe("font",l.family);const u=new s(l.family,c,{weight:l.weight,style:l.style});await X.waitForOutput(u.load(),a),t.fonts.add(u)}catch(i){throw X.assertOutputActive(a),i instanceof pe?i:new pe("font",l.family)}}t.documentElement.getBoundingClientRect(),t.fonts&&await X.waitForOutput(t.fonts.ready,a)}async function va(t,n,a){X.assertOutputActive(a);try{if(typeof t.decode=="function"?await X.waitForOutput(t.decode(),a):t.complete||await new Promise((r,o)=>{const l=()=>{t.removeEventListener("load",s),t.removeEventListener("error",i),a.removeEventListener("abort",c)},s=()=>{l(),r()},i=()=>{l(),o(new pe("image",n))},c=()=>{l(),o(a.reason)};t.addEventListener("load",s,{once:!0}),t.addEventListener("error",i,{once:!0}),a.addEventListener("abort",c,{once:!0}),a.aborted?c():t.complete&&s()}),X.assertOutputActive(a),t.naturalWidth<=0||t.naturalHeight<=0)throw new pe("image",n)}catch{throw X.assertOutputActive(a),new pe("image",n)}}async function Nt(t,n={},a,r=document.baseURI){const o=n.resourceTimeoutMs??15e3;if(!Number.isSafeInteger(o)||o<1||o>12e4)throw new pe("config");const l=new AbortController,s=X.forwardOutputAbort(a,l),i=setTimeout(()=>l.abort(new pe("timeout")),o);try{X.assertOutputActive(l.signal),await ga(t,n,l.signal,r);const c=t.querySelectorAll("img");let u=0;const m=async()=>{for(;u<c.length;){const d=u++;await va(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 $e=8;function ze(){return new Promise(t=>setTimeout(t,0))}function Xe(t){return`p${t.pageWidthMm}x${t.pageHeightMm}`.replace(/[.+]/g,"_")}function Ye(t){const n=new Map;return t.pages.forEach(o=>{n.has(Xe(o))||n.set(Xe(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 ${Xe(o)}{size:${o.pageWidthMm}mm ${o.pageHeightMm}mm;margin:0;}`).join(`
5
+ `)}
6
+ body{margin:0;background:#fff;}`}</style></head><body>`}function Qe(t,n){const a=U.renderPage(t,96,{},document);a.style.page=Xe(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 fn(t,n){return{head:Ye(t),pageChunks:t.pages.map(a=>Qe(a,n))}}async function pn(t,n={}){const a={schemaVersion:"mach-report-batch-print",pages:t.flatMap(i=>i.pages)};if(a.pages.length===0)return;const r=ie.snapshotPrintOptions(n.printOptions),o=Ye(a),l=document.createElement("iframe");l.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(l);let s=!1;try{const i=l.contentDocument;i.open(),i.write(o);for(let c=0;c<a.pages.length;c++)X.assertOutputActive(n.signal),i.write(Qe(a.pages[c],r)),c%$e===$e-1&&(X.notifyOutputProgress(n,c+1,a.pages.length),await ze());i.write("</body></html>"),i.close(),await ze(),await Nt(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?.(mn(i,n.messages))),i}finally{s?setTimeout(()=>l.remove(),6e4):l.remove()}}function gn(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 ya(t){const{head:n,pageChunks:a}=fn(t);return{html:`${gn(n)}${a.join("")}</body></html>`,filename:"mach-report.doc"}}function vn(t,n){let a=null,r=!1,o=!1,l=0,s=0;const i=new Set,c=new Map;let u=null;const m=new Map;let d=null,f=null,y=null,p=null,g=null;function v(C,V){return!o&&t.value===C&&l===V}function D(){if(o)return;const C=[...c.values()].reverse().find(V=>v(V.plan,V.epoch))?.format??null;C!==d&&(d=C,n.onBusy?.(C))}function h(C,V,K){const j={};return c.set(j,{plan:C,epoch:V,format:K,run:Qt("export",n.onTask)}),c.get(j).run.start(),D(),j}function k(C){c.get(C)?.run.finish(),c.delete(C),D()}function B(){for(const[C,V]of m)v(V.plan,V.epoch)||(C.close(),m.delete(C))}function b(C=!0){if(C){s++;for(const V of i)V.close();i.clear()}for(const V of c.values())V.run.finish("cancelled");u?.finish("cancelled"),l++,M(),D(),B()}const E=e.watch(t,()=>b(!1),{flush:"sync"});function M(){a?.remove(),a=null}function x(){b(),o=!0,l++,E(),M(),B(),c.clear(),n.onPrinting?.(!1)}function I(C,V){const K=URL.createObjectURL(C);setTimeout(()=>URL.revokeObjectURL(K),1e4);const j=document.createElement("a");j.href=K,j.download=V,j.click()}function z(C,V,K,j,Y){K.update("download"),v(C,V)&&!K.controller.signal.aborted&&I(j,Y)}async function ee(C,V,K,j,Y){const te=C.contentDocument;te.open(),te.write(Ye(V));for(let re=0;re<V.pages.length;re++)if(j.controller.signal.aborted||(te.write(Qe(V.pages[re],Y)),j.update("print",re+1,V.pages.length),re%$e===$e-1&&await ze(),C!==a))return!1;return te.write("</body></html>"),te.close(),await ze(),await Nt(te,Y,j.controller.signal),!(!v(V,K)||C!==a)}function Q(){const C=s,V=j=>j&&!o&&C===s,K=j=>(!o&&C===s&&n.onError(j instanceof Error?j.message:"报表修改尚未完成","export"),!1);try{const j=n.beforeOutput?.()??!0;return typeof j=="boolean"?V(j):j.then(V,K)}catch(j){return K(j)}}function ae(C){const V=Q();return typeof V=="boolean"?V?C():Promise.resolve():V.then(K=>K?C():void 0)}function w(C,V,K,j,Y){j.finish(j.controller.signal.aborted?"cancelled":"failed"),Y===a&&M(),v(V,K)&&!j.controller.signal.aborted&&n.onError(mn(C,n.getPrintMessages?.()),"print")}async function N(){if(r)return;const C=t.value;if(o||!C||C.pages.length===0)return;const V=l;r=!0;const K=Qt("print",n.onTask);u=K,K.start(),n.onPrinting?.(!0),M(),a=document.createElement("iframe"),a.style.cssText="position:fixed;right:0;bottom:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(a);const j=a;try{if(!v(C,V)||K.controller.signal.aborted){M();return}const Y=ie.snapshotPrintOptions(n.getPrintOptions?.());if(!await ee(j,C,V,K,Y))return;j.contentWindow?.focus(),j.contentWindow?.print()}catch(Y){w(Y,C,V,K,j)}finally{K.finish(),u===K&&(u=null),r=!1,o||n.onPrinting?.(!1)}}function P(C,V,K){return{signal:K.controller.signal,onDiagnostic:j=>{v(C,V)&&!K.controller.signal.aborted&&n.onDiagnostic?.(j)},onProgress:(j,Y)=>K.update("encode",j,Y)}}function A(C,V,K){if(f?.plan===C&&f.epoch===V)return f.promise;const j=Promise.resolve().then(()=>{if(!v(C,V))throw new Error("报表已切换或卸载");const Y=ne=>{v(C,V)&&n.onWarning?.(ne)},te=n.getPdfExporter(),re=K?P(C,V,K):void 0;return X.waitForOutput(n.encoding?n.encoding.pdf(C,te,Y,re):te(C,Y,re),K?.controller.signal)}).finally(()=>{f?.promise===j&&(f=null)});return f={plan:C,epoch:V,promise:j},j}async function $(){const C=t.value;if(o||!C||C.pages.length===0)return;const V=l;if(y?.plan===C&&y.epoch===V)return y.promise;const K=h(C,V,"PDF"),j=(async()=>{try{const Y=c.get(K).run,te=await A(C,V,Y);if(!v(C,V))return;z(C,V,Y,new Blob([te],{type:"application/pdf"}),"mach-report.pdf")}catch(Y){c.get(K)?.run.finish("failed"),v(C,V)&&n.onError(Y instanceof Error?`PDF 导出失败: ${Y.message}`:"PDF 导出失败","pdf")}finally{k(K),y?.token===K&&(y=null)}})();return y={plan:C,epoch:V,promise:j,token:K},j}async function R(){const C=t.value;if(o||!C||C.pages.length===0)return;const V=l;if(p?.plan===C&&p.epoch===V)return p.promise;const K={...n.getXlsxOptions?.()},j=h(C,V,"Excel"),Y=(async()=>{try{if(!v(C,V))return;const te=c.get(j).run,re=P(C,V,te),ne=n.encoding?n.encoding.xlsx(C,K,re):import("@agile-team/mach-report/xlsx").then(async({renderPlanToXlsx:Se})=>{X.assertOutputActive(te.controller.signal);const xe=await Se(C,{...K,...re});return{buffer:new Uint8Array(xe.buffer),warnings:xe.warnings,notes:xe.notes}}),{buffer:Ce,warnings:ve,notes:Pe}=await X.waitForOutput(ne,te.controller.signal);if(!v(C,V))return;for(const Se of Pe??[])v(C,V)&&n.onNote?.(Se);if(ve.length>0&&n.onWarning?.(`Excel 导出有 ${ve.length} 条提示:${ve.slice(0,2).join(";")}`),!v(C,V))return;z(C,V,te,new Blob([Ce],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),"mach-report.xlsx")}catch(te){c.get(j)?.run.finish("failed"),v(C,V)&&n.onError(te instanceof Error?`Excel 导出失败: ${te.message}`:"Excel 导出失败","export")}finally{k(j),p?.token===j&&(p=null)}})();return p={plan:C,epoch:V,promise:Y,token:j},Y}async function T(){const C=t.value;if(o||!C||C.pages.length===0)return;const V=l;if(g?.plan===C&&g.epoch===V)return g.promise;const K=h(C,V,"图片"),j=(async()=>{try{const Y=c.get(K).run,{blobs:te}=await X.waitForOutput(U.renderPlanToImages(C,{...P(C,V,Y),dpr:Math.min(2,typeof devicePixelRatio=="number"?devicePixelRatio:1)}),Y.controller.signal);if(!v(C,V))return;te.forEach((re,ne)=>{z(C,V,Y,re,te.length>1?`mach-report-page-${ne+1}.png`:"mach-report.png")})}catch(Y){c.get(K)?.run.finish("failed"),v(C,V)&&n.onError(Y instanceof Error?`图片导出失败: ${Y.message}`:"图片导出失败","export")}finally{k(K),g?.token===K&&(g=null)}})();return g={plan:C,epoch:V,promise:j,token:K},j}async function L(C){const V=t.value;if(o||!V||!V.pages.length)return;const K=l,j=h(V,K,C==="word"?"Word":"HTML"),Y=c.get(j).run;try{const te=[];for(const[Ce,ve]of V.pages.entries()){if(!v(V,K))return;te.push(Qe(ve)),Y.update("encode",Ce+1,V.pages.length),Ce%$e===$e-1&&await ze()}if(!v(V,K))return;const re=Ye(V),ne=`${C==="word"?gn(re):re}${te.join("")}</body></html>`;z(V,K,Y,new Blob([ne],{type:C==="word"?"application/msword;charset=utf-8":"text/html;charset=utf-8"}),C==="word"?"mach-report.doc":"mach-report.html")}catch(te){Y.finish("failed"),v(V,K)&&n.onError(te instanceof Error?`导出失败: ${te.message}`:"导出失败","export")}finally{k(j)}}async function F(){await L("word")}function Z(){return ae(N)}function _(){return ae(T)}function G(){return ae(F)}async function q(C){const V=t.value;if(!(o||!V||V.pages.length===0)){if(C==="pdf"){await $();return}if(C==="xlsx"||C==="excel"){await R();return}if(C==="png"||C==="image"){await T();return}if(C==="word"||C==="doc"){await F();return}if(C!=="html"){n.onError(`不支持的导出格式:${C}`,"export");return}await L("html")}}function se(C){return ae(()=>q(C))}function fe(C){const V=t.value;if(o||!V||!V.pages.length){C.close();return}const K=l;m.set(C,{plan:V,epoch:K});const j=h(V,K,"PDF");A(V,K,c.get(j).run).then(Y=>{if(!v(V,K)||C.closed){m.delete(C)&&C.close();return}const te=URL.createObjectURL(new Blob([Y],{type:"application/pdf"}));setTimeout(()=>URL.revokeObjectURL(te),6e4);const re=C.document;re.title="PDF 预览",re.documentElement.style.height="100%",re.body.style.cssText="margin:0;height:100%;";const ne=re.createElement("iframe");ne.title="PDF 预览",ne.style.cssText="display:block;width:100%;height:100%;border:0;",ne.src=te,re.body.replaceChildren(ne),m.delete(C)}).catch(Y=>{c.get(j)?.run.finish("failed"),C.close(),m.delete(C),v(V,K)&&n.onError(Y instanceof Error?`PDF 预览失败: ${Y.message}`:"PDF 预览失败","pdf")}).finally(()=>k(j))}function we(){if(o||!t.value?.pages.length)return;const C=globalThis.window.open("","_blank");if(!C){n.onError("浏览器拦截了弹窗,请允许弹窗后重试","pdf");return}const V=Q();if(typeof V=="boolean"){V?fe(C):C.close();return}i.add(C),V.then(K=>{const j=i.delete(C);if(!K||!j||C.closed){C.close();return}fe(C)})}return{print:Z,exportAs:se,exportImages:_,exportWord:G,openPdfWindow:we,invalidatePending:b,cancel:b,releasePrintFrame:M,dispose:x}}let yt;function ba(t,n){return{...t,prepared:gt.capturePreparedHandoff(t.prepared,n?.budget?.maxPreparedBytes??64e6,t.signal).forward(),pdf:gt.snapshotPdfFonts(t.pdf),xlsx:gt.snapshotXlsxOptions(t.xlsx)}}function ha(t){const n=e.shallowRef(),a=new Set;let r=!1,o=0;const l=()=>{o++;for(const i of a)i.abort.abort(),i.exporter?.cancel()},s=()=>{r=!0,l();for(const i of a)i.exporter?.dispose()};return e.onScopeDispose(s),{decision:n,async exportPrepared(i,c){if(r)throw new Error("报表预览已卸载");Yt.throwIfAborted(i.signal);const u=++o,m=t(),d={...m,thresholds:{...m?.thresholds},budget:{...m?.budget}},f={abort:new AbortController},y=X.forwardOutputAbort(i.signal,f.abort);a.add(f);try{const p={...yt?i:ba(i,d),signal:f.abort.signal},g=yt??await X.waitForOutput(Promise.resolve().then(()=>require("./auto-B0EZFIK1.cjs")).then(v=>v.auto).then(v=>{const D=v.createAutoReportExporter;return yt=D,D}),f.abort.signal);return Yt.throwIfAborted(f.abort.signal),f.exporter=g({...d,onDecision:v=>{u!==o||r||(n.value=v,X.observeOutput(()=>m?.onDecision?.(v)))}}),await f.exporter.exportPrepared(p,c)}finally{y(),f.exporter?.dispose(),a.delete(f)}},cancel:l,dispose:s}}function wa(t){return{plan:t,diagnostics:[],revisions:{},stats:{rows:0,pages:t.pages.length,cells:0,durationMs:0},layout:{textMetrics:"provided"}}}function _t(t,n,a,r){return{prepared:wa(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 ka(t){const n=ha(t.execution);function a(s,i){X.assertOutputActive(i.signal);for(const c of s.diagnostics)X.assertOutputActive(i.signal),X.observeOutput(()=>t.diagnostic(c));X.assertOutputActive(i.signal)}async function r(s,i,c,u={}){if(!i.prepare)return i(s,c,u);const m=t.fidelity(),d=await i.prepare(u.signal);X.assertOutputActive(u.signal);const f=await n.exportPrepared({..._t(s,"pdf",u,m),pdf:d});a(f,u);const y=f.diagnostics.find(g=>g.code==="pdf-font"||g.code==="pdf-page");if(y)throw new Error(y.message);const p=f.diagnostics.filter(g=>g.severity==="warning");return p.length&&c(`PDF 有 ${p.length} 处版式降级:${p.slice(0,2).map(g=>g.message).join(";")}`),f.bytes}async function o(s,i,c){const{renderPlanToXlsx:u}=await import("@agile-team/mach-report/xlsx");X.assertOutputActive(s.signal);const m=await u(s.prepared.plan,{...i,...s.xlsx,fidelity:s.fidelity,signal:s.signal,onProgress:(d,f)=>{X.observeOutput(()=>i.onProgress?.(d,f)),c.onProgress?.(d,f)},onDiagnostic:d=>{X.observeOutput(()=>i.onDiagnostic?.(d)),c.onDiagnostic?.(d)}});return X.assertOutputActive(s.signal),{...s.prepared,bytes:new Uint8Array(m.buffer),format:"xlsx",contentType:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",diagnostics:[...m.diagnostics??[],...m.warnings.map(d=>({code:"xlsx-fidelity",severity:"warning",message:d})),...(m.notes??[]).map(d=>({code:"xlsx-snapshot",severity:"info",message:d}))]}}async function l(s,i,c){const{signal:u,fidelity:m,...d}=i,f=t.fidelity()==="strict"||m==="strict",y=Object.values(d).some(g=>typeof g=="function"),p=await n.exportPrepared({..._t(s,"xlsx",c,f?"strict":"warn"),xlsx:d},y?g=>o(g,d,c):void 0);return a(p,c),{buffer:p.bytes,warnings:p.diagnostics.filter(g=>g.severity==="warning").map(g=>g.message)}}return{pdf:r,xlsx:l}}function xa(t){const{plan:n,editing:a,diagnostics:r,task:o}=t,{lastError:l,notice:s,reportError:i}=t.feedback,c=e.ref(null),u=e.ref(!1),m=e.ref(),d=e.computed(()=>({...t.defaultsPrint(),...t.printOverrides(),calibration:m.value??{...t.defaultsPrint()?.calibration,...t.printOverrides()?.calibration}}));e.watch([()=>t.printOverrides(),()=>t.defaultsPrint()],()=>{m.value=void 0});let f;function y(x){const I=n.value;if(!I)return!1;const z={excel:"xlsx",image:"png",doc:"word"}[x]??x,ee=z==="pdf"?"pdf":z==="xlsx"?"xlsx":z==="png"?"canvas":"dom",Q=r.inspect(I,ee);return n.value!==I?!1:Q.length&&t.fidelity()==="strict"?(s.value={kind:"error",message:t.messages().diagnosticsStrict??"输出存在已知降级"},i(s.value.message,"export",{diagnostics:Q}),!1):!0}function p(x){return n.value?r.inspect(n.value,x):[]}const g=vn(n,{encoding:ka({execution:t.execution,fidelity:t.fidelity,diagnostic:r.add}),getPdfExporter:t.getPdfExporter,beforeOutput:()=>a.settle(),onTask:x=>o.receive(x,()=>g.cancel()),onDiagnostic:r.add,onNote:x=>r.add({code:"xlsx-snapshot",message:x,severity:"info"}),getXlsxOptions:()=>t.getXlsxOptions(),getPrintOptions:()=>d.value,getPrintMessages:()=>t.messages(),onError:(x,I)=>{s.value={kind:"error",message:x},i(x,I??"print")},onWarning:x=>{s.value={kind:"warning",message:x},r.add({code:"output",severity:"warning",message:x}),t.feedback.warning(x)},onBusy:x=>{c.value=x,x?s.value={kind:"progress",message:t.messages().exporting.replace("{format}",x)}:s.value?.kind==="progress"&&(s.value=null)},onPrinting:x=>{u.value=x}}),{releasePrintFrame:v,dispose:D}=g,h=e.computed(()=>{const x=n.value?.pages[0];return!!x&&!t.wide()&&[x.pageWidthMm,x.pageHeightMm].every(I=>I>=25&&I<=600)});async function k(){if(!h.value||u.value||t.busy())return;const x=n.value.pages[0];u.value=!0;const I=new AbortController;f=I;try{await pn([dn(x.pageWidthMm,x.pageHeightMm)],{printOptions:d.value,signal:I.signal,messages:t.messages(),onError:z=>{s.value={kind:"error",message:z}}})}catch{}finally{f===I&&(u.value=!1,f=void 0)}}async function B(){if(t.busy())return;const x=a.settle();(typeof x=="boolean"?x:await x)&&(l.value=null,y("html")&&await g.print())}async function b(x){if(t.busy())return;const I=a.settle();(typeof I=="boolean"?I:await I)&&(l.value=null,y(x)&&await g.exportAs(x))}function E(){if(t.busy()||a.active.value||a.saving.value){s.value={kind:"warning",message:t.messages().editingHint??"请先确认单元格修改"};return}l.value=null,y("pdf")&&g.openPdfWindow()}function M(){f?.abort(),v()}return e.onScopeDispose(()=>{f?.abort(),D()}),{exporting:c,printing:u,localPrintCalibration:m,effectivePrintOptions:d,canCalibratePrint:h,testPrintCalibration:k,print:B,exportAs:b,openPdfWindow:E,getOutputDiagnostics:p,invalidate:M,invalidatePending:g.invalidatePending,cancel:g.cancel}}const yn="mrp-hit";function Ea(t){t.querySelectorAll(`mark.${yn}`).forEach(a=>{const r=a.parentNode;if(r){for(;a.firstChild;)r.insertBefore(a.firstChild,a);a.remove(),r.normalize()}})}function Ca(t,n){const a=n.trim();if(!a)return 0;const r=a.toLowerCase(),o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(i){const c=i.parentElement;return!c||c.closest("mark")||/^(SCRIPT|STYLE)$/.test(c.tagName)?NodeFilter.FILTER_REJECT:(i.nodeValue??"").toLowerCase().includes(r)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),l=[];for(let i=o.nextNode();i;i=o.nextNode())l.push(i);let s=0;for(const i of l){const c=i.nodeValue??"",u=c.toLowerCase(),m=i.parentElement;if(!m)continue;const d=document.createDocumentFragment();let f=0,y=u.indexOf(r);for(;y>=0;){y>f&&d.appendChild(document.createTextNode(c.slice(f,y)));const p=document.createElement("mark");p.className=yn,p.textContent=c.slice(y,y+a.length),d.appendChild(p),s++,f=y+a.length,y=u.indexOf(r,f)}f<c.length&&d.appendChild(document.createTextNode(c.slice(f))),m.replaceChild(d,i)}return s}const Sa=new Set(["line","rect","ellipse","chart"]);function*Na(t){for(const n of t.cells??[])for(const a of n??[])yield a?.text??"",yield*a?.children??[]}function*Ba(t){if(sn.isRichText(t))for(const n of t.richParagraphs)for(const a of n.segments??[])yield(a.kind==="field"?a.field:a.text)??"";else t.lines?.length?yield*t.lines:yield t.text??""}function*Va(t){const n=[t.values()];for(;n.length>0;){const a=n[n.length-1].next();if(a.done){n.pop();continue}const r=a.value;if(typeof r=="string"){yield r;continue}yield"",!sn.isImageBackedComponent(r)&&(r.kind==="text"?n.push(Ba(r)):r.grid?n.push(Na(r.grid)):Sa.has(r.kind)||(yield r.fallbackText??""))}}function*$a(t){for(let n=0;n<t.pages.length;n++){for(const a of Va(t.pages[n].components))yield{text:a,pageIndex:n};yield{text:"",pageIndex:n}}}function Da(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 Pa(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 B=i.value;let b=0,E=m.length-1;for(;b<E;){const x=b+E>>>1;m[x].cumulative<=B?b=x+1:E=x}const M=m[b];return M?{pageIndex:M.pageIndex,occurrence:B-(m[b-1]?.cumulative??0)}:null});let f=null,y=null,p=0;function g(){p++,f&&clearTimeout(f),y&&clearTimeout(y),f=y=null,u.value=!1}function v(B){s.value=B,i.value=0,c.value=0,m=[],u.value=!1;const b=B.trim().toLowerCase(),E=n.value;if(!b||!E)return;u.value=!0;const M=p,x=$a(E),I=[];let z=0;function ee(){if(y=null,M!==p||E!==n.value)return;const Q=performance.now();let ae=0;for(;ae<5e3&&performance.now()-Q<4;){const w=x.next();if(w.done){m=I,c.value=z,u.value=!1,m[0]&&a(m[0].pageIndex+1);return}const N=Da(w.value.text,b);if(N>0){z+=N;const P=I[I.length-1];P?.pageIndex===w.value.pageIndex?P.cumulative=z:I.push({pageIndex:w.value.pageIndex,cumulative:z})}ae++}y=setTimeout(ee,0)}ee()}function D(B){if(g(),s.value=B,i.value=c.value=0,m=[],!B.trim()){v("");return}u.value=!0,f=setTimeout(()=>{f=null,v(B)},Math.max(0,e.unref(t.debounceMs)??200))}function h(B){const b=c.value;if(b===0||u.value)return;i.value=(i.value+B+b)%b;const E=d.value;E&&a(E.pageIndex+1)}function k(){g(),s.value="",i.value=c.value=0,m=[]}return e.watch(n,k,{flush:"sync"}),e.onScopeDispose(k),{visible:l,query:s,matchIndex:i,matchCount:c,activeMatch:d,searching:u,toggle:()=>{l.value=!l.value},onInput:D,onNav:h,apply:B=>{s.value.trim()&&r(B,s.value.trim())},clear:B=>{o(B)},reset:k}}function Ra(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 Ia(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(()=>ce.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:k}=u.value;return i.value.slice(h,k+1).map((B,b)=>({index:h+b,height:B}))});let d=0,f=0,y=!1;function p(){const h=a.value;h&&(l.value=h.scrollTop,s.value=h.clientHeight||800)}function g(){y||f||(f=requestAnimationFrame(()=>{f=0,p()}))}function v(){if(m.value,d&&cancelAnimationFrame(d),d=0,y||!r.value||!t.value||!a.value)return;p();const h=m.value,k=t.value,B=a.value;let b=0;function E(){if(d=0,!(y||!r.value||t.value!==k||a.value!==B)){for(let M=0;b<h.length&&M<2;M++,b++){const x=h[b].index,I=B.querySelector(`[data-thumb="${x+1}"]`);if(!I||I.childElementCount>0)continue;const z=o(x);z&&(z.style.width="100%",z.style.height="100%",z.style.display="block",I.appendChild(z))}b<h.length&&(d=requestAnimationFrame(E))}}d=requestAnimationFrame(E)}function D(){y=!0,d&&cancelAnimationFrame(d),f&&cancelAnimationFrame(f),d=f=0}return e.onScopeDispose(D),{schedule:v,destroy:D,onScroll:g,windowRange:u,visibleThumbs:m}}function Ma(){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 Ta(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 Oa=["disabled","aria-expanded"],Aa=["aria-label"],Fa=["aria-label","disabled","onClick"],za={"aria-hidden":"true"},La=e.defineComponent({__name:"ReportExportMenu",props:{messages:{},formats:{},busy:{type:Boolean}},emits:["export"],setup(t,{emit:n}){const a=t,r=n,{opened:o,root:l,trigger:s,panel:i,close:c,onKeydown:u}=ie.usePopover(),m=e.computed(()=>[{format:"xlsx",label:a.messages.exportExcel,extension:".xlsx"},{format:"pdf",label:a.messages.exportPdf,extension:".pdf"},{format:"png",label:a.messages.exportImage,extension:".png"},{format:"word",label:a.messages.exportWord,extension:".doc"},{format:"html",label:a.messages.exportHtml,extension:".html"}].filter(p=>!a.formats||a.formats.includes(p.format)));e.watch(()=>a.busy,p=>{p&&c()});function d(p){a.busy||(r("export",p),c(!0))}function f(p){p.key!=="ArrowDown"&&p.key!=="ArrowUp"||(p.preventDefault(),o.value=!0,p.key==="ArrowUp"&&e.nextTick(()=>i.value?.querySelector("button:last-child")?.focus()))}function y(p){if(p.key==="Tab"){c();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(p.key))return;p.preventDefault(),p.stopPropagation();const v=[...i.value?.querySelectorAll("button:not(:disabled)")??[]],D=v.indexOf(document.activeElement),h=p.key==="Home"?0:p.key==="End"?v.length-1:(D+(p.key==="ArrowDown"?1:-1)+v.length)%v.length;v[h]?.focus()}return(p,g)=>m.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"root",ref:l,class:"mrp-export-menu",onKeydown:g[1]||(g[1]=(...v)=>e.unref(u)&&e.unref(u)(...v))},[e.createElementVNode("button",{ref_key:"trigger",ref:s,type:"button",class:"mrp-nav mrp-export-trigger",disabled:t.busy,"aria-haspopup":"menu","aria-expanded":e.unref(o),onClick:g[0]||(g[0]=v=>o.value=!e.unref(o)),onKeydown:f},[e.createVNode(W._sfc_main,{name:"download"}),e.createTextVNode(e.toDisplayString(t.messages.exportMenu??"导出"),1),e.createVNode(W._sfc_main,{name:"chevron-down",size:12})],40,Oa),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:y},[e.createElementVNode("p",null,e.toDisplayString(t.messages.exportMenuDescription??"选择文件格式"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,v=>(e.openBlock(),e.createElementBlock("button",{key:v.format,type:"button",role:"menuitem",tabindex:"-1","aria-label":v.label,disabled:t.busy,onClick:D=>d(v.format)},[e.createVNode(W._sfc_main,{name:"file"}),e.createElementVNode("span",null,e.toDisplayString(v.label),1),e.createElementVNode("small",za,e.toDisplayString(v.extension),1)],8,Fa))),128))],40,Aa)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)}}),qa=W._export_sfc(La,[["__scopeId","data-v-83a57a3c"]]),Ka=["aria-label"],ja={class:"mrp-pageinfo","aria-live":"polite"},Wa={class:"mrp-page-buttons"},Ha=["aria-label","title","disabled"],Ua=["aria-label","title","disabled"],Ga=["aria-label","title","aria-invalid","disabled"],Ja=["aria-label","disabled"],Xa={key:1,class:"mrp-page-error",role:"alert"},Za=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",ja,e.toDisplayString(s.value),1),e.createElementVNode("div",Wa,[e.createElementVNode("button",{class:"mrp-nav",type:"button","aria-label":t.messages.prevPage,title:t.messages.prevPage,disabled:t.busy||t.currentPage<=1,onClick:u[0]||(u[0]=m=>r("goto",t.currentPage-1))},[e.createVNode(W._sfc_main,{name:"chevron-left"})],8,Ha),e.createElementVNode("button",{class:"mrp-nav",type:"button","aria-label":t.messages.nextPage,title:t.messages.nextPage,disabled:t.busy||t.currentPage>=t.pageCount,onClick:u[1]||(u[1]=m=>r("goto",t.currentPage+1))},[e.createVNode(W._sfc_main,{name:"chevron-right"})],8,Ua)]),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,Ga),[[e.vModelText,o.value]])]),e.createElementVNode("button",{class:"mrp-nav",type:"submit","aria-label":t.messages.pageJump??"跳至页",disabled:t.busy},[e.createVNode(W._sfc_main,{name:"arrow-right",size:14})],8,Ja)],32)):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("span",Xa,e.toDisplayString(t.messages.pageJumpInvalid??"请输入有效页码"),1)):e.createCommentVNode("",!0)],8,Ka)):e.createCommentVNode("",!0)}}),Bt=W._export_sfc(Za,[["__scopeId","data-v-0db4fbd3"]]),Ya=["aria-label"],Qa={class:"mrp-title"},_a=["aria-label"],eo=["aria-label","aria-pressed"],to=["aria-pressed"],no=["aria-pressed"],ao=["aria-label"],oo=["aria-pressed"],ro=["aria-pressed","onClick"],lo=["aria-label"],so=["disabled"],io=["disabled"],co=["disabled"],uo=["aria-label","aria-expanded"],mo=["aria-label"],fo=["placeholder","aria-label","value"],po=["aria-label"],go={key:1,class:"mrp-search-count",role:"status","aria-live":"polite"},vo=["disabled","aria-label"],yo=["disabled","aria-label"],bo=["aria-label"],ho={class:"mrp-search-hint",role:"status"},wo=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=Ta({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",Qa,[e.createVNode(W._sfc_main,{name:"file"}),e.createTextVNode(e.toDisplayString(t.messages.title),1)]),t.showPagination?(e.openBlock(),e.createBlock(Bt,{key:0,"page-count":t.pageCount,"current-page":t.currentPage,messages:t.messages,busy:t.busy,onGoto:d[0]||(d[0]=f=>o("goto",f))},null,8,["page-count","current-page","messages","busy"])):e.createCommentVNode("",!0),d[15]||(d[15]=e.createElementVNode("span",{class:"mrp-spacer"},null,-1)),t.showSearch!==!1?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-read-tools",role:"group","aria-label":t.messages.search??"内容搜索"},[e.createElementVNode("button",{ref_key:"searchToggleRef",ref:i,class:e.normalizeClass(["mrp-nav mrp-search-toggle mrp-icon-button",{"mrp-active":t.search.visible}]),type:"button",title:"Ctrl+F","aria-label":t.messages.search??t.messages.searchPlaceholder,"aria-pressed":t.search.visible,onClick:d[1]||(d[1]=f=>o("search-toggle"))},[e.createVNode(W._sfc_main,{name:"search"})],10,eo),t.showThumbnails!==!1?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.thumbsVisible}]),type:"button","aria-pressed":t.thumbsVisible,onClick:d[2]||(d[2]=f=>o("thumbs-toggle"))},[e.createVNode(W._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,to)):e.createCommentVNode("",!0)],8,_a)):t.showThumbnails!==!1?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.thumbsVisible}]),type:"button","aria-pressed":t.thumbsVisible,onClick:d[3]||(d[3]=f=>o("thumbs-toggle"))},[e.createVNode(W._sfc_main,{name:"grid"}),e.createTextVNode(e.toDisplayString(t.messages.thumbnails),1)],10,no)):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"navigation",{},void 0,!0),e.renderSlot(m.$slots,"data-tools",{},void 0,!0),t.showZoom!==!1?(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-zoom-tools",role:"group","aria-label":t.messages.zoom??"缩放工具"},[e.createElementVNode("button",{class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="fit"}]),"aria-pressed":t.zoomMode==="fit",type:"button",onClick:d[4]||(d[4]=f=>o("zoom","fit"))},[e.createVNode(W._sfc_main,{name:"fit"}),e.createTextVNode(e.toDisplayString(t.messages.fitWidth),1)],10,oo),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList([100,150],f=>e.createElementVNode("button",{key:f,class:e.normalizeClass(["mrp-nav",{"mrp-active":t.zoomMode==="raw"&&Math.round(t.zoom*100)===f}]),"aria-pressed":t.zoomMode==="raw"&&Math.round(t.zoom*100)===f,type:"button",onClick:y=>o("zoom",f)},e.toDisplayString(f)+"%",11,ro)),64))],8,ao)):e.createCommentVNode("",!0),t.showImport||t.showExport||t.showPrint||t.showPdfWindow?(e.openBlock(),e.createElementBlock("div",{key:4,class:"mrp-output-tools",role:"group","aria-label":t.messages.settingsExport??"导出与打印"},[t.showImport?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-nav mrp-import-excel",type:"button",disabled:t.busy,onClick:d[5]||(d[5]=f=>o("import-excel"))},[e.createVNode(W._sfc_main,{name:"upload"}),e.createTextVNode(e.toDisplayString(t.messages.importExcel??"导入 Excel 模板"),1)],8,so)):e.createCommentVNode("",!0),t.showExport?(e.openBlock(),e.createBlock(qa,{key:1,messages:t.messages,formats:t.exportFormats,busy:t.busy,onExport:d[6]||(d[6]=f=>o("export",f))},null,8,["messages","formats","busy"])):e.createCommentVNode("",!0),t.showPrint?(e.openBlock(),e.createElementBlock("button",{key:2,class:"mrp-nav",type:"button",disabled:t.busy,onClick:d[7]||(d[7]=f=>o("print"))},[e.createVNode(W._sfc_main,{name:"print"}),e.createTextVNode(e.toDisplayString(t.messages.print),1)],8,io)):e.createCommentVNode("",!0),t.showPdfWindow?(e.openBlock(),e.createElementBlock("button",{key:3,class:"mrp-nav",type:"button",disabled:t.busy,onClick:d[8]||(d[8]=f=>o("pdf-window"))},[e.createVNode(W._sfc_main,{name:"external"}),e.createTextVNode(e.toDisplayString(t.messages.pdfWindow),1)],8,co)):e.createCommentVNode("",!0)],8,lo)):e.createCommentVNode("",!0),t.showSettings?(e.openBlock(),e.createElementBlock("button",{key:5,class:e.normalizeClass(["mrp-nav mrp-settings-toggle",{"mrp-active":t.settingsOpen}]),type:"button","aria-label":t.messages.settings??"设置","aria-haspopup":"dialog","aria-expanded":!!t.settingsOpen,onClick:d[9]||(d[9]=f=>o("settings-toggle"))},[e.createVNode(W._sfc_main,{name:"settings"}),e.createTextVNode(e.toDisplayString(t.messages.settings??"设置"),1)],10,uo)):e.createCommentVNode("",!0),t.showSearch!==!1&&t.search.visible?(e.openBlock(),e.createElementBlock("div",{key:6,class:"mrp-search-panel",role:"search","aria-label":t.messages.search??"内容搜索"},[e.createElementVNode("div",{class:e.normalizeClass(["mrp-search",{"mrp-search-no-results":t.search.query&&!t.search.searching&&!t.search.matchCount}])},[e.createVNode(W._sfc_main,{name:"search"}),e.createElementVNode("input",{ref_key:"searchInputRef",ref:s,class:"mrp-search-input",type:"text",autocomplete:"off",spellcheck:"false",placeholder:t.messages.searchPlaceholder,"aria-label":t.messages.search??t.messages.searchPlaceholder,value:t.search.query,onInput:d[10]||(d[10]=f=>o("search-input",f.target.value)),onKeydown:d[11]||(d[11]=(...f)=>e.unref(l).onKeydown&&e.unref(l).onKeydown(...f))},null,40,fo),t.search.query?(e.openBlock(),e.createElementBlock("button",{key:0,class:"mrp-nav mrp-search-clear mrp-icon-button",type:"button","aria-label":t.messages.clearSearch??"清除搜索",onClick:u},[e.createVNode(W._sfc_main,{name:"close",size:13})],8,po)):e.createCommentVNode("",!0),t.search.query?(e.openBlock(),e.createElementBlock("span",go,e.toDisplayString(t.search.searching?t.messages.searching??"搜索中…":c()),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"mrp-nav mrp-icon-button",type:"button",disabled:t.search.matchCount===0||t.search.searching,"aria-label":t.messages.prevSearchMatch??"上一个匹配",onClick:d[12]||(d[12]=f=>o("search-nav",-1))},[e.createVNode(W._sfc_main,{name:"chevron-up",size:14})],8,vo),e.createElementVNode("button",{class:"mrp-nav mrp-icon-button",type:"button",disabled:t.search.matchCount===0||t.search.searching,"aria-label":t.messages.nextSearchMatch??"下一个匹配",onClick:d[13]||(d[13]=f=>o("search-nav",1))},[e.createVNode(W._sfc_main,{name:"chevron-down",size:14})],8,yo),e.createElementVNode("button",{class:"mrp-nav mrp-search-close mrp-icon-button",type:"button","aria-label":t.messages.closeSearch??"关闭搜索",onClick:d[14]||(d[14]=(...f)=>e.unref(l).close&&e.unref(l).close(...f))},[e.createVNode(W._sfc_main,{name:"close",size:14})],8,bo)],2),e.createElementVNode("span",ho,e.toDisplayString(t.search.query&&!t.search.searching&&!t.search.matchCount?t.messages.searchNoMatches??"没有匹配内容":t.messages.searchHint??"Enter 下一个 · Shift+Enter 上一个"),1)],8,mo)):e.createCommentVNode("",!0)],8,Ya))}}),bn=W._export_sfc(wo,[["__scopeId","data-v-23cb4003"]]),ko=["disabled","aria-label","aria-expanded"],xo={key:0},Eo=["aria-label"],Co=["data-review-tool","onClick"],So=e.defineComponent({__name:"ReportDataTools",props:{prefill:{type:Boolean},comparison:{type:Boolean},issueCount:{},busy:{type:Boolean},messages:{}},emits:["open"],setup(t,{emit:n}){const a=t,r=n,{opened:o,root:l,trigger:s,panel:i,close:c,onKeydown:u}=ie.usePopover(),m=e.computed(()=>[{key:"prefill",label:a.messages.prefillTitle,visible:a.prefill},{key:"comparison",label:a.messages.comparisonTitle,visible:a.comparison},{key:"validation",label:`${a.messages.validationTitle} · ${a.issueCount}`,visible:a.issueCount>0}].filter(p=>p.visible));e.watch(()=>a.busy,p=>{p&&c()});function d(p){a.busy||(s.value?.focus(),c(),r("open",p))}function f(p){p.key!=="ArrowDown"&&p.key!=="ArrowUp"||(p.preventDefault(),o.value=!0,p.key==="ArrowUp"&&e.nextTick(()=>i.value?.querySelector("button:last-child")?.focus()))}function y(p){if(p.key==="Tab"){c();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(p.key))return;p.preventDefault(),p.stopPropagation();const g=[...i.value?.querySelectorAll("button:not(:disabled)")??[]],v=g.indexOf(document.activeElement),D=p.key==="Home"?0:p.key==="End"?g.length-1:(v+(p.key==="ArrowDown"?1:-1)+g.length)%g.length;g[D]?.focus()}return(p,g)=>m.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"root",ref:l,class:"mrp-data-tools",onKeydown:g[1]||(g[1]=(...v)=>e.unref(u)&&e.unref(u)(...v))},[e.createElementVNode("button",{ref_key:"trigger",ref:s,class:"mrp-data-tools-trigger",type:"button",disabled:t.busy,"aria-label":t.messages.reviewTools,"aria-haspopup":"menu","aria-expanded":e.unref(o),onClick:g[0]||(g[0]=v=>o.value=!e.unref(o)),onKeydown:f},[e.createVNode(W._sfc_main,{name:"columns"}),e.createTextVNode(e.toDisplayString(t.messages.reviewTools),1),t.issueCount?(e.openBlock(),e.createElementBlock("b",xo,e.toDisplayString(t.issueCount),1)):e.createCommentVNode("",!0),e.createVNode(W._sfc_main,{name:"chevron-down",size:12})],40,ko),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:y},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,v=>(e.openBlock(),e.createElementBlock("button",{key:v.key,type:"button",role:"menuitem",tabindex:"-1","data-review-tool":v.key,onClick:D=>d(v.key)},[e.createTextVNode(e.toDisplayString(v.label),1),e.createVNode(W._sfc_main,{name:"arrow-right",size:14})],8,Co))),128))],40,Eo)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)}}),No=W._export_sfc(So,[["__scopeId","data-v-4786c94b"]]),Bo=["aria-label"],Vo=["aria-label"],$o={class:"mrp-review-dialog-body"},Do=e.defineComponent({__name:"ReportDataReviewDialog",props:{title:{},closeLabel:{}},emits:["close"],setup(t,{emit:n}){const a=n,r=e.ref(null),o=e.ref(null);let l=null;function s(i){if(i.defaultPrevented||i.isComposing)return;if(i.key==="Escape"){i.preventDefault(),i.stopPropagation(),a("close");return}if(i.key!=="Tab")return;const c=[...r.value?.querySelectorAll("button:not(:disabled),input:not(:disabled),select:not(:disabled),[tabindex='0']")??[]],u=c[0],m=c[c.length-1];(!r.value?.contains(document.activeElement)||i.shiftKey&&document.activeElement===u||!i.shiftKey&&document.activeElement===m)&&(i.preventDefault(),(i.shiftKey?m:u)?.focus())}return e.onMounted(()=>{l=document.activeElement instanceof HTMLElement?document.activeElement:null,o.value?.focus(),document.addEventListener("keydown",s)}),e.onUnmounted(()=>{document.removeEventListener("keydown",s),l?.isConnected&&l.focus()}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-review-backdrop",onClick:c[1]||(c[1]=e.withModifiers(u=>a("close"),["self"]))},[e.createElementVNode("section",{ref_key:"panel",ref:r,class:"mrp-review-dialog",role:"dialog","aria-modal":"true","aria-label":t.title},[e.createElementVNode("header",null,[e.createElementVNode("div",null,[c[2]||(c[2]=e.createElementVNode("span",null,"MACH REPORT",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.title),1)]),e.createElementVNode("button",{ref_key:"closeButton",ref:o,type:"button","aria-label":t.closeLabel,onClick:c[0]||(c[0]=u=>a("close"))},[e.createVNode(W._sfc_main,{name:"close"})],8,Vo)]),e.createElementVNode("div",$o,[e.renderSlot(i.$slots,"default",{},void 0,!0)])],8,Bo)]))}}),Po=W._export_sfc(Do,[["__scopeId","data-v-e1a7542d"]]),Ro={key:0,class:"mrp-review-results"},Io={class:"mrp-review-scroll"},Mo={key:0},To={key:1},Oo={class:"mrp-review-sr"},Ao={scope:"row"},Fo={class:"mrp-review-value"},zo={class:"mrp-review-value"},Lo={key:0,class:"mrp-review-value"},qo={key:1,class:"mrp-review-value"},Ko={class:"mrp-review-status"},jo=["aria-label","onClick"],Wo=["data-tone"],Ho=["aria-label"],Uo=["disabled","aria-label"],Go=["disabled","aria-label"],Jo={key:1,class:"mrp-review-empty",role:"status"},hn=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",Ro,[e.createElementVNode("div",Io,[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",Mo,e.toDisplayString(t.messages.reviewDelta),1)):e.createCommentVNode("",!0),t.delta?(e.openBlock(),e.createElementBlock("th",To,e.toDisplayString(t.messages.reviewRatio),1)):e.createCommentVNode("",!0),e.createElementVNode("th",null,[e.createElementVNode("span",Oo,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",Ao,e.toDisplayString(d.rowKey),1),e.createElementVNode("td",null,e.toDisplayString(d.label),1),e.createElementVNode("td",Fo,e.toDisplayString(c(d.before)),1),e.createElementVNode("td",zo,e.toDisplayString(c(d.after)),1),t.delta?(e.openBlock(),e.createElementBlock("td",Lo,e.toDisplayString(d.delta??"—"),1)):e.createCommentVNode("",!0),t.delta?(e.openBlock(),e.createElementBlock("td",qo,e.toDisplayString(d.ratio??"—"),1)):e.createCommentVNode("",!0),e.createElementVNode("td",Ko,[d.locatable?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","aria-label":`${t.messages.reviewLocate}: ${d.rowKey} · ${d.label}`,onClick:f=>r("locate",d.index)},e.toDisplayString(t.messages.reviewLocate),9,jo)):(e.openBlock(),e.createElementBlock("span",{key:1,"data-tone":d.tone},e.toDisplayString(d.status),9,Wo))])]))),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,Uo),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,Go)],8,Ho)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",Jo,e.toDisplayString(t.messages.reviewEmpty),1))}}),Xo=["aria-label","aria-busy"],Zo={class:"mrp-review-heading"},Yo=["disabled"],Qo={key:0,class:"mrp-review-error",role:"alert"},_o={class:"mrp-review-summary",role:"status"},er={"data-tone":"changed"},tr=["data-tone"],nr={key:0,class:"mrp-review-blocked",role:"status"},ar={class:"mrp-review-footer"},or=["disabled"],rr={key:0},wn=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",Zo,[s[3]||(s[3]=e.createElementVNode("span",{class:"mrp-review-symbol","aria-hidden":"true"},"↳",-1)),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(t.messages.prefillTitle),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.prefillHint),1)]),t.state.busy.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:s[0]||(s[0]=i=>t.state.cancel())},e.toDisplayString(t.messages.reviewCancel),1)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:t.state.applying.value,onClick:s[1]||(s[1]=i=>t.state.run())},e.toDisplayString(t.messages.prefillLoad),9,Yo))]),t.state.error.value?(e.openBlock(),e.createElementBlock("p",Qo,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",_o,[e.createElementVNode("span",er,[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,tr)]),e.createVNode(hn,{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",nr,e.toDisplayString(t.state.blockedReason.value),1)):e.createCommentVNode("",!0),e.createElementVNode("footer",ar,[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",rr,"· "+e.toDisplayString(t.state.result.value.counts.changed),1)):e.createCommentVNode("",!0)],8,or)])],64)):e.createCommentVNode("",!0)],8,Xo))}}),lr=["aria-label","aria-busy"],sr={class:"mrp-review-heading"},ir={key:0,class:"mrp-review-error",role:"alert"},cr={class:"mrp-review-summary",role:"status"},ur={"data-tone":"added"},dr={"data-tone":"removed"},mr={"data-tone":"changed"},kn=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:ca.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",sr,[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",ir,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",cr,[e.createElementVNode("span",ur,[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",mr,[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(hn,{count:t.state.result.value.differences.length,row:a,messages:t.messages,delta:"",onLocate:r},null,8,["count","messages"])],64)):e.createCommentVNode("",!0)],8,lr))}}),fr=["aria-label"],pr={open:""},gr={class:"mr-validation__badge"},vr=["onClick"],yr={key:0},br=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",pr,[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",gr,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,vr)):e.createCommentVNode("",!0)],2))),128))]),t.issues.length>s.value.length?(e.openBlock(),e.createElementBlock("p",yr,e.toDisplayString(s.value.length)+" / "+e.toDisplayString(t.issues.length)+" · "+e.toDisplayString(o.value.more),1)):e.createCommentVNode("",!0)])],8,fr)):e.createCommentVNode("",!0)}}),xn=W._export_sfc(br,[["__scopeId","data-v-5a34fcee"]]);function En(t,n){const a=new Set,r=t.pages.flatMap(u=>u.components),o=ce.dataLimit(n.maxCells,1e6,2e6);let l=0;function s(u){u?.datasetId===n.datasetId&&a.add(u.sourceScope)}for(;r.length;){const u=r.pop();if(++l>o)throw new ce.ReportDataError("limit","Report source scan exceeds its budget");s(u.table?.source);for(const m of u.grid?.cells??[])for(const d of m){if(++l>o)throw new ce.ReportDataError("limit","Report source scan exceeds its budget");d&&(s(d.source),d.children&&r.push(...d.children))}}if(!a.size)throw new ce.ReportDataError("identity","Current report has no business source for this dataset; reload a matching query before reviewing data");if(n.sourceScope===void 0){if(a.size===1)return a.values().next().value;throw new ce.ReportDataError("identity","Data review requires an explicit sourceScope for multiple business sources")}const c=[...new Set([n.sourceScope,Ct.reportSourceScope(0,"",n.sourceScope)])].filter(u=>a.has(u));if(c.length===1)return c[0];throw new ce.ReportDataError("identity","Data review sourceScope does not identify one business source")}function hr(){const t=new Error("Report data loading cancelled");return t.name="AbortError",t}async function wr(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?.(hr()),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 Cn(t,n){const a=e.ref(!1),r=e.shallowRef(null),o=e.ref(null);let l,s=0;function i(){s++,l?.abort(),l=void 0,a.value=!1}function c(){i(),r.value=null,o.value=null}async function u(){c();const m=t.plan.value,d=t.options.value;if(!m||!d||t.blocked())return;const f=++s,y=new AbortController;l=y,a.value=!0;const p=()=>f===s&&t.plan.value===m&&t.options.value===d;try{const g=await wr(d,y);if(!p()||y.signal.aborted||t.blocked())return;r.value=n(m,d,g)}catch(g){if(!p()||g instanceof Error&&g.name==="AbortError")return;o.value=g instanceof Error?g.message:"Report data review failed",t.onError?.(o.value,g)}finally{f===s&&(l=void 0,a.value=!1)}}return e.watch(t.plan,c,{flush:"sync"}),e.watch(t.options,c,{deep:!0,flush:"sync"}),e.onScopeDispose(c),{busy:a,result:r,error:o,run:u,cancel:i,clear:c}}function kr(t){const n=Cn(t,(d,f,y)=>ce.createReportPrefill(d,{...f,sourceScope:En(d,f),rows:y,canEdit:t.canEdit})),a=e.ref(!1);let r=0;function o(){r++,a.value=!1}function l(){o(),n.cancel()}function s(){o(),n.clear()}function i(){return o(),n.run()}e.watch(t.plan,o,{flush:"sync"}),e.watch(t.options,o,{deep:!0,flush:"sync"}),e.watch(n.result,o,{flush:"sync"}),e.onScopeDispose(o);const c=e.computed(()=>t.applyBlocked?.()),u=e.computed(()=>!c.value&&!!t.options.value&&!t.blocked()&&!n.busy.value&&!a.value&&!!n.result.value?.edits.length&&n.result.value.counts.conflict===0);async function m(){const d=t.plan.value,f=n.result.value;if(!d||!f||!u.value)return!1;const y=++r;a.value=!0;const p=()=>r===y;try{const g=await t.apply(ce.reportPrefillInputs(d,f,t.canEdit));return p()&&(g?s():n.error.value=t.failure?.()??"Report prefill was not applied"),g}catch(g){return p()&&(n.error.value=g instanceof Error?g.message:"Report prefill failed",t.onError?.(n.error.value,g)),!1}finally{p()&&(a.value=!1)}}return{...n,run:i,cancel:l,clear:s,applying:a,blockedReason:c,canApply:u,apply:m}}function xr(t){const n=Cn(t,(r,o,l)=>{const s=En(r,o),i=ce.reportDataSnapshotFromPlan(r,{...o,sourceScope:s,fields:o.fields.map(u=>u.field)}),c=new Set;for(const u of i.rows)for(const m of Object.keys(u.values))c.add(m);if(!o.fields.every(({field:u})=>c.has(u)))throw new ce.ReportDataError("identity","Comparison fields are not present in the current report; check visible field mappings");return ce.compareReportData({sourceScope:s,datasetId:o.datasetId,rows:l},i,o)});function a(r){const o=t.plan.value,l=t.options.value;if(!o||!l||!t.locate||r.kind==="removed")return!1;const s=n.result.value?.sourceScope,i={sourceScope:s,datasetId:l.datasetId,rowKey:r.rowKey,field:r.field},u=ce.indexReportDataCells(o,{...l,sourceScope:s,fields:[r.field]}).get(Ct.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 Er(t){const n=e.ref(null),a=e.computed(()=>({...t.messages.value,...ie.resolveDataReviewMessages(t.messages.value)})),r=e.computed(()=>!!t.prefill.value&&typeof t.prefill.value.load=="function"),o=e.computed(()=>!!t.comparison.value&&typeof t.comparison.value.load=="function");function l(p){const g=t.editingOptions.value;return!!g&&(typeof g!="object"||g.canEdit?.(p)!==!1)}const s=kr({plan:t.plan,options:t.prefill,blocked:t.busy,canEdit:l,apply:async p=>{const g=await t.apply(p);return!g&&t.issues.value.length&&(n.value="validation"),g},failure:t.editError,onError:t.error,applyBlocked:()=>{const p=t.editingOptions.value;if(!p)return t.messages.value.editReadOnly;if(typeof p=="object"&&p.save&&!p.saveBatch&&(s.result.value?.edits.length??0)>1)return t.messages.value.editAtomicRequired}}),i=xr({plan:t.plan,options:t.comparison,blocked:t.busy,onError:t.error,locate:p=>{c(),t.locate(p)}});function c(){n.value=null,s.cancel(),i.cancel()}async function u(p){t.busy()||p==="prefill"&&!r.value||p==="comparison"&&!o.value||p==="validation"&&!t.issues.value.length||!await t.settle()||t.busy()||(n.value=p)}const m=e.computed(()=>n.value==="prefill"?a.value.prefillTitle:n.value==="comparison"?a.value.comparisonTitle:t.messages.value.validationTitle??"数据校验"),d=e.computed(()=>({title:t.messages.value.validationTitle,error:t.messages.value.validationError,warning:t.messages.value.validationWarning,locate:a.value.reviewLocate,dataset:t.messages.value.validationDataset,row:t.messages.value.validationRow,more:t.messages.value.validationMore}));function f(p){const g=t.plan.value;if(!g||p.rowKey===void 0||!p.dataset||!p.field){t.missing();return}const v=ce.indexReportDataCells(g,{datasetId:p.dataset,sourceScope:p.sourceScope,fields:[p.field]}),D=Ct.reportCellEditKey({source:{sourceScope:p.sourceScope,datasetId:p.dataset,rowKey:p.rowKey,field:p.field},address:{pageIndex:0,componentIndex:0,rowIndex:0,columnIndex:0}}),h=v.get(D);if(!h||h.ambiguous){t.missing();return}c(),t.locate({...h.context.address})}const y=()=>{c(),s.clear(),i.clear()};return e.watch(t.plan,y,{flush:"sync"}),e.watch([()=>t.replacing(),t.prefill,t.comparison],y,{deep:!0,flush:"sync"}),e.watch(t.issues,p=>{n.value==="validation"&&!p.length&&c()}),{opened:n,messages:a,availablePrefill:r,availableComparison:o,prefill:s,comparison:i,title:m,validationMessages:d,open:u,close:c,locateIssue:f}}function Cr(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 Sr(t){const n=[],a=[];let r;for(const[o,l]of(t?.pages??[]).entries()){const s=Cr(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 Nr=["aria-label"],Br={key:0,class:"mrp-record-arrows"},Vr=["aria-label","title","disabled"],$r=["aria-label","title","disabled"],Dr={class:"mrp-record-info","aria-live":"polite"},Pr=["title"],Rr=["title"],Ir=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(()=>Sr(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",Br,[e.createElementVNode("button",{type:"button","aria-label":t.messages.prevRecord??"上一条记录",title:t.messages.prevRecord??"上一条记录",disabled:t.busy||l.value<=0,onClick:d[0]||(d[0]=f=>u(-1))},[e.createVNode(W._sfc_main,{name:"chevron-left",size:13})],8,Vr),e.createElementVNode("button",{type:"button","aria-label":t.messages.nextRecord??"下一条记录",title:t.messages.nextRecord??"下一条记录",disabled:t.busy||l.value>=o.value.entries.length-1,onClick:d[1]||(d[1]=f=>u(1))},[e.createVNode(W._sfc_main,{name:"chevron-right",size:13})],8,$r)])):e.createCommentVNode("",!0),e.createElementVNode("span",Dr,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,Pr)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:2,class:"mrp-record-face",title:c.value},e.toDisplayString(c.value),9,Rr)):e.createCommentVNode("",!0)],8,Nr)):e.createCommentVNode("",!0)}}),Mr=W._export_sfc(Ir,[["__scopeId","data-v-aa94fa14"]]),Tr=["aria-label","aria-busy"],Or={class:"mrp-calculation-heading"},Ar={class:"mrp-calculation-controls"},Fr=["aria-label","value","disabled"],zr=["value"],Lr={class:"mrp-calculation-precision"},qr=["aria-label","value","disabled"],Kr={key:0,class:"mrp-calculation-expression"},jr=["aria-label","value","disabled"],Wr={class:"mrp-calculation-actions"},Hr={key:1,class:"mrp-calculation-diagnostic",role:"alert"},Ur={key:2,class:"mrp-calculation-result",role:"status","aria-live":"polite"},Gr={key:0},Jr={key:3,class:"mrp-calculation-empty"},Xr={class:"mrp-calculation-local"},Zr=e.defineComponent({__name:"ReportCalculationPanel",props:{state:{},messages:{}},setup(t){const n=t,a=`mrp-calculation-expression-hint-${e.getCurrentInstance()?.uid??0}`,r=e.computed(()=>[["sum",n.messages.calculationSum],["average",n.messages.calculationAverage],["min",n.messages.calculationMin],["max",n.messages.calculationMax],["count",n.messages.calculationCount],["median",n.messages.calculationMedian],["expression",n.messages.calculationCustom]]),o=e.computed(()=>{const l=n.state.error.value;if(!l)return"";const s=n.messages;return{selection:s.calculationErrorSelection,limit:s.calculationErrorLimit,expression:s.calculationErrorExpression,division:s.calculationErrorDivision,overflow:s.calculationErrorOverflow,precision:s.calculationErrorPrecision}[l]});return(l,s)=>(e.openBlock(),e.createElementBlock("section",{class:"mrp-calculation","aria-label":t.messages.calculationTitle,"aria-busy":t.state.busy.value},[e.createElementVNode("header",Or,[s[5]||(s[5]=e.createElementVNode("span",{class:"mrp-calculation-symbol","aria-hidden":"true"},"∑",-1)),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(t.messages.calculationTitle),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.calculationHint),1)])]),e.createElementVNode("div",Ar,[e.createElementVNode("label",null,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationFormula),1),e.createElementVNode("select",{"aria-label":t.messages.calculationFormula,value:t.state.operation.value,onChange:s[0]||(s[0]=i=>t.state.setOperation(i.target.value)),disabled:t.state.busy.value},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,([i,c])=>(e.openBlock(),e.createElementBlock("option",{key:i,value:i},e.toDisplayString(c),9,zr))),128))],40,Fr)]),e.createElementVNode("label",Lr,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationPrecision),1),e.createElementVNode("input",{"aria-label":t.messages.calculationPrecision,value:t.state.precision.value,onChange:s[1]||(s[1]=i=>t.state.setPrecision(Number(i.target.value))),type:"number",min:"0",max:"12",step:"1",disabled:t.state.busy.value},null,40,qr)])]),t.state.operation.value==="expression"?(e.openBlock(),e.createElementBlock("label",Kr,[e.createElementVNode("span",null,e.toDisplayString(t.messages.calculationExpression),1),e.createElementVNode("input",{"aria-label":t.messages.calculationExpression,"aria-describedby":a,value:t.state.expression.value,onInput:s[2]||(s[2]=i=>t.state.setExpression(i.target.value)),type:"text",maxlength:"256",spellcheck:"false",disabled:t.state.busy.value,placeholder:"SUM / COUNT"},null,40,jr),e.createElementVNode("small",{id:a},e.toDisplayString(t.messages.calculationExpressionHint),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Wr,[t.state.busy.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:s[3]||(s[3]=i=>t.state.cancel())},e.toDisplayString(t.messages.calculationCancel),1)):(e.openBlock(),e.createElementBlock("button",{key:1,class:"mrp-calculation-run",type:"button",onClick:s[4]||(s[4]=i=>t.state.run())},e.toDisplayString(t.messages.calculationRun),1))]),o.value?(e.openBlock(),e.createElementBlock("p",Hr,e.toDisplayString(o.value),1)):t.state.result.value?(e.openBlock(),e.createElementBlock("div",Ur,[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",Gr,e.toDisplayString(t.messages.calculationEmpty),1)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",Jr,e.toDisplayString(t.messages.calculationNoSelection),1)),e.createElementVNode("p",Xr,e.toDisplayString(t.messages.calculationLocal),1)],8,Tr))}}),Yr=W._export_sfc(Zr,[["__scopeId","data-v-ee359251"]]);function Qr(t){const n=e.ref("sum"),a=e.ref("SUM / COUNT"),r=e.ref(2),o=e.ref(!1),l=e.shallowRef(null),s=e.ref(null);let i=null,c=0;function u(){c++,i?.abort(),i=null,o.value=!1}function m(){u(),l.value=null,s.value=null}async function d(){if(m(),!t.enabled())return;const g=t.plan.value,v=t.selection.value;if(!g||!v){s.value="selection";return}const D=++c,h=new AbortController;i=h,o.value=!0;try{const k=await U.calculateReportSelection(g,v,{operation:n.value,expression:a.value,precision:r.value,signal:h.signal});D===c&&t.plan.value===g&&t.selection.value===v&&t.enabled()&&(l.value=k)}catch(k){D===c&&!h.signal.aborted&&(s.value=k instanceof U.ReportCalculationError?k.code:"expression")}finally{D===c&&(o.value=!1,i=null)}}e.watch([t.plan,t.selection,()=>t.enabled(),n,a,r],m,{flush:"sync"}),e.onScopeDispose(m);function f(g){n.value=g}function y(g){a.value=g}function p(g){r.value=g}return{operation:n,expression:a,precision:r,busy:o,result:l,error:s,run:d,cancel:u,clear:m,setOperation:f,setExpression:y,setPrecision:p}}const _r=["aria-label"],el={class:"mrp-settings-header"},tl=["aria-label"],nl=["aria-label"],al=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],ol={class:"mrp-settings-content"},rl=["id","aria-labelledby","hidden"],ll={key:0},sl={class:"mrp-settings-option"},il=["checked","disabled"],cl={class:"mrp-settings-option"},ul=["value","disabled"],dl=["id","aria-labelledby","hidden"],ml={key:0},fl=["checked","disabled","onChange"],pl={key:0,class:"mrp-settings-note"},gl={key:1,class:"mrp-settings-note"},vl=["id","aria-labelledby","hidden"],yl={class:"mrp-settings-intro"},bl={class:"mrp-settings-option mrp-settings-feature"},hl=["id"],wl=["aria-label","aria-describedby","checked","disabled"],kl=["disabled"],xl=e.defineComponent({__name:"ReportSettings",props:{available:{},enabled:{},messages:{},persistedEditing:{type:Boolean},busy:{type:Boolean},interaction:{},section:{}},emits:["change","reset","close","interaction","section"],setup(t,{emit:n}){const a=t,r=n,o=e.ref(null),l=e.computed(()=>a.section??"general"),s="mrp-settings-"+e.getCurrentInstance()?.uid,i=e.computed(()=>[{key:"general",label:a.messages.settingsGeneral??"常规"},{key:"tools",label:a.messages.settingsTools??"工具"},{key:"advanced",label:a.messages.settingsAdvanced??"高级"}]);function c(g,v){const h={ArrowRight:(v+1)%3,ArrowLeft:(v+2)%3,Home:0,End:2}[g.key];h!==void 0&&(g.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(g=>({...g,tools:g.tools.map(([v,D])=>({key:v,label:D}))})));function f(g,v){const D=g.target,h=D.checked;D.checked=a.enabled[v],r("change",v,h)}function y(g){return!o.value||g.defaultPrevented?!1:g.target instanceof Node&&o.value.contains(g.target)?!0:g.target instanceof Element&&g.target.closest('[role="dialog"],dialog[open]')?!1:!Array.from(document.querySelectorAll('[aria-modal="true"],dialog[open]')).some(v=>v!==o.value&&!o.value.contains(v))}function p(g){if(!y(g))return;if(g.key==="Escape"){g.preventDefault(),g.stopPropagation(),r("close");return}if(g.key!=="Tab")return;const v=Array.from(o.value?.querySelectorAll("a[href],button:not(:disabled),input:not(:disabled),textarea:not(:disabled),select:not(:disabled),[tabindex='0']")??[]).filter(B=>!B.closest("[hidden]")&&B.tabIndex!==-1),D=v?.[0],h=v?.[v.length-1];(!o.value?.contains(document.activeElement)||g.shiftKey&&document.activeElement===D||!g.shiftKey&&document.activeElement===h)&&(g.preventDefault(),g.stopPropagation(),(g.shiftKey?h:D)?.focus())}return e.onMounted(()=>{const g=o.value?.closest(".mach-report-preview")?.querySelector(".mrp-settings-toggle"),v=document.activeElement;m=v instanceof HTMLElement&&v!==document.body&&!o.value?.contains(v)?v:g??null,u.value?.focus(),document.addEventListener("keydown",p)}),e.onUnmounted(()=>{document.removeEventListener("keydown",p),m?.isConnected&&m.focus()}),(g,v)=>(e.openBlock(),e.createElementBlock("div",{class:"mrp-settings-backdrop",onClick:v[5]||(v[5]=e.withModifiers(D=>g.$emit("close"),["self"]))},[e.createElementVNode("section",{ref_key:"panel",ref:o,class:"mrp-settings-panel",role:"dialog","aria-modal":"true","aria-label":t.messages.settings},[e.createElementVNode("header",el,[e.createElementVNode("div",null,[v[6]||(v[6]=e.createElementVNode("span",{class:"mrp-settings-eyebrow"},"MACH REPORT",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.messages.settings),1),e.createElementVNode("p",null,e.toDisplayString(t.messages.settingsLocal),1)]),e.createElementVNode("button",{ref_key:"closeButton",ref:u,class:"mrp-settings-close",type:"button","aria-label":t.messages.settingsClose,onClick:v[0]||(v[0]=D=>g.$emit("close"))},[...v[7]||(v[7]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"m5 5 10 10M15 5 5 15",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round"})],-1)])],8,tl)]),e.createElementVNode("div",{class:"mrp-settings-tabs",role:"tablist","aria-label":t.messages.settings},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(D,h)=>(e.openBlock(),e.createElementBlock("button",{id:s+"-tab-"+D.key,key:D.key,type:"button",role:"tab","aria-selected":l.value===D.key,"aria-controls":s+"-panel-"+D.key,tabindex:l.value===D.key?0:-1,onClick:k=>g.$emit("section",D.key),onKeydown:k=>c(k,h)},e.toDisplayString(D.label),41,al))),128))],8,nl),e.createElementVNode("div",ol,[e.createElementVNode("section",{id:s+"-panel-general",role:"tabpanel","aria-labelledby":s+"-tab-general",hidden:l.value!=="general"},[e.renderSlot(g.$slots,"default",{},void 0,!0),t.interaction?(e.openBlock(),e.createElementBlock("fieldset",ll,[e.createElementVNode("legend",null,e.toDisplayString(t.messages.settingsPanes),1),e.createElementVNode("label",sl,[e.createElementVNode("span",null,e.toDisplayString(t.messages.freezeHeaders),1),e.createElementVNode("input",{type:"checkbox",checked:t.interaction.freezeHeaders,disabled:t.busy,onChange:v[1]||(v[1]=D=>g.$emit("interaction",{freezeHeaders:D.target.checked}))},null,40,il)]),e.createElementVNode("label",cl,[e.createElementVNode("span",null,e.toDisplayString(t.messages.frozenColumns),1),e.createElementVNode("input",{class:"mrp-frozen-count",type:"number",min:"0",max:"20",value:t.interaction.frozenColumns??0,disabled:t.busy,onChange:v[2]||(v[2]=D=>g.$emit("interaction",{frozenColumns:Math.max(0,Math.min(20,Number(D.target.value)||0))}))},null,40,ul)])])):e.createCommentVNode("",!0)],8,rl),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,D=>(e.openBlock(),e.createElementBlock("fieldset",{key:D.label},[e.createElementVNode("legend",null,e.toDisplayString(D.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.tools,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",ml,e.toDisplayString(t.messages.settingsUnavailable),1))]),e.createElementVNode("input",{type:"checkbox",checked:t.enabled[h.key],disabled:t.busy||!t.available[h.key],onChange:k=>f(k,h.key)},null,40,fl)],2))),128))]))),128)),t.available.editing?(e.openBlock(),e.createElementBlock("p",pl,e.toDisplayString(t.persistedEditing?t.messages.editingSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.available.import?(e.openBlock(),e.createElementBlock("p",gl,e.toDisplayString(t.messages.importLocal),1)):e.createCommentVNode("",!0)],8,dl),e.createElementVNode("section",{id:s+"-panel-advanced",role:"tabpanel","aria-labelledby":s+"-tab-advanced",hidden:l.value!=="advanced"},[e.createElementVNode("p",yl,e.toDisplayString(t.messages.settingsAdvancedDescription),1),e.createElementVNode("label",bl,[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,hl)]),e.createElementVNode("input",{type:"checkbox","aria-label":t.messages.settingsCalculations,"aria-describedby":s+"-calculation-description",checked:t.interaction?.calculations===!0,disabled:t.busy,onChange:v[3]||(v[3]=D=>g.$emit("interaction",{calculations:D.target.checked}))},null,40,wl)]),t.interaction?.calculations?e.renderSlot(g.$slots,"advanced",{},void 0,!0,0):e.createCommentVNode("",!0)],8,vl)]),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:t.busy,onClick:v[4]||(v[4]=D=>g.$emit("reset"))},e.toDisplayString(t.messages.settingsReset),9,kl),e.createElementVNode("span",null,e.toDisplayString(t.messages.settingsLocal),1)])],8,_r)]))}}),El=W._export_sfc(xl,[["__scopeId","data-v-36723612"]]),Cl={class:"mrp-empty",role:"status"},Sl={key:0},Nl=e.defineComponent({__name:"ReportEmpty",props:{title:{},description:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("div",Cl,[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",Sl,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)]))}}),en=W._export_sfc(Nl,[["__scopeId","data-v-3e16b87e"]]),Bl=["aria-label"],Vl=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,Bl)],32))}}),$l=W._export_sfc(Vl,[["__scopeId","data-v-f7590294"]]),Dl={key:0,class:"mrp-task-status",role:"status","aria-live":"polite"},Pl={key:0},Rl=["value","max","aria-label"],Il=e.defineComponent({__name:"ReportTaskStatus",props:{task:{},messages:{}},emits:["cancel"],setup(t){const n=t,a=e.computed(()=>({query:n.messages.taskQuery,validate:n.messages.taskValidate,layout:n.messages.taskLayout,assets:n.messages.taskAssets,import:n.messages.importing,encode:n.messages.taskEncode,download:n.messages.taskDownload,print:n.messages.taskPrint})),r=e.computed(()=>n.task?.total===void 0?"":`${n.task.completed??0} / ${n.task.total}`);return(o,l)=>t.task&&(t.task.status==="running"||t.task.status==="cancelled")?(e.openBlock(),e.createElementBlock("div",Dl,[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",Pl,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,Rl)):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)}}),Ml=W._export_sfc(Il,[["__scopeId","data-v-657ac599"]]),Tl={key:0,class:"mrp-diagnostics"},Ol=["aria-label","placeholder"],Al={key:0},Fl=["onClick"],zl={key:0},Ll=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",Tl,[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,Ol),[[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",Al,[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,Fl)):e.createCommentVNode("",!0)]))),128))]),o.value.length>l.value.length?(e.openBlock(),e.createElementBlock("small",zl,e.toDisplayString((t.messages.diagnosticsMore??"").replace("{count}",String(o.value.length))),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),ql=W._export_sfc(Ll,[["__scopeId","data-v-3b7804ce"]]),Kl={key:0,class:"mrp-data-explanation"},jl={class:"mrp-data-content"},Wl=["aria-label","placeholder"],Hl={class:"mrp-data-state"},Ul=["disabled","onClick"],Gl={key:0,role:"status"},Jl={key:1},Xl=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",Kl,[e.createElementVNode("summary",null,[e.createVNode(W._sfc_main,{name:"file",size:14}),e.createElementVNode("span",null,e.toDisplayString(t.messages.dataExplanation),1),e.createElementVNode("b",null,e.toDisplayString(t.entries.length),1),e.createElementVNode("small",null,e.toDisplayString(t.messages.dataExplanationHint),1),e.createVNode(W._sfc_main,{name:"chevron-down",size:12})]),e.createElementVNode("div",jl,[e.createElementVNode("label",null,[e.createVNode(W._sfc_main,{name:"search",size:15}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[0]||(u[0]=m=>o.value=m),type:"search","aria-label":t.messages.dataExplanationSearch,placeholder:t.messages.dataExplanationSearch},null,8,Wl),[[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",Hl,e.toDisplayString(l.value[m.valueState]),1),e.createElementVNode("code",null,[e.createTextVNode(e.toDisplayString(m.target?.datasetId)+" · "+e.toDisplayString(m.target?.field)+" ",1),m.target?.rowKey!==void 0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" · "+e.toDisplayString(m.target.rowKey),1)],64)):e.createCommentVNode("",!0)]),e.createElementVNode("p",null,e.toDisplayString(m.message),1)]),m.target?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.busy,onClick:f=>r("locate",m.target)},[e.createTextVNode(e.toDisplayString(t.messages.diagnosticsLocate),1),e.createVNode(W._sfc_main,{name:"arrow-right",size:13})],8,Ul)):e.createCommentVNode("",!0)]))),128))]),s.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Gl,e.toDisplayString(t.messages.dataExplanationEmpty),1)),s.value.length>i.value.length?(e.openBlock(),e.createElementBlock("small",Jl,e.toDisplayString((t.messages.diagnosticsMore??"").replace("{count}",String(s.value.length))),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)}}),Zl=W._export_sfc(Xl,[["__scopeId","data-v-cb0adb4c"]]),Yl=["aria-label"],Ql=["disabled","title","onClick"],_l={key:0,role:"status"},es={key:1,role:"alert"},ts={key:2,role:"status"},ns=e.defineComponent({__name:"ReportDrillActions",props:{entries:{},pending:{type:Boolean},busy:{type:Boolean},error:{},messages:{}},emits:["open"],setup(t,{emit:n}){const a=n;return(r,o)=>t.entries.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-drill-actions",role:"group","aria-label":t.messages.drillActions},[e.createElementVNode("span",null,e.toDisplayString(t.messages.drillActions),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.entries,l=>(e.openBlock(),e.createElementBlock("button",{key:l.action.id,type:"button",disabled:t.busy||t.pending||!!l.reason,title:l.reason,onClick:s=>a("open",l.action.id)},[e.createTextVNode(e.toDisplayString(l.action.label),1),e.createVNode(W._sfc_main,{name:"arrow-right",size:13})],8,Ql))),128)),t.pending?(e.openBlock(),e.createElementBlock("small",_l,e.toDisplayString(t.messages.drillOpening),1)):t.error?(e.openBlock(),e.createElementBlock("small",es,e.toDisplayString(t.error),1)):t.entries.every(l=>l.reason)?(e.openBlock(),e.createElementBlock("small",ts,e.toDisplayString(t.messages.drillMissingValue),1)):e.createCommentVNode("",!0)],8,Yl)):e.createCommentVNode("",!0)}}),as=W._export_sfc(ns,[["__scopeId","data-v-f9ff8c13"]]);function os(t){const n=e.ref(!1),a=e.ref("");let r;const o=e.computed(()=>{const i=t.plan.value,c=t.selection.value?.focus,u=t.options();if(!i||!c||!u)return[];try{return ce.matchReportDrillActions(i,c,u.actions).map(m=>{try{return ce.createReportDrillRequest(i,c,m,t.params()),{action:m}}catch{return{action:m,reason:t.messages().drillMissingValue}}})}catch{return[]}});function l(){r?.abort(),r=void 0,n.value=!1,a.value=""}e.watch([t.plan,()=>t.options()],l),e.onScopeDispose(l);async function s(i){if(n.value||t.busy())return;const c=t.plan.value,u=t.selection.value?.focus,m=t.options(),d=m?.actions.find(y=>y.id===i);if(!c||!u||!m||!d)return;const f=new AbortController;r=f,n.value=!0,a.value="";try{const y=ce.createReportDrillRequest(c,u,d,t.params()),p=Object.freeze(t.view());if(!await t.beforeOpen()||f.signal.aborted||t.plan.value!==c)return;await X.waitForOutput(m.open({...y,signal:f.signal,view:p}),f.signal)}catch(y){f.signal.aborted||(a.value=y instanceof ce.ReportDrillError?t.messages().drillMissingValue??"":t.messages().drillFailed??"")}finally{r===f&&(n.value=!1,r=void 0)}}return{entries:o,pending:n,error:a,open:s}}const rs={class:"mrp-print-settings"},ls=["value","disabled"],ss=["value","disabled"],is=["disabled"],cs=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",rs,[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,ls)]),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,ss)])]),e.createElementVNode("button",{type:"button",disabled:t.busy||!t.canTest,onClick:s[2]||(s[2]=i=>r("test"))},e.toDisplayString(t.messages.printCalibrationTest),9,is)]))}}),us=W._export_sfc(cs,[["__scopeId","data-v-35a0f5ec"]]),tn=new Map,Be=new Map,ds=15e3;function Vt(t,n){return Object.assign(new Error(t),{cause:n})}function Fe(t,n){return`PDF 字体 ${JSON.stringify(t)}:${n}。请部署支持报表文字的字体文件,并将 pdfFontUrl 配置为可访问的字体 URL;西文报表可设为空串`}async function nn(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),Vt(Fe(t,r instanceof Error?r.message:String(r)),r)}}function _e(t){if(t?.reason instanceof Error&&t.reason.name==="AbortError")return t.reason;const n=Vt("PDF 字体检查已取消",t?.reason);return n.name="AbortError",n}async function ms(t,n){let a=!1;const r=setTimeout(()=>{a=!0,n.abort()},ds);try{const o=await fetch(t,{method:"HEAD",signal:n.signal});if(n.signal.aborted)throw _e(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:Fe(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:Fe(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:Fe(t,s.message),cause:s}}return{status:"available",fontUrl:t,message:"PDF 字体资源可达;文字覆盖范围将在实际导出时校验"}}catch(o){if(n.signal.aborted&&!a)throw _e(n.signal);return{status:"error",fontUrl:t,message:Fe(t,a?"字体检查超时,请检查网络或字体服务":"字体检查失败,请检查网络、字体服务或跨域访问配置"),cause:o}}finally{clearTimeout(r)}}function fs(t,n){if(n?.aborted)return Promise.reject(_e(n));if(!t)return Promise.resolve({status:"disabled",fontUrl:t,message:"已停用自定义 PDF 字体;内置字体用于西文,其他文字会在导出时校验"});const a=tn.get(t);if(a)return Promise.resolve(a);let r=Be.get(t);if(!r){const l=new AbortController;r={controller:l,promise:ms(t,l),subscribers:0};const s=r;Be.set(t,s),s.promise=s.promise.then(i=>(!l.signal.aborted&&i.status==="available"&&tn.set(t,i),i)).finally(()=>{Be.get(t)===s&&Be.delete(t)})}const o=r;return o.subscribers++,new Promise((l,s)=>{let i=!1;const c=()=>i?!1:(i=!0,o.subscribers--,n?.removeEventListener("abort",u),!0),u=()=>{c()&&(o.subscribers===0&&(Be.get(t)===o&&Be.delete(t),o.controller.abort()),s(_e(n)))};n?.addEventListener("abort",u,{once:!0}),o.promise.then(m=>{c()&&l(m)},m=>{c()&&s(m)}),n?.aborted&&u()})}function Sn(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 nn(t.fontUrl,n.loadFontWithCache,l.signal);let i;try{X.assertOutputActive(l.signal),i=await n.renderPlanToPdf(r,{...l,...s?{customFontBytes:s}:{}})}catch(f){if(!s)throw f;const y=f instanceof Error?f.message:String(f);throw Vt(`PDF 生成失败:${y}。当前字体 URL 为 ${JSON.stringify(t.fontUrl)};请确认该文件是有效字体,或重新配置 pdfFontUrl`,f)}X.assertOutputActive(l.signal),i.diagnostics?.forEach(f=>{try{l.onDiagnostic?.(f)}catch{}});const{bytes:c,unsupportedTextCount:u,pageErrors:m,fidelityWarnings:d}=i;if(u>0)throw new Error(`PDF 中有 ${u} 行文字无法编码;请部署支持所用文字的字体并配置 pdfFontUrl`);if(m.length>0)throw new Error(`PDF 有 ${m.length} 页渲染失败:${m[0]}`);return d.length>0&&o?.(`PDF 有 ${d.length} 处版式降级:${d.slice(0,2).join(";")}`),c};return a.checkFont=r=>fs(t.fontUrl,r),a.prepare=async r=>{if(X.assertOutputActive(r),!t.fontUrl)return{};const{loadFontWithCache:o}=await Promise.resolve().then(()=>require("./font-loader-DBBJ5KE9.cjs")),l=await nn(t.fontUrl,o,r);return l?{customFontBytes:l}:{}},a}function ps(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=Sn({fontUrl:m})),r}function i(){o++,l?.abort(),l=null}async function c(){if(t.destroyed())throw new ie.MachReportError("config","报表预览已卸载");i();const m=o,d=new AbortController;l=d;const f=t.fontUrl();n.value=Object.freeze({status:"checking",fontUrl:f});try{const y=s(),p=y.checkFont?await y.checkFont(d.signal):{status:"unverified",fontUrl:"",message:"自定义 PDF 导出器未提供字体预检查;字体由宿主确认"};return!t.destroyed()&&m===o&&!d.signal.aborted&&(n.value=Object.freeze({...p})),p}catch(y){if(d.signal.aborted)throw y;const p={status:"error",fontUrl:f,message:y instanceof Error?y.message:"PDF 字体检查失败",cause:y};return!t.destroyed()&&m===o&&(n.value=Object.freeze(p)),p}finally{l===d&&(l=null)}}function u(){c().catch(()=>{})}return e.watch([t.plan,e.computed(t.fontUrl),e.computed(t.enabled)],()=>{const m=n.value.fontUrl===t.fontUrl();m&&n.value.status==="available"||(i(),(!m||n.value.status==="checking")&&(n.value=Object.freeze({status:"unchecked",fontUrl:t.fontUrl()})),!t.destroyed()&&t.plan.value?.pages.length&&t.enabled()&&u())},{immediate:!0}),{pdfFont:n,getPdfExporter:s,checkPdfFont:c,retryPdfFont:u,cancelFontCheck:i}}function me(t){return JSON.parse(JSON.stringify(t))}function Nn(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 nt(t,n){if(t.requiresRecalculation&&(!n||!U.getReportEditSession(t)))throw new U.ReportCellEditError("recalculation")}async function gs(t,n,a,r){const o=n.edits.every(i=>!!i.source);nt(t,o);const l=U.getReportEditSession(t);if(l&&o)return l.prepareHistory(t,n.edits,n.value,a,{signal:r});const s=De(t);return n.edits.map(i=>{const c=s(i);if(!c)throw new U.ReportCellEditError("missing");return{address:c,value:i[n.value]}})}function vs(t,n,a){const r=n.edits.every(o=>!!o.source);return nt(t,r),r?U.getReportEditSession(t)?.prepare(t,n,{signal:a}):void 0}function ys(t,n){const a=new Map;return t.pages.forEach((r,o)=>r.components.forEach((l,s)=>{if(l.grid)for(const i of tt.resolveGridLayout(l.grid,l.widthMm,l.heightMm).cells){const c=n({pageIndex:o,componentIndex:s,rowIndex:i.ri,columnIndex:i.ci});if(!c?.source)continue;const u=U.reportCellEditKey(c),m=a.get(u)??[];m.push(c),a.set(u,m)}})),a}function De(t){const n=U.createReportCellResolver(t),a=ys(t,n);function r(l){if(l.source)return a.get(U.reportCellEditKey(l))??[];const s=n(l.address);return s?!l.table||U.reportCellEditKey(s)===U.reportCellEditKey(l)?[s]:[]:[]}const o=l=>{const s=r(l),i=s.find(c=>c.table?.id===l.table?.id)??s[0];return i?{...i.address}:null};return o.all=l=>r(l).map(s=>({...s.address})),o}class bs extends Error{constructor(n){super(n.map(a=>a.message).join(";")),this.conflicts=n,this.name="ReportEditConflictError"}}function hs(){return globalThis.crypto?.randomUUID?.()??`mr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function ws(t,n,a,r){return Array.isArray(n)?{batch:U.createReportCellEditBatch(t,n,a)}:gs(t,n,a,r).then(o=>Array.isArray(o)?{batch:U.createReportCellEditBatch(t,o,a)}:o)}function ks(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 $=U.summarizeReportCellEdits(n.value),R=t.plan.value;if(!R||!$.length)return $;const T=De(R);return $.map(L=>{const F=T(L);return F?{...L,address:F}:L})}),d=e.computed(()=>!!t.options.value&&!l.value&&!t.blocked()&&a.value.length>0),f=e.computed(()=>!!t.options.value&&!l.value&&!t.blocked()&&r.value.length>0);let y=null,p=null,g=0,v=null;function D(){y?.abort(),y=null,l.value=!1,p=null}function h(){g++,D(),v=null,n.value=[],a.value=[],r.value=[],o.value=[],s.value=[],c.value=[],i.value=null}function k(){const $=t.options.value;return $?typeof $=="object"?$:{}:null}function B($,R,T,L){if(!t.options.value||t.blocked())throw new U.ReportCellEditError("readonly");nt($,R.edits.every(_=>!!_.source));const F=U.createReportCellResolver($),Z=new Map(L?.map(_=>[U.reportCellEditKey(_),_]));for(const _ of R.edits){const G=L?Z.get(U.reportCellEditKey(_)):F(_.address);if(!G?.editable||T.canEdit?.(G)===!1)throw new U.ReportCellEditError("readonly");if(T.requireSource&&!G.source)throw new U.ReportCellEditError("missing");const q=Nn(G,T);q&&U.parseReportCellFieldInput(G,_.value,q)}}async function b($,R,T){if(R.saveBatch)return R.saveBatch(me($),T);if(R.save&&$.edits.length>1)throw new U.ReportCellEditError("atomic");if($.edits[0])return R.save?.(me($.edits[0]),T)}async function E($,R,T){for(const L of $.edits){const F=await R.validate?.(me(L),T);if(F)throw new Error(F);if(T.signal.aborted)return}}function M($,R,T,L,F,Z){if(t.plan.value=Z?Z.commit(T):U.applyReportEditResult(U.applyReportCellEditBatch($,R),R,T),n.value=[...n.value,...R.edits],F){const G=new Set(R.edits.map(U.reportCellEditKey));c.value=c.value.filter(q=>!G.has(U.reportCellEditKey(q)))}else c.value=U.summarizeReportCellEdits([...c.value,...R.edits]);L==="edit"&&(a.value=[...a.value,R.edits],r.value=[]),o.value=[],v=null;const _=g;for(const G of R.edits){if(g!==_)break;t.onChange(me(G))}}function x($,R,T){const L=JSON.stringify([T,R.edits]);v?.plan===$&&v.signature===L?R.requestId=v.requestId:v={plan:$,signature:L,requestId:R.requestId}}function I($){i.value=t.errorMessage?.($)??($ instanceof Error?$.message:"Cell edit failed"),t.onError(i.value,$)}async function z($,R,T,L){if(T.validation){if(!$.prepared)throw new Error("整批规则校验需要来源数据会话;请使用 createReportSource 或 createReportEditSession");s.value=[...$.prepared.validate(T.validation)]}if(T.validateBatch){const F=$.prepared?.plan??U.applyReportCellEditBatch(R,$.batch),Z=await T.validateBatch(me($.batch),me(F),L);Z&&!L.signal.aborted&&(s.value=[...s.value,...me(Z)])}L.signal.aborted||U.assertReportValidation(s.value,T.validation?.warningPolicy)}async function ee($,R){const T=t.plan.value,L=k();if(!T||!L||t.blocked())return!1;const F=new AbortController,Z=g;y=F,l.value=!0,i.value=null,s.value=[];const _=()=>y===F&&!F.signal.aborted&&t.plan.value===T&&t.options.value!==!1;try{const G=ws(T,$,hs(),F.signal),q=G instanceof Promise?await G:G;if(!_())return!1;const{batch:se,contexts:fe}=q;if(B(T,se,L,fe),se.edits=se.edits.filter(K=>!Object.is(K.previousValue,K.value)),!se.edits.length)return!0;x(T,se,R),B(T,se,L,fe);const we={signal:F.signal,requestId:se.requestId,action:R};if(await E(se,L,we),!_())return!1;B(T,se,L,fe);const C=q.prepared?void 0:vs(T,se,F.signal);if(C&&(q.prepared=await C),!_()||(B(T,se,L,fe),await z(q,T,L,we),!_()))return!1;const V=await b(se,L,we);if(!_())return!1;if(V?.conflicts?.length)throw o.value=me(V.conflicts),new bs(V.conflicts);return B(T,se,L,fe),M(T,se,V,R,!!(L.save||L.saveBatch),q.prepared),Z===g}catch(G){return _()&&I(G),!1}finally{y===F&&(y=null,l.value=!1)}}async function Q($,R="edit"){if(p)return p;const T=ee($,R);p=T;const L=await T;return p===T&&(p=null),L}async function ae(){const $=g,R=a.value[a.value.length-1];return!R||l.value||!await Q({edits:R,value:"previousValue"},"undo")||$!==g?!1:(a.value=a.value.slice(0,-1),r.value=[...r.value,R],!0)}async function w(){const $=g,R=r.value[r.value.length-1];return!R||l.value||!await Q({edits:R,value:"value"},"redo")||$!==g?!1:(r.value=r.value.slice(0,-1),a.value=[...a.value,R],!0)}async function N(){const $=g;return!m.value.length||l.value||!await Q({edits:m.value,value:"previousValue"},"restore")||$!==g?!1:(a.value=[],r.value=[],!0)}function P(){if(!p)return!l.value;const $=g;return p.then(R=>R&&$===g&&!l.value)}function A($){return t.plan.value?De(t.plan.value)($):null}return{settle:P,resolveAddress:A,validationIssues:s,changes:n,differences:m,localDifferences:c,hasLocalDrafts:u,lastError:i,conflicts:o,saving:l,canUndo:d,canRedo:f,apply:Q,undo:ae,redo:w,restore:N,cancel:D,reset:h}}let xs=0;const Es="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 Cs(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 Ss(t,n,a){const r=t.createElement("select"),o=[{value:null,label:"—"},...Cs(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 Ns(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 Bs(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 Vs(t,n,a,r){const o=t.ownerDocument,l=r?.type==="boolean"||r?.type==="enum"?Ss(o,r,a):Ns(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=Es,s.setAttribute("aria-label",r?.label??n),r?.required&&s.setAttribute("aria-required","true");const c=o.createElement("span");c.id=`mrp-cell-hint-${++xs}`,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=Bs(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 kt(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 $s(t){const n=e.shallowRef(null),a=ks(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=!1,h.editor.feedback(a.lastError.value??void 0),h.editor.input.focus()),!1)}async function f(){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 k=d(h);i=k;const B=await k;return i===k&&(i=null),B}function y(){return n.value||i?f():a.settle()}function p(h){if(h.stopPropagation(),!h.isComposing&&(h.key==="Escape"&&(h.preventDefault(),c()),h.key==="Enter"&&!h.shiftKey||h.key==="Tab")){h.preventDefault();const k=n.value,B=k&&U.getReportCellContext(k.plan,k.address),b=k&&B?U.createReportCellEditBatch(k.plan,[{address:k.address,value:B.value}],"navigation").edits[0]:void 0;f().then(E=>{if(!E||!k||!t.plan.value)return;const M=t.plan.value===k.plan?k.address:b&&De(t.plan.value)(b);M&&t.onNavigate?.(M,h.key,h.shiftKey)})}}function g(h){t.onError(t.errorMessage?.(h)??(h instanceof Error?h.message:"无法编辑单元格"),h)}async function v(h){if(!t.options.value||t.blocked()||!await f()||!h.isConnected)return;const k=t.plan.value,B=kt(h);if(!k||!B||!t.options.value||t.blocked())return;const b=typeof t.options.value=="object"?t.options.value:{};try{const E=U.getReportCellContext(k,B);if(!E?.editable||b.canEdit?.(E)===!1)return;if(nt(k,!!E.source),b.requireSource&&!E.source)throw new U.ReportCellEditError("missing");const M=Nn(E,b);M&&U.validateReportCellFieldDefinition(E,M);const x=Vs(h,t.label(),E,M),I=x.input;n.value={plan:k,address:B,editor:x},l.value=!1,I.addEventListener("keydown",z=>p(z)),I.addEventListener("input",()=>{l.value=I.value!==x.initialInput,x.feedback()}),I.addEventListener("change",()=>{l.value=I.value!==x.initialInput}),I.addEventListener("blur",()=>{!r.value&&!t.suspendBlur?.()&&f()}),x.focus()}catch(E){g(E)}}async function D(h){const k=h.target;if(!(k instanceof Element)||k.closest(".mrp-cell-editor"))return;const B=k.closest("td[data-mr-row-index]");B&&await v(B)}return e.watch(t.options,(h,k)=>{(!h||h!==k)&&c()},{flush:"sync"}),e.watch(t.plan,()=>{n.value&&t.plan.value!==n.value.plan&&(n.value.editor.root.remove(),n.value=null,l.value=!1)},{flush:"sync"}),e.onScopeDispose(u),{...a,active:n,saving:r,changes:o,pendingLocalChanges:s,cancel:c,reset:u,commit:f,settle:y,onDoubleClick:D,editCell:v,getChanges:()=>me(o.value)}}function Bn(t){return t.table.role==="header"?-Math.max(1,t.grid?.cells.length??1):t.table.rowIndex}function be(t,n,a=n){const r=t.pages[n.pageIndex]?.components[n.componentIndex],o=r?.table,l=t.pages[a.pageIndex]?.components[a.componentIndex]?.table;return o&&l&&o.id===l.id?{grid:o.id,row:Bn(r)+n.rowIndex,column:l.columnKeys.indexOf(o.columnKeys[n.columnIndex]??"")}:{grid:`${n.pageIndex}:${n.componentIndex}`,row:n.rowIndex,column:n.columnIndex}}function an(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=Bn(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 Ds(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 Ps(t,n){const a=t?.source;return!Rs(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 Rs(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 Is(t,n){return t.pageIndex===n.pageIndex&&t.componentIndex===n.componentIndex}function Ms(t,n){return Is(t,n)&&t.rowIndex===n.rowIndex&&t.columnIndex===n.columnIndex}function bt(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 xt(t){return`${t.pageIndex}:${t.componentIndex}:${t.rowIndex}:${t.columnIndex}`}function Ts(t,n){const a=be(t,n.anchor),r=be(t,n.focus,n.anchor);return{grid:a.grid,minRow:Math.min(a.row,r.row),maxRow:Math.max(a.row,r.row),minColumn:Math.min(a.column,r.column),maxColumn:Math.max(a.column,r.column),focusKey:xt(n.focus),origin:t.pages[n.anchor.pageIndex]?.components[n.anchor.componentIndex]?.table}}function Os(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 As(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 Ze(t,n,a){t.getAttribute(n)!==a&&t.setAttribute(n,a)}function ht(t,n,a){t.classList.contains(n)!==a&&t.classList.toggle(n,a)}function Fs(t,n,a,r,o,l){n.role!==a&&(Ze(t,"role",a),n.role=a),n.selected!==r&&(ht(t,"mrp-cell-selected",r),Ze(t,"aria-selected",String(r)),n.selected=r),n.focused!==o&&(ht(t,"mrp-cell-focus",o),Ze(t,"tabindex",o?"0":"-1"),n.focused=o),n.modified!==l&&(ht(t,"mrp-cell-modified",l),n.modified=l)}function zs(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(w,N){const P=U.getReportCellContext(w,N);return!P||w.requiresRecalculation&&!P.source?null:{address:P.address,source:P.source,table:P.table,value:P.value,previousValue:P.value,text:P.cell.text??"",previousText:P.cell.text??""}}e.watch(t.plan,(w,N)=>{const P=a.value;if(!P)return;if(!w||!N){a.value=null;return}const A=c(N,P.anchor),$=c(N,P.focus),R=De(w),T=A&&R(A),L=$&&R($);a.value=T&&L?{anchor:T,focus:L}:null},{flush:"sync"});function u(w=t.root.value??void 0){if(!w)return;const N=a.value,P=t.plan.value,A=t.differences();if(A!==l||P!==s){l=A,s=P;const R=P&&A.length?De(P):null;i=new Set(A.flatMap(T=>R?R.all(T).map(xt):[]))}const $=N&&P?Ts(P,N):null;w instanceof HTMLTableElement&&f(w,P,$);for(const R of w.querySelectorAll("table"))f(R,P,$)}function m(w){const N=r.get(w);if(N)return N;const P=w.closest("[data-mr-component-index]"),A=P?.closest(".mrp-page-holder"),$={pageIndex:Number(A?.dataset.page)-1,componentIndex:Number(P?.dataset.mrComponentIndex)};return Object.values($).every(R=>Number.isInteger(R)&&R>=0)?(r.set(w,$),$):null}function d(w,N){const P=o.get(w);if(P)return P;const A=Number(w.dataset.mrRowIndex),$=Number(w.dataset.mrColumnIndex);if(![A,$].every(T=>Number.isInteger(T)&&T>=0))return null;const R={row:A,column:$,key:xt({...N,rowIndex:A,columnIndex:$})};return o.set(w,R),R}function f(w,N,P){const A=m(w);if(!A)return;const $=N?.pages[A.pageIndex]?.components[A.componentIndex],R=$?.table?.role==="header"?"columnheader":"gridcell",T=P?Os(A,$,P):null;Ze(w,"role","grid");for(const L of w.rows)for(const F of L.cells){const Z=d(F,A);Z&&Fs(F,Z,R,As(Z,T,P),P?.focusKey===Z.key,i.size>0&&i.has(Z.key))}}async function y(w,N=!1){if(!t.plan.value||!U.getReportCellContext(t.plan.value,w))return!1;const P=a.value,A=N&&P&&be(t.plan.value,P.anchor).grid===be(t.plan.value,w,P.anchor).grid;a.value={anchor:A?P.anchor:{...w},focus:{...w}},t.root.value?.querySelector(bt(w))||t.gotoPage(w.pageIndex+1),await e.nextTick(),t.ensureVisible?.(w),u();const $=t.root.value?.querySelector(bt(w));return $?.focus({preventScroll:!0}),$?.scrollIntoView?.({block:"nearest",inline:"nearest"}),!!$}function p(w){const N=w.target;if(!(N instanceof Element)||N.closest("textarea,input,button,select"))return;const P=N.closest("td[data-mr-row-index]"),A=P&&kt(P);if(!A||t.busy()||!t.plan.value||!U.getReportCellContext(t.plan.value,A))return;const $=a.value,R=w.shiftKey&&$&&be(t.plan.value,$.anchor).grid===be(t.plan.value,A,$.anchor).grid;a.value={anchor:R?$.anchor:{...A},focus:{...A}},u(),P.focus({preventScroll:!0})}function g(w){const N=t.plan.value?.pages[w.pageIndex]?.components[w.componentIndex];return N?.grid?tt.resolveGridLayout(N.grid,N.widthMm,N.heightMm).cells.map(P=>({...w,rowIndex:P.ri,columnIndex:P.ci})):[]}function v(w,N,P){const A=g(w),$=P?-1:1;if(N==="Tab")return A[A.findIndex(L=>Ms(L,w))+$];const R=N==="ArrowUp"||N==="ArrowDown"||N==="Enter",T=N==="ArrowUp"||N==="ArrowLeft"?-1:$;return A.filter(L=>R?L.columnIndex===w.columnIndex&&(L.rowIndex-w.rowIndex)*T>0:L.rowIndex===w.rowIndex&&(L.columnIndex-w.columnIndex)*T>0).sort((L,F)=>R?(L.rowIndex-F.rowIndex)*T:(L.columnIndex-F.columnIndex)*T)[0]}function D(w,N,P){if(N==="ArrowLeft"||N==="ArrowRight")return;const A=t.plan.value;if(!A.pages[w.pageIndex]?.components[w.componentIndex]?.table)return;const R=N==="ArrowUp"||P?-1:1;for(let T=w.pageIndex;T>=0&&T<A.pages.length;T+=R){const L=A.pages[T].components,F=T===w.pageIndex?w.componentIndex+R:R===1?0:L.length-1;for(let Z=F;Z>=0&&Z<L.length;Z+=R){const _=h(w,{...w,pageIndex:T,componentIndex:Z},N,R);if(_)return _}}}function h(w,N,P,A){const $=t.plan.value,R=$.pages[w.pageIndex].components[w.componentIndex].table,T=$.pages[N.pageIndex].components[N.componentIndex]?.table;if(T?.id!==R.id||T.role==="header"&&R.role!=="header"&&(A>0||R.rowIndex+w.rowIndex>0))return;const L=g(N),F=P==="Tab"?L:L.filter(Z=>Z.columnIndex===w.columnIndex);return A===1?F[0]:F[F.length-1]}function k(w,N,P=!1,A=!1,$=!1){const R=v(w,N,P)??D(w,N,P);return R?(y(R,A),!0):((N!=="Tab"||!$)&&y(w),!1)}function B(w){const N=a.value;if(t.busy()||w.target instanceof Element&&w.target.closest("textarea,input,select,button,a[href],[contenteditable]"))return!1;if(!N)return M(w);const P=w.key;if(b(w)||E(w,N.focus))return!0;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Tab","Enter"].includes(P))return!1;const A=k(N.focus,P,P==="Tab"&&w.shiftKey,w.shiftKey&&P!=="Tab",!0);if(P==="Tab"&&!A){const $=t.root.value?.ownerDocument.activeElement;if(!($ instanceof HTMLElement)||!Ds($,w.shiftKey))return!1}return w.preventDefault(),!0}function b(w){if(!n()||!(w.ctrlKey||w.metaKey))return!1;const N=w.key.toLowerCase();return N!=="z"&&N!=="y"?!1:(w.preventDefault(),N==="y"||w.shiftKey?t.redo():t.undo(),!0)}function E(w,N){if(!n()||!t.plan.value||w.key!=="F2"&&!(w.key==="Enter"&&U.getReportCellContext(t.plan.value,N)?.editable))return!1;const P=t.root.value?.querySelector(bt(N));return P&&(w.preventDefault(),t.edit(P)),!0}function M(w){if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Enter"].includes(w.key))return!1;const N=t.root.value?.querySelector("td[data-mr-row-index]"),P=N&&kt(N);return P?(w.preventDefault(),y(P),!0):!1}function x(){const w=a.value,N=t.plan.value;if(!w||!N)return"";const P=[],A=be(N,w.anchor),$=be(N,w.focus,w.anchor),R=an(N,w.anchor),T=U.createReportCellResolver(N),L=Math.min(A.column,$.column),F=Math.max(A.column,$.column);if((Math.abs(A.row-$.row)+1)*(F-L+1)>1e4)return t.error(new U.ReportCellEditError("limit")),"";for(let Z=Math.min(A.row,$.row);Z<=Math.max(A.row,$.row);Z++){const _=[];for(let G=L;G<=F;G++){const q=R(Z,G);_.push(q?T(q)?.cell.text??"":"")}P.push(_)}return U.formatReportClipboard(P)}function I(w){!a.value||w.target instanceof Element&&w.target.closest("textarea,input,select")||(w.clipboardData?.setData("text/plain",x()),w.preventDefault())}async function z(w){const N=a.value;if(!N||!n()||t.busy())return!1;try{let P;try{P=U.parseReportClipboard(w)}catch(F){throw new U.ReportCellEditError(F instanceof Error&&F.message.includes("limit")?"limit":"clipboard")}const A=t.plan.value,$=be(A,N.anchor),R=be(A,N.focus,N.anchor),T=an(A,N.anchor),L=P.flatMap((F,Z)=>F.map((_,G)=>{const q=T(Math.min($.row,R.row)+Z,Math.min($.column,R.column)+G);if(!q)throw new U.ReportCellEditError("missing");return{address:q,value:_}}));return await t.apply(L)}catch(P){return t.error(P),!1}}function ee(w){if(!a.value||!n()||w.target instanceof Element&&w.target.closest("textarea,input,select,button,a[href],[contenteditable]")||!w.clipboardData?.types.includes("text/plain"))return;const N=w.clipboardData?.getData("text/plain");N&&(w.preventDefault(),z(N))}async function Q(w){const N=t.plan.value;if(!N)return!1;const P=U.createReportCellResolver(N);for(let A=0;A<N.pages.length;A++){const $=N.pages[A];if(!(w.reportScope!==void 0&&$.meta?.reportScope!==w.reportScope))for(let R=0;R<$.components.length;R++)for(const T of g({pageIndex:A,componentIndex:R,rowIndex:0,columnIndex:0})){const L=P(T);if(Ps(L,w))return y(T)}}return!1}function ae(){a.value=null,u()}return{selection:a,refresh:u,reset:ae,focusCell:y,focusField:Q,navigate:k,onClick:p,onKeydown:B,onCopy:I,onPaste:ee,copySelection:x,pasteSelection:z}}function Ls(t){const n=e.shallowRef(null),a=e.shallowRef(!1);let r=0,o=null;function l(c){const u=o;o=null,n.value=null,a.value=!1,u?.(c)}function s(){r++,l(!1)}async function i(c){if(s(),!t.enabled()||!t.pending())return!0;const u=r,m=[...t.snapshot?.()??[]];a.value=!0;const d=Object.freeze({reason:c,reportIds:Object.freeze([...t.reportIds()]),pendingLocalChanges:!0});try{const f=t.hook(),y=await new Promise(g=>{if(o=g,!f){n.value=d;return}Promise.resolve().then(()=>f(d)).then(v=>{u===r&&l(v===!0)},v=>{if(u===r){try{t.error(v)}catch{}l(!1)}})}),p=t.snapshot?.()??[];return u===r&&y===!0&&p.length===m.length&&m.every((g,v)=>Object.is(g,p[v]))}catch(f){if(u===r){try{t.error(f)}catch{}l(!1)}return!1}}return{request:n,pending:a,check:i,settle:l,cancel:s}}function qs(t){function n(i){if(!(i instanceof U.ReportCellEditError))return i instanceof Error?i.message:"单元格保存失败";const c=t.messages();return{number:c.editInvalidNumber,boolean:c.editInvalidBoolean,conflict:c.editConflict,atomic:c.editAtomicRequired,limit:c.clipboardLimit,readonly:c.editReadOnly,missing:c.editMissing,recalculation:c.editRecalculationUnavailable,duplicate:c.editDuplicate,clipboard:c.clipboardInvalid}[i.code]??i.message}const a=$s({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=zs({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=Ls({...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 Ks=0;function js(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)}-${++Ks}`;a.add(d),r=m,o({taskId:d,kind:c,stage:u,status:"running",cancellable:!0});function f(p,g,v){n.value?.taskId!==d||n.value.status!=="running"||o({...n.value,stage:p,completed:g,total:v})}function y(p="completed"){n.value?.taskId!==d||n.value.status!=="running"||(r=null,o({...n.value,status:p,cancellable:!1}))}return{taskId:d,update:f,finish:y}}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 Ws(t){const n=e.shallowRef(Object.freeze([])),a=new Set;let r=0;function o(){r++,n.value=Object.freeze([]),a.clear()}function l(c){const u=r,m=[];for(const d of c){const f=JSON.stringify([d.code,d.format,d.pageIndex,d.componentIndex,d.componentPath,d.path,d.message,d.valueState,d.target]);if(a.has(f))continue;a.add(f);const y=Object.freeze({...d,...d.target?{target:Object.freeze({...d.target})}:{},...d.componentPath?{componentPath:Object.freeze([...d.componentPath])}:{}});m.push(y)}m.length&&(n.value=Object.freeze([...n.value,...m]));for(const d of m){if(u!==r)break;try{t(d)}catch{}}}function s(c){l([c])}function i(c,u){const m=U.inspectOutputCapabilities(c,u);return l(m),m}return{entries:n,reset:o,add:s,addMany:l,inspect:i}}const Hs={class:"mrp-edit-bar"},Us=["disabled"],Gs=["disabled"],Js={class:"mrp-changes"},Xs=["aria-label"],Zs={key:0},Ys={key:1},Qs=["onClick"],_s=["title"],ei=["title"],ti=["disabled"],ni={key:0,role:"status"},ai={key:1,role:"status"},oi={key:2,class:"mrp-conflicts",open:""},ri=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",Hs,[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,Us),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,Gs),e.createElementVNode("details",Js,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.changes)+" · "+e.toDisplayString(t.messages.changesCount?.replace("{count}",String(t.differences.length))),1),e.createElementVNode("section",{"aria-label":t.messages.changes},[t.differences.length?(e.openBlock(),e.createElementBlock("ol",Ys,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.differences,(o,l)=>(e.openBlock(),e.createElementBlock("li",{key:l},[e.createElementVNode("button",{type:"button",onClick:s=>a.$emit("locate",o)},e.toDisplayString(n(o)),9,Qs),e.createElementVNode("span",null,[e.createElementVNode("s",{title:t.messages.changesBefore},e.toDisplayString(o.previousText||"∅"),9,_s),r[3]||(r[3]=e.createTextVNode(" → ",-1)),e.createElementVNode("strong",{title:t.messages.changesAfter},e.toDisplayString(o.text||"∅"),9,ei)])]))),128))])):(e.openBlock(),e.createElementBlock("p",Zs,e.toDisplayString(t.messages.changesEmpty),1))],8,Xs)]),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,ti),t.saving?(e.openBlock(),e.createElementBlock("span",ni,e.toDisplayString(t.messages.saving),1)):t.differences.length&&!t.conflicts.length?(e.openBlock(),e.createElementBlock("span",ai,e.toDisplayString(t.persisted?t.messages.editSaved:t.messages.editingLocal),1)):e.createCommentVNode("",!0),t.conflicts.length?(e.openBlock(),e.createElementBlock("details",oi,[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)]))}}),li=W._export_sfc(ri,[["__scopeId","data-v-df1c7b86"]]);function si(t){const n=t.table?.columnKeys??[],a=n.map(()=>[]);if(!t.grid)return n;for(const{ci:r,cell:o}of tt.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 ii(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=si(s),u=n.filter(y=>y.pageIndex<=o),m=u[u.length-1]?.label,d=i.source?.datasetId,f=[...new Set([m,i.title,d].filter(Boolean))].join(" · ")||i.id;i.columnKeys.forEach((y,p)=>{y&&r.push({key:JSON.stringify([i.id,p]),field:y,label:c[p],group:f,pageIndex:o,tableId:i.id,...d?{datasetId:d}:{}})})}return r}function ci(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 ui(t){const n=ie.usePopover(),a=e.ref(""),r=e.ref(0),o=`mrp-column-list-${e.getCurrentInstance()?.uid??0}`,l=e.computed(()=>ii(t.plan(),t.sections())),s=e.computed(()=>ci(l.value,a.value)),i=e.computed(()=>s.value.slice(0,100)),c=e.computed(()=>[...new Set(i.value.map(p=>p.group))].map(p=>({label:p,items:i.value.filter(g=>g.group===p)})));e.watch(a,()=>{r.value=0}),e.watch(t.busy,p=>{p&&n.close()}),e.watch(l,()=>{r.value=0});function u(p){t.busy()||(t.locate(p),n.close(!0))}function m(){if(t.busy())return;const p=i.value[r.value];p?u(p):a.value.trim()&&(t.locateField(a.value.trim()),n.close(!0))}function d(){a.value="",n.panel.value?.querySelector("input")?.focus()}function f(p){if(!(p.isComposing||p.keyCode===229||!["ArrowDown","ArrowUp","Enter"].includes(p.key))){if(p.preventDefault(),p.stopPropagation(),p.key==="Enter"){m();return}i.value.length&&(r.value=(r.value+(p.key==="ArrowDown"?1:-1)+i.value.length)%i.value.length,e.nextTick(()=>n.panel.value?.querySelector(`[id="${o}-${r.value}"]`)?.scrollIntoView?.({block:"nearest"})))}}function y(p){return i.value.findIndex(g=>g.key===p)}return{...n,field:a,active:r,listId:o,directory:l,matches:s,candidates:i,groups:c,choose:u,submit:m,clear:d,onSearchKeydown:f,candidateIndex:y}}const di=["aria-label"],mi={key:0,class:"mrp-section-tabs"},fi=["aria-current","disabled","onClick"],pi=["aria-expanded","disabled"],gi={key:0,class:"mrp-column-count"},vi=["aria-label"],yi={class:"mrp-column-heading"},bi=["aria-label"],hi=["aria-label","placeholder","aria-controls","aria-activedescendant","disabled"],wi=["aria-label"],ki=["id","aria-label"],xi={key:0,class:"mrp-column-empty",role:"status"},Ei=["aria-label"],Ci=["id","aria-selected","disabled","onPointermove","onClick"],Si=["title"],Ni={class:"mrp-column-help",role:"status"},Bi=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=ui({plan:()=>a.plan,sections:()=>a.sections,busy:()=>a.busy,locate:B=>r("locate-target",B),locateField:B=>r("locate",B)}),{root:l,trigger:s,panel:i,opened:c,field:u,active:m,directory:d,matches:f,candidates:y,groups:p,listId:g}=o,v=e.computed(()=>d.value.length>0||!a.plan||a.plan.pages.some(B=>B.components.some(b=>b.table?.columnKeys.length))),D=e.computed(()=>({columnDirectory:"字段目录",columnSearch:"搜索列名或字段",columnNoMatches:"未找到匹配字段",columnResults:"匹配字段",...a.messages})),h=e.computed(()=>(a.messages.columnResultsMore??"{count} 个匹配字段,显示前 {limit} 个;继续输入可缩小范围").replace("{count}",String(f.value.length)).replace("{limit}",String(y.value.length)));function k(B){const b=a.sections[B];return!!b&&a.currentPage>=b.pageIndex+1&&(!a.sections[B+1]||a.currentPage<=a.sections[B+1].pageIndex)}return(B,b)=>t.sections.length>1||v.value?(e.openBlock(),e.createElementBlock("nav",{key:0,class:e.normalizeClass(["mrp-section-nav",{"mrp-compact":t.compact}]),"aria-label":t.messages.sections??"工作表与章节"},[t.sections.length>1?(e.openBlock(),e.createElementBlock("div",mi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.sections,(E,M)=>(e.openBlock(),e.createElementBlock("button",{key:M,type:"button",class:e.normalizeClass({active:k(M)}),"aria-current":k(M)?"page":void 0,disabled:t.busy,onClick:x=>r("goto",E.pageIndex+1)},e.toDisplayString(E.label),11,fi))),128))])):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"root",ref:l,class:"mrp-column-locator",onKeydown:b[7]||(b[7]=(...E)=>e.unref(o).onKeydown&&e.unref(o).onKeydown(...E))},[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:b[0]||(b[0]=E=>c.value=!e.unref(c))},[e.createVNode(W._sfc_main,{name:"columns"}),e.createElementVNode("span",null,e.toDisplayString(D.value.columnDirectory),1),e.unref(d).length?(e.openBlock(),e.createElementBlock("span",gi,e.toDisplayString(e.unref(d).length),1)):e.createCommentVNode("",!0),e.createVNode(W._sfc_main,{name:"chevron-down",size:12})],10,pi),e.unref(c)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panel",ref:i,class:"mrp-column-directory",role:"dialog","aria-label":D.value.columnDirectory},[e.createElementVNode("div",yi,[e.createElementVNode("span",null,[e.createVNode(W._sfc_main,{name:"columns"}),e.createTextVNode(e.toDisplayString(D.value.columnDirectory),1)]),e.createElementVNode("button",{type:"button",class:"mrp-column-close","aria-label":t.messages.closeColumnDirectory??"关闭字段目录",onClick:b[1]||(b[1]=E=>e.unref(o).close(!0))},[e.createVNode(W._sfc_main,{name:"close",size:15})],8,bi)]),e.createElementVNode("form",{class:"mrp-column-search",onSubmit:b[5]||(b[5]=e.withModifiers((...E)=>e.unref(o).submit&&e.unref(o).submit(...E),["prevent"]))},[e.createVNode(W._sfc_main,{name:"search"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":b[2]||(b[2]=E=>e.isRef(u)?u.value=E:null),type:"search",autocomplete:"off",spellcheck:"false",role:"combobox","aria-label":D.value.columnSearch,placeholder:D.value.columnSearch,"aria-autocomplete":"list","aria-expanded":"true","aria-controls":e.unref(g),"aria-activedescendant":e.unref(y).length?`${e.unref(g)}-${e.unref(m)}`:void 0,disabled:t.busy,onKeydown:b[3]||(b[3]=(...E)=>e.unref(o).onSearchKeydown&&e.unref(o).onSearchKeydown(...E))},null,40,hi),[[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:b[4]||(b[4]=(...E)=>e.unref(o).clear&&e.unref(o).clear(...E))},[e.createVNode(W._sfc_main,{name:"close",size:13})],8,wi)):e.createCommentVNode("",!0)],32),e.createElementVNode("div",{id:e.unref(g),class:"mrp-column-results",role:"listbox","aria-label":D.value.columnResults},[e.unref(y).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",xi,[e.createVNode(W._sfc_main,{name:"search",size:22}),e.createTextVNode(e.toDisplayString(D.value.columnNoMatches),1)])),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),E=>(e.openBlock(),e.createElementBlock("section",{key:E.label,role:"group","aria-label":E.label},[e.createElementVNode("strong",null,e.toDisplayString(E.label),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.items,M=>(e.openBlock(),e.createElementBlock("button",{id:`${e.unref(g)}-${e.unref(o).candidateIndex(M.key)}`,key:M.key,type:"button",role:"option",tabindex:"-1",class:e.normalizeClass({"mrp-column-active":e.unref(o).candidateIndex(M.key)===e.unref(m)}),"aria-selected":e.unref(o).candidateIndex(M.key)===e.unref(m),disabled:t.busy,onPointermove:x=>m.value=e.unref(o).candidateIndex(M.key),onMousedown:b[6]||(b[6]=e.withModifiers(()=>{},["prevent"])),onClick:x=>e.unref(o).choose(M)},[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(M.label),1),e.createElementVNode("code",{title:M.field},e.toDisplayString(M.field),9,Si)]),e.createVNode(W._sfc_main,{name:"arrow-right",size:14})],42,Ci))),128))],8,Ei))),128))],8,ki),e.createElementVNode("p",Ni,e.toDisplayString(e.unref(f).length>e.unref(y).length?h.value:t.messages.columnSearchShortcut??"↑ ↓ 选择 · Enter 定位"),1)],8,vi)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)],10,di)):e.createCommentVNode("",!0)}}),on=W._export_sfc(Bi,[["__scopeId","data-v-15a41f0e"]]),Vi={class:"mrp-import-summary"},$i={key:0},Di={key:0},Pi=e.defineComponent({__name:"ReportImportSummary",props:{result:{},messages:{}},setup(t){return(n,a)=>(e.openBlock(),e.createElementBlock("details",Vi,[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",$i," · "+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",Di,[(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)]))}}),Ri=W._export_sfc(Pi,[["__scopeId","data-v-54f275e8"]]),et=["html","pdf","xlsx","png","word"],Et=["search","thumbnails","zoom",...et,"print","pdfWindow","editing","import"];function Ii(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 Mi(t,n,a,r){const o=e.ref({});let l=0,s=0,i=Promise.resolve();const c=e.computed(()=>Object.fromEntries(Et.map(f=>[f,t.value[f]&&(o.value[f]??n.value[f]??!0)])));function u(f,y){t.value[f]&&(s++,o.value={...o.value,[f]:y},m())}function m(){const f=a?.value;if(!f)return;const y={...o.value};i=i.then(()=>f.adapter.save(f.key,y)).catch(p=>{r?.(p)})}function d(){s++,o.value={},m()}return a&&e.watch(a,async f=>{const y=++l,p=s;if(o.value={},!!f)try{const g=await f.adapter.load(f.key);if(y!==l||p!==s||!g||typeof g!="object")return;o.value=Object.fromEntries(Et.flatMap(v=>typeof g[v]=="boolean"?[[v,g[v]]]:[]))}catch(g){y===l&&r?.(g)}},{immediate:!0}),e.onScopeDispose(()=>{l++}),{enabled:c,setEnabled:u,reset:d}}function Ti(t,n,a){const r=e.ref({}),o=ie.useMachReportConfig(),l=e.computed(()=>ie.resolveConfig(o.value,t.preset)),s=e.computed(()=>({...l.value.messages,...t.messages})),i=e.computed(()=>t.showExport??l.value.showExport),c=e.computed(()=>t.showPrint??l.value.showPrint),u=e.computed(()=>t.showPdfWindow??l.value.showPdfWindow),m=e.computed(()=>t.showSettings??l.value.showSettings),d=e.computed(()=>t.guardChanges??l.value.guardChanges),f=e.computed(()=>({...l.value.output,...t.output})),y=e.computed(()=>({...l.value.toolbar,...t.toolbar})),p=e.computed(()=>({...l.value.interaction,...t.interaction,...r.value})),g=e.computed(()=>t.preferences??l.value.preferences),v=e.computed(()=>t.assets??l.value.assets),D=e.computed(()=>t.gapPx??(n.value?0:l.value.gapPx)),h=e.computed(()=>t.showParams??l.value.showParams),k=e.computed(()=>t.editable??l.value.editable),B=e.computed(()=>t.excelImport??l.value.excelImport),b=e.computed(()=>({search:y.value.search!==!1,thumbnails:y.value.thumbnails!==!1,zoom:y.value.zoom!==!1,...Object.fromEntries(et.map(ae=>[ae,i.value&&(y.value.exportFormats?.includes(ae)??!0)])),print:c.value,pdfWindow:u.value,editing:!!k.value,import:!!B.value})),E=Mi(b,e.computed(()=>({editing:y.value.editing,import:y.value.excelImport})),g,()=>a(s.value.preferencesError??"Preferences storage unavailable")),M=E.enabled,x=e.computed(()=>et.filter(ae=>M.value[ae])),I=e.computed(()=>M.value.editing?k.value:!1),z=e.computed(()=>M.value.import?B.value:!1),ee=e.computed(()=>typeof k.value=="object"&&(typeof k.value.save=="function"||typeof k.value.saveBatch=="function")),Q=e.computed(()=>typeof t.emptyState=="object"?t.emptyState:{});return{resolved:l,resolvedMessages:s,effectiveShowExport:i,effectiveShowPrint:c,effectiveShowPdfWindow:u,effectiveShowSettings:m,effectiveGuardChanges:d,effectiveOutput:f,effectiveInteraction:p,effectiveAssets:v,effectiveGapPx:D,effectiveShowParams:h,availableTools:b,tools:E,toolState:M,visibleExportFormats:x,effectiveEditable:I,effectiveExcelImport:z,persistedEditing:ee,emptyStateContent:Q,sessionInteraction:r}}const Ve=96/25.4;function Oi(t){let n=0,a=null,r=null,o="",l=[];function s(f){f.content.style.overflow=f.overflow;for(const y of f.components){y.element.style.transform=y.transform,y.element.style.zIndex=y.zIndex,y.element.style.removeProperty("--mrp-freeze-y");for(const p of y.cells)p.cell.style.cssText=p.css,p.cell.classList.remove("mrp-cell-frozen");y.table&&(y.table.style.cssText=y.tableCss)}}function i(f,y,p,g,v){const D={element:f,component:y,transform:f.style.transform,zIndex:f.style.zIndex,cells:[]},h=g&&y.table?.role==="header";h?(f.style.transform="translate3d(0,var(--mrp-freeze-y,0px),0)",f.style.zIndex="5"):p&&(f.style.zIndex="1");const k=tt.resolveGridLayout(y.grid,y.widthMm,y.heightMm),B=f.querySelector("table");return p&&B&&(D.table=B,D.tableCss=B.style.cssText,B.style.display="grid",B.style.gridTemplateColumns=k.columns.map(b=>`${b.size*Ve}px`).join(" "),B.style.gridTemplateRows=k.rows.map(b=>`${b.size*Ve}px`).join(" ")),f.querySelectorAll("td[data-mr-column-index]").forEach(b=>{const E=Number(b.dataset.mrColumnIndex)<p,M=g&&!y.table&&Number(b.dataset.mrRowIndex)===0;if(!(!E&&!M)){if(D.cells.push({cell:b,css:b.style.cssText}),E){const x=Number(b.dataset.mrColumnIndex),I=Number(b.dataset.mrRowIndex);b.style.position="sticky",b.style.left=`${(k.columns[x]?.pos??0)*Ve-v}px`,b.style.top="auto",b.style.gridColumn=`${x+1} / span ${b.getAttribute("colspan")||1}`,b.style.gridRow=`${I+1} / span ${b.getAttribute("rowspan")||1}`}M&&(b.style.transform="translate3d(0,var(--mrp-freeze-y,0px),0)"),b.style.zIndex=M||h?"7":"6",b.style.setProperty("--mrp-frozen-fill",b.style.backgroundColor||"transparent"),b.classList.add("mrp-cell-frozen")}}),D}function c(f,y,p,g,v){const D=Number(f.dataset.page)-1,h=y.pages[D],k=f.firstElementChild;if(!h||!(k instanceof HTMLElement))return;const B=k.style.overflow;p&&(k.style.overflow="clip");const b=[];return f.querySelectorAll("[data-mr-component-index]").forEach(E=>{const M=h.components[Number(E.dataset.mrComponentIndex)];M?.grid&&!M.style?.rotateDeg&&b.push(i(E,M,p,g,v))}),{holder:f,content:k,overflow:B,index:D,components:b}}function u(f,y,p,g,v){const D=`${p}:${g}:${v}`;if((a!==f||r!==y||o!==D)&&(l.forEach(s),l=[],a=f,r=y,o=D),!g&&!p)return;const h=new Map(l.map(k=>[k.holder,k]));l=[],f.querySelectorAll(".mrp-page-holder").forEach(k=>{let B=h.get(k);h.delete(k),B&&B.content!==k.firstElementChild&&(s(B),B=void 0),B??=c(k,y,p,g,v),B&&l.push(B)}),h.forEach(s)}function m(){const f=t.viewport.value,y=t.root.value,p=t.plan.value;if(!f||!y||!p){l.forEach(s),l=[];return}const g=t.options(),v=Math.max(0,Math.min(20,Math.floor(g.frozenColumns??0)))||0,D=(parseFloat(getComputedStyle(f).paddingLeft)||0)/(t.zoom.value||1);if(u(y,p,v,!!g.freezeHeaders,D),!g.freezeHeaders)return;const h=t.zoom.value||1,k=f.getBoundingClientRect(),B=l.map(b=>({page:b,bounds:b.holder.getBoundingClientRect()}));for(const b of B){const{page:E,bounds:M}=b;for(const x of E.components){if(x.component.table&&x.component.table.role!=="header")continue;const I=x.component.topMm*Ve,z=x.component.heightMm*Ve,ee=p.pages[E.index].pageHeightMm*Ve-I-z,Q=Math.max(0,Math.min((k.top-M.top)/h-I,ee));x.element.style.setProperty("--mrp-freeze-y",`${Q}px`)}}}function d(){n||(n=requestAnimationFrame(()=>{n=0,m()}))}return e.onScopeDispose(()=>{n&&cancelAnimationFrame(n),l.forEach(s),l=[]}),{refresh:m,schedule:d}}function Ai(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 Vn(t,n,a,r){if(!n?.assetRegistry&&(!n?.assetRenderers||!Object.keys(n.assetRenderers).length))return t;try{return(await U.resolvePlanAssets(t,{...n,signal:a,format:"dom",onDiagnostic:l=>{a.aborted||(n.onDiagnostic?.(l),r(l.message))}})).plan}catch(o){throw a.aborted?o:new ie.MachReportError("render",o instanceof Error?o.message:"Report asset preparation failed",o)}}function $n(t,n){const a=U.validateRenderPlan(t);if(!a.ok)throw new ie.MachReportError("validate",`渲染计划校验失败(${a.errors.length} 处): ${a.errors.slice(0,3).map(r=>`${r.path}: ${r.message}`).join("; ")}`);a.warnings.forEach(r=>n(`${r.path}: ${r.message}`))}async function Fi(t,n,a,r){const o=await X.waitForOutput(t(n),n.signal);return X.assertOutputActive(n.signal),r("validate"),$n(o,n.onWarning??(()=>{})),X.assertOutputActive(n.signal),r("assets"),Vn(o,a,n.signal,n.onWarning??(()=>{}))}async function zi(t,n,a,r,o,l){const{importExcelTemplate:s}=await import("@agile-team/mach-report/xlsx");X.assertOutputActive(r);const i=await X.waitForOutput(s(t,{...n,signal:r}),r);l("layout");const c=U.paginateTemplate(me(i.template),{}).plan;$n(c,o),X.assertOutputActive(r),l("assets");const u=await Vn(c,a,r,o);return{result:i,plan:u}}function Li({source:t,policy:n,feedback:a,view:r,events:o,task:l,diagnostics:s}){const i=e.shallowRef(null),c=e.ref(!1),u=e.ref(!1),m=e.shallowRef(null),d=e.shallowRef(null),{errorMessage:f,lastError:y,notice:p,reportError:g}=a,v=Ma();let D=!1;function h(){r.invalidate(),u.value=!1,d.value=null,i.value=null,m.value=null,s.reset()}let k=0,B=null;function b(w,N){return w===k&&!N.signal.aborted&&!D}function E(w,N){for(const P of w){if(N!==k)return!1;o.warning(P)}return N===k}function M(){const w=t.readParams();return w.params?w.params:(h(),f.value=w.quiet?"":w.error.message,w.quiet||(t.invalidParams(),g(w.error.message,w.error.code,w.error.cause)),null)}async function x(){if(D)return;const w=n.guard("reload");if(!(typeof w=="boolean"?w:await w)||D)return;const N=++k;u.value=!1,B?.abort(),B=null;const P=t.fetcher();if(c.value=!1,y.value=null,t.ids().length===0){f.value="缺少报表 ID",h(),g(f.value,"param");return}if(!P){f.value="未提供渲染数据源 fetcher",h(),g(f.value,"config");return}const A=M();if(!A)return;c.value=!0,f.value="",p.value=null,h();const $=v.start(),R=new AbortController;B=R;const T=l.start("query","query",()=>{B===R&&(R.abort(),k++,B=null,c.value=!1)}),L=[...t.ids()],F=Object.freeze({...A}),Z=new Set;function _(G){N!==k||R.signal.aborted||Z.has(G)||(Z.add(G),o.logWarning(G),s.add({code:"layout",severity:"warning",message:G}),o.warning(G))}try{const G=await Fi(P,{reportIds:L,params:A,taskId:T.taskId,onEvent:q=>{N===k&&!R.signal.aborted&&T.update(q.stage,q.completed,q.total)},onQueryResult:(q,se,fe)=>{N===k&&!R.signal.aborted&&s.addMany(Ai(L,q,se.diagnostics??[],fe))},signal:R.signal,onWarning:_},n.assets(),T.update);if(!b(N,R)||(i.value=G,m.value=Object.freeze({reportIds:Object.freeze(L),params:F}),s.inspect(G,"dom"),!b(N,R)))return;T.finish(),v.end($),r.accepted("query"),o.loaded(G.pages.length)}catch(G){if(N!==k)return;if(R.signal.aborted){T.finish("cancelled");return}T.finish("failed");const q=ie.normalizeReportLoadError(G);f.value=q.message;const se=ie.toErrorDetail(q);g(q.message,se.code,se.cause)}finally{N===k&&(c.value=!1),B===R&&(B=null)}}function I(w){const N=n.importOptions(),P=typeof N=="object"?N:{};return{...P,...w,limits:{...P.limits,...w?.limits}}}function z(w,N){r.invalidate(),i.value=w,m.value=null,s.reset(),d.value={sheets:me(N.sheets),warnings:[...N.warnings]},f.value="",p.value=N.warnings.length?{kind:"warning",message:N.warnings.join(";")}:null,r.accepted("import"),s.addMany(N.warnings.map(P=>({code:"excel-import",severity:"warning",message:P}))),i.value===w&&s.inspect(w,"dom")}async function ee(w,N){if(D)throw new ie.MachReportError("config","报表预览已卸载");const P=n.guard("import");if(!(typeof P=="boolean"?P:await P)||D)return null;const A=++k;B?.abort(),B=null,c.value=!1,r.beforeImport(),u.value=!0;const $=new AbortController;B=$,y.value=null,p.value={kind:"progress",message:n.importingMessage()??"正在导入 Excel…"};const R=l.start("import","import",()=>{B===$&&($.abort(),k++,B=null,u.value=!1,p.value=null)}),T=I(N),L=X.forwardOutputAbort(T.signal,$);try{const{result:F,plan:Z}=await zi(w,{...T,onProgress:(_,G)=>{R.update("import",_,G),T.onProgress?.(_,G)}},n.assets(),$.signal,_=>{A===k&&o.warning(_)},R.update);return!b(A,$)||!E(F.warnings,A)||(z(Z,F),!b(A,$))?null:(R.finish(),o.imported(F),A===k&&o.loaded(Z.pages.length),F)}catch(F){if(A!==k)return null;if($.signal.aborted)return R.finish("cancelled"),null;R.finish("failed");const Z=new ie.MachReportError("import",F instanceof Error?F.message:"Excel 模板导入失败",F);throw p.value={kind:"error",message:Z.message},g(Z.message,"import",F),Z}finally{L(),A===k&&(u.value=!1),B===$&&(B=null)}}function Q(){k++,B?.abort(),B=null,c.value=!1,f.value="",y.value=null,p.value=null,h()}function ae(){D=!0,k++,B?.abort(),B=null,c.value=!1,u.value=!1}return e.onScopeDispose(ae),{plan:i,loading:c,importing:u,loadedContext:m,importedResult:d,timing:v,reload:x,importExcel:ee,invalidate:h,clear:Q}}const qi={key:8,class:"mrp-edit-hint",role:"status"},Ki={key:10,class:"mrp-export-notice mrp-export-warning",role:"status"},ji={class:"mrp-main"},Wi={key:0,class:"mrp-state"},Hi={key:1,class:"mrp-state mrp-error"},Ui=["data-page"],Gi=["aria-label","aria-current","onClick"],Ji=["data-thumb"],Xi={class:"mrp-thumb-no"},Zi={key:11,class:"mrp-footer"},Yi={class:"mrp-footer-context"},Qi=["aria-label"],_i={key:0},ec={class:"mrp-overlay"},tc={key:12,class:"mrp-debug","aria-hidden":"true"},wt=96/25.4,rn="mach-report:ui",ln="mach-report:ui:wide",nc=e.defineComponent({__name:"ReportPreview",props:{prefill:{type:[Boolean,Object],default:void 0},dataComparison:{type:[Boolean,Object],default:void 0},drill:{type:Object,default:void 0},loadParamOptions:{type:Function,default:void 0},reportId:{type:[String,Array],default:null},params:{type:Object,default:()=>({})},height:{type:String,default:"100vh"},autoLoad:{type:Boolean,default:!0},showExport:{type:Boolean,default:void 0},showPrint:{type:Boolean,default:void 0},showPdfWindow:{type:Boolean,default:void 0},showSettings:{type:Boolean,default:void 0},toolbar:{type:Object,default:void 0},interaction:{type:Object,default:void 0},preferences:{type:Object,default:void 0},guardChanges:{type:Boolean,default:void 0},beforeDiscard:{type:Function,default:void 0},output:{type:Object,default:void 0},exportExecution:{type:Object,default:void 0},assets:{type:Object,default:void 0},printOptions:{type:Object,default:void 0},emptyState:{type:[Boolean,Object],default:!1},gapPx:{type:Number,default:void 0},messages:{type:Object,default:void 0},preset:{type:String,default:void 0},debug:{type:Boolean,default:!1},paramDefs:{type:Array,default:void 0},showParams:{type:Boolean,default:void 0},editable:{type:[Boolean,Object],default:void 0},excelImport:{type:[Boolean,Object],default:void 0},fetcher:{type:Function,default:null}},emits:["loaded","task","diagnostic","error","warning","cell-edit","template-import","preferences-change"],setup(t,{expose:n,emit:a}){const r=t,o=a,l=e.ref(""),s=e.shallowRef(null),i=e.ref(null),c=e.ref(1),u=e.ref(null),m=e.ref(null),d=e.ref(null),f=e.ref(!1),y=e.ref(!1),p=e.ref("general"),g=e.ref(null),v=e.ref(null);let D=null,h=!1;const k=js(S=>o("task",S)),B=Ws(S=>o("diagnostic",S)),b=e.computed(()=>B.entries.value.filter(S=>S.valueState&&S.target)),E=e.computed(()=>B.entries.value.filter(S=>!S.valueState)),M=Li({source:{ids:()=>T.value,fetcher:()=>L.value,readParams:()=>je.value.error?{error:je.value.error,quiet:!1}:Re.query(),invalidParams:()=>{je.value.error||(We.value=!0)}},policy:{guard:S=>we.value&&J.pendingLocalChanges.value?Le.check(S):!0,assets:()=>K.value,importOptions:()=>Pe.value,importingMessage:()=>q.value.importing},feedback:{errorMessage:l,lastError:s,notice:i,reportError:_},task:k,diagnostics:B,view:{invalidate:()=>{J.reset(),oe.reset(),lt.invalidate(),c.value=1,le.reset()},beforeImport:()=>{J.cancel(),lt.invalidatePending()},accepted:S=>{c.value=1,m.value&&(m.value.scrollTop=0,m.value.scrollLeft=0);const O=P.value?ln:rn;(S==="import"||O!==A)&&(A=O,Xt()),S==="query"&&Me.value==="fit"&&Wt()}},events:{warning:S=>o("warning",S),logWarning:S=>G.value.logger.warn("[mach-report] 报表告警:",S),loaded:S=>o("loaded",S),imported:S=>o("template-import",S)}}),{plan:x,loading:I,importing:z,importedResult:ee,loadedContext:Q,timing:ae,reload:w,importExcel:N}=M,P=e.computed(()=>!!x.value?.pages.length&&x.value.pages.every(S=>S.layout==="wide"));let A=rn;const $=e.inject(vt.MACH_REPORT_FETCHER_KEY,null),R=e.inject(vt.MACH_REPORT_PDF_EXPORTER_KEY,null),T=e.computed(()=>St(r.reportId)),L=e.computed(()=>r.fetcher??$),F=e.computed(()=>x.value?.pages.length??0),Z=e.computed(()=>Object.freeze({loading:I.value,hasPlan:F.value>0,pageCount:F.value,currentPage:c.value,exporting:ke.value,printing:he.value,canExport:!I.value&&!z.value&&!J.saving.value&&F.value>0&&ke.value===null,canPrint:!I.value&&!z.value&&!J.saving.value&&F.value>0&&!he.value,error:s.value,pdfFont:Pt.value,editing:J.active.value!==null,saving:J.saving.value,importing:z.value,dirty:J.differences.value.length>0,pendingLocalChanges:J.pendingLocalChanges.value,task:k.state.value,diagnostics:B.entries.value,reportIds:Q.value?.reportIds??[],params:Q.value?.params??{},canUndo:J.canUndo.value,canRedo:J.canRedo.value,changeCount:J.differences.value.length,selection:oe.selection.value?me(oe.selection.value):null}));function _(S,O,H){s.value=Object.freeze({message:S,code:O,cause:H}),o("error",S,{code:O,cause:H})}const{resolved:G,resolvedMessages:q,effectiveShowExport:se,effectiveShowSettings:fe,effectiveGuardChanges:we,effectiveOutput:C,effectiveInteraction:V,effectiveAssets:K,effectiveGapPx:j,effectiveShowParams:Y,availableTools:te,tools:re,toolState:ne,visibleExportFormats:Ce,effectiveEditable:ve,effectiveExcelImport:Pe,persistedEditing:Se,emptyStateContent:xe,sessionInteraction:at}=Ti(r,P,S=>o("warning",S)),$t=e.computed(()=>ne.value.pdf||ne.value.pdfWindow),Pn=e.computed(()=>r.prefill??G.value.prefill),Dt=e.computed(()=>r.dataComparison??G.value.dataComparison),ot=e.computed(()=>V.value.calculations===!0),rt=e.computed(()=>ie.resolveCalculationMessages(q.value)),{pdfFont:Pt,getPdfExporter:Rn,checkPdfFont:In,retryPdfFont:Rt,cancelFontCheck:Mn}=ps({plan:x,fontUrl:()=>G.value.pdfFontUrl,enabled:()=>$t.value,injectedExporter:R,destroyed:()=>h});async function Tn(S,O){S==="editing"&&!O&&!await J.settle()||(re.setEnabled(S,O),o("preferences-change",Object.freeze({...ne.value})))}async function On(){await J.settle()&&(re.reset(),at.value={},Tt.value=void 0,o("preferences-change",Object.freeze({...ne.value})))}async function It(S="general"){if(y.value){y.value=!1;return}const O=J.settle();!(typeof O=="boolean"?O:await O)||h||!fe.value||(p.value=S,y.value=!0)}const{editing:J,cells:oe,discard:Le,confirmDiscard:Mt}=qs({plan:x,root:u,options:ve,selectionEnabled:()=>!!ve.value||ot.value||!!Dt.value||!!(r.drill??G.value.drill),busy:()=>I.value||z.value||ke.value!==null||he.value,messages:()=>q.value,gotoPage:ge,ensureVisible:S=>He.reveal(S),guard:{reportIds:()=>Q.value?.reportIds??T.value,hook:()=>r.beforeDiscard??G.value.beforeDiscard,enabled:()=>we.value,error:S=>_(S instanceof Error?S.message:"修改保护回调失败","config",S)},changed:S=>{s.value=null,i.value=null,o("cell-edit",S)},failed:(S,O)=>{i.value={kind:"error",message:S},_(S,"edit",O)}}),lt=xa({plan:x,editing:J,diagnostics:B,task:k,busy:()=>I.value||z.value,wide:()=>P.value,defaultsPrint:()=>G.value.printOptions,printOverrides:()=>r.printOptions,messages:()=>q.value,fidelity:()=>C.value.fidelity,execution:()=>r.exportExecution??G.value.exportExecution,getPdfExporter:Rn,getXlsxOptions:()=>G.value.xlsx,feedback:{lastError:s,notice:i,reportError:_,warning:S=>o("warning",S)}}),{exporting:ke,printing:he,localPrintCalibration:Tt,effectivePrintOptions:An,canCalibratePrint:Fn,testPrintCalibration:zn,print:Ot,exportAs:At,openPdfWindow:Ft,getOutputDiagnostics:Ln}=lt,ue=Er({plan:x,prefill:Pn,comparison:Dt,editingOptions:ve,issues:J.validationIssues,messages:q,busy:()=>I.value||z.value||J.saving.value||!!ke.value||he.value,replacing:()=>I.value||z.value,settle:J.settle,apply:J.apply,editError:()=>J.lastError.value,locate:S=>{oe.focusCell(S)},missing:()=>{i.value={kind:"warning",message:q.value.locateFieldMissing??"Field not found"}},error:(S,O)=>_(S,"edit",O)}),st=Qr({plan:x,selection:oe.selection,enabled:()=>ot.value});function qn(){It("advanced")}const qe=os({plan:x,selection:oe.selection,options:()=>r.drill??G.value.drill,params:()=>({...Q.value?.params}),view:()=>({zoom:de.value,scrollTop:u.value?.scrollTop??0,scrollLeft:u.value?.scrollLeft??0}),messages:()=>q.value,busy:()=>I.value||z.value||J.saving.value||!!ke.value||he.value,beforeOpen:()=>Mt("leave")});function zt(){k.cancel()}function Kn(S){const O=J.resolveAddress(S);O&&oe.focusCell(O)}async function Lt(S){await oe.focusField(S)||(i.value={kind:"warning",message:q.value.locateFieldMissing??"Field not found"})}function jn(S){if(S.pageIndex===void 0)return;ge(S.pageIndex+1);const O=S.componentPath;S.componentIndex!==void 0&&O&&O.length===2&&oe.focusCell({pageIndex:S.pageIndex,componentIndex:S.componentIndex,rowIndex:O[0],columnIndex:O[1]})}const Ke=e.computed(()=>{if(ee.value)return ee.value.sheets.map(O=>({label:O.name,pageIndex:O.pageStart}));const S=new Set;return x.value?.pages.flatMap((O,H)=>O.components.flatMap(Ae=>{const Ee=Ae.table;return!Ee?.title||S.has(Ee.id)?[]:(S.add(Ee.id),[{label:Ee.title,pageIndex:H}])}))??[]});async function qt(S){S&&!await oe.focusField({field:S})&&(i.value={kind:"warning",message:q.value.locateFieldMissing??"Field not found"})}async function Wn(S){await oe.focusField(S)||(i.value={kind:"warning",message:q.value.locateFieldMissing??"Field not found"})}const je=e.computed(()=>{try{return{defs:r.paramDefs??L.value?.getParamDefs?.(T.value)??[],error:null}}catch(S){return{defs:[],error:new ie.MachReportError("config",S instanceof Error?S.message:"查询参数配置无效",S)}}}),it=e.computed(()=>je.value.defs),Re=ie.useReportParams({defs:it,reportIds:T,params:()=>r.params,messages:()=>q.value}),{values:Ie,attempted:We,pendingRequired:Kt}=Re,jt=e.ref(null);function Hn(){We.value=!0,Re.validation.value.ok||e.nextTick(()=>jt.value?.focusInvalid()),w()}function Un(){Re.reset(),l.value="",s.value=null}const Gn=e.computed(()=>({height:r.height,"--mrp-page-gap":`${Math.max(0,j.value)}px`,...ie.themeToCssVars(G.value.theme)})),{zoom:de,zoomMode:Me,applyFitZoom:Wt,setZoom:Te}=un(()=>({viewport:m.value,pageWidthPx:ct.contentSize.value.w||210*wt})),ct=cn(x,de,{pxPerMm:wt,gapPx:j,overscan:e.computed(()=>G.value.preview.overscanPages)}),{contentSize:ut,windowRange:Oe,visiblePages:Ht,makeScrollHandler:Jn,refreshViewport:Ut}=ct,Xn=Jn(c,F),dt=Oi({root:u,viewport:m,plan:x,zoom:de,options:()=>V.value});e.watch([V,de],()=>dt.refresh(),{flush:"post"});function mt(S){Te(S*100)}function ge(S){if(h||F.value<=0)return;const O=Math.max(1,Math.min(F.value,S));c.value=O;const H=m.value;H&&(ct.scrollToPage(H,O-1),He.prioritize(O-1))}async function Zn(S,O={}){h||(Ie.value={...Ie.value,...S},O.reload!==!1&&(We.value=!0,await w()))}const Gt={reload:w,print:Ot,exportAs:At,openPdfWindow:Ft,gotoPage:ge,setParams:Zn,checkPdfFont:In,importExcel:N,getPlan:Yn,cancelTask:zt,confirmDiscard:Mt,getOutputDiagnostics:Ln,getChanges:J.getChanges,undo:J.undo,redo:J.redo,restoreChanges:J.restore,getDifferences:()=>me(J.differences.value),getSelection:()=>oe.selection.value?me(oe.selection.value):null,focusCell:oe.focusCell,focusField:oe.focusField,copySelection:oe.copySelection,pasteSelection:oe.pasteSelection,get state(){return Z.value}};e.provide(vt.MACH_REPORT_CONTROLLER_KEY,Gt);function Yn(){return x.value?me(x.value):null}function Qn(S){const O=S.target,H=O.files?.[0];O.value="",H&&N(H).catch(()=>{})}const le=Pa({plan:x,gotoPage:ge,debounceMs:e.computed(()=>G.value.preview.searchDebounceMs),highlight:Ca,clearHighlights:Ea});e.watch(()=>ne.value.search,S=>{S||(le.reset(),le.visible.value=!1)});function _n(S){!S.ctrlKey||!ne.value.zoom||(S.preventDefault(),mt(de.value*(S.deltaY<0?1.1:1/1.1)))}function ea(S){if(!oe.onKeydown(S)&&!(S.target instanceof Element&&S.target.closest("input,textarea,select,[contenteditable='true']"))){if(ne.value.search&&(S.ctrlKey||S.metaKey)&&S.key.toLowerCase()==="f"){S.preventDefault(),le.visible.value||le.toggle(),e.nextTick(()=>v.value?.focusSearch());return}switch(S.key){case"PageDown":S.preventDefault(),ge(c.value+1);break;case"PageUp":S.preventDefault(),ge(c.value-1);break;case"Home":S.preventDefault(),ge(1);break;case"End":S.preventDefault(),ge(F.value);break;case"+":case"=":S.preventDefault(),ne.value.zoom&&mt(de.value*1.1);break;case"-":S.preventDefault(),ne.value.zoom&&mt(de.value/1.1);break}}}function ta(){try{localStorage.setItem(A,JSON.stringify({zoomMode:Me.value==="fit"?"fit":Math.round(de.value*100)}))}catch{}}e.watch([Me,de],ta);let ft="";function Jt(S=!1){const O=le.activeMatch.value;if(!P.value||!O)return;const H=`${le.query.value}:${le.matchIndex.value}:${O.pageIndex}`;if(!S&&H===ft)return;const Ee=u.value?.querySelector(`[data-page="${O.pageIndex+1}"]`)?.querySelectorAll("mark.mrp-hit")[O.occurrence];Ee&&(Ee.scrollIntoView?.({block:"nearest",inline:"nearest"}),ft=H)}const He=ma({plan:x,root:u,viewport:m,pages:()=>Ht.value,windowing:()=>!V.value.freezeHeaders&&!(V.value.frozenColumns??0),priority:()=>le.activeMatch.value?.pageIndex??c.value-1,focusToken:()=>le.activeMatch.value,editorToken:()=>J.active.value,query:()=>le.query.value,zoom:()=>de.value,loading:()=>q.value.loading,clear:le.clear,highlight:le.apply,mounted:S=>{oe.refresh(S),dt.schedule()},ready:()=>{le.activeMatch.value||(ft=""),Jt()},error:S=>{l.value=S instanceof Error?S.message:String(S),_(l.value,"render",S)}});e.watch(()=>oe.selection.value,()=>{oe.refresh()},{flush:"post"}),e.watch(()=>le.query.value,S=>{S||u.value?.querySelectorAll(".mrp-page-holder").forEach(O=>{le.clear(O)})});const ye=Ia(x,{thumbsRoot:d,visible:f,renderThumbCanvas:S=>{try{const O=x.value.pages[S],H=Math.min(.2,116/Math.max(1,O.pageWidthMm*wt)),{canvases:Ae}=U.renderPlanToCanvas(x.value,{start:S,end:S,dpr:H});return Ae[0]??null}catch{return null}}});e.watchEffect(()=>{ye.schedule()},{flush:"post"});const na=e.computed(()=>r.debug),{debugStats:Ne}=Ra(na,{plan:x,pageCount:F,windowRange:Oe,zoom:de,loadMs:ae.loadMs});function pt(){Ut(m.value),He.refreshViewport(),ye.schedule(),Me.value==="fit"&&Wt(),Jt(!0)}function Xt(){Te(A===ln?100:"fit");try{const S=JSON.parse(localStorage.getItem(A)??"{}");S.zoomMode==="fit"?Te("fit"):typeof S.zoomMode=="number"&&Te(S.zoomMode)}catch{}}return e.onMounted(()=>{window.addEventListener("resize",pt),typeof ResizeObserver<"u"&&m.value&&(D=new ResizeObserver(pt),D.observe(m.value)),Ut(m.value),Xt(),r.autoLoad&&w()}),e.onUnmounted(()=>{h=!0,k.cancel(),z.value=!1,Mn(),window.removeEventListener("resize",pt),D?.disconnect(),D=null,ye.destroy(),le.reset()}),e.watch(()=>[JSON.stringify(T.value),JSON.stringify(r.params),L.value],async()=>{if(r.autoLoad){w();return}!await Le.check("replace")||h||M.clear()}),n({...Gt,state:Z}),(S,O)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["mach-report-preview",{"mrp-wide-report":P.value}]),style:e.normalizeStyle(Gn.value)},[e.unref(Y)&&it.value.length>0?(e.openBlock(),e.createBlock(ie.ReportParamPanel,{key:0,ref_key:"paramPanelRef",ref:jt,defs:it.value,"load-options":r.loadParamOptions??e.unref(G).loadParamOptions,modelValue:e.unref(Ie),"onUpdate:modelValue":O[0]||(O[0]=H=>e.isRef(Ie)?Ie.value=H:null),messages:e.unref(q),attempted:e.unref(We),issues:e.unref(Re).validation.value.issues,onQuery:Hn,onReset:Un},null,8,["defs","load-options","modelValue","messages","attempted","issues"])):e.createCommentVNode("",!0),e.createVNode(bn,{ref_key:"toolbarRef",ref:v,"page-count":F.value,"current-page":c.value,"zoom-mode":e.unref(Me),zoom:e.unref(de),"show-export":e.unref(se),"show-print":e.unref(ne).print,"show-pdf-window":e.unref(ne).pdfWindow,"show-search":e.unref(ne).search,"show-thumbnails":e.unref(ne).thumbnails,"show-zoom":e.unref(ne).zoom,"export-formats":e.unref(Ce),"show-settings":e.unref(fe),"settings-open":y.value,messages:e.unref(q),search:{visible:e.unref(le).visible.value,query:e.unref(le).query.value,matchIndex:e.unref(le).matchIndex.value,matchCount:e.unref(le).matchCount.value,searching:e.unref(le).searching.value},"thumbs-visible":f.value,"show-import":!!e.unref(Pe),busy:e.unref(I)||e.unref(z)||e.unref(J).saving.value,onGoto:ge,onZoom:e.unref(Te),onExport:O[1]||(O[1]=H=>e.unref(At)(H)),onPrint:e.unref(Ot),onPdfWindow:e.unref(Ft),onSearchInput:e.unref(le).onInput,onSearchNav:e.unref(le).onNav,onSearchToggle:e.unref(le).toggle,onThumbsToggle:O[2]||(O[2]=H=>f.value=!f.value),onImportExcel:O[3]||(O[3]=H=>g.value?.click()),onSettingsToggle:It},e.createSlots({"data-tools":e.withCtx(()=>[e.createVNode(No,{prefill:e.unref(ue).availablePrefill.value,comparison:e.unref(ue).availableComparison.value,"issue-count":e.unref(J).validationIssues.value.length,messages:e.unref(ue).messages.value,busy:e.unref(I)||e.unref(z)||e.unref(J).saving.value||!!e.unref(ke)||e.unref(he),onOpen:e.unref(ue).open},null,8,["prefill","comparison","issue-count","messages","busy","onOpen"])]),_:2},[Ke.value.length<=1?{name:"navigation",fn:e.withCtx(()=>[F.value>0&&e.unref(V).navigation!==!1?(e.openBlock(),e.createBlock(on,{key:0,plan:e.unref(x),compact:"",sections:Ke.value,"current-page":c.value,messages:e.unref(q),busy:e.unref(I)||e.unref(z)||e.unref(J).saving.value,onLocateTarget:Lt,onGoto:ge,onLocate:qt},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0)]),key:"0"}:void 0]),1032,["page-count","current-page","zoom-mode","zoom","show-export","show-print","show-pdf-window","show-search","show-thumbnails","show-zoom","export-formats","show-settings","settings-open","messages","search","thumbs-visible","show-import","busy","onZoom","onPrint","onPdfWindow","onSearchInput","onSearchNav","onSearchToggle"]),e.unref(ue).opened.value?(e.openBlock(),e.createBlock(Po,{key:1,title:e.unref(ue).title.value,"close-label":e.unref(ue).messages.value.reviewClose,onClose:e.unref(ue).close},{default:e.withCtx(()=>[e.unref(ue).opened.value==="prefill"?(e.openBlock(),e.createBlock(wn,{key:0,state:e.unref(ue).prefill,messages:e.unref(ue).messages.value},null,8,["state","messages"])):e.unref(ue).opened.value==="comparison"?(e.openBlock(),e.createBlock(kn,{key:1,state:e.unref(ue).comparison,messages:e.unref(ue).messages.value},null,8,["state","messages"])):(e.openBlock(),e.createBlock(xn,{key:2,issues:e.unref(J).validationIssues.value,messages:e.unref(ue).validationMessages.value,onLocate:e.unref(ue).locateIssue},null,8,["issues","messages","onLocate"]))]),_:1},8,["title","close-label","onClose"])):e.createCommentVNode("",!0),e.unref(Le).request.value?(e.openBlock(),e.createBlock($l,{key:2,messages:e.unref(q),onAnswer:e.unref(Le).settle},null,8,["messages","onAnswer"])):e.createCommentVNode("",!0),e.createVNode(Ml,{task:e.unref(k).state.value,messages:e.unref(q),onCancel:zt},null,8,["task","messages"]),e.createVNode(ql,{entries:E.value,messages:e.unref(q),onLocate:jn},null,8,["entries","messages"]),e.createVNode(Zl,{entries:b.value,messages:e.unref(q),busy:e.unref(I)||e.unref(z)||e.unref(J).saving.value,onLocate:Wn},null,8,["entries","messages","busy"]),e.createVNode(as,{entries:e.unref(qe).entries.value,pending:e.unref(qe).pending.value,error:e.unref(qe).error.value,busy:e.unref(I)||e.unref(z)||e.unref(J).saving.value,messages:e.unref(q),onOpen:e.unref(qe).open},null,8,["entries","pending","error","busy","messages","onOpen"]),y.value&&e.unref(fe)?(e.openBlock(),e.createBlock(El,{key:3,available:e.unref(te),enabled:e.unref(ne),messages:e.unref(q),"persisted-editing":e.unref(Se),interaction:e.unref(V),section:p.value,busy:e.unref(I)||e.unref(z)||e.unref(J).saving.value||!!e.unref(ke)||e.unref(he),onSection:O[5]||(O[5]=H=>p.value=H),onInteraction:O[6]||(O[6]=H=>at.value={...e.unref(at),...H}),onChange:Tn,onReset:On,onClose:O[7]||(O[7]=H=>y.value=!1)},{advanced:e.withCtx(()=>[e.createVNode(Yr,{state:e.unref(st),messages:rt.value},null,8,["state","messages"])]),default:e.withCtx(()=>[e.renderSlot(S.$slots,"settings",{},void 0,!0),e.unref(ne).print?(e.openBlock(),e.createBlock(us,{key:0,value:e.unref(An).calibration??{},messages:e.unref(q),busy:e.unref(he)||e.unref(I)||e.unref(z)||e.unref(J).saving.value,"can-test":e.unref(Fn),onChange:O[4]||(O[4]=H=>Tt.value=H),onTest:e.unref(zn)},null,8,["value","messages","busy","can-test","onTest"])):e.createCommentVNode("",!0)]),_:3},8,["available","enabled","messages","persisted-editing","interaction","section","busy"])):e.createCommentVNode("",!0),Ke.value.length>1&&F.value>0&&e.unref(V).navigation!==!1?(e.openBlock(),e.createBlock(on,{key:4,plan:e.unref(x),onLocateTarget:Lt,sections:Ke.value,"current-page":c.value,messages:e.unref(q),busy:e.unref(I)||e.unref(z)||e.unref(J).saving.value,onGoto:ge,onLocate:qt},null,8,["plan","sections","current-page","messages","busy"])):e.createCommentVNode("",!0),e.unref(ee)?(e.openBlock(),e.createBlock(Ri,{key:5,result:e.unref(ee),messages:e.unref(q)},null,8,["result","messages"])):e.createCommentVNode("",!0),e.unref(ve)&&F.value>0?(e.openBlock(),e.createBlock(li,{key:6,differences:e.unref(J).differences.value,conflicts:e.unref(J).conflicts.value,messages:e.unref(q),saving:e.unref(J).saving.value,"can-undo":e.unref(J).canUndo.value,"can-redo":e.unref(J).canRedo.value,persisted:e.unref(Se),busy:!!e.unref(ke)||e.unref(he),onUndo:e.unref(J).undo,onRedo:e.unref(J).redo,onRestore:e.unref(J).restore,onLocate:Kn},null,8,["differences","conflicts","messages","saving","can-undo","can-redo","persisted","busy","onUndo","onRedo","onRestore"])):e.createCommentVNode("",!0),e.unref(Pe)?(e.openBlock(),e.createElementBlock("input",{key:7,ref_key:"importInputRef",ref:g,class:"mrp-import-input",type:"file",accept:".xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",hidden:"",onChange:Qn},null,544)):e.createCommentVNode("",!0),e.unref(ve)&&F.value>0?(e.openBlock(),e.createElementBlock("div",qi,e.toDisplayString(e.unref(J).saving.value?e.unref(q).saving:e.unref(q).editingHint),1)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("div",{key:9,class:e.normalizeClass(["mrp-export-notice",`mrp-export-${i.value.kind}`]),role:"alert"},e.toDisplayString(i.value.message),3)):e.createCommentVNode("",!0),e.unref(Pt).status==="error"&&$t.value?(e.openBlock(),e.createElementBlock("div",Ki,[e.createTextVNode(e.toDisplayString(e.unref(q).pdfFontUnavailable)+" ",1),e.createElementVNode("button",{type:"button",onClick:O[8]||(O[8]=(...H)=>e.unref(Rt)&&e.unref(Rt)(...H))},e.toDisplayString(e.unref(q).retry),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",ji,[e.createElementVNode("div",{ref_key:"viewportRef",ref:m,class:"mrp-body",tabindex:"0",onWheel:_n,onKeydown:ea,onDblclick:O[10]||(O[10]=(...H)=>e.unref(J).onDoubleClick&&e.unref(J).onDoubleClick(...H)),onClick:O[11]||(O[11]=(...H)=>e.unref(oe).onClick&&e.unref(oe).onClick(...H)),onCopy:O[12]||(O[12]=(...H)=>e.unref(oe).onCopy&&e.unref(oe).onCopy(...H)),onPaste:O[13]||(O[13]=(...H)=>e.unref(oe).onPaste&&e.unref(oe).onPaste(...H)),onScrollPassive:O[14]||(O[14]=H=>{e.unref(Xn)(H.target),e.unref(He).refreshViewport(),e.unref(dt).refresh()})},[e.unref(I)?(e.openBlock(),e.createElementBlock("div",Wi,e.toDisplayString(e.unref(q).loading),1)):l.value?(e.openBlock(),e.createElementBlock("div",Hi,[e.createTextVNode(e.toDisplayString(l.value)+" ",1),e.createElementVNode("button",{class:"mrp-retry",type:"button",onClick:O[9]||(O[9]=(...H)=>e.unref(w)&&e.unref(w)(...H))},e.toDisplayString(e.unref(q).retry),1)])):!e.unref(x)||F.value===0?(e.openBlock(),e.createBlock(en,{key:2,title:e.unref(Kt)?e.unref(q).paramPrompt??e.unref(q).paramsTitle:e.unref(q).empty,description:e.unref(Kt)?e.unref(q).paramPromptDescription:e.unref(xe).description??e.unref(q).emptyDescription},null,8,["title","description"])):(e.openBlock(),e.createElementBlock("div",{key:3,class:"mrp-scale",style:e.normalizeStyle({width:`${e.unref(ut).w*e.unref(de)}px`,height:`${e.unref(ut).h*e.unref(de)}px`})},[e.createElementVNode("div",{ref_key:"containerRef",ref:u,class:"mrp-scale-inner",style:e.normalizeStyle({transform:e.unref(V).frozenColumns?void 0:`scale(${e.unref(de)})`,zoom:e.unref(V).frozenColumns?e.unref(de):void 0,transformOrigin:"top left",width:`${e.unref(ut).w}px`})},[e.unref(Oe).padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-spacer-top",style:e.normalizeStyle({height:`${e.unref(Oe).padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Ht),H=>(e.openBlock(),e.createElementBlock("div",{key:H.index,class:"mrp-page-holder","data-page":H.index+1},null,8,Ui))),128)),e.unref(Oe).padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-spacer-bottom",style:e.normalizeStyle({height:`${e.unref(Oe).padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],4)],4)),!e.unref(I)&&!l.value&&e.unref(x)&&F.value>0&&t.emptyState?(e.openBlock(),e.createBlock(en,{key:4,title:e.unref(xe).title??e.unref(q).empty,description:e.unref(xe).description??e.unref(q).emptyDescription},null,8,["title","description"])):e.createCommentVNode("",!0)],544),e.unref(ne).thumbnails&&f.value&&F.value>0?(e.openBlock(),e.createElementBlock("aside",{key:0,ref_key:"thumbsRef",ref:d,class:"mrp-thumbs",onScrollPassive:O[15]||(O[15]=(...H)=>e.unref(ye).onScroll&&e.unref(ye).onScroll(...H))},[e.unref(ye).windowRange.value.padTopPx>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mrp-thumb-spacer",style:e.normalizeStyle({height:`${e.unref(ye).windowRange.value.padTopPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ye).visibleThumbs.value,H=>(e.openBlock(),e.createElementBlock("button",{key:H.index,class:e.normalizeClass(["mrp-thumb",{"mrp-thumb-active":H.index+1===c.value}]),type:"button","aria-label":`${e.unref(q).thumbnails} · ${e.unref(q).pageInfo.replace("{cur}",String(H.index+1)).replace("{total}",String(F.value))}`,"aria-current":H.index+1===c.value?"page":void 0,style:e.normalizeStyle({height:`${H.height+20}px`}),onClick:Ae=>ge(H.index+1)},[e.createElementVNode("span",{class:"mrp-thumb-box","data-thumb":H.index+1,style:e.normalizeStyle({height:`${H.height}px`})},null,12,Ji),e.createElementVNode("span",Xi,e.toDisplayString(H.index+1),1)],14,Gi))),128)),e.unref(ye).windowRange.value.padBottomPx>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"mrp-thumb-spacer",style:e.normalizeStyle({height:`${e.unref(ye).windowRange.value.padBottomPx}px`}),"aria-hidden":"true"},null,4)):e.createCommentVNode("",!0)],544)):e.createCommentVNode("",!0)]),F.value>0?(e.openBlock(),e.createElementBlock("footer",Zi,[e.createElementVNode("div",Yi,[e.unref(V).navigation!==!1?(e.openBlock(),e.createBlock(Mr,{key:0,plan:e.unref(x),"current-page":c.value,messages:e.unref(q),busy:e.unref(I)||e.unref(z)||e.unref(J).saving.value,onGoto:ge},null,8,["plan","current-page","messages","busy"])):e.createCommentVNode("",!0),ot.value&&e.unref(fe)?(e.openBlock(),e.createElementBlock("button",{key:1,class:"mrp-calculation-toggle",type:"button","aria-label":rt.value.calculationTitle,onClick:qn},[O[16]||(O[16]=e.createElementVNode("span",{"aria-hidden":"true"},"∑",-1)),e.createTextVNode(e.toDisplayString(rt.value.calculationTitle),1),e.unref(st).result.value?(e.openBlock(),e.createElementBlock("strong",_i,e.toDisplayString(e.unref(st).result.value.formatted),1)):e.createCommentVNode("",!0)],8,Qi)):e.createCommentVNode("",!0)]),e.createVNode(Bt,{"page-count":F.value,"current-page":c.value,messages:e.unref(q),busy:e.unref(I)||e.unref(z)||e.unref(J).saving.value,onGoto:ge},null,8,["page-count","current-page","messages","busy"])])):e.createCommentVNode("",!0),e.createElementVNode("div",ec,[e.renderSlot(S.$slots,"default",{},void 0,!0)]),e.unref(Ne)?(e.openBlock(),e.createElementBlock("div",tc,[O[17]||(O[17]=e.createElementVNode("div",null,"mach-report debug",-1)),e.createElementVNode("div",null,"pages: "+e.toDisplayString(e.unref(Ne).pages)+" | window: ["+e.toDisplayString(e.unref(Ne).window)+"]",1),e.createElementVNode("div",null,"zoom: "+e.toDisplayString(e.unref(Ne).zoom)+" | load: "+e.toDisplayString(e.unref(Ne).loadMs),1),e.createElementVNode("div",null,"plan: "+e.toDisplayString(e.unref(Ne).planKB)+"KB",1)])):e.createCommentVNode("",!0)],6))}}),Dn=W._export_sfc(nc,[["__scopeId","data-v-e1e23f36"]]),ac=Object.freeze(Object.defineProperty({__proto__:null,default:Dn},Symbol.toStringTag,{value:"Module"}));exports.PlanLoadError=Je;exports.REPORT_EXPORT_FORMATS=et;exports.REPORT_PREVIEW_TOOLS=Et;exports.ReportPagination=Bt;exports.ReportPreview=Dn;exports.ReportPreview$1=ac;exports.ReportPrintResourceError=pe;exports.ReportToolbar=bn;exports.ReportValidationPanel=xn;exports._sfc_main=kn;exports._sfc_main$1=wn;exports.buildPrintDocument=fn;exports.buildWordHtml=ya;exports.cloneReportSnapshot=me;exports.createDefaultPdfExporter=Sn;exports.createFetchRequest=da;exports.createPrintCalibrationPlan=dn;exports.createReportStoragePreferences=Ii;exports.joinReportIds=ua;exports.normalizeReportIds=St;exports.preparePrintResources=Nt;exports.printPlans=pn;exports.usePageWindow=cn;exports.usePrintExport=vn;exports.useZoom=un;