@agile-team/mach-report 2.19.1 → 2.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -3
- package/dist/ExcelBindingWizard-B2xXBOJu.cjs +1 -0
- package/dist/{ExcelBindingWizard-xJIYmnZ_.js → ExcelBindingWizard-CixTPQAL.js} +351 -351
- package/dist/ParamEditor-DhHlNxai.cjs +1 -0
- package/dist/{ParamEditor-D1wWemaf.js → ParamEditor-gKhvEsnr.js} +10 -10
- package/dist/{ReportBatchPanel-BkJFqeEW.cjs → ReportBatchPanel-BUdUfTdm.cjs} +1 -1
- package/dist/{ReportBatchPanel-B88R-fME.js → ReportBatchPanel-D-lyWKyf.js} +2 -2
- package/dist/ReportLabelStudio-BcjQt73a.cjs +1 -0
- package/dist/ReportLabelStudio-N2w6DdaZ.js +764 -0
- package/dist/ReportParamPanel-CVpK8mFc.cjs +1 -0
- package/dist/{ReportParamPanel-mQkeN70Q.js → ReportParamPanel-peB-KEmm.js} +10 -2
- package/dist/{ReportPreview-DBbctg6C.js → ReportPreview-BBJNlu2U.js} +2093 -1978
- package/dist/ReportPreview-nf4Dk1Jc.cjs +6 -0
- package/dist/{ReportTemplateLibrary-BOh2MgjQ.cjs → ReportTemplateLibrary-Cs9WKneQ.cjs} +1 -1
- package/dist/{ReportTemplateLibrary-BGELmgd3.js → ReportTemplateLibrary-WZl-AK-2.js} +1 -1
- package/dist/{RuleEditor-CoLqgehG.js → RuleEditor-DGpmjCko.js} +178 -174
- package/dist/RuleEditor-Dtcq-7LO.cjs +1 -0
- package/dist/{TemplateOutlinePanel-DiG8tRRe.cjs → TemplateOutlinePanel-CkCh506f.cjs} +1 -1
- package/dist/{TemplateOutlinePanel-DU95loB-.js → TemplateOutlinePanel-cxp95OT9.js} +1 -1
- package/dist/{TemplateReusePanel-DE1KSD6c.js → TemplateReusePanel-BZ8VTtrO.js} +2 -2
- package/dist/{TemplateReusePanel-G-Y299wc.cjs → TemplateReusePanel-CwttuSta.cjs} +1 -1
- package/dist/{TemplateReviewPanel-KQx9ts0D.cjs → TemplateReviewPanel-C2YjiaEC.cjs} +1 -1
- package/dist/{TemplateReviewPanel-vqFJ_Y9o.js → TemplateReviewPanel-C9cTvsRs.js} +1 -1
- package/dist/artifact-integrity.json +92 -94
- package/dist/{assets-2eC3mOcV.js → assets-CxHunY_9.js} +2 -2
- package/dist/{assets-B0Hxn4l6.cjs → assets-vbjAGgk8.cjs} +1 -1
- package/dist/{auto-BlchZ1b8.js → auto-BkdGiNtr.js} +4 -4
- package/dist/{auto-B0EZFIK1.cjs → auto-Tq7ReIC1.cjs} +1 -1
- package/dist/{component-tree-CvW4lzpv.js → component-tree-1_QCiQJX.js} +1 -1
- package/dist/component-tree-BjZIp6w9.cjs +1 -0
- package/dist/{data-bar-PtjXhMgN.js → data-bar-8baGYEZ9.js} +1 -1
- package/dist/{data-bar-Ce38juRZ.cjs → data-bar-YltqGTaC.cjs} +1 -1
- package/dist/designer-CDqok4S5.cjs +2 -0
- package/dist/designer-CIDHt5xz.js +6869 -0
- package/dist/designer.cjs +1 -1
- package/dist/designer.d.cts +166 -7
- package/dist/designer.d.ts +166 -7
- package/dist/designer.js +1 -1
- package/dist/{encoding-B--eZpp1.cjs → encoding-B79hW4zq.cjs} +1 -1
- package/dist/{encoding-mctOLocI.js → encoding-BSeUwrN7.js} +2 -2
- package/dist/{font-loader-DBBJ5KE9.cjs → font-loader-BB372_XN.cjs} +1 -1
- package/dist/{font-loader-DW8tIaNp.js → font-loader-Di0lQKFf.js} +1 -1
- package/dist/grid-geometry-D3SJgWFv.js +136 -0
- package/dist/grid-geometry-D8ReblRV.cjs +1 -0
- package/dist/index.cjs +6 -6
- package/dist/index.js +194 -195
- package/dist/json-snapshot-I5VI84Vp.cjs +2 -0
- package/dist/{json-snapshot-By4ZVVUt.js → json-snapshot-Kgn459Oj.js} +895 -879
- package/dist/{pdf-DqyxJ96U.cjs → pdf-CARdBcuw.cjs} +45 -45
- package/dist/{pdf-CKROKygt.js → pdf-DmlnL5eB.js} +13 -14
- package/dist/pdf.cjs +1 -1
- package/dist/pdf.js +2 -2
- package/dist/{plugin-CPyHs4UC.cjs → plugin-BaRUGORD.cjs} +1 -1
- package/dist/{plugin-DsXJRR6Q.js → plugin-D4kAxfLG.js} +1 -1
- package/dist/{prefill-D7EswyTI.cjs → prefill-Bpyn58AZ.cjs} +1 -1
- package/dist/{prefill-B8H9qwE4.js → prefill-CJSazcVY.js} +2 -2
- package/dist/{prepared-CGVphji3.cjs → prepared-BiSz_9vN.cjs} +1 -1
- package/dist/{prepared-BE-4jfX5.js → prepared-BwjwEzFz.js} +1 -1
- package/dist/{protocol-Cr81vFSQ.js → protocol-Bs9-ohHN.js} +3 -3
- package/dist/{protocol-ByRVzzQG.cjs → protocol-C8VWF9An.cjs} +1 -1
- package/dist/record-bindings-Ct1HkPrc.cjs +1 -0
- package/dist/{record-bindings-DEJtmo3p.js → record-bindings-VZGS-Qd8.js} +1 -1
- package/dist/{region-binding-workflow-CBg0l_tj.js → region-binding-workflow-Cy4GIOUo.js} +2 -2
- package/dist/{region-binding-workflow-D05tOYn3.cjs → region-binding-workflow-JNowHd0A.cjs} +1 -1
- package/dist/report-encoding-worker.cjs +1 -1
- package/dist/report-encoding-worker.js +1 -1
- package/dist/rich-text-layout-K48VHUoW.cjs +3 -0
- package/dist/{rich-text-layout-Ct5WrY1g.js → rich-text-layout-wxBhnAS7.js} +1 -1
- package/dist/{runtime-CEMvybO7.js → runtime-BDf5x1i1.js} +5 -5
- package/dist/runtime-DsJt1PIf.cjs +1 -0
- package/dist/sbom.cdx.json +1 -1
- package/dist/server-node.cjs +4 -4
- package/dist/server-node.js +1272 -1274
- package/dist/server.cjs +1 -1
- package/dist/server.js +8 -8
- package/dist/style.css +1 -1
- package/dist/{template-catalog-CmbWOJqy.js → template-catalog-DFwIS9aN.js} +3 -3
- package/dist/{template-catalog-Utu4GP09.cjs → template-catalog-D_2jdnkL.cjs} +1 -1
- package/dist/template-fragments-DZVUBhuB.cjs +1 -0
- package/dist/{template-fragments-DWgo9tlZ.js → template-fragments-Dng-AlHk.js} +11 -11
- package/dist/{template-registry-BIhIHOab.js → template-registry-DhBqoD7W.js} +120 -118
- package/dist/template-registry-DpLUSLwF.cjs +1 -0
- package/dist/{column-visual-BpgQVWwT.js → template-serialization-Cc3h-miv.js} +74 -65
- package/dist/{column-visual-CtYxnBCP.cjs → template-serialization-D1R5oAqh.cjs} +1 -1
- package/dist/{textwrap-BEIg2w8y.js → textwrap-CkGjRFT3.js} +1 -1
- package/dist/textwrap-OTOUMr4f.cjs +4 -0
- package/dist/vue/async.d.cts +8 -0
- package/dist/vue/async.d.ts +8 -0
- package/dist/vue/index.d.cts +10 -2
- package/dist/vue/index.d.ts +10 -2
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +3 -3
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +6 -6
- package/dist/{workbook-session-B94EwVa_.cjs → workbook-session-NYv01LHe.cjs} +1 -1
- package/dist/{workbook-session-BoScoOg-.js → workbook-session-oinxX3qo.js} +2 -2
- package/dist/worker.cjs +1 -1
- package/dist/worker.js +4 -4
- package/dist/xlsx.cjs +4 -4
- package/dist/xlsx.js +204 -205
- package/package.json +1 -1
- package/dist/ExcelBindingWizard-UHSApSG9.cjs +0 -1
- package/dist/ParamEditor-BZb-okUd.cjs +0 -1
- package/dist/ReportLabelStudio-B4WZ2XNN.js +0 -239
- package/dist/ReportLabelStudio-BN-fYNCr.cjs +0 -1
- package/dist/ReportParamPanel-sOANVRz-.cjs +0 -1
- package/dist/ReportPreview-CuoHl15N.cjs +0 -6
- package/dist/RuleEditor-XaLcCdTb.cjs +0 -1
- package/dist/component-tree-6TV7W6Yj.cjs +0 -1
- package/dist/designer-CyKXBhQg.cjs +0 -2
- package/dist/designer-fVvpYg8H.js +0 -5824
- package/dist/grid-geometry-BNptEcMm.js +0 -65
- package/dist/grid-geometry-CZ_cYB6O.cjs +0 -1
- package/dist/json-snapshot-jiXff4lc.cjs +0 -2
- package/dist/record-bindings-ehjnCDHt.cjs +0 -1
- package/dist/rich-text-layout-ALlMoYOG.cjs +0 -3
- package/dist/runtime-CDA6d263.cjs +0 -1
- package/dist/style-67OqfNed.js +0 -73
- package/dist/style-C22Pbv3T.cjs +0 -1
- package/dist/template-fragments-C_zSHJAa.cjs +0 -1
- package/dist/template-registry-DzWswQI5.cjs +0 -1
- package/dist/textwrap-BI-yJ6Wt.cjs +0 -4
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),Je=require("@agile-team/mach-report/vue"),L=require("@agile-team/mach-report"),Y=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),ke=require("./record-bindings-ehjnCDHt.cjs"),ft=require("./column-visual-CtYxnBCP.cjs"),Ie=require("./style-C22Pbv3T.cjs"),Tt=require("./template-outline-DWkzZXVC.cjs"),gt={title:"操作指引",prompt:"这次想调整什么?",close:"关闭操作指引",fields:"改字段、对齐和颜色",fieldsHint:"选中一列,再修改属性;支持数据条与色阶",components:"加图表、二维码或条码",componentsHint:"进入画布,添加组件并绑定真实字段",layout:"改纸张、页数和份数",layoutHint:"设置毫米尺寸、标准纸型及逐记录输出",excel:"从 Excel 还原模板",excelHint:"导入工作簿,再明确字段和区域绑定",rules:"配计算和条件样式",rulesHint:"先配置,再应用到模板;不会修改接口实绩",review:"检查并定位问题",reviewHint:"校验字段依赖、样例结果与输出限制",result:"预览确认效果后保存模板;高级 JSON 保留给需要时使用。"},_t=["onKeydown"],It=["aria-expanded","disabled"],Rt=["aria-label"],Lt=["aria-label"],Pt=["onClick"],At=e.defineComponent({__name:"DesignerTaskGuide",props:{fields:{type:Boolean},disabled:{type:Boolean},messages:{}},emits:["choose"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...gt,...a.messages})),o=e.ref(!1),c=e.ref(),d=e.ref();function m(S){S.target instanceof Node&&!d.value?.contains(S.target)&&(o.value=!1)}function E(S){(!(S.relatedTarget instanceof Node)||!d.value?.contains(S.relatedTarget))&&(o.value=!1)}e.onMounted(()=>window.document.addEventListener("pointerdown",m)),e.onBeforeUnmount(()=>window.document.removeEventListener("pointerdown",m));const N=e.computed(()=>[...a.fields?["fields"]:[],"components","layout","excel","rules","review"]);function p(S){l("choose",S),o.value=!1,c.value?.focus()}function y(){o.value=!1,c.value?.focus()}return(S,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:d,class:"mr-designer-guide",onKeydown:e.withKeys(e.withModifiers(y,["stop","prevent"]),["esc"]),onFocusout:E},[e.createElementVNode("button",{ref_key:"trigger",ref:c,type:"button","aria-expanded":o.value,disabled:t.disabled,onClick:f[0]||(f[0]=k=>o.value=!o.value)},[e.createTextVNode(e.toDisplayString(n.value.title),1),f[1]||(f[1]=e.createElementVNode("span",{"aria-hidden":"true"},"⌄",-1))],8,It),o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-designer-guide-panel",role:"region","aria-label":n.value.title},[e.createElementVNode("header",null,[e.createElementVNode("strong",null,e.toDisplayString(n.value.prompt),1),e.createElementVNode("button",{type:"button","aria-label":n.value.close,onClick:y},"×",8,Lt)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,k=>(e.openBlock(),e.createElementBlock("button",{key:k,type:"button",onClick:g=>p(k)},[e.createElementVNode("strong",null,e.toDisplayString(n.value[k]),1),e.createElementVNode("span",null,e.toDisplayString(n.value[`${k}Hint`]),1),f[2]||(f[2]=e.createElementVNode("i",{"aria-hidden":"true"},"→",-1))],8,Pt))),128)),e.createElementVNode("p",null,e.toDisplayString(n.value.result),1)],8,Rt)):e.createCommentVNode("",!0)],40,_t))}}),Ft=Y._export_sfc(At,[["__scopeId","data-v-315e75c4"]]);function Ht(t,r,a=3){if(!t.tree)return r.slice(0,a).map(l=>t.columns.map(n=>ke.resolveListSampleCell(t,n,l)));if(r.length>200)return[];try{return ft.createTreeTable(r,{...t.tree,maxRows:Math.min(200,t.tree.maxRows??200),maxAggregationVisits:Math.min(2e3,t.tree.maxAggregationVisits??2e3)},{computed:t.computed?.length?{fields:t.computed,maxRows:200,maxCells:4096}:void 0}).entries.slice(0,a).map(n=>t.columns.map(o=>ke.resolveTreeListSampleCell(t,o,n)))}catch{return[]}}const qe=96/25.4;function Le(t){return t.kind==="list"?Math.max(16,(t.headerGrid?.rowHeightsMm?.reduce((r,a)=>r+a,0)??8)+(t.rowHeightMm??8)*3):t.heightMm}function re(t){return{leftMm:t.leftMm,topMm:t.topMm,widthMm:t.widthMm,heightMm:Le(t)}}function ye(t,r){return r?t.template.pages[r.pageIndex]?.components[r.componentIndex]:void 0}function Ot(t,r="detail"){const a={leftMm:10,topMm:10,widthMm:60,heightMm:10};return t==="chart"?{...a,kind:t,widthMm:110,heightMm:60,chartBinding:{dataset:r,categoryField:"field",measures:[{op:"sum",field:"value"}],type:"bar"}}:t==="qrcode"?{...a,kind:t,widthMm:22,heightMm:22,code:{value:"MACHREPORT",errorCorrection:"M",quietZoneModules:4}}:t==="barcode"?{...a,kind:t,widthMm:50,heightMm:16,code:{value:"MR20261022",symbology:"code128",quietZoneModules:10,showText:!0}}:t==="list"?{kind:t,leftMm:10,topMm:30,widthMm:90,dataset:r,columns:[{header:"字段",field:"field",widthMm:45},{header:"数值",field:"value",widthMm:45}],border:!0,headerBackgroundColor:"#eaf2fc",headerAlign:"center"}:t==="text"?{...a,kind:t,text:"文本",style:{fontSize:12,color:"#233c5c"}}:t==="rect"?{...a,kind:t,style:{borderColor:"#cbd5e1",lineWidthPt:.75,backgroundColor:"#eff6ff"}}:{...a,kind:t,widthMm:48,heightMm:24,imageData:`data:image/svg+xml;charset=utf-8,${encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="180" height="90" viewBox="0 0 180 90"><rect width="180" height="90" rx="5" fill="#eff6ff"/><path d="m25 68 32-32 25 23 27-35 45 44" fill="none" stroke="#94b8e5" stroke-width="3"/><circle cx="45" cy="24" r="7" fill="#bfd5ef"/></svg>')}`}}function Re(t,r,a=!1){const l=Math.max(2,Math.min(r.widthMm,t.widthMm)),n=Math.max(2,Math.min(r.heightMm,t.heightMm));return{leftMm:Math.max(0,Math.min(r.widthMm-l,t.leftMm)),topMm:Math.max(0,Math.min(r.heightMm-(a?2:n),t.topMm)),widthMm:l,heightMm:n}}function Ne(t,r){const a=t.widthMm;if(Object.assign(t,{leftMm:r.leftMm,topMm:r.topMm,widthMm:r.widthMm}),t.kind!=="list")t.heightMm=r.heightMm;else if(a>0&&r.widthMm!==a){const l=r.widthMm/a;t.columns.forEach(n=>{n.widthMm=Math.round(n.widthMm*l*100)/100}),t.widthMm=t.columns.reduce((n,o)=>n+o.widthMm,0),t.headerGrid&&(t.headerGrid.colWidthsMm=t.columns.map(n=>n.widthMm))}}function Gt(t,r,a){if(r===a||!t.columns[r]||!t.columns[a])return!1;if(t.headerGrid){if(L.resolveGridLayout(t.headerGrid,t.widthMm,100).cells.some(({cell:o})=>(o.colSpan??1)>1))throw new Error("请先拆分跨列合并表头,再调整列顺序,避免改变业务分组。");const n=Pe(t);n.forEach(o=>{o.splice(a,0,o.splice(r,1)[0])}),t.headerGrid=Ae(n,t.columns.map(o=>o.widthMm),t.headerGrid.rowHeightsMm??n.map(()=>8))}return t.columns.splice(a,0,t.columns.splice(r,1)[0]),t.headerGrid&&(t.headerGrid.colWidthsMm=t.columns.map(l=>l.widthMm)),!0}function Pe(t){if(!t.headerGrid)return[t.columns.map(a=>({text:a.header}))];const r=Array.from({length:t.headerGrid.cells.length},()=>Array.from({length:t.columns.length},()=>null));for(const{cell:a,ri:l,ci:n}of L.resolveGridLayout(t.headerGrid,t.widthMm,100).cells)r[l][n]=a;return r}function Ae(t,r,a){const l=new Set;return{cells:t.map((o,c)=>o.flatMap((d,m)=>{if(l.has(`${c}:${m}`))return[];if(!d)return[null];for(let E=c;E<c+(d.rowSpan??1);E++)for(let N=m;N<m+(d.colSpan??1);N++)(E!==c||N!==m)&&l.add(`${E}:${N}`);return[d]})),colWidthsMm:r,rowHeightsMm:a}}function zt(t){const r=Pe(t),a=t.headerGrid?.rowHeightsMm??r.map(()=>8);r.unshift(t.columns.map(()=>({text:"分组",style:{align:"center",backgroundColor:"#eaf2fc",bold:!0}}))),t.headerGrid=Ae(r,t.columns.map(l=>l.widthMm),[8,...a])}function jt(t,r,a,l){if(a>=l||a<0||l>=t.columns.length)throw new Error("请选择同一行的至少两个连续表头。");const n=Pe(t),o=n[r];if(!o)throw new Error("表头行不存在。");const c=o.slice(a,l+1);if(c.some(m=>!m||(m.colSpan??1)!==1||(m.rowSpan??1)!==1))throw new Error("选择包含合并区域,请先拆分,再重新合并。");const d=c[0];o[a]={...d,colSpan:l-a+1};for(let m=a+1;m<=l;m++)o[m]=null;t.headerGrid=Ae(n,t.columns.map(m=>m.widthMm),t.headerGrid?.rowHeightsMm??[8])}function Ut(t,r,a){if(!t.headerGrid)return;const n=L.resolveGridLayout(t.headerGrid,t.widthMm,100).cells.find(({ri:E,ci:N,cell:p})=>r>=E&&r<E+(p.rowSpan??1)&&a>=N&&a<N+(p.colSpan??1));if(!n)return;const o=Pe(t),{ri:c,ci:d,cell:m}=n;for(let E=c;E<c+(m.rowSpan??1);E++)for(let N=d;N<d+(m.colSpan??1);N++){const p={...m,text:E===o.length-1?t.columns[N].header:m.text};delete p.colSpan,delete p.rowSpan,o[E][N]=p}t.headerGrid=Ae(o,t.columns.map(E=>E.widthMm),t.headerGrid.rowHeightsMm??o.map(()=>8))}function qt(t){const r=e.ref(),a=e.ref(.8),l=e.ref(0),n=e.ref(0),o=e.computed(()=>a.value*qe),c=e.computed(()=>t.document.template.pages[t.pageIndex]),d=e.computed(()=>c.value.widthMm*o.value>n.value-40);let m,E=!!t.document.template.repeat;function N(i){const v=r.value;if(!v||v.clientWidth<=40||v.clientHeight<=40)return;let h={leftMm:0,topMm:0,widthMm:c.value.widthMm,heightMm:c.value.heightMm};const x=t.selection?.pageIndex===t.pageIndex?c.value.components[t.selection.componentIndex]:void 0;i==="selection"&&x&&(h=re(x));const V=(v.clientWidth-40)/(h.widthMm*qe),C=(v.clientHeight-40)/(h.heightMm*qe);a.value=Math.max(.05,Math.min(2,i==="width"?V:Math.min(V,C))),e.nextTick(()=>{v.scrollLeft=h.leftMm*o.value,v.scrollTop=h.topMm*o.value})}function p(i){E=!1,N(i)}function y(i){Number.isFinite(i)&&(E=!1,a.value=Math.max(.05,Math.min(2,i)))}function S(){const i=r.value;i&&(n.value=i.clientWidth,l.value=i.scrollWidth>i.clientWidth?Math.round(i.scrollLeft/(i.scrollWidth-i.clientWidth)*100):0)}function f(i){const v=r.value;v&&(v.scrollLeft=(v.scrollWidth-v.clientWidth)*i/100),l.value=i}function k(){S(),E&&t.document.template.repeat&&N("page")}async function g(){await e.nextTick();const i=r.value,v=t.selection;if(!i||v?.pageIndex!==t.pageIndex)return;const h=c.value.components[v.componentIndex];if(!h)return;const x=re(h);if(h.kind==="list"&&t.columnIndex!==void 0&&t.columnIndex>=0){const T=h;x.leftMm+=T.columns.slice(0,t.columnIndex).reduce((A,G)=>A+G.widthMm,0),x.widthMm=T.columns[t.columnIndex]?.widthMm??x.widthMm}const V=x.leftMm*o.value,C=x.topMm*o.value,w=V+x.widthMm*o.value,B=C+x.heightMm*o.value;V<i.scrollLeft?i.scrollLeft=V:w>i.scrollLeft+i.clientWidth-40&&(i.scrollLeft=Math.max(0,Math.min(V,w-i.clientWidth+40))),C<i.scrollTop?i.scrollTop=C:B>i.scrollTop+i.clientHeight-40&&(i.scrollTop=Math.max(0,Math.min(C,B-i.clientHeight+40))),S()}return e.watch(()=>[t.selection,t.columnIndex,t.pageIndex],()=>{g()}),e.watch(()=>t.document.id,()=>{E=!!t.document.template.repeat,e.nextTick(k)}),e.watch(()=>[!!t.document.template.repeat,t.pageIndex,c.value.widthMm,c.value.heightMm],()=>{e.nextTick(k)}),e.onMounted(()=>{k(),typeof ResizeObserver<"u"&&r.value&&(m=new ResizeObserver(k),m.observe(r.value))}),e.onBeforeUnmount(()=>m?.disconnect()),{viewport:r,zoom:a,scale:o,page:c,wide:d,fraction:l,fit:p,setZoom:y,sync:S,navigate:f}}function Wt(t,r,a){if(t.kind==="list")return{text:t.dataset};const l=t.kind==="barcode"||t.kind==="qrcode"?t.code?.value??t.fallbackText??t.text??"":t.text??t.fallbackText??"";return t.binding?Jt(t,r,a):{text:l,...t.imageData?{image:t.imageData}:{}}}function Jt(t,r,a){const l=t.binding,n=r.template.repeat,o=n?a?.[n.dataset]?.[0]:void 0;if(!o)return{text:l.field,bound:!0};try{const c=ke.resolveComponentBinding(l,o,{dataset:n?.dataset,rowIndex:0});return t.kind==="image"&&c&&!ke.isLabelImageData(c)?{text:l.field,bound:!0,error:"image-binding"}:{text:c,bound:!0,...t.kind==="image"&&ke.isLabelImageData(c)?{image:c}:{}}}catch(c){return{text:l.field,bound:!0,error:c instanceof Error?c.message:String(c)}}}function it(t,r){const l=[1,2,5,10,20,50,100,200,500,1e3].find(o=>o*r>=36)??Math.max(1e3,Math.ceil(t/200));return Array.from({length:Math.min(201,Math.floor(t/l)+1)},(o,c)=>({mm:c*l,position:c*l*r}))}const We=[{id:"label-80-55",widthMm:80,heightMm:55},{id:"label-80-50",widthMm:80,heightMm:50},{id:"label-100-60",widthMm:100,heightMm:60},{id:"a4",widthMm:210,heightMm:297},{id:"a3",widthMm:297,heightMm:420}];function Ve(t,r,a){return typeof t.meta?.title=="string"&&t.meta.title.trim()?t.meta.title:`${a} ${r+1}`}function ht(t){return t.components.flatMap((r,a)=>{const l=r.kind==="list"?r.rowHeightMm??Le(r):r.heightMm;return r.leftMm<0||r.topMm<0||r.leftMm+r.widthMm>t.widthMm+.001||r.topMm+l>t.heightMm+.001?[a]:[]})}function Kt(t,r){const a=JSON.parse(JSON.stringify(t)),l=new Set(r.flatMap(c=>c.components.map(d=>d.kind==="list"?d.id:d.nid)).filter(Boolean)),n=new Map;let o=0;for(const c of a.components){const d=c.kind==="list"?c.id:c.nid;if(!d)continue;let m;do m=`page-copy-${++o}`;while(l.has(m));l.add(m),n.set(d,m),c.kind==="list"?c.id=m:(c.nid=m,delete c.rkey)}return a.flow?.bands.forEach(c=>{c.componentIds=c.componentIds.map(d=>n.get(d)??d)}),a}function Yt(t,r,a){const l=t.template.pages,n=l[r];if(!n)return 0;if(a.type==="patch")return Object.assign(n,a.patch),r;if(a.type==="remove")return l.length<=1?r:(l.splice(r,1),Math.min(r,l.length-1));const o=a.type==="duplicate"?Kt(n,l):JSON.parse(JSON.stringify(n));return a.type==="add"&&(o.components=[],delete o.flow,delete o.meta),l.splice(r+1,0,o),r+1}function st(t,r,a){const l=t.filter(n=>n!==r).flatMap(n=>{const o=n[a],c=a==="leftMm"?n.widthMm:Le(n);return[o,o+c/2,o+c]});return[...new Set(l)].sort((n,o)=>n-o)}function Xt(t,r){if(!t.length)return;let a=0,l=t.length;for(;a<l;){const c=a+l>>>1;t[c]<r?a=c+1:l=c}const n=t[Math.max(0,a-1)],o=t[Math.min(t.length-1,a)];return Math.abs(n-r)<Math.abs(o-r)?n:o}function ct(t,r,a,l){let n=1/0,o={value:Math.round(t*2)/2};for(const c of[0,r/2,r]){const d=Xt(a,t+c);if(d===void 0)continue;const m=Math.abs(d-t-c);m<=l&&m<n&&(n=m,o={value:d-c,guide:d})}return o}function Zt(t,r,a,l){if(l){const n=Math.abs(r)>=Math.abs(a)?r:a,o=Math.round((t.widthMm+n)*2)/2;return{...t,widthMm:o,heightMm:o}}return{...t,widthMm:Math.round((t.widthMm+r)*2)/2,heightMm:Math.round((t.heightMm+a)*2)/2}}function Qt(t){let r;function a(l,n,o=!1){if(t.disabled()||l.button!==0)return;l.preventDefault(),l.stopPropagation(),r?.();const c=l.currentTarget.closest("[data-canvas-component]"),d=re(n),m=l.clientX,E=l.clientY;let N=d,p=0;const y=t.scale.value,S=c.parentElement;let f,k;const g=()=>{for(const[B,T]of[["x",f],["y",k]])S.style.setProperty(`--mr-canvas-guide-${B}-display`,T===void 0?"none":"block"),T!==void 0&&S.style.setProperty(`--mr-canvas-guide-${B}`,`${T*y}px`)},i=()=>{p=0,g(),c.style.left=`${N.leftMm*y}px`,c.style.top=`${N.topMm*y}px`,c.style.width=`${N.widthMm*y}px`,c.style.height=`${N.heightMm*y}px`},v={leftMm:st(t.page().components,n,"leftMm"),topMm:st(t.page().components,n,"topMm")},h=B=>{const T=(B.clientX-m)/y,A=(B.clientY-E)/y,G=ct(d.leftMm+T,d.widthMm,v.leftMm,5/y),Z=ct(d.topMm+A,d.heightMm,v.topMm,5/y);f=o?void 0:G.guide,k=o?void 0:Z.guide,N=Re(o?Zt(d,T,A,n.kind==="qrcode"):{...d,leftMm:G.value,topMm:Z.value},t.page(),n.kind==="list"),o&&n.kind==="qrcode"&&(N.widthMm=N.heightMm=Math.min(N.widthMm,N.heightMm)),p||(p=requestAnimationFrame(i))},x=B=>{window.removeEventListener("pointermove",h),window.removeEventListener("pointerup",V),window.removeEventListener("pointercancel",C),window.removeEventListener("keydown",w),p&&cancelAnimationFrame(p),N=B?N:d,f=void 0,k=void 0,i(),r=void 0,B&&JSON.stringify(N)!==JSON.stringify(d)&&t.commit(N)},V=()=>x(!0),C=()=>x(!1),w=B=>{B.key==="Escape"&&(B.preventDefault(),C())};window.addEventListener("pointermove",h),window.addEventListener("pointerup",V),window.addEventListener("pointercancel",C),window.addEventListener("keydown",w),r=C}return e.watch(t.disabled,l=>{l&&r?.()}),e.watch(t.page,()=>r?.()),e.onBeforeUnmount(()=>r?.()),{start:a}}const en={title:"报表模板设计器",heading:"模板设计",unpublished:"未发布",dirty:"有未保存修改",reset:"恢复草稿",saving:"正在保存…",save:"保存草稿",name:"模板名称",description:"说明",area:"明细区域",page:"页",header:"表头",field:"业务字段",width:"列宽(mm)",semantic:"字段语义",identifier:"编号",dimension:"分类",measure:"数值",date:"日期",text:"文本",bodyAlign:"正文对齐",headerAlign:"表头对齐",auto:"按字段语义",left:"居左",center:"居中",right:"居右",justify:"两端对齐",editable:"允许编辑",json:"完整模板 JSON",applyJson:"校验并应用 JSON",note:"字段映射应与数据源契约一致。此编辑器维护模板属性;保存由接入方提供的版本服务处理。",invalid:"请先修正模板错误,再预览或保存。"},tn={chartNumeric:"数值口径",chartNumber:"真实数字",chartDecimal:"精确小数文本",chartDigits:"小数位",chartWeight:"权重字段",chartWeightedAverage:"加权平均",chartNumberOptions:"数值与精度",chartStacked:"堆叠柱形",chartPercent:"占比柱形",chartDataset:"数据集",chartCategory:"分类字段",chartMeasure:"度量与聚合",chartAggregation:"聚合方式",chartSeries:"系列名称(可选)",chartAddSeries:"添加系列",chartRemoveSeries:"移除系列",chartRecordCount:"计数",chartSum:"求和",chartAverage:"平均",chartMinimum:"最小值",chartMaximum:"最大值",chartType:"图表",chartBar:"柱形",chartLine:"折线",chartSort:"分类顺序",chartNatural:"数据顺序",chartAscending:"升序",chartDescending:"降序",chartTitle:"图表标题",chartValues:"显示数值",chartBindingNote:"复用本次查询的数据,先聚合再绘图;不改变原始数值。Excel 图形输出限制会在导出检查中提示。",toolTarget:"当前目标",toolPreview:"显示画布",toolPreviewHide:"收起画布",toolChooseComponent:"选择组件",previousColumns:"上一组字段",nextColumns:"下一组字段",columnWindow:"{start}–{end} / {total}",paperAndPages:"纸张与版面",pageDirectory:"版面目录",pageName:"版面名称",addPage:"新增版面",duplicatePage:"复制版面",removePage:"删除版面",removePageConfirm:"此版面包含组件,删除后可通过撤销恢复。",confirmRemovePage:"确认删除",paperPreset:"纸张规格",labelPaper:"标签",customPaper:"自定义尺寸",paperWidth:"纸宽(mm)",paperHeight:"纸高(mm)",pageLayout:"展示方式",fixedPaper:"固定纸张",completeWide:"完整宽表",pageMargins:"页边距 · mm",marginTop:"上边距",marginRight:"右边距",marginBottom:"下边距",marginLeft:"左边距",pageOverflow:"{count} 个组件超出纸张",pageOverflowHint:"内容位置和尺寸已保留,请调整组件或纸张后核对打印预览。",locateOverflow:"定位超界组件",repeatRecords:"按记录生成标签",repeatRecordsHint:"每条记录按版面顺序生成,支持多版与多份。",recordDataset:"记录数据集",recordRowKey:"记录主键字段(可选)",labelCopies:"份数来源",fixedCopies:"固定份数",fieldCopies:"记录字段",copiesPerRecord:"每条记录份数",copiesField:"份数字段",repeatBoundHint:"已有组件绑定此记录;移除全部字段绑定后可关闭。",repeatOrderHint:"生成顺序:记录 → 份数 → 版面;预览会使用提供的真实样例。",repeatNeedsFixed:"先使用固定纸张、将组件置于纸内,并移除明细表或流式区域。",dataBinding:"记录绑定",contentSource:"内容来源",staticContent:"固定内容",recordField:"记录字段",bindingField:"绑定字段",bindingNeedsRepeat:"先在“模板”开启按记录生成,再选择字段。",bindingRecordHint:"字段随当前记录变化,空值与真实的 0 分开处理。",bindingImageHint:"图片字段使用 PNG/JPEG base64 data URL;空值不显示,业务 URL 由接入方安全加载。",valueFormat:"值格式",naturalFormat:"原始显示",numberFormat:"数值",percentFormat:"百分比",dateFormat:"日期",decimalPlaces:"小数位",datePattern:"日期格式",bindingDecoration:"前后缀与空值",valuePrefix:"前缀",valueSuffix:"后缀",emptyValueText:"空值显示",insertQrcode:"二维码",insertBarcode:"条形码",codeSettings:"编码设置",codeAdvancedSettings:"纠错、留白与使用说明",codeValue:"固定编码内容",codeSymbology:"条码制式",codeCorrection:"二维码纠错",codeQuietZone:"留白(模块)",codeShowText:"显示条码文字",eanContentHint:"使用完整的 8 / 13 位数字,包含有效校验位;切换制式不会改写内容。",code39ContentHint:"支持大写字母、数字、空格与 - . $ / + %;内容不会自动转换。",code128ContentHint:"支持可打印 ASCII 内容;中文请使用二维码。",codePlaceholder:"编码区域",codePreviewHint:"设计中显示内容标识;切换预览核对实际编码。",boundImagePlaceholder:"记录图片",rulerLabel:"毫米标尺",rulerToggle:"标尺",designSample:"样例",repeatPage:"每页重复",repeatNone:"不重复",repeatHeader:"页眉",repeatFooter:"页脚",textFormat:"文字样式",fontSize:"字号(pt)",fontBold:"加粗",textColor:"文字颜色",backgroundColor:"背景颜色",canvasGridLimited:"设计窗口仅显示前 2000 个单元格;最终预览与导出保留完整内容。",design:"设计",preview:"预览",componentSection:"组件",toolsSection:"工具",component:"组件",components:"组件目录",canvasHint:"点击选择 · 拖动移动 · 方向键微调 · Shift 加速 · Esc 取消",zoom:"缩放",sampleRows:"数据预览区域",treeSampleHint:"树形样例需完整且有界,请在报表预览中验证",resizeComponent:"调整组件尺寸",resizeColumn:"调整列宽",insertComponent:"添加组件",insertText:"文本",insertList:"明细表",insertImage:"图片",insertRect:"矩形",chartComponent:"图表",lineComponent:"线条",ellipseComponent:"椭圆",removeComponent:"删除组件",duplicateComponent:"复制组件",forward:"向上移动层级",backward:"向下移动层级",positionGroup:"位置与尺寸 · mm",componentContent:"组件内容",componentText:"文本内容",imageSource:"图片地址或 data URI",imageUpload:"上传图片",imageBudget:"图片不超过 4 MB,支持 PNG/JPEG/WebP/SVG",leftPosition:"左侧",topPosition:"顶部",componentWidth:"宽度",componentHeight:"高度",noComponent:"在画布或目录选择组件",listDataset:"数据集",columnOrder:"列结构",moveColumnLeft:"向前移动列",moveColumnRight:"向后移动列",columnVisible:"显示此列",headerStructure:"多层表头",addHeaderRow:"添加分组行",mergeHeader:"合并所选表头",splitHeader:"拆分表头",headerRow:"表头行",headerFirst:"开始列",headerLast:"结束列",flowLayout:"区域版式由 Excel 绑定向导管理;可编辑字段、格式与业务规则。",paramsTool:"查询参数",excelTool:"Excel 绑定",rulesTool:"计算与规则",reviewTool:"发布检查",toolsDescription:"按需绑定数据、定义规则并验证模板。",unapplied:"待应用",pendingToolsLabel:"待处理配置",pendingToolsHint:"应用或恢复后可保存",saveReadonly:"当前为只读,无法保存",saveConfirmation:"请先处理修改确认",saveUnchanged:"没有需要保存的修改",saveInvalid:"模板有错误,请先修正",saveJsonPending:"完整 JSON 待应用",returnToConfiguration:"返回配置",rulesNeedList:"请先在字段区域选择明细表。",undo:"撤销",redo:"重做",columnsSearch:"搜索列名或字段",columnsSelected:"已选列",selectVisible:"选择当前结果",clearSelection:"清除选择",noColumns:"没有匹配的列",batchBody:"批量正文对齐",batchHeader:"批量表头对齐",chooseAlignment:"选择对齐方式",discardTitle:"保留当前修改?",discardDescription:"当前包含未保存的属性或尚未应用的 JSON,继续将丢弃这些修改。",keepEditing:"继续编辑",discard:"丢弃修改并继续",jsonPending:"JSON 尚未应用。请先校验并应用,或撤销 JSON 修改后继续属性编辑与保存。",fieldsSection:"字段",templateSection:"模板",advancedSection:"高级",sectionsLabel:"模板设置分区",columnDirectory:"字段目录",columnProperties:"字段属性",selectColumn:"选择字段",clearSearch:"清除搜索",fieldsCount:"个字段",templateDetails:"模板信息",advancedTitle:"完整配置",advancedDescription:"用于批量迁移或配置复杂模板。应用前会校验;未应用的内容会受到草稿保护。",templateIdentity:"模板标识",templateRevision:"当前修订",readonly:"只读",ready:"可编辑",previewTitle:"实时预览",contentGroup:"内容",formatGroup:"格式",autoShort:"自动",previousColumn:"上一字段",nextColumn:"下一字段",closeDirectory:"关闭字段目录",technicalDetails:"标识与修订",fieldPosition:"当前字段",previewFieldDirectory:"定位字段"},ue={outlineTool:"结构大纲",reuseTool:"片段与样式",fitWidth:"适宽",fitPage:"适页",fitSelection:"选区",wideNavigation:"宽表导航",alignSelection:"对齐选区",leftEdges:"左对齐",centers:"水平居中",rightEdges:"右对齐",topEdges:"顶对齐",middles:"垂直居中",bottomEdges:"底对齐",horizontalSpacing:"水平等距",verticalSpacing:"垂直等距",lockSelection:"锁定位置",unlockSelection:"解锁位置",sessionLock:"位置锁定仅当前设计会话有效。",toolsPending:"工具中还有未应用的配置,请先应用或恢复后再保存模板。",...en,...tn},nn={class:"mr-canvas"},an={class:"mr-canvas-heading"},on={class:"mr-canvas-sheet-info"},ln=["title"],rn=["title"],sn={class:"mr-canvas-gesture-hint"},cn={class:"mr-canvas-toolbar"},dn={class:"mr-canvas-view-tools"},un=["aria-pressed"],mn=["disabled"],pn=["value","aria-label"],vn=["value"],fn=["width","aria-label"],gn=["transform"],hn={x:"3",y:"9"},yn=["height"],bn=["transform"],kn={x:"3",y:"10"},En=["data-canvas-component","aria-label","aria-pressed","tabindex","onFocus","onPointerdown","onClick","onKeydown"],Sn={class:"mr-canvas-table"},Nn={key:1,class:"mr-canvas-table-row is-header"},Vn=["onPointerdown"],wn={key:2,class:"mr-canvas-placeholder"},Cn=["aria-label","onPointerdown"],xn={key:1,class:"mr-canvas-static-grid"},Bn={key:0,class:"mr-canvas-grid-limit"},Dn=["title"],Mn={key:0},$n=["src"],Tn=["title"],_n=["aria-label","onPointerdown"],In={key:0,class:"mr-canvas-navigator"},Rn=["value","aria-label"],Ln=e.defineComponent({__name:"TemplateDesignCanvas",props:{document:{},selection:{},selections:{},locked:{type:Function},activeColumnIndex:{},pageIndex:{},datasets:{},disabled:{type:Boolean},geometryDisabled:{type:Boolean},messages:{}},emits:["select","geometry","column","width"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...ue,...a.messages})),{viewport:o,zoom:c,scale:d,page:m,wide:E,fraction:N,fit:p,setZoom:y,sync:S,navigate:f}=qt({get document(){return a.document},get pageIndex(){return a.pageIndex},get selection(){return a.selection},get columnIndex(){return a.activeColumnIndex}}),k=e.computed(()=>a.disabled===!0||a.geometryDisabled===!0||!!m.value.flow),g=e.computed(()=>m.value.components.map($=>$.kind==="list"?Ht($,a.datasets?.[$.dataset]??[],m.value.flow||$.cardinality==="record"?1:3):[])),i=e.computed(()=>m.value.components.map($=>Wt($,a.document,a.datasets))),v=e.ref(!0),h=e.computed(()=>it(m.value.widthMm,d.value)),x=e.computed(()=>it(m.value.heightMm,d.value));function V($,_,M){return{width:`${_*d.value}px`,opacity:M?.35:1,textAlign:$.style?.align,paddingLeft:$.indentMm?`${$.indentMm*d.value}px`:void 0,color:$.style?.color,backgroundColor:$.style?.backgroundColor,fontWeight:$.style?.bold?"700":"400",fontSize:`${Ie.resolveFontSize($.style).fontSizePx*c.value}px`}}function C($){return a.locked?.({pageIndex:a.pageIndex,componentIndex:$})===!0}function w($,_){l("select",{pageIndex:a.pageIndex,componentIndex:_,additive:$.ctrlKey||$.metaKey||$.shiftKey}),!$.ctrlKey&&!$.metaKey&&!$.shiftKey&&!C(_)&&B.start($,m.value.components[_])}const B=Qt({scale:d,page:()=>m.value,disabled:()=>k.value,commit:$=>l("geometry",$)});function T($){return(a.selections??(a.selection?[a.selection]:[])).some(_=>_.pageIndex===a.pageIndex&&_.componentIndex===$)}function A($){const _=m.value.components[$],M=_.kind==="list"?_.id:_.nid,D=m.value.flow?.bands.find(H=>H.componentIds.includes(M??"")),I=D&&_.kind==="list"?D.topMm+D.heightMm-_.topMm:Le(_);return{left:`${_.leftMm*d.value}px`,top:`${_.topMm*d.value}px`,width:`${_.widthMm*d.value}px`,height:`${I*d.value}px`}}function G($,_){const M=m.value.components[_];if(k.value||C(_)||!T(_))return;const D={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]},I=D[$.key];if(!I)return;$.preventDefault(),$.stopPropagation();const H=re(M),j=$.shiftKey?5:.5;H.leftMm+=I[0]*j,H.topMm+=I[1]*j,l("geometry",H)}function Z($){let _=0;return $.columns.map(M=>(_+=M.widthMm,_))}function R($){return $.grid?L.resolveGridLayout($.grid,$.widthMm,$.heightMm).cells.slice(0,2e3):[]}function s($){return $.headerGrid?L.resolveGridLayout($.headerGrid,$.widthMm,$.headerGrid.rowHeightsMm?.reduce((_,M)=>_+M,0)??$.headerGrid.cells.length*8).cells:[]}let O;e.watch(()=>k.value,$=>{$&&O?.()}),e.watch(()=>a.document,()=>O?.()),e.onBeforeUnmount(()=>O?.());function z($,_,M){if(k.value||$.button!==0)return;$.preventDefault(),$.stopPropagation(),O?.();const D=$.clientX,I=_.columns[M].widthMm;let H=I;const j=$.currentTarget,U=se=>{H=Math.max(2,Math.round((I+(se.clientX-D)/d.value)*2)/2),j.style.transform=`translateX(${(H-I)*d.value}px)`},ae=()=>{window.removeEventListener("pointermove",U),window.removeEventListener("pointerup",te),window.removeEventListener("pointercancel",ne),window.removeEventListener("keydown",K),j.style.transform="",O=void 0},te=()=>{ae(),H!==I&&l("width",M,H)},ne=()=>ae(),K=se=>{se.key==="Escape"&&(se.preventDefault(),ne())};window.addEventListener("pointermove",U),window.addEventListener("pointerup",te),window.addEventListener("pointercancel",ne),window.addEventListener("keydown",K),O=ne}return($,_)=>(e.openBlock(),e.createElementBlock("div",nn,[e.createElementVNode("div",an,[e.createElementVNode("div",on,[e.createElementVNode("strong",{title:e.unref(Ve)(e.unref(m),t.pageIndex,n.value.page)},e.toDisplayString(e.unref(Ve)(e.unref(m),t.pageIndex,n.value.page)),9,ln),e.createElementVNode("span",null,e.toDisplayString(e.unref(m).widthMm)+" × "+e.toDisplayString(e.unref(m).heightMm)+" mm",1),t.document.template.repeat?(e.openBlock(),e.createElementBlock("small",{key:0,title:t.document.template.repeat.dataset},e.toDisplayString(n.value.designSample)+" · "+e.toDisplayString(t.document.template.repeat.dataset),9,rn)):e.createCommentVNode("",!0)]),e.createElementVNode("span",sn,e.toDisplayString(n.value.canvasHint),1),e.createElementVNode("div",cn,[e.createElementVNode("nav",dn,[e.createElementVNode("button",{type:"button","aria-pressed":v.value,onClick:_[0]||(_[0]=M=>v.value=!v.value)},e.toDisplayString(n.value.rulerToggle),9,un),e.createElementVNode("button",{type:"button",onClick:_[1]||(_[1]=M=>e.unref(p)("width"))},e.toDisplayString(n.value.fitWidth),1),e.createElementVNode("button",{type:"button",onClick:_[2]||(_[2]=M=>e.unref(p)("page"))},e.toDisplayString(n.value.fitPage),1),e.createElementVNode("button",{type:"button",disabled:!t.selection,onClick:_[3]||(_[3]=M=>e.unref(p)("selection"))},e.toDisplayString(n.value.fitSelection),9,mn)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.zoom),1),e.createElementVNode("select",{value:e.unref(c),"aria-label":n.value.zoom,onChange:_[4]||(_[4]=M=>e.unref(y)(Number(M.target.value)))},[[.5,.8,1,1.25].includes(e.unref(c))?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("option",{key:0,value:e.unref(c)},e.toDisplayString(Math.round(e.unref(c)*100))+"%",9,vn)),_[7]||(_[7]=e.createElementVNode("option",{value:.5},"50%",-1)),_[8]||(_[8]=e.createElementVNode("option",{value:.8},"80%",-1)),_[9]||(_[9]=e.createElementVNode("option",{value:1},"100%",-1)),_[10]||(_[10]=e.createElementVNode("option",{value:1.25},"125%",-1))],40,pn)])])]),e.createElementVNode("div",{ref_key:"viewport",ref:o,class:"mr-canvas-scroll",onScrollPassive:_[5]||(_[5]=(...M)=>e.unref(S)&&e.unref(S)(...M))},[e.createElementVNode("div",{class:"mr-canvas-paper",style:e.normalizeStyle({width:`${e.unref(m).widthMm*e.unref(d)}px`,height:`${e.unref(m).heightMm*e.unref(d)}px`})},[v.value?(e.openBlock(),e.createElementBlock("svg",{key:0,class:"mr-canvas-ruler is-horizontal",width:e.unref(m).widthMm*e.unref(d),height:"17","aria-label":n.value.rulerLabel,role:"img"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,M=>(e.openBlock(),e.createElementBlock("g",{key:M.mm,transform:`translate(${M.position}, 0)`},[_[11]||(_[11]=e.createElementVNode("line",{y1:"12",y2:"17"},null,-1)),e.createElementVNode("text",hn,e.toDisplayString(M.mm),1)],8,gn))),128))],8,fn)):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("svg",{key:1,class:"mr-canvas-ruler is-vertical",width:"17",height:e.unref(m).heightMm*e.unref(d),"aria-hidden":"true"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,M=>(e.openBlock(),e.createElementBlock("g",{key:M.mm,transform:`translate(0, ${M.position})`},[_[12]||(_[12]=e.createElementVNode("line",{x1:"12",x2:"17"},null,-1)),e.createElementVNode("text",kn,e.toDisplayString(M.mm),1)],8,bn))),128))],8,yn)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m).components,(M,D)=>(e.openBlock(),e.createElementBlock("div",{key:D,class:e.normalizeClass(["mr-canvas-component",{"is-selected":T(D),"is-locked":C(D)}]),"data-canvas-component":D,style:e.normalizeStyle(A(D)),role:"button","aria-label":`${n.value.component} ${D+1} ${M.kind}`,"aria-pressed":T(D),tabindex:T(D)?0:-1,onFocus:I=>!T(D)&&l("select",{pageIndex:t.pageIndex,componentIndex:D}),onPointerdown:I=>w(I,D),onClick:I=>I.detail===0&&!T(D)&&l("select",{pageIndex:t.pageIndex,componentIndex:D}),onKeydown:I=>G(I,D)},[M.kind==="list"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Sn,[M.header!==!1&&M.headerGrid?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-canvas-merged",style:e.normalizeStyle({height:`${(M.headerGrid.rowHeightsMm?.reduce((I,H)=>I+H,0)??M.headerGrid.cells.length*8)*e.unref(d)}px`})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s(M),(I,H)=>(e.openBlock(),e.createElementBlock("div",{key:H,style:e.normalizeStyle({left:`${I.xMm*e.unref(d)}px`,top:`${I.yMm*e.unref(d)}px`,width:`${I.widthMm*e.unref(d)}px`,height:`${I.heightMm*e.unref(d)}px`,textAlign:I.cell.style?.align??"center"})},e.toDisplayString(I.cell.text),5))),128))],4)):M.header!==!1?(e.openBlock(),e.createElementBlock("div",Nn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.columns,(I,H)=>(e.openBlock(),e.createElementBlock("div",{key:H,style:e.normalizeStyle(V({text:I.header,style:e.unref(ke.resolveListHeaderStyle)(M,I)},I.widthMm,I.hidden)),onPointerdown:e.withModifiers(j=>{l("select",{pageIndex:t.pageIndex,componentIndex:D}),l("column",H)},["stop"])},e.toDisplayString(I.header),45,Vn))),128))])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value[D],(I,H)=>(e.openBlock(),e.createElementBlock("div",{key:H,class:"mr-canvas-table-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.columns,(j,U)=>(e.openBlock(),e.createElementBlock("div",{key:U,style:e.normalizeStyle(V(I[U],j.widthMm,j.hidden))},e.toDisplayString(I[U].text),5))),128))]))),128)),g.value[D]?.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",wn,e.toDisplayString(M.dataset)+" · "+e.toDisplayString(M.tree&&t.datasets?.[M.dataset]?.length?n.value.treeSampleHint:n.value.sampleRows),1))]),T(D)&&!k.value&&!C(D)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Z(M),(I,H)=>(e.openBlock(),e.createElementBlock("span",{key:H,class:"mr-canvas-column-handle","aria-label":`${n.value.resizeColumn} ${M.columns[H]?.header}`,role:"separator","aria-orientation":"vertical",style:e.normalizeStyle({left:`${I*e.unref(d)}px`}),onPointerdown:j=>z(j,M,H)},null,44,Cn))),128)):e.createCommentVNode("",!0)],64)):M.grid?(e.openBlock(),e.createElementBlock("div",xn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R(M),(I,H)=>(e.openBlock(),e.createElementBlock("div",{key:H,style:e.normalizeStyle({left:`${I.xMm*e.unref(d)}px`,top:`${I.yMm*e.unref(d)}px`,width:`${I.widthMm*e.unref(d)}px`,height:`${I.heightMm*e.unref(d)}px`,backgroundColor:I.cell.style?.backgroundColor,color:I.cell.style?.color,fontWeight:I.cell.style?.bold?"700":"400",fontSize:`${e.unref(Ie.resolveFontSize)(I.cell.style).fontSizePx*e.unref(c)}px`,textAlign:I.cell.style?.align??"left"})},e.toDisplayString(I.cell.text),5))),128)),M.grid.cells.reduce((I,H)=>I+H.length,0)>2e3?(e.openBlock(),e.createElementBlock("span",Bn,e.toDisplayString(n.value.canvasGridLimited),1)):e.createCommentVNode("",!0)])):(M.kind==="barcode"||M.kind==="qrcode")&&!i.value[D]?.image?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["mr-canvas-code",{"is-error":i.value[D]?.error}]),title:i.value[D]?.error??n.value.codePreviewHint},[_[13]||(_[13]=e.createElementVNode("svg",{viewBox:"0 0 32 24","aria-hidden":"true"},[e.createElementVNode("rect",{x:"3",y:"3",width:"26",height:"18",rx:"2"}),e.createElementVNode("path",{d:"M10 8 6 12l4 4m12-8 4 4-4 4m-8 2 4-12"})],-1)),e.createElementVNode("strong",null,e.toDisplayString(M.kind==="qrcode"?n.value.insertQrcode:(M.code?.symbology??"code128").toUpperCase()),1),e.createElementVNode("span",null,e.toDisplayString(i.value[D]?.text||n.value.codePlaceholder),1),i.value[D]?.bound?(e.openBlock(),e.createElementBlock("small",Mn,e.toDisplayString(M.binding?.field),1)):e.createCommentVNode("",!0)],10,Dn)):i.value[D]?.image?(e.openBlock(),e.createElementBlock("img",{key:3,src:i.value[D]?.image,alt:"",draggable:"false"},null,8,$n)):(e.openBlock(),e.createElementBlock("div",{key:4,class:e.normalizeClass(["mr-canvas-content",{"is-binding-error":i.value[D]?.error,"is-bound-image":M.kind==="image"&&M.binding}]),title:i.value[D]?.error==="image-binding"?n.value.bindingImageHint:i.value[D]?.error,style:e.normalizeStyle({color:M.style?.color,backgroundColor:M.style?.backgroundColor,fontWeight:M.style?.bold?"700":"400",fontSize:`${e.unref(Ie.resolveFontSize)(M.style).fontSizePx*e.unref(c)}px`,textAlign:M.style?.align,justifyContent:M.style?.verticalAlign==="bottom"?"flex-end":M.style?.verticalAlign==="middle"?"center":"flex-start"})},e.toDisplayString(i.value[D]?.text||(M.kind==="rect"?"":M.kind==="image"&&M.binding?n.value.boundImagePlaceholder:"")),15,Tn)),T(D)&&!k.value&&!C(D)?(e.openBlock(),e.createElementBlock("span",{key:5,class:"mr-canvas-resize","aria-label":n.value.resizeComponent,role:"separator",onPointerdown:I=>e.unref(B).start(I,M,!0)},null,40,_n)):e.createCommentVNode("",!0)],46,En))),128))],4)],544),e.unref(E)?(e.openBlock(),e.createElementBlock("footer",In,[e.createElementVNode("span",null,e.toDisplayString(n.value.wideNavigation),1),e.createElementVNode("input",{type:"range",min:"0",max:"100",value:e.unref(N),"aria-label":n.value.wideNavigation,onInput:_[6]||(_[6]=M=>e.unref(f)(Number(M.target.value)))},null,40,Rn),e.createElementVNode("span",null,e.toDisplayString(e.unref(N))+"%",1)])):e.createCommentVNode("",!0)]))}}),Pn=Y._export_sfc(Ln,[["__scopeId","data-v-c512529e"]]),An=["disabled"],Fn=["aria-label","value"],Hn=["value"],On=["aria-label","value"],Gn=["value"],zn={class:"mr-chart-series-heading"},jn=["disabled"],Un={class:"mr-chart-series-row"},qn=["value","aria-label","onChange"],Wn={key:0,value:""},Jn=["value"],Kn=["aria-label","disabled","onClick"],Yn={class:"mr-chart-series-row"},Xn=["value","aria-label","onChange"],Zn={value:"sum"},Qn={value:"avg"},ea={value:"weightedAvg"},ta={value:"count"},na={value:"min"},aa={value:"max"},oa=["value","aria-label","placeholder","onChange"],la={key:0},ra=["aria-label","value","onChange"],ia=["value"],sa={class:"mr-chart-series-row"},ca=["value","aria-label","onChange"],da={value:"number"},ua={value:"decimal"},ma=["value","aria-label","placeholder","onChange"],pa={class:"mr-chart-series-row"},va=["aria-label","value"],fa={value:"bar"},ga={value:"line"},ha={value:"stackedBar"},ya={value:"percentBar"},ba=["aria-label","value"],ka={value:""},Ea={value:"asc"},Sa={value:"desc"},Na=["aria-label","value"],Va={class:"mr-chart-check"},wa=["checked"],Ca=e.defineComponent({__name:"ChartBindingInspector",props:{component:{},schemas:{},datasets:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...ue,...a.messages})),o=e.computed(()=>a.component.chartBinding??{dataset:"detail",categoryField:"field",type:"bar",measures:[{op:"sum",field:"value"}]}),c=e.computed(()=>[...new Set([o.value.dataset,...Object.keys(a.schemas??{}),...Object.keys(a.datasets??{})])]),d=e.computed(()=>{const k=a.schemas?.[o.value.dataset]?.fields;if(k)return k.map(i=>({field:i.field,label:i.label??i.field,type:i.type}));const g=a.datasets?.[o.value.dataset]?.[0];return[...new Set([o.value.categoryField,...o.value.measures.flatMap(i=>i.field?[i.field]:[]),...Object.keys(g??{}).slice(0,200)])].map(i=>({field:i,label:i,type:void 0}))});function m(k){a.disabled||l("change",{...o.value,...k})}function E(k,g){m({measures:o.value.measures.map((i,v)=>{if(v!==k)return i;const h={...i,...g};return h.op==="weightedAvg"&&!h.weightField&&(h.weightField=d.value.find(x=>x.field!==h.field&&["number","decimal"].includes(x.type??""))?.field??h.field??"value"),h.op!=="count"&&!h.field&&(h.field=d.value[0]?.field??"value"),h})})}function N(k,g){E(k,{field:g||void 0,numeric:d.value.find(i=>i.field===g)?.type==="decimal"?"decimal":"number"})}function p(k,g){(g===""||/^\d+$/.test(g)&&Number(g)<=100)&&E(k,{digits:g===""?void 0:Number(g)})}function y(){o.value.measures.length<12&&m({measures:[...o.value.measures,{op:"sum",field:d.value[0]?.field??"value"}]})}function S(k){o.value.measures.length>1&&m({measures:o.value.measures.filter((g,i)=>i!==k)})}const f=k=>k.target.value;return(k,g)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-chart-binding",disabled:t.disabled},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.chartDataset),1),e.createElementVNode("select",{"aria-label":n.value.chartDataset,value:o.value.dataset,onChange:g[0]||(g[0]=i=>m({dataset:f(i)}))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,i=>(e.openBlock(),e.createElementBlock("option",{key:i,value:i},e.toDisplayString(i),9,Hn))),128))],40,Fn)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.chartCategory),1),e.createElementVNode("select",{"aria-label":n.value.chartCategory,value:o.value.categoryField,onChange:g[1]||(g[1]=i=>m({categoryField:f(i)}))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,i=>(e.openBlock(),e.createElementBlock("option",{key:i.field,value:i.field},e.toDisplayString(i.label),9,Gn))),128))],40,On)]),e.createElementVNode("div",zn,[e.createElementVNode("strong",null,e.toDisplayString(n.value.chartMeasure),1),e.createElementVNode("button",{type:"button",disabled:t.disabled||o.value.measures.length>=12,onClick:y},"+ "+e.toDisplayString(n.value.chartAddSeries),9,jn)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value.measures,(i,v)=>(e.openBlock(),e.createElementBlock("div",{key:v,class:"mr-chart-series"},[e.createElementVNode("div",Un,[e.createElementVNode("select",{value:i.field??"","aria-label":n.value.chartMeasure,onChange:h=>N(v,f(h))},[i.op==="count"?(e.openBlock(),e.createElementBlock("option",Wn,e.toDisplayString(n.value.chartRecordCount),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h.field,value:h.field},e.toDisplayString(h.label),9,Jn))),128))],40,qn),e.createElementVNode("button",{type:"button","aria-label":n.value.chartRemoveSeries,disabled:t.disabled||o.value.measures.length===1,onClick:h=>S(v)},"×",8,Kn)]),e.createElementVNode("div",Yn,[e.createElementVNode("select",{value:i.op,"aria-label":n.value.chartAggregation,onChange:h=>E(v,{op:f(h)})},[e.createElementVNode("option",Zn,e.toDisplayString(n.value.chartSum),1),e.createElementVNode("option",Qn,e.toDisplayString(n.value.chartAverage),1),e.createElementVNode("option",ea,e.toDisplayString(n.value.chartWeightedAverage),1),e.createElementVNode("option",ta,e.toDisplayString(n.value.chartRecordCount),1),e.createElementVNode("option",na,e.toDisplayString(n.value.chartMinimum),1),e.createElementVNode("option",aa,e.toDisplayString(n.value.chartMaximum),1)],40,Xn),e.createElementVNode("input",{value:i.label,"aria-label":n.value.chartSeries,placeholder:n.value.chartSeries,maxlength:"256",onChange:h=>E(v,{label:f(h)||void 0})},null,40,oa)]),i.op==="weightedAvg"?(e.openBlock(),e.createElementBlock("label",la,[e.createTextVNode(e.toDisplayString(n.value.chartWeight),1),e.createElementVNode("select",{"aria-label":n.value.chartWeight,value:i.weightField??"",onChange:h=>E(v,{weightField:f(h)||void 0})},[g[6]||(g[6]=e.createElementVNode("option",{value:"",disabled:""},"—",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h.field,value:h.field},e.toDisplayString(h.label),9,ia))),128))],40,ra)])):e.createCommentVNode("",!0),e.createElementVNode("details",null,[e.createElementVNode("summary",null,e.toDisplayString(n.value.chartNumberOptions),1),e.createElementVNode("div",sa,[e.createElementVNode("select",{value:i.numeric??"number","aria-label":n.value.chartNumeric,onChange:h=>E(v,{numeric:f(h)})},[e.createElementVNode("option",da,e.toDisplayString(n.value.chartNumber),1),e.createElementVNode("option",ua,e.toDisplayString(n.value.chartDecimal),1)],40,ca),e.createElementVNode("input",{type:"number",min:"0",max:"100",value:i.digits,"aria-label":n.value.chartDigits,placeholder:n.value.chartDigits,onChange:h=>p(v,f(h))},null,40,ma)])])]))),128)),e.createElementVNode("div",pa,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.chartType),1),e.createElementVNode("select",{"aria-label":n.value.chartType,value:o.value.type,onChange:g[2]||(g[2]=i=>m({type:f(i)}))},[e.createElementVNode("option",fa,e.toDisplayString(n.value.chartBar),1),e.createElementVNode("option",ga,e.toDisplayString(n.value.chartLine),1),e.createElementVNode("option",ha,e.toDisplayString(n.value.chartStacked),1),e.createElementVNode("option",ya,e.toDisplayString(n.value.chartPercent),1)],40,va)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.chartSort),1),e.createElementVNode("select",{"aria-label":n.value.chartSort,value:o.value.sort??"",onChange:g[3]||(g[3]=i=>m({sort:f(i)||void 0}))},[e.createElementVNode("option",ka,e.toDisplayString(n.value.chartNatural),1),e.createElementVNode("option",Ea,e.toDisplayString(n.value.chartAscending),1),e.createElementVNode("option",Sa,e.toDisplayString(n.value.chartDescending),1)],40,ba)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.chartTitle),1),e.createElementVNode("input",{"aria-label":n.value.chartTitle,value:o.value.title,maxlength:"512",onChange:g[4]||(g[4]=i=>m({title:f(i)||void 0}))},null,40,Na)]),e.createElementVNode("label",Va,[e.createElementVNode("input",{type:"checkbox",checked:o.value.showValues,onChange:g[5]||(g[5]=i=>m({showValues:i.target.checked}))},null,40,wa),e.createTextVNode(e.toDisplayString(n.value.chartValues),1)]),e.createElementVNode("p",null,e.toDisplayString(n.value.chartBindingNote),1)],8,An))}}),yt=Y._export_sfc(Ca,[["__scopeId","data-v-4060b1b9"]]),xa={class:"mr-component-binding"},Ba=["value","disabled"],Da={value:"static"},Ma=["disabled"],$a={key:0,class:"mr-binding-hint"},Ta=["value","disabled"],_a=["value"],Ia={key:0,class:"mr-binding-grid"},Ra=["value","disabled"],La={value:"natural"},Pa={value:"number"},Aa={value:"percent"},Fa={value:"date"},Ha={key:0},Oa=["value","disabled"],Ga={key:1},za=["value","disabled"],ja={key:1},Ua={class:"mr-binding-grid"},qa=["value","disabled"],Wa=["value","disabled"],Ja=["value","disabled"],Ka={class:"mr-binding-hint"},Ya=e.defineComponent({__name:"ComponentDataBinding",props:{component:{},repeat:{},schema:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...ue,...a.messages})),o=e.computed(()=>a.component.binding),c=`mr-component-fields-${e.getCurrentInstance()?.uid??0}`;function d(y){return y.target.value}function m(y){!a.disabled&&o.value&&l("change",{...o.value,...y})}function E(y){a.disabled||(d(y)==="static"?l("change",void 0):a.repeat&&l("change",{field:a.schema?.fields[0]?.field??"value"}))}function N(y){if(!o.value||a.disabled)return;const S={...o.value},f=d(y);f==="natural"?delete S.format:S.format=f==="date"?{kind:"date",pattern:"YYYY-MM-DD"}:{kind:f,digits:2},l("change",S)}function p(y){const S=d(y),f=o.value?.format;S.trim()&&f&&f.kind!=="date"&&m({format:{...f,digits:Number(S)}})}return(y,S)=>(e.openBlock(),e.createElementBlock("div",xa,[e.createElementVNode("h3",null,e.toDisplayString(n.value.componentContent),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.contentSource),1),e.createElementVNode("select",{value:o.value?"field":"static",disabled:t.disabled,onChange:E},[e.createElementVNode("option",Da,e.toDisplayString(n.value.staticContent),1),e.createElementVNode("option",{value:"field",disabled:!t.repeat},e.toDisplayString(n.value.recordField),9,Ma)],40,Ba)]),t.repeat?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",$a,e.toDisplayString(n.value.bindingNeedsRepeat),1)),o.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.bindingField),1),e.createElementVNode("input",{value:o.value.field,list:c,disabled:t.disabled,onChange:S[0]||(S[0]=f=>d(f).trim()&&m({field:d(f).trim()}))},null,40,Ta)]),e.createElementVNode("datalist",{id:c},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.schema?.fields??[],f=>(e.openBlock(),e.createElementBlock("option",{key:f.field,value:f.field},e.toDisplayString(f.label),9,_a))),128))]),t.component.kind==="text"?(e.openBlock(),e.createElementBlock("div",Ia,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valueFormat),1),e.createElementVNode("select",{value:o.value.format?.kind??"natural",disabled:t.disabled,onChange:N},[e.createElementVNode("option",La,e.toDisplayString(n.value.naturalFormat),1),e.createElementVNode("option",Pa,e.toDisplayString(n.value.numberFormat),1),e.createElementVNode("option",Aa,e.toDisplayString(n.value.percentFormat),1),e.createElementVNode("option",Fa,e.toDisplayString(n.value.dateFormat),1)],40,Ra)]),o.value.format&&o.value.format.kind!=="date"?(e.openBlock(),e.createElementBlock("label",Ha,[e.createTextVNode(e.toDisplayString(n.value.decimalPlaces),1),e.createElementVNode("input",{type:"number",min:"0",max:"100",step:"1",value:o.value.format.digits??2,disabled:t.disabled,onChange:p},null,40,Oa)])):o.value.format?.kind==="date"?(e.openBlock(),e.createElementBlock("label",Ga,[e.createTextVNode(e.toDisplayString(n.value.datePattern),1),e.createElementVNode("input",{value:o.value.format.pattern??"YYYY-MM-DD",disabled:t.disabled,onChange:S[1]||(S[1]=f=>m({format:{kind:"date",pattern:d(f)}}))},null,40,za)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),t.component.kind!=="image"?(e.openBlock(),e.createElementBlock("details",ja,[e.createElementVNode("summary",null,e.toDisplayString(n.value.bindingDecoration),1),e.createElementVNode("div",Ua,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valuePrefix),1),e.createElementVNode("input",{value:o.value.prefix??"",disabled:t.disabled,onChange:S[2]||(S[2]=f=>m({prefix:d(f)}))},null,40,qa)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valueSuffix),1),e.createElementVNode("input",{value:o.value.suffix??"",disabled:t.disabled,onChange:S[3]||(S[3]=f=>m({suffix:d(f)}))},null,40,Wa)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.emptyValueText),1),e.createElementVNode("input",{value:o.value.emptyText??"",disabled:t.disabled,onChange:S[4]||(S[4]=f=>m({emptyText:d(f)}))},null,40,Ja)])])):e.createCommentVNode("",!0),e.createElementVNode("p",Ka,e.toDisplayString(t.repeat?.dataset)+" · "+e.toDisplayString(t.component.kind==="image"?n.value.bindingImageHint:n.value.bindingRecordHint),1)],64)):e.createCommentVNode("",!0)]))}}),Xa=Y._export_sfc(Ya,[["__scopeId","data-v-4558f265"]]),Za={class:"mr-code-properties"},Qa={key:0},eo=["value","disabled"],to={key:1},no=["value","disabled"],ao={key:2,class:"mr-code-checkbox"},oo=["checked","disabled"],lo={class:"mr-code-advanced"},ro={class:"mr-code-grid"},io={key:0},so=["value","disabled"],co=["min","value","disabled"],uo={key:0},mo=e.defineComponent({__name:"CodeComponentInspector",props:{component:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...ue,...a.messages})),o=e.computed(()=>a.component.kind==="qrcode"?4:a.component.code?.symbology?.startsWith("ean")?11:10);function c(E){return E.target.value}function d(E){a.disabled||l("change",{...a.component.code,...E})}function m(E){const N=c(E);d({symbology:N,quietZoneModules:N.startsWith("ean")?11:10})}return(E,N)=>(e.openBlock(),e.createElementBlock("div",Za,[e.createElementVNode("h3",null,e.toDisplayString(n.value.codeSettings),1),t.component.binding?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("label",Qa,[e.createTextVNode(e.toDisplayString(n.value.codeValue),1),e.createElementVNode("textarea",{rows:"2",value:t.component.code?.value??t.component.fallbackText??t.component.text??"",disabled:t.disabled,onChange:N[0]||(N[0]=p=>d({value:c(p)}))},null,40,eo)])),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("label",to,[e.createTextVNode(e.toDisplayString(n.value.codeSymbology),1),e.createElementVNode("select",{value:t.component.code?.symbology??"code128",disabled:t.disabled,onChange:m},[...N[4]||(N[4]=[e.createElementVNode("option",{value:"code128"},"Code 128",-1),e.createElementVNode("option",{value:"code39"},"Code 39",-1),e.createElementVNode("option",{value:"ean13"},"EAN-13",-1),e.createElementVNode("option",{value:"ean8"},"EAN-8",-1)])],40,no)])):e.createCommentVNode("",!0),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("label",ao,[e.createElementVNode("input",{type:"checkbox",checked:t.component.code?.showText===!0,disabled:t.disabled,onChange:N[1]||(N[1]=p=>d({showText:p.target.checked}))},null,40,oo),e.createTextVNode(e.toDisplayString(n.value.codeShowText),1)])):e.createCommentVNode("",!0),e.createElementVNode("details",lo,[e.createElementVNode("summary",null,e.toDisplayString(n.value.codeAdvancedSettings),1),e.createElementVNode("div",ro,[t.component.kind==="qrcode"?(e.openBlock(),e.createElementBlock("label",io,[e.createTextVNode(e.toDisplayString(n.value.codeCorrection),1),e.createElementVNode("select",{value:t.component.code?.errorCorrection??"M",disabled:t.disabled,onChange:N[2]||(N[2]=p=>d({errorCorrection:c(p)}))},[...N[5]||(N[5]=[e.createElementVNode("option",{value:"L"},"L · 7%",-1),e.createElementVNode("option",{value:"M"},"M · 15%",-1),e.createElementVNode("option",{value:"Q"},"Q · 25%",-1),e.createElementVNode("option",{value:"H"},"H · 30%",-1)])],40,so)])):e.createCommentVNode("",!0),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.codeQuietZone),1),e.createElementVNode("input",{type:"number",min:o.value,max:"64",step:"1",value:t.component.code?.quietZoneModules??o.value,disabled:t.disabled,onChange:N[3]||(N[3]=p=>c(p).trim()&&d({quietZoneModules:Number(c(p))}))},null,40,co)])]),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("p",uo,e.toDisplayString(t.component.code?.symbology?.startsWith("ean")?n.value.eanContentHint:t.component.code?.symbology==="code39"?n.value.code39ContentHint:n.value.code128ContentHint),1)):e.createCommentVNode("",!0),e.createElementVNode("p",null,e.toDisplayString(n.value.codePreviewHint),1)])]))}}),po=Y._export_sfc(mo,[["__scopeId","data-v-907fe45a"]]),vo=["aria-label"],fo=["data-align","aria-label","title","aria-checked","tabindex","onClick","onKeydown"],go={key:0},ho={key:1,viewBox:"0 0 20 20",fill:"none","aria-hidden":"true"},yo={key:0,d:"M3 4h14M3 8h9M3 12h14M3 16h9"},bo={key:1,d:"M3 4h14M6 8h8M3 12h14M6 16h8"},ko={key:2,d:"M3 4h14M8 8h9M3 12h14M8 16h9"},Eo={key:3,d:"M3 4h14M3 8h14M3 12h14M3 16h14"},So=e.defineComponent({__name:"AlignmentControl",props:{modelValue:{},label:{},labels:{},autoLabel:{},allowAuto:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:r}){const a=t,l=r,n=()=>a.allowAuto?["auto","left","center","right","justify"]:["left","center","right","justify"];async function o(c,d){if(!["ArrowLeft","ArrowRight","Home","End"].includes(c.key))return;c.preventDefault();const E=n(),N=E.indexOf(d),p=c.key==="Home"?0:c.key==="End"?E.length-1:(N+(c.key==="ArrowRight"?1:-1)+E.length)%E.length;l("update:modelValue",E[p]);const y=c.currentTarget.parentElement;await e.nextTick(),y?.querySelector(`[data-align="${E[p]}"]`)?.focus()}return(c,d)=>(e.openBlock(),e.createElementBlock("div",{class:"mr-designer-alignment",role:"radiogroup","aria-label":t.label},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n(),m=>(e.openBlock(),e.createElementBlock("button",{key:m,type:"button",role:"radio","data-align":m,"aria-label":t.labels[m],title:t.labels[m],"aria-checked":t.modelValue===m,tabindex:t.modelValue===m?0:-1,onClick:E=>l("update:modelValue",m),onKeydown:E=>o(E,m)},[m==="auto"?(e.openBlock(),e.createElementBlock("span",go,e.toDisplayString(t.autoLabel),1)):(e.openBlock(),e.createElementBlock("svg",ho,[m==="left"?(e.openBlock(),e.createElementBlock("path",yo)):m==="center"?(e.openBlock(),e.createElementBlock("path",bo)):m==="right"?(e.openBlock(),e.createElementBlock("path",ko)):(e.openBlock(),e.createElementBlock("path",Eo))]))],40,fo))),128))],8,vo))}}),Ke=Y._export_sfc(So,[["__scopeId","data-v-c85770c4"]]),No=["disabled"],Vo={class:"mr-component-content"},wo={key:2},Co=["value"],xo=["value"],Bo={class:"mr-component-upload"},Do=["aria-label"],Mo={key:0,role:"alert"},$o={key:5},To=["value"],_o={key:0,class:"mr-component-type"},Io={class:"mr-component-dimensions"},Ro=["value"],Lo=["checked"],Po={class:"mr-component-dimensions"},Ao=["value"],Fo=["value"],Ho=["open"],Oo={class:"mr-component-dimensions"},Go=["min","value","disabled","onChange"],zo={key:0},jo=["value","disabled"],Uo={value:""},qo={value:"header"},Wo={value:"footer"},Jo=e.defineComponent({__name:"CanvasComponentInspector",props:{component:{},disabled:{type:Boolean},geometryDisabled:{type:Boolean},repeat:{},schema:{},schemas:{},datasets:{},messages:{}},emits:["geometry","patch"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...ue,...a.messages})),o=e.ref(""),c=["leftMm","topMm","widthMm","heightMm"],d=e.computed(()=>[n.value.leftPosition,n.value.topPosition,n.value.componentWidth,n.value.componentHeight]);function m(S,f){if(a.disabled||a.geometryDisabled)return;const k=Number(f.target.value);if(!Number.isFinite(k))return;const g={...re(a.component),[S]:k};a.component.kind==="qrcode"&&(S==="widthMm"||S==="heightMm")&&(g.widthMm=g.heightMm=k),l("geometry",g)}function E(S,f){if(a.component.kind==="list")return;const k={...a.component.style,[S]:f};S==="fontSize"&&delete k.fontSizePx,l("patch",{style:k})}const N=e.computed(()=>({auto:n.value.auto,left:n.value.left,center:n.value.center,right:n.value.right,justify:n.value.justify}));function p(S){return S.target.value}async function y(S){const f=S.target,k=f.files?.[0];if(!k)return;o.value="";const g=a.component;try{if(k.size>4*1024*1024||!["image/png","image/jpeg","image/webp","image/svg+xml"].includes(k.type))throw new Error(n.value.imageBudget);const i=new FileReader,v=await new Promise((h,x)=>{i.onload=()=>h(String(i.result)),i.onerror=()=>x(i.error),i.readAsDataURL(k)});!a.disabled&&a.component===g&&l("patch",{imageData:v})}catch(i){o.value=i instanceof Error?i.message:String(i)}finally{f.value=""}}return(S,f)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-component-properties",disabled:t.disabled},[e.createElementVNode("div",Vo,[t.component.kind==="chart"&&!t.component.imageData?(e.openBlock(),e.createBlock(yt,{key:0,component:t.component,schemas:t.schemas,datasets:t.datasets,disabled:t.disabled,messages:n.value,onChange:f[0]||(f[0]=k=>l("patch",{chartBinding:k}))},null,8,["component","schemas","datasets","disabled","messages"])):e.createCommentVNode("",!0),["text","image","barcode","qrcode"].includes(t.component.kind)&&t.component.kind!=="list"&&!t.component.grid?(e.openBlock(),e.createBlock(Xa,{key:1,component:t.component,repeat:t.repeat,schema:t.schema,disabled:t.disabled,messages:n.value,onChange:f[1]||(f[1]=k=>l("patch",{binding:k,...["barcode","qrcode"].includes(t.component.kind)?{imageData:void 0}:{}}))},null,8,["component","repeat","schema","disabled","messages"])):e.createCommentVNode("",!0),t.component.kind==="text"&&!t.component.binding?(e.openBlock(),e.createElementBlock("label",wo,[e.createTextVNode(e.toDisplayString(n.value.componentText),1),e.createElementVNode("textarea",{rows:"3",value:t.component.text,onChange:f[2]||(f[2]=k=>l("patch",{text:p(k)}))},null,40,Co)])):e.createCommentVNode("",!0),t.component.kind==="image"&&!t.component.binding?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.imageSource),1),e.createElementVNode("textarea",{rows:"2",value:t.component.imageData,onChange:f[3]||(f[3]=k=>l("patch",{imageData:p(k)}))},null,40,xo)]),e.createElementVNode("label",Bo,[e.createTextVNode(e.toDisplayString(n.value.imageUpload),1),e.createElementVNode("input",{type:"file",accept:"image/png,image/jpeg,image/webp,image/svg+xml","aria-label":n.value.imageUpload,onChange:y},null,40,Do)]),o.value?(e.openBlock(),e.createElementBlock("p",Mo,e.toDisplayString(o.value),1)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.component.kind==="barcode"||t.component.kind==="qrcode"?(e.openBlock(),e.createBlock(po,{key:4,component:t.component,disabled:t.disabled,messages:n.value,onChange:f[4]||(f[4]=k=>l("patch",{code:k,imageData:void 0}))},null,8,["component","disabled","messages"])):e.createCommentVNode("",!0),t.component.kind==="list"?(e.openBlock(),e.createElementBlock("label",$o,[e.createTextVNode(e.toDisplayString(n.value.listDataset),1),e.createElementVNode("input",{value:t.component.dataset,onChange:f[5]||(f[5]=k=>l("patch",{dataset:p(k)}))},null,40,To)])):e.createCommentVNode("",!0)]),t.component.kind==="text"?(e.openBlock(),e.createElementBlock("div",_o,[e.createElementVNode("h3",null,e.toDisplayString(n.value.textFormat),1),e.createElementVNode("div",Io,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.fontSize),1),e.createElementVNode("input",{type:"number",min:"1",max:"200",value:e.unref(Ie.resolveFontSize)(t.component.style).fontSizePt,onChange:f[6]||(f[6]=k=>E("fontSize",Number(p(k))))},null,40,Ro)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.fontBold),1),e.createElementVNode("input",{type:"checkbox",checked:t.component.style?.bold===!0,onChange:f[7]||(f[7]=k=>E("bold",k.target.checked))},null,40,Lo)])]),e.createVNode(Ke,{"model-value":t.component.style?.align??"left",label:n.value.bodyAlign,labels:N.value,"auto-label":n.value.autoShort,"onUpdate:modelValue":f[8]||(f[8]=k=>E("align",k))},null,8,["model-value","label","labels","auto-label"]),e.createElementVNode("div",Po,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.textColor),1),e.createElementVNode("input",{type:"color",value:t.component.style?.color??"#233c5c",onChange:f[9]||(f[9]=k=>E("color",p(k)))},null,40,Ao)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.backgroundColor),1),e.createElementVNode("input",{type:"color",value:t.component.style?.backgroundColor??"#ffffff",onChange:f[10]||(f[10]=k=>E("backgroundColor",p(k)))},null,40,Fo)])])])):e.createCommentVNode("",!0),e.createElementVNode("details",{class:"mr-component-position",open:!t.repeat},[e.createElementVNode("summary",null,[e.createElementVNode("strong",null,e.toDisplayString(n.value.positionGroup),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(re)(t.component).widthMm)+" × "+e.toDisplayString(e.unref(re)(t.component).heightMm),1)]),e.createElementVNode("div",Oo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.filter(k=>t.component.kind!=="list"||k!=="heightMm"),(k,g)=>(e.openBlock(),e.createElementBlock("label",{key:k},[e.createTextVNode(e.toDisplayString(d.value[g]),1),e.createElementVNode("input",{type:"number",step:"0.5",min:k==="widthMm"||k==="heightMm"?2:0,value:e.unref(re)(t.component)[k],disabled:t.geometryDisabled,onChange:i=>m(k,i)},null,40,Go)]))),128))]),t.component.kind!=="list"&&!t.repeat?(e.openBlock(),e.createElementBlock("label",zo,[e.createTextVNode(e.toDisplayString(n.value.repeatPage),1),e.createElementVNode("select",{value:t.component.pageAnchor??"",disabled:t.geometryDisabled,onChange:f[11]||(f[11]=k=>l("patch",{pageAnchor:p(k)||void 0}))},[e.createElementVNode("option",Uo,e.toDisplayString(n.value.repeatNone),1),e.createElementVNode("option",qo,e.toDisplayString(n.value.repeatHeader),1),e.createElementVNode("option",Wo,e.toDisplayString(n.value.repeatFooter),1)],40,jo)])):e.createCommentVNode("",!0)],8,Ho)],8,No))}}),Ko=Y._export_sfc(Jo,[["__scopeId","data-v-193bf464"]]),Yo=["disabled"],Xo={class:"mr-page-section-heading"},Zo=["aria-label"],Qo=["aria-pressed","onClick"],el={class:"mr-page-actions"},tl=["disabled"],nl={key:0,class:"mr-page-confirm",role:"alert"},al=["value","placeholder"],ol=["value"],ll=["value"],rl={value:"custom"},il={class:"mr-page-grid"},sl=["value"],cl=["value"],dl=["value"],ul={value:"page"},ml=["disabled"],pl={class:"mr-page-grid"},vl=["value","onChange"],fl={key:1,class:"mr-page-overflow",role:"status"},gl=e.defineComponent({__name:"TemplatePageInspector",props:{document:{},pageIndex:{},disabled:{type:Boolean},messages:{}},emits:["select","command","locate"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...ue,...a.messages})),o=e.computed(()=>a.document.template.pages[a.pageIndex]),c=e.computed(()=>We.find(g=>g.widthMm===o.value.widthMm&&g.heightMm===o.value.heightMm)?.id??"custom"),d=e.computed(()=>ht(o.value)),m=e.ref(!1);e.watch(()=>[a.pageIndex,a.document],()=>{m.value=!1});const E=["marginTopMm","marginRightMm","marginBottomMm","marginLeftMm"],N=e.computed(()=>[n.value.marginTop,n.value.marginRight,n.value.marginBottom,n.value.marginLeft]);function p(g){return g.target.value}function y(g){a.disabled||l("command",{type:"patch",patch:g})}function S(g){const i=We.find(v=>v.id===p(g));i&&y({widthMm:i.widthMm,heightMm:i.heightMm,layout:"page"})}function f(g,i){const v=p(i);v.trim()&&Number.isFinite(Number(v))&&y({[g]:Number(v)})}function k(){if(!(a.disabled||a.document.template.pages.length<=1)){if(o.value.components.length&&!m.value){m.value=!0;return}l("command",{type:"remove"}),m.value=!1}}return(g,i)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-page-properties",disabled:t.disabled},[e.createElementVNode("div",Xo,[e.createElementVNode("h3",null,e.toDisplayString(n.value.paperAndPages),1),e.createElementVNode("span",null,e.toDisplayString(o.value.widthMm)+" × "+e.toDisplayString(o.value.heightMm)+" mm",1)]),e.createElementVNode("div",{class:"mr-page-list","aria-label":n.value.pageDirectory},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.document.template.pages,(v,h)=>(e.openBlock(),e.createElementBlock("button",{key:h,type:"button","aria-pressed":t.pageIndex===h,onClick:x=>l("select",h)},[e.createElementVNode("span",null,e.toDisplayString(h+1),1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(Ve)(v,h,n.value.page)),1),e.createElementVNode("small",null,e.toDisplayString(v.widthMm)+" × "+e.toDisplayString(v.heightMm),1)],8,Qo))),128))],8,Zo),e.createElementVNode("div",el,[e.createElementVNode("button",{type:"button",onClick:i[0]||(i[0]=v=>l("command",{type:"add"}))},"+ "+e.toDisplayString(n.value.addPage),1),e.createElementVNode("button",{type:"button",onClick:i[1]||(i[1]=v=>l("command",{type:"duplicate"}))},e.toDisplayString(n.value.duplicatePage),1),e.createElementVNode("button",{type:"button",disabled:t.disabled||t.document.template.pages.length<=1,onClick:k},e.toDisplayString(n.value.removePage),9,tl)]),m.value?(e.openBlock(),e.createElementBlock("div",nl,[e.createElementVNode("span",null,e.toDisplayString(n.value.removePageConfirm),1),e.createElementVNode("button",{type:"button",onClick:i[2]||(i[2]=v=>m.value=!1)},e.toDisplayString(n.value.keepEditing),1),e.createElementVNode("button",{type:"button",onClick:k},e.toDisplayString(n.value.confirmRemovePage),1)])):e.createCommentVNode("",!0),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.pageName),1),e.createElementVNode("input",{value:o.value.meta?.title??"",placeholder:`${n.value.page} ${t.pageIndex+1}`,maxlength:"120",onChange:i[3]||(i[3]=v=>y({meta:{...o.value.meta,title:p(v)}}))},null,40,al)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperPreset),1),e.createElementVNode("select",{value:c.value,onChange:S},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(We),v=>(e.openBlock(),e.createElementBlock("option",{key:v.id,value:v.id},e.toDisplayString(v.id.startsWith("label")?n.value.labelPaper:v.id.toUpperCase())+" · "+e.toDisplayString(v.widthMm)+" × "+e.toDisplayString(v.heightMm)+" mm",9,ll))),128)),e.createElementVNode("option",rl,e.toDisplayString(n.value.customPaper),1)],40,ol)]),e.createElementVNode("div",il,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperWidth),1),e.createElementVNode("input",{type:"number",min:"1",step:"0.5",value:o.value.widthMm,onChange:i[4]||(i[4]=v=>f("widthMm",v))},null,40,sl)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperHeight),1),e.createElementVNode("input",{type:"number",min:"1",max:"4999",step:"0.5",value:o.value.heightMm,onChange:i[5]||(i[5]=v=>f("heightMm",v))},null,40,cl)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.pageLayout),1),e.createElementVNode("select",{value:o.value.layout??"page",onChange:i[6]||(i[6]=v=>y({layout:p(v)}))},[e.createElementVNode("option",ul,e.toDisplayString(n.value.fixedPaper),1),e.createElementVNode("option",{value:"wide",disabled:!!t.document.template.repeat},e.toDisplayString(n.value.completeWide),9,ml)],40,dl)]),e.createElementVNode("details",null,[e.createElementVNode("summary",null,e.toDisplayString(n.value.pageMargins),1),e.createElementVNode("div",pl,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(E,(v,h)=>e.createElementVNode("label",{key:v},[e.createTextVNode(e.toDisplayString(N.value[h]),1),e.createElementVNode("input",{type:"number",min:"0",step:"0.5",value:o.value[v]??0,onChange:x=>f(v,x)},null,40,vl)])),64))])]),d.value.length?(e.openBlock(),e.createElementBlock("div",fl,[e.createElementVNode("strong",null,e.toDisplayString(n.value.pageOverflow.replace("{count}",String(d.value.length))),1),e.createElementVNode("p",null,e.toDisplayString(n.value.pageOverflowHint),1),e.createElementVNode("button",{type:"button",onClick:i[7]||(i[7]=v=>l("locate",d.value[0]))},e.toDisplayString(n.value.locateOverflow),1)])):e.createCommentVNode("",!0)],8,Yo))}}),hl=Y._export_sfc(gl,[["__scopeId","data-v-da0b7ab6"]]),yl=["disabled"],bl={class:"mr-repeat-toggle"},kl=["checked","disabled"],El=["value","list"],Sl=["id"],Nl=["value"],Vl=["value"],wl=["value"],Cl={class:"mr-repeat-grid"},xl=["value"],Bl={value:"fixed"},Dl={value:"field"},Ml={key:0},$l=["value"],Tl={key:1},_l=["value"],Il={class:"mr-repeat-note"},Rl=e.defineComponent({__name:"TemplateRepeatInspector",props:{document:{},datasets:{},schemas:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...ue,...a.messages})),o=e.computed(()=>a.document.template.repeat),c=e.computed(()=>a.schemas?.[o.value?.dataset??""]?.fields??[]),d=e.computed(()=>[...new Set([...a.datasets??[],...Object.keys(a.schemas??{}),...o.value?[o.value.dataset]:[]])]),m=e.computed(()=>a.document.template.pages.some(i=>i.components.some(v=>v.kind!=="list"&&v.binding))),E=e.computed(()=>a.document.template.pages.some(i=>i.layout==="wide"||!!i.flow||i.components.some(v=>v.kind==="list")||ht(i).length>0)),N=e.computed(()=>typeof o.value?.copies=="object"?"field":"fixed"),p=`mr-repeat-fields-${e.getCurrentInstance()?.uid??0}`;function y(i){return i.target.value}function S(i){!a.disabled&&o.value&&l("change",{...o.value,...i})}function f(i){a.disabled||(i.target.checked?E.value||l("change",{dataset:d.value[0]??"detail",copies:1}):m.value||l("change",void 0))}function k(i){if(!o.value||a.disabled)return;const v={...o.value},h=y(i).trim();h?v.rowKey=h:delete v.rowKey,l("change",v)}function g(i){S({copies:y(i)==="field"?{field:c.value.find(v=>v.type==="number")?.field??"copies"}:1})}return(i,v)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-repeat-properties",disabled:t.disabled},[e.createElementVNode("label",bl,[e.createElementVNode("span",null,[e.createElementVNode("strong",null,e.toDisplayString(n.value.repeatRecords),1),e.createElementVNode("small",null,e.toDisplayString(E.value?n.value.repeatNeedsFixed:n.value.repeatRecordsHint),1)]),e.createElementVNode("input",{type:"checkbox",checked:!!o.value,disabled:t.disabled||!!o.value&&m.value||!o.value&&E.value,onChange:f},null,40,kl)]),o.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.recordDataset),1),e.createElementVNode("input",{value:o.value.dataset,list:`${p}-datasets`,onChange:v[0]||(v[0]=h=>y(h).trim()&&S({dataset:y(h).trim()}))},null,40,El)]),e.createElementVNode("datalist",{id:`${p}-datasets`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h,value:h},null,8,Nl))),128))],8,Sl),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.recordRowKey),1),e.createElementVNode("input",{value:o.value.rowKey??"",list:p,onChange:k},null,40,Vl)]),e.createElementVNode("datalist",{id:p},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h.field,value:h.field},e.toDisplayString(h.label),9,wl))),128))]),e.createElementVNode("div",Cl,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.labelCopies),1),e.createElementVNode("select",{value:N.value,onChange:g},[e.createElementVNode("option",Bl,e.toDisplayString(n.value.fixedCopies),1),e.createElementVNode("option",Dl,e.toDisplayString(n.value.fieldCopies),1)],40,xl)]),N.value==="fixed"?(e.openBlock(),e.createElementBlock("label",Ml,[e.createTextVNode(e.toDisplayString(n.value.copiesPerRecord),1),e.createElementVNode("input",{type:"number",min:"1",max:"1000",step:"1",value:o.value.copies??1,onChange:v[1]||(v[1]=h=>y(h).trim()&&S({copies:Number(y(h))}))},null,40,$l)])):(e.openBlock(),e.createElementBlock("label",Tl,[e.createTextVNode(e.toDisplayString(n.value.copiesField),1),e.createElementVNode("input",{value:typeof o.value.copies=="object"?o.value.copies.field:"",list:p,onChange:v[2]||(v[2]=h=>y(h).trim()&&S({copies:{field:y(h).trim()}}))},null,40,_l)]))]),e.createElementVNode("p",Il,e.toDisplayString(m.value?n.value.repeatBoundHint:n.value.repeatOrderHint),1)],64)):e.createCommentVNode("",!0)],8,yl))}}),Ll=Y._export_sfc(Rl,[["__scopeId","data-v-de1ee031"]]),bt={outline:"结构大纲",search:"搜索版面、组件、字段或引用",noMatches:"没有匹配的结构项",more:"显示更多",usages:"引用位置",all:"全部结构",count:"项",page:"版面",component:"组件",field:"字段",calculation:"计算",binding:"绑定",reuse:"片段与样式",fragments:"可复用片段",styles:"内容样式",insert:"插入独立副本",update:"显式更新此片段",noFragments:"尚未配置片段库。可从当前组件保存会话片段,或通过 fragments 接入共享片段。",capture:"保存当前组件为片段",fragmentName:"片段名称",role:"样式角色",apply:"应用到当前组件",copy:"复制当前样式",paste:"粘贴样式",bindings:"重新绑定字段",dataset:"数据集",target:"目标字段",preserve:"副本独立保存;共享片段更新后不会改变已有模板。",select:"选择一个目标组件后应用样式",revision:"修订",instance:"已插入修订",newRevision:"存在可显式应用的新修订",noStyles:"使用内置内容样式,或通过 documentStyles 配置品牌样式。",nameRequired:"请填写片段名称",styleText:"标题",styleHeading:"表头",styleBody:"正文",styleNumber:"数值",styleNote:"说明",rename:"确认字段映射变化",renameHint:"以下位置仍引用原字段。继续仅修改当前列的映射,不会改写计算或业务字段。",continue:"确认更换映射",cancel:"取消",locate:"定位"},Pl=["aria-label"],Al=["onClick"],Fl=["disabled"],Hl=["disabled"],Ol=e.defineComponent({__name:"TemplateFieldImpactPanel",props:{change:{},messages:{},disabled:{type:Boolean}},emits:["confirm","cancel","locate"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...bt,...a.messages}));return(o,c)=>t.change?(e.openBlock(),e.createElementBlock("section",{key:0,class:"mr-impact",role:"alertdialog","aria-label":n.value.rename},[e.createElementVNode("strong",null,e.toDisplayString(n.value.rename),1),e.createElementVNode("code",null,e.toDisplayString(t.change.before)+" → "+e.toDisplayString(t.change.after),1),e.createElementVNode("p",null,e.toDisplayString(n.value.renameHint),1),e.createElementVNode("ol",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.change.references.slice(0,100),d=>(e.openBlock(),e.createElementBlock("li",{key:d.path},[e.createElementVNode("button",{type:"button",onClick:m=>l("locate",d)},e.toDisplayString(n.value.locate)+" · "+e.toDisplayString(d.path),9,Al)]))),128))]),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:t.disabled,onClick:c[0]||(c[0]=d=>l("cancel"))},e.toDisplayString(n.value.cancel),9,Fl),e.createElementVNode("button",{type:"button",disabled:t.disabled,onClick:c[1]||(c[1]=d=>l("confirm"))},e.toDisplayString(n.value.continue),9,Hl)])],8,Pl)):e.createCommentVNode("",!0)}}),Gl=Y._export_sfc(Ol,[["__scopeId","data-v-0813913f"]]),kt={available:"发现未保存草稿",restore:"恢复草稿",discard:"放弃草稿",stale:"草稿基线已变化,恢复后须核对最新版本再保存。",localOnly:"仅保存模板、JSON 与工具配置,不保存业务数据或 Excel 文件。",autosaved:"草稿已暂存",saving:"暂存中",storageError:"草稿暂存失败",conflict:"模板版本已变化",conflictHint:"本地修改已保留。核对差异后选择处理方式,不会自动合并或覆盖。",baseline:"共同基线",local:"本地修改",remote:"远端修改",changes:"处差异",path:"位置",before:"原值",after:"新值",empty:"没有差异",loadLatest:"读取最新版本",adopt:"采用最新版本",rebase:"保留本地内容,以最新版本为基线",confirm:"确认更新基线",confirmHint:"此操作保留完整本地内容,不合并远端改动;下次保存将以最新修订号校验。",keepCopy:"保留独立副本",copied:"副本已保留",revision:"修订",unknown:"未发布",close:"收起差异",review:"核对版本冲突",toolsNeedSource:"Excel 映射配置已恢复,请重新选择原文件后核对。"},zl={key:0,class:"mr-recovery-banner",role:"status"},jl={key:0},Ul={class:"mr-recovery-actions"},ql=["disabled"],Wl={key:1,class:"mr-recovery-banner is-error",role:"alert"},Jl={class:"mr-recovery-actions"},Kl={key:2,class:"mr-recovery-status",role:"status"},Yl={key:3,class:"mr-recovery-conflict",open:""},Xl={class:"mr-recovery-columns"},Zl={key:0},Ql={key:1},er={key:0,role:"alert"},tr={key:1,role:"status"},nr={class:"mr-recovery-actions"},ar=["disabled"],or=["disabled"],lr=["disabled"],rr=["disabled"],ir={key:2,class:"mr-recovery-confirm"},sr=["disabled"],cr=e.defineComponent({__name:"TemplateRecoveryPanel",props:{recovery:{},conflict:{},readonly:{type:Boolean},messages:{},canLoad:{type:Boolean},canCopy:{type:Boolean}},setup(t){const r=t,a=e.computed(()=>({...kt,...r.messages}));return(l,n)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.recovery.available.value?(e.openBlock(),e.createElementBlock("div",zl,[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(a.value.available),1),e.createElementVNode("small",null,e.toDisplayString(t.recovery.available.value.savedAt)+" · "+e.toDisplayString(a.value.revision)+" "+e.toDisplayString(t.recovery.available.value.baseline.revision||a.value.unknown),1),t.recovery.stale.value?(e.openBlock(),e.createElementBlock("p",jl,e.toDisplayString(a.value.stale),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ul,[e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:n[0]||(n[0]=(...o)=>t.recovery.restore&&t.recovery.restore(...o))},e.toDisplayString(a.value.restore),9,ql),e.createElementVNode("button",{type:"button",onClick:n[1]||(n[1]=(...o)=>t.recovery.discard&&t.recovery.discard(...o))},e.toDisplayString(a.value.discard),1)])])):e.createCommentVNode("",!0),t.recovery.error.value?(e.openBlock(),e.createElementBlock("div",Wl,[e.createElementVNode("span",null,e.toDisplayString(a.value.storageError)+":"+e.toDisplayString(t.recovery.error.value),1),e.createElementVNode("div",Jl,[e.createElementVNode("button",{type:"button",onClick:n[2]||(n[2]=(...o)=>t.recovery.discard&&t.recovery.discard(...o))},e.toDisplayString(a.value.discard),1)])])):t.recovery.status.value!=="idle"?(e.openBlock(),e.createElementBlock("small",Kl,e.toDisplayString(t.recovery.status.value==="saving"?a.value.saving:a.value.autosaved),1)):e.createCommentVNode("",!0),t.conflict.active.value?(e.openBlock(),e.createElementBlock("details",Yl,[e.createElementVNode("summary",null,e.toDisplayString(a.value.conflict),1),e.createElementVNode("p",null,e.toDisplayString(a.value.conflictHint),1),e.createElementVNode("div",Xl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList([t.conflict.localChanges.value,t.conflict.remoteChanges.value],(o,c)=>(e.openBlock(),e.createElementBlock("section",{key:c},[e.createElementVNode("h4",null,[e.createTextVNode(e.toDisplayString(c?a.value.remote:a.value.local)+" ",1),e.createElementVNode("small",null,e.toDisplayString(o?.totalChanges??"—")+" "+e.toDisplayString(a.value.changes),1)]),o?.changes.length?(e.openBlock(),e.createElementBlock("table",Zl,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,e.toDisplayString(a.value.path),1),e.createElementVNode("th",null,e.toDisplayString(a.value.before),1),e.createElementVNode("th",null,e.toDisplayString(a.value.after),1)])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.changes,d=>(e.openBlock(),e.createElementBlock("tr",{key:`${d.kind}:${d.path}`},[e.createElementVNode("th",null,e.toDisplayString(d.path),1),e.createElementVNode("td",null,e.toDisplayString(d.before??"—"),1),e.createElementVNode("td",null,e.toDisplayString(d.after??"—"),1)]))),128))])])):(e.openBlock(),e.createElementBlock("p",Ql,e.toDisplayString(a.value.empty),1))]))),128))]),t.conflict.error.value?(e.openBlock(),e.createElementBlock("p",er,e.toDisplayString(t.conflict.error.value),1)):e.createCommentVNode("",!0),t.conflict.copied.value?(e.openBlock(),e.createElementBlock("p",tr,e.toDisplayString(a.value.copied),1)):e.createCommentVNode("",!0),e.createElementVNode("div",nr,[t.canLoad?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.conflict.busy.value,onClick:n[3]||(n[3]=(...o)=>t.conflict.load&&t.conflict.load(...o))},e.toDisplayString(a.value.loadLatest),9,ar)):e.createCommentVNode("",!0),t.canCopy?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:t.readonly||t.conflict.busy.value,onClick:n[4]||(n[4]=(...o)=>t.conflict.keepCopy&&t.conflict.keepCopy(...o))},e.toDisplayString(a.value.keepCopy),9,or)):e.createCommentVNode("",!0),t.conflict.latest.value?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",disabled:t.readonly||t.conflict.busy.value,onClick:n[5]||(n[5]=(...o)=>t.conflict.adoptLatest&&t.conflict.adoptLatest(...o))},e.toDisplayString(a.value.adopt),9,lr)):e.createCommentVNode("",!0),t.conflict.latest.value?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",disabled:t.readonly||t.conflict.busy.value,onClick:n[6]||(n[6]=(...o)=>t.conflict.toggleRebase&&t.conflict.toggleRebase(...o))},e.toDisplayString(a.value.rebase),9,rr)):e.createCommentVNode("",!0)]),t.conflict.confirmRebase.value?(e.openBlock(),e.createElementBlock("div",ir,[e.createElementVNode("p",null,e.toDisplayString(a.value.confirmHint),1),e.createElementVNode("button",{type:"button",disabled:t.readonly||t.conflict.busy.value,onClick:n[7]||(n[7]=(...o)=>t.conflict.rebase&&t.conflict.rebase(...o))},e.toDisplayString(a.value.confirm),9,sr)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64))}}),dr=Y._export_sfc(cr,[["__scopeId","data-v-f02f2a53"]]),ur={class:"mr-header-editor"},mr=["disabled"],pr=["value"],vr=["value"],fr=["value"],gr=["disabled"],hr=e.defineComponent({__name:"HeaderStructureEditor",props:{list:{},disabled:{type:Boolean},messages:{}},emits:["command"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...ue,...a.messages})),o=e.ref(0),c=e.ref(0),d=e.ref(Math.min(1,a.list.columns.length-1));return e.watch(()=>a.list.columns.length,m=>{c.value=Math.min(c.value,m-1),d.value=Math.min(d.value,m-1)}),(m,E)=>(e.openBlock(),e.createElementBlock("details",ur,[e.createElementVNode("summary",null,[e.createTextVNode(e.toDisplayString(n.value.headerStructure),1),e.createElementVNode("span",null,e.toDisplayString(t.list.headerGrid?.cells.length??1)+" "+e.toDisplayString(n.value.headerRow),1)]),e.createElementVNode("fieldset",{disabled:t.disabled},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerRow),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":E[0]||(E[0]=N=>o.value=N)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.headerGrid?.cells.length??1,N=>(e.openBlock(),e.createElementBlock("option",{key:N,value:N-1},e.toDisplayString(N),9,pr))),128))],512),[[e.vModelSelect,o.value,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerFirst),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":E[1]||(E[1]=N=>c.value=N)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,(N,p)=>(e.openBlock(),e.createElementBlock("option",{key:p,value:p},e.toDisplayString(p+1)+" · "+e.toDisplayString(N.header),9,vr))),128))],512),[[e.vModelSelect,c.value,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerLast),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":E[2]||(E[2]=N=>d.value=N)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,(N,p)=>(e.openBlock(),e.createElementBlock("option",{key:p,value:p},e.toDisplayString(p+1)+" · "+e.toDisplayString(N.header),9,fr))),128))],512),[[e.vModelSelect,d.value,void 0,{number:!0}]])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:E[3]||(E[3]=N=>l("command",{action:"add",row:o.value,first:c.value,last:d.value}))},e.toDisplayString(n.value.addHeaderRow),1),e.createElementVNode("button",{type:"button",disabled:c.value>=d.value,onClick:E[4]||(E[4]=N=>l("command",{action:"merge",row:o.value,first:c.value,last:d.value}))},e.toDisplayString(n.value.mergeHeader),9,gr),e.createElementVNode("button",{type:"button",onClick:E[5]||(E[5]=N=>l("command",{action:"split",row:o.value,first:c.value,last:d.value}))},e.toDisplayString(n.value.splitHeader),1)])],8,mr)]))}}),yr=Y._export_sfc(hr,[["__scopeId","data-v-acd607ef"]]);function br(t,r,a,l){const{lists:n,selected:o,jsonPending:c,saving:d,blocked:m,validation:E,pendingLocalChanges:N,messages:p}=t,{section:y}=a,{mode:S,tool:f,canvasPage:k,setMode:g,chooseCanvas:i,locateReview:v}=r,{id:h}=l,x=e.computed(()=>[...n.value.length?["fields"]:[],"component","template","tools","advanced"]),V=e.ref(new Set(["outline","reuse"])),C=e.computed(()=>y.value==="tools"&&V.value.has(f.value));function w(D){C.value?S.value=D:g(D)}e.watch([y,f],()=>{C.value&&(S.value="design")});function B(){const D=new Set(V.value);D.has(f.value)?D.delete(f.value):D.add(f.value),V.value=D,D.has(f.value)&&(S.value="design")}function T(D){const I=Number(D.target.value);Number.isInteger(I)&&I>=0&&z({pageIndex:k.value,componentIndex:I})}function A(){y.value="tools",f.value="excel"}const G=e.computed(()=>{const D=["excel","rules","params"].filter(I=>t.pendingTools.value.includes(I)).map(I=>({target:I,label:p.value[`${I}Tool`]}));return c.value&&D.push({target:"json",label:p.value.json}),D}),Z=e.computed(()=>d.value?p.value.saving:l.readonly()?p.value.saveReadonly:m.value?p.value.saveConfirmation:G.value.length?G.value.map(D=>`${D.label} · ${p.value.unapplied}`).join(";"):E.value.ok?N.value?"":p.value.saveUnchanged:p.value.saveInvalid);async function R(D){D==="json"?y.value="advanced":(y.value="tools",f.value=D),await e.nextTick();const I=D==="json"?`#${h}-panel-advanced textarea`:`#${h}-tool-${D}`;document.querySelector(I)?.focus({preventScroll:!0})}const s=e.computed(()=>d.value?p.value.saving:l.readonly()?p.value.readonly:N.value?p.value.dirty:p.value.ready);let O=0;async function z(D){const I=++O,H=y.value==="tools",j=n.value.findIndex(U=>U.pageIndex===D.pageIndex&&U.componentIndex===D.componentIndex);j>=0&&j!==o.value&&t.isToolPending("rules")&&!await t.guardChanges()||I===O&&(i(D),H&&(y.value="tools"))}async function $(D){const I=++O,H=y.value==="tools"&&f.value==="outline",j=/\.pages\[(\d+)\]\.components\[(\d+)\]/.exec(D.path??""),U=D.pageIndex??(j?Number(j[1]):void 0),ae=D.componentIndex??(j?Number(j[2]):void 0),te=n.value.findIndex(ne=>ne.pageIndex===U&&ne.componentIndex===ae);te>=0&&te!==o.value&&t.isToolPending("rules")&&!await t.guardChanges()||I===O&&(v(D),H&&(y.value="tools"))}async function _(D){const I=++O,H=D.target,j=Number(H.value);if(t.isToolPending("rules")&&!await t.guardChanges()){H.value=String(o.value);return}I===O&&(o.value=j)}async function M(D){if(D.isComposing||D.keyCode===229)return;const H={ArrowRight:1,ArrowLeft:-1,Home:-x.value.length,End:x.value.length}[D.key];if(H===void 0)return;D.preventDefault();const j=x.value.indexOf(y.value),U=D.key==="Home"?0:D.key==="End"?x.value.length-1:(j+H+x.value.length)%x.value.length;y.value=x.value[U];const ae=D.currentTarget.parentElement;await e.nextTick(),ae?.querySelector(`#${h}-tab-${y.value}`)?.focus()}return{sections:x,toolPreview:C,setMode:w,toggleToolPreview:B,chooseToolComponent:T,openBinding:A,pendingConfigurations:G,saveReason:Z,openPending:R,headingStatus:s,chooseCanvas:z,locateReview:$,chooseRuleList:_,navigateSection:M}}const fe=t=>`${t.pageIndex}:${t.componentIndex}`;function kr(t,r,a){const l=e.ref([]),n=e.ref(new Set);e.watch(()=>t.value.id,()=>{l.value=[],n.value=new Set});const o=y=>!!y&&n.value.has(fe(y));function c(y){const S={pageIndex:y.pageIndex,componentIndex:y.componentIndex};if(y.additive&&l.value.every(f=>f.pageIndex===y.pageIndex)){const f=l.value.some(k=>fe(k)===fe(y));l.value=f?l.value.filter(k=>fe(k)!==fe(y)):[...l.value,S],r.value=f?l.value.at(-1):S}else l.value=[S],r.value=S}const d=e.computed(()=>l.value.filter(y=>!o(y)));function m(){const y=new Set(n.value),S=l.value.every(o);for(const f of l.value)S?y.delete(fe(f)):y.add(fe(f));n.value=y}function E(y){d.value.length<2||a(S=>{const f=d.value.map(x=>ye(S,x)).filter(Boolean),k=f.map(re),g=Math.min(...k.map(x=>x.leftMm)),i=Math.min(...k.map(x=>x.topMm)),v=Math.max(...k.map(x=>x.leftMm+x.widthMm)),h=Math.max(...k.map(x=>x.topMm+x.heightMm));f.forEach((x,V)=>{const C=k[V],w={left:g,center:(g+v-C.widthMm)/2,right:v-C.widthMm},B={top:i,middle:(i+h-C.heightMm)/2,bottom:h-C.heightMm};y in w?C.leftMm=w[y]:C.topMm=B[y],Ne(x,C)})})}function N(y){d.value.length<3||a(S=>{const f=y==="horizontal"?"leftMm":"topMm",k=y==="horizontal"?"widthMm":"heightMm",g=d.value.map(V=>({component:ye(S,V),box:re(ye(S,V))})).sort((V,C)=>V.box[f]-C.box[f]),i=g[0].box[f],h=(Math.max(...g.map(V=>V.box[f]+V.box[k]))-i-g.reduce((V,C)=>V+C.box[k],0))/(g.length-1);let x=i;for(const V of g)V.box[f]=x,Ne(V.component,V.box),x+=V.box[k]+h})}function p(y,S,f){function k(g){if(g.pageIndex!==y)return g;const i=g.componentIndex;return f===void 0?i===S?void 0:{...g,componentIndex:i>S?i-1:i}:{...g,componentIndex:i===S?f:i===f?S:i}}n.value=new Set([...n.value].flatMap(g=>{const[i,v]=g.split(":").map(Number),h=k({pageIndex:i,componentIndex:v});return h?[fe(h)]:[]})),l.value=l.value.flatMap(g=>{const i=k(g);return i?[i]:[]})}return{clearLocks:()=>{n.value=new Set},selections:l,locked:o,allLocked:e.computed(()=>!!l.value.length&&l.value.every(o)),toggleLock:m,align:E,distribute:N,select:c,remap:p}}function Er(t,r){const a=e.ref("preview"),l=e.ref(),n=e.ref(0),o=e.computed(()=>!!t.value.template.pages[l.value?.pageIndex??n.value]?.flow),c=kr(t,l,g=>o.value?!1:r(g)),d=e.computed(()=>ye(t.value,l.value));e.watch(n,g=>{l.value?.pageIndex!==g&&(l.value=void 0,c.selections.value=[])}),e.watch(t,()=>{d.value||(l.value=void 0),c.selections.value=c.selections.value.filter(g=>!!ye(t.value,g)),t.value.template.pages[n.value]||(n.value=0)});function m(g){c.select(g),n.value=g.pageIndex}function E(g){const i=l.value;return!i||c.locked(i)?!1:r(v=>{const h=ye(v,i);h&&g(h,v)})}function N(g){o.value||E((i,v)=>{const h=v.template.pages[l.value.pageIndex];Ne(i,Re(g,h,i.kind==="list"))})}function p(g){y(Ot(g))}function y(g){if(t.value.template.pages[n.value]?.flow||g.kind==="list"&&t.value.template.repeat)return!1;let i=-1;const v=n.value,h=r(x=>{const V=x.template.pages[v].components;V.push(g),i=V.length-1;const C=L.parseReportTemplate(x).template.pages[v].components[i];Ne(C,Re(re(C),x.template.pages[v],C.kind==="list")),C.kind==="qrcode"&&(C.widthMm=C.heightMm=Math.min(C.widthMm,C.heightMm)),V[i]=C});return h&&m({pageIndex:v,componentIndex:i}),h}function S(){if(o.value)return;const g=l.value;g&&!c.locked(g)&&r(i=>{i.template.pages[g.pageIndex].components.splice(g.componentIndex,1)})&&(c.remap(g.pageIndex,g.componentIndex),l.value=void 0)}function f(){if(o.value)return;const g=l.value;if(!g)return;let i=-1;r(v=>{const h=v.template.pages[g.pageIndex],x=JSON.parse(JSON.stringify(ye(v,g))),V=re(x);V.leftMm+=4,V.topMm+=4,Ne(x,Re(V,h,x.kind==="list")),x.kind==="list"?delete x.id:(delete x.nid,delete x.rkey),h.components.push(x),i=h.components.length-1})&&m({pageIndex:g.pageIndex,componentIndex:i})}function k(g){if(o.value)return;const i=l.value;if(!i||c.locked(i))return;const v=i.componentIndex+g;t.value.template.pages[i.pageIndex]?.components[v]&&r(h=>{const x=h.template.pages[i.pageIndex].components;x.splice(v,0,x.splice(i.componentIndex,1)[0])})&&(c.remap(i.pageIndex,i.componentIndex,v),m({pageIndex:i.pageIndex,componentIndex:v}))}return{...c,mode:a,selection:l,pageIndex:n,active:d,geometryDisabled:o,select:m,mutate:E,geometry:N,insert:p,insertComponent:y,remove:S,duplicate:f,reorder:k}}function Sr(t,r,a){const{draft:l,lists:n,selected:o,activeList:c,blocked:d,jsonPending:m,error:E}=t,{section:N,activeIndex:p}=r,y=Er(l,t.transaction),{mode:S,selection:f,pageIndex:k,active:g}=y;t.connectHistoryView({read:()=>({pageIndex:k.value,componentIndex:f.value?.pageIndex===k.value?f.value.componentIndex:void 0}),restore:R=>{k.value=Math.max(0,Math.min(l.value.template.pages.length-1,R.pageIndex)),y.selection.value=void 0,y.selections.value=[],R.componentIndex!==void 0&&l.value.template.pages[k.value]?.components[R.componentIndex]&&y.select({pageIndex:k.value,componentIndex:R.componentIndex})}}),e.watch(t.historyViewRevision,()=>t.captureHistoryView(),{flush:"post"});const i=e.ref("excel"),v=e.ref(new Set);e.watch([N,i],()=>{N.value==="tools"&&(v.value=new Set([...v.value,i.value]))}),e.watch(f,R=>{if(!R)return;const s=n.value.findIndex(O=>O.pageIndex===R.pageIndex&&O.componentIndex===R.componentIndex);s>=0&&(o.value=s)}),e.watch([p,o,S,N],()=>{if(S.value!=="design"||N.value!=="fields")return;const R=n.value[o.value];R&&(f.value?.pageIndex!==R.pageIndex||f.value.componentIndex!==R.componentIndex)&&y.select({pageIndex:R.pageIndex,componentIndex:R.componentIndex})});const h=e.computed(()=>t.editingReadonly.value||d.value||m.value),x=e.computed(()=>a()?.[c.value?.dataset??""]);function V(R){S.value=R,N.value==="tools"&&(N.value=R==="design"||!n.value.length?"component":"fields")}function C(R){if(!l.value.template.pages[R.pageIndex]?.components[R.componentIndex])return;if(y.select(R),l.value.template.pages[R.pageIndex]?.components[R.componentIndex]?.kind==="list"){const O=n.value.findIndex(z=>z.pageIndex===R.pageIndex&&z.componentIndex===R.componentIndex);O>=0&&(o.value=O),N.value="fields"}else N.value="component"}function w(R){const s=R.target;s.value&&(y.insert(s.value),S.value="design",N.value="component",s.value="")}function B(R){l.value.template.pages[k.value]?.flow&&["leftMm","topMm","widthMm","heightMm","pageAnchor","grid"].some(s=>s in R)||y.mutate((s,O)=>{if(s.kind!=="list"&&R.pageAnchor!==s.pageAnchor){const $=O.template.pages[f.value.pageIndex];R.pageAnchor==="header"&&(s.topMm=$.marginTopMm??0),R.pageAnchor==="footer"&&(s.topMm=Math.max(0,$.heightMm-($.marginBottomMm??0)-s.heightMm))}const z=s;for(const[$,_]of Object.entries(R))_===void 0?delete z[$]:z[$]=_})}function T(R){const s=n.value[o.value];s&&t.transaction(O=>{O.template.pages[s.pageIndex].components[s.componentIndex]=R})}function A(R){const s=c.value;if(!s||l.value.template.pages[n.value[o.value]?.pageIndex??-1]?.flow)return;const O=JSON.parse(JSON.stringify(s));try{Gt(O,p.value,p.value+R)&&(T(O),r.activate(p.value+R))}catch(z){E.value=z instanceof Error?z.message:String(z)}}function G(R){const s=n.value[o.value];!s||l.value.template.pages[s.pageIndex]?.flow||t.transaction(O=>{const z=O.template.pages[s.pageIndex].components[s.componentIndex];z?.kind==="list"&&(R.action==="add"?zt(z):R.action==="merge"?jt(z,R.row,R.first,R.last):Ut(z,R.row,R.first))})}function Z(R){const s=/\.pages\[(\d+)\]\.components\[(\d+)\]/.exec(R.path??""),O=R.pageIndex??(s?Number(s[1]):void 0),z=R.componentIndex??(s?Number(s[2]):void 0);if(O!==void 0){if(z===void 0){k.value=O,N.value="template",S.value="design";return}if(S.value="design",C({pageIndex:O,componentIndex:z}),R.field){const $=c.value?.columns.findIndex(_=>_.field===R.field);$!==void 0&&$>=0&&r.activate($)}}}return{mode:S,setMode:V,canvasSelection:f,canvasPage:k,canvasActive:g,tool:i,visitedTools:v,editDisabled:h,dataSchema:x,chooseCanvas:C,insertComponent:w,patchCanvas:B,changeList:T,moveColumn:A,headerCommand:G,locateReview:Z,canvas:y}}const Et={title:"数据可视化",enabled:"启用列可视化",kind:"呈现方式",colorScale:"色阶",dataBar:"数据条",measure:"度量字段",ownField:"当前列",numeric:"度量类型",number:"真实数字",decimal:"小数文本(显式转换)",autoDomain:"自动统计范围",minimum:"最小值",maximum:"最大值",lowColor:"低值颜色",highColor:"高值颜色",color:"正值颜色",negativeColor:"负值颜色",invalid:"请检查范围与颜色;最小值不能大于最大值。",hint:"保留原始数据与编辑能力。空值不绘制,零值按真实零处理;统计范围来自当前明细。",snapshot:"Excel 数据条为静态视觉快照,修改 Excel 后不会重算。"},Nr={class:"mr-column-visual-disclosure"},Vr={key:0,class:"mr-column-visual-badge"},wr={class:"mr-column-visual"},Cr={class:"mr-column-visual__toggle"},xr=["disabled"],Br={key:0,class:"mr-column-visual__grid"},Dr=["disabled"],Mr={value:"colorScale"},$r={value:"dataBar"},Tr=["disabled"],_r={value:""},Ir=["value"],Rr=["disabled"],Lr={value:"number"},Pr={value:"decimal"},Ar=["placeholder","disabled","aria-invalid"],Fr=["placeholder","disabled","aria-invalid"],Hr=["disabled"],Or=["disabled"],Gr=["disabled"],zr=["disabled"],jr={key:1,role:"status",class:"is-error"},Ur={key:2},qr={key:0},Wr=e.defineComponent({__name:"ColumnVisualEditor",props:{modelValue:{},fields:{},readonly:{type:Boolean},messages:{}},emits:["update:modelValue"],setup(t,{emit:r}){const a=t,l=r,n=e.computed(()=>({...Et,...a.messages})),o=e.ref(!!a.modelValue),c=e.ref("colorScale"),d=e.ref(""),m=e.ref("number"),E=e.ref(""),N=e.ref(""),p=e.ref("#bad8fa"),y=e.ref("#f3bcc3"),S=e.ref("#f0f7ff"),f=e.ref("#8bbcf1");let k="";function g(){const h=a.modelValue;o.value=!!h,c.value=h?.kind??"colorScale",d.value=h?.field??"",m.value=h?.numeric??"number",E.value=h?.min===void 0?"":String(h.min),N.value=h?.max===void 0?"":String(h.max),h?.kind==="colorScale"&&(S.value=h.lowColor??"#f0f7ff",f.value=h.highColor??"#8bbcf1"),h?.kind==="dataBar"&&(p.value=h.color??"#bad8fa",y.value=h.negativeColor??"#f3bcc3")}g();const i=e.computed(()=>({...d.value?{field:d.value}:{},numeric:m.value,...E.value===""?{}:{min:Number(E.value)},...N.value===""?{}:{max:Number(N.value)},...c.value==="colorScale"?{kind:"colorScale",lowColor:S.value,highColor:f.value}:{kind:"dataBar",color:p.value,negativeColor:y.value}})),v=e.computed(()=>o.value&&!ft.validColumnVisual(i.value));return e.watch(()=>JSON.stringify(a.modelValue),h=>{h!==k&&g()}),e.watch([o,i],()=>{if(a.readonly)return;const h=o.value?i.value:void 0;k=JSON.stringify(h),l("update:modelValue",h)},{flush:"post"}),(h,x)=>(e.openBlock(),e.createElementBlock("details",Nr,[e.createElementVNode("summary",null,[e.createTextVNode(e.toDisplayString(n.value.title),1),o.value?(e.openBlock(),e.createElementBlock("span",Vr,e.toDisplayString(c.value==="colorScale"?n.value.colorScale:n.value.dataBar),1)):e.createCommentVNode("",!0)]),e.createElementVNode("fieldset",wr,[e.createElementVNode("legend",null,e.toDisplayString(n.value.title),1),e.createElementVNode("label",Cr,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":x[0]||(x[0]=V=>o.value=V),type:"checkbox",disabled:t.readonly},null,8,xr),[[e.vModelCheckbox,o.value]]),e.createTextVNode(e.toDisplayString(n.value.enabled),1)]),o.value?(e.openBlock(),e.createElementBlock("div",Br,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.kind),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":x[1]||(x[1]=V=>c.value=V),disabled:t.readonly},[e.createElementVNode("option",Mr,e.toDisplayString(n.value.colorScale),1),e.createElementVNode("option",$r,e.toDisplayString(n.value.dataBar),1)],8,Dr),[[e.vModelSelect,c.value]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.measure),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":x[2]||(x[2]=V=>d.value=V),disabled:t.readonly},[e.createElementVNode("option",_r,e.toDisplayString(n.value.ownField),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields??[],V=>(e.openBlock(),e.createElementBlock("option",{key:V.field,value:V.field},e.toDisplayString(V.label??V.field),9,Ir))),128))],8,Tr),[[e.vModelSelect,d.value]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.numeric),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":x[3]||(x[3]=V=>m.value=V),disabled:t.readonly},[e.createElementVNode("option",Lr,e.toDisplayString(n.value.number),1),e.createElementVNode("option",Pr,e.toDisplayString(n.value.decimal),1)],8,Rr),[[e.vModelSelect,m.value]])]),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["min","max"],V=>e.createElementVNode("label",{key:V},[e.createTextVNode(e.toDisplayString(V==="min"?n.value.minimum:n.value.maximum),1),V==="min"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":x[4]||(x[4]=C=>E.value=C),type:"number",step:"any",placeholder:n.value.autoDomain,disabled:t.readonly,"aria-invalid":v.value||void 0},null,8,Ar)),[[e.vModelText,E.value]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":x[5]||(x[5]=C=>N.value=C),type:"number",step:"any",placeholder:n.value.autoDomain,disabled:t.readonly,"aria-invalid":v.value||void 0},null,8,Fr)),[[e.vModelText,N.value]])])),64)),c.value==="colorScale"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.lowColor),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":x[6]||(x[6]=V=>S.value=V),type:"color",disabled:t.readonly},null,8,Hr),[[e.vModelText,S.value]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.highColor),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":x[7]||(x[7]=V=>f.value=V),type:"color",disabled:t.readonly},null,8,Or),[[e.vModelText,f.value]])])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.color),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":x[8]||(x[8]=V=>p.value=V),type:"color",disabled:t.readonly},null,8,Gr),[[e.vModelText,p.value]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.negativeColor),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":x[9]||(x[9]=V=>y.value=V),type:"color",disabled:t.readonly},null,8,zr),[[e.vModelText,y.value]])])],64))])):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("small",jr,e.toDisplayString(n.value.invalid),1)):o.value?(e.openBlock(),e.createElementBlock("p",Ur,[e.createTextVNode(e.toDisplayString(n.value.hint),1),c.value==="dataBar"?(e.openBlock(),e.createElementBlock("span",qr,e.toDisplayString(n.value.snapshot),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])]))}}),St=Y._export_sfc(Wr,[["__scopeId","data-v-23b874d6"]]);function Jr(t,r,a){if(!t.length)return;const l=Math.max(0,t.indexOf(r)),o={ArrowDown:Math.min(l+1,t.length-1),ArrowUp:Math.max(l-1,0),Home:0,End:t.length-1}[a];return o===void 0?void 0:t[o]}function Kr(t,r,a){const l=e.ref(!1),n=e.ref(t.activeIndex.value),o=e.ref(null),c=e.ref(null),d=e.ref(null),m=e.ref(null),E=e.ref(0),N=100,p=e.computed(()=>a.value.slice(E.value,E.value+N));function y(){const w=Math.max(0,a.value.findIndex(B=>B.index===n.value));E.value=Math.floor(w/N)*N}async function S(w){const B=Math.max(0,Math.min(Math.max(0,a.value.length-1),E.value+w*N));n.value=a.value[B]?.index??-1,y(),await e.nextTick(),f(!0)}function f(w=!1){const B=m.value,T=B?.querySelector(`button[data-column-index="${n.value}"]`);if(!B||!T)return;w&&T.focus({preventScroll:!0});const A=B.getBoundingClientRect(),G=T.getBoundingClientRect(),Z=A.top+B.clientTop,R=Z+B.clientHeight;G.top<Z?B.scrollTop+=G.top-Z:G.bottom>R&&(B.scrollTop+=G.bottom-R)}async function k(w=!1){l.value&&(l.value=!1,w&&(await e.nextTick(),o.value?.focus({preventScroll:!0})))}async function g(){if(l.value)return k(!0);const w=a.value.map(B=>B.index);n.value=w.includes(t.activeIndex.value)?t.activeIndex.value:w[0]??-1,l.value=!0,y(),await e.nextTick(),d.value?.focus({preventScroll:!0}),f()}function i(w){t.activate(w),k(!0)}function v(w){!l.value||w.isComposing||w.keyCode===229||(w.preventDefault(),w.stopPropagation(),k(!0))}async function h(w){if(w.isComposing||w.keyCode===229)return;const B=Jr(a.value.map(T=>T.index),n.value,w.key);B!==void 0&&(n.value=B,y(),w.preventDefault(),await e.nextTick(),f(!0))}async function x(w){if(w.isComposing||w.keyCode===229||!["ArrowDown","ArrowUp","Enter"].includes(w.key))return;w.preventDefault(),w.stopPropagation();const B=a.value.map(T=>T.index);if(B.length){if(w.key==="Enter"){B.includes(n.value)&&i(n.value);return}w.key==="ArrowUp"&&(n.value=B.at(-1)),y(),await e.nextTick(),f(!0)}}function V(w){const B=w.target;!l.value||c.value?.contains(B)||o.value?.contains(B)||k()}function C(w){const B=w.relatedTarget;!B||c.value?.contains(B)||o.value?.contains(B)||k()}return e.watch(a,w=>{w.some(B=>B.index===n.value)||(n.value=w[0]?.index??-1),y()}),e.watch(r,()=>{k()}),e.onMounted(()=>document.addEventListener("pointerdown",V)),e.onBeforeUnmount(()=>document.removeEventListener("pointerdown",V)),{open:l,cursor:n,trigger:o,panel:c,search:d,list:m,windowColumns:p,windowStart:E,windowSize:N,stepWindow:S,toggle:g,close:k,choose:i,escape:v,navigate:h,searchKeydown:x,leave:C}}const Nt=Symbol("mach-report:tool-drafts");function Yr(t){const r=e.ref({}),a=e.ref(0),l={epoch:a,read:o=>r.value[o],write(o,c){const d={...r.value};c?d[o]=c:delete d[o],r.value=d;const m=o.split(":")[0];t(m,Object.keys(d).some(E=>E.split(":")[0]===m))}};e.provide(Nt,l);function n(o){r.value=JSON.parse(JSON.stringify(o));for(const c of["params","rules","excel"])t(c,Object.keys(o).some(d=>d.split(":")[0]===c));a.value++}return{records:r,restore:n,clear:()=>n({})}}function Xr(t){const r=e.inject(Nt,void 0);if(!r)return;let a=!1;const l=()=>{const o=r.read(t.key());if(o){a=!0;try{t.restore(o.value,o.baseline)}finally{a=!1}}};e.watch([t.key,()=>r.epoch.value],l,{immediate:!0,flush:"sync"});const n=e.watch([t.pending,t.snapshot],()=>{a||r.write(t.key(),t.pending()?{baseline:t.baseline(),value:t.snapshot()}:void 0)},{flush:"post"});e.onBeforeUnmount(n)}const Ye=new WeakMap;function Zr(t,r,a){let l=Ye.get(t);l||(l=new Map,Ye.set(t,l));const n=l.get(r);let o,c;const d=new Promise((S,f)=>{o=S,c=f}),m={run:a,resolve:o,reject:c};if(n)return n.latest?.resolve(),n.latest=m,d;let E;const N={done:new Promise(S=>{E=S}),finish:()=>E()};l.set(r,N);const p=()=>{const S=N.latest;N.latest=void 0,S?y(S):(l.delete(r),N.finish())},y=S=>{let f;try{f=S.run()}catch(k){S.reject(k),p();return}Promise.resolve(f).then(S.resolve,S.reject).then(p)};return y(m),d}async function Qr(t,r){await Ye.get(t)?.get(r)?.done}function ee(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function ge(t,r){return r.every(a=>typeof t[a]=="string")}function ie(t){return Array.isArray(t)&&t.length<=1e4}function Vt(t,r=0){return!ee(t)||r>16?!1:"op"in t?typeof t.op=="string"&&ie(t.args)&&t.args.every(a=>Vt(a,r+1)):"field"in t?typeof t.field=="string":"aggregate"in t?typeof t.aggregate=="string":"value"in t&&(t.value===null||["string","number","boolean"].includes(typeof t.value))}function dt(t){return ee(t)&&typeof t.field=="string"&&Vt(t.expression)}function we(t){return ie(t)&&t.every(r=>typeof r=="string")}function ei(t){return ee(t)&&we(t.rowFields)&&we(t.columnFields)&&ie(t.measures)&&t.measures.every(r=>ee(r)&&typeof r.op=="string")}function ut(t){return ee(t)&&ge(t,["sheet","dataset","rowKey"])&&we(t.fields)&&ee(t.regions)}function mt(t){return ee(t)&&typeof t.sheet=="string"&&ie(t.regions)&&t.regions.every(r=>ee(r)&&ge(r,["id","range","dataset","mode","rowKey"])&&we(r.fields))}function pt(t,r){return ie(t)&&t.every(a=>Array.isArray(a)&&a.length===2&&typeof a[0]=="string"&&r(a[1]))}function ti(t){return typeof t.initial=="string"&&Number.isSafeInteger(t.selected)&&ie(t.rows)&&t.rows.every(ni)}function ni(t){return ee(t)&&ge(t,["field","label","type","placeholder","defaultValue","min","max","minLength","maxLength"])&&typeof t.required=="boolean"&&typeof t.defaultEnabled=="boolean"&&(t.optionsMode===void 0||t.optionsMode==="static"||t.optionsMode==="remote")&&(t.optionsSource===void 0||typeof t.optionsSource=="string")&&(t.dependsOn===void 0||we(t.dependsOn))&&ie(t.options)&&t.options.every(r=>ee(r)&&ge(r,["label","value"]))}function ai(t){return dt(t.formula)&&ie(t.groups)&&t.groups.every(r=>ee(r)&&typeof r.field=="string")&&ee(t.when)&&ee(t.style)&&ge(t,["selectedComputed","column","conditionKey","effect","tab","formulaBaseline","groupBaseline","conditionBaseline"])&&Number.isSafeInteger(t.conditionIndex)&&pt(t.computedDrafts,dt)&&pt(t.conditionDrafts,r=>ee(r)&&ee(r.when)&&ee(r.style))}function oi(t){return typeof t.enabled=="boolean"&&typeof t.baseline=="string"&&ee(t.detail)&&ge(t.detail,["dataset","parentKey","foreignKey"])&&ie(t.detail.columns)&&t.detail.columns.every(r=>ee(r)&&ge(r,["field","header"]))&&ei(t.matrix)&&ee(t.tree)&&typeof t.tree.input=="string"}function li(t){return ut(t.recipe)&&mt(t.regions)&&ee(t.identity)&&ge(t.identity,["id","name"])&&ee(t.cached)&&ie(t.cached.table)&&t.cached.table.every(ut)&&ie(t.cached.regions)&&t.cached.regions.every(mt)&&(t.mode==="table"||t.mode==="regions")}function ri(t,r,a){const l=JSON.parse(r);if(!ee(l))throw new Error("Invalid stored tool draft");const n=t==="params"?ti(l):t==="excel"?li(l):t.split(":").length>3?oi(l):ai(l);if(t==="params"){const o=JSON.parse(a);if(!ie(o)||!o.every(c=>ee(c)&&typeof c.field=="string"))throw new Error("Invalid stored parameter baseline")}if(!n)throw new Error(`Invalid stored ${t.split(":")[0]} draft`)}function ii(t){return{read:r=>t.getItem(r),write:(r,a)=>t.setItem(r,a),remove:r=>t.removeItem(r)}}function si(t,r){if(!t.trim()||t.length>1024||r.length>1024)throw new Error("Draft scope and template identity must be bounded and non-empty");return`mach-report:draft:1:${JSON.stringify([t,r])}`}function ci(t){const r=t.maxBytes??2097152,a=t.debounceMs??400;if(!Number.isSafeInteger(r)||r<1024||r>16*1024*1024)throw new RangeError("Draft maxBytes must be between 1024 and 16777216");if(!Number.isSafeInteger(a)||a<0||a>1e4)throw new RangeError("Draft debounceMs must be between 0 and 10000");return{maxBytes:r,debounceMs:a}}function vt(t,r,a){if(t.length*2>a)throw new Error("Draft exceeds storage budget");const l=JSON.parse(t);if(l.version!==1||l.templateId!==r||typeof l.savedAt!="string"||!Number.isFinite(Date.parse(l.savedAt)))throw new Error("Invalid draft identity or version");for(const n of["json","appliedJson"])if(typeof l[n]!="string")throw new Error("Invalid draft JSON input");if(l.baseline=L.parseReportTemplate(l.baseline),l.document=L.parseReportTemplate(l.document),l.baseline.id!==r||l.document.id!==r||l.baseline.revision!==l.document.revision)throw new Error("Invalid draft baseline");if(!l.tools||typeof l.tools!="object"||Array.isArray(l.tools)||Object.keys(l.tools).length>100)throw new Error("Invalid tool drafts");for(const[n,o]of Object.entries(l.tools)){if(!/^(params|excel|rules:[0-9]+:[0-9]+(?::(?:detail|matrix|tree))?)$/.test(n)||!o||typeof o.baseline!="string"||typeof o.value!="string")throw new Error("Invalid tool draft");ri(n,o.value,o.baseline)}return l}function di(t){const r=e.ref(!1),a=e.shallowRef(),l=e.ref(""),n=e.ref("idle"),o=e.computed(()=>!!a.value&&L.serializeReportTemplate(a.value.baseline)!==t.baseline());let c,d=0,m=!1,E=!1,N=new AbortController,p=new AbortController,y=Promise.resolve(),S;function f(){clearTimeout(c),c=void 0,d++,N.abort(),p.abort(),N=new AbortController,p=new AbortController}function k(C,w){!m&&w===d&&(l.value=C instanceof Error?C.message:String(C))}async function g(){f();const C=d;r.value=!0,E=!1,a.value=void 0,l.value="",n.value="idle",S=void 0;try{const w=t.storage();if(!w)return;const B=t.id();if(S={storage:w,key:si(w.scope,B),...ci(w)},await Qr(w.adapter,S.key),C!==d||m)return;const T=await w.adapter.read(S.key,{signal:p.signal});if(C!==d||m||T===null)return;a.value=vt(T,B,S.maxBytes)}catch(w){C===d&&(E=!0),k(w,C)}finally{C===d&&!m&&(r.value=!1)}}function i(C){const w=S;if(!w)return;const B=d,T=N.signal;n.value="saving";const A=async()=>{T.aborted||(C===null?await w.storage.adapter.remove(w.key,{signal:T}):await w.storage.adapter.write(w.key,C,{signal:T}),!m&&B===d&&(n.value=C===null?"idle":"saved",l.value=""))};y=Zr(w.storage.adapter,w.key,A).catch(G=>k(G,B))}function v(){if(clearTimeout(c),c=void 0,!(!S||a.value))try{if(!t.pending()){E||i(null);return}const C=JSON.stringify(t.snapshot());vt(C,t.id(),S.maxBytes),i(C)}catch(C){k(C,d)}}function h(){clearTimeout(c),!(!S||a.value)&&(c=setTimeout(v,S.debounceMs))}async function x(){a.value=void 0,E=!1,i(null),await y,h()}function V(){if(a.value)try{t.restore(a.value),a.value=void 0,h()}catch(C){k(C,d)}}return e.watch([t.id,()=>t.storage()?.scope,()=>t.storage()?.adapter,()=>t.storage()?.maxBytes,()=>t.storage()?.debounceMs],()=>{g()},{immediate:!0}),e.watch([t.pending,t.changedSource],h,{deep:!0}),e.onMounted(()=>{globalThis.addEventListener?.("pagehide",v)}),e.onBeforeUnmount(()=>{globalThis.removeEventListener?.("pagehide",v),v(),m=!0,p.abort(),clearTimeout(c)}),{available:a,stale:o,error:l,status:n,checking:r,restore:V,discard:x,flush:v}}function ui(t){const r=e.ref(!1),a=e.shallowRef(),l=e.ref(!1),n=e.ref(""),o=e.ref(!1),c=e.ref(!1);let d=0,m;const E=e.computed(()=>L.diffReportTemplates(t.baseline(),t.local(),{maxChanges:100})),N=e.computed(()=>a.value?L.diffReportTemplates(t.baseline(),a.value,{maxChanges:100}):void 0);function p(){d++,m?.abort(),m=void 0,l.value=!1}function y(){p(),r.value=!1,a.value=void 0,n.value="",o.value=!1,c.value=!1}async function S(){const v=t.configuration().loadLatest;if(!v||l.value)return;p();const h=d,x=t.local().id;m=new AbortController,l.value=!0,n.value="";try{const V=L.parseReportTemplate(await v({id:x,signal:m.signal}));if(h!==d)return;if(V.id!==x)throw new Error("Latest template identity does not match");a.value=V}catch(V){h===d&&(n.value=V instanceof Error?V.message:String(V))}finally{h===d&&(l.value=!1)}}function f(v){y(),r.value=!0,v?a.value=L.parseReportTemplate(v):S()}async function k(){!a.value||l.value||await t.applyLatest(L.parseReportTemplate(a.value))&&y()}function g(){if(!(!a.value||l.value||!o.value))try{t.rebase(L.parseReportTemplate(a.value)),y()}catch(v){n.value=v instanceof Error?v.message:String(v)}}async function i(){const v=t.configuration().keepCopy;if(!v||l.value)return;p();const h=d,x=L.parseReportTemplate(t.local());m=new AbortController,l.value=!0,n.value="";try{await v(x,{id:x.id,sourceRevision:x.revision,signal:m.signal}),h===d&&(c.value=!0)}catch(V){h===d&&(n.value=V instanceof Error?V.message:String(V))}finally{h===d&&(l.value=!1)}}return e.onBeforeUnmount(p),{active:r,latest:a,busy:l,error:n,confirmRebase:o,copied:c,localChanges:E,remoteChanges:N,begin:f,clear:y,load:S,adoptLatest:k,rebase:g,keepCopy:i,toggleRebase:()=>{o.value=!o.value}}}function mi(t,r,a){r==="visual"&&a===void 0?delete t.visual:Object.assign(t,{[r]:r==="widthMm"?Number(a):a})}function pi(t,r,a,l){const n=e.ref(0),o=e.ref(""),c=e.ref([]),d=e.ref();e.watch(t,()=>{d.value=void 0},{flush:"sync"});const m=e.computed(()=>t.value.template.pages.flatMap((V,C)=>V.components.flatMap((w,B)=>w.kind==="list"?[{component:w,pageIndex:C,componentIndex:B}]:[]))),E=e.computed(()=>m.value[n.value]?.component),N=e.computed(()=>{const V=E.value;if(!V)return[];const C=V.columns.map(w=>w.headerStyle?.align??w.headerAlign??V.headerStyle?.align??V.headerAlign??w.style?.align??"center");if(V.headerGrid&&r())for(const w of L.resolveGridLayout(V.headerGrid,V.widthMm,100).cells)for(let B=w.ci;B<w.ci+(w.cell.colSpan??1);B++)C[B]=w.cell.style?.align??"left";return C}),p=e.computed(()=>{const V=o.value.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return(E.value?.columns??[]).flatMap((C,w)=>{const B=`${C.header} ${C.field}`.toLocaleLowerCase();return V.every(T=>B.includes(T))?[{column:C,index:w}]:[]})});function y(V,C){c.value=C?[...new Set([...c.value,V])]:c.value.filter(w=>w!==V)}function S(V){const C=new Set(c.value);for(const{index:w}of p.value)V?C.add(w):C.delete(w);c.value=[...C]}function f(){c.value=[]}function k(V,C,w){if(!a())return;const B=m.value[n.value];if((C==="widthMm"||C==="hidden")&&B&&t.value.template.pages[B.pageIndex]?.flow)return;const T=E.value?.columns[V];if(T){if(C==="field"&&w!==T.field){const A=E.value.dataset,G=`$.template.pages[${B.pageIndex}].components[${B.componentIndex}].columns[${V}].field`,Z=Tt.inspectTemplateFieldUsage(t.value.template,A,T.field).filter(R=>R.path!==G);if(Z.length){d.value={index:V,listIndex:n.value,before:T.field,after:String(w),references:Z};return}}C==="hidden"&&w===!0&&!E.value?.columns.some((A,G)=>G!==V&&!A.hidden)||(mi(T,C,w),C==="header"&&v(V,String(w)),C==="headerAlign"&&h(V,w),C==="widthMm"&&i(),l())}}function g(){const V=d.value;if(!V||!a())return;const C=m.value[V.listIndex]?.component.columns[V.index];d.value=void 0,!(!C||C.field!==V.before)&&(C.field=V.after,l())}function i(){const V=m.value[n.value];if(!V)return;const C=V.component,w=t.value.template.pages[V.pageIndex],B=C.columns.map(T=>T.widthMm);C.headerGrid&&(C.headerGrid.colWidthsMm=B),w.layout==="wide"&&B.every(T=>Number.isFinite(T)&&T>0)&&(C.widthMm=B.reduce((T,A)=>T+A,0),w.widthMm=Math.max(...w.components.map(T=>T.leftMm+T.widthMm))+(w.marginRightMm??0))}function v(V,C){const w=E.value;if(!w?.headerGrid)return;const T=L.resolveGridLayout(w.headerGrid,w.widthMm,100).cells.filter(({ci:A,cell:G})=>A<=V&&A+(G.colSpan??1)>V).slice(-1)[0];T&&(Object.assign(T.cell,{text:C,rawText:C,value:C}),w.columns.slice(T.ci,T.ci+(T.cell.colSpan??1)).forEach(A=>{A.header=C}))}function h(V,C){const w=E.value,B=w?.columns[V];if(B?.headerStyle?.align!==void 0&&(B.headerStyle={...B.headerStyle,align:C}),!w?.headerGrid)return;const A=L.resolveGridLayout(w.headerGrid,w.widthMm,100).cells.filter(({ci:G,cell:Z})=>G<=V&&G+(Z.colSpan??1)>V).slice(-1)[0];A&&(A.cell.style={...A.cell.style,align:C},w.columns.slice(A.ci,A.ci+(A.cell.colSpan??1)).forEach(G=>{G.headerAlign=C,G.headerStyle?.align!==void 0&&(G.headerStyle={...G.headerStyle,align:C})}))}function x(V,C){if(!(!a()||V==="headerAlign"&&C==="auto")){for(const w of c.value){const B=E.value?.columns[w];B&&(Object.assign(B,{[V]:C}),V==="headerAlign"&&h(w,C))}l()}}return{selected:n,query:o,selectedColumns:c,lists:m,activeList:E,headerAlignments:N,visibleColumns:p,toggleColumn:y,selectVisible:S,clearSelection:f,fieldChange:d,confirmFieldChange:g,cancelFieldChange:()=>{d.value=void 0},setColumn:k,alignColumns:x}}function Xe(t){return t.kind==="snapshot"?t.value.length*2:(t.removed.length+t.inserted.length)*2+16}function vi(t,r,a=!1){const l={kind:"snapshot",value:r};if(a)return l;let n=0;const o=Math.min(t.length,r.length);for(;n<o&&t.charCodeAt(n)===r.charCodeAt(n);)n++;let c=t.length,d=r.length;for(;c>n&&d>n&&t.charCodeAt(c-1)===r.charCodeAt(d-1);)c--,d--;const m={kind:"patch",start:n,removed:t.slice(n,c),inserted:r.slice(n,d)};return Xe(m)<Xe(l)?m:l}function Te(t,r,a=!1){if(r.kind==="snapshot")return r.value;const l=a?r.inserted:r.removed,n=a?r.removed:r.inserted;return t.slice(0,r.start)+n+t.slice(r.start+l.length)}const Se=t=>Xe(t)+(t.view?64:0),_e=(t,r)=>r?{...t,view:{before:{...r},after:{...r}}}:t;function fi(t,r={entries:100,bytes:16*1024*1024}){if(![r.entries,r.bytes].every(g=>Number.isSafeInteger(g)&&g>0))throw new RangeError("History budgets must be positive safe integers");const a=e.shallowRef([{kind:"snapshot",value:t}]),l=e.ref(0),n=e.ref(t),o=e.computed(()=>l.value>0),c=e.computed(()=>l.value+1<a.value.length),d=e.computed(()=>n.value),m=e.computed(()=>a.value.reduce((g,i)=>g+Se(i),0)),E=e.shallowRef();function N(g,i){a.value=[_e({kind:"snapshot",value:g},i)],l.value=0,n.value=g,E.value=i}function p(g){let i=g;for(;i>0&&a.value[i].kind!=="snapshot";)i--;let v="";for(;i<=g;i++)v=Te(v,a.value[i]);return v}function y(g){let i=g.reduce((v,h)=>v+Se(h),0);for(;g.length>1&&(g.length>r.entries||i>r.bytes);){const v=g[0],h=g[1],x=_e({kind:"snapshot",value:Te(v.value,h)},h.view?.after);i+=Se(x)-Se(v)-Se(h),g.splice(0,2,x)}return g}function S(g){if(!g)return;const i=a.value.slice(),v=i[l.value];i[l.value]=v.view?{...v,view:{before:v.view.before,after:{...g}}}:_e(v,g),a.value=i}function f(g,i){if(n.value===g)return!1;const v=a.value.slice(0,l.value+1);return v.push(_e(vi(n.value,g,v.length%20===0),i)),a.value=y(v),l.value=a.value.length-1,n.value=g,!0}function k(g){if(g<0?!o.value:!c.value)return;const i=a.value[l.value];return E.value=g<0?i.view?.before:a.value[l.value+1]?.view?.after,g<0&&i.kind==="patch"?n.value=Te(n.value,i,!0):g>0?n.value=Te(n.value,a.value[l.value+1]):n.value=p(l.value-1),l.value+=g,n.value}return{canUndo:o,canRedo:c,current:d,context:E,retainedBytes:m,reset:N,record:f,move:k,annotate:S}}function gi(t){const r=e.shallowRef(null),a=e.ref(!1);let l,n=0;function o(m){l?.(m),l=void 0,r.value=null}function c(){n++,o(!1),a.value=!1}async function d(m){c();const E=n,N=t();a.value=!0;try{const p=await new Promise((y,S)=>{if(l=y,!N){r.value=m;return}Promise.resolve().then(()=>n===E?N(m):!1).then(f=>{n===E&&o(f===!0)},f=>{n===E&&(l=void 0,r.value=null,S(f))})});return n===E&&p===!0}finally{n===E&&(a.value=!1)}}return e.onBeforeUnmount(c),{confirmation:r,pending:a,decide:o,request:d,cancel:c}}function hi(t,r){const a=e.ref(L.parseReportTemplate(t.modelValue)),l=e.ref(L.serializeReportTemplate(a.value)),n=e.ref(L.serializeReportTemplate(a.value)),o=e.ref(""),c=e.ref(!1),d=e.computed(()=>({...ue,...t.messages})),m=e.computed(()=>({showExport:!1,showPrint:!1,showPdfWindow:!1,...t.preview,theme:{shellBg:"#f1f5f9",shellFg:"#334155",toolbarBg:"#ffffff",toolbarBorder:"#e2e8f0",toolbarFg:"#334155",btnFg:"#475569",btnBorder:"#cbd5e1",btnHoverBg:"#eff6ff",btnHoverFg:"#1d4ed8",btnActiveBg:"#2563eb",...t.preview?.theme}}));Je.provideMachReportConfig({get defaults(){return m.value}});let E,N=0;const p=e.computed(()=>L.validateReportTemplateDocument(a.value)),y=e.computed(()=>{try{return L.serializeReportTemplate(a.value)!==l.value}catch{return!0}}),S=e.ref(n.value),f=e.computed(()=>n.value!==S.value),k=e.ref({}),g=e.ref(0),i=e.ref(0),v=e.computed(()=>Object.values(k.value).some(Boolean)),h=e.computed(()=>Object.keys(k.value).filter(P=>k.value[P]));function x(P,F){k.value={...k.value,[P]:F},g.value++}const V=Yr(x),C=e.computed(()=>y.value||n.value!==S.value||v.value||!!z.fieldChange.value),w=()=>JSON.stringify({document:a.value,json:n.value,appliedJson:S.value}),B=fi(w()),T=e.ref(0);let A;function G(P){A=P,B.annotate(P.read())}function Z(){B.annotate(A?.read())}const R=gi(()=>t.beforeDiscard),s=e.computed(()=>c.value||R.pending.value||ce.active.value||me.checking.value||!!me.available.value),O=()=>!t.readonly&&!s.value&&!f.value,z=pi(a,()=>p.value.ok,O,K),{selected:$,lists:_,activeList:M,headerAlignments:D,setColumn:I}=z;e.watch($,()=>z.clearSelection());const H=e.shallowRef();e.watch([()=>a.value.template,()=>t.datasets],()=>{H.value=Je.createLocalFetcher({draft:{template:a.value.template,datasets:t.datasets??{},params:[]}})},{deep:!0,immediate:!0});const j=e.computed(()=>p.value.ok?H.value:void 0);function U(){N++,E?.abort(),E=void 0,c.value=!1}let ae=0;async function te(P="replace",F){if(!C.value)return!0;const q=w(),oe=g.value;try{return await R.request({reason:P,document:JSON.parse(JSON.stringify(a.value)),replacement:F?L.parseReportTemplate(F):void 0,pendingLocalChanges:!0})&&q===w()&&oe===g.value}catch(de){return o.value=de instanceof Error?de.message:String(de),!1}}function ne(P){U(),ce.clear(),V.clear(),a.value=P,l.value=L.serializeReportTemplate(P),n.value=l.value,S.value=n.value,o.value="",$.value=0,z.clearSelection(),z.cancelFieldChange(),k.value={},g.value++,i.value++,B.reset(w(),A?.read())}e.watch(()=>t.modelValue,async P=>{let F;try{F=L.parseReportTemplate(P)}catch(oe){o.value=oe instanceof Error?oe.message:String(oe);return}try{if(L.serializeReportTemplate(F)===L.serializeReportTemplate(a.value))return}catch{}const q=++ae;if(U(),!await te("replace",F)){q===ae&&p.value.ok&&r("update:modelValue",L.parseReportTemplate(a.value));return}q===ae&&ne(F)}),e.onBeforeUnmount(()=>{ae++,U()});function K(){R.cancel(),o.value="",p.value.ok&&(n.value=L.serializeReportTemplate(a.value),S.value=n.value,r("update:modelValue",L.parseReportTemplate(a.value))),B.record(w(),A?.read())&&T.value++}function se(P){if(!O())return!1;try{const F=L.parseReportTemplate(a.value);P(F);const q=L.validateReportTemplateDocument(F);if(!q.ok)throw new Error(q.errors.map(oe=>`${oe.path}: ${oe.message}`).join(`
|
|
2
|
-
`));return a.value=F,K(),!0}catch(F){return o.value=F instanceof Error?F.message:String(F),!1}}async function Ce(P){if(!O())return!1;try{const F=L.parseReportTemplate(P);return!await te("replace",F)||!O()?!1:(a.value=F,$.value=0,z.clearSelection(),K(),!0)}catch(F){return o.value=F instanceof Error?F.message:String(F),!1}}function Fe(P){O()&&(a.value.name=P,K())}function He(P){O()&&(a.value.description=P,K())}function xe(){if(!(t.readonly||s.value))try{const P=L.parseReportTemplate(n.value);if(P.id!==a.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(P.revision!==a.value.revision)throw new Error("修订号由保存服务管理,不能在 JSON 中修改");a.value=P,$.value=0,z.clearSelection(),K()}catch(P){o.value=P instanceof Error?P.message:String(P)}}async function Oe(){s.value||t.readonly||!await te("reset")||(ne(L.parseReportTemplate(l.value)),r("update:modelValue",L.parseReportTemplate(a.value)))}function J(P){if(s.value||t.readonly)return;B.record(w(),A?.read());const F=B.move(P);if(!F)return;R.cancel();const q=JSON.parse(F);a.value=q.document,n.value=q.json,S.value=q.appliedJson,o.value="",$.value=0,z.clearSelection(),B.context.value&&A?.restore(B.context.value),p.value.ok&&r("update:modelValue",L.parseReportTemplate(a.value))}async function Ge(){if(!t.save||!O()||!p.value.ok)return;if(v.value||z.fieldChange.value){o.value=d.value.toolsPending;return}const P=++N;E=new AbortController,c.value=!0,o.value="";const F=L.parseReportTemplate(a.value);try{const q=L.parseReportTemplate(await t.save(F,{expectedRevision:F.revision,signal:E.signal}));if(P!==N)return;if(q.id!==F.id)throw new Error("保存服务返回了其他模板的文档");a.value=q,l.value=L.serializeReportTemplate(q),n.value=l.value,S.value=n.value,B.reset(w(),A?.read()),V.clear(),me.flush(),r("saved",L.parseReportTemplate(q)),r("update:modelValue",L.parseReportTemplate(q))}catch(q){P===N&&(o.value=q instanceof Error?q.message:String(q),q&&typeof q=="object"&&"code"in q&&q.code==="conflict"&&ce.begin())}finally{P===N&&(c.value=!1,E=void 0)}}const ce=ui({configuration:()=>t,baseline:()=>L.parseReportTemplate(l.value),local:()=>L.parseReportTemplate(a.value),async applyLatest(P){return await te("replace",P)?(ne(P),r("update:modelValue",L.parseReportTemplate(P)),!0):!1},rebase(P){const F=L.parseReportTemplate(a.value);P.revision===void 0?delete F.revision:F.revision=P.revision;const q=L.serializeReportTemplate(F),oe=L.serializeReportTemplate(P),de=f.value;F.revision===void 0?delete a.value.revision:a.value.revision=F.revision,l.value=oe,de||(n.value=q),S.value=q,B.reset(w(),A?.read()),r("update:modelValue",L.parseReportTemplate(a.value))}}),me=di({storage:()=>t.draftStorage,id:()=>a.value.id,baseline:()=>l.value,pending:()=>C.value,changedSource:()=>[a.value,l.value,n.value,S.value,V.records.value],snapshot:()=>({version:1,templateId:a.value.id,savedAt:new Date().toISOString(),baseline:L.parseReportTemplate(l.value),document:JSON.parse(JSON.stringify(a.value)),json:n.value,appliedJson:S.value,tools:V.records.value}),restore(P){if(t.readonly||c.value)return;const F=L.parseReportTemplate(t.modelValue);a.value=L.parseReportTemplate(P.document),l.value=L.serializeReportTemplate(P.baseline),n.value=P.json,S.value=P.appliedJson,i.value++,V.restore(P.tools);const q=Object.keys(P.tools).find(oe=>oe.startsWith("rules:"));if(q){const[,oe,de]=q.split(":"),he=_.value.findIndex(be=>be.pageIndex===Number(oe)&&be.componentIndex===Number(de));he>=0&&($.value=he)}B.reset(w(),A?.read()),L.serializeReportTemplate(F)!==l.value&&ce.begin(F),r("update:modelValue",L.parseReportTemplate(a.value))}}),Be=e.computed(()=>B.canUndo.value||w()!==B.current.value),De=e.computed(()=>B.canRedo.value&&w()===B.current.value);return{...z,recovery:me,conflict:ce,editingReadonly:e.computed(()=>t.readonly===!0),connectHistoryView:G,captureHistoryView:Z,historyViewRevision:T,transaction:se,replaceDocument:Ce,originalDocument:e.computed(()=>L.parseReportTemplate(l.value)),canUndo:Be,canRedo:De,undo:()=>J(-1),redo:()=>J(1),pendingLocalChanges:C,setToolPending:x,isToolPending:P=>k.value[P]===!0,toolEpoch:i,toolPending:v,pendingTools:h,jsonPending:f,blocked:s,confirmation:R.confirmation,decideDiscard:R.decide,guardChanges:te,draft:a,json:n,selected:$,error:o,saving:c,dirty:y,validation:p,lists:_,activeList:M,headerAlignments:D,previewOptions:m,fetcher:j,messages:d,setName:Fe,setDescription:He,setColumn:I,applyJson:xe,reset:Oe,save:Ge}}function yi(t,r){const a=e.ref(r.value?"fields":"component"),l=()=>r.value?.columns.length?0:-1,n=e.ref(l()),o=e.computed(()=>{const m=r.value?.columns[n.value];return m?{column:m,index:n.value}:void 0});e.watch(t,()=>{n.value=l()}),e.watch(r,m=>{m?.columns[n.value]||(n.value=l()),!m&&a.value==="fields"&&(a.value="component")});function c(m){r.value?.columns[m]&&(n.value=m)}function d(m){const E=r.value?.columns.length??0;E&&(n.value=Math.max(0,Math.min(E-1,n.value+m)))}return{section:a,activeIndex:n,activeColumn:o,activate:c,stepColumn:d}}const bi=["aria-label","aria-busy"],ki={class:"mr-designer-bar"},Ei={class:"mr-designer-heading"},Si=["aria-label"],Ni=["id","aria-selected","aria-controls","tabindex","onClick"],Vi={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},wi=["aria-label"],Ci=["aria-pressed"],xi=["aria-pressed"],Bi={class:"mr-designer-actions"},Di={class:"mr-designer-history"},Mi=["aria-label","title","disabled"],$i=["aria-label","title","disabled"],Ti=["disabled"],_i=["title","aria-describedby","disabled"],Ii=["id"],Ri=["id"],Li=["aria-label","onClick"],Pi=["aria-label"],Ai=["id","aria-labelledby"],Fi=["aria-label"],Hi=["id","aria-pressed","aria-describedby","onClick"],Oi={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},Gi={class:"mr-designer-tool-target"},zi=["value","aria-label"],ji=["value"],Ui=["value","aria-label"],qi={value:-1,disabled:""},Wi=["value"],Ji=["aria-pressed"],Ki={class:"mr-designer-tool-content"},Yi={key:5,class:"mr-designer-rule-workspace"},Xi={key:0},Zi=["value"],Qi=["value"],es={key:2,class:"mr-designer-note"},ts={key:1,class:"mr-designer-inspector"},ns=["id","aria-labelledby"],as={key:0,class:"mr-designer-flow-note"},os={key:0,class:"mr-designer-area"},ls=["value"],rs=["value"],is={class:"mr-designer-current"},ss=["aria-expanded","aria-controls"],cs={class:"mr-designer-current-name"},ds={class:"mr-designer-directory-entry"},us={class:"mr-designer-field-position"},ms=["aria-label"],ps=["aria-label","title","disabled"],vs=["aria-label","title","disabled"],fs=["disabled","aria-label"],gs={class:"mr-designer-property-group"},hs=["value"],ys=["value","list"],bs=["id"],ks=["value"],Es={class:"mr-designer-property-group"},Ss={class:"mr-designer-format-pair"},Ns={class:"mr-designer-stacked"},Vs=["value","disabled"],ws={class:"mr-designer-stacked"},Cs=["value"],xs={value:"identifier"},Bs={value:"dimension"},Ds={value:"measure"},Ms={value:"date"},$s={value:"text"},Ts={class:"mr-designer-control-row"},_s={class:"mr-designer-control-row"},Is={class:"mr-designer-toggle"},Rs=["checked"],Ls={class:"mr-designer-column-structure"},Ps=["aria-label","title","disabled"],As=["aria-label","title","disabled"],Fs=["checked","disabled"],Hs=["id","aria-label"],Os={class:"mr-designer-directory-heading"},Gs=["aria-label"],zs={class:"mr-designer-search"},js=["aria-label","placeholder"],Us=["aria-label","title"],qs={class:"mr-designer-column-tools"},Ws=["disabled"],Js={key:1,role:"status"},Ks={key:2},Ys=["aria-label"],Xs=["aria-label","checked","disabled","onChange"],Zs=["data-column-index","aria-pressed","tabindex","onClick"],Qs={class:"mr-designer-column-number"},ec={class:"mr-designer-column-name"},tc={key:0,role:"status",class:"mr-designer-empty"},nc=["aria-label"],ac=["disabled","aria-label"],oc=["disabled","aria-label"],lc={key:1,class:"mr-designer-batch"},rc=["aria-label","disabled"],ic={value:""},sc={value:"auto"},cc={value:"left"},dc={value:"center"},uc={value:"right"},mc={value:"justify"},pc=["aria-label","disabled"],vc={value:""},fc={value:"left"},gc={value:"center"},hc={value:"right"},yc={value:"justify"},bc={key:2,role:"status",class:"mr-designer-empty"},kc={class:"mr-designer-object-tools"},Ec=["aria-label","disabled"],Sc={value:""},Nc={value:"text"},Vc=["disabled"],wc={value:"image"},Cc={value:"rect"},xc={key:0,value:"chart"},Bc={value:"qrcode"},Dc={value:"barcode"},Mc=["title","aria-label","disabled"],$c=["title","aria-label","disabled"],Tc={key:0},_c=["value"],Ic={class:"mr-designer-stacked"},Rc=["value"],Lc={value:-1,disabled:""},Pc=["value"],Ac={key:1,class:"mr-designer-arrange"},Fc=["disabled"],Hc=["aria-label","disabled"],Oc={value:""},Gc={value:"left"},zc={value:"center"},jc={value:"right"},Uc={value:"top"},qc={value:"middle"},Wc={value:"bottom"},Jc=["disabled"],Kc=["disabled"],Yc={key:0},Xc={class:"mr-designer-layer-tools"},Zc=["disabled"],Qc=["disabled"],ed={key:3,class:"mr-designer-empty"},td={class:"mr-designer-stacked"},nd=["value","disabled"],ad={class:"mr-designer-stacked"},od=["value","disabled"],ld={class:"mr-designer-technical"},rd={class:"mr-designer-identity"},id={class:"mr-designer-stacked mr-designer-json-label"},sd=["aria-label","disabled"],cd=["disabled"],dd={key:5,role:"status",class:"mr-designer-note mr-designer-pending"},ud=["aria-label"],md={key:0,role:"alert",class:"mr-designer-error"},pd={key:1,role:"alert",class:"mr-designer-error"},vd={key:4,class:"mr-designer-note mr-designer-invalid"},fd=e.defineComponent({__name:"ReportTemplateEditor",props:{showSave:{type:Boolean,default:!0},guideMessages:{},draftStorage:{},recoveryMessages:{},productMessages:{},reviewMessages:{},fragments:{},documentStyles:{},reviewFixtures:{},modelValue:{},datasets:{},dataSchemas:{},bindingDatasets:{},bindingSession:{},readonly:{type:Boolean},messages:{},visualMessages:{},preview:{},beforeDiscard:{},save:{},loadLatest:{},keepCopy:{}},emits:["update:modelValue","saved","excel-bound"],setup(t,{expose:r,emit:a}){const l=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-UHSApSG9.cjs"))),n=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-BZb-okUd.cjs"))),o=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-XaLcCdTb.cjs"))),c=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateOutlinePanel-DiG8tRRe.cjs"))),d=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReusePanel-G-Y299wc.cjs"))),m=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-KQx9ts0D.cjs"))),E=t,N=a,p=hi(E,(X,b)=>{N(X==="saved"?"saved":"update:modelValue",b)}),{draft:y,json:S,selected:f,error:k,saving:g,pendingLocalChanges:i,jsonPending:v,blocked:h,confirmation:x,canUndo:V,canRedo:C,validation:w,lists:B,activeList:T,visibleColumns:A,query:G,selectedColumns:Z,fetcher:R,messages:s}=p;function O(X){return p.transaction(b=>{b.template.params=X})}const z=yi(f,T),{section:$,activeIndex:_,activeColumn:M}=z,D=`mr-designer-${e.getCurrentInstance()?.uid??0}`,I=Sr(p,z,()=>E.dataSchemas),{mode:H,canvasSelection:j,canvasPage:U,canvasActive:ae,tool:te,visitedTools:ne,editDisabled:K,dataSchema:se,insertComponent:Ce,patchCanvas:Fe,changeList:He,moveColumn:xe,headerCommand:Oe,canvas:J}=I,{sections:Ge,toolPreview:ce,setMode:me,toggleToolPreview:Be,chooseToolComponent:De,openBinding:P,pendingConfigurations:F,saveReason:q,openPending:oe,headingStatus:de,chooseCanvas:he,locateReview:be,chooseRuleList:Me,navigateSection:Ze}=br(p,I,z,{id:D,readonly:()=>E.readonly===!0}),le=e.computed(()=>!!y.value.template.pages[U.value]?.flow),Qe=e.computed(()=>E.dataSchemas?.[y.value.template.repeat?.dataset??""]),et=e.computed(()=>{const X={text:s.value.insertText,list:s.value.insertList,image:s.value.insertImage,rect:s.value.insertRect,qrcode:s.value.insertQrcode,barcode:s.value.insertBarcode,chart:s.value.chartComponent,line:s.value.lineComponent,ellipse:s.value.ellipseComponent},b=new Map(Qe.value?.fields.map(u=>[u.field,u.label||u.field]));return y.value.template.pages[U.value]?.components.map((u,W)=>{const ve=X[u.kind],Ue=(u.kind==="list"?u.title||u.dataset:u.binding?b.get(u.binding.field)||u.binding.field:u.text)?.replace(/\s+/g," ").trim().slice(0,60);return{index:W,name:Ue&&Ue!==ve?`${ve} · ${Ue}`:ve}})??[]});function wt(X){let b=U.value;p.transaction(u=>{b=Yt(u,U.value,X)})&&(X.type!=="patch"&&(J.clearLocks(),J.selection.value=void 0,J.selections.value=[]),U.value=b)}const Ee=e.computed(()=>!!y.value.template.pages[B.value[f.value]?.pageIndex??-1]?.flow),tt=e.ref(null),ze=e.ref(null),Q=Kr(z,$,A),{open:nt,cursor:Ct,trigger:xt,panel:Bt,search:Dt,list:Mt}=Q;e.watch($,async()=>{await e.nextTick(),ze.value&&(ze.value.scrollTop=0)});const at=e.computed(()=>({auto:s.value.auto,left:s.value.left,center:s.value.center,right:s.value.right,justify:s.value.justify}));let $e=null;e.watch(x,async X=>{X?($e=document.activeElement,await e.nextTick(),tt.value?.focus()):(await e.nextTick(),$e?.isConnected&&$e.focus(),$e=null)});function ot(X){if(!h.value){if(["excel","rules","params","review"].includes(X)){$.value="tools",te.value=X;return}$.value=X==="layout"?"template":X==="fields"&&B.value.length?"fields":"component",me($.value==="fields"?"preview":"design")}}const lt=e.computed(()=>!E.readonly&&!h.value&&!v.value&&!p.toolPending.value&&!p.fieldChange.value&&w.value.ok);r({openPanel:ot,get canApply(){return lt.value},get saveReason(){return q.value},get pendingLocalChanges(){return i.value},get saving(){return g.value},get blocked(){return h.value},guardChanges:p.guardChanges,reset:p.reset,save:p.save,insertComponent:J.insertComponent});async function $t(X){const b={...X.document,id:y.value.id};if(y.value.revision===void 0?delete b.revision:b.revision=y.value.revision,!await p.replaceDocument(b))return!1;const u=L.parseReportTemplate(p.draft.value);return N("excel-bound",{...X,document:u,session:{...X.session,identity:{id:u.id,name:u.name}}}),!0}function pe(X){return X.target.value}function je(X){return X.target.checked}function rt(X,b){const u=X.target;p.alignColumns(b,u.value),u.value=""}return(X,b)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(s).title,"aria-busy":e.unref(g)},[e.createElementVNode("header",ki,[e.createElementVNode("div",Ei,[e.createVNode(Y._sfc_main,{name:"columns",size:15}),e.createElementVNode("strong",null,e.toDisplayString(e.unref(s).heading),1),e.createElementVNode("span",{class:e.normalizeClass({"mr-designer-dirty":e.unref(i)})},e.toDisplayString(e.unref(de)),3)]),e.createElementVNode("nav",{class:"mr-designer-tabs",role:"tablist","aria-label":e.unref(s).sectionsLabel},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Ge),u=>(e.openBlock(),e.createElementBlock("button",{id:`${D}-tab-${u}`,key:u,type:"button",role:"tab","aria-selected":e.unref($)===u,"aria-controls":`${D}-panel-${u}`,tabindex:e.unref($)===u?0:-1,onClick:W=>$.value=u,onKeydown:b[0]||(b[0]=(...W)=>e.unref(Ze)&&e.unref(Ze)(...W))},[e.createTextVNode(e.toDisplayString(e.unref(s)[`${u}Section`])+" ",1),u==="tools"&&e.unref(p).toolPending.value||u==="advanced"&&e.unref(v)?(e.openBlock(),e.createElementBlock("span",Vi)):e.createCommentVNode("",!0)],40,Ni))),128))],8,Si),e.createElementVNode("div",{class:"mr-designer-mode",role:"group","aria-label":e.unref(s).design},[e.createElementVNode("button",{type:"button","aria-pressed":e.unref(H)==="design",onClick:b[1]||(b[1]=u=>e.unref(me)("design"))},e.toDisplayString(e.unref(s).design),9,Ci),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(H)==="preview",onClick:b[2]||(b[2]=u=>e.unref(me)("preview"))},e.toDisplayString(e.unref(s).preview),9,xi)],8,wi),e.createElementVNode("div",Bi,[e.createVNode(Ft,{fields:!!e.unref(B).length,disabled:e.unref(h),messages:t.guideMessages,onChoose:ot},null,8,["fields","disabled","messages"]),e.createElementVNode("div",Di,[e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(s).undo,title:e.unref(s).undo,disabled:t.readonly||e.unref(h)||!e.unref(V),onClick:b[3]||(b[3]=u=>{e.unref(J).clearLocks(),e.unref(p).undo()})},[...b[66]||(b[66]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M4 10h10a6 6 0 0 1 0 12M4 10l5-5M4 10l5 5"})],-1)])],8,Mi),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(s).redo,title:e.unref(s).redo,disabled:t.readonly||e.unref(h)||!e.unref(C),onClick:b[4]||(b[4]=u=>{e.unref(J).clearLocks(),e.unref(p).redo()})},[...b[67]||(b[67]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M20 10H10a6 6 0 0 0 0 12m10-12-5-5m5 5-5 5"})],-1)])],8,$i)]),e.createElementVNode("button",{type:"button",class:"mr-designer-reset",disabled:t.readonly||e.unref(h)||!e.unref(i),onClick:b[5]||(b[5]=(...u)=>e.unref(p).reset&&e.unref(p).reset(...u))},e.toDisplayString(e.unref(s).reset),9,Ti),t.save&&t.showSave!==!1?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-save",title:e.unref(q)||e.unref(s).save,"aria-describedby":e.unref(F).length?`${D}-pending`:e.unref(q)?`${D}-save-reason`:void 0,disabled:!lt.value||!e.unref(i),onClick:b[6]||(b[6]=(...u)=>e.unref(p).save&&e.unref(p).save(...u))},[e.createVNode(Y._sfc_main,{name:"file",size:13}),e.createTextVNode(e.toDisplayString(e.unref(g)?e.unref(s).saving:e.unref(s).save),1)],8,_i)):e.createCommentVNode("",!0),t.save&&t.showSave!==!1&&e.unref(q)&&!e.unref(F).length?(e.openBlock(),e.createElementBlock("span",{key:1,id:`${D}-save-reason`,class:"mr-designer-save-reason"},e.toDisplayString(e.unref(q)),9,Ii)):e.createCommentVNode("",!0)])]),e.createVNode(dr,{recovery:e.unref(p).recovery,conflict:e.unref(p).conflict,readonly:t.readonly,"can-load":!!t.loadLatest,"can-copy":!!t.keepCopy,messages:t.recoveryMessages},null,8,["recovery","conflict","readonly","can-load","can-copy","messages"]),e.createVNode(Gl,{messages:t.productMessages,change:e.unref(p).fieldChange.value,disabled:e.unref(K),onConfirm:e.unref(p).confirmFieldChange,onCancel:e.unref(p).cancelFieldChange,onLocate:e.unref(be)},null,8,["messages","change","disabled","onConfirm","onCancel","onLocate"]),e.unref(F).length?(e.openBlock(),e.createElementBlock("div",{key:0,id:`${D}-pending`,class:"mr-designer-pending",role:"status"},[e.createElementVNode("span",null,e.toDisplayString(e.unref(s).pendingToolsLabel),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(F),u=>(e.openBlock(),e.createElementBlock("button",{key:u.target,type:"button","aria-label":`${u.label} · ${e.unref(s).unapplied} · ${e.unref(s).returnToConfiguration}`,onClick:W=>e.unref(oe)(u.target)},[e.createTextVNode(e.toDisplayString(u.label),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(s).unapplied)+" ↗",1)],8,Li))),128)),e.createElementVNode("small",null,e.toDisplayString(e.unref(s).pendingToolsHint),1)],8,Ri)):e.createCommentVNode("",!0),e.unref(x)?(e.openBlock(),e.createElementBlock("div",{key:1,role:"alertdialog","aria-label":e.unref(s).discardTitle,class:"mr-designer-confirm",onKeydown:b[9]||(b[9]=e.withKeys(e.withModifiers(u=>e.unref(p).decideDiscard(!1),["prevent","stop"]),["esc"]))},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(s).discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(s).discardDescription),1)]),e.createElementVNode("div",null,[e.createElementVNode("button",{ref_key:"keepButton",ref:tt,type:"button",onClick:b[7]||(b[7]=u=>e.unref(p).decideDiscard(!1))},e.toDisplayString(e.unref(s).keepEditing),513),e.createElementVNode("button",{type:"button",onClick:b[8]||(b[8]=u=>e.unref(p).decideDiscard(!0))},e.toDisplayString(e.unref(s).discard),1)])],40,Pi)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["mr-designer-body",{"is-tools":e.unref($)==="tools","is-docked":e.unref(ce)}])},[e.unref(ne).size?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:e.unref(p).toolEpoch.value,class:"mr-designer-tools",id:`${D}-panel-tools`,role:"tabpanel","aria-labelledby":`${D}-tab-tools`},[e.createElementVNode("nav",{class:"mr-designer-tool-tabs","aria-label":e.unref(s).toolsSection},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["outline","reuse","excel","rules","params","review"],u=>e.createElementVNode("button",{key:u,id:`${D}-tool-${u}`,type:"button","aria-pressed":e.unref(te)===u,"aria-describedby":e.unref(p).isToolPending(u)?`${D}-pending`:void 0,onClick:W=>te.value=u},[e.createTextVNode(e.toDisplayString(e.unref(s)[`${u}Tool`])+" ",1),e.unref(p).isToolPending(u)?(e.openBlock(),e.createElementBlock("span",Oi)):e.createCommentVNode("",!0)],8,Hi)),64))],8,Fi),e.createElementVNode("div",Gi,[e.createElementVNode("label",null,[e.createElementVNode("span",null,e.toDisplayString(e.unref(s).toolTarget),1),e.createElementVNode("select",{value:e.unref(U),"aria-label":e.unref(s).pageDirectory,onChange:b[10]||(b[10]=u=>U.value=Number(u.target.value))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y).template.pages,(u,W)=>(e.openBlock(),e.createElementBlock("option",{key:W,value:W},e.toDisplayString(e.unref(Ve)(u,W,e.unref(s).page)),9,ji))),128))],40,zi)]),e.createElementVNode("select",{value:e.unref(j)?.pageIndex===e.unref(U)?e.unref(j).componentIndex:-1,"aria-label":e.unref(s).toolChooseComponent,onChange:b[11]||(b[11]=(...u)=>e.unref(De)&&e.unref(De)(...u))},[e.createElementVNode("option",qi,e.toDisplayString(e.unref(s).toolChooseComponent),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(et.value,u=>(e.openBlock(),e.createElementBlock("option",{key:u.index,value:u.index},e.toDisplayString(u.name),9,Wi))),128))],40,Ui),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(ce),onClick:b[12]||(b[12]=(...u)=>e.unref(Be)&&e.unref(Be)(...u))},[e.createVNode(Y._sfc_main,{name:"columns",size:14}),e.createTextVNode(e.toDisplayString(e.unref(ce)?e.unref(s).toolPreviewHide:e.unref(s).toolPreview),1)],8,Ji)]),e.createElementVNode("div",Ki,[e.unref(ne).has("outline")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(c),{key:0,messages:t.productMessages,document:e.unref(y),selection:e.unref(j),onLocate:e.unref(be)},null,8,["messages","document","selection","onLocate"])),[[e.vShow,e.unref(te)==="outline"]]):e.createCommentVNode("",!0),e.unref(ne).has("reuse")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(d),{key:1,messages:t.productMessages,document:e.unref(y),"page-index":e.unref(U),selection:e.unref(j),fragments:t.fragments,styles:t.documentStyles,disabled:e.unref(K),accept:e.unref(p).transaction,onSelect:e.unref(he)},null,8,["messages","document","page-index","selection","fragments","styles","disabled","accept","onSelect"])),[[e.vShow,e.unref(te)==="reuse"]]):e.createCommentVNode("",!0),e.unref(ne).has("params")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(n),{key:2,document:e.unref(y),readonly:e.unref(K),accept:O,"load-options":t.preview?.loadParamOptions,onDirty:b[13]||(b[13]=u=>e.unref(p).setToolPending("params",u))},null,8,["document","readonly","load-options"])),[[e.vShow,e.unref(te)==="params"]]):e.createCommentVNode("",!0),e.unref(ne).has("excel")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(l),{key:3,datasets:t.bindingDatasets??[],session:t.bindingSession,identity:{id:e.unref(y).id,name:e.unref(y).name},"lock-id":"",readonly:e.unref(K),accept:$t,onDirty:b[14]||(b[14]=u=>e.unref(p).setToolPending("excel",u))},null,8,["datasets","session","identity","readonly"])),[[e.vShow,e.unref(te)==="excel"]]):e.createCommentVNode("",!0),e.unref(ne).has("review")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(m),{key:4,document:e.unref(y),previous:e.unref(p).originalDocument.value,fixtures:t.reviewFixtures,messages:t.reviewMessages,datasets:t.datasets,"data-schemas":t.dataSchemas,onLocate:e.unref(be)},null,8,["document","previous","fixtures","messages","datasets","data-schemas","onLocate"])),[[e.vShow,e.unref(te)==="review"]]):e.createCommentVNode("",!0),e.unref(ne).has("rules")?e.withDirectives((e.openBlock(),e.createElementBlock("div",Yi,[e.unref(B).length>1?(e.openBlock(),e.createElementBlock("label",Xi,[e.createTextVNode(e.toDisplayString(e.unref(s).area),1),e.createElementVNode("select",{value:e.unref(f),onChange:b[15]||(b[15]=(...u)=>e.unref(Me)&&e.unref(Me)(...u))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(u,W)=>(e.openBlock(),e.createElementBlock("option",{key:W,value:W},e.toDisplayString(u.component.title||u.component.dataset),9,Qi))),128))],40,Zi)])):e.createCommentVNode("",!0),e.unref(T)?(e.openBlock(),e.createBlock(e.unref(o),{key:1,list:e.unref(T),"recovery-key":`rules:${e.unref(B)[e.unref(f)]?.pageIndex??0}:${e.unref(B)[e.unref(f)]?.componentIndex??0}`,datasets:t.datasets,"dataset-schema":e.unref(se),"dataset-schemas":t.dataSchemas,readonly:e.unref(K),onChange:e.unref(He),onDirty:b[16]||(b[16]=u=>e.unref(p).setToolPending("rules",u))},null,8,["list","recovery-key","datasets","dataset-schema","dataset-schemas","readonly","onChange"])):(e.openBlock(),e.createElementBlock("p",es,e.toDisplayString(e.unref(s).rulesNeedList),1))],512)),[[e.vShow,e.unref(te)==="rules"]]):e.createCommentVNode("",!0)])],8,Ai)),[[e.vShow,e.unref($)==="tools"]]):e.createCommentVNode("",!0),e.unref($)!=="tools"?(e.openBlock(),e.createElementBlock("aside",ts,[e.createElementVNode("div",{ref_key:"inspectorPanel",ref:ze,id:`${D}-panel-${e.unref($)}`,class:e.normalizeClass(["mr-designer-panel",{"is-advanced":e.unref($)==="advanced"}]),role:"tabpanel","aria-labelledby":`${D}-tab-${e.unref($)}`},[le.value||Ee.value?(e.openBlock(),e.createElementBlock("div",as,[e.createElementVNode("small",null,e.toDisplayString(e.unref(s).flowLayout),1),e.createElementVNode("button",{type:"button",onClick:b[17]||(b[17]=(...u)=>e.unref(P)&&e.unref(P)(...u))},e.toDisplayString(e.unref(s).excelTool)+" ↗",1)])):e.createCommentVNode("",!0),e.unref($)==="fields"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.unref(B).length>1?(e.openBlock(),e.createElementBlock("label",os,[e.createTextVNode(e.toDisplayString(e.unref(s).area),1),e.createElementVNode("select",{value:e.unref(f),onChange:b[18]||(b[18]=(...u)=>e.unref(Me)&&e.unref(Me)(...u))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(u,W)=>(e.openBlock(),e.createElementBlock("option",{key:W,value:W},e.toDisplayString(u.pageIndex+1)+" "+e.toDisplayString(e.unref(s).page)+" · "+e.toDisplayString(u.component.title||u.component.dataset),9,rs))),128))],40,ls)])):e.createCommentVNode("",!0),e.unref(T)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",is,[e.createElementVNode("button",{ref_key:"directoryTrigger",ref:xt,type:"button",class:"mr-designer-field-trigger","aria-expanded":e.unref(nt),"aria-controls":`${D}-directory`,"aria-haspopup":"dialog",onClick:b[19]||(b[19]=(...u)=>e.unref(Q).toggle&&e.unref(Q).toggle(...u)),onKeydown:b[20]||(b[20]=e.withKeys((...u)=>e.unref(Q).escape&&e.unref(Q).escape(...u),["esc"]))},[e.createElementVNode("span",cs,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(M)?.column.header||e.unref(s).noColumns),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(M)?.column.field||"—"),1)]),e.createElementVNode("span",ds,[e.createTextVNode(e.toDisplayString(e.unref(s).columnDirectory)+" ",1),e.createElementVNode("b",null,e.toDisplayString(e.unref(T).columns.length),1),e.createVNode(Y._sfc_main,{name:"chevron-down",size:13})])],40,ss),e.createElementVNode("div",us,[e.createElementVNode("span",{"aria-label":e.unref(s).fieldPosition},[e.createTextVNode(e.toDisplayString(e.unref(_)>=0?e.unref(_)+1:0),1),b[68]||(b[68]=e.createElementVNode("i",null,"/",-1)),e.createTextVNode(e.toDisplayString(e.unref(T).columns.length),1)],8,ms),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(s).previousColumn,title:e.unref(s).previousColumn,disabled:e.unref(_)<=0,onClick:b[21]||(b[21]=u=>e.unref(z).stepColumn(-1))},[e.createVNode(Y._sfc_main,{name:"chevron-left",size:14})],8,ps),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(s).nextColumn,title:e.unref(s).nextColumn,disabled:e.unref(_)>=e.unref(T).columns.length-1,onClick:b[22]||(b[22]=u=>e.unref(z).stepColumn(1))},[e.createVNode(Y._sfc_main,{name:"chevron-right",size:14})],8,vs)])]),e.unref(M)?(e.openBlock(),e.createElementBlock("fieldset",{key:0,class:"mr-designer-properties",disabled:t.readonly||e.unref(h)||e.unref(v),"aria-label":e.unref(s).columnProperties},[e.createElementVNode("div",gs,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(s).contentGroup),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(s).header),1),e.createElementVNode("input",{value:e.unref(M).column.header,onInput:b[23]||(b[23]=u=>e.unref(p).setColumn(e.unref(M).index,"header",pe(u)))},null,40,hs)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(s).field),1),e.createElementVNode("input",{value:e.unref(M).column.field,list:e.unref(se)?`${D}-fields`:void 0,onChange:b[24]||(b[24]=u=>e.unref(p).setColumn(e.unref(M).index,"field",pe(u)))},null,40,ys)]),e.unref(se)?(e.openBlock(),e.createElementBlock("datalist",{key:0,id:`${D}-fields`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(se).fields,u=>(e.openBlock(),e.createElementBlock("option",{key:u.field,value:u.field},e.toDisplayString(u.label)+" · "+e.toDisplayString(u.type)+" "+e.toDisplayString(u.unit),9,ks))),128))],8,bs)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Es,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(s).formatGroup),1),e.createElementVNode("div",Ss,[e.createElementVNode("label",Ns,[e.createTextVNode(e.toDisplayString(e.unref(s).width),1),e.createElementVNode("input",{type:"number",min:"0.1",step:"0.5",value:e.unref(M).column.widthMm,disabled:Ee.value,onChange:b[25]||(b[25]=u=>e.unref(p).setColumn(e.unref(M).index,"widthMm",pe(u)))},null,40,Vs)]),e.createElementVNode("label",ws,[e.createTextVNode(e.toDisplayString(e.unref(s).semantic),1),e.createElementVNode("select",{value:e.unref(M).column.semanticRole||"text",onChange:b[26]||(b[26]=u=>e.unref(p).setColumn(e.unref(M).index,"semanticRole",pe(u)))},[e.createElementVNode("option",xs,e.toDisplayString(e.unref(s).identifier),1),e.createElementVNode("option",Bs,e.toDisplayString(e.unref(s).dimension),1),e.createElementVNode("option",Ds,e.toDisplayString(e.unref(s).measure),1),e.createElementVNode("option",Ms,e.toDisplayString(e.unref(s).date),1),e.createElementVNode("option",$s,e.toDisplayString(e.unref(s).text),1)],40,Cs)])]),e.createElementVNode("div",Ts,[e.createElementVNode("span",null,e.toDisplayString(e.unref(s).bodyAlign),1),e.createVNode(Ke,{"model-value":e.unref(M).column.align??e.unref(M).column.style?.align??e.unref(T).align??"left",label:e.unref(s).bodyAlign,labels:at.value,"auto-label":e.unref(s).autoShort,"allow-auto":"","onUpdate:modelValue":b[27]||(b[27]=u=>e.unref(p).setColumn(e.unref(M).index,"align",u))},null,8,["model-value","label","labels","auto-label"])]),e.createElementVNode("div",_s,[e.createElementVNode("span",null,e.toDisplayString(e.unref(s).headerAlign),1),e.createVNode(Ke,{"model-value":e.unref(p).headerAlignments.value[e.unref(M).index]||"left",label:e.unref(s).headerAlign,labels:at.value,"auto-label":e.unref(s).autoShort,"onUpdate:modelValue":b[28]||(b[28]=u=>e.unref(p).setColumn(e.unref(M).index,"headerAlign",u))},null,8,["model-value","label","labels","auto-label"])])]),e.createElementVNode("label",Is,[e.createTextVNode(e.toDisplayString(e.unref(s).editable),1),e.createElementVNode("input",{type:"checkbox",role:"switch",checked:e.unref(M).column.editable===!0,onChange:b[29]||(b[29]=u=>e.unref(p).setColumn(e.unref(M).index,"editable",je(u)))},null,40,Rs)]),(e.openBlock(),e.createBlock(St,{key:`${e.unref(f)}:${e.unref(M).index}`,"model-value":e.unref(M).column.visual,fields:e.unref(T)?.columns.map(u=>({field:u.field,label:u.header})),readonly:e.unref(K),messages:t.visualMessages,"onUpdate:modelValue":b[30]||(b[30]=u=>e.unref(p).setColumn(e.unref(M).index,"visual",u))},null,8,["model-value","fields","readonly","messages"])),e.createElementVNode("div",Ls,[e.createElementVNode("span",null,e.toDisplayString(e.unref(s).columnOrder),1),e.createElementVNode("button",{type:"button","aria-label":e.unref(s).moveColumnLeft,title:e.unref(s).moveColumnLeft,disabled:Ee.value||e.unref(_)<=0,onClick:b[31]||(b[31]=u=>e.unref(xe)(-1))},[e.createVNode(Y._sfc_main,{name:"chevron-left",size:13})],8,Ps),e.createElementVNode("button",{type:"button","aria-label":e.unref(s).moveColumnRight,title:e.unref(s).moveColumnRight,disabled:Ee.value||e.unref(_)>=e.unref(T).columns.length-1,onClick:b[32]||(b[32]=u=>e.unref(xe)(1))},[e.createVNode(Y._sfc_main,{name:"chevron-right",size:13})],8,As),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(s).columnVisible),1),e.createElementVNode("input",{type:"checkbox",checked:e.unref(M).column.hidden!==!0,disabled:Ee.value||e.unref(M).column.hidden!==!0&&e.unref(T).columns.filter(u=>!u.hidden).length===1,onChange:b[33]||(b[33]=u=>e.unref(p).setColumn(e.unref(M).index,"hidden",!je(u)))},null,40,Fs)])])],8,fs)):e.createCommentVNode("",!0),e.unref(nt)?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${D}-directory`,ref_key:"directoryPanel",ref:Bt,role:"dialog","aria-label":e.unref(s).columnDirectory,class:"mr-designer-directory",onKeydown:b[45]||(b[45]=e.withKeys((...u)=>e.unref(Q).escape&&e.unref(Q).escape(...u),["esc"])),onFocusout:b[46]||(b[46]=(...u)=>e.unref(Q).leave&&e.unref(Q).leave(...u))},[e.createElementVNode("div",Os,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(e.unref(s).columnDirectory)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref(T).columns.length),1)]),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(s).closeDirectory,onClick:b[34]||(b[34]=u=>e.unref(Q).close(!0))},[e.createVNode(Y._sfc_main,{name:"close",size:15})],8,Gs)]),e.createElementVNode("div",zs,[e.createVNode(Y._sfc_main,{name:"search",size:14}),e.withDirectives(e.createElementVNode("input",{ref_key:"directorySearch",ref:Dt,"onUpdate:modelValue":b[35]||(b[35]=u=>e.isRef(G)?G.value=u:null),type:"search","aria-label":e.unref(s).columnsSearch,placeholder:e.unref(s).columnsSearch,onKeydown:b[36]||(b[36]=(...u)=>e.unref(Q).searchKeydown&&e.unref(Q).searchKeydown(...u))},null,40,js),[[e.vModelText,e.unref(G)]]),e.unref(G)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-icon-button","aria-label":e.unref(s).clearSearch,title:e.unref(s).clearSearch,onClick:b[37]||(b[37]=u=>G.value="")},[e.createVNode(Y._sfc_main,{name:"close",size:13})],8,Us)):e.createCommentVNode("",!0)]),e.createElementVNode("div",qs,[e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(h)||e.unref(v)||!e.unref(A).length,onClick:b[38]||(b[38]=u=>e.unref(p).selectVisible(!0))},e.toDisplayString(e.unref(s).selectVisible),9,Ws),e.unref(Z).length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:b[39]||(b[39]=(...u)=>e.unref(p).clearSelection&&e.unref(p).clearSelection(...u))},e.toDisplayString(e.unref(s).clearSelection),1)):e.createCommentVNode("",!0),e.unref(Z).length?(e.openBlock(),e.createElementBlock("span",Js,e.toDisplayString(e.unref(s).columnsSelected)+" "+e.toDisplayString(e.unref(Z).length),1)):(e.openBlock(),e.createElementBlock("span",Ks,e.toDisplayString(e.unref(A).length)+" / "+e.toDisplayString(e.unref(T).columns.length),1))]),e.createElementVNode("div",{ref_key:"columnList",ref:Mt,class:"mr-designer-column-list","aria-label":e.unref(s).columnDirectory,role:"group"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Q).windowColumns.value,({column:u,index:W})=>(e.openBlock(),e.createElementBlock("div",{key:W,class:e.normalizeClass(["mr-designer-column-row",{"is-active":e.unref(_)===W}])},[e.createElementVNode("input",{type:"checkbox","aria-label":`${e.unref(s).selectColumn} ${u.header}`,checked:e.unref(Z).includes(W),disabled:t.readonly||e.unref(h)||e.unref(v),onChange:ve=>e.unref(p).toggleColumn(W,je(ve))},null,40,Xs),e.createElementVNode("button",{type:"button","data-column-index":W,"aria-pressed":e.unref(_)===W,tabindex:e.unref(Ct)===W?0:-1,onClick:ve=>e.unref(Q).choose(W),onKeydown:b[40]||(b[40]=(...ve)=>e.unref(Q).navigate&&e.unref(Q).navigate(...ve))},[e.createElementVNode("span",Qs,e.toDisplayString(W+1),1),e.createElementVNode("span",ec,[e.createElementVNode("strong",null,e.toDisplayString(u.header),1),e.createElementVNode("small",null,e.toDisplayString(u.field),1)]),e.unref(_)===W?(e.openBlock(),e.createBlock(Y._sfc_main,{key:0,name:"chevron-right",size:13})):e.createCommentVNode("",!0)],40,Zs)],2))),128)),e.unref(A).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",tc,[e.createVNode(Y._sfc_main,{name:"search",size:20}),e.createTextVNode(e.toDisplayString(e.unref(s).noColumns),1)]))],8,Ys),e.unref(A).length>e.unref(Q).windowSize?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mr-designer-directory-pages","aria-label":e.unref(s).columnDirectory},[e.createElementVNode("button",{type:"button",disabled:e.unref(Q).windowStart.value===0,"aria-label":e.unref(s).previousColumns,onClick:b[41]||(b[41]=u=>e.unref(Q).stepWindow(-1))},[e.createVNode(Y._sfc_main,{name:"chevron-left",size:14})],8,ac),e.createElementVNode("span",null,e.toDisplayString(e.unref(s).columnWindow.replace("{start}",String(e.unref(Q).windowStart.value+1)).replace("{end}",String(Math.min(e.unref(A).length,e.unref(Q).windowStart.value+e.unref(Q).windowSize))).replace("{total}",String(e.unref(A).length))),1),e.createElementVNode("button",{type:"button",disabled:e.unref(Q).windowStart.value+e.unref(Q).windowSize>=e.unref(A).length,"aria-label":e.unref(s).nextColumns,onClick:b[42]||(b[42]=u=>e.unref(Q).stepWindow(1))},[e.createVNode(Y._sfc_main,{name:"chevron-right",size:14})],8,oc)],8,nc)):e.createCommentVNode("",!0),e.unref(Z).length?(e.openBlock(),e.createElementBlock("div",lc,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(s).batchBody),1),e.createElementVNode("select",{"aria-label":e.unref(s).batchBody,disabled:t.readonly||e.unref(h)||e.unref(v),onChange:b[43]||(b[43]=u=>rt(u,"align"))},[e.createElementVNode("option",ic,e.toDisplayString(e.unref(s).chooseAlignment),1),e.createElementVNode("option",sc,e.toDisplayString(e.unref(s).auto),1),e.createElementVNode("option",cc,e.toDisplayString(e.unref(s).left),1),e.createElementVNode("option",dc,e.toDisplayString(e.unref(s).center),1),e.createElementVNode("option",uc,e.toDisplayString(e.unref(s).right),1),e.createElementVNode("option",mc,e.toDisplayString(e.unref(s).justify),1)],40,rc)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(s).batchHeader),1),e.createElementVNode("select",{"aria-label":e.unref(s).batchHeader,disabled:t.readonly||e.unref(h)||e.unref(v),onChange:b[44]||(b[44]=u=>rt(u,"headerAlign"))},[e.createElementVNode("option",vc,e.toDisplayString(e.unref(s).chooseAlignment),1),e.createElementVNode("option",fc,e.toDisplayString(e.unref(s).left),1),e.createElementVNode("option",gc,e.toDisplayString(e.unref(s).center),1),e.createElementVNode("option",hc,e.toDisplayString(e.unref(s).right),1),e.createElementVNode("option",yc,e.toDisplayString(e.unref(s).justify),1)],40,pc)])])):e.createCommentVNode("",!0)],40,Hs)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",bc,e.toDisplayString(e.unref(s).noColumns),1))],64)):e.unref($)==="component"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",kc,[e.createElementVNode("select",{"aria-label":e.unref(s).insertComponent,disabled:e.unref(K)||le.value,onChange:b[47]||(b[47]=(...u)=>e.unref(Ce)&&e.unref(Ce)(...u))},[e.createElementVNode("option",Sc,e.toDisplayString(e.unref(s).insertComponent),1),e.createElementVNode("option",Nc,e.toDisplayString(e.unref(s).insertText),1),e.createElementVNode("option",{value:"list",disabled:!!e.unref(y).template.repeat},e.toDisplayString(e.unref(s).insertList),9,Vc),e.createElementVNode("option",wc,e.toDisplayString(e.unref(s).insertImage),1),e.createElementVNode("option",Cc,e.toDisplayString(e.unref(s).insertRect),1),e.unref(y).template.repeat?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("option",xc,e.toDisplayString(e.unref(s).chartComponent),1)),e.createElementVNode("option",Bc,e.toDisplayString(e.unref(s).insertQrcode),1),e.createElementVNode("option",Dc,e.toDisplayString(e.unref(s).insertBarcode),1)],40,Ec),e.createElementVNode("button",{type:"button",title:e.unref(s).duplicateComponent,"aria-label":e.unref(s).duplicateComponent,disabled:e.unref(K)||le.value||!e.unref(ae),onClick:b[48]||(b[48]=(...u)=>e.unref(J).duplicate&&e.unref(J).duplicate(...u))}," + ",8,Mc),e.createElementVNode("button",{type:"button",title:e.unref(s).removeComponent,"aria-label":e.unref(s).removeComponent,disabled:e.unref(K)||le.value||!e.unref(ae),onClick:b[49]||(b[49]=(...u)=>e.unref(J).remove&&e.unref(J).remove(...u))},[e.createVNode(Y._sfc_main,{name:"close",size:14})],8,$c)]),e.unref(y).template.pages.length>1?(e.openBlock(),e.createElementBlock("label",Tc,[e.createTextVNode(e.toDisplayString(e.unref(s).page),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":b[50]||(b[50]=u=>e.isRef(U)?U.value=u:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y).template.pages,(u,W)=>(e.openBlock(),e.createElementBlock("option",{key:W,value:W},e.toDisplayString(e.unref(Ve)(u,W,e.unref(s).page)),9,_c))),128))],512),[[e.vModelSelect,e.unref(U),void 0,{number:!0}]])])):e.createCommentVNode("",!0),e.createElementVNode("label",Ic,[e.createTextVNode(e.toDisplayString(e.unref(s).components),1),e.createElementVNode("select",{value:e.unref(j)&&e.unref(j).pageIndex===e.unref(U)?e.unref(j).componentIndex:-1,onChange:b[51]||(b[51]=u=>e.unref(he)({pageIndex:e.unref(U),componentIndex:Number(pe(u))}))},[e.createElementVNode("option",Lc,e.toDisplayString(e.unref(s).noComponent),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(et.value,u=>(e.openBlock(),e.createElementBlock("option",{key:u.index,value:u.index},e.toDisplayString(u.index+1)+" · "+e.toDisplayString(u.name),9,Pc))),128))],40,Rc)]),e.unref(J).selections.value.length?(e.openBlock(),e.createElementBlock("div",Ac,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(J).selections.value.length)+" "+e.toDisplayString(e.unref(s).component),1),e.createElementVNode("button",{type:"button",disabled:e.unref(K),onClick:b[52]||(b[52]=(...u)=>e.unref(J).toggleLock&&e.unref(J).toggleLock(...u))},e.toDisplayString(e.unref(J).allLocked.value?e.unref(s).unlockSelection:e.unref(s).lockSelection),9,Fc),e.createElementVNode("select",{"aria-label":e.unref(s).alignSelection,disabled:e.unref(K)||le.value||e.unref(J).selections.value.length<2,onChange:b[53]||(b[53]=u=>{e.unref(J).align(pe(u)),u.target.value=""})},[e.createElementVNode("option",Oc,e.toDisplayString(e.unref(s).alignSelection),1),e.createElementVNode("option",Gc,e.toDisplayString(e.unref(s).leftEdges),1),e.createElementVNode("option",zc,e.toDisplayString(e.unref(s).centers),1),e.createElementVNode("option",jc,e.toDisplayString(e.unref(s).rightEdges),1),e.createElementVNode("option",Uc,e.toDisplayString(e.unref(s).topEdges),1),e.createElementVNode("option",qc,e.toDisplayString(e.unref(s).middles),1),e.createElementVNode("option",Wc,e.toDisplayString(e.unref(s).bottomEdges),1)],40,Hc),e.createElementVNode("button",{type:"button",disabled:e.unref(K)||le.value||e.unref(J).selections.value.length<3,onClick:b[54]||(b[54]=u=>e.unref(J).distribute("horizontal"))},e.toDisplayString(e.unref(s).horizontalSpacing),9,Jc),e.createElementVNode("button",{type:"button",disabled:e.unref(K)||le.value||e.unref(J).selections.value.length<3,onClick:b[55]||(b[55]=u=>e.unref(J).distribute("vertical"))},e.toDisplayString(e.unref(s).verticalSpacing),9,Kc),e.unref(J).allLocked.value?(e.openBlock(),e.createElementBlock("small",Yc,e.toDisplayString(e.unref(s).sessionLock),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.unref(ae)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",Xc,[e.createElementVNode("button",{type:"button",disabled:e.unref(K)||le.value||e.unref(j)?.componentIndex===0,onClick:b[56]||(b[56]=u=>e.unref(J).reorder(-1))},e.toDisplayString(e.unref(s).backward),9,Zc),e.createElementVNode("button",{type:"button",disabled:e.unref(K)||le.value||e.unref(j)?.componentIndex===(e.unref(y).template.pages[e.unref(U)]?.components.length??0)-1,onClick:b[57]||(b[57]=u=>e.unref(J).reorder(1))},e.toDisplayString(e.unref(s).forward),9,Qc)]),e.createVNode(Ko,{component:e.unref(ae),"geometry-disabled":le.value,disabled:e.unref(K)||e.unref(J).locked(e.unref(j)),messages:e.unref(s),repeat:e.unref(y).template.repeat,schema:Qe.value,schemas:t.dataSchemas,datasets:t.datasets,onGeometry:e.unref(J).geometry,onPatch:e.unref(Fe)},null,8,["component","geometry-disabled","disabled","messages","repeat","schema","schemas","datasets","onGeometry","onPatch"]),e.unref(ae).kind==="list"?(e.openBlock(),e.createBlock(yr,{key:0,list:e.unref(ae),disabled:e.unref(K)||le.value,messages:e.unref(s),onCommand:e.unref(Oe)},null,8,["list","disabled","messages","onCommand"])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",ed,e.toDisplayString(e.unref(s).noComponent),1))],64)):e.unref($)==="template"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(s).templateDetails),1),e.createElementVNode("label",td,[e.createTextVNode(e.toDisplayString(e.unref(s).name),1),e.createElementVNode("input",{value:e.unref(y).name,disabled:t.readonly||e.unref(h)||e.unref(v),onInput:b[58]||(b[58]=u=>e.unref(p).setName(pe(u)))},null,40,nd)]),e.createElementVNode("label",ad,[e.createTextVNode(e.toDisplayString(e.unref(s).description),1),e.createElementVNode("textarea",{rows:"2",value:e.unref(y).description,disabled:t.readonly||e.unref(h)||e.unref(v),onInput:b[59]||(b[59]=u=>e.unref(p).setDescription(pe(u)))},null,40,od)]),e.createVNode(hl,{document:e.unref(y),"page-index":e.unref(U),disabled:e.unref(K),messages:e.unref(s),onSelect:b[60]||(b[60]=u=>U.value=u),onCommand:wt,onLocate:b[61]||(b[61]=u=>{e.unref(he)({pageIndex:e.unref(U),componentIndex:u}),e.unref(me)("design")})},null,8,["document","page-index","disabled","messages"]),e.createVNode(Ll,{document:e.unref(y),datasets:Object.keys(t.datasets??{}),schemas:t.dataSchemas,disabled:e.unref(K),messages:e.unref(s),onChange:b[62]||(b[62]=u=>{e.unref(p).transaction(W=>{u?W.template.repeat=u:delete W.template.repeat})})},null,8,["document","datasets","schemas","disabled","messages"]),e.createElementVNode("details",ld,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(s).technicalDetails),1),e.createElementVNode("dl",rd,[e.createElementVNode("dt",null,e.toDisplayString(e.unref(s).templateIdentity),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(y).id),1),e.createElementVNode("dt",null,e.toDisplayString(e.unref(s).templateRevision),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(y).revision||e.unref(s).unpublished),1)])])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(s).advancedTitle),1),e.createElementVNode("label",id,[e.createTextVNode(e.toDisplayString(e.unref(s).json),1),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":b[63]||(b[63]=u=>e.isRef(S)?S.value=u:null),class:"mr-designer-json","aria-label":e.unref(s).json,disabled:t.readonly||e.unref(h),spellcheck:"false"},null,8,sd),[[e.vModelText,e.unref(S)]])]),e.createElementVNode("button",{type:"button",class:"mr-designer-apply-json",disabled:t.readonly||e.unref(h),onClick:b[64]||(b[64]=(...u)=>e.unref(p).applyJson&&e.unref(p).applyJson(...u))},e.toDisplayString(e.unref(s).applyJson),9,cd)],64)),e.unref(v)?(e.openBlock(),e.createElementBlock("p",dd,e.toDisplayString(e.unref(s).jsonPending),1)):e.createCommentVNode("",!0)],10,ns)])):e.createCommentVNode("",!0),e.unref($)!=="tools"||e.unref(ce)?(e.openBlock(),e.createElementBlock("div",{key:2,class:"mr-designer-preview","aria-label":e.unref(s).previewTitle},[e.unref(k)?(e.openBlock(),e.createElementBlock("div",md,e.toDisplayString(e.unref(k)),1)):e.createCommentVNode("",!0),e.unref(w).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",pd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(w).errors,u=>(e.openBlock(),e.createElementBlock("li",{key:u.path},e.toDisplayString(u.path)+":"+e.toDisplayString(u.message),1))),128))])),e.unref(H)==="design"&&e.unref(w).ok?(e.openBlock(),e.createBlock(Pn,{key:2,document:e.unref(y),selection:e.unref(j),selections:e.unref(J).selections.value,locked:e.unref(J).locked,"active-column-index":e.unref(_),"page-index":e.unref(U),datasets:t.datasets,disabled:e.unref(K)||le.value||e.unref(p).isToolPending("rules"),messages:e.unref(s),onSelect:e.unref(he),onGeometry:e.unref(J).geometry,onColumn:e.unref(z).activate,onWidth:b[65]||(b[65]=(u,W)=>e.unref(p).setColumn(u,"widthMm",String(W)))},null,8,["document","selection","selections","locked","active-column-index","page-index","datasets","disabled","messages","onSelect","onGeometry","onColumn"])):e.unref(R)&&e.unref(w).ok?(e.openBlock(),e.createBlock(e.unref(Je.ReportPreview),{key:3,"report-id":"draft",fetcher:e.unref(R),messages:{title:e.unref(s).previewTitle,columnDirectory:e.unref(s).previewFieldDirectory},"show-params":!1,editable:!1,"excel-import":!1,height:"100%"},null,8,["fetcher","messages"])):(e.openBlock(),e.createElementBlock("p",vd,e.toDisplayString(e.unref(s).invalid),1))],8,ud)):e.createCommentVNode("",!0)],2)],8,bi))}}),gd=Y._export_sfc(fd,[["__scopeId","data-v-78247c51"]]),hd={cancel:"取消检查",cancelled:"本次检查已取消,没有替换上次结果。",progress:"组样例已检查",sampleConsentMissing:"请先确认当前数据已经脱敏",sampleNameMissing:"请为样例命名",sampleLimit:"最多配置 20 组验收样例",sampleNameDuplicate:"样例名称不能重复",sampleRowsLimit:"会话样例总行数不能超过 1000,请传入显式的小样例",namedFixtures:"命名验收样例",fixtureName:"样例名称",fixturePlaceholder:"例如:正常明细、空数据、跨页、超长文本",deidentified:"我确认当前样例数据已脱敏,仅用于本次会话验收",capture:"保存当前数据为样例",remove:"移除",fixtureHint:"显式样例逐组验收,不使用上方截断范围;每组总计最多 1000 行,最多 20 组。样例数据不会写入模板或草稿存储。",parameters:"样例参数(可选)",compare:"对比基线与草稿",dimensions:"页面尺寸",fieldsAdded:"新增字段引用",fieldsRemoved:"移除字段引用",baselinePreview:"基线 · 同一份样例",draftPreview:"草稿 · 同一份样例",closeCompare:"收起对比",stale:"输入或验收范围已变化,旧结果已失效,请重新运行检查。",scope:"上次实测范围",datasets:"个数据集",treeHint:"树形数据保留完整父子关系;20/100 作为本次总节点预算,超出请选全部或提供完整小样例。",title:"变更与验收",run:"运行检查",running:"检查中…",samples:"验收样例",none:"仅检查结构",first20:"每个数据集前 20 行",first100:"每个数据集前 100 行",all:"全部当前数据(总计 ≤1000 行)",changes:"模板变更",issues:"待处理项",results:"样例结果",noChanges:"与基线一致",noIssues:"本次检查未发现问题",empty:"选择验收样例后运行,检查字段映射、排版与输出能力。",baseline:"未提供上一版本,仅检查当前模板。",errors:"错误",warnings:"提示",locate:"定位",before:"修改前",after:"修改后",breaking:"影响兼容性",acknowledge:"已确认字段与结构变更",truncated:"变更较多,仅展示前 500 项;兼容检查仍包含全部变更。",pages:"页",rows:"行",checked:"检查结果对应本次样例,不代替服务端发布权限与全量数据校验。",categories:{metadata:"信息",structure:"结构",binding:"字段",calculation:"计算",format:"样式"},kinds:{added:"新增",removed:"删除",modified:"修改",moved:"调序"}},yd={recoveredMapping:"映射配置已恢复,请重新选择原 Excel 文件后核对;源文件及业务数据未暂存。",recoveredSheetMissing:"所选文件没有草稿所需的工作表,请重新选择原文件或放弃映射草稿。",tableMode:"传统整表",multiRegions:"多区域绑定",multiHint:"点击单元格选择起点,Shift 点击选择终点;每个动态区域选择一行原型。",addRegion:"创建区域",removeRegion:"删除区域",regionProperties:"当前区域",regionReady:"就绪",regionPending:"待补齐",regionError:"需修正",locateIssue:"定位并修正",nextDataset:"下一步:选择业务数据集",nextRowKey:"下一步:选择稳定业务主键",nextField:"下一步:补齐或修正逐列字段映射",nextRange:"下一步:检查原型范围及区域重叠",nextRegion:"下一步:在原始模板中选择一行并创建区域",nextHeader:"下一步:选择整行并标记表头和明细",nextFooter:"下一步:检查重复页尾范围",nextContract:"下一步:检查数据集契约和样例",dataContract:"数据集契约",inspectIssues:"查看待修正项",previousIssues:"上一组问题",nextIssues:"下一组问题",noCellSelection:"请先点击单元格,Shift 点击选择一行范围",limitRegions:"最多创建 128 个区域",applying:"正在确认模板…",regionCoordinates:"原型范围",regionMode:"填充方式",recordMode:"单记录",repeatMode:"纵向重复",recordHint:"接收零或一行数据,保留旁列静态内容;多行输入会明确报错。",repeatHint:"按数据行纵向扩展,下方内容自动顺延;旁列不能放置非空静态内容。",bindRegionHeader:"选区作为表头",noRegionHeader:"无区域表头",clearHeader:"清除区域表头",flowFooter:"重复页尾",flowFooterHint:"选择来源最后几行的完整列宽;为每页预留空间,避免明细覆盖。",bindFooter:"选区作为页尾",clearFooter:"清除重复页尾",concurrency:"业务并发字段",revisionField:"修订字段",sourceTokenField:"来源令牌字段",selectionCellLabel:"选择源单元格",searchFields:"搜索字段名称、编码或单位",fieldLimit:"候选最多显示 64 项;输入字段名筛选,已选映射始终保留。",restoreDraft:"恢复工具草稿",title:"Excel 业务绑定",intro:"保留模板版式,明确数据来源",upload:"选择 Excel 模板",replace:"更换文件",loading:"正在解析模板…",cancel:"取消解析",source:"原始模板",sourceHint:"点击行号选择,Shift 点击扩展;选择整行区域后标记用途。",sourceOnly:"来源样例仅供设计,应用时将全部替换为接口数据。",sheet:"工作表",dataset:"业务数据集",chooseDataset:"选择数据集契约",rowKey:"稳定业务主键",chooseRowKey:"选择业务主键",titleRegion:"标题",headerRegion:"多层表头",detailRegion:"样例明细",footerRegion:"静态尾页",optional:"可选",selectRegion:"标记选中行",clear:"清除",mapping:"逐列映射",coverage:"映射覆盖",physical:"Excel 列",business:"业务字段",chooseField:"选择已声明字段",selected:"已选行",previousRows:"上一组行",nextRows:"下一组行",previousColumns:"上一组列",nextColumns:"下一组列",rowStart:"预览起始行",columnStart:"预览起始列",apply:"校验并使用模板",check:"校验绑定",identity:"新模板",templateId:"模板标识",templateName:"模板名称",issues:"请先修正绑定",ready:"绑定校验通过",noSource:"导入 .xlsx,开始绑定业务数据",noContract:"请由接入方提供数据集字段契约,再配置业务绑定。",fieldType:"类型",precision:"位小数",sample:"契约样例",unnamed:"未标记",applied:"模板已生成,等待接入方确认",readonly:"当前只读",invalidFile:"请选择未加密的 .xlsx 文件",emptySelection:"请先在原始模板中选择行",footerHint:"静态尾页保留为独立页面,不随明细重复;不是每页页脚。",inspectWarning:"来源兼容性提示",session:"绑定会话可随草稿保存,再次传入即可恢复",decimals:"精确小数按原文本保留",selectionLabel:"选择源行",regionLegend:"区域用途",summary:"绑定摘要",stepSource:"选模板",stepRegions:"标区域",stepFields:"绑字段",stepValidate:"校验应用",errors:"项问题",sourceError:"模板解析失败",dimensions:"原始范围",mappedTo:"绑定到",sampleOnly:"仅契约样例",schemaOnly:"契约字段,不执行接口查询"},bd={restoreDraft:"恢复工具草稿",catalog:"规则与字段",searchFields:"搜索字段、类型或单位",useField:"使用此字段",shown:"显示",explanation:"计算解释",sourceValues:"源值",expression:"表达式",result:"结果",notChecked:"修改后请重新验算",nullReason:"空值依规则保留;空值传播与除零策略见计算边界。",sourceHint:"最多展示 5 条明细;分组和全量聚合以当前验算范围为准。",pending:"未应用配置",detail:"主从",matrix:"矩阵",matrixHierarchy:"层级维度与小计",matrixHierarchyHint:"分列展示行维度,生成合并列标题。小计直接统计原始样本;空值与空字符串分别保留。",matrixSort:"同级排序",matrixSourceOrder:"来源顺序",matrixAscending:"升序",matrixDescending:"降序",matrixPrefixSubtotal:"此级小计",matrixEmptyLabel:"空维度显示",tree:"树形",treeInput:"输入结构",treeFlat:"扁平父子表",treeNested:"嵌套子节点",treeId:"节点业务键",treeParent:"父节点键",treeChildren:"子节点数组字段",treeLabel:"层级标签列",treeIndent:"每级缩进 · mm",treeOrphan:"孤儿节点",treeAsRoot:"作为根节点",treeValues:"父级数值来源",treeSource:"保留来源值",treeLeaves:"按后代叶子聚合",treeRows:"最多节点",treeDepth:"最多层级",treeHint:"全量树展示与导出。总计只统计叶子,避免父子重复。应用将替换普通分组、主从、矩阵和行可见条件;可撤销恢复。",treeReadonly:"嵌套输入首版只读;扁平输入的结构键和派生父级聚合只读。",treeBudget:"树形样例最多 1000 个节点,请提供完整关系样例。",measureLabel:"显示名称",childDataset:"明细数据集",parentKey:"主表关联键",foreignKey:"明细外键",rowKey:"明细业务主键",noRowKey:"只读明细,不绑定编辑身份",childColumns:"明细展示字段",title:"明细标题",unmatched:"未关联明细",ignore:"显式忽略",childHeader:"展示明细表头",rowFields:"行维度",columnFields:"列维度",totals:"原始样本总计",widthSettings:"动态列宽 · mm",dimensionWidth:"维度列宽",measureWidth:"度量列宽",detailHint:"以业务键关联宿主提供的数据集。应用主从布局将替换矩阵配置。",matrixHint:"查询时按维度生成动态列。应用矩阵将替换普通分组、主从和总计;可撤销恢复。",computations:"计算",groups:"分组",conditions:"条件",target:"结果字段",newField:"新增计算字段",select:"选择字段",row:"当前行",group:"当前组",dataset:"整个数据集",scope:"计算范围",numeric:"数值模式",number:"普通数值",decimal:"精确小数",digits:"小数位",groupFields:"分组依据",field:"字段",constant:"常量",operation:"运算",aggregate:"聚合",text:"文本",boolean:"布尔",null:"空值",true:"是",false:"否",if:"条件取值",round:"四舍五入",abs:"绝对值",concat:"拼接文本",trim:"去除首尾空白",upper:"大写",lower:"小写",dateYear:"日期年份",dateMonth:"日期月份",dateDay:"日期日号",all:"全部满足",any:"任一满足",not:"条件不成立",conditionGroup:"条件组合",addCondition:"添加条件",compareField:"比较字段",compareValue:"固定值",between:"范围内(含边界)",contains:"包含文本",isNull:"为空值",isNotNull:"非空值",valueKind:"值语义",calendarDate:"日历日",upperBound:"上限",lowerBound:"下限",functionHelp:"函数用法",thenValue:"成立时",elseValue:"否则",add:"相加",subtract:"相减",multiply:"相乘",divide:"相除",coalesce:"首个非空值",sum:"求和",count:"计数",avg:"平均值",min:"最小值",max:"最大值",weightedAvg:"加权平均",subtotalLabel:"小计",weight:"权重字段",argument:"参数",addArgument:"添加参数",remove:"移除",apply:"应用规则",check:"样例验算",addGroup:"添加分组",noGroups:"尚未配置分组",header:"组头模板",footer:"组尾标签",repeat:"跨页重复组头",orphan:"组头与首行保持同页",outer:"外层",inner:"内层",addAggregate:"添加聚合",measure:"度量字段",output:"输出字段",condition:"条件字段",comparison:"比较方式",threshold:"比较值",effect:"效果",style:"条件样式",cell:"单元格可见",rowVisibility:"明细行可见",color:"文字颜色",background:"背景颜色",bold:"加粗",column:"目标列",newCondition:"新增条件样式",removeCondition:"移除此规则",advanced:"计算边界",nulls:"空值处理",propagate:"保留为空",error:"报告错误",division:"除零处理",dependencies:"计算顺序",noData:"尚无样例数据",sample:"样例前 1000 行 · 仅验算,不修改来源",preview:"计算结果",existing:"已有规则",ready:"规则已通过结构校验",allRows:"全部行",noFields:"当前数据集尚无字段",resultType:"常量类型",settings:"规则设置",moveUp:"向外移动",moveDown:"向内移动",missingTarget:"请选择或填写结果字段",noSelection:"请先选择列",countHint:"留空度量字段可统计行数",decimalHint:"精确小数以文本保存,避免大数精度丢失。",readonly:"只读",formatMode:"条件规则",rule:"规则",sampleError:"验算未通过",new:"新增",enabled:"启用"},kd={paramsTool:"查询参数",paramsDescription:"配置一次,预览与服务端使用同一份校验规则。",paramsDirectory:"参数目录",paramAdd:"添加参数",paramEmpty:"尚未配置查询参数",paramEmptyHint:"添加日期、厂别等条件,报表预览会自动生成查询面板。",paramField:"参数标识",paramLabel:"显示名称",paramType:"控件类型",paramRequired:"必填",paramPlaceholder:"输入提示",paramDefaultEnabled:"设置默认值",paramDefault:"默认值",paramMinimum:"最小值(含边界)",paramMaximum:"最大值(含边界)",paramMinLength:"最少字符数",paramMaxLength:"最多字符数",paramOptions:"静态下拉选项",paramOptionsMode:"选项来源",paramOptionsStatic:"固定选项",paramOptionsRemote:"远程搜索",paramOptionsSource:"来源标识",paramDependencyUnavailable:"已失效,请取消选择",paramDependencies:"上级条件",paramRemoteHint:"来源标识由项目的统一选项服务解析。上级条件变化会清空下级选择;模板不保存接口地址或账号。",paramOptionValue:"接口值",paramOptionLabel:"显示文字",paramOptionAdd:"添加选项",paramRemove:"删除参数",paramOptionRemove:"删除选项",paramMoveUp:"上移参数",paramMoveDown:"下移参数",paramApply:"校验并应用参数",paramRestore:"恢复参数草稿",paramPending:"尚未应用",paramReady:"规则有效",paramInvalid:"规则待修正",paramIssueCount:"待修正问题",paramLocateFirst:"定位首个问题",paramUnnamed:"未命名参数",paramRangeStart:"默认开始日期",paramRangeEnd:"默认结束日期",paramConflict:"模板参数已在其他操作中变更。请先恢复参数草稿,再继续编辑。",paramApplyFailed:"参数未应用,请检查模板校验信息。",paramRenameHint:"参数标识决定接口取数键。新增、删除或改名后,请同步检查接入方的数据查询;插件不会修改外部接口。",paramChanges:"接口参数键变更",paramAdded:"新增",paramRemoved:"移除",paramWire:"接口值格式",paramNoDefault:"未设置默认值",paramRangeHint:"两端均须填写,开始日期不能晚于结束日期;边界约束作用于整个范围。",paramText:"文本",paramNumber:"数字",paramDate:"日期",paramMonth:"月份",paramYear:"年份",paramDateRange:"日期范围",paramSelect:"下拉选择",paramMultiSelect:"多选",paramCascader:"层级选择",paramNumberRange:"数值范围",paramMinItems:"最少选择项数",paramMaxItems:"最多选择项数",paramChildAdd:"添加下级",paramTreeHint:"选择完整叶节点路径;同级选项值须唯一,最多 16 级。"},Ed={batchTitle:"批量生成",batchDescription:"每组参数独立生成;成功结果由接入方保存,当前页面仅保留回执。",batchAdd:"添加一组",batchDuplicate:"复制参数",batchDuplicateCompleted:"复制为新任务",batchRemove:"删除参数组",batchRun:"生成待处理",batchContinue:"继续未完成",batchRunning:"正在生成",batchRetry:"仅重试失败项",batchCancel:"取消剩余任务",batchCancelling:"正在取消…",batchPending:"待生成",batchCompleted:"已完成",batchCompletedHint:"此组已生成并保留回执;需修改参数或再次生成,请复制为新任务。",batchFailed:"失败",batchCancelled:"已取消",batchCase:"参数组",batchProgress:"本轮已结束 {completed}/{total} · 失败 {failed} · 取消 {cancelled}",batchInvalid:"请修正参数错误后再生成;本次未启动任何任务。",batchEmpty:"添加一组参数开始批量生成",batchNoMatches:"当前状态没有参数组",batchFilter:"按生成状态筛选",batchAll:"全部",batchNextFailure:"下一失败项",batchNoInstance:"已完成,接入方未返回可打开的实例标识。",batchOpen:"打开报表实例",batchLimit:"当前最多支持 {count} 组参数。",batchChanged:"参数定义或执行配置已变更,已请求取消当前批次,请核对后重新生成。",batchPages:"参数组分页",batchPrevious:"上一页",batchNext:"下一页",batchPage:"第 {page}/{pages} 页 · 共 {total} 组"},Sd={publicationChanged:"发布修订与目录不一致,请刷新目录后重新查看",continueDraft:"继续编辑草稿",viewPublished:"查看发布版",draft:"草稿",published:"已发布",draftPending:"草稿待发布",retrySearch:"重试目录查询",retryOpen:"重试打开模板",retryCopy:"重试创建副本",openingTarget:"正在打开 {name}…",creatingTarget:"正在创建 {name} 的副本…",title:"模板库",subtitle:"按业务分类查找、打开或复制模板",search:"搜索名称、编号或标签",all:"全部模板",refresh:"刷新",open:"打开设计器",copy:"复制模板",empty:"没有匹配的模板",emptyHint:"调整关键词或分类后重试",loadMore:"下一页",previous:"上一页",page:"页",loading:"正在加载…",retry:"重试",revision:"修订",copyTitle:"复制为新模板",newId:"新模板编号",newName:"新模板名称",create:"创建副本",cancel:"取消",count:"项",missing:"模板不存在或已不可访问",stale:"目录返回了重复项或无效分页游标",invalid:"模板目录响应格式无效"},Nd={applyFirst:"请先应用当前配置或修正模板问题,再切换打印预览。",saveFailed:"模板尚未保存,请检查提示后重试。",title:"标识打印",preview:"打印预览",design:"设计标签",records:"预览记录",all:"全部记录",record:"记录序号",single:"单条预览",faces:"个版面",labels:"张标签",session:"当前会话模板",flow:"选择记录 → 设计标签 → 预览并打印",guide:"使用指引",help:"在画布点选文字或码图,再设置绑定字段;在“模板”中调整纸张与份数。",size:"纸张与份数",bindings:"字段与码图",count:"条记录",invalidCopies:"份数待校验",sheet:"A4 标签拼版",sheetHint:"2 列 × 4 行,保持原尺寸",printHint:"先试打一张,使用同规格纸张与 100% 比例核对尺寸和扫码。",empty:"暂无可打印记录",save:"保存标签模板"},Vd=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-KQx9ts0D.cjs"))),wd=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-UHSApSG9.cjs"))),Cd=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-XaLcCdTb.cjs"))),xd=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-BZb-okUd.cjs"))),Bd=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportBatchPanel-BkJFqeEW.cjs"))),Dd=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportTemplateLibrary-BOh2MgjQ.cjs"))),Md=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateOutlinePanel-DiG8tRRe.cjs"))),$d=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReusePanel-G-Y299wc.cjs"))),Td=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportLabelStudio-BN-fYNCr.cjs")));exports.COLUMN_VISUAL_MESSAGES=Et;exports.ChartBindingInspector=yt;exports.ColumnVisualEditor=St;exports.DEFAULT_RULE_EDITOR_MESSAGES=bd;exports.DESIGNER_GUIDE_MESSAGES=gt;exports.EXCEL_BINDING_MESSAGES=yd;exports.ExcelBindingWizard=wd;exports.LABEL_STUDIO_MESSAGES=Nd;exports.PARAM_EDITOR_MESSAGES=kd;exports.ParamEditor=xd;exports.REPORT_BATCH_MESSAGES=Ed;exports.ReportBatchPanel=Bd;exports.ReportLabelStudio=Td;exports.ReportTemplateEditor=gd;exports.ReportTemplateLibrary=Dd;exports.RuleEditor=Cd;exports.TEMPLATE_EDITOR_MESSAGES=ue;exports.TEMPLATE_LIBRARY_MESSAGES=Sd;exports.TEMPLATE_PRODUCT_MESSAGES=bt;exports.TEMPLATE_RECOVERY_MESSAGES=kt;exports.TEMPLATE_REVIEW_MESSAGES=hd;exports.TemplateOutlinePanel=Md;exports.TemplateReusePanel=$d;exports.TemplateReviewPanel=Vd;exports.createTemplateDraftStorage=ii;exports.useTemplateToolDraft=Xr;
|