{"version":3,"file":"sowatech-shared-xlsx.mjs","sources":["../../../projects/shared/xlsx/xlsx.service.ts","../../../projects/shared/xlsx/sowatech-shared-xlsx.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport * as ExcelJS from 'exceljs';\r\nimport { saveAs } from 'file-saver';\r\n\r\ntype DATA = Record<string, unknown>;\r\n\r\n@Injectable({\r\n    providedIn: 'root',\r\n})\r\nexport class XlsxService {\r\n\r\n    public createXlsxFile(filename: string, sheetname: string, data: Array<DATA>) {\r\n        this.createMultiSheetXlsxFile(filename, [{ sheetname, data }]);\r\n    }\r\n\r\n    public createMultiSheetXlsxFile(filename: string, sheetData: Array<{ sheetname: string; data: Array<DATA>; }>) {\r\n        const workbook = new ExcelJS.Workbook();\r\n        for (const sheet of sheetData) {\r\n            const worksheet = workbook.addWorksheet(sheet.sheetname);\r\n            const headers = Object.keys(sheet.data[0]);\r\n            worksheet.addRow(headers);\r\n            for (const item of sheet.data) {\r\n                const row = headers.map(header => item[header]);\r\n                worksheet.addRow(row);\r\n            }\r\n        }\r\n        this.writeFile(workbook, filename);\r\n    }\r\n\r\n    private writeFile(workbook: ExcelJS.Workbook, filename: string) {\r\n        const filenameWithoutExtension = filename.replace('.xlsx', '');\r\n\r\n        workbook.xlsx.writeBuffer().then((buffer) => {\r\n            const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n            saveAs(blob, `${filenameWithoutExtension}.xlsx`);\r\n        });\r\n    }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MASa,WAAW,CAAA;AAEb,IAAA,cAAc,CAAC,QAAgB,EAAE,SAAiB,EAAE,IAAiB,EAAA;AACxE,QAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE;IAEO,wBAAwB,CAAC,QAAgB,EAAE,SAA2D,EAAA;AACzG,QAAA,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;AACvC,QAAA,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;AACxD,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1C,YAAA,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AACzB,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;AAC3B,gBAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,gBAAA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;YACzB;QACJ;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACtC;IAEQ,SAAS,CAAC,QAA0B,EAAE,QAAgB,EAAA;QAC1D,MAAM,wBAAwB,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAE9D,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;AACxC,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,mEAAmE,EAAE,CAAC;AAC9G,YAAA,MAAM,CAAC,IAAI,EAAE,GAAG,wBAAwB,CAAA,KAAA,CAAO,CAAC;AACpD,QAAA,CAAC,CAAC;IACN;8GA3BS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFR,MAAM,EAAA,CAAA,CAAA;;2FAET,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACRD;;AAEG;;;;"}