{"version":3,"file":"csvExporter-BGoiph1b.cjs","names":["options: CsvExporterOptions","stringValue: string"],"sources":["../src/exporters/csvExporter.ts"],"sourcesContent":["import { BlobExporter, StringExporter } from './exporter';\n\nexport interface CsvExporterOptions {\n  sepPrefix?: boolean;\n  separator?: string;\n  quote?: string;\n  eol?: string;\n}\n\nexport default class CsvExporter implements StringExporter, BlobExporter {\n  readonly type = 'csv';\n  readonly fileEnding = 'csv';\n\n  constructor(public readonly options: CsvExporterOptions = {}) {}\n\n  exportToString(\n    columns: (string | number | Date)[],\n    rows: (string | number | Date)[][],\n    options = this.options,\n  ): string {\n    const { sepPrefix, separator = '\\t', quote = '\"', eol = '\\n' } = options;\n\n    const cells = [columns, ...rows].map((line) =>\n      line.map((value) => {\n        let stringValue: string;\n        if (typeof value === 'number') {\n          stringValue = String(value);\n        } else if (value instanceof Date) {\n          stringValue = value.toISOString();\n        } else {\n          stringValue = value;\n        }\n\n        if (![separator, quote, eol].some((c) => stringValue.includes(c))) {\n          return value;\n        }\n\n        const clean = stringValue.replace(new RegExp(quote, 'g'), `${quote}${quote}`);\n        return `${quote}${clean}${quote}`;\n      }),\n    );\n\n    return (\n      (sepPrefix ? `SEP=${separator}\\n` : '') + cells.map((line) => line.join(separator)).join(eol)\n    );\n  }\n\n  exportToBlob(columns: (string | number | Date)[], rows: (string | number | Date)[][]): Blob {\n    const data = this.exportToString(columns, rows, {\n      ...this.options,\n      sepPrefix: this.options.sepPrefix ?? true,\n    });\n    return new Blob([data], { type: 'text/csv' });\n  }\n}\n"],"mappings":";;AASA,IAAqB,cAArB,MAAyE;CAIvE,YAAY,AAAgBA,UAA8B,EAAE,EAAE;EAAlC;cAHZ;oBACM;;CAItB,eACE,SACA,MACA,UAAU,KAAK,SACP;EACR,MAAM,EAAE,WAAW,YAAY,KAAM,QAAQ,MAAK,MAAM,SAAS;EAEjE,MAAM,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,SACpC,KAAK,KAAK,UAAU;GAClB,IAAIC;AACJ,OAAI,OAAO,UAAU,SACnB,eAAc,OAAO,MAAM;YAClB,iBAAiB,KAC1B,eAAc,MAAM,aAAa;OAEjC,eAAc;AAGhB,OAAI,CAAC;IAAC;IAAW;IAAO;IAAI,CAAC,MAAM,MAAM,YAAY,SAAS,EAAE,CAAC,CAC/D,QAAO;AAIT,UAAO,GAAG,QADI,YAAY,QAAQ,IAAI,OAAO,OAAO,IAAI,EAAE,GAAG,QAAQ,QAAQ,GACnD;IAC1B,CACH;AAED,UACG,YAAY,OAAO,UAAU,MAAM,MAAM,MAAM,KAAK,SAAS,KAAK,KAAK,UAAU,CAAC,CAAC,KAAK,IAAI;;CAIjG,aAAa,SAAqC,MAA0C;EAC1F,MAAM,OAAO,KAAK,eAAe,SAAS,MAAM;GAC9C,GAAG,KAAK;GACR,WAAW,KAAK,QAAQ,aAAa;GACtC,CAAC;AACF,SAAO,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,YAAY,CAAC"}