| 76 | }; |
| 77 | |
| 78 | export function calculateNewMappingsForCsvColumnMapingChanged( |
| 79 | currentMapping: ColumnMapping[], |
| 80 | csvColumnName: string, |
| 81 | newCsvColumnMaping: MapperOptionValue | null |
| 82 | ): ColumnMapping[] { |
| 83 | if (newCsvColumnMaping == null) { |
| 84 | return currentMapping.filter((m) => m.csvColumnName !== csvColumnName); |
| 85 | } |
| 86 | |
| 87 | // Make sure we don't allow dupplicate mappings for the same sheet column |
| 88 | const mappingsForOtherSheets = currentMapping.filter( |
| 89 | (m) => |
| 90 | (m.sheetId !== newCsvColumnMaping.sheetId || |
| 91 | m.sheetColumnId !== newCsvColumnMaping.sheetColumnId) && |
| 92 | m.csvColumnName !== csvColumnName |
| 93 | ); |
| 94 | |
| 95 | return [...mappingsForOtherSheets, { ...newCsvColumnMaping, csvColumnName }]; |
| 96 | } |
| 97 | |
| 98 | export function calculateMappingExamples( |
| 99 | data: CSVParsedData[], |