var Bt=Object.defineProperty,kt=Object.defineProperties;var Rt=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var mt=Object.prototype.hasOwnProperty,wt=Object.prototype.propertyIsEnumerable;var ht=Math.pow,xt=(t,r,e)=>r in t?Bt(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,M=(t,r)=>{for(var e in r||(r={}))mt.call(r,e)&&xt(t,e,r[e]);if(nt)for(var e of nt(r))wt.call(r,e)&&xt(t,e,r[e]);return t},v=(t,r)=>kt(t,Rt(r));var ot=(t,r)=>{var e={};for(var a in t)mt.call(t,a)&&r.indexOf(a)<0&&(e[a]=t[a]);if(t!=null&&nt)for(var a of nt(t))r.indexOf(a)<0&&wt.call(t,a)&&(e[a]=t[a]);return e};var z=(t,r,e)=>new Promise((a,n)=>{var i=l=>{try{s(e.next(l))}catch(b){n(b)}},g=l=>{try{s(e.throw(l))}catch(b){n(b)}},s=l=>l.done?a(l.value):Promise.resolve(l.value).then(i,g);s((e=e.apply(t,r)).next())});import{aK as Mt}from"./index-X7Y8jykP.js";import{Q as Wt}from"./browser-D2DxMZOB.js";import{b as It}from"./tableMerge-CpKVscEF.js";import{n as bt,r as st,g as Y}from"./tableBuilder-lOY0L2dW.js";import{n as _t}from"./freeTableGrid-BXWKfNhh.js";import{r as jt,b as Lt}from"./freeTableBorders-i5ck0FPH.js";import{r as Et,a as qt,b as Dt}from"./freeTableTracks--U1Y5u-V.js";import{b as vt}from"./barcodeRenderer-cjxjmb-t.js";import{c as Ot,b as Vt}from"./vue-vendor-DNhG1Cve.js";function it(t,r){const e=t.bindField;if(e)return String(e).split(".").reduce((a,n)=>a==null?void 0:a[n],r||{})}function Yt(t,r,e=1,a=1){var i,g,s,l;const n=it(t,r);if(n!=null&&t.type!=="pageNo")return t.type==="date"?Mt(n).format(t.format||"YYYY-MM-DD"):String(n);if(t.type==="date")return Mt().format(t.format||"YYYY-MM-DD");if(t.type==="pageNo")return t.text.replace("{{pageNo}}",String(e)).replace("{{totalPages}}",String(a));if((i=t.text)!=null&&i.startsWith("{{")&&((g=t.text)!=null&&g.endsWith("}}"))){const b=t.text.replaceAll("{","").replaceAll("}","").trim();return String((s=Y(r||{},b))!=null?s:"")}return String((l=t.text)!=null?l:"")}function Kt(t,r){return z(this,null,function*(){const e=Math.max(1,Number((t==null?void 0:t.rowCount)||1)),a=Math.max(1,Number((t==null?void 0:t.colCount)||1)),n=Math.max(.01,Number(t==null?void 0:t.w)||.01),i=Math.max(.01,Number(t==null?void 0:t.h)||.01),g=String((t==null?void 0:t.borderColor)||"#d9d9d9"),s=Math.max(1,Number((t==null?void 0:t.borderWidth)||1)),l=$t(Et(t),n,a,s),b=$t(qt(t),i,e,s),p=`
${l.map(o=>` `).join("")} `,d=_t(e,a,(t==null?void 0:t.cells)||[]),u=(yield Promise.all(Array.from({length:e},(o,x)=>z(null,null,function*(){var m;const f=(m=b[x])!=null?m:i/e,c=(yield Promise.all(d.filter(h=>h.row===x).sort((h,y)=>h.col-y.col).map(h=>z(null,null,function*(){var T,A,W;const y=Math.max(1,Number(h.rowspan||1)),w=Math.max(1,Number(h.colspan||1)),$=String((h==null?void 0:h.bindField)||"").trim(),S=$?(T=Y(r||{},$))!=null?T:"":(A=h==null?void 0:h.text)!=null?A:"",N=String(S!=null?S:""),C=String((h==null?void 0:h.contentType)||"text"),H=C==="number"||C==="amount"?dt(S,h):N,K=yield Ct(C,C==="image"||C==="qrcode"||C==="barcode"?N:H,h),lt=String((h==null?void 0:h.align)||"left"),B=String((h==null?void 0:h.verticalAlign)||"middle"),U=Math.max(1,Number((h==null?void 0:h.fontSize)||((W=t.style)==null?void 0:W.fontSize)||12)),ft=String((h==null?void 0:h.color)||"#111111"),yt=String((h==null?void 0:h.backgroundColor)||"#ffffff"),G=y>1?` rowspan="${y}"`:"",J=w>1?` colspan="${w}"`:"",Q=l.slice(h.col,h.col+w).reduce((j,E)=>j+E,0),q=b.slice(h.row,h.row+y).reduce((j,E)=>j+E,0),L=Math.max(.15,Math.min(.8,q*.08)),X=Math.max(.3,Math.min(1.2,L*1.6)),D=Math.max(.1,q-L*2),Z=D*(96/25.4),tt=Math.max(1,Math.min(U,Math.floor(Z*.82))),et=`width:${Q}mm;`,rt=jt(t,d,h,h.row,h.col,y,w,e,a),at=Dt(t,h.row,h.col,y,w,e,a),k=Lt(rt,s,g,at),F=h.autoWrap===!1,_=F?"nowrap":"normal",I=F?"normal":"break-all",R=F?"normal":"anywhere";return`${K} `})))).join("");return`${c} `})))).join("");return``})}function $t(t,r,e,a){const n=Math.max(1,Number(e||t.length||1)),i=(t||[]).slice(0,n).map(f=>Math.max(.01,Number(f)||.01));for(;i.lengthf+c,0),u=d>0?p/d:1,o=i.map(f=>Math.max(.01,Math.round(f*u*1e3)/1e3)),x=o.reduce((f,c)=>f+c,0);return o[o.length-1]=Math.max(.01,Math.round((o[o.length-1]+(p-x))*1e3)/1e3),o}function Ut(t,r){return z(this,null,function*(){const e=st(t,r),a=bt(t),n=Math.max(1,Number((t==null?void 0:t.fixedRows)||5)),i=Gt(e,n),g=i.length?i:[[]],s=String(t.footerTotalMode||"overall");return Promise.all(g.map((l,b)=>{const p=b===g.length-1;return Tt(t,a,l,s==="page"?!0:p,s==="page"?l:e)}))})}function Tt(i,g,s,l){return z(this,arguments,function*(t,r,e,a,n=e){const b=It(e,t.columns,t.mergeColumnKeys||[],t.strictGrouping!==!1),p=t.showHeader?Jt(t,r):"",d=(yield Promise.all(e.map((o,x)=>z(null,null,function*(){const f=(yield Promise.all(r.map(c=>z(null,null,function*(){var P;const m=c.bindField||c.field,h=b[`${x}_${m}`];if(h===0)return"";const y=h&&h>1?` rowspan="${h}"`:"",w=(P=Y(o||{},m))!=null?P:"",$=String(c.contentType||"text"),S=pt(c)?dt(w,c):String(w),N=yield Ct($,S,c),C=c!=null&&c.useCustomFontSize?Number((c==null?void 0:c.fontSize)||12):Number(t.bodyFontSize||12),H=ut(c,S,Number((c==null?void 0:c.width)||30),t.rowHeight||8,C);return`${N} `})))).join("");return`${f} `})))).join(""),u=a?Xt(n,r,t):"";return``})}function Gt(t,r){const e=Math.max(1,Number(r||1)),a=[];for(let n=0;n{const g=i.map(s=>{const l=r[s.col]||{},b=r.slice(s.col,s.col+s.colspan).reduce((u,o)=>u+Number((o==null?void 0:o.width)||0),0),p=n*Number(s.rowspan||1),d=ut(l,String((s==null?void 0:s.title)||""),Number(b||(l==null?void 0:l.width)||30),p,Number(t.headerFontSize||12));return`${s.title||""} `}).join("");return`${g} `}).join("")}function Qt(t,r){var b,p;const e=r.length;if(!e)return[];if(t.enableMultiHeader!==!0)return[r.map((d,u)=>({row:0,col:u,rowspan:1,colspan:1,title:String((d==null?void 0:d.title)||""),align:(d==null?void 0:d.align)||"center",widthPercent:Number((d==null?void 0:d.widthPercent)||0)}))];const a=t==null?void 0:t.headerConfig,n=Math.max(1,Number((a==null?void 0:a.rowCount)||1)),i=Array.from({length:n},()=>Array.from({length:e},()=>null)),g=[];(Array.isArray(a==null?void 0:a.cells)&&Number((a==null?void 0:a.colCount)||0)===e?a.cells:[]).forEach(d=>{const u=Math.max(0,Number((d==null?void 0:d.row)||0)),o=Math.max(0,Number((d==null?void 0:d.col)||0)),x=Math.max(1,Number((d==null?void 0:d.rowspan)||1)),f=Math.max(1,Number((d==null?void 0:d.colspan)||1));if(u>=n||o>=e||i[u][o])return;const c=Math.min(n,u+x),m=Math.min(e,o+f);for(let y=u;y[]);return g.forEach(d=>{if(i[d.row][d.col]!==d)return;const u=r.slice(d.col,d.col+d.colspan).reduce((o,x)=>o+Number((x==null?void 0:x.widthPercent)||0),0);l[d.row].push(v(M({},d),{widthPercent:u}))}),l.forEach(d=>d.sort((u,o)=>u.col-o.col)),l}function Nt(t,r){return z(this,null,function*(){const e=String(t||"empty");return Wt.toDataURL(e,{errorCorrectionLevel:(r==null?void 0:r.qrLevel)||"M",margin:0,type:(r==null?void 0:r.qrRenderType)||"image/png",width:220})})}function Ct(t,r,e){return z(this,null,function*(){const a=String(r||""),n=(e==null?void 0:e.fillCell)!==!1,i=Math.max(10,Math.min(100,Number((e==null?void 0:e.contentScale)||100)));if(t==="image")return` `;if(t==="qrcode")try{return` `}catch(g){return`QR:${a}
`}if(t==="barcode"){const g=yield vt(a,{format:e==null?void 0:e.barcodeFormat,displayValue:(e==null?void 0:e.displayValue)!==!1,fontSize:e==null?void 0:e.barcodeFontSize}),s=n?"100%":`${i}%`,l=n?"100%":`${Math.max(20,i*.6)}%`;if(g){const b=g.replace(/${b}`}return`${a}
`}return a})}function ut(t,r,e,a,n){const i=Number(n||12);if(!(t!=null&&t.autoFitFont))return i;const g=Math.max(1,e*3.7795275591),s=Math.max(1,a*3.7795275591),l=Math.max(1,r.length),b=g/Math.max(1,l*.62),p=(t==null?void 0:t.autoWrap)===!1?s*.55:s*.36,d=Math.min(i,b,p);return Math.max(8,Math.round(d))}function pt(t){const r=String((t==null?void 0:t.contentType)||"text");return r==="number"||r==="amount"}function dt(t,r){var g;const e=Number(t);if(!Number.isFinite(e))return String(t!=null?t:"");const a=Math.max(0,Math.min(6,Number((g=r==null?void 0:r.decimalPlaces)!=null?g:2))),i=((r==null?void 0:r.roundHalfUp)===!1?Math.trunc(e*ht(10,a))/ht(10,a):Number(e.toFixed(a))).toLocaleString(void 0,{minimumFractionDigits:a,maximumFractionDigits:a});return String((r==null?void 0:r.contentType)||"text")==="amount"?`${(r==null?void 0:r.amountType)==="USD"?"$":(r==null?void 0:r.amountType)==="EUR"?"EUR ":"¥"}${i}`:i}function Xt(t,r,e){var s;if((e==null?void 0:e.footerShowTotal)===!1)return"";const a=String((e==null?void 0:e.footerLabelColumnKey)||((s=r==null?void 0:r[0])==null?void 0:s.key)||""),n=String((e==null?void 0:e.footerLabelText)||"合计"),i=(e==null?void 0:e.footerLabelCenter)===!1?"left":"center";return`${r.map((l,b)=>{if(pt(l)&&(l!=null&&l.enableFooterTotal)){const p=(l==null?void 0:l.bindField)||(l==null?void 0:l.field),d=t.reduce((u,o)=>{const x=Number(Y(o||{},p));return u+(Number.isFinite(x)?x:0)},0);return`${dt(d,l)} `}return String((l==null?void 0:l.key)||"")===a||!a&&b===0?`${n} `:' '}).join("")} `}function Te(t,r){return z(this,null,function*(){const e=le(t,r),a=t.page.height*e,n=zt(t),i=n.enabled,g=n.visible,s=At(t),l=[...t.elements].sort((o,x)=>o.zIndex-x.zIndex),b=(yield Promise.all(l.map(o=>z(null,null,function*(){var G,J,Q,q,L,X,D,Z,tt,et,rt,at;if(o.visible===!1)return"";const x=o.type==="reportFooter",f=o.type==="reportHeader",c=f&&o.printRepeated===!0,m=fe(o,n.headerId,s);if(!g&&m)return"";const h=m&&i,y=f||x?0:o.x,w=f?0:x&&o.printAtPageBottom===!0?Math.max(0,t.page.height-o.h):o.y,$=f||x?t.page.width:o.w,S=Math.max(0,Number(((G=o.style)==null?void 0:G.borderWidth)||0)),N=((J=o.style)==null?void 0:J.borderColor)||"#222",C=S>0&&((Q=o.style)==null?void 0:Q.hideBorderTop)!==!0?`${S}px solid ${N}`:"none",H=S>0&&((q=o.style)==null?void 0:q.hideBorderRight)!==!0?`${S}px solid ${N}`:"none",P=S>0&&((L=o.style)==null?void 0:L.hideBorderBottom)!==!0?`${S}px solid ${N}`:"none",K=S>0&&((X=o.style)==null?void 0:X.hideBorderLeft)!==!0?`${S}px solid ${N}`:"none",lt=["position:absolute",`width:${$}mm`,`height:${o.h}mm`,`font-size:${((D=o.style)==null?void 0:D.fontSize)||12}px`,`font-weight:${((Z=o.style)==null?void 0:Z.fontWeight)||400}`,`color:${((tt=o.style)==null?void 0:tt.color)||"#111"}`,`line-height:${((et=o.style)==null?void 0:et.lineHeight)||1.4}`,`text-align:${((rt=o.style)==null?void 0:rt.textAlign)||"left"}`,`background:${((at=o.style)==null?void 0:at.backgroundColor)||"transparent"}`,`border-top:${C}`,`border-right:${H}`,`border-bottom:${P}`,`border-left:${K}`,"overflow:hidden"].filter(Boolean).join(";"),B=k=>[`left:${y}mm`,`top:${k}mm`,lt].join(";");if(o.type==="table"||o.type==="detailTable"){if(String(o.tableHeightMode||"autoPage")==="fixedRows")return(yield Ut(o,r)).map((W,j)=>{const E=St(t,j,w,Number(o.h||1),i,s,e);return`${W}
`}).join("");const F=bt(o),_=Ft(o,t,r,{repeatHeaderBandMm:s,repeatHeaderEnabled:i}),I=st(o,r),R=String(o.footerTotalMode||"overall");return(yield Promise.all(_.map((A,W)=>z(null,null,function*(){const j=W===_.length-1;return Tt(o,F,A,R==="page"?!0:j,R==="page"?A:I)})))).map((A,W)=>`${A}
`).join("")}if(o.type==="freeTable"){const k=o.printRepeated===!0&&e>1,F=k?Array.from({length:e},(I,R)=>R+1):[1];return(yield Promise.all(F.map(I=>z(null,null,function*(){const R=w+(k?(I-1)*t.page.height:0),T=yield Kt(o,r);return`${T}
`})))).join("")}const U=(c||h||o.type==="pageNo")&&e>1,ft=U?Array.from({length:e},(k,F)=>F+1):[1];return(yield Promise.all(ft.map(k=>z(null,null,function*(){var _,I,R;const F=w+(U?(k-1)*t.page.height:0);if(o.type==="qrcode"){const T=(_=it(o,r))!=null?_:o.value;try{return` `}catch(A){return`二维码:${T!=null?T:""}
`}}if(o.type==="barcode"){const T=(I=it(o,r))!=null?I:o.value,A=yield vt(String(T!=null?T:""),{format:o.format,displayValue:o.displayValue!==!1,fontSize:o.fontSize,lineWidth:o.lineWidth,barHeight:o.barHeight,textAlign:o.textAlign,fillCell:o.fillCell===!0});if(A){const W=A.replace(/${W}`}return`条形码:${T!=null?T:""}
`}if(o.type==="image"){const T=o;return` `}return`${Yt(o,r,k,e)}
`})))).join("")})))).join(""),p=e>1?Array.from({length:e-1}).map((o,x)=>`
`).join(""):"",d=e>1?Array.from({length:e-1},(o,x)=>`
`).join(""):"",u=Zt(t.page.margin);return`
${b}
${p}
${d}
`})}function Zt(t){if(!Array.isArray(t)||t.length<4)return"0mm";const r=Math.max(0,Number(t[0]||0)),e=Math.max(0,Number(t[1]||0)),a=Math.max(0,Number(t[2]||0)),n=Math.max(0,Number(t[3]||0));return`${r}mm ${e}mm ${a}mm ${n}mm`}function te(t){var e;const r=(e=t.page)==null?void 0:e.margin;return!Array.isArray(r)||r.length<4?0:Math.max(0,Number(r[0]||0))}function ee(t){var i,g;const r=Math.max(1,Number(((i=t.page)==null?void 0:i.height)||297)),e=(g=t.page)==null?void 0:g.margin;if(!Array.isArray(e)||e.length<4)return r;const a=Math.max(0,Number(e[0]||0)),n=Math.max(0,Number(e[2]||0));return Math.max(10,r-a-n)}function Ht(t,r){const a=Number(r.y||0)+Math.max(.01,Number(r.h||1));return t.elements.some(n=>!((n==null?void 0:n.type)!=="freeTable"||(n==null?void 0:n.visible)===!1||n.printRepeated!==!0||Number(n.y||0)>=a-.02))}function St(t,r,e,a,n,i,g){var d;const s=Math.max(1,Number(((d=t.page)==null?void 0:d.height)||297)),l=r*s;if(r===0||g>1&&Ht(t,{y:e,h:a}))return l+Math.max(0,e);const p=te(t)+(n&&i>0?Math.max(0,i):0);return l+p}const re=96/25.4,ct=re,ae=1.4,ne=1.03;function oe(t){return t>=11904&&t<=40959||t>=12352&&t<=12543||t>=44032&&t<=55215||t>=63744&&t<=64255||t>=65280&&t<=65519}function ie(t,r,e){if(!t.length)return 1;let a=0;for(const i of t){const g=i.codePointAt(0);oe(g)?a+=1:/\s/.test(i)?a+=.22:a+=.62}a=Math.max(.01,a);const n=Math.max(1.8,r/Math.max(1,e)*.97);return Math.max(1,Math.ceil(a/n))}function se(t,r,e){const a=Math.max(.01,Number(t.rowHeight||8));let n=a;const i=4,g=1.25;for(const s of e){const l=s.bindField||s.field,b=Y(r||{},l),p=String(s.contentType||"text"),d=Math.max(1,Number(s.width||30)),u=s.autoWrap===!1,o=s!=null&&s.useCustomFontSize?Number((s==null?void 0:s.fontSize)||12):Number(t.bodyFontSize||12),x=pt(s)?dt(b,s):String(b!=null?b:""),f=ut(s,x,d,t.rowHeight||8,o);if(p==="qrcode"||p==="barcode"){const S=(s==null?void 0:s.fillCell)!==!1,N=Math.max(10,Math.min(100,Number((s==null?void 0:s.contentScale)||100))),C=S?d*.93:d*(N/100)*.93;n=Math.max(n,C+i+g);continue}if(p==="image"){const S=(s==null?void 0:s.fillCell)!==!1,N=Math.max(10,Math.min(100,Number((s==null?void 0:s.contentScale)||100))),C=S?d*.65:d*(N/100)*.65;n=Math.max(n,C+i+g*.6);continue}if(u){n=Math.max(n,a);continue}const c=x;if(!c.length){n=Math.max(n,a);continue}const m=d*ct,h=Math.max(8,m-2*ct*2),y=ie(c,h,f),w=f*1.3,$=y*w/ct;n=Math.max(n,$+i,a)}return Math.max(a,n)}function O(t){return Math.max(.01,t*ne)}function de(t,r,e){let a=0;const n=Math.min(r+e,t.length);for(let i=r;ise(t,$,i)),s=ee(r),l=Math.max(0,Number(t.y||0)),b=Math.max(.01,Number(t.rowHeight||8)),p=t.showHeader?Math.max(0,Number(t.headerHeight||10)):0,d=String(t.footerTotalMode||"overall"),u=t.footerShowTotal===!1,o=!u&&d==="page",x=!u&&d==="overall",f=Math.max(b,6),c=a.repeatHeaderEnabled&&a.repeatHeaderBandMm>0?Math.max(0,a.repeatHeaderBandMm):0,m=Ht(r,t),h=[];let y=0,w=0;for(;y5e3)break}return h.length?h:[[]]}function le(t,r){const e=zt(t),a=e.enabled?At(t):0,n=t.elements.filter(i=>i.type==="table"||i.type==="detailTable").map(i=>{const g=st(i,r);if(String((i==null?void 0:i.tableHeightMode)||"autoPage")!=="fixedRows"){const b=Ft(i,t,r,{repeatHeaderBandMm:a,repeatHeaderEnabled:e.enabled});return Math.max(1,b.length)}const l=Math.max(1,Number((i==null?void 0:i.fixedRows)||5));return Math.max(1,Math.ceil(g.length/l))});return Math.max(1,...n)}function zt(t){const r=t.elements.find(e=>e.type==="reportHeader");return r?r.visible===!1?{visible:!1,enabled:!1,headerId:String(r.id||"")}:{visible:!0,enabled:r.printRepeated===!0,headerId:String(r.id||"")}:{visible:!0,enabled:!1,headerId:""}}function At(t){const r=t.elements.find(e=>e.type==="reportHeader");return Math.max(0,Number((r==null?void 0:r.h)||0))}function fe(t,r,e){if(t.type==="reportHeader")return!0;if(t.type==="reportFooter")return!1;const a=String(t.bandId||"");if(r&&a===r)return!0;const n=String(t.region||"");if(n==="header")return!0;if(n==="body"||n==="footer"||e<=0)return!1;const i=Number(t.y||0),g=i+Number(t.h||0);return iArray.from({length:3}).map((g,s)=>({row:i,col:s,rowspan:1,colspan:1,text:`单元格${i+1}-${s+1}`,bindField:"",align:"left",verticalAlign:"middle",fontSize:12,color:"#111111",backgroundColor:"#ffffff"})))}):v(M({},a),{type:t,w:120,h:36,source:e,mergeColumnKeys:[],strictGrouping:!0,enableMultiHeader:!1,tableHeightMode:"autoPage",fixedRows:5,showHeader:!0,rowHeight:8,headerHeight:10,headerFontSize:12,bodyFontSize:12,headerBgColor:"#f5f5f5",headerTextColor:"#111111",footerLabelColumnKey:"",footerLabelText:"合计",footerLabelCenter:!0,footerShowTotal:!0,footerTotalMode:"overall",columns:he()})}function Ne(){const t=Vt({schema:Pt(),selectedId:"",scale:1}),r=Ot(()=>t.schema.elements.find(f=>f.id===t.selectedId));function e(f){var m,h,y,w;const c=v(M({},f),{dataBinding:{fieldMap:M({},((m=f.dataBinding)==null?void 0:m.fieldMap)||{}),tableSources:Array.isArray((h=f.dataBinding)==null?void 0:h.tableSources)?[...f.dataBinding.tableSources]:["mainTable","detailList"],params:Array.isArray((y=f.dataBinding)==null?void 0:y.params)?[...f.dataBinding.params]:[],detailTables:Array.isArray((w=f.dataBinding)==null?void 0:w.detailTables)?f.dataBinding.detailTables.map($=>v(M({},$),{fields:Array.isArray($.fields)?[...$.fields]:[]})):[]}});t.schema=c,c.elements.some($=>$.id===t.selectedId)||(t.selectedId="")}function a(f){var $,S,N;const c=Math.max(0,...t.schema.elements.map(C=>C.zIndex))+1,m=(S=($=t.schema.dataBinding)==null?void 0:$.detailTables)!=null?S:[],h=m.length&&((N=m[0])!=null&&N.tableKey)?String(m[0].tableKey):"",w=ce(f,c,f==="table"||f==="detailTable"?h||"List1":"");t.schema.elements.push(w),t.selectedId=w.id}function n(){t.selectedId&&(t.schema.elements=t.schema.elements.filter(f=>f.id!==t.selectedId),t.selectedId="")}function i(f,c){const m=t.schema.elements.find(h=>h.id===f);m&&Object.assign(m,c)}function g(f){t.selectedId=f}function s(f){const c=t.schema.dataBinding||{fieldMap:{},tableSources:["mainTable","detailList"],params:[],detailTables:[]};t.schema.dataBinding=M(M({},c),f)}function l(){const f=r.value;if(!f)return;const c=Math.max(0,...t.schema.elements.map(h=>h.zIndex))+1,m=JSON.parse(JSON.stringify(f));m.id=V(f.type),m.x+=6,m.y+=6,m.zIndex=c,t.schema.elements.push(m),t.selectedId=m.id}function b(){const f=r.value;f&&(f.zIndex+=1)}function p(){const f=r.value;f&&(f.zIndex=Math.max(1,f.zIndex-1))}function d(f){t.scale=Math.min(2,Math.max(.2,f))}function u(){return JSON.stringify(t.schema)}function o(f){const c=JSON.parse(f||"{}");if((c==null?void 0:c.engine)!=="native"||!Array.isArray(c.elements)||!c.page)throw new Error("模板 JSON 不是原生设计器格式");e(c)}function x(){return{width:t.schema.page.width*gt,height:t.schema.page.height*gt}}return{MM_TO_PX:gt,state:t,selectedElement:r,setSchema:e,patchDataBinding:s,addElement:a,removeSelected:n,updateElement:i,setSelected:g,duplicateSelected:l,bringForward:b,sendBackward:p,setScale:d,serialize:u,deserialize:o,pagePxSize:x}}function Ce(t){var s,l,b,p,d,u,o,x;const r=Pt(),e=t;if(!e||e.engine!=="native")throw new Error("返回内容不是原生模板(engine 需为 native)");const a=M(M({},r.page),e.page||{});a.unit="mm",(!Array.isArray(a.margin)||a.margin.length<4)&&(a.margin=[...r.page.margin]);const n=Array.isArray(e.elements)?e.elements:[];let i=1;for(const f of n)f.id||(f.id=`${String(f.type||"el")}_${Math.random().toString(36).slice(2,10)}`),(f.zIndex==null||f.zIndex===void 0)&&(f.zIndex=i),i+=1;const g={fieldMap:M(M({},((s=r.dataBinding)==null?void 0:s.fieldMap)||{}),((l=e.dataBinding)==null?void 0:l.fieldMap)||{}),tableSources:Array.isArray((b=e.dataBinding)==null?void 0:b.tableSources)&&e.dataBinding.tableSources.length?[...e.dataBinding.tableSources]:[...((p=r.dataBinding)==null?void 0:p.tableSources)||["mainTable","detailList"]],params:Array.isArray((d=e.dataBinding)==null?void 0:d.params)?[...e.dataBinding.params]:[...((u=r.dataBinding)==null?void 0:u.params)||[]],detailTables:Array.isArray((o=e.dataBinding)==null?void 0:o.detailTables)?e.dataBinding.detailTables.map(f=>({tableKey:String(f.tableKey||""),label:f.label?String(f.label):void 0,fields:Array.isArray(f.fields)?f.fields.map(c=>({key:String(c.key||""),label:c.label?String(c.label):void 0})):[]})):[...((x=r.dataBinding)==null?void 0:x.detailTables)||[]]};return{engine:"native",version:String(e.version||"1.0.0"),page:a,elements:n,dataBinding:g}}function ge(t){const r=t.filter(n=>(n==null?void 0:n.type)==="freeTable"),e=t.filter(n=>(n==null?void 0:n.type)==="table"||(n==null?void 0:n.type)==="detailTable"),a=r.length?r:e;return a.length?a.reduce((n,i)=>{const g=Number(n.y)||0,s=Number(i.y)||0;if(sg)return n;const l=(Number(n.w)||0)*(Number(n.h)||0);return(Number(i.w)||0)*(Number(i.h)||0)>=l?i:n}):null}function He(t){var d,u;const r=t.elements;if(!Array.isArray(r)||r.length===0)return t;const e=ge(r);if(!e)return t;const a=Number(e.y)||0,n=Number(e.x)||0,i=Number(e.w)||0,g=Number((d=t.page)==null?void 0:d.width)||210,s=((u=t.page)==null?void 0:u.margin)||[10,10,10,10],l=Number(s[0])||10,b=Number(s[1])||10,p=r.map(o=>{if((o==null?void 0:o.type)==="title"||(o==null?void 0:o.type)==="subtitle"){const x=Number(o.x)||0,f=Number(o.y)||0,c=Math.max(24,Number(o.w)||90),m=Math.max(8,Number(o.h)||14),h=f+m>a-1,y=x>n+i*.28;if(h||y){const w=n+i/2-c/2,$=Math.max(l,Math.min(g-b-c,w));return v(M({},o),{x:$,y:Math.max(2,a-m-8),style:v(M({},o.style||{}),{textAlign:"center"})})}}if((o==null?void 0:o.type)==="date"){const x=Number(o.x)||0,f=Number(o.y)||0,c=Math.max(28,Number(o.w)||55),m=Math.max(8,Number(o.h)||10),h=f+m>a+2,y=x+c{if((e==null?void 0:e.type)!=="table"&&(e==null?void 0:e.type)!=="detailTable"||e.enableMultiHeader!==!0)return e;const a=e.headerConfig,n=Array.isArray(a==null?void 0:a.cells)?a.cells:[],i=Math.max(1,Number((a==null?void 0:a.rowCount)||1)),g=n.filter(p=>{var d;return String((d=p==null?void 0:p.title)!=null?d:"").trim().length>0});if(g.length===0){const s=e,{headerConfig:p,enableMultiHeader:d}=s,u=ot(s,["headerConfig","enableMultiHeader"]);return v(M({},u),{enableMultiHeader:!1})}if(i>=2&&g.length=4&&g.length