{"version":3,"sources":["../src/ExcelPlugin/components/ExcelFile.tsx","../src/ExcelPlugin/utils/DataUtil.ts","../src/ExcelPlugin/elements/ExcelSheet.tsx","../src/ExcelPlugin/elements/ExcelColumn.tsx","../src/index.ts"],"sourcesContent":["'use client';\n\nimport React from \"react\";\nimport { utils, writeFile } from \"xlsx-js-style\";\nimport type { BookType, WorkSheet } from \"xlsx-js-style\";\nimport { excelSheetFromAoA, excelSheetFromDataSet } from \"../utils/DataUtil\";\nimport type {\n  ExcelColumnProps,\n  ExcelFileProps,\n  ExcelSheetProps,\n  ExcelValue,\n} from \"react-xlsx-wrapper\";\n\nclass ExcelFile extends React.Component<ExcelFileProps> {\n  state = {\n    fileName: \"Download\",\n    fileExtension: \"xlsx\" as BookType,\n    hideElement: false,\n  };\n\n  componentDidMount() {\n    if (this.props.filename) {\n      this.setState({\n        fileName: this.props.filename,\n      });\n    }\n    if (this.props.fileExtension) {\n      this.setState({\n        fileExtension: this.props.fileExtension,\n      });\n    }\n\n    if (this.props.hideElement) {\n      this.setState({\n        hideElement: this.props.hideElement,\n      });\n    }\n  }\n\n  createSheetData = (sheet: React.ReactElement<any>) => {\n    const columns = sheet.props.children;\n    const sheetData = [\n      React.Children.map(\n        columns,\n        (column: React.ReactElement<ExcelColumnProps>) => column.props.label\n      ),\n    ] as ExcelValue[][];\n\n    const data = sheet.props.data;\n    if (!data) throw new Error(\"No data provided\");\n    data.forEach((row: any) => {\n      let sheetRow: ExcelValue[] = [];\n\n      React.Children.forEach(\n        columns,\n        (column: React.ReactElement<ExcelColumnProps>) => {\n          const getValue = (row: any) =>\n            typeof column.props.value === 'function'\n              ? (column.props.value as (row: any) => ExcelValue)(row)\n              : row[column.props.value as string];\n          const itemValue = getValue(row);\n          sheetRow.push(isNaN(Number(itemValue)) ? itemValue || \"\" : itemValue);\n        }\n      );\n\n      sheetData.push(sheetRow);\n    });\n\n    return sheetData;\n  };\n\n  download = () => {\n    if (typeof window === 'undefined') return;\n    const wb = utils.book_new();\n    const fileName = this.getFileName();\n    const fileExtension: BookType = this.getFileExtension();\n\n    React.Children.forEach<React.ReactElement<ExcelSheetProps>>(\n      this.props.children,\n      (sheet) => {\n        let ws: WorkSheet = {};\n        const wsName = sheet.props.name || fileName.split(\".\")[0] || \"Sheet1\";\n        if (\n          typeof sheet.props.dataSet === \"undefined\" ||\n          sheet.props.dataSet.length === 0\n        ) {\n          ws = excelSheetFromAoA(this.createSheetData(sheet));\n        } else {\n          ws = excelSheetFromDataSet(sheet.props.dataSet, sheet.props.bigHeading, sheet.props.autoFilterForAllColumn);\n        }\n        // add worksheet to workbook\n        utils.book_append_sheet(wb, ws, wsName);\n      }\n    );\n\n    writeFile(wb, fileName, {\n      bookType: fileExtension,\n      bookSST: true,\n      type: \"binary\",\n      cellStyles: true,\n    });\n  };\n\n  getFileNameWithExtension = (filename: string, extension: string) => {\n    return `${filename}.${extension}`;\n  };\n\n  getFileName = () => {\n    if (\n      this.state.fileName === null ||\n      typeof this.state.fileName !== \"string\"\n    ) {\n      throw new Error(\"Invalid file name provided\");\n    }\n    return this.getFileNameWithExtension(\n      this.state.fileName?.split(\".\")[0],\n      this.getFileExtension()\n    );\n  };\n\n  getFileExtension = (): BookType => {\n    if (this.props.fileExtension) {\n      return this.state.fileExtension;\n    }\n    // Fall back to extension embedded in the filename\n    const slugs = this.state.fileName.split(\".\");\n    if (slugs.length > 1) {\n      return slugs[slugs.length - 1] as BookType;\n    }\n    return this.state.fileExtension;\n  };\n\n  handleDownload = () => {\n    this.download();\n  };\n\n  render() {\n    const { element } = this.props;\n\n    if (this.state.hideElement === true) {\n      return null;\n    } else {\n      return <span onClick={this.handleDownload}>{element}</span>;\n    }\n  }\n}\n\nexport default ExcelFile;\n","import type { ExcelCellData, ExcelSheetCol, ExcelSheetData, ExcelStyle, ExcelValue } from \"react-xlsx-wrapper\";\nimport { utils, SSF } from \"xlsx-js-style\";\nimport type { CellObject, WorkSheet, ColInfo, Range } from \"xlsx-js-style\";\n\nconst dateToNumber = (v: string, date1904?: boolean): number => {\n    const epoch = Date.parse(v);\n    const serial = (epoch - Number(new Date(Date.UTC(1899, 11, 30)))) / (24 * 60 * 60 * 1000);\n    // 1904 date system shifts the epoch by 1462 days (applied to the serial, not the string)\n    return date1904 ? serial + 1462 : serial;\n};\n\n/**\n * This returns the worksheet object for the given dataSet, also accept bigHeading.\n *\n * @param dataSet - The ExcelSheetData array is required\n * @param bigHeading - ExcelSheetCol (Optional)\n * @returns WorkSheet Object\n *\n * @author Susanta Chakraborty\n * @date 2023-06-14\n */\nconst excelSheetFromDataSet = (dataSet: ExcelSheetData[], bigHeading?: ExcelSheetCol, autoFilterForAllColumn?: boolean): WorkSheet => {\n    /*\n    Assuming the structure of dataset\n    {\n        xSteps?: number; //How many cells to skips from left\n        ySteps?: number; //How many rows to skips from last data\n        columns: [array | string]\n        data: [array_of_array | string|boolean|number | CellObject]\n        fill, font, numFmt, alignment, and border\n    }\n     */\n    if (dataSet === undefined || dataSet.length === 0) {\n        return {};\n    }\n    \n    let ws: WorkSheet = {};\n    let range: Range = { s: { c: 10000000, r: 10000000 }, e: { c: 0, r: 0 } };\n    let rowCount = 0;\n\n    dataSet.forEach(dataSetItem => {\n        let columns = dataSetItem.columns;\n        let xSteps = typeof(dataSetItem.xSteps) === 'number' ? dataSetItem.xSteps : 0;\n        let ySteps = typeof(dataSetItem.ySteps) === 'number' ? dataSetItem.ySteps : 0;\n        let data = dataSetItem.data;\n        if (!dataSetItem.columns?.length && !dataSetItem.data?.length) {\n            return;\n        }\n\n        rowCount += ySteps;\n\n        if(bigHeading?.title && columns.length >= 0) {\n            columns.forEach((_, index) => {\n                const cellRef = utils.encode_cell({ c: xSteps + index, r: rowCount });\n                fixRange(range, 0, index, rowCount, xSteps, ySteps);\n                getHeaderCell(bigHeading, cellRef, ws, true, index);\n            });\n\n            const mergedRange: Range = { s: { c: xSteps, r: rowCount }, e: { c: xSteps + dataSetItem.columns.length - 1, r: rowCount } };\n            ws['!merges'] = [mergedRange];\n            rowCount += 1;\n        }\n\n        let columnsInfo: ColInfo[] = [];\n        // if xStep has value then we need to skip some columns\n        if (xSteps > 0) {\n            for (let i = 0; i < xSteps; i++) {\n                columnsInfo.push({ wpx: 100 });\n            }\n        }\n\n        if (columns.length >= 0) {\n            columns.forEach((col, index) => {\n                let cellRef = utils.encode_cell({ c: xSteps + index, r: rowCount });\n                fixRange(range, 0, index, rowCount, xSteps, ySteps);\n                let colTitle = col;\n                if (typeof col === 'object'){\n                    //colTitle = col.title; //moved to getHeaderCell\n                    columnsInfo.push(col.width || { wpx: 100, hidden: false }); /* wch (chars), wpx (pixels) - e.g. [{wch:6},{wpx:50}] */\n                }\n                getHeaderCell(colTitle, cellRef, ws);\n            });\n\n            if(autoFilterForAllColumn){\n                const filterRange: Range = { s: { c: xSteps, r: rowCount }, e: { c: xSteps + dataSetItem.columns.length - 1, r: rowCount } };\n                const filterRef = utils.encode_range(filterRange);\n                ws['!autofilter'] = { ref: filterRef };\n            }\n\n            rowCount += 1;\n        }\n\n        if (columnsInfo.length > 0){\n            ws['!cols'] = columnsInfo;\n        }\n\n        for (let R = 0; R !== data.length; ++R, rowCount++) {\n            for (let C = 0; C !== data[R].length; ++C) {\n                let cellRef = utils.encode_cell({ c: C + xSteps, r: rowCount });\n                fixRange(range, R, C, rowCount, xSteps, ySteps);\n                getCell(data[R][C], cellRef, ws);\n            }\n        }\n    });\n\n    if (range.s.c < 10000000) {\n        ws['!ref'] = utils.encode_range(range);\n    }\n\n    return ws;\n};\n\nfunction getHeaderCell(v: ExcelSheetCol, cellRef: string, ws: WorkSheet,isHeader?: boolean,index?: number): void {\n    const bigHeadingDefualtStyle: ExcelStyle = {\n        font: { bold: true, name: \"Archive\", sz: 24, color: { rgb: \"333\" } },\n        fill: { patternType: \"solid\", fgColor: { rgb: \"FFFFFF\" } },\n        alignment: { vertical: \"center\", horizontal: \"center\" },\n    };\n    const cell: CellObject = {\n        t:  's',\n    };\n    let headerCellStyle = v.style ? v.style : { font: { bold: true } }; //if style is then use it\n    if(isHeader) {\n        cell.v = index === 0 ? v.title: '';\n        headerCellStyle = v.style ? v.style : bigHeadingDefualtStyle;\n    }else {\n        cell.v = v.title;\n    }\n    cell.t = 's';\n    cell.s = headerCellStyle;\n    ws[cellRef] = cell;\n}\n\n\nfunction getCell(v: ExcelCellData, cellRef: string, ws: WorkSheet): void {\n    if (v === null) {\n        return;\n    }\n\n    const isDate = v instanceof Date;\n    const cell: CellObject = { t: 's' };\n\n    let cellValue: ExcelValue;\n    if (typeof v !== 'object') {\n        cellValue = v;\n        cell.v = v;\n    } else if (isDate) {\n        cellValue = v as Date;\n    } else {\n        cellValue = v.value;\n        cell.v = v.value;\n        cell.s = v.style;\n    }\n\n    if (isDate) {\n        cell.t = 'n';\n        cell.z = SSF._table[14];\n        cell.v = dateToNumber((cellValue as Date).toString(), false);\n    } else if (typeof cellValue === 'number') {\n        if (isNaN(cellValue)) {\n            cell.t = 'e';\n            cell.v = 0x24; // #NUM!\n        } else if (!isFinite(cellValue)) {\n            cell.t = 'e';\n            cell.v = 0x07; // #DIV/0!\n        } else {\n            cell.t = 'n';\n        }\n    } else if (typeof cellValue === 'boolean') {\n        cell.t = 'b';\n    } else {\n        cell.t = 's';\n    }\n    ws[cellRef] = cell;\n}\n\nfunction fixRange(range: Range, R: number, C: number, rowCount: number, xSteps: number, ySteps: number): void {\n    if (range.s.r > R + rowCount) {\n        range.s.r = R + rowCount;\n    }\n\n    if (range.s.c > C + xSteps) {\n        range.s.c = C + xSteps;\n    }\n\n    if (range.e.r < R + rowCount) {\n        range.e.r = R + rowCount;\n    }\n\n    if (range.e.c < C + xSteps) {\n        range.e.c = C + xSteps;\n    }\n}\n\nconst excelSheetFromAoA = (data: ExcelValue[][]): WorkSheet => {\n    let ws: WorkSheet = {};\n    let range: Range = { s: { c: 10000000, r: 10000000 }, e: { c: 0, r: 0 } };\n\n    for (let R = 0; R !== data.length; ++R) {\n        for (let C = 0; C !== data[R].length; ++C) {\n            if (range.s.r > R) {\n                range.s.r = R;\n            }\n\n            if (range.s.c > C) {\n                range.s.c = C;\n            }\n\n            if (range.e.r < R) {\n                range.e.r = R;\n            }\n\n            if (range.e.c < C) {\n                range.e.c = C;\n            }\n\n            let cell: CellObject = { v: data[R][C], t: 's' };\n            if (cell.v === null) {\n                continue;\n            }\n\n            let cellRef = utils.encode_cell({ c: C, r: R });\n            if (typeof cell.v === 'number' && isNaN(cell.v as number)) {\n                cell.t = 'e';\n                cell.v = 0x24; // #NUM!\n            } else if (typeof cell.v === 'number' && !isFinite(cell.v as number)) {\n                cell.t = 'e';\n                cell.v = 0x07; // #DIV/0!\n            } else if (typeof cell.v === 'number') {\n                cell.t = 'n';\n            } else if (typeof cell.v === 'boolean') {\n                cell.t = 'b';\n            } else if (cell.v instanceof Date) {\n                cell.t = 'n';\n                cell.z = SSF._table[14];\n                cell.v = dateToNumber(cell.v?.toDateString(), false);\n            } else {\n                cell.t = 's';\n            }\n\n            ws[cellRef] = cell;\n        }\n    }\n\n    if (range.s.c < 10000000) {\n        ws['!ref'] = utils.encode_range(range);\n    }\n\n    return ws;\n};\n\n\nexport { dateToNumber, excelSheetFromAoA, excelSheetFromDataSet };\n","import React, { Component } from \"react\";\nimport ExcelColumn from \"./ExcelColumn\";\nimport type { ExcelValue, ExcelSheetData } from \"react-xlsx-wrapper\";\n\nexport interface ExcelSheetProps {\n  name: string;\n  data?: any[];\n  dataSet?: ExcelSheetData[];\n  value?: ExcelValue[] | (() => void);\n  children?: React.ReactElement<typeof ExcelColumn>[];\n}\nexport default class ExcelSheet extends Component<ExcelSheetProps> {\n  constructor(props: ExcelSheetProps) {\n    super(props);\n\n    if (!React.Children.toArray(props.children).every(\n      (child) => React.isValidElement(child) && child.type === ExcelColumn\n    )) {\n      throw new Error(\"<ExcelSheet> can only have <ExcelColumn> as children\");\n    }\n  }\n\n  render() {\n    return null;\n  }\n}\n","import React from \"react\";\nimport { ExcelColumnProps } from \"react-xlsx-wrapper\";\n\nexport default class ExcelColumn extends React.Component<ExcelColumnProps> {\n  render() {\n    return null;\n  }\n}\n ","import ExcelFile from \"./ExcelPlugin/components/ExcelFile\";\nimport ExcelSheet from \"./ExcelPlugin/elements/ExcelSheet\";\nimport ExcelColumn from \"./ExcelPlugin/elements/ExcelColumn\";\n\nconst ReactExport = {\n    ExcelFile\n};\n\nexport default ReactExport;\n\nexport {\n    ExcelFile,\n    ExcelSheet,\n    ExcelColumn\n};\n"],"mappings":"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","names":["React","utils","writeFile","utils","SSF","dateToNumber","v","date1904","serial","excelSheetFromDataSet","dataSet","bigHeading","autoFilterForAllColumn","ws","range","rowCount","dataSetItem","columns","xSteps","ySteps","data","_","index","cellRef","fixRange","getHeaderCell","mergedRange","columnsInfo","i","col","colTitle","filterRange","filterRef","R","C","getCell","isHeader","bigHeadingDefualtStyle","cell","headerCellStyle","isDate","cellValue","excelSheetFromAoA","ExcelFile","React","sheet","columns","sheetData","column","data","row","sheetRow","itemValue","wb","utils","fileName","fileExtension","ws","wsName","excelSheetFromAoA","excelSheetFromDataSet","writeFile","filename","extension","slugs","element","ExcelFile_default","React","Component","React","ExcelColumn","ExcelSheet","Component","props","React","child","ExcelColumn","ReactExport","ExcelFile_default","index_default"]}