import { LoggerService } from '@sowatech/shared/logger'; import { UserPropertiesStorageService } from '@sowatech/shared/user-properties-storage'; import * as i2 from '@sowatech/shared/swt-generic'; import { GenericEditDialogService, GenericEditDialogResult } from '@sowatech/shared/swt-generic'; import { Observable } from 'rxjs'; import * as i0 from '@angular/core'; import * as i1 from '@angular/common'; declare class CsvMappingDialog { private genericEditDialog; private logger; constructor(genericEditDialog: GenericEditDialogService, logger: LoggerService); showMappingDialog(configFields: TargetField[], header: Array, mappingConfig?: IMappingConfig, showDateFormatInput?: boolean): Observable>; private getDialogConfiguration; private getDialogFields; private bulidDialogDictionaryFields; private buildDialogField; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Service zum manuellen Konfigurieren eines CSV Mappings. * ```ts * const data = await this.csvService.parseCsv(file); * const targetFields * ``` */ declare class CsvMappingService { private csvMappingDialog; private logger; private storage; constructor(csvMappingDialog: CsvMappingDialog, logger: LoggerService, storage: UserPropertiesStorageService); /** * Zeigt einen Konfigurationsdialog an, in dem man ein Mapping von den gegebenen CSV Daten zum Zielformat einstellen kann * @param data Die aus dem CSV ausgelesenen Daten. Können über `csvMappingService.paseCsv(file)` besorgt werden. * @param configFields Konfiguration, welche Felder im Zielformat vorhanden sein sollen. */ showDialog(data: Array, configFields: TargetField[], storageKeyBase?: string, showDateFormatInput?: boolean): Promise; /** * Liest eine CSV-Datei ein und gibt die Zeilen als Array zurück * @returns Liste aller Zeilen (`string[][]`) */ parseCsv(file: File, config?: ParseConfig): Promise; private buildPapaParseConfig; /** * Nimmt die ausgelesenen Daten und das Mapping und baut daraus die Zielstruktur als JavaScript Objekte * @param data Die aus dem CSV ausgelesenen Daten. Können über `csvMappingService.paseCsv(file)` besorgt werden. * @param targetObjectDefinition Konfiguration, welche Felder im Zielformat vorhanden sein sollen. * Hier kann die gleiche Konfiguration wie in `csvMappingService.showDialog` verwendet werden: `{ fields: targetFields }` * @param mappingConfig Die Konfiguration fürs Mapping der Daten zum Zielformat. Hier kann das Ergebnis von `csvMappingService.showDialog` verwendet werden. */ createTargetObjects(data: Array, targetObjectDefinition: TargetObjectDefinition, mappingConfig: IMappingConfig): T[]; private createTargetObject; private createTargetObjectProperty; private createTargetObjectDictionary; private convertToType; /**im Mitgliederimport L2 kann man das Datum eines Zertifikats mit Ja beantworten, wenn kein Datum bekannt ist*/ private convertJaDateStringToDate; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface ParseConfig { delimiter?: string; newline?: string; quoteChar?: string; header?: boolean; dynamicTyping?: boolean; preview?: number; encoding?: string; worker?: boolean; comments?: boolean | string; download?: boolean; skipEmptyLines?: boolean; fastMode?: boolean; withCredentials?: boolean; } declare class TargetObjectDefinition { fields: TargetField[]; } declare class TargetField { type?: FieldType | 'dictionary'; fieldname: string; displayname?: string; dictionaryValueType?: FieldType; } declare class KeyValueObject { key: string; value: string | boolean | number | Date | Array; } declare type FieldType = 'string' | 'boolean' | 'number' | 'dateIso' | 'date' | 'string[]'; interface IMappingConfig { fields: IMappingField; dateFormat: string; dataContainsHeaders: boolean; } interface IMappingField { [fieldname: string]: number | null; } declare class CsvMapping { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { CsvMapping, CsvMappingService, KeyValueObject, TargetField, TargetObjectDefinition }; export type { IMappingConfig };