@agile-team/mach-report 2.21.0 → 2.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/{ExcelBindingWizard-B2xXBOJu.cjs → ExcelBindingWizard-Bu0LUlzl.cjs} +1 -1
- package/dist/{ExcelBindingWizard-CixTPQAL.js → ExcelBindingWizard-mnAO2qOX.js} +1 -1
- package/dist/{ParamEditor-DhHlNxai.cjs → ParamEditor-38ZfNrPU.cjs} +1 -1
- package/dist/{ParamEditor-gKhvEsnr.js → ParamEditor-C8l0EC8m.js} +1 -1
- package/dist/{ReportBatchPanel-D-lyWKyf.js → ReportBatchPanel-CfUVhvkO.js} +1 -1
- package/dist/{ReportBatchPanel-BUdUfTdm.cjs → ReportBatchPanel-nCC06Nfp.cjs} +1 -1
- package/dist/ReportLabelStudio-CaEvYuSK.cjs +1 -0
- package/dist/{ReportLabelStudio-N2w6DdaZ.js → ReportLabelStudio-DQPBmh4v.js} +164 -163
- package/dist/{ReportTemplateLibrary-WZl-AK-2.js → ReportTemplateLibrary-B5t_EcIs.js} +1 -1
- package/dist/{ReportTemplateLibrary-Cs9WKneQ.cjs → ReportTemplateLibrary-DVlsf72p.cjs} +1 -1
- package/dist/{RuleEditor-DGpmjCko.js → RuleEditor-kT1JsZ9f.js} +1 -1
- package/dist/{RuleEditor-Dtcq-7LO.cjs → RuleEditor-xFkCVlii.cjs} +1 -1
- package/dist/{TemplateOutlinePanel-cxp95OT9.js → TemplateOutlinePanel-BesgGR1P.js} +1 -1
- package/dist/{TemplateOutlinePanel-CkCh506f.cjs → TemplateOutlinePanel-CDI6mfWx.cjs} +1 -1
- package/dist/{TemplateReusePanel-CwttuSta.cjs → TemplateReusePanel-BG9Or5-P.cjs} +1 -1
- package/dist/{TemplateReusePanel-BZ8VTtrO.js → TemplateReusePanel-BNFU6V-W.js} +1 -1
- package/dist/{TemplateReviewPanel-C2YjiaEC.cjs → TemplateReviewPanel-BmBrjt6P.cjs} +1 -1
- package/dist/{TemplateReviewPanel-C9cTvsRs.js → TemplateReviewPanel-CwvwyCSs.js} +1 -1
- package/dist/artifact-integrity.json +25 -25
- package/dist/{designer-CDqok4S5.cjs → designer-DU3yDWgs.cjs} +1 -1
- package/dist/{designer-CIDHt5xz.js → designer-HQi-03R6.js} +4 -4
- package/dist/designer.cjs +1 -1
- package/dist/designer.js +1 -1
- package/dist/sbom.cdx.json +1 -1
- package/dist/server.cjs +1 -1
- package/dist/server.js +1 -1
- package/package.json +1 -1
- package/dist/ReportLabelStudio-BcjQt73a.cjs +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";const e=require("vue"),dt=require("@agile-team/mach-report/vue"),G=require("@agile-team/mach-report"),J=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),Tt=require("./template-outline-DWkzZXVC.cjs"),_e=require("./record-bindings-Ct1HkPrc.cjs"),ye=require("./template-serialization-D1R5oAqh.cjs"),Ge=require("./grid-geometry-D8ReblRV.cjs"),_t={title:"操作指引",prompt:"这次想调整什么?",close:"关闭操作指引",fields:"改字段、对齐和颜色",fieldsHint:"选中一列,再修改属性;支持数据条与色阶",components:"加图表、二维码或条码",componentsHint:"进入画布,添加组件并绑定真实字段",layout:"改纸张、页数和份数",layoutHint:"设置毫米尺寸、标准纸型及逐记录输出",excel:"从 Excel 还原模板",excelHint:"导入工作簿,再明确字段和区域绑定",rules:"配计算和条件样式",rulesHint:"先配置,再应用到模板;不会修改接口实绩",review:"检查并定位问题",reviewHint:"校验字段依赖、样例结果与输出限制",result:"预览确认效果后保存模板;高级 JSON 保留给需要时使用。"},en=["onKeydown"],tn=["aria-expanded","disabled"],nn=["aria-label"],an=["aria-label"],on=["onClick"],ln=e.defineComponent({__name:"DesignerTaskGuide",props:{fields:{type:Boolean},available:{},disabled:{type:Boolean},messages:{}},emits:["choose"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({..._t,...a.messages})),r=e.ref(!1),i=e.ref(),s=e.ref();function c(M){M.target instanceof Node&&!s.value?.contains(M.target)&&(r.value=!1)}function y(M){(!(M.relatedTarget instanceof Node)||!s.value?.contains(M.relatedTarget))&&(r.value=!1)}e.onMounted(()=>window.document.addEventListener("pointerdown",c)),e.onBeforeUnmount(()=>window.document.removeEventListener("pointerdown",c));const C=e.computed(()=>[...a.fields?["fields"]:[],"components","layout","excel","rules","review"].filter(M=>!a.available||a.available.includes(M)));function v(M){l("choose",M),r.value=!1,i.value?.focus()}function k(){r.value=!1,i.value?.focus()}return(M,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:s,class:"mr-designer-guide mr-designer-controls",onKeydown:e.withKeys(e.withModifiers(k,["stop","prevent"]),["esc"]),onFocusout:y},[e.createElementVNode("button",{ref_key:"trigger",ref:i,type:"button","aria-expanded":r.value,disabled:t.disabled,onClick:w[0]||(w[0]=x=>r.value=!r.value)},[e.createTextVNode(e.toDisplayString(n.value.title),1),w[1]||(w[1]=e.createElementVNode("span",{"aria-hidden":"true"},"⌄",-1))],8,tn),r.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:k},"×",8,an)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,x=>(e.openBlock(),e.createElementBlock("button",{key:x,type:"button",onClick:E=>v(x)},[e.createElementVNode("strong",null,e.toDisplayString(n.value[x]),1),e.createElementVNode("span",null,e.toDisplayString(n.value[`${x}Hint`]),1),w[2]||(w[2]=e.createElementVNode("i",{"aria-hidden":"true"},"→",-1))],8,on))),128)),e.createElementVNode("p",null,e.toDisplayString(n.value.result),1)],8,nn)):e.createCommentVNode("",!0)],40,en))}}),rn=J._export_sfc(ln,[["__scopeId","data-v-6087c21a"]]),It={add:"添加内容",title:"添加到当前版面",text:"说明文字",textHint:"添加标题、备注或说明",field:"业务字段",columnField:"添加表格字段",fieldHint:"选择字段后立即显示真实内容",image:"图片或 Logo",imageHint:"使用 PNG 或 JPEG 图片",qrcode:"二维码",barcode:"条形码",codeHint:"绑定记录编号或填写编码内容",list:"明细表",listHint:"从当前字段契约建立表格",chart:"图表",recordCount:"记录数",chartHint:"选择分类与数值字段",rect:"装饰色块",rectHint:"辅助分区与突出信息",search:"搜索业务字段",noFields:"没有匹配的字段",close:"关闭添加内容",back:"返回内容类型",duplicate:"复制组件",newPage:"当前版面空间不足或含动态明细,内容已放到新增版面,可撤销恢复。",newPageTitle:"需要新增一个版面",newPageDescription:"当前版面没有足够空间,将新增同规格的 {width} × {height} mm 版面放置内容。",reportPageImpact:"模板版面 {before} → {after}。最终输出页数由明细分页决定。",labelPageImpact:"每份标签 {before} → {after} 个版面。每条记录的输出都会增加一个版面。",labelCountImpact:"按当前设计样本,标签数 {before} → {after} 张。",newPageConfirm:"新增版面并添加",newPageCancel:"取消添加",newPagePending:"请先确认或取消新增版面,再预览或保存。",contentTooLarge:"内容尺寸大于当前纸张的可用区域,请先调整纸张或内容尺寸。内容没有被缩小或添加。",addColumn:"添加字段列",removeColumn:"删除当前列",removeLast:"至少保留一列",dependentColumn:"此字段仍被合计、规则或表头引用,请先调整相关配置。",assetPending:"请完成图片或编码内容配置,再预览或保存。",fieldsUnavailable:"当前模板尚无可绑定的数据字段。"},sn=["onKeydown"],cn=["disabled","aria-expanded"],dn=["aria-label"],un=["aria-label"],mn=["aria-label","placeholder"],pn={class:"mr-insert-fields"},fn=["disabled","onClick"],vn={key:0},gn={key:1,class:"mr-insert-grid"},hn=["onClick"],yn=e.defineComponent({__name:"DesignerInsertMenu",props:{disabled:{type:Boolean},repeat:{type:Boolean},fields:{},columns:{type:Boolean},usedFields:{},messages:{}},emits:["insert","field"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({...It,...a.messages})),r=e.ref(!1),i=e.ref(!1),s=e.ref(""),c=e.ref(),y=e.ref(),C=e.computed(()=>["text","qrcode","barcode","image","list","chart","rect"].filter(g=>!a.repeat||!["list","chart"].includes(g))),v=e.computed(()=>(a.fields??[]).filter(g=>`${g.label??""} ${g.field}`.toLowerCase().includes(s.value.toLowerCase())).slice(0,100)),k=e.computed(()=>({text:n.value.textHint,qrcode:n.value.codeHint,barcode:n.value.codeHint,image:n.value.imageHint,list:n.value.listHint,chart:n.value.chartHint,rect:n.value.rectHint}));function M(){r.value=!1,i.value=!1,s.value="",c.value?.focus()}function w(g){l("insert",g),M()}async function x(){i.value=!0,await e.nextTick(),y.value?.focus()}function E(g){l("field",g),M()}let f;function N(){r.value=!1,i.value=!1,s.value=""}function S(g){const m=g.currentTarget;if(!m.contains(g.relatedTarget)){if(g.relatedTarget){N();return}f!==void 0&&cancelAnimationFrame(f),f=requestAnimationFrame(()=>{f=void 0,m.isConnected&&!m.contains(document.activeElement)&&N()})}}return e.onBeforeUnmount(()=>{f!==void 0&&cancelAnimationFrame(f)}),(g,m)=>(e.openBlock(),e.createElementBlock("div",{class:"mr-insert mr-designer-controls",onKeydown:e.withKeys(e.withModifiers(M,["prevent","stop"]),["esc"]),onFocusout:S},[e.createElementVNode("button",{ref_key:"trigger",ref:c,class:"mr-insert-trigger",type:"button",disabled:t.disabled,"aria-expanded":r.value,"aria-haspopup":"dialog",onClick:m[0]||(m[0]=p=>r.value=!r.value)},[m[3]||(m[3]=e.createElementVNode("span",{"aria-hidden":"true"},"+",-1)),e.createTextVNode(e.toDisplayString(n.value.add),1)],8,cn),r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-insert-panel",role:"dialog","aria-label":n.value.title},[e.createElementVNode("header",null,[e.createElementVNode("strong",null,e.toDisplayString(i.value?t.columns?n.value.columnField:n.value.field:n.value.title),1),e.createElementVNode("button",{type:"button","aria-label":n.value.close,onClick:M},"×",8,un)]),i.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("button",{type:"button",class:"mr-insert-back",onClick:m[1]||(m[1]=p=>i.value=!1)}," ‹ "+e.toDisplayString(n.value.back),1),e.withDirectives(e.createElementVNode("input",{ref_key:"search",ref:y,"onUpdate:modelValue":m[2]||(m[2]=p=>s.value=p),"aria-label":n.value.search,placeholder:n.value.search},null,8,mn),[[e.vModelText,s.value]]),e.createElementVNode("div",pn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,p=>(e.openBlock(),e.createElementBlock("button",{key:p.field,type:"button",disabled:t.columns&&t.usedFields?.includes(p.field),onClick:d=>E(p.field)},[e.createElementVNode("strong",null,e.toDisplayString(p.label||p.field),1),e.createElementVNode("small",null,e.toDisplayString(p.field),1)],8,fn))),128)),v.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",vn,e.toDisplayString(n.value.noFields),1))])],64)):(e.openBlock(),e.createElementBlock("div",gn,[t.fields?.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-insert-field",onClick:x},[e.createElementVNode("strong",null,e.toDisplayString(t.columns?n.value.columnField:n.value.field),1),e.createElementVNode("small",null,e.toDisplayString(n.value.fieldHint),1)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,p=>(e.openBlock(),e.createElementBlock("button",{key:p,type:"button",onClick:d=>w(p)},[e.createElementVNode("strong",null,e.toDisplayString(n.value[p]),1),e.createElementVNode("small",null,e.toDisplayString(k.value[p]),1)],8,hn))),128))]))],8,dn)):e.createCommentVNode("",!0)],40,sn))}}),bn=J._export_sfc(yn,[["__scopeId","data-v-d5cc6255"]]),kn=["aria-labelledby","aria-describedby"],En={class:"mr-insert-confirm-icon","aria-hidden":"true"},Sn=["id"],Nn=["id"],wn=["id"],Vn=e.defineComponent({__name:"DesignerInsertionConfirm",props:{title:{},description:{},impacts:{},confirm:{},cancel:{}},emits:["confirm","cancel"],setup(t,{emit:o}){const a=o,l=`mr-insertion-${e.getCurrentInstance()?.uid??0}`,n=e.ref(),r=e.ref();let i=null;function s(c){if(c.isComposing||c.keyCode===229||(c.key==="Escape"&&(c.preventDefault(),a("cancel")),c.key!=="Tab"))return;c.preventDefault(),(c.shiftKey?document.activeElement===n.value?r.value:n.value:document.activeElement===r.value?n.value:r.value)?.focus()}return e.onMounted(()=>{i=document.activeElement,n.value?.focus()}),e.onBeforeUnmount(()=>{i?.isConnected&&i.focus()}),(c,y)=>(e.openBlock(),e.createElementBlock("div",{class:"mr-insert-confirm mr-designer-controls",onKeydown:e.withModifiers(s,["stop"])},[e.createElementVNode("section",{role:"alertdialog","aria-modal":"true","aria-labelledby":`${l}-title`,"aria-describedby":`${l}-description ${l}-impact`},[e.createElementVNode("span",En,[e.createVNode(J._sfc_main,{name:"file",size:20})]),e.createElementVNode("h3",{id:`${l}-title`},e.toDisplayString(t.title),9,Sn),e.createElementVNode("p",{id:`${l}-description`},e.toDisplayString(t.description),9,Nn),e.createElementVNode("ul",{id:`${l}-impact`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.impacts,C=>(e.openBlock(),e.createElementBlock("li",{key:C},e.toDisplayString(C),1))),128))],8,wn),e.createElementVNode("footer",null,[e.createElementVNode("button",{ref_key:"cancelButton",ref:n,type:"button",onClick:y[0]||(y[0]=C=>a("cancel"))},e.toDisplayString(t.cancel),513),e.createElementVNode("button",{ref_key:"confirmButton",ref:r,class:"mr-insert-confirm-action",type:"button",onClick:y[1]||(y[1]=C=>a("confirm"))},e.toDisplayString(t.confirm),513)])],8,kn)],32))}}),Cn=J._export_sfc(Vn,[["__scopeId","data-v-bc99b84c"]]),xn={title:"总计与小计",field:"汇总字段",operation:"计算方式",position:"显示位置",tableEnd:"表尾总计",groupEnd:"分组尾小计",add:"添加汇总",remove:"移除汇总",sum:"求和",avg:"平均值",count:"非空计数",noFields:"请先声明可汇总的数值字段。",scope:"范围为当前明细表全部符合显示条件的记录,跨页时继续累计。",groupScope:"范围为所选层级的每个分组,汇总各组内符合显示条件的记录。",saved:"汇总随模板保存,并进入预览、打印和导出。",empty:"选择数值字段与计算方式,即可在表格中加入汇总。",advanced:"此汇总包含高级配置,请在计算与规则中维护。",complex:"此表采用矩阵、树形、主从或单记录布局,请在对应结构规则中维护汇总。",unconfigured:"未设置",configured:"{count} 项汇总",update:"更新汇总"};function Mn(t,o,a){if(a)return a.numeric??"number";if(o)return o.type==="number"||o.type==="decimal"?o.type:void 0;if(t.valueType==="number"||t.format?.kind==="number")return"number"}function ze(t){return t.groups??(t.groupBy?[t.groupBy]:[])}function Ye(t,o){if(o.group!==void 0){const l=ze(t)[o.group];return{fields:l?.subtotal??[],aggregates:l?.aggregates??[]}}if(!t.grandTotal)return{fields:[],aggregates:[]};const a=typeof t.grandTotal=="object"?t.grandTotal:void 0;return{fields:a?.fields??ze(t)[0]?.subtotal??[],aggregates:a?.aggregates??ze(t)[0]?.aggregates??[]}}function Bn(t){return["sum","avg","count"].includes(t.op)&&(!t.valueField||t.valueField===t.field)&&!t.weightField}function Et(t,o,a,l){if(o.group!==void 0){const n=ze(t)[o.group];n.subtotal=a,n.aggregates=l}else a.length||l.length?t.grandTotal={...typeof t.grandTotal=="object"?t.grandTotal:{},fields:a,aggregates:l}:delete t.grandTotal}function Dn(t,o){const a=e.computed(()=>({...xn,...t.messages})),l=e.ref("sum"),n=e.ref(""),r=e.ref("total"),i=e.computed(()=>!!(t.list.matrix||t.list.tree||t.list.detail||t.list.cardinality==="record")),s=e.computed(()=>new Map(t.schema?.fields.map(d=>[d.field,d]))),c=e.computed(()=>new Map(t.list.computed?.map(d=>[d.field,d]))),y=e.computed(()=>new Map(t.list.columns.map(d=>[d.field,Mn(d,s.value.get(d.field),c.value.get(d.field))]))),C=e.computed(()=>new Map(t.list.columns.map(d=>[d.field,d.header]))),v=e.computed(()=>t.list.columns.filter(d=>{const b=s.value.get(d.field);return d.hidden||d.field===t.schema?.rowKey||d.field===t.list.rowKey||b?.aggregation==="none"||["identifier","dimension","date","text"].includes(b?.semanticRole??d.semanticRole??"")?!1:y.value.get(d.field)!==void 0})),k=e.computed(()=>[{key:"total",label:a.value.tableEnd},...ze(t.list).map((d,b)=>({key:`group-${b}`,group:b,label:`${a.value.groupEnd} · ${C.value.get(d.field)??d.field}`}))]),M=e.computed(()=>k.value.find(d=>d.key===r.value)??k.value[0]),w=e.computed(()=>{const d=Ye(t.list,M.value),b=new Map;for(const B of d.aggregates){const T=b.get(B.field)??[];T.push(B),b.set(B.field,T)}return[...new Set([...d.fields,...d.aggregates.map(B=>B.field)])].map(B=>{const T=b.get(B)??[],P=T[0];return{field:B,label:C.value.get(B)??B,op:P?.op??"sum",editable:T.length<=1&&(!P||Bn(P))}})}),x=e.computed(()=>!!t.readonly||i.value),E=e.computed(()=>w.value.find(d=>d.field===n.value)),f=e.computed(()=>!x.value&&v.value.some(d=>d.field===n.value)&&(!E.value||E.value.editable&&E.value.op!==l.value)),N=e.computed(()=>M.value.group===void 0?a.value.scope:a.value.groupScope),S=e.computed(()=>k.value.reduce((d,b)=>{const B=Ye(t.list,b);return d+new Set([...B.fields,...B.aggregates.map(T=>T.field)]).size},0)),g=e.computed(()=>!!E.value);e.watch(v,d=>{d.some(b=>b.field===n.value)||(n.value=d[0]?.field??"")},{immediate:!0}),e.watch(k,d=>{d.some(b=>b.key===r.value)||(r.value="total")}),e.watch([n,r,()=>t.list,()=>E.value?.op],()=>{const d=E.value;l.value=d?.editable?d.op:"sum"},{immediate:!0});function m(){if(!f.value)return;const d=JSON.parse(JSON.stringify(t.list)),b=Ye(d,M.value),B=b.aggregates.find(P=>P.field===n.value),T={...B,field:n.value,op:l.value,numeric:B?.numeric??y.value.get(n.value)};Et(d,M.value,[...b.fields],[...b.aggregates.filter(P=>P.field!==n.value),T]),o(d)}function p(d){if(x.value||!w.value.find(T=>T.field===d)?.editable)return;const b=JSON.parse(JSON.stringify(t.list)),B=Ye(b,M.value);Et(b,M.value,B.fields.filter(T=>T!==d),B.aggregates.filter(T=>T.field!==d)),o(b)}return{m:a,operation:l,field:n,position:r,fields:v,targets:k,entries:w,complex:i,blocked:x,canAdd:f,scope:N,configuredCount:S,updating:g,add:m,remove:p}}const $n=["aria-label"],Tn={class:"mr-totals-entry"},_n={class:"mr-totals-content"},In={key:0,role:"status"},Rn=["aria-label","disabled"],Pn=["value"],Ln={class:"mr-totals-fields"},An=["aria-label","disabled"],Fn=["value"],Hn=["aria-label","disabled"],On={value:"sum"},Gn={value:"avg"},zn={value:"count"},jn=["disabled"],Un={class:"mr-totals-scope"},qn={key:0},Kn=["aria-label","disabled","onClick"],Wn={key:1},Jn=e.defineComponent({__name:"TemplateTotalsEditor",props:{list:{},schema:{},readonly:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:o}){const a=t,l=o,{m:n,operation:r,field:i,position:s,fields:c,targets:y,entries:C,complex:v,blocked:k,canAdd:M,scope:w,configuredCount:x,updating:E,add:f,remove:N}=Dn(a,S=>l("change",S));return(S,g)=>(e.openBlock(),e.createElementBlock("details",{class:"mr-totals-editor mr-designer-controls","aria-label":e.unref(n).title},[e.createElementVNode("summary",null,[g[5]||(g[5]=e.createElementVNode("span",{class:"mr-totals-symbol","aria-hidden":"true"},"∑",-1)),e.createElementVNode("strong",null,e.toDisplayString(e.unref(n).title),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(x)?e.unref(n).configured.replace("{count}",String(e.unref(x))):e.unref(n).unconfigured),1),e.createElementVNode("span",Tn,[e.createTextVNode(e.toDisplayString(e.unref(n).add)+" ",1),g[4]||(g[4]=e.createElementVNode("i",{"aria-hidden":"true"},"+",-1))])]),e.createElementVNode("div",_n,[e.createElementVNode("small",null,e.toDisplayString(e.unref(n).saved),1),e.unref(v)?(e.openBlock(),e.createElementBlock("p",In,e.toDisplayString(e.unref(n).complex),1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).position),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":g[0]||(g[0]=m=>e.isRef(s)?s.value=m:null),"aria-label":e.unref(n).position,disabled:e.unref(k)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),m=>(e.openBlock(),e.createElementBlock("option",{key:m.key,value:m.key},e.toDisplayString(m.label),9,Pn))),128))],8,Rn),[[e.vModelSelect,e.unref(s)]])]),e.createElementVNode("div",Ln,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).field),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":g[1]||(g[1]=m=>e.isRef(i)?i.value=m:null),"aria-label":e.unref(n).field,disabled:e.unref(k)||!e.unref(c).length},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c),m=>(e.openBlock(),e.createElementBlock("option",{key:m.field,value:m.field},e.toDisplayString(m.header),9,Fn))),128))],8,An),[[e.vModelSelect,e.unref(i)]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(n).operation),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":g[2]||(g[2]=m=>e.isRef(r)?r.value=m:null),"aria-label":e.unref(n).operation,disabled:e.unref(k)},[e.createElementVNode("option",On,e.toDisplayString(e.unref(n).sum),1),e.createElementVNode("option",Gn,e.toDisplayString(e.unref(n).avg),1),e.createElementVNode("option",zn,e.toDisplayString(e.unref(n).count),1)],8,Hn),[[e.vModelSelect,e.unref(r)]])])]),e.createElementVNode("button",{class:"mr-totals-add",type:"button",disabled:!e.unref(M),onClick:g[3]||(g[3]=(...m)=>e.unref(f)&&e.unref(f)(...m))},e.toDisplayString(e.unref(E)?e.unref(n).update:e.unref(n).add),9,jn),e.createElementVNode("p",Un,e.toDisplayString(e.unref(w)),1),e.unref(C).length?(e.openBlock(),e.createElementBlock("ul",qn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(C),m=>(e.openBlock(),e.createElementBlock("li",{key:m.field},[e.createElementVNode("span",null,[e.createElementVNode("strong",null,e.toDisplayString(m.label),1),e.createElementVNode("small",null,e.toDisplayString(m.editable?e.unref(n)[m.op]:e.unref(n).advanced),1)]),m.editable?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","aria-label":`${e.unref(n).remove} ${m.label}`,disabled:e.unref(k),onClick:p=>e.unref(N)(m.field)}," × ",8,Kn)):e.createCommentVNode("",!0)]))),128))])):(e.openBlock(),e.createElementBlock("p",Wn,e.toDisplayString(e.unref(c).length?e.unref(n).empty:e.unref(n).noFields),1))],64))])],8,$n))}}),Yn=J._export_sfc(Jn,[["__scopeId","data-v-cdbc3e97"]]);function St(t,o){return{...G.columnsFromContract({fields:[t]})[0],widthMm:o,valueType:t.type==="number"?"number":t.type==="boolean"?"boolean":"text"}}function Qn(t,o,a){const l=t.fields.filter(i=>i.field!==t.rowKey),n=l.find(i=>i.semanticRole==="dimension")??l.find(i=>i.type==="text"||i.type==="date")??l[0];if(!n)return;const r=l.find(i=>(i.type==="number"||i.type==="decimal")&&i.semanticRole!=="identifier"&&i.aggregation!=="none");return{dataset:o,categoryField:n.field,type:"bar",measures:[r?{op:"sum",field:r.field,numeric:r.type==="decimal"?"decimal":"number",label:r.label||r.field}:{op:"count",label:a}]}}const it=96/25.4;function Xe(t){return t.kind==="list"?Math.max(16,(t.headerGrid?.rowHeightsMm?.reduce((o,a)=>o+a,0)??8)+(t.rowHeightMm??8)*3):t.heightMm}function ie(t){return{leftMm:t.leftMm,topMm:t.topMm,widthMm:t.widthMm,heightMm:Xe(t)}}function we(t,o){return o?t.template.pages[o.pageIndex]?.components[o.componentIndex]:void 0}function ut(t,o="detail"){const a={leftMm:10,topMm:10,widthMm:60,heightMm:10};return t==="chart"?{...a,kind:t,widthMm:110,heightMm:60,chartBinding:{dataset:o,categoryField:"field",measures:[{op:"sum",field:"value"}],type:"bar"}}:t==="qrcode"?{...a,kind:t,widthMm:22,heightMm:22,code:{errorCorrection:"M",quietZoneModules:4}}:t==="barcode"?{...a,kind:t,widthMm:50,heightMm:16,code:{symbology:"code128",quietZoneModules:10,showText:!0}}:t==="list"?{kind:t,leftMm:10,topMm:30,widthMm:90,dataset:o,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/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAYCAYAAAC8/X7cAAAAQ0lEQVR4nO3PsQkAIADAMP//1NVZ0CMcgtChezrm2ufnhgY0oAENaEADGtCABjSgAQ1oQAMa0IAGNKABDWhAAxrw2gWyBkQAzw4dBAAAAABJRU5ErkJggg==",meta:{designerPlaceholder:!0}}}function je(t,o,a=!1){const l=Math.max(2,Math.min(o.widthMm,t.widthMm)),n=Math.max(2,Math.min(o.heightMm,t.heightMm));return{leftMm:Math.max(0,Math.min(o.widthMm-l,t.leftMm)),topMm:Math.max(0,Math.min(o.heightMm-(a?2:n),t.topMm)),widthMm:l,heightMm:n}}function Ce(t,o){const a=t.widthMm;if(Object.assign(t,{leftMm:o.leftMm,topMm:o.topMm,widthMm:o.widthMm}),t.kind!=="list")t.heightMm=o.heightMm;else if(a>0&&o.widthMm!==a){const l=o.widthMm/a;t.columns.forEach(n=>{n.widthMm=Math.round(n.widthMm*l*100)/100}),t.widthMm=t.columns.reduce((n,r)=>n+r.widthMm,0),t.headerGrid&&(t.headerGrid.colWidthsMm=t.columns.map(n=>n.widthMm))}}function Xn(t,o,a){if(o===a||!t.columns[o]||!t.columns[a])return!1;if(t.headerGrid){if(G.resolveGridLayout(t.headerGrid,t.widthMm,100).cells.some(({cell:r})=>(r.colSpan??1)>1))throw new Error("请先拆分跨列合并表头,再调整列顺序,避免改变业务分组。");const n=Ie(t);n.forEach(r=>{r.splice(a,0,r.splice(o,1)[0])}),t.headerGrid=Re(n,t.columns.map(r=>r.widthMm),t.headerGrid.rowHeightsMm??n.map(()=>8))}return t.columns.splice(a,0,t.columns.splice(o,1)[0]),t.headerGrid&&(t.headerGrid.colWidthsMm=t.columns.map(l=>l.widthMm)),!0}function Ie(t){if(!t.headerGrid)return[t.columns.map(a=>({text:a.header}))];const o=Array.from({length:t.headerGrid.cells.length},()=>Array.from({length:t.columns.length},()=>null));for(const{cell:a,ri:l,ci:n}of G.resolveGridLayout(t.headerGrid,t.widthMm,100).cells)o[l][n]=a;return o}function Re(t,o,a){const l=new Set;return{cells:t.map((r,i)=>r.flatMap((s,c)=>{if(l.has(`${i}:${c}`))return[];if(!s)return[null];for(let y=i;y<i+(s.rowSpan??1);y++)for(let C=c;C<c+(s.colSpan??1);C++)(y!==i||C!==c)&&l.add(`${y}:${C}`);return[s]})),colWidthsMm:o,rowHeightsMm:a}}function Zn(t){const o=Ie(t),a=t.headerGrid?.rowHeightsMm??o.map(()=>8);o.unshift(t.columns.map(()=>({text:"分组",style:{align:"center",backgroundColor:"#eaf2fc",bold:!0}}))),t.headerGrid=Re(o,t.columns.map(l=>l.widthMm),[8,...a])}function ea(t,o,a,l){if(a>=l||a<0||l>=t.columns.length)throw new Error("请选择同一行的至少两个连续表头。");const n=Ie(t),r=n[o];if(!r)throw new Error("表头行不存在。");const i=r.slice(a,l+1);if(i.some(c=>!c||(c.colSpan??1)!==1||(c.rowSpan??1)!==1))throw new Error("选择包含合并区域,请先拆分,再重新合并。");const s=i[0];r[a]={...s,colSpan:l-a+1};for(let c=a+1;c<=l;c++)r[c]=null;t.headerGrid=Re(n,t.columns.map(c=>c.widthMm),t.headerGrid?.rowHeightsMm??[8])}function ta(t,o,a){if(!t.headerGrid)return;const n=G.resolveGridLayout(t.headerGrid,t.widthMm,100).cells.find(({ri:y,ci:C,cell:v})=>o>=y&&o<y+(v.rowSpan??1)&&a>=C&&a<C+(v.colSpan??1));if(!n)return;const r=Ie(t),{ri:i,ci:s,cell:c}=n;for(let y=i;y<i+(c.rowSpan??1);y++)for(let C=s;C<s+(c.colSpan??1);C++){const v={...c,text:y===r.length-1?t.columns[C].header:c.text};delete v.colSpan,delete v.rowSpan,r[y][C]=v}t.headerGrid=Re(r,t.columns.map(y=>y.widthMm),t.headerGrid.rowHeightsMm??r.map(()=>8))}function na(t,o,a=!1){const l=Ie(t),n=t.widthMm;t.columns.push(o);for(let i=0;i<l.length;i++)l[i].push({text:i===l.length-1?o.header:"",style:{...t.headerStyle,align:"center"}});const r=t.columns.reduce((i,s)=>i+s.widthMm,0);if(a)t.widthMm=r;else for(const i of t.columns)i.widthMm*=n/r;t.headerGrid&&(t.headerGrid=Re(l,t.columns.map(i=>i.widthMm),t.headerGrid.rowHeightsMm??l.map(()=>8)))}function aa(t,o,a=!1){if(t.columns.length<2||!t.columns[o])return;const l=Ie(t),n=t.widthMm;if(t.headerGrid)for(const i of G.resolveGridLayout(t.headerGrid,t.widthMm,100).cells){if(o<i.ci||o>=i.ci+(i.cell.colSpan??1)||(i.cell.colSpan??1)<2)continue;const s={...i.cell,colSpan:(i.cell.colSpan??1)-1};l[i.ri][i.ci===o?o+1:i.ci]=s}l.forEach(i=>i.splice(o,1)),t.columns.splice(o,1);const r=t.columns.reduce((i,s)=>i+s.widthMm,0);if(a)t.widthMm=r;else for(const i of t.columns)i.widthMm*=n/r;t.headerGrid&&(t.headerGrid=Re(l,t.columns.map(i=>i.widthMm),t.headerGrid.rowHeightsMm??l.map(()=>8)))}const Ve=2;function oa(t,o){return t.leftMm<o.leftMm+o.widthMm+Ve&&t.leftMm+t.widthMm+Ve>o.leftMm&&t.topMm<o.topMm+o.heightMm+Ve&&t.topMm+t.heightMm+Ve>o.topMm}function Rt(t){return{left:t.marginLeftMm??2,top:t.marginTopMm??2,right:t.widthMm-(t.marginRightMm??2),bottom:t.heightMm-(t.marginBottomMm??2)}}function la(t,o){const a=Rt(t),l=ie(o);return l.widthMm<=a.right-a.left&&l.heightMm<=a.bottom-a.top}function Pt(t,o){const a=Rt(t),l=ie(o);l.widthMm=Math.min(l.widthMm,Math.max(2,a.right-a.left)),l.heightMm=Math.min(l.heightMm,Math.max(2,a.bottom-a.top)),o.kind==="qrcode"&&(l.widthMm=l.heightMm=Math.min(l.widthMm,l.heightMm));const n=t.components.some(c=>c.kind==="list"),r=t.components.map(c=>c.kind==="list"?{leftMm:a.left,topMm:c.topMm,widthMm:a.right-a.left,heightMm:Math.max(0,a.bottom-c.topMm)}:ie(c)),i=[{leftMm:a.left,topMm:a.top}];for(const c of r.slice(0,250))i.push({leftMm:c.leftMm+c.widthMm+Ve,topMm:c.topMm}),i.push({leftMm:a.left,topMm:c.topMm+c.heightMm+Ve});i.sort((c,y)=>c.topMm-y.topMm||c.leftMm-y.leftMm);const s=i.find(c=>{const y={...l,...c};return y.leftMm>=a.left&&y.topMm>=a.top&&y.leftMm+y.widthMm<=a.right&&y.topMm+y.heightMm<=a.bottom&&!r.some(C=>oa(y,C))});if(s)return{geometry:{...l,...s},newPage:!1};if(t.layout==="wide"&&!n){const c=Math.max(a.top,...r.map(C=>C.topMm+C.heightMm+Ve)),y=Math.max(t.heightMm,c+l.heightMm+(t.marginBottomMm??2));return{geometry:{...l,leftMm:a.left,topMm:c},newPage:!1,pageHeightMm:y}}return{geometry:{...l,leftMm:a.left,topMm:a.top},newPage:!0}}function ra(t,o,a){const l=t.template.pages[o],n=Pt(l,a);if(!n.newPage)return n.pageHeightMm!==void 0&&(l.heightMm=n.pageHeightMm),Ce(a,n.geometry),l.components.push(a),{pageIndex:o,newPage:!1};const r={...l,components:[]};return r.meta&&(r.meta={...r.meta},delete r.meta.title),Ce(a,je(n.geometry,r,a.kind==="list")),r.components.push(a),t.template.pages.push(r),{pageIndex:t.template.pages.length-1,newPage:!0}}function ia(t,o){const a=t.template.repeat,l=a&&o?.[a.dataset];if(!a||!l)return;const n=a.copies??1;if(typeof n=="number")return Number.isSafeInteger(n)&&n>0&&n<=1e3?l.length*n:void 0;let r=0;for(const i of l){const s=Object.getOwnPropertyDescriptor(i,n.field)?.value;if(!Number.isSafeInteger(s)||s<1||s>1e3)return;r+=s}return r}function sa(t,o,a,l,n,r){const i=e.computed(()=>({...It,...r()})),s=e.ref(""),c=e.shallowRef(),y=e.computed(()=>{const g=c.value;if(!g)return;const p=[(g.repeat?i.value.labelPageImpact:i.value.reportPageImpact).replace("{before}",String(g.pageCount)).replace("{after}",String(g.pageCount+1))];return g.copies!==void 0&&p.push(i.value.labelCountImpact.replace("{before}",String(g.copies*g.pageCount)).replace("{after}",String(g.copies*(g.pageCount+1)))),{title:i.value.newPageTitle,description:i.value.newPageDescription.replace("{width}",String(g.widthMm)).replace("{height}",String(g.heightMm)),impacts:p,confirm:i.value.newPageConfirm,cancel:i.value.newPageCancel}});e.watch([t.draft,o.canvasPage,n,l],()=>{c.value=void 0},{flush:"sync"});function C(g){o.canvas.insertPlaced(g)&&(s.value=o.canvas.insertedOnNewPage.value?i.value.newPage:"",o.setMode("design"),a.section.value="component")}function v(g){const m=t.draft.value,p=m.template.pages[o.canvasPage.value];if(!la(p,g)){s.value=i.value.contentTooLarge;return}if(Pt(p,g).newPage){s.value="",c.value={component:g,widthMm:p.widthMm,heightMm:p.heightMm,pageCount:m.template.pages.length,copies:ia(m,n()),repeat:!!m.template.repeat};return}C(g)}function k(){c.value=void 0}function M(){const g=c.value;!g||o.editDisabled.value||(c.value=void 0,C(g.component))}const w=e.computed(()=>t.draft.value.template.repeat?.dataset??t.activeList.value?.dataset??Object.keys(l()??{})[0]??Object.keys(n()??{})[0]??"detail"),x=e.computed(()=>{const g=l()?.[w.value];if(g)return g;const m=t.activeList.value;return m?.dataset===w.value?{fields:m.columns.map(p=>({field:p.field,label:p.header,type:p.valueType==="number"?"number":"text",semanticRole:p.semanticRole}))}:{fields:Object.keys(n()?.[w.value]?.[0]??{}).map(p=>({field:p,type:"text"}))}}),E=e.computed(()=>x.value.fields.filter(g=>g.field!==x.value.rowKey));function f(g){if(o.editDisabled.value||c.value)return;const m=ut(g,w.value);if(m.kind==="chart"){const d=Qn(x.value,w.value,i.value.recordCount);if(!d){s.value=i.value.fieldsUnavailable;return}m.chartBinding=d}if(m.kind==="list"&&!E.value.length){s.value=i.value.fieldsUnavailable;return}if(m.kind==="text"&&t.draft.value.template.repeat){const d=t.draft.value.template.pages[o.canvasPage.value];m.widthMm=Math.min(60,d.widthMm/2),m.heightMm=6}m.kind==="list"&&E.value.length&&(m.columns=E.value.slice(0,4).map(d=>St(d,22.5))),m.kind==="list"&&(m.widthMm=m.columns.reduce((d,b)=>d+b.widthMm,0));const p=x.value.fields.find(d=>d.semanticRole==="identifier"&&d.field!==x.value.rowKey)?.field??x.value.rowKey;t.draft.value.template.repeat&&p&&(m.kind==="qrcode"||m.kind==="barcode")&&(m.binding={field:p}),v(m)}function N(g){if(o.editDisabled.value||c.value)return;const m=E.value.find(d=>d.field===g);if(!m)return;if(t.draft.value.template.repeat){const d=ut("text");if(d.kind==="list")return;d.widthMm=42,d.heightMm=5,d.text="",d.style={fontSize:8,lineHeight:1.1,verticalAlign:"middle"},d.binding={field:g,prefix:`${m.label||g} `,...m.format?{format:m.format}:{}},v(d);return}const p=t.lists.value[t.selected.value];!p||t.activeList.value?.columns.some(d=>d.field===g)||t.transaction(d=>{const b=d.template.pages[p.pageIndex],B=b.components[p.componentIndex];B?.kind!=="list"||b.flow||(na(B,St(m,28),b.layout==="wide"),b.layout==="wide"&&(b.widthMm=Math.max(b.widthMm,B.leftMm+B.widthMm+(b.marginRightMm??0))))})&&(a.section.value="fields",a.activate(t.activeList.value.columns.length-1))}function S(){if(o.editDisabled.value)return;const g=t.lists.value[t.selected.value],m=t.activeList.value,p=a.activeIndex.value,d=m?.columns[p];if(!g||!m||!d||m.columns.length<2){s.value=i.value.removeLast;return}const b=`$.template.pages[${g.pageIndex}].components[${g.componentIndex}]`;if(Tt.inspectTemplateFieldUsage(t.draft.value.template,m.dataset,d.field).filter(T=>T.path.startsWith(b)&&T.path!==`${b}.columns[${p}].field`).length){s.value=i.value.dependentColumn;return}t.transaction(T=>{const P=T.template.pages[g.pageIndex],z=P.components[g.componentIndex];z?.kind==="list"&&!P.flow&&aa(z,p,P.layout==="wide")})&&(s.value="",a.activate(Math.min(p,t.activeList.value.columns.length-1)))}return{fields:E,schema:x,insert:f,addField:N,removeColumn:S,notice:s,confirmation:y,confirmInsertion:M,cancelInsertion:k,messages:i}}function ca(t){function o(a){if(a.defaultPrevented||a.isComposing||a.keyCode===229||a.altKey||!(a.metaKey||a.ctrlKey))return!1;const l=a.target;if(l instanceof Element&&l.closest('input,textarea,select,[contenteditable=""],[contenteditable="true"],[role="textbox"]'))return!1;const n=a.key.toLowerCase(),r=n==="z"&&a.shiftKey||n==="y";if(n!=="z"&&n!=="y")return!1;const i=t();if(i.blocked)return!1;const s=r?i.redo:i.undo;return!s||!(r?i.canRedo:i.canUndo)?!1:(a.preventDefault(),a.stopPropagation(),s(),!0)}return{keydown:o}}function da(t,o,a=3){if(!t.tree)return o.slice(0,a).map(l=>t.columns.map(n=>_e.resolveListSampleCell(t,n,l)));if(o.length>200)return[];try{return ye.createTreeTable(o,{...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(r=>_e.resolveTreeListSampleCell(t,r,n)))}catch{return[]}}function ua(t){const o=e.ref(),a=e.ref(.8),l=e.ref(0),n=e.ref(0),r=e.computed(()=>a.value*it),i=e.computed(()=>t.document.template.pages[t.pageIndex]),s=e.computed(()=>i.value.widthMm*r.value>n.value-40);let c,y=!!t.document.template.repeat;function C(f){const N=o.value;if(!N||N.clientWidth<=40||N.clientHeight<=40)return;let S={leftMm:0,topMm:0,widthMm:i.value.widthMm,heightMm:i.value.heightMm};const g=t.selection?.pageIndex===t.pageIndex?i.value.components[t.selection.componentIndex]:void 0;f==="selection"&&g&&(S=ie(g));const m=(N.clientWidth-40)/(S.widthMm*it),p=(N.clientHeight-40)/(S.heightMm*it);a.value=Math.max(.05,Math.min(2,f==="width"?m:Math.min(m,p))),e.nextTick(()=>{N.scrollLeft=S.leftMm*r.value,N.scrollTop=S.topMm*r.value})}function v(f){y=!1,C(f)}function k(f){Number.isFinite(f)&&(y=!1,a.value=Math.max(.05,Math.min(2,f)))}function M(){const f=o.value;f&&(n.value=f.clientWidth,l.value=f.scrollWidth>f.clientWidth?Math.round(f.scrollLeft/(f.scrollWidth-f.clientWidth)*100):0)}function w(f){const N=o.value;N&&(N.scrollLeft=(N.scrollWidth-N.clientWidth)*f/100),l.value=f}function x(){M(),y&&t.document.template.repeat&&C("page")}async function E(){await e.nextTick();const f=o.value,N=t.selection;if(!f||N?.pageIndex!==t.pageIndex)return;const S=i.value.components[N.componentIndex];if(!S)return;const g=ie(S);if(S.kind==="list"&&t.columnIndex!==void 0&&t.columnIndex>=0){const B=S;g.leftMm+=B.columns.slice(0,t.columnIndex).reduce((T,P)=>T+P.widthMm,0),g.widthMm=B.columns[t.columnIndex]?.widthMm??g.widthMm}const m=g.leftMm*r.value,p=g.topMm*r.value,d=m+g.widthMm*r.value,b=p+g.heightMm*r.value;m<f.scrollLeft?f.scrollLeft=m:d>f.scrollLeft+f.clientWidth-40&&(f.scrollLeft=Math.max(0,Math.min(m,d-f.clientWidth+40))),p<f.scrollTop?f.scrollTop=p:b>f.scrollTop+f.clientHeight-40&&(f.scrollTop=Math.max(0,Math.min(p,b-f.clientHeight+40))),M()}return e.watch(()=>[t.selection,t.columnIndex,t.pageIndex],()=>{E()}),e.watch(()=>t.document.id,()=>{y=!!t.document.template.repeat,e.nextTick(x)}),e.watch(()=>[!!t.document.template.repeat,t.pageIndex,i.value.widthMm,i.value.heightMm],()=>{e.nextTick(x)}),e.onMounted(()=>{x(),typeof ResizeObserver<"u"&&o.value&&(c=new ResizeObserver(x),c.observe(o.value))}),e.onBeforeUnmount(()=>c?.disconnect()),{viewport:o,zoom:a,scale:r,page:i,wide:s,fraction:l,fit:v,setZoom:k,sync:M,navigate:w}}function ma(){const t=new WeakMap;function o(a){let l=t.get(a);return l||(l=e.computed(()=>{const n=a.kind==="list"?a.headerGrid:a.grid;if(!n)return{cells:[],limited:!1};const r=a.kind==="list"?n.rowHeightsMm?.reduce((s,c)=>s+c,0)??n.cells.length*8:a.heightMm,i=Ge.resolveGridLayout(n,a.widthMm,r).cells;return a.kind==="list"?{cells:i,limited:!1}:{cells:i.slice(0,2e3),limited:n.cells.reduce((s,c)=>s+c.length,0)>2e3}}),t.set(a,l)),l.value}return{read:o}}function pa(t,o,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?fa(t,o,a):{text:l,...t.imageData?{image:t.imageData}:{}}}function fa(t,o,a){const l=t.binding,n=o.template.repeat,r=n?a?.[n.dataset]?.[0]:void 0;if(!r)return{text:l.field,bound:!0};try{const i=_e.resolveComponentBinding(l,r,{dataset:n?.dataset,rowIndex:0});return t.kind==="image"&&i&&!_e.isLabelImageData(i)?{text:l.field,bound:!0,error:"image-binding"}:{text:i,bound:!0,...t.kind==="image"&&_e.isLabelImageData(i)?{image:i}:{}}}catch(i){return{text:l.field,bound:!0,error:i instanceof Error?i.message:String(i)}}}function Nt(t,o){const l=[1,2,5,10,20,50,100,200,500,1e3].find(r=>r*o>=36)??Math.max(1e3,Math.ceil(t/200));return Array.from({length:Math.min(201,Math.floor(t/l)+1)},(r,i)=>({mm:i*l,position:i*l*o}))}const st=[{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 Ue(t,o,a){return typeof t.meta?.title=="string"&&t.meta.title.trim()?t.meta.title:`${a} ${o+1}`}function Lt(t){return t.components.flatMap((o,a)=>{const l=o.kind==="list"?o.rowHeightMm??Xe(o):o.heightMm;return o.leftMm<0||o.topMm<0||o.leftMm+o.widthMm>t.widthMm+.001||o.topMm+l>t.heightMm+.001?[a]:[]})}function va(t,o){const a=JSON.parse(JSON.stringify(t)),l=new Set(o.flatMap(i=>i.components.map(s=>s.kind==="list"?s.id:s.nid)).filter(Boolean)),n=new Map;let r=0;for(const i of a.components){const s=i.kind==="list"?i.id:i.nid;if(!s)continue;let c;do c=`page-copy-${++r}`;while(l.has(c));l.add(c),n.set(s,c),i.kind==="list"?i.id=c:(i.nid=c,delete i.rkey)}return a.flow?.bands.forEach(i=>{i.componentIds=i.componentIds.map(s=>n.get(s)??s)}),a}function ga(t,o,a){const l=t.template.pages,n=l[o];if(!n)return 0;if(a.type==="patch")return Object.assign(n,a.patch),o;if(a.type==="remove")return l.length<=1?o:(l.splice(o,1),Math.min(o,l.length-1));const r=a.type==="duplicate"?va(n,l):JSON.parse(JSON.stringify(n));return a.type==="add"&&(r.components=[],delete r.flow,delete r.meta),l.splice(o+1,0,r),o+1}function wt(t,o,a){const l=t.filter(n=>n!==o).flatMap(n=>{const r=n[a],i=a==="leftMm"?n.widthMm:Xe(n);return[r,r+i/2,r+i]});return[...new Set(l)].sort((n,r)=>n-r)}function ha(t,o){if(!t.length)return;let a=0,l=t.length;for(;a<l;){const i=a+l>>>1;t[i]<o?a=i+1:l=i}const n=t[Math.max(0,a-1)],r=t[Math.min(t.length-1,a)];return Math.abs(n-o)<Math.abs(r-o)?n:r}function Vt(t,o,a,l){let n=1/0,r={value:Math.round(t*2)/2};for(const i of[0,o/2,o]){const s=ha(a,t+i);if(s===void 0)continue;const c=Math.abs(s-t-i);c<=l&&c<n&&(n=c,r={value:s-i,guide:s})}return r}function ya(t,o,a,l){if(l){const n=Math.abs(o)>=Math.abs(a)?o:a,r=Math.round((t.widthMm+n)*2)/2;return{...t,widthMm:r,heightMm:r}}return{...t,widthMm:Math.round((t.widthMm+o)*2)/2,heightMm:Math.round((t.heightMm+a)*2)/2}}function ba(t){let o;function a(l,n,r=!1){if(t.disabled()||l.button!==0)return;l.preventDefault(),l.stopPropagation(),o?.();const i=l.currentTarget.closest("[data-canvas-component]"),s=ie(n),c=l.clientX,y=l.clientY;let C=s,v=0;const k=t.scale.value,M=i.parentElement;let w,x;const E=()=>{for(const[b,B]of[["x",w],["y",x]])M.style.setProperty(`--mr-canvas-guide-${b}-display`,B===void 0?"none":"block"),B!==void 0&&M.style.setProperty(`--mr-canvas-guide-${b}`,`${B*k}px`)},f=()=>{v=0,E(),i.style.left=`${C.leftMm*k}px`,i.style.top=`${C.topMm*k}px`,i.style.width=`${C.widthMm*k}px`,i.style.height=`${C.heightMm*k}px`},N={leftMm:wt(t.page().components,n,"leftMm"),topMm:wt(t.page().components,n,"topMm")},S=b=>{const B=(b.clientX-c)/k,T=(b.clientY-y)/k,P=Vt(s.leftMm+B,s.widthMm,N.leftMm,5/k),z=Vt(s.topMm+T,s.heightMm,N.topMm,5/k);w=r?void 0:P.guide,x=r?void 0:z.guide,C=je(r?ya(s,B,T,n.kind==="qrcode"):{...s,leftMm:P.value,topMm:z.value},t.page(),n.kind==="list"),r&&n.kind==="qrcode"&&(C.widthMm=C.heightMm=Math.min(C.widthMm,C.heightMm)),v||(v=requestAnimationFrame(f))},g=b=>{window.removeEventListener("pointermove",S),window.removeEventListener("pointerup",m),window.removeEventListener("pointercancel",p),window.removeEventListener("keydown",d),v&&cancelAnimationFrame(v),C=b?C:s,w=void 0,x=void 0,f(),o=void 0,b&&JSON.stringify(C)!==JSON.stringify(s)&&t.commit(C)},m=()=>g(!0),p=()=>g(!1),d=b=>{b.key==="Escape"&&(b.preventDefault(),p())};window.addEventListener("pointermove",S),window.addEventListener("pointerup",m),window.addEventListener("pointercancel",p),window.addEventListener("keydown",d),o=p}return e.watch(t.disabled,l=>{l&&o?.()}),e.watch(t.page,()=>o?.()),e.onBeforeUnmount(()=>o?.()),{start:a}}const ka={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:"请先修正模板错误,再预览或保存。"},Ea={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 可供预览与文件输出共用",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:"定位字段"},ce={outlineTool:"结构大纲",reuseTool:"片段与样式",fitWidth:"适宽",fitPage:"适页",fitSelection:"选区",wideNavigation:"宽表导航",alignSelection:"对齐选区",leftEdges:"左对齐",centers:"水平居中",rightEdges:"右对齐",topEdges:"顶对齐",middles:"垂直居中",bottomEdges:"底对齐",horizontalSpacing:"水平等距",verticalSpacing:"垂直等距",lockSelection:"锁定位置",unlockSelection:"解锁位置",sessionLock:"位置锁定仅当前设计会话有效。",toolsPending:"工具中还有未应用的配置,请先应用或恢复后再保存模板。",...ka,...Ea},Sa={class:"mr-canvas"},Na={class:"mr-canvas-heading"},wa={class:"mr-canvas-sheet-info"},Va=["title"],Ca=["title"],xa={class:"mr-canvas-gesture-hint"},Ma={class:"mr-canvas-toolbar"},Ba={class:"mr-canvas-view-tools"},Da=["aria-pressed"],$a=["disabled"],Ta=["value","aria-label"],_a=["value"],Ia=["width","aria-label"],Ra=["transform"],Pa={x:"3",y:"9"},La=["height"],Aa=["transform"],Fa={x:"3",y:"10"},Ha=["data-canvas-component","aria-label","aria-pressed","tabindex","onFocus","onPointerdown","onClick","onKeydown"],Oa={class:"mr-canvas-table"},Ga={key:1,class:"mr-canvas-table-row is-header"},za=["onPointerdown"],ja={key:2,class:"mr-canvas-placeholder"},Ua=["aria-label","onPointerdown"],qa={key:1,class:"mr-canvas-static-grid"},Ka={key:0,class:"mr-canvas-grid-limit"},Wa=["title"],Ja={key:0},Ya=["src"],Qa=["title"],Xa=["aria-label","onPointerdown"],Za={key:0,class:"mr-canvas-navigator"},eo=["value","aria-label"],to=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:o}){const a=t,l=o,n=e.computed(()=>({...ce,...a.messages})),{viewport:r,zoom:i,scale:s,page:c,wide:y,fraction:C,fit:v,setZoom:k,sync:M,navigate:w}=ua({get document(){return a.document},get pageIndex(){return a.pageIndex},get selection(){return a.selection},get columnIndex(){return a.activeColumnIndex}}),x=e.computed(()=>a.disabled===!0||a.geometryDisabled===!0||!!c.value.flow),E=e.computed(()=>c.value.components.map(I=>I.kind==="list"?da(I,a.datasets?.[I.dataset]??[],c.value.flow||I.cardinality==="record"?1:3):[])),f=e.computed(()=>c.value.components.map(I=>pa(I,a.document,a.datasets))),N=ma(),S=e.ref(!0),g=e.computed(()=>Nt(c.value.widthMm,s.value)),m=e.computed(()=>Nt(c.value.heightMm,s.value));function p(I,_,$){return{width:`${_*s.value}px`,opacity:$?.35:1,textAlign:I.style?.align,paddingLeft:I.indentMm?`${I.indentMm*s.value}px`:void 0,color:I.style?.color,backgroundColor:I.style?.backgroundColor,fontWeight:I.style?.bold?"700":"400",fontSize:`${Ge.resolveFontSize(I.style).fontSizePx*i.value}px`}}function d(I){return a.locked?.({pageIndex:a.pageIndex,componentIndex:I})===!0}function b(I,_){l("select",{pageIndex:a.pageIndex,componentIndex:_,additive:I.ctrlKey||I.metaKey||I.shiftKey}),!I.ctrlKey&&!I.metaKey&&!I.shiftKey&&!d(_)&&B.start(I,c.value.components[_])}const B=ba({scale:s,page:()=>c.value,disabled:()=>x.value,commit:I=>l("geometry",I)});function T(I){return(a.selections??(a.selection?[a.selection]:[])).some(_=>_.pageIndex===a.pageIndex&&_.componentIndex===I)}function P(I){const _=c.value.components[I],$=_.kind==="list"?_.id:_.nid,R=c.value.flow?.bands.find(H=>H.componentIds.includes($??"")),D=R&&_.kind==="list"?R.topMm+R.heightMm-_.topMm:Xe(_);return{left:`${_.leftMm*s.value}px`,top:`${_.topMm*s.value}px`,width:`${_.widthMm*s.value}px`,height:`${D*s.value}px`}}function z(I,_){const $=c.value.components[_];if(x.value||d(_)||!T(_))return;const R={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]},D=R[I.key];if(!D)return;I.preventDefault(),I.stopPropagation();const H=ie($),Y=I.shiftKey?5:.5;H.leftMm+=D[0]*Y,H.topMm+=D[1]*Y,l("geometry",H)}function oe(I){let _=0;return I.columns.map($=>(_+=$.widthMm,_))}let u;e.watch(()=>x.value,I=>{I&&u?.()}),e.watch(()=>a.document,()=>u?.()),e.onBeforeUnmount(()=>u?.());function A(I,_,$){if(x.value||I.button!==0)return;I.preventDefault(),I.stopPropagation(),u?.();const R=I.clientX,D=_.columns[$].widthMm;let H=D;const Y=I.currentTarget,U=Q=>{H=Math.max(2,Math.round((D+(Q.clientX-R)/s.value)*2)/2),Y.style.transform=`translateX(${(H-D)*s.value}px)`},j=()=>{window.removeEventListener("pointermove",U),window.removeEventListener("pointerup",le),window.removeEventListener("pointercancel",ne),window.removeEventListener("keydown",re),Y.style.transform="",u=void 0},le=()=>{j(),H!==D&&l("width",$,H)},ne=()=>j(),re=Q=>{Q.key==="Escape"&&(Q.preventDefault(),ne())};window.addEventListener("pointermove",U),window.addEventListener("pointerup",le),window.addEventListener("pointercancel",ne),window.addEventListener("keydown",re),u=ne}return(I,_)=>(e.openBlock(),e.createElementBlock("div",Sa,[e.createElementVNode("div",Na,[e.createElementVNode("div",wa,[e.createElementVNode("strong",{title:e.unref(Ue)(e.unref(c),t.pageIndex,n.value.page)},e.toDisplayString(e.unref(Ue)(e.unref(c),t.pageIndex,n.value.page)),9,Va),e.createElementVNode("span",null,e.toDisplayString(e.unref(c).widthMm)+" × "+e.toDisplayString(e.unref(c).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,Ca)):e.createCommentVNode("",!0)]),e.createElementVNode("span",xa,e.toDisplayString(n.value.canvasHint),1),e.createElementVNode("div",Ma,[e.createElementVNode("nav",Ba,[e.createElementVNode("button",{type:"button","aria-pressed":S.value,onClick:_[0]||(_[0]=$=>S.value=!S.value)},e.toDisplayString(n.value.rulerToggle),9,Da),e.createElementVNode("button",{type:"button",onClick:_[1]||(_[1]=$=>e.unref(v)("width"))},e.toDisplayString(n.value.fitWidth),1),e.createElementVNode("button",{type:"button",onClick:_[2]||(_[2]=$=>e.unref(v)("page"))},e.toDisplayString(n.value.fitPage),1),e.createElementVNode("button",{type:"button",disabled:!t.selection,onClick:_[3]||(_[3]=$=>e.unref(v)("selection"))},e.toDisplayString(n.value.fitSelection),9,$a)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.zoom),1),e.createElementVNode("select",{value:e.unref(i),"aria-label":n.value.zoom,onChange:_[4]||(_[4]=$=>e.unref(k)(Number($.target.value)))},[[.5,.8,1,1.25].includes(e.unref(i))?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("option",{key:0,value:e.unref(i)},e.toDisplayString(Math.round(e.unref(i)*100))+"%",9,_a)),_[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,Ta)])])]),e.createElementVNode("div",{ref_key:"viewport",ref:r,class:"mr-canvas-scroll",onScrollPassive:_[5]||(_[5]=(...$)=>e.unref(M)&&e.unref(M)(...$))},[e.createElementVNode("div",{class:"mr-canvas-paper",style:e.normalizeStyle({width:`${e.unref(c).widthMm*e.unref(s)}px`,height:`${e.unref(c).heightMm*e.unref(s)}px`})},[S.value?(e.openBlock(),e.createElementBlock("svg",{key:0,class:"mr-canvas-ruler is-horizontal",width:e.unref(c).widthMm*e.unref(s),height:"17","aria-label":n.value.rulerLabel,role:"img"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,$=>(e.openBlock(),e.createElementBlock("g",{key:$.mm,transform:`translate(${$.position}, 0)`},[_[11]||(_[11]=e.createElementVNode("line",{y1:"12",y2:"17"},null,-1)),e.createElementVNode("text",Pa,e.toDisplayString($.mm),1)],8,Ra))),128))],8,Ia)):e.createCommentVNode("",!0),S.value?(e.openBlock(),e.createElementBlock("svg",{key:1,class:"mr-canvas-ruler is-vertical",width:"17",height:e.unref(c).heightMm*e.unref(s),"aria-hidden":"true"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,$=>(e.openBlock(),e.createElementBlock("g",{key:$.mm,transform:`translate(0, ${$.position})`},[_[12]||(_[12]=e.createElementVNode("line",{x1:"12",x2:"17"},null,-1)),e.createElementVNode("text",Fa,e.toDisplayString($.mm),1)],8,Aa))),128))],8,La)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c).components,($,R)=>(e.openBlock(),e.createElementBlock("div",{key:R,class:e.normalizeClass(["mr-canvas-component",{"is-selected":T(R),"is-locked":d(R)}]),"data-canvas-component":R,style:e.normalizeStyle(P(R)),role:"button","aria-label":`${n.value.component} ${R+1} ${$.kind}`,"aria-pressed":T(R),tabindex:T(R)?0:-1,onFocus:D=>!T(R)&&l("select",{pageIndex:t.pageIndex,componentIndex:R}),onPointerdown:D=>b(D,R),onClick:D=>D.detail===0&&!T(R)&&l("select",{pageIndex:t.pageIndex,componentIndex:R}),onKeydown:D=>z(D,R)},[$.kind==="list"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Oa,[$.header!==!1&&$.headerGrid?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-canvas-merged",style:e.normalizeStyle({height:`${($.headerGrid.rowHeightsMm?.reduce((D,H)=>D+H,0)??$.headerGrid.cells.length*8)*e.unref(s)}px`})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N).read($).cells,(D,H)=>(e.openBlock(),e.createElementBlock("div",{key:H,style:e.normalizeStyle({left:`${D.xMm*e.unref(s)}px`,top:`${D.yMm*e.unref(s)}px`,width:`${D.widthMm*e.unref(s)}px`,height:`${D.heightMm*e.unref(s)}px`,textAlign:D.cell.style?.align??"center"})},e.toDisplayString(D.cell.text),5))),128))],4)):$.header!==!1?(e.openBlock(),e.createElementBlock("div",Ga,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.columns,(D,H)=>(e.openBlock(),e.createElementBlock("div",{key:H,style:e.normalizeStyle(p({text:D.header,style:e.unref(_e.resolveListHeaderStyle)($,D)},D.widthMm,D.hidden)),onPointerdown:e.withModifiers(Y=>{l("select",{pageIndex:t.pageIndex,componentIndex:R}),l("column",H)},["stop"])},e.toDisplayString(D.header),45,za))),128))])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value[R],(D,H)=>(e.openBlock(),e.createElementBlock("div",{key:H,class:"mr-canvas-table-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.columns,(Y,U)=>(e.openBlock(),e.createElementBlock("div",{key:U,style:e.normalizeStyle(p(D[U],Y.widthMm,Y.hidden))},e.toDisplayString(D[U].text),5))),128))]))),128)),E.value[R]?.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ja,e.toDisplayString($.dataset)+" · "+e.toDisplayString($.tree&&t.datasets?.[$.dataset]?.length?n.value.treeSampleHint:n.value.sampleRows),1))]),T(R)&&!x.value&&!d(R)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(oe($),(D,H)=>(e.openBlock(),e.createElementBlock("span",{key:H,class:"mr-canvas-column-handle","aria-label":`${n.value.resizeColumn} ${$.columns[H]?.header}`,role:"separator","aria-orientation":"vertical",style:e.normalizeStyle({left:`${D*e.unref(s)}px`}),onPointerdown:Y=>A(Y,$,H)},null,44,Ua))),128)):e.createCommentVNode("",!0)],64)):$.grid?(e.openBlock(),e.createElementBlock("div",qa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N).read($).cells,(D,H)=>(e.openBlock(),e.createElementBlock("div",{key:H,style:e.normalizeStyle({left:`${D.xMm*e.unref(s)}px`,top:`${D.yMm*e.unref(s)}px`,width:`${D.widthMm*e.unref(s)}px`,height:`${D.heightMm*e.unref(s)}px`,backgroundColor:D.cell.style?.backgroundColor,color:D.cell.style?.color,fontWeight:D.cell.style?.bold?"700":"400",fontSize:`${e.unref(Ge.resolveFontSize)(D.cell.style).fontSizePx*e.unref(i)}px`,textAlign:D.cell.style?.align??"left"})},e.toDisplayString(D.cell.text),5))),128)),e.unref(N).read($).limited?(e.openBlock(),e.createElementBlock("span",Ka,e.toDisplayString(n.value.canvasGridLimited),1)):e.createCommentVNode("",!0)])):($.kind==="barcode"||$.kind==="qrcode")&&!f.value[R]?.image?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["mr-canvas-code",{"is-error":f.value[R]?.error}]),title:f.value[R]?.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($.kind==="qrcode"?n.value.insertQrcode:($.code?.symbology??"code128").toUpperCase()),1),e.createElementVNode("span",null,e.toDisplayString(f.value[R]?.text||n.value.codePlaceholder),1),f.value[R]?.bound?(e.openBlock(),e.createElementBlock("small",Ja,e.toDisplayString($.binding?.field),1)):e.createCommentVNode("",!0)],10,Wa)):f.value[R]?.image?(e.openBlock(),e.createElementBlock("img",{key:3,src:f.value[R]?.image,alt:"",draggable:"false"},null,8,Ya)):(e.openBlock(),e.createElementBlock("div",{key:4,class:e.normalizeClass(["mr-canvas-content",{"is-binding-error":f.value[R]?.error,"is-bound-image":$.kind==="image"&&$.binding}]),title:f.value[R]?.error==="image-binding"?n.value.bindingImageHint:f.value[R]?.error,style:e.normalizeStyle({color:$.style?.color,backgroundColor:$.style?.backgroundColor,fontWeight:$.style?.bold?"700":"400",fontSize:`${e.unref(Ge.resolveFontSize)($.style).fontSizePx*e.unref(i)}px`,textAlign:$.style?.align,justifyContent:$.style?.verticalAlign==="bottom"?"flex-end":$.style?.verticalAlign==="middle"?"center":"flex-start"})},e.toDisplayString(f.value[R]?.text||($.kind==="rect"?"":$.kind==="image"&&$.binding?n.value.boundImagePlaceholder:"")),15,Qa)),T(R)&&!x.value&&!d(R)?(e.openBlock(),e.createElementBlock("span",{key:5,class:"mr-canvas-resize","aria-label":n.value.resizeComponent,role:"separator",onPointerdown:D=>e.unref(B).start(D,$,!0)},null,40,Xa)):e.createCommentVNode("",!0)],46,Ha))),128))],4)],544),e.unref(y)?(e.openBlock(),e.createElementBlock("footer",Za,[e.createElementVNode("span",null,e.toDisplayString(n.value.wideNavigation),1),e.createElementVNode("input",{type:"range",min:"0",max:"100",value:e.unref(C),"aria-label":n.value.wideNavigation,onInput:_[6]||(_[6]=$=>e.unref(w)(Number($.target.value)))},null,40,eo),e.createElementVNode("span",null,e.toDisplayString(e.unref(C))+"%",1)])):e.createCommentVNode("",!0)]))}}),no=J._export_sfc(to,[["__scopeId","data-v-0329e08b"]]),ao=["disabled"],oo=["aria-label","value"],lo=["value"],ro=["aria-label","value"],io=["value"],so={class:"mr-chart-series-heading"},co=["disabled"],uo={class:"mr-chart-series-row"},mo=["value","aria-label","onChange"],po={key:0,value:""},fo=["value"],vo=["aria-label","disabled","onClick"],go={class:"mr-chart-series-row"},ho=["value","aria-label","onChange"],yo={value:"sum"},bo={value:"avg"},ko={value:"weightedAvg"},Eo={value:"count"},So={value:"min"},No={value:"max"},wo=["value","aria-label","placeholder","onChange"],Vo={key:0},Co=["aria-label","value","onChange"],xo=["value"],Mo={class:"mr-chart-series-row"},Bo=["value","aria-label","onChange"],Do={value:"number"},$o={value:"decimal"},To=["value","aria-label","placeholder","onChange"],_o={class:"mr-chart-series-row"},Io=["aria-label","value"],Ro={value:"bar"},Po={value:"line"},Lo={value:"stackedBar"},Ao={value:"percentBar"},Fo=["aria-label","value"],Ho={value:""},Oo={value:"asc"},Go={value:"desc"},zo=["aria-label","value"],jo={class:"mr-chart-check"},Uo=["checked"],qo=e.defineComponent({__name:"ChartBindingInspector",props:{component:{},schemas:{},datasets:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({...ce,...a.messages})),r=e.computed(()=>a.component.chartBinding??{dataset:"detail",categoryField:"field",type:"bar",measures:[{op:"sum",field:"value"}]}),i=e.computed(()=>[...new Set([r.value.dataset,...Object.keys(a.schemas??{}),...Object.keys(a.datasets??{})])]),s=e.computed(()=>{const x=a.schemas?.[r.value.dataset]?.fields;if(x)return x.map(f=>({field:f.field,label:f.label??f.field,type:f.type}));const E=a.datasets?.[r.value.dataset]?.[0];return[...new Set([r.value.categoryField,...r.value.measures.flatMap(f=>f.field?[f.field]:[]),...Object.keys(E??{}).slice(0,200)])].map(f=>({field:f,label:f,type:void 0}))});function c(x){a.disabled||l("change",{...r.value,...x})}function y(x,E){c({measures:r.value.measures.map((f,N)=>{if(N!==x)return f;const S={...f,...E};return S.op==="weightedAvg"&&!S.weightField&&(S.weightField=s.value.find(g=>g.field!==S.field&&["number","decimal"].includes(g.type??""))?.field??S.field??"value"),S.op!=="count"&&!S.field&&(S.field=s.value[0]?.field??"value"),S})})}function C(x,E){y(x,{field:E||void 0,numeric:s.value.find(f=>f.field===E)?.type==="decimal"?"decimal":"number"})}function v(x,E){(E===""||/^\d+$/.test(E)&&Number(E)<=100)&&y(x,{digits:E===""?void 0:Number(E)})}function k(){r.value.measures.length<12&&c({measures:[...r.value.measures,{op:"sum",field:s.value[0]?.field??"value"}]})}function M(x){r.value.measures.length>1&&c({measures:r.value.measures.filter((E,f)=>f!==x)})}const w=x=>x.target.value;return(x,E)=>(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:r.value.dataset,onChange:E[0]||(E[0]=f=>c({dataset:w(f)}))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,f=>(e.openBlock(),e.createElementBlock("option",{key:f,value:f},e.toDisplayString(f),9,lo))),128))],40,oo)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.chartCategory),1),e.createElementVNode("select",{"aria-label":n.value.chartCategory,value:r.value.categoryField,onChange:E[1]||(E[1]=f=>c({categoryField:w(f)}))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,f=>(e.openBlock(),e.createElementBlock("option",{key:f.field,value:f.field},e.toDisplayString(f.label),9,io))),128))],40,ro)]),e.createElementVNode("div",so,[e.createElementVNode("strong",null,e.toDisplayString(n.value.chartMeasure),1),e.createElementVNode("button",{type:"button",disabled:t.disabled||r.value.measures.length>=12,onClick:k},"+ "+e.toDisplayString(n.value.chartAddSeries),9,co)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value.measures,(f,N)=>(e.openBlock(),e.createElementBlock("div",{key:N,class:"mr-chart-series"},[e.createElementVNode("div",uo,[e.createElementVNode("select",{value:f.field??"","aria-label":n.value.chartMeasure,onChange:S=>C(N,w(S))},[f.op==="count"?(e.openBlock(),e.createElementBlock("option",po,e.toDisplayString(n.value.chartRecordCount),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,S=>(e.openBlock(),e.createElementBlock("option",{key:S.field,value:S.field},e.toDisplayString(S.label),9,fo))),128))],40,mo),e.createElementVNode("button",{type:"button","aria-label":n.value.chartRemoveSeries,disabled:t.disabled||r.value.measures.length===1,onClick:S=>M(N)},"×",8,vo)]),e.createElementVNode("div",go,[e.createElementVNode("select",{value:f.op,"aria-label":n.value.chartAggregation,onChange:S=>y(N,{op:w(S)})},[e.createElementVNode("option",yo,e.toDisplayString(n.value.chartSum),1),e.createElementVNode("option",bo,e.toDisplayString(n.value.chartAverage),1),e.createElementVNode("option",ko,e.toDisplayString(n.value.chartWeightedAverage),1),e.createElementVNode("option",Eo,e.toDisplayString(n.value.chartRecordCount),1),e.createElementVNode("option",So,e.toDisplayString(n.value.chartMinimum),1),e.createElementVNode("option",No,e.toDisplayString(n.value.chartMaximum),1)],40,ho),e.createElementVNode("input",{value:f.label,"aria-label":n.value.chartSeries,placeholder:n.value.chartSeries,maxlength:"256",onChange:S=>y(N,{label:w(S)||void 0})},null,40,wo)]),f.op==="weightedAvg"?(e.openBlock(),e.createElementBlock("label",Vo,[e.createTextVNode(e.toDisplayString(n.value.chartWeight),1),e.createElementVNode("select",{"aria-label":n.value.chartWeight,value:f.weightField??"",onChange:S=>y(N,{weightField:w(S)||void 0})},[E[6]||(E[6]=e.createElementVNode("option",{value:"",disabled:""},"—",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,S=>(e.openBlock(),e.createElementBlock("option",{key:S.field,value:S.field},e.toDisplayString(S.label),9,xo))),128))],40,Co)])):e.createCommentVNode("",!0),e.createElementVNode("details",null,[e.createElementVNode("summary",null,e.toDisplayString(n.value.chartNumberOptions),1),e.createElementVNode("div",Mo,[e.createElementVNode("select",{value:f.numeric??"number","aria-label":n.value.chartNumeric,onChange:S=>y(N,{numeric:w(S)})},[e.createElementVNode("option",Do,e.toDisplayString(n.value.chartNumber),1),e.createElementVNode("option",$o,e.toDisplayString(n.value.chartDecimal),1)],40,Bo),e.createElementVNode("input",{type:"number",min:"0",max:"100",value:f.digits,"aria-label":n.value.chartDigits,placeholder:n.value.chartDigits,onChange:S=>v(N,w(S))},null,40,To)])])]))),128)),e.createElementVNode("div",_o,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.chartType),1),e.createElementVNode("select",{"aria-label":n.value.chartType,value:r.value.type,onChange:E[2]||(E[2]=f=>c({type:w(f)}))},[e.createElementVNode("option",Ro,e.toDisplayString(n.value.chartBar),1),e.createElementVNode("option",Po,e.toDisplayString(n.value.chartLine),1),e.createElementVNode("option",Lo,e.toDisplayString(n.value.chartStacked),1),e.createElementVNode("option",Ao,e.toDisplayString(n.value.chartPercent),1)],40,Io)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.chartSort),1),e.createElementVNode("select",{"aria-label":n.value.chartSort,value:r.value.sort??"",onChange:E[3]||(E[3]=f=>c({sort:w(f)||void 0}))},[e.createElementVNode("option",Ho,e.toDisplayString(n.value.chartNatural),1),e.createElementVNode("option",Oo,e.toDisplayString(n.value.chartAscending),1),e.createElementVNode("option",Go,e.toDisplayString(n.value.chartDescending),1)],40,Fo)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.chartTitle),1),e.createElementVNode("input",{"aria-label":n.value.chartTitle,value:r.value.title,maxlength:"512",onChange:E[4]||(E[4]=f=>c({title:w(f)||void 0}))},null,40,zo)]),e.createElementVNode("label",jo,[e.createElementVNode("input",{type:"checkbox",checked:r.value.showValues,onChange:E[5]||(E[5]=f=>c({showValues:f.target.checked}))},null,40,Uo),e.createTextVNode(e.toDisplayString(n.value.chartValues),1)]),e.createElementVNode("p",null,e.toDisplayString(n.value.chartBindingNote),1)],8,ao))}}),At=J._export_sfc(qo,[["__scopeId","data-v-4060b1b9"]]),Ko={class:"mr-component-binding"},Wo=["value","disabled"],Jo={value:"static"},Yo=["disabled"],Qo={key:0,class:"mr-binding-hint"},Xo=["value","disabled"],Zo=["value"],el={key:0,class:"mr-binding-grid"},tl=["value","disabled"],nl={value:"natural"},al={value:"number"},ol={value:"percent"},ll={value:"date"},rl={key:0},il=["value","disabled"],sl={key:1},cl=["value","disabled"],dl={key:1},ul={class:"mr-binding-grid"},ml=["value","disabled"],pl=["value","disabled"],fl=["value","disabled"],vl={class:"mr-binding-hint"},gl=e.defineComponent({__name:"ComponentDataBinding",props:{component:{},repeat:{},schema:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({...ce,...a.messages})),r=e.computed(()=>a.component.binding),i=`mr-component-fields-${e.getCurrentInstance()?.uid??0}`;function s(k){return k.target.value}function c(k){!a.disabled&&r.value&&l("change",{...r.value,...k})}function y(k){a.disabled||(s(k)==="static"?l("change",void 0):a.repeat&&l("change",{field:a.schema?.fields[0]?.field??"value"}))}function C(k){if(!r.value||a.disabled)return;const M={...r.value},w=s(k);w==="natural"?delete M.format:M.format=w==="date"?{kind:"date",pattern:"YYYY-MM-DD"}:{kind:w,digits:2},l("change",M)}function v(k){const M=s(k),w=r.value?.format;M.trim()&&w&&w.kind!=="date"&&c({format:{...w,digits:Number(M)}})}return(k,M)=>(e.openBlock(),e.createElementBlock("div",Ko,[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:r.value?"field":"static",disabled:t.disabled,onChange:y},[e.createElementVNode("option",Jo,e.toDisplayString(n.value.staticContent),1),e.createElementVNode("option",{value:"field",disabled:!t.repeat},e.toDisplayString(n.value.recordField),9,Yo)],40,Wo)]),t.repeat?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Qo,e.toDisplayString(n.value.bindingNeedsRepeat),1)),r.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:r.value.field,list:i,disabled:t.disabled,onChange:M[0]||(M[0]=w=>s(w).trim()&&c({field:s(w).trim()}))},null,40,Xo)]),e.createElementVNode("datalist",{id:i},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.schema?.fields??[],w=>(e.openBlock(),e.createElementBlock("option",{key:w.field,value:w.field},e.toDisplayString(w.label),9,Zo))),128))]),t.component.kind==="text"?(e.openBlock(),e.createElementBlock("div",el,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valueFormat),1),e.createElementVNode("select",{value:r.value.format?.kind??"natural",disabled:t.disabled,onChange:C},[e.createElementVNode("option",nl,e.toDisplayString(n.value.naturalFormat),1),e.createElementVNode("option",al,e.toDisplayString(n.value.numberFormat),1),e.createElementVNode("option",ol,e.toDisplayString(n.value.percentFormat),1),e.createElementVNode("option",ll,e.toDisplayString(n.value.dateFormat),1)],40,tl)]),r.value.format&&r.value.format.kind!=="date"?(e.openBlock(),e.createElementBlock("label",rl,[e.createTextVNode(e.toDisplayString(n.value.decimalPlaces),1),e.createElementVNode("input",{type:"number",min:"0",max:"100",step:"1",value:r.value.format.digits??2,disabled:t.disabled,onChange:v},null,40,il)])):r.value.format?.kind==="date"?(e.openBlock(),e.createElementBlock("label",sl,[e.createTextVNode(e.toDisplayString(n.value.datePattern),1),e.createElementVNode("input",{value:r.value.format.pattern??"YYYY-MM-DD",disabled:t.disabled,onChange:M[1]||(M[1]=w=>c({format:{kind:"date",pattern:s(w)}}))},null,40,cl)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),t.component.kind!=="image"?(e.openBlock(),e.createElementBlock("details",dl,[e.createElementVNode("summary",null,e.toDisplayString(n.value.bindingDecoration),1),e.createElementVNode("div",ul,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valuePrefix),1),e.createElementVNode("input",{value:r.value.prefix??"",disabled:t.disabled,onChange:M[2]||(M[2]=w=>c({prefix:s(w)}))},null,40,ml)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valueSuffix),1),e.createElementVNode("input",{value:r.value.suffix??"",disabled:t.disabled,onChange:M[3]||(M[3]=w=>c({suffix:s(w)}))},null,40,pl)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.emptyValueText),1),e.createElementVNode("input",{value:r.value.emptyText??"",disabled:t.disabled,onChange:M[4]||(M[4]=w=>c({emptyText:s(w)}))},null,40,fl)])])):e.createCommentVNode("",!0),e.createElementVNode("p",vl,e.toDisplayString(t.repeat?.dataset)+" · "+e.toDisplayString(t.component.kind==="image"?n.value.bindingImageHint:n.value.bindingRecordHint),1)],64)):e.createCommentVNode("",!0)]))}}),hl=J._export_sfc(gl,[["__scopeId","data-v-4558f265"]]),yl={class:"mr-code-properties"},bl={key:0},kl=["value","disabled"],El={key:1},Sl=["value","disabled"],Nl={key:2,class:"mr-code-checkbox"},wl=["checked","disabled"],Vl={class:"mr-code-advanced"},Cl={class:"mr-code-grid"},xl={key:0},Ml=["value","disabled"],Bl=["min","value","disabled"],Dl={key:0},$l=e.defineComponent({__name:"CodeComponentInspector",props:{component:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({...ce,...a.messages})),r=e.computed(()=>a.component.kind==="qrcode"?4:a.component.code?.symbology?.startsWith("ean")?11:10);function i(y){return y.target.value}function s(y){a.disabled||l("change",{...a.component.code,...y})}function c(y){const C=i(y);s({symbology:C,quietZoneModules:C.startsWith("ean")?11:10})}return(y,C)=>(e.openBlock(),e.createElementBlock("div",yl,[e.createElementVNode("h3",null,e.toDisplayString(n.value.codeSettings),1),t.component.binding?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("label",bl,[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:C[0]||(C[0]=v=>s({value:i(v)}))},null,40,kl)])),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("label",El,[e.createTextVNode(e.toDisplayString(n.value.codeSymbology),1),e.createElementVNode("select",{value:t.component.code?.symbology??"code128",disabled:t.disabled,onChange:c},[...C[4]||(C[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,Sl)])):e.createCommentVNode("",!0),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("label",Nl,[e.createElementVNode("input",{type:"checkbox",checked:t.component.code?.showText===!0,disabled:t.disabled,onChange:C[1]||(C[1]=v=>s({showText:v.target.checked}))},null,40,wl),e.createTextVNode(e.toDisplayString(n.value.codeShowText),1)])):e.createCommentVNode("",!0),e.createElementVNode("details",Vl,[e.createElementVNode("summary",null,e.toDisplayString(n.value.codeAdvancedSettings),1),e.createElementVNode("div",Cl,[t.component.kind==="qrcode"?(e.openBlock(),e.createElementBlock("label",xl,[e.createTextVNode(e.toDisplayString(n.value.codeCorrection),1),e.createElementVNode("select",{value:t.component.code?.errorCorrection??"M",disabled:t.disabled,onChange:C[2]||(C[2]=v=>s({errorCorrection:i(v)}))},[...C[5]||(C[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,Ml)])):e.createCommentVNode("",!0),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.codeQuietZone),1),e.createElementVNode("input",{type:"number",min:r.value,max:"64",step:"1",value:t.component.code?.quietZoneModules??r.value,disabled:t.disabled,onChange:C[3]||(C[3]=v=>i(v).trim()&&s({quietZoneModules:Number(i(v))}))},null,40,Bl)])]),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("p",Dl,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)])]))}}),Tl=J._export_sfc($l,[["__scopeId","data-v-907fe45a"]]),_l=["aria-label"],Il=["data-align","aria-label","title","aria-checked","tabindex","onClick","onKeydown"],Rl={key:0},Pl={key:1,viewBox:"0 0 20 20",fill:"none","aria-hidden":"true"},Ll={key:0,d:"M3 4h14M3 8h9M3 12h14M3 16h9"},Al={key:1,d:"M3 4h14M6 8h8M3 12h14M6 16h8"},Fl={key:2,d:"M3 4h14M8 8h9M3 12h14M8 16h9"},Hl={key:3,d:"M3 4h14M3 8h14M3 12h14M3 16h14"},Ol=e.defineComponent({__name:"AlignmentControl",props:{modelValue:{},label:{},labels:{},autoLabel:{},allowAuto:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const a=t,l=o,n=()=>a.allowAuto?["auto","left","center","right","justify"]:["left","center","right","justify"];async function r(i,s){if(!["ArrowLeft","ArrowRight","Home","End"].includes(i.key))return;i.preventDefault();const y=n(),C=y.indexOf(s),v=i.key==="Home"?0:i.key==="End"?y.length-1:(C+(i.key==="ArrowRight"?1:-1)+y.length)%y.length;l("update:modelValue",y[v]);const k=i.currentTarget.parentElement;await e.nextTick(),k?.querySelector(`[data-align="${y[v]}"]`)?.focus()}return(i,s)=>(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(),c=>(e.openBlock(),e.createElementBlock("button",{key:c,type:"button",role:"radio","data-align":c,"aria-label":t.labels[c],title:t.labels[c],"aria-checked":t.modelValue===c,tabindex:t.modelValue===c?0:-1,onClick:y=>l("update:modelValue",c),onKeydown:y=>r(y,c)},[c==="auto"?(e.openBlock(),e.createElementBlock("span",Rl,e.toDisplayString(t.autoLabel),1)):(e.openBlock(),e.createElementBlock("svg",Pl,[c==="left"?(e.openBlock(),e.createElementBlock("path",Ll)):c==="center"?(e.openBlock(),e.createElementBlock("path",Al)):c==="right"?(e.openBlock(),e.createElementBlock("path",Fl)):(e.openBlock(),e.createElementBlock("path",Hl))]))],40,Il))),128))],8,_l))}}),mt=J._export_sfc(Ol,[["__scopeId","data-v-c85770c4"]]),Gl=["disabled"],zl={class:"mr-component-content"},jl={key:2},Ul=["value"],ql=["value"],Kl={class:"mr-component-upload"},Wl=["aria-label"],Jl={key:0,role:"alert"},Yl={key:5},Ql=["value"],Xl={key:0,class:"mr-component-type"},Zl={class:"mr-component-dimensions"},er=["value"],tr=["checked"],nr={class:"mr-component-dimensions"},ar=["value"],or=["value"],lr=["open"],rr={class:"mr-component-dimensions"},ir=["min","value","disabled","onChange"],sr={key:0},cr=["value","disabled"],dr={value:""},ur={value:"header"},mr={value:"footer"},pr=e.defineComponent({__name:"CanvasComponentInspector",props:{component:{},disabled:{type:Boolean},geometryDisabled:{type:Boolean},repeat:{},schema:{},schemas:{},datasets:{},messages:{}},emits:["geometry","patch"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({...ce,...a.messages})),r=e.ref(""),i=["leftMm","topMm","widthMm","heightMm"],s=e.computed(()=>[n.value.leftPosition,n.value.topPosition,n.value.componentWidth,n.value.componentHeight]);function c(w,x){if(a.disabled||a.geometryDisabled)return;const E=Number(x.target.value);if(!Number.isFinite(E))return;const f={...ie(a.component),[w]:E};a.component.kind==="qrcode"&&(w==="widthMm"||w==="heightMm")&&(f.widthMm=f.heightMm=E),l("geometry",f)}function y(w,x){if(a.component.kind==="list")return;const E={...a.component.style,[w]:x};w==="fontSize"&&delete E.fontSizePx,l("patch",{style:E})}const C=e.computed(()=>({auto:n.value.auto,left:n.value.left,center:n.value.center,right:n.value.right,justify:n.value.justify}));function v(w){return w.target.value}function k(w){const x={...a.component.meta};delete x.designerPlaceholder,l("patch",{imageData:w,meta:x})}async function M(w){const x=w.target,E=x.files?.[0];if(!E)return;r.value="";const f=a.component;try{if(E.size>4*1024*1024||!["image/png","image/jpeg"].includes(E.type))throw new Error(n.value.imageBudget);const N=new FileReader,S=await new Promise((g,m)=>{N.onload=()=>g(String(N.result)),N.onerror=()=>m(N.error),N.readAsDataURL(E)});!a.disabled&&a.component===f&&k(S)}catch(N){r.value=N instanceof Error?N.message:String(N)}finally{x.value=""}}return(w,x)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-component-properties",disabled:t.disabled},[e.createElementVNode("div",zl,[t.component.kind==="chart"&&!t.component.imageData?(e.openBlock(),e.createBlock(At,{key:0,component:t.component,schemas:t.schemas,datasets:t.datasets,disabled:t.disabled,messages:n.value,onChange:x[0]||(x[0]=E=>l("patch",{chartBinding:E}))},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(hl,{key:1,component:t.component,repeat:t.repeat,schema:t.schema,disabled:t.disabled,messages:n.value,onChange:x[1]||(x[1]=E=>l("patch",{binding:E,...["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",jl,[e.createTextVNode(e.toDisplayString(n.value.componentText),1),e.createElementVNode("textarea",{rows:"3",value:t.component.text,onChange:x[2]||(x[2]=E=>l("patch",{text:v(E)}))},null,40,Ul)])):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:x[3]||(x[3]=E=>k(v(E)))},null,40,ql)]),e.createElementVNode("label",Kl,[e.createTextVNode(e.toDisplayString(n.value.imageUpload),1),e.createElementVNode("input",{type:"file",accept:"image/png,image/jpeg","aria-label":n.value.imageUpload,onChange:M},null,40,Wl)]),r.value?(e.openBlock(),e.createElementBlock("p",Jl,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.component.kind==="barcode"||t.component.kind==="qrcode"?(e.openBlock(),e.createBlock(Tl,{key:4,component:t.component,disabled:t.disabled,messages:n.value,onChange:x[4]||(x[4]=E=>l("patch",{code:E,imageData:void 0}))},null,8,["component","disabled","messages"])):e.createCommentVNode("",!0),t.component.kind==="list"?(e.openBlock(),e.createElementBlock("label",Yl,[e.createTextVNode(e.toDisplayString(n.value.listDataset),1),e.createElementVNode("input",{value:t.component.dataset,onChange:x[5]||(x[5]=E=>l("patch",{dataset:v(E)}))},null,40,Ql)])):e.createCommentVNode("",!0)]),t.component.kind==="text"?(e.openBlock(),e.createElementBlock("div",Xl,[e.createElementVNode("h3",null,e.toDisplayString(n.value.textFormat),1),e.createElementVNode("div",Zl,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.fontSize),1),e.createElementVNode("input",{type:"number",min:"1",max:"200",value:e.unref(Ge.resolveFontSize)(t.component.style).fontSizePt,onChange:x[6]||(x[6]=E=>y("fontSize",Number(v(E))))},null,40,er)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.fontBold),1),e.createElementVNode("input",{type:"checkbox",checked:t.component.style?.bold===!0,onChange:x[7]||(x[7]=E=>y("bold",E.target.checked))},null,40,tr)])]),e.createVNode(mt,{"model-value":t.component.style?.align??"left",label:n.value.bodyAlign,labels:C.value,"auto-label":n.value.autoShort,"onUpdate:modelValue":x[8]||(x[8]=E=>y("align",E))},null,8,["model-value","label","labels","auto-label"]),e.createElementVNode("div",nr,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.textColor),1),e.createElementVNode("input",{type:"color",value:t.component.style?.color??"#233c5c",onChange:x[9]||(x[9]=E=>y("color",v(E)))},null,40,ar)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.backgroundColor),1),e.createElementVNode("input",{type:"color",value:t.component.style?.backgroundColor??"#ffffff",onChange:x[10]||(x[10]=E=>y("backgroundColor",v(E)))},null,40,or)])])])):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(ie)(t.component).widthMm)+" × "+e.toDisplayString(e.unref(ie)(t.component).heightMm),1)]),e.createElementVNode("div",rr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.filter(E=>t.component.kind!=="list"||E!=="heightMm"),(E,f)=>(e.openBlock(),e.createElementBlock("label",{key:E},[e.createTextVNode(e.toDisplayString(s.value[f]),1),e.createElementVNode("input",{type:"number",step:"0.5",min:E==="widthMm"||E==="heightMm"?2:0,value:e.unref(ie)(t.component)[E],disabled:t.geometryDisabled,onChange:N=>c(E,N)},null,40,ir)]))),128))]),t.component.kind!=="list"&&!t.repeat?(e.openBlock(),e.createElementBlock("label",sr,[e.createTextVNode(e.toDisplayString(n.value.repeatPage),1),e.createElementVNode("select",{value:t.component.pageAnchor??"",disabled:t.geometryDisabled,onChange:x[11]||(x[11]=E=>l("patch",{pageAnchor:v(E)||void 0}))},[e.createElementVNode("option",dr,e.toDisplayString(n.value.repeatNone),1),e.createElementVNode("option",ur,e.toDisplayString(n.value.repeatHeader),1),e.createElementVNode("option",mr,e.toDisplayString(n.value.repeatFooter),1)],40,cr)])):e.createCommentVNode("",!0)],8,lr)],8,Gl))}}),fr=J._export_sfc(pr,[["__scopeId","data-v-311305ea"]]),vr=["disabled"],gr={class:"mr-page-section-heading"},hr=["aria-label"],yr=["aria-pressed","onClick"],br={class:"mr-page-actions"},kr=["disabled"],Er={key:0,class:"mr-page-confirm",role:"alert"},Sr=["value","placeholder"],Nr=["value"],wr=["value"],Vr={value:"custom"},Cr={class:"mr-page-grid"},xr=["value"],Mr=["value"],Br=["value"],Dr={value:"page"},$r=["disabled"],Tr={class:"mr-page-grid"},_r=["value","onChange"],Ir={key:1,class:"mr-page-overflow",role:"status"},Rr=e.defineComponent({__name:"TemplatePageInspector",props:{document:{},pageIndex:{},disabled:{type:Boolean},messages:{}},emits:["select","command","locate"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({...ce,...a.messages})),r=e.computed(()=>a.document.template.pages[a.pageIndex]),i=e.computed(()=>st.find(E=>E.widthMm===r.value.widthMm&&E.heightMm===r.value.heightMm)?.id??"custom"),s=e.computed(()=>Lt(r.value)),c=e.ref(!1);e.watch(()=>[a.pageIndex,a.document],()=>{c.value=!1});const y=["marginTopMm","marginRightMm","marginBottomMm","marginLeftMm"],C=e.computed(()=>[n.value.marginTop,n.value.marginRight,n.value.marginBottom,n.value.marginLeft]);function v(E){return E.target.value}function k(E){a.disabled||l("command",{type:"patch",patch:E})}function M(E){const f=st.find(N=>N.id===v(E));f&&k({widthMm:f.widthMm,heightMm:f.heightMm,layout:"page"})}function w(E,f){const N=v(f);N.trim()&&Number.isFinite(Number(N))&&k({[E]:Number(N)})}function x(){if(!(a.disabled||a.document.template.pages.length<=1)){if(r.value.components.length&&!c.value){c.value=!0;return}l("command",{type:"remove"}),c.value=!1}}return(E,f)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-page-properties",disabled:t.disabled},[e.createElementVNode("div",gr,[e.createElementVNode("h3",null,e.toDisplayString(n.value.paperAndPages),1),e.createElementVNode("span",null,e.toDisplayString(r.value.widthMm)+" × "+e.toDisplayString(r.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,(N,S)=>(e.openBlock(),e.createElementBlock("button",{key:S,type:"button","aria-pressed":t.pageIndex===S,onClick:g=>l("select",S)},[e.createElementVNode("span",null,e.toDisplayString(S+1),1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(Ue)(N,S,n.value.page)),1),e.createElementVNode("small",null,e.toDisplayString(N.widthMm)+" × "+e.toDisplayString(N.heightMm),1)],8,yr))),128))],8,hr),e.createElementVNode("div",br,[e.createElementVNode("button",{type:"button",onClick:f[0]||(f[0]=N=>l("command",{type:"add"}))},"+ "+e.toDisplayString(n.value.addPage),1),e.createElementVNode("button",{type:"button",onClick:f[1]||(f[1]=N=>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:x},e.toDisplayString(n.value.removePage),9,kr)]),c.value?(e.openBlock(),e.createElementBlock("div",Er,[e.createElementVNode("span",null,e.toDisplayString(n.value.removePageConfirm),1),e.createElementVNode("button",{type:"button",onClick:f[2]||(f[2]=N=>c.value=!1)},e.toDisplayString(n.value.keepEditing),1),e.createElementVNode("button",{type:"button",onClick:x},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:r.value.meta?.title??"",placeholder:`${n.value.page} ${t.pageIndex+1}`,maxlength:"120",onChange:f[3]||(f[3]=N=>k({meta:{...r.value.meta,title:v(N)}}))},null,40,Sr)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperPreset),1),e.createElementVNode("select",{value:i.value,onChange:M},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(st),N=>(e.openBlock(),e.createElementBlock("option",{key:N.id,value:N.id},e.toDisplayString(N.id.startsWith("label")?n.value.labelPaper:N.id.toUpperCase())+" · "+e.toDisplayString(N.widthMm)+" × "+e.toDisplayString(N.heightMm)+" mm",9,wr))),128)),e.createElementVNode("option",Vr,e.toDisplayString(n.value.customPaper),1)],40,Nr)]),e.createElementVNode("div",Cr,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperWidth),1),e.createElementVNode("input",{type:"number",min:"1",step:"0.5",value:r.value.widthMm,onChange:f[4]||(f[4]=N=>w("widthMm",N))},null,40,xr)]),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:r.value.heightMm,onChange:f[5]||(f[5]=N=>w("heightMm",N))},null,40,Mr)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.pageLayout),1),e.createElementVNode("select",{value:r.value.layout??"page",onChange:f[6]||(f[6]=N=>k({layout:v(N)}))},[e.createElementVNode("option",Dr,e.toDisplayString(n.value.fixedPaper),1),e.createElementVNode("option",{value:"wide",disabled:!!t.document.template.repeat},e.toDisplayString(n.value.completeWide),9,$r)],40,Br)]),e.createElementVNode("details",null,[e.createElementVNode("summary",null,e.toDisplayString(n.value.pageMargins),1),e.createElementVNode("div",Tr,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(y,(N,S)=>e.createElementVNode("label",{key:N},[e.createTextVNode(e.toDisplayString(C.value[S]),1),e.createElementVNode("input",{type:"number",min:"0",step:"0.5",value:r.value[N]??0,onChange:g=>w(N,g)},null,40,_r)])),64))])]),s.value.length?(e.openBlock(),e.createElementBlock("div",Ir,[e.createElementVNode("strong",null,e.toDisplayString(n.value.pageOverflow.replace("{count}",String(s.value.length))),1),e.createElementVNode("p",null,e.toDisplayString(n.value.pageOverflowHint),1),e.createElementVNode("button",{type:"button",onClick:f[7]||(f[7]=N=>l("locate",s.value[0]))},e.toDisplayString(n.value.locateOverflow),1)])):e.createCommentVNode("",!0)],8,vr))}}),Pr=J._export_sfc(Rr,[["__scopeId","data-v-da0b7ab6"]]),Lr=["disabled"],Ar={class:"mr-repeat-toggle"},Fr=["checked","disabled"],Hr=["value","list"],Or=["id"],Gr=["value"],zr=["value"],jr=["value"],Ur={class:"mr-repeat-grid"},qr=["value"],Kr={value:"fixed"},Wr={value:"field"},Jr={key:0},Yr=["value"],Qr={key:1},Xr=["value"],Zr={class:"mr-repeat-note"},ei=e.defineComponent({__name:"TemplateRepeatInspector",props:{document:{},datasets:{},schemas:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({...ce,...a.messages})),r=e.computed(()=>a.document.template.repeat),i=e.computed(()=>a.schemas?.[r.value?.dataset??""]?.fields??[]),s=e.computed(()=>[...new Set([...a.datasets??[],...Object.keys(a.schemas??{}),...r.value?[r.value.dataset]:[]])]),c=e.computed(()=>a.document.template.pages.some(f=>f.components.some(N=>N.kind!=="list"&&N.binding))),y=e.computed(()=>a.document.template.pages.some(f=>f.layout==="wide"||!!f.flow||f.components.some(N=>N.kind==="list")||Lt(f).length>0)),C=e.computed(()=>typeof r.value?.copies=="object"?"field":"fixed"),v=`mr-repeat-fields-${e.getCurrentInstance()?.uid??0}`;function k(f){return f.target.value}function M(f){!a.disabled&&r.value&&l("change",{...r.value,...f})}function w(f){a.disabled||(f.target.checked?y.value||l("change",{dataset:s.value[0]??"detail",copies:1}):c.value||l("change",void 0))}function x(f){if(!r.value||a.disabled)return;const N={...r.value},S=k(f).trim();S?N.rowKey=S:delete N.rowKey,l("change",N)}function E(f){M({copies:k(f)==="field"?{field:i.value.find(N=>N.type==="number")?.field??"copies"}:1})}return(f,N)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-repeat-properties",disabled:t.disabled},[e.createElementVNode("label",Ar,[e.createElementVNode("span",null,[e.createElementVNode("strong",null,e.toDisplayString(n.value.repeatRecords),1),e.createElementVNode("small",null,e.toDisplayString(y.value?n.value.repeatNeedsFixed:n.value.repeatRecordsHint),1)]),e.createElementVNode("input",{type:"checkbox",checked:!!r.value,disabled:t.disabled||!!r.value&&c.value||!r.value&&y.value,onChange:w},null,40,Fr)]),r.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:r.value.dataset,list:`${v}-datasets`,onChange:N[0]||(N[0]=S=>k(S).trim()&&M({dataset:k(S).trim()}))},null,40,Hr)]),e.createElementVNode("datalist",{id:`${v}-datasets`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,S=>(e.openBlock(),e.createElementBlock("option",{key:S,value:S},null,8,Gr))),128))],8,Or),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.recordRowKey),1),e.createElementVNode("input",{value:r.value.rowKey??"",list:v,onChange:x},null,40,zr)]),e.createElementVNode("datalist",{id:v},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,S=>(e.openBlock(),e.createElementBlock("option",{key:S.field,value:S.field},e.toDisplayString(S.label),9,jr))),128))]),e.createElementVNode("div",Ur,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.labelCopies),1),e.createElementVNode("select",{value:C.value,onChange:E},[e.createElementVNode("option",Kr,e.toDisplayString(n.value.fixedCopies),1),e.createElementVNode("option",Wr,e.toDisplayString(n.value.fieldCopies),1)],40,qr)]),C.value==="fixed"?(e.openBlock(),e.createElementBlock("label",Jr,[e.createTextVNode(e.toDisplayString(n.value.copiesPerRecord),1),e.createElementVNode("input",{type:"number",min:"1",max:"1000",step:"1",value:r.value.copies??1,onChange:N[1]||(N[1]=S=>k(S).trim()&&M({copies:Number(k(S))}))},null,40,Yr)])):(e.openBlock(),e.createElementBlock("label",Qr,[e.createTextVNode(e.toDisplayString(n.value.copiesField),1),e.createElementVNode("input",{value:typeof r.value.copies=="object"?r.value.copies.field:"",list:v,onChange:N[2]||(N[2]=S=>k(S).trim()&&M({copies:{field:k(S).trim()}}))},null,40,Xr)]))]),e.createElementVNode("p",Zr,e.toDisplayString(c.value?n.value.repeatBoundHint:n.value.repeatOrderHint),1)],64)):e.createCommentVNode("",!0)],8,Lr))}}),ti=J._export_sfc(ei,[["__scopeId","data-v-de1ee031"]]),Ft={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:"定位"},ni=["aria-label"],ai=["onClick"],oi=["disabled"],li=["disabled"],ri=e.defineComponent({__name:"TemplateFieldImpactPanel",props:{change:{},messages:{},disabled:{type:Boolean}},emits:["confirm","cancel","locate"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({...Ft,...a.messages}));return(r,i)=>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),s=>(e.openBlock(),e.createElementBlock("li",{key:s.path},[e.createElementVNode("button",{type:"button",onClick:c=>l("locate",s)},e.toDisplayString(n.value.locate)+" · "+e.toDisplayString(s.path),9,ai)]))),128))]),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:t.disabled,onClick:i[0]||(i[0]=s=>l("cancel"))},e.toDisplayString(n.value.cancel),9,oi),e.createElementVNode("button",{type:"button",disabled:t.disabled,onClick:i[1]||(i[1]=s=>l("confirm"))},e.toDisplayString(n.value.continue),9,li)])],8,ni)):e.createCommentVNode("",!0)}}),ii=J._export_sfc(ri,[["__scopeId","data-v-0813913f"]]),Ht={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 映射配置已恢复,请重新选择原文件后核对。"},si={key:0,class:"mr-recovery-banner",role:"status"},ci={key:0},di={class:"mr-recovery-actions"},ui=["disabled"],mi={key:1,class:"mr-recovery-banner is-error",role:"alert"},pi={class:"mr-recovery-actions"},fi={key:2,class:"mr-recovery-status",role:"status"},vi={key:3,class:"mr-recovery-conflict",open:""},gi={class:"mr-recovery-columns"},hi={key:0},yi={key:1},bi={key:0,role:"alert"},ki={key:1,role:"status"},Ei={class:"mr-recovery-actions"},Si=["disabled"],Ni=["disabled"],wi=["disabled"],Vi=["disabled"],Ci={key:2,class:"mr-recovery-confirm"},xi=["disabled"],Mi=e.defineComponent({__name:"TemplateRecoveryPanel",props:{recovery:{},conflict:{},readonly:{type:Boolean},messages:{},canLoad:{type:Boolean},canCopy:{type:Boolean}},setup(t){const o=t,a=e.computed(()=>({...Ht,...o.messages}));return(l,n)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.recovery.available.value?(e.openBlock(),e.createElementBlock("div",si,[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",ci,e.toDisplayString(a.value.stale),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",di,[e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:n[0]||(n[0]=(...r)=>t.recovery.restore&&t.recovery.restore(...r))},e.toDisplayString(a.value.restore),9,ui),e.createElementVNode("button",{type:"button",onClick:n[1]||(n[1]=(...r)=>t.recovery.discard&&t.recovery.discard(...r))},e.toDisplayString(a.value.discard),1)])])):e.createCommentVNode("",!0),t.recovery.error.value?(e.openBlock(),e.createElementBlock("div",mi,[e.createElementVNode("span",null,e.toDisplayString(a.value.storageError)+":"+e.toDisplayString(t.recovery.error.value),1),e.createElementVNode("div",pi,[e.createElementVNode("button",{type:"button",onClick:n[2]||(n[2]=(...r)=>t.recovery.discard&&t.recovery.discard(...r))},e.toDisplayString(a.value.discard),1)])])):t.recovery.status.value!=="idle"?(e.openBlock(),e.createElementBlock("small",fi,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",vi,[e.createElementVNode("summary",null,e.toDisplayString(a.value.conflict),1),e.createElementVNode("p",null,e.toDisplayString(a.value.conflictHint),1),e.createElementVNode("div",gi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList([t.conflict.localChanges.value,t.conflict.remoteChanges.value],(r,i)=>(e.openBlock(),e.createElementBlock("section",{key:i},[e.createElementVNode("h4",null,[e.createTextVNode(e.toDisplayString(i?a.value.remote:a.value.local)+" ",1),e.createElementVNode("small",null,e.toDisplayString(r?.totalChanges??"—")+" "+e.toDisplayString(a.value.changes),1)]),r?.changes.length?(e.openBlock(),e.createElementBlock("table",hi,[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(r.changes,s=>(e.openBlock(),e.createElementBlock("tr",{key:`${s.kind}:${s.path}`},[e.createElementVNode("th",null,e.toDisplayString(s.path),1),e.createElementVNode("td",null,e.toDisplayString(s.before??"—"),1),e.createElementVNode("td",null,e.toDisplayString(s.after??"—"),1)]))),128))])])):(e.openBlock(),e.createElementBlock("p",yi,e.toDisplayString(a.value.empty),1))]))),128))]),t.conflict.error.value?(e.openBlock(),e.createElementBlock("p",bi,e.toDisplayString(t.conflict.error.value),1)):e.createCommentVNode("",!0),t.conflict.copied.value?(e.openBlock(),e.createElementBlock("p",ki,e.toDisplayString(a.value.copied),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Ei,[t.canLoad?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.conflict.busy.value,onClick:n[3]||(n[3]=(...r)=>t.conflict.load&&t.conflict.load(...r))},e.toDisplayString(a.value.loadLatest),9,Si)):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]=(...r)=>t.conflict.keepCopy&&t.conflict.keepCopy(...r))},e.toDisplayString(a.value.keepCopy),9,Ni)):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]=(...r)=>t.conflict.adoptLatest&&t.conflict.adoptLatest(...r))},e.toDisplayString(a.value.adopt),9,wi)):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]=(...r)=>t.conflict.toggleRebase&&t.conflict.toggleRebase(...r))},e.toDisplayString(a.value.rebase),9,Vi)):e.createCommentVNode("",!0)]),t.conflict.confirmRebase.value?(e.openBlock(),e.createElementBlock("div",Ci,[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]=(...r)=>t.conflict.rebase&&t.conflict.rebase(...r))},e.toDisplayString(a.value.confirm),9,xi)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],64))}}),Bi=J._export_sfc(Mi,[["__scopeId","data-v-f02f2a53"]]),Di={class:"mr-header-editor"},$i=["disabled"],Ti=["value"],_i=["value"],Ii=["value"],Ri=["disabled"],Pi=e.defineComponent({__name:"HeaderStructureEditor",props:{list:{},disabled:{type:Boolean},messages:{}},emits:["command"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({...ce,...a.messages})),r=e.ref(0),i=e.ref(0),s=e.ref(Math.min(1,a.list.columns.length-1));return e.watch(()=>a.list.columns.length,c=>{i.value=Math.min(i.value,c-1),s.value=Math.min(s.value,c-1)}),(c,y)=>(e.openBlock(),e.createElementBlock("details",Di,[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":y[0]||(y[0]=C=>r.value=C)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.headerGrid?.cells.length??1,C=>(e.openBlock(),e.createElementBlock("option",{key:C,value:C-1},e.toDisplayString(C),9,Ti))),128))],512),[[e.vModelSelect,r.value,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerFirst),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":y[1]||(y[1]=C=>i.value=C)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,(C,v)=>(e.openBlock(),e.createElementBlock("option",{key:v,value:v},e.toDisplayString(v+1)+" · "+e.toDisplayString(C.header),9,_i))),128))],512),[[e.vModelSelect,i.value,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerLast),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":y[2]||(y[2]=C=>s.value=C)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,(C,v)=>(e.openBlock(),e.createElementBlock("option",{key:v,value:v},e.toDisplayString(v+1)+" · "+e.toDisplayString(C.header),9,Ii))),128))],512),[[e.vModelSelect,s.value,void 0,{number:!0}]])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:y[3]||(y[3]=C=>l("command",{action:"add",row:r.value,first:i.value,last:s.value}))},e.toDisplayString(n.value.addHeaderRow),1),e.createElementVNode("button",{type:"button",disabled:i.value>=s.value,onClick:y[4]||(y[4]=C=>l("command",{action:"merge",row:r.value,first:i.value,last:s.value}))},e.toDisplayString(n.value.mergeHeader),9,Ri),e.createElementVNode("button",{type:"button",onClick:y[5]||(y[5]=C=>l("command",{action:"split",row:r.value,first:i.value,last:s.value}))},e.toDisplayString(n.value.splitHeader),1)])],8,$i)]))}}),Li=J._export_sfc(Pi,[["__scopeId","data-v-acd607ef"]]);function Ai(t,o,a,l){const{lists:n,selected:r,jsonPending:i,saving:s,blocked:c,validation:y,pendingLocalChanges:C,messages:v}=t,{section:k}=a,{mode:M,tool:w,canvasPage:x,setMode:E,chooseCanvas:f,locateReview:N}=o,{id:S}=l,g=e.computed(()=>[...n.value.length?["fields"]:[],"component","template","tools",...l.capabilities?.()?.advanced===!1?[]:["advanced"]]),m=e.ref(new Set(["outline","reuse"])),p=e.computed(()=>k.value==="tools"&&m.value.has(w.value));function d(D){p.value?M.value=D:E(D)}e.watch([k,w],()=>{p.value&&(M.value="design")});function b(){const D=new Set(m.value);D.has(w.value)?D.delete(w.value):D.add(w.value),m.value=D,D.has(w.value)&&(M.value="design")}function B(D){const H=Number(D.target.value);Number.isInteger(H)&&H>=0&&I({pageIndex:x.value,componentIndex:H})}function T(){k.value="tools",w.value="excel"}const P=e.computed(()=>{const D=["excel","rules","params"].filter(H=>t.pendingTools.value.includes(H)).map(H=>({target:H,label:v.value[`${H}Tool`]}));return i.value&&D.push({target:"json",label:v.value.json}),D}),z=e.computed(()=>s.value?v.value.saving:l.readonly()?v.value.saveReadonly:c.value?v.value.saveConfirmation:P.value.length?P.value.map(D=>`${D.label} · ${v.value.unapplied}`).join(";"):y.value.ok?C.value?"":v.value.saveUnchanged:v.value.saveInvalid);async function oe(D){D==="json"?k.value="advanced":(k.value="tools",w.value=D),await e.nextTick();const H=D==="json"?`#${S}-panel-advanced textarea`:`#${S}-tool-${D}`;document.querySelector(H)?.focus({preventScroll:!0})}const u=e.computed(()=>s.value?v.value.saving:l.readonly()?v.value.readonly:C.value?v.value.dirty:v.value.ready);let A=0;async function I(D){const H=++A,Y=k.value==="tools",U=n.value.findIndex(j=>j.pageIndex===D.pageIndex&&j.componentIndex===D.componentIndex);U>=0&&U!==r.value&&t.isToolPending("rules")&&!await t.guardChanges()||H===A&&(f(D),Y&&(k.value="tools"))}async function _(D){const H=++A,Y=k.value==="tools"&&w.value==="outline",U=/\.pages\[(\d+)\]\.components\[(\d+)\]/.exec(D.path??""),j=D.pageIndex??(U?Number(U[1]):void 0),le=D.componentIndex??(U?Number(U[2]):void 0),ne=n.value.findIndex(re=>re.pageIndex===j&&re.componentIndex===le);ne>=0&&ne!==r.value&&t.isToolPending("rules")&&!await t.guardChanges()||H===A&&(N(D),Y&&(k.value="tools"))}async function $(D){const H=++A,Y=D.target,U=Number(Y.value);if(t.isToolPending("rules")&&!await t.guardChanges()){Y.value=String(r.value);return}H===A&&(r.value=U)}async function R(D){if(D.isComposing||D.keyCode===229)return;const Y={ArrowRight:1,ArrowLeft:-1,Home:-g.value.length,End:g.value.length}[D.key];if(Y===void 0)return;D.preventDefault();const U=g.value.indexOf(k.value),j=D.key==="Home"?0:D.key==="End"?g.value.length-1:(U+Y+g.value.length)%g.value.length;k.value=g.value[j];const le=D.currentTarget.parentElement;await e.nextTick(),le?.querySelector(`#${S}-tab-${k.value}`)?.focus()}return{sections:g,toolPreview:p,setMode:d,toggleToolPreview:b,chooseToolComponent:B,openBinding:T,pendingConfigurations:P,saveReason:z,openPending:oe,headingStatus:u,chooseCanvas:I,locateReview:_,chooseRuleList:$,navigateSection:R}}const he=t=>`${t.pageIndex}:${t.componentIndex}`;function Fi(t,o,a){const l=e.ref([]),n=e.ref(new Set);e.watch(()=>t.value.id,()=>{l.value=[],n.value=new Set});const r=k=>!!k&&n.value.has(he(k));function i(k){const M={pageIndex:k.pageIndex,componentIndex:k.componentIndex};if(k.additive&&l.value.every(w=>w.pageIndex===k.pageIndex)){const w=l.value.some(x=>he(x)===he(k));l.value=w?l.value.filter(x=>he(x)!==he(k)):[...l.value,M],o.value=w?l.value.at(-1):M}else l.value=[M],o.value=M}const s=e.computed(()=>l.value.filter(k=>!r(k)));function c(){const k=new Set(n.value),M=l.value.every(r);for(const w of l.value)M?k.delete(he(w)):k.add(he(w));n.value=k}function y(k){s.value.length<2||a(M=>{const w=s.value.map(g=>we(M,g)).filter(Boolean),x=w.map(ie),E=Math.min(...x.map(g=>g.leftMm)),f=Math.min(...x.map(g=>g.topMm)),N=Math.max(...x.map(g=>g.leftMm+g.widthMm)),S=Math.max(...x.map(g=>g.topMm+g.heightMm));w.forEach((g,m)=>{const p=x[m],d={left:E,center:(E+N-p.widthMm)/2,right:N-p.widthMm},b={top:f,middle:(f+S-p.heightMm)/2,bottom:S-p.heightMm};k in d?p.leftMm=d[k]:p.topMm=b[k],Ce(g,p)})})}function C(k){s.value.length<3||a(M=>{const w=k==="horizontal"?"leftMm":"topMm",x=k==="horizontal"?"widthMm":"heightMm",E=s.value.map(m=>({component:we(M,m),box:ie(we(M,m))})).sort((m,p)=>m.box[w]-p.box[w]),f=E[0].box[w],S=(Math.max(...E.map(m=>m.box[w]+m.box[x]))-f-E.reduce((m,p)=>m+p.box[x],0))/(E.length-1);let g=f;for(const m of E)m.box[w]=g,Ce(m.component,m.box),g+=m.box[x]+S})}function v(k,M,w){function x(E){if(E.pageIndex!==k)return E;const f=E.componentIndex;return w===void 0?f===M?void 0:{...E,componentIndex:f>M?f-1:f}:{...E,componentIndex:f===M?w:f===w?M:f}}n.value=new Set([...n.value].flatMap(E=>{const[f,N]=E.split(":").map(Number),S=x({pageIndex:f,componentIndex:N});return S?[he(S)]:[]})),l.value=l.value.flatMap(E=>{const f=x(E);return f?[f]:[]})}return{clearLocks:()=>{n.value=new Set},selections:l,locked:r,allLocked:e.computed(()=>!!l.value.length&&l.value.every(r)),toggleLock:c,align:y,distribute:C,select:i,remap:v}}function Hi(t,o,a={}){const l=e.ref("preview"),n=e.computed({get:()=>a.mode?.()??l.value,set:g=>{a.mode?.()===void 0&&(l.value=g),a.onModeChange?.(g)}}),r=e.ref(),i=e.ref(0),s=e.computed(()=>!!t.value.template.pages[r.value?.pageIndex??i.value]?.flow),c=Fi(t,r,g=>s.value?!1:o(g)),y=e.computed(()=>we(t.value,r.value));e.watch(i,g=>{r.value?.pageIndex!==g&&(r.value=void 0,c.selections.value=[])}),e.watch(t,()=>{y.value||(r.value=void 0),c.selections.value=c.selections.value.filter(g=>!!we(t.value,g)),t.value.template.pages[i.value]||(i.value=0)});function C(g){c.select(g),i.value=g.pageIndex}function v(g){const m=r.value;return!m||c.locked(m)?!1:o(p=>{const d=we(p,m);d&&g(d,p)})}function k(g){s.value||v((m,p)=>{const d=p.template.pages[r.value.pageIndex];Ce(m,je(g,d,m.kind==="list"))})}const M=e.ref(!1);function w(g){x(ut(g))}function x(g){if(t.value.template.pages[i.value]?.flow||g.kind==="list"&&t.value.template.repeat)return!1;let m=i.value,p=-1,d=!1;const b=o(B=>{const T=JSON.parse(JSON.stringify(g)),P=ra(B,m,T);m=P.pageIndex,d=P.newPage,p=B.template.pages[m].components.length-1});return b&&(M.value=d,C({pageIndex:m,componentIndex:p})),b}function E(g){if(t.value.template.pages[i.value]?.flow||g.kind==="list"&&t.value.template.repeat)return!1;let m=-1;const p=i.value,d=o(b=>{const B=b.template.pages[p].components;B.push(g),m=B.length-1;const T=G.parseReportTemplate(b).template.pages[p].components[m];Ce(T,je(ie(T),b.template.pages[p],T.kind==="list")),T.kind==="qrcode"&&(T.widthMm=T.heightMm=Math.min(T.widthMm,T.heightMm)),B[m]=T});return d&&C({pageIndex:p,componentIndex:m}),d}function f(){if(s.value)return;const g=r.value;g&&!c.locked(g)&&o(m=>{m.template.pages[g.pageIndex].components.splice(g.componentIndex,1)})&&(c.remap(g.pageIndex,g.componentIndex),r.value=void 0)}function N(){if(s.value)return;const g=r.value;if(!g)return;let m=-1;o(p=>{const d=p.template.pages[g.pageIndex],b=JSON.parse(JSON.stringify(we(p,g))),B=ie(b);B.leftMm+=4,B.topMm+=4,Ce(b,je(B,d,b.kind==="list")),b.kind==="list"?delete b.id:(delete b.nid,delete b.rkey),d.components.push(b),m=d.components.length-1})&&C({pageIndex:g.pageIndex,componentIndex:m})}function S(g){if(s.value)return;const m=r.value;if(!m||c.locked(m))return;const p=m.componentIndex+g;t.value.template.pages[m.pageIndex]?.components[p]&&o(d=>{const b=d.template.pages[m.pageIndex].components;b.splice(p,0,b.splice(m.componentIndex,1)[0])})&&(c.remap(m.pageIndex,m.componentIndex,p),C({pageIndex:m.pageIndex,componentIndex:p}))}return{...c,mode:n,selection:r,pageIndex:i,active:y,geometryDisabled:s,select:C,mutate:v,geometry:k,insert:w,insertPlaced:x,insertedOnNewPage:M,insertComponent:E,remove:f,duplicate:N,reorder:S}}function Oi(t,o,a,l={}){const{draft:n,lists:r,selected:i,activeList:s,blocked:c,jsonPending:y,error:C}=t,{section:v,activeIndex:k}=o,M=Hi(n,t.transaction,l),{mode:w,selection:x,pageIndex:E,active:f}=M;t.connectHistoryView({read:()=>({pageIndex:E.value,componentIndex:x.value?.pageIndex===E.value?x.value.componentIndex:void 0,listIndex:i.value,fieldIndex:k.value,section:v.value}),restore:u=>{E.value=Math.max(0,Math.min(n.value.template.pages.length-1,u.pageIndex)),M.selection.value=void 0,M.selections.value=[],u.componentIndex!==void 0&&n.value.template.pages[E.value]?.components[u.componentIndex]&&M.select({pageIndex:E.value,componentIndex:u.componentIndex}),u.listIndex!==void 0&&r.value[u.listIndex]&&(i.value=u.listIndex),u.fieldIndex!==void 0&&o.activate(u.fieldIndex),u.section&&(v.value=u.section)}}),e.watch(t.historyViewRevision,()=>t.captureHistoryView(),{flush:"post"});const N=e.ref("excel"),S=e.ref(new Set);e.watch([v,N],()=>{v.value==="tools"&&(S.value=new Set([...S.value,N.value]))}),e.watch(x,u=>{if(!u)return;const A=r.value.findIndex(I=>I.pageIndex===u.pageIndex&&I.componentIndex===u.componentIndex);A>=0&&(i.value=A)}),e.watch([k,i,w,v],()=>{if(w.value!=="design"||v.value!=="fields")return;const u=r.value[i.value];u&&(x.value?.pageIndex!==u.pageIndex||x.value.componentIndex!==u.componentIndex)&&M.select({pageIndex:u.pageIndex,componentIndex:u.componentIndex})});const g=e.computed(()=>t.editingReadonly.value||c.value||y.value),m=e.computed(()=>a()?.[s.value?.dataset??""]);function p(u){w.value=u,v.value==="tools"&&(v.value=u==="design"||!r.value.length?"component":"fields")}function d(u){if(!n.value.template.pages[u.pageIndex]?.components[u.componentIndex])return;if(M.select(u),n.value.template.pages[u.pageIndex]?.components[u.componentIndex]?.kind==="list"){const I=r.value.findIndex(_=>_.pageIndex===u.pageIndex&&_.componentIndex===u.componentIndex);I>=0&&(i.value=I),v.value="fields"}else v.value="component"}function b(u){const A=u.target;A.value&&(M.insert(A.value),w.value="design",v.value="component",A.value="")}function B(u){n.value.template.pages[E.value]?.flow&&["leftMm","topMm","widthMm","heightMm","pageAnchor","grid"].some(A=>A in u)||M.mutate((A,I)=>{if(A.kind!=="list"&&u.pageAnchor!==A.pageAnchor){const $=I.template.pages[x.value.pageIndex];u.pageAnchor==="header"&&(A.topMm=$.marginTopMm??0),u.pageAnchor==="footer"&&(A.topMm=Math.max(0,$.heightMm-($.marginBottomMm??0)-A.heightMm))}const _=A;for(const[$,R]of Object.entries(u))R===void 0?delete _[$]:_[$]=R})}function T(u){const A=r.value[i.value];A&&t.transaction(I=>{I.template.pages[A.pageIndex].components[A.componentIndex]=u})}function P(u){const A=s.value;if(!A||n.value.template.pages[r.value[i.value]?.pageIndex??-1]?.flow)return;const I=JSON.parse(JSON.stringify(A));try{Xn(I,k.value,k.value+u)&&(T(I),o.activate(k.value+u))}catch(_){C.value=_ instanceof Error?_.message:String(_)}}function z(u){const A=r.value[i.value];!A||n.value.template.pages[A.pageIndex]?.flow||t.transaction(I=>{const _=I.template.pages[A.pageIndex].components[A.componentIndex];_?.kind==="list"&&(u.action==="add"?Zn(_):u.action==="merge"?ea(_,u.row,u.first,u.last):ta(_,u.row,u.first))})}function oe(u){const A=/\.pages\[(\d+)\]\.components\[(\d+)\]/.exec(u.path??""),I=u.pageIndex??(A?Number(A[1]):void 0),_=u.componentIndex??(A?Number(A[2]):void 0);if(I!==void 0){if(_===void 0){E.value=I,v.value="template",w.value="design";return}if(w.value="design",d({pageIndex:I,componentIndex:_}),u.field){const $=s.value?.columns.findIndex(R=>R.field===u.field);$!==void 0&&$>=0&&o.activate($)}}}return{mode:w,setMode:p,canvasSelection:x,canvasPage:E,canvasActive:f,tool:N,visitedTools:S,editDisabled:g,dataSchema:m,chooseCanvas:d,insertComponent:b,patchCanvas:B,changeList:T,moveColumn:P,headerCommand:z,locateReview:oe,canvas:M}}const Ot={title:"数据可视化",enabled:"启用列可视化",kind:"呈现方式",colorScale:"色阶",dataBar:"数据条",measure:"度量字段",ownField:"当前列",numeric:"度量类型",number:"真实数字",decimal:"小数文本(显式转换)",autoDomain:"自动统计范围",minimum:"最小值",maximum:"最大值",lowColor:"低值颜色",highColor:"高值颜色",color:"正值颜色",negativeColor:"负值颜色",invalid:"请检查范围与颜色;最小值不能大于最大值。",hint:"保留原始数据与编辑能力。空值不绘制,零值按真实零处理;统计范围来自当前明细。",snapshot:"Excel 数据条为静态视觉快照,修改 Excel 后不会重算。"},Gi={class:"mr-column-visual-disclosure"},zi={key:0,class:"mr-column-visual-badge"},ji={class:"mr-column-visual"},Ui={class:"mr-column-visual__toggle"},qi=["disabled"],Ki={key:0,class:"mr-column-visual__grid"},Wi=["disabled"],Ji={value:"colorScale"},Yi={value:"dataBar"},Qi=["disabled"],Xi={value:""},Zi=["value"],es=["disabled"],ts={value:"number"},ns={value:"decimal"},as=["placeholder","disabled","aria-invalid"],os=["placeholder","disabled","aria-invalid"],ls=["disabled"],rs=["disabled"],is=["disabled"],ss=["disabled"],cs={key:1,role:"status",class:"is-error"},ds={key:2},us={key:0},ms=e.defineComponent({__name:"ColumnVisualEditor",props:{modelValue:{},fields:{},readonly:{type:Boolean},messages:{}},emits:["update:modelValue"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>({...Ot,...a.messages})),r=e.ref(!!a.modelValue),i=e.ref("colorScale"),s=e.ref(""),c=e.ref("number"),y=e.ref(""),C=e.ref(""),v=e.ref("#bad8fa"),k=e.ref("#f3bcc3"),M=e.ref("#f0f7ff"),w=e.ref("#8bbcf1");let x="";function E(){const S=a.modelValue;r.value=!!S,i.value=S?.kind??"colorScale",s.value=S?.field??"",c.value=S?.numeric??"number",y.value=S?.min===void 0?"":String(S.min),C.value=S?.max===void 0?"":String(S.max),S?.kind==="colorScale"&&(M.value=S.lowColor??"#f0f7ff",w.value=S.highColor??"#8bbcf1"),S?.kind==="dataBar"&&(v.value=S.color??"#bad8fa",k.value=S.negativeColor??"#f3bcc3")}E();const f=e.computed(()=>({...s.value?{field:s.value}:{},numeric:c.value,...y.value===""?{}:{min:Number(y.value)},...C.value===""?{}:{max:Number(C.value)},...i.value==="colorScale"?{kind:"colorScale",lowColor:M.value,highColor:w.value}:{kind:"dataBar",color:v.value,negativeColor:k.value}})),N=e.computed(()=>r.value&&!ye.validColumnVisual(f.value));return e.watch(()=>JSON.stringify(a.modelValue),S=>{S!==x&&E()}),e.watch([r,f],()=>{if(a.readonly)return;const S=r.value?f.value:void 0;x=JSON.stringify(S),l("update:modelValue",S)},{flush:"post"}),(S,g)=>(e.openBlock(),e.createElementBlock("details",Gi,[e.createElementVNode("summary",null,[e.createTextVNode(e.toDisplayString(n.value.title),1),r.value?(e.openBlock(),e.createElementBlock("span",zi,e.toDisplayString(i.value==="colorScale"?n.value.colorScale:n.value.dataBar),1)):e.createCommentVNode("",!0)]),e.createElementVNode("fieldset",ji,[e.createElementVNode("legend",null,e.toDisplayString(n.value.title),1),e.createElementVNode("label",Ui,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":g[0]||(g[0]=m=>r.value=m),type:"checkbox",disabled:t.readonly},null,8,qi),[[e.vModelCheckbox,r.value]]),e.createTextVNode(e.toDisplayString(n.value.enabled),1)]),r.value?(e.openBlock(),e.createElementBlock("div",Ki,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.kind),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":g[1]||(g[1]=m=>i.value=m),disabled:t.readonly},[e.createElementVNode("option",Ji,e.toDisplayString(n.value.colorScale),1),e.createElementVNode("option",Yi,e.toDisplayString(n.value.dataBar),1)],8,Wi),[[e.vModelSelect,i.value]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.measure),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":g[2]||(g[2]=m=>s.value=m),disabled:t.readonly},[e.createElementVNode("option",Xi,e.toDisplayString(n.value.ownField),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields??[],m=>(e.openBlock(),e.createElementBlock("option",{key:m.field,value:m.field},e.toDisplayString(m.label??m.field),9,Zi))),128))],8,Qi),[[e.vModelSelect,s.value]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.numeric),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":g[3]||(g[3]=m=>c.value=m),disabled:t.readonly},[e.createElementVNode("option",ts,e.toDisplayString(n.value.number),1),e.createElementVNode("option",ns,e.toDisplayString(n.value.decimal),1)],8,es),[[e.vModelSelect,c.value]])]),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["min","max"],m=>e.createElementVNode("label",{key:m},[e.createTextVNode(e.toDisplayString(m==="min"?n.value.minimum:n.value.maximum),1),m==="min"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":g[4]||(g[4]=p=>y.value=p),type:"number",step:"any",placeholder:n.value.autoDomain,disabled:t.readonly,"aria-invalid":N.value||void 0},null,8,as)),[[e.vModelText,y.value]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":g[5]||(g[5]=p=>C.value=p),type:"number",step:"any",placeholder:n.value.autoDomain,disabled:t.readonly,"aria-invalid":N.value||void 0},null,8,os)),[[e.vModelText,C.value]])])),64)),i.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":g[6]||(g[6]=m=>M.value=m),type:"color",disabled:t.readonly},null,8,ls),[[e.vModelText,M.value]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.highColor),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":g[7]||(g[7]=m=>w.value=m),type:"color",disabled:t.readonly},null,8,rs),[[e.vModelText,w.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":g[8]||(g[8]=m=>v.value=m),type:"color",disabled:t.readonly},null,8,is),[[e.vModelText,v.value]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.negativeColor),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":g[9]||(g[9]=m=>k.value=m),type:"color",disabled:t.readonly},null,8,ss),[[e.vModelText,k.value]])])],64))])):e.createCommentVNode("",!0),N.value?(e.openBlock(),e.createElementBlock("small",cs,e.toDisplayString(n.value.invalid),1)):r.value?(e.openBlock(),e.createElementBlock("p",ds,[e.createTextVNode(e.toDisplayString(n.value.hint),1),i.value==="dataBar"?(e.openBlock(),e.createElementBlock("span",us,e.toDisplayString(n.value.snapshot),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])]))}}),Gt=J._export_sfc(ms,[["__scopeId","data-v-23b874d6"]]);function ps(t,o,a){if(!t.length)return;const l=Math.max(0,t.indexOf(o)),r={ArrowDown:Math.min(l+1,t.length-1),ArrowUp:Math.max(l-1,0),Home:0,End:t.length-1}[a];return r===void 0?void 0:t[r]}function fs(t,o,a){const l=e.ref(!1),n=e.ref(t.activeIndex.value),r=e.ref(null),i=e.ref(null),s=e.ref(null),c=e.ref(null),y=e.ref(0),C=100,v=e.computed(()=>a.value.slice(y.value,y.value+C));function k(){const d=Math.max(0,a.value.findIndex(b=>b.index===n.value));y.value=Math.floor(d/C)*C}async function M(d){const b=Math.max(0,Math.min(Math.max(0,a.value.length-1),y.value+d*C));n.value=a.value[b]?.index??-1,k(),await e.nextTick(),w(!0)}function w(d=!1){const b=c.value,B=b?.querySelector(`button[data-column-index="${n.value}"]`);if(!b||!B)return;d&&B.focus({preventScroll:!0});const T=b.getBoundingClientRect(),P=B.getBoundingClientRect(),z=T.top+b.clientTop,oe=z+b.clientHeight;P.top<z?b.scrollTop+=P.top-z:P.bottom>oe&&(b.scrollTop+=P.bottom-oe)}async function x(d=!1){l.value&&(l.value=!1,d&&(await e.nextTick(),r.value?.focus({preventScroll:!0})))}async function E(){if(l.value)return x(!0);const d=a.value.map(b=>b.index);n.value=d.includes(t.activeIndex.value)?t.activeIndex.value:d[0]??-1,l.value=!0,k(),await e.nextTick(),s.value?.focus({preventScroll:!0}),w()}function f(d){t.activate(d),x(!0)}function N(d){!l.value||d.isComposing||d.keyCode===229||(d.preventDefault(),d.stopPropagation(),x(!0))}async function S(d){if(d.isComposing||d.keyCode===229)return;const b=ps(a.value.map(B=>B.index),n.value,d.key);b!==void 0&&(n.value=b,k(),d.preventDefault(),await e.nextTick(),w(!0))}async function g(d){if(d.isComposing||d.keyCode===229||!["ArrowDown","ArrowUp","Enter"].includes(d.key))return;d.preventDefault(),d.stopPropagation();const b=a.value.map(B=>B.index);if(b.length){if(d.key==="Enter"){b.includes(n.value)&&f(n.value);return}d.key==="ArrowUp"&&(n.value=b.at(-1)),k(),await e.nextTick(),w(!0)}}function m(d){const b=d.target;!l.value||i.value?.contains(b)||r.value?.contains(b)||x()}function p(d){const b=d.relatedTarget;!b||i.value?.contains(b)||r.value?.contains(b)||x()}return e.watch(a,d=>{d.some(b=>b.index===n.value)||(n.value=d[0]?.index??-1),k()}),e.watch(o,()=>{x()}),e.onMounted(()=>document.addEventListener("pointerdown",m)),e.onBeforeUnmount(()=>document.removeEventListener("pointerdown",m)),{open:l,cursor:n,trigger:r,panel:i,search:s,list:c,windowColumns:v,windowStart:y,windowSize:C,stepWindow:M,toggle:E,close:x,choose:f,escape:N,navigate:S,searchKeydown:g,leave:p}}const zt=Symbol("mach-report:tool-drafts");function vs(t,o){const a=e.ref({}),l=e.ref(0),n={epoch:l,read:i=>a.value[i],write(i,s){const c=a.value[i];if(c?.baseline===s?.baseline&&c?.value===s?.value)return;const y={...a.value};s?y[i]=s:delete y[i],a.value=y;const C=i.split(":")[0];t(C,Object.keys(y).some(v=>v.split(":")[0]===C)),o?.()}};e.provide(zt,n);function r(i){a.value=JSON.parse(JSON.stringify(i));for(const s of["params","rules","excel"])t(s,Object.keys(i).some(c=>c.split(":")[0]===s));l.value++}return{records:a,restore:r,clear:()=>r({})}}function gs(t){const o=e.inject(zt,void 0);if(!o)return;let a=!1,l={key:t.key(),baseline:t.baseline(),value:t.snapshot()};const n=(i,s)=>{const c=o.read(t.key());if(!c&&(!s||i[1]===s[1]))return;const y=c??(l.key===i[0]?l:void 0);if(!(!y&&!t.reset)){a=!0;try{!c&&t.reset?t.reset():y&&t.restore(y.value,y.baseline,{pending:!!c})}finally{a=!1}}};e.watch(()=>[t.key(),o.epoch.value],n,{immediate:!0,flush:"post"});const r=e.watch([t.pending,t.snapshot],()=>{a||(t.pending()||(l={key:t.key(),baseline:t.baseline(),value:t.snapshot()}),o.write(t.key(),t.pending()?{baseline:t.baseline(),value:t.snapshot()}:void 0))},{flush:"post"});e.onBeforeUnmount(r)}const pt=new WeakMap;function hs(t,o,a){let l=pt.get(t);l||(l=new Map,pt.set(t,l));const n=l.get(o);let r,i;const s=new Promise((M,w)=>{r=M,i=w}),c={run:a,resolve:r,reject:i};if(n)return n.latest?.resolve(),n.latest=c,s;let y;const C={done:new Promise(M=>{y=M}),finish:()=>y()};l.set(o,C);const v=()=>{const M=C.latest;C.latest=void 0,M?k(M):(l.delete(o),C.finish())},k=M=>{let w;try{w=M.run()}catch(x){M.reject(x),v();return}Promise.resolve(w).then(M.resolve,M.reject).then(v)};return k(c),s}async function ys(t,o){await pt.get(t)?.get(o)?.done}function ae(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function be(t,o){return o.every(a=>typeof t[a]=="string")}function se(t){return Array.isArray(t)&&t.length<=1e4}function jt(t,o=0){return!ae(t)||o>16?!1:"op"in t?typeof t.op=="string"&&se(t.args)&&t.args.every(a=>jt(a,o+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 Ct(t){return ae(t)&&typeof t.field=="string"&&jt(t.expression)}function qe(t){return se(t)&&t.every(o=>typeof o=="string")}function bs(t){return ae(t)&&qe(t.rowFields)&&qe(t.columnFields)&&se(t.measures)&&t.measures.every(o=>ae(o)&&typeof o.op=="string")}function xt(t){return ae(t)&&be(t,["sheet","dataset","rowKey"])&&qe(t.fields)&&ae(t.regions)}function Mt(t){return ae(t)&&typeof t.sheet=="string"&&se(t.regions)&&t.regions.every(o=>ae(o)&&be(o,["id","range","dataset","mode","rowKey"])&&qe(o.fields))}function Bt(t,o){return se(t)&&t.every(a=>Array.isArray(a)&&a.length===2&&typeof a[0]=="string"&&o(a[1]))}function ks(t){return typeof t.initial=="string"&&Number.isSafeInteger(t.selected)&&se(t.rows)&&t.rows.every(Es)}function Es(t){return ae(t)&&be(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||qe(t.dependsOn))&&se(t.options)&&t.options.every(o=>ae(o)&&be(o,["label","value"]))}function Ss(t){return Ct(t.formula)&&se(t.groups)&&t.groups.every(o=>ae(o)&&typeof o.field=="string")&&ae(t.when)&&ae(t.style)&&be(t,["selectedComputed","column","conditionKey","effect","tab","formulaBaseline","groupBaseline","conditionBaseline"])&&Number.isSafeInteger(t.conditionIndex)&&Bt(t.computedDrafts,Ct)&&Bt(t.conditionDrafts,o=>ae(o)&&ae(o.when)&&ae(o.style))}function Ns(t){return typeof t.enabled=="boolean"&&typeof t.baseline=="string"&&ae(t.detail)&&be(t.detail,["dataset","parentKey","foreignKey"])&&se(t.detail.columns)&&t.detail.columns.every(o=>ae(o)&&be(o,["field","header"]))&&bs(t.matrix)&&ae(t.tree)&&typeof t.tree.input=="string"}function ws(t){return xt(t.recipe)&&Mt(t.regions)&&ae(t.identity)&&be(t.identity,["id","name"])&&ae(t.cached)&&se(t.cached.table)&&t.cached.table.every(xt)&&se(t.cached.regions)&&t.cached.regions.every(Mt)&&(t.mode==="table"||t.mode==="regions")}function Vs(t,o,a){const l=JSON.parse(o);if(!ae(l))throw new Error("Invalid stored tool draft");const n=t==="params"?ks(l):t==="excel"?ws(l):t.split(":").length>3?Ns(l):Ss(l);if(t==="params"){const r=JSON.parse(a);if(!se(r)||!r.every(i=>ae(i)&&typeof i.field=="string"))throw new Error("Invalid stored parameter baseline")}if(!n)throw new Error(`Invalid stored ${t.split(":")[0]} draft`)}function Cs(t){return{read:o=>t.getItem(o),write:(o,a)=>t.setItem(o,a),remove:o=>t.removeItem(o)}}function xs(t,o){if(!t.trim()||t.length>1024||o.length>1024)throw new Error("Draft scope and template identity must be bounded and non-empty");return`mach-report:draft:1:${JSON.stringify([t,o])}`}function Ms(t){const o=t.maxBytes??2097152,a=t.debounceMs??400;if(!Number.isSafeInteger(o)||o<1024||o>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:o,debounceMs:a}}function Dt(t,o,a){if(t.length*2>a)throw new Error("Draft exceeds storage budget");const l=JSON.parse(t);if(l.version!==1||l.templateId!==o||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=G.parseReportTemplate(l.baseline),l.document=G.parseReportTemplate(l.document),l.baseline.id!==o||l.document.id!==o||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,r]of Object.entries(l.tools)){if(!/^(params|excel|rules:[0-9]+:[0-9]+(?::(?:detail|matrix|tree))?)$/.test(n)||!r||typeof r.baseline!="string"||typeof r.value!="string")throw new Error("Invalid tool draft");Vs(n,r.value,r.baseline)}return l}function Bs(t){const o=e.ref(!1),a=e.shallowRef(),l=e.ref(""),n=e.ref("idle"),r=e.computed(()=>!!a.value&&G.serializeReportTemplate(a.value.baseline)!==t.baseline());let i,s=0,c=!1,y=!1,C=new AbortController,v=new AbortController,k=Promise.resolve(),M;function w(){clearTimeout(i),i=void 0,s++,C.abort(),v.abort(),C=new AbortController,v=new AbortController}function x(p,d){!c&&d===s&&(l.value=p instanceof Error?p.message:String(p))}async function E(){w();const p=s;o.value=!0,y=!1,a.value=void 0,l.value="",n.value="idle",M=void 0;try{const d=t.storage();if(!d)return;const b=t.id();if(M={storage:d,key:xs(d.scope,b),...Ms(d)},await ys(d.adapter,M.key),p!==s||c)return;const B=await d.adapter.read(M.key,{signal:v.signal});if(p!==s||c||B===null)return;a.value=Dt(B,b,M.maxBytes)}catch(d){p===s&&(y=!0),x(d,p)}finally{p===s&&!c&&(o.value=!1)}}function f(p){const d=M;if(!d)return;const b=s,B=C.signal;n.value="saving";const T=async()=>{B.aborted||(p===null?await d.storage.adapter.remove(d.key,{signal:B}):await d.storage.adapter.write(d.key,p,{signal:B}),!c&&b===s&&(n.value=p===null?"idle":"saved",l.value=""))};k=hs(d.storage.adapter,d.key,T).catch(P=>x(P,b))}function N(){if(clearTimeout(i),i=void 0,!(!M||a.value))try{if(!t.pending()){y||f(null);return}const p=JSON.stringify(t.snapshot());Dt(p,t.id(),M.maxBytes),f(p)}catch(p){x(p,s)}}function S(){clearTimeout(i),!(!M||a.value)&&(i=setTimeout(N,M.debounceMs))}async function g(){a.value=void 0,y=!1,f(null),await k,S()}function m(){if(a.value)try{t.restore(a.value),a.value=void 0,S()}catch(p){x(p,s)}}return e.watch([t.id,()=>t.storage()?.scope,()=>t.storage()?.adapter,()=>t.storage()?.maxBytes,()=>t.storage()?.debounceMs],()=>{E()},{immediate:!0}),e.watch([t.pending,t.changedSource],S,{deep:!0}),e.onMounted(()=>{globalThis.addEventListener?.("pagehide",N)}),e.onBeforeUnmount(()=>{globalThis.removeEventListener?.("pagehide",N),N(),c=!0,v.abort(),clearTimeout(i)}),{available:a,stale:r,error:l,status:n,checking:o,restore:m,discard:g,flush:N}}function Ds(t){const o=e.ref(!1),a=e.shallowRef(),l=e.ref(!1),n=e.ref(""),r=e.ref(!1),i=e.ref(!1);let s=0,c;const y=e.computed(()=>G.diffReportTemplates(t.baseline(),t.local(),{maxChanges:100})),C=e.computed(()=>a.value?G.diffReportTemplates(t.baseline(),a.value,{maxChanges:100}):void 0);function v(){s++,c?.abort(),c=void 0,l.value=!1}function k(){v(),o.value=!1,a.value=void 0,n.value="",r.value=!1,i.value=!1}async function M(){const N=t.configuration().loadLatest;if(!N||l.value)return;v();const S=s,g=t.local().id;c=new AbortController,l.value=!0,n.value="";try{const m=G.parseReportTemplate(await N({id:g,signal:c.signal}));if(S!==s)return;if(m.id!==g)throw new Error("Latest template identity does not match");a.value=m}catch(m){S===s&&(n.value=m instanceof Error?m.message:String(m))}finally{S===s&&(l.value=!1)}}function w(N){k(),o.value=!0,N?a.value=G.parseReportTemplate(N):M()}async function x(){!a.value||l.value||await t.applyLatest(G.parseReportTemplate(a.value))&&k()}function E(){if(!(!a.value||l.value||!r.value))try{t.rebase(G.parseReportTemplate(a.value)),k()}catch(N){n.value=N instanceof Error?N.message:String(N)}}async function f(){const N=t.configuration().keepCopy;if(!N||l.value)return;v();const S=s,g=G.parseReportTemplate(t.local());c=new AbortController,l.value=!0,n.value="";try{await N(g,{id:g.id,sourceRevision:g.revision,signal:c.signal}),S===s&&(i.value=!0)}catch(m){S===s&&(n.value=m instanceof Error?m.message:String(m))}finally{S===s&&(l.value=!1)}}return e.onBeforeUnmount(v),{active:o,latest:a,busy:l,error:n,confirmRebase:r,copied:i,localChanges:y,remoteChanges:C,begin:w,clear:k,load:M,adoptLatest:x,rebase:E,keepCopy:f,toggleRebase:()=>{r.value=!r.value}}}function $s(t,o,a){o==="visual"&&a===void 0?delete t.visual:Object.assign(t,{[o]:o==="widthMm"?Number(a):a})}function Ts(t,o,a,l){const n=e.ref(0),r=e.ref(""),i=e.ref([]),s=e.ref();e.watch(t,()=>{s.value=void 0},{flush:"sync"});const c=e.computed(()=>t.value.template.pages.flatMap((p,d)=>p.components.flatMap((b,B)=>b.kind==="list"?[{component:b,pageIndex:d,componentIndex:B}]:[]))),y=e.computed(()=>c.value[n.value]?.component),C=e.computed(()=>{const p=y.value;if(!p)return[];const d=p.columns.map(b=>b.headerStyle?.align??b.headerAlign??p.headerStyle?.align??p.headerAlign??b.style?.align??"center");if(p.headerGrid&&o())for(const b of G.resolveGridLayout(p.headerGrid,p.widthMm,100).cells)for(let B=b.ci;B<b.ci+(b.cell.colSpan??1);B++)d[B]=b.cell.style?.align??"left";return d}),v=e.computed(()=>{const p=r.value.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return(y.value?.columns??[]).flatMap((d,b)=>{const B=`${d.header} ${d.field}`.toLocaleLowerCase();return p.every(T=>B.includes(T))?[{column:d,index:b}]:[]})});function k(p,d){i.value=d?[...new Set([...i.value,p])]:i.value.filter(b=>b!==p)}function M(p){const d=new Set(i.value);for(const{index:b}of v.value)p?d.add(b):d.delete(b);i.value=[...d]}function w(){i.value=[]}function x(p,d,b){if(!a())return;const B=c.value[n.value];if((d==="widthMm"||d==="hidden")&&B&&t.value.template.pages[B.pageIndex]?.flow)return;const T=y.value?.columns[p];T&&(E(p,d,b)||d==="hidden"&&b===!0&&!y.value?.columns.some((P,z)=>z!==p&&!P.hidden)||($s(T,d,b),d==="header"&&S(p,String(b)),d==="headerAlign"&&g(p,b),d==="widthMm"&&N(),l(d==="header"?`column:${B?.pageIndex}:${B?.componentIndex}:${p}:header`:void 0)))}function E(p,d,b){if(d!=="field")return!1;const B=y.value,T=c.value[n.value],P=B?.columns[p];if(!B||!T||!P||b===P.field)return!1;const z=`$.template.pages[${T.pageIndex}].components[${T.componentIndex}].columns[${p}].field`,oe=Tt.inspectTemplateFieldUsage(t.value.template,B.dataset,P.field).filter(u=>u.path!==z);return oe.length?(s.value={index:p,listIndex:n.value,before:P.field,after:String(b),references:oe},!0):!1}function f(){const p=s.value;if(!p||!a())return;const d=c.value[p.listIndex]?.component.columns[p.index];s.value=void 0,!(!d||d.field!==p.before)&&(d.field=p.after,l())}function N(){const p=c.value[n.value];if(!p)return;const d=p.component,b=t.value.template.pages[p.pageIndex],B=d.columns.map(T=>T.widthMm);d.headerGrid&&(d.headerGrid.colWidthsMm=B),b.layout==="wide"&&B.every(T=>Number.isFinite(T)&&T>0)&&(d.widthMm=B.reduce((T,P)=>T+P,0),b.widthMm=Math.max(...b.components.map(T=>T.leftMm+T.widthMm))+(b.marginRightMm??0))}function S(p,d){const b=y.value;if(!b?.headerGrid)return;const T=G.resolveGridLayout(b.headerGrid,b.widthMm,100).cells.filter(({ci:P,cell:z})=>P<=p&&P+(z.colSpan??1)>p).slice(-1)[0];T&&(Object.assign(T.cell,{text:d,rawText:d,value:d}),b.columns.slice(T.ci,T.ci+(T.cell.colSpan??1)).forEach(P=>{P.header=d}))}function g(p,d){const b=y.value,B=b?.columns[p];if(B?.headerStyle?.align!==void 0&&(B.headerStyle={...B.headerStyle,align:d}),!b?.headerGrid)return;const P=G.resolveGridLayout(b.headerGrid,b.widthMm,100).cells.filter(({ci:z,cell:oe})=>z<=p&&z+(oe.colSpan??1)>p).slice(-1)[0];P&&(P.cell.style={...P.cell.style,align:d},b.columns.slice(P.ci,P.ci+(P.cell.colSpan??1)).forEach(z=>{z.headerAlign=d,z.headerStyle?.align!==void 0&&(z.headerStyle={...z.headerStyle,align:d})}))}function m(p,d){if(!(!a()||p==="headerAlign"&&d==="auto")){for(const b of i.value){const B=y.value?.columns[b];B&&(Object.assign(B,{[p]:d}),p==="headerAlign"&&g(b,d))}l()}}return{selected:n,query:r,selectedColumns:i,lists:c,activeList:y,headerAlignments:C,visibleColumns:v,toggleColumn:k,selectVisible:M,clearSelection:w,fieldChange:s,confirmFieldChange:f,cancelFieldChange:()=>{s.value=void 0},setColumn:x,alignColumns:m}}function _s(t){return e.computed(()=>{const o=G.validateReportTemplateDocument(t.value);if(!o.ok)return{validation:o};try{return{validation:o,json:ye.stringifyValidatedTemplate(t.value)}}catch(a){return{validation:{ok:!1,warnings:o.warnings,errors:[{path:"$",message:a instanceof Error?a.message:String(a)}]}}}})}function $t(t){if(t.json===void 0)throw new G.ReportTemplateError(t.validation.errors);return JSON.parse(t.json)}function ft(t){return t.kind==="snapshot"?t.value.length*2:(t.removed.length+t.inserted.length)*2+16}function ct(t,o,a=!1){const l={kind:"snapshot",value:o};if(a)return l;let n=0;const r=Math.min(t.length,o.length);for(;n<r&&t.charCodeAt(n)===o.charCodeAt(n);)n++;let i=t.length,s=o.length;for(;i>n&&s>n&&t.charCodeAt(i-1)===o.charCodeAt(s-1);)i--,s--;const c={kind:"patch",start:n,removed:t.slice(n,i),inserted:o.slice(n,s)};return ft(c)<ft(l)?c:l}function Qe(t,o,a=!1){if(o.kind==="snapshot")return o.value;const l=a?o.inserted:o.removed,n=a?o.removed:o.inserted;return t.slice(0,o.start)+n+t.slice(o.start+l.length)}const Oe=t=>ft(t)+(t.view?128:0),Te=(t,o)=>o?{...t,view:{before:{...o},after:{...o}}}:t;function Is(t,o={entries:100,bytes:16*1024*1024}){if(![o.entries,o.bytes].every(m=>Number.isSafeInteger(m)&&m>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),r=e.computed(()=>l.value>0),i=e.computed(()=>l.value+1<a.value.length),s=e.computed(()=>n.value),c=e.computed(()=>a.value.reduce((m,p)=>m+Oe(p),0)),y=e.shallowRef();let C,v=0,k;function M(){C=void 0,k=void 0}function w(m,p){M(),a.value=[Te({kind:"snapshot",value:m},p)],l.value=0,n.value=m,y.value=p}function x(m){let p=m;for(;p>0&&a.value[p].kind!=="snapshot";)p--;let d="";for(;p<=m;p++)d=Qe(d,a.value[p]);return d}function E(m){let p=m.reduce((d,b)=>d+Oe(b),0);for(;m.length>1&&(m.length>o.entries||p>o.bytes);){const d=m[0],b=m[1],B=Te({kind:"snapshot",value:Qe(d.value,b)},b.view?.after);p+=Oe(B)-Oe(d)-Oe(b),m.splice(0,2,B)}return m}function f(m){if(!m)return;const p=a.value.slice(),d=p[l.value];p[l.value]=d.view?{...d,view:{before:d.view.before,after:{...m}}}:Te(d,m),a.value=p}function N(m,p,d){if(n.value===m)return!1;const b=a.value.slice(0,l.value+1),B=Date.now();if(!!d&&d===C&&B-v<=600&&l.value>0&&!i.value){const P=b.pop(),z=k??x(l.value-1),oe=Te(ct(z,m,b.length%20===0),P.view?.before??p);oe.view&&p&&(oe.view.after={...p}),b.push(oe)}else k=d?n.value:void 0,b.push(Te(ct(n.value,m,b.length%20===0),p));return C=d,v=B,a.value=E(b),l.value=a.value.length-1,n.value=m,!0}function S(m){if(M(),m<0?!r.value:!i.value)return;const p=a.value[l.value];return y.value=m<0?p.view?.before:a.value[l.value+1]?.view?.after,m<0&&p.kind==="patch"?n.value=Qe(n.value,p,!0):m>0?n.value=Qe(n.value,a.value[l.value+1]):n.value=x(l.value-1),l.value+=m,n.value}function g(m,p){if(!l.value||i.value||n.value===m)return!1;const d=a.value.slice(),b=d.pop(),B=Te(ct(x(l.value-1),m,d.length%20===0),b.view?.before??p);return B.view&&p&&(B.view.after={...p}),d.push(B),a.value=E(d),l.value=a.value.length-1,n.value=m,M(),!0}return{canUndo:r,canRedo:i,current:s,context:y,retainedBytes:c,reset:w,record:N,amend:g,move:S,annotate:f,endGroup:M}}function Rs(t,o,a){const l={...t,revision:void 0};return JSON.stringify({document:l,tools:o,json:a})}function Ps(t,o){const a={...o,...t.document,id:o.id};return t.document.description===void 0&&delete a.description,o.revision===void 0?delete a.revision:a.revision=o.revision,a}function Ut(t){const o=e.shallowRef(null),a=e.ref(!1);let l,n=0;function r(c){l?.(c),l=void 0,o.value=null}function i(){n++,r(!1),a.value=!1}async function s(c){i();const y=n,C=t();a.value=!0;try{const v=await new Promise((k,M)=>{if(l=k,!C){o.value=c;return}Promise.resolve().then(()=>n===y?C(c):!1).then(w=>{n===y&&r(w===!0)},w=>{n===y&&(l=void 0,o.value=null,M(w))})});return n===y&&v===!0}finally{n===y&&(a.value=!1)}}return e.onBeforeUnmount(i),{confirmation:o,pending:a,decide:r,request:s,cancel:i}}function Ls(t,o){const a=e.ref(G.parseReportTemplate(t.modelValue)),l=_s(a),n=()=>$t(l.value),r=l.value.json;if(r===void 0)throw new G.ReportTemplateError(l.value.validation.errors);const i=e.ref(r),s=e.ref(i.value),c=e.ref(""),y=e.ref(!1),C=e.computed(()=>({...ce,...t.messages})),v=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}}));dt.provideMachReportConfig({get defaults(){return v.value}});let k,M=0;const w=e.computed(()=>l.value.validation),x=e.computed(()=>l.value.json!==i.value),E=e.ref(s.value),f=e.computed(()=>s.value!==E.value),N=e.ref({}),S=e.ref(0),g=e.ref(0),m=e.computed(()=>Object.values(N.value).some(Boolean)),p=e.computed(()=>Object.keys(N.value).filter(L=>N.value[L]));function d(L,F){N.value={...N.value,[L]:F},S.value++}let b=!1,B=!1,T;const P=vs(d,()=>{b||(B?I.amend(A(),$?.read()):I.record(A(),$?.read()))}),z=e.computed(()=>x.value||s.value!==E.value||m.value||!!j.fieldChange.value),oe=e.computed(()=>l.value.json===void 0?a.value:n()),u=e.computed(()=>Rs(oe.value,P.records.value,f.value?{text:s.value,revision:T?T.revision:a.value.revision}:void 0)),A=()=>u.value,I=Is(A()),_=e.ref(0);let $;function R(L){$=L,I.annotate(L.read())}function D(){I.annotate($?.read())}const H=Ut(()=>t.beforeDiscard),Y=e.computed(()=>y.value||H.pending.value||fe.active.value||$e.checking.value||!!$e.available.value),U=()=>!t.readonly&&!Y.value&&!f.value,j=Ts(a,()=>w.value.ok,U,de),{selected:le,lists:ne,activeList:re,headerAlignments:Q,setColumn:ke}=j;e.watch(le,()=>j.clearSelection());const Ke=e.shallowRef();let ue,Ee,Pe;function W(){clearTimeout(ue),ue=void 0,Ke.value=dt.createLocalFetcher({draft:{get template(){return a.value.template},get datasets(){return t.datasets??{}},params:[]}})}e.watch(()=>a.value.template,()=>{clearTimeout(ue),Ee&&Pe===Ee?ue=setTimeout(W,150):W(),Pe=Ee},{deep:!0,immediate:!0}),e.watch(()=>t.datasets,()=>{Pe=void 0,W()},{deep:!0});const Ze=e.computed(()=>w.value.ok?Ke.value:void 0);function me(){M++,k?.abort(),k=void 0,y.value=!1}let xe=0;async function pe(L="replace",F){if(!z.value)return!0;const q=A(),te=S.value;try{return await H.request({reason:L,document:JSON.parse(JSON.stringify(a.value)),replacement:F?G.parseReportTemplate(F):void 0,pendingLocalChanges:!0})&&q===A()&&te===S.value}catch(Z){return c.value=Z instanceof Error?Z.message:String(Z),!1}}function Me(L){const F=G.serializeReportTemplate(L);me(),fe.clear(),P.clear(),a.value=L,i.value=F,s.value=i.value,E.value=s.value,T=void 0,c.value="",le.value=0,j.clearSelection(),j.cancelFieldChange(),N.value={},S.value++,g.value++,I.reset(A(),$?.read())}e.watch(()=>t.modelValue,async L=>{let F,q;try{F=G.parseReportTemplate(L),q=ye.stringifyValidatedTemplate(F)}catch(Z){c.value=Z instanceof Error?Z.message:String(Z);return}if(q===l.value.json)return;const te=++xe;if(me(),!await pe("replace",F)){te===xe&&w.value.ok&&o("update:modelValue",n());return}te===xe&&Me(F)}),e.onBeforeUnmount(()=>{xe++,me(),clearTimeout(ue)});function de(L){Ee=L,B=!0,queueMicrotask(()=>{B=!1}),H.cancel(),c.value="";const F=l.value;F.json!==void 0&&(s.value=F.json,E.value=s.value,T=void 0,o("update:modelValue",$t(F))),I.record(A(),$?.read(),L)&&_.value++}function Se(L){if(!U())return!1;try{const F=n();L(F);const q=G.validateReportTemplateDocument(F);if(!q.ok)throw new Error(q.errors.map(te=>`${te.path}: ${te.message}`).join(`
|
|
2
|
-
`));return ye.stringifyValidatedTemplate(F),a.value=F,de(),!0}catch(F){return c.value=F instanceof Error?F.message:String(F),!1}}function et(L){return m.value||j.fieldChange.value?(c.value=C.value.toolsPending,!1):Se(F=>{F.template=G.parseReportTemplate({...F,template:L}).template})}async function tt(L){if(!U())return!1;try{const F=G.parseReportTemplate(L);return ye.stringifyValidatedTemplate(F),!await pe("replace",F)||!U()?!1:(a.value=F,le.value=0,j.clearSelection(),de(),!0)}catch(F){return c.value=F instanceof Error?F.message:String(F),!1}}function nt(L){U()&&(a.value.name=L,de("document:name"))}function Be(L){U()&&(a.value.description=L,de("document:description"))}function Le(){if(!(t.readonly||Y.value))try{const L=G.parseReportTemplate(s.value);if(L.id!==a.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(L.revision!==a.value.revision&&(!T||L.revision!==T.revision))throw new Error("修订号由保存服务管理,不能在 JSON 中修改");a.value.revision===void 0?delete L.revision:L.revision=a.value.revision,ye.stringifyValidatedTemplate(L),a.value=L,le.value=0,j.clearSelection(),de()}catch(L){c.value=L instanceof Error?L.message:String(L)}}async function De(){Y.value||t.readonly||!await pe("reset")||(Me(G.parseReportTemplate(i.value)),o("update:modelValue",n()))}function Ae(L){if(Y.value||t.readonly)return;I.record(A(),$?.read());const F=I.move(L);if(!F)return;H.cancel();const q=JSON.parse(F);b=!0,a.value=Ps(q,G.parseReportTemplate(i.value)),E.value=l.value.json??JSON.stringify(a.value,null,2),s.value=q.json?.text??E.value,T=q.json?{revision:q.json.revision}:void 0,P.restore(q.tools),queueMicrotask(()=>{b=!1}),c.value="";const te=I.context.value?.listIndex;le.value=te!==void 0&&ne.value[te]?te:0,j.clearSelection(),I.context.value&&$?.restore(I.context.value),w.value.ok&&o("update:modelValue",n())}async function X(){if(!t.save||!U()||!w.value.ok)return;if(m.value||j.fieldChange.value){c.value=C.value.toolsPending;return}const L=++M;k=new AbortController,y.value=!0,c.value="";const F=n();try{const q=G.parseReportTemplate(await t.save(F,{expectedRevision:F.revision,signal:k.signal}));if(L!==M)return;if(q.id!==F.id)throw new Error("保存服务返回了其他模板的文档");const te=ye.stringifyValidatedTemplate(q);a.value=q,i.value=te,s.value=i.value,E.value=s.value,I.endGroup(),T=void 0,P.clear(),$e.flush(),o("saved",G.parseReportTemplate(q)),o("update:modelValue",G.parseReportTemplate(q))}catch(q){L===M&&(c.value=q instanceof Error?q.message:String(q),q&&typeof q=="object"&&"code"in q&&q.code==="conflict"&&fe.begin())}finally{L===M&&(y.value=!1,k=void 0)}}const fe=Ds({configuration:()=>t,baseline:()=>G.parseReportTemplate(i.value),local:n,async applyLatest(L){return await pe("replace",L)?(Me(L),o("update:modelValue",G.parseReportTemplate(L)),!0):!1},rebase(L){const F=n();L.revision===void 0?delete F.revision:F.revision=L.revision;const q=G.serializeReportTemplate(F),te=G.serializeReportTemplate(L),Z=f.value;F.revision===void 0?delete a.value.revision:a.value.revision=F.revision,i.value=te,Z||(s.value=q),E.value=q,I.reset(A(),$?.read()),o("update:modelValue",n())}}),$e=Bs({storage:()=>t.draftStorage,id:()=>a.value.id,baseline:()=>i.value,pending:()=>z.value,changedSource:()=>[A(),i.value,s.value,E.value],snapshot:()=>({version:1,templateId:a.value.id,savedAt:new Date().toISOString(),baseline:G.parseReportTemplate(i.value),document:JSON.parse(JSON.stringify(a.value)),json:s.value,appliedJson:E.value,tools:P.records.value}),restore(L){if(t.readonly||y.value)return;const F=G.parseReportTemplate(t.modelValue);a.value=G.parseReportTemplate(L.document),i.value=G.serializeReportTemplate(L.baseline),s.value=L.json,E.value=L.appliedJson,g.value++,P.restore(L.tools);const q=Object.keys(L.tools).find(te=>te.startsWith("rules:"));if(q){const[,te,Z]=q.split(":"),Fe=ne.value.findIndex(He=>He.pageIndex===Number(te)&&He.componentIndex===Number(Z));Fe>=0&&(le.value=Fe)}I.reset(A(),$?.read()),G.serializeReportTemplate(F)!==i.value&&fe.begin(F),o("update:modelValue",n())}}),We=e.computed(()=>I.canUndo.value||A()!==I.current.value),at=e.computed(()=>I.canRedo.value&&A()===I.current.value);return{...j,recovery:$e,conflict:fe,editingReadonly:e.computed(()=>t.readonly===!0),connectHistoryView:R,captureHistoryView:D,historyViewRevision:_,transaction:Se,applyTemplate:et,replaceDocument:tt,originalDocument:e.computed(()=>G.parseReportTemplate(i.value)),canUndo:We,canRedo:at,undo:()=>Ae(-1),redo:()=>Ae(1),pendingLocalChanges:z,setToolPending:d,isToolPending:L=>N.value[L]===!0,toolEpoch:g,toolPending:m,pendingTools:p,jsonPending:f,blocked:Y,confirmation:H.confirmation,decideDiscard:H.decide,guardChanges:pe,draft:a,json:s,selected:le,error:c,saving:y,dirty:x,validation:w,lists:ne,activeList:re,headerAlignments:Q,previewOptions:v,fetcher:Ze,flushPreview:W,messages:C,setName:nt,setDescription:Be,setColumn:ke,applyJson:Le,reset:De,save:X}}function As(t,o){const a=e.ref(o.value?"fields":"component"),l=()=>o.value?.columns.length?0:-1,n=e.ref(l()),r=e.computed(()=>{const c=o.value?.columns[n.value];return c?{column:c,index:n.value}:void 0});e.watch(t,()=>{n.value=l()},{flush:"sync"}),e.watch(o,c=>{c?.columns[n.value]||(n.value=l()),!c&&a.value==="fields"&&(a.value="component")});function i(c){o.value?.columns[c]&&(n.value=c)}function s(c){const y=o.value?.columns.length??0;y&&(n.value=Math.max(0,Math.min(y-1,n.value+c)))}return{section:a,activeIndex:n,activeColumn:r,activate:i,stepColumn:s}}const Fs=["aria-label","aria-busy"],Hs={class:"mr-designer-bar"},Os={class:"mr-designer-heading"},Gs=["aria-label"],zs=["id","aria-selected","aria-controls","tabindex","onClick"],js={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},Us=["aria-label"],qs=["aria-pressed"],Ks=["aria-pressed"],Ws={class:"mr-designer-actions"},Js={class:"mr-designer-history"},Ys=["aria-label","title","disabled"],Qs=["aria-label","title","disabled"],Xs=["disabled"],Zs=["title","aria-describedby","disabled"],ec=["id"],tc={key:0,class:"mr-designer-insert-notice",role:"status"},nc=["id"],ac=["aria-label","onClick"],oc=["aria-label"],lc=["id","aria-labelledby"],rc=["aria-label"],ic=["id","aria-pressed","aria-describedby","onClick"],sc={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},cc={class:"mr-designer-tool-target"},dc=["value","aria-label"],uc=["value"],mc=["value","aria-label"],pc={value:-1,disabled:""},fc=["value"],vc=["aria-pressed"],gc={class:"mr-designer-tool-content"},hc={key:5,class:"mr-designer-rule-workspace"},yc={key:0},bc=["value"],kc=["value"],Ec={key:2,class:"mr-designer-note"},Sc={key:1,class:"mr-designer-inspector"},Nc=["id","aria-labelledby"],wc={key:0,class:"mr-designer-flow-note"},Vc={key:0,class:"mr-designer-area"},Cc=["value"],xc=["value"],Mc={class:"mr-designer-field-actions"},Bc=["disabled"],Dc={class:"mr-designer-current"},$c=["aria-expanded","aria-controls"],Tc={class:"mr-designer-current-name"},_c={class:"mr-designer-directory-entry"},Ic={class:"mr-designer-field-position"},Rc=["aria-label"],Pc=["aria-label","title","disabled"],Lc=["aria-label","title","disabled"],Ac=["disabled","aria-label"],Fc={class:"mr-designer-property-group"},Hc=["value"],Oc=["value","list"],Gc=["id"],zc=["value"],jc={class:"mr-designer-property-group"},Uc={class:"mr-designer-format-pair"},qc={class:"mr-designer-stacked"},Kc=["value","disabled"],Wc={class:"mr-designer-stacked"},Jc=["value"],Yc={value:"identifier"},Qc={value:"dimension"},Xc={value:"measure"},Zc={value:"date"},ed={value:"text"},td={class:"mr-designer-control-row"},nd={class:"mr-designer-control-row"},ad={class:"mr-designer-toggle"},od=["checked"],ld={class:"mr-designer-column-structure"},rd=["aria-label","title","disabled"],id=["aria-label","title","disabled"],sd=["checked","disabled"],cd=["id","aria-label"],dd={class:"mr-designer-directory-heading"},ud=["aria-label"],md={class:"mr-designer-search"},pd=["aria-label","placeholder"],fd=["aria-label","title"],vd={class:"mr-designer-column-tools"},gd=["disabled"],hd={key:1,role:"status"},yd={key:2},bd=["aria-label"],kd=["aria-label","checked","disabled","onChange"],Ed=["data-column-index","aria-pressed","tabindex","onClick"],Sd={class:"mr-designer-column-number"},Nd={class:"mr-designer-column-name"},wd={key:0,role:"status",class:"mr-designer-empty"},Vd=["aria-label"],Cd=["disabled","aria-label"],xd=["disabled","aria-label"],Md={key:1,class:"mr-designer-batch"},Bd=["aria-label","disabled"],Dd={value:""},$d={value:"auto"},Td={value:"left"},_d={value:"center"},Id={value:"right"},Rd={value:"justify"},Pd=["aria-label","disabled"],Ld={value:""},Ad={value:"left"},Fd={value:"center"},Hd={value:"right"},Od={value:"justify"},Gd={key:2,role:"status",class:"mr-designer-empty"},zd={class:"mr-designer-object-tools"},jd=["title","aria-label","disabled"],Ud=["title","aria-label","disabled"],qd={key:0},Kd=["value"],Wd={class:"mr-designer-stacked"},Jd=["value"],Yd={value:-1,disabled:""},Qd=["value"],Xd={key:1,class:"mr-designer-arrange"},Zd=["disabled"],eu=["aria-label","disabled"],tu={value:""},nu={value:"left"},au={value:"center"},ou={value:"right"},lu={value:"top"},ru={value:"middle"},iu={value:"bottom"},su=["disabled"],cu=["disabled"],du={key:0},uu={class:"mr-designer-layer-tools"},mu=["disabled"],pu=["disabled"],fu={key:3,class:"mr-designer-empty"},vu={class:"mr-designer-stacked"},gu=["value","disabled"],hu={class:"mr-designer-stacked"},yu=["value","disabled"],bu={class:"mr-designer-technical"},ku={class:"mr-designer-identity"},Eu={class:"mr-designer-stacked mr-designer-json-label"},Su=["aria-label","disabled"],Nu=["disabled"],wu={key:5,role:"status",class:"mr-designer-note mr-designer-pending"},Vu=["aria-label"],Cu={key:0,role:"alert",class:"mr-designer-error"},xu={key:1,role:"alert",class:"mr-designer-error"},Mu={key:4,class:"mr-designer-note mr-designer-invalid"},Bu=e.defineComponent({__name:"ReportTemplateEditor",props:{showSave:{type:Boolean,default:!0},mode:{},showModeSwitch:{type:Boolean,default:!0},capabilities:{},insertionMessages:{},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","update:mode"],setup(t,{expose:o,emit:a}){const l=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-B2xXBOJu.cjs"))),n=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-DhHlNxai.cjs"))),r=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-Dtcq-7LO.cjs"))),i=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateOutlinePanel-CkCh506f.cjs"))),s=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReusePanel-CwttuSta.cjs"))),c=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-C2YjiaEC.cjs"))),y=t,C=a,v=Ls(y,(O,V)=>{C(O==="saved"?"saved":"update:modelValue",V)}),{draft:k,json:M,selected:w,error:x,saving:E,pendingLocalChanges:f,jsonPending:N,blocked:S,confirmation:g,canUndo:m,canRedo:p,validation:d,lists:b,activeList:B,visibleColumns:T,query:P,selectedColumns:z,fetcher:oe,messages:u}=v;function A(O){return v.transaction(V=>{V.template.params=O})}const I=As(w,B),{section:_,activeIndex:$,activeColumn:R}=I,D=`mr-designer-${e.getCurrentInstance()?.uid??0}`,H=Oi(v,I,()=>y.dataSchemas,{mode:()=>y.mode,onModeChange:O=>C("update:mode",O)}),{mode:Y,canvasSelection:U,canvasPage:j,canvasActive:le,tool:ne,visitedTools:re,editDisabled:Q,dataSchema:ke,patchCanvas:Ke,changeList:ue,moveColumn:Ee,headerCommand:Pe,canvas:W}=H,{sections:Ze,toolPreview:me,setMode:xe,toggleToolPreview:pe,chooseToolComponent:Me,openBinding:de,pendingConfigurations:Se,saveReason:et,openPending:tt,headingStatus:nt,chooseCanvas:Be,locateReview:Le,chooseRuleList:De,navigateSection:Ae}=Ai(v,H,I,{id:D,readonly:()=>y.readonly===!0,capabilities:()=>y.capabilities}),X=sa(v,H,I,()=>y.dataSchemas,()=>y.datasets,()=>y.insertionMessages),fe=ca(()=>({undo:v.undo,redo:v.redo,canUndo:m.value,canRedo:p.value,blocked:S.value||y.readonly})),$e=["outline","reuse","excel","rules","params","review"],We=e.computed(()=>$e.filter(O=>y.capabilities?.[O]!==!1));e.watch(We,O=>{O.includes(ne.value)||(ne.value=O[0]??"outline"),!O.length&&_.value==="tools"&&(_.value=b.value.length?"fields":"component")});const at=e.computed(()=>["fields","components","layout","excel","rules","review"].filter(O=>!["excel","rules","review"].includes(O)||y.capabilities?.[O]!==!1)),L=e.computed(()=>k.value.template.pages.some(O=>O.components.some(V=>V.kind==="list"||V.binding?!1:V.kind==="image"?!V.imageData||V.meta?.designerPlaceholder===!0:["qrcode","barcode"].includes(V.kind)&&!V.imageData&&!(V.code?.value??V.fallbackText??V.text??"").trim()))),F=e.computed(()=>X.confirmation.value?X.messages.value.newPagePending:L.value?X.messages.value.assetPending:et.value);async function q(){if(!X.confirmation.value){if(L.value){x.value=X.messages.value.assetPending;return}await v.save()}}function te(O){if(O==="preview"&&L.value){x.value=X.messages.value.assetPending;return}v.flushPreview(),xe(O)}e.watch(Y,O=>{O==="preview"&&v.flushPreview()});const Z=e.computed(()=>!!k.value.template.pages[j.value]?.flow),Fe=e.computed(()=>y.dataSchemas?.[k.value.template.repeat?.dataset??""]),He=e.computed(()=>{const O={text:u.value.insertText,list:u.value.insertList,image:u.value.insertImage,rect:u.value.insertRect,qrcode:u.value.insertQrcode,barcode:u.value.insertBarcode,chart:u.value.chartComponent,line:u.value.lineComponent,ellipse:u.value.ellipseComponent},V=new Map(Fe.value?.fields.map(h=>[h.field,h.label||h.field]));return k.value.template.pages[j.value]?.components.map((h,K)=>{const ge=O[h.kind],rt=(h.kind==="list"?h.title||h.dataset:h.binding?V.get(h.binding.field)||h.binding.field:h.text)?.replace(/\s+/g," ").trim().slice(0,60);return{index:K,name:rt&&rt!==ge?`${ge} · ${rt}`:ge}})??[]});function Kt(O){let V=j.value;v.transaction(h=>{V=ga(h,j.value,O)})&&(O.type!=="patch"&&(W.clearLocks(),W.selection.value=void 0,W.selections.value=[]),j.value=V)}const Ne=e.computed(()=>!!k.value.template.pages[b.value[w.value]?.pageIndex??-1]?.flow),vt=e.ref(null),ot=e.ref(null),ee=fs(I,_,T),{open:gt,cursor:Wt,trigger:Jt,panel:Yt,search:Qt,list:Xt}=ee;e.watch(_,async()=>{await e.nextTick(),ot.value&&(ot.value.scrollTop=0)});const ht=e.computed(()=>({auto:u.value.auto,left:u.value.left,center:u.value.center,right:u.value.right,justify:u.value.justify}));let Je=null;e.watch(g,async O=>{O?(Je=document.activeElement,await e.nextTick(),vt.value?.focus()):(await e.nextTick(),Je?.isConnected&&Je.focus(),Je=null)});function yt(O){if(!(S.value||y.capabilities?.[O]===!1)){if(["excel","rules","params","review"].includes(O)){_.value="tools",ne.value=O;return}_.value=O==="layout"?"template":O==="fields"&&b.value.length?"fields":"component",te(_.value==="fields"?"preview":"design")}}const bt=e.computed(()=>!y.readonly&&!S.value&&!N.value&&!v.toolPending.value&&!v.fieldChange.value&&d.value.ok&&!L.value&&!X.confirmation.value);o({openPanel:yt,applyTemplate:v.applyTemplate,undo:v.undo,redo:v.redo,get canUndo(){return m.value},get canRedo(){return p.value},get canApply(){return bt.value},get saveReason(){return F.value},get pendingLocalChanges(){return f.value},get saving(){return E.value},get blocked(){return S.value||!!X.confirmation.value},guardChanges:(...O)=>(X.cancelInsertion(),v.guardChanges(...O)),reset:async()=>{X.cancelInsertion(),await v.reset()},save:q,insertComponent:W.insertComponent});async function Zt(O){const V={...O.document,id:k.value.id};if(k.value.revision===void 0?delete V.revision:V.revision=k.value.revision,!await v.replaceDocument(V))return!1;const h=G.parseReportTemplate(v.draft.value);return C("excel-bound",{...O,document:h,session:{...O.session,identity:{id:h.id,name:h.name}}}),!0}function ve(O){return O.target.value}function lt(O){return O.target.checked}function kt(O,V){const h=O.target;v.alignColumns(V,h.value),h.value=""}return(O,V)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(u).title,"aria-busy":e.unref(E),onKeydown:V[65]||(V[65]=(...h)=>e.unref(fe).keydown&&e.unref(fe).keydown(...h))},[e.createElementVNode("header",Hs,[e.createElementVNode("div",Os,[e.createVNode(J._sfc_main,{name:"columns",size:15}),e.createElementVNode("strong",null,e.toDisplayString(e.unref(u).heading),1),e.createElementVNode("span",{class:e.normalizeClass({"mr-designer-dirty":e.unref(f)})},e.toDisplayString(e.unref(nt)),3)]),e.createElementVNode("nav",{class:"mr-designer-tabs",role:"tablist","aria-label":e.unref(u).sectionsLabel},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Ze),h=>(e.openBlock(),e.createElementBlock("button",{id:`${D}-tab-${h}`,key:h,type:"button",role:"tab","aria-selected":e.unref(_)===h,"aria-controls":`${D}-panel-${h}`,tabindex:e.unref(_)===h?0:-1,onClick:K=>_.value=h,onKeydown:V[0]||(V[0]=(...K)=>e.unref(Ae)&&e.unref(Ae)(...K))},[e.createTextVNode(e.toDisplayString(e.unref(u)[`${h}Section`])+" ",1),h==="tools"&&e.unref(v).toolPending.value||h==="advanced"&&e.unref(N)?(e.openBlock(),e.createElementBlock("span",js)):e.createCommentVNode("",!0)],40,zs))),128))],8,Gs),t.showModeSwitch!==!1?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-designer-mode",role:"group","aria-label":e.unref(u).design},[e.createElementVNode("button",{type:"button","aria-pressed":e.unref(Y)==="design",onClick:V[1]||(V[1]=h=>te("design"))},e.toDisplayString(e.unref(u).design),9,qs),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(Y)==="preview",onClick:V[2]||(V[2]=h=>te("preview"))},e.toDisplayString(e.unref(u).preview),9,Ks)],8,Us)):e.createCommentVNode("",!0),e.createElementVNode("div",Ws,[e.createVNode(bn,{disabled:e.unref(Q)||Z.value,repeat:!!e.unref(k).template.repeat,fields:e.unref(k).template.repeat||e.unref(B)?e.unref(X).fields.value:[],columns:!e.unref(k).template.repeat,"used-fields":e.unref(k).template.repeat?[]:e.unref(B)?.columns.map(h=>h.field)??[],messages:t.insertionMessages,onInsert:e.unref(X).insert,onField:e.unref(X).addField},null,8,["disabled","repeat","fields","columns","used-fields","messages","onInsert","onField"]),e.createVNode(rn,{available:at.value,fields:!!e.unref(b).length,disabled:e.unref(S),messages:t.guideMessages,onChoose:yt},null,8,["available","fields","disabled","messages"]),e.createElementVNode("div",Js,[e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).undo,title:e.unref(u).undo,disabled:t.readonly||e.unref(S)||!e.unref(m),onClick:V[3]||(V[3]=h=>{e.unref(W).clearLocks(),e.unref(v).undo()})},[V[66]||(V[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)),e.createTextVNode(e.toDisplayString(e.unref(u).undo),1)],8,Ys),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).redo,title:e.unref(u).redo,disabled:t.readonly||e.unref(S)||!e.unref(p),onClick:V[4]||(V[4]=h=>{e.unref(W).clearLocks(),e.unref(v).redo()})},[V[67]||(V[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)),e.createTextVNode(e.toDisplayString(e.unref(u).redo),1)],8,Qs)]),e.createElementVNode("button",{type:"button",class:"mr-designer-reset",disabled:t.readonly||e.unref(S)||!e.unref(f),onClick:V[5]||(V[5]=(...h)=>e.unref(v).reset&&e.unref(v).reset(...h))},e.toDisplayString(e.unref(u).reset),9,Xs),t.save&&t.showSave!==!1?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-save",title:F.value||e.unref(u).save,"aria-describedby":e.unref(Se).length?`${D}-pending`:F.value?`${D}-save-reason`:void 0,disabled:!bt.value||!e.unref(f),onClick:q},[e.createVNode(J._sfc_main,{name:"file",size:13}),e.createTextVNode(e.toDisplayString(e.unref(E)?e.unref(u).saving:e.unref(u).save),1)],8,Zs)):e.createCommentVNode("",!0),t.save&&t.showSave!==!1&&F.value&&!e.unref(Se).length?(e.openBlock(),e.createElementBlock("span",{key:1,id:`${D}-save-reason`,class:"mr-designer-save-reason"},e.toDisplayString(F.value),9,ec)):e.createCommentVNode("",!0)])]),e.unref(X).notice.value?(e.openBlock(),e.createElementBlock("p",tc,e.toDisplayString(e.unref(X).notice.value),1)):e.createCommentVNode("",!0),e.unref(X).confirmation.value?(e.openBlock(),e.createBlock(Cn,e.mergeProps({key:1},e.unref(X).confirmation.value,{onConfirm:e.unref(X).confirmInsertion,onCancel:e.unref(X).cancelInsertion}),null,16,["onConfirm","onCancel"])):e.createCommentVNode("",!0),e.createVNode(Bi,{recovery:e.unref(v).recovery,conflict:e.unref(v).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(ii,{messages:t.productMessages,change:e.unref(v).fieldChange.value,disabled:e.unref(Q),onConfirm:e.unref(v).confirmFieldChange,onCancel:e.unref(v).cancelFieldChange,onLocate:e.unref(Le)},null,8,["messages","change","disabled","onConfirm","onCancel","onLocate"]),e.unref(Se).length?(e.openBlock(),e.createElementBlock("div",{key:2,id:`${D}-pending`,class:"mr-designer-pending",role:"status"},[e.createElementVNode("span",null,e.toDisplayString(e.unref(u).pendingToolsLabel),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Se),h=>(e.openBlock(),e.createElementBlock("button",{key:h.target,type:"button","aria-label":`${h.label} · ${e.unref(u).unapplied} · ${e.unref(u).returnToConfiguration}`,onClick:K=>e.unref(tt)(h.target)},[e.createTextVNode(e.toDisplayString(h.label),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(u).unapplied)+" ↗",1)],8,ac))),128)),e.createElementVNode("small",null,e.toDisplayString(e.unref(u).pendingToolsHint),1)],8,nc)):e.createCommentVNode("",!0),e.unref(g)?(e.openBlock(),e.createElementBlock("div",{key:3,role:"alertdialog","aria-label":e.unref(u).discardTitle,class:"mr-designer-confirm",onKeydown:V[8]||(V[8]=e.withKeys(e.withModifiers(h=>e.unref(v).decideDiscard(!1),["prevent","stop"]),["esc"]))},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(u).discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(u).discardDescription),1)]),e.createElementVNode("div",null,[e.createElementVNode("button",{ref_key:"keepButton",ref:vt,type:"button",onClick:V[6]||(V[6]=h=>e.unref(v).decideDiscard(!1))},e.toDisplayString(e.unref(u).keepEditing),513),e.createElementVNode("button",{type:"button",onClick:V[7]||(V[7]=h=>e.unref(v).decideDiscard(!0))},e.toDisplayString(e.unref(u).discard),1)])],40,oc)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["mr-designer-body",{"is-tools":e.unref(_)==="tools","is-docked":e.unref(me)}])},[e.unref(re).size?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:e.unref(v).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(u).toolsSection},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(We.value,h=>(e.openBlock(),e.createElementBlock("button",{key:h,id:`${D}-tool-${h}`,type:"button","aria-pressed":e.unref(ne)===h,"aria-describedby":e.unref(v).isToolPending(h)?`${D}-pending`:void 0,onClick:K=>ne.value=h},[e.createTextVNode(e.toDisplayString(e.unref(u)[`${h}Tool`])+" ",1),e.unref(v).isToolPending(h)?(e.openBlock(),e.createElementBlock("span",sc)):e.createCommentVNode("",!0)],8,ic))),128))],8,rc),e.createElementVNode("div",cc,[e.createElementVNode("label",null,[e.createElementVNode("span",null,e.toDisplayString(e.unref(u).toolTarget),1),e.createElementVNode("select",{value:e.unref(j),"aria-label":e.unref(u).pageDirectory,onChange:V[9]||(V[9]=h=>j.value=Number(h.target.value))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(k).template.pages,(h,K)=>(e.openBlock(),e.createElementBlock("option",{key:K,value:K},e.toDisplayString(e.unref(Ue)(h,K,e.unref(u).page)),9,uc))),128))],40,dc)]),e.createElementVNode("select",{value:e.unref(U)?.pageIndex===e.unref(j)?e.unref(U).componentIndex:-1,"aria-label":e.unref(u).toolChooseComponent,onChange:V[10]||(V[10]=(...h)=>e.unref(Me)&&e.unref(Me)(...h))},[e.createElementVNode("option",pc,e.toDisplayString(e.unref(u).toolChooseComponent),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(He.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h.index,value:h.index},e.toDisplayString(h.name),9,fc))),128))],40,mc),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(me),onClick:V[11]||(V[11]=(...h)=>e.unref(pe)&&e.unref(pe)(...h))},[e.createVNode(J._sfc_main,{name:"columns",size:14}),e.createTextVNode(e.toDisplayString(e.unref(me)?e.unref(u).toolPreviewHide:e.unref(u).toolPreview),1)],8,vc)]),e.createElementVNode("div",gc,[e.unref(re).has("outline")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(i),{key:0,messages:t.productMessages,document:e.unref(k),selection:e.unref(U),onLocate:e.unref(Le)},null,8,["messages","document","selection","onLocate"])),[[e.vShow,e.unref(ne)==="outline"]]):e.createCommentVNode("",!0),e.unref(re).has("reuse")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(s),{key:1,messages:t.productMessages,document:e.unref(k),"page-index":e.unref(j),selection:e.unref(U),fragments:t.fragments,styles:t.documentStyles,disabled:e.unref(Q),accept:e.unref(v).transaction,onSelect:e.unref(Be)},null,8,["messages","document","page-index","selection","fragments","styles","disabled","accept","onSelect"])),[[e.vShow,e.unref(ne)==="reuse"]]):e.createCommentVNode("",!0),e.unref(re).has("params")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(n),{key:2,document:e.unref(k),readonly:e.unref(Q),accept:A,"load-options":t.preview?.loadParamOptions,onDirty:V[12]||(V[12]=h=>e.unref(v).setToolPending("params",h))},null,8,["document","readonly","load-options"])),[[e.vShow,e.unref(ne)==="params"]]):e.createCommentVNode("",!0),e.unref(re).has("excel")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(l),{key:3,datasets:t.bindingDatasets??[],session:t.bindingSession,identity:{id:e.unref(k).id,name:e.unref(k).name},"lock-id":"",readonly:e.unref(Q),accept:Zt,onDirty:V[13]||(V[13]=h=>e.unref(v).setToolPending("excel",h))},null,8,["datasets","session","identity","readonly"])),[[e.vShow,e.unref(ne)==="excel"]]):e.createCommentVNode("",!0),e.unref(re).has("review")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(c),{key:4,document:e.unref(k),previous:e.unref(v).originalDocument.value,fixtures:t.reviewFixtures,messages:t.reviewMessages,datasets:t.datasets,"data-schemas":t.dataSchemas,onLocate:e.unref(Le)},null,8,["document","previous","fixtures","messages","datasets","data-schemas","onLocate"])),[[e.vShow,e.unref(ne)==="review"]]):e.createCommentVNode("",!0),e.unref(re).has("rules")?e.withDirectives((e.openBlock(),e.createElementBlock("div",hc,[e.unref(b).length>1?(e.openBlock(),e.createElementBlock("label",yc,[e.createTextVNode(e.toDisplayString(e.unref(u).area),1),e.createElementVNode("select",{value:e.unref(w),onChange:V[14]||(V[14]=(...h)=>e.unref(De)&&e.unref(De)(...h))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),(h,K)=>(e.openBlock(),e.createElementBlock("option",{key:K,value:K},e.toDisplayString(h.component.title||h.component.dataset),9,kc))),128))],40,bc)])):e.createCommentVNode("",!0),e.unref(B)?(e.openBlock(),e.createBlock(e.unref(r),{key:1,list:e.unref(B),"recovery-key":`rules:${e.unref(b)[e.unref(w)]?.pageIndex??0}:${e.unref(b)[e.unref(w)]?.componentIndex??0}`,datasets:t.datasets,"dataset-schema":e.unref(ke),"dataset-schemas":t.dataSchemas,readonly:e.unref(Q),onChange:e.unref(ue),onDirty:V[15]||(V[15]=h=>e.unref(v).setToolPending("rules",h))},null,8,["list","recovery-key","datasets","dataset-schema","dataset-schemas","readonly","onChange"])):(e.openBlock(),e.createElementBlock("p",Ec,e.toDisplayString(e.unref(u).rulesNeedList),1))],512)),[[e.vShow,e.unref(ne)==="rules"]]):e.createCommentVNode("",!0)])],8,lc)),[[e.vShow,e.unref(_)==="tools"]]):e.createCommentVNode("",!0),e.unref(_)!=="tools"?(e.openBlock(),e.createElementBlock("aside",Sc,[e.createElementVNode("div",{ref_key:"inspectorPanel",ref:ot,id:`${D}-panel-${e.unref(_)}`,class:e.normalizeClass(["mr-designer-panel",{"is-advanced":e.unref(_)==="advanced"}]),role:"tabpanel","aria-labelledby":`${D}-tab-${e.unref(_)}`},[Z.value||Ne.value?(e.openBlock(),e.createElementBlock("div",wc,[e.createElementVNode("small",null,e.toDisplayString(e.unref(u).flowLayout),1),e.createElementVNode("button",{type:"button",onClick:V[16]||(V[16]=(...h)=>e.unref(de)&&e.unref(de)(...h))},e.toDisplayString(e.unref(u).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",Vc,[e.createTextVNode(e.toDisplayString(e.unref(u).area),1),e.createElementVNode("select",{value:e.unref(w),onChange:V[17]||(V[17]=(...h)=>e.unref(De)&&e.unref(De)(...h))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),(h,K)=>(e.openBlock(),e.createElementBlock("option",{key:K,value:K},e.toDisplayString(h.pageIndex+1)+" "+e.toDisplayString(e.unref(u).page)+" · "+e.toDisplayString(h.component.title||h.component.dataset),9,xc))),128))],40,Cc)])):e.createCommentVNode("",!0),e.unref(B)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Mc,[e.createElementVNode("button",{type:"button",disabled:e.unref(Q)||Ne.value||e.unref(B).columns.length<2,onClick:V[18]||(V[18]=(...h)=>e.unref(X).removeColumn&&e.unref(X).removeColumn(...h))},e.toDisplayString(e.unref(X).messages.value.removeColumn),9,Bc)]),e.createElementVNode("div",Dc,[e.createElementVNode("button",{ref_key:"directoryTrigger",ref:Jt,type:"button",class:"mr-designer-field-trigger","aria-expanded":e.unref(gt),"aria-controls":`${D}-directory`,"aria-haspopup":"dialog",onClick:V[19]||(V[19]=(...h)=>e.unref(ee).toggle&&e.unref(ee).toggle(...h)),onKeydown:V[20]||(V[20]=e.withKeys((...h)=>e.unref(ee).escape&&e.unref(ee).escape(...h),["esc"]))},[e.createElementVNode("span",Tc,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(R)?.column.header||e.unref(u).noColumns),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(R)?.column.field||"—"),1)]),e.createElementVNode("span",_c,[e.createTextVNode(e.toDisplayString(e.unref(u).columnDirectory)+" ",1),e.createElementVNode("b",null,e.toDisplayString(e.unref(B).columns.length),1),e.createVNode(J._sfc_main,{name:"chevron-down",size:13})])],40,$c),e.createElementVNode("div",Ic,[e.createElementVNode("span",{"aria-label":e.unref(u).fieldPosition},[e.createTextVNode(e.toDisplayString(e.unref($)>=0?e.unref($)+1:0),1),V[68]||(V[68]=e.createElementVNode("i",null,"/",-1)),e.createTextVNode(e.toDisplayString(e.unref(B).columns.length),1)],8,Rc),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).previousColumn,title:e.unref(u).previousColumn,disabled:e.unref($)<=0,onClick:V[21]||(V[21]=h=>e.unref(I).stepColumn(-1))},[e.createVNode(J._sfc_main,{name:"chevron-left",size:14})],8,Pc),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).nextColumn,title:e.unref(u).nextColumn,disabled:e.unref($)>=e.unref(B).columns.length-1,onClick:V[22]||(V[22]=h=>e.unref(I).stepColumn(1))},[e.createVNode(J._sfc_main,{name:"chevron-right",size:14})],8,Lc)])]),e.createVNode(Yn,{list:e.unref(B),schema:e.unref(ke),readonly:e.unref(Q)||Ne.value,onChange:e.unref(ue)},null,8,["list","schema","readonly","onChange"]),e.unref(R)?(e.openBlock(),e.createElementBlock("fieldset",{key:0,class:"mr-designer-properties",disabled:t.readonly||e.unref(S)||e.unref(N),"aria-label":e.unref(u).columnProperties},[e.createElementVNode("div",Fc,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(u).contentGroup),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(u).header),1),e.createElementVNode("input",{value:e.unref(R).column.header,onInput:V[23]||(V[23]=h=>e.unref(v).setColumn(e.unref(R).index,"header",ve(h)))},null,40,Hc)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(u).field),1),e.createElementVNode("input",{value:e.unref(R).column.field,list:e.unref(ke)?`${D}-fields`:void 0,onChange:V[24]||(V[24]=h=>e.unref(v).setColumn(e.unref(R).index,"field",ve(h)))},null,40,Oc)]),e.unref(ke)?(e.openBlock(),e.createElementBlock("datalist",{key:0,id:`${D}-fields`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ke).fields,h=>(e.openBlock(),e.createElementBlock("option",{key:h.field,value:h.field},e.toDisplayString(h.label)+" · "+e.toDisplayString(h.type)+" "+e.toDisplayString(h.unit),9,zc))),128))],8,Gc)):e.createCommentVNode("",!0)]),e.createElementVNode("div",jc,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(u).formatGroup),1),e.createElementVNode("div",Uc,[e.createElementVNode("label",qc,[e.createTextVNode(e.toDisplayString(e.unref(u).width),1),e.createElementVNode("input",{type:"number",min:"0.1",step:"0.5",value:e.unref(R).column.widthMm,disabled:Ne.value,onChange:V[25]||(V[25]=h=>e.unref(v).setColumn(e.unref(R).index,"widthMm",ve(h)))},null,40,Kc)]),e.createElementVNode("label",Wc,[e.createTextVNode(e.toDisplayString(e.unref(u).semantic),1),e.createElementVNode("select",{value:e.unref(R).column.semanticRole||"text",onChange:V[26]||(V[26]=h=>e.unref(v).setColumn(e.unref(R).index,"semanticRole",ve(h)))},[e.createElementVNode("option",Yc,e.toDisplayString(e.unref(u).identifier),1),e.createElementVNode("option",Qc,e.toDisplayString(e.unref(u).dimension),1),e.createElementVNode("option",Xc,e.toDisplayString(e.unref(u).measure),1),e.createElementVNode("option",Zc,e.toDisplayString(e.unref(u).date),1),e.createElementVNode("option",ed,e.toDisplayString(e.unref(u).text),1)],40,Jc)])]),e.createElementVNode("div",td,[e.createElementVNode("span",null,e.toDisplayString(e.unref(u).bodyAlign),1),e.createVNode(mt,{"model-value":e.unref(R).column.align??e.unref(R).column.style?.align??e.unref(B).align??"left",label:e.unref(u).bodyAlign,labels:ht.value,"auto-label":e.unref(u).autoShort,"allow-auto":"","onUpdate:modelValue":V[27]||(V[27]=h=>e.unref(v).setColumn(e.unref(R).index,"align",h))},null,8,["model-value","label","labels","auto-label"])]),e.createElementVNode("div",nd,[e.createElementVNode("span",null,e.toDisplayString(e.unref(u).headerAlign),1),e.createVNode(mt,{"model-value":e.unref(v).headerAlignments.value[e.unref(R).index]||"left",label:e.unref(u).headerAlign,labels:ht.value,"auto-label":e.unref(u).autoShort,"onUpdate:modelValue":V[28]||(V[28]=h=>e.unref(v).setColumn(e.unref(R).index,"headerAlign",h))},null,8,["model-value","label","labels","auto-label"])])]),e.createElementVNode("label",ad,[e.createTextVNode(e.toDisplayString(e.unref(u).editable),1),e.createElementVNode("input",{type:"checkbox",role:"switch",checked:e.unref(R).column.editable===!0,onChange:V[29]||(V[29]=h=>e.unref(v).setColumn(e.unref(R).index,"editable",lt(h)))},null,40,od)]),(e.openBlock(),e.createBlock(Gt,{key:`${e.unref(w)}:${e.unref(R).index}`,"model-value":e.unref(R).column.visual,fields:e.unref(B)?.columns.map(h=>({field:h.field,label:h.header})),readonly:e.unref(Q),messages:t.visualMessages,"onUpdate:modelValue":V[30]||(V[30]=h=>e.unref(v).setColumn(e.unref(R).index,"visual",h))},null,8,["model-value","fields","readonly","messages"])),e.createElementVNode("div",ld,[e.createElementVNode("span",null,e.toDisplayString(e.unref(u).columnOrder),1),e.createElementVNode("button",{type:"button","aria-label":e.unref(u).moveColumnLeft,title:e.unref(u).moveColumnLeft,disabled:Ne.value||e.unref($)<=0,onClick:V[31]||(V[31]=h=>e.unref(Ee)(-1))},[e.createVNode(J._sfc_main,{name:"chevron-left",size:13})],8,rd),e.createElementVNode("button",{type:"button","aria-label":e.unref(u).moveColumnRight,title:e.unref(u).moveColumnRight,disabled:Ne.value||e.unref($)>=e.unref(B).columns.length-1,onClick:V[32]||(V[32]=h=>e.unref(Ee)(1))},[e.createVNode(J._sfc_main,{name:"chevron-right",size:13})],8,id),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(u).columnVisible),1),e.createElementVNode("input",{type:"checkbox",checked:e.unref(R).column.hidden!==!0,disabled:Ne.value||e.unref(R).column.hidden!==!0&&e.unref(B).columns.filter(h=>!h.hidden).length===1,onChange:V[33]||(V[33]=h=>e.unref(v).setColumn(e.unref(R).index,"hidden",!lt(h)))},null,40,sd)])])],8,Ac)):e.createCommentVNode("",!0),e.unref(gt)?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${D}-directory`,ref_key:"directoryPanel",ref:Yt,role:"dialog","aria-label":e.unref(u).columnDirectory,class:"mr-designer-directory",onKeydown:V[45]||(V[45]=e.withKeys((...h)=>e.unref(ee).escape&&e.unref(ee).escape(...h),["esc"])),onFocusout:V[46]||(V[46]=(...h)=>e.unref(ee).leave&&e.unref(ee).leave(...h))},[e.createElementVNode("div",dd,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(e.unref(u).columnDirectory)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref(B).columns.length),1)]),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).closeDirectory,onClick:V[34]||(V[34]=h=>e.unref(ee).close(!0))},[e.createVNode(J._sfc_main,{name:"close",size:15})],8,ud)]),e.createElementVNode("div",md,[e.createVNode(J._sfc_main,{name:"search",size:14}),e.withDirectives(e.createElementVNode("input",{ref_key:"directorySearch",ref:Qt,"onUpdate:modelValue":V[35]||(V[35]=h=>e.isRef(P)?P.value=h:null),type:"search","aria-label":e.unref(u).columnsSearch,placeholder:e.unref(u).columnsSearch,onKeydown:V[36]||(V[36]=(...h)=>e.unref(ee).searchKeydown&&e.unref(ee).searchKeydown(...h))},null,40,pd),[[e.vModelText,e.unref(P)]]),e.unref(P)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).clearSearch,title:e.unref(u).clearSearch,onClick:V[37]||(V[37]=h=>P.value="")},[e.createVNode(J._sfc_main,{name:"close",size:13})],8,fd)):e.createCommentVNode("",!0)]),e.createElementVNode("div",vd,[e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(S)||e.unref(N)||!e.unref(T).length,onClick:V[38]||(V[38]=h=>e.unref(v).selectVisible(!0))},e.toDisplayString(e.unref(u).selectVisible),9,gd),e.unref(z).length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:V[39]||(V[39]=(...h)=>e.unref(v).clearSelection&&e.unref(v).clearSelection(...h))},e.toDisplayString(e.unref(u).clearSelection),1)):e.createCommentVNode("",!0),e.unref(z).length?(e.openBlock(),e.createElementBlock("span",hd,e.toDisplayString(e.unref(u).columnsSelected)+" "+e.toDisplayString(e.unref(z).length),1)):(e.openBlock(),e.createElementBlock("span",yd,e.toDisplayString(e.unref(T).length)+" / "+e.toDisplayString(e.unref(B).columns.length),1))]),e.createElementVNode("div",{ref_key:"columnList",ref:Xt,class:"mr-designer-column-list","aria-label":e.unref(u).columnDirectory,role:"group"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ee).windowColumns.value,({column:h,index:K})=>(e.openBlock(),e.createElementBlock("div",{key:K,class:e.normalizeClass(["mr-designer-column-row",{"is-active":e.unref($)===K}])},[e.createElementVNode("input",{type:"checkbox","aria-label":`${e.unref(u).selectColumn} ${h.header}`,checked:e.unref(z).includes(K),disabled:t.readonly||e.unref(S)||e.unref(N),onChange:ge=>e.unref(v).toggleColumn(K,lt(ge))},null,40,kd),e.createElementVNode("button",{type:"button","data-column-index":K,"aria-pressed":e.unref($)===K,tabindex:e.unref(Wt)===K?0:-1,onClick:ge=>e.unref(ee).choose(K),onKeydown:V[40]||(V[40]=(...ge)=>e.unref(ee).navigate&&e.unref(ee).navigate(...ge))},[e.createElementVNode("span",Sd,e.toDisplayString(K+1),1),e.createElementVNode("span",Nd,[e.createElementVNode("strong",null,e.toDisplayString(h.header),1),e.createElementVNode("small",null,e.toDisplayString(h.field),1)]),e.unref($)===K?(e.openBlock(),e.createBlock(J._sfc_main,{key:0,name:"chevron-right",size:13})):e.createCommentVNode("",!0)],40,Ed)],2))),128)),e.unref(T).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",wd,[e.createVNode(J._sfc_main,{name:"search",size:20}),e.createTextVNode(e.toDisplayString(e.unref(u).noColumns),1)]))],8,bd),e.unref(T).length>e.unref(ee).windowSize?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mr-designer-directory-pages","aria-label":e.unref(u).columnDirectory},[e.createElementVNode("button",{type:"button",disabled:e.unref(ee).windowStart.value===0,"aria-label":e.unref(u).previousColumns,onClick:V[41]||(V[41]=h=>e.unref(ee).stepWindow(-1))},[e.createVNode(J._sfc_main,{name:"chevron-left",size:14})],8,Cd),e.createElementVNode("span",null,e.toDisplayString(e.unref(u).columnWindow.replace("{start}",String(e.unref(ee).windowStart.value+1)).replace("{end}",String(Math.min(e.unref(T).length,e.unref(ee).windowStart.value+e.unref(ee).windowSize))).replace("{total}",String(e.unref(T).length))),1),e.createElementVNode("button",{type:"button",disabled:e.unref(ee).windowStart.value+e.unref(ee).windowSize>=e.unref(T).length,"aria-label":e.unref(u).nextColumns,onClick:V[42]||(V[42]=h=>e.unref(ee).stepWindow(1))},[e.createVNode(J._sfc_main,{name:"chevron-right",size:14})],8,xd)],8,Vd)):e.createCommentVNode("",!0),e.unref(z).length?(e.openBlock(),e.createElementBlock("div",Md,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(u).batchBody),1),e.createElementVNode("select",{"aria-label":e.unref(u).batchBody,disabled:t.readonly||e.unref(S)||e.unref(N),onChange:V[43]||(V[43]=h=>kt(h,"align"))},[e.createElementVNode("option",Dd,e.toDisplayString(e.unref(u).chooseAlignment),1),e.createElementVNode("option",$d,e.toDisplayString(e.unref(u).auto),1),e.createElementVNode("option",Td,e.toDisplayString(e.unref(u).left),1),e.createElementVNode("option",_d,e.toDisplayString(e.unref(u).center),1),e.createElementVNode("option",Id,e.toDisplayString(e.unref(u).right),1),e.createElementVNode("option",Rd,e.toDisplayString(e.unref(u).justify),1)],40,Bd)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(u).batchHeader),1),e.createElementVNode("select",{"aria-label":e.unref(u).batchHeader,disabled:t.readonly||e.unref(S)||e.unref(N),onChange:V[44]||(V[44]=h=>kt(h,"headerAlign"))},[e.createElementVNode("option",Ld,e.toDisplayString(e.unref(u).chooseAlignment),1),e.createElementVNode("option",Ad,e.toDisplayString(e.unref(u).left),1),e.createElementVNode("option",Fd,e.toDisplayString(e.unref(u).center),1),e.createElementVNode("option",Hd,e.toDisplayString(e.unref(u).right),1),e.createElementVNode("option",Od,e.toDisplayString(e.unref(u).justify),1)],40,Pd)])])):e.createCommentVNode("",!0)],40,cd)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",Gd,e.toDisplayString(e.unref(u).noColumns),1))],64)):e.unref(_)==="component"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",zd,[e.createElementVNode("button",{type:"button",title:e.unref(u).duplicateComponent,"aria-label":e.unref(u).duplicateComponent,disabled:e.unref(Q)||Z.value||!e.unref(le),onClick:V[47]||(V[47]=(...h)=>e.unref(W).duplicate&&e.unref(W).duplicate(...h))},e.toDisplayString(e.unref(X).messages.value.duplicate),9,jd),e.createElementVNode("button",{type:"button",title:e.unref(u).removeComponent,"aria-label":e.unref(u).removeComponent,disabled:e.unref(Q)||Z.value||!e.unref(le),onClick:V[48]||(V[48]=(...h)=>e.unref(W).remove&&e.unref(W).remove(...h))},[e.createVNode(J._sfc_main,{name:"close",size:14}),e.createTextVNode(" "+e.toDisplayString(e.unref(u).removeComponent),1)],8,Ud)]),e.unref(k).template.pages.length>1?(e.openBlock(),e.createElementBlock("label",qd,[e.createTextVNode(e.toDisplayString(e.unref(u).page),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":V[49]||(V[49]=h=>e.isRef(j)?j.value=h:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(k).template.pages,(h,K)=>(e.openBlock(),e.createElementBlock("option",{key:K,value:K},e.toDisplayString(e.unref(Ue)(h,K,e.unref(u).page)),9,Kd))),128))],512),[[e.vModelSelect,e.unref(j),void 0,{number:!0}]])])):e.createCommentVNode("",!0),e.createElementVNode("label",Wd,[e.createTextVNode(e.toDisplayString(e.unref(u).components),1),e.createElementVNode("select",{value:e.unref(U)&&e.unref(U).pageIndex===e.unref(j)?e.unref(U).componentIndex:-1,onChange:V[50]||(V[50]=h=>e.unref(Be)({pageIndex:e.unref(j),componentIndex:Number(ve(h))}))},[e.createElementVNode("option",Yd,e.toDisplayString(e.unref(u).noComponent),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(He.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h.index,value:h.index},e.toDisplayString(h.index+1)+" · "+e.toDisplayString(h.name),9,Qd))),128))],40,Jd)]),e.unref(W).selections.value.length?(e.openBlock(),e.createElementBlock("div",Xd,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(W).selections.value.length)+" "+e.toDisplayString(e.unref(u).component),1),e.createElementVNode("button",{type:"button",disabled:e.unref(Q),onClick:V[51]||(V[51]=(...h)=>e.unref(W).toggleLock&&e.unref(W).toggleLock(...h))},e.toDisplayString(e.unref(W).allLocked.value?e.unref(u).unlockSelection:e.unref(u).lockSelection),9,Zd),e.createElementVNode("select",{"aria-label":e.unref(u).alignSelection,disabled:e.unref(Q)||Z.value||e.unref(W).selections.value.length<2,onChange:V[52]||(V[52]=h=>{e.unref(W).align(ve(h)),h.target.value=""})},[e.createElementVNode("option",tu,e.toDisplayString(e.unref(u).alignSelection),1),e.createElementVNode("option",nu,e.toDisplayString(e.unref(u).leftEdges),1),e.createElementVNode("option",au,e.toDisplayString(e.unref(u).centers),1),e.createElementVNode("option",ou,e.toDisplayString(e.unref(u).rightEdges),1),e.createElementVNode("option",lu,e.toDisplayString(e.unref(u).topEdges),1),e.createElementVNode("option",ru,e.toDisplayString(e.unref(u).middles),1),e.createElementVNode("option",iu,e.toDisplayString(e.unref(u).bottomEdges),1)],40,eu),e.createElementVNode("button",{type:"button",disabled:e.unref(Q)||Z.value||e.unref(W).selections.value.length<3,onClick:V[53]||(V[53]=h=>e.unref(W).distribute("horizontal"))},e.toDisplayString(e.unref(u).horizontalSpacing),9,su),e.createElementVNode("button",{type:"button",disabled:e.unref(Q)||Z.value||e.unref(W).selections.value.length<3,onClick:V[54]||(V[54]=h=>e.unref(W).distribute("vertical"))},e.toDisplayString(e.unref(u).verticalSpacing),9,cu),e.unref(W).allLocked.value?(e.openBlock(),e.createElementBlock("small",du,e.toDisplayString(e.unref(u).sessionLock),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.unref(le)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",uu,[e.createElementVNode("button",{type:"button",disabled:e.unref(Q)||Z.value||e.unref(U)?.componentIndex===0,onClick:V[55]||(V[55]=h=>e.unref(W).reorder(-1))},e.toDisplayString(e.unref(u).backward),9,mu),e.createElementVNode("button",{type:"button",disabled:e.unref(Q)||Z.value||e.unref(U)?.componentIndex===(e.unref(k).template.pages[e.unref(j)]?.components.length??0)-1,onClick:V[56]||(V[56]=h=>e.unref(W).reorder(1))},e.toDisplayString(e.unref(u).forward),9,pu)]),e.createVNode(fr,{component:e.unref(le),"geometry-disabled":Z.value,disabled:e.unref(Q)||e.unref(W).locked(e.unref(U)),messages:e.unref(u),repeat:e.unref(k).template.repeat,schema:Fe.value,schemas:t.dataSchemas,datasets:t.datasets,onGeometry:e.unref(W).geometry,onPatch:e.unref(Ke)},null,8,["component","geometry-disabled","disabled","messages","repeat","schema","schemas","datasets","onGeometry","onPatch"]),e.unref(le).kind==="list"?(e.openBlock(),e.createBlock(Li,{key:0,list:e.unref(le),disabled:e.unref(Q)||Z.value,messages:e.unref(u),onCommand:e.unref(Pe)},null,8,["list","disabled","messages","onCommand"])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",fu,e.toDisplayString(e.unref(u).noComponent),1))],64)):e.unref(_)==="template"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(u).templateDetails),1),e.createElementVNode("label",vu,[e.createTextVNode(e.toDisplayString(e.unref(u).name),1),e.createElementVNode("input",{value:e.unref(k).name,disabled:t.readonly||e.unref(S)||e.unref(N),onInput:V[57]||(V[57]=h=>e.unref(v).setName(ve(h)))},null,40,gu)]),e.createElementVNode("label",hu,[e.createTextVNode(e.toDisplayString(e.unref(u).description),1),e.createElementVNode("textarea",{rows:"2",value:e.unref(k).description,disabled:t.readonly||e.unref(S)||e.unref(N),onInput:V[58]||(V[58]=h=>e.unref(v).setDescription(ve(h)))},null,40,yu)]),e.createVNode(Pr,{document:e.unref(k),"page-index":e.unref(j),disabled:e.unref(Q),messages:e.unref(u),onSelect:V[59]||(V[59]=h=>j.value=h),onCommand:Kt,onLocate:V[60]||(V[60]=h=>{e.unref(Be)({pageIndex:e.unref(j),componentIndex:h}),te("design")})},null,8,["document","page-index","disabled","messages"]),e.createVNode(ti,{document:e.unref(k),datasets:Object.keys(t.datasets??{}),schemas:t.dataSchemas,disabled:e.unref(Q),messages:e.unref(u),onChange:V[61]||(V[61]=h=>{e.unref(v).transaction(K=>{h?K.template.repeat=h:delete K.template.repeat})})},null,8,["document","datasets","schemas","disabled","messages"]),e.createElementVNode("details",bu,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(u).technicalDetails),1),e.createElementVNode("dl",ku,[e.createElementVNode("dt",null,e.toDisplayString(e.unref(u).templateIdentity),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(k).id),1),e.createElementVNode("dt",null,e.toDisplayString(e.unref(u).templateRevision),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(k).revision||e.unref(u).unpublished),1)])])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(u).advancedTitle),1),e.createElementVNode("label",Eu,[e.createTextVNode(e.toDisplayString(e.unref(u).json),1),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":V[62]||(V[62]=h=>e.isRef(M)?M.value=h:null),class:"mr-designer-json","aria-label":e.unref(u).json,disabled:t.readonly||e.unref(S),spellcheck:"false"},null,8,Su),[[e.vModelText,e.unref(M)]])]),e.createElementVNode("button",{type:"button",class:"mr-designer-apply-json",disabled:t.readonly||e.unref(S),onClick:V[63]||(V[63]=(...h)=>e.unref(v).applyJson&&e.unref(v).applyJson(...h))},e.toDisplayString(e.unref(u).applyJson),9,Nu)],64)),e.unref(N)?(e.openBlock(),e.createElementBlock("p",wu,e.toDisplayString(e.unref(u).jsonPending),1)):e.createCommentVNode("",!0)],10,Nc)])):e.createCommentVNode("",!0),e.unref(_)!=="tools"||e.unref(me)?(e.openBlock(),e.createElementBlock("div",{key:2,class:"mr-designer-preview","aria-label":e.unref(u).previewTitle},[e.unref(x)?(e.openBlock(),e.createElementBlock("div",Cu,e.toDisplayString(e.unref(x)),1)):e.createCommentVNode("",!0),e.unref(d).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",xu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(d).errors,h=>(e.openBlock(),e.createElementBlock("li",{key:h.path},e.toDisplayString(h.path)+":"+e.toDisplayString(h.message),1))),128))])),e.unref(Y)==="design"&&e.unref(d).ok?(e.openBlock(),e.createBlock(no,{key:2,document:e.unref(k),selection:e.unref(U),selections:e.unref(W).selections.value,locked:e.unref(W).locked,"active-column-index":e.unref($),"page-index":e.unref(j),datasets:t.datasets,disabled:e.unref(Q)||Z.value||e.unref(v).isToolPending("rules"),messages:e.unref(u),onSelect:e.unref(Be),onGeometry:e.unref(W).geometry,onColumn:e.unref(I).activate,onWidth:V[64]||(V[64]=(h,K)=>e.unref(v).setColumn(h,"widthMm",String(K)))},null,8,["document","selection","selections","locked","active-column-index","page-index","datasets","disabled","messages","onSelect","onGeometry","onColumn"])):e.unref(oe)&&e.unref(d).ok?(e.openBlock(),e.createBlock(e.unref(dt.ReportPreview),{key:3,"report-id":"draft",fetcher:e.unref(oe),messages:{title:e.unref(u).previewTitle,columnDirectory:e.unref(u).previewFieldDirectory},"show-params":!1,editable:!1,"excel-import":!1,height:"100%"},null,8,["fetcher","messages"])):(e.openBlock(),e.createElementBlock("p",Mu,e.toDisplayString(e.unref(u).invalid),1))],8,Vu)):e.createCommentVNode("",!0)],2)],40,Fs))}}),qt=J._export_sfc(Bu,[["__scopeId","data-v-8216bcb4"]]),Du=Object.freeze(Object.defineProperty({__proto__:null,default:qt},Symbol.toStringTag,{value:"Module"})),$u={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:"调序"}},Tu={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:"契约字段,不执行接口查询"},_u={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:"启用"},Iu={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 级。"},Ru={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} 组"},Pu={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:"模板目录响应格式无效"},Lu={applyFirst:"请先应用当前配置或修正模板问题,再切换打印预览。",saveFailed:"模板尚未保存,请检查提示后重试。",title:"标识打印",preview:"打印预览",design:"设计标签",records:"预览记录",all:"全部记录",record:"记录序号",single:"单条预览",faces:"个版面",labels:"张标签",session:"当前会话模板",flow:"成品预览 · 按记录生成",designHint:"设计使用前 3 条样本 · 完整记录用于预览和打印",guide:"使用指引",help:"先选成品样式与显示字段即可使用。需要追加内容或自由排版时,进入设计标签。",size:"纸张与份数",bindings:"字段与码图",count:"条记录",invalidCopies:"份数待校验",sheet:"A4 标签拼版",sheetHint:"{columns} 列 × {rows} 行 · 每页 {capacity} 张,保持原尺寸",sheetUnavailable:"当前版面尺寸不适合 A4 拼版,请统一版面尺寸或使用原尺寸打印。",printHint:"先试打一张,使用同规格纸张与 100% 比例核对尺寸和扫码。",empty:"暂无可打印记录",save:"保存标签模板",layout:"成品样式",materialPreset:"物料卡",pairedPreset:"双版标识",warehousePreset:"仓储标签",fields:"显示字段",findField:"查找业务字段",noFields:"没有匹配的字段",fieldLimit:"最多显示 5 个字段,取消已选项后可继续选择。",removeField:"取消字段",fieldSearchHint:"每次显示前 30 项,可搜索完整字段目录。",brand:"标题与品牌",brandName:"主标题",brandTagline:"副标题(可选)",applyLayout:"应用新样式",applyContent:"更新内容",contentHint:"标题与字段原位更新,保留手工排版和追加内容。",contentNeedsDesign:"新增内容与现有设计重叠或缺少可识别位置,请还原轻配置后进入设计调整,或确认重建样式。",rebuildCurrent:"重新套用所选样式",applyLayoutFirst:"样式尚未应用,请先确认重建或还原轻配置后继续。",rebuildTitle:"确认重建标签布局",rebuildDescription:"将替换当前全部版面和手工调整,保留打印份数。进入设计后可撤销本次重建。",cancelRebuild:"继续调整",confirmRebuild:"确认重建",invalidSavedTemplate:"保存服务返回的模板标识不一致,请重试。",designLoading:"正在加载标签设计器…",designLoadFailed:"标签设计器加载失败,请重试。",restoreConfiguration:"还原轻配置",choosePreset:"请选择成品样式后更新标签,或还原轻配置继续使用当前模板。",discardTitle:"保留标签修改",discardDescription:"标签设计或轻配置存在未保存的修改,继续将丢弃这些修改。",keepEditing:"继续编辑",discard:"丢弃并继续",reflowHint:"按所选样式重新排版,可在设计中撤销恢复。",customTemplate:"自定义模板",readyTemplate:"成品模板 · 可直接打印"},Au=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-C2YjiaEC.cjs"))),Fu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-B2xXBOJu.cjs"))),Hu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-Dtcq-7LO.cjs"))),Ou=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-DhHlNxai.cjs"))),Gu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportBatchPanel-BUdUfTdm.cjs"))),zu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportTemplateLibrary-Cs9WKneQ.cjs"))),ju=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateOutlinePanel-CkCh506f.cjs"))),Uu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReusePanel-CwttuSta.cjs"))),qu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportLabelStudio-BcjQt73a.cjs")));exports.COLUMN_VISUAL_MESSAGES=Ot;exports.ChartBindingInspector=At;exports.ColumnVisualEditor=Gt;exports.DEFAULT_RULE_EDITOR_MESSAGES=_u;exports.DESIGNER_GUIDE_MESSAGES=_t;exports.EXCEL_BINDING_MESSAGES=Tu;exports.ExcelBindingWizard=Fu;exports.LABEL_STUDIO_MESSAGES=Lu;exports.PARAM_EDITOR_MESSAGES=Iu;exports.ParamEditor=Ou;exports.REPORT_BATCH_MESSAGES=Ru;exports.ReportBatchPanel=Gu;exports.ReportLabelStudio=qu;exports.ReportTemplateEditor=qt;exports.ReportTemplateEditor$1=Du;exports.ReportTemplateLibrary=zu;exports.RuleEditor=Hu;exports.TEMPLATE_EDITOR_MESSAGES=ce;exports.TEMPLATE_LIBRARY_MESSAGES=Pu;exports.TEMPLATE_PRODUCT_MESSAGES=Ft;exports.TEMPLATE_RECOVERY_MESSAGES=Ht;exports.TEMPLATE_REVIEW_MESSAGES=$u;exports.TemplateOutlinePanel=ju;exports.TemplateReusePanel=Uu;exports.TemplateReviewPanel=Au;exports.createTemplateDraftStorage=Cs;exports.useTemplateDiscard=Ut;exports.useTemplateToolDraft=gs;
|
|
2
|
+
`));return ye.stringifyValidatedTemplate(F),a.value=F,de(),!0}catch(F){return c.value=F instanceof Error?F.message:String(F),!1}}function et(L){return m.value||j.fieldChange.value?(c.value=C.value.toolsPending,!1):Se(F=>{F.template=G.parseReportTemplate({...F,template:L}).template})}async function tt(L){if(!U())return!1;try{const F=G.parseReportTemplate(L);return ye.stringifyValidatedTemplate(F),!await pe("replace",F)||!U()?!1:(a.value=F,le.value=0,j.clearSelection(),de(),!0)}catch(F){return c.value=F instanceof Error?F.message:String(F),!1}}function nt(L){U()&&(a.value.name=L,de("document:name"))}function Be(L){U()&&(a.value.description=L,de("document:description"))}function Le(){if(!(t.readonly||Y.value))try{const L=G.parseReportTemplate(s.value);if(L.id!==a.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(L.revision!==a.value.revision&&(!T||L.revision!==T.revision))throw new Error("修订号由保存服务管理,不能在 JSON 中修改");a.value.revision===void 0?delete L.revision:L.revision=a.value.revision,ye.stringifyValidatedTemplate(L),a.value=L,le.value=0,j.clearSelection(),de()}catch(L){c.value=L instanceof Error?L.message:String(L)}}async function De(){Y.value||t.readonly||!await pe("reset")||(Me(G.parseReportTemplate(i.value)),o("update:modelValue",n()))}function Ae(L){if(Y.value||t.readonly)return;I.record(A(),$?.read());const F=I.move(L);if(!F)return;H.cancel();const q=JSON.parse(F);b=!0,a.value=Ps(q,G.parseReportTemplate(i.value)),E.value=l.value.json??JSON.stringify(a.value,null,2),s.value=q.json?.text??E.value,T=q.json?{revision:q.json.revision}:void 0,P.restore(q.tools),queueMicrotask(()=>{b=!1}),c.value="";const te=I.context.value?.listIndex;le.value=te!==void 0&&ne.value[te]?te:0,j.clearSelection(),I.context.value&&$?.restore(I.context.value),w.value.ok&&o("update:modelValue",n())}async function X(){if(!t.save||!U()||!w.value.ok)return;if(m.value||j.fieldChange.value){c.value=C.value.toolsPending;return}const L=++M;k=new AbortController,y.value=!0,c.value="";const F=n();try{const q=G.parseReportTemplate(await t.save(F,{expectedRevision:F.revision,signal:k.signal}));if(L!==M)return;if(q.id!==F.id)throw new Error("保存服务返回了其他模板的文档");const te=ye.stringifyValidatedTemplate(q);a.value=q,i.value=te,s.value=i.value,E.value=s.value,I.endGroup(),T=void 0,P.clear(),$e.flush(),o("saved",G.parseReportTemplate(q)),o("update:modelValue",G.parseReportTemplate(q))}catch(q){L===M&&(c.value=q instanceof Error?q.message:String(q),q&&typeof q=="object"&&"code"in q&&q.code==="conflict"&&fe.begin())}finally{L===M&&(y.value=!1,k=void 0)}}const fe=Ds({configuration:()=>t,baseline:()=>G.parseReportTemplate(i.value),local:n,async applyLatest(L){return await pe("replace",L)?(Me(L),o("update:modelValue",G.parseReportTemplate(L)),!0):!1},rebase(L){const F=n();L.revision===void 0?delete F.revision:F.revision=L.revision;const q=G.serializeReportTemplate(F),te=G.serializeReportTemplate(L),Z=f.value;F.revision===void 0?delete a.value.revision:a.value.revision=F.revision,i.value=te,Z||(s.value=q),E.value=q,I.reset(A(),$?.read()),o("update:modelValue",n())}}),$e=Bs({storage:()=>t.draftStorage,id:()=>a.value.id,baseline:()=>i.value,pending:()=>z.value,changedSource:()=>[A(),i.value,s.value,E.value],snapshot:()=>({version:1,templateId:a.value.id,savedAt:new Date().toISOString(),baseline:G.parseReportTemplate(i.value),document:JSON.parse(JSON.stringify(a.value)),json:s.value,appliedJson:E.value,tools:P.records.value}),restore(L){if(t.readonly||y.value)return;const F=G.parseReportTemplate(t.modelValue);a.value=G.parseReportTemplate(L.document),i.value=G.serializeReportTemplate(L.baseline),s.value=L.json,E.value=L.appliedJson,g.value++,P.restore(L.tools);const q=Object.keys(L.tools).find(te=>te.startsWith("rules:"));if(q){const[,te,Z]=q.split(":"),Fe=ne.value.findIndex(He=>He.pageIndex===Number(te)&&He.componentIndex===Number(Z));Fe>=0&&(le.value=Fe)}I.reset(A(),$?.read()),G.serializeReportTemplate(F)!==i.value&&fe.begin(F),o("update:modelValue",n())}}),We=e.computed(()=>I.canUndo.value||A()!==I.current.value),at=e.computed(()=>I.canRedo.value&&A()===I.current.value);return{...j,recovery:$e,conflict:fe,editingReadonly:e.computed(()=>t.readonly===!0),connectHistoryView:R,captureHistoryView:D,historyViewRevision:_,transaction:Se,applyTemplate:et,replaceDocument:tt,originalDocument:e.computed(()=>G.parseReportTemplate(i.value)),canUndo:We,canRedo:at,undo:()=>Ae(-1),redo:()=>Ae(1),pendingLocalChanges:z,setToolPending:d,isToolPending:L=>N.value[L]===!0,toolEpoch:g,toolPending:m,pendingTools:p,jsonPending:f,blocked:Y,confirmation:H.confirmation,decideDiscard:H.decide,guardChanges:pe,draft:a,json:s,selected:le,error:c,saving:y,dirty:x,validation:w,lists:ne,activeList:re,headerAlignments:Q,previewOptions:v,fetcher:Ze,flushPreview:W,messages:C,setName:nt,setDescription:Be,setColumn:ke,applyJson:Le,reset:De,save:X}}function As(t,o){const a=e.ref(o.value?"fields":"component"),l=()=>o.value?.columns.length?0:-1,n=e.ref(l()),r=e.computed(()=>{const c=o.value?.columns[n.value];return c?{column:c,index:n.value}:void 0});e.watch(t,()=>{n.value=l()},{flush:"sync"}),e.watch(o,c=>{c?.columns[n.value]||(n.value=l()),!c&&a.value==="fields"&&(a.value="component")});function i(c){o.value?.columns[c]&&(n.value=c)}function s(c){const y=o.value?.columns.length??0;y&&(n.value=Math.max(0,Math.min(y-1,n.value+c)))}return{section:a,activeIndex:n,activeColumn:r,activate:i,stepColumn:s}}const Fs=["aria-label","aria-busy"],Hs={class:"mr-designer-bar"},Os={class:"mr-designer-heading"},Gs=["aria-label"],zs=["id","aria-selected","aria-controls","tabindex","onClick"],js={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},Us=["aria-label"],qs=["aria-pressed"],Ks=["aria-pressed"],Ws={class:"mr-designer-actions"},Js={class:"mr-designer-history"},Ys=["aria-label","title","disabled"],Qs=["aria-label","title","disabled"],Xs=["disabled"],Zs=["title","aria-describedby","disabled"],ec=["id"],tc={key:0,class:"mr-designer-insert-notice",role:"status"},nc=["id"],ac=["aria-label","onClick"],oc=["aria-label"],lc=["id","aria-labelledby"],rc=["aria-label"],ic=["id","aria-pressed","aria-describedby","onClick"],sc={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},cc={class:"mr-designer-tool-target"},dc=["value","aria-label"],uc=["value"],mc=["value","aria-label"],pc={value:-1,disabled:""},fc=["value"],vc=["aria-pressed"],gc={class:"mr-designer-tool-content"},hc={key:5,class:"mr-designer-rule-workspace"},yc={key:0},bc=["value"],kc=["value"],Ec={key:2,class:"mr-designer-note"},Sc={key:1,class:"mr-designer-inspector"},Nc=["id","aria-labelledby"],wc={key:0,class:"mr-designer-flow-note"},Vc={key:0,class:"mr-designer-area"},Cc=["value"],xc=["value"],Mc={class:"mr-designer-field-actions"},Bc=["disabled"],Dc={class:"mr-designer-current"},$c=["aria-expanded","aria-controls"],Tc={class:"mr-designer-current-name"},_c={class:"mr-designer-directory-entry"},Ic={class:"mr-designer-field-position"},Rc=["aria-label"],Pc=["aria-label","title","disabled"],Lc=["aria-label","title","disabled"],Ac=["disabled","aria-label"],Fc={class:"mr-designer-property-group"},Hc=["value"],Oc=["value","list"],Gc=["id"],zc=["value"],jc={class:"mr-designer-property-group"},Uc={class:"mr-designer-format-pair"},qc={class:"mr-designer-stacked"},Kc=["value","disabled"],Wc={class:"mr-designer-stacked"},Jc=["value"],Yc={value:"identifier"},Qc={value:"dimension"},Xc={value:"measure"},Zc={value:"date"},ed={value:"text"},td={class:"mr-designer-control-row"},nd={class:"mr-designer-control-row"},ad={class:"mr-designer-toggle"},od=["checked"],ld={class:"mr-designer-column-structure"},rd=["aria-label","title","disabled"],id=["aria-label","title","disabled"],sd=["checked","disabled"],cd=["id","aria-label"],dd={class:"mr-designer-directory-heading"},ud=["aria-label"],md={class:"mr-designer-search"},pd=["aria-label","placeholder"],fd=["aria-label","title"],vd={class:"mr-designer-column-tools"},gd=["disabled"],hd={key:1,role:"status"},yd={key:2},bd=["aria-label"],kd=["aria-label","checked","disabled","onChange"],Ed=["data-column-index","aria-pressed","tabindex","onClick"],Sd={class:"mr-designer-column-number"},Nd={class:"mr-designer-column-name"},wd={key:0,role:"status",class:"mr-designer-empty"},Vd=["aria-label"],Cd=["disabled","aria-label"],xd=["disabled","aria-label"],Md={key:1,class:"mr-designer-batch"},Bd=["aria-label","disabled"],Dd={value:""},$d={value:"auto"},Td={value:"left"},_d={value:"center"},Id={value:"right"},Rd={value:"justify"},Pd=["aria-label","disabled"],Ld={value:""},Ad={value:"left"},Fd={value:"center"},Hd={value:"right"},Od={value:"justify"},Gd={key:2,role:"status",class:"mr-designer-empty"},zd={class:"mr-designer-object-tools"},jd=["title","aria-label","disabled"],Ud=["title","aria-label","disabled"],qd={key:0},Kd=["value"],Wd={class:"mr-designer-stacked"},Jd=["value"],Yd={value:-1,disabled:""},Qd=["value"],Xd={key:1,class:"mr-designer-arrange"},Zd=["disabled"],eu=["aria-label","disabled"],tu={value:""},nu={value:"left"},au={value:"center"},ou={value:"right"},lu={value:"top"},ru={value:"middle"},iu={value:"bottom"},su=["disabled"],cu=["disabled"],du={key:0},uu={class:"mr-designer-layer-tools"},mu=["disabled"],pu=["disabled"],fu={key:3,class:"mr-designer-empty"},vu={class:"mr-designer-stacked"},gu=["value","disabled"],hu={class:"mr-designer-stacked"},yu=["value","disabled"],bu={class:"mr-designer-technical"},ku={class:"mr-designer-identity"},Eu={class:"mr-designer-stacked mr-designer-json-label"},Su=["aria-label","disabled"],Nu=["disabled"],wu={key:5,role:"status",class:"mr-designer-note mr-designer-pending"},Vu=["aria-label"],Cu={key:0,role:"alert",class:"mr-designer-error"},xu={key:1,role:"alert",class:"mr-designer-error"},Mu={key:4,class:"mr-designer-note mr-designer-invalid"},Bu=e.defineComponent({__name:"ReportTemplateEditor",props:{showSave:{type:Boolean,default:!0},mode:{},showModeSwitch:{type:Boolean,default:!0},capabilities:{},insertionMessages:{},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","update:mode"],setup(t,{expose:o,emit:a}){const l=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-Bu0LUlzl.cjs"))),n=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-38ZfNrPU.cjs"))),r=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-xFkCVlii.cjs"))),i=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateOutlinePanel-CDI6mfWx.cjs"))),s=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReusePanel-BG9Or5-P.cjs"))),c=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-BmBrjt6P.cjs"))),y=t,C=a,v=Ls(y,(O,V)=>{C(O==="saved"?"saved":"update:modelValue",V)}),{draft:k,json:M,selected:w,error:x,saving:E,pendingLocalChanges:f,jsonPending:N,blocked:S,confirmation:g,canUndo:m,canRedo:p,validation:d,lists:b,activeList:B,visibleColumns:T,query:P,selectedColumns:z,fetcher:oe,messages:u}=v;function A(O){return v.transaction(V=>{V.template.params=O})}const I=As(w,B),{section:_,activeIndex:$,activeColumn:R}=I,D=`mr-designer-${e.getCurrentInstance()?.uid??0}`,H=Oi(v,I,()=>y.dataSchemas,{mode:()=>y.mode,onModeChange:O=>C("update:mode",O)}),{mode:Y,canvasSelection:U,canvasPage:j,canvasActive:le,tool:ne,visitedTools:re,editDisabled:Q,dataSchema:ke,patchCanvas:Ke,changeList:ue,moveColumn:Ee,headerCommand:Pe,canvas:W}=H,{sections:Ze,toolPreview:me,setMode:xe,toggleToolPreview:pe,chooseToolComponent:Me,openBinding:de,pendingConfigurations:Se,saveReason:et,openPending:tt,headingStatus:nt,chooseCanvas:Be,locateReview:Le,chooseRuleList:De,navigateSection:Ae}=Ai(v,H,I,{id:D,readonly:()=>y.readonly===!0,capabilities:()=>y.capabilities}),X=sa(v,H,I,()=>y.dataSchemas,()=>y.datasets,()=>y.insertionMessages),fe=ca(()=>({undo:v.undo,redo:v.redo,canUndo:m.value,canRedo:p.value,blocked:S.value||y.readonly})),$e=["outline","reuse","excel","rules","params","review"],We=e.computed(()=>$e.filter(O=>y.capabilities?.[O]!==!1));e.watch(We,O=>{O.includes(ne.value)||(ne.value=O[0]??"outline"),!O.length&&_.value==="tools"&&(_.value=b.value.length?"fields":"component")});const at=e.computed(()=>["fields","components","layout","excel","rules","review"].filter(O=>!["excel","rules","review"].includes(O)||y.capabilities?.[O]!==!1)),L=e.computed(()=>k.value.template.pages.some(O=>O.components.some(V=>V.kind==="list"||V.binding?!1:V.kind==="image"?!V.imageData||V.meta?.designerPlaceholder===!0:["qrcode","barcode"].includes(V.kind)&&!V.imageData&&!(V.code?.value??V.fallbackText??V.text??"").trim()))),F=e.computed(()=>X.confirmation.value?X.messages.value.newPagePending:L.value?X.messages.value.assetPending:et.value);async function q(){if(!X.confirmation.value){if(L.value){x.value=X.messages.value.assetPending;return}await v.save()}}function te(O){if(O==="preview"&&L.value){x.value=X.messages.value.assetPending;return}v.flushPreview(),xe(O)}e.watch(Y,O=>{O==="preview"&&v.flushPreview()});const Z=e.computed(()=>!!k.value.template.pages[j.value]?.flow),Fe=e.computed(()=>y.dataSchemas?.[k.value.template.repeat?.dataset??""]),He=e.computed(()=>{const O={text:u.value.insertText,list:u.value.insertList,image:u.value.insertImage,rect:u.value.insertRect,qrcode:u.value.insertQrcode,barcode:u.value.insertBarcode,chart:u.value.chartComponent,line:u.value.lineComponent,ellipse:u.value.ellipseComponent},V=new Map(Fe.value?.fields.map(h=>[h.field,h.label||h.field]));return k.value.template.pages[j.value]?.components.map((h,K)=>{const ge=O[h.kind],rt=(h.kind==="list"?h.title||h.dataset:h.binding?V.get(h.binding.field)||h.binding.field:h.text)?.replace(/\s+/g," ").trim().slice(0,60);return{index:K,name:rt&&rt!==ge?`${ge} · ${rt}`:ge}})??[]});function Kt(O){let V=j.value;v.transaction(h=>{V=ga(h,j.value,O)})&&(O.type!=="patch"&&(W.clearLocks(),W.selection.value=void 0,W.selections.value=[]),j.value=V)}const Ne=e.computed(()=>!!k.value.template.pages[b.value[w.value]?.pageIndex??-1]?.flow),vt=e.ref(null),ot=e.ref(null),ee=fs(I,_,T),{open:gt,cursor:Wt,trigger:Jt,panel:Yt,search:Qt,list:Xt}=ee;e.watch(_,async()=>{await e.nextTick(),ot.value&&(ot.value.scrollTop=0)});const ht=e.computed(()=>({auto:u.value.auto,left:u.value.left,center:u.value.center,right:u.value.right,justify:u.value.justify}));let Je=null;e.watch(g,async O=>{O?(Je=document.activeElement,await e.nextTick(),vt.value?.focus()):(await e.nextTick(),Je?.isConnected&&Je.focus(),Je=null)});function yt(O){if(!(S.value||y.capabilities?.[O]===!1)){if(["excel","rules","params","review"].includes(O)){_.value="tools",ne.value=O;return}_.value=O==="layout"?"template":O==="fields"&&b.value.length?"fields":"component",te(_.value==="fields"?"preview":"design")}}const bt=e.computed(()=>!y.readonly&&!S.value&&!N.value&&!v.toolPending.value&&!v.fieldChange.value&&d.value.ok&&!L.value&&!X.confirmation.value);o({openPanel:yt,applyTemplate:v.applyTemplate,undo:v.undo,redo:v.redo,get canUndo(){return m.value},get canRedo(){return p.value},get canApply(){return bt.value},get saveReason(){return F.value},get pendingLocalChanges(){return f.value},get saving(){return E.value},get blocked(){return S.value||!!X.confirmation.value},guardChanges:(...O)=>(X.cancelInsertion(),v.guardChanges(...O)),reset:async()=>{X.cancelInsertion(),await v.reset()},save:q,insertComponent:W.insertComponent});async function Zt(O){const V={...O.document,id:k.value.id};if(k.value.revision===void 0?delete V.revision:V.revision=k.value.revision,!await v.replaceDocument(V))return!1;const h=G.parseReportTemplate(v.draft.value);return C("excel-bound",{...O,document:h,session:{...O.session,identity:{id:h.id,name:h.name}}}),!0}function ve(O){return O.target.value}function lt(O){return O.target.checked}function kt(O,V){const h=O.target;v.alignColumns(V,h.value),h.value=""}return(O,V)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(u).title,"aria-busy":e.unref(E),onKeydown:V[65]||(V[65]=(...h)=>e.unref(fe).keydown&&e.unref(fe).keydown(...h))},[e.createElementVNode("header",Hs,[e.createElementVNode("div",Os,[e.createVNode(J._sfc_main,{name:"columns",size:15}),e.createElementVNode("strong",null,e.toDisplayString(e.unref(u).heading),1),e.createElementVNode("span",{class:e.normalizeClass({"mr-designer-dirty":e.unref(f)})},e.toDisplayString(e.unref(nt)),3)]),e.createElementVNode("nav",{class:"mr-designer-tabs",role:"tablist","aria-label":e.unref(u).sectionsLabel},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Ze),h=>(e.openBlock(),e.createElementBlock("button",{id:`${D}-tab-${h}`,key:h,type:"button",role:"tab","aria-selected":e.unref(_)===h,"aria-controls":`${D}-panel-${h}`,tabindex:e.unref(_)===h?0:-1,onClick:K=>_.value=h,onKeydown:V[0]||(V[0]=(...K)=>e.unref(Ae)&&e.unref(Ae)(...K))},[e.createTextVNode(e.toDisplayString(e.unref(u)[`${h}Section`])+" ",1),h==="tools"&&e.unref(v).toolPending.value||h==="advanced"&&e.unref(N)?(e.openBlock(),e.createElementBlock("span",js)):e.createCommentVNode("",!0)],40,zs))),128))],8,Gs),t.showModeSwitch!==!1?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-designer-mode",role:"group","aria-label":e.unref(u).design},[e.createElementVNode("button",{type:"button","aria-pressed":e.unref(Y)==="design",onClick:V[1]||(V[1]=h=>te("design"))},e.toDisplayString(e.unref(u).design),9,qs),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(Y)==="preview",onClick:V[2]||(V[2]=h=>te("preview"))},e.toDisplayString(e.unref(u).preview),9,Ks)],8,Us)):e.createCommentVNode("",!0),e.createElementVNode("div",Ws,[e.createVNode(bn,{disabled:e.unref(Q)||Z.value,repeat:!!e.unref(k).template.repeat,fields:e.unref(k).template.repeat||e.unref(B)?e.unref(X).fields.value:[],columns:!e.unref(k).template.repeat,"used-fields":e.unref(k).template.repeat?[]:e.unref(B)?.columns.map(h=>h.field)??[],messages:t.insertionMessages,onInsert:e.unref(X).insert,onField:e.unref(X).addField},null,8,["disabled","repeat","fields","columns","used-fields","messages","onInsert","onField"]),e.createVNode(rn,{available:at.value,fields:!!e.unref(b).length,disabled:e.unref(S),messages:t.guideMessages,onChoose:yt},null,8,["available","fields","disabled","messages"]),e.createElementVNode("div",Js,[e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).undo,title:e.unref(u).undo,disabled:t.readonly||e.unref(S)||!e.unref(m),onClick:V[3]||(V[3]=h=>{e.unref(W).clearLocks(),e.unref(v).undo()})},[V[66]||(V[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)),e.createTextVNode(e.toDisplayString(e.unref(u).undo),1)],8,Ys),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).redo,title:e.unref(u).redo,disabled:t.readonly||e.unref(S)||!e.unref(p),onClick:V[4]||(V[4]=h=>{e.unref(W).clearLocks(),e.unref(v).redo()})},[V[67]||(V[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)),e.createTextVNode(e.toDisplayString(e.unref(u).redo),1)],8,Qs)]),e.createElementVNode("button",{type:"button",class:"mr-designer-reset",disabled:t.readonly||e.unref(S)||!e.unref(f),onClick:V[5]||(V[5]=(...h)=>e.unref(v).reset&&e.unref(v).reset(...h))},e.toDisplayString(e.unref(u).reset),9,Xs),t.save&&t.showSave!==!1?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-save",title:F.value||e.unref(u).save,"aria-describedby":e.unref(Se).length?`${D}-pending`:F.value?`${D}-save-reason`:void 0,disabled:!bt.value||!e.unref(f),onClick:q},[e.createVNode(J._sfc_main,{name:"file",size:13}),e.createTextVNode(e.toDisplayString(e.unref(E)?e.unref(u).saving:e.unref(u).save),1)],8,Zs)):e.createCommentVNode("",!0),t.save&&t.showSave!==!1&&F.value&&!e.unref(Se).length?(e.openBlock(),e.createElementBlock("span",{key:1,id:`${D}-save-reason`,class:"mr-designer-save-reason"},e.toDisplayString(F.value),9,ec)):e.createCommentVNode("",!0)])]),e.unref(X).notice.value?(e.openBlock(),e.createElementBlock("p",tc,e.toDisplayString(e.unref(X).notice.value),1)):e.createCommentVNode("",!0),e.unref(X).confirmation.value?(e.openBlock(),e.createBlock(Cn,e.mergeProps({key:1},e.unref(X).confirmation.value,{onConfirm:e.unref(X).confirmInsertion,onCancel:e.unref(X).cancelInsertion}),null,16,["onConfirm","onCancel"])):e.createCommentVNode("",!0),e.createVNode(Bi,{recovery:e.unref(v).recovery,conflict:e.unref(v).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(ii,{messages:t.productMessages,change:e.unref(v).fieldChange.value,disabled:e.unref(Q),onConfirm:e.unref(v).confirmFieldChange,onCancel:e.unref(v).cancelFieldChange,onLocate:e.unref(Le)},null,8,["messages","change","disabled","onConfirm","onCancel","onLocate"]),e.unref(Se).length?(e.openBlock(),e.createElementBlock("div",{key:2,id:`${D}-pending`,class:"mr-designer-pending",role:"status"},[e.createElementVNode("span",null,e.toDisplayString(e.unref(u).pendingToolsLabel),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Se),h=>(e.openBlock(),e.createElementBlock("button",{key:h.target,type:"button","aria-label":`${h.label} · ${e.unref(u).unapplied} · ${e.unref(u).returnToConfiguration}`,onClick:K=>e.unref(tt)(h.target)},[e.createTextVNode(e.toDisplayString(h.label),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(u).unapplied)+" ↗",1)],8,ac))),128)),e.createElementVNode("small",null,e.toDisplayString(e.unref(u).pendingToolsHint),1)],8,nc)):e.createCommentVNode("",!0),e.unref(g)?(e.openBlock(),e.createElementBlock("div",{key:3,role:"alertdialog","aria-label":e.unref(u).discardTitle,class:"mr-designer-confirm",onKeydown:V[8]||(V[8]=e.withKeys(e.withModifiers(h=>e.unref(v).decideDiscard(!1),["prevent","stop"]),["esc"]))},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(u).discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(u).discardDescription),1)]),e.createElementVNode("div",null,[e.createElementVNode("button",{ref_key:"keepButton",ref:vt,type:"button",onClick:V[6]||(V[6]=h=>e.unref(v).decideDiscard(!1))},e.toDisplayString(e.unref(u).keepEditing),513),e.createElementVNode("button",{type:"button",onClick:V[7]||(V[7]=h=>e.unref(v).decideDiscard(!0))},e.toDisplayString(e.unref(u).discard),1)])],40,oc)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["mr-designer-body",{"is-tools":e.unref(_)==="tools","is-docked":e.unref(me)}])},[e.unref(re).size?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:e.unref(v).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(u).toolsSection},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(We.value,h=>(e.openBlock(),e.createElementBlock("button",{key:h,id:`${D}-tool-${h}`,type:"button","aria-pressed":e.unref(ne)===h,"aria-describedby":e.unref(v).isToolPending(h)?`${D}-pending`:void 0,onClick:K=>ne.value=h},[e.createTextVNode(e.toDisplayString(e.unref(u)[`${h}Tool`])+" ",1),e.unref(v).isToolPending(h)?(e.openBlock(),e.createElementBlock("span",sc)):e.createCommentVNode("",!0)],8,ic))),128))],8,rc),e.createElementVNode("div",cc,[e.createElementVNode("label",null,[e.createElementVNode("span",null,e.toDisplayString(e.unref(u).toolTarget),1),e.createElementVNode("select",{value:e.unref(j),"aria-label":e.unref(u).pageDirectory,onChange:V[9]||(V[9]=h=>j.value=Number(h.target.value))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(k).template.pages,(h,K)=>(e.openBlock(),e.createElementBlock("option",{key:K,value:K},e.toDisplayString(e.unref(Ue)(h,K,e.unref(u).page)),9,uc))),128))],40,dc)]),e.createElementVNode("select",{value:e.unref(U)?.pageIndex===e.unref(j)?e.unref(U).componentIndex:-1,"aria-label":e.unref(u).toolChooseComponent,onChange:V[10]||(V[10]=(...h)=>e.unref(Me)&&e.unref(Me)(...h))},[e.createElementVNode("option",pc,e.toDisplayString(e.unref(u).toolChooseComponent),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(He.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h.index,value:h.index},e.toDisplayString(h.name),9,fc))),128))],40,mc),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(me),onClick:V[11]||(V[11]=(...h)=>e.unref(pe)&&e.unref(pe)(...h))},[e.createVNode(J._sfc_main,{name:"columns",size:14}),e.createTextVNode(e.toDisplayString(e.unref(me)?e.unref(u).toolPreviewHide:e.unref(u).toolPreview),1)],8,vc)]),e.createElementVNode("div",gc,[e.unref(re).has("outline")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(i),{key:0,messages:t.productMessages,document:e.unref(k),selection:e.unref(U),onLocate:e.unref(Le)},null,8,["messages","document","selection","onLocate"])),[[e.vShow,e.unref(ne)==="outline"]]):e.createCommentVNode("",!0),e.unref(re).has("reuse")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(s),{key:1,messages:t.productMessages,document:e.unref(k),"page-index":e.unref(j),selection:e.unref(U),fragments:t.fragments,styles:t.documentStyles,disabled:e.unref(Q),accept:e.unref(v).transaction,onSelect:e.unref(Be)},null,8,["messages","document","page-index","selection","fragments","styles","disabled","accept","onSelect"])),[[e.vShow,e.unref(ne)==="reuse"]]):e.createCommentVNode("",!0),e.unref(re).has("params")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(n),{key:2,document:e.unref(k),readonly:e.unref(Q),accept:A,"load-options":t.preview?.loadParamOptions,onDirty:V[12]||(V[12]=h=>e.unref(v).setToolPending("params",h))},null,8,["document","readonly","load-options"])),[[e.vShow,e.unref(ne)==="params"]]):e.createCommentVNode("",!0),e.unref(re).has("excel")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(l),{key:3,datasets:t.bindingDatasets??[],session:t.bindingSession,identity:{id:e.unref(k).id,name:e.unref(k).name},"lock-id":"",readonly:e.unref(Q),accept:Zt,onDirty:V[13]||(V[13]=h=>e.unref(v).setToolPending("excel",h))},null,8,["datasets","session","identity","readonly"])),[[e.vShow,e.unref(ne)==="excel"]]):e.createCommentVNode("",!0),e.unref(re).has("review")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(c),{key:4,document:e.unref(k),previous:e.unref(v).originalDocument.value,fixtures:t.reviewFixtures,messages:t.reviewMessages,datasets:t.datasets,"data-schemas":t.dataSchemas,onLocate:e.unref(Le)},null,8,["document","previous","fixtures","messages","datasets","data-schemas","onLocate"])),[[e.vShow,e.unref(ne)==="review"]]):e.createCommentVNode("",!0),e.unref(re).has("rules")?e.withDirectives((e.openBlock(),e.createElementBlock("div",hc,[e.unref(b).length>1?(e.openBlock(),e.createElementBlock("label",yc,[e.createTextVNode(e.toDisplayString(e.unref(u).area),1),e.createElementVNode("select",{value:e.unref(w),onChange:V[14]||(V[14]=(...h)=>e.unref(De)&&e.unref(De)(...h))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),(h,K)=>(e.openBlock(),e.createElementBlock("option",{key:K,value:K},e.toDisplayString(h.component.title||h.component.dataset),9,kc))),128))],40,bc)])):e.createCommentVNode("",!0),e.unref(B)?(e.openBlock(),e.createBlock(e.unref(r),{key:1,list:e.unref(B),"recovery-key":`rules:${e.unref(b)[e.unref(w)]?.pageIndex??0}:${e.unref(b)[e.unref(w)]?.componentIndex??0}`,datasets:t.datasets,"dataset-schema":e.unref(ke),"dataset-schemas":t.dataSchemas,readonly:e.unref(Q),onChange:e.unref(ue),onDirty:V[15]||(V[15]=h=>e.unref(v).setToolPending("rules",h))},null,8,["list","recovery-key","datasets","dataset-schema","dataset-schemas","readonly","onChange"])):(e.openBlock(),e.createElementBlock("p",Ec,e.toDisplayString(e.unref(u).rulesNeedList),1))],512)),[[e.vShow,e.unref(ne)==="rules"]]):e.createCommentVNode("",!0)])],8,lc)),[[e.vShow,e.unref(_)==="tools"]]):e.createCommentVNode("",!0),e.unref(_)!=="tools"?(e.openBlock(),e.createElementBlock("aside",Sc,[e.createElementVNode("div",{ref_key:"inspectorPanel",ref:ot,id:`${D}-panel-${e.unref(_)}`,class:e.normalizeClass(["mr-designer-panel",{"is-advanced":e.unref(_)==="advanced"}]),role:"tabpanel","aria-labelledby":`${D}-tab-${e.unref(_)}`},[Z.value||Ne.value?(e.openBlock(),e.createElementBlock("div",wc,[e.createElementVNode("small",null,e.toDisplayString(e.unref(u).flowLayout),1),e.createElementVNode("button",{type:"button",onClick:V[16]||(V[16]=(...h)=>e.unref(de)&&e.unref(de)(...h))},e.toDisplayString(e.unref(u).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",Vc,[e.createTextVNode(e.toDisplayString(e.unref(u).area),1),e.createElementVNode("select",{value:e.unref(w),onChange:V[17]||(V[17]=(...h)=>e.unref(De)&&e.unref(De)(...h))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),(h,K)=>(e.openBlock(),e.createElementBlock("option",{key:K,value:K},e.toDisplayString(h.pageIndex+1)+" "+e.toDisplayString(e.unref(u).page)+" · "+e.toDisplayString(h.component.title||h.component.dataset),9,xc))),128))],40,Cc)])):e.createCommentVNode("",!0),e.unref(B)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Mc,[e.createElementVNode("button",{type:"button",disabled:e.unref(Q)||Ne.value||e.unref(B).columns.length<2,onClick:V[18]||(V[18]=(...h)=>e.unref(X).removeColumn&&e.unref(X).removeColumn(...h))},e.toDisplayString(e.unref(X).messages.value.removeColumn),9,Bc)]),e.createElementVNode("div",Dc,[e.createElementVNode("button",{ref_key:"directoryTrigger",ref:Jt,type:"button",class:"mr-designer-field-trigger","aria-expanded":e.unref(gt),"aria-controls":`${D}-directory`,"aria-haspopup":"dialog",onClick:V[19]||(V[19]=(...h)=>e.unref(ee).toggle&&e.unref(ee).toggle(...h)),onKeydown:V[20]||(V[20]=e.withKeys((...h)=>e.unref(ee).escape&&e.unref(ee).escape(...h),["esc"]))},[e.createElementVNode("span",Tc,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(R)?.column.header||e.unref(u).noColumns),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(R)?.column.field||"—"),1)]),e.createElementVNode("span",_c,[e.createTextVNode(e.toDisplayString(e.unref(u).columnDirectory)+" ",1),e.createElementVNode("b",null,e.toDisplayString(e.unref(B).columns.length),1),e.createVNode(J._sfc_main,{name:"chevron-down",size:13})])],40,$c),e.createElementVNode("div",Ic,[e.createElementVNode("span",{"aria-label":e.unref(u).fieldPosition},[e.createTextVNode(e.toDisplayString(e.unref($)>=0?e.unref($)+1:0),1),V[68]||(V[68]=e.createElementVNode("i",null,"/",-1)),e.createTextVNode(e.toDisplayString(e.unref(B).columns.length),1)],8,Rc),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).previousColumn,title:e.unref(u).previousColumn,disabled:e.unref($)<=0,onClick:V[21]||(V[21]=h=>e.unref(I).stepColumn(-1))},[e.createVNode(J._sfc_main,{name:"chevron-left",size:14})],8,Pc),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).nextColumn,title:e.unref(u).nextColumn,disabled:e.unref($)>=e.unref(B).columns.length-1,onClick:V[22]||(V[22]=h=>e.unref(I).stepColumn(1))},[e.createVNode(J._sfc_main,{name:"chevron-right",size:14})],8,Lc)])]),e.createVNode(Yn,{list:e.unref(B),schema:e.unref(ke),readonly:e.unref(Q)||Ne.value,onChange:e.unref(ue)},null,8,["list","schema","readonly","onChange"]),e.unref(R)?(e.openBlock(),e.createElementBlock("fieldset",{key:0,class:"mr-designer-properties",disabled:t.readonly||e.unref(S)||e.unref(N),"aria-label":e.unref(u).columnProperties},[e.createElementVNode("div",Fc,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(u).contentGroup),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(u).header),1),e.createElementVNode("input",{value:e.unref(R).column.header,onInput:V[23]||(V[23]=h=>e.unref(v).setColumn(e.unref(R).index,"header",ve(h)))},null,40,Hc)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(u).field),1),e.createElementVNode("input",{value:e.unref(R).column.field,list:e.unref(ke)?`${D}-fields`:void 0,onChange:V[24]||(V[24]=h=>e.unref(v).setColumn(e.unref(R).index,"field",ve(h)))},null,40,Oc)]),e.unref(ke)?(e.openBlock(),e.createElementBlock("datalist",{key:0,id:`${D}-fields`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ke).fields,h=>(e.openBlock(),e.createElementBlock("option",{key:h.field,value:h.field},e.toDisplayString(h.label)+" · "+e.toDisplayString(h.type)+" "+e.toDisplayString(h.unit),9,zc))),128))],8,Gc)):e.createCommentVNode("",!0)]),e.createElementVNode("div",jc,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(u).formatGroup),1),e.createElementVNode("div",Uc,[e.createElementVNode("label",qc,[e.createTextVNode(e.toDisplayString(e.unref(u).width),1),e.createElementVNode("input",{type:"number",min:"0.1",step:"0.5",value:e.unref(R).column.widthMm,disabled:Ne.value,onChange:V[25]||(V[25]=h=>e.unref(v).setColumn(e.unref(R).index,"widthMm",ve(h)))},null,40,Kc)]),e.createElementVNode("label",Wc,[e.createTextVNode(e.toDisplayString(e.unref(u).semantic),1),e.createElementVNode("select",{value:e.unref(R).column.semanticRole||"text",onChange:V[26]||(V[26]=h=>e.unref(v).setColumn(e.unref(R).index,"semanticRole",ve(h)))},[e.createElementVNode("option",Yc,e.toDisplayString(e.unref(u).identifier),1),e.createElementVNode("option",Qc,e.toDisplayString(e.unref(u).dimension),1),e.createElementVNode("option",Xc,e.toDisplayString(e.unref(u).measure),1),e.createElementVNode("option",Zc,e.toDisplayString(e.unref(u).date),1),e.createElementVNode("option",ed,e.toDisplayString(e.unref(u).text),1)],40,Jc)])]),e.createElementVNode("div",td,[e.createElementVNode("span",null,e.toDisplayString(e.unref(u).bodyAlign),1),e.createVNode(mt,{"model-value":e.unref(R).column.align??e.unref(R).column.style?.align??e.unref(B).align??"left",label:e.unref(u).bodyAlign,labels:ht.value,"auto-label":e.unref(u).autoShort,"allow-auto":"","onUpdate:modelValue":V[27]||(V[27]=h=>e.unref(v).setColumn(e.unref(R).index,"align",h))},null,8,["model-value","label","labels","auto-label"])]),e.createElementVNode("div",nd,[e.createElementVNode("span",null,e.toDisplayString(e.unref(u).headerAlign),1),e.createVNode(mt,{"model-value":e.unref(v).headerAlignments.value[e.unref(R).index]||"left",label:e.unref(u).headerAlign,labels:ht.value,"auto-label":e.unref(u).autoShort,"onUpdate:modelValue":V[28]||(V[28]=h=>e.unref(v).setColumn(e.unref(R).index,"headerAlign",h))},null,8,["model-value","label","labels","auto-label"])])]),e.createElementVNode("label",ad,[e.createTextVNode(e.toDisplayString(e.unref(u).editable),1),e.createElementVNode("input",{type:"checkbox",role:"switch",checked:e.unref(R).column.editable===!0,onChange:V[29]||(V[29]=h=>e.unref(v).setColumn(e.unref(R).index,"editable",lt(h)))},null,40,od)]),(e.openBlock(),e.createBlock(Gt,{key:`${e.unref(w)}:${e.unref(R).index}`,"model-value":e.unref(R).column.visual,fields:e.unref(B)?.columns.map(h=>({field:h.field,label:h.header})),readonly:e.unref(Q),messages:t.visualMessages,"onUpdate:modelValue":V[30]||(V[30]=h=>e.unref(v).setColumn(e.unref(R).index,"visual",h))},null,8,["model-value","fields","readonly","messages"])),e.createElementVNode("div",ld,[e.createElementVNode("span",null,e.toDisplayString(e.unref(u).columnOrder),1),e.createElementVNode("button",{type:"button","aria-label":e.unref(u).moveColumnLeft,title:e.unref(u).moveColumnLeft,disabled:Ne.value||e.unref($)<=0,onClick:V[31]||(V[31]=h=>e.unref(Ee)(-1))},[e.createVNode(J._sfc_main,{name:"chevron-left",size:13})],8,rd),e.createElementVNode("button",{type:"button","aria-label":e.unref(u).moveColumnRight,title:e.unref(u).moveColumnRight,disabled:Ne.value||e.unref($)>=e.unref(B).columns.length-1,onClick:V[32]||(V[32]=h=>e.unref(Ee)(1))},[e.createVNode(J._sfc_main,{name:"chevron-right",size:13})],8,id),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(u).columnVisible),1),e.createElementVNode("input",{type:"checkbox",checked:e.unref(R).column.hidden!==!0,disabled:Ne.value||e.unref(R).column.hidden!==!0&&e.unref(B).columns.filter(h=>!h.hidden).length===1,onChange:V[33]||(V[33]=h=>e.unref(v).setColumn(e.unref(R).index,"hidden",!lt(h)))},null,40,sd)])])],8,Ac)):e.createCommentVNode("",!0),e.unref(gt)?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${D}-directory`,ref_key:"directoryPanel",ref:Yt,role:"dialog","aria-label":e.unref(u).columnDirectory,class:"mr-designer-directory",onKeydown:V[45]||(V[45]=e.withKeys((...h)=>e.unref(ee).escape&&e.unref(ee).escape(...h),["esc"])),onFocusout:V[46]||(V[46]=(...h)=>e.unref(ee).leave&&e.unref(ee).leave(...h))},[e.createElementVNode("div",dd,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(e.unref(u).columnDirectory)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref(B).columns.length),1)]),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).closeDirectory,onClick:V[34]||(V[34]=h=>e.unref(ee).close(!0))},[e.createVNode(J._sfc_main,{name:"close",size:15})],8,ud)]),e.createElementVNode("div",md,[e.createVNode(J._sfc_main,{name:"search",size:14}),e.withDirectives(e.createElementVNode("input",{ref_key:"directorySearch",ref:Qt,"onUpdate:modelValue":V[35]||(V[35]=h=>e.isRef(P)?P.value=h:null),type:"search","aria-label":e.unref(u).columnsSearch,placeholder:e.unref(u).columnsSearch,onKeydown:V[36]||(V[36]=(...h)=>e.unref(ee).searchKeydown&&e.unref(ee).searchKeydown(...h))},null,40,pd),[[e.vModelText,e.unref(P)]]),e.unref(P)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-icon-button","aria-label":e.unref(u).clearSearch,title:e.unref(u).clearSearch,onClick:V[37]||(V[37]=h=>P.value="")},[e.createVNode(J._sfc_main,{name:"close",size:13})],8,fd)):e.createCommentVNode("",!0)]),e.createElementVNode("div",vd,[e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(S)||e.unref(N)||!e.unref(T).length,onClick:V[38]||(V[38]=h=>e.unref(v).selectVisible(!0))},e.toDisplayString(e.unref(u).selectVisible),9,gd),e.unref(z).length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:V[39]||(V[39]=(...h)=>e.unref(v).clearSelection&&e.unref(v).clearSelection(...h))},e.toDisplayString(e.unref(u).clearSelection),1)):e.createCommentVNode("",!0),e.unref(z).length?(e.openBlock(),e.createElementBlock("span",hd,e.toDisplayString(e.unref(u).columnsSelected)+" "+e.toDisplayString(e.unref(z).length),1)):(e.openBlock(),e.createElementBlock("span",yd,e.toDisplayString(e.unref(T).length)+" / "+e.toDisplayString(e.unref(B).columns.length),1))]),e.createElementVNode("div",{ref_key:"columnList",ref:Xt,class:"mr-designer-column-list","aria-label":e.unref(u).columnDirectory,role:"group"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ee).windowColumns.value,({column:h,index:K})=>(e.openBlock(),e.createElementBlock("div",{key:K,class:e.normalizeClass(["mr-designer-column-row",{"is-active":e.unref($)===K}])},[e.createElementVNode("input",{type:"checkbox","aria-label":`${e.unref(u).selectColumn} ${h.header}`,checked:e.unref(z).includes(K),disabled:t.readonly||e.unref(S)||e.unref(N),onChange:ge=>e.unref(v).toggleColumn(K,lt(ge))},null,40,kd),e.createElementVNode("button",{type:"button","data-column-index":K,"aria-pressed":e.unref($)===K,tabindex:e.unref(Wt)===K?0:-1,onClick:ge=>e.unref(ee).choose(K),onKeydown:V[40]||(V[40]=(...ge)=>e.unref(ee).navigate&&e.unref(ee).navigate(...ge))},[e.createElementVNode("span",Sd,e.toDisplayString(K+1),1),e.createElementVNode("span",Nd,[e.createElementVNode("strong",null,e.toDisplayString(h.header),1),e.createElementVNode("small",null,e.toDisplayString(h.field),1)]),e.unref($)===K?(e.openBlock(),e.createBlock(J._sfc_main,{key:0,name:"chevron-right",size:13})):e.createCommentVNode("",!0)],40,Ed)],2))),128)),e.unref(T).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",wd,[e.createVNode(J._sfc_main,{name:"search",size:20}),e.createTextVNode(e.toDisplayString(e.unref(u).noColumns),1)]))],8,bd),e.unref(T).length>e.unref(ee).windowSize?(e.openBlock(),e.createElementBlock("nav",{key:0,class:"mr-designer-directory-pages","aria-label":e.unref(u).columnDirectory},[e.createElementVNode("button",{type:"button",disabled:e.unref(ee).windowStart.value===0,"aria-label":e.unref(u).previousColumns,onClick:V[41]||(V[41]=h=>e.unref(ee).stepWindow(-1))},[e.createVNode(J._sfc_main,{name:"chevron-left",size:14})],8,Cd),e.createElementVNode("span",null,e.toDisplayString(e.unref(u).columnWindow.replace("{start}",String(e.unref(ee).windowStart.value+1)).replace("{end}",String(Math.min(e.unref(T).length,e.unref(ee).windowStart.value+e.unref(ee).windowSize))).replace("{total}",String(e.unref(T).length))),1),e.createElementVNode("button",{type:"button",disabled:e.unref(ee).windowStart.value+e.unref(ee).windowSize>=e.unref(T).length,"aria-label":e.unref(u).nextColumns,onClick:V[42]||(V[42]=h=>e.unref(ee).stepWindow(1))},[e.createVNode(J._sfc_main,{name:"chevron-right",size:14})],8,xd)],8,Vd)):e.createCommentVNode("",!0),e.unref(z).length?(e.openBlock(),e.createElementBlock("div",Md,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(u).batchBody),1),e.createElementVNode("select",{"aria-label":e.unref(u).batchBody,disabled:t.readonly||e.unref(S)||e.unref(N),onChange:V[43]||(V[43]=h=>kt(h,"align"))},[e.createElementVNode("option",Dd,e.toDisplayString(e.unref(u).chooseAlignment),1),e.createElementVNode("option",$d,e.toDisplayString(e.unref(u).auto),1),e.createElementVNode("option",Td,e.toDisplayString(e.unref(u).left),1),e.createElementVNode("option",_d,e.toDisplayString(e.unref(u).center),1),e.createElementVNode("option",Id,e.toDisplayString(e.unref(u).right),1),e.createElementVNode("option",Rd,e.toDisplayString(e.unref(u).justify),1)],40,Bd)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(u).batchHeader),1),e.createElementVNode("select",{"aria-label":e.unref(u).batchHeader,disabled:t.readonly||e.unref(S)||e.unref(N),onChange:V[44]||(V[44]=h=>kt(h,"headerAlign"))},[e.createElementVNode("option",Ld,e.toDisplayString(e.unref(u).chooseAlignment),1),e.createElementVNode("option",Ad,e.toDisplayString(e.unref(u).left),1),e.createElementVNode("option",Fd,e.toDisplayString(e.unref(u).center),1),e.createElementVNode("option",Hd,e.toDisplayString(e.unref(u).right),1),e.createElementVNode("option",Od,e.toDisplayString(e.unref(u).justify),1)],40,Pd)])])):e.createCommentVNode("",!0)],40,cd)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",Gd,e.toDisplayString(e.unref(u).noColumns),1))],64)):e.unref(_)==="component"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",zd,[e.createElementVNode("button",{type:"button",title:e.unref(u).duplicateComponent,"aria-label":e.unref(u).duplicateComponent,disabled:e.unref(Q)||Z.value||!e.unref(le),onClick:V[47]||(V[47]=(...h)=>e.unref(W).duplicate&&e.unref(W).duplicate(...h))},e.toDisplayString(e.unref(X).messages.value.duplicate),9,jd),e.createElementVNode("button",{type:"button",title:e.unref(u).removeComponent,"aria-label":e.unref(u).removeComponent,disabled:e.unref(Q)||Z.value||!e.unref(le),onClick:V[48]||(V[48]=(...h)=>e.unref(W).remove&&e.unref(W).remove(...h))},[e.createVNode(J._sfc_main,{name:"close",size:14}),e.createTextVNode(" "+e.toDisplayString(e.unref(u).removeComponent),1)],8,Ud)]),e.unref(k).template.pages.length>1?(e.openBlock(),e.createElementBlock("label",qd,[e.createTextVNode(e.toDisplayString(e.unref(u).page),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":V[49]||(V[49]=h=>e.isRef(j)?j.value=h:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(k).template.pages,(h,K)=>(e.openBlock(),e.createElementBlock("option",{key:K,value:K},e.toDisplayString(e.unref(Ue)(h,K,e.unref(u).page)),9,Kd))),128))],512),[[e.vModelSelect,e.unref(j),void 0,{number:!0}]])])):e.createCommentVNode("",!0),e.createElementVNode("label",Wd,[e.createTextVNode(e.toDisplayString(e.unref(u).components),1),e.createElementVNode("select",{value:e.unref(U)&&e.unref(U).pageIndex===e.unref(j)?e.unref(U).componentIndex:-1,onChange:V[50]||(V[50]=h=>e.unref(Be)({pageIndex:e.unref(j),componentIndex:Number(ve(h))}))},[e.createElementVNode("option",Yd,e.toDisplayString(e.unref(u).noComponent),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(He.value,h=>(e.openBlock(),e.createElementBlock("option",{key:h.index,value:h.index},e.toDisplayString(h.index+1)+" · "+e.toDisplayString(h.name),9,Qd))),128))],40,Jd)]),e.unref(W).selections.value.length?(e.openBlock(),e.createElementBlock("div",Xd,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(W).selections.value.length)+" "+e.toDisplayString(e.unref(u).component),1),e.createElementVNode("button",{type:"button",disabled:e.unref(Q),onClick:V[51]||(V[51]=(...h)=>e.unref(W).toggleLock&&e.unref(W).toggleLock(...h))},e.toDisplayString(e.unref(W).allLocked.value?e.unref(u).unlockSelection:e.unref(u).lockSelection),9,Zd),e.createElementVNode("select",{"aria-label":e.unref(u).alignSelection,disabled:e.unref(Q)||Z.value||e.unref(W).selections.value.length<2,onChange:V[52]||(V[52]=h=>{e.unref(W).align(ve(h)),h.target.value=""})},[e.createElementVNode("option",tu,e.toDisplayString(e.unref(u).alignSelection),1),e.createElementVNode("option",nu,e.toDisplayString(e.unref(u).leftEdges),1),e.createElementVNode("option",au,e.toDisplayString(e.unref(u).centers),1),e.createElementVNode("option",ou,e.toDisplayString(e.unref(u).rightEdges),1),e.createElementVNode("option",lu,e.toDisplayString(e.unref(u).topEdges),1),e.createElementVNode("option",ru,e.toDisplayString(e.unref(u).middles),1),e.createElementVNode("option",iu,e.toDisplayString(e.unref(u).bottomEdges),1)],40,eu),e.createElementVNode("button",{type:"button",disabled:e.unref(Q)||Z.value||e.unref(W).selections.value.length<3,onClick:V[53]||(V[53]=h=>e.unref(W).distribute("horizontal"))},e.toDisplayString(e.unref(u).horizontalSpacing),9,su),e.createElementVNode("button",{type:"button",disabled:e.unref(Q)||Z.value||e.unref(W).selections.value.length<3,onClick:V[54]||(V[54]=h=>e.unref(W).distribute("vertical"))},e.toDisplayString(e.unref(u).verticalSpacing),9,cu),e.unref(W).allLocked.value?(e.openBlock(),e.createElementBlock("small",du,e.toDisplayString(e.unref(u).sessionLock),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.unref(le)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",uu,[e.createElementVNode("button",{type:"button",disabled:e.unref(Q)||Z.value||e.unref(U)?.componentIndex===0,onClick:V[55]||(V[55]=h=>e.unref(W).reorder(-1))},e.toDisplayString(e.unref(u).backward),9,mu),e.createElementVNode("button",{type:"button",disabled:e.unref(Q)||Z.value||e.unref(U)?.componentIndex===(e.unref(k).template.pages[e.unref(j)]?.components.length??0)-1,onClick:V[56]||(V[56]=h=>e.unref(W).reorder(1))},e.toDisplayString(e.unref(u).forward),9,pu)]),e.createVNode(fr,{component:e.unref(le),"geometry-disabled":Z.value,disabled:e.unref(Q)||e.unref(W).locked(e.unref(U)),messages:e.unref(u),repeat:e.unref(k).template.repeat,schema:Fe.value,schemas:t.dataSchemas,datasets:t.datasets,onGeometry:e.unref(W).geometry,onPatch:e.unref(Ke)},null,8,["component","geometry-disabled","disabled","messages","repeat","schema","schemas","datasets","onGeometry","onPatch"]),e.unref(le).kind==="list"?(e.openBlock(),e.createBlock(Li,{key:0,list:e.unref(le),disabled:e.unref(Q)||Z.value,messages:e.unref(u),onCommand:e.unref(Pe)},null,8,["list","disabled","messages","onCommand"])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",fu,e.toDisplayString(e.unref(u).noComponent),1))],64)):e.unref(_)==="template"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(u).templateDetails),1),e.createElementVNode("label",vu,[e.createTextVNode(e.toDisplayString(e.unref(u).name),1),e.createElementVNode("input",{value:e.unref(k).name,disabled:t.readonly||e.unref(S)||e.unref(N),onInput:V[57]||(V[57]=h=>e.unref(v).setName(ve(h)))},null,40,gu)]),e.createElementVNode("label",hu,[e.createTextVNode(e.toDisplayString(e.unref(u).description),1),e.createElementVNode("textarea",{rows:"2",value:e.unref(k).description,disabled:t.readonly||e.unref(S)||e.unref(N),onInput:V[58]||(V[58]=h=>e.unref(v).setDescription(ve(h)))},null,40,yu)]),e.createVNode(Pr,{document:e.unref(k),"page-index":e.unref(j),disabled:e.unref(Q),messages:e.unref(u),onSelect:V[59]||(V[59]=h=>j.value=h),onCommand:Kt,onLocate:V[60]||(V[60]=h=>{e.unref(Be)({pageIndex:e.unref(j),componentIndex:h}),te("design")})},null,8,["document","page-index","disabled","messages"]),e.createVNode(ti,{document:e.unref(k),datasets:Object.keys(t.datasets??{}),schemas:t.dataSchemas,disabled:e.unref(Q),messages:e.unref(u),onChange:V[61]||(V[61]=h=>{e.unref(v).transaction(K=>{h?K.template.repeat=h:delete K.template.repeat})})},null,8,["document","datasets","schemas","disabled","messages"]),e.createElementVNode("details",bu,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(u).technicalDetails),1),e.createElementVNode("dl",ku,[e.createElementVNode("dt",null,e.toDisplayString(e.unref(u).templateIdentity),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(k).id),1),e.createElementVNode("dt",null,e.toDisplayString(e.unref(u).templateRevision),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(k).revision||e.unref(u).unpublished),1)])])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(u).advancedTitle),1),e.createElementVNode("label",Eu,[e.createTextVNode(e.toDisplayString(e.unref(u).json),1),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":V[62]||(V[62]=h=>e.isRef(M)?M.value=h:null),class:"mr-designer-json","aria-label":e.unref(u).json,disabled:t.readonly||e.unref(S),spellcheck:"false"},null,8,Su),[[e.vModelText,e.unref(M)]])]),e.createElementVNode("button",{type:"button",class:"mr-designer-apply-json",disabled:t.readonly||e.unref(S),onClick:V[63]||(V[63]=(...h)=>e.unref(v).applyJson&&e.unref(v).applyJson(...h))},e.toDisplayString(e.unref(u).applyJson),9,Nu)],64)),e.unref(N)?(e.openBlock(),e.createElementBlock("p",wu,e.toDisplayString(e.unref(u).jsonPending),1)):e.createCommentVNode("",!0)],10,Nc)])):e.createCommentVNode("",!0),e.unref(_)!=="tools"||e.unref(me)?(e.openBlock(),e.createElementBlock("div",{key:2,class:"mr-designer-preview","aria-label":e.unref(u).previewTitle},[e.unref(x)?(e.openBlock(),e.createElementBlock("div",Cu,e.toDisplayString(e.unref(x)),1)):e.createCommentVNode("",!0),e.unref(d).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",xu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(d).errors,h=>(e.openBlock(),e.createElementBlock("li",{key:h.path},e.toDisplayString(h.path)+":"+e.toDisplayString(h.message),1))),128))])),e.unref(Y)==="design"&&e.unref(d).ok?(e.openBlock(),e.createBlock(no,{key:2,document:e.unref(k),selection:e.unref(U),selections:e.unref(W).selections.value,locked:e.unref(W).locked,"active-column-index":e.unref($),"page-index":e.unref(j),datasets:t.datasets,disabled:e.unref(Q)||Z.value||e.unref(v).isToolPending("rules"),messages:e.unref(u),onSelect:e.unref(Be),onGeometry:e.unref(W).geometry,onColumn:e.unref(I).activate,onWidth:V[64]||(V[64]=(h,K)=>e.unref(v).setColumn(h,"widthMm",String(K)))},null,8,["document","selection","selections","locked","active-column-index","page-index","datasets","disabled","messages","onSelect","onGeometry","onColumn"])):e.unref(oe)&&e.unref(d).ok?(e.openBlock(),e.createBlock(e.unref(dt.ReportPreview),{key:3,"report-id":"draft",fetcher:e.unref(oe),messages:{title:e.unref(u).previewTitle,columnDirectory:e.unref(u).previewFieldDirectory},"show-params":!1,editable:!1,"excel-import":!1,height:"100%"},null,8,["fetcher","messages"])):(e.openBlock(),e.createElementBlock("p",Mu,e.toDisplayString(e.unref(u).invalid),1))],8,Vu)):e.createCommentVNode("",!0)],2)],40,Fs))}}),qt=J._export_sfc(Bu,[["__scopeId","data-v-8216bcb4"]]),Du=Object.freeze(Object.defineProperty({__proto__:null,default:qt},Symbol.toStringTag,{value:"Module"})),$u={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:"调序"}},Tu={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:"契约字段,不执行接口查询"},_u={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:"启用"},Iu={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 级。"},Ru={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} 组"},Pu={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:"模板目录响应格式无效"},Lu={applyFirst:"请先应用当前配置或修正模板问题,再切换打印预览。",saveFailed:"模板尚未保存,请检查提示后重试。",title:"标识打印",preview:"打印预览",design:"设计标签",records:"预览记录",all:"全部记录",record:"记录序号",single:"单条预览",faces:"个版面",labels:"张标签",session:"当前会话模板",flow:"成品预览 · 按记录生成",designHint:"设计使用前 3 条样本 · 完整记录用于预览和打印",guide:"使用指引",help:"先选成品样式与显示字段即可使用。需要追加内容或自由排版时,进入设计标签。",size:"纸张与份数",bindings:"字段与码图",count:"条记录",invalidCopies:"份数待校验",sheet:"A4 标签拼版",sheetHint:"{columns} 列 × {rows} 行 · 每页 {capacity} 张,保持原尺寸",sheetUnavailable:"当前版面尺寸不适合 A4 拼版,请统一版面尺寸或使用原尺寸打印。",printHint:"先试打一张,使用同规格纸张与 100% 比例核对尺寸和扫码。",empty:"暂无可打印记录",save:"保存标签模板",layout:"成品样式",materialPreset:"物料卡",pairedPreset:"双版标识",warehousePreset:"仓储标签",fields:"显示字段",findField:"查找业务字段",noFields:"没有匹配的字段",fieldLimit:"最多显示 5 个字段,取消已选项后可继续选择。",removeField:"取消字段",fieldSearchHint:"每次显示前 30 项,可搜索完整字段目录。",brand:"标题与品牌",brandName:"主标题",brandTagline:"副标题(可选)",applyLayout:"应用新样式",applyContent:"更新内容",contentHint:"标题与字段原位更新,保留手工排版和追加内容。",contentNeedsDesign:"新增内容与现有设计重叠或缺少可识别位置,请还原轻配置后进入设计调整,或确认重建样式。",rebuildCurrent:"重新套用所选样式",applyLayoutFirst:"样式尚未应用,请先确认重建或还原轻配置后继续。",rebuildTitle:"确认重建标签布局",rebuildDescription:"将替换当前全部版面和手工调整,保留打印份数。进入设计后可撤销本次重建。",cancelRebuild:"继续调整",confirmRebuild:"确认重建",invalidSavedTemplate:"保存服务返回的模板标识不一致,请重试。",designLoading:"正在加载标签设计器…",designLoadFailed:"标签设计器加载失败,请重试。",restoreConfiguration:"还原轻配置",choosePreset:"请选择成品样式后更新标签,或还原轻配置继续使用当前模板。",discardTitle:"保留标签修改",discardDescription:"标签设计或轻配置存在未保存的修改,继续将丢弃这些修改。",keepEditing:"继续编辑",discard:"丢弃并继续",reflowHint:"按所选样式重新排版,可在设计中撤销恢复。",customTemplate:"自定义模板",readyTemplate:"成品模板 · 可直接打印"},Au=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-BmBrjt6P.cjs"))),Fu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-Bu0LUlzl.cjs"))),Hu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-xFkCVlii.cjs"))),Ou=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-38ZfNrPU.cjs"))),Gu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportBatchPanel-nCC06Nfp.cjs"))),zu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportTemplateLibrary-DVlsf72p.cjs"))),ju=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateOutlinePanel-CDI6mfWx.cjs"))),Uu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReusePanel-BG9Or5-P.cjs"))),qu=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportLabelStudio-CaEvYuSK.cjs")));exports.COLUMN_VISUAL_MESSAGES=Ot;exports.ChartBindingInspector=At;exports.ColumnVisualEditor=Gt;exports.DEFAULT_RULE_EDITOR_MESSAGES=_u;exports.DESIGNER_GUIDE_MESSAGES=_t;exports.EXCEL_BINDING_MESSAGES=Tu;exports.ExcelBindingWizard=Fu;exports.LABEL_STUDIO_MESSAGES=Lu;exports.PARAM_EDITOR_MESSAGES=Iu;exports.ParamEditor=Ou;exports.REPORT_BATCH_MESSAGES=Ru;exports.ReportBatchPanel=Gu;exports.ReportLabelStudio=qu;exports.ReportTemplateEditor=qt;exports.ReportTemplateEditor$1=Du;exports.ReportTemplateLibrary=zu;exports.RuleEditor=Hu;exports.TEMPLATE_EDITOR_MESSAGES=ce;exports.TEMPLATE_LIBRARY_MESSAGES=Pu;exports.TEMPLATE_PRODUCT_MESSAGES=Ft;exports.TEMPLATE_RECOVERY_MESSAGES=Ht;exports.TEMPLATE_REVIEW_MESSAGES=$u;exports.TemplateOutlinePanel=ju;exports.TemplateReusePanel=Uu;exports.TemplateReviewPanel=Au;exports.createTemplateDraftStorage=Cs;exports.useTemplateDiscard=Ut;exports.useTemplateToolDraft=gs;
|