Files
qhmes/web-dist/js/FreeTableElement-BlpUN_ga.js
2026-06-16 18:19:57 +08:00

3 lines
13 KiB
Java

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["js/JsBarcode-D58uMVor.js","js/emoji-mart-vue-fast-R0uJEDq-.js","js/JsBarcode-9Xoda2fA.js"])))=>i.map(i=>d[i]);
var _e=Object.defineProperty,$e=Object.defineProperties;var Ee=Object.getOwnPropertyDescriptors;var ee=Object.getOwnPropertySymbols;var Fe=Object.prototype.hasOwnProperty,Re=Object.prototype.propertyIsEnumerable;var V=Math.pow,te=(f,b,c)=>b in f?_e(f,b,{enumerable:!0,configurable:!0,writable:!0,value:c}):f[b]=c,K=(f,b)=>{for(var c in b||(b={}))Fe.call(b,c)&&te(f,c,b[c]);if(ee)for(var c of ee(b))Re.call(b,c)&&te(f,c,b[c]);return f},X=(f,b)=>$e(f,Ee(b));var ne=(f,b,c)=>new Promise((E,R)=>{var i=w=>{try{x(c.next(w))}catch(_){R(_)}},S=w=>{try{x(c.throw(w))}catch(_){R(_)}},x=w=>w.done?E(w.value):Promise.resolve(w.value).then(i,S);x((c=c.apply(f,b)).next())});import{_ as Le,au as Te}from"./index-X7Y8jykP.js";import{e as De,o as Be,n as z,h as Ae,C as h,z as p,H as Q,Q as N,R as $,F as T,D,c as y,T as k,J as ze,G as oe,r as B}from"./vue-vendor-DNhG1Cve.js";import{Q as He}from"./browser-D2DxMZOB.js";import{g as Ie}from"./tableBuilder-lOY0L2dW.js";import{n as We}from"./freeTableGrid-BXWKfNhh.js";import{r as qe}from"./freeTableBorders-i5ck0FPH.js";import{b as Ue,l as H,r as re,a as ae,c as Ge,d as Ve}from"./freeTableTracks--U1Y5u-V.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const Ke=["data-free-table-id"],Xe=["rowspan","colspan","data-ft-row","data-ft-col","onPointerdown","onDblclick"],Qe=["onPointerdown"],Ye={key:0,class:"cell-body cell-body--text"},je={key:1,class:"cell-body cell-body--numeric"},Je=["src"],Oe=["src"],Ze=["src"],et={key:0,class:"free-table-track-layer","aria-hidden":"true"},tt=["onPointerdown"],nt=["onPointerdown"],I=3.7795275591,ot=De({__name:"FreeTableElement",props:{element:{},previewData:{},selectedCell:{},mergeRangeCorner:{},isElementSelected:{type:Boolean},scale:{default:1}},emits:["select-cell","swap-cells","edit-cell","update-tracks"],setup(f,{emit:b}){const c=B({}),E=B({}),R=B(null),i=f,S=b,x=y(()=>{var e;return Math.max(1,Number(((e=i.element)==null?void 0:e.rowCount)||1))}),w=y(()=>{var e;return Math.max(1,Number(((e=i.element)==null?void 0:e.colCount)||1))}),_=y(()=>re(i.element)),W=y(()=>ae(i.element)),se=y(()=>{var e,t;return j(_.value,Number(((e=i.element)==null?void 0:e.w)||.01),w.value,Number(((t=i.element)==null?void 0:t.borderWidth)||1))}),Y=y(()=>{var e,t;return j(W.value,Number(((e=i.element)==null?void 0:e.h)||.01),x.value,Number(((t=i.element)==null?void 0:t.borderWidth)||1))});function j(e,t,o,r){const a=Math.max(1,Number(o||e.length||1)),n=(e||[]).slice(0,a).map(C=>Math.max(.01,Number(C)||.01));for(;n.length<a;)n.push(.01);const u=Math.max(.01,Number(t)||.01),s=Math.max(0,Number(r)||1)/I,d=(a+1)*s,l=Math.max(.01,u-d),g=n.reduce((C,F)=>C+F,0),v=g>0?l/g:1,m=n.map(C=>Math.max(.01,Math.round(C*v*1e3)/1e3)),M=m.reduce((C,F)=>C+F,0);return m[m.length-1]=Math.max(.01,Math.round((m[m.length-1]+(l-M))*1e3)/1e3),m}const ie=y(()=>{var a;const e=Math.max(.01,Number((a=i.element)==null?void 0:a.w)||.01);let t=0;const o=_.value,r=[];for(let n=0;n<o.length-1;n+=1)t+=o[n],r.push(t/e*100);return r}),ue=y(()=>{var a;const e=Math.max(.01,Number((a=i.element)==null?void 0:a.h)||.01);let t=0;const o=W.value,r=[];for(let n=0;n<o.length-1;n+=1)t+=o[n],r.push(t/e*100);return r}),q=B(null),U=B(null);function A(){var n;const e=R.value,t=(n=e==null?void 0:e.querySelector)==null?void 0:n.call(e,"table");if(!e||!t)return;const o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return;const r=Array.from(t.querySelectorAll("colgroup col"));if(r.length>1){let u=0;const s=[];for(let d=0;d<r.length-1;d+=1)u+=r[d].getBoundingClientRect().width,s.push(u/o.width*100);q.value=s}else q.value=null;const a=Array.from(t.querySelectorAll("tbody > tr"));if(a.length>1){let u=0;const s=[];for(let d=0;d<a.length-1;d+=1)u+=a[d].getBoundingClientRect().height,s.push(u/o.height*100);U.value=s}else U.value=null}const me=y(()=>{const e=q.value;return e&&e.length===Math.max(0,w.value-1)?e:ie.value}),de=y(()=>{const e=U.value;return e&&e.length===Math.max(0,x.value-1)?e:ue.value}),J=y(()=>{var e;return We(x.value,w.value,((e=i.element)==null?void 0:e.cells)||[])}),ce=y(()=>{if(!i.selectedCell||!i.mergeRangeCorner)return null;const e=i.selectedCell,t=i.mergeRangeCorner;return{r0:Math.min(e.row,t.row),r1:Math.max(e.row,t.row),c0:Math.min(e.col,t.col),c1:Math.max(e.col,t.col)}});function le(e){return J.value.filter(t=>t.row===e).sort((t,o)=>t.col-o.col)}function P(e){return String((e==null?void 0:e.contentType)||"text")}function L(e){const t=String((e==null?void 0:e.bindField)||"").trim();if(t){const o=Ie(i.previewData||{},t);if(o!=null&&String(o).trim())return String(o)}return String((e==null?void 0:e.text)||"").trim()}function he(e){const t=P(e);return t==="number"||t==="amount"?O(e):L(e)||" "}function O(e){var u;const t=L(e),o=Number(t);if(!Number.isFinite(o))return t||" ";const r=Math.max(0,Math.min(6,Number((u=e==null?void 0:e.decimalPlaces)!=null?u:2))),n=((e==null?void 0:e.roundHalfUp)===!1?Math.trunc(o*V(10,r))/V(10,r):Number(o.toFixed(r))).toLocaleString(void 0,{minimumFractionDigits:r,maximumFractionDigits:r});return P(e)==="amount"?`${(e==null?void 0:e.amountType)==="USD"?"$":(e==null?void 0:e.amountType)==="EUR"?"EUR ":"¥"}${n}`:n}function pe(e){const t=L(e);return t||`https://via.placeholder.com/180x80.png?text=${encodeURIComponent("Image")}`}function G(e,t){const o=(e==null?void 0:e.fillCell)!==!1,r=Math.max(10,Math.min(100,Number((e==null?void 0:e.contentScale)||100))),a=`${r}%`,n={display:"block",margin:"0 auto",maxWidth:"100%",maxHeight:"100%",objectFit:t==="image"&&(e==null?void 0:e.imageFit)||"contain"};return o?(n.width="100%",n.height="100%"):(n.width=a,n.height=t==="barcode"?`${Math.max(20,r*.6)}%`:a),n}function fe(e){const t=String(L(e)||"qrcode_empty"),o=`${(e==null?void 0:e.qrLevel)||"M"}|${(e==null?void 0:e.qrRenderType)||"image/png"}|${t}`;return c.value[o]?c.value[o]:(He.toDataURL(t,{errorCorrectionLevel:(e==null?void 0:e.qrLevel)||"M",margin:0,type:(e==null?void 0:e.qrRenderType)||"image/png",width:200}).then(r=>{c.value=X(K({},c.value),{[o]:r})}).catch(()=>{}),"")}function ve(e,t){return ne(this,null,function*(){const o=yield Le(()=>import("./JsBarcode-D58uMVor.js").then(n=>n.J),__vite__mapDeps([0,1,2])),r=o.default||o,a=document.createElement("canvas");return r(a,e||"00000000",{format:t||"CODE128",displayValue:!1,margin:0,width:2,height:70}),a.toDataURL("image/png")})}function be(e){const t=String(L(e)||"00000000"),o=String((e==null?void 0:e.barcodeFormat)||"CODE128"),r=`${o}|${t}`;return E.value[r]?E.value[r]:(ve(t,o).then(a=>{E.value=X(K({},E.value),{[r]:a})}).catch(()=>{}),"")}function we(e){var F,Z;const t=Math.max(1,Number((e==null?void 0:e.rowspan)||1)),o=Math.max(1,Number((e==null?void 0:e.colspan)||1)),r=Math.max(1,Number(((F=i.element)==null?void 0:F.borderWidth)||1)),a=((Z=i.element)==null?void 0:Z.borderColor)||"#d9d9d9",n=qe(i.element,J.value,e,e.row,e.col,t,o,x.value,w.value),u=Ue(i.element,e.row,e.col,t,o,x.value,w.value),s=Y.value.slice(e.row,Math.min(x.value,e.row+t)).reduce((Pe,Se)=>Pe+(Number(Se)||0),0),d=Math.max(8,s*I),l=Math.max(1,Math.min(4,Math.round(d*.08))),g=Math.max(2,Math.min(6,Math.round(l*1.5))),v=Math.max(1,Number((e==null?void 0:e.fontSize)||12)),m=Math.max(1,d-l*2),M=Math.max(1,Math.min(v,Math.floor(m*.82))),C=e.autoWrap===!1;return{boxSizing:"border-box",minHeight:"0",textAlign:(e==null?void 0:e.align)||"left",verticalAlign:(e==null?void 0:e.verticalAlign)||"middle",fontSize:`${M}px`,color:(e==null?void 0:e.color)||"#111111",backgroundColor:(e==null?void 0:e.backgroundColor)||"#ffffff",padding:`${l}px ${g}px`,whiteSpace:C?"nowrap":"pre-wrap",wordBreak:C?"normal":"break-all",lineHeight:C?`${Math.max(1,m)}px`:"1.15",overflow:"hidden",borderTop:n.top?`${r}px ${H(u.top)} ${a}`:"none",borderRight:n.right?`${r}px ${H(u.right)} ${a}`:"none",borderBottom:n.bottom?`${r}px ${H(u.bottom)} ${a}`:"none",borderLeft:n.left?`${r}px ${H(u.left)} ${a}`:"none"}}function ge(e,t){S("select-cell",{row:e.row,col:e.col,shiftKey:t.shiftKey===!0})}function Me(e){S("edit-cell",{row:e.row,col:e.col})}function xe(e){return!i.isElementSelected||!i.selectedCell?!1:i.selectedCell.row===e.row&&i.selectedCell.col===e.col}function ye(e){const t=ce.value;if(!t)return!1;const o=Math.max(1,Number(e.rowspan||1)),r=Math.max(1,Number(e.colspan||1)),a=e.row,n=e.row+o-1,u=e.col,s=e.col+r-1;return!(n<t.r0||a>t.r1||s<t.c0||u>t.c1)}function Ce(e,t){var g;if(t.button!==0)return;const o=i.element,r=[...re(o)],a=Math.max(.01,Number(o.w)||.01),n=t.clientX,u=Math.max(.2,Number(i.scale)||1),s=t.currentTarget;try{(g=s==null?void 0:s.setPointerCapture)==null||g.call(s,t.pointerId)}catch(v){}const d=v=>{const m=(v.clientX-n)/u/I,M=Ge(r,e,m,a);M&&(S("update-tracks",{colWidths:M}),z(A))},l=v=>{var m;try{(m=s==null?void 0:s.releasePointerCapture)==null||m.call(s,v.pointerId)}catch(M){}window.removeEventListener("pointermove",d),window.removeEventListener("pointerup",l),window.removeEventListener("pointercancel",l)};window.addEventListener("pointermove",d),window.addEventListener("pointerup",l),window.addEventListener("pointercancel",l)}function Ne(e,t){var g;if(t.button!==0)return;const o=i.element,r=[...ae(o)],a=Math.max(.01,Number(o.h)||.01),n=t.clientY,u=Math.max(.2,Number(i.scale)||1),s=t.currentTarget;try{(g=s==null?void 0:s.setPointerCapture)==null||g.call(s,t.pointerId)}catch(v){}const d=v=>{const m=(v.clientY-n)/u/I,M=Ve(r,e,m,a);M&&(S("update-tracks",{rowHeights:M}),z(A))},l=v=>{var m;try{(m=s==null?void 0:s.releasePointerCapture)==null||m.call(s,v.pointerId)}catch(M){}window.removeEventListener("pointermove",d),window.removeEventListener("pointerup",l),window.removeEventListener("pointercancel",l)};window.addEventListener("pointermove",d),window.addEventListener("pointerup",l),window.addEventListener("pointercancel",l)}function ke(e,t,o){if(e.button!==0)return;const r=i.element.id,a=u=>{},n=u=>{var m,M;window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",n);const s=document.elementFromPoint(u.clientX,u.clientY),d=(m=s==null?void 0:s.closest)==null?void 0:m.call(s,"[data-free-table-id]");if(!d||d.getAttribute("data-free-table-id")!==r)return;const l=(M=s==null?void 0:s.closest)==null?void 0:M.call(s,"td[data-ft-row]");if(!l)return;const g=Number(l.getAttribute("data-ft-row")),v=Number(l.getAttribute("data-ft-col"));!Number.isFinite(g)||!Number.isFinite(v)||t===g&&o===v||S("swap-cells",{fromRow:t,fromCol:o,toRow:g,toCol:v})};window.addEventListener("pointermove",a),window.addEventListener("pointerup",n)}return Be(()=>{z(A)}),Ae(()=>{var e,t,o;return[x.value,w.value,_.value.join(","),W.value.join(","),Number(((e=i.element)==null?void 0:e.borderWidth)||1),Number(((t=i.element)==null?void 0:t.w)||0),Number(((o=i.element)==null?void 0:o.h)||0),Number(i.scale||1)]},()=>{z(A)}),(e,t)=>{var o;return p(),h("div",{class:"free-table-element","data-free-table-id":f.element.id,style:k({"--ft-edit-line-w":`${Math.max(1,Number(((o=f.element)==null?void 0:o.borderWidth)||1))}px`})},[f.isElementSelected?(p(),h("button",{key:0,type:"button",class:"free-table-move-handle",title:"拖动移动整个表格","aria-label":"拖动移动整个表格",onClick:t[0]||(t[0]=$(()=>{},["stop"]))},[...t[2]||(t[2]=[N("svg",{class:"free-table-move-icon",viewBox:"0 0 16 16",width:"11",height:"11",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[N("path",{d:"M8 1.5v3M8 11.5v3M1.5 8h3M11.5 8h3",stroke:"currentColor","stroke-width":"1.35","stroke-linecap":"round"}),N("path",{fill:"currentColor",d:"M8 2.35 6.15 4.55h3.7L8 2.35zm0 11.3 1.85-2.2H6.15L8 13.65zM2.35 8l2.2 1.85V6.15L2.35 8zm11.3 0-2.2-1.85v3.7L13.65 8z"})],-1)])])):Q("",!0),N("div",{ref_key:"surfaceRef",ref:R,class:"free-table-surface",onPointerdown:t[1]||(t[1]=$(()=>{},["stop"]))},[N("table",null,[N("colgroup",null,[(p(!0),h(T,null,D(se.value,(r,a)=>(p(),h("col",{key:`col_${a}`,style:k({width:`${r}mm`})},null,4))),128))]),N("tbody",null,[(p(!0),h(T,null,D(x.value,r=>{var a;return p(),h("tr",{key:`tr_${r-1}`,style:k({height:`${(a=Y.value[r-1])!=null?a:6}mm`})},[(p(!0),h(T,null,D(le(r-1),n=>(p(),h("td",{key:`td_${n.row}_${n.col}`,class:ze(["free-table-cell",{"is-selected":xe(n),"is-merge-range":ye(n)}]),rowspan:Math.max(1,Number(n.rowspan||1)),colspan:Math.max(1,Number(n.colspan||1)),"data-ft-row":n.row,"data-ft-col":n.col,style:k(we(n)),onPointerdown:$(u=>ge(n,u),["stop"]),onDblclick:$(u=>Me(n),["stop"])},[N("span",{class:"cell-move-handle",title:"拖动交换单元格内容",onPointerdown:$(u=>ke(u,n.row,n.col),["stop","prevent"])},[...t[3]||(t[3]=[N("span",{class:"cell-move-handle-icon","aria-hidden":"true"},"≡",-1)])],40,Qe),P(n)==="text"?(p(),h("span",Ye,oe(he(n)),1)):P(n)==="number"||P(n)==="amount"?(p(),h("span",je,oe(O(n)),1)):P(n)==="image"?(p(),h("img",{key:2,class:"table-media-free",alt:"",src:pe(n),style:k(G(n,"image"))},null,12,Je)):P(n)==="qrcode"?(p(),h("img",{key:3,class:"table-media-free",alt:"",src:fe(n),style:k(G(n,"qrcode"))},null,12,Oe)):P(n)==="barcode"?(p(),h("img",{key:4,class:"table-media-free",alt:"",src:be(n),style:k(G(n,"barcode"))},null,12,Ze)):Q("",!0)],46,Xe))),128))],4)}),128))])]),f.isElementSelected?(p(),h("div",et,[(p(!0),h(T,null,D(me.value,(r,a)=>(p(),h("div",{key:`cg_${a}`,class:"track-grip track-grip--col",style:k({left:`${r}%`}),title:"拖动调整列宽",onPointerdown:$(n=>Ce(a,n),["stop","prevent"])},null,44,tt))),128)),(p(!0),h(T,null,D(de.value,(r,a)=>(p(),h("div",{key:`rg_${a}`,class:"track-grip track-grip--row",style:k({top:`${r}%`}),title:"拖动调整行高",onPointerdown:$(n=>Ne(a,n),["stop","prevent"])},null,44,nt))),128))])):Q("",!0)],544)],12,Ke)}}}),ht=Te(ot,[["__scopeId","data-v-03b24d93"]]);export{ht as default};