const buttonAction = async (base64Values) => {
//let base64Values be the array of object contain transaction number and base64 value of transaction PDFs
const filenameSet = new Set();
base64Values.forEach((data, index) => {
const byteCharacters = atob(data.base64Value);
const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
const pdfBlob = new Blob([byteArray], { type: "application/pdf" });
let baseFileName = this.customRecrodDetails.find(obj => obj["internalid"].value === data.internalid)["Document Number"].value;
let fileName = `${baseFileName}.pdf`;
let count = 1;
// Append a number if filename already exists
while (filenameSet.has(fileName)) {
fileName = `${baseFileName} (${count}).pdf`;
count++;
}
filenameSet.add(fileName); // Add the filename to the set
zip.file(fileName, pdfBlob);
});
const zipBlob = await zip.generateAsync({ type: "blob" });
const link = document.createElement("a");
link.href = URL.createObjectURL(zipBlob);
link.download = `Bulk File.zip`;
link.click();
URL.revokeObjectURL(link.href);
}