@agile-team/mach-report 2.12.0 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/designer.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Te=require("@agile-team/mach-report/vue"),G=require("@agile-team/mach-report"),Y=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),ge=require("./record-bindings-By_UKZ2g.cjs"),at=require("./tree-BX380Rr7.cjs"),Ee=require("./style-UgIJSA1F.cjs");function lt(t,i,o=3){if(!t.tree)return i.slice(0,o).map(a=>t.columns.map(n=>ge.resolveListSampleCell(t,n,a)));if(i.length>200)return[];try{return at.createTreeTable(i,{...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,o).map(n=>t.columns.map(l=>ge.resolveTreeListSampleCell(t,l,n)))}catch{return[]}}const $e=96/25.4;function Se(t){return t.kind==="list"?Math.max(16,(t.headerGrid?.rowHeightsMm?.reduce((i,o)=>i+o,0)??8)+(t.rowHeightMm??8)*3):t.heightMm}function re(t){return{leftMm:t.leftMm,topMm:t.topMm,widthMm:t.widthMm,heightMm:Se(t)}}function ue(t,i){return i?t.template.pages[i.pageIndex]?.components[i.componentIndex]:void 0}function rt(t,i="detail"){const o={leftMm:10,topMm:10,widthMm:60,heightMm:10};return t==="qrcode"?{...o,kind:t,widthMm:22,heightMm:22,code:{value:"MACHREPORT",errorCorrection:"M",quietZoneModules:4}}:t==="barcode"?{...o,kind:t,widthMm:50,heightMm:16,code:{value:"MR20261022",symbology:"code128",quietZoneModules:10,showText:!0}}:t==="list"?{kind:t,leftMm:10,topMm:30,widthMm:90,dataset:i,columns:[{header:"字段",field:"field",widthMm:45},{header:"数值",field:"value",widthMm:45}],border:!0,headerBackgroundColor:"#eaf2fc",headerAlign:"center"}:t==="text"?{...o,kind:t,text:"文本",style:{fontSize:12,color:"#233c5c"}}:t==="rect"?{...o,kind:t,style:{borderColor:"#cbd5e1",lineWidthPt:.75,backgroundColor:"#eff6ff"}}:{...o,kind:t,widthMm:48,heightMm:24,imageData:`data:image/svg+xml;charset=utf-8,${encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="180" height="90" viewBox="0 0 180 90"><rect width="180" height="90" rx="5" fill="#eff6ff"/><path d="m25 68 32-32 25 23 27-35 45 44" fill="none" stroke="#94b8e5" stroke-width="3"/><circle cx="45" cy="24" r="7" fill="#bfd5ef"/></svg>')}`}}function Ne(t,i,o=!1){const a=Math.max(2,Math.min(i.widthMm,t.widthMm)),n=Math.max(2,Math.min(i.heightMm,t.heightMm));return{leftMm:Math.max(0,Math.min(i.widthMm-a,t.leftMm)),topMm:Math.max(0,Math.min(i.heightMm-(o?2:n),t.topMm)),widthMm:a,heightMm:n}}function fe(t,i){const o=t.widthMm;if(Object.assign(t,{leftMm:i.leftMm,topMm:i.topMm,widthMm:i.widthMm}),t.kind!=="list")t.heightMm=i.heightMm;else if(o>0&&i.widthMm!==o){const a=i.widthMm/o;t.columns.forEach(n=>{n.widthMm=Math.round(n.widthMm*a*100)/100}),t.widthMm=t.columns.reduce((n,l)=>n+l.widthMm,0),t.headerGrid&&(t.headerGrid.colWidthsMm=t.columns.map(n=>n.widthMm))}}function it(t,i,o){if(i===o||!t.columns[i]||!t.columns[o])return!1;if(t.headerGrid){if(G.resolveGridLayout(t.headerGrid,t.widthMm,100).cells.some(({cell:l})=>(l.colSpan??1)>1))throw new Error("请先拆分跨列合并表头,再调整列顺序,避免改变业务分组。");const n=Ve(t);n.forEach(l=>{l.splice(o,0,l.splice(i,1)[0])}),t.headerGrid=we(n,t.columns.map(l=>l.widthMm),t.headerGrid.rowHeightsMm??n.map(()=>8))}return t.columns.splice(o,0,t.columns.splice(i,1)[0]),t.headerGrid&&(t.headerGrid.colWidthsMm=t.columns.map(a=>a.widthMm)),!0}function Ve(t){if(!t.headerGrid)return[t.columns.map(o=>({text:o.header}))];const i=Array.from({length:t.headerGrid.cells.length},()=>Array.from({length:t.columns.length},()=>null));for(const{cell:o,ri:a,ci:n}of G.resolveGridLayout(t.headerGrid,t.widthMm,100).cells)i[a][n]=o;return i}function we(t,i,o){const a=new Set;return{cells:t.map((l,c)=>l.flatMap((h,p)=>{if(a.has(`${c}:${p}`))return[];if(!h)return[null];for(let u=c;u<c+(h.rowSpan??1);u++)for(let y=p;y<p+(h.colSpan??1);y++)(u!==c||y!==p)&&a.add(`${u}:${y}`);return[h]})),colWidthsMm:i,rowHeightsMm:o}}function st(t){const i=Ve(t),o=t.headerGrid?.rowHeightsMm??i.map(()=>8);i.unshift(t.columns.map(()=>({text:"分组",style:{align:"center",backgroundColor:"#eaf2fc",bold:!0}}))),t.headerGrid=we(i,t.columns.map(a=>a.widthMm),[8,...o])}function dt(t,i,o,a){if(o>=a||o<0||a>=t.columns.length)throw new Error("请选择同一行的至少两个连续表头。");const n=Ve(t),l=n[i];if(!l)throw new Error("表头行不存在。");const c=l.slice(o,a+1);if(c.some(p=>!p||(p.colSpan??1)!==1||(p.rowSpan??1)!==1))throw new Error("选择包含合并区域,请先拆分,再重新合并。");const h=c[0];l[o]={...h,colSpan:a-o+1};for(let p=o+1;p<=a;p++)l[p]=null;t.headerGrid=we(n,t.columns.map(p=>p.widthMm),t.headerGrid?.rowHeightsMm??[8])}function ct(t,i,o){if(!t.headerGrid)return;const n=G.resolveGridLayout(t.headerGrid,t.widthMm,100).cells.find(({ri:u,ci:y,cell:w})=>i>=u&&i<u+(w.rowSpan??1)&&o>=y&&o<y+(w.colSpan??1));if(!n)return;const l=Ve(t),{ri:c,ci:h,cell:p}=n;for(let u=c;u<c+(p.rowSpan??1);u++)for(let y=h;y<h+(p.colSpan??1);y++){const w={...p,text:u===l.length-1?t.columns[y].header:p.text};delete w.colSpan,delete w.rowSpan,l[u][y]=w}t.headerGrid=we(l,t.columns.map(u=>u.widthMm),t.headerGrid.rowHeightsMm??l.map(()=>8))}function ut(t){const i=e.ref(),o=e.ref(.8),a=e.ref(0),n=e.ref(0),l=e.computed(()=>o.value*$e),c=e.computed(()=>t.document.template.pages[t.pageIndex]),h=e.computed(()=>c.value.widthMm*l.value>n.value-40);let p,u=!!t.document.template.repeat;function y(s){const v=i.value;if(!v||v.clientWidth<=40||v.clientHeight<=40)return;let b={leftMm:0,topMm:0,widthMm:c.value.widthMm,heightMm:c.value.heightMm};const k=t.selection?.pageIndex===t.pageIndex?c.value.components[t.selection.componentIndex]:void 0;s==="selection"&&k&&(b=re(k));const x=(v.clientWidth-40)/(b.widthMm*$e),B=(v.clientHeight-40)/(b.heightMm*$e);o.value=Math.max(.05,Math.min(2,s==="width"?x:Math.min(x,B))),e.nextTick(()=>{v.scrollLeft=b.leftMm*l.value,v.scrollTop=b.topMm*l.value})}function w(s){u=!1,y(s)}function N(s){Number.isFinite(s)&&(u=!1,o.value=Math.max(.05,Math.min(2,s)))}function V(){const s=i.value;s&&(n.value=s.clientWidth,a.value=s.scrollWidth>s.clientWidth?Math.round(s.scrollLeft/(s.scrollWidth-s.clientWidth)*100):0)}function f(s){const v=i.value;v&&(v.scrollLeft=(v.scrollWidth-v.clientWidth)*s/100),a.value=s}function m(){V(),u&&t.document.template.repeat&&y("page")}async function E(){await e.nextTick();const s=i.value,v=t.selection;if(!s||v?.pageIndex!==t.pageIndex)return;const b=c.value.components[v.componentIndex];if(!b)return;const k=re(b);if(b.kind==="list"&&t.columnIndex!==void 0&&t.columnIndex>=0){const L=b;k.leftMm+=L.columns.slice(0,t.columnIndex).reduce((W,Z)=>W+Z.widthMm,0),k.widthMm=L.columns[t.columnIndex]?.widthMm??k.widthMm}const x=k.leftMm*l.value,B=k.topMm*l.value,D=x+k.widthMm*l.value,_=B+k.heightMm*l.value;x<s.scrollLeft?s.scrollLeft=x:D>s.scrollLeft+s.clientWidth-40&&(s.scrollLeft=Math.max(0,Math.min(x,D-s.clientWidth+40))),B<s.scrollTop?s.scrollTop=B:_>s.scrollTop+s.clientHeight-40&&(s.scrollTop=Math.max(0,Math.min(B,_-s.clientHeight+40))),V()}return e.watch(()=>[t.selection,t.columnIndex,t.pageIndex],()=>{E()}),e.watch(()=>t.document.id,()=>{u=!!t.document.template.repeat,e.nextTick(m)}),e.watch(()=>[!!t.document.template.repeat,t.pageIndex,c.value.widthMm,c.value.heightMm],()=>{e.nextTick(m)}),e.onMounted(()=>{m(),typeof ResizeObserver<"u"&&i.value&&(p=new ResizeObserver(m),p.observe(i.value))}),e.onBeforeUnmount(()=>p?.disconnect()),{viewport:i,zoom:o,scale:l,page:c,wide:h,fraction:a,fit:w,setZoom:N,sync:V,navigate:f}}function mt(t,i,o){if(t.kind==="list")return{text:t.dataset};const a=t.kind==="barcode"||t.kind==="qrcode"?t.code?.value??t.fallbackText??t.text??"":t.text??t.fallbackText??"";return t.binding?pt(t,i,o):{text:a,...t.imageData?{image:t.imageData}:{}}}function pt(t,i,o){const a=t.binding,n=i.template.repeat,l=n?o?.[n.dataset]?.[0]:void 0;if(!l)return{text:a.field,bound:!0};try{const c=ge.resolveComponentBinding(a,l,{dataset:n?.dataset,rowIndex:0});return t.kind==="image"&&c&&!ge.isLabelImageData(c)?{text:a.field,bound:!0,error:"image-binding"}:{text:c,bound:!0,...t.kind==="image"&&ge.isLabelImageData(c)?{image:c}:{}}}catch(c){return{text:a.field,bound:!0,error:c instanceof Error?c.message:String(c)}}}function Ge(t,i){const a=[1,2,5,10,20,50,100,200,500,1e3].find(l=>l*i>=36)??Math.max(1e3,Math.ceil(t/200));return Array.from({length:Math.min(201,Math.floor(t/a)+1)},(l,c)=>({mm:c*a,position:c*a*i}))}const _e=[{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 Ie(t,i,o){return typeof t.meta?.title=="string"&&t.meta.title.trim()?t.meta.title:`${o} ${i+1}`}function je(t){return t.components.flatMap((i,o)=>{const a=i.kind==="list"?i.rowHeightMm??Se(i):i.heightMm;return i.leftMm<0||i.topMm<0||i.leftMm+i.widthMm>t.widthMm+.001||i.topMm+a>t.heightMm+.001?[o]:[]})}function gt(t,i){const o=JSON.parse(JSON.stringify(t)),a=new Set(i.flatMap(c=>c.components.map(h=>h.kind==="list"?h.id:h.nid)).filter(Boolean)),n=new Map;let l=0;for(const c of o.components){const h=c.kind==="list"?c.id:c.nid;if(!h)continue;let p;do p=`page-copy-${++l}`;while(a.has(p));a.add(p),n.set(h,p),c.kind==="list"?c.id=p:(c.nid=p,delete c.rkey)}return o.flow?.bands.forEach(c=>{c.componentIds=c.componentIds.map(h=>n.get(h)??h)}),o}function vt(t,i,o){const a=t.template.pages,n=a[i];if(!n)return 0;if(o.type==="patch")return Object.assign(n,o.patch),i;if(o.type==="remove")return a.length<=1?i:(a.splice(i,1),Math.min(i,a.length-1));const l=o.type==="duplicate"?gt(n,a):JSON.parse(JSON.stringify(n));return o.type==="add"&&(l.components=[],delete l.flow,delete l.meta),a.splice(i+1,0,l),i+1}function ze(t,i,o){const a=t.filter(n=>n!==i).flatMap(n=>{const l=n[o],c=o==="leftMm"?n.widthMm:Se(n);return[l,l+c/2,l+c]});return[...new Set(a)].sort((n,l)=>n-l)}function ft(t,i){if(!t.length)return;let o=0,a=t.length;for(;o<a;){const c=o+a>>>1;t[c]<i?o=c+1:a=c}const n=t[Math.max(0,o-1)],l=t[Math.min(t.length-1,o)];return Math.abs(n-i)<Math.abs(l-i)?n:l}function Oe(t,i,o,a){let n=1/0,l={value:Math.round(t*2)/2};for(const c of[0,i/2,i]){const h=ft(o,t+c);if(h===void 0)continue;const p=Math.abs(h-t-c);p<=a&&p<n&&(n=p,l={value:h-c,guide:h})}return l}function ht(t,i,o,a){if(a){const n=Math.abs(i)>=Math.abs(o)?i:o,l=Math.round((t.widthMm+n)*2)/2;return{...t,widthMm:l,heightMm:l}}return{...t,widthMm:Math.round((t.widthMm+i)*2)/2,heightMm:Math.round((t.heightMm+o)*2)/2}}function yt(t){let i;function o(a,n,l=!1){if(t.disabled()||a.button!==0)return;a.preventDefault(),a.stopPropagation(),i?.();const c=a.currentTarget.closest("[data-canvas-component]"),h=re(n),p=a.clientX,u=a.clientY;let y=h,w=0;const N=t.scale.value,V=c.parentElement;let f,m;const E=()=>{for(const[_,L]of[["x",f],["y",m]])V.style.setProperty(`--mr-canvas-guide-${_}-display`,L===void 0?"none":"block"),L!==void 0&&V.style.setProperty(`--mr-canvas-guide-${_}`,`${L*N}px`)},s=()=>{w=0,E(),c.style.left=`${y.leftMm*N}px`,c.style.top=`${y.topMm*N}px`,c.style.width=`${y.widthMm*N}px`,c.style.height=`${y.heightMm*N}px`},v={leftMm:ze(t.page().components,n,"leftMm"),topMm:ze(t.page().components,n,"topMm")},b=_=>{const L=(_.clientX-p)/N,W=(_.clientY-u)/N,Z=Oe(h.leftMm+L,h.widthMm,v.leftMm,5/N),r=Oe(h.topMm+W,h.heightMm,v.topMm,5/N);f=l?void 0:Z.guide,m=l?void 0:r.guide,y=Ne(l?ht(h,L,W,n.kind==="qrcode"):{...h,leftMm:Z.value,topMm:r.value},t.page(),n.kind==="list"),l&&n.kind==="qrcode"&&(y.widthMm=y.heightMm=Math.min(y.widthMm,y.heightMm)),w||(w=requestAnimationFrame(s))},k=_=>{window.removeEventListener("pointermove",b),window.removeEventListener("pointerup",x),window.removeEventListener("pointercancel",B),window.removeEventListener("keydown",D),w&&cancelAnimationFrame(w),y=_?y:h,f=void 0,m=void 0,s(),i=void 0,_&&JSON.stringify(y)!==JSON.stringify(h)&&t.commit(y)},x=()=>k(!0),B=()=>k(!1),D=_=>{_.key==="Escape"&&(_.preventDefault(),B())};window.addEventListener("pointermove",b),window.addEventListener("pointerup",x),window.addEventListener("pointercancel",B),window.addEventListener("keydown",D),i=B}return e.watch(t.disabled,a=>{a&&i?.()}),e.watch(t.page,()=>i?.()),e.onBeforeUnmount(()=>i?.()),{start:o}}const bt={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:"请先修正模板错误,再预览或保存。"},kt={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:"编码设置",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:"矩形",removeComponent:"删除组件",duplicateComponent:"复制组件",forward:"向上移动层级",backward:"向下移动层级",positionGroup:"位置与尺寸 · mm",componentContent:"组件内容",componentText:"文本内容",imageSource:"图片地址或 data URI",imageUpload:"上传图片",imageBudget:"图片不超过 4 MB,支持 PNG/JPEG/WebP/SVG",leftPosition:"左侧",topPosition:"顶部",componentWidth:"宽度",componentHeight:"高度",noComponent:"在画布或目录选择组件",listDataset:"数据集",columnOrder:"列结构",moveColumnLeft:"向前移动列",moveColumnRight:"向后移动列",columnVisible:"显示此列",headerStructure:"多层表头",addHeaderRow:"添加分组行",mergeHeader:"合并所选表头",splitHeader:"拆分表头",headerRow:"表头行",headerFirst:"开始列",headerLast:"结束列",flowLayout:"区域版式由 Excel 绑定向导管理;可编辑字段、格式与业务规则。",paramsTool:"查询参数",excelTool:"Excel 绑定",rulesTool:"计算与规则",reviewTool:"发布检查",toolsDescription:"按需绑定数据、定义规则并验证模板。",unapplied:"待应用",pendingToolsLabel:"待处理配置",pendingToolsHint:"应用或恢复后可保存",saveReadonly:"当前为只读,无法保存",saveConfirmation:"请先处理修改确认",saveUnchanged:"没有需要保存的修改",saveInvalid:"模板有错误,请先修正",saveJsonPending:"完整 JSON 待应用",returnToConfiguration:"返回配置",rulesNeedList:"请先在字段区域选择明细表。",undo:"撤销",redo:"重做",columnsSearch:"搜索列名或字段",columnsSelected:"已选列",selectVisible:"选择当前结果",clearSelection:"清除选择",noColumns:"没有匹配的列",batchBody:"批量正文对齐",batchHeader:"批量表头对齐",chooseAlignment:"选择对齐方式",discardTitle:"保留当前修改?",discardDescription:"当前包含未保存的属性或尚未应用的 JSON,继续将丢弃这些修改。",keepEditing:"继续编辑",discard:"丢弃修改并继续",jsonPending:"JSON 尚未应用。请先校验并应用,或撤销 JSON 修改后继续属性编辑与保存。",fieldsSection:"字段",templateSection:"模板",advancedSection:"高级",sectionsLabel:"模板设置分区",columnDirectory:"字段目录",columnProperties:"字段属性",selectColumn:"选择字段",clearSearch:"清除搜索",fieldsCount:"个字段",templateDetails:"模板信息",advancedTitle:"完整配置",advancedDescription:"用于批量迁移或配置复杂模板。应用前会校验;未应用的内容会受到草稿保护。",templateIdentity:"模板标识",templateRevision:"当前修订",readonly:"只读",ready:"可编辑",previewTitle:"实时预览",contentGroup:"内容",formatGroup:"格式",autoShort:"自动",previousColumn:"上一字段",nextColumn:"下一字段",closeDirectory:"关闭字段目录",technicalDetails:"标识与修订",fieldPosition:"当前字段",previewFieldDirectory:"定位字段"},ie={fitWidth:"适宽",fitPage:"适页",fitSelection:"选区",wideNavigation:"宽表导航",alignSelection:"对齐选区",leftEdges:"左对齐",centers:"水平居中",rightEdges:"右对齐",topEdges:"顶对齐",middles:"垂直居中",bottomEdges:"底对齐",horizontalSpacing:"水平等距",verticalSpacing:"垂直等距",lockSelection:"锁定位置",unlockSelection:"解锁位置",sessionLock:"位置锁定仅当前设计会话有效。",toolsPending:"工具中还有未应用的配置,请先应用或恢复后再保存模板。",...bt,...kt},Et={class:"mr-canvas"},Nt={class:"mr-canvas-heading"},St={class:"mr-canvas-sheet-info"},Vt=["title"],wt=["title"],xt={class:"mr-canvas-gesture-hint"},Ct={class:"mr-canvas-toolbar"},Mt={class:"mr-canvas-view-tools"},Bt=["aria-pressed"],Dt=["disabled"],$t=["value","aria-label"],_t=["value"],Tt=["width","aria-label"],It=["transform"],Rt={x:"3",y:"9"},Lt=["height"],Pt=["transform"],At={x:"3",y:"10"},Ft=["data-canvas-component","aria-label","aria-pressed","tabindex","onFocus","onPointerdown","onClick","onKeydown"],Ht={class:"mr-canvas-table"},Gt={key:1,class:"mr-canvas-table-row is-header"},zt=["onPointerdown"],Ot={key:2,class:"mr-canvas-placeholder"},jt=["aria-label","onPointerdown"],qt={key:1,class:"mr-canvas-static-grid"},Wt={key:0,class:"mr-canvas-grid-limit"},Ut=["title"],Kt={key:0},Jt=["src"],Yt=["title"],Xt=["aria-label","onPointerdown"],Zt={key:0,class:"mr-canvas-navigator"},Qt=["value","aria-label"],en=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:i}){const o=t,a=i,n=e.computed(()=>({...ie,...o.messages})),{viewport:l,zoom:c,scale:h,page:p,wide:u,fraction:y,fit:w,setZoom:N,sync:V,navigate:f}=ut({get document(){return o.document},get pageIndex(){return o.pageIndex},get selection(){return o.selection},get columnIndex(){return o.activeColumnIndex}}),m=e.computed(()=>o.disabled===!0||o.geometryDisabled===!0||!!p.value.flow),E=e.computed(()=>p.value.components.map(S=>S.kind==="list"?lt(S,o.datasets?.[S.dataset]??[],p.value.flow||S.cardinality==="record"?1:3):[])),s=e.computed(()=>p.value.components.map(S=>mt(S,o.document,o.datasets))),v=e.ref(!0),b=e.computed(()=>Ge(p.value.widthMm,h.value)),k=e.computed(()=>Ge(p.value.heightMm,h.value));function x(S,C,M){return{width:`${C*h.value}px`,opacity:M?.35:1,textAlign:S.style?.align,paddingLeft:S.indentMm?`${S.indentMm*h.value}px`:void 0,color:S.style?.color,backgroundColor:S.style?.backgroundColor,fontWeight:S.style?.bold?"700":"400",fontSize:`${Ee.resolveFontSize(S.style).fontSizePx*c.value}px`}}function B(S){return o.locked?.({pageIndex:o.pageIndex,componentIndex:S})===!0}function D(S,C){a("select",{pageIndex:o.pageIndex,componentIndex:C,additive:S.ctrlKey||S.metaKey||S.shiftKey}),!S.ctrlKey&&!S.metaKey&&!S.shiftKey&&!B(C)&&_.start(S,p.value.components[C])}const _=yt({scale:h,page:()=>p.value,disabled:()=>m.value,commit:S=>a("geometry",S)});function L(S){return(o.selections??(o.selection?[o.selection]:[])).some(C=>C.pageIndex===o.pageIndex&&C.componentIndex===S)}function W(S){const C=p.value.components[S],M=C.kind==="list"?C.id:C.nid,R=p.value.flow?.bands.find(F=>F.componentIds.includes(M??"")),$=R&&C.kind==="list"?R.topMm+R.heightMm-C.topMm:Se(C);return{left:`${C.leftMm*h.value}px`,top:`${C.topMm*h.value}px`,width:`${C.widthMm*h.value}px`,height:`${$*h.value}px`}}function Z(S,C){const M=p.value.components[C];if(m.value||B(C)||!L(C))return;const R={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]},$=R[S.key];if(!$)return;S.preventDefault(),S.stopPropagation();const F=re(M),X=S.shiftKey?5:.5;F.leftMm+=$[0]*X,F.topMm+=$[1]*X,a("geometry",F)}function r(S){let C=0;return S.columns.map(M=>(C+=M.widthMm,C))}function T(S){return S.grid?G.resolveGridLayout(S.grid,S.widthMm,S.heightMm).cells.slice(0,2e3):[]}function P(S){return S.headerGrid?G.resolveGridLayout(S.headerGrid,S.widthMm,S.headerGrid.rowHeightsMm?.reduce((C,M)=>C+M,0)??S.headerGrid.cells.length*8).cells:[]}let I;e.watch(()=>m.value,S=>{S&&I?.()}),e.watch(()=>o.document,()=>I?.()),e.onBeforeUnmount(()=>I?.());function q(S,C,M){if(m.value||S.button!==0)return;S.preventDefault(),S.stopPropagation(),I?.();const R=S.clientX,$=C.columns[M].widthMm;let F=$;const X=S.currentTarget,U=ne=>{F=Math.max(2,Math.round(($+(ne.clientX-R)/h.value)*2)/2),X.style.transform=`translateX(${(F-$)*h.value}px)`},ae=()=>{window.removeEventListener("pointermove",U),window.removeEventListener("pointerup",ee),window.removeEventListener("pointercancel",te),window.removeEventListener("keydown",J),X.style.transform="",I=void 0},ee=()=>{ae(),F!==$&&a("width",M,F)},te=()=>ae(),J=ne=>{ne.key==="Escape"&&(ne.preventDefault(),te())};window.addEventListener("pointermove",U),window.addEventListener("pointerup",ee),window.addEventListener("pointercancel",te),window.addEventListener("keydown",J),I=te}return(S,C)=>(e.openBlock(),e.createElementBlock("div",Et,[e.createElementVNode("div",Nt,[e.createElementVNode("div",St,[e.createElementVNode("strong",{title:e.unref(Ie)(e.unref(p),t.pageIndex,n.value.page)},e.toDisplayString(e.unref(Ie)(e.unref(p),t.pageIndex,n.value.page)),9,Vt),e.createElementVNode("span",null,e.toDisplayString(e.unref(p).widthMm)+" × "+e.toDisplayString(e.unref(p).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,wt)):e.createCommentVNode("",!0)]),e.createElementVNode("span",xt,e.toDisplayString(n.value.canvasHint),1),e.createElementVNode("div",Ct,[e.createElementVNode("nav",Mt,[e.createElementVNode("button",{type:"button","aria-pressed":v.value,onClick:C[0]||(C[0]=M=>v.value=!v.value)},e.toDisplayString(n.value.rulerToggle),9,Bt),e.createElementVNode("button",{type:"button",onClick:C[1]||(C[1]=M=>e.unref(w)("width"))},e.toDisplayString(n.value.fitWidth),1),e.createElementVNode("button",{type:"button",onClick:C[2]||(C[2]=M=>e.unref(w)("page"))},e.toDisplayString(n.value.fitPage),1),e.createElementVNode("button",{type:"button",disabled:!t.selection,onClick:C[3]||(C[3]=M=>e.unref(w)("selection"))},e.toDisplayString(n.value.fitSelection),9,Dt)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.zoom),1),e.createElementVNode("select",{value:e.unref(c),"aria-label":n.value.zoom,onChange:C[4]||(C[4]=M=>e.unref(N)(Number(M.target.value)))},[[.5,.8,1,1.25].includes(e.unref(c))?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("option",{key:0,value:e.unref(c)},e.toDisplayString(Math.round(e.unref(c)*100))+"%",9,_t)),C[7]||(C[7]=e.createElementVNode("option",{value:.5},"50%",-1)),C[8]||(C[8]=e.createElementVNode("option",{value:.8},"80%",-1)),C[9]||(C[9]=e.createElementVNode("option",{value:1},"100%",-1)),C[10]||(C[10]=e.createElementVNode("option",{value:1.25},"125%",-1))],40,$t)])])]),e.createElementVNode("div",{ref_key:"viewport",ref:l,class:"mr-canvas-scroll",onScrollPassive:C[5]||(C[5]=(...M)=>e.unref(V)&&e.unref(V)(...M))},[e.createElementVNode("div",{class:"mr-canvas-paper",style:e.normalizeStyle({width:`${e.unref(p).widthMm*e.unref(h)}px`,height:`${e.unref(p).heightMm*e.unref(h)}px`})},[v.value?(e.openBlock(),e.createElementBlock("svg",{key:0,class:"mr-canvas-ruler is-horizontal",width:e.unref(p).widthMm*e.unref(h),height:"17","aria-label":n.value.rulerLabel,role:"img"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,M=>(e.openBlock(),e.createElementBlock("g",{key:M.mm,transform:`translate(${M.position}, 0)`},[C[11]||(C[11]=e.createElementVNode("line",{y1:"12",y2:"17"},null,-1)),e.createElementVNode("text",Rt,e.toDisplayString(M.mm),1)],8,It))),128))],8,Tt)):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("svg",{key:1,class:"mr-canvas-ruler is-vertical",width:"17",height:e.unref(p).heightMm*e.unref(h),"aria-hidden":"true"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,M=>(e.openBlock(),e.createElementBlock("g",{key:M.mm,transform:`translate(0, ${M.position})`},[C[12]||(C[12]=e.createElementVNode("line",{x1:"12",x2:"17"},null,-1)),e.createElementVNode("text",At,e.toDisplayString(M.mm),1)],8,Pt))),128))],8,Lt)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p).components,(M,R)=>(e.openBlock(),e.createElementBlock("div",{key:R,class:e.normalizeClass(["mr-canvas-component",{"is-selected":L(R),"is-locked":B(R)}]),"data-canvas-component":R,style:e.normalizeStyle(W(R)),role:"button","aria-label":`${n.value.component} ${R+1} ${M.kind}`,"aria-pressed":L(R),tabindex:L(R)?0:-1,onFocus:$=>!L(R)&&a("select",{pageIndex:t.pageIndex,componentIndex:R}),onPointerdown:$=>D($,R),onClick:$=>$.detail===0&&!L(R)&&a("select",{pageIndex:t.pageIndex,componentIndex:R}),onKeydown:$=>Z($,R)},[M.kind==="list"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Ht,[M.header!==!1&&M.headerGrid?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-canvas-merged",style:e.normalizeStyle({height:`${(M.headerGrid.rowHeightsMm?.reduce(($,F)=>$+F,0)??M.headerGrid.cells.length*8)*e.unref(h)}px`})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(P(M),($,F)=>(e.openBlock(),e.createElementBlock("div",{key:F,style:e.normalizeStyle({left:`${$.xMm*e.unref(h)}px`,top:`${$.yMm*e.unref(h)}px`,width:`${$.widthMm*e.unref(h)}px`,height:`${$.heightMm*e.unref(h)}px`,textAlign:$.cell.style?.align??"center"})},e.toDisplayString($.cell.text),5))),128))],4)):M.header!==!1?(e.openBlock(),e.createElementBlock("div",Gt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.columns,($,F)=>(e.openBlock(),e.createElementBlock("div",{key:F,style:e.normalizeStyle(x({text:$.header,style:e.unref(ge.resolveListHeaderStyle)(M,$)},$.widthMm,$.hidden)),onPointerdown:e.withModifiers(X=>{a("select",{pageIndex:t.pageIndex,componentIndex:R}),a("column",F)},["stop"])},e.toDisplayString($.header),45,zt))),128))])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value[R],($,F)=>(e.openBlock(),e.createElementBlock("div",{key:F,class:"mr-canvas-table-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.columns,(X,U)=>(e.openBlock(),e.createElementBlock("div",{key:U,style:e.normalizeStyle(x($[U],X.widthMm,X.hidden))},e.toDisplayString($[U].text),5))),128))]))),128)),E.value[R]?.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ot,e.toDisplayString(M.dataset)+" · "+e.toDisplayString(M.tree&&t.datasets?.[M.dataset]?.length?n.value.treeSampleHint:n.value.sampleRows),1))]),L(R)&&!m.value&&!B(R)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(r(M),($,F)=>(e.openBlock(),e.createElementBlock("span",{key:F,class:"mr-canvas-column-handle","aria-label":`${n.value.resizeColumn} ${M.columns[F]?.header}`,role:"separator","aria-orientation":"vertical",style:e.normalizeStyle({left:`${$*e.unref(h)}px`}),onPointerdown:X=>q(X,M,F)},null,44,jt))),128)):e.createCommentVNode("",!0)],64)):M.grid?(e.openBlock(),e.createElementBlock("div",qt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T(M),($,F)=>(e.openBlock(),e.createElementBlock("div",{key:F,style:e.normalizeStyle({left:`${$.xMm*e.unref(h)}px`,top:`${$.yMm*e.unref(h)}px`,width:`${$.widthMm*e.unref(h)}px`,height:`${$.heightMm*e.unref(h)}px`,backgroundColor:$.cell.style?.backgroundColor,color:$.cell.style?.color,fontWeight:$.cell.style?.bold?"700":"400",fontSize:`${e.unref(Ee.resolveFontSize)($.cell.style).fontSizePx*e.unref(c)}px`,textAlign:$.cell.style?.align??"left"})},e.toDisplayString($.cell.text),5))),128)),M.grid.cells.reduce(($,F)=>$+F.length,0)>2e3?(e.openBlock(),e.createElementBlock("span",Wt,e.toDisplayString(n.value.canvasGridLimited),1)):e.createCommentVNode("",!0)])):(M.kind==="barcode"||M.kind==="qrcode")&&!s.value[R]?.image?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["mr-canvas-code",{"is-error":s.value[R]?.error}]),title:s.value[R]?.error??n.value.codePreviewHint},[C[13]||(C[13]=e.createElementVNode("svg",{viewBox:"0 0 32 24","aria-hidden":"true"},[e.createElementVNode("rect",{x:"3",y:"3",width:"26",height:"18",rx:"2"}),e.createElementVNode("path",{d:"M10 8 6 12l4 4m12-8 4 4-4 4m-8 2 4-12"})],-1)),e.createElementVNode("strong",null,e.toDisplayString(M.kind==="qrcode"?n.value.insertQrcode:(M.code?.symbology??"code128").toUpperCase()),1),e.createElementVNode("span",null,e.toDisplayString(s.value[R]?.text||n.value.codePlaceholder),1),s.value[R]?.bound?(e.openBlock(),e.createElementBlock("small",Kt,e.toDisplayString(M.binding?.field),1)):e.createCommentVNode("",!0)],10,Ut)):s.value[R]?.image?(e.openBlock(),e.createElementBlock("img",{key:3,src:s.value[R]?.image,alt:"",draggable:"false"},null,8,Jt)):(e.openBlock(),e.createElementBlock("div",{key:4,class:e.normalizeClass(["mr-canvas-content",{"is-binding-error":s.value[R]?.error,"is-bound-image":M.kind==="image"&&M.binding}]),title:s.value[R]?.error==="image-binding"?n.value.bindingImageHint:s.value[R]?.error,style:e.normalizeStyle({color:M.style?.color,backgroundColor:M.style?.backgroundColor,fontWeight:M.style?.bold?"700":"400",fontSize:`${e.unref(Ee.resolveFontSize)(M.style).fontSizePx*e.unref(c)}px`,textAlign:M.style?.align,justifyContent:M.style?.verticalAlign==="bottom"?"flex-end":M.style?.verticalAlign==="middle"?"center":"flex-start"})},e.toDisplayString(s.value[R]?.text||(M.kind==="rect"?"":M.kind==="image"&&M.binding?n.value.boundImagePlaceholder:"")),15,Yt)),L(R)&&!m.value&&!B(R)?(e.openBlock(),e.createElementBlock("span",{key:5,class:"mr-canvas-resize","aria-label":n.value.resizeComponent,role:"separator",onPointerdown:$=>e.unref(_).start($,M,!0)},null,40,Xt)):e.createCommentVNode("",!0)],46,Ft))),128))],4)],544),e.unref(u)?(e.openBlock(),e.createElementBlock("footer",Zt,[e.createElementVNode("span",null,e.toDisplayString(n.value.wideNavigation),1),e.createElementVNode("input",{type:"range",min:"0",max:"100",value:e.unref(y),"aria-label":n.value.wideNavigation,onInput:C[6]||(C[6]=M=>e.unref(f)(Number(M.target.value)))},null,40,Qt),e.createElementVNode("span",null,e.toDisplayString(e.unref(y))+"%",1)])):e.createCommentVNode("",!0)]))}}),tn=Y._export_sfc(en,[["__scopeId","data-v-c512529e"]]),nn={class:"mr-component-binding"},on=["value","disabled"],an={value:"static"},ln=["disabled"],rn={key:0,class:"mr-binding-hint"},sn=["value","disabled"],dn=["value"],cn={key:0,class:"mr-binding-grid"},un=["value","disabled"],mn={value:"natural"},pn={value:"number"},gn={value:"percent"},vn={value:"date"},fn={key:0},hn=["value","disabled"],yn={key:1},bn=["value","disabled"],kn={key:1},En={class:"mr-binding-grid"},Nn=["value","disabled"],Sn=["value","disabled"],Vn=["value","disabled"],wn={class:"mr-binding-hint"},xn=e.defineComponent({__name:"ComponentDataBinding",props:{component:{},repeat:{},schema:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:i}){const o=t,a=i,n=e.computed(()=>({...ie,...o.messages})),l=e.computed(()=>o.component.binding),c=`mr-component-fields-${e.getCurrentInstance()?.uid??0}`;function h(N){return N.target.value}function p(N){!o.disabled&&l.value&&a("change",{...l.value,...N})}function u(N){o.disabled||(h(N)==="static"?a("change",void 0):o.repeat&&a("change",{field:o.schema?.fields[0]?.field??"value"}))}function y(N){if(!l.value||o.disabled)return;const V={...l.value},f=h(N);f==="natural"?delete V.format:V.format=f==="date"?{kind:"date",pattern:"YYYY-MM-DD"}:{kind:f,digits:2},a("change",V)}function w(N){const V=h(N),f=l.value?.format;V.trim()&&f&&f.kind!=="date"&&p({format:{...f,digits:Number(V)}})}return(N,V)=>(e.openBlock(),e.createElementBlock("div",nn,[e.createElementVNode("h3",null,e.toDisplayString(n.value.dataBinding),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.contentSource),1),e.createElementVNode("select",{value:l.value?"field":"static",disabled:t.disabled,onChange:u},[e.createElementVNode("option",an,e.toDisplayString(n.value.staticContent),1),e.createElementVNode("option",{value:"field",disabled:!t.repeat},e.toDisplayString(n.value.recordField),9,ln)],40,on)]),t.repeat?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",rn,e.toDisplayString(n.value.bindingNeedsRepeat),1)),l.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:l.value.field,list:c,disabled:t.disabled,onChange:V[0]||(V[0]=f=>h(f).trim()&&p({field:h(f).trim()}))},null,40,sn)]),e.createElementVNode("datalist",{id:c},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.schema?.fields??[],f=>(e.openBlock(),e.createElementBlock("option",{key:f.field,value:f.field},e.toDisplayString(f.label),9,dn))),128))]),t.component.kind==="text"?(e.openBlock(),e.createElementBlock("div",cn,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valueFormat),1),e.createElementVNode("select",{value:l.value.format?.kind??"natural",disabled:t.disabled,onChange:y},[e.createElementVNode("option",mn,e.toDisplayString(n.value.naturalFormat),1),e.createElementVNode("option",pn,e.toDisplayString(n.value.numberFormat),1),e.createElementVNode("option",gn,e.toDisplayString(n.value.percentFormat),1),e.createElementVNode("option",vn,e.toDisplayString(n.value.dateFormat),1)],40,un)]),l.value.format&&l.value.format.kind!=="date"?(e.openBlock(),e.createElementBlock("label",fn,[e.createTextVNode(e.toDisplayString(n.value.decimalPlaces),1),e.createElementVNode("input",{type:"number",min:"0",max:"100",step:"1",value:l.value.format.digits??2,disabled:t.disabled,onChange:w},null,40,hn)])):l.value.format?.kind==="date"?(e.openBlock(),e.createElementBlock("label",yn,[e.createTextVNode(e.toDisplayString(n.value.datePattern),1),e.createElementVNode("input",{value:l.value.format.pattern??"YYYY-MM-DD",disabled:t.disabled,onChange:V[1]||(V[1]=f=>p({format:{kind:"date",pattern:h(f)}}))},null,40,bn)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),t.component.kind!=="image"?(e.openBlock(),e.createElementBlock("details",kn,[e.createElementVNode("summary",null,e.toDisplayString(n.value.bindingDecoration),1),e.createElementVNode("div",En,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valuePrefix),1),e.createElementVNode("input",{value:l.value.prefix??"",disabled:t.disabled,onChange:V[2]||(V[2]=f=>p({prefix:h(f)}))},null,40,Nn)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valueSuffix),1),e.createElementVNode("input",{value:l.value.suffix??"",disabled:t.disabled,onChange:V[3]||(V[3]=f=>p({suffix:h(f)}))},null,40,Sn)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.emptyValueText),1),e.createElementVNode("input",{value:l.value.emptyText??"",disabled:t.disabled,onChange:V[4]||(V[4]=f=>p({emptyText:h(f)}))},null,40,Vn)])])):e.createCommentVNode("",!0),e.createElementVNode("p",wn,e.toDisplayString(t.repeat?.dataset)+" · "+e.toDisplayString(t.component.kind==="image"?n.value.bindingImageHint:n.value.bindingRecordHint),1)],64)):e.createCommentVNode("",!0)]))}}),Cn=Y._export_sfc(xn,[["__scopeId","data-v-4be6f80e"]]),Mn={class:"mr-code-properties"},Bn={key:0},Dn=["value","disabled"],$n={key:1},_n=["value","disabled"],Tn={key:2},In={class:"mr-code-grid"},Rn={key:0},Ln=["value","disabled"],Pn=["min","value","disabled"],An={key:3,class:"mr-code-checkbox"},Fn=["checked","disabled"],Hn=e.defineComponent({__name:"CodeComponentInspector",props:{component:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:i}){const o=t,a=i,n=e.computed(()=>({...ie,...o.messages})),l=e.computed(()=>o.component.kind==="qrcode"?4:o.component.code?.symbology?.startsWith("ean")?11:10);function c(u){return u.target.value}function h(u){o.disabled||a("change",{...o.component.code,...u})}function p(u){const y=c(u);h({symbology:y,quietZoneModules:y.startsWith("ean")?11:10})}return(u,y)=>(e.openBlock(),e.createElementBlock("div",Mn,[e.createElementVNode("h3",null,e.toDisplayString(n.value.codeSettings),1),t.component.binding?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("label",Bn,[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:y[0]||(y[0]=w=>h({value:c(w)}))},null,40,Dn)])),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("label",$n,[e.createTextVNode(e.toDisplayString(n.value.codeSymbology),1),e.createElementVNode("select",{value:t.component.code?.symbology??"code128",disabled:t.disabled,onChange:p},[...y[4]||(y[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,_n)])):e.createCommentVNode("",!0),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("p",Tn,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("div",In,[t.component.kind==="qrcode"?(e.openBlock(),e.createElementBlock("label",Rn,[e.createTextVNode(e.toDisplayString(n.value.codeCorrection),1),e.createElementVNode("select",{value:t.component.code?.errorCorrection??"M",disabled:t.disabled,onChange:y[1]||(y[1]=w=>h({errorCorrection:c(w)}))},[...y[5]||(y[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,Ln)])):e.createCommentVNode("",!0),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.codeQuietZone),1),e.createElementVNode("input",{type:"number",min:l.value,max:"64",step:"1",value:t.component.code?.quietZoneModules??l.value,disabled:t.disabled,onChange:y[2]||(y[2]=w=>c(w).trim()&&h({quietZoneModules:Number(c(w))}))},null,40,Pn)])]),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("label",An,[e.createElementVNode("input",{type:"checkbox",checked:t.component.code?.showText===!0,disabled:t.disabled,onChange:y[3]||(y[3]=w=>h({showText:w.target.checked}))},null,40,Fn),e.createTextVNode(e.toDisplayString(n.value.codeShowText),1)])):e.createCommentVNode("",!0),e.createElementVNode("p",null,e.toDisplayString(n.value.codePreviewHint),1)]))}}),Gn=Y._export_sfc(Hn,[["__scopeId","data-v-35d782cf"]]),zn=["aria-label"],On=["data-align","aria-label","title","aria-checked","tabindex","onClick","onKeydown"],jn={key:0},qn={key:1,viewBox:"0 0 20 20",fill:"none","aria-hidden":"true"},Wn={key:0,d:"M3 4h14M3 8h9M3 12h14M3 16h9"},Un={key:1,d:"M3 4h14M6 8h8M3 12h14M6 16h8"},Kn={key:2,d:"M3 4h14M8 8h9M3 12h14M8 16h9"},Jn={key:3,d:"M3 4h14M3 8h14M3 12h14M3 16h14"},Yn=e.defineComponent({__name:"AlignmentControl",props:{modelValue:{},label:{},labels:{},autoLabel:{},allowAuto:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:i}){const o=t,a=i,n=()=>o.allowAuto?["auto","left","center","right","justify"]:["left","center","right","justify"];async function l(c,h){if(!["ArrowLeft","ArrowRight","Home","End"].includes(c.key))return;c.preventDefault();const u=n(),y=u.indexOf(h),w=c.key==="Home"?0:c.key==="End"?u.length-1:(y+(c.key==="ArrowRight"?1:-1)+u.length)%u.length;a("update:modelValue",u[w]);const N=c.currentTarget.parentElement;await e.nextTick(),N?.querySelector(`[data-align="${u[w]}"]`)?.focus()}return(c,h)=>(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(),p=>(e.openBlock(),e.createElementBlock("button",{key:p,type:"button",role:"radio","data-align":p,"aria-label":t.labels[p],title:t.labels[p],"aria-checked":t.modelValue===p,tabindex:t.modelValue===p?0:-1,onClick:u=>a("update:modelValue",p),onKeydown:u=>l(u,p)},[p==="auto"?(e.openBlock(),e.createElementBlock("span",jn,e.toDisplayString(t.autoLabel),1)):(e.openBlock(),e.createElementBlock("svg",qn,[p==="left"?(e.openBlock(),e.createElementBlock("path",Wn)):p==="center"?(e.openBlock(),e.createElementBlock("path",Un)):p==="right"?(e.openBlock(),e.createElementBlock("path",Kn)):(e.openBlock(),e.createElementBlock("path",Jn))]))],40,On))),128))],8,zn))}}),Re=Y._export_sfc(Yn,[["__scopeId","data-v-c85770c4"]]),Xn=["disabled"],Zn={class:"mr-component-dimensions"},Qn=["min","value","disabled","onChange"],eo={key:0},to=["value","disabled"],no={value:""},oo={value:"header"},ao={value:"footer"},lo={key:2},ro=["value"],io=["value"],so={class:"mr-component-upload"},co=["aria-label"],uo={key:0,role:"alert"},mo={key:5,class:"mr-component-type"},po={class:"mr-component-dimensions"},go=["value"],vo=["checked"],fo={class:"mr-component-dimensions"},ho=["value"],yo=["value"],bo={key:6},ko=["value"],Eo=e.defineComponent({__name:"CanvasComponentInspector",props:{component:{},disabled:{type:Boolean},geometryDisabled:{type:Boolean},repeat:{},schema:{},messages:{}},emits:["geometry","patch"],setup(t,{emit:i}){const o=t,a=i,n=e.computed(()=>({...ie,...o.messages})),l=e.ref(""),c=["leftMm","topMm","widthMm","heightMm"],h=e.computed(()=>[n.value.leftPosition,n.value.topPosition,n.value.componentWidth,n.value.componentHeight]);function p(V,f){if(o.disabled||o.geometryDisabled)return;const m=Number(f.target.value);if(!Number.isFinite(m))return;const E={...re(o.component),[V]:m};o.component.kind==="qrcode"&&(V==="widthMm"||V==="heightMm")&&(E.widthMm=E.heightMm=m),a("geometry",E)}function u(V,f){if(o.component.kind==="list")return;const m={...o.component.style,[V]:f};V==="fontSize"&&delete m.fontSizePx,a("patch",{style:m})}const y=e.computed(()=>({auto:n.value.auto,left:n.value.left,center:n.value.center,right:n.value.right,justify:n.value.justify}));function w(V){return V.target.value}async function N(V){const f=V.target,m=f.files?.[0];if(!m)return;l.value="";const E=o.component;try{if(m.size>4*1024*1024||!["image/png","image/jpeg","image/webp","image/svg+xml"].includes(m.type))throw new Error(n.value.imageBudget);const s=new FileReader,v=await new Promise((b,k)=>{s.onload=()=>b(String(s.result)),s.onerror=()=>k(s.error),s.readAsDataURL(m)});!o.disabled&&o.component===E&&a("patch",{imageData:v})}catch(s){l.value=s instanceof Error?s.message:String(s)}finally{f.value=""}}return(V,f)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-component-properties",disabled:t.disabled},[e.createElementVNode("h3",null,e.toDisplayString(n.value.positionGroup),1),e.createElementVNode("div",Zn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.filter(m=>t.component.kind!=="list"||m!=="heightMm"),(m,E)=>(e.openBlock(),e.createElementBlock("label",{key:m},[e.createTextVNode(e.toDisplayString(h.value[E]),1),e.createElementVNode("input",{type:"number",step:"0.5",min:m==="widthMm"||m==="heightMm"?2:0,value:e.unref(re)(t.component)[m],disabled:t.geometryDisabled,onChange:s=>p(m,s)},null,40,Qn)]))),128))]),t.component.kind!=="list"&&!t.repeat?(e.openBlock(),e.createElementBlock("label",eo,[e.createTextVNode(e.toDisplayString(n.value.repeatPage),1),e.createElementVNode("select",{value:t.component.pageAnchor??"",disabled:t.geometryDisabled,onChange:f[0]||(f[0]=m=>a("patch",{pageAnchor:w(m)||void 0}))},[e.createElementVNode("option",no,e.toDisplayString(n.value.repeatNone),1),e.createElementVNode("option",oo,e.toDisplayString(n.value.repeatHeader),1),e.createElementVNode("option",ao,e.toDisplayString(n.value.repeatFooter),1)],40,to)])):e.createCommentVNode("",!0),e.createElementVNode("h3",null,e.toDisplayString(n.value.componentContent),1),["text","image","barcode","qrcode"].includes(t.component.kind)&&t.component.kind!=="list"&&!t.component.grid?(e.openBlock(),e.createBlock(Cn,{key:1,component:t.component,repeat:t.repeat,schema:t.schema,disabled:t.disabled,messages:n.value,onChange:f[1]||(f[1]=m=>a("patch",{binding:m,...["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",lo,[e.createTextVNode(e.toDisplayString(n.value.componentText),1),e.createElementVNode("textarea",{rows:"4",value:t.component.text,onChange:f[2]||(f[2]=m=>a("patch",{text:w(m)}))},null,40,ro)])):e.createCommentVNode("",!0),t.component.kind==="image"&&!t.component.binding?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.imageSource),1),e.createElementVNode("textarea",{rows:"2",value:t.component.imageData,onChange:f[3]||(f[3]=m=>a("patch",{imageData:w(m)}))},null,40,io)]),e.createElementVNode("label",so,[e.createTextVNode(e.toDisplayString(n.value.imageUpload),1),e.createElementVNode("input",{type:"file",accept:"image/png,image/jpeg,image/webp,image/svg+xml","aria-label":n.value.imageUpload,onChange:N},null,40,co)]),l.value?(e.openBlock(),e.createElementBlock("p",uo,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.component.kind==="barcode"||t.component.kind==="qrcode"?(e.openBlock(),e.createBlock(Gn,{key:4,component:t.component,disabled:t.disabled,messages:n.value,onChange:f[4]||(f[4]=m=>a("patch",{code:m,imageData:void 0}))},null,8,["component","disabled","messages"])):e.createCommentVNode("",!0),t.component.kind==="text"?(e.openBlock(),e.createElementBlock("div",mo,[e.createElementVNode("h3",null,e.toDisplayString(n.value.textFormat),1),e.createElementVNode("div",po,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.fontSize),1),e.createElementVNode("input",{type:"number",min:"1",max:"200",value:e.unref(Ee.resolveFontSize)(t.component.style).fontSizePt,onChange:f[5]||(f[5]=m=>u("fontSize",Number(w(m))))},null,40,go)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.fontBold),1),e.createElementVNode("input",{type:"checkbox",checked:t.component.style?.bold===!0,onChange:f[6]||(f[6]=m=>u("bold",m.target.checked))},null,40,vo)])]),e.createVNode(Re,{"model-value":t.component.style?.align??"left",label:n.value.bodyAlign,labels:y.value,"auto-label":n.value.autoShort,"onUpdate:modelValue":f[7]||(f[7]=m=>u("align",m))},null,8,["model-value","label","labels","auto-label"]),e.createElementVNode("div",fo,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.textColor),1),e.createElementVNode("input",{type:"color",value:t.component.style?.color??"#233c5c",onChange:f[8]||(f[8]=m=>u("color",w(m)))},null,40,ho)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.backgroundColor),1),e.createElementVNode("input",{type:"color",value:t.component.style?.backgroundColor??"#ffffff",onChange:f[9]||(f[9]=m=>u("backgroundColor",w(m)))},null,40,yo)])])])):e.createCommentVNode("",!0),t.component.kind==="list"?(e.openBlock(),e.createElementBlock("label",bo,[e.createTextVNode(e.toDisplayString(n.value.listDataset),1),e.createElementVNode("input",{value:t.component.dataset,onChange:f[10]||(f[10]=m=>a("patch",{dataset:w(m)}))},null,40,ko)])):e.createCommentVNode("",!0)],8,Xn))}}),No=Y._export_sfc(Eo,[["__scopeId","data-v-4a29619c"]]),So=["disabled"],Vo={class:"mr-page-section-heading"},wo=["aria-label"],xo=["aria-pressed","onClick"],Co={class:"mr-page-actions"},Mo=["disabled"],Bo={key:0,class:"mr-page-confirm",role:"alert"},Do=["value","placeholder"],$o=["value"],_o=["value"],To={value:"custom"},Io={class:"mr-page-grid"},Ro=["value"],Lo=["value"],Po=["value"],Ao={value:"page"},Fo=["disabled"],Ho={class:"mr-page-grid"},Go=["value","onChange"],zo={key:1,class:"mr-page-overflow",role:"status"},Oo=e.defineComponent({__name:"TemplatePageInspector",props:{document:{},pageIndex:{},disabled:{type:Boolean},messages:{}},emits:["select","command","locate"],setup(t,{emit:i}){const o=t,a=i,n=e.computed(()=>({...ie,...o.messages})),l=e.computed(()=>o.document.template.pages[o.pageIndex]),c=e.computed(()=>_e.find(E=>E.widthMm===l.value.widthMm&&E.heightMm===l.value.heightMm)?.id??"custom"),h=e.computed(()=>je(l.value)),p=e.ref(!1);e.watch(()=>[o.pageIndex,o.document],()=>{p.value=!1});const u=["marginTopMm","marginRightMm","marginBottomMm","marginLeftMm"],y=e.computed(()=>[n.value.marginTop,n.value.marginRight,n.value.marginBottom,n.value.marginLeft]);function w(E){return E.target.value}function N(E){o.disabled||a("command",{type:"patch",patch:E})}function V(E){const s=_e.find(v=>v.id===w(E));s&&N({widthMm:s.widthMm,heightMm:s.heightMm,layout:"page"})}function f(E,s){const v=w(s);v.trim()&&Number.isFinite(Number(v))&&N({[E]:Number(v)})}function m(){if(!(o.disabled||o.document.template.pages.length<=1)){if(l.value.components.length&&!p.value){p.value=!0;return}a("command",{type:"remove"}),p.value=!1}}return(E,s)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-page-properties",disabled:t.disabled},[e.createElementVNode("div",Vo,[e.createElementVNode("h3",null,e.toDisplayString(n.value.paperAndPages),1),e.createElementVNode("span",null,e.toDisplayString(l.value.widthMm)+" × "+e.toDisplayString(l.value.heightMm)+" mm",1)]),e.createElementVNode("div",{class:"mr-page-list","aria-label":n.value.pageDirectory},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.document.template.pages,(v,b)=>(e.openBlock(),e.createElementBlock("button",{key:b,type:"button","aria-pressed":t.pageIndex===b,onClick:k=>a("select",b)},[e.createElementVNode("span",null,e.toDisplayString(b+1),1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(Ie)(v,b,n.value.page)),1),e.createElementVNode("small",null,e.toDisplayString(v.widthMm)+" × "+e.toDisplayString(v.heightMm),1)],8,xo))),128))],8,wo),e.createElementVNode("div",Co,[e.createElementVNode("button",{type:"button",onClick:s[0]||(s[0]=v=>a("command",{type:"add"}))},"+ "+e.toDisplayString(n.value.addPage),1),e.createElementVNode("button",{type:"button",onClick:s[1]||(s[1]=v=>a("command",{type:"duplicate"}))},e.toDisplayString(n.value.duplicatePage),1),e.createElementVNode("button",{type:"button",disabled:t.disabled||t.document.template.pages.length<=1,onClick:m},e.toDisplayString(n.value.removePage),9,Mo)]),p.value?(e.openBlock(),e.createElementBlock("div",Bo,[e.createElementVNode("span",null,e.toDisplayString(n.value.removePageConfirm),1),e.createElementVNode("button",{type:"button",onClick:s[2]||(s[2]=v=>p.value=!1)},e.toDisplayString(n.value.keepEditing),1),e.createElementVNode("button",{type:"button",onClick:m},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:l.value.meta?.title??"",placeholder:`${n.value.page} ${t.pageIndex+1}`,maxlength:"120",onChange:s[3]||(s[3]=v=>N({meta:{...l.value.meta,title:w(v)}}))},null,40,Do)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperPreset),1),e.createElementVNode("select",{value:c.value,onChange:V},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(_e),v=>(e.openBlock(),e.createElementBlock("option",{key:v.id,value:v.id},e.toDisplayString(v.id.startsWith("label")?n.value.labelPaper:v.id.toUpperCase())+" · "+e.toDisplayString(v.widthMm)+" × "+e.toDisplayString(v.heightMm)+" mm",9,_o))),128)),e.createElementVNode("option",To,e.toDisplayString(n.value.customPaper),1)],40,$o)]),e.createElementVNode("div",Io,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperWidth),1),e.createElementVNode("input",{type:"number",min:"1",step:"0.5",value:l.value.widthMm,onChange:s[4]||(s[4]=v=>f("widthMm",v))},null,40,Ro)]),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:l.value.heightMm,onChange:s[5]||(s[5]=v=>f("heightMm",v))},null,40,Lo)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.pageLayout),1),e.createElementVNode("select",{value:l.value.layout??"page",onChange:s[6]||(s[6]=v=>N({layout:w(v)}))},[e.createElementVNode("option",Ao,e.toDisplayString(n.value.fixedPaper),1),e.createElementVNode("option",{value:"wide",disabled:!!t.document.template.repeat},e.toDisplayString(n.value.completeWide),9,Fo)],40,Po)]),e.createElementVNode("details",null,[e.createElementVNode("summary",null,e.toDisplayString(n.value.pageMargins),1),e.createElementVNode("div",Ho,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(u,(v,b)=>e.createElementVNode("label",{key:v},[e.createTextVNode(e.toDisplayString(y.value[b]),1),e.createElementVNode("input",{type:"number",min:"0",step:"0.5",value:l.value[v]??0,onChange:k=>f(v,k)},null,40,Go)])),64))])]),h.value.length?(e.openBlock(),e.createElementBlock("div",zo,[e.createElementVNode("strong",null,e.toDisplayString(n.value.pageOverflow.replace("{count}",String(h.value.length))),1),e.createElementVNode("p",null,e.toDisplayString(n.value.pageOverflowHint),1),e.createElementVNode("button",{type:"button",onClick:s[7]||(s[7]=v=>a("locate",h.value[0]))},e.toDisplayString(n.value.locateOverflow),1)])):e.createCommentVNode("",!0)],8,So))}}),jo=Y._export_sfc(Oo,[["__scopeId","data-v-da0b7ab6"]]),qo=["disabled"],Wo={class:"mr-repeat-toggle"},Uo=["checked","disabled"],Ko=["value","list"],Jo=["id"],Yo=["value"],Xo=["value"],Zo=["value"],Qo={class:"mr-repeat-grid"},ea=["value"],ta={value:"fixed"},na={value:"field"},oa={key:0},aa=["value"],la={key:1},ra=["value"],ia={class:"mr-repeat-note"},sa=e.defineComponent({__name:"TemplateRepeatInspector",props:{document:{},datasets:{},schemas:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:i}){const o=t,a=i,n=e.computed(()=>({...ie,...o.messages})),l=e.computed(()=>o.document.template.repeat),c=e.computed(()=>o.schemas?.[l.value?.dataset??""]?.fields??[]),h=e.computed(()=>[...new Set([...o.datasets??[],...Object.keys(o.schemas??{}),...l.value?[l.value.dataset]:[]])]),p=e.computed(()=>o.document.template.pages.some(s=>s.components.some(v=>v.kind!=="list"&&v.binding))),u=e.computed(()=>o.document.template.pages.some(s=>s.layout==="wide"||!!s.flow||s.components.some(v=>v.kind==="list")||je(s).length>0)),y=e.computed(()=>typeof l.value?.copies=="object"?"field":"fixed"),w=`mr-repeat-fields-${e.getCurrentInstance()?.uid??0}`;function N(s){return s.target.value}function V(s){!o.disabled&&l.value&&a("change",{...l.value,...s})}function f(s){o.disabled||(s.target.checked?u.value||a("change",{dataset:h.value[0]??"detail",copies:1}):p.value||a("change",void 0))}function m(s){if(!l.value||o.disabled)return;const v={...l.value},b=N(s).trim();b?v.rowKey=b:delete v.rowKey,a("change",v)}function E(s){V({copies:N(s)==="field"?{field:c.value.find(v=>v.type==="number")?.field??"copies"}:1})}return(s,v)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-repeat-properties",disabled:t.disabled},[e.createElementVNode("label",Wo,[e.createElementVNode("span",null,[e.createElementVNode("strong",null,e.toDisplayString(n.value.repeatRecords),1),e.createElementVNode("small",null,e.toDisplayString(u.value?n.value.repeatNeedsFixed:n.value.repeatRecordsHint),1)]),e.createElementVNode("input",{type:"checkbox",checked:!!l.value,disabled:t.disabled||!!l.value&&p.value||!l.value&&u.value,onChange:f},null,40,Uo)]),l.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:l.value.dataset,list:`${w}-datasets`,onChange:v[0]||(v[0]=b=>N(b).trim()&&V({dataset:N(b).trim()}))},null,40,Ko)]),e.createElementVNode("datalist",{id:`${w}-datasets`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,b=>(e.openBlock(),e.createElementBlock("option",{key:b,value:b},null,8,Yo))),128))],8,Jo),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.recordRowKey),1),e.createElementVNode("input",{value:l.value.rowKey??"",list:w,onChange:m},null,40,Xo)]),e.createElementVNode("datalist",{id:w},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,b=>(e.openBlock(),e.createElementBlock("option",{key:b.field,value:b.field},e.toDisplayString(b.label),9,Zo))),128))]),e.createElementVNode("div",Qo,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.labelCopies),1),e.createElementVNode("select",{value:y.value,onChange:E},[e.createElementVNode("option",ta,e.toDisplayString(n.value.fixedCopies),1),e.createElementVNode("option",na,e.toDisplayString(n.value.fieldCopies),1)],40,ea)]),y.value==="fixed"?(e.openBlock(),e.createElementBlock("label",oa,[e.createTextVNode(e.toDisplayString(n.value.copiesPerRecord),1),e.createElementVNode("input",{type:"number",min:"1",max:"1000",step:"1",value:l.value.copies??1,onChange:v[1]||(v[1]=b=>N(b).trim()&&V({copies:Number(N(b))}))},null,40,aa)])):(e.openBlock(),e.createElementBlock("label",la,[e.createTextVNode(e.toDisplayString(n.value.copiesField),1),e.createElementVNode("input",{value:typeof l.value.copies=="object"?l.value.copies.field:"",list:w,onChange:v[2]||(v[2]=b=>N(b).trim()&&V({copies:{field:N(b).trim()}}))},null,40,ra)]))]),e.createElementVNode("p",ia,e.toDisplayString(p.value?n.value.repeatBoundHint:n.value.repeatOrderHint),1)],64)):e.createCommentVNode("",!0)],8,qo))}}),da=Y._export_sfc(sa,[["__scopeId","data-v-de1ee031"]]),ca={class:"mr-header-editor"},ua=["disabled"],ma=["value"],pa=["value"],ga=["value"],va=["disabled"],fa=e.defineComponent({__name:"HeaderStructureEditor",props:{list:{},disabled:{type:Boolean},messages:{}},emits:["command"],setup(t,{emit:i}){const o=t,a=i,n=e.computed(()=>({...ie,...o.messages})),l=e.ref(0),c=e.ref(0),h=e.ref(Math.min(1,o.list.columns.length-1));return e.watch(()=>o.list.columns.length,p=>{c.value=Math.min(c.value,p-1),h.value=Math.min(h.value,p-1)}),(p,u)=>(e.openBlock(),e.createElementBlock("details",ca,[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":u[0]||(u[0]=y=>l.value=y)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.headerGrid?.cells.length??1,y=>(e.openBlock(),e.createElementBlock("option",{key:y,value:y-1},e.toDisplayString(y),9,ma))),128))],512),[[e.vModelSelect,l.value,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerFirst),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":u[1]||(u[1]=y=>c.value=y)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,(y,w)=>(e.openBlock(),e.createElementBlock("option",{key:w,value:w},e.toDisplayString(w+1)+" · "+e.toDisplayString(y.header),9,pa))),128))],512),[[e.vModelSelect,c.value,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerLast),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":u[2]||(u[2]=y=>h.value=y)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,(y,w)=>(e.openBlock(),e.createElementBlock("option",{key:w,value:w},e.toDisplayString(w+1)+" · "+e.toDisplayString(y.header),9,ga))),128))],512),[[e.vModelSelect,h.value,void 0,{number:!0}]])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:u[3]||(u[3]=y=>a("command",{action:"add",row:l.value,first:c.value,last:h.value}))},e.toDisplayString(n.value.addHeaderRow),1),e.createElementVNode("button",{type:"button",disabled:c.value>=h.value,onClick:u[4]||(u[4]=y=>a("command",{action:"merge",row:l.value,first:c.value,last:h.value}))},e.toDisplayString(n.value.mergeHeader),9,va),e.createElementVNode("button",{type:"button",onClick:u[5]||(u[5]=y=>a("command",{action:"split",row:l.value,first:c.value,last:h.value}))},e.toDisplayString(n.value.splitHeader),1)])],8,ua)]))}}),ha=Y._export_sfc(fa,[["__scopeId","data-v-acd607ef"]]),de=t=>`${t.pageIndex}:${t.componentIndex}`;function ya(t,i,o){const a=e.ref([]),n=e.ref(new Set);e.watch(()=>t.value.id,()=>{a.value=[],n.value=new Set});const l=N=>!!N&&n.value.has(de(N));function c(N){const V={pageIndex:N.pageIndex,componentIndex:N.componentIndex};if(N.additive&&a.value.every(f=>f.pageIndex===N.pageIndex)){const f=a.value.some(m=>de(m)===de(N));a.value=f?a.value.filter(m=>de(m)!==de(N)):[...a.value,V],i.value=f?a.value.at(-1):V}else a.value=[V],i.value=V}const h=e.computed(()=>a.value.filter(N=>!l(N)));function p(){const N=new Set(n.value),V=a.value.every(l);for(const f of a.value)V?N.delete(de(f)):N.add(de(f));n.value=N}function u(N){h.value.length<2||o(V=>{const f=h.value.map(k=>ue(V,k)).filter(Boolean),m=f.map(re),E=Math.min(...m.map(k=>k.leftMm)),s=Math.min(...m.map(k=>k.topMm)),v=Math.max(...m.map(k=>k.leftMm+k.widthMm)),b=Math.max(...m.map(k=>k.topMm+k.heightMm));f.forEach((k,x)=>{const B=m[x],D={left:E,center:(E+v-B.widthMm)/2,right:v-B.widthMm},_={top:s,middle:(s+b-B.heightMm)/2,bottom:b-B.heightMm};N in D?B.leftMm=D[N]:B.topMm=_[N],fe(k,B)})})}function y(N){h.value.length<3||o(V=>{const f=N==="horizontal"?"leftMm":"topMm",m=N==="horizontal"?"widthMm":"heightMm",E=h.value.map(x=>({component:ue(V,x),box:re(ue(V,x))})).sort((x,B)=>x.box[f]-B.box[f]),s=E[0].box[f],b=(Math.max(...E.map(x=>x.box[f]+x.box[m]))-s-E.reduce((x,B)=>x+B.box[m],0))/(E.length-1);let k=s;for(const x of E)x.box[f]=k,fe(x.component,x.box),k+=x.box[m]+b})}function w(N,V,f){function m(E){if(E.pageIndex!==N)return E;const s=E.componentIndex;return f===void 0?s===V?void 0:{...E,componentIndex:s>V?s-1:s}:{...E,componentIndex:s===V?f:s===f?V:s}}n.value=new Set([...n.value].flatMap(E=>{const[s,v]=E.split(":").map(Number),b=m({pageIndex:s,componentIndex:v});return b?[de(b)]:[]})),a.value=a.value.flatMap(E=>{const s=m(E);return s?[s]:[]})}return{clearLocks:()=>{n.value=new Set},selections:a,locked:l,allLocked:e.computed(()=>!!a.value.length&&a.value.every(l)),toggleLock:p,align:u,distribute:y,select:c,remap:w}}function ba(t,i){const o=e.ref("preview"),a=e.ref(),n=e.ref(0),l=e.computed(()=>!!t.value.template.pages[a.value?.pageIndex??n.value]?.flow),c=ya(t,a,m=>l.value?!1:i(m)),h=e.computed(()=>ue(t.value,a.value));e.watch(n,m=>{a.value?.pageIndex!==m&&(a.value=void 0,c.selections.value=[])}),e.watch(t,()=>{h.value||(a.value=void 0),c.selections.value=c.selections.value.filter(m=>!!ue(t.value,m)),t.value.template.pages[n.value]||(n.value=0)});function p(m){c.select(m),n.value=m.pageIndex}function u(m){const E=a.value;return!E||c.locked(E)?!1:i(s=>{const v=ue(s,E);v&&m(v,s)})}function y(m){l.value||u((E,s)=>{const v=s.template.pages[a.value.pageIndex];fe(E,Ne(m,v,E.kind==="list"))})}function w(m){if(t.value.template.pages[n.value]?.flow||m==="list"&&t.value.template.repeat)return;let E=-1;const s=n.value;i(v=>{const b=v.template.pages[s].components,k=rt(m);fe(k,Ne(re(k),v.template.pages[s],k.kind==="list")),k.kind==="qrcode"&&(k.widthMm=k.heightMm=Math.min(k.widthMm,k.heightMm)),b.push(k),E=b.length-1})&&p({pageIndex:s,componentIndex:E})}function N(){if(l.value)return;const m=a.value;m&&!c.locked(m)&&i(E=>{E.template.pages[m.pageIndex].components.splice(m.componentIndex,1)})&&(c.remap(m.pageIndex,m.componentIndex),a.value=void 0)}function V(){if(l.value)return;const m=a.value;if(!m)return;let E=-1;i(s=>{const v=s.template.pages[m.pageIndex],b=JSON.parse(JSON.stringify(ue(s,m))),k=re(b);k.leftMm+=4,k.topMm+=4,fe(b,Ne(k,v,b.kind==="list")),b.kind==="list"?delete b.id:(delete b.nid,delete b.rkey),v.components.push(b),E=v.components.length-1})&&p({pageIndex:m.pageIndex,componentIndex:E})}function f(m){if(l.value)return;const E=a.value;if(!E||c.locked(E))return;const s=E.componentIndex+m;t.value.template.pages[E.pageIndex]?.components[s]&&i(v=>{const b=v.template.pages[E.pageIndex].components;b.splice(s,0,b.splice(E.componentIndex,1)[0])})&&(c.remap(E.pageIndex,E.componentIndex,s),p({pageIndex:E.pageIndex,componentIndex:s}))}return{...c,mode:o,selection:a,pageIndex:n,active:h,geometryDisabled:l,select:p,mutate:u,geometry:y,insert:w,remove:N,duplicate:V,reorder:f}}function ka(t,i,o){const{draft:a,lists:n,selected:l,activeList:c,blocked:h,jsonPending:p,error:u}=t,{section:y,activeIndex:w}=i,N=ba(a,t.transaction),{mode:V,selection:f,pageIndex:m,active:E}=N,s=e.ref("excel"),v=e.ref(new Set);e.watch([y,s],()=>{y.value==="tools"&&(v.value=new Set([...v.value,s.value]))}),e.watch(f,T=>{if(!T)return;const P=n.value.findIndex(I=>I.pageIndex===T.pageIndex&&I.componentIndex===T.componentIndex);P>=0&&(l.value=P)}),e.watch([w,l,V,y],()=>{if(V.value!=="design"||y.value!=="fields")return;const T=n.value[l.value];T&&(f.value?.pageIndex!==T.pageIndex||f.value.componentIndex!==T.componentIndex)&&N.select({pageIndex:T.pageIndex,componentIndex:T.componentIndex})});const b=e.computed(()=>t.editingReadonly.value||h.value||p.value),k=e.computed(()=>o()?.[c.value?.dataset??""]);function x(T){V.value=T,y.value==="tools"&&(y.value=T==="design"||!n.value.length?"component":"fields")}function B(T){if(!a.value.template.pages[T.pageIndex]?.components[T.componentIndex])return;if(N.select(T),a.value.template.pages[T.pageIndex]?.components[T.componentIndex]?.kind==="list"){const I=n.value.findIndex(q=>q.pageIndex===T.pageIndex&&q.componentIndex===T.componentIndex);I>=0&&(l.value=I),y.value="fields"}else y.value="component"}function D(T){const P=T.target;P.value&&(N.insert(P.value),V.value="design",y.value="component",P.value="")}function _(T){a.value.template.pages[m.value]?.flow&&["leftMm","topMm","widthMm","heightMm","pageAnchor","grid"].some(P=>P in T)||N.mutate((P,I)=>{if(P.kind!=="list"&&T.pageAnchor!==P.pageAnchor){const S=I.template.pages[f.value.pageIndex];T.pageAnchor==="header"&&(P.topMm=S.marginTopMm??0),T.pageAnchor==="footer"&&(P.topMm=Math.max(0,S.heightMm-(S.marginBottomMm??0)-P.heightMm))}const q=P;for(const[S,C]of Object.entries(T))C===void 0?delete q[S]:q[S]=C})}function L(T){const P=n.value[l.value];P&&t.transaction(I=>{I.template.pages[P.pageIndex].components[P.componentIndex]=T})}function W(T){const P=c.value;if(!P||a.value.template.pages[n.value[l.value]?.pageIndex??-1]?.flow)return;const I=JSON.parse(JSON.stringify(P));try{it(I,w.value,w.value+T)&&(L(I),i.activate(w.value+T))}catch(q){u.value=q instanceof Error?q.message:String(q)}}function Z(T){const P=n.value[l.value];!P||a.value.template.pages[P.pageIndex]?.flow||t.transaction(I=>{const q=I.template.pages[P.pageIndex].components[P.componentIndex];q?.kind==="list"&&(T.action==="add"?st(q):T.action==="merge"?dt(q,T.row,T.first,T.last):ct(q,T.row,T.first))})}function r(T){const P=/\.pages\[(\d+)\]\.components\[(\d+)\]/.exec(T.path??""),I=T.pageIndex??(P?Number(P[1]):void 0),q=T.componentIndex??(P?Number(P[2]):void 0);if(!(I===void 0||q===void 0)&&(V.value="design",B({pageIndex:I,componentIndex:q}),T.field)){const S=c.value?.columns.findIndex(C=>C.field===T.field);S!==void 0&&S>=0&&i.activate(S)}}return{mode:V,setMode:x,canvasSelection:f,canvasPage:m,canvasActive:E,tool:s,visitedTools:v,editDisabled:b,dataSchema:k,chooseCanvas:B,insertComponent:D,patchCanvas:_,changeList:L,moveColumn:W,headerCommand:Z,locateReview:r,canvas:N}}function Ea(t,i,o){if(!t.length)return;const a=Math.max(0,t.indexOf(i)),l={ArrowDown:Math.min(a+1,t.length-1),ArrowUp:Math.max(a-1,0),Home:0,End:t.length-1}[o];return l===void 0?void 0:t[l]}function Na(t,i,o){const a=e.ref(!1),n=e.ref(t.activeIndex.value),l=e.ref(null),c=e.ref(null),h=e.ref(null),p=e.ref(null);function u(v=!1){const b=p.value,k=b?.querySelector(`button[data-column-index="${n.value}"]`);if(!b||!k)return;v&&k.focus({preventScroll:!0});const x=b.getBoundingClientRect(),B=k.getBoundingClientRect(),D=x.top+b.clientTop,_=D+b.clientHeight;B.top<D?b.scrollTop+=B.top-D:B.bottom>_&&(b.scrollTop+=B.bottom-_)}async function y(v=!1){a.value&&(a.value=!1,v&&(await e.nextTick(),l.value?.focus({preventScroll:!0})))}async function w(){if(a.value)return y(!0);const v=o.value.map(b=>b.index);n.value=v.includes(t.activeIndex.value)?t.activeIndex.value:v[0]??-1,a.value=!0,await e.nextTick(),h.value?.focus({preventScroll:!0}),u()}function N(v){t.activate(v),y(!0)}function V(v){a.value&&(v.preventDefault(),v.stopPropagation(),y(!0))}async function f(v){const b=Ea(o.value.map(k=>k.index),n.value,v.key);b!==void 0&&(n.value=b,v.preventDefault(),await e.nextTick(),u(!0))}async function m(v){if(!["ArrowDown","ArrowUp","Enter"].includes(v.key))return;v.preventDefault(),v.stopPropagation();const b=o.value.map(k=>k.index);if(b.length){if(v.key==="Enter"){b.includes(n.value)&&N(n.value);return}v.key==="ArrowUp"&&(n.value=b.at(-1)),await e.nextTick(),u(!0)}}function E(v){const b=v.target;!a.value||c.value?.contains(b)||l.value?.contains(b)||y()}function s(v){const b=v.relatedTarget;!b||c.value?.contains(b)||l.value?.contains(b)||y()}return e.watch(o,v=>{v.some(b=>b.index===n.value)||(n.value=v[0]?.index??-1)}),e.watch(i,()=>{y()}),e.onMounted(()=>document.addEventListener("pointerdown",E)),e.onBeforeUnmount(()=>document.removeEventListener("pointerdown",E)),{open:a,cursor:n,trigger:l,panel:c,search:h,list:p,toggle:w,close:y,choose:N,escape:V,navigate:f,searchKeydown:m,leave:s}}function Sa(t,i,o,a){const n=e.ref(0),l=e.ref(""),c=e.ref([]),h=e.computed(()=>t.value.template.pages.flatMap((b,k)=>b.components.flatMap((x,B)=>x.kind==="list"?[{component:x,pageIndex:k,componentIndex:B}]:[]))),p=e.computed(()=>h.value[n.value]?.component),u=e.computed(()=>{const b=p.value;if(!b)return[];const k=b.columns.map(x=>x.headerStyle?.align??x.headerAlign??b.headerStyle?.align??b.headerAlign??x.style?.align??"center");if(b.headerGrid&&i())for(const x of G.resolveGridLayout(b.headerGrid,b.widthMm,100).cells)for(let B=x.ci;B<x.ci+(x.cell.colSpan??1);B++)k[B]=x.cell.style?.align??"left";return k}),y=e.computed(()=>{const b=l.value.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return(p.value?.columns??[]).flatMap((k,x)=>{const B=`${k.header} ${k.field}`.toLocaleLowerCase();return b.every(D=>B.includes(D))?[{column:k,index:x}]:[]})});function w(b,k){c.value=k?[...new Set([...c.value,b])]:c.value.filter(x=>x!==b)}function N(b){for(const k of y.value)w(k.index,b)}function V(){c.value=[]}function f(b,k,x){if(!o())return;const B=h.value[n.value];if((k==="widthMm"||k==="hidden")&&B&&t.value.template.pages[B.pageIndex]?.flow)return;const D=p.value?.columns[b];D&&(k==="hidden"&&x===!0&&!p.value?.columns.some((_,L)=>L!==b&&!_.hidden)||(Object.assign(D,{[k]:k==="widthMm"?Number(x):x}),k==="header"&&E(b,String(x)),k==="headerAlign"&&s(b,x),k==="widthMm"&&m(),a()))}function m(){const b=h.value[n.value];if(!b)return;const k=b.component,x=t.value.template.pages[b.pageIndex],B=k.columns.map(D=>D.widthMm);k.headerGrid&&(k.headerGrid.colWidthsMm=B),x.layout==="wide"&&B.every(D=>Number.isFinite(D)&&D>0)&&(k.widthMm=B.reduce((D,_)=>D+_,0),x.widthMm=Math.max(...x.components.map(D=>D.leftMm+D.widthMm))+(x.marginRightMm??0))}function E(b,k){const x=p.value;if(!x?.headerGrid)return;const D=G.resolveGridLayout(x.headerGrid,x.widthMm,100).cells.filter(({ci:_,cell:L})=>_<=b&&_+(L.colSpan??1)>b).slice(-1)[0];D&&(Object.assign(D.cell,{text:k,rawText:k,value:k}),x.columns.slice(D.ci,D.ci+(D.cell.colSpan??1)).forEach(_=>{_.header=k}))}function s(b,k){const x=p.value,B=x?.columns[b];if(B?.headerStyle?.align!==void 0&&(B.headerStyle={...B.headerStyle,align:k}),!x?.headerGrid)return;const _=G.resolveGridLayout(x.headerGrid,x.widthMm,100).cells.filter(({ci:L,cell:W})=>L<=b&&L+(W.colSpan??1)>b).slice(-1)[0];_&&(_.cell.style={..._.cell.style,align:k},x.columns.slice(_.ci,_.ci+(_.cell.colSpan??1)).forEach(L=>{L.headerAlign=k,L.headerStyle?.align!==void 0&&(L.headerStyle={...L.headerStyle,align:k})}))}function v(b,k){if(!(!o()||b==="headerAlign"&&k==="auto")){for(const x of c.value){const B=p.value?.columns[x];B&&(Object.assign(B,{[b]:k}),b==="headerAlign"&&s(x,k))}a()}}return{selected:n,query:l,selectedColumns:c,lists:h,activeList:p,headerAlignments:u,visibleColumns:y,toggleColumn:w,selectVisible:N,clearSelection:V,setColumn:f,alignColumns:v}}function ce(t){return t.kind==="snapshot"?t.value.length*2:(t.removed.length+t.inserted.length)*2+16}function Va(t,i,o=!1){const a={kind:"snapshot",value:i};if(o)return a;let n=0;const l=Math.min(t.length,i.length);for(;n<l&&t.charCodeAt(n)===i.charCodeAt(n);)n++;let c=t.length,h=i.length;for(;c>n&&h>n&&t.charCodeAt(c-1)===i.charCodeAt(h-1);)c--,h--;const p={kind:"patch",start:n,removed:t.slice(n,c),inserted:i.slice(n,h)};return ce(p)<ce(a)?p:a}function ke(t,i,o=!1){if(i.kind==="snapshot")return i.value;const a=o?i.inserted:i.removed,n=o?i.removed:i.inserted;return t.slice(0,i.start)+n+t.slice(i.start+a.length)}function wa(t,i={entries:100,bytes:16*1024*1024}){if(![i.entries,i.bytes].every(f=>Number.isSafeInteger(f)&&f>0))throw new RangeError("History budgets must be positive safe integers");const o=e.shallowRef([{kind:"snapshot",value:t}]),a=e.ref(0),n=e.ref(t),l=e.computed(()=>a.value>0),c=e.computed(()=>a.value+1<o.value.length),h=e.computed(()=>n.value),p=e.computed(()=>o.value.reduce((f,m)=>f+ce(m),0));function u(f){o.value=[{kind:"snapshot",value:f}],a.value=0,n.value=f}function y(f){let m=f;for(;m>0&&o.value[m].kind!=="snapshot";)m--;let E="";for(;m<=f;m++)E=ke(E,o.value[m]);return E}function w(f){let m=f.reduce((E,s)=>E+ce(s),0);for(;f.length>1&&(f.length>i.entries||m>i.bytes);){const E=f[0],s=f[1],v={kind:"snapshot",value:ke(E.value,s)};m+=ce(v)-ce(E)-ce(s),f.splice(0,2,v)}return f}function N(f){if(n.value===f)return;const m=o.value.slice(0,a.value+1);m.push(Va(n.value,f,m.length%20===0)),o.value=w(m),a.value=o.value.length-1,n.value=f}function V(f){if(f<0?!l.value:!c.value)return;const m=o.value[a.value];return f<0&&m.kind==="patch"?n.value=ke(n.value,m,!0):f>0?n.value=ke(n.value,o.value[a.value+1]):n.value=y(a.value-1),a.value+=f,n.value}return{canUndo:l,canRedo:c,current:h,retainedBytes:p,reset:u,record:N,move:V}}function xa(t){const i=e.shallowRef(null),o=e.ref(!1);let a,n=0;function l(p){a?.(p),a=void 0,i.value=null}function c(){n++,l(!1),o.value=!1}async function h(p){c();const u=n,y=t();o.value=!0;try{const w=await new Promise((N,V)=>{if(a=N,!y){i.value=p;return}Promise.resolve().then(()=>n===u?y(p):!1).then(f=>{n===u&&l(f===!0)},f=>{n===u&&(a=void 0,i.value=null,V(f))})});return n===u&&w===!0}finally{n===u&&(o.value=!1)}}return e.onBeforeUnmount(c),{confirmation:i,pending:o,decide:l,request:h,cancel:c}}function Ca(t,i){const o=e.ref(G.parseReportTemplate(t.modelValue)),a=e.ref(G.serializeReportTemplate(o.value)),n=e.ref(G.serializeReportTemplate(o.value)),l=e.ref(""),c=e.ref(!1),h=e.computed(()=>({...ie,...t.messages})),p=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}}));Te.provideMachReportConfig({get defaults(){return p.value}});let u,y=0;const w=e.computed(()=>G.validateReportTemplateDocument(o.value)),N=e.computed(()=>{try{return G.serializeReportTemplate(o.value)!==a.value}catch{return!0}}),V=e.ref(n.value),f=e.computed(()=>n.value!==V.value),m=e.ref({}),E=e.ref(0),s=e.ref(0),v=e.computed(()=>Object.values(m.value).some(Boolean)),b=e.computed(()=>Object.keys(m.value).filter(H=>m.value[H]));function k(H,z){m.value={...m.value,[H]:z},E.value++}const x=e.computed(()=>N.value||n.value!==V.value||v.value),B=()=>JSON.stringify({document:o.value,json:n.value,appliedJson:V.value}),D=wa(B()),_=xa(()=>t.beforeDiscard),L=e.computed(()=>c.value||_.pending.value),W=()=>!t.readonly&&!L.value&&!f.value,Z=Sa(o,()=>w.value.ok,W,F),{selected:r,lists:T,activeList:P,headerAlignments:I,setColumn:q}=Z;e.watch(r,()=>Z.clearSelection());const S=e.computed(()=>w.value.ok?Te.createLocalFetcher({draft:{template:o.value.template,datasets:t.datasets??{},params:[]}}):void 0);function C(){y++,u?.abort(),u=void 0,c.value=!1}let M=0;async function R(H="replace",z){if(!x.value)return!0;const K=B(),le=E.value;try{return await _.request({reason:H,document:JSON.parse(JSON.stringify(o.value)),replacement:z?G.parseReportTemplate(z):void 0,pendingLocalChanges:!0})&&K===B()&&le===E.value}catch(j){return l.value=j instanceof Error?j.message:String(j),!1}}function $(H){C(),o.value=H,a.value=G.serializeReportTemplate(H),n.value=a.value,V.value=n.value,l.value="",r.value=0,Z.clearSelection(),m.value={},E.value++,s.value++,D.reset(B())}e.watch(()=>t.modelValue,async H=>{let z;try{z=G.parseReportTemplate(H)}catch(le){l.value=le instanceof Error?le.message:String(le);return}try{if(G.serializeReportTemplate(z)===G.serializeReportTemplate(o.value))return}catch{}const K=++M;if(C(),!await R("replace",z)){K===M&&w.value.ok&&i("update:modelValue",G.parseReportTemplate(o.value));return}K===M&&$(z)}),e.onBeforeUnmount(()=>{M++,C()});function F(){_.cancel(),l.value="",w.value.ok&&(n.value=G.serializeReportTemplate(o.value),V.value=n.value,i("update:modelValue",G.parseReportTemplate(o.value))),D.record(B())}function X(H){if(!W())return!1;try{const z=G.parseReportTemplate(o.value);H(z);const K=G.validateReportTemplateDocument(z);if(!K.ok)throw new Error(K.errors.map(le=>`${le.path}: ${le.message}`).join(`
2
- `));return o.value=z,F(),!0}catch(z){return l.value=z instanceof Error?z.message:String(z),!1}}async function U(H){if(!W())return!1;try{const z=G.parseReportTemplate(H);return!await R("replace",z)||!W()?!1:(o.value=z,r.value=0,Z.clearSelection(),F(),!0)}catch(z){return l.value=z instanceof Error?z.message:String(z),!1}}function ae(H){W()&&(o.value.name=H,F())}function ee(H){W()&&(o.value.description=H,F())}function te(){if(!(t.readonly||L.value))try{const H=G.parseReportTemplate(n.value);if(H.id!==o.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(H.revision!==o.value.revision)throw new Error("修订号由保存服务管理,不能在 JSON 中修改");o.value=H,r.value=0,Z.clearSelection(),F()}catch(H){l.value=H instanceof Error?H.message:String(H)}}async function J(){L.value||t.readonly||!await R("reset")||($(G.parseReportTemplate(a.value)),i("update:modelValue",G.parseReportTemplate(o.value)))}function ne(H){if(L.value||t.readonly)return;D.record(B());const z=D.move(H);if(!z)return;_.cancel();const K=JSON.parse(z);o.value=K.document,n.value=K.json,V.value=K.appliedJson,l.value="",r.value=0,Z.clearSelection(),w.value.ok&&i("update:modelValue",G.parseReportTemplate(o.value))}async function xe(){if(!t.save||!W()||!w.value.ok)return;if(v.value){l.value=h.value.toolsPending;return}const H=++y;u=new AbortController,c.value=!0,l.value="";const z=G.parseReportTemplate(o.value);try{const K=G.parseReportTemplate(await t.save(z,{expectedRevision:z.revision,signal:u.signal}));if(H!==y)return;if(K.id!==z.id)throw new Error("保存服务返回了其他模板的文档");o.value=K,a.value=G.serializeReportTemplate(K),n.value=a.value,V.value=n.value,D.reset(B()),i("saved",G.parseReportTemplate(K)),i("update:modelValue",G.parseReportTemplate(K))}catch(K){H===y&&(l.value=K instanceof Error?K.message:String(K))}finally{H===y&&(c.value=!1,u=void 0)}}const he=e.computed(()=>D.canUndo.value||B()!==D.current.value),Ce=e.computed(()=>D.canRedo.value&&B()===D.current.value);return{...Z,editingReadonly:e.computed(()=>t.readonly===!0),transaction:X,replaceDocument:U,originalDocument:e.computed(()=>G.parseReportTemplate(a.value)),canUndo:he,canRedo:Ce,undo:()=>ne(-1),redo:()=>ne(1),pendingLocalChanges:x,setToolPending:k,isToolPending:H=>m.value[H]===!0,toolEpoch:s,toolPending:v,pendingTools:b,jsonPending:f,blocked:L,confirmation:_.confirmation,decideDiscard:_.decide,guardChanges:R,draft:o,json:n,selected:r,error:l,saving:c,dirty:N,validation:w,lists:T,activeList:P,headerAlignments:I,previewOptions:p,fetcher:S,messages:h,setName:ae,setDescription:ee,setColumn:q,applyJson:te,reset:J,save:xe}}function Ma(t,i){const o=e.ref(i.value?"fields":"component"),a=()=>i.value?.columns.length?0:-1,n=e.ref(a()),l=e.computed(()=>{const p=i.value?.columns[n.value];return p?{column:p,index:n.value}:void 0});e.watch(t,()=>{n.value=a()}),e.watch(i,p=>{p?.columns[n.value]||(n.value=a()),!p&&o.value==="fields"&&(o.value="component")});function c(p){i.value?.columns[p]&&(n.value=p)}function h(p){const u=i.value?.columns.length??0;u&&(n.value=Math.max(0,Math.min(u-1,n.value+p)))}return{section:o,activeIndex:n,activeColumn:l,activate:c,stepColumn:h}}const Ba=["aria-label","aria-busy"],Da={class:"mr-designer-bar"},$a={class:"mr-designer-heading"},_a=["aria-label"],Ta=["id","aria-selected","aria-controls","tabindex","onClick"],Ia={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},Ra=["aria-label"],La=["aria-pressed"],Pa=["aria-pressed"],Aa={class:"mr-designer-actions"},Fa={class:"mr-designer-history"},Ha=["aria-label","title","disabled"],Ga=["aria-label","title","disabled"],za=["disabled"],Oa=["title","aria-describedby","disabled"],ja=["id"],qa=["id"],Wa=["aria-label","onClick"],Ua=["aria-label"],Ka=["aria-label"],Ja=["id","aria-pressed","aria-describedby","onClick"],Ya={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},Xa={class:"mr-designer-tool-content"},Za={key:3,class:"mr-designer-rule-workspace"},Qa={key:0},el=["value"],tl=["value"],nl={key:2,class:"mr-designer-note"},ol={key:1,class:"mr-designer-inspector"},al=["id","aria-labelledby"],ll={key:0,class:"mr-designer-flow-note"},rl={key:0,class:"mr-designer-area"},il=["value"],sl=["value"],dl={class:"mr-designer-current"},cl=["aria-expanded","aria-controls"],ul={class:"mr-designer-current-name"},ml={class:"mr-designer-directory-entry"},pl={class:"mr-designer-field-position"},gl=["aria-label"],vl=["aria-label","title","disabled"],fl=["aria-label","title","disabled"],hl=["disabled","aria-label"],yl={class:"mr-designer-property-group"},bl=["value"],kl=["value","list"],El=["id"],Nl=["value"],Sl={class:"mr-designer-property-group"},Vl={class:"mr-designer-format-pair"},wl={class:"mr-designer-stacked"},xl=["value","disabled"],Cl={class:"mr-designer-stacked"},Ml=["value"],Bl={value:"identifier"},Dl={value:"dimension"},$l={value:"measure"},_l={value:"date"},Tl={value:"text"},Il={class:"mr-designer-control-row"},Rl={class:"mr-designer-control-row"},Ll={class:"mr-designer-toggle"},Pl=["checked"],Al={class:"mr-designer-column-structure"},Fl=["aria-label","title","disabled"],Hl=["aria-label","title","disabled"],Gl=["checked","disabled"],zl=["id","aria-label"],Ol={class:"mr-designer-directory-heading"},jl=["aria-label"],ql={class:"mr-designer-search"},Wl=["aria-label","placeholder"],Ul=["aria-label","title"],Kl={class:"mr-designer-column-tools"},Jl=["disabled"],Yl={key:1,role:"status"},Xl={key:2},Zl=["aria-label"],Ql=["aria-label","checked","disabled","onChange"],er=["data-column-index","aria-pressed","tabindex","onClick"],tr={class:"mr-designer-column-number"},nr={class:"mr-designer-column-name"},or={key:0,role:"status",class:"mr-designer-empty"},ar={key:0,class:"mr-designer-batch"},lr=["aria-label","disabled"],rr={value:""},ir={value:"auto"},sr={value:"left"},dr={value:"center"},cr={value:"right"},ur={value:"justify"},mr=["aria-label","disabled"],pr={value:""},gr={value:"left"},vr={value:"center"},fr={value:"right"},hr={value:"justify"},yr={key:2,role:"status",class:"mr-designer-empty"},br={class:"mr-designer-object-tools"},kr=["aria-label","disabled"],Er={value:""},Nr={value:"text"},Sr=["disabled"],Vr={value:"image"},wr={value:"rect"},xr={value:"qrcode"},Cr={value:"barcode"},Mr=["title","aria-label","disabled"],Br=["title","aria-label","disabled"],Dr={key:0},$r=["value"],_r={class:"mr-designer-stacked"},Tr=["value"],Ir={value:-1,disabled:""},Rr=["value"],Lr={key:1,class:"mr-designer-arrange"},Pr=["disabled"],Ar=["aria-label","disabled"],Fr={value:""},Hr={value:"left"},Gr={value:"center"},zr={value:"right"},Or={value:"top"},jr={value:"middle"},qr={value:"bottom"},Wr=["disabled"],Ur=["disabled"],Kr={key:0},Jr={class:"mr-designer-layer-tools"},Yr=["disabled"],Xr=["disabled"],Zr={key:3,class:"mr-designer-empty"},Qr={class:"mr-designer-stacked"},ei=["value","disabled"],ti={class:"mr-designer-stacked"},ni=["value","disabled"],oi={class:"mr-designer-technical"},ai={class:"mr-designer-identity"},li={class:"mr-designer-stacked mr-designer-json-label"},ri=["aria-label","disabled"],ii=["disabled"],si={key:5,role:"status",class:"mr-designer-note mr-designer-pending"},di=["aria-label"],ci={key:0,role:"alert",class:"mr-designer-error"},ui={key:1,role:"alert",class:"mr-designer-error"},mi={key:4,class:"mr-designer-note mr-designer-invalid"},pi=e.defineComponent({__name:"ReportTemplateEditor",props:{modelValue:{},datasets:{},dataSchemas:{},bindingDatasets:{},bindingSession:{},readonly:{type:Boolean},messages:{},preview:{},beforeDiscard:{type:Function},save:{type:Function}},emits:["update:modelValue","saved","excel-bound"],setup(t,{expose:i,emit:o}){const a=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-y0mT-AHR.cjs"))),n=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-MBBC7lUE.cjs"))),l=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-ChRzNQuF.cjs"))),c=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-DwtOcLue.cjs"))),h=t,p=o,u=Ca(h,(A,g)=>{p(A==="saved"?"saved":"update:modelValue",g)}),{draft:y,json:w,selected:N,error:V,saving:f,pendingLocalChanges:m,jsonPending:E,blocked:s,confirmation:v,canUndo:b,canRedo:k,validation:x,lists:B,activeList:D,visibleColumns:_,query:L,selectedColumns:W,fetcher:Z,messages:r}=u;function T(A){return u.transaction(g=>{g.template.params=A})}const P=Ma(N,D),{section:I,activeIndex:q,activeColumn:S}=P,C=`mr-designer-${e.getCurrentInstance()?.uid??0}`,M=e.computed(()=>[...B.value.length?["fields"]:[],"component","template","tools","advanced"]),R=ka(u,P,()=>h.dataSchemas),{mode:$,setMode:F,canvasSelection:X,canvasPage:U,canvasActive:ae,tool:ee,visitedTools:te,editDisabled:J,dataSchema:ne,chooseCanvas:xe,insertComponent:he,patchCanvas:Ce,changeList:H,moveColumn:z,headerCommand:K,locateReview:le,canvas:j}=R,oe=e.computed(()=>!!y.value.template.pages[U.value]?.flow),qe=e.computed(()=>h.dataSchemas?.[y.value.template.repeat?.dataset??""]);function We(A){let g=U.value;u.transaction(d=>{g=vt(d,U.value,A)})&&(A.type!=="patch"&&(j.clearLocks(),j.selection.value=void 0,j.selections.value=[]),U.value=g)}const ve=e.computed(()=>!!y.value.template.pages[B.value[N.value]?.pageIndex??-1]?.flow);function Ue(){I.value="tools",ee.value="excel"}const me=e.computed(()=>{const A=["excel","rules","params"].filter(g=>u.pendingTools.value.includes(g)).map(g=>({target:g,label:r.value[`${g}Tool`]}));return E.value&&A.push({target:"json",label:r.value.json}),A}),ye=e.computed(()=>f.value?r.value.saving:h.readonly?r.value.saveReadonly:s.value?r.value.saveConfirmation:me.value.length?me.value.map(A=>`${A.label} · ${r.value.unapplied}`).join(";"):x.value.ok?m.value?"":r.value.saveUnchanged:r.value.saveInvalid);async function Ke(A){A==="json"?I.value="advanced":(I.value="tools",ee.value=A),await e.nextTick();const g=A==="json"?`#${C}-panel-advanced textarea`:`#${C}-tool-${A}`;document.querySelector(g)?.focus({preventScroll:!0})}const Je=e.computed(()=>f.value?r.value.saving:h.readonly?r.value.readonly:m.value?r.value.dirty:r.value.ready),Le=e.ref(null),Me=e.ref(null),Q=Na(P,I,_),{open:Pe,cursor:Ye,trigger:Xe,panel:Ze,search:Qe,list:et}=Q;e.watch(I,async()=>{await e.nextTick(),Me.value&&(Me.value.scrollTop=0)});const Ae=e.computed(()=>({auto:r.value.auto,left:r.value.left,center:r.value.center,right:r.value.right,justify:r.value.justify}));let be=null;e.watch(v,async A=>{A?(be=document.activeElement,await e.nextTick(),Le.value?.focus()):(await e.nextTick(),be?.isConnected&&be.focus(),be=null)}),i({get pendingLocalChanges(){return m.value},get saving(){return f.value},get blocked(){return s.value},guardChanges:u.guardChanges,reset:u.reset,save:u.save});async function tt(A){const g={...A.document,id:y.value.id};if(y.value.revision===void 0?delete g.revision:g.revision=y.value.revision,!await u.replaceDocument(g))return!1;const d=G.parseReportTemplate(u.draft.value);return p("excel-bound",{...A,document:d,session:{...A.session,identity:{id:d.id,name:d.name}}}),!0}async function Be(A){const g=B.value.findIndex(d=>d.pageIndex===A.pageIndex&&d.componentIndex===A.componentIndex);g>=0&&g!==N.value&&u.isToolPending("rules")&&!await u.guardChanges()||xe(A)}async function Fe(A){const g=A.target,d=Number(g.value);if(u.isToolPending("rules")&&!await u.guardChanges()){g.value=String(N.value);return}N.value=d}function se(A){return A.target.value}function De(A){return A.target.checked}function He(A,g){const d=A.target;u.alignColumns(g,d.value),d.value=""}async function nt(A){const d={ArrowRight:1,ArrowLeft:-1,Home:-M.value.length,End:M.value.length}[A.key];if(d===void 0)return;A.preventDefault();const O=M.value.indexOf(I.value),pe=A.key==="Home"?0:A.key==="End"?M.value.length-1:(O+d+M.value.length)%M.value.length;I.value=M.value[pe];const ot=A.currentTarget.parentElement;await e.nextTick(),ot?.querySelector(`#${C}-tab-${I.value}`)?.focus()}return(A,g)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(r).title,"aria-busy":e.unref(f)},[e.createElementVNode("header",Da,[e.createElementVNode("div",$a,[e.createVNode(Y._sfc_main,{name:"columns",size:15}),e.createElementVNode("strong",null,e.toDisplayString(e.unref(r).heading),1),e.createElementVNode("span",{class:e.normalizeClass({"mr-designer-dirty":e.unref(m)})},e.toDisplayString(Je.value),3)]),e.createElementVNode("nav",{class:"mr-designer-tabs",role:"tablist","aria-label":e.unref(r).sectionsLabel},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value,d=>(e.openBlock(),e.createElementBlock("button",{id:`${C}-tab-${d}`,key:d,type:"button",role:"tab","aria-selected":e.unref(I)===d,"aria-controls":`${C}-panel-${d}`,tabindex:e.unref(I)===d?0:-1,onClick:O=>I.value=d,onKeydown:nt},[e.createTextVNode(e.toDisplayString(e.unref(r)[`${d}Section`])+" ",1),d==="tools"&&e.unref(u).toolPending.value||d==="advanced"&&e.unref(E)?(e.openBlock(),e.createElementBlock("span",Ia)):e.createCommentVNode("",!0)],40,Ta))),128))],8,_a),e.createElementVNode("div",{class:"mr-designer-mode",role:"group","aria-label":e.unref(r).design},[e.createElementVNode("button",{type:"button","aria-pressed":e.unref($)==="design",onClick:g[0]||(g[0]=d=>e.unref(F)("design"))},e.toDisplayString(e.unref(r).design),9,La),e.createElementVNode("button",{type:"button","aria-pressed":e.unref($)==="preview",onClick:g[1]||(g[1]=d=>e.unref(F)("preview"))},e.toDisplayString(e.unref(r).preview),9,Pa)],8,Ra),e.createElementVNode("div",Aa,[e.createElementVNode("div",Fa,[e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).undo,title:e.unref(r).undo,disabled:t.readonly||e.unref(s)||!e.unref(b),onClick:g[2]||(g[2]=d=>{e.unref(j).clearLocks(),e.unref(u).undo()})},[...g[56]||(g[56]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M4 10h10a6 6 0 0 1 0 12M4 10l5-5M4 10l5 5"})],-1)])],8,Ha),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).redo,title:e.unref(r).redo,disabled:t.readonly||e.unref(s)||!e.unref(k),onClick:g[3]||(g[3]=d=>{e.unref(j).clearLocks(),e.unref(u).redo()})},[...g[57]||(g[57]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M20 10H10a6 6 0 0 0 0 12m10-12-5-5m5 5-5 5"})],-1)])],8,Ga)]),e.createElementVNode("button",{type:"button",class:"mr-designer-reset",disabled:t.readonly||e.unref(s)||!e.unref(m),onClick:g[4]||(g[4]=(...d)=>e.unref(u).reset&&e.unref(u).reset(...d))},e.toDisplayString(e.unref(r).reset),9,za),t.save?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-save",title:ye.value||e.unref(r).save,"aria-describedby":me.value.length?`${C}-pending`:ye.value?`${C}-save-reason`:void 0,disabled:t.readonly||e.unref(s)||e.unref(E)||e.unref(u).toolPending.value||!e.unref(x).ok||!e.unref(m),onClick:g[5]||(g[5]=(...d)=>e.unref(u).save&&e.unref(u).save(...d))},[e.createVNode(Y._sfc_main,{name:"file",size:13}),e.createTextVNode(e.toDisplayString(e.unref(f)?e.unref(r).saving:e.unref(r).save),1)],8,Oa)):e.createCommentVNode("",!0),t.save&&ye.value&&!me.value.length?(e.openBlock(),e.createElementBlock("span",{key:1,id:`${C}-save-reason`,class:"mr-designer-save-reason"},e.toDisplayString(ye.value),9,ja)):e.createCommentVNode("",!0)])]),me.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,id:`${C}-pending`,class:"mr-designer-pending",role:"status"},[e.createElementVNode("span",null,e.toDisplayString(e.unref(r).pendingToolsLabel),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(me.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d.target,type:"button","aria-label":`${d.label} · ${e.unref(r).unapplied} · ${e.unref(r).returnToConfiguration}`,onClick:O=>Ke(d.target)},[e.createTextVNode(e.toDisplayString(d.label),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(r).unapplied)+" ↗",1)],8,Wa))),128)),e.createElementVNode("small",null,e.toDisplayString(e.unref(r).pendingToolsHint),1)],8,qa)):e.createCommentVNode("",!0),e.unref(v)?(e.openBlock(),e.createElementBlock("div",{key:1,role:"alertdialog","aria-label":e.unref(r).discardTitle,class:"mr-designer-confirm",onKeydown:g[8]||(g[8]=e.withKeys(e.withModifiers(d=>e.unref(u).decideDiscard(!1),["prevent","stop"]),["esc"]))},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(r).discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(r).discardDescription),1)]),e.createElementVNode("div",null,[e.createElementVNode("button",{ref_key:"keepButton",ref:Le,type:"button",onClick:g[6]||(g[6]=d=>e.unref(u).decideDiscard(!1))},e.toDisplayString(e.unref(r).keepEditing),513),e.createElementVNode("button",{type:"button",onClick:g[7]||(g[7]=d=>e.unref(u).decideDiscard(!0))},e.toDisplayString(e.unref(r).discard),1)])],40,Ua)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["mr-designer-body",{"is-tools":e.unref(I)==="tools"}])},[e.unref(te).size?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:e.unref(u).toolEpoch.value,class:"mr-designer-tools"},[e.createElementVNode("nav",{class:"mr-designer-tool-tabs","aria-label":e.unref(r).toolsSection},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["excel","rules","params","review"],d=>e.createElementVNode("button",{key:d,id:`${C}-tool-${d}`,type:"button","aria-pressed":e.unref(ee)===d,"aria-describedby":e.unref(u).isToolPending(d)?`${C}-pending`:void 0,onClick:O=>ee.value=d},[e.createTextVNode(e.toDisplayString(e.unref(r)[`${d}Tool`])+" ",1),e.unref(u).isToolPending(d)?(e.openBlock(),e.createElementBlock("span",Ya)):e.createCommentVNode("",!0)],8,Ja)),64)),e.createElementVNode("span",null,e.toDisplayString(e.unref(r).toolsDescription),1)],8,Ka),e.createElementVNode("div",Xa,[e.unref(te).has("params")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(n),{key:0,document:e.unref(y),readonly:e.unref(J),accept:T,onDirty:g[9]||(g[9]=d=>e.unref(u).setToolPending("params",d))},null,8,["document","readonly"])),[[e.vShow,e.unref(ee)==="params"]]):e.createCommentVNode("",!0),e.unref(te).has("excel")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(a),{key:1,datasets:t.bindingDatasets??[],session:t.bindingSession,identity:{id:e.unref(y).id,name:e.unref(y).name},"lock-id":"",readonly:e.unref(J),accept:tt,onDirty:g[10]||(g[10]=d=>e.unref(u).setToolPending("excel",d))},null,8,["datasets","session","identity","readonly"])),[[e.vShow,e.unref(ee)==="excel"]]):e.createCommentVNode("",!0),e.unref(te).has("review")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(c),{key:2,document:e.unref(y),previous:e.unref(u).originalDocument.value,datasets:t.datasets,"data-schemas":t.dataSchemas,onLocate:e.unref(le)},null,8,["document","previous","datasets","data-schemas","onLocate"])),[[e.vShow,e.unref(ee)==="review"]]):e.createCommentVNode("",!0),e.unref(te).has("rules")?e.withDirectives((e.openBlock(),e.createElementBlock("div",Za,[e.unref(B).length>1?(e.openBlock(),e.createElementBlock("label",Qa,[e.createTextVNode(e.toDisplayString(e.unref(r).area),1),e.createElementVNode("select",{value:e.unref(N),onChange:Fe},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(d,O)=>(e.openBlock(),e.createElementBlock("option",{key:O,value:O},e.toDisplayString(d.component.title||d.component.dataset),9,tl))),128))],40,el)])):e.createCommentVNode("",!0),e.unref(D)?(e.openBlock(),e.createBlock(e.unref(l),{key:1,list:e.unref(D),datasets:t.datasets,"dataset-schema":e.unref(ne),"dataset-schemas":t.dataSchemas,readonly:e.unref(J),onChange:e.unref(H),onDirty:g[11]||(g[11]=d=>e.unref(u).setToolPending("rules",d))},null,8,["list","datasets","dataset-schema","dataset-schemas","readonly","onChange"])):(e.openBlock(),e.createElementBlock("p",nl,e.toDisplayString(e.unref(r).rulesNeedList),1))],512)),[[e.vShow,e.unref(ee)==="rules"]]):e.createCommentVNode("",!0)])])),[[e.vShow,e.unref(I)==="tools"]]):e.createCommentVNode("",!0),e.unref(I)!=="tools"?(e.openBlock(),e.createElementBlock("aside",ol,[e.createElementVNode("div",{ref_key:"inspectorPanel",ref:Me,id:`${C}-panel-${e.unref(I)}`,class:e.normalizeClass(["mr-designer-panel",{"is-advanced":e.unref(I)==="advanced"}]),role:"tabpanel","aria-labelledby":`${C}-tab-${e.unref(I)}`},[oe.value||ve.value?(e.openBlock(),e.createElementBlock("div",ll,[e.createElementVNode("small",null,e.toDisplayString(e.unref(r).flowLayout),1),e.createElementVNode("button",{type:"button",onClick:Ue},e.toDisplayString(e.unref(r).excelTool)+" ↗",1)])):e.createCommentVNode("",!0),e.unref(I)==="fields"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.unref(B).length>1?(e.openBlock(),e.createElementBlock("label",rl,[e.createTextVNode(e.toDisplayString(e.unref(r).area),1),e.createElementVNode("select",{value:e.unref(N),onChange:Fe},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(d,O)=>(e.openBlock(),e.createElementBlock("option",{key:O,value:O},e.toDisplayString(d.pageIndex+1)+" "+e.toDisplayString(e.unref(r).page)+" · "+e.toDisplayString(d.component.title||d.component.dataset),9,sl))),128))],40,il)])):e.createCommentVNode("",!0),e.unref(D)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",dl,[e.createElementVNode("button",{ref_key:"directoryTrigger",ref:Xe,type:"button",class:"mr-designer-field-trigger","aria-expanded":e.unref(Pe),"aria-controls":`${C}-directory`,"aria-haspopup":"dialog",onClick:g[12]||(g[12]=(...d)=>e.unref(Q).toggle&&e.unref(Q).toggle(...d)),onKeydown:g[13]||(g[13]=e.withKeys((...d)=>e.unref(Q).escape&&e.unref(Q).escape(...d),["esc"]))},[e.createElementVNode("span",ul,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(S)?.column.header||e.unref(r).noColumns),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(S)?.column.field||"—"),1)]),e.createElementVNode("span",ml,[e.createTextVNode(e.toDisplayString(e.unref(r).columnDirectory)+" ",1),e.createElementVNode("b",null,e.toDisplayString(e.unref(D).columns.length),1),e.createVNode(Y._sfc_main,{name:"chevron-down",size:13})])],40,cl),e.createElementVNode("div",pl,[e.createElementVNode("span",{"aria-label":e.unref(r).fieldPosition},[e.createTextVNode(e.toDisplayString(e.unref(q)>=0?e.unref(q)+1:0),1),g[58]||(g[58]=e.createElementVNode("i",null,"/",-1)),e.createTextVNode(e.toDisplayString(e.unref(D).columns.length),1)],8,gl),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).previousColumn,title:e.unref(r).previousColumn,disabled:e.unref(q)<=0,onClick:g[14]||(g[14]=d=>e.unref(P).stepColumn(-1))},[e.createVNode(Y._sfc_main,{name:"chevron-left",size:14})],8,vl),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).nextColumn,title:e.unref(r).nextColumn,disabled:e.unref(q)>=e.unref(D).columns.length-1,onClick:g[15]||(g[15]=d=>e.unref(P).stepColumn(1))},[e.createVNode(Y._sfc_main,{name:"chevron-right",size:14})],8,fl)])]),e.unref(S)?(e.openBlock(),e.createElementBlock("fieldset",{key:0,class:"mr-designer-properties",disabled:t.readonly||e.unref(s)||e.unref(E),"aria-label":e.unref(r).columnProperties},[e.createElementVNode("div",yl,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(r).contentGroup),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(r).header),1),e.createElementVNode("input",{value:e.unref(S).column.header,onInput:g[16]||(g[16]=d=>e.unref(u).setColumn(e.unref(S).index,"header",se(d)))},null,40,bl)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(r).field),1),e.createElementVNode("input",{value:e.unref(S).column.field,list:e.unref(ne)?`${C}-fields`:void 0,onChange:g[17]||(g[17]=d=>e.unref(u).setColumn(e.unref(S).index,"field",se(d)))},null,40,kl)]),e.unref(ne)?(e.openBlock(),e.createElementBlock("datalist",{key:0,id:`${C}-fields`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ne).fields,d=>(e.openBlock(),e.createElementBlock("option",{key:d.field,value:d.field},e.toDisplayString(d.label)+" · "+e.toDisplayString(d.type)+" "+e.toDisplayString(d.unit),9,Nl))),128))],8,El)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Sl,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(r).formatGroup),1),e.createElementVNode("div",Vl,[e.createElementVNode("label",wl,[e.createTextVNode(e.toDisplayString(e.unref(r).width),1),e.createElementVNode("input",{type:"number",min:"0.1",step:"0.5",value:e.unref(S).column.widthMm,disabled:ve.value,onChange:g[18]||(g[18]=d=>e.unref(u).setColumn(e.unref(S).index,"widthMm",se(d)))},null,40,xl)]),e.createElementVNode("label",Cl,[e.createTextVNode(e.toDisplayString(e.unref(r).semantic),1),e.createElementVNode("select",{value:e.unref(S).column.semanticRole||"text",onChange:g[19]||(g[19]=d=>e.unref(u).setColumn(e.unref(S).index,"semanticRole",se(d)))},[e.createElementVNode("option",Bl,e.toDisplayString(e.unref(r).identifier),1),e.createElementVNode("option",Dl,e.toDisplayString(e.unref(r).dimension),1),e.createElementVNode("option",$l,e.toDisplayString(e.unref(r).measure),1),e.createElementVNode("option",_l,e.toDisplayString(e.unref(r).date),1),e.createElementVNode("option",Tl,e.toDisplayString(e.unref(r).text),1)],40,Ml)])]),e.createElementVNode("div",Il,[e.createElementVNode("span",null,e.toDisplayString(e.unref(r).bodyAlign),1),e.createVNode(Re,{"model-value":e.unref(S).column.align??e.unref(S).column.style?.align??e.unref(D).align??"left",label:e.unref(r).bodyAlign,labels:Ae.value,"auto-label":e.unref(r).autoShort,"allow-auto":"","onUpdate:modelValue":g[20]||(g[20]=d=>e.unref(u).setColumn(e.unref(S).index,"align",d))},null,8,["model-value","label","labels","auto-label"])]),e.createElementVNode("div",Rl,[e.createElementVNode("span",null,e.toDisplayString(e.unref(r).headerAlign),1),e.createVNode(Re,{"model-value":e.unref(u).headerAlignments.value[e.unref(S).index]||"left",label:e.unref(r).headerAlign,labels:Ae.value,"auto-label":e.unref(r).autoShort,"onUpdate:modelValue":g[21]||(g[21]=d=>e.unref(u).setColumn(e.unref(S).index,"headerAlign",d))},null,8,["model-value","label","labels","auto-label"])])]),e.createElementVNode("label",Ll,[e.createTextVNode(e.toDisplayString(e.unref(r).editable),1),e.createElementVNode("input",{type:"checkbox",role:"switch",checked:e.unref(S).column.editable===!0,onChange:g[22]||(g[22]=d=>e.unref(u).setColumn(e.unref(S).index,"editable",De(d)))},null,40,Pl)]),e.createElementVNode("div",Al,[e.createElementVNode("span",null,e.toDisplayString(e.unref(r).columnOrder),1),e.createElementVNode("button",{type:"button","aria-label":e.unref(r).moveColumnLeft,title:e.unref(r).moveColumnLeft,disabled:ve.value||e.unref(q)<=0,onClick:g[23]||(g[23]=d=>e.unref(z)(-1))},[e.createVNode(Y._sfc_main,{name:"chevron-left",size:13})],8,Fl),e.createElementVNode("button",{type:"button","aria-label":e.unref(r).moveColumnRight,title:e.unref(r).moveColumnRight,disabled:ve.value||e.unref(q)>=e.unref(D).columns.length-1,onClick:g[24]||(g[24]=d=>e.unref(z)(1))},[e.createVNode(Y._sfc_main,{name:"chevron-right",size:13})],8,Hl),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(r).columnVisible),1),e.createElementVNode("input",{type:"checkbox",checked:e.unref(S).column.hidden!==!0,disabled:ve.value||e.unref(S).column.hidden!==!0&&e.unref(D).columns.filter(d=>!d.hidden).length===1,onChange:g[25]||(g[25]=d=>e.unref(u).setColumn(e.unref(S).index,"hidden",!De(d)))},null,40,Gl)])])],8,hl)):e.createCommentVNode("",!0),e.unref(Pe)?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${C}-directory`,ref_key:"directoryPanel",ref:Ze,role:"dialog","aria-label":e.unref(r).columnDirectory,class:"mr-designer-directory",onKeydown:g[35]||(g[35]=e.withKeys((...d)=>e.unref(Q).escape&&e.unref(Q).escape(...d),["esc"])),onFocusout:g[36]||(g[36]=(...d)=>e.unref(Q).leave&&e.unref(Q).leave(...d))},[e.createElementVNode("div",Ol,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(e.unref(r).columnDirectory)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref(D).columns.length),1)]),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).closeDirectory,onClick:g[26]||(g[26]=d=>e.unref(Q).close(!0))},[e.createVNode(Y._sfc_main,{name:"close",size:15})],8,jl)]),e.createElementVNode("div",ql,[e.createVNode(Y._sfc_main,{name:"search",size:14}),e.withDirectives(e.createElementVNode("input",{ref_key:"directorySearch",ref:Qe,"onUpdate:modelValue":g[27]||(g[27]=d=>e.isRef(L)?L.value=d:null),type:"search","aria-label":e.unref(r).columnsSearch,placeholder:e.unref(r).columnsSearch,onKeydown:g[28]||(g[28]=(...d)=>e.unref(Q).searchKeydown&&e.unref(Q).searchKeydown(...d))},null,40,Wl),[[e.vModelText,e.unref(L)]]),e.unref(L)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).clearSearch,title:e.unref(r).clearSearch,onClick:g[29]||(g[29]=d=>L.value="")},[e.createVNode(Y._sfc_main,{name:"close",size:13})],8,Ul)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Kl,[e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(s)||e.unref(E)||!e.unref(_).length,onClick:g[30]||(g[30]=d=>e.unref(u).selectVisible(!0))},e.toDisplayString(e.unref(r).selectVisible),9,Jl),e.unref(W).length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:g[31]||(g[31]=(...d)=>e.unref(u).clearSelection&&e.unref(u).clearSelection(...d))},e.toDisplayString(e.unref(r).clearSelection),1)):e.createCommentVNode("",!0),e.unref(W).length?(e.openBlock(),e.createElementBlock("span",Yl,e.toDisplayString(e.unref(r).columnsSelected)+" "+e.toDisplayString(e.unref(W).length),1)):(e.openBlock(),e.createElementBlock("span",Xl,e.toDisplayString(e.unref(_).length)+" / "+e.toDisplayString(e.unref(D).columns.length),1))]),e.createElementVNode("div",{ref_key:"columnList",ref:et,class:"mr-designer-column-list","aria-label":e.unref(r).columnDirectory,role:"group"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(_),({column:d,index:O})=>(e.openBlock(),e.createElementBlock("div",{key:O,class:e.normalizeClass(["mr-designer-column-row",{"is-active":e.unref(q)===O}])},[e.createElementVNode("input",{type:"checkbox","aria-label":`${e.unref(r).selectColumn} ${d.header}`,checked:e.unref(W).includes(O),disabled:t.readonly||e.unref(s)||e.unref(E),onChange:pe=>e.unref(u).toggleColumn(O,De(pe))},null,40,Ql),e.createElementVNode("button",{type:"button","data-column-index":O,"aria-pressed":e.unref(q)===O,tabindex:e.unref(Ye)===O?0:-1,onClick:pe=>e.unref(Q).choose(O),onKeydown:g[32]||(g[32]=(...pe)=>e.unref(Q).navigate&&e.unref(Q).navigate(...pe))},[e.createElementVNode("span",tr,e.toDisplayString(O+1),1),e.createElementVNode("span",nr,[e.createElementVNode("strong",null,e.toDisplayString(d.header),1),e.createElementVNode("small",null,e.toDisplayString(d.field),1)]),e.unref(q)===O?(e.openBlock(),e.createBlock(Y._sfc_main,{key:0,name:"chevron-right",size:13})):e.createCommentVNode("",!0)],40,er)],2))),128)),e.unref(_).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",or,[e.createVNode(Y._sfc_main,{name:"search",size:20}),e.createTextVNode(e.toDisplayString(e.unref(r).noColumns),1)]))],8,Zl),e.unref(W).length?(e.openBlock(),e.createElementBlock("div",ar,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(r).batchBody),1),e.createElementVNode("select",{"aria-label":e.unref(r).batchBody,disabled:t.readonly||e.unref(s)||e.unref(E),onChange:g[33]||(g[33]=d=>He(d,"align"))},[e.createElementVNode("option",rr,e.toDisplayString(e.unref(r).chooseAlignment),1),e.createElementVNode("option",ir,e.toDisplayString(e.unref(r).auto),1),e.createElementVNode("option",sr,e.toDisplayString(e.unref(r).left),1),e.createElementVNode("option",dr,e.toDisplayString(e.unref(r).center),1),e.createElementVNode("option",cr,e.toDisplayString(e.unref(r).right),1),e.createElementVNode("option",ur,e.toDisplayString(e.unref(r).justify),1)],40,lr)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(r).batchHeader),1),e.createElementVNode("select",{"aria-label":e.unref(r).batchHeader,disabled:t.readonly||e.unref(s)||e.unref(E),onChange:g[34]||(g[34]=d=>He(d,"headerAlign"))},[e.createElementVNode("option",pr,e.toDisplayString(e.unref(r).chooseAlignment),1),e.createElementVNode("option",gr,e.toDisplayString(e.unref(r).left),1),e.createElementVNode("option",vr,e.toDisplayString(e.unref(r).center),1),e.createElementVNode("option",fr,e.toDisplayString(e.unref(r).right),1),e.createElementVNode("option",hr,e.toDisplayString(e.unref(r).justify),1)],40,mr)])])):e.createCommentVNode("",!0)],40,zl)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",yr,e.toDisplayString(e.unref(r).noColumns),1))],64)):e.unref(I)==="component"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",br,[e.createElementVNode("select",{"aria-label":e.unref(r).insertComponent,disabled:e.unref(J)||oe.value,onChange:g[37]||(g[37]=(...d)=>e.unref(he)&&e.unref(he)(...d))},[e.createElementVNode("option",Er,e.toDisplayString(e.unref(r).insertComponent),1),e.createElementVNode("option",Nr,e.toDisplayString(e.unref(r).insertText),1),e.createElementVNode("option",{value:"list",disabled:!!e.unref(y).template.repeat},e.toDisplayString(e.unref(r).insertList),9,Sr),e.createElementVNode("option",Vr,e.toDisplayString(e.unref(r).insertImage),1),e.createElementVNode("option",wr,e.toDisplayString(e.unref(r).insertRect),1),e.createElementVNode("option",xr,e.toDisplayString(e.unref(r).insertQrcode),1),e.createElementVNode("option",Cr,e.toDisplayString(e.unref(r).insertBarcode),1)],40,kr),e.createElementVNode("button",{type:"button",title:e.unref(r).duplicateComponent,"aria-label":e.unref(r).duplicateComponent,disabled:e.unref(J)||oe.value||!e.unref(ae),onClick:g[38]||(g[38]=(...d)=>e.unref(j).duplicate&&e.unref(j).duplicate(...d))}," + ",8,Mr),e.createElementVNode("button",{type:"button",title:e.unref(r).removeComponent,"aria-label":e.unref(r).removeComponent,disabled:e.unref(J)||oe.value||!e.unref(ae),onClick:g[39]||(g[39]=(...d)=>e.unref(j).remove&&e.unref(j).remove(...d))},[e.createVNode(Y._sfc_main,{name:"close",size:14})],8,Br)]),e.unref(y).template.pages.length>1?(e.openBlock(),e.createElementBlock("label",Dr,[e.createTextVNode(e.toDisplayString(e.unref(r).page),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":g[40]||(g[40]=d=>e.isRef(U)?U.value=d:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y).template.pages,(d,O)=>(e.openBlock(),e.createElementBlock("option",{key:O,value:O},e.toDisplayString(O+1),9,$r))),128))],512),[[e.vModelSelect,e.unref(U),void 0,{number:!0}]])])):e.createCommentVNode("",!0),e.createElementVNode("label",_r,[e.createTextVNode(e.toDisplayString(e.unref(r).components),1),e.createElementVNode("select",{value:e.unref(X)?.pageIndex===e.unref(U)?e.unref(X).componentIndex:-1,onChange:g[41]||(g[41]=d=>Be({pageIndex:e.unref(U),componentIndex:Number(se(d))}))},[e.createElementVNode("option",Ir,e.toDisplayString(e.unref(r).noComponent),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y).template.pages[e.unref(U)]?.components,(d,O)=>(e.openBlock(),e.createElementBlock("option",{key:O,value:O},e.toDisplayString(O+1)+" · "+e.toDisplayString(d.kind==="list"?d.title||d.dataset:d.text||d.kind),9,Rr))),128))],40,Tr)]),e.unref(j).selections.value.length?(e.openBlock(),e.createElementBlock("div",Lr,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(j).selections.value.length)+" "+e.toDisplayString(e.unref(r).component),1),e.createElementVNode("button",{type:"button",disabled:e.unref(J),onClick:g[42]||(g[42]=(...d)=>e.unref(j).toggleLock&&e.unref(j).toggleLock(...d))},e.toDisplayString(e.unref(j).allLocked.value?e.unref(r).unlockSelection:e.unref(r).lockSelection),9,Pr),e.createElementVNode("select",{"aria-label":e.unref(r).alignSelection,disabled:e.unref(J)||oe.value||e.unref(j).selections.value.length<2,onChange:g[43]||(g[43]=d=>{e.unref(j).align(se(d)),d.target.value=""})},[e.createElementVNode("option",Fr,e.toDisplayString(e.unref(r).alignSelection),1),e.createElementVNode("option",Hr,e.toDisplayString(e.unref(r).leftEdges),1),e.createElementVNode("option",Gr,e.toDisplayString(e.unref(r).centers),1),e.createElementVNode("option",zr,e.toDisplayString(e.unref(r).rightEdges),1),e.createElementVNode("option",Or,e.toDisplayString(e.unref(r).topEdges),1),e.createElementVNode("option",jr,e.toDisplayString(e.unref(r).middles),1),e.createElementVNode("option",qr,e.toDisplayString(e.unref(r).bottomEdges),1)],40,Ar),e.createElementVNode("button",{type:"button",disabled:e.unref(J)||oe.value||e.unref(j).selections.value.length<3,onClick:g[44]||(g[44]=d=>e.unref(j).distribute("horizontal"))},e.toDisplayString(e.unref(r).horizontalSpacing),9,Wr),e.createElementVNode("button",{type:"button",disabled:e.unref(J)||oe.value||e.unref(j).selections.value.length<3,onClick:g[45]||(g[45]=d=>e.unref(j).distribute("vertical"))},e.toDisplayString(e.unref(r).verticalSpacing),9,Ur),e.unref(j).allLocked.value?(e.openBlock(),e.createElementBlock("small",Kr,e.toDisplayString(e.unref(r).sessionLock),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.unref(ae)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",Jr,[e.createElementVNode("button",{type:"button",disabled:e.unref(J)||oe.value||e.unref(X)?.componentIndex===0,onClick:g[46]||(g[46]=d=>e.unref(j).reorder(-1))},e.toDisplayString(e.unref(r).backward),9,Yr),e.createElementVNode("button",{type:"button",disabled:e.unref(J)||oe.value||e.unref(X)?.componentIndex===(e.unref(y).template.pages[e.unref(U)]?.components.length??0)-1,onClick:g[47]||(g[47]=d=>e.unref(j).reorder(1))},e.toDisplayString(e.unref(r).forward),9,Xr)]),e.createVNode(No,{component:e.unref(ae),"geometry-disabled":oe.value,disabled:e.unref(J)||e.unref(j).locked(e.unref(X)),messages:e.unref(r),repeat:e.unref(y).template.repeat,schema:qe.value,onGeometry:e.unref(j).geometry,onPatch:e.unref(Ce)},null,8,["component","geometry-disabled","disabled","messages","repeat","schema","onGeometry","onPatch"]),e.unref(ae).kind==="list"?(e.openBlock(),e.createBlock(ha,{key:0,list:e.unref(ae),disabled:e.unref(J)||oe.value,messages:e.unref(r),onCommand:e.unref(K)},null,8,["list","disabled","messages","onCommand"])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",Zr,e.toDisplayString(e.unref(r).noComponent),1))],64)):e.unref(I)==="template"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(r).templateDetails),1),e.createElementVNode("label",Qr,[e.createTextVNode(e.toDisplayString(e.unref(r).name),1),e.createElementVNode("input",{value:e.unref(y).name,disabled:t.readonly||e.unref(s)||e.unref(E),onInput:g[48]||(g[48]=d=>e.unref(u).setName(se(d)))},null,40,ei)]),e.createElementVNode("label",ti,[e.createTextVNode(e.toDisplayString(e.unref(r).description),1),e.createElementVNode("textarea",{rows:"2",value:e.unref(y).description,disabled:t.readonly||e.unref(s)||e.unref(E),onInput:g[49]||(g[49]=d=>e.unref(u).setDescription(se(d)))},null,40,ni)]),e.createVNode(jo,{document:e.unref(y),"page-index":e.unref(U),disabled:e.unref(J),messages:e.unref(r),onSelect:g[50]||(g[50]=d=>U.value=d),onCommand:We,onLocate:g[51]||(g[51]=d=>{Be({pageIndex:e.unref(U),componentIndex:d}),e.unref(F)("design")})},null,8,["document","page-index","disabled","messages"]),e.createVNode(da,{document:e.unref(y),datasets:Object.keys(t.datasets??{}),schemas:t.dataSchemas,disabled:e.unref(J),messages:e.unref(r),onChange:g[52]||(g[52]=d=>{e.unref(u).transaction(O=>{d?O.template.repeat=d:delete O.template.repeat})})},null,8,["document","datasets","schemas","disabled","messages"]),e.createElementVNode("details",oi,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(r).technicalDetails),1),e.createElementVNode("dl",ai,[e.createElementVNode("dt",null,e.toDisplayString(e.unref(r).templateIdentity),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(y).id),1),e.createElementVNode("dt",null,e.toDisplayString(e.unref(r).templateRevision),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(y).revision||e.unref(r).unpublished),1)])])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(r).advancedTitle),1),e.createElementVNode("label",li,[e.createTextVNode(e.toDisplayString(e.unref(r).json),1),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":g[53]||(g[53]=d=>e.isRef(w)?w.value=d:null),class:"mr-designer-json","aria-label":e.unref(r).json,disabled:t.readonly||e.unref(s),spellcheck:"false"},null,8,ri),[[e.vModelText,e.unref(w)]])]),e.createElementVNode("button",{type:"button",class:"mr-designer-apply-json",disabled:t.readonly||e.unref(s),onClick:g[54]||(g[54]=(...d)=>e.unref(u).applyJson&&e.unref(u).applyJson(...d))},e.toDisplayString(e.unref(r).applyJson),9,ii)],64)),e.unref(E)?(e.openBlock(),e.createElementBlock("p",si,e.toDisplayString(e.unref(r).jsonPending),1)):e.createCommentVNode("",!0)],10,al)])):e.createCommentVNode("",!0),e.unref(I)!=="tools"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"mr-designer-preview","aria-label":e.unref(r).previewTitle},[e.unref(V)?(e.openBlock(),e.createElementBlock("div",ci,e.toDisplayString(e.unref(V)),1)):e.createCommentVNode("",!0),e.unref(x).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",ui,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x).errors,d=>(e.openBlock(),e.createElementBlock("li",{key:d.path},e.toDisplayString(d.path)+":"+e.toDisplayString(d.message),1))),128))])),e.unref($)==="design"&&e.unref(x).ok?(e.openBlock(),e.createBlock(tn,{key:2,document:e.unref(y),selection:e.unref(X),selections:e.unref(j).selections.value,locked:e.unref(j).locked,"active-column-index":e.unref(q),"page-index":e.unref(U),datasets:t.datasets,disabled:e.unref(J)||oe.value||e.unref(u).isToolPending("rules"),messages:e.unref(r),onSelect:Be,onGeometry:e.unref(j).geometry,onColumn:e.unref(P).activate,onWidth:g[55]||(g[55]=(d,O)=>e.unref(u).setColumn(d,"widthMm",String(O)))},null,8,["document","selection","selections","locked","active-column-index","page-index","datasets","disabled","messages","onGeometry","onColumn"])):e.unref(Z)&&e.unref(x).ok?(e.openBlock(),e.createBlock(e.unref(Te.ReportPreview),{key:3,"report-id":"draft",fetcher:e.unref(Z),messages:{title:e.unref(r).previewTitle,columnDirectory:e.unref(r).previewFieldDirectory},"show-params":!1,editable:!1,"excel-import":!1,height:"100%"},null,8,["fetcher","messages"])):(e.openBlock(),e.createElementBlock("p",mi,e.toDisplayString(e.unref(r).invalid),1))],8,di)):e.createCommentVNode("",!0)],2)],8,Ba))}}),gi=Y._export_sfc(pi,[["__scopeId","data-v-415052be"]]),vi={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:"调序"}},fi={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:"契约字段,不执行接口查询"},hi={restoreDraft:"恢复工具草稿",catalog:"规则与字段",searchFields:"搜索字段、类型或单位",useField:"使用此字段",shown:"显示",explanation:"计算解释",sourceValues:"源值",expression:"表达式",result:"结果",notChecked:"修改后请重新验算",nullReason:"空值依规则保留;空值传播与除零策略见计算边界。",sourceHint:"最多展示 5 条明细;分组和全量聚合以当前验算范围为准。",pending:"未应用配置",detail:"主从",matrix:"矩阵",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:"否",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:"启用"},yi={paramsTool:"查询参数",paramsDescription:"配置一次,预览与服务端使用同一份校验规则。",paramsDirectory:"参数目录",paramAdd:"添加参数",paramEmpty:"尚未配置查询参数",paramEmptyHint:"添加日期、厂别等条件,报表预览会自动生成查询面板。",paramField:"参数标识",paramLabel:"显示名称",paramType:"控件类型",paramRequired:"必填",paramPlaceholder:"输入提示",paramDefaultEnabled:"设置默认值",paramDefault:"默认值",paramMinimum:"最小值(含边界)",paramMaximum:"最大值(含边界)",paramMinLength:"最少字符数",paramMaxLength:"最多字符数",paramOptions:"静态下拉选项",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:"下拉选择"},bi={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} 组"},ki={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:"模板目录响应格式无效"},Ei=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-DwtOcLue.cjs"))),Ni=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-y0mT-AHR.cjs"))),Si=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-ChRzNQuF.cjs"))),Vi=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-MBBC7lUE.cjs"))),wi=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportBatchPanel-Dc-SDkYA.cjs"))),xi=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportTemplateLibrary-5fk5CQBO.cjs")));exports.EXCEL_BINDING_MESSAGES=fi;exports.ExcelBindingWizard=Ni;exports.PARAM_EDITOR_MESSAGES=yi;exports.ParamEditor=Vi;exports.REPORT_BATCH_MESSAGES=bi;exports.RULE_EDITOR_MESSAGES=hi;exports.ReportBatchPanel=wi;exports.ReportTemplateEditor=gi;exports.ReportTemplateLibrary=xi;exports.RuleEditor=Si;exports.TEMPLATE_EDITOR_MESSAGES=ie;exports.TEMPLATE_LIBRARY_MESSAGES=ki;exports.TEMPLATE_REVIEW_MESSAGES=vi;exports.TemplateReviewPanel=Ei;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Fe=require("@agile-team/mach-report/vue"),O=require("@agile-team/mach-report"),J=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),me=require("./record-bindings-By_UKZ2g.cjs"),st=require("./tree-BX380Rr7.cjs"),Se=require("./style-UgIJSA1F.cjs");function dt(t,s,o=3){if(!t.tree)return s.slice(0,o).map(a=>t.columns.map(n=>me.resolveListSampleCell(t,n,a)));if(s.length>200)return[];try{return st.createTreeTable(s,{...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,o).map(n=>t.columns.map(i=>me.resolveTreeListSampleCell(t,i,n)))}catch{return[]}}const Pe=96/25.4;function xe(t){return t.kind==="list"?Math.max(16,(t.headerGrid?.rowHeightsMm?.reduce((s,o)=>s+o,0)??8)+(t.rowHeightMm??8)*3):t.heightMm}function ne(t){return{leftMm:t.leftMm,topMm:t.topMm,widthMm:t.widthMm,heightMm:xe(t)}}function de(t,s){return s?t.template.pages[s.pageIndex]?.components[s.componentIndex]:void 0}function ct(t,s="detail"){const o={leftMm:10,topMm:10,widthMm:60,heightMm:10};return t==="qrcode"?{...o,kind:t,widthMm:22,heightMm:22,code:{value:"MACHREPORT",errorCorrection:"M",quietZoneModules:4}}:t==="barcode"?{...o,kind:t,widthMm:50,heightMm:16,code:{value:"MR20261022",symbology:"code128",quietZoneModules:10,showText:!0}}:t==="list"?{kind:t,leftMm:10,topMm:30,widthMm:90,dataset:s,columns:[{header:"字段",field:"field",widthMm:45},{header:"数值",field:"value",widthMm:45}],border:!0,headerBackgroundColor:"#eaf2fc",headerAlign:"center"}:t==="text"?{...o,kind:t,text:"文本",style:{fontSize:12,color:"#233c5c"}}:t==="rect"?{...o,kind:t,style:{borderColor:"#cbd5e1",lineWidthPt:.75,backgroundColor:"#eff6ff"}}:{...o,kind:t,widthMm:48,heightMm:24,imageData:`data:image/svg+xml;charset=utf-8,${encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="180" height="90" viewBox="0 0 180 90"><rect width="180" height="90" rx="5" fill="#eff6ff"/><path d="m25 68 32-32 25 23 27-35 45 44" fill="none" stroke="#94b8e5" stroke-width="3"/><circle cx="45" cy="24" r="7" fill="#bfd5ef"/></svg>')}`}}function Ve(t,s,o=!1){const a=Math.max(2,Math.min(s.widthMm,t.widthMm)),n=Math.max(2,Math.min(s.heightMm,t.heightMm));return{leftMm:Math.max(0,Math.min(s.widthMm-a,t.leftMm)),topMm:Math.max(0,Math.min(s.heightMm-(o?2:n),t.topMm)),widthMm:a,heightMm:n}}function ge(t,s){const o=t.widthMm;if(Object.assign(t,{leftMm:s.leftMm,topMm:s.topMm,widthMm:s.widthMm}),t.kind!=="list")t.heightMm=s.heightMm;else if(o>0&&s.widthMm!==o){const a=s.widthMm/o;t.columns.forEach(n=>{n.widthMm=Math.round(n.widthMm*a*100)/100}),t.widthMm=t.columns.reduce((n,i)=>n+i.widthMm,0),t.headerGrid&&(t.headerGrid.colWidthsMm=t.columns.map(n=>n.widthMm))}}function ut(t,s,o){if(s===o||!t.columns[s]||!t.columns[o])return!1;if(t.headerGrid){if(O.resolveGridLayout(t.headerGrid,t.widthMm,100).cells.some(({cell:i})=>(i.colSpan??1)>1))throw new Error("请先拆分跨列合并表头,再调整列顺序,避免改变业务分组。");const n=Ce(t);n.forEach(i=>{i.splice(o,0,i.splice(s,1)[0])}),t.headerGrid=Me(n,t.columns.map(i=>i.widthMm),t.headerGrid.rowHeightsMm??n.map(()=>8))}return t.columns.splice(o,0,t.columns.splice(s,1)[0]),t.headerGrid&&(t.headerGrid.colWidthsMm=t.columns.map(a=>a.widthMm)),!0}function Ce(t){if(!t.headerGrid)return[t.columns.map(o=>({text:o.header}))];const s=Array.from({length:t.headerGrid.cells.length},()=>Array.from({length:t.columns.length},()=>null));for(const{cell:o,ri:a,ci:n}of O.resolveGridLayout(t.headerGrid,t.widthMm,100).cells)s[a][n]=o;return s}function Me(t,s,o){const a=new Set;return{cells:t.map((i,u)=>i.flatMap((h,v)=>{if(a.has(`${u}:${v}`))return[];if(!h)return[null];for(let m=u;m<u+(h.rowSpan??1);m++)for(let y=v;y<v+(h.colSpan??1);y++)(m!==u||y!==v)&&a.add(`${m}:${y}`);return[h]})),colWidthsMm:s,rowHeightsMm:o}}function mt(t){const s=Ce(t),o=t.headerGrid?.rowHeightsMm??s.map(()=>8);s.unshift(t.columns.map(()=>({text:"分组",style:{align:"center",backgroundColor:"#eaf2fc",bold:!0}}))),t.headerGrid=Me(s,t.columns.map(a=>a.widthMm),[8,...o])}function pt(t,s,o,a){if(o>=a||o<0||a>=t.columns.length)throw new Error("请选择同一行的至少两个连续表头。");const n=Ce(t),i=n[s];if(!i)throw new Error("表头行不存在。");const u=i.slice(o,a+1);if(u.some(v=>!v||(v.colSpan??1)!==1||(v.rowSpan??1)!==1))throw new Error("选择包含合并区域,请先拆分,再重新合并。");const h=u[0];i[o]={...h,colSpan:a-o+1};for(let v=o+1;v<=a;v++)i[v]=null;t.headerGrid=Me(n,t.columns.map(v=>v.widthMm),t.headerGrid?.rowHeightsMm??[8])}function vt(t,s,o){if(!t.headerGrid)return;const n=O.resolveGridLayout(t.headerGrid,t.widthMm,100).cells.find(({ri:m,ci:y,cell:w})=>s>=m&&s<m+(w.rowSpan??1)&&o>=y&&o<y+(w.colSpan??1));if(!n)return;const i=Ce(t),{ri:u,ci:h,cell:v}=n;for(let m=u;m<u+(v.rowSpan??1);m++)for(let y=h;y<h+(v.colSpan??1);y++){const w={...v,text:m===i.length-1?t.columns[y].header:v.text};delete w.colSpan,delete w.rowSpan,i[m][y]=w}t.headerGrid=Me(i,t.columns.map(m=>m.widthMm),t.headerGrid.rowHeightsMm??i.map(()=>8))}function gt(t){const s=e.ref(),o=e.ref(.8),a=e.ref(0),n=e.ref(0),i=e.computed(()=>o.value*Pe),u=e.computed(()=>t.document.template.pages[t.pageIndex]),h=e.computed(()=>u.value.widthMm*i.value>n.value-40);let v,m=!!t.document.template.repeat;function y(l){const c=s.value;if(!c||c.clientWidth<=40||c.clientHeight<=40)return;let g={leftMm:0,topMm:0,widthMm:u.value.widthMm,heightMm:u.value.heightMm};const E=t.selection?.pageIndex===t.pageIndex?u.value.components[t.selection.componentIndex]:void 0;l==="selection"&&E&&(g=ne(E));const x=(c.clientWidth-40)/(g.widthMm*Pe),B=(c.clientHeight-40)/(g.heightMm*Pe);o.value=Math.max(.05,Math.min(2,l==="width"?x:Math.min(x,B))),e.nextTick(()=>{c.scrollLeft=g.leftMm*i.value,c.scrollTop=g.topMm*i.value})}function w(l){m=!1,y(l)}function N(l){Number.isFinite(l)&&(m=!1,o.value=Math.max(.05,Math.min(2,l)))}function V(){const l=s.value;l&&(n.value=l.clientWidth,a.value=l.scrollWidth>l.clientWidth?Math.round(l.scrollLeft/(l.scrollWidth-l.clientWidth)*100):0)}function k(l){const c=s.value;c&&(c.scrollLeft=(c.scrollWidth-c.clientWidth)*l/100),a.value=l}function f(){V(),m&&t.document.template.repeat&&y("page")}async function b(){await e.nextTick();const l=s.value,c=t.selection;if(!l||c?.pageIndex!==t.pageIndex)return;const g=u.value.components[c.componentIndex];if(!g)return;const E=ne(g);if(g.kind==="list"&&t.columnIndex!==void 0&&t.columnIndex>=0){const P=g;E.leftMm+=P.columns.slice(0,t.columnIndex).reduce((Y,Q)=>Y+Q.widthMm,0),E.widthMm=P.columns[t.columnIndex]?.widthMm??E.widthMm}const x=E.leftMm*i.value,B=E.topMm*i.value,$=x+E.widthMm*i.value,L=B+E.heightMm*i.value;x<l.scrollLeft?l.scrollLeft=x:$>l.scrollLeft+l.clientWidth-40&&(l.scrollLeft=Math.max(0,Math.min(x,$-l.clientWidth+40))),B<l.scrollTop?l.scrollTop=B:L>l.scrollTop+l.clientHeight-40&&(l.scrollTop=Math.max(0,Math.min(B,L-l.clientHeight+40))),V()}return e.watch(()=>[t.selection,t.columnIndex,t.pageIndex],()=>{b()}),e.watch(()=>t.document.id,()=>{m=!!t.document.template.repeat,e.nextTick(f)}),e.watch(()=>[!!t.document.template.repeat,t.pageIndex,u.value.widthMm,u.value.heightMm],()=>{e.nextTick(f)}),e.onMounted(()=>{f(),typeof ResizeObserver<"u"&&s.value&&(v=new ResizeObserver(f),v.observe(s.value))}),e.onBeforeUnmount(()=>v?.disconnect()),{viewport:s,zoom:o,scale:i,page:u,wide:h,fraction:a,fit:w,setZoom:N,sync:V,navigate:k}}function ft(t,s,o){if(t.kind==="list")return{text:t.dataset};const a=t.kind==="barcode"||t.kind==="qrcode"?t.code?.value??t.fallbackText??t.text??"":t.text??t.fallbackText??"";return t.binding?ht(t,s,o):{text:a,...t.imageData?{image:t.imageData}:{}}}function ht(t,s,o){const a=t.binding,n=s.template.repeat,i=n?o?.[n.dataset]?.[0]:void 0;if(!i)return{text:a.field,bound:!0};try{const u=me.resolveComponentBinding(a,i,{dataset:n?.dataset,rowIndex:0});return t.kind==="image"&&u&&!me.isLabelImageData(u)?{text:a.field,bound:!0,error:"image-binding"}:{text:u,bound:!0,...t.kind==="image"&&me.isLabelImageData(u)?{image:u}:{}}}catch(u){return{text:a.field,bound:!0,error:u instanceof Error?u.message:String(u)}}}function Ke(t,s){const a=[1,2,5,10,20,50,100,200,500,1e3].find(i=>i*s>=36)??Math.max(1e3,Math.ceil(t/200));return Array.from({length:Math.min(201,Math.floor(t/a)+1)},(i,u)=>({mm:u*a,position:u*a*s}))}const Ae=[{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 we(t,s,o){return typeof t.meta?.title=="string"&&t.meta.title.trim()?t.meta.title:`${o} ${s+1}`}function Xe(t){return t.components.flatMap((s,o)=>{const a=s.kind==="list"?s.rowHeightMm??xe(s):s.heightMm;return s.leftMm<0||s.topMm<0||s.leftMm+s.widthMm>t.widthMm+.001||s.topMm+a>t.heightMm+.001?[o]:[]})}function yt(t,s){const o=JSON.parse(JSON.stringify(t)),a=new Set(s.flatMap(u=>u.components.map(h=>h.kind==="list"?h.id:h.nid)).filter(Boolean)),n=new Map;let i=0;for(const u of o.components){const h=u.kind==="list"?u.id:u.nid;if(!h)continue;let v;do v=`page-copy-${++i}`;while(a.has(v));a.add(v),n.set(h,v),u.kind==="list"?u.id=v:(u.nid=v,delete u.rkey)}return o.flow?.bands.forEach(u=>{u.componentIds=u.componentIds.map(h=>n.get(h)??h)}),o}function bt(t,s,o){const a=t.template.pages,n=a[s];if(!n)return 0;if(o.type==="patch")return Object.assign(n,o.patch),s;if(o.type==="remove")return a.length<=1?s:(a.splice(s,1),Math.min(s,a.length-1));const i=o.type==="duplicate"?yt(n,a):JSON.parse(JSON.stringify(n));return o.type==="add"&&(i.components=[],delete i.flow,delete i.meta),a.splice(s+1,0,i),s+1}function Je(t,s,o){const a=t.filter(n=>n!==s).flatMap(n=>{const i=n[o],u=o==="leftMm"?n.widthMm:xe(n);return[i,i+u/2,i+u]});return[...new Set(a)].sort((n,i)=>n-i)}function kt(t,s){if(!t.length)return;let o=0,a=t.length;for(;o<a;){const u=o+a>>>1;t[u]<s?o=u+1:a=u}const n=t[Math.max(0,o-1)],i=t[Math.min(t.length-1,o)];return Math.abs(n-s)<Math.abs(i-s)?n:i}function Ye(t,s,o,a){let n=1/0,i={value:Math.round(t*2)/2};for(const u of[0,s/2,s]){const h=kt(o,t+u);if(h===void 0)continue;const v=Math.abs(h-t-u);v<=a&&v<n&&(n=v,i={value:h-u,guide:h})}return i}function Et(t,s,o,a){if(a){const n=Math.abs(s)>=Math.abs(o)?s:o,i=Math.round((t.widthMm+n)*2)/2;return{...t,widthMm:i,heightMm:i}}return{...t,widthMm:Math.round((t.widthMm+s)*2)/2,heightMm:Math.round((t.heightMm+o)*2)/2}}function Nt(t){let s;function o(a,n,i=!1){if(t.disabled()||a.button!==0)return;a.preventDefault(),a.stopPropagation(),s?.();const u=a.currentTarget.closest("[data-canvas-component]"),h=ne(n),v=a.clientX,m=a.clientY;let y=h,w=0;const N=t.scale.value,V=u.parentElement;let k,f;const b=()=>{for(const[L,P]of[["x",k],["y",f]])V.style.setProperty(`--mr-canvas-guide-${L}-display`,P===void 0?"none":"block"),P!==void 0&&V.style.setProperty(`--mr-canvas-guide-${L}`,`${P*N}px`)},l=()=>{w=0,b(),u.style.left=`${y.leftMm*N}px`,u.style.top=`${y.topMm*N}px`,u.style.width=`${y.widthMm*N}px`,u.style.height=`${y.heightMm*N}px`},c={leftMm:Je(t.page().components,n,"leftMm"),topMm:Je(t.page().components,n,"topMm")},g=L=>{const P=(L.clientX-v)/N,Y=(L.clientY-m)/N,Q=Ye(h.leftMm+P,h.widthMm,c.leftMm,5/N),r=Ye(h.topMm+Y,h.heightMm,c.topMm,5/N);k=i?void 0:Q.guide,f=i?void 0:r.guide,y=Ve(i?Et(h,P,Y,n.kind==="qrcode"):{...h,leftMm:Q.value,topMm:r.value},t.page(),n.kind==="list"),i&&n.kind==="qrcode"&&(y.widthMm=y.heightMm=Math.min(y.widthMm,y.heightMm)),w||(w=requestAnimationFrame(l))},E=L=>{window.removeEventListener("pointermove",g),window.removeEventListener("pointerup",x),window.removeEventListener("pointercancel",B),window.removeEventListener("keydown",$),w&&cancelAnimationFrame(w),y=L?y:h,k=void 0,f=void 0,l(),s=void 0,L&&JSON.stringify(y)!==JSON.stringify(h)&&t.commit(y)},x=()=>E(!0),B=()=>E(!1),$=L=>{L.key==="Escape"&&(L.preventDefault(),B())};window.addEventListener("pointermove",g),window.addEventListener("pointerup",x),window.addEventListener("pointercancel",B),window.addEventListener("keydown",$),s=B}return e.watch(t.disabled,a=>{a&&s?.()}),e.watch(t.page,()=>s?.()),e.onBeforeUnmount(()=>s?.()),{start:o}}const St={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:"请先修正模板错误,再预览或保存。"},Vt={paperAndPages:"纸张与版面",pageDirectory:"版面目录",pageName:"版面名称",addPage:"新增版面",duplicatePage:"复制版面",removePage:"删除版面",removePageConfirm:"此版面包含组件,删除后可通过撤销恢复。",confirmRemovePage:"确认删除",paperPreset:"纸张规格",labelPaper:"标签",customPaper:"自定义尺寸",paperWidth:"纸宽(mm)",paperHeight:"纸高(mm)",pageLayout:"展示方式",fixedPaper:"固定纸张",completeWide:"完整宽表",pageMargins:"页边距 · mm",marginTop:"上边距",marginRight:"右边距",marginBottom:"下边距",marginLeft:"左边距",pageOverflow:"{count} 个组件超出纸张",pageOverflowHint:"内容位置和尺寸已保留,请调整组件或纸张后核对打印预览。",locateOverflow:"定位超界组件",repeatRecords:"按记录生成标签",repeatRecordsHint:"每条记录按版面顺序生成,支持多版与多份。",recordDataset:"记录数据集",recordRowKey:"记录主键字段(可选)",labelCopies:"份数来源",fixedCopies:"固定份数",fieldCopies:"记录字段",copiesPerRecord:"每条记录份数",copiesField:"份数字段",repeatBoundHint:"已有组件绑定此记录;移除全部字段绑定后可关闭。",repeatOrderHint:"生成顺序:记录 → 份数 → 版面;预览会使用提供的真实样例。",repeatNeedsFixed:"先使用固定纸张、将组件置于纸内,并移除明细表或流式区域。",dataBinding:"记录绑定",contentSource:"内容来源",staticContent:"固定内容",recordField:"记录字段",bindingField:"绑定字段",bindingNeedsRepeat:"先在“模板”开启按记录生成,再选择字段。",bindingRecordHint:"字段随当前记录变化,空值与真实的 0 分开处理。",bindingImageHint:"图片字段使用 PNG/JPEG base64 data URL;空值不显示,业务 URL 由接入方安全加载。",valueFormat:"值格式",naturalFormat:"原始显示",numberFormat:"数值",percentFormat:"百分比",dateFormat:"日期",decimalPlaces:"小数位",datePattern:"日期格式",bindingDecoration:"前后缀与空值",valuePrefix:"前缀",valueSuffix:"后缀",emptyValueText:"空值显示",insertQrcode:"二维码",insertBarcode:"条形码",codeSettings:"编码设置",codeAdvancedSettings:"纠错、留白与使用说明",codeValue:"固定编码内容",codeSymbology:"条码制式",codeCorrection:"二维码纠错",codeQuietZone:"留白(模块)",codeShowText:"显示条码文字",eanContentHint:"使用完整的 8 / 13 位数字,包含有效校验位;切换制式不会改写内容。",code39ContentHint:"支持大写字母、数字、空格与 - . $ / + %;内容不会自动转换。",code128ContentHint:"支持可打印 ASCII 内容;中文请使用二维码。",codePlaceholder:"编码区域",codePreviewHint:"设计中显示内容标识;切换预览核对实际编码。",boundImagePlaceholder:"记录图片",rulerLabel:"毫米标尺",rulerToggle:"标尺",designSample:"样例",repeatPage:"每页重复",repeatNone:"不重复",repeatHeader:"页眉",repeatFooter:"页脚",textFormat:"文字样式",fontSize:"字号(pt)",fontBold:"加粗",textColor:"文字颜色",backgroundColor:"背景颜色",canvasGridLimited:"设计窗口仅显示前 2000 个单元格;最终预览与导出保留完整内容。",design:"设计",preview:"预览",componentSection:"组件",toolsSection:"工具",component:"组件",components:"组件目录",canvasHint:"点击选择 · 拖动移动 · 方向键微调 · Shift 加速 · Esc 取消",zoom:"缩放",sampleRows:"数据预览区域",treeSampleHint:"树形样例需完整且有界,请在报表预览中验证",resizeComponent:"调整组件尺寸",resizeColumn:"调整列宽",insertComponent:"添加组件",insertText:"文本",insertList:"明细表",insertImage:"图片",insertRect:"矩形",chartComponent:"图表",lineComponent:"线条",ellipseComponent:"椭圆",removeComponent:"删除组件",duplicateComponent:"复制组件",forward:"向上移动层级",backward:"向下移动层级",positionGroup:"位置与尺寸 · mm",componentContent:"组件内容",componentText:"文本内容",imageSource:"图片地址或 data URI",imageUpload:"上传图片",imageBudget:"图片不超过 4 MB,支持 PNG/JPEG/WebP/SVG",leftPosition:"左侧",topPosition:"顶部",componentWidth:"宽度",componentHeight:"高度",noComponent:"在画布或目录选择组件",listDataset:"数据集",columnOrder:"列结构",moveColumnLeft:"向前移动列",moveColumnRight:"向后移动列",columnVisible:"显示此列",headerStructure:"多层表头",addHeaderRow:"添加分组行",mergeHeader:"合并所选表头",splitHeader:"拆分表头",headerRow:"表头行",headerFirst:"开始列",headerLast:"结束列",flowLayout:"区域版式由 Excel 绑定向导管理;可编辑字段、格式与业务规则。",paramsTool:"查询参数",excelTool:"Excel 绑定",rulesTool:"计算与规则",reviewTool:"发布检查",toolsDescription:"按需绑定数据、定义规则并验证模板。",unapplied:"待应用",pendingToolsLabel:"待处理配置",pendingToolsHint:"应用或恢复后可保存",saveReadonly:"当前为只读,无法保存",saveConfirmation:"请先处理修改确认",saveUnchanged:"没有需要保存的修改",saveInvalid:"模板有错误,请先修正",saveJsonPending:"完整 JSON 待应用",returnToConfiguration:"返回配置",rulesNeedList:"请先在字段区域选择明细表。",undo:"撤销",redo:"重做",columnsSearch:"搜索列名或字段",columnsSelected:"已选列",selectVisible:"选择当前结果",clearSelection:"清除选择",noColumns:"没有匹配的列",batchBody:"批量正文对齐",batchHeader:"批量表头对齐",chooseAlignment:"选择对齐方式",discardTitle:"保留当前修改?",discardDescription:"当前包含未保存的属性或尚未应用的 JSON,继续将丢弃这些修改。",keepEditing:"继续编辑",discard:"丢弃修改并继续",jsonPending:"JSON 尚未应用。请先校验并应用,或撤销 JSON 修改后继续属性编辑与保存。",fieldsSection:"字段",templateSection:"模板",advancedSection:"高级",sectionsLabel:"模板设置分区",columnDirectory:"字段目录",columnProperties:"字段属性",selectColumn:"选择字段",clearSearch:"清除搜索",fieldsCount:"个字段",templateDetails:"模板信息",advancedTitle:"完整配置",advancedDescription:"用于批量迁移或配置复杂模板。应用前会校验;未应用的内容会受到草稿保护。",templateIdentity:"模板标识",templateRevision:"当前修订",readonly:"只读",ready:"可编辑",previewTitle:"实时预览",contentGroup:"内容",formatGroup:"格式",autoShort:"自动",previousColumn:"上一字段",nextColumn:"下一字段",closeDirectory:"关闭字段目录",technicalDetails:"标识与修订",fieldPosition:"当前字段",previewFieldDirectory:"定位字段"},re={fitWidth:"适宽",fitPage:"适页",fitSelection:"选区",wideNavigation:"宽表导航",alignSelection:"对齐选区",leftEdges:"左对齐",centers:"水平居中",rightEdges:"右对齐",topEdges:"顶对齐",middles:"垂直居中",bottomEdges:"底对齐",horizontalSpacing:"水平等距",verticalSpacing:"垂直等距",lockSelection:"锁定位置",unlockSelection:"解锁位置",sessionLock:"位置锁定仅当前设计会话有效。",toolsPending:"工具中还有未应用的配置,请先应用或恢复后再保存模板。",...St,...Vt},wt={class:"mr-canvas"},xt={class:"mr-canvas-heading"},Ct={class:"mr-canvas-sheet-info"},Mt=["title"],Bt=["title"],Dt={class:"mr-canvas-gesture-hint"},$t={class:"mr-canvas-toolbar"},_t={class:"mr-canvas-view-tools"},Tt=["aria-pressed"],It=["disabled"],Rt=["value","aria-label"],Lt=["value"],Pt=["width","aria-label"],At=["transform"],Ft={x:"3",y:"9"},Ht=["height"],Gt=["transform"],zt={x:"3",y:"10"},Ot=["data-canvas-component","aria-label","aria-pressed","tabindex","onFocus","onPointerdown","onClick","onKeydown"],jt={class:"mr-canvas-table"},qt={key:1,class:"mr-canvas-table-row is-header"},Wt=["onPointerdown"],Ut={key:2,class:"mr-canvas-placeholder"},Kt=["aria-label","onPointerdown"],Jt={key:1,class:"mr-canvas-static-grid"},Yt={key:0,class:"mr-canvas-grid-limit"},Xt=["title"],Zt={key:0},Qt=["src"],en=["title"],tn=["aria-label","onPointerdown"],nn={key:0,class:"mr-canvas-navigator"},on=["value","aria-label"],an=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:s}){const o=t,a=s,n=e.computed(()=>({...re,...o.messages})),{viewport:i,zoom:u,scale:h,page:v,wide:m,fraction:y,fit:w,setZoom:N,sync:V,navigate:k}=gt({get document(){return o.document},get pageIndex(){return o.pageIndex},get selection(){return o.selection},get columnIndex(){return o.activeColumnIndex}}),f=e.computed(()=>o.disabled===!0||o.geometryDisabled===!0||!!v.value.flow),b=e.computed(()=>v.value.components.map(S=>S.kind==="list"?dt(S,o.datasets?.[S.dataset]??[],v.value.flow||S.cardinality==="record"?1:3):[])),l=e.computed(()=>v.value.components.map(S=>ft(S,o.document,o.datasets))),c=e.ref(!0),g=e.computed(()=>Ke(v.value.widthMm,h.value)),E=e.computed(()=>Ke(v.value.heightMm,h.value));function x(S,C,M){return{width:`${C*h.value}px`,opacity:M?.35:1,textAlign:S.style?.align,paddingLeft:S.indentMm?`${S.indentMm*h.value}px`:void 0,color:S.style?.color,backgroundColor:S.style?.backgroundColor,fontWeight:S.style?.bold?"700":"400",fontSize:`${Se.resolveFontSize(S.style).fontSizePx*u.value}px`}}function B(S){return o.locked?.({pageIndex:o.pageIndex,componentIndex:S})===!0}function $(S,C){a("select",{pageIndex:o.pageIndex,componentIndex:C,additive:S.ctrlKey||S.metaKey||S.shiftKey}),!S.ctrlKey&&!S.metaKey&&!S.shiftKey&&!B(C)&&L.start(S,v.value.components[C])}const L=Nt({scale:h,page:()=>v.value,disabled:()=>f.value,commit:S=>a("geometry",S)});function P(S){return(o.selections??(o.selection?[o.selection]:[])).some(C=>C.pageIndex===o.pageIndex&&C.componentIndex===S)}function Y(S){const C=v.value.components[S],M=C.kind==="list"?C.id:C.nid,A=v.value.flow?.bands.find(z=>z.componentIds.includes(M??"")),T=A&&C.kind==="list"?A.topMm+A.heightMm-C.topMm:xe(C);return{left:`${C.leftMm*h.value}px`,top:`${C.topMm*h.value}px`,width:`${C.widthMm*h.value}px`,height:`${T*h.value}px`}}function Q(S,C){const M=v.value.components[C];if(f.value||B(C)||!P(C))return;const A={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]},T=A[S.key];if(!T)return;S.preventDefault(),S.stopPropagation();const z=ne(M),W=S.shiftKey?5:.5;z.leftMm+=T[0]*W,z.topMm+=T[1]*W,a("geometry",z)}function r(S){let C=0;return S.columns.map(M=>(C+=M.widthMm,C))}function _(S){return S.grid?O.resolveGridLayout(S.grid,S.widthMm,S.heightMm).cells.slice(0,2e3):[]}function R(S){return S.headerGrid?O.resolveGridLayout(S.headerGrid,S.widthMm,S.headerGrid.rowHeightsMm?.reduce((C,M)=>C+M,0)??S.headerGrid.cells.length*8).cells:[]}let I;e.watch(()=>f.value,S=>{S&&I?.()}),e.watch(()=>o.document,()=>I?.()),e.onBeforeUnmount(()=>I?.());function G(S,C,M){if(f.value||S.button!==0)return;S.preventDefault(),S.stopPropagation(),I?.();const A=S.clientX,T=C.columns[M].widthMm;let z=T;const W=S.currentTarget,q=oe=>{z=Math.max(2,Math.round((T+(oe.clientX-A)/h.value)*2)/2),W.style.transform=`translateX(${(z-T)*h.value}px)`},ee=()=>{window.removeEventListener("pointermove",q),window.removeEventListener("pointerup",X),window.removeEventListener("pointercancel",te),window.removeEventListener("keydown",K),W.style.transform="",I=void 0},X=()=>{ee(),z!==T&&a("width",M,z)},te=()=>ee(),K=oe=>{oe.key==="Escape"&&(oe.preventDefault(),te())};window.addEventListener("pointermove",q),window.addEventListener("pointerup",X),window.addEventListener("pointercancel",te),window.addEventListener("keydown",K),I=te}return(S,C)=>(e.openBlock(),e.createElementBlock("div",wt,[e.createElementVNode("div",xt,[e.createElementVNode("div",Ct,[e.createElementVNode("strong",{title:e.unref(we)(e.unref(v),t.pageIndex,n.value.page)},e.toDisplayString(e.unref(we)(e.unref(v),t.pageIndex,n.value.page)),9,Mt),e.createElementVNode("span",null,e.toDisplayString(e.unref(v).widthMm)+" × "+e.toDisplayString(e.unref(v).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,Bt)):e.createCommentVNode("",!0)]),e.createElementVNode("span",Dt,e.toDisplayString(n.value.canvasHint),1),e.createElementVNode("div",$t,[e.createElementVNode("nav",_t,[e.createElementVNode("button",{type:"button","aria-pressed":c.value,onClick:C[0]||(C[0]=M=>c.value=!c.value)},e.toDisplayString(n.value.rulerToggle),9,Tt),e.createElementVNode("button",{type:"button",onClick:C[1]||(C[1]=M=>e.unref(w)("width"))},e.toDisplayString(n.value.fitWidth),1),e.createElementVNode("button",{type:"button",onClick:C[2]||(C[2]=M=>e.unref(w)("page"))},e.toDisplayString(n.value.fitPage),1),e.createElementVNode("button",{type:"button",disabled:!t.selection,onClick:C[3]||(C[3]=M=>e.unref(w)("selection"))},e.toDisplayString(n.value.fitSelection),9,It)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.zoom),1),e.createElementVNode("select",{value:e.unref(u),"aria-label":n.value.zoom,onChange:C[4]||(C[4]=M=>e.unref(N)(Number(M.target.value)))},[[.5,.8,1,1.25].includes(e.unref(u))?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("option",{key:0,value:e.unref(u)},e.toDisplayString(Math.round(e.unref(u)*100))+"%",9,Lt)),C[7]||(C[7]=e.createElementVNode("option",{value:.5},"50%",-1)),C[8]||(C[8]=e.createElementVNode("option",{value:.8},"80%",-1)),C[9]||(C[9]=e.createElementVNode("option",{value:1},"100%",-1)),C[10]||(C[10]=e.createElementVNode("option",{value:1.25},"125%",-1))],40,Rt)])])]),e.createElementVNode("div",{ref_key:"viewport",ref:i,class:"mr-canvas-scroll",onScrollPassive:C[5]||(C[5]=(...M)=>e.unref(V)&&e.unref(V)(...M))},[e.createElementVNode("div",{class:"mr-canvas-paper",style:e.normalizeStyle({width:`${e.unref(v).widthMm*e.unref(h)}px`,height:`${e.unref(v).heightMm*e.unref(h)}px`})},[c.value?(e.openBlock(),e.createElementBlock("svg",{key:0,class:"mr-canvas-ruler is-horizontal",width:e.unref(v).widthMm*e.unref(h),height:"17","aria-label":n.value.rulerLabel,role:"img"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,M=>(e.openBlock(),e.createElementBlock("g",{key:M.mm,transform:`translate(${M.position}, 0)`},[C[11]||(C[11]=e.createElementVNode("line",{y1:"12",y2:"17"},null,-1)),e.createElementVNode("text",Ft,e.toDisplayString(M.mm),1)],8,At))),128))],8,Pt)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("svg",{key:1,class:"mr-canvas-ruler is-vertical",width:"17",height:e.unref(v).heightMm*e.unref(h),"aria-hidden":"true"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value,M=>(e.openBlock(),e.createElementBlock("g",{key:M.mm,transform:`translate(0, ${M.position})`},[C[12]||(C[12]=e.createElementVNode("line",{x1:"12",x2:"17"},null,-1)),e.createElementVNode("text",zt,e.toDisplayString(M.mm),1)],8,Gt))),128))],8,Ht)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(v).components,(M,A)=>(e.openBlock(),e.createElementBlock("div",{key:A,class:e.normalizeClass(["mr-canvas-component",{"is-selected":P(A),"is-locked":B(A)}]),"data-canvas-component":A,style:e.normalizeStyle(Y(A)),role:"button","aria-label":`${n.value.component} ${A+1} ${M.kind}`,"aria-pressed":P(A),tabindex:P(A)?0:-1,onFocus:T=>!P(A)&&a("select",{pageIndex:t.pageIndex,componentIndex:A}),onPointerdown:T=>$(T,A),onClick:T=>T.detail===0&&!P(A)&&a("select",{pageIndex:t.pageIndex,componentIndex:A}),onKeydown:T=>Q(T,A)},[M.kind==="list"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",jt,[M.header!==!1&&M.headerGrid?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-canvas-merged",style:e.normalizeStyle({height:`${(M.headerGrid.rowHeightsMm?.reduce((T,z)=>T+z,0)??M.headerGrid.cells.length*8)*e.unref(h)}px`})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R(M),(T,z)=>(e.openBlock(),e.createElementBlock("div",{key:z,style:e.normalizeStyle({left:`${T.xMm*e.unref(h)}px`,top:`${T.yMm*e.unref(h)}px`,width:`${T.widthMm*e.unref(h)}px`,height:`${T.heightMm*e.unref(h)}px`,textAlign:T.cell.style?.align??"center"})},e.toDisplayString(T.cell.text),5))),128))],4)):M.header!==!1?(e.openBlock(),e.createElementBlock("div",qt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.columns,(T,z)=>(e.openBlock(),e.createElementBlock("div",{key:z,style:e.normalizeStyle(x({text:T.header,style:e.unref(me.resolveListHeaderStyle)(M,T)},T.widthMm,T.hidden)),onPointerdown:e.withModifiers(W=>{a("select",{pageIndex:t.pageIndex,componentIndex:A}),a("column",z)},["stop"])},e.toDisplayString(T.header),45,Wt))),128))])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value[A],(T,z)=>(e.openBlock(),e.createElementBlock("div",{key:z,class:"mr-canvas-table-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.columns,(W,q)=>(e.openBlock(),e.createElementBlock("div",{key:q,style:e.normalizeStyle(x(T[q],W.widthMm,W.hidden))},e.toDisplayString(T[q].text),5))),128))]))),128)),b.value[A]?.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ut,e.toDisplayString(M.dataset)+" · "+e.toDisplayString(M.tree&&t.datasets?.[M.dataset]?.length?n.value.treeSampleHint:n.value.sampleRows),1))]),P(A)&&!f.value&&!B(A)?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(r(M),(T,z)=>(e.openBlock(),e.createElementBlock("span",{key:z,class:"mr-canvas-column-handle","aria-label":`${n.value.resizeColumn} ${M.columns[z]?.header}`,role:"separator","aria-orientation":"vertical",style:e.normalizeStyle({left:`${T*e.unref(h)}px`}),onPointerdown:W=>G(W,M,z)},null,44,Kt))),128)):e.createCommentVNode("",!0)],64)):M.grid?(e.openBlock(),e.createElementBlock("div",Jt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_(M),(T,z)=>(e.openBlock(),e.createElementBlock("div",{key:z,style:e.normalizeStyle({left:`${T.xMm*e.unref(h)}px`,top:`${T.yMm*e.unref(h)}px`,width:`${T.widthMm*e.unref(h)}px`,height:`${T.heightMm*e.unref(h)}px`,backgroundColor:T.cell.style?.backgroundColor,color:T.cell.style?.color,fontWeight:T.cell.style?.bold?"700":"400",fontSize:`${e.unref(Se.resolveFontSize)(T.cell.style).fontSizePx*e.unref(u)}px`,textAlign:T.cell.style?.align??"left"})},e.toDisplayString(T.cell.text),5))),128)),M.grid.cells.reduce((T,z)=>T+z.length,0)>2e3?(e.openBlock(),e.createElementBlock("span",Yt,e.toDisplayString(n.value.canvasGridLimited),1)):e.createCommentVNode("",!0)])):(M.kind==="barcode"||M.kind==="qrcode")&&!l.value[A]?.image?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["mr-canvas-code",{"is-error":l.value[A]?.error}]),title:l.value[A]?.error??n.value.codePreviewHint},[C[13]||(C[13]=e.createElementVNode("svg",{viewBox:"0 0 32 24","aria-hidden":"true"},[e.createElementVNode("rect",{x:"3",y:"3",width:"26",height:"18",rx:"2"}),e.createElementVNode("path",{d:"M10 8 6 12l4 4m12-8 4 4-4 4m-8 2 4-12"})],-1)),e.createElementVNode("strong",null,e.toDisplayString(M.kind==="qrcode"?n.value.insertQrcode:(M.code?.symbology??"code128").toUpperCase()),1),e.createElementVNode("span",null,e.toDisplayString(l.value[A]?.text||n.value.codePlaceholder),1),l.value[A]?.bound?(e.openBlock(),e.createElementBlock("small",Zt,e.toDisplayString(M.binding?.field),1)):e.createCommentVNode("",!0)],10,Xt)):l.value[A]?.image?(e.openBlock(),e.createElementBlock("img",{key:3,src:l.value[A]?.image,alt:"",draggable:"false"},null,8,Qt)):(e.openBlock(),e.createElementBlock("div",{key:4,class:e.normalizeClass(["mr-canvas-content",{"is-binding-error":l.value[A]?.error,"is-bound-image":M.kind==="image"&&M.binding}]),title:l.value[A]?.error==="image-binding"?n.value.bindingImageHint:l.value[A]?.error,style:e.normalizeStyle({color:M.style?.color,backgroundColor:M.style?.backgroundColor,fontWeight:M.style?.bold?"700":"400",fontSize:`${e.unref(Se.resolveFontSize)(M.style).fontSizePx*e.unref(u)}px`,textAlign:M.style?.align,justifyContent:M.style?.verticalAlign==="bottom"?"flex-end":M.style?.verticalAlign==="middle"?"center":"flex-start"})},e.toDisplayString(l.value[A]?.text||(M.kind==="rect"?"":M.kind==="image"&&M.binding?n.value.boundImagePlaceholder:"")),15,en)),P(A)&&!f.value&&!B(A)?(e.openBlock(),e.createElementBlock("span",{key:5,class:"mr-canvas-resize","aria-label":n.value.resizeComponent,role:"separator",onPointerdown:T=>e.unref(L).start(T,M,!0)},null,40,tn)):e.createCommentVNode("",!0)],46,Ot))),128))],4)],544),e.unref(m)?(e.openBlock(),e.createElementBlock("footer",nn,[e.createElementVNode("span",null,e.toDisplayString(n.value.wideNavigation),1),e.createElementVNode("input",{type:"range",min:"0",max:"100",value:e.unref(y),"aria-label":n.value.wideNavigation,onInput:C[6]||(C[6]=M=>e.unref(k)(Number(M.target.value)))},null,40,on),e.createElementVNode("span",null,e.toDisplayString(e.unref(y))+"%",1)])):e.createCommentVNode("",!0)]))}}),ln=J._export_sfc(an,[["__scopeId","data-v-c512529e"]]),rn={class:"mr-component-binding"},sn=["value","disabled"],dn={value:"static"},cn=["disabled"],un={key:0,class:"mr-binding-hint"},mn=["value","disabled"],pn=["value"],vn={key:0,class:"mr-binding-grid"},gn=["value","disabled"],fn={value:"natural"},hn={value:"number"},yn={value:"percent"},bn={value:"date"},kn={key:0},En=["value","disabled"],Nn={key:1},Sn=["value","disabled"],Vn={key:1},wn={class:"mr-binding-grid"},xn=["value","disabled"],Cn=["value","disabled"],Mn=["value","disabled"],Bn={class:"mr-binding-hint"},Dn=e.defineComponent({__name:"ComponentDataBinding",props:{component:{},repeat:{},schema:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:s}){const o=t,a=s,n=e.computed(()=>({...re,...o.messages})),i=e.computed(()=>o.component.binding),u=`mr-component-fields-${e.getCurrentInstance()?.uid??0}`;function h(N){return N.target.value}function v(N){!o.disabled&&i.value&&a("change",{...i.value,...N})}function m(N){o.disabled||(h(N)==="static"?a("change",void 0):o.repeat&&a("change",{field:o.schema?.fields[0]?.field??"value"}))}function y(N){if(!i.value||o.disabled)return;const V={...i.value},k=h(N);k==="natural"?delete V.format:V.format=k==="date"?{kind:"date",pattern:"YYYY-MM-DD"}:{kind:k,digits:2},a("change",V)}function w(N){const V=h(N),k=i.value?.format;V.trim()&&k&&k.kind!=="date"&&v({format:{...k,digits:Number(V)}})}return(N,V)=>(e.openBlock(),e.createElementBlock("div",rn,[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:i.value?"field":"static",disabled:t.disabled,onChange:m},[e.createElementVNode("option",dn,e.toDisplayString(n.value.staticContent),1),e.createElementVNode("option",{value:"field",disabled:!t.repeat},e.toDisplayString(n.value.recordField),9,cn)],40,sn)]),t.repeat?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",un,e.toDisplayString(n.value.bindingNeedsRepeat),1)),i.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:i.value.field,list:u,disabled:t.disabled,onChange:V[0]||(V[0]=k=>h(k).trim()&&v({field:h(k).trim()}))},null,40,mn)]),e.createElementVNode("datalist",{id:u},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.schema?.fields??[],k=>(e.openBlock(),e.createElementBlock("option",{key:k.field,value:k.field},e.toDisplayString(k.label),9,pn))),128))]),t.component.kind==="text"?(e.openBlock(),e.createElementBlock("div",vn,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valueFormat),1),e.createElementVNode("select",{value:i.value.format?.kind??"natural",disabled:t.disabled,onChange:y},[e.createElementVNode("option",fn,e.toDisplayString(n.value.naturalFormat),1),e.createElementVNode("option",hn,e.toDisplayString(n.value.numberFormat),1),e.createElementVNode("option",yn,e.toDisplayString(n.value.percentFormat),1),e.createElementVNode("option",bn,e.toDisplayString(n.value.dateFormat),1)],40,gn)]),i.value.format&&i.value.format.kind!=="date"?(e.openBlock(),e.createElementBlock("label",kn,[e.createTextVNode(e.toDisplayString(n.value.decimalPlaces),1),e.createElementVNode("input",{type:"number",min:"0",max:"100",step:"1",value:i.value.format.digits??2,disabled:t.disabled,onChange:w},null,40,En)])):i.value.format?.kind==="date"?(e.openBlock(),e.createElementBlock("label",Nn,[e.createTextVNode(e.toDisplayString(n.value.datePattern),1),e.createElementVNode("input",{value:i.value.format.pattern??"YYYY-MM-DD",disabled:t.disabled,onChange:V[1]||(V[1]=k=>v({format:{kind:"date",pattern:h(k)}}))},null,40,Sn)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),t.component.kind!=="image"?(e.openBlock(),e.createElementBlock("details",Vn,[e.createElementVNode("summary",null,e.toDisplayString(n.value.bindingDecoration),1),e.createElementVNode("div",wn,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valuePrefix),1),e.createElementVNode("input",{value:i.value.prefix??"",disabled:t.disabled,onChange:V[2]||(V[2]=k=>v({prefix:h(k)}))},null,40,xn)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.valueSuffix),1),e.createElementVNode("input",{value:i.value.suffix??"",disabled:t.disabled,onChange:V[3]||(V[3]=k=>v({suffix:h(k)}))},null,40,Cn)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.emptyValueText),1),e.createElementVNode("input",{value:i.value.emptyText??"",disabled:t.disabled,onChange:V[4]||(V[4]=k=>v({emptyText:h(k)}))},null,40,Mn)])])):e.createCommentVNode("",!0),e.createElementVNode("p",Bn,e.toDisplayString(t.repeat?.dataset)+" · "+e.toDisplayString(t.component.kind==="image"?n.value.bindingImageHint:n.value.bindingRecordHint),1)],64)):e.createCommentVNode("",!0)]))}}),$n=J._export_sfc(Dn,[["__scopeId","data-v-4558f265"]]),_n={class:"mr-code-properties"},Tn={key:0},In=["value","disabled"],Rn={key:1},Ln=["value","disabled"],Pn={key:2,class:"mr-code-checkbox"},An=["checked","disabled"],Fn={class:"mr-code-advanced"},Hn={class:"mr-code-grid"},Gn={key:0},zn=["value","disabled"],On=["min","value","disabled"],jn={key:0},qn=e.defineComponent({__name:"CodeComponentInspector",props:{component:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:s}){const o=t,a=s,n=e.computed(()=>({...re,...o.messages})),i=e.computed(()=>o.component.kind==="qrcode"?4:o.component.code?.symbology?.startsWith("ean")?11:10);function u(m){return m.target.value}function h(m){o.disabled||a("change",{...o.component.code,...m})}function v(m){const y=u(m);h({symbology:y,quietZoneModules:y.startsWith("ean")?11:10})}return(m,y)=>(e.openBlock(),e.createElementBlock("div",_n,[e.createElementVNode("h3",null,e.toDisplayString(n.value.codeSettings),1),t.component.binding?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("label",Tn,[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:y[0]||(y[0]=w=>h({value:u(w)}))},null,40,In)])),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("label",Rn,[e.createTextVNode(e.toDisplayString(n.value.codeSymbology),1),e.createElementVNode("select",{value:t.component.code?.symbology??"code128",disabled:t.disabled,onChange:v},[...y[4]||(y[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,Ln)])):e.createCommentVNode("",!0),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("label",Pn,[e.createElementVNode("input",{type:"checkbox",checked:t.component.code?.showText===!0,disabled:t.disabled,onChange:y[1]||(y[1]=w=>h({showText:w.target.checked}))},null,40,An),e.createTextVNode(e.toDisplayString(n.value.codeShowText),1)])):e.createCommentVNode("",!0),e.createElementVNode("details",Fn,[e.createElementVNode("summary",null,e.toDisplayString(n.value.codeAdvancedSettings),1),e.createElementVNode("div",Hn,[t.component.kind==="qrcode"?(e.openBlock(),e.createElementBlock("label",Gn,[e.createTextVNode(e.toDisplayString(n.value.codeCorrection),1),e.createElementVNode("select",{value:t.component.code?.errorCorrection??"M",disabled:t.disabled,onChange:y[2]||(y[2]=w=>h({errorCorrection:u(w)}))},[...y[5]||(y[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,zn)])):e.createCommentVNode("",!0),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.codeQuietZone),1),e.createElementVNode("input",{type:"number",min:i.value,max:"64",step:"1",value:t.component.code?.quietZoneModules??i.value,disabled:t.disabled,onChange:y[3]||(y[3]=w=>u(w).trim()&&h({quietZoneModules:Number(u(w))}))},null,40,On)])]),t.component.kind==="barcode"?(e.openBlock(),e.createElementBlock("p",jn,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)])]))}}),Wn=J._export_sfc(qn,[["__scopeId","data-v-907fe45a"]]),Un=["aria-label"],Kn=["data-align","aria-label","title","aria-checked","tabindex","onClick","onKeydown"],Jn={key:0},Yn={key:1,viewBox:"0 0 20 20",fill:"none","aria-hidden":"true"},Xn={key:0,d:"M3 4h14M3 8h9M3 12h14M3 16h9"},Zn={key:1,d:"M3 4h14M6 8h8M3 12h14M6 16h8"},Qn={key:2,d:"M3 4h14M8 8h9M3 12h14M8 16h9"},eo={key:3,d:"M3 4h14M3 8h14M3 12h14M3 16h14"},to=e.defineComponent({__name:"AlignmentControl",props:{modelValue:{},label:{},labels:{},autoLabel:{},allowAuto:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:s}){const o=t,a=s,n=()=>o.allowAuto?["auto","left","center","right","justify"]:["left","center","right","justify"];async function i(u,h){if(!["ArrowLeft","ArrowRight","Home","End"].includes(u.key))return;u.preventDefault();const m=n(),y=m.indexOf(h),w=u.key==="Home"?0:u.key==="End"?m.length-1:(y+(u.key==="ArrowRight"?1:-1)+m.length)%m.length;a("update:modelValue",m[w]);const N=u.currentTarget.parentElement;await e.nextTick(),N?.querySelector(`[data-align="${m[w]}"]`)?.focus()}return(u,h)=>(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(),v=>(e.openBlock(),e.createElementBlock("button",{key:v,type:"button",role:"radio","data-align":v,"aria-label":t.labels[v],title:t.labels[v],"aria-checked":t.modelValue===v,tabindex:t.modelValue===v?0:-1,onClick:m=>a("update:modelValue",v),onKeydown:m=>i(m,v)},[v==="auto"?(e.openBlock(),e.createElementBlock("span",Jn,e.toDisplayString(t.autoLabel),1)):(e.openBlock(),e.createElementBlock("svg",Yn,[v==="left"?(e.openBlock(),e.createElementBlock("path",Xn)):v==="center"?(e.openBlock(),e.createElementBlock("path",Zn)):v==="right"?(e.openBlock(),e.createElementBlock("path",Qn)):(e.openBlock(),e.createElementBlock("path",eo))]))],40,Kn))),128))],8,Un))}}),He=J._export_sfc(to,[["__scopeId","data-v-c85770c4"]]),no=["disabled"],oo={class:"mr-component-content"},ao={key:1},lo=["value"],ro=["value"],io={class:"mr-component-upload"},so=["aria-label"],co={key:0,role:"alert"},uo={key:4},mo=["value"],po={key:0,class:"mr-component-type"},vo={class:"mr-component-dimensions"},go=["value"],fo=["checked"],ho={class:"mr-component-dimensions"},yo=["value"],bo=["value"],ko=["open"],Eo={class:"mr-component-dimensions"},No=["min","value","disabled","onChange"],So={key:0},Vo=["value","disabled"],wo={value:""},xo={value:"header"},Co={value:"footer"},Mo=e.defineComponent({__name:"CanvasComponentInspector",props:{component:{},disabled:{type:Boolean},geometryDisabled:{type:Boolean},repeat:{},schema:{},messages:{}},emits:["geometry","patch"],setup(t,{emit:s}){const o=t,a=s,n=e.computed(()=>({...re,...o.messages})),i=e.ref(""),u=["leftMm","topMm","widthMm","heightMm"],h=e.computed(()=>[n.value.leftPosition,n.value.topPosition,n.value.componentWidth,n.value.componentHeight]);function v(V,k){if(o.disabled||o.geometryDisabled)return;const f=Number(k.target.value);if(!Number.isFinite(f))return;const b={...ne(o.component),[V]:f};o.component.kind==="qrcode"&&(V==="widthMm"||V==="heightMm")&&(b.widthMm=b.heightMm=f),a("geometry",b)}function m(V,k){if(o.component.kind==="list")return;const f={...o.component.style,[V]:k};V==="fontSize"&&delete f.fontSizePx,a("patch",{style:f})}const y=e.computed(()=>({auto:n.value.auto,left:n.value.left,center:n.value.center,right:n.value.right,justify:n.value.justify}));function w(V){return V.target.value}async function N(V){const k=V.target,f=k.files?.[0];if(!f)return;i.value="";const b=o.component;try{if(f.size>4*1024*1024||!["image/png","image/jpeg","image/webp","image/svg+xml"].includes(f.type))throw new Error(n.value.imageBudget);const l=new FileReader,c=await new Promise((g,E)=>{l.onload=()=>g(String(l.result)),l.onerror=()=>E(l.error),l.readAsDataURL(f)});!o.disabled&&o.component===b&&a("patch",{imageData:c})}catch(l){i.value=l instanceof Error?l.message:String(l)}finally{k.value=""}}return(V,k)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-component-properties",disabled:t.disabled},[e.createElementVNode("div",oo,[["text","image","barcode","qrcode"].includes(t.component.kind)&&t.component.kind!=="list"&&!t.component.grid?(e.openBlock(),e.createBlock($n,{key:0,component:t.component,repeat:t.repeat,schema:t.schema,disabled:t.disabled,messages:n.value,onChange:k[0]||(k[0]=f=>a("patch",{binding:f,...["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",ao,[e.createTextVNode(e.toDisplayString(n.value.componentText),1),e.createElementVNode("textarea",{rows:"3",value:t.component.text,onChange:k[1]||(k[1]=f=>a("patch",{text:w(f)}))},null,40,lo)])):e.createCommentVNode("",!0),t.component.kind==="image"&&!t.component.binding?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.imageSource),1),e.createElementVNode("textarea",{rows:"2",value:t.component.imageData,onChange:k[2]||(k[2]=f=>a("patch",{imageData:w(f)}))},null,40,ro)]),e.createElementVNode("label",io,[e.createTextVNode(e.toDisplayString(n.value.imageUpload),1),e.createElementVNode("input",{type:"file",accept:"image/png,image/jpeg,image/webp,image/svg+xml","aria-label":n.value.imageUpload,onChange:N},null,40,so)]),i.value?(e.openBlock(),e.createElementBlock("p",co,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),t.component.kind==="barcode"||t.component.kind==="qrcode"?(e.openBlock(),e.createBlock(Wn,{key:3,component:t.component,disabled:t.disabled,messages:n.value,onChange:k[3]||(k[3]=f=>a("patch",{code:f,imageData:void 0}))},null,8,["component","disabled","messages"])):e.createCommentVNode("",!0),t.component.kind==="list"?(e.openBlock(),e.createElementBlock("label",uo,[e.createTextVNode(e.toDisplayString(n.value.listDataset),1),e.createElementVNode("input",{value:t.component.dataset,onChange:k[4]||(k[4]=f=>a("patch",{dataset:w(f)}))},null,40,mo)])):e.createCommentVNode("",!0)]),t.component.kind==="text"?(e.openBlock(),e.createElementBlock("div",po,[e.createElementVNode("h3",null,e.toDisplayString(n.value.textFormat),1),e.createElementVNode("div",vo,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.fontSize),1),e.createElementVNode("input",{type:"number",min:"1",max:"200",value:e.unref(Se.resolveFontSize)(t.component.style).fontSizePt,onChange:k[5]||(k[5]=f=>m("fontSize",Number(w(f))))},null,40,go)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.fontBold),1),e.createElementVNode("input",{type:"checkbox",checked:t.component.style?.bold===!0,onChange:k[6]||(k[6]=f=>m("bold",f.target.checked))},null,40,fo)])]),e.createVNode(He,{"model-value":t.component.style?.align??"left",label:n.value.bodyAlign,labels:y.value,"auto-label":n.value.autoShort,"onUpdate:modelValue":k[7]||(k[7]=f=>m("align",f))},null,8,["model-value","label","labels","auto-label"]),e.createElementVNode("div",ho,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.textColor),1),e.createElementVNode("input",{type:"color",value:t.component.style?.color??"#233c5c",onChange:k[8]||(k[8]=f=>m("color",w(f)))},null,40,yo)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.backgroundColor),1),e.createElementVNode("input",{type:"color",value:t.component.style?.backgroundColor??"#ffffff",onChange:k[9]||(k[9]=f=>m("backgroundColor",w(f)))},null,40,bo)])])])):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(ne)(t.component).widthMm)+" × "+e.toDisplayString(e.unref(ne)(t.component).heightMm),1)]),e.createElementVNode("div",Eo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.filter(f=>t.component.kind!=="list"||f!=="heightMm"),(f,b)=>(e.openBlock(),e.createElementBlock("label",{key:f},[e.createTextVNode(e.toDisplayString(h.value[b]),1),e.createElementVNode("input",{type:"number",step:"0.5",min:f==="widthMm"||f==="heightMm"?2:0,value:e.unref(ne)(t.component)[f],disabled:t.geometryDisabled,onChange:l=>v(f,l)},null,40,No)]))),128))]),t.component.kind!=="list"&&!t.repeat?(e.openBlock(),e.createElementBlock("label",So,[e.createTextVNode(e.toDisplayString(n.value.repeatPage),1),e.createElementVNode("select",{value:t.component.pageAnchor??"",disabled:t.geometryDisabled,onChange:k[10]||(k[10]=f=>a("patch",{pageAnchor:w(f)||void 0}))},[e.createElementVNode("option",wo,e.toDisplayString(n.value.repeatNone),1),e.createElementVNode("option",xo,e.toDisplayString(n.value.repeatHeader),1),e.createElementVNode("option",Co,e.toDisplayString(n.value.repeatFooter),1)],40,Vo)])):e.createCommentVNode("",!0)],8,ko)],8,no))}}),Bo=J._export_sfc(Mo,[["__scopeId","data-v-435b5126"]]),Do=["disabled"],$o={class:"mr-page-section-heading"},_o=["aria-label"],To=["aria-pressed","onClick"],Io={class:"mr-page-actions"},Ro=["disabled"],Lo={key:0,class:"mr-page-confirm",role:"alert"},Po=["value","placeholder"],Ao=["value"],Fo=["value"],Ho={value:"custom"},Go={class:"mr-page-grid"},zo=["value"],Oo=["value"],jo=["value"],qo={value:"page"},Wo=["disabled"],Uo={class:"mr-page-grid"},Ko=["value","onChange"],Jo={key:1,class:"mr-page-overflow",role:"status"},Yo=e.defineComponent({__name:"TemplatePageInspector",props:{document:{},pageIndex:{},disabled:{type:Boolean},messages:{}},emits:["select","command","locate"],setup(t,{emit:s}){const o=t,a=s,n=e.computed(()=>({...re,...o.messages})),i=e.computed(()=>o.document.template.pages[o.pageIndex]),u=e.computed(()=>Ae.find(b=>b.widthMm===i.value.widthMm&&b.heightMm===i.value.heightMm)?.id??"custom"),h=e.computed(()=>Xe(i.value)),v=e.ref(!1);e.watch(()=>[o.pageIndex,o.document],()=>{v.value=!1});const m=["marginTopMm","marginRightMm","marginBottomMm","marginLeftMm"],y=e.computed(()=>[n.value.marginTop,n.value.marginRight,n.value.marginBottom,n.value.marginLeft]);function w(b){return b.target.value}function N(b){o.disabled||a("command",{type:"patch",patch:b})}function V(b){const l=Ae.find(c=>c.id===w(b));l&&N({widthMm:l.widthMm,heightMm:l.heightMm,layout:"page"})}function k(b,l){const c=w(l);c.trim()&&Number.isFinite(Number(c))&&N({[b]:Number(c)})}function f(){if(!(o.disabled||o.document.template.pages.length<=1)){if(i.value.components.length&&!v.value){v.value=!0;return}a("command",{type:"remove"}),v.value=!1}}return(b,l)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-page-properties",disabled:t.disabled},[e.createElementVNode("div",$o,[e.createElementVNode("h3",null,e.toDisplayString(n.value.paperAndPages),1),e.createElementVNode("span",null,e.toDisplayString(i.value.widthMm)+" × "+e.toDisplayString(i.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,(c,g)=>(e.openBlock(),e.createElementBlock("button",{key:g,type:"button","aria-pressed":t.pageIndex===g,onClick:E=>a("select",g)},[e.createElementVNode("span",null,e.toDisplayString(g+1),1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(we)(c,g,n.value.page)),1),e.createElementVNode("small",null,e.toDisplayString(c.widthMm)+" × "+e.toDisplayString(c.heightMm),1)],8,To))),128))],8,_o),e.createElementVNode("div",Io,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=c=>a("command",{type:"add"}))},"+ "+e.toDisplayString(n.value.addPage),1),e.createElementVNode("button",{type:"button",onClick:l[1]||(l[1]=c=>a("command",{type:"duplicate"}))},e.toDisplayString(n.value.duplicatePage),1),e.createElementVNode("button",{type:"button",disabled:t.disabled||t.document.template.pages.length<=1,onClick:f},e.toDisplayString(n.value.removePage),9,Ro)]),v.value?(e.openBlock(),e.createElementBlock("div",Lo,[e.createElementVNode("span",null,e.toDisplayString(n.value.removePageConfirm),1),e.createElementVNode("button",{type:"button",onClick:l[2]||(l[2]=c=>v.value=!1)},e.toDisplayString(n.value.keepEditing),1),e.createElementVNode("button",{type:"button",onClick:f},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:i.value.meta?.title??"",placeholder:`${n.value.page} ${t.pageIndex+1}`,maxlength:"120",onChange:l[3]||(l[3]=c=>N({meta:{...i.value.meta,title:w(c)}}))},null,40,Po)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperPreset),1),e.createElementVNode("select",{value:u.value,onChange:V},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Ae),c=>(e.openBlock(),e.createElementBlock("option",{key:c.id,value:c.id},e.toDisplayString(c.id.startsWith("label")?n.value.labelPaper:c.id.toUpperCase())+" · "+e.toDisplayString(c.widthMm)+" × "+e.toDisplayString(c.heightMm)+" mm",9,Fo))),128)),e.createElementVNode("option",Ho,e.toDisplayString(n.value.customPaper),1)],40,Ao)]),e.createElementVNode("div",Go,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.paperWidth),1),e.createElementVNode("input",{type:"number",min:"1",step:"0.5",value:i.value.widthMm,onChange:l[4]||(l[4]=c=>k("widthMm",c))},null,40,zo)]),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:i.value.heightMm,onChange:l[5]||(l[5]=c=>k("heightMm",c))},null,40,Oo)])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.pageLayout),1),e.createElementVNode("select",{value:i.value.layout??"page",onChange:l[6]||(l[6]=c=>N({layout:w(c)}))},[e.createElementVNode("option",qo,e.toDisplayString(n.value.fixedPaper),1),e.createElementVNode("option",{value:"wide",disabled:!!t.document.template.repeat},e.toDisplayString(n.value.completeWide),9,Wo)],40,jo)]),e.createElementVNode("details",null,[e.createElementVNode("summary",null,e.toDisplayString(n.value.pageMargins),1),e.createElementVNode("div",Uo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(m,(c,g)=>e.createElementVNode("label",{key:c},[e.createTextVNode(e.toDisplayString(y.value[g]),1),e.createElementVNode("input",{type:"number",min:"0",step:"0.5",value:i.value[c]??0,onChange:E=>k(c,E)},null,40,Ko)])),64))])]),h.value.length?(e.openBlock(),e.createElementBlock("div",Jo,[e.createElementVNode("strong",null,e.toDisplayString(n.value.pageOverflow.replace("{count}",String(h.value.length))),1),e.createElementVNode("p",null,e.toDisplayString(n.value.pageOverflowHint),1),e.createElementVNode("button",{type:"button",onClick:l[7]||(l[7]=c=>a("locate",h.value[0]))},e.toDisplayString(n.value.locateOverflow),1)])):e.createCommentVNode("",!0)],8,Do))}}),Xo=J._export_sfc(Yo,[["__scopeId","data-v-da0b7ab6"]]),Zo=["disabled"],Qo={class:"mr-repeat-toggle"},ea=["checked","disabled"],ta=["value","list"],na=["id"],oa=["value"],aa=["value"],la=["value"],ra={class:"mr-repeat-grid"},ia=["value"],sa={value:"fixed"},da={value:"field"},ca={key:0},ua=["value"],ma={key:1},pa=["value"],va={class:"mr-repeat-note"},ga=e.defineComponent({__name:"TemplateRepeatInspector",props:{document:{},datasets:{},schemas:{},disabled:{type:Boolean},messages:{}},emits:["change"],setup(t,{emit:s}){const o=t,a=s,n=e.computed(()=>({...re,...o.messages})),i=e.computed(()=>o.document.template.repeat),u=e.computed(()=>o.schemas?.[i.value?.dataset??""]?.fields??[]),h=e.computed(()=>[...new Set([...o.datasets??[],...Object.keys(o.schemas??{}),...i.value?[i.value.dataset]:[]])]),v=e.computed(()=>o.document.template.pages.some(l=>l.components.some(c=>c.kind!=="list"&&c.binding))),m=e.computed(()=>o.document.template.pages.some(l=>l.layout==="wide"||!!l.flow||l.components.some(c=>c.kind==="list")||Xe(l).length>0)),y=e.computed(()=>typeof i.value?.copies=="object"?"field":"fixed"),w=`mr-repeat-fields-${e.getCurrentInstance()?.uid??0}`;function N(l){return l.target.value}function V(l){!o.disabled&&i.value&&a("change",{...i.value,...l})}function k(l){o.disabled||(l.target.checked?m.value||a("change",{dataset:h.value[0]??"detail",copies:1}):v.value||a("change",void 0))}function f(l){if(!i.value||o.disabled)return;const c={...i.value},g=N(l).trim();g?c.rowKey=g:delete c.rowKey,a("change",c)}function b(l){V({copies:N(l)==="field"?{field:u.value.find(c=>c.type==="number")?.field??"copies"}:1})}return(l,c)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mr-repeat-properties",disabled:t.disabled},[e.createElementVNode("label",Qo,[e.createElementVNode("span",null,[e.createElementVNode("strong",null,e.toDisplayString(n.value.repeatRecords),1),e.createElementVNode("small",null,e.toDisplayString(m.value?n.value.repeatNeedsFixed:n.value.repeatRecordsHint),1)]),e.createElementVNode("input",{type:"checkbox",checked:!!i.value,disabled:t.disabled||!!i.value&&v.value||!i.value&&m.value,onChange:k},null,40,ea)]),i.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:i.value.dataset,list:`${w}-datasets`,onChange:c[0]||(c[0]=g=>N(g).trim()&&V({dataset:N(g).trim()}))},null,40,ta)]),e.createElementVNode("datalist",{id:`${w}-datasets`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,g=>(e.openBlock(),e.createElementBlock("option",{key:g,value:g},null,8,oa))),128))],8,na),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.recordRowKey),1),e.createElementVNode("input",{value:i.value.rowKey??"",list:w,onChange:f},null,40,aa)]),e.createElementVNode("datalist",{id:w},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,g=>(e.openBlock(),e.createElementBlock("option",{key:g.field,value:g.field},e.toDisplayString(g.label),9,la))),128))]),e.createElementVNode("div",ra,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.labelCopies),1),e.createElementVNode("select",{value:y.value,onChange:b},[e.createElementVNode("option",sa,e.toDisplayString(n.value.fixedCopies),1),e.createElementVNode("option",da,e.toDisplayString(n.value.fieldCopies),1)],40,ia)]),y.value==="fixed"?(e.openBlock(),e.createElementBlock("label",ca,[e.createTextVNode(e.toDisplayString(n.value.copiesPerRecord),1),e.createElementVNode("input",{type:"number",min:"1",max:"1000",step:"1",value:i.value.copies??1,onChange:c[1]||(c[1]=g=>N(g).trim()&&V({copies:Number(N(g))}))},null,40,ua)])):(e.openBlock(),e.createElementBlock("label",ma,[e.createTextVNode(e.toDisplayString(n.value.copiesField),1),e.createElementVNode("input",{value:typeof i.value.copies=="object"?i.value.copies.field:"",list:w,onChange:c[2]||(c[2]=g=>N(g).trim()&&V({copies:{field:N(g).trim()}}))},null,40,pa)]))]),e.createElementVNode("p",va,e.toDisplayString(v.value?n.value.repeatBoundHint:n.value.repeatOrderHint),1)],64)):e.createCommentVNode("",!0)],8,Zo))}}),fa=J._export_sfc(ga,[["__scopeId","data-v-de1ee031"]]),ha={class:"mr-header-editor"},ya=["disabled"],ba=["value"],ka=["value"],Ea=["value"],Na=["disabled"],Sa=e.defineComponent({__name:"HeaderStructureEditor",props:{list:{},disabled:{type:Boolean},messages:{}},emits:["command"],setup(t,{emit:s}){const o=t,a=s,n=e.computed(()=>({...re,...o.messages})),i=e.ref(0),u=e.ref(0),h=e.ref(Math.min(1,o.list.columns.length-1));return e.watch(()=>o.list.columns.length,v=>{u.value=Math.min(u.value,v-1),h.value=Math.min(h.value,v-1)}),(v,m)=>(e.openBlock(),e.createElementBlock("details",ha,[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":m[0]||(m[0]=y=>i.value=y)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.headerGrid?.cells.length??1,y=>(e.openBlock(),e.createElementBlock("option",{key:y,value:y-1},e.toDisplayString(y),9,ba))),128))],512),[[e.vModelSelect,i.value,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerFirst),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":m[1]||(m[1]=y=>u.value=y)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,(y,w)=>(e.openBlock(),e.createElementBlock("option",{key:w,value:w},e.toDisplayString(w+1)+" · "+e.toDisplayString(y.header),9,ka))),128))],512),[[e.vModelSelect,u.value,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(n.value.headerLast),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":m[2]||(m[2]=y=>h.value=y)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,(y,w)=>(e.openBlock(),e.createElementBlock("option",{key:w,value:w},e.toDisplayString(w+1)+" · "+e.toDisplayString(y.header),9,Ea))),128))],512),[[e.vModelSelect,h.value,void 0,{number:!0}]])]),e.createElementVNode("div",null,[e.createElementVNode("button",{type:"button",onClick:m[3]||(m[3]=y=>a("command",{action:"add",row:i.value,first:u.value,last:h.value}))},e.toDisplayString(n.value.addHeaderRow),1),e.createElementVNode("button",{type:"button",disabled:u.value>=h.value,onClick:m[4]||(m[4]=y=>a("command",{action:"merge",row:i.value,first:u.value,last:h.value}))},e.toDisplayString(n.value.mergeHeader),9,Na),e.createElementVNode("button",{type:"button",onClick:m[5]||(m[5]=y=>a("command",{action:"split",row:i.value,first:u.value,last:h.value}))},e.toDisplayString(n.value.splitHeader),1)])],8,ya)]))}}),Va=J._export_sfc(Sa,[["__scopeId","data-v-acd607ef"]]),se=t=>`${t.pageIndex}:${t.componentIndex}`;function wa(t,s,o){const a=e.ref([]),n=e.ref(new Set);e.watch(()=>t.value.id,()=>{a.value=[],n.value=new Set});const i=N=>!!N&&n.value.has(se(N));function u(N){const V={pageIndex:N.pageIndex,componentIndex:N.componentIndex};if(N.additive&&a.value.every(k=>k.pageIndex===N.pageIndex)){const k=a.value.some(f=>se(f)===se(N));a.value=k?a.value.filter(f=>se(f)!==se(N)):[...a.value,V],s.value=k?a.value.at(-1):V}else a.value=[V],s.value=V}const h=e.computed(()=>a.value.filter(N=>!i(N)));function v(){const N=new Set(n.value),V=a.value.every(i);for(const k of a.value)V?N.delete(se(k)):N.add(se(k));n.value=N}function m(N){h.value.length<2||o(V=>{const k=h.value.map(E=>de(V,E)).filter(Boolean),f=k.map(ne),b=Math.min(...f.map(E=>E.leftMm)),l=Math.min(...f.map(E=>E.topMm)),c=Math.max(...f.map(E=>E.leftMm+E.widthMm)),g=Math.max(...f.map(E=>E.topMm+E.heightMm));k.forEach((E,x)=>{const B=f[x],$={left:b,center:(b+c-B.widthMm)/2,right:c-B.widthMm},L={top:l,middle:(l+g-B.heightMm)/2,bottom:g-B.heightMm};N in $?B.leftMm=$[N]:B.topMm=L[N],ge(E,B)})})}function y(N){h.value.length<3||o(V=>{const k=N==="horizontal"?"leftMm":"topMm",f=N==="horizontal"?"widthMm":"heightMm",b=h.value.map(x=>({component:de(V,x),box:ne(de(V,x))})).sort((x,B)=>x.box[k]-B.box[k]),l=b[0].box[k],g=(Math.max(...b.map(x=>x.box[k]+x.box[f]))-l-b.reduce((x,B)=>x+B.box[f],0))/(b.length-1);let E=l;for(const x of b)x.box[k]=E,ge(x.component,x.box),E+=x.box[f]+g})}function w(N,V,k){function f(b){if(b.pageIndex!==N)return b;const l=b.componentIndex;return k===void 0?l===V?void 0:{...b,componentIndex:l>V?l-1:l}:{...b,componentIndex:l===V?k:l===k?V:l}}n.value=new Set([...n.value].flatMap(b=>{const[l,c]=b.split(":").map(Number),g=f({pageIndex:l,componentIndex:c});return g?[se(g)]:[]})),a.value=a.value.flatMap(b=>{const l=f(b);return l?[l]:[]})}return{clearLocks:()=>{n.value=new Set},selections:a,locked:i,allLocked:e.computed(()=>!!a.value.length&&a.value.every(i)),toggleLock:v,align:m,distribute:y,select:u,remap:w}}function xa(t,s){const o=e.ref("preview"),a=e.ref(),n=e.ref(0),i=e.computed(()=>!!t.value.template.pages[a.value?.pageIndex??n.value]?.flow),u=wa(t,a,f=>i.value?!1:s(f)),h=e.computed(()=>de(t.value,a.value));e.watch(n,f=>{a.value?.pageIndex!==f&&(a.value=void 0,u.selections.value=[])}),e.watch(t,()=>{h.value||(a.value=void 0),u.selections.value=u.selections.value.filter(f=>!!de(t.value,f)),t.value.template.pages[n.value]||(n.value=0)});function v(f){u.select(f),n.value=f.pageIndex}function m(f){const b=a.value;return!b||u.locked(b)?!1:s(l=>{const c=de(l,b);c&&f(c,l)})}function y(f){i.value||m((b,l)=>{const c=l.template.pages[a.value.pageIndex];ge(b,Ve(f,c,b.kind==="list"))})}function w(f){if(t.value.template.pages[n.value]?.flow||f==="list"&&t.value.template.repeat)return;let b=-1;const l=n.value;s(c=>{const g=c.template.pages[l].components,E=ct(f);ge(E,Ve(ne(E),c.template.pages[l],E.kind==="list")),E.kind==="qrcode"&&(E.widthMm=E.heightMm=Math.min(E.widthMm,E.heightMm)),g.push(E),b=g.length-1})&&v({pageIndex:l,componentIndex:b})}function N(){if(i.value)return;const f=a.value;f&&!u.locked(f)&&s(b=>{b.template.pages[f.pageIndex].components.splice(f.componentIndex,1)})&&(u.remap(f.pageIndex,f.componentIndex),a.value=void 0)}function V(){if(i.value)return;const f=a.value;if(!f)return;let b=-1;s(l=>{const c=l.template.pages[f.pageIndex],g=JSON.parse(JSON.stringify(de(l,f))),E=ne(g);E.leftMm+=4,E.topMm+=4,ge(g,Ve(E,c,g.kind==="list")),g.kind==="list"?delete g.id:(delete g.nid,delete g.rkey),c.components.push(g),b=c.components.length-1})&&v({pageIndex:f.pageIndex,componentIndex:b})}function k(f){if(i.value)return;const b=a.value;if(!b||u.locked(b))return;const l=b.componentIndex+f;t.value.template.pages[b.pageIndex]?.components[l]&&s(c=>{const g=c.template.pages[b.pageIndex].components;g.splice(l,0,g.splice(b.componentIndex,1)[0])})&&(u.remap(b.pageIndex,b.componentIndex,l),v({pageIndex:b.pageIndex,componentIndex:l}))}return{...u,mode:o,selection:a,pageIndex:n,active:h,geometryDisabled:i,select:v,mutate:m,geometry:y,insert:w,remove:N,duplicate:V,reorder:k}}function Ca(t,s,o){const{draft:a,lists:n,selected:i,activeList:u,blocked:h,jsonPending:v,error:m}=t,{section:y,activeIndex:w}=s,N=xa(a,t.transaction),{mode:V,selection:k,pageIndex:f,active:b}=N;t.connectHistoryView({read:()=>({pageIndex:f.value,componentIndex:k.value?.pageIndex===f.value?k.value.componentIndex:void 0}),restore:_=>{f.value=Math.max(0,Math.min(a.value.template.pages.length-1,_.pageIndex)),N.selection.value=void 0,N.selections.value=[],_.componentIndex!==void 0&&a.value.template.pages[f.value]?.components[_.componentIndex]&&N.select({pageIndex:f.value,componentIndex:_.componentIndex})}}),e.watch(t.historyViewRevision,()=>t.captureHistoryView(),{flush:"post"});const l=e.ref("excel"),c=e.ref(new Set);e.watch([y,l],()=>{y.value==="tools"&&(c.value=new Set([...c.value,l.value]))}),e.watch(k,_=>{if(!_)return;const R=n.value.findIndex(I=>I.pageIndex===_.pageIndex&&I.componentIndex===_.componentIndex);R>=0&&(i.value=R)}),e.watch([w,i,V,y],()=>{if(V.value!=="design"||y.value!=="fields")return;const _=n.value[i.value];_&&(k.value?.pageIndex!==_.pageIndex||k.value.componentIndex!==_.componentIndex)&&N.select({pageIndex:_.pageIndex,componentIndex:_.componentIndex})});const g=e.computed(()=>t.editingReadonly.value||h.value||v.value),E=e.computed(()=>o()?.[u.value?.dataset??""]);function x(_){V.value=_,y.value==="tools"&&(y.value=_==="design"||!n.value.length?"component":"fields")}function B(_){if(!a.value.template.pages[_.pageIndex]?.components[_.componentIndex])return;if(N.select(_),a.value.template.pages[_.pageIndex]?.components[_.componentIndex]?.kind==="list"){const I=n.value.findIndex(G=>G.pageIndex===_.pageIndex&&G.componentIndex===_.componentIndex);I>=0&&(i.value=I),y.value="fields"}else y.value="component"}function $(_){const R=_.target;R.value&&(N.insert(R.value),V.value="design",y.value="component",R.value="")}function L(_){a.value.template.pages[f.value]?.flow&&["leftMm","topMm","widthMm","heightMm","pageAnchor","grid"].some(R=>R in _)||N.mutate((R,I)=>{if(R.kind!=="list"&&_.pageAnchor!==R.pageAnchor){const S=I.template.pages[k.value.pageIndex];_.pageAnchor==="header"&&(R.topMm=S.marginTopMm??0),_.pageAnchor==="footer"&&(R.topMm=Math.max(0,S.heightMm-(S.marginBottomMm??0)-R.heightMm))}const G=R;for(const[S,C]of Object.entries(_))C===void 0?delete G[S]:G[S]=C})}function P(_){const R=n.value[i.value];R&&t.transaction(I=>{I.template.pages[R.pageIndex].components[R.componentIndex]=_})}function Y(_){const R=u.value;if(!R||a.value.template.pages[n.value[i.value]?.pageIndex??-1]?.flow)return;const I=JSON.parse(JSON.stringify(R));try{ut(I,w.value,w.value+_)&&(P(I),s.activate(w.value+_))}catch(G){m.value=G instanceof Error?G.message:String(G)}}function Q(_){const R=n.value[i.value];!R||a.value.template.pages[R.pageIndex]?.flow||t.transaction(I=>{const G=I.template.pages[R.pageIndex].components[R.componentIndex];G?.kind==="list"&&(_.action==="add"?mt(G):_.action==="merge"?pt(G,_.row,_.first,_.last):vt(G,_.row,_.first))})}function r(_){const R=/\.pages\[(\d+)\]\.components\[(\d+)\]/.exec(_.path??""),I=_.pageIndex??(R?Number(R[1]):void 0),G=_.componentIndex??(R?Number(R[2]):void 0);if(!(I===void 0||G===void 0)&&(V.value="design",B({pageIndex:I,componentIndex:G}),_.field)){const S=u.value?.columns.findIndex(C=>C.field===_.field);S!==void 0&&S>=0&&s.activate(S)}}return{mode:V,setMode:x,canvasSelection:k,canvasPage:f,canvasActive:b,tool:l,visitedTools:c,editDisabled:g,dataSchema:E,chooseCanvas:B,insertComponent:$,patchCanvas:L,changeList:P,moveColumn:Y,headerCommand:Q,locateReview:r,canvas:N}}function Ma(t,s,o){if(!t.length)return;const a=Math.max(0,t.indexOf(s)),i={ArrowDown:Math.min(a+1,t.length-1),ArrowUp:Math.max(a-1,0),Home:0,End:t.length-1}[o];return i===void 0?void 0:t[i]}function Ba(t,s,o){const a=e.ref(!1),n=e.ref(t.activeIndex.value),i=e.ref(null),u=e.ref(null),h=e.ref(null),v=e.ref(null);function m(c=!1){const g=v.value,E=g?.querySelector(`button[data-column-index="${n.value}"]`);if(!g||!E)return;c&&E.focus({preventScroll:!0});const x=g.getBoundingClientRect(),B=E.getBoundingClientRect(),$=x.top+g.clientTop,L=$+g.clientHeight;B.top<$?g.scrollTop+=B.top-$:B.bottom>L&&(g.scrollTop+=B.bottom-L)}async function y(c=!1){a.value&&(a.value=!1,c&&(await e.nextTick(),i.value?.focus({preventScroll:!0})))}async function w(){if(a.value)return y(!0);const c=o.value.map(g=>g.index);n.value=c.includes(t.activeIndex.value)?t.activeIndex.value:c[0]??-1,a.value=!0,await e.nextTick(),h.value?.focus({preventScroll:!0}),m()}function N(c){t.activate(c),y(!0)}function V(c){a.value&&(c.preventDefault(),c.stopPropagation(),y(!0))}async function k(c){const g=Ma(o.value.map(E=>E.index),n.value,c.key);g!==void 0&&(n.value=g,c.preventDefault(),await e.nextTick(),m(!0))}async function f(c){if(!["ArrowDown","ArrowUp","Enter"].includes(c.key))return;c.preventDefault(),c.stopPropagation();const g=o.value.map(E=>E.index);if(g.length){if(c.key==="Enter"){g.includes(n.value)&&N(n.value);return}c.key==="ArrowUp"&&(n.value=g.at(-1)),await e.nextTick(),m(!0)}}function b(c){const g=c.target;!a.value||u.value?.contains(g)||i.value?.contains(g)||y()}function l(c){const g=c.relatedTarget;!g||u.value?.contains(g)||i.value?.contains(g)||y()}return e.watch(o,c=>{c.some(g=>g.index===n.value)||(n.value=c[0]?.index??-1)}),e.watch(s,()=>{y()}),e.onMounted(()=>document.addEventListener("pointerdown",b)),e.onBeforeUnmount(()=>document.removeEventListener("pointerdown",b)),{open:a,cursor:n,trigger:i,panel:u,search:h,list:v,toggle:w,close:y,choose:N,escape:V,navigate:k,searchKeydown:f,leave:l}}function Da(t,s,o,a){const n=e.ref(0),i=e.ref(""),u=e.ref([]),h=e.computed(()=>t.value.template.pages.flatMap((g,E)=>g.components.flatMap((x,B)=>x.kind==="list"?[{component:x,pageIndex:E,componentIndex:B}]:[]))),v=e.computed(()=>h.value[n.value]?.component),m=e.computed(()=>{const g=v.value;if(!g)return[];const E=g.columns.map(x=>x.headerStyle?.align??x.headerAlign??g.headerStyle?.align??g.headerAlign??x.style?.align??"center");if(g.headerGrid&&s())for(const x of O.resolveGridLayout(g.headerGrid,g.widthMm,100).cells)for(let B=x.ci;B<x.ci+(x.cell.colSpan??1);B++)E[B]=x.cell.style?.align??"left";return E}),y=e.computed(()=>{const g=i.value.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return(v.value?.columns??[]).flatMap((E,x)=>{const B=`${E.header} ${E.field}`.toLocaleLowerCase();return g.every($=>B.includes($))?[{column:E,index:x}]:[]})});function w(g,E){u.value=E?[...new Set([...u.value,g])]:u.value.filter(x=>x!==g)}function N(g){for(const E of y.value)w(E.index,g)}function V(){u.value=[]}function k(g,E,x){if(!o())return;const B=h.value[n.value];if((E==="widthMm"||E==="hidden")&&B&&t.value.template.pages[B.pageIndex]?.flow)return;const $=v.value?.columns[g];$&&(E==="hidden"&&x===!0&&!v.value?.columns.some((L,P)=>P!==g&&!L.hidden)||(Object.assign($,{[E]:E==="widthMm"?Number(x):x}),E==="header"&&b(g,String(x)),E==="headerAlign"&&l(g,x),E==="widthMm"&&f(),a()))}function f(){const g=h.value[n.value];if(!g)return;const E=g.component,x=t.value.template.pages[g.pageIndex],B=E.columns.map($=>$.widthMm);E.headerGrid&&(E.headerGrid.colWidthsMm=B),x.layout==="wide"&&B.every($=>Number.isFinite($)&&$>0)&&(E.widthMm=B.reduce(($,L)=>$+L,0),x.widthMm=Math.max(...x.components.map($=>$.leftMm+$.widthMm))+(x.marginRightMm??0))}function b(g,E){const x=v.value;if(!x?.headerGrid)return;const $=O.resolveGridLayout(x.headerGrid,x.widthMm,100).cells.filter(({ci:L,cell:P})=>L<=g&&L+(P.colSpan??1)>g).slice(-1)[0];$&&(Object.assign($.cell,{text:E,rawText:E,value:E}),x.columns.slice($.ci,$.ci+($.cell.colSpan??1)).forEach(L=>{L.header=E}))}function l(g,E){const x=v.value,B=x?.columns[g];if(B?.headerStyle?.align!==void 0&&(B.headerStyle={...B.headerStyle,align:E}),!x?.headerGrid)return;const L=O.resolveGridLayout(x.headerGrid,x.widthMm,100).cells.filter(({ci:P,cell:Y})=>P<=g&&P+(Y.colSpan??1)>g).slice(-1)[0];L&&(L.cell.style={...L.cell.style,align:E},x.columns.slice(L.ci,L.ci+(L.cell.colSpan??1)).forEach(P=>{P.headerAlign=E,P.headerStyle?.align!==void 0&&(P.headerStyle={...P.headerStyle,align:E})}))}function c(g,E){if(!(!o()||g==="headerAlign"&&E==="auto")){for(const x of u.value){const B=v.value?.columns[x];B&&(Object.assign(B,{[g]:E}),g==="headerAlign"&&l(x,E))}a()}}return{selected:n,query:i,selectedColumns:u,lists:h,activeList:v,headerAlignments:m,visibleColumns:y,toggleColumn:w,selectVisible:N,clearSelection:V,setColumn:k,alignColumns:c}}function Ge(t){return t.kind==="snapshot"?t.value.length*2:(t.removed.length+t.inserted.length)*2+16}function $a(t,s,o=!1){const a={kind:"snapshot",value:s};if(o)return a;let n=0;const i=Math.min(t.length,s.length);for(;n<i&&t.charCodeAt(n)===s.charCodeAt(n);)n++;let u=t.length,h=s.length;for(;u>n&&h>n&&t.charCodeAt(u-1)===s.charCodeAt(h-1);)u--,h--;const v={kind:"patch",start:n,removed:t.slice(n,u),inserted:s.slice(n,h)};return Ge(v)<Ge(a)?v:a}function Ee(t,s,o=!1){if(s.kind==="snapshot")return s.value;const a=o?s.inserted:s.removed,n=o?s.removed:s.inserted;return t.slice(0,s.start)+n+t.slice(s.start+a.length)}const ve=t=>Ge(t)+(t.view?64:0),Ne=(t,s)=>s?{...t,view:{before:{...s},after:{...s}}}:t;function _a(t,s={entries:100,bytes:16*1024*1024}){if(![s.entries,s.bytes].every(b=>Number.isSafeInteger(b)&&b>0))throw new RangeError("History budgets must be positive safe integers");const o=e.shallowRef([{kind:"snapshot",value:t}]),a=e.ref(0),n=e.ref(t),i=e.computed(()=>a.value>0),u=e.computed(()=>a.value+1<o.value.length),h=e.computed(()=>n.value),v=e.computed(()=>o.value.reduce((b,l)=>b+ve(l),0)),m=e.shallowRef();function y(b,l){o.value=[Ne({kind:"snapshot",value:b},l)],a.value=0,n.value=b,m.value=l}function w(b){let l=b;for(;l>0&&o.value[l].kind!=="snapshot";)l--;let c="";for(;l<=b;l++)c=Ee(c,o.value[l]);return c}function N(b){let l=b.reduce((c,g)=>c+ve(g),0);for(;b.length>1&&(b.length>s.entries||l>s.bytes);){const c=b[0],g=b[1],E=Ne({kind:"snapshot",value:Ee(c.value,g)},g.view?.after);l+=ve(E)-ve(c)-ve(g),b.splice(0,2,E)}return b}function V(b){if(!b)return;const l=o.value.slice(),c=l[a.value];l[a.value]=c.view?{...c,view:{before:c.view.before,after:{...b}}}:Ne(c,b),o.value=l}function k(b,l){if(n.value===b)return!1;const c=o.value.slice(0,a.value+1);return c.push(Ne($a(n.value,b,c.length%20===0),l)),o.value=N(c),a.value=o.value.length-1,n.value=b,!0}function f(b){if(b<0?!i.value:!u.value)return;const l=o.value[a.value];return m.value=b<0?l.view?.before:o.value[a.value+1]?.view?.after,b<0&&l.kind==="patch"?n.value=Ee(n.value,l,!0):b>0?n.value=Ee(n.value,o.value[a.value+1]):n.value=w(a.value-1),a.value+=b,n.value}return{canUndo:i,canRedo:u,current:h,context:m,retainedBytes:v,reset:y,record:k,move:f,annotate:V}}function Ta(t){const s=e.shallowRef(null),o=e.ref(!1);let a,n=0;function i(v){a?.(v),a=void 0,s.value=null}function u(){n++,i(!1),o.value=!1}async function h(v){u();const m=n,y=t();o.value=!0;try{const w=await new Promise((N,V)=>{if(a=N,!y){s.value=v;return}Promise.resolve().then(()=>n===m?y(v):!1).then(k=>{n===m&&i(k===!0)},k=>{n===m&&(a=void 0,s.value=null,V(k))})});return n===m&&w===!0}finally{n===m&&(o.value=!1)}}return e.onBeforeUnmount(u),{confirmation:s,pending:o,decide:i,request:h,cancel:u}}function Ia(t,s){const o=e.ref(O.parseReportTemplate(t.modelValue)),a=e.ref(O.serializeReportTemplate(o.value)),n=e.ref(O.serializeReportTemplate(o.value)),i=e.ref(""),u=e.ref(!1),h=e.computed(()=>({...re,...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}}));Fe.provideMachReportConfig({get defaults(){return v.value}});let m,y=0;const w=e.computed(()=>O.validateReportTemplateDocument(o.value)),N=e.computed(()=>{try{return O.serializeReportTemplate(o.value)!==a.value}catch{return!0}}),V=e.ref(n.value),k=e.computed(()=>n.value!==V.value),f=e.ref({}),b=e.ref(0),l=e.ref(0),c=e.computed(()=>Object.values(f.value).some(Boolean)),g=e.computed(()=>Object.keys(f.value).filter(D=>f.value[D]));function E(D,F){f.value={...f.value,[D]:F},b.value++}const x=e.computed(()=>N.value||n.value!==V.value||c.value),B=()=>JSON.stringify({document:o.value,json:n.value,appliedJson:V.value}),$=_a(B()),L=e.ref(0);let P;function Y(D){P=D,$.annotate(D.read())}function Q(){$.annotate(P?.read())}const r=Ta(()=>t.beforeDiscard),_=e.computed(()=>u.value||r.pending.value),R=()=>!t.readonly&&!_.value&&!k.value,I=Da(o,()=>w.value.ok,R,X),{selected:G,lists:S,activeList:C,headerAlignments:M,setColumn:A}=I;e.watch(G,()=>I.clearSelection());const T=e.computed(()=>w.value.ok?Fe.createLocalFetcher({draft:{template:o.value.template,datasets:t.datasets??{},params:[]}}):void 0);function z(){y++,m?.abort(),m=void 0,u.value=!1}let W=0;async function q(D="replace",F){if(!x.value)return!0;const U=B(),ae=b.value;try{return await r.request({reason:D,document:JSON.parse(JSON.stringify(o.value)),replacement:F?O.parseReportTemplate(F):void 0,pendingLocalChanges:!0})&&U===B()&&ae===b.value}catch(ce){return i.value=ce instanceof Error?ce.message:String(ce),!1}}function ee(D){z(),o.value=D,a.value=O.serializeReportTemplate(D),n.value=a.value,V.value=n.value,i.value="",G.value=0,I.clearSelection(),f.value={},b.value++,l.value++,$.reset(B(),P?.read())}e.watch(()=>t.modelValue,async D=>{let F;try{F=O.parseReportTemplate(D)}catch(ae){i.value=ae instanceof Error?ae.message:String(ae);return}try{if(O.serializeReportTemplate(F)===O.serializeReportTemplate(o.value))return}catch{}const U=++W;if(z(),!await q("replace",F)){U===W&&w.value.ok&&s("update:modelValue",O.parseReportTemplate(o.value));return}U===W&&ee(F)}),e.onBeforeUnmount(()=>{W++,z()});function X(){r.cancel(),i.value="",w.value.ok&&(n.value=O.serializeReportTemplate(o.value),V.value=n.value,s("update:modelValue",O.parseReportTemplate(o.value))),$.record(B(),P?.read())&&L.value++}function te(D){if(!R())return!1;try{const F=O.parseReportTemplate(o.value);D(F);const U=O.validateReportTemplateDocument(F);if(!U.ok)throw new Error(U.errors.map(ae=>`${ae.path}: ${ae.message}`).join(`
2
+ `));return o.value=F,X(),!0}catch(F){return i.value=F instanceof Error?F.message:String(F),!1}}async function K(D){if(!R())return!1;try{const F=O.parseReportTemplate(D);return!await q("replace",F)||!R()?!1:(o.value=F,G.value=0,I.clearSelection(),X(),!0)}catch(F){return i.value=F instanceof Error?F.message:String(F),!1}}function oe(D){R()&&(o.value.name=D,X())}function Be(D){R()&&(o.value.description=D,X())}function fe(){if(!(t.readonly||_.value))try{const D=O.parseReportTemplate(n.value);if(D.id!==o.value.id)throw new Error("属性编辑不允许更换模板 ID,请另存为新模板");if(D.revision!==o.value.revision)throw new Error("修订号由保存服务管理,不能在 JSON 中修改");o.value=D,G.value=0,I.clearSelection(),X()}catch(D){i.value=D instanceof Error?D.message:String(D)}}async function De(){_.value||t.readonly||!await q("reset")||(ee(O.parseReportTemplate(a.value)),s("update:modelValue",O.parseReportTemplate(o.value)))}function he(D){if(_.value||t.readonly)return;$.record(B(),P?.read());const F=$.move(D);if(!F)return;r.cancel();const U=JSON.parse(F);o.value=U.document,n.value=U.json,V.value=U.appliedJson,i.value="",G.value=0,I.clearSelection(),$.context.value&&P?.restore($.context.value),w.value.ok&&s("update:modelValue",O.parseReportTemplate(o.value))}async function ye(){if(!t.save||!R()||!w.value.ok)return;if(c.value){i.value=h.value.toolsPending;return}const D=++y;m=new AbortController,u.value=!0,i.value="";const F=O.parseReportTemplate(o.value);try{const U=O.parseReportTemplate(await t.save(F,{expectedRevision:F.revision,signal:m.signal}));if(D!==y)return;if(U.id!==F.id)throw new Error("保存服务返回了其他模板的文档");o.value=U,a.value=O.serializeReportTemplate(U),n.value=a.value,V.value=n.value,$.reset(B(),P?.read()),s("saved",O.parseReportTemplate(U)),s("update:modelValue",O.parseReportTemplate(U))}catch(U){D===y&&(i.value=U instanceof Error?U.message:String(U))}finally{D===y&&(u.value=!1,m=void 0)}}const $e=e.computed(()=>$.canUndo.value||B()!==$.current.value),_e=e.computed(()=>$.canRedo.value&&B()===$.current.value);return{...I,editingReadonly:e.computed(()=>t.readonly===!0),connectHistoryView:Y,captureHistoryView:Q,historyViewRevision:L,transaction:te,replaceDocument:K,originalDocument:e.computed(()=>O.parseReportTemplate(a.value)),canUndo:$e,canRedo:_e,undo:()=>he(-1),redo:()=>he(1),pendingLocalChanges:x,setToolPending:E,isToolPending:D=>f.value[D]===!0,toolEpoch:l,toolPending:c,pendingTools:g,jsonPending:k,blocked:_,confirmation:r.confirmation,decideDiscard:r.decide,guardChanges:q,draft:o,json:n,selected:G,error:i,saving:u,dirty:N,validation:w,lists:S,activeList:C,headerAlignments:M,previewOptions:v,fetcher:T,messages:h,setName:oe,setDescription:Be,setColumn:A,applyJson:fe,reset:De,save:ye}}function Ra(t,s){const o=e.ref(s.value?"fields":"component"),a=()=>s.value?.columns.length?0:-1,n=e.ref(a()),i=e.computed(()=>{const v=s.value?.columns[n.value];return v?{column:v,index:n.value}:void 0});e.watch(t,()=>{n.value=a()}),e.watch(s,v=>{v?.columns[n.value]||(n.value=a()),!v&&o.value==="fields"&&(o.value="component")});function u(v){s.value?.columns[v]&&(n.value=v)}function h(v){const m=s.value?.columns.length??0;m&&(n.value=Math.max(0,Math.min(m-1,n.value+v)))}return{section:o,activeIndex:n,activeColumn:i,activate:u,stepColumn:h}}const La=["aria-label","aria-busy"],Pa={class:"mr-designer-bar"},Aa={class:"mr-designer-heading"},Fa=["aria-label"],Ha=["id","aria-selected","aria-controls","tabindex","onClick"],Ga={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},za=["aria-label"],Oa=["aria-pressed"],ja=["aria-pressed"],qa={class:"mr-designer-actions"},Wa={class:"mr-designer-history"},Ua=["aria-label","title","disabled"],Ka=["aria-label","title","disabled"],Ja=["disabled"],Ya=["title","aria-describedby","disabled"],Xa=["id"],Za=["id"],Qa=["aria-label","onClick"],el=["aria-label"],tl=["aria-label"],nl=["id","aria-pressed","aria-describedby","onClick"],ol={key:0,class:"mr-designer-pending-dot","aria-hidden":"true"},al={class:"mr-designer-tool-content"},ll={key:3,class:"mr-designer-rule-workspace"},rl={key:0},il=["value"],sl=["value"],dl={key:2,class:"mr-designer-note"},cl={key:1,class:"mr-designer-inspector"},ul=["id","aria-labelledby"],ml={key:0,class:"mr-designer-flow-note"},pl={key:0,class:"mr-designer-area"},vl=["value"],gl=["value"],fl={class:"mr-designer-current"},hl=["aria-expanded","aria-controls"],yl={class:"mr-designer-current-name"},bl={class:"mr-designer-directory-entry"},kl={class:"mr-designer-field-position"},El=["aria-label"],Nl=["aria-label","title","disabled"],Sl=["aria-label","title","disabled"],Vl=["disabled","aria-label"],wl={class:"mr-designer-property-group"},xl=["value"],Cl=["value","list"],Ml=["id"],Bl=["value"],Dl={class:"mr-designer-property-group"},$l={class:"mr-designer-format-pair"},_l={class:"mr-designer-stacked"},Tl=["value","disabled"],Il={class:"mr-designer-stacked"},Rl=["value"],Ll={value:"identifier"},Pl={value:"dimension"},Al={value:"measure"},Fl={value:"date"},Hl={value:"text"},Gl={class:"mr-designer-control-row"},zl={class:"mr-designer-control-row"},Ol={class:"mr-designer-toggle"},jl=["checked"],ql={class:"mr-designer-column-structure"},Wl=["aria-label","title","disabled"],Ul=["aria-label","title","disabled"],Kl=["checked","disabled"],Jl=["id","aria-label"],Yl={class:"mr-designer-directory-heading"},Xl=["aria-label"],Zl={class:"mr-designer-search"},Ql=["aria-label","placeholder"],er=["aria-label","title"],tr={class:"mr-designer-column-tools"},nr=["disabled"],or={key:1,role:"status"},ar={key:2},lr=["aria-label"],rr=["aria-label","checked","disabled","onChange"],ir=["data-column-index","aria-pressed","tabindex","onClick"],sr={class:"mr-designer-column-number"},dr={class:"mr-designer-column-name"},cr={key:0,role:"status",class:"mr-designer-empty"},ur={key:0,class:"mr-designer-batch"},mr=["aria-label","disabled"],pr={value:""},vr={value:"auto"},gr={value:"left"},fr={value:"center"},hr={value:"right"},yr={value:"justify"},br=["aria-label","disabled"],kr={value:""},Er={value:"left"},Nr={value:"center"},Sr={value:"right"},Vr={value:"justify"},wr={key:2,role:"status",class:"mr-designer-empty"},xr={class:"mr-designer-object-tools"},Cr=["aria-label","disabled"],Mr={value:""},Br={value:"text"},Dr=["disabled"],$r={value:"image"},_r={value:"rect"},Tr={value:"qrcode"},Ir={value:"barcode"},Rr=["title","aria-label","disabled"],Lr=["title","aria-label","disabled"],Pr={key:0},Ar=["value"],Fr={class:"mr-designer-stacked"},Hr=["value"],Gr={value:-1,disabled:""},zr=["value"],Or={key:1,class:"mr-designer-arrange"},jr=["disabled"],qr=["aria-label","disabled"],Wr={value:""},Ur={value:"left"},Kr={value:"center"},Jr={value:"right"},Yr={value:"top"},Xr={value:"middle"},Zr={value:"bottom"},Qr=["disabled"],ei=["disabled"],ti={key:0},ni={class:"mr-designer-layer-tools"},oi=["disabled"],ai=["disabled"],li={key:3,class:"mr-designer-empty"},ri={class:"mr-designer-stacked"},ii=["value","disabled"],si={class:"mr-designer-stacked"},di=["value","disabled"],ci={class:"mr-designer-technical"},ui={class:"mr-designer-identity"},mi={class:"mr-designer-stacked mr-designer-json-label"},pi=["aria-label","disabled"],vi=["disabled"],gi={key:5,role:"status",class:"mr-designer-note mr-designer-pending"},fi=["aria-label"],hi={key:0,role:"alert",class:"mr-designer-error"},yi={key:1,role:"alert",class:"mr-designer-error"},bi={key:4,class:"mr-designer-note mr-designer-invalid"},ki=e.defineComponent({__name:"ReportTemplateEditor",props:{modelValue:{},datasets:{},dataSchemas:{},bindingDatasets:{},bindingSession:{},readonly:{type:Boolean},messages:{},preview:{},beforeDiscard:{type:Function},save:{type:Function}},emits:["update:modelValue","saved","excel-bound"],setup(t,{expose:s,emit:o}){const a=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-y0mT-AHR.cjs"))),n=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-MBBC7lUE.cjs"))),i=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-ChRzNQuF.cjs"))),u=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-DwtOcLue.cjs"))),h=t,v=o,m=Ia(h,(H,p)=>{v(H==="saved"?"saved":"update:modelValue",p)}),{draft:y,json:w,selected:N,error:V,saving:k,pendingLocalChanges:f,jsonPending:b,blocked:l,confirmation:c,canUndo:g,canRedo:E,validation:x,lists:B,activeList:$,visibleColumns:L,query:P,selectedColumns:Y,fetcher:Q,messages:r}=m;function _(H){return m.transaction(p=>{p.template.params=H})}const R=Ra(N,$),{section:I,activeIndex:G,activeColumn:S}=R,C=`mr-designer-${e.getCurrentInstance()?.uid??0}`,M=e.computed(()=>[...B.value.length?["fields"]:[],"component","template","tools","advanced"]),A=Ca(m,R,()=>h.dataSchemas),{mode:T,setMode:z,canvasSelection:W,canvasPage:q,canvasActive:ee,tool:X,visitedTools:te,editDisabled:K,dataSchema:oe,chooseCanvas:Be,insertComponent:fe,patchCanvas:De,changeList:he,moveColumn:ye,headerCommand:$e,locateReview:_e,canvas:D}=A,F=e.computed(()=>!!y.value.template.pages[q.value]?.flow),U=e.computed(()=>h.dataSchemas?.[y.value.template.repeat?.dataset??""]),ae=e.computed(()=>{const H={text:r.value.insertText,list:r.value.insertList,image:r.value.insertImage,rect:r.value.insertRect,qrcode:r.value.insertQrcode,barcode:r.value.insertBarcode,chart:r.value.chartComponent,line:r.value.lineComponent,ellipse:r.value.ellipseComponent},p=new Map(U.value?.fields.map(d=>[d.field,d.label||d.field]));return y.value.template.pages[q.value]?.components.map((d,j)=>{const le=H[d.kind],Le=(d.kind==="list"?d.title||d.dataset:d.binding?p.get(d.binding.field)||d.binding.field:d.text)?.replace(/\s+/g," ").trim().slice(0,60);return{index:j,name:Le&&Le!==le?`${le} · ${Le}`:le}})??[]});function ce(H){let p=q.value;m.transaction(d=>{p=bt(d,q.value,H)})&&(H.type!=="patch"&&(D.clearLocks(),D.selection.value=void 0,D.selections.value=[]),q.value=p)}const pe=e.computed(()=>!!y.value.template.pages[B.value[N.value]?.pageIndex??-1]?.flow);function Ze(){I.value="tools",X.value="excel"}const ue=e.computed(()=>{const H=["excel","rules","params"].filter(p=>m.pendingTools.value.includes(p)).map(p=>({target:p,label:r.value[`${p}Tool`]}));return b.value&&H.push({target:"json",label:r.value.json}),H}),be=e.computed(()=>k.value?r.value.saving:h.readonly?r.value.saveReadonly:l.value?r.value.saveConfirmation:ue.value.length?ue.value.map(H=>`${H.label} · ${r.value.unapplied}`).join(";"):x.value.ok?f.value?"":r.value.saveUnchanged:r.value.saveInvalid);async function Qe(H){H==="json"?I.value="advanced":(I.value="tools",X.value=H),await e.nextTick();const p=H==="json"?`#${C}-panel-advanced textarea`:`#${C}-tool-${H}`;document.querySelector(p)?.focus({preventScroll:!0})}const et=e.computed(()=>k.value?r.value.saving:h.readonly?r.value.readonly:f.value?r.value.dirty:r.value.ready),ze=e.ref(null),Te=e.ref(null),Z=Ba(R,I,L),{open:Oe,cursor:tt,trigger:nt,panel:ot,search:at,list:lt}=Z;e.watch(I,async()=>{await e.nextTick(),Te.value&&(Te.value.scrollTop=0)});const je=e.computed(()=>({auto:r.value.auto,left:r.value.left,center:r.value.center,right:r.value.right,justify:r.value.justify}));let ke=null;e.watch(c,async H=>{H?(ke=document.activeElement,await e.nextTick(),ze.value?.focus()):(await e.nextTick(),ke?.isConnected&&ke.focus(),ke=null)}),s({get pendingLocalChanges(){return f.value},get saving(){return k.value},get blocked(){return l.value},guardChanges:m.guardChanges,reset:m.reset,save:m.save});async function rt(H){const p={...H.document,id:y.value.id};if(y.value.revision===void 0?delete p.revision:p.revision=y.value.revision,!await m.replaceDocument(p))return!1;const d=O.parseReportTemplate(m.draft.value);return v("excel-bound",{...H,document:d,session:{...H.session,identity:{id:d.id,name:d.name}}}),!0}async function Ie(H){const p=B.value.findIndex(d=>d.pageIndex===H.pageIndex&&d.componentIndex===H.componentIndex);p>=0&&p!==N.value&&m.isToolPending("rules")&&!await m.guardChanges()||Be(H)}async function qe(H){const p=H.target,d=Number(p.value);if(m.isToolPending("rules")&&!await m.guardChanges()){p.value=String(N.value);return}N.value=d}function ie(H){return H.target.value}function Re(H){return H.target.checked}function We(H,p){const d=H.target;m.alignColumns(p,d.value),d.value=""}async function it(H){const d={ArrowRight:1,ArrowLeft:-1,Home:-M.value.length,End:M.value.length}[H.key];if(d===void 0)return;H.preventDefault();const j=M.value.indexOf(I.value),le=H.key==="Home"?0:H.key==="End"?M.value.length-1:(j+d+M.value.length)%M.value.length;I.value=M.value[le];const Ue=H.currentTarget.parentElement;await e.nextTick(),Ue?.querySelector(`#${C}-tab-${I.value}`)?.focus()}return(H,p)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-designer","aria-label":e.unref(r).title,"aria-busy":e.unref(k)},[e.createElementVNode("header",Pa,[e.createElementVNode("div",Aa,[e.createVNode(J._sfc_main,{name:"columns",size:15}),e.createElementVNode("strong",null,e.toDisplayString(e.unref(r).heading),1),e.createElementVNode("span",{class:e.normalizeClass({"mr-designer-dirty":e.unref(f)})},e.toDisplayString(et.value),3)]),e.createElementVNode("nav",{class:"mr-designer-tabs",role:"tablist","aria-label":e.unref(r).sectionsLabel},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value,d=>(e.openBlock(),e.createElementBlock("button",{id:`${C}-tab-${d}`,key:d,type:"button",role:"tab","aria-selected":e.unref(I)===d,"aria-controls":`${C}-panel-${d}`,tabindex:e.unref(I)===d?0:-1,onClick:j=>I.value=d,onKeydown:it},[e.createTextVNode(e.toDisplayString(e.unref(r)[`${d}Section`])+" ",1),d==="tools"&&e.unref(m).toolPending.value||d==="advanced"&&e.unref(b)?(e.openBlock(),e.createElementBlock("span",Ga)):e.createCommentVNode("",!0)],40,Ha))),128))],8,Fa),e.createElementVNode("div",{class:"mr-designer-mode",role:"group","aria-label":e.unref(r).design},[e.createElementVNode("button",{type:"button","aria-pressed":e.unref(T)==="design",onClick:p[0]||(p[0]=d=>e.unref(z)("design"))},e.toDisplayString(e.unref(r).design),9,Oa),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(T)==="preview",onClick:p[1]||(p[1]=d=>e.unref(z)("preview"))},e.toDisplayString(e.unref(r).preview),9,ja)],8,za),e.createElementVNode("div",qa,[e.createElementVNode("div",Wa,[e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).undo,title:e.unref(r).undo,disabled:t.readonly||e.unref(l)||!e.unref(g),onClick:p[2]||(p[2]=d=>{e.unref(D).clearLocks(),e.unref(m).undo()})},[...p[56]||(p[56]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M4 10h10a6 6 0 0 1 0 12M4 10l5-5M4 10l5 5"})],-1)])],8,Ua),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).redo,title:e.unref(r).redo,disabled:t.readonly||e.unref(l)||!e.unref(E),onClick:p[3]||(p[3]=d=>{e.unref(D).clearLocks(),e.unref(m).redo()})},[...p[57]||(p[57]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[e.createElementVNode("path",{d:"M20 10H10a6 6 0 0 0 0 12m10-12-5-5m5 5-5 5"})],-1)])],8,Ka)]),e.createElementVNode("button",{type:"button",class:"mr-designer-reset",disabled:t.readonly||e.unref(l)||!e.unref(f),onClick:p[4]||(p[4]=(...d)=>e.unref(m).reset&&e.unref(m).reset(...d))},e.toDisplayString(e.unref(r).reset),9,Ja),t.save?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"mr-designer-save",title:be.value||e.unref(r).save,"aria-describedby":ue.value.length?`${C}-pending`:be.value?`${C}-save-reason`:void 0,disabled:t.readonly||e.unref(l)||e.unref(b)||e.unref(m).toolPending.value||!e.unref(x).ok||!e.unref(f),onClick:p[5]||(p[5]=(...d)=>e.unref(m).save&&e.unref(m).save(...d))},[e.createVNode(J._sfc_main,{name:"file",size:13}),e.createTextVNode(e.toDisplayString(e.unref(k)?e.unref(r).saving:e.unref(r).save),1)],8,Ya)):e.createCommentVNode("",!0),t.save&&be.value&&!ue.value.length?(e.openBlock(),e.createElementBlock("span",{key:1,id:`${C}-save-reason`,class:"mr-designer-save-reason"},e.toDisplayString(be.value),9,Xa)):e.createCommentVNode("",!0)])]),ue.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,id:`${C}-pending`,class:"mr-designer-pending",role:"status"},[e.createElementVNode("span",null,e.toDisplayString(e.unref(r).pendingToolsLabel),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ue.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d.target,type:"button","aria-label":`${d.label} · ${e.unref(r).unapplied} · ${e.unref(r).returnToConfiguration}`,onClick:j=>Qe(d.target)},[e.createTextVNode(e.toDisplayString(d.label),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(r).unapplied)+" ↗",1)],8,Qa))),128)),e.createElementVNode("small",null,e.toDisplayString(e.unref(r).pendingToolsHint),1)],8,Za)):e.createCommentVNode("",!0),e.unref(c)?(e.openBlock(),e.createElementBlock("div",{key:1,role:"alertdialog","aria-label":e.unref(r).discardTitle,class:"mr-designer-confirm",onKeydown:p[8]||(p[8]=e.withKeys(e.withModifiers(d=>e.unref(m).decideDiscard(!1),["prevent","stop"]),["esc"]))},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(r).discardTitle),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(r).discardDescription),1)]),e.createElementVNode("div",null,[e.createElementVNode("button",{ref_key:"keepButton",ref:ze,type:"button",onClick:p[6]||(p[6]=d=>e.unref(m).decideDiscard(!1))},e.toDisplayString(e.unref(r).keepEditing),513),e.createElementVNode("button",{type:"button",onClick:p[7]||(p[7]=d=>e.unref(m).decideDiscard(!0))},e.toDisplayString(e.unref(r).discard),1)])],40,el)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["mr-designer-body",{"is-tools":e.unref(I)==="tools"}])},[e.unref(te).size?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:e.unref(m).toolEpoch.value,class:"mr-designer-tools"},[e.createElementVNode("nav",{class:"mr-designer-tool-tabs","aria-label":e.unref(r).toolsSection},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["excel","rules","params","review"],d=>e.createElementVNode("button",{key:d,id:`${C}-tool-${d}`,type:"button","aria-pressed":e.unref(X)===d,"aria-describedby":e.unref(m).isToolPending(d)?`${C}-pending`:void 0,onClick:j=>X.value=d},[e.createTextVNode(e.toDisplayString(e.unref(r)[`${d}Tool`])+" ",1),e.unref(m).isToolPending(d)?(e.openBlock(),e.createElementBlock("span",ol)):e.createCommentVNode("",!0)],8,nl)),64)),e.createElementVNode("span",null,e.toDisplayString(e.unref(r).toolsDescription),1)],8,tl),e.createElementVNode("div",al,[e.unref(te).has("params")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(n),{key:0,document:e.unref(y),readonly:e.unref(K),accept:_,onDirty:p[9]||(p[9]=d=>e.unref(m).setToolPending("params",d))},null,8,["document","readonly"])),[[e.vShow,e.unref(X)==="params"]]):e.createCommentVNode("",!0),e.unref(te).has("excel")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(a),{key:1,datasets:t.bindingDatasets??[],session:t.bindingSession,identity:{id:e.unref(y).id,name:e.unref(y).name},"lock-id":"",readonly:e.unref(K),accept:rt,onDirty:p[10]||(p[10]=d=>e.unref(m).setToolPending("excel",d))},null,8,["datasets","session","identity","readonly"])),[[e.vShow,e.unref(X)==="excel"]]):e.createCommentVNode("",!0),e.unref(te).has("review")?e.withDirectives((e.openBlock(),e.createBlock(e.unref(u),{key:2,document:e.unref(y),previous:e.unref(m).originalDocument.value,datasets:t.datasets,"data-schemas":t.dataSchemas,onLocate:e.unref(_e)},null,8,["document","previous","datasets","data-schemas","onLocate"])),[[e.vShow,e.unref(X)==="review"]]):e.createCommentVNode("",!0),e.unref(te).has("rules")?e.withDirectives((e.openBlock(),e.createElementBlock("div",ll,[e.unref(B).length>1?(e.openBlock(),e.createElementBlock("label",rl,[e.createTextVNode(e.toDisplayString(e.unref(r).area),1),e.createElementVNode("select",{value:e.unref(N),onChange:qe},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(d,j)=>(e.openBlock(),e.createElementBlock("option",{key:j,value:j},e.toDisplayString(d.component.title||d.component.dataset),9,sl))),128))],40,il)])):e.createCommentVNode("",!0),e.unref($)?(e.openBlock(),e.createBlock(e.unref(i),{key:1,list:e.unref($),datasets:t.datasets,"dataset-schema":e.unref(oe),"dataset-schemas":t.dataSchemas,readonly:e.unref(K),onChange:e.unref(he),onDirty:p[11]||(p[11]=d=>e.unref(m).setToolPending("rules",d))},null,8,["list","datasets","dataset-schema","dataset-schemas","readonly","onChange"])):(e.openBlock(),e.createElementBlock("p",dl,e.toDisplayString(e.unref(r).rulesNeedList),1))],512)),[[e.vShow,e.unref(X)==="rules"]]):e.createCommentVNode("",!0)])])),[[e.vShow,e.unref(I)==="tools"]]):e.createCommentVNode("",!0),e.unref(I)!=="tools"?(e.openBlock(),e.createElementBlock("aside",cl,[e.createElementVNode("div",{ref_key:"inspectorPanel",ref:Te,id:`${C}-panel-${e.unref(I)}`,class:e.normalizeClass(["mr-designer-panel",{"is-advanced":e.unref(I)==="advanced"}]),role:"tabpanel","aria-labelledby":`${C}-tab-${e.unref(I)}`},[F.value||pe.value?(e.openBlock(),e.createElementBlock("div",ml,[e.createElementVNode("small",null,e.toDisplayString(e.unref(r).flowLayout),1),e.createElementVNode("button",{type:"button",onClick:Ze},e.toDisplayString(e.unref(r).excelTool)+" ↗",1)])):e.createCommentVNode("",!0),e.unref(I)==="fields"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.unref(B).length>1?(e.openBlock(),e.createElementBlock("label",pl,[e.createTextVNode(e.toDisplayString(e.unref(r).area),1),e.createElementVNode("select",{value:e.unref(N),onChange:qe},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(B),(d,j)=>(e.openBlock(),e.createElementBlock("option",{key:j,value:j},e.toDisplayString(d.pageIndex+1)+" "+e.toDisplayString(e.unref(r).page)+" · "+e.toDisplayString(d.component.title||d.component.dataset),9,gl))),128))],40,vl)])):e.createCommentVNode("",!0),e.unref($)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",fl,[e.createElementVNode("button",{ref_key:"directoryTrigger",ref:nt,type:"button",class:"mr-designer-field-trigger","aria-expanded":e.unref(Oe),"aria-controls":`${C}-directory`,"aria-haspopup":"dialog",onClick:p[12]||(p[12]=(...d)=>e.unref(Z).toggle&&e.unref(Z).toggle(...d)),onKeydown:p[13]||(p[13]=e.withKeys((...d)=>e.unref(Z).escape&&e.unref(Z).escape(...d),["esc"]))},[e.createElementVNode("span",yl,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(S)?.column.header||e.unref(r).noColumns),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(S)?.column.field||"—"),1)]),e.createElementVNode("span",bl,[e.createTextVNode(e.toDisplayString(e.unref(r).columnDirectory)+" ",1),e.createElementVNode("b",null,e.toDisplayString(e.unref($).columns.length),1),e.createVNode(J._sfc_main,{name:"chevron-down",size:13})])],40,hl),e.createElementVNode("div",kl,[e.createElementVNode("span",{"aria-label":e.unref(r).fieldPosition},[e.createTextVNode(e.toDisplayString(e.unref(G)>=0?e.unref(G)+1:0),1),p[58]||(p[58]=e.createElementVNode("i",null,"/",-1)),e.createTextVNode(e.toDisplayString(e.unref($).columns.length),1)],8,El),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).previousColumn,title:e.unref(r).previousColumn,disabled:e.unref(G)<=0,onClick:p[14]||(p[14]=d=>e.unref(R).stepColumn(-1))},[e.createVNode(J._sfc_main,{name:"chevron-left",size:14})],8,Nl),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).nextColumn,title:e.unref(r).nextColumn,disabled:e.unref(G)>=e.unref($).columns.length-1,onClick:p[15]||(p[15]=d=>e.unref(R).stepColumn(1))},[e.createVNode(J._sfc_main,{name:"chevron-right",size:14})],8,Sl)])]),e.unref(S)?(e.openBlock(),e.createElementBlock("fieldset",{key:0,class:"mr-designer-properties",disabled:t.readonly||e.unref(l)||e.unref(b),"aria-label":e.unref(r).columnProperties},[e.createElementVNode("div",wl,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(r).contentGroup),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(r).header),1),e.createElementVNode("input",{value:e.unref(S).column.header,onInput:p[16]||(p[16]=d=>e.unref(m).setColumn(e.unref(S).index,"header",ie(d)))},null,40,xl)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(r).field),1),e.createElementVNode("input",{value:e.unref(S).column.field,list:e.unref(oe)?`${C}-fields`:void 0,onChange:p[17]||(p[17]=d=>e.unref(m).setColumn(e.unref(S).index,"field",ie(d)))},null,40,Cl)]),e.unref(oe)?(e.openBlock(),e.createElementBlock("datalist",{key:0,id:`${C}-fields`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(oe).fields,d=>(e.openBlock(),e.createElementBlock("option",{key:d.field,value:d.field},e.toDisplayString(d.label)+" · "+e.toDisplayString(d.type)+" "+e.toDisplayString(d.unit),9,Bl))),128))],8,Ml)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Dl,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(r).formatGroup),1),e.createElementVNode("div",$l,[e.createElementVNode("label",_l,[e.createTextVNode(e.toDisplayString(e.unref(r).width),1),e.createElementVNode("input",{type:"number",min:"0.1",step:"0.5",value:e.unref(S).column.widthMm,disabled:pe.value,onChange:p[18]||(p[18]=d=>e.unref(m).setColumn(e.unref(S).index,"widthMm",ie(d)))},null,40,Tl)]),e.createElementVNode("label",Il,[e.createTextVNode(e.toDisplayString(e.unref(r).semantic),1),e.createElementVNode("select",{value:e.unref(S).column.semanticRole||"text",onChange:p[19]||(p[19]=d=>e.unref(m).setColumn(e.unref(S).index,"semanticRole",ie(d)))},[e.createElementVNode("option",Ll,e.toDisplayString(e.unref(r).identifier),1),e.createElementVNode("option",Pl,e.toDisplayString(e.unref(r).dimension),1),e.createElementVNode("option",Al,e.toDisplayString(e.unref(r).measure),1),e.createElementVNode("option",Fl,e.toDisplayString(e.unref(r).date),1),e.createElementVNode("option",Hl,e.toDisplayString(e.unref(r).text),1)],40,Rl)])]),e.createElementVNode("div",Gl,[e.createElementVNode("span",null,e.toDisplayString(e.unref(r).bodyAlign),1),e.createVNode(He,{"model-value":e.unref(S).column.align??e.unref(S).column.style?.align??e.unref($).align??"left",label:e.unref(r).bodyAlign,labels:je.value,"auto-label":e.unref(r).autoShort,"allow-auto":"","onUpdate:modelValue":p[20]||(p[20]=d=>e.unref(m).setColumn(e.unref(S).index,"align",d))},null,8,["model-value","label","labels","auto-label"])]),e.createElementVNode("div",zl,[e.createElementVNode("span",null,e.toDisplayString(e.unref(r).headerAlign),1),e.createVNode(He,{"model-value":e.unref(m).headerAlignments.value[e.unref(S).index]||"left",label:e.unref(r).headerAlign,labels:je.value,"auto-label":e.unref(r).autoShort,"onUpdate:modelValue":p[21]||(p[21]=d=>e.unref(m).setColumn(e.unref(S).index,"headerAlign",d))},null,8,["model-value","label","labels","auto-label"])])]),e.createElementVNode("label",Ol,[e.createTextVNode(e.toDisplayString(e.unref(r).editable),1),e.createElementVNode("input",{type:"checkbox",role:"switch",checked:e.unref(S).column.editable===!0,onChange:p[22]||(p[22]=d=>e.unref(m).setColumn(e.unref(S).index,"editable",Re(d)))},null,40,jl)]),e.createElementVNode("div",ql,[e.createElementVNode("span",null,e.toDisplayString(e.unref(r).columnOrder),1),e.createElementVNode("button",{type:"button","aria-label":e.unref(r).moveColumnLeft,title:e.unref(r).moveColumnLeft,disabled:pe.value||e.unref(G)<=0,onClick:p[23]||(p[23]=d=>e.unref(ye)(-1))},[e.createVNode(J._sfc_main,{name:"chevron-left",size:13})],8,Wl),e.createElementVNode("button",{type:"button","aria-label":e.unref(r).moveColumnRight,title:e.unref(r).moveColumnRight,disabled:pe.value||e.unref(G)>=e.unref($).columns.length-1,onClick:p[24]||(p[24]=d=>e.unref(ye)(1))},[e.createVNode(J._sfc_main,{name:"chevron-right",size:13})],8,Ul),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(r).columnVisible),1),e.createElementVNode("input",{type:"checkbox",checked:e.unref(S).column.hidden!==!0,disabled:pe.value||e.unref(S).column.hidden!==!0&&e.unref($).columns.filter(d=>!d.hidden).length===1,onChange:p[25]||(p[25]=d=>e.unref(m).setColumn(e.unref(S).index,"hidden",!Re(d)))},null,40,Kl)])])],8,Vl)):e.createCommentVNode("",!0),e.unref(Oe)?(e.openBlock(),e.createElementBlock("div",{key:1,id:`${C}-directory`,ref_key:"directoryPanel",ref:ot,role:"dialog","aria-label":e.unref(r).columnDirectory,class:"mr-designer-directory",onKeydown:p[35]||(p[35]=e.withKeys((...d)=>e.unref(Z).escape&&e.unref(Z).escape(...d),["esc"])),onFocusout:p[36]||(p[36]=(...d)=>e.unref(Z).leave&&e.unref(Z).leave(...d))},[e.createElementVNode("div",Yl,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(e.unref(r).columnDirectory)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref($).columns.length),1)]),e.createElementVNode("button",{type:"button",class:"mr-designer-icon-button","aria-label":e.unref(r).closeDirectory,onClick:p[26]||(p[26]=d=>e.unref(Z).close(!0))},[e.createVNode(J._sfc_main,{name:"close",size:15})],8,Xl)]),e.createElementVNode("div",Zl,[e.createVNode(J._sfc_main,{name:"search",size:14}),e.withDirectives(e.createElementVNode("input",{ref_key:"directorySearch",ref:at,"onUpdate:modelValue":p[27]||(p[27]=d=>e.isRef(P)?P.value=d:null),type:"search","aria-label":e.unref(r).columnsSearch,placeholder:e.unref(r).columnsSearch,onKeydown:p[28]||(p[28]=(...d)=>e.unref(Z).searchKeydown&&e.unref(Z).searchKeydown(...d))},null,40,Ql),[[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(r).clearSearch,title:e.unref(r).clearSearch,onClick:p[29]||(p[29]=d=>P.value="")},[e.createVNode(J._sfc_main,{name:"close",size:13})],8,er)):e.createCommentVNode("",!0)]),e.createElementVNode("div",tr,[e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(l)||e.unref(b)||!e.unref(L).length,onClick:p[30]||(p[30]=d=>e.unref(m).selectVisible(!0))},e.toDisplayString(e.unref(r).selectVisible),9,nr),e.unref(Y).length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:p[31]||(p[31]=(...d)=>e.unref(m).clearSelection&&e.unref(m).clearSelection(...d))},e.toDisplayString(e.unref(r).clearSelection),1)):e.createCommentVNode("",!0),e.unref(Y).length?(e.openBlock(),e.createElementBlock("span",or,e.toDisplayString(e.unref(r).columnsSelected)+" "+e.toDisplayString(e.unref(Y).length),1)):(e.openBlock(),e.createElementBlock("span",ar,e.toDisplayString(e.unref(L).length)+" / "+e.toDisplayString(e.unref($).columns.length),1))]),e.createElementVNode("div",{ref_key:"columnList",ref:lt,class:"mr-designer-column-list","aria-label":e.unref(r).columnDirectory,role:"group"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(L),({column:d,index:j})=>(e.openBlock(),e.createElementBlock("div",{key:j,class:e.normalizeClass(["mr-designer-column-row",{"is-active":e.unref(G)===j}])},[e.createElementVNode("input",{type:"checkbox","aria-label":`${e.unref(r).selectColumn} ${d.header}`,checked:e.unref(Y).includes(j),disabled:t.readonly||e.unref(l)||e.unref(b),onChange:le=>e.unref(m).toggleColumn(j,Re(le))},null,40,rr),e.createElementVNode("button",{type:"button","data-column-index":j,"aria-pressed":e.unref(G)===j,tabindex:e.unref(tt)===j?0:-1,onClick:le=>e.unref(Z).choose(j),onKeydown:p[32]||(p[32]=(...le)=>e.unref(Z).navigate&&e.unref(Z).navigate(...le))},[e.createElementVNode("span",sr,e.toDisplayString(j+1),1),e.createElementVNode("span",dr,[e.createElementVNode("strong",null,e.toDisplayString(d.header),1),e.createElementVNode("small",null,e.toDisplayString(d.field),1)]),e.unref(G)===j?(e.openBlock(),e.createBlock(J._sfc_main,{key:0,name:"chevron-right",size:13})):e.createCommentVNode("",!0)],40,ir)],2))),128)),e.unref(L).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",cr,[e.createVNode(J._sfc_main,{name:"search",size:20}),e.createTextVNode(e.toDisplayString(e.unref(r).noColumns),1)]))],8,lr),e.unref(Y).length?(e.openBlock(),e.createElementBlock("div",ur,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(r).batchBody),1),e.createElementVNode("select",{"aria-label":e.unref(r).batchBody,disabled:t.readonly||e.unref(l)||e.unref(b),onChange:p[33]||(p[33]=d=>We(d,"align"))},[e.createElementVNode("option",pr,e.toDisplayString(e.unref(r).chooseAlignment),1),e.createElementVNode("option",vr,e.toDisplayString(e.unref(r).auto),1),e.createElementVNode("option",gr,e.toDisplayString(e.unref(r).left),1),e.createElementVNode("option",fr,e.toDisplayString(e.unref(r).center),1),e.createElementVNode("option",hr,e.toDisplayString(e.unref(r).right),1),e.createElementVNode("option",yr,e.toDisplayString(e.unref(r).justify),1)],40,mr)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(r).batchHeader),1),e.createElementVNode("select",{"aria-label":e.unref(r).batchHeader,disabled:t.readonly||e.unref(l)||e.unref(b),onChange:p[34]||(p[34]=d=>We(d,"headerAlign"))},[e.createElementVNode("option",kr,e.toDisplayString(e.unref(r).chooseAlignment),1),e.createElementVNode("option",Er,e.toDisplayString(e.unref(r).left),1),e.createElementVNode("option",Nr,e.toDisplayString(e.unref(r).center),1),e.createElementVNode("option",Sr,e.toDisplayString(e.unref(r).right),1),e.createElementVNode("option",Vr,e.toDisplayString(e.unref(r).justify),1)],40,br)])])):e.createCommentVNode("",!0)],40,Jl)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",wr,e.toDisplayString(e.unref(r).noColumns),1))],64)):e.unref(I)==="component"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",xr,[e.createElementVNode("select",{"aria-label":e.unref(r).insertComponent,disabled:e.unref(K)||F.value,onChange:p[37]||(p[37]=(...d)=>e.unref(fe)&&e.unref(fe)(...d))},[e.createElementVNode("option",Mr,e.toDisplayString(e.unref(r).insertComponent),1),e.createElementVNode("option",Br,e.toDisplayString(e.unref(r).insertText),1),e.createElementVNode("option",{value:"list",disabled:!!e.unref(y).template.repeat},e.toDisplayString(e.unref(r).insertList),9,Dr),e.createElementVNode("option",$r,e.toDisplayString(e.unref(r).insertImage),1),e.createElementVNode("option",_r,e.toDisplayString(e.unref(r).insertRect),1),e.createElementVNode("option",Tr,e.toDisplayString(e.unref(r).insertQrcode),1),e.createElementVNode("option",Ir,e.toDisplayString(e.unref(r).insertBarcode),1)],40,Cr),e.createElementVNode("button",{type:"button",title:e.unref(r).duplicateComponent,"aria-label":e.unref(r).duplicateComponent,disabled:e.unref(K)||F.value||!e.unref(ee),onClick:p[38]||(p[38]=(...d)=>e.unref(D).duplicate&&e.unref(D).duplicate(...d))}," + ",8,Rr),e.createElementVNode("button",{type:"button",title:e.unref(r).removeComponent,"aria-label":e.unref(r).removeComponent,disabled:e.unref(K)||F.value||!e.unref(ee),onClick:p[39]||(p[39]=(...d)=>e.unref(D).remove&&e.unref(D).remove(...d))},[e.createVNode(J._sfc_main,{name:"close",size:14})],8,Lr)]),e.unref(y).template.pages.length>1?(e.openBlock(),e.createElementBlock("label",Pr,[e.createTextVNode(e.toDisplayString(e.unref(r).page),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":p[40]||(p[40]=d=>e.isRef(q)?q.value=d:null)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y).template.pages,(d,j)=>(e.openBlock(),e.createElementBlock("option",{key:j,value:j},e.toDisplayString(e.unref(we)(d,j,e.unref(r).page)),9,Ar))),128))],512),[[e.vModelSelect,e.unref(q),void 0,{number:!0}]])])):e.createCommentVNode("",!0),e.createElementVNode("label",Fr,[e.createTextVNode(e.toDisplayString(e.unref(r).components),1),e.createElementVNode("select",{value:e.unref(W)&&e.unref(W).pageIndex===e.unref(q)?e.unref(W).componentIndex:-1,onChange:p[41]||(p[41]=d=>Ie({pageIndex:e.unref(q),componentIndex:Number(ie(d))}))},[e.createElementVNode("option",Gr,e.toDisplayString(e.unref(r).noComponent),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ae.value,d=>(e.openBlock(),e.createElementBlock("option",{key:d.index,value:d.index},e.toDisplayString(d.index+1)+" · "+e.toDisplayString(d.name),9,zr))),128))],40,Hr)]),e.unref(D).selections.value.length?(e.openBlock(),e.createElementBlock("div",Or,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(D).selections.value.length)+" "+e.toDisplayString(e.unref(r).component),1),e.createElementVNode("button",{type:"button",disabled:e.unref(K),onClick:p[42]||(p[42]=(...d)=>e.unref(D).toggleLock&&e.unref(D).toggleLock(...d))},e.toDisplayString(e.unref(D).allLocked.value?e.unref(r).unlockSelection:e.unref(r).lockSelection),9,jr),e.createElementVNode("select",{"aria-label":e.unref(r).alignSelection,disabled:e.unref(K)||F.value||e.unref(D).selections.value.length<2,onChange:p[43]||(p[43]=d=>{e.unref(D).align(ie(d)),d.target.value=""})},[e.createElementVNode("option",Wr,e.toDisplayString(e.unref(r).alignSelection),1),e.createElementVNode("option",Ur,e.toDisplayString(e.unref(r).leftEdges),1),e.createElementVNode("option",Kr,e.toDisplayString(e.unref(r).centers),1),e.createElementVNode("option",Jr,e.toDisplayString(e.unref(r).rightEdges),1),e.createElementVNode("option",Yr,e.toDisplayString(e.unref(r).topEdges),1),e.createElementVNode("option",Xr,e.toDisplayString(e.unref(r).middles),1),e.createElementVNode("option",Zr,e.toDisplayString(e.unref(r).bottomEdges),1)],40,qr),e.createElementVNode("button",{type:"button",disabled:e.unref(K)||F.value||e.unref(D).selections.value.length<3,onClick:p[44]||(p[44]=d=>e.unref(D).distribute("horizontal"))},e.toDisplayString(e.unref(r).horizontalSpacing),9,Qr),e.createElementVNode("button",{type:"button",disabled:e.unref(K)||F.value||e.unref(D).selections.value.length<3,onClick:p[45]||(p[45]=d=>e.unref(D).distribute("vertical"))},e.toDisplayString(e.unref(r).verticalSpacing),9,ei),e.unref(D).allLocked.value?(e.openBlock(),e.createElementBlock("small",ti,e.toDisplayString(e.unref(r).sessionLock),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.unref(ee)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",ni,[e.createElementVNode("button",{type:"button",disabled:e.unref(K)||F.value||e.unref(W)?.componentIndex===0,onClick:p[46]||(p[46]=d=>e.unref(D).reorder(-1))},e.toDisplayString(e.unref(r).backward),9,oi),e.createElementVNode("button",{type:"button",disabled:e.unref(K)||F.value||e.unref(W)?.componentIndex===(e.unref(y).template.pages[e.unref(q)]?.components.length??0)-1,onClick:p[47]||(p[47]=d=>e.unref(D).reorder(1))},e.toDisplayString(e.unref(r).forward),9,ai)]),e.createVNode(Bo,{component:e.unref(ee),"geometry-disabled":F.value,disabled:e.unref(K)||e.unref(D).locked(e.unref(W)),messages:e.unref(r),repeat:e.unref(y).template.repeat,schema:U.value,onGeometry:e.unref(D).geometry,onPatch:e.unref(De)},null,8,["component","geometry-disabled","disabled","messages","repeat","schema","onGeometry","onPatch"]),e.unref(ee).kind==="list"?(e.openBlock(),e.createBlock(Va,{key:0,list:e.unref(ee),disabled:e.unref(K)||F.value,messages:e.unref(r),onCommand:e.unref($e)},null,8,["list","disabled","messages","onCommand"])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",li,e.toDisplayString(e.unref(r).noComponent),1))],64)):e.unref(I)==="template"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(r).templateDetails),1),e.createElementVNode("label",ri,[e.createTextVNode(e.toDisplayString(e.unref(r).name),1),e.createElementVNode("input",{value:e.unref(y).name,disabled:t.readonly||e.unref(l)||e.unref(b),onInput:p[48]||(p[48]=d=>e.unref(m).setName(ie(d)))},null,40,ii)]),e.createElementVNode("label",si,[e.createTextVNode(e.toDisplayString(e.unref(r).description),1),e.createElementVNode("textarea",{rows:"2",value:e.unref(y).description,disabled:t.readonly||e.unref(l)||e.unref(b),onInput:p[49]||(p[49]=d=>e.unref(m).setDescription(ie(d)))},null,40,di)]),e.createVNode(Xo,{document:e.unref(y),"page-index":e.unref(q),disabled:e.unref(K),messages:e.unref(r),onSelect:p[50]||(p[50]=d=>q.value=d),onCommand:ce,onLocate:p[51]||(p[51]=d=>{Ie({pageIndex:e.unref(q),componentIndex:d}),e.unref(z)("design")})},null,8,["document","page-index","disabled","messages"]),e.createVNode(fa,{document:e.unref(y),datasets:Object.keys(t.datasets??{}),schemas:t.dataSchemas,disabled:e.unref(K),messages:e.unref(r),onChange:p[52]||(p[52]=d=>{e.unref(m).transaction(j=>{d?j.template.repeat=d:delete j.template.repeat})})},null,8,["document","datasets","schemas","disabled","messages"]),e.createElementVNode("details",ci,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(r).technicalDetails),1),e.createElementVNode("dl",ui,[e.createElementVNode("dt",null,e.toDisplayString(e.unref(r).templateIdentity),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(y).id),1),e.createElementVNode("dt",null,e.toDisplayString(e.unref(r).templateRevision),1),e.createElementVNode("dd",null,e.toDisplayString(e.unref(y).revision||e.unref(r).unpublished),1)])])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("h3",null,e.toDisplayString(e.unref(r).advancedTitle),1),e.createElementVNode("label",mi,[e.createTextVNode(e.toDisplayString(e.unref(r).json),1),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":p[53]||(p[53]=d=>e.isRef(w)?w.value=d:null),class:"mr-designer-json","aria-label":e.unref(r).json,disabled:t.readonly||e.unref(l),spellcheck:"false"},null,8,pi),[[e.vModelText,e.unref(w)]])]),e.createElementVNode("button",{type:"button",class:"mr-designer-apply-json",disabled:t.readonly||e.unref(l),onClick:p[54]||(p[54]=(...d)=>e.unref(m).applyJson&&e.unref(m).applyJson(...d))},e.toDisplayString(e.unref(r).applyJson),9,vi)],64)),e.unref(b)?(e.openBlock(),e.createElementBlock("p",gi,e.toDisplayString(e.unref(r).jsonPending),1)):e.createCommentVNode("",!0)],10,ul)])):e.createCommentVNode("",!0),e.unref(I)!=="tools"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"mr-designer-preview","aria-label":e.unref(r).previewTitle},[e.unref(V)?(e.openBlock(),e.createElementBlock("div",hi,e.toDisplayString(e.unref(V)),1)):e.createCommentVNode("",!0),e.unref(x).ok?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("ul",yi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x).errors,d=>(e.openBlock(),e.createElementBlock("li",{key:d.path},e.toDisplayString(d.path)+":"+e.toDisplayString(d.message),1))),128))])),e.unref(T)==="design"&&e.unref(x).ok?(e.openBlock(),e.createBlock(ln,{key:2,document:e.unref(y),selection:e.unref(W),selections:e.unref(D).selections.value,locked:e.unref(D).locked,"active-column-index":e.unref(G),"page-index":e.unref(q),datasets:t.datasets,disabled:e.unref(K)||F.value||e.unref(m).isToolPending("rules"),messages:e.unref(r),onSelect:Ie,onGeometry:e.unref(D).geometry,onColumn:e.unref(R).activate,onWidth:p[55]||(p[55]=(d,j)=>e.unref(m).setColumn(d,"widthMm",String(j)))},null,8,["document","selection","selections","locked","active-column-index","page-index","datasets","disabled","messages","onGeometry","onColumn"])):e.unref(Q)&&e.unref(x).ok?(e.openBlock(),e.createBlock(e.unref(Fe.ReportPreview),{key:3,"report-id":"draft",fetcher:e.unref(Q),messages:{title:e.unref(r).previewTitle,columnDirectory:e.unref(r).previewFieldDirectory},"show-params":!1,editable:!1,"excel-import":!1,height:"100%"},null,8,["fetcher","messages"])):(e.openBlock(),e.createElementBlock("p",bi,e.toDisplayString(e.unref(r).invalid),1))],8,fi)):e.createCommentVNode("",!0)],2)],8,La))}}),Ei=J._export_sfc(ki,[["__scopeId","data-v-db80c404"]]),Ni={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:"调序"}},Si={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:"契约字段,不执行接口查询"},Vi={restoreDraft:"恢复工具草稿",catalog:"规则与字段",searchFields:"搜索字段、类型或单位",useField:"使用此字段",shown:"显示",explanation:"计算解释",sourceValues:"源值",expression:"表达式",result:"结果",notChecked:"修改后请重新验算",nullReason:"空值依规则保留;空值传播与除零策略见计算边界。",sourceHint:"最多展示 5 条明细;分组和全量聚合以当前验算范围为准。",pending:"未应用配置",detail:"主从",matrix:"矩阵",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:"否",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:"启用"},wi={paramsTool:"查询参数",paramsDescription:"配置一次,预览与服务端使用同一份校验规则。",paramsDirectory:"参数目录",paramAdd:"添加参数",paramEmpty:"尚未配置查询参数",paramEmptyHint:"添加日期、厂别等条件,报表预览会自动生成查询面板。",paramField:"参数标识",paramLabel:"显示名称",paramType:"控件类型",paramRequired:"必填",paramPlaceholder:"输入提示",paramDefaultEnabled:"设置默认值",paramDefault:"默认值",paramMinimum:"最小值(含边界)",paramMaximum:"最大值(含边界)",paramMinLength:"最少字符数",paramMaxLength:"最多字符数",paramOptions:"静态下拉选项",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:"下拉选择"},xi={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} 组"},Ci={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:"模板目录响应格式无效"},Mi=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TemplateReviewPanel-DwtOcLue.cjs"))),Bi=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ExcelBindingWizard-y0mT-AHR.cjs"))),Di=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./RuleEditor-ChRzNQuF.cjs"))),$i=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ParamEditor-MBBC7lUE.cjs"))),_i=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportBatchPanel-Fp1ePFag.cjs"))),Ti=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportTemplateLibrary-5fk5CQBO.cjs")));exports.EXCEL_BINDING_MESSAGES=Si;exports.ExcelBindingWizard=Bi;exports.PARAM_EDITOR_MESSAGES=wi;exports.ParamEditor=$i;exports.REPORT_BATCH_MESSAGES=xi;exports.RULE_EDITOR_MESSAGES=Vi;exports.ReportBatchPanel=_i;exports.ReportTemplateEditor=Ei;exports.ReportTemplateLibrary=Ti;exports.RuleEditor=Di;exports.TEMPLATE_EDITOR_MESSAGES=re;exports.TEMPLATE_LIBRARY_MESSAGES=Ci;exports.TEMPLATE_REVIEW_MESSAGES=Ni;exports.TemplateReviewPanel=Mi;