exportdatafile
Version:
Export Data Excel Pdf and Txt
9 lines (8 loc) • 20.5 kB
JavaScript
var Z=["EXCEL","PDF","TXT","ALL"];function P(s,f=!1){let p=new Date(s),t=new Date(p.getTime()+420*60*1e3),n=t.getUTCFullYear(),c=String(t.getUTCMonth()+1).padStart(2,"0"),m=String(t.getUTCDate()).padStart(2,"0"),w=String(t.getUTCHours()).padStart(2,"0"),d=String(t.getUTCMinutes()).padStart(2,"0"),g=String(t.getUTCSeconds()).padStart(2,"0");return f?`${m}-${c}-${n} ${w}:${d}:${g}`:`${m}-${c}-${n}`}function tt(s){return s.every(f=>Z.includes(f))}function j(s){let f=0;return s.forEach(p=>{p.child&&p.child.length>0?f+=j(p.child):f+=1}),f}var N=s=>{let f=[];return s.forEach(p=>{p.child&&p.child.length>0?f.push(...N(p.child)):f.push(p)}),f},V=s=>s.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ");async function J(s,f,p,t){for(let n=0;n<t.length;n++){let c=t[n];if(c?.isImage&&c?.imageSrc&&typeof c.imageSrc=="string"&&c.imageSrc.startsWith("data:image"))try{let{buffer:m,extension:w}=et(c.imageSrc),d=s.addImage({buffer:m,extension:w});f.addImage(d,{tl:{col:n,row:p.number-1},ext:{width:70,height:60},editAs:"oneCell"}),(!p.height||p.height<60)&&(p.height=35)}catch(m){console.error("\u274C Error adding image to row:",m),p.getCell(n+1).value="[Image]"}}}function et(s){let f=s.match(/^data:image\/(\w+);base64,(.*)$/);if(!f)throw new Error("Invalid base64 image format");let p=f[1]==="jpg"?"jpeg":f[1],t=f[2],n=atob(t),c=n.length,m=new Uint8Array(c);for(let w=0;w<c;w++)m[w]=n.charCodeAt(w);return{buffer:m,extension:p}}var E=s=>{if(!s)return s;let f=s.replace(/^#/,"");return f.length===8?f.substring(2):f};function ot(s,f){let p=new Uint8Array(s),t="";for(let c=0;c<p.length;c++)t+=String.fromCharCode(p[c]);let n=btoa(t);return`data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename=${f};base64,${n}`}import rt from"exceljs";var nt=async({columns:s,data:f,grouping:p,date:t,excelSetting:n,title:c,footerSetting:m,groupingSetting:w})=>{let d=new rt.Workbook;s=s.filter(o=>!o.options?.disabledColumn);let g=d.addWorksheet(c||n?.titleExcel),R=j(s),z=g.addRow([]);z.getCell(1).value=c||n?.titleExcel,z.getCell(1).alignment={horizontal:"center"};let D=g.getColumn(R).letter;if(g.mergeCells(`A${z.number}:${D}${z.number}`),z.eachCell(o=>{o.font={color:{argb:"000000"},bold:!0,size:12}}),t){let o=g.addRow([]);o.getCell(1).value=`${t.caption?t.caption:"Tanggal "} : ${t?.start_date} ${t?.end_date?`s/d ${t?.end_date}`:""}`,o.getCell(1).alignment={horizontal:"center"},g.mergeCells(`A${o.number}:${D}${o.number}`),o.eachCell(r=>{r.font={color:{argb:"00000"},bold:!0,size:12}})}let F=g.addRow([]);F.getCell(1).value=n?.additionalTextHeader||"",F.getCell(1).alignment={horizontal:"center"},g.mergeCells(`A${F.number}:${D}${F.number}`),F.eachCell(o=>{o.font={color:{argb:"000000"},bold:!0,size:12}}),n?.customHeader&&n.customHeader(g,R);let A=n?.startY&&n.startY>0?n.startY:1;if(A>1)for(let o=1;o<A;o++)g.addRow([]);let M=s.some(o=>o.child&&o.child.length>0),h=g.addRow([]),$=M?g.addRow([]):null;s.forEach(o=>{if(o.child&&o.child.length>0){let r=h.actualCellCount+1,u=o.child.length;h.getCell(r).value=o.label,u>1&&g.mergeCells(h.number,r,h.number,r+u-1);for(let l=r;l<r+u;l++){let e=h.getCell(l);e.fill={type:"pattern",pattern:"solid",fgColor:{argb:n?.bgColor||"E8E5E5"}},e.font={color:{argb:n?.txtColor||"000000"},bold:!0},e.alignment={horizontal:"center",vertical:"middle"}}o.child.forEach((l,e)=>{if($){let C=$.getCell(r+e);C.value=l.label,C.fill={type:"pattern",pattern:"solid",fgColor:{argb:n?.bgColor||"E8E5E5"}},C.font={color:{argb:n?.txtColor||"000000"},bold:!0};let T=l.options?.halign||(["RP","GR","NUMBER"].includes(l?.options?.format||"")?"right":"left"),i=l.options?.valign||"middle";C.alignment={horizontal:T,vertical:i}}})}else{let r=h.actualCellCount+1;h.getCell(r).value=o.label,h.getCell(r).fill={type:"pattern",pattern:"solid",fgColor:{argb:n?.bgColor||"E8E5E5"}},h.getCell(r).font={color:{argb:n?.txtColor||"000000"},bold:!0},h.getCell(r).alignment={horizontal:o.options?.halign||"center",vertical:o.options?.valign||"middle"},M&&$&&g.mergeCells(h.number,r,$.number,r)}}),N(s).forEach((o,r)=>{let u=r+1,l=g.getColumn(u);if(o.options?.width)l.width=o.options.width;else{let e=o.options?.format==="IMAGE"?15:20;l.width=e}});let B={};f.forEach(async o=>{if(o.detail?.length>0){if(p.length>0){let l=j(s),e=p.map(i=>{let k=o[i];return k!=null&&k!==""?`${V(i)} : ${k}`:""}).filter(Boolean).join(" | "),C=typeof w=="function"?w(o):w||{},T=g.addRow([e]);g.mergeCells(`A${T.number}:${String.fromCharCode(64+l)}${T.number}`),T.getCell(1).alignment={horizontal:C?.halign||"left"},C?.txtColor&&(T.getCell(1).font={bold:!0,color:{argb:C?.txtColor||"000000"}}),C?.bgColor&&(T.getCell(1).fill={type:"pattern",pattern:"solid",fgColor:{argb:C?.bgColor}})}let r={};o.detail.forEach(async l=>{let C=N(s).map(i=>{if(i?.options?.format==="IMAGE"&&l[i.key])return{value:"",alignment:{horizontal:"center",vertical:"middle"},isImage:!0,imageSrc:l[i.key]};let k=i?.options?.format==="DATETIME"?P(l[i.key],!0):i?.options?.format==="DATE"?P(l[i.key]):l[i.key];i.formatter&&(k=i.formatter(k,l));let v={horizontal:i?.options?.halign?i?.options?.halign:i?.options?.format==="RP"||i?.options?.format==="GR"||i?.options?.format==="NUMBER"?"right":"left"},I=i.key,_=l[i.key];return B[I]=(B[I]||0)+Number(_),r[I]=(r[I]||0)+Number(_),{value:k,alignment:v,...i?.options?.bgColor&&{fgColor:{argb:i.options.bgColor}},...i?.options?.txtColor&&{color:{argb:i.options.txtColor}},numFmt:i?.options?.format==="RP"?"#,##0":i?.options?.format==="GR"?"#,##0.000":void 0}}),T=g.addRow(C.map(i=>i.value));C.forEach((i,k)=>{let v=T.getCell(k+1),I=["center","right","left","fill","justify","centerContinuous","distributed"],_=["top","middle","bottom","distributed","justify"],Y,W;i.alignment&&typeof i.alignment.horizontal=="string"&&I.includes(i.alignment.horizontal)&&(Y=i.alignment.horizontal),i.alignment&&"vertical"in i.alignment&&typeof i.alignment.vertical=="string"&&_.includes(i.alignment.vertical)&&(W=i.alignment.vertical),v.alignment={...Y?{horizontal:Y}:{},...W?{vertical:W}:{}},!i.isImage&&"numFmt"in i&&i.numFmt&&typeof i.value=="number"&&!isNaN(i.value)&&(v.value=Number(i.value),v.numFmt=i.numFmt)}),await J(d,g,T,C)});let u=N(s);if(!m?.subTotal?.disableSubtotal){let l=g.addRow(s.map(()=>null));u.forEach((e,C)=>{if(e?.options?.format==="RP"||e?.options?.format==="GR"||e?.options?.format==="NUMBER"){let i=f.length+4-1,k=`SUM(${String.fromCharCode(65+C)}4:${String.fromCharCode(65+C)}${i})`,v=l.getCell(C+1),I=m?.subTotal?.enableCount&&p.length>0?" : "+o.detail.length:"",_=m?.subTotal?.captionItem?m?.subTotal?.captionItem:"";l.getCell(1).value=`${m?.subTotal?.caption||"SUB TOTAL"} ${I} ${_}`,l.getCell(1).alignment={horizontal:"center"},v.numFmt=e?.options?.format==="GR"?"#,##0.000":"#,##0",v.value={formula:k},l.getCell(C+1).value=e?.options.disabledFooter?"":r[e.key]}else l.getCell(C+1).value=""}),n?.grandTotalSetting?.colSpan&&g.mergeCells(`A${l.number}:${String.fromCharCode(64+Number(n?.grandTotalSetting?.colSpan))}${l.number}`),l.eachCell(e=>{e.fill={type:"pattern",pattern:"solid",fgColor:{argb:n?.bgColor||"#E8E5E5"},bgColor:{argb:n?.bgColor||"#E8E5E5"}},e.font={color:{argb:n?.txtColor},bold:!0}})}}else{let u=N(s).map(e=>{if(e?.options?.format==="IMAGE"&&o[e.key])return{value:"",alignment:{horizontal:"center",vertical:"middle"},isImage:!0,imageSrc:o[e.key]};let C=e?.options?.format==="DATETIME"?P(o[e.key]):e?.options?.format==="DATE"?P(o[e.key]):o[e.key];e.formatter&&(C=e.formatter(C,o));let T={horizontal:e?.options?.halign?e?.options?.halign:e?.options?.format==="RP"||e?.options?.format==="GR"||e?.options?.format==="NUMBER"?"right":"left"},i=e.key,k=o[e.key];return B[i]=(B[i]||0)+Number(k),{value:C,alignment:T,...e?.options?.bgColor&&{fgColor:{argb:e.options.bgColor}},...e?.options?.txtColor&&{color:{argb:e.options.txtColor}},numFmt:e?.options?.format==="RP"?"#,##0":e?.options?.format==="GR"?"#,##0.000":void 0}}),l=g.addRow(u.map(e=>e.value));u.forEach((e,C)=>{let T=l.getCell(C+1),i=["center","right","left","fill","justify","centerContinuous","distributed"],k=["top","middle","bottom","distributed","justify"],v,I;e.alignment&&typeof e.alignment.horizontal=="string"&&i.includes(e.alignment.horizontal)&&(v=e.alignment.horizontal),e.alignment&&"vertical"in e.alignment&&typeof e.alignment.vertical=="string"&&k.includes(e.alignment.vertical)&&(I=e.alignment.vertical),T.alignment={...v?{horizontal:v}:{},...I?{vertical:I}:{}},!e.isImage&&"numFmt"in e&&e.numFmt&&typeof e.value=="number"&&!isNaN(e.value)&&(T.value=Number(e.value),T.numFmt=e.numFmt),!e.isImage&&"fgColor"in e&&e.fgColor&&(T.fill={type:"pattern",pattern:"solid",fgColor:e.fgColor}),!e.isImage&&"color"in e&&e.color&&(T.font={color:e.color})}),await J(d,g,l,u)}});let L=g.addRow(s.map(()=>null)),S=N(s);m?.grandTotal?.disableGrandTotal||(S.forEach((o,r)=>{if(o?.options?.format==="RP"||o?.options?.format==="GR"||o?.options?.format==="NUMBER"){let l=f.length+4-1,e=`SUM(${String.fromCharCode(65+r)}4:${String.fromCharCode(65+r)}${l})`,C=L.getCell(r+1),T=m?.grandTotal?.enableCount?p.length>0?" : "+f.map(v=>v.detail.length).reduce((v,I)=>v+I,0):" : "+f.length:"",i=m?.grandTotal?.captionItem?m?.grandTotal?.captionItem:"",k=`${m?.grandTotal?.caption||"GRAND TOTAL"} ${T} ${i}`;L.getCell(1).value=k,L.getCell(1).alignment={horizontal:"center"},C.numFmt=o?.options?.format==="GR"?"#,##0.000":"#,##0",C.value={formula:e},L.getCell(r+1).value=o?.options.disabledFooter?"":B[o.key]}else L.getCell(r+1).value=""}),n?.grandTotalSetting?.colSpan&&g.mergeCells(`A${L.number}:${String.fromCharCode(64+Number(n?.grandTotalSetting?.colSpan))}${L.number}`),L.eachCell(o=>{o.fill={type:"pattern",pattern:"solid",fgColor:{argb:n?.bgColor||"#E8E5E5"},bgColor:{argb:n?.bgColor||"#E8E5E5"}},o.font={color:{argb:n?.txtColor},bold:!0}})),n?.customFooter&&n.customFooter(g,R);let a=await d.xlsx.writeBuffer(),y=`${n?.titleExcel||c}.xlsx`,G=ot(a,y);n?.returnBuffer&&n.returnBuffer(G);let x=new Blob([a],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),b=document.createElement("a");b.href=URL.createObjectURL(x),b.download=`${n?.titleExcel||c}.xlsx`,document.body.appendChild(b),b.click(),document.body.removeChild(b)},X=nt;import{jsPDF as at}from"jspdf";import K from"jspdf-autotable";var it=({columns:s,data:f,grouping:p,pdfSetting:t,date:n,title:c,footerSetting:m,groupingSetting:w})=>{let d=new at(t?.orientation,t?.unit,[t?.width||297,t?.height||210]),g=[],R=n?30:20;s=s.filter(a=>!a.options?.disabledColumn),d.setFontSize(10);let z=d.internal.pageSize.getWidth(),D=d.splitTextToSize(t?.textHeaderLeft||"",110);d.text(D,15,18),d.text(`${c||t?.titlePdf}`,z-15,18,{align:"right"}),n&&d.text(`${n.caption?n.caption:"TANGGAL "} : ${n?.start_date} ${n?.end_date?`s/d ${n?.end_date}`:""}`,z-15,22,{align:"right"}),typeof t?.customHeader=="function"&&t.customHeader(d,R,K),d.setProperties({title:c||t?.titlePdf}),t?.startY&&(R=t.startY);let F=[],A=[],M=s.some(a=>a.child&&a.child.length>0);s.forEach(a=>{let y={textColor:`#${E(t?.txtColor||"000")}`,fillColor:`#${E(t?.bgColor||"E8E5E5")}`,...a?.options?.width&&{cellWidth:a?.options?.width},fontStyle:"bold",...a?.options?.valign?{valign:a.options.valign}:{},halign:a?.options?.halign??(["RP","GR","NUMBER"].includes(a?.options?.format||"")?"right":"left")};M?a.child&&a.child.length>0?(F.push({content:a.label,colSpan:a.child.length,styles:y}),a.child.forEach(G=>{A.push({content:G.label,key:G.key,options:G.options,styles:{...y,halign:G?.options?.halign??(["RP","GR","NUMBER"].includes(G?.options?.format||"")?"right":"left")}})})):F.push({content:a.label,rowSpan:2,key:a.key,options:a.options,styles:y}):F.push({content:a.label,key:a.key,options:a.options,styles:y})}),t?.header?.column||(g.push(F),M&&A.length>0&&g.push(A));let h={};f.forEach(a=>{if(a.detail?.length>0){if(p.length>0){let x=j(s),b=p.map(u=>{let l=a[u];return l!=null&&l!==""?`${V(u)} : ${l}`:""}).filter(Boolean).join(" | "),o=typeof w=="function"?w(a):w||{},r=[{content:b,colSpan:x,styles:{fontStyle:"bold",halign:o?.halign||"left",textColor:`#${E(o?.txtColor||"000")}`,fillColor:`#${E(o?.bgColor||"FFF")}`}}];g.push(r)}let y={},G=N(s);if(a.detail.forEach(x=>{let b=G.map(o=>{let r=x[o.key],u=o.key;o.formatter&&(r=o.formatter(r,x));let l=x[o.key];h[u]=(h[u]||0)+Number(l||0),y[u]=(y[u]||0)+Number(l||0);let e=o.options?.format==="IMAGE";return{content:(()=>{switch(o?.options?.format){case"RP":return r!==void 0?Number(r||0).toLocaleString("kr-ko"):"";case"GR":return r!==void 0?Number(r||0).toFixed(3):"";case"NUMBER":return r!==void 0?Number(r||0):"";case"IMAGE":return"";case"DATETIME":return r!==void 0?P(r||new Date,!0):"";case"DATE":return r!==void 0?P(r||new Date):"";default:return r!==void 0?r.toString():""}})(),foto:e?r:null,styles:{textColor:o?.options?.txtColor?`#${E(o?.options?.txtColor)}`:"#000",fillColor:o?.options?.bgColor?`#${E(o?.options?.bgColor)}`:void 0,halign:o?.options?.halign?o?.options?.halign:o?.options?.format==="RP"||o?.options?.format==="GR"||o?.options?.format==="NUMBER"||typeof r=="number"?"right":"left"}}});g.push(b)}),!m?.subTotal?.disableSubtotal){let x=[];G.forEach(u=>{let l=y[u.key];u?.options?.format==="RP"||u?.options?.format==="GR"||u?.options?.format==="NUMBER"?x.push({content:u?.options?.disabledFooter?"":(()=>{switch(u?.options?.format){case"RP":return l.toLocaleString("kr-ko");case"GR":return l.toFixed(3);case"NUMBER":return l;default:return l.toString()}})(),styles:{halign:u?.options?.halign||"right",textColor:`#${E(t?.txtColor||"000")}`,fillColor:`#${E(t?.bgColor||"E8E5E5")}`,fontStyle:"bold"}}):x.push({content:"",styles:{textColor:`#${E(t?.txtColor||"000")}`,fillColor:`#${E(t?.bgColor||"E8E5E5")}`,fontStyle:"bold"}})});let b=t?.grandTotalSetting?.colSpan?Number(t?.grandTotalSetting?.colSpan||0)+1:0,o=m?.subTotal?.enableCount&&p.length>0?" : "+a.detail.length:"",r=m?.subTotal?.captionItem?m?.subTotal?.captionItem:"";x[0]={content:`${m?.subTotal?.caption||"SUB TOTAL"}${o} ${r}`,colSpan:b,styles:{textColor:`#${E(t?.txtColor||"000")}`,fillColor:`#${E(t?.bgColor||"E8E5E5")}`,fontStyle:"bold",halign:"center"}},t?.grandTotalSetting?.colSpan&&x.splice(1,t?.grandTotalSetting?.colSpan),g.push(x)}}else{let y=(b,o)=>{let r=o[b.key],u=b.key;if(b.formatter&&(r=b.formatter(r,o)),!b.options?.disabledFooter){let T=o[b.key];h[u]=(h[u]||0)+Number(T||0)}let l=(()=>{switch(b?.options?.format){case"RP":return r!==void 0?Number(r||0).toLocaleString("kr-ko"):"";case"GR":return r!==void 0?Number(r||0).toFixed(3):"";case"NUMBER":return r!==void 0?Number(r||0):"";case"IMAGE":return"";case"DATETIME":return r!==void 0?P(r||new Date,!0):"";case"DATE":return r!==void 0?P(r||new Date):"";default:return r!==void 0?r?.toString():""}})(),e=b?.options?.halign?b?.options?.halign:b?.options?.format==="RP"||b?.options?.format==="GR"||b?.options?.format==="NUMBER"||typeof r=="number"?"right":"left",C=b.options?.format==="IMAGE";return{options:b?.options,content:l,foto:C?r:null,styles:{halign:e,textColor:b?.options?.txtColor?`#${E(b?.options?.txtColor)}`:"#000",fillColor:b?.options?.bgColor?`#${E(b?.options?.bgColor)}`:void 0}}},x=N(s).map(b=>y(b,a));g.push(x)}});let $=N(s);if(!m?.grandTotal?.disableGrandTotal){let a=[];$.forEach(r=>{let u=h[r.key],l=["RP","GR","NUMBER"].includes(r?.options?.format||""),e=r?.options?.disabledFooter?"":(()=>{if(!l)return"";switch(r.options?.format){case"RP":return Number(u||0).toLocaleString("kr-KO");case"GR":return Number(u||0).toFixed(3);case"NUMBER":return Number(u||0);default:return(u||0).toString()}})();a.push({options:r?.options,content:e,styles:{halign:r?.options?.halign?r.options.halign:l?"right":"left",textColor:`#${E(t?.txtColor||"000")}`,fillColor:`#${E(t?.bgColor||"E8E5E5")}`,fontStyle:"bold"}})});let y=Number(t?.grandTotalSetting?.colSpan||0),G=Math.min(y+1,$.length),x=m?.grandTotal?.enableCount?p.length>0?f.reduce((r,u)=>r+u.detail.length,0):f.length:0,b=m?.grandTotal?.captionItem||"",o=`${m?.grandTotal?.caption||"GRAND TOTAL"}`+(x?` : ${x}`:"")+(b?` ${b}`:"");for(a[0]={content:o,colSpan:G,styles:{textColor:`#${E(t?.txtColor||"000")}`,fillColor:`#${E(t?.bgColor||"E8E5E5")}`,fontStyle:"bold",halign:"center"}},a.splice(1,G-1);a.length<$.length;)a.push({content:"",styles:{textColor:`#${E(t?.txtColor||"000")}`,fillColor:`#${E(t?.bgColor||"E8E5E5")}`,fontStyle:"bold"}});g.push(a)}if(typeof t?.addRow=="function"&&t?.addRow(g),!t?.disablePrintDate){let a=j(s);g.push([{content:`Print Date : ${P(`${new Date}`)}`,colSpan:a,styles:{textColor:`#${E(t?.txtColor||"000")}`,fillColor:`#${E(t?.bgColor||"E8E5E5")}`,fontStyle:"italic"}}])}let U=[];t?.header?.column&&(U.push(F),M&&A.length>0&&U.push(A)),K(d,{head:U,body:g,startY:R,theme:t?.theme||"plain",rowPageBreak:"avoid",margin:{top:t?.header?.information?30:10},bodyStyles:{fontSize:t?.fontSIze||8},headStyles:{fontSize:t?.fontSIze||8,textColor:`#${E(t?.txtColor||"000")}`,fillColor:`#${E(t?.bgColor||"E8E5E5")}`},tableLineColor:[255,255,255],didParseCell:function(a){let y=a.column.index;$[y]?.options?.format==="IMAGE"&&a.cell.raw&&a.cell.raw.foto&&(a.row.height=20,a.cell.styles.valign="middle",a.cell.styles.halign="center")},didDrawPage:function(a){if(t?.header?.information&&a.pageNumber>1){d.setFontSize(10);let y=d.internal.pageSize.getWidth(),G=d.splitTextToSize(t?.textHeaderLeft||"",110);d.text(G,15,18),d.text(`${c||t?.titlePdf}`,y-15,18,{align:"right"}),n&&d.text(`${n.caption?n.caption:"TANGGAL "} : ${n?.start_date} ${n?.end_date?`s/d ${n?.end_date}`:""}`,y-15,22,{align:"right"})}},didDrawCell:function(a){let{cell:y}=a,x=(y.raw||{}).foto,b=a.column.index;if($[b]?.options?.format==="IMAGE"&&x){let u=y.x+(y.width-15)/2,l=y.y+(y.height-15)/2;try{d.addImage(x,"JPG",u,l,15,15)}catch(e){console.warn("\u274C Gagal render gambar:",e)}}}}),g=[],R=d.lastAutoTable.finalY;let B=d.internal.getNumberOfPages(),L=d.internal.pageSize.width,S=d.internal.pageSize.height;d.setFontSize(10);for(let a=1;a<B+1;a++){let y=L/2,G=S-10;d.setPage(a),d.text(`${a} of ${B}`,y,G,{align:"center"})}if(typeof t?.customFooter=="function"&&t.customFooter(d,R,K),t?.returnDataUri){let a=d.output("datauristring");t.returnDataUri(a)}if(t?.openNewTab){let a=d.output("bloburl");window.open(a)}else d.save(`${t?.titlePdf||c}.pdf`)},q=it;var lt=s=>{let f=[],p=s.copy?2:1;for(let t=0;t<p;t++){let n=s.data.map(c=>{let m=s.template;for(;/\n!!LOOP\((.+)\)(\{\n(.*\n)+\})\n/gm.exec(m);)m=m.replace(/\n!!LOOP\((.+)\)(\{\n(.*\n)+\})\n/,(w,d,g)=>{let R=g.replace(/^\{/,"").replace(/\}$/,"");return(Array.isArray(c[d])?c[d]:[c[d]]).reduce((F,A)=>F+R.replace(/\{([a-z0-9_]+)\}/gm,M=>{let h=M.replace(/(\{|\})/g,"");if(h.match(/nama_barang/)){let $=h.match(/nama_barang/),U=h==="nama_barang2"?[20,40]:h==="nama_barang3"?[40,60]:[0,20];return A[$]?.slice(...U).trim()||""}if(h.match(/deskripsi_jual/)){let $=h.match(/deskripsi_jual/),U=h==="deskripsi_jual2"?[20,40]:h==="deskripsi_jual3"?[40,60]:[0,20];return A[$]?.slice(...U).trim()||""}if(h.match(/deskripsi/)){let $=h.match(/deskripsi/),U=h==="deskripsi2"?[20,40]:h==="deskripsi3"?[40,60]:[0,20];return A[$]?.slice(...U).trim()||""}return A[h]||""}),"").replace(/\n(\s)+\n/gm,`
`)});return m.replace(/\{([a-z0-9_]+)\}/gm,w=>{let d=w.replace(/(\{|\})/g,"");return d.match(/auto_cut/)?`
VA`:c[d]||""}).replace(/\n(\s)+\n/gm,`
`).replace(/~new_line~/gm,`
`).replace(/!!LOOP\(detail\)/g,"").replace(/[}{]/g,"")});for(let c in n)n[c]+=`
`;f.push(...n)}return f},st=async(s,f)=>{let p=lt(s),t=new Blob([p?.join(`
`)||""],{type:"text/plain"}),n=document.createElement("a");n.href=URL.createObjectURL(t),n.download=f,document.body.appendChild(n),n.click(),document.body.removeChild(n)},Q=st;var At=({columns:s,data:f,grouping:p,date:t,type:n,txtSetting:c,pdfSetting:m,excelSetting:w,title:d,footerSetting:g,groupingSetting:R})=>{let z={data:[c?.dataTxt],template:c?.templateTxt,copy:c?.copy};if(f.length===0)throw new Error("Data is required");if(n.length===0)throw new Error("Type is required");if(!tt(n))throw new Error('Type Export must use ["EXCEL", "PDF", "TXT", "ALL"]');n.forEach(D=>{D==="PDF"?q({pdfSetting:m,date:t,data:f,type:n,columns:s,grouping:p,title:d,footerSetting:g,groupingSetting:R}):D==="TXT"?Q(z,c?.titleTxt||""):D==="EXCEL"?X({date:t,data:f,type:n,columns:s,grouping:p,excelSetting:w,title:d,footerSetting:g,groupingSetting:R}):(X({date:t,data:f,type:n,columns:s,grouping:p,excelSetting:w,title:d,groupingSetting:R}),q({pdfSetting:m,date:t,data:f,type:n,columns:s,grouping:p,title:d,groupingSetting:R}),Q(z,c?.titleTxt||""))})};export{At as ExportData};
//# sourceMappingURL=index.mjs.map