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