{"version":3,"file":"ProductsImportFromCsvOrXlsPane-Bcf9HyB9.js","sources":["../../../../../../frontend/src/components/PaginationCompact.vue","../../../../../../frontend/src/utilities/Csv.ts","../../../../../../frontend/src/utilities/Xls.ts","../../../../../../frontend/src/pages/projects/forms/ProductsImportFromCsvOrXlsPane.vue"],"sourcesContent":["\n\n\n\n","// @ts-expect-error\nimport * as csvjson from 'csvjson'\n\nexport const guessDelimiter = (csvAsText: string) => {\n const firstLine = csvAsText.split('\\n')[0]\n return firstLine.split(',').length > firstLine.split(';').length ? ',' : ';'\n}\n\nexport const convertCSV = (rawCSVString: string, delimiter: string = ';', minFieldNum: number = 3) => {\n let returnValue\n try {\n returnValue = csvjson\n .toObject(rawCSVString.replaceAll(/(\"[^\"\\n]*)\\r?\\n(?!(([^\"]*\"){2})*[^\"]*$)/g, '$1 '), {\n delimiter,\n quote: '\"',\n })\n .filter((line: any) => Object.values(line).filter((v) => !!v).length > minFieldNum)\n } catch (e) {\n returnValue = []\n }\n return returnValue\n}\n\nexport const convertCSVToObject = async (csvString: string) => {\n const delimiter = guessDelimiter(csvString)\n const data = convertCSV(csvString, delimiter)\n const keys = Object.keys(data[0])\n return { keys, data }\n}\n","import ExcelJS from 'exceljs'\nimport { isPrimitive, isDate, unique } from 'radash'\n\nexport const isHyperlink = (value: ExcelJS.CellValue): value is ExcelJS.CellHyperlinkValue =>\n (value as ExcelJS.CellHyperlinkValue)?.hyperlink !== undefined\n\nexport const isPrimitiveValue = (value: ExcelJS.CellValue): value is string | number | boolean => isPrimitive(value)\nexport const isDateValue = (value: ExcelJS.CellValue): value is Date => isDate(value)\n\nexport const convertXLSToObject = async (\n arrayBuffer: ArrayBuffer,\n selectSheetFn: (sheets: ExcelJS.Worksheet[]) => Promise,\n selectHeadlineRowIndex: (sheet: ExcelJS.Worksheet) => Promise,\n) => {\n const workbook = await new ExcelJS.Workbook().xlsx.load(arrayBuffer)\n const sheetId = await selectSheetFn(workbook.worksheets)\n if (sheetId === undefined) {\n return undefined\n }\n const sheet = workbook.getWorksheet(parseInt(sheetId as string))\n const result = Array.from(new Array(sheet!.rowCount))\n let maxCellCount = 0\n sheet!.eachRow((row, rowNumber) => {\n result[row.number - 1] = Array.from(new Array(row.cellCount))\n maxCellCount = row.cellCount > maxCellCount ? row.cellCount : maxCellCount\n row.eachCell(\n (cell, number) =>\n (result[rowNumber - 1][number - 1] = isHyperlink(cell.value)\n ? cell.value?.hyperlink\n : isPrimitiveValue(cell.value)\n ? `${cell.value}`.trim()\n : isDate(cell.value)\n ? cell.value.toDateString()\n : ''),\n )\n })\n\n // add images if there are any\n const images = sheet!.getImages()\n images\n // remove images without coordinates\n .filter((image) => image.range.br || image.range.tl)\n // use either tl or br anchor\n .map((image) => [image.imageId, image.range.br || image.range.tl] as [string, ExcelJS.Anchor])\n .forEach(\n ([imageId, anchor]) =>\n (result[anchor.nativeRow][anchor.nativeCol] =\n 'data:image/png;base64,' + workbook.getImage(parseInt(imageId)).buffer?.toString('base64')),\n )\n\n const headlineRowIndex = await selectHeadlineRowIndex(sheet!)\n if (headlineRowIndex === undefined) {\n return undefined\n }\n const keys = [...result[headlineRowIndex - 1]]\n const filteredResult = result.slice(headlineRowIndex, result.length).filter(\n (row) =>\n row &&\n // remove rows that are most likely headline rows\n unique(row).filter((cell: string | undefined) => !!cell).length > 3,\n )\n\n const data = filteredResult.map((row) =>\n Object.fromEntries(row.map((cell: string, index: number) => [keys[index], cell])),\n )\n\n return { keys, data }\n}\n","\n\n\n"],"names":["PaginationCompact","defineComponent","ControlSelect","Btn","props","context","$t","useTranslation","disabled","computed","pages","current","useVModel","i","pagesAsOptions","value","guessDelimiter","csvAsText","firstLine","convertCSV","rawCSVString","delimiter","minFieldNum","returnValue","csvjson.toObject","line","e","convertCSVToObject","csvString","__async","data","isHyperlink","isPrimitiveValue","isPrimitive","convertXLSToObject","arrayBuffer","selectSheetFn","selectHeadlineRowIndex","workbook","ExcelJS","sheetId","sheet","result","maxCellCount","row","rowNumber","cell","number","_a","isDate","image","imageId","anchor","headlineRowIndex","keys","unique","index","externalProductFields","parseNumber","translations","__props","promptSelect","prompt","confirm","useConfirm","add","emit","__emit","isCSV","getInitialFieldMap","field","fieldMap","useGlobalCsvOrXlsImportState","externalProductFieldMap","objectify","item","options","key","mappedProducts","rawData","loading","ref","sampleIndex","guessFields","fuse","Fuse","multiSearch","terms","term","a","b","mapEntries","_b","selectedItems","notAllRequiredFieldsMapped","f","errorneousFields","resetMapping","reset","resetWithConfirm","init","resetOnAbort","force","reader","sheets","onMounted","isFieldMapEmpty","v","isImage","getPreviewValuesFromOption","option","submit","mappedProductsMap","id","p","addImageFromUrl","addImageFromB64","snake","thorFormPostPromise","__spreadProps","__spreadValues","response","config"],"mappings":"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"}